Wie wählen DNS-Clients eine IP-Adresse aus, wenn sie mehrere Antworten erhalten?

25

Wenn ein DNS-Server nach einer IP-Adresse für einen Client sucht und eine Liste mit mehreren abzufragenden DNS-Servern erhält, wie wählt er einen aus? Wenn ein DNS-Client eine Liste mit mehreren IP-Adressen für einen vollqualifizierten Domänennamen erhält, wie wählt er dann eine aus? Ist es implementierungsspezifisch oder wird es in einem RFC behandelt?

bpfinn
quelle

Antworten:

18

Ein DNS-Server, der eine Abfrage auflöst, kann die Reihenfolge, in der er die aufgelisteten Server verwendet, basierend auf historischen Antwortzeitdaten priorisieren (RFC1035, Abschnitt 7.2). Es kann auch eine Priorisierung durch ein näheres Subnetz geben (ich habe dies in RFC gesehen, kann mich aber nicht erinnern, welches). Wenn keine Historie oder Subnetzpriorität verfügbar ist, kann diese zufällig ausgewählt oder einfach die erste ausgewählt werden. Ich habe gesehen, dass DNS-Server-Implementierungen verschiedene Kombinationen der oben genannten ausführen.

Ein Client-Programm, das eine IP-Adresse aus einer Liste (von A / AAAA-Einträgen) auswählt, versucht im Allgemeinen die Adressen in der Reihenfolge, in der sie vom DNS-Server zurückgegeben wurden (Round-Robin). Wenn der Client keine Verbindung zur ersten zurückgegebenen IP-Adresse herstellen kann, sollte er die zweite versuchen und so weiter. Beispielsweise tun dies alle gängigen Browser, jedoch "vergessen" viele andere Internet-Client-Programme diesen Schritt und schlagen fehl, wenn sie keine Verbindung zur ersten IP-Adresse herstellen können.

Jesper
quelle
4

RFC 1794 Deckt die Round Robin-Frage ab, die Sie stellen.

Was die Antworten betrifft, verwenden die meisten DNS-Clients die erste IP-Adresse in der Liste. Einige führen Subnetzberechnungen durch, um herauszufinden, welche näher liegen, andere wählen sie nach dem Zufallsprinzip aus, die meisten hängen jedoch vom DNS-Server ab, der die Liste sendet.

Mark Turner
quelle
3

Dies hängt vom Client ab. Von besonderer Bedeutung für jeden, der einen Windows-Shop betreibt, ist die Tatsache, dass Vista \ Windows Server 2008 die Adresse nach einem anderen Mechanismus auswählt (wenn der ipv6-Stapel installiert ist) als frühere Windows-Versionen, bei denen die erste Adresse ausgewählt wird . In vielen Fällen bedeutet dies, dass sie immer dasselbe auswählen, dh DNS-Round-Robin-Antworten werden nicht auf die gleiche Weise wie in früheren Versionen "gewürdigt". Eine ausführliche Erklärung dazu finden Sie in diesem Technet-Blog-Artikel .

Der verknüpfte Artikel weist darauf hin, dass Windows 7 und Server 2008 R2 dieses Standardverhalten erneut ändern, ich jedoch nichts finden kann, um das zu sichern.

Es ist auch erwähnenswert, dass dies das standardkonforme Verhalten für ipv6 ist, soweit ich das beurteilen kann, obwohl ich sehr froh sein würde, herauszufinden, dass ich falsch lag.

Helvick
quelle