Active Directory

3.1 Зачем DNS

AD использует DNS не как телефонную книгу серверов, а как протокол обнаружения служб. Клиент ищет DC, Kerberos KDC, LDAP и GC через SRV-записи. Если имя домена «пингуется», это ещё не доказывает работоспособность AD: могут отсутствовать SRV-записи, неверно определяться сайт или быть недоступен нужный DC.

Клиент знает DNS suffix: skl.local
 |
_ldap._tcp.dc._msdcs.skl.local → DC01.skl.local
 |
LDAP/Kerberos/Netlogon → вход в домен

Публичный DNS не знает внутренние SRV-записи вашего леса. Клиент домена, у которого в NIC указан 8.8.8.8 или DNS провайдера, рано или поздно потеряет вход, GPO или поиск контроллера.

3.2 AD-зоны

AD-integrated зона хранит данные зоны в каталоге и реплицируется вместе с AD, а не через отдельные zone transfer. Выберите область репликации осознанно: все DNS-серверы леса, все DNS-серверы домена или конкретный application partition. Для внутренней зоны включайте только secure dynamic updates: объект получает право обновлять собственную запись через AD-аутентификацию.

AD DS replication
 ├─ DomainDnsZones.skl.local → DNS домена
 └─ ForestDnsZones.skl.local → _msdcs и данные леса

Dynamic update: computer account → A/PTR record

Статические записи нужны для инфраструктуры с фиксированным именем, но не заменяют корректную динамическую регистрацию. Настройте scavenging после измерения реальных сроков аренды DHCP: агрессивная очистка может удалить запись отключённого, но нужного устройства.

3.3 Поиск DC

DC Locator сначала использует DNS-суффикс и SRV, затем сопоставляет IP клиента с подсетью AD Site. При наличии site-specific записи клиент выбирает локальный DC; при отсутствии подсети он может обращаться через WAN. Поэтому «медленный логон» часто начинается не с GPO, а с неописанной подсети.

10.20.0.0/16 → Site=Kazan
Client 10.20.5.8
 → _ldap._tcp.Kazan._sites.dc._msdcs.skl.local
 → DC03.skl.local

Нет matching subnet → общий SRV → возможно DC в Moscow

SRV имеют приоритет и вес; обычно их не редактируют вручную. Netlogon регистрирует записи при старте и может перерегистрировать их командой nltest /dsregdns.

3.4 DNS на NIC

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

DC01 NIC DNS: 10.0.0.12 (DC02), 10.0.0.11 (DC01)
DC02 NIC DNS: 10.0.0.11 (DC01), 10.0.0.12 (DC02)
Client DNS: 10.0.0.11, 10.0.0.12
Internet DNS: только через DNS forwarder

Многосетевые DC требуют особого контроля: не регистрируйте в DNS адреса резервных, изолированных или management-интерфейсов и если клиенты по ним не должны ходить. Иначе Locator выдаст недостижимое имя.

3.5 Перенаправители

Внутренний DNS должен быть авторитетен за внутренние зоны и пересылать внешние запросы через forwarders: корпоративный резолвер, шлюз безопасности или разрешённый рекурсивный DNS. Это сохраняет единый контроль, журналирование, фильтрацию. Root hints — резервный путь при отсутствии forwarder но обычно не желаемый маршрут в корпоративной сети.

Conditional forwarder направляет только определённый namespace: запросы к partner.example — на DNS партнёра, остальные — на обычные forwarders. Если требуется доверие между лесами, DNS-разрешение namespace — обязательная предпосылка, а не побочная настройка.

Не создавайте внутреннюю первичную зону для публичного имени партнёра, чтобы «быстрее открывался сайт»: вы теневым образом скроете его реальные публичные записи.

3.6 Зона _msdcs

Зона _msdcs.имя-леса содержит критические записи леса: GUID-алиасы DC, SRV Locator и CNAME, используемые репликацией. Её потеря или неверная делегация проявляются как ошибки репликации и поиск неправильных DC. Не удаляйте «странные» записи в _msdcs ради уборки.

Split-brain (split-horizon) DNS — намеренное существование внутренней, внешней версии одного namespace. Он допустим, если внутренним клиентам нужны внутренние адреса, а внешним — публичные. Но записи надо сопровождать как две независимые зоны и тестировать с обеих сторон.

www.example.com
 internal DNS → 10.10.5.20
 public DNS → 203.0.113.20

_msdcs.skl.local
 internal only → GUID DC, LDAP/Kerberos SRV

3.7 Диагностика

Диагностируйте цепочку, а не один симптом: NIC клиента → доступность внутреннего DNS → A-запись DC → SRV нужной службы → сайт и подсеть → Netlogon/репликация. Кэш очистите только после фиксации наблюдений, иначе вы уничтожите полезный след.

