Helges Webseite

Hinweis: Ihr Webbrowser unterstützt CSS2 nicht oder nicht korrekt.
Deshalb werden die Webseiten vermutlich nicht richtig dargestellt.
Um die Seiten richtig zu sehen, rufen Sie sie bitte in einem aktuelleren Browser auf.
Für weitere Hinweise klicken Sie bitte hier.

Optimierung DSL-Router

(Stand April 2008)

Problembeschreibung

„Could not connect to remote server” - solche und ähnliche Meldungen bekam ich häufig zu sehen, seit ich mit meinem neuen schnellen Recher im Internet unterwegs war. Web­browser oder Mail­client hatten mich vor der Meldung oft Minuten lang warten lassen. Beim zweiten oder dritten Drücken von F5 im Browser oder <alt> F2 im Mail­client wurde die ge­wünsch­te Seite dann doch end­lich an­ge­zeigt bzw. meine Mail ab­ge­rufen. Dies ertrug ich beinahe ein viertel Jahr lang, wenn auch inner­lich leise schimpfend und fluchend (auf Mail-Provider, Internet-Provider, Internet-Dienst­leister, ...).
(Wieso ich das überhaupt so lange ertragen habe? Nun, erstens surfe ich nicht jeden Tag, zweitens habe ich aus­reichend andere Sorgen, Probleme und Interessen (schließlich gibt es mit einem neuen Rechner noch mehr, was nicht mehr funktioniert) um mich aus­giebig mit diesem zu be­schäftigen. Und drittens parallelisierte ich die An­fragen in mehreren Tabs im Browser - irgend­eine Seite würde irgend­wann schon er­scheinen.)
Doch dann wurde es mir irgend­wann zu bunt. Zwar hatte ich auch mit dem alten Rechner ver­einzelt solche Fehler, doch nicht in diesem Ausmaß. Mit dem neuen Rechner und dem Umstieg von 1Mbit/s auf 6Mbit/s DSL sollte eigent­lich alles schneller gehen. Statt­dessen ver­ursachte jeder Klick auf einen Link lange Warte­zeiten. Hier stimmte doch was nicht. War die Soft­ware nicht multi­prozessor­fähig? Hatte ich etwas falsch installiert? Lag es am Service­pack von XP? Da gab es doch eine Änderung bezüglich der maximal zulässigen An­zahl von Netz­werk­ver­bindungen. Aber eine Über­schreitung des Limits müßte im Event­log ver­zeichnet sein. Dort findet sich aber kein Hinweis. Also installierte ich Microsofts Netmon und schnitt die Daten­über­tragung mit.
Am deutlichsten und praktisch immer re­produzierbar traten die Effekte mit dem Mail­client auf, also analysierte ich den zuerst. Mein Ver­dacht richtete sich von Anfang an gegen die DNS-Ab­fragen, womit ich gold­richtig lag.

->DNS ...

DNS: Domain Name Service. Wird ver­wendet um für Server­namen einer Url die Ip-Adressen zu er­mitteln.

Schon bei der ersten Analyse einer Auf­zeichnung hatte ich den Ein­druck, als gäbe es nicht für jede An­frage auch eine Ant­wort. Um einen besseren Überblick zu be­kommen färbte ich mittels „Color Filter” die Anfragen gelb und die Antworten grün. Hier­durch erhielt ich das folgende Bild. (Die Auswahl der Spalten habe ich nach und nach noch etwas optimiert, und natür­lich sind hier die ver­traulichen Daten wie Paß­wörter entfernt, sonst ent­spricht es jedoch exakt den mit­ge­schnittenen Daten. Leider liefert nicht jeder Meß­versuch eine derart klare Aus­sage. Man muß den Vor­gang normaler­weise schon einige Male wieder­holen, um zu so einem deut­lichen Er­gebnis zu kommen. Hier jedoch hatte ich regel­recht Glück.)

