3

У меня есть два DNS-сервера, настроенные в сетевых настройках Windows:

Preferred DNS server: Мой DNS-сервер

Alternate DNS server: общедоступный DNS, предоставленный провайдером

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

Насколько я понимаю, когда частный DNS разрешает IP, он не должен идти для разрешения общего DNS. Когда я проверяю его в командной строке, он разрешается только во внутренней сети, но в браузере это не то же самое.

Почему это происходит и как я могу это исправить?

2 ответа2

6

1) Это не работает таким образом.

Я усвоил тяжелый урок, что Windows не использует этот список DNS-серверов по порядку. Вы не можете предполагать, что он просто пойдет по списку, когда не сможет разрешить имя.

На TechNet есть довольно длинное объяснение, которое вы можете найти здесь. Проблема, с которой я лично столкнулся, была вызвана этим небольшим фрагментом здесь:

Служба DNS-клиента отслеживает, какие серверы отвечают на запросы имен быстрее, и перемещает серверы вверх или вниз по списку в зависимости от того, насколько быстро они отвечают на запросы имен.

У нас было пять DNS-серверов, перечисленных в наших настройках DHCP, последние два были локальными интернет-провайдерами. Остальные три были очень старыми машинами, и мы решили, что было бы лучше добавить серверы локального провайдера в качестве резервной копии. Угадай, чьи были быстрее?

Это не весело, когда серверы перестают разрешать внутренние имена.

Это побудило меня угрожать переходом на Linux.

2) Так почему же это работает в командной строке?

Я предполагаю, что вы использовали nslookup , который всегда будет использовать первый сервер в вашем списке DNS, если вы не укажете иначе. Поскольку вы всегда проверяли свой частный DNS-сервер, он всегда работал. После того, как вы откроете Internet Explorer и начнете фактически пытаться разрешать имена, поведение будет другим (как указано на длинной блок-схеме выше).

Разве это не чудесно сбивает с толку? Я неделями гнался за проблемами с разрешением имен, задаваясь вопросом, почему он всегда работал с использованием nslookup но по какой-то причине Lotus Notes так и не смог найти свой почтовый сервер. Я не понял этого, пока не использовал Wireshark, чтобы проверить, как на самом деле он разрешает имена.

3) Как я могу это исправить?

Вы можете исправить вашу конкретную проблему, настроив DNS-сервер с помощью сервера пересылки. Когда ваш частный DNS-сервер не может найти имя, он перенаправит запрос на указанный вами сервер. Таким образом, вы можете просто использовать свой DNS-сервер и ничего больше, предотвращая появление странного поведения.

2

Вместо того чтобы настраивать два DNS-сервера, вам нужно использовать только свой частный DNS, а затем получить результаты проверки этого DNS-сервера, которые он не знает, с внешним DNS. Точный способ настройки зависит от вашего частного DNS-сервера, но это должно дать более единообразные результаты, поскольку ваш альтернативный DNS-сервер может использоваться, когда он считает, что основной сервер занят.

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