Die DNS-Abfrage kann verschieden lang dauern, je nachdem welche DNServer befragt werden und über welche Root-DNS das weite gereicht wird. Bi gecachten Abfragen kann das auch kurz sein.
~ # dig +trace rar111111111111111111.de @localhost
; <<>> DiG 9.7.3 <<>> +trace rar111111111111111111.de @localhost
;; global options: +cmd
. 3600000 IN NS D.ROOT-SERVERS.NET.
. 3600000 IN NS F.ROOT-SERVERS.NET.
. 3600000 IN NS C.ROOT-SERVERS.NET.
. 3600000 IN NS K.ROOT-SERVERS.NET.
. 3600000 IN NS B.ROOT-SERVERS.NET.
. 3600000 IN NS J.ROOT-SERVERS.NET.
. 3600000 IN NS M.ROOT-SERVERS.NET.
. 3600000 IN NS E.ROOT-SERVERS.NET.
. 3600000 IN NS H.ROOT-SERVERS.NET.
. 3600000 IN NS A.ROOT-SERVERS.NET.
. 3600000 IN NS I.ROOT-SERVERS.NET.
. 3600000 IN NS G.ROOT-SERVERS.NET.
. 3600000 IN NS L.ROOT-SERVERS.NET.
;; Received 228 bytes from 127.0.0.1#53(127.0.0.1) in 0 ms
de. 172800 IN NS z.nic.de.
de. 172800 IN NS n.de.net.
de. 172800 IN NS l.de.net.
de. 172800 IN NS f.nic.de.
de. 172800 IN NS s.de.net.
de. 172800 IN NS a.nic.de.
;; Received 356 bytes from 199.7.91.13#53(D.ROOT-SERVERS.NET) in 95 ms
de. 7200 IN SOA f.nic.de. its.denic.de. 2013031929 7200 7200 3600000 7200
;; Received 94 bytes from 194.246.96.1#53(z.nic.de) in 127 ms
~ # dig +trace example.com @8.8.8.8
; <<>> DiG 9.7.3 <<>> +trace example.com @8.8.8.8
;; global options: +cmd
. 14976 IN NS f.root-servers.net.
. 14976 IN NS d.root-servers.net.
. 14976 IN NS h.root-servers.net.
. 14976 IN NS l.root-servers.net.
. 14976 IN NS b.root-servers.net.
. 14976 IN NS m.root-servers.net.
. 14976 IN NS c.root-servers.net.
. 14976 IN NS g.root-servers.net.
. 14976 IN NS j.root-servers.net.
. 14976 IN NS k.root-servers.net.
. 14976 IN NS e.root-servers.net.
. 14976 IN NS i.root-servers.net.
. 14976 IN NS a.root-servers.net.
;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 6 ms
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
;; Received 501 bytes from 192.33.4.12#53(c.root-servers.net) in 9 ms
example.com. 172800 IN NS a.iana-servers.net.
example.com. 172800 IN NS b.iana-servers.net.
;; Received 165 bytes from 192.33.14.30#53(b.gtld-servers.net) in 30 ms
example.com. 172800 IN A 192.0.43.10
example.com. 172800 IN NS b.iana-servers.net.
example.com. 172800 IN NS a.iana-servers.net.
;; Received 181 bytes from 199.43.133.53#53(b.iana-servers.net) in 165 ms
Und in dem zeitlichen Auflösungsbereich wird auch hethostbyaddr liegen.
Wann der DNS-Timout kommt, hängt vom Betriebssystem un dessen Namensauflösungsprogramm (DNS-Resolver) ab.
Es ist in
resolv.h definiert, dass minimal 5 Sekunden versucht wird, aufzulösen.
Unter Linux ist das Timout auch einstellbar in /etc/resolv.conf.
Und beim
Resolver auch über eine Option timeout:NNN übergeben an die Umgebungsvariable RES_OPTIONS.
Also würde
$ENV{RES_OPTIONS} = 'timeout:600';
setzen.
//EDIT: Die Mönche schreiben dazu
606185, dass auch die Anzahl der Versuche eingestellt werden kann.
Das sieht m. E. dann so aus:
$abfragen = 1;
$timout = 60;
$ENV{RES_OPTIONS} = "timeout:$timout attempts:$abfragen";
Last edited: 2013-03-19 09:55:55 +0100 (CET)