ein erster Netzwerktrace
Frame Time Of Day Source Source Port Destination Destination Port Protocol Name Description
4 21:57:10.140 MY-PC 1031, 1031(0x407) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0x36C2, QUERY (Standard query), Query for pop3.arcor.de of type Host Addr on class Internet
5 21:57:10.140 MY-PC 1068, 1068(0x42c) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0x3FC1, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
6 21:57:10.143 MY-PC 1510, 1510(0x5e6) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0xD2C1, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
7 21:57:10.143 MY-PC 1511, 1511(0x5e7) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0xA8C0, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
8 21:57:10.144 MY-PC 1512, 1512(0x5e8) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0x3CC7, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
9 21:57:10.145 MY-PC 1513, 1513(0x5e9) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0x84C7, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
10 21:57:10.155 192.168.1.1 DNS(53), 53(0x35) MY-PC 1031, 1031(0x407) DNS DNS: QueryId = 0x36C2, QUERY (Standard query), Response - Success
11 21:57:10.156 MY-PC 1514 pop3.arcor-online.net POP 3(110) TCP TCP: Flags=.S......, SrcPort=1514, DstPort=POP 3(110), Len=0, Seq=632319424, Ack=0, Win=65535 (scale factor 0) = 65535
12 21:57:10.169 pop3.arcor-online.net POP 3(110) MY-PC 1514 TCP TCP: Flags=.S..A..., SrcPort=POP 3(110), DstPort=1514, Len=0, Seq=3980556906, Ack=632319425, Win=5840 (scale factor 0) = 5840
13 21:57:10.169 MY-PC 1514 pop3.arcor-online.net POP 3(110) TCP TCP: Flags=....A..., SrcPort=1514, DstPort=POP 3(110), Len=0, Seq=632319425, Ack=3980556907, Win=65535 (scale factor 0) = 65535
14 21:57:10.180 pop3.arcor-online.net POP 3(110) MY-PC 1514 POP3 POP3: Response: +OK: Hello there.
15 21:57:10.180 MY-PC 1514 pop3.arcor-online.net POP 3(110) POP3 POP3: Command: USER u_1
16 21:57:10.192 pop3.arcor-online.net POP 3(110) MY-PC 1514 TCP TCP: Flags=....A..., SrcPort=POP 3(110), DstPort=1514, Len=0, Seq=3980556925, Ack=632319450, Win=5840 (scale factor 0) = 5840
17 21:57:10.192 pop3.arcor-online.net POP 3(110) MY-PC 1514 POP3 POP3: Response: +OK: Password required.
18 21:57:10.192 MY-PC 1514 pop3.arcor-online.net POP 3(110) POP3 POP3: Command: PASS pw_1
19 21:57:10.245 pop3.arcor-online.net POP 3(110) MY-PC 1514 TCP TCP: Flags=....A..., SrcPort=POP 3(110), DstPort=1514, Len=0, Seq=3980556949, Ack=632319469, Win=5840 (scale factor 0) = 5840
20 21:57:10.265 pop3.arcor-online.net POP 3(110) MY-PC 1514 POP3 POP3: Response: +OK: Connected to proxy server.
21 21:57:10.265 MY-PC 1514 pop3.arcor-online.net POP 3(110) POP3 POP3: Command: STAT
22 21:57:10.276 pop3.arcor-online.net POP 3(110) MY-PC 1514 TCP TCP: Flags=....A..., SrcPort=POP 3(110), DstPort=1514, Len=0, Seq=3980556981, Ack=632319475, Win=5840 (scale factor 0) = 5840
23 21:57:10.279 pop3.arcor-online.net POP 3(110) MY-PC 1514 POP3 POP3: Response: +OK: 0 0
24 21:57:10.279 MY-PC 1514 pop3.arcor-online.net POP 3(110) POP3 POP3: Command: QUIT
25 21:57:10.292 pop3.arcor-online.net POP 3(110) MY-PC 1514 POP3 POP3: Response: +OK: Bye-bye.
26 21:57:10.292 MY-PC 1514 pop3.arcor-online.net POP 3(110) TCP TCP: Flags=F...A..., SrcPort=1514, DstPort=POP 3(110), Len=0, Seq=632319481, Ack=3980557004, Win=65438 (scale factor 0) = 65438
27 21:57:10.293 pop3.arcor-online.net POP 3(110) MY-PC 1514 TCP TCP: Flags=F...A..., SrcPort=POP 3(110), DstPort=1514, Len=0, Seq=3980557004, Ack=632319481, Win=5840 (scale factor 0) = 5840
28 21:57:10.293 MY-PC 1514 pop3.arcor-online.net POP 3(110) TCP TCP: Flags=....A..., SrcPort=1514, DstPort=POP 3(110), Len=0, Seq=632319482, Ack=3980557005, Win=65438 (scale factor 0) = 65438
29 21:57:10.304 pop3.arcor-online.net POP 3(110) MY-PC 1514 TCP TCP: Flags=....A..., SrcPort=POP 3(110), DstPort=1514, Len=0, Seq=3980557005, Ack=632319482, Win=5840 (scale factor 0) = 5840
30 21:57:11.140 MY-PC 1068, 1068(0x42c) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0x3FC1, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
31 21:57:11.143 MY-PC 1511, 1511(0x5e7) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0xA8C0, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
32 21:57:11.143 MY-PC 1510, 1510(0x5e6) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0xD2C1, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
33 21:57:11.144 MY-PC 1512, 1512(0x5e8) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0x3CC7, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
34 21:57:11.146 MY-PC 1513, 1513(0x5e9) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0x84C7, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
35 21:57:11.155 192.168.1.1 DNS(53), 53(0x35) MY-PC 1068, 1068(0x42c) DNS DNS: QueryId = 0x3FC1, QUERY (Standard query), Response - Success
36 21:57:11.155 MY-PC 1515 post.strato.de POP 3(110) TCP TCP: Flags=.S......, SrcPort=1515, DstPort=POP 3(110), Len=0, Seq=2927208074, Ack=0, Win=65535 (scale factor 0) = 65535
37 21:57:11.171 post.strato.de POP 3(110) MY-PC 1515 TCP TCP: Flags=.S..A..., SrcPort=POP 3(110), DstPort=1515, Len=0, Seq=1699417186, Ack=2927208075, Win=49368 (scale factor 0) = 49368
38 21:57:11.171 MY-PC 1515 post.strato.de POP 3(110) TCP TCP: Flags=....A..., SrcPort=1515, DstPort=POP 3(110), Len=0, Seq=2927208075, Ack=1699417187, Win=65535 (scale factor 0) = 65535
39 21:57:11.183 post.strato.de POP 3(110) MY-PC 1515 POP3 POP3: Response: +OK: POP3 server ready <abc@post.webmailer.de>
40 21:57:11.183 MY-PC 1515 post.strato.de POP 3(110) POP3 POP3: Command: USER u_2
41 21:57:11.196 post.strato.de POP 3(110) MY-PC 1515 TCP TCP: Flags=....A..., SrcPort=POP 3(110), DstPort=1515, Len=0, Seq=1699417255, Ack=2927208112, Win=49368 (scale factor 0) = 49368
42 21:57:11.197 post.strato.de POP 3(110) MY-PC 1515 POP3 POP3: Response: +OK: Waiting for password
43 21:57:11.197 MY-PC 1515 post.strato.de POP 3(110) POP3 POP3: Command: PASS pw_2
44 21:57:11.209 post.strato.de POP 3(110) MY-PC 1515 TCP TCP: Flags=....A..., SrcPort=POP 3(110), DstPort=1515, Len=0, Seq=1699417281, Ack=2927208127, Win=49368 (scale factor 0) = 49368
45 21:57:11.212 post.strato.de POP 3(110) MY-PC 1515 POP3 POP3: Response: +OK: User logged in, proceed.
46 21:57:11.212 MY-PC 1515 post.strato.de POP 3(110) POP3 POP3: Command: STAT
47 21:57:11.224 post.strato.de POP 3(110) MY-PC 1515 POP3 POP3: Response: +OK: 0 0
48 21:57:11.224 MY-PC 1515 post.strato.de POP 3(110) POP3 POP3: Command: QUIT
49 21:57:11.237 post.strato.de POP 3(110) MY-PC 1515 POP3 POP3: Response: +OK: Closing connection
50 21:57:11.237 MY-PC 1515 post.strato.de POP 3(110) TCP TCP: Flags=F...A..., SrcPort=1515, DstPort=POP 3(110), Len=0, Seq=2927208139, Ack=1699417344, Win=65378 (scale factor 0) = 65378
51 21:57:11.238 post.strato.de POP 3(110) MY-PC 1515 TCP TCP: Flags=F...A..., SrcPort=POP 3(110), DstPort=1515, Len=0, Seq=1699417344, Ack=2927208139, Win=49368 (scale factor 0) = 49368
52 21:57:11.238 MY-PC 1515 post.strato.de POP 3(110) TCP TCP: Flags=....A..., SrcPort=1515, DstPort=POP 3(110), Len=0, Seq=2927208140, Ack=1699417345, Win=65378 (scale factor 0) = 65378
53 21:57:11.251 post.strato.de POP 3(110) MY-PC 1515 TCP TCP: Flags=....A..., SrcPort=POP 3(110), DstPort=1515, Len=0, Seq=1699417345, Ack=2927208140, Win=49368 (scale factor 0) = 49368
54 21:57:12.143 MY-PC 1510, 1510(0x5e6) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0xD2C1, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
55 21:57:12.143 MY-PC 1511, 1511(0x5e7) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0xA8C0, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
56 21:57:12.144 MY-PC 1512, 1512(0x5e8) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0x3CC7, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
57 21:57:12.146 MY-PC 1513, 1513(0x5e9) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0x84C7, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
58 21:57:12.158 192.168.1.1 DNS(53), 53(0x35) MY-PC 1510, 1510(0x5e6) DNS DNS: QueryId = 0xD2C1, QUERY (Standard query), Response - Success
59 21:57:12.158 MY-PC 1516 post.strato.de POP 3(110) TCP TCP: Flags=.S......, SrcPort=1516, DstPort=POP 3(110), Len=0, Seq=903049650, Ack=0, Win=65535 (scale factor 0) = 65535
60 21:57:12.173 post.strato.de POP 3(110) MY-PC 1516 TCP TCP: Flags=.S..A..., SrcPort=POP 3(110), DstPort=1516, Len=0, Seq=1783601613, Ack=903049651, Win=49368 (scale factor 0) = 49368
61 21:57:12.173 MY-PC 1516 post.strato.de POP 3(110) TCP TCP: Flags=....A..., SrcPort=1516, DstPort=POP 3(110), Len=0, Seq=903049651, Ack=1783601614, Win=65535 (scale factor 0) = 65535
62 21:57:12.281 post.strato.de POP 3(110) MY-PC 1516 POP3 POP3: Response: +OK: POP3 server ready <abd@post.webmailer.de>
63 21:57:12.282 MY-PC 1516 post.strato.de POP 3(110) POP3 POP3: Command: USER u_3
64 21:57:12.295 post.strato.de POP 3(110) MY-PC 1516 TCP TCP: Flags=....A..., SrcPort=POP 3(110), DstPort=1516, Len=0, Seq=1783601682, Ack=903049685, Win=49368 (scale factor 0) = 49368
65 21:57:12.296 post.strato.de POP 3(110) MY-PC 1516 POP3 POP3: Response: +OK: Waiting for password
66 21:57:12.296 MY-PC 1516 post.strato.de POP 3(110) POP3 POP3: Command: PASS pw_3
67 21:57:12.308 post.strato.de POP 3(110) MY-PC 1516 TCP TCP: Flags=....A..., SrcPort=POP 3(110), DstPort=1516, Len=0, Seq=1783601708, Ack=903049702, Win=49368 (scale factor 0) = 49368
68 21:57:12.333 post.strato.de POP 3(110) MY-PC 1516 POP3 POP3: Response: +OK: User logged in, proceed.
69 21:57:12.333 MY-PC 1516 post.strato.de POP 3(110) POP3 POP3: Command: STAT
70 21:57:12.346 post.strato.de POP 3(110) MY-PC 1516 POP3 POP3: Response: +OK: 0 0
71 21:57:12.346 MY-PC 1516 post.strato.de POP 3(110) POP3 POP3: Command: QUIT
72 21:57:12.359 post.strato.de POP 3(110) MY-PC 1516 POP3 POP3: Response: +OK: Closing connection
73 21:57:12.359 MY-PC 1516 post.strato.de POP 3(110) TCP TCP: Flags=F...A..., SrcPort=1516, DstPort=POP 3(110), Len=0, Seq=903049714, Ack=1783601771, Win=65378 (scale factor 0) = 65378
74 21:57:12.359 post.strato.de POP 3(110) MY-PC 1516 TCP TCP: Flags=F...A..., SrcPort=POP 3(110), DstPort=1516, Len=0, Seq=1783601771, Ack=903049714, Win=49368 (scale factor 0) = 49368
75 21:57:12.359 MY-PC 1516 post.strato.de POP 3(110) TCP TCP: Flags=....A..., SrcPort=1516, DstPort=POP 3(110), Len=0, Seq=903049715, Ack=1783601772, Win=65378 (scale factor 0) = 65378
76 21:57:12.372 post.strato.de POP 3(110) MY-PC 1516 TCP TCP: Flags=....A..., SrcPort=POP 3(110), DstPort=1516, Len=0, Seq=1783601772, Ack=903049715, Win=49368 (scale factor 0) = 49368
77 21:57:14.143 MY-PC 1511, 1511(0x5e7) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0xA8C0, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
78 21:57:14.144 MY-PC 1512, 1512(0x5e8) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0x3CC7, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
79 21:57:14.146 MY-PC 1513, 1513(0x5e9) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0x84C7, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
80 21:57:14.158 192.168.1.1 DNS(53), 53(0x35) MY-PC 1511, 1511(0x5e7) DNS DNS: QueryId = 0xA8C0, QUERY (Standard query), Response - Success
81 21:57:14.158 MY-PC 1517 post.strato.de POP 3(110) TCP TCP: Flags=.S......, SrcPort=1517, DstPort=POP 3(110), Len=0, Seq=2817577568, Ack=0, Win=65535 (scale factor 0) = 65535
82 21:57:14.173 post.strato.de POP 3(110) MY-PC 1517 TCP TCP: Flags=.S..A..., SrcPort=POP 3(110), DstPort=1517, Len=0, Seq=1962662623, Ack=2817577569, Win=49368 (scale factor 0) = 49368
83 21:57:14.173 MY-PC 1517 post.strato.de POP 3(110) TCP TCP: Flags=....A..., SrcPort=1517, DstPort=POP 3(110), Len=0, Seq=2817577569, Ack=1962662624, Win=65535 (scale factor 0) = 65535
84 21:57:14.185 post.strato.de POP 3(110) MY-PC 1517 POP3 POP3: Response: +OK: POP3 server ready <abe@post.webmailer.de>
85 21:57:14.185 MY-PC 1517 post.strato.de POP 3(110) POP3 POP3: Command: USER u_4
86 21:57:14.198 post.strato.de POP 3(110) MY-PC 1517 TCP TCP: Flags=....A..., SrcPort=POP 3(110), DstPort=1517, Len=0, Seq=1962662692, Ack=2817577608, Win=49368 (scale factor 0) = 49368
87 21:57:14.199 post.strato.de POP 3(110) MY-PC 1517 POP3 POP3: Response: +OK: Waiting for password
88 21:57:14.199 MY-PC 1517 post.strato.de POP 3(110) POP3 POP3: Command: PASS pw_4
89 21:57:14.213 post.strato.de POP 3(110) MY-PC 1517 TCP TCP: Flags=....A..., SrcPort=POP 3(110), DstPort=1517, Len=0, Seq=1962662718, Ack=2817577625, Win=49368 (scale factor 0) = 49368
90 21:57:14.215 post.strato.de POP 3(110) MY-PC 1517 POP3 POP3: Response: +OK: User logged in, proceed.
91 21:57:14.215 MY-PC 1517 post.strato.de POP 3(110) POP3 POP3: Command: STAT
92 21:57:14.227 post.strato.de POP 3(110) MY-PC 1517 POP3 POP3: Response: +OK: 0 0
93 21:57:14.227 MY-PC 1517 post.strato.de POP 3(110) POP3 POP3: Command: QUIT
94 21:57:14.240 post.strato.de POP 3(110) MY-PC 1517 POP3 POP3: Response: +OK: Closing connection
95 21:57:14.240 MY-PC 1517 post.strato.de POP 3(110) TCP TCP: Flags=F...A..., SrcPort=1517, DstPort=POP 3(110), Len=0, Seq=2817577637, Ack=1962662781, Win=65378 (scale factor 0) = 65378
96 21:57:14.241 post.strato.de POP 3(110) MY-PC 1517 TCP TCP: Flags=F...A..., SrcPort=POP 3(110), DstPort=1517, Len=0, Seq=1962662781, Ack=2817577637, Win=49368 (scale factor 0) = 49368
97 21:57:14.241 MY-PC 1517 post.strato.de POP 3(110) TCP TCP: Flags=....A..., SrcPort=1517, DstPort=POP 3(110), Len=0, Seq=2817577638, Ack=1962662782, Win=65378 (scale factor 0) = 65378
98 21:57:15.402 MY-PC 1517 post.strato.de POP 3(110) TCP TCP: Flags=F...A..., SrcPort=1517, DstPort=POP 3(110), Len=0, Seq=2817577637, Ack=1962662782, Win=65378 (scale factor 0) = 65378
99 21:57:17.918 MY-PC 1517 post.strato.de POP 3(110) TCP TCP: Flags=F...A..., SrcPort=1517, DstPort=POP 3(110), Len=0, Seq=2817577637, Ack=1962662782, Win=65378 (scale factor 0) = 65378
100 21:57:18.144 MY-PC 1512, 1512(0x5e8) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0x3CC7, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
101 21:57:18.146 MY-PC 1513, 1513(0x5e9) 192.168.1.1 DNS(53), 53(0x35) DNS DNS: QueryId = 0x84C7, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
102 21:57:18.159 192.168.1.1 DNS(53), 53(0x35) MY-PC 1512, 1512(0x5e8) DNS DNS: QueryId = 0x3CC7, QUERY (Standard query), Response - Success
103 21:57:18.160 MY-PC 1518 post.strato.de POP 3(110) TCP TCP: Flags=.S......, SrcPort=1518, DstPort=POP 3(110), Len=0, Seq=1392671624, Ack=0, Win=65535 (scale factor 0) = 65535
104 21:57:18.175 post.strato.de POP 3(110) MY-PC 1518 TCP TCP: Flags=.S..A..., SrcPort=POP 3(110), DstPort=1518, Len=0, Seq=2277082142, Ack=1392671625, Win=49368 (scale factor 0) = 49368
105 21:57:18.175 MY-PC 1518 post.strato.de POP 3(110) TCP TCP: Flags=....A..., SrcPort=1518, DstPort=POP 3(110), Len=0, Seq=1392671625, Ack=2277082143, Win=65535 (scale factor 0) = 65535
106 21:57:18.186 post.strato.de POP 3(110) MY-PC 1518 POP3 POP3: Response: +OK: POP3 server ready <abf@post.webmailer.de>
107 21:57:18.186 MY-PC 1518 post.strato.de POP 3(110) POP3 POP3: Command: USER u_5
108 21:57:18.200 post.strato.de POP 3(110) MY-PC 1518 TCP TCP: Flags=....A..., SrcPort=POP 3(110), DstPort=1518, Len=0, Seq=2277082211, Ack=1392671660, Win=49368 (scale factor 0) = 49368
109 21:57:18.200 post.strato.de POP 3(110) MY-PC 1518 POP3 POP3: Response: +OK: Waiting for password
110 21:57:18.200 MY-PC 1518 post.strato.de POP 3(110) POP3 POP3: Command: PASS pw_5
111 21:57:18.213 post.strato.de POP 3(110) MY-PC 1518 TCP TCP: Flags=....A..., SrcPort=POP 3(110), DstPort=1518, Len=0, Seq=2277082237, Ack=1392671677, Win=49368 (scale factor 0) = 49368
112 21:57:18.216 post.strato.de POP 3(110) MY-PC 1518 POP3 POP3: Response: +OK: User logged in, proceed.
113 21:57:18.216 MY-PC 1518 post.strato.de POP 3(110) POP3 POP3: Command: STAT
114 21:57:18.228 post.strato.de POP 3(110) MY-PC 1518 POP3 POP3: Response: +OK: 0 0
115 21:57:18.228 MY-PC 1518 post.strato.de POP 3(110) POP3 POP3: Command: QUIT
116 21:57:18.241 post.strato.de POP 3(110) MY-PC 1518 POP3 POP3: Response: +OK: Closing connection
117 21:57:18.241 MY-PC 1518 post.strato.de POP 3(110) TCP TCP: Flags=F...A..., SrcPort=1518, DstPort=POP 3(110), Len=0, Seq=1392671689, Ack=2277082300, Win=65378 (scale factor 0) = 65378
118 21:57:18.242 post.strato.de POP 3(110) MY-PC 1518 TCP TCP: Flags=F...A..., SrcPort=POP 3(110), DstPort=1518, Len=0, Seq=2277082300, Ack=1392671689, Win=49368 (scale factor 0) = 49368
119 21:57:18.242 MY-PC 1518 post.strato.de POP 3(110) TCP TCP: Flags=....A..., SrcPort=1518, DstPort=POP 3(110), Len=0, Seq=1392671690, Ack=2277082301, Win=65378 (scale factor 0) = 65378
120 21:57:18.254 post.strato.de POP 3(110) MY-PC 1518 TCP TCP: Flags=....A..., SrcPort=POP 3(110), DstPort=1518, Len=0, Seq=2277082301, Ack=1392671690, Win=49368 (scale factor 0) = 49368
121 21:57:22.746 MY-PC 1517 post.strato.de POP 3(110) TCP TCP: Flags=F...A..., SrcPort=1517, DstPort=POP 3(110), Len=0, Seq=2817577637, Ack=1962662782, Win=65378 (scale factor 0) = 65378
122 21:57:25.146 MY-PC NETBIOS Name Service(137), 137(0x89) 192.168.1.255 NETBIOS Name Service(137), 137(0x89) NbtNs NbtNs: Query Request for POST.STRATO.DE <0x00> Workstation Service
123 21:57:25.896 MY-PC NETBIOS Name Service(137), 137(0x89) 192.168.1.255 NETBIOS Name Service(137), 137(0x89) NbtNs NbtNs: Query Request for POST.STRATO.DE <0x00> Workstation Service
124 21:57:26.646 MY-PC NETBIOS Name Service(137), 137(0x89) 192.168.1.255 NETBIOS Name Service(137), 137(0x89) NbtNs NbtNs: Query Request for POST.STRATO.DE <0x00> Workstation Service
125 21:57:32.301 MY-PC 1517 post.strato.de POP 3(110) TCP TCP: Flags=F...A..., SrcPort=1517, DstPort=POP 3(110), Len=0, Seq=2817577637, Ack=1962662782, Win=65378 (scale factor 0) = 65378

