Проверка работы DNS-сервера на Windows Server 2016 — задача, с которой рано или поздно сталкивается каждый системный администратор. Неполадки в могут парализовать сеть, поэтому важно быстро диагностировать проблему: отвечает ли сервер на запросы, корректно ли разрешаются имена, нет ли ошибок в конфигурации. В этой статье разберём все способы проверки — от простых команд до инструментов мониторинга, которые помогут выявить неисправности на ранних этапах.

Начнём с базовых методов: их достаточно для 80% случаев. Если стандартные команды не дают результата, перейдём к углублённой диагностике. А в конце — чек-лист для быстрой проверки в экстренных ситуациях.

Базовые команды для проверки в командной строке

Первое, что нужно сделать, — убедиться, что DNS-сервер вообще доступен. Для этого используем утилиты nslookup и ping. Откройте командную строку от имени администратора и выполните:

nslookup — если сервер работает, вы увидите ответ вроде Server: dns-server.yourdomain.local и Address: 192.168.1.10. Если вместо этого выводится ошибка типа DNS request timed out, значит, сервер не отвечает.

ping ya.ru — если имя не разрешается в IP, проблема точно в DNS. Для сравнения попробуйте ping 87.250.250.242 (IP Yandex). Если пинг проходит по IP, но не по имени — не работает.

💡

Если nslookup висит без ответа, проверьте брандмауэр: порт 53 (DNS) должен быть открыт для входящих соединений.

Ещё одна полезная команда — dnscmd. Она позволяет управлять DNS-сервером напрямую. Например, чтобы проверить зону:

dnscmd /query DNS-SERVER-NAME yourdomain.local /zoneinfo

Если команда возвращает ошибку, возможно, проблема в правах доступа или в конфигурации зоны.

Команда/Инструмент Что проверяет Пример вывода при ошибке
nslookup Доступность DNS-сервера и разрешение имён *** Request to DNS-SERVER timed-out
Test-DnsServer Работоспособность сервера и зон Zone 'yourdomain.local' is not loaded
DNS Manager Статус зон и синтаксис записей Красный крестик на зоне или ошибка в journals

Проверка через и графический интерфейс

Windows Server 2016 предлагает мощные инструменты в PowerShell. Для проверки используйте:

Get-DnsServerZone — покажет все зоны на сервере.

Test-DnsServer — тестирует работоспособность сервера (доступно в модуле DnsServer). Пример:

Test-DnsServer -ComputerName DNS-SERVER-NAME -ZoneName "yourdomain.local"

Через графический интерфейс проверьте:

  • DNS Manager (dnsmgmt.msc): откройте консоль, выберите сервер и посмотрите на статус зон. Зоны с ошибками будут помечены красным крестиком.
  • Event Viewer (eventvwr.msc): фильтруйте журнал по источнику DNS-Server. Обратите внимание на ошибки с кодами 4000–4015 (проблемы с репликацией) или 7036 (ошибки загрузки зон).

В DNS Manager также можно запустить тест зоны: правый клик по зоне → Properties → вкладка General → Test Now. Это проверит синтаксис записей и целостность зоны.

Диагностика репликации и кэша DNS

Если DNS-сервер работает, но клиенты получают неактуальные данные, проблема может быть в репликации или кэше. Проверьте:

Репликация зон: В DNS Manager выберите зону, правый клик → Properties → вкладка Replication. Убедитесь, что репликация настроена на все необходимые серверы. Для проверки синхронности выполните:

dnscmd /query DNS-SERVER-NAME yourdomain.local /zoneexport

Сравните версии зон на разных серверах — они должны совпадать.

Кэш DNS: Посмотрите текущий кэш командой:

dnscmd /clearcache (очищает кэш) или Get-DnsServerCache в PowerShell.

Если кэш переполнен или содержит устаревшие записи, это может вызывать проблемы. Очистка кэша помогает в 30% случаев некорректного разрешения.

Также проверьте настройки forwarders (переадресацию запросов). Если локальный не может разрешить имя, он должен передать запрос вышестоящему серверу. Посмотрите их список в DNS Manager → сервер → Properties → вкладка Forwarders.

