Broadcast flag mismatch в DHCP: сбой Unicast/Broadcast Offer и NAK
- DHCP Discover отправляется клиентом, сервер формирует DHCP Offer, но клиент его не получает.
- В выводе Wireshark флаг
Broadcast flag = 0 (Unicast)или1 (Broadcast)в поле Bootp flags. - Сетевой коммутатор отбрасывает Unicast Offer, так как у клиента еще нет IP-адреса и MAC-адрес не внесен в ARP-таблицу.
- Беспроводные клиенты (iOS/Android) или виртуальные машины KVM/VMware не могут завершить DORA-процесс.
1. Архитектура флага Broadcast в RFC 2131
Если у сетевой карты клиента отсутствует возможность принимать IP-пакеты на Unicast-адрес до завершения конфигурации стека TCP/IP, клиент выставляет бит BROADCAST = 1 в DHCP Discover/Request. Сервер обязан ответить широковещательным пакетом 255.255.255.255.
2. Анализ флагов через Wireshark / tcpdump
tcpdump -envvi eth0 -X 'udp port 67 and (ip[26:2] & 0x8000 != 0)'В дампе проверьте поле Flags: 0x8000, Broadcast flag или Flags: 0x0000, Unicast flag.
3. Принудительное включение Broadcast Offer на Cisco IOS
Если коммутаторы L2 отбрасывают unicast пакеты до регистрации ARP:
interface Vlan100
ip address 10.10.10.1 255.255.255.0
ip dhcp relay information trusted
ip helper-address 192.168.1.50
! Форсировать широковещательные ответы клиентам:
ip dhcp relay information option force-insert4. Форсирование Broadcast ответов на сервере Kea / ISC-DHCP
# /etc/dhcp/dhcpd.conf
# Всегда отправлять DHCP Offer/ACK широковещательно
always-broadcast on;5. Настройка на маршрутизаторах MikroTik
/ip dhcp-server set [find name=default] always-broadcast=yes Частые вопросы (FAQ)
Почему сервер по умолчанию отправляет Unicast Offer, если флаг 0x0000?
Согласно RFC 2131, если бит Broadcast равен 0, сервер оптимизирует утилизацию L2-сети и шлет пакет напрямую на MAC-адрес клиента и назначенный IP (chaddr/yiaddr).
Чем опасна директива always-broadcast on в крупных сетях?
Она увеличивает широковещательный шторм (Broadcast Domain Noise), заставляя все узлы в VLAN обрабатывать входящие пакеты DHCP Offer и DHCP ACK на CPU.
Почему виртуальные машины в VMware/KVM теряют Unicast Offer?
Виртуальный свитч (vSwitch) может блокировать прямые кадры к интерфейсу до тех пор, пока хост не подтвердит владение IP через Gratuitous ARP.
Как исправить проблему, если DHCP Relay подменяет адрес источника?
Используйте директиву 'ip dhcp relay smart-relay' на L3-интерфейсе для корректной маршрутизации ответов между пулами secondary IP.