Es fällt sofort auf, daß von mehreren aufeinanderfolgenden Abfragen immer nur eine beantwortet wird. Welche dies ist, erkennt man an der Portnummer. Jede Sourceportnummer einer Anfrage gehört zu einer Datenübertragungsschnittstelle, die der Mailclient geöffnet hat. Der Mailclient hat also 6 Schnittstellen geöffnet (für jedes Postfach eine) und auf jeder eine DNS-Abfrage gestartet. (Bzw. er hat eine Verbindung zu einer Url angefordert und die Netzwerkschicht hat die Anfrage für ihn gestartet.) Die erste Anfrage wurde beantwortet, alle anderen wurden nach einem Timout wiederholt. Dann wiederholte sich das Spiel. Die neue erste Anfrage wurde beantwortet, die restlichen Anfragen wiederholt - usw. Das Timeout zwischen den Abfragen wurde erhöht (1s, 1s, 2s, 4s). Die letzte Anfrage wurde jedoch zum Schluß nicht wiederholt. Nach 5 Fehlversuchen gab der Netzwerktreiber fast auf. Fast deswegen, weil hier eine Windowsspezialität ins Spiel kommt. Wenn DNS nicht funktioniert, dann probieren wir es halt mit Netbios im lokalen Netz. (Im Netzwerktrace rot markiert.) Nur ist mein lokales Netz recht klein, es umfaßt genau einen Rechner, der ins Internet will. Insbesondere hat sich die Strato-Domäne nicht unter meinem Sofa versteckt, und so ist dieses Ansinnen zum Scheitern verurteilt. Wie lange der Treiber auf eine Antwort wartet, bevor er eine Fehlermeldung an die Anwendung zurückgibt, kann man dem Trace leiter nicht entnehmen, aber aus dem Verhalten der Anwendung kann man schließen, daß er sich wohl etwa eine Minute geduldet.

