Я подумывал добавить 8.8.8.8 в конец списка DNS-серверов моего адаптера в качестве резервного на случай, есливсетерпит неудачу, когда мне приходит в голову, что я на самом деле не знаю, как обрабатываются вторичные и третичные DNS-серверы.
- При каких условиях используется следующий DNS-сервер?
- Будет ли проверяться следующий сервер, если имя не будет разрешено?
- Могу ли я настроить свой компьютер для запроса нескольких серверов, если имя не распознано?
Я также обеспокоен тем, что, добавив DNS-сервер не в моей интрасети, я не смогу разрешать локальные имена.
- Если первый DNS-сервер выйдет из строя, как долго будет использоваться вторичный DNS-сервер?
- Когда мой компьютер проверяет, работает ли основной DNS-сервер, останавливает ли это мой текущий DNS-запрос?
- Как несколько DNS-серверов влияют на производительность? Если в списке моего адаптера четыре DNS-сервера и три из них не работают, будет ли он ждать три тайм-аута, прежде чем получит ответ?
Я не уверен, относится ли этот вопрос к конкретной ОС. По-разному ли это обрабатывают разные операционные системы?
Моя цель — добавить 8.8.8.8 к DNS-серверам поверх того, что DHCP выдает скриптом. Я постоянно сталкиваюсь с глупыми проблемами DNS, когда мои машины оказываются с фиктивным/недоступным/просто без DNS-сервера из-за ошибок в конфигурации DHCP, которые я не могу контролировать. Мне это надоело, но мне интересно, не вызовет ли добавление этого отказоустойчивого сервера больше проблем, чем решит.
решение1
Ответ, безусловно, зависит от операционной системы в том смысле, что нет ничегопредотвращениеопределенная операционная система ведет себя по-другому. Нет ничегонеобходимыйо запросах DNS-клиентов на нескольких серверах, которые не позволят реализации операционной системы обрабатывать DNS-запросы иначе, чем я здесь описываю.
Тем не менее, пример того, как Linux ищет DNS-имена, должен быть показательным для того, какбольшинствоЭто делают широко используемые сегодня операционные системы.
Здесь— хороший пост, подробно описывающий поведение, а также способ настроить что-то вроде того, о чем вы просили.
Общая идея заключается в том, что по умолчанию вторичные/третичные DNS-серверы используются последовательно только в том случае, если первичный DNS-сервер истекает или указывает на немаршрутизируемый IP-адрес. Даже если первичный DNS-сервер говорит «этот домен не разрешается», он не будет переходить к следующему серверу имен. Он обрабатываетлюбойдействительный ответ на запрос в качестве причинынетдля перехода к следующему DNS-серверу в списке.
Один из возможных разумных способов настройки так, чтобы локальные адреса разрешались первыми, но при этом все равно использовались Google DNS или OpenDNS вместо DNS-сервера вашего интернет-провайдера, — это настроить маршрутизатор или LAN-бокс (какой бы бокс ни был интернет-шлюзом) на использование 8.8.8.8
в качестве основного сервера имен. Конечно, шлюздолженсам по себе должен запускать сервер имен и должен быть настроен на ответ на запросы DNS для локальных имен хостов в частной подсети -- но если он не может разрешиться в локальной подсети, он должен немедленно перейти на Google DNS. Это своего рода лучшее из обоих миров.
Другой способ сделать это — настроить разные серверы имен для разных сетевых интерфейсов. Windows позволяет вам сделать это по умолчанию; статья по ссылке выше описывает способ сделать это путем настройки реализации DNS-сервера BIND9 с помощью директив forward
и forwarders
.