Jak klienci DNS wybierają adres IP, gdy otrzymują wiele odpowiedzi?

25

Kiedy serwer DNS szuka adresu IP dla klienta i otrzymuje listę wielu serwerów DNS, które mają zostać wysłane zapytania, w jaki sposób wybiera jeden? Podobnie, gdy klient DNS otrzymuje listę wielu adresów IP dla nazwy FQDN, w jaki sposób wybiera jeden? Czy jest on specyficzny dla implementacji, czy jest objęty RFC?

bpfinn
źródło

Odpowiedzi:

18

Serwer DNS rozwiązujący zapytanie może nadać priorytet kolejności, w jakiej korzysta z wymienionych serwerów, na podstawie danych historycznych czasów odpowiedzi (RFC1035 sekcja 7.2). Może także nadawać priorytety bliższej podsieci (widziałem to w RFC, ale nie pamiętam, które). Jeśli nie jest dostępny żaden priorytet historii lub podsieci, może wybrać losowo lub po prostu wybrać pierwszy. Widziałem implementacje serwera DNS wykonujące różne kombinacje powyższych.

Program kliencki wybierający adres IP z listy (rekordów A / AAAA) zazwyczaj spróbuje adresów w kolejności, w jakiej zostały zwrócone przez serwer DNS (round robin). Jeśli klient nie może połączyć się z pierwszym zwróconym adresem IP, powinien wypróbować drugi i tak dalej. Na przykład robią to wszystkie główne przeglądarki, jednak wiele innych programów klienckich „zapomina” o tym kroku i kończy się niepowodzeniem, jeśli nie mogą połączyć się z pierwszym adresem IP.

Jesper
źródło
4

RFC 1794 Obejmuje pytanie Robin Round Round.

Jeśli chodzi o odpowiedzi, większość klientów DNS użyje pierwszego adresu IP na liście, niektórzy wykonują obliczenia podsieci, aby dowiedzieć się, który jest bliższy, inni wybierają losowo, ale większość zależy od serwera DNS, aby wysłać listę.

Mark Turner
źródło
3

Zależy to od klienta - szczególnie istotne dla każdego, kto prowadzi sklep z systemem Windows, jest fakt, że Vista \ Windows Server 2008 wybierze adres przy użyciu innego mechanizmu (jeśli zainstalowany jest stos ipv6) do wcześniejszych wersji Windows, które wybiorą pierwszy adres . W wielu przypadkach oznacza to, że zawsze wybiorą ten sam, tzn. Nie będą „honorować” odpowiedzi rundy DNS robin w taki sam sposób, jak wcześniejsze wersje. Szczegółowe wyjaśnienie tego znajduje się w tym artykule na blogu technet .

Połączony artykuł wskazuje, że Windows 7 i Server 2008 R2 ponownie zmieniają to domyślne zachowanie, ale nie mogę znaleźć niczego, co by to uzasadniało.

Warto również zauważyć, że jest to zachowanie zgodne ze standardami dla ipv6, o ile mogę powiedzieć, chociaż z przyjemnością dowiem się, że się myliłem.

Helvick
źródło