Wieso aber wurden die identischen Abfragen alle wiederholt? Spätestens nach der zweiten Antwort müßte doch die IP-Adresse im lokalen Cache vorliegen? Funktioniert vielleicht der Cache nicht? Ein Aufruf von „ipconfig /displaydns” zeigt, daß der Cache sehr wohl funktioniert. Dies ist auch der Grund, weswegen nach einer sofortigen Wiederholung von <alt> F2 der Mailserver plötzlich doch gefunden wird. Die Antwort ist einfach: zum Zeitpunkt der ersten Anfrage war die Adresse nicht im Cache vorhanden. Bei den Wiederholungsversuchen überprüft der Treiber den Cache nicht nochmals. Er rechnet einfach nicht damit, daß ihm in der Zwischenzeit jemand anders die Daten hinterlegt hat.

Und warum hat es mit dem alten Rechner funktioniert? Nun, das war zu diesem Zeitpunkt der Untersuchung noch offen. Entweder gingen dort die Anfragen nicht verloren (andere Betriebssystemversion, anderer Treiber, andere Netzwerkkarte ...) oder es lag wirklich daran, daß dieser Rechner langsamer war. Die 6 Abfragen erfolgten laut Trace innerhalb von 5 ms, die Anwort auf die erste Abfrage kam nach 15 ms. Wenn der alte Rechner für die Abfragen etwas mehr als dreimal so lange gebraucht hat, dann konnte die letzte Anfrage bereits mit Hilfe des Caches befriedigt werden, ging also auch nicht schief.

