ruzzz
@ruzzz
C++/Python

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

Слышал что можно распределять нагрузку выдавая тот или иной IP. Но меня интересует что будет если DNS выдает сразу два или более IP. Как ведут себя браузеры(или ОС)/поисковики, как должны, предусмотрено ли это в каких-либо спецификациях? Может ли это создать проблемы для сайта (те же поисковики)?
  • Вопрос задан
  • 80972 просмотра
Пригласить эксперта
Ответы на вопрос 6
@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 серверов
Ответ написан
Комментировать
macik
@macik
Доброго времени суток.
Ну а если какой-то из IP не доступен. Как в этом случаи поведет себя клиент?
У меня на одном имени сидит два IP, два разных канала все завязанное на один почтовый сервер.

Вижу что в разных сетях берут разные IP, в основном завязано на близость маршрута. Но вот что будет если доступа нет к одному IP ?!
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы