Устранение ошибки DHCPDECLINE: обнаружение дубликата IP клиентом
- Клиент запрашивает IP, получает предложение, но сразу же отправляет сообщение
DHCPDECLINE. - На рабочей станции всплывает уведомление Windows:
Был обнаружен конфликт IP-адресов в сети. - В журнале DHCP-сервера появляется запись:
DHCPDECLINE on 192.168.1.105 from a4:83:e7:xx:xx:xx via eth0: abandoned. - Клиент циклически повторяет процедуру DORA и не может получить доступ к сети.
1. Захват пакета DHCPDECLINE в Wireshark / Tcpdump
tcpdump -nvv -i any "udp port 67 or udp port 68" | grep -B 2 -A 5 "DECLINE"2. Анализ ARP Probe трафика с помощью Wireshark
Отфильтруйте трафик по запросу ARP-зондирования клиента:
arp.opcode == 1 && arp.src.proto_ipv4 == 0.0.0.0Найдите MAC-адрес узла, ответившего своим ARP Reply на зонд клиента.
3. Очистка ARP-кэша коммутатора и изоляция виновника
show ip arp 192.168.1.105
show mac address-table address <MAC_виновника>Перейдите на соответствующий порт коммутатора доступа и отключите несанкционированный хост:
conf t
interface GigabitEthernet1/0/15
shutdown4. Настройка защиты IP Source Guard и DAI
Включите Dynamic ARP Inspection (DAI) для предотвращения несанкционированного ответа на чужие ARP-запросы:
conf t
ip arp inspection vlan 10
ip arp inspection validate src-mac dst-mac ip Частые вопросы (FAQ)
Почему клиент отправляет сообщение DHCPDECLINE?
После получения DHCPACK клиент выполняет проверку адреса стандартом RFC 5227 (отправляет ARP Probe с IP-источника 0.0.0.0). Если кто-то в сети отвечает на этот запрос, клиент считает адрес занятым и отправляет DHCPDECLINE.
Что делает DHCP-сервер при получении сообщения DHCPDECLINE?
Сервер обязан немедленно пометить данный IP-адрес как недействительный/заблокированный (Abandoned / In Conflict) на определенный интервал времени и не предлагать его другим клиентам.
Может ли сбой сетевой карты или драйвера вызывать ложный DHCPDECLINE?
Да. Некоторые сбоящие драйверы Wi-Fi адаптеров или виртуальные интерфейсы мостов отправляют ARP Probe и сами же принимают собственный отраженный эхо-пакет, ошибочно регистрируя конфликт IP.
Как вернуть адрес со статусом 'abandoned' обратно в рабочий пул в ISC-DHCP?
Необходимо удалить строку 'abandoned;' для соответствующего lease-блока в файле /var/lib/dhcp/dhcpd.leases и перезапустить сервис dhcpd.