Howto: Und plötzlich war der DNS-Server grottenlahm

Am Abend vorher ging noch alles und heute das: der Seitenaufbau im Webbrowser dauert ewig, Seiten werden, wenn überhaupt, erst nach mehrmaligem Reload angezeigt, und oftmals ohne Bilder oder offensichtlich ohne CSS. Schlechte Internetverbindung? Ein Virus? Probleme bei den DNS-Servern?

26. Jun 2013 21:01

Der Virenscanner leuchtet strahlend grün und ein Blick auf die Verbindungsparameter in der FritzBox zeigen: alles schön. Bei der schlechten Verbindung nach News zu Problemen auf den Root-DNS-Servern zu suchen, war keine Option ... und das sich mein Router plötzlich von selbst umkonfiguriert hat, ist natürlich auch ausgeschlossen.

Erster Test: ein Ping auf der Kommandozeile. Ergebnis: intern alles in Ordnung aber ins Internet 100% Paketverlust. Laut Fritzbox war die Internetverbindung jedoch aufgebaut. Ein Ping -t zeigt: nach etwa 40 Versuchen war einer erfolgreich, dieser aber dann mit

Antwort von 173.194.69.94: Bytes=32 Zeit=43ms TTL=49

Die Werte waren also geradezu hervorragend, wenn der Ping erfolgreich war, aber eben nur etwa jeder 40ste Ping war auch erfolgreich. Ein Ping auf eine IP-Adresse direkt war ohne Ausfall, also war klar: das Problem ist die Namensauflösung. Vielleicht war es ein Windows-Update (die auf meinem Arbeitsplatz-Terminal immer automatisch installiert werden)? Aber nein, unter Linux das gleiche Bild.

Also einen Blick auf die Logeinträge des DNS-Servers geworfen. Und siehe da: nach etlichen Zeilen mit "error ..." folgende Zeile:

success resolving 'de.pool.ntp.org/AAAA' (in 'pool.ntp.org'?) after disabling EDNS

EDNS? Was is denn das nun auf einmal? Aber wichtiger: wie kann man EDNS dauerhaft ausschalten? Das Handbuch zu bind erwähnt EDNS in Verbindung mit dem "server"-Statement und auch, daß dieses "Feature" standardmäßig eingeschaltet ist.

EDNS dauerhaft ausschalten

Mit der Frage, wozu EDNS gut ist und ob ich das brauche, beschäftige ich mich später. Erstmal muss das jedenfalls weg. Dazu fügt man in der Konfiguration des Nameserver Folgendes ein:

server ::/0 { edns no; };
server 0.0.0.0/0 { edns no; };


Mit diesem kleinen Trick wird bind angewiesen, sämtliche Server sowohl über IPv6 wie auch über IPv4 nur noch ohne EDNS abzufragen. Danach den DNS-Server neu starten und testen und voila! der Spuk ist vorüber.

Aber was hat es eigentlich mit EDNS auf sich?

Unter dem Begriff EDNS (Extended DNS) werden verschiedene Erweiterungen des Domain Name Systems zusammengefasst, die insbesondere für DNSSEC verwendet werden und also mit den Bestrebungen zusammenhängen, mit denen Authentizität und Datenintegrität von DNS-Transaktionen sicherer gemacht werden sollen.

Auf der ISC-Webseite ist in Verbindung mit bind, der am meisten verbreiteten DNS-Server-Software, seltsamerweise zu lesen: EDNS (Extension Mechanisms for DNS) have been available for around eight years and many servers (and all root servers) support it. Some firewalls don't support EDNS by default, some authoritative servers fail to respond to EDNS queries (instead of returning an required error), and timeouts also may be caused by network problems, dead servers, broken middle boxes, and broken authoritative servers. BIND 9.5 makes fallback to plain DNS from EDNS due to timeouts more visible.

Es scheint also, als ob ich zumindest nichts falsch mache, wenn ich EDNS für die nächste Zeit ausgeschaltet lasse.

 
π