ruzzz
@ruzzz
C/C++, Delphi, ActionScript

Несколько IP в DNS (A-запись)

Слышал что можно распределять нагрузку выдавая тот или иной IP. Но меня интересует что будет если DNS выдает сразу два или более IP. Как ведут себя браузеры(или ОС)/поисковики, как должны, предусмотрено ли это в каких-либо спецификациях? Может ли это создать проблемы для сайта (те же поисковики)?
  • Вопрос задан
  • 43153 просмотра
Пригласить эксперта
Ответы на вопрос 5
@bondbig
Это называется DNS Round-Robin
По умолчанию ip-адреса будут выдаваться в карусельном порядке, можно настроить случайный порядок или строгий порядок.
Ответ написан
pentarh
@pentarh
При резолве DNS в сишных функциях выдается не 1 айпи а массив из айпи, который зачастую содержит 1 элемент.

Спецификация DNS допускает определение множества айпи на 1 доменное имя. Да, это называется DNS рулетка.

Рекомендаций в RFC как должен вести себя клиент, получивший несколько IP я не видел, по этому софт ведет себя весьма произвольно.

Зачастую, в соображениях лени, берется только первый IP адрес из массива, а остальные откидываются. Более продвинутый софт берет айпи один за другим пока сможет достучаться до нужного сервиса на нем. Но таких мало.

Следовательно, как будет себя вести софт — зависит от того, в каком порядке DNS сервер выдает айпишники.

Насколько я знаю, Bind отдает в том порядке, в котором они записаны в конфиге.

tinydns делает нормальный round-robin.

Из моего опыта использования DNS рулетки могу сказать что подходящий DNS сервер для этого — tinydns. А броузеры тупо берут первый в списке, поскольку если апач на одном айпи ложится, то теряется соответствующая часть трафика.
Ответ написан
shurshur
@shurshur
Конечный потребитель DNS (фактически пользователь подсистемы ресолвинга имён Вашей ОС) получает ровно один случайный IP из этого списка, в общем случае всегда разный, он может поменяться и при переходе на следующую страницу, и даже при скачивании необходимых файлов (css, скриптов, картинок) в пределах текущей страницы. В общем, рассчитывать на использование только одного сервера клиентом нельзя.

Поисковикам на это плевать, они для идентификации сайтов используют только доменное имя.
Ответ написан
@netnikogo
bind выдает рандомно
unbound всегда в одном и том же порядке как получил

клиенты берут первый ip из полученного списка
Ответ написан
@dovlados
Если nslookup выдает 2 и более IP адреса сервера для одного домена то означает, что сайт работает на каждом сервере. Браузер пытается соединиться сначала с первым IP потом после небольшой задержки с следующим IP и т.д.
Это можно использовать для борьбы с DDoS-атакой
например у google.com nslookup выдает:
Addresses: 2a00:1450:4010:c03::65
173.194.32.162
173.194.32.169
173.194.32.168
173.194.32.166
173.194.32.164
173.194.32.165
173.194.32.167
173.194.32.174
173.194.32.161
173.194.32.160
173.194.32.163

итого 12 серверов
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 40 000 до 60 000 руб.
Перформикс Москва
от 140 000 до 220 000 руб.
Quiet Media Москва
от 100 000 до 160 000 руб.