Может ли кто-нибудь направить меня к информации о точный поведение браузеров, когда браузер получает несколько записей A для заданного имени хоста (например, ip1 и ip2), и одна из них недоступна.
Меня интересуют ТОЧНЫЕ детали, такие как (но не ограничиваясь ими):
Теперь предположим, что браузер сначала пробовал работать с ip2.
Конечно, все это может зависеть от браузера, а также может варьироваться в зависимости от версии и платформы, я был бы счастлив получить максимум подробностей.
Цель этого - я пытаюсь понять, что именно пользователи испытают при использовании циклического DNS на основе и отказе одного из хостов.
Пожалуйста, я НЕ спрашиваю о том, насколько плохая балансировка нагрузки DNS, и, пожалуйста, воздержитесь от ответов «не делайте этого», «это плохая идея», «вам нужно сердцебиение / прокси / BGP / что угодно» и так далее.
В конце концов, я должен был провести «исследование» сам. Вот поведение Chromium (версия 12.0.742.112) (работает на ubuntu 11.04):
Обычно это работает так: попробуйте 1-й ip, после истечения времени ожидания (через 189 секунд) попробуйте 2-й ip. Сообщения об ошибках не выводятся, пока не будут выполнены все попытки IP-адресов Следующее соединение снова начнется с первого ip (даже если секунду назад оно просто не удалось, а второй ip работал - браузеру все равно)
Одна интересная вещь - попытки TCP-соединения не сбрасываются, когда пользователь нажимает кнопку «Отмена», т.е. когда я нажимаю кнопку «Отмена» и через 60 секунд нажимаю «Повторить попытку», страница отобразится через 130 секунд (189 с первой попытки). Но если я нажму «Отмена» и нажмите обновить после 190 секунд, процесс начнется сначала.
Что касается предметов в исходном вопросе:
Не проверено. Этот блог заявляет, что Chrome кэширует DNS всего на 1 минуту, когда мы смотрим на chrome: // net-internals / # dns:
Емкость: 100 Время жизни (мс) для успешных записей: 60000 Время жизни (мс) для записей об ошибках: 0
Если первый IP-адрес работает, процесс будет таким же, и он всегда будет успешным с первой попытки.
Вместо того, чтобы говорить людям, чего вы не хотите, почему бы не объяснить, чего вы пытаетесь достичь?
Если все, что вам нужно, это известные данные, то пойдите и исследуйте себя или прочитайте документацию к любому браузеру (их сотни), о котором вы говорите.
Тем не менее, это может помочь вам узнать, что это не имеет ничего общего с DNS.
Если браузер получает запрос, он сначала просматривает свои различные кеши, чтобы увидеть, присутствует ли уже URL-адрес, а если не URL-адрес, то имя хоста.
Если нет, он обращается к системному преобразователю для разрешения имени хоста.
Если возвращаемый IP-адрес не отвечает, он наверняка кэширует его внутренне как отрицательный результат поиска, поэтому повторный прямой запрос того же URL-адреса в надежде получить для него другую запись A, вероятно, не будет иметь никакого смысла, поскольку он сохранит результат имени хоста вместе с отрицательным результатом IP.
Или вы можете предоставить дополнительную информацию.
РЕДАКТИРОВАТЬ: Я вижу, вы предоставили некоторую информацию между всеми требовательными и умными.
Отлично:
Вы также, кажется, не знаете, что записи DNS везде кэшируются, особенно на клиентах. Срок действия этих записей истекает в зависимости от того, что намеревался владелец домена, или от настроенных кешей между вами и ним. Обычно от одного часа до одного дня, поэтому не ожидайте, что преобразователь выполнит еще один DNS-запрос, если вы нажмете кнопку обновления, как сумасшедший.