Як клієнти DNS вибирають IP-адресу, коли отримують кілька відповідей?


25

Коли сервер DNS шукає IP-адресу для клієнта, і він отримує список декількох серверів DNS для запиту, як його вибрати? Аналогічно, коли клієнт DNS отримує список декількох IP-адрес для FQDN, як його вибрати? Це конкретна реалізація, або вона охоплюється RFC?

Відповіді:


18

Сервер DNS, що розв’язує запит, може розставити пріоритет у порядку, в якому він використовує перелічені сервери на основі даних про минулий час відповіді (RFC1035, розділ 7.2). Він також може розставити пріоритет через більш близьку підмережу (я бачив це в RFC, але не пам'ятаю, який). Якщо немає пріоритету історії чи підмережі, він може вибратись випадковим чином або просто вибрати перший. Я бачив реалізацію сервера DNS, що робить різні комбінації вище.

Клієнтська програма, що вибирає IP-адресу зі списку (з A / AAAA-записів), як правило, намагатиметься адреси в тому порядку, де вони повертаються DNS-сервером (кругла робота). Якщо клієнт не може підключитися до першої повернутої IP-адреси, він повинен спробувати другий тощо. Наприклад, це роблять усі основні браузери, однак багато інших Інтернет-клієнтських програм «забувають» цей крок і виходять з ладу, якщо вони не можуть підключитися до першої IP-адреси.


4

RFC 1794 охоплює питання "Круглого Робіна", яке ви задаєте.

Що стосується відповідей, більшість клієнтів DNS використовуватимуть першу IP-адресу в списку, деякі роблять підрахунки підмережі, щоб визначити, що ближче, інші вибирають випадковим чином, але більшість залежить від сервера DNS для надсилання списку.


3

Це залежить від клієнта - особливо важливим для всіх, хто працює з магазином Windows, є той факт, що Vista \ Windows Server 2008 вибере адресу за допомогою іншого механізму (якщо встановлено стек ipv6) для попередніх версій Windows, які обрали б першу адресу . У багатьох випадках це означає, що вони завжди обиратимуть один і той же, тобто вони не будуть "шанувати" відповіді DNS-кругозону так само, як і попередні версії. Детальне пояснення цього є в цій статті блогу Technet .

Пов’язана стаття вказує, що Windows 7 та Server 2008 R2 знову змінюють цю поведінку за замовчуванням, але я не можу знайти нічого, щоб підкріпити це.

Також варто зазначити, що це поведінка для ipv6, що відповідає стандартам, наскільки я можу сказати, хоча я б дуже радий дізнатися, що я помилявся.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.