Устранение неполадок с DNS-серверами

Попробуйте наш виртуальный агент . Он поможет вам быстро определить и устранить распространенные проблемы с DNS.

В этой статье описывается, как устранять неполадки на DNS-серверах.

Проверка конфигурации IP-адресов

  1. Запустите ipconfig /all в командной строке и проверьте IP-адрес, маску подсети и шлюз по умолчанию.

  2. Проверьте, является ли DNS-сервер заслуживающим доверия для искать имя. Если да, см. раздел Проверка проблем с достоверными данными.

  3. Выполните следующую команду.

    nslookup <name> <IP address of the DNS server>
    

    Например:

    nslookup app1 10.0.0.1
    

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

  4. Очистка кэша сопоставителя. Для этого выполните следующую команду в окне командной строки администратора:

    dnscmd /clearcache
    

    Или в окне PowerShell для администрирования выполните следующий командлет:

    Clear-DnsServerCache
    
  5. Повторите шаг 3.

Проверка проблем с DNS-сервером

Журнал событий

Проверьте следующие журналы, чтобы узнать, есть ли какие-либо зарегистрированные ошибки:

  • Приложение

  • Система

  • DNS-сервер

Тестирование с помощью запроса nslookup

Выполните следующую команду и проверьте, доступен ли DNS-сервер с клиентских компьютеров.

nslookup <client name> <server IP address>
  • Если сопоставитель возвращает IP-адрес клиента, на сервере не возникает никаких проблем.

  • Если сопоставитель возвращает ответ "Сбой сервера" или "Отказ в запросе", зона, вероятно, приостановлена или возможно, сервер перегружен. Вы можете узнать, приостановлена ли зона, проверив вкладку "Общие" свойств зоны в консоли DNS.

Если сопоставитель возвращает ответ "Истекло время ожидания запроса к серверу" или "Нет ответа от сервера", служба DNS, вероятно, не запущена. Попробуйте перезапустить службу DNS-сервера, введя следующую команду в командной строке на сервере:

net start DNS

Если проблема возникает при запуске службы, сервер может не прослушивать IP-адрес, который использовался в запросе nslookup. На вкладке Интерфейсы страницы свойств сервера в консоли DNS администраторы могут запретить DNS-серверу прослушивать только выбранные адреса. Если DNS-сервер настроен для ограничения службы определенным списком настроенных IP-адресов, возможно, IP-адрес, используемый для связи с DNS-сервером, отсутствует в списке. Вы можете попробовать другой IP-адрес в списке или добавить его в список.

В редких случаях DNS-сервер может иметь расширенную конфигурацию безопасности или брандмауэра. Если сервер находится в другой сети, доступной только через промежуточный узел (например, маршрутизатор фильтрации пакетов или прокси-сервер), DNS-сервер может использовать нестандартный порт для прослушивания и получения клиентских запросов. По умолчанию nslookup отправляет запросы на DNS-серверы через UDP-порт 53. Поэтому, если DNS-сервер использует любой другой порт, запросы nslookup завершаются ошибкой. Если вы считаете, что это может быть проблемой, проверьте, используется ли промежуточный фильтр намеренно для блокировки трафика на известных портах DNS. В противном случае попробуйте изменить фильтры пакетов или правила портов на брандмауэре, чтобы разрешить трафик через UDP/TCP-порт 53.

Проверка на наличие проблем с достоверными данными

Проверьте, является ли сервер, возвращающий неправильный ответ, основным сервером для зоны (стандартным сервером-поставщиком для зоны или сервером, использующим интеграцию Active Directory для загрузки зоны) или сервером, на котором размещена вторичная копия зоны.

Если сервер является сервером-получателем

Проблема может быть вызвана ошибкой пользователя при вводе данных в зону. Кроме того, это может быть вызвано проблемой, которая влияет на репликацию Active Directory или динамическое обновление.

Если на сервере размещена вторичная копия зоны

  1. Проверьте зону на сервере-источнике (сервере, с которого этот сервер извлекает передачи между зонами).

    Примечание

    Вы можете определить, какой сервер является основным, проверив свойства вторичной зоны в консоли DNS.

    Если имя на сервере-источнике неверно, перейдите к шагу 4.

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

  3. На сервере-получателе принудительно выполните передачу зоны из консоли DNS или выполните следующую команду:

    dnscmd /zonerefresh <zone name>
    

    Например, если зона corp.contoso.com, введите : dnscmd /zonerefresh corp.contoso.com.

  4. Проверьте сервер-получатель еще раз, чтобы убедиться, что зона была передана правильно. В противном случае у вас, вероятно, возникла проблема с передачей зоны. Дополнительные сведения см. в разделе Проблемы с переносом зоны.

  5. Если зона была передана правильно, проверьте правильность данных. В противном случае данные в основной зоне неверны. Проблема может быть вызвана ошибкой пользователя при вводе данных в зону. Кроме того, это может быть вызвано проблемой, которая влияет на репликацию Active Directory или динамическое обновление.

Проверка проблем рекурсии

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

  • Время ожидания запроса истекает до того, как запрос будет выполнен.

  • Сервер, используемый во время запроса, не отвечает.

  • Сервер, используемый во время запроса, предоставляет неверные данные.

