Короткий ответ
Клиент домена обязан спрашивать внутренний DNS, который хранит зону AD. Если у рабочей станции или у DC в NIC прописан только публичный резолвер, SRV _ldap._tcp.dc._msdcs не найдутся и вход развалится при живом контроллере. Сначала Resolve-DnsName SRV и ipconfig /all, потом регистрация Netlogon. Не чистите зону руками «от лишних A-записей» пакетом.
Симптомы и отличия
nslookup contoso.exampleс клиента даёт NXDOMAIN или адрес внешней веб-заглушки.nltest /dsgetdc:contoso.exampleне находит DC, ping до известного IP DC при этом работает.- На DC DNS-события 4013 (зона ещё не загружена при старте AD) — это может быть порядок служб, не «сломан диск».
Отличия:
- DC совсем не отвечает по 389 — контроллер недоступен.
- DNS резолвит, логон падает с доверием — доверительные отношения.
- Только один сайт не резолвит — делегирование, условный форвардер, split DNS, а не вся зона леса.
Возможные причины
- У клиента DHCP option 006 указывает на роутер/провайдера.
- У DC в NIC DNS = 127.0.0.1 + ничего, а служба DNS ещё не поднялась; либо наоборот только 8.8.8.8.
- Зона
_msdcs.contoso.exampleне существует / не реплицируется. - Scavenging снял записи DC из‑за слишком агрессивного NoRefresh+Refresh.
- Split-brain: внешняя зона
contoso.exampleбез SRV отдаётся внутренним клиентам. - Условный форвардер или правило политики NRPT уводит корпоративные имена.
Диагностика
На проблемном клиенте:
ipconfig /all
Resolve-DnsName contoso.example
Resolve-DnsName _ldap._tcp.dc._msdcs.contoso.example -Type SRV
Resolve-DnsName DC01.contoso.exampleОжидание: SRV на имена DC, A-записи DC на текущие IP. Если SRV пустой — клиент спрашивает не тот сервер или зона пустая.
На DNS-сервере AD:
Get-DnsServerZone
Get-DnsServerResourceRecord -ZoneName 'contoso.example' -Name '@' -RRType NS
Get-DnsServerResourceRecord -ZoneName '_msdcs.contoso.example' -RRType SRV -ErrorAction SilentlyContinue
dcdiag /test:DNS /v /s:DC01dcdiag /test:DNS длинный. Читайте тесты auth, basic, records — не только последнюю строку.
Проверка, кто авторитативен:
Resolve-DnsName contoso.example -Server DC01.contoso.example
Resolve-DnsName contoso.example -Server 8.8.8.8Второй запрос не должен быть источником правды для логона.
Решение
Клиент смотрит не туда
Для DHCP: option 006 = IP внутренних DNS (обычно оба DC). Для статики — то же вручную. Не оставляйте «DNS роутера» как единственный.
После смены:
ipconfig /flushdns
nltest /dsgetdc:contoso.example /forceNIC контроллера
Типовая схема для двух DC:
- DC01: предпочитаемый = IP DC02, альтернативный = 127.0.0.1
- DC02: предпочитаемый = IP DC01, альтернативный = 127.0.0.1
Не ставьте единственным DNS самого себя на единственном DC без понимания порядка старта. После смены:
ipconfig /registerdns
Restart-Service NetlogonНет SRV
Если зона жива, но SRV нет:
nltest /dsregdns
Restart-Service NetlogonПодождите и снова снимите SRV. Если не появляются — смотрите права динамического обновления зоны (Secure only vs None) и события Netlogon.
Scavenging съел DC
Если NoRefresh+Refresh короче, чем DC был выключен, A/SRV могли уйти. Восстановите регистрацией Netlogon, не импортом случайного backup зоны недельной давности поверх живой AD-интегрированной зоны.
Внешняя зона перекрывает внутреннюю
Если публичный DNS contoso.example резолвится внутри сети как единственный ответ, клиенты не увидят SRV. Нужен split-horizon: внутренний сервер отдаёт AD-зону, форвардеры — только для внешних имён.
Проверка
С двух клиентов разных подсетей:
Resolve-DnsName _kerberos._tcp.dc._msdcs.contoso.example -Type SRV
nltest /dsgetdc:contoso.exampleЛогон пользователя без кэшированных учётных данных. dcdiag /test:DNS без failed на тестах записей DC.
Создайте тестовую A-запись в отдельной непроизводственной зоне или используйте существующую процедуру change control — не оставляйте test-xyz в _msdcs.
Если не помогло
- 4013 при каждой загрузке: NTDS стартует позже DNS; проверьте зависимости и диск. Повторяющийся 4015 — зона/AD.
- Имя резолвится в IPv6, а IPv6 у вас не маршрутизируется: либо почините IPv6, либо не регистрируйте AAAA, если так принято политикой.
- Только короткие имена: суффикс DNS клиента и WINS/NetBIOS — отдельная ветка, не путайте с SRV.
Практический порядок на 15 минут
- Снимите
ipconfig /allс клиента и с DC. Сверьте option 006 и NIC DNS. Resolve-DnsName _ldap._tcp.dc._msdcs.contoso.example -Type SRVсначала с-ServerIP внутреннего DNS, потом без. Если с сервером AD есть SRV, а без — нет, клиент ходит не туда.- Сверьте A-записи DC с фактическим
Get-NetIPAddress. Старый IP в зоне после смены адреса — частая причина «DC находится не туда». - Посмотрите scavenging:
Get-DnsServerScavengingи timestamps записей DC. Если timestamp старше окна scavenging, регистрация могла быть снята. - Не меняйте сразу тип зоны (AD-integrated → secondary). Это отдельное окно работ.
Если после смены DNS на NIC клиент всё ещё видит старое, проверьте NRPT (Get-DnsClientNrptPolicy) и групповые политики Name Resolution. Они перебивают «просто прописали 10.0.0.10 в NIC».
Для split DNS запишите на бумаге: какое имя существует только внутри (dc01.contoso.example), какое должно совпадать с внешней зоной (www.contoso.example). Смешение этих классов в одной «почистите кеш» инструкции как раз и плодит повторные инциденты.
Профилактика
- Документируйте option 006.
- Мониторьте наличие SRV и ответ DNS 53 с DC.
- Scavenging включайте после понимания timestamps, не «как в блоге 7 дней / 7 дней» на зоне леса без расчёта.
- Перед работами с зонами — проверка AD.
FAQ
Почему ping имени DC работает, а домен не находится?
A-запись узла и SRV каталога — разные запросы. Ping не проверяет _ldap._tcp.
Можно ли прописать hosts с IP DC на каждой рабочей станции?
Нет как постоянное решение. Hosts не заменяет SRV и ломается при смене IP.
Нужно ли чистить кеш на всех DC после каждой правки?
Нет. Кеш клиента — после смены DNS NIC. На сервере смотрите авторитетный ответ -Server DC01.
Чем опасен forwarder на публичный DNS для зоны AD?
Форвардер используется, когда локально нет зоны. Если внутренняя зона загружена, форвардер не должен отвечать за contoso.example. Опасность в том, что зоны нет или имя не то.
Event 4013 после патча — всегда авария?
Нет. Одно событие при старте бывает, пока AD загружает зоны. Повторяющиеся ошибки после нескольких минут — уже проблема.