Проверка работы 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.
Проверка записей и их корректности
Некорректные записи — частая причина проблем. Как их проверить:
- Просмотр записей: В DNS Manager выберите зону → правый клик →
View Records. Проверьте наличие всех необходимых записей (A, AAAA, CNAME, и т. д.). - Проверка синтаксиса: Используйте
dnscmd /query DNS-SERVER-NAME yourdomain.local /recordдля вывода всех записей в зоне. Ищите дубликаты или символы в именах. - Тест разрешения: Выполните
nslookup example.yourdomain.local. Если запись не разрешается, проверьте её наличие и правильность IP-адреса.
⚠️ Внимание: Изменения в записях могут занимать до 15 минут для применения из-за TTL (время жизни записи). После редоктирования подождите или вручную очистите кэш на клиенте командой ipconfig /flushdns.
Мониторинг и 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-сервера
Часто задаваемые вопросы
Как проверить, что 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).