Короткий ответ
Клиент берёт шлюз из DHCP option 3 (router). Если в ipconfig /all Default Gateway 192.168.0.1 или 10.0.10.3 вместо 10.0.10.1 — либо scope настроен неверно, либо Ack пришёл от чужого сервера. Не прописывайте статику на 50 ПК. Исправьте option 3, уберите rogue, renew.
DNS option 006 смотрите сразу: часто оба кривые вместе.
Симптомы и как отличить
- Адрес из
10.0.10.0/24, шлюз нет; - шлюз из другой подсети (маршрут сразу broken);
- часть ПК правильный
10.0.10.1, часть нет — два сервера.
Отличия: нет адреса — 169.254 или пустой scope. Шлюз верный, интернет нет — NAT/DNS.
Возможные причины
- В scope Router = неверный IP.
- Политика/класс DHCP переопределяет option 3.
- Rogue: роутер «DHCP server = LAN» из коробки.
- Relay подставляет другой giaddr/scope.
- Резервация с собственными option.
- netplan + DHCP + ручной gateway одновременно.
- Второй VLAN helper на этот broadcast.
Диагностика
1. Что получил клиент
ipconfig /all
Get-NetIPConfiguration | Select-Object InterfaceAlias, IPv4Address, IPv4DefaultGateway, DnsServernmcli device show
resolvectl status
ip route | grep defaultЗафиксируйте: IP, mask, gw, DNS, DHCP Server.
2. Кто DHCP Server
Поле DHCP Server в ipconfig /all. Это должен быть 10.0.10.2 (или ваш официальный). Чужой 192.168.0.1 — rogue или не тот VLAN.
ipconfig /all
Get-DhcpServerv4Lease -ComputerName DC01 -ScopeId 10.0.10.0 | Where-Object IPAddress -eq '10.0.10.10'Аренды на DC нет, а адрес есть — Ack от другого.
3. Option на официальном сервере
Get-DhcpServerv4OptionValue -ComputerName DC01 -ScopeId 10.0.10.0
Get-DhcpServerv4OptionValue -ComputerName DC01 -ScopeId 10.0.10.0 -OptionId 3
Get-DhcpServerv4OptionValue -ComputerName DC01 -ScopeId 10.0.10.0 -OptionId 6Router должен быть 10.0.10.1, DNS 10.0.10.2.
4. Два Offer
sudo tcpdump -n -i eth0 udp port 67 or port 68На Windows-клиенте: ipconfig /release затем /renew в окне захвата. Два Offer — конкурирующий сервер. MAC источника Offer — на CAM.
5. Ubuntu netplan конфликт
# плохо: dhcp4 true И gateway4 одновременно в старых схемахСмотрите netplan get. Ручной via + DHCP default = два default, метрика решает, «неверный шлюз» на вид.
Решение
Сценарий A. Option 3 в scope
Поставьте 10.0.10.1. Клиентам renew (или ждите lease). Можно сократить lease на время миграции, не до 1 минуты на 2000 хостов.
Set-DhcpServerv4OptionValue -ComputerName DC01 -ScopeId 10.0.10.0 -OptionId 3 -Value 10.0.10.1Проверьте политики, которые бьют scope.
Сценарий B. Rogue
Отключите DHCP на домашнем роутере/Hyper-V Default Switch в этом VLAN. Snooping: trust только uplink к 10.0.10.2. Не оставляйте «временно» второй пул.
Сценарий C. Relay/не тот scope
Helper на SVI VLAN 10 должен указывать на сервер, scope = 10.0.10.0. Неверный giaddr выдаст чужую сеть и чужой router option.
Сценарий D. Клиент не отпускает старый lease
ipconfig /release
ipconfig /renewsudo dhclient -r eth0
sudo dhclient -v eth0Сценарий E. Статика шлюза в NIC
Верните «шлюз автоматически». На Ubuntu уберите ручной default из netplan при dhcp4: true.
6. Один Ack — один виновник
Пока в tcpdump два Offer, не спорьте, «какой шлюз правильный в документации». Клиент возьмёт кто ответил быстрее. На проблемном ПК ipconfig /all: DHCP Server, Default Gateway, DNS. DHCP Server ≠ 10.0.10.2 — rogue или не тот VLAN. Если сервер официальный, а gw ≠ 10.0.10.1 — option 3/политика/резервация.
Get-DhcpServerv4OptionValue -ComputerName DC01 -ScopeId 10.0.10.0
Get-DhcpServerv4Reservation -ComputerName DC01 -ScopeId 10.0.10.0 |
Where-Object IPAddress -eq '10.0.10.50'Резервация с собственным router перебивает scope. Relay: неверный giaddr выдаст чужой scope и чужой option 3 — с точки зрения ПК «DHCP врёт», хотя виноват helper. Ubuntu netplan с dhcp4: true и ручным default даёт два default; метрика выбирает «не тот». ICS на соседнем Windows в VLAN — свой DHCP. После исправления option 3 сначала убедитесь, что 10.0.10.1 отвечает, иначе массовый renew отрежет офис. Не кладите два IP в option 3 вместо VRRP VIP. Проверка: три ПК после renew, один tcpdump с одним Offer, Find-NetRoute 1.1.1.1 via 10.0.10.1.
Связка option 3 и option 6: часто чинят только DNS, оставляя gw 192.168.0.1. Тогда «интернет появился у админа со статикой» и не появился у DHCP-клиентов. Проверяйте оба option одним выводом Get-DhcpServerv4OptionValue. Гостевой VLAN может легитимно иметь другой router — не ломайте его, правя corp scope. Телефоны с Vendor class — отдельный router в voice VLAN, это не баг corp DHCP. После уничтожения rogue не забудьте snooping trust только на uplink к 10.0.10.2, иначе завтра тот же роутер вернётся. Клиентам с длинным lease дайте время или принудительный renew в окно. Статика шлюза на одном VIP-сервере допустима; на двадцати ПК — нет. Проверка с Ubuntu: ip route | grep default должен показывать один via 10.0.10.1. Два default после netplan — недоделанный сценарий E.
Как проверить, что проблема устранена
ipconfig /renew
Get-NetIPConfiguration
ping -n 4 10.0.10.1
Find-NetRoute -RemoteIPAddress 1.1.1.1
nslookup contoso.example 10.0.10.2Default 10.0.10.1, DNS 10.0.10.2, один Offer в tcpdump. Несколько ПК после renew.
Если не помогло
- Option 3 верный, но маска option 1 кривая.
- Класс Vendor: телефоны берут другой router — нормально, если voice VLAN.
- Split DNS при верном шлюзе.
- Метрика VPN ниже default LAN.
Профилактика
- DHCP snooping, один официальный сервер (+failover пара с одним scope).
- Ревью option 3/6 при каждом изменении scope.
- Запрет DHCP на пользовательских роутерах (port ACL).
- Мониторинг: default gateway клиентов !=
10.0.10.1.
FAQ
Можно ли прописать шлюз статически и оставить DHCP только для IP?
Да, но это обход. Следующий ПК снова получит кривой option 3. Чините сервер.
Два значения option 3 — балансировка?
Клиент обычно берёт первое. Не кладите два шлюза «для HA» в option 3 вместо VRRP VIP 10.0.10.1.
Почему DNS правильный, шлюз нет?
Разные option. Чините 3, не flushdns.
ICS на Windows в том же VLAN?
Internet Connection Sharing поднимает свой DHCP. Выключите ICS на «добром» ПК.
Нужно ли reboot после смены option 3?
Нет, renew достаточно. Reboot — если NIC в странном состоянии, не как ритуал.