Leider lautet die Antwort hier "es kommt darauf an". Die Faktoren, von denen es abhängt, hängen von der Domäne und der Einrichtung der besitzenden Server sowie der Einrichtung Ihres eigenen lokalen DNS ab.
Zunächst zum Beispiel zu den zurückgegebenen NS-Datensätzen: Die Reihenfolge, in der diese Datensätze zurückgegeben werden, kann beliebig gewählt werden, sodass die Reihenfolge bei jeder Anforderung unterschiedlich sein kann. Da dies jedoch nicht bei allen DNS-Implementierungen der Fall ist, erhalten Sie möglicherweise eine statisch geordnete Liste. Der Punkt ist, dass Sie nicht sicher sein können.
Als Nächstes fragen einige DNS-Implementierungen jeden NS parallel ab und verwenden denjenigen, der zuerst antwortet. Andere schlagen jeweils zu, ermitteln über eine bestimmte Anzahl von Anforderungen die schnellste und verwenden diese. Oder es könnte nur ein Round-Robin sein.
Es gibt mehrere RFCs für DNS. Zwei der nützlicheren, die ich gefunden habe, sind:
http://www.faqs.org/rfcs/rfc1912.html
http://www.faqs.org/rfcs/rfc1033.html
Mir ist klar, dass dies eine Art Nicht-Antwort ist, ohne dass Sie etwas Bestimmtes wegnehmen müssen. Angesichts der obigen Ausführungen müssen Sie das Verhalten für eine bestimmte Domain jedoch nur testen.
Die häufigste Implementierung, die ich auf Client-Ebene gesehen habe, wie z. B. die ISPs auf der ganzen Welt, lautet wie folgt:
Dieser Vorgang wird für JEDE Datensatzsuche wiederholt. Nur die erste Abfrage erledigt jedoch den gesamten Job. Danach werden die Nameserver-IPs zwischengespeichert, und nachfolgende Abfragen an den DNS-Cache-Server des Internetdienstanbieters können schnell zu Schritt 8 übergehen.
Was nun die Randomisierung von Schritt 8 betrifft, so funktioniert dies auf Rekordebene. Angenommen, der Breitband-Abonnent dieses Internetdienstanbieters hat nach den folgenden Aufzeichnungen gefragt:
Jeder Datensatz wird als eigene "Entität" behandelt, unabhängig zwischengespeichert und nachgeschlagen. Nehmen wir also an, der Abonnent und der ISP sind noch nie zuvor auf die Domain gestoßen, und beide haben vollständig keine zwischengespeicherten Datensätze. Die Suchanfragen könnten wie folgt lauten:
Immer wenn die zwischengespeicherten Datensätze vorübergehend abgelaufen sind, wird der Vorgang wiederholt, sodass Sie nicht einmal wissen, dass nachfolgende Anforderungen für diesen Datensatz denselben Server erneut verwenden.
Es ist daher Ihr höchstes Ziel, sicherzustellen, dass alle Ihre DNS-Server vollständig miteinander synchronisiert sind und jeden DNS-Eintrag auf jedem Server perfekt widerspiegeln . Sie wissen nie , auf welchen Server ein DNS-Client zugreifen wird, und können sich auf keinerlei Reihenfolge verlassen. Es gibt keine solche Sache.
Wie von Adam C erwähnt, könnten die DNS-Server auf Serverebene (example.com) selbst NS-Einträge zurückgeben und deren Reihenfolge nach dem Zufallsprinzip bestimmen. Bei normalen DNS-Servern kommt es häufig vor, dass sie ihre NS-Einträge zufällig auswählen, da es unwahrscheinlich ist, dass eine schlechte DNS-Implementierung immer den ersten zurückgegebenen Nameserver auswählt. Die zuvor erwähnten ROOT TLD-Nameserver werden die Liste jedoch niemals zufällig sortieren, und ihre Liste ist das, was für die Auflösung der Domäne wirklich wichtig ist. Aus diesem Grund wählen die meisten Implementierungen einen zufälligen Server aus den Nameserver-Listen aus, um zu vermeiden, dass immer derselbe Server erreicht wird und dieser überlastet wird.
Okay, das ist Ihre Grundlage für die Funktionsweise von DNS und für das, woran Sie sich erinnern sollten.
Haftungsausschluss: Höhere Lebensziele als die Verwaltung von DNS sind möglicherweise verfügbar, werden jedoch separat verkauft. Verwenden Sie Ihre Vorstellungskraft. ;-)
quelle