Durch die Überprüfung des Caches wurde ich aber auch noch auf etwas anderes aufmerksam: Die "TimeToLive" der DNS-Einträge betrugen von Strato ca eine Minute, von Arcor etwa 12 Minuten. Dagegen lagen die Lebenserwartungen der meisten anderen Webadressen im Stunden- bis Tagesbereich. Dies erklärte mir die gute Reproduzierbarkeit der Probleme mit dem Webclient und die schlechte Reproduzierbarkeit mit dem Webbrowser. Um auch hier reproduzierbare Analyseergebnisse zu erzielen, mußte ich den Cache durch Neustart des Rechners oder einfacher durch „ipconfig /flushdns” löschen.

Meine Hypothese lautete zu diesem Zeitpunkt:
Alle DNS-Anfragen, die zwischen einer DNS-Anfrage, die beantwortet wird, und deren Antwort liegen, werden ignoriert bzw. gehen verloren.

Dies verifizierte ich nun durch Aufzeichnungen von Webzugriffen mit Opera. Die Protokolle gebe ich hier nicht wieder, weil sie ziemlich umfangreich und weit weniger übersichtlich als das oben gezeigte Protokoll sind. Die DNS-Abfragen und Antworten sind weit verstreut und durch zahlreiche HTML-Übertragungen unterbrochen, aber die Hypothese wurde bestätigt. Webseiten enthalten in der Regel zahlreiche GIFs, JPEGs, Frames, Iframes, JScripts, CSS usw., die vom Browser während des Seitenaufbaus geladen werden. Liegen diese auf der gleichen Domain, wie die Webseite selbst, so gibt es kein Problem, da deren Adresse zu dem Zeitpunkt, zu dem die Seite interpretiert wird, ja bereits bekannt ist. Häufig stammen sie jedoch von einer Subdomain, einer internationalen Domain des Betreibers der Seite, sind Bannerwerbung oder sind Nachrichten eines anderen Dienstanbieters. Wie wir bereits gesehen haben, spielt es für die Anzahl der DNS-Anfragen nicht unbedingt eine Rolle, ob die Elemente alle von der gleichen oder von unterschiedlichen Domains kommen, außer daß bei gleichen Domains doch ab und zu ein Treffer im Cache gelandet wird.

Zyxel Prestige 660 HW-67

Als nächstes stellte sich die Frage, welche Komponente den Fehler verursachte und wie man dies verhindern könnte. Falls es z.B. ein Treiber gewesen wäre, hätte ich evtl. durch Parameteränderungen in der Registry eine Chance gehabt. Da der Netzwerkmonitor auf dem gleichen Rechner lief, wie die Anwendung und die Treiber, war ich nicht sicher, in wie weit das Protokoll mit den tatsächlich gesendeten Daten übereinstimmte, denn zwischen dem Monitortreiber und der Hardware befindet sich noch der NDIS- und der herstellerspezifische Treiber für den Adapter. Für den Hardwareadapter selbst schien mir das Verhalten zu kompliziert zu sein. Der Verursacher konnte jedoch auch der DSL-Modem Router (ein Zyxel Prestige 660 HW-67, den ich als ARCOR-DSL WLAN Modem 100 gekauft hatte) sein. So versuchte ich zunächst in diesem Router mittels Telnet eine Tracefunktion zu aktivieren, um dann seine Daten mit denen des Netmon zu vergleichen. Dies gelang mir jedoch nicht im erhofften Umfang. (Sei es, daß er nicht über die entsprechende Funktionalität verfügt, sei es, daß mir nicht bekannt ist, wie man sie aktiviert.) Es gelang mir jedoch eine Statistikabfrage (ip dns stats disp), in der der Router behauptete:

DNS Proxy Statistics
State: 2
Proxy Table Size: 128
Active DNS: 195.50.140.178
Primary DNS: 195.50.140.178
Secondary DNS: 195.50.140.114
Max Entry: 45
Timeouts: 0
Response Discards: 0
Request Discards: 0
Send Failures: 0
No DNS Entry : 0
Request Count : 46
Free Count : 280