Resolve-DnsName -Type SRV _ldap._tcp.dc._msdcs.skl.local
nltest /dsgetdc:skl.local
dcdiag /test:dns /v
repadmin /replsummary
ipconfig /flushdns
ipconfig /registerdns

Если SRV отсутствует, проверяйте службу Netlogon, журналы DNS Server/System, права secure update и состояние репликации разделов DNS. Если SRV есть, но выбран далёкий DC, проверяйте подсети и site links, а не меняйте записи вручную.

3.8 Правила дизайна

Минимальный устойчивый дизайн: два доступных внутренних DNS на DC, AD-integrated зоны с безопасными обновлениями, документированные области репликации, forwarders для внешнего мира, все подсети назначены сайтам и регулярная проверка DNS/AD репликации. DNS восстанавливают как часть плана восстановления леса.

Антипаттерны:

  1. внешний DNS в NIC доменной машины
  2. ручное удаление _msdcs
  3. один DNS/DC без резервирования
  4. открытая динамическая регистрация
  5. условный forwarder «на глаз» без контроля доступности
  6. создание внутренней зоны, совпадающей с внешней, без стратегии split-brain

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

3.9 Пространства имён

DNS-дизайн начинается с перечня пространств имён: внутренний AD namespace, публичный namespace, зоны партнёров, обратные зоны и зоны приложений. Имя домена AD выбирают как долгоживущий идентификатор, а не как временное название проекта. Допустимы выделенный внутренний namespace или поддомен публичного имени; важнее заранее определить, кто владеет внешними записями, сертификатами, почтой и split-brain логикой.

Прямая зона отвечает «какой адрес у имени», обратная — «какое имя у адреса». PTR не является механизмом безопасности, но необходим для диагностики, журналирования, некоторых сервисов. Для DHCP-клиентов заранее решите, кто регистрирует A, PTR: клиент или DHCP-сервер. При защищённых обновлениях это решение связано с учётной записью и от имени которой выполняется обновление.

Прямое разрешение: app01.skl.local → 10.10.4.21
Обратное разрешение: 10.10.4.21 → app01.skl.local

10.10.4.0/24
 зона: 4.10.10.in-addr.arpa
 PTR: 21 → app01.skl.local
Явная карта зон предотвращает коллизии имён и неожиданные маршруты запроса. Она облегчает интеграцию с публичными сервисами: команда знает, следует ли создавать запись во внутренней зоне, у внешнего провайдера или в обеих. Обратные зоны позволяют быстро увидеть, какой объект занял адрес и соответствует ли имя инвентарю.
Частая ошибка: не используйте несуществующий публичный TLD как единственную стратегию без оценки сертификатов и интеграций. Не создавайте wildcard-записи, чтобы скрыть отсутствие правильных записей: они маскируют опечатки и осложняют расследование. Не публикуйте внутренние имена и RFC1918-адреса во внешнем DNS.
ЗонаСодержимоеВладелец
AD-integratedDC, клиенты, внутренние сервисыКоманда AD/DNS
Public authoritativeИнтернет-сервисыDNS/веб-команда
ReversePTR адресовСеть/DHCP

3.10 Отказоустойчивость

DNS — критическая зависимость входа, поэтому его доступность проектируют отдельно от удобства администрирования. Минимум два внутренних DNS-сервера должны быть доступны из каждой клиентской сети; предпочтительно они работают на разных DC, хостах, стойках и, где это оправдано, площадках. Но географическое разнесение не заменяет локальный сервис при недоступном WAN: требования к филиалу определяют наличие local DC/DNS или RODC.

Защищённые динамические обновления предотвращают захват имён неавторизованными клиентами. Контролируйте ACL зоны и application partitions: право создавать записи не должно быть эквивалентно праву изменить записи DC. Включайте журналирование достаточно подробно для расследования, но учитывайте объём и доступ к журналам. Рекурсию ограничивайте внутренними клиентами; открытый рекурсивный DNS становится инструментом усиления атак.

Клиенты ─┬─ DNS/DC01 ─ AD-integrated zone
 └─ DNS/DC02 ─ AD-integrated zone

Внешний запрос:
клиент → внутренний DNS → approved forwarder → Internet
Internet ─X→ внутренний рекурсивный DNS
Репликация AD-integrated зоны устраняет отдельный контур передачи зон и использует уже защищённую модель AD. Два резолвера в NIC не делят запросы поровну как балансировщик: второй адрес — резерв, а не повод размещать один из них в публичном интернете.
Частая ошибка: не настраивайте клиентам DNS «на всякий случай» одновременно на DC и на маршрутизатор. Ответ будет зависеть от времени и кэша, а внутренние зоны станут периодически невидимыми. Не разрешайте zone transfer всем: если он нужен для legacy-сервера, ограничьте адреса и документируйте исключение.

