Відповіді:
Сервер DNS, що розв’язує запит, може розставити пріоритет у порядку, в якому він використовує перелічені сервери на основі даних про минулий час відповіді (RFC1035, розділ 7.2). Він також може розставити пріоритет через більш близьку підмережу (я бачив це в RFC, але не пам'ятаю, який). Якщо немає пріоритету історії чи підмережі, він може вибратись випадковим чином або просто вибрати перший. Я бачив реалізацію сервера DNS, що робить різні комбінації вище.
Клієнтська програма, що вибирає IP-адресу зі списку (з A / AAAA-записів), як правило, намагатиметься адреси в тому порядку, де вони повертаються DNS-сервером (кругла робота). Якщо клієнт не може підключитися до першої повернутої IP-адреси, він повинен спробувати другий тощо. Наприклад, це роблять усі основні браузери, однак багато інших Інтернет-клієнтських програм «забувають» цей крок і виходять з ладу, якщо вони не можуть підключитися до першої IP-адреси.
RFC 1794 охоплює питання "Круглого Робіна", яке ви задаєте.
Що стосується відповідей, більшість клієнтів DNS використовуватимуть першу IP-адресу в списку, деякі роблять підрахунки підмережі, щоб визначити, що ближче, інші вибирають випадковим чином, але більшість залежить від сервера DNS для надсилання списку.
Це залежить від клієнта - особливо важливим для всіх, хто працює з магазином Windows, є той факт, що Vista \ Windows Server 2008 вибере адресу за допомогою іншого механізму (якщо встановлено стек ipv6) для попередніх версій Windows, які обрали б першу адресу . У багатьох випадках це означає, що вони завжди обиратимуть один і той же, тобто вони не будуть "шанувати" відповіді DNS-кругозону так само, як і попередні версії. Детальне пояснення цього є в цій статті блогу Technet .
Пов’язана стаття вказує, що Windows 7 та Server 2008 R2 знову змінюють цю поведінку за замовчуванням, але я не можу знайти нічого, щоб підкріпити це.
Також варто зазначити, що це поведінка для ipv6, що відповідає стандартам, наскільки я можу сказати, хоча я б дуже радий дізнатися, що я помилявся.