Es war offenkundig, daß hier einer log! Hier half nur eines: ein unabhängiger Beobachter in der Mitte. Also schaltete ich einen Hub zwischen Rechner und DSL-Router, um die übertragenen Daten an einem zweiten PC aufzuzeichnen.

->Hub ...

Hub: Ein Gerät, das die empfangenen Daten von allen angeschlossenen Geräten an alle anderen Geräte weiterleitet. Entspricht also praktisch einem Bus, nur mit dem Unterschied, daß die Verdrahtung sternförmig erfolgt. Im Gegensatz dazu leitet ein Switch die Daten (fast) ausschließlich an den gewünschten Empfänger weiter. Dadurch senken Switches die Belastung des Netzwerkes und verhindern gleichzeitig weitgehend das Abhören von Datenübertragungen. Deshalb wurden heutzutage Hubs fast vollständig von Switches verdrängt. Für meine Zwecke war aber gerade die Abhörmöglichkeit wichtig.

Die Resultate waren praktisch identisch mit den am ersten PC gemachten Aufzeichnungen. Damit stand zweifelsfrei fest, daß der Zyxel DSL-Router fehlerhaft arbeitete. Ich suchte zunächst nach Firmwareupdates für den Router. Von den zahlreichen vorhandenen Updates (SQ 1 bis QD 8) war jedoch nur eine, nämlich SQ 1) auch für die Arcor Variante freigegeben (und installierbar). So installierte ich diese. Dies brachte jedoch keine Verbesserung. Daher schickte ich folgende Fehlermeldung an Zyxel (ging etwas zäh, da auch die Zyxel-Seite zu denen gehört, die sich nicht so ohne weiteres aufrufen lassen, wenn man einen Zyxel DSL-Router hat):

Bug: DNS requests lost
Ich habe festgestellt, daß der DSL-Router einen gravierenden Fehler enthält: werden mehrere DNS Anfragen kurz nacheinander an den Router gerichtet, so gehen alle, die nach der ersten und vor der Antwort auf die erste erfolgen, verloren. (Konsequent reproduzierbar.)
Dies führt zu zahlreichen Retries und langen Wartezeiten. Webseiten mit mehr als 5 externen Resourcen lassen sich oft überhaupt nicht öffnen (auch wenn alle auf die gleiche Url zeigen, da die Retries erst hinter dem DNS Cache von Windows erfolgen), weil die maximale Zahl der Retries überschritten wurde. Hinzu kommt, daß Windows danach versucht diese Namen über Netbios aufzulösen. Dieses Verhalten fiel mir erst auf, seit ich einen schnelleren Rechner benutze, beim langsmeren Vorgängermodell war wahrscheinlich zwischen den DNS-Anfragen eine ausreichend große Pause.
Ich habe bereits auf die neuere Firmwareversion Zynos Firmware V3.40(SQ.1) | 3/31/2005 upgedated, jedoch ohne Verbesserung. Bei der Abfrage „ip dns stats disp” behauptet der Router, es seien keine DNS Anfragen verlorengegangen, ein Netzwerktrace an einem unabhängigen Rechner beweist jedoch das Gegenteil.
Capturelogs kann ich gerne zur Verfügung stellen.

Immerhin schon 6 Tage später bekam ich von Zyxel die folgende Antwort:

Sehr geehrter Herr Mueller,
bitte richten Sie Ihre Anfragen an den Deutschen Support über die unten genannte Webseite.
Sie haben ein Arcor WLAN Modem 100, das speziell nach den Wünschen von Arcor hergestellt wurde. Dieses Modell ist als sehr preiswertes Multifunkitonsgerät für den DSL-Anschluß von kleinen Heimnetzwerken gedacht. Hier tritt der von Ihnen geschilderte Prozess äußerst selten auf und falls er auftritt wird er durch einen Neuversuch des Benutzers oder des Rechners behoben.
Sofern Sie dieses Gerät als DNS Server für ein größeres Netzwerk einsetzen, tragen Sie bitte bei den angeschlossenen Clients einen alternativen DNS-Server zum Standard-DNS-Server (also dem P660) ein. Wir werden für die genannte Situation keine Lösung mehr anbieten können und keine Aktualisierung der Firmware veröffentlichen. Falls Sie eine andere Firmware auf das Gerät installieren möchten, könnte das Gerät nachhaltig beschädigt werden.
Bitte entschuldigen Sie die Unannehmlichkeiten, die Ihnen durch diese Geräteeigenschaft entstehen. Wir raten eine Neuplanung des Netzwerkes, sofern Sie eine Anzahl von mehr als 5 Benutzern für das Netzwerk überschreiten.
Mit freundlichen Grüßen...

Ach, Arcor hat also extra den Wunsch geäußert, ein fehlerhaftes Modem herzustellen. Das kann ich so nicht ganz glauben.
So arg preiswert war das Gerät auch nicht. Immerhin habe ich seinerzeit 29,95€ dafür bezahlt und laut Werbeprospekt von Arcor durch meinen Vertragsabschluß 220€ gespart.
Auch wird mir unterstellt, ich hätte einen Großkonzern an dem Router angeschlossen. Hätte Zyxel von meinem Angebot Gebrauch gemacht und sich meine Logfiles schicken lassen, dann hätten sie gesehen, daß der gesamte Traffic von nur einem einzigen Rechner verursacht wurde. Recht viel kleiner kann ein Heimnetz wohl nicht mehr sein.
Wäre das Problem selten, so hätte ich mir weder die Mühe gemacht es zu analysieren, noch mich beschwerd. Durch Neuversuch des Rechners wird das Problem leider auch nicht behoben, wie mein Log beweist (der Rechner hat es immerhin fünfmal probiert). Durch Neuversuch des Anwenders schon eher. Jedoch muß der Anwender erst den Timeout abwarten, eher läßt ihn die Anwendung oft nicht neu probieren.
Interessant ist der Hinweis auf das „Installieren anderer Firmware”. Hier wird offenbar auf die Anleitungen im Internet angespielt, wie man aus einem Arcor Modell einen „echten” Zyxel Router macht. Bei meiner Suche nach der Firmware bin ich über diese Anleitungen schon auch gestolpert. Ist aber halt die Frage, ob es die Mühe wert ist. Das Risiko, aus einem Router, der nicht richtig funktioniert, einen Router zu machen, der „nachhaltig beschädigt” ist, würde mich im Zweifelsfall wohl weniger abschrecken.

