1

У меня есть 6 записей сервера имен в resolv.conf. Из-за недавних изменений в нашей сети я недавно добавил последние 2 и не стал комментировать старые, поскольку думал, что наличие дополнительных серверов имен не повлияет, если имя разрешено или нет, и, вероятно, это займет немного больше времени. Но без комментирования предыдущих 4 серверов имен имена не будут решаться, и мне просто интересно, почему.

Даже в руководстве resolv.conf я вижу:

Если имеется несколько серверов, библиотека распознавателя запрашивает их в указанном порядке. Если записи сервера имен отсутствуют, по умолчанию используется сервер имен на локальном компьютере. (Используемый алгоритм состоит в том, чтобы попробовать сервер имен, и, если время ожидания запроса истекло, попробуйте следующий, пока не будет исчерпан сервер имен, затем повторите попытку всех серверов имен, пока не будет выполнено максимальное количество попыток.)

Поэтому я не вижу причин, по которым он не должен работать без раскомментирования предыдущих записей сервера имен.

2 ответа2

2

Для Unix / Linux, использующего стандартный код распознавателя библиотеки C (подразумевается в ссылке на /etc/resolv.conf), записи сервера имен используются в порядке ~ 5 секунд между ними. Если первые 4 сервера имен не отвечают, вам нужно подождать не менее 20 секунд для каждого DNS-запроса. Это составляется мультипликативно, если у вас есть записи поиска и вы решаете однокомпонентные имена, к которым добавляются записи списка поиска.

Типичные приложения, например веб-браузер, перестают ждать ответа через ~ 15 секунд, поэтому с этой точки зрения восприятие "Интернет не работает", даже если ответ может быть получен. Это магическое число здесь.

В итоге, наличие дополнительных ссылок на сервер имен на известные мертвые серверы имен в системах Linux / Unix, использующие для разрешения прямой /etc/resolv.conf , наносит ущерб.

1

Наличие множества серверов - это хорошо, если вы понимаете, что ответ «не найден», полностью отличается от сбоя связи с сервером.

Допустим, ваш клиент настроен на использование Google DNS, а также указывает на внутренние серверы для Active Directory. Где ваш домен AD не доступен публично.

Если ваш клиент попытается разрешить ваш внутренний домен против общедоступного сервера и получит ответ о том, что результатов нет, то он остановится. Никаких сбоев не произошло. Другие серверы не будут запрошены. Ваш распознаватель пробует другой сервер только в случае сбоя.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .