Angenommen, ich habe eine Abfrage für einen TXT-Eintrag für m1._domainkey.amazon.com gesendet.
nslookup -q=txt m1._domainkey.amazon.com
Angenommen, die autoritativen Nameserver für amazon.com sind
amazon.com nameserver = ns1.amzndns.com.
amazon.com nameserver = ns1.amzndns.org.
amazon.com nameserver = ns1.amzndns.net.
Was würde passieren, wenn dieser TXT-Eintrag auf dem ersten autoritativen Nameserver, den der Resolver abfragt, ns1.amzndns.com, NICHT vorhanden ist, aber auf einem anderen, ns1.amzndns.org, vorhanden ist? Ist es üblich, dass der Resolver weiterhin Nameserver abfragt, bis er eine Antwort erhält?
In der Praxis habe ich die Erfahrung gemacht, dass ich den TXT-Record bekomme, obwohl dieser nicht auf allen Nameservern vorhanden ist.
Bitte fügen Sie Ihrer Antwort Dokumentation/Referenz beidamit ich das selbstständig studieren kann.
Danke fürs Lesen.
Antwort1
DerAutoritative NameserverSetzen Sie ein Protokoll-Flag, genannt„Autoritative Antwort“ (AA)Bit in seinen Antworten und der Resolver betrachtet diese Antwort als Wahrheit.
Wenn die Antwort positiv ist, enthält die Antwort den angeforderten Ressourcendatensatz.
Wenn der maßgebliche Nameserver diesen Ressourceneintrag nicht hat, ist die Antwort eine NXDOMAIN-Nachricht.
Wenn Ihre autoritativen Nameserver inkonsistent sind, hängt die Antwort, die ein Client erhält, davon ab, welcher autoritative Nameserver abgefragt wurde. Und diese Antwort wird als die Wahrheit betrachtet.
Ist es üblich, dass der Resolver so lange Nameserver abfragt, bis er eine Antwort erhält?
Ja, aber nur, wenn der/die erste(n) Nameserver überhaupt nicht antworten.
Sobald eine (positive oder negative) Antwort eingeht, muss der Resolver Ihre anderen Nameserver nicht mehr abfragen.
(Es ist nicht so, dass sich Ihr Resolver wie ein Sechsjähriger verhält und, wenn ein Elternteil eine bestimmte Antwort gibt, zum anderen Elternteil geht, in der Hoffnung, dass dieser eine andere Antwort erhält, die ihm besser gefällt.)
Antwort2
Das Verhalten von Resolvern ist implementierungsabhängig.
Microsoft Windows 10 fragt beispielsweise alle Nameserver parallel ab. Der Client verwendet den ersten Server, der antwortet, auch wenn es eine negative Antwort ist.
Wenn ein Client Nameserver nacheinander abfragt, wird er dies tun. Wenn keine Antwort empfangen wird, wird eine Zeitüberschreitung gemeldet und er fährt mit dem nächsten konfigurierten Nameserver fort. Wenn eine Antwort empfangen wird, ist die Abfrage abgeschlossen, auch wenn es sich um eine negative Antwort handelt.
Was nicht passieren wird, ist, dass der Client nicht auf die Antwort aller Nameserver wartet. Der Client verwendet nicht mehrere Antworten, sondern nur die erste Antwort.
Wenn Amazon beispielsweise 100 Nameserver hat und nur einer davon über einen Ressourceneintrag verfügt, und ein Client einen der anderen 99 Nameserver abfragt, erhält er für den Ressourceneintrag eine negative Antwort.
https://superuser.com/questions/969171/multihomed-windows-10-dns-resolution-timeouts/970322#970322
in practice, I have seen that I will get the TXT record even though it is not on all nameservers.
Wenn Sie Fragen zu einem Datensatz haben, geben Sie uns gerne den Datensatz weiter, der das Verhalten reproduziert, einschließlich der Kundendetails, damit wir es reproduzieren können.
Mehr Informationen:
Microsoft führte die parallele Namensauflösung für A/AAAA-Einträge aufgrund zahlreicher Vorfälle ein, bei denen Nameserver falsch konfiguriert worden waren. Dies führte in der Regel zu großen Problemen, wenn nicht primäre Nameserver abgefragt wurden, weil der primäre nicht verfügbar war. Der iterative Auflösungsprozess hat Timeouts, und jede Ebene kann unterschiedliche Timeouts und ein kumulatives Timeout haben. Es gibt auch Regeln für die Verwendung von Ergebnissen mehrerer Netzwerkadapter. Dies führte zu Szenarien, in denen einige Organisationen vier oder fünf Nameserver konfiguriert hatten, um eine hohe Verfügbarkeit zu gewährleisten. Leider trat beim Prozess nach dem dritten Server ein Timeout auf, sodass die DNS-Strategie ungültig war, die Notfallwiederherstellungsstrategie ungültig war und andere eigene Probleme verursachte.
Wenn Sie nslookup verwenden, um das Verhalten eines Resolvers zu simulieren und eine iterative Abfrage an einen bestimmten Nameserver durchzuführen, verwenden Sie den -norecurse
Schalter.