Короткий ответ
Клиент с APIPA 169.254 не получил DHCPOFFER. На сервере DC01 или выделенном DHCP: служба запущена, авторизован в AD, scope Active, есть свободные адреса, привязка к верному NIC, failover-партнёр не держит все leases в мёртвом состоянии. На Hyper-V проверьте DHCP Guard. Не поднимайте второй неавторизованный DHCP «чтобы раздать».
Без адреса не будет и нормального входа в домен — но чинить нужно DHCP, не NTDS, если ping до DC с статикой жив.
Симптомы и как отличить
ipconfigнаWS-042: 169.254.x.x или аренда не обновляется.- Часть VLAN работает — relay/helper только на одном SVI.
- Статический IP на том же VLAN ходит в домен — не DNS как первопричина.
| Наблюдение | Куда |
|---|---|
| IP есть, нет DNS/_msdcs | DNS |
| IP есть, нет DC | DC |
| Опции шлюза неверные | сеть, не «scope умер» |
| Сервер не авторизован, Event 1046 | эта статья |
Возможные причины
- DHCP Server не авторизован (1046), служба может работать «вхолостую» в домене.
- Scope Inactive, исчерпан, неверный диапазон/маска.
- Bindings на неправильном интерфейсе.
- Failover: партнёр hot-standby, связь порвана, Maximum Client Lead Time.
- DHCP Relay не указывает на этот сервер.
- DHCP Guard на виртуальном коммутаторе Hyper-V отбрасывает ответы VM-сервера или наоборот.
- Rogue DHCP (другой маршрутизатор) отвечает первым.
- Политика NAP/фильтра (редко на 2022/2025, но фильтры scope живы).
Диагностика
На DHCP-сервере:
Get-Service DHCPServer
Get-DhcpServerInDC
Get-DhcpServerv4Binding
Get-DhcpServerv4Scope | Format-Table ScopeId, Name, State, StartRange, EndRange, LeaseDuration
Get-DhcpServerv4ScopeStatistics | Format-Table ScopeId, InUse, Free, PercentageInUse
Get-DhcpServerv4Failover -ErrorAction SilentlyContinueСвободные адреса:
Get-DhcpServerv4FreeIPAddress -ScopeId 10.0.10.0 -NumAddress 10Журнал:
Get-WinEvent -LogName 'Microsoft-Windows-DHCP-Server/Operational' -MaxEvents 30 -ErrorAction SilentlyContinue
Get-WinEvent -FilterHashtable @{ LogName = 'System'; ProviderName = 'Microsoft-Windows-DHCP-Server' } -MaxEvents 20Event 1046 — нет авторизации. 1059 — нет DC для авторизации (тогда сначала AD/DNS).
С клиента (когда ещё есть какой-то канал):
ipconfig /allDHCP Server поле — тот ли хост. Если чужой 192.168.0.1 маршрутизатора — rogue/домашний DHCP.
Relay: на L3 смотрите helper-address. С сервера DHCP должен видеть Discover с giaddr реле.
Hyper-V:
Проверьте на vSwitch/сетевом адаптере VM настройку DHCP Guard (оснастка Hyper-V или документация Set-VMNetworkAdapter с DhcpGuard). Guard на клиентской VM не должен резать; на серверной VM Guard не должен быть в режиме, где ответы DHCP запрещены.
Решение
Сценарий A. Не авторизован
В DHCP MMC: Authorize. Или:
Add-DhcpServerInDC -DnsName 'dhcp01.contoso.example' -IPAddress 10.0.10.10
Restart-Service DHCPServerНужны права Enterprise Admin-класса на объекты в конфигурации AD (фактически — кто имеет право авторизовать DHCP). Не авторизуйте случайный сервер.
Сценарий B. Scope полный / Inactive
Set-DhcpServerv4Scope -ScopeId 10.0.10.0 -State ActiveРасширьте диапазон или снизьте Lease, почистите stale. Не перекрывайте статику серверов без Exclusion.
Сценарий C. Failover
Get-DhcpServerv4FailoverВосстановите партнёра, не включайте оба в Load Balance с одним split при мёртвой репликации базы. Restore из backup DHCP, если БД расходилась.
Сценарий D. Guard / rogue
Выключите чужой DHCP на SOHO-роутере. На Hyper-V согласуйте Guard: сервер DHCP имеет право отвечать, клиенты — нет (типичная модель Guard на не-DHCP VM).
Сценарий E. Bindings
Get-DhcpServerv4BindingДолжен слушать интерфейс той сети (или реле смотрит на его IP). Сервер с двумя NIC часто слушает «не ту».
Сценарий F. Relay, split VLAN и статистика scope
С клиента в проблемно VLAN: в ipconfig /all поле DHCP Server должно быть 10.0.10.10 (или VIP failover), не шлюз 192.168.1.1. Чужой сервер — выключите DHCP на SOHO/роутере, не расширяйте scope «в ответ».
Get-DhcpServerv4Scope | Format-Table ScopeId, Name, State, StartRange, EndRange
Get-DhcpServerv4ScopeStatistics | Format-Table ScopeId, InUse, Free, PercentageInUse, Reserved
Get-DhcpServerv4Binding | Format-Table InterfaceAlias, IPAddress, BindingState
Get-DhcpServerInDCPercentageInUse 100% без Free — расширьте диапазон или уменьшите lease после exclusions на DC/шлюзы/принтеры. Inactive scope не раздаёт, даже если статистика «зелёная» в голове.
Failover: Get-DhcpServerv4Failover — состояние Normal. Communication interrupted + истёк MCLT даёт странные отказы renew. Чините канал между партнёрами, не авторизуйте третий сервер.
DHCP Guard на Hyper-V: у VM dhcp01 Guard не должен запрещать ответы сервера. На обычных WS-042 Guard как раз блокирует поддельные DHCP. Перепутали флаги — «вдруг перестало раздавать после переноса DHCP в VM».
UDP 67/68 на ACL между реле и сервером: Discover с giaddr должен доходить. Без реле сервер не слышит другой VLAN, это не «сломан DHCP Server».
Как проверить, что проблема устранена
На WS-042: ipconfig /release затем ipconfig /renew — адрес из scope, маска, шлюз, DNS внутренний (DC), не APIPA.
Get-DhcpServerv4Lease -ScopeId 10.0.10.0 | Where-Object IPAddress -eq '10.0.10.42'
Get-DhcpServerv4ScopeStatisticsFree не ноль. Авторизация в Get-DhcpServerInDC. Логон в домен с этого DHCP-адреса.
Если не помогло
- Discover не доходит: SPAN/зеркало, ACL UDP 67/68, relay.
- Только Wi-Fi: другой VLAN без helper.
- PXE отдельно (67/4011) — не путать с обычной арендой.
- Кластер/Split-scope устарел относительно DHCP Failover — не смешивайте схемы.
Профилактика
- Failover или явно один сервер, не «два scope наугад».
- Алерт PercentageInUse и Event 1046.
- Документированные exclusions под DC/шлюзы.
- DHCP Guard на гипервизоре по стандарту площадки.
- Перед работами на DC, если DHCP на нём — baseline AD.
FAQ
Нужно ли ставить DHCP на оба DC без failover?
Нет. Получите двойные ответы или дыру, пока один не авторизован. Либо failover, либо один DHCP + резервный план.
Клиент получил адрес, DNS 8.8.8.8.
Опции scope. Для AD клиенту нужен внутренний DNS. Это уже ломает логон, хотя DHCP «выдал».
Authorization каждый reboot пропадает?
Нет прав/нет DC (1059) или кто-то Unauthorize. Не лечите вторым DHCP.
DHCP Guard на всех VM включил админ «для безопасности».
Сервер DHCP в VM перестанет раздавать. Guard — на адаптерах, которые не должны быть DHCP-серверами.
Можно ли раздавать из диапазона, где живут DC?
Да, с exclusions на адреса DC/шлюза/DHCP. Иначе конфликт IP и «пропал DC».