Начните устранение неполадок на сервере, который использовался в исходном запросе. Проверьте, пересылает ли этот сервер запросы другому серверу, проверив вкладку Серверы пересылки в свойствах сервера в консоли DNS. Если установлен флажок Включить серверы пересылки и указан один или несколько серверов, этот сервер перенаправит запросы.

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

Если сервер работоспособен и может пересылать запросы, повторите этот шаг и проверьте сервер, на который этот сервер пересылает запросы.

Если этот сервер не перенаправит запросы другому серверу, проверьте, может ли этот сервер запрашивать корневой сервер. Для этого выполните следующую команду:

nslookup
server <IP address of server being examined>
set q=NS
  • Если сопоставитель возвращает IP-адрес корневого сервера, вероятно, у вас неработает делегирование между корневым сервером и именем или IP-адресом, которые вы пытаетесь разрешить. Выполните процедуру тестирования неработаемого делегирования , чтобы определить, где неработает делегирование.

  • Если сопоставитель возвращает ответ "Истекло время ожидания запроса к серверу", проверьте, указывают ли корневые указания на функционируют корневые серверы. Для этого используйте процедуру Просмотр текущих корневых указаний . Если корневые указания указывают на работающие корневые серверы, может возникнуть проблема с сетью или сервер может использовать расширенную конфигурацию брандмауэра, которая не позволяет сопоставителям запрашивать сервер, как описано в разделе Проверка проблем с DNS-сервером . Также возможно, что рекурсивное время ожидания по умолчанию слишком короткое.

Тестирование неработаемого делегирования

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

  1. В командной строке на тестируемом сервере введите следующее:

    nslookup
    server <server IP address>
    set norecursion
    set querytype= <resource record type>
    <FQDN>
    

    Примечание

    Тип записи ресурса — это тип записи ресурса, которую вы запрашивали в исходном запросе, а полное доменное имя — это полное доменное имя, для которого вы запрашивали (завершается точкой).

  2. Если ответ содержит список записей ресурсов "NS" и "A" для делегированных серверов, повторите шаг 1 для каждого сервера и используйте IP-адрес из записей ресурсов "A" в качестве IP-адреса сервера.

    • Если ответ не содержит записи ресурса "NS", делегирование нарушено.

    • Если ответ содержит записи ресурсов "NS", но нет записей ресурсов "A", введите set recursion и запросите по отдельности записи ресурсов "A" серверов, перечисленных в записях "NS". Если вы не нашли хотя бы один допустимый IP-адрес записи ресурса "A" для каждой записи ресурса NS в зоне, делегирование будет нарушено.

  3. Если вы определили, что делегирование нарушено, исправьте его, добавив или обновив запись ресурса "A" в родительской зоне, используя допустимый IP-адрес для правильного DNS-сервера для делегированной зоны.

Просмотр текущих корневых подсказок

  1. Запустите консоль DNS.

  2. Добавьте DNS-сервер, на который не удалось выполнить рекурсивный запрос, или подключитесь к нему.

  3. Щелкните правой кнопкой мыши сервер и выберите Свойства.

  4. Щелкните Корневые подсказки.

Проверьте базовое подключение к корневым серверам.

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

  • Если корневые серверы не отвечают на связь по IP-адресу, ВОЗМОЖНО, IP-адреса корневых серверов изменились. Однако нечасто можно увидеть перенастройку корневых серверов.

Проблемы с передачей зоны

Выполните следующие проверки:

  • Проверьте عارض الأحداث для основного и дополнительного DNS-сервера.

  • Проверьте сервер-источник, чтобы узнать, отказывается ли он отправить передачу в целях безопасности.

  • Перейдите на вкладку Передача зоны в свойствах зоны в консоли DNS. Если сервер ограничивает передачу зоны списком серверов, например перечисленных на вкладке Серверы имен свойств зоны, убедитесь, что сервер-получатель находится в этом списке. Убедитесь, что сервер настроен для отправки передачи между зонами.

  • Проверьте сервер-источник на наличие проблем, выполнив действия, описанные в разделе Проверка проблем с DNS-сервером . При появлении запроса на выполнение задачи на клиенте выполните задачу на сервере-получателе.

  • Проверьте, выполняется ли на сервере-получателе другая реализация DNS-сервера, например BIND. Если это так, проблема может иметь одну из следующих причин:

    • Сервер-источник Windows может быть настроен для отправки быстрой передачи между зонами, но сторонний сервер-получатель может не поддерживать быструю передачу между зонами. В этом случае отключите быструю передачу зоны на сервере-источнике из консоли DNS, установив флажок Включить привязку вторичных реплик на вкладке Дополнительно свойств сервера.

    • Если зона прямого просмотра на сервере Windows содержит тип записи (например, запись SRV), которую сервер-получатель не поддерживает, у сервера-получателя могут возникнуть проблемы с извлечением зоны.

Проверьте, выполняется ли на основном сервере другая реализация DNS-сервера, например BIND. Если это так, возможно, зона на сервере-источнике содержит несовместимые записи ресурсов, которые Windows не распознает.

Если главный или вторичный сервер выполняет другую реализацию DNS-сервера, проверьте оба сервера, чтобы убедиться, что они поддерживают те же функции. Сервер Windows можно проверить в консоли DNS на вкладке Дополнительно на странице свойств сервера. Помимо поля Включить привязку вторичных реплик на этой странице есть раскрывающийся список Проверка имени . Это позволяет выбрать принудительное применение строгого соответствия RFC для символов в DNS-именах.