У меня есть сниффер пакетов dhcp, который должен регистрироваться, если он видит ответ отказ от dhcp , исходящий от клиента. Мне нужно знать сценарий, в котором клиент может отправить ответ об отказе dhcp на dhcp сервер. Я попытался воспроизвести это, минимизировав небольшой диапазон ip на dhcpserver и выделив дублирующийся статический ip клиенту, говорит client_A и запускает dhclient на client_B. Но client_B принимает дублирующийся ip (ip, который уже есть с ip client_A), вместо отправки ответа dhcpdecline .
Это лучший и гарантированный способ воспроизвести сценарий отказа DHCP. Клиенты, которые я использую, - это ubuntu, а для dhcp-сервера доступны различные параметры, например vyos / microsoft.
Спасибо и заранее !!
Похоже, это должно быть возможно, но для этого потребуется немного возиться ...
Как вы предложили в комментариях, dhclient не проверяет ответы DHCP-сервера для адресов маршрутизаторов, поэтому я пошел к документы и выяснили, какая ситуация может привести к отправке dhclient DHCPDECLINE.
Документы Dhclient показывают, что dhclient-script вызывается при выдаче аренды:
... сценарий конфигурации сети, вызываемый dhclient, когда он получает аренда. Если не указано, по умолчанию CLIENTBINDIR / dhclient-script будет используемый. Описание этого файла см. В dhclient-script (8).
http://manpages.ubuntu.com/manpages/wily/en/man8/dhclient.8.html
Dhclient-script docs покажите, что перед настройкой адреса, предлагаемого DHCP-сервером, dhclient-script ARPs для него и вызывает DHCPDECLINE, если адрес уже существует.
Перед фактической настройкой адреса dhclient-script должен каким-то образом ARP для него и выйти с ненулевым статусом, если он получит Ответить. В этом случае клиент отправит сообщение DHCPDECLINE на сервер и получить другой адрес.
http://manpages.ubuntu.com/manpages/wily/en/man8/dhclient-script.8.html
У меня нет копии Ubuntu, чтобы посмотреть в данный момент (проверьте свой / etc / dhclient-script), но исходный код для Linux dhclient-script можно найти здесь http://bazaar.launchpad.net/~ubuntu- ветки / ubuntu / wily / isc-dhcp / wily / view / head: / client / scripts / linux
Я думаю (но, к сожалению, не могу это проверить), что вы можете сделать резервную копию своего существующего dhclient-скрипта и отредактировать его section
Must be used on exit. Invokes the local dhcp client exit hooks, if any.
exit_with_hooks() {
exit_status=$1
if [ -f /etc/dhclient-exit-hooks ]; then
. /etc/dhclient-exit-hooks
fi
# probably should do something with exit status of the local script
exit $exit_status
}
Я думаю, изменение exit $ exit_status
на exit 1
приведет к отклонению любой аренды DHCP ...
Попробуйте. Если он работает так, как я думаю, он полностью нарушит работу DHCP-клиента, но при каждом запуске dhclient будет генерировать DHCPDECLINE.