Ich verstehe ja einerseits, daß Gerätehersteller nicht unbegrenzt neue Firmware für alte Modelle anbieten wollen. Anderseits ist mir die durchaus verbreitete Praxis mit dem Support für gebrandete OEM-Modelle völlig unverständlich, die man z.B. auch bei Motherboards oder DVD-Brennern vorfindet.
Da wird erst dem Kunden in der Werbung ein Markengerät versprochen, wenn der aber später ein Firmwareupdate braucht, so bekommt er es nicht, mit der Begründung, er habe nur ein Supermarkt-Billigprodukt. Für das gleichnamige und baugleiche Orginalgerät bekäme er aber noch jahrelang Updates.
Glauben die Hersteller wirklich, die derart geprellten Kunden würden das Gerät wegwerfen, um anschließend ein Orginalprodukt der Firma zu kaufen? Auch bei Software gibt es „Lightversionen”, die jedoch dank vergünstigtem Update auf die Vollversion den Kunden binden.
Wäre es für die Hardwarehersteller wirklich so ein Problem bei der Veröffentlichung von fehlerbereinigten Firmwareversionen auch für die OEM-Kunden Updates bereitzustellen? Oder wäre es für Großabnehmer wie in diesem Fall Arcor ein Problem z.B. von Zyxel ein fehlerbereinigtes Update einzufordern?
Mag ja sein, daß der Fehler bislang noch nicht oft gemeldet wurde (und wenn, dann vermutlich nicht so detailiert wie von mir hier beschrieben) und den Anwendern dann meist einfach ein anderes Gerät verkauft wurde.
Da dieses Modell jedoch von Arcor und AOL vertrieben wurde, dürfte es ziemlich verbreitet sein. Es ist wohl anzunehmen, daß sich alle diese Anwender früher oder später einen neuen Rechner zulegen. Den Router tauscht dagegen so schnell niemand aus (es sei denn er wird von Presse und/oder Provider extra darauf hingewiesen), denn wenn dieses Gerät erst einmal ein paar Jahre hinter dem Schreibtisch versteckt seinen Dienst verrichtet hat, dann schenkt ihm der Anwender vermutlich ebensoviel Beachtung wie einer Streckdosenleiste. (Das mache ja selbst ich als Profi zugegebenermaßen nicht viel besser.)
Die Schuld für die schlechte Internetverbindung werden viele Anwender dann wahrscheinlich bei ihrem Internetprovider suchen und den Provider wechseln. Der neue Provider macht ihnen dann wieder ein Angebot auf ein vergünstigtes Modem - und siehe da - sie fühlen sich bestätigt: der neue Provider stellt wirklich eine viel bessere Internetverbindung zur Verfügung.

Screenshot DNS Settings

Doch zurück zur Supportnachricht. Ich setzte den Router zwar nicht in einem größeren Netzwerk ein, jedoch kann man auch an einem einzelnen PC den DNS-Server explizit spezifizieren. Wenn man statt „obtain DNS server address automatically” die IP-Adresse eines DNS-Servers manuell vorgibt, dann werden die DNS-Anfragen zwar auch an den Router geschickt, sie sind jedoch nicht an ihn gerichtet, sondern passieren ihn wie alle anderen IP-Pakete. (Bei der Einstellung „automatisch beziehen” registriert sich der Zyxel Router selbst als DNS-Server bei der DHCP-Abfrage und fungiert als DNS-Proxy mit Cache. Daher waren im Log die DNS-Anfragen an die Adresse 192.168.1.1 (die Gatewayadresse des Routers) gerichtet.)
Dieser Tip ist also wirklich ein sehr guter Hinweis des Supportdienstleisters!!

Weil die Geschwindigkeit von OpenDNS in Foren oft gelobt wird, entschied ich mich, dessen Adressen einzutragen und zu testen, ob der Trick funktioniert. Wie das folgende Log zeigt, funktioniert er tatsächlich. Man erkennt jedoch auch, daß OpenDNS nicht unbedingt die beste Wahl ist.

Netzwerktrace nach Konfiguration von OpenDNS
Frame Time Of Day Source Source Port Destination Destination Port Protocol Name Description
12 19:22:32.734 MY-PC 1071, 1071(0x42f) 208.67.222.222 DNS(53), 53(0x35) DNS DNS: QueryId = 0x5C9F, QUERY (Standard query), Query for pop3.arcor.de of type Host Addr on class Internet
13 19:22:32.734 MY-PC 1100, 1100(0x44c) 208.67.222.222 DNS(53), 53(0x35) DNS DNS: QueryId = 0x6C9E, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
14 19:22:32.734 MY-PC 1101, 1101(0x44d) 208.67.222.222 DNS(53), 53(0x35) DNS DNS: QueryId = 0xA79D, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
15 19:22:32.734 [ZyXEL Communications Corporation 07A8D2] [*BROADCAST] PPPoE PPPoE: Active Discovery Initiation (PADI)
16 19:22:32.734 MY-PC 1102, 1102(0x44e) 208.67.222.222 DNS(53), 53(0x35) DNS DNS: QueryId = 0xEB9D, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
17 19:22:32.734 MY-PC 1103, 1103(0x44f) 208.67.222.222 DNS(53), 53(0x35) DNS DNS: QueryId = 0x7B9C, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
18 19:22:33.734 MY-PC 1071, 1071(0x42f) 208.67.220.220 DNS(53), 53(0x35) DNS DNS: QueryId = 0x5C9F, QUERY (Standard query), Query for pop3.arcor.de of type Host Addr on class Internet
19 19:22:33.734 MY-PC 1070, 1070(0x42e) 208.67.220.220 DNS(53), 53(0x35) DNS DNS: QueryId = 0x1C9F, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
20 19:22:33.734 MY-PC 1102, 1102(0x44e) 208.67.220.220 DNS(53), 53(0x35) DNS DNS: QueryId = 0xEB9D, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
21 19:22:33.734 MY-PC 1100, 1100(0x44c) 208.67.220.220 DNS(53), 53(0x35) DNS DNS: QueryId = 0x6C9E, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
22 19:22:33.734 MY-PC 1101, 1101(0x44d) 208.67.220.220 DNS(53), 53(0x35) DNS DNS: QueryId = 0xA79D, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
23 19:22:33.734 MY-PC 1103, 1103(0x44f) 208.67.220.220 DNS(53), 53(0x35) DNS DNS: QueryId = 0x7B9C, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
24 19:22:34.734 MY-PC 1071, 1071(0x42f) 208.67.222.222 DNS(53), 53(0x35) DNS DNS: QueryId = 0x5C9F, QUERY (Standard query), Query for pop3.arcor.de of type Host Addr on class Internet
25 19:22:34.734 MY-PC 1100, 1100(0x44c) 208.67.222.222 DNS(53), 53(0x35) DNS DNS: QueryId = 0x6C9E, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
26 19:22:34.734 MY-PC 1101, 1101(0x44d) 208.67.222.222 DNS(53), 53(0x35) DNS DNS: QueryId = 0xA79D, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
27 19:22:34.734 MY-PC 1102, 1102(0x44e) 208.67.222.222 DNS(53), 53(0x35) DNS DNS: QueryId = 0xEB9D, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
28 19:22:34.734 MY-PC 1103, 1103(0x44f) 208.67.222.222 DNS(53), 53(0x35) DNS DNS: QueryId = 0x7B9C, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
29 19:22:34.734 MY-PC 1070, 1070(0x42e) 208.67.222.222 DNS(53), 53(0x35) DNS DNS: QueryId = 0x1C9F, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
30 19:22:34.749 208.67.222.222 DNS(53), 53(0x35) MY-PC 1071, 1071(0x42f) DNS DNS: QueryId = 0x5C9F, QUERY (Standard query), Response - Success
31 19:22:34.749 208.67.222.222 DNS(53), 53(0x35) MY-PC 1100, 1100(0x44c) DNS DNS: QueryId = 0x6C9E, QUERY (Standard query), Response - Success
32 19:22:34.749 208.67.222.222 DNS(53), 53(0x35) MY-PC 1101, 1101(0x44d) DNS DNS: QueryId = 0xA79D, QUERY (Standard query), Response - Success
33 19:22:34.765 208.67.222.222 DNS(53), 53(0x35) MY-PC 1102, 1102(0x44e) DNS DNS: QueryId = 0xEB9D, QUERY (Standard query), Response - Success
34 19:22:34.765 208.67.222.222 DNS(53), 53(0x35) MY-PC 1103, 1103(0x44f) DNS DNS: QueryId = 0x7B9C, QUERY (Standard query), Response - Success
35 19:22:34.765 208.67.222.222 DNS(53), 53(0x35) MY-PC 1070, 1070(0x42e) DNS DNS: QueryId = 0x1C9F, QUERY (Standard query), Response - Success

