@raiboon

Как ведут себя бразуеры, когда получают от dns несколько A-записей?

Сабж.
А если какое-нибудь поведение, если по данной записи сервер долго не отвечает? А если прислал ошибку?
Он попробует в следущий раз отправить запрос на другой ip? Или сам попробует отправить тот же запрос?
  • Вопрос задан
  • 857 просмотров
Решения вопроса 2
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
Зависит от браузера. Вообще деляется на 2 группы:
1) (нормальные браузеры) выбирают первый IP из ответа системного резолвера (или что там в винде вместо него) - А-записи обычно присылаются в случайном порядке - и идут на этот IP с http(s) запросом. Не получилось - показывают ошибку.
2) (шибко умные) идут на первый IP, пытаются сделать TCP handshake. Не получилось - идут на следующий. И так до конца. _Но_ следующий ip берется только и только в том случае, если не получилось сделать handshake. Если сервер тормозит/таймаутится в 60 секунд/отвечает 5/4хх ошибкой - то браузер не пойдет на следующий.
Ответ написан
Комментировать
AxianLTD
@AxianLTD
Почти соглашусь с Сергеем. Браузеры и др. программы использующие TCP/IP самостоятельно (как правило) не реализуют код клиента DNS, т.е. не отправляют и не получают запросы DNS. Вместо этого они используют API TCP/IP для получения IP адреса по имени (direct DNS resolving), или имени по IP адресу (reverse DNS resolving). В свою очередь DNS сервер, если имеется несколько записей типа A для запрашиваемого имени будет возвращать по-очереди каждый из имеющихся адресов (при условии, что наш клиент один и DNS не использует нестандартных алгоритмов) пытаясь равномерно распределить нагрузку. Так называемый алгоритм round robin. На этом принципе основан один из приемов балансировки и/или распределения нагрузки и обеспечения отказоустойчивости.
К слову сказать некоторые браузеры (Chrome, Opera), особенно на мобильных платформах пытаются "умничать" и использовать собственные DNS сервера (не те что настроены в ОС). В этом случае в они самостоятельно отправляют и получают DNS запросы/ответы. Но все равно, DNS сервер будет отвечать как описано выше.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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