Проверка записей и их корректности

Некорректные записи — частая причина проблем. Как их проверить:

  1. Просмотр записей: В DNS Manager выберите зону → правый клик → View Records. Проверьте наличие всех необходимых записей (A, AAAA, CNAME, и т. д.).
  2. Проверка синтаксиса: Используйте dnscmd /query DNS-SERVER-NAME yourdomain.local /record для вывода всех записей в зоне. Ищите дубликаты или символы в именах.
  3. Тест разрешения: Выполните nslookup example.yourdomain.local. Если запись не разрешается, проверьте её наличие и правильность IP-адреса.
⚠️ Внимание: Изменения в записях могут занимать до 15 минут для применения из-за TTL (время жизни записи). После редоктирования подождите или вручную очистите кэш на клиенте командой ipconfig /flushdns.
Какой инструмент вы используете чаще всего для проверки DNS?
nslookup
PowerShell
DNS Manager
Event Viewer

Мониторинг и journals DNS-сервера

Для глубокой диагностики используйте journals (журналы) DNS. Они хранят информацию о всех изменениях в зонах. Включите их, если это ещё не сделано:

В DNS Manager выберите сервер → правый клик → Properties → вкладка Logging. Убедитесь, что выбраны опции Log packets for debugging и Log full packets.

Журналы хранятся в %systemroot%\System32\Dns\Dns.log. Анализировать их удобно через Event Viewer или сторонние инструменты вроде dnscmd:

dnscmd /config /enablelogging 1 — включает расширенное логирование.

Тип события в Event Viewer Код события Что означает
Ошибка 4000 Проблема с репликацией зоны Active Directory
Предупреждение 7036 Ошибка загрузки зоны из Active Directory
Ошибка 111 Недостаточно памяти для обработки запроса

Проверка интеграции с Active Directory

Если ваш DNS-сервер интегрирован с Active Directory (что типично для Windows Server 2016), проверьте:

Репликацию AD: Используйте repadmin /syncall для принудительной синхронизации. Проблемы с часто отражаются на DNS.

Динамические обновления: Убедитесь, что клиенты могут обновлять свои записи. Проверьте настройку зоны: в DNS Manager → зона → Properties → вкладка General → Dynamic updates должно быть Secure and nonsecure или Secure only.

Если динамические обновления не работают, клиенты не смогут регистрировать свои имена в DNS.

DNS в Windows Server 2016 тесно связан с Active Directory. Проблемы в одной системе часто проявляются в другой.

Практическая инструкция: быстрая проверка за 5 минут

Если времени мало, выполните эти шаги по порядку:

Экспресс-проверка DNS-сервера

Выполнено: 0 / 5

Часто задаваемые вопросы

Как проверить, что DNS-сервер отвечает на запросы извне?

С внешнего компьютера выполните nslookup с указанием вашего DNS-сервера: nslookup example.com 192.168.1.10, где 192.168.1.10 — вашего сервера. Если ответ не приходит, проверьте настройки брандмауэра (порт 53 должен быть открыт) и маршрутизацию.

Почему записи не обновляются на клиентах?

Причины могут быть в записей (слишком большое значение), проблемы с динамическими обновлениями или кэшем на клиенте. Проверьте настройки зоны в DNS Manager (вкладка SOA — параметр Refresh и Retry). На клиенте выполните ipconfig /flushdns и ipconfig /registerdns.

Как проверить, что репликация работает правильно?

Сравните версии зон на всех DNS-серверах. Используйте dnscmd /query SERVER-NAME ZONE-NAME /zoneinfo и обратите внимание на поле Version. Если версии отличаются, проверьте настройки репликации в Active Directory и синхронизацию между серверами.

Что делать, если возвращает "Server failed"?

Ошибка Server failed означает, что DNS-сервер не может обработать запрос. Проверьте: запущена ли служба DNS (services.msc → DNS Server), есть ли свободное место на диске, где хранятся файлы зон, и нет ли ошибок в Event Viewer. Также убедитесь, что сервер не перегружен (проверьте использование и памяти в Task Manager).