Чек-лист устойчивости:

  1. проверены оба DNS с каждой сети
  2. forwarders доступны и имеют резерв
  3. secure updates включены
  4. scavenging согласован с DHCP lease
  5. резервная копия System State проверена восстановлением
  6. доступ к DNS-консолям ограничен

3.11 Эксплуатация

DNS-инцидент нужно классифицировать до исправления. Ошибка одной записи отличается от отказа рекурсии, отсутствия SRV, сломанной репликации зоны, неверного suffix search list и выбора не того сайта. Начинайте с конкретного клиента и фиксируйте IP, DNS-адреса, суффикс, результат запроса и выбранный DC. Затем проверяйте тот же запрос на каждом DNS-сервере. Такой порядок отделяет проблему данных от проблемы пути.

ipconfig /all
Resolve-DnsName dc01.skl.local -Server 10.10.0.11
Resolve-DnsName _kerberos._tcp.dc._msdcs.skl.local -Type SRV
Resolve-DnsName 10.10.4.21 -Type PTR
Get-DnsServerZone
dcdiag /test:dns /e /v

При отсутствии DC Locator не удаляйте и не создавайте SRV вручную первым действием. Проверьте здоровье AD репликации, Netlogon, права зоны и корректность DNS-серверов на DC. Ручная запись может кратко скрыть симптом, но не восстановит регистрацию после следующего изменения. После устранения причины перерегистрируйте записи и сверяйте результат с несколькими DNS.

Проблема: клиент не входит в домен
1. Внутренний DNS в NIC? нет → исправить DHCP/NIC
2. A-запись DC отвечает? нет → зона/сеть
3. SRV _ldap отвечает? нет → Netlogon/репликация
4. Сайт соответствует подсети? нет → Sites and Services
5. LDAP/Kerberos доступны? нет → DC/Firewall/время
Последовательная проверка снижает риск разрушительных «исправлений» в рабочей зоне. Она также создаёт повторяемую инструкцию для первой линии: команда передаёт факты, а не формулировку «DNS иногда не работает».
Частая ошибка: не очищайте кэш, не перезагружайте DC и не удаляйте зону до сбора минимальных доказательств. Эти действия меняют состояние и удлиняют расследование. Не считайте успешный ping проверкой DNS-служб AD: ICMP использует только A/AAAA-запись и ничего не говорит о SRV или Kerberos.

Ежемесячный контроль включает проверку зон, SRV, replication summary, устаревших записей, доступности forwarders и соответствия новых подсетей сайтам. DNS-дизайн живёт вместе с сетью, а не заканчивается после установки первого DC.

3.12 Практикум

Проектирование DNS-зон, SRV-регистрации, forwarders и клиентского locator должно быть доказуемым. Сначала собирают факты: владельцев сервисов, перечень зависимых систем, сетевые ограничения, требования к доступности, срокам восстановления, аудиту. Затем формулируют несколько вариантов, выбирают минимально сложный, записывают измеримые критерии успеха. Формулировка «так исторически сложилось» не является требованием и не должна переживать пересмотр дизайна.

Полезный приём — отделить решение от реализации. Решение описывает границу, владельца, допустимый риск, ожидаемое поведение при отказе; реализация перечисляет конкретные OU, DNS-зоны, контроллеры, группы или команды. Тогда изменение имени сервера не превращает архитектурный документ в ложный а новый инженер может проверить намерение до изменения конфигурации.

Внутренние AD-integrated зоны, два доступных DNS и чёткий путь через forwarders дают клиенту предсказуемый поиск DC и внешних имён без смешения полномочий. Такой подход уменьшает число неявных исключений. Он позволяет команде объяснить не только нормальную работу, но и последствия отказа, расширения организации или появления нового приложения. Хороший дизайн выдерживает вопрос «кто изменит это через два года и по каким правилам?».
Частая ошибка: нельзя исправлять DNS случайной ручной записью или публичным резолвером в NIC: нужно установить, какой участок цепочки — клиент, зона, Netlogon, репликация или сайт — нарушен. Антипаттерн обычно выглядит быстрее в день внедрения, но переносит цену в инциденты и аудит. Исключение допустимо только с владельцем, сроком пересмотра, мониторингом и планом удаления. Если исключение становится типовым, надо изменить базовую модель, а не размножать ручные настройки.

Методика проверки

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

Проектный чек-лист:

  1. определена цель
  2. известен владелец
  3. описана граница ответственности
  4. есть метрика успеха
  5. проверен отказ
  6. задокументирован откат
  7. назначена дата ревизии
  8. исключения имеют обоснование
Требование → вариант → риск → владелец
 ↓ ↓ ↓
 тестовый проверка решение об
 сценарий отказа эксплуатации

Документация обновляется после проверки,
а не до того, как факт подтверждён.
Resolve-DnsName -Type SRV _ldap._tcp.dc._msdcs.skl.local
dcdiag /test:dns /v
ipconfig /registerdns

Настройки

Цветовая схема

Тема