In unserem NS-Eintrag sind zwei DNS-Server aufgeführt. Letzte Nacht ist einer unserer DNS-Server ausgefallen. Wie erwartet haben einige DNS-Server unsere Hostnamen nicht aufgelöst. Ich ging davon aus, dass dies nur vorübergehend sein und funktionieren würde, sobald die TTL unserer NS-Datensätze abläuft (1 Stunde).
Eine Stunde später bekam ich immer noch DNS-Timeouts von Desktops, die Earthlink-, Verizon- und OpenDNS-Server verwendeten. Ich habe getestet, ob der andere DNS-Server antwortet:
dig @ns2.example.com www.example.com +short
Das hat funktioniert.
Meine Fragen:
- Hat jemand eine Antwort darauf, warum andere DNS-Server unseren anderen DNS-Server auch nach Ablauf der TTL nicht erreicht haben?
- Bevorzugen DNS-Server den Haupt-DNS-Server einer Domain (aus dem
SOA
Datensatz)? - Gibt es einen Algorithmus, mit dem ein Nameserver aus den verfügbaren NS-Einträgen ausgewählt wird? Ich gehe davon aus, dass dies implementierungsspezifisch ist, aber möglicherweise gelten hier einige Standards.
domain-name-system
bind
isp
Belmin Fernandez
quelle
quelle
Antworten:
Dies ist eine unglückliche Verärgerung. Mehrere DNS-Server sollen die Zuverlässigkeit erhöhen, in der Praxis hat dies jedoch häufig den umgekehrten Effekt.
Das Problem ist, dass der Client nur so lange auf eine Antwort wartet und der Server ungefähr so lange wartet. Angenommen, Sie haben zwei DNS-Server, A und B. Angenommen, A funktioniert und B ist ausgefallen. Das passiert:
Der Client stellt eine Verbindung zum Nameserver Z her und fragt ihn nach den Informationen. Z wählt B und sendet eine Abfrage.
Der Client hat eine Zeitüberschreitung, weil der Nameserver Z nicht geantwortet hat.
Der Client versucht es mit dem Nameserver Y. Y wählt B und sendet eine Abfrage.
Der Nameserver Z hat eine Zeitüberschreitung und versucht es mit A. Er erhält die richtige Antwort, aber der Client wartet nicht mehr.
Der Client hat eine Zeitüberschreitung, weil der Nameserver Y nicht geantwortet hat.
Der Client gibt auf, da beide Nameserver nicht antworten.
Der Nameserver Y hat eine Zeitüberschreitung und versucht es mit A. Er erhält die richtige Antwort, aber der Client wartet nicht mehr.
Und es gibt keine gute Lösung. Je länger Sie warten, bis ein Nameserver antwortet, desto länger müssen Sie warten, da der Nameserver, auf den Sie warten, länger wartet. Das Problem war wohl, dass Y und Z B nicht schnell genug aufgaben.
Wenn einer Ihrer Nameserver ausfällt, treten bei einigen Clients aus purem Pech Auszeiten auf, da sie nur die schlechten ausprobiert haben.
Auf der positiven Seite, wenn Sie zwei Nameserver haben und einer ausfällt, erhalten 75% der Nameserver eine Antwort anstelle von 0%.
quelle
Z
) des Clients wird also nicht zwischenspeichern, welcher Nameserver zuletzt verwendet wurde?