Ich habe einen Computer mit Ubuntu 10.04 Server. Ich habe angefangen, lange (5-10 Sekunden) Verzögerungen zu bekommen, wenn ich mit Tools wie curl
und Verbindungen zu (einigen) Standorten außerhalb des LAN herstelle wget
.
Bei Verwendung von tcpdump
und wireshark habe ich festgestellt, dass das Problem in den DNS-Suchvorgängen liegt, die zum Einrichten der Verbindung durchgeführt werden:
BEISPIEL
Wenn ich renne:
wget www.site1.com
Ich sehe folgendes Verhalten:
LOOKUP: AAAA www.site1.com
# => fail, no delay, site1 doesn't have an IPv6 AAAA record
LOOKUP: AAAA www.site1.com.mydomain.lan
# => fail, BIG DELAY, crazy domain doesn't exist
LOOKUP: A www.site1.com
# => success, no delay, resolves as expected (site1 has IPv4 A record)
CONNECTION PROCEEDS ...
MEIN SETUP
Die resolv.conf meines Servers sieht folgendermaßen aus:
nameserver 192.168.0.1 # my router
domain mydomain.lan # made up domain name, for my lan
search mydomain.lan
Die Hosts-Datei meines Servers sieht folgendermaßen aus:
127.0.0.1 localhost.localdomain localhost
192.168.0.10 server1.mydomain.lan server1
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ENTSCHLIESSUNGEN?
Warum wird meine resolv.conf-Suchliste beim Erstellen des Namens für die 2. Suche verwendet, wenn die Manpage resolv.conf vorschlägt, dass sie nur beim Nachschlagen von Hostnamen (keine Punkte) verwendet wird:
"Resolver-Abfragen mit weniger als ndots Punkten (Standard ist 1) werden nacheinander mit jeder Komponente des Suchpfads versucht, bis eine Übereinstimmung gefunden wird."
Ich habe den Eindruck, die 2. Suche ist fehlerhaft und sollte überhaupt nicht durchgeführt werden ...
Wenn ich die Zeilen domain
und search
aus resolv.conf entferne , wird die zweite Suche nicht mehr durchgeführt und meine Verzögerungen verschwinden.
(Wenn ich wget zwinge, nur mit IPv4 umzugehen, werden die AAAA-Suchvorgänge nicht durchgeführt, sodass die Verzögerungen verschwinden.)
wget --inet4-only www.site1.com
search
Leitung haben. Vielen Dank.
domain
undsearch
Linien behalten ? Warum nicht entfernen?