Zunächst einmal sieht man hier fünf Anfragen an die erste konfigurierte Adresse. Die sechste ist möglicherweise einer Collision mit dem Broadcast zum Opfer gefallen.
(Allerdings hätte dann der Treiber das Paket wiederholen müssen. Möglicherweise hat er dies auch getan, nur nicht erneut an Netmon gemeldet. Hier rächt es sich, daß ich aus Bequemlichkeit wieder am sendenden PC statt am Hub mitgeschnitten habe. Aber für die vorliegende Untersuchung reicht es aus.)
Eine Sekunde später werden die (diesmal) sechs Anfragen an die alternative Serveradresse geschickt. Nochmals eine Sekunde später wieder an die erste. Und dann kommen 15 ms später die Antworten vom ersten Server. Vermutlich auf die Anfragen, die zwei Sekunden vorher an ihn gerichtet waren. (Es kommen keine weiteren Antworten. Wahrscheinlich gingen auch die Anfragen an die andere Adresse an den gleichen physischen Server, der die Wiederholungen erkannte und ignorierte.)
Es dauerte also insgesamt etwas mehr als zwei Sekunden um alle sechs Anfrgen zu beantworten. Das ist gegenüber der voherigen Situation eine gewaltige Beschleunigung. Jedoch wurden vorher die Anfragen, sofern sie beantwortet wurden, in nur 15 ms beantwortet. Wieso braucht OpenDNS so lange?
Die Antwort ist einfach: Der Server von OpenDNS befindet sich irgendwo in Californien. Meine Anfrage ging also zunächst einmal über den Atlantik. Da sich die Anfragen auf deutsche Server bezogen, die dort vermutlich nicht so oft nachgefragt werden, und weil der „TimeToLive” Wert deren DNS-Einträge recht kurz ist, waren dort die IP-Adressen mit ziemlicher Sicherheit nicht bekannt. Also mußte der DNS-Server erst einmal nachfragen, wer die Adresse denn überhaupt kennt.
Diese Information mußte er sich wahrscheinlich wieder aus Deutschland holen. Insgesamt dürfte die Kommunikation für meine Anfrage etwa 8 bis 12 mal über den Atlantik gelaufen sein, bevor die Antwort bei mir eintraf. Dafür sind zwei Sekunden eigentlich eine ganz ordentliche Zeit. Das muß aber nicht sein.
Also trage ich die DNS-Server Adresse von Arcor ein, die ich aus der Routerstatusinformation ablesen kann.

Lehre: Konfigurieren Sie nur dann OpenDNS, wenn Sie überwiegend Seiten aus den USA besuchen.

Und hier nochmal eine Aufzeichnung mit den neuen Einstellungen:

Netzwerktrace nach Konfiguration von Arcor-DNS
Frame Time Of Day Source Source Port Destination Destination Port Protocol Name Description
6 21:54:10.733 MY-PC 1037, 1037(0x40d) 195.50.140.178 DNS(53), 53(0x35) DNS DNS: QueryId = 0x58DD, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
7 21:54:10.733 MY-PC 1035, 1035(0x40b) 195.50.140.178 DNS(53), 53(0x35) DNS DNS: QueryId = 0xB0DE, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
8 21:54:10.733 MY-PC 1036, 1036(0x40c) 195.50.140.178 DNS(53), 53(0x35) DNS DNS: QueryId = 0x20DE, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
9 21:54:10.733 MY-PC 1033, 1033(0x409) 195.50.140.178 DNS(53), 53(0x35) DNS DNS: QueryId = 0x63DD, QUERY (Standard query), Query for pop3.arcor.de of type Host Addr on class Internet
10 21:54:10.733 MY-PC 1073, 1073(0x431) 195.50.140.178 DNS(53), 53(0x35) DNS DNS: QueryId = 0xB5DF, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
11 21:54:10.749 MY-PC 1074, 1074(0x432) 195.50.140.178 DNS(53), 53(0x35) DNS DNS: QueryId = 0xEBDF, QUERY (Standard query), Query for post.strato.de of type Host Addr on class Internet
12 21:54:10.765 195.50.140.178 DNS(53), 53(0x35) MY-PC 1037, 1037(0x40d) DNS DNS: QueryId = 0x58DD, QUERY (Standard query), Response - Success
13 21:54:10.765 195.50.140.178 DNS(53), 53(0x35) MY-PC 1035, 1035(0x40b) DNS DNS: QueryId = 0xB0DE, QUERY (Standard query), Response - Success
14 21:54:10.765 195.50.140.178 DNS(53), 53(0x35) MY-PC 1036, 1036(0x40c) DNS DNS: QueryId = 0x20DE, QUERY (Standard query), Response - Success
15 21:54:10.765 195.50.140.178 DNS(53), 53(0x35) MY-PC 1033, 1033(0x409) DNS DNS: QueryId = 0x63DD, QUERY (Standard query), Response - Success
16 21:54:10.765 195.50.140.178 DNS(53), 53(0x35) MY-PC 1073, 1073(0x431) DNS DNS: QueryId = 0xB5DF, QUERY (Standard query), Response - Success
17 21:54:10.765 195.50.140.178 DNS(53), 53(0x35) MY-PC 1074, 1074(0x432) DNS DNS: QueryId = 0xEBDF, QUERY (Standard query), Response - Success

So können DNS-Abfragen also auch ablaufen. Da macht Surfen doch gleich viel mehr Spaß!

Valid HTML 4.01 Strict

Valid CSS!