Thread LWP und DNS-Timeout (4 answers)
Opened by hop at 2012-11-23 12:06

GwenDragon
 2013-03-19 09:36
#166418 #166418
User since
2005-01-17
14532 Artikel
Admin1
[Homepage]
user image
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
Code (perl): (dl )
$ENV{RES_OPTIONS} = 'timeout:600'; # fünf Minuten Timout
setzen.

//EDIT: Die Mönche schreiben dazu Perlmonks:606185, dass auch die Anzahl der Versuche eingestellt werden kann.
Das sieht m. E. dann so aus:
Code (perl): (dl )
1
2
3
$abfragen = 1;
$timout = 60;
$ENV{RES_OPTIONS} = "timeout:$timout attempts:$abfragen"; # 60 Sekunden Timout, 1 Abfrage

Last edited: 2013-03-19 09:55:55 +0100 (CET)
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

View full thread LWP und DNS-Timeout