У меня есть сниффер пакетов 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-скрипт вызывается при оформлении аренды:
... сценарий конфигурации сети, вызываемый dhclient, когда он получает аренду. Если не указано, используется сценарий по умолчанию CLIENTBINDIR / dhclient-script. См. Описание этого файла в dhclient-script (8).
http://manpages.ubuntu.com/manpages/wily/en/man8/dhclient.8.html
Dhclient-скрипт Документы показывают, что перед настройкой адреса, предлагаемого DHCP-сервером, dhclient-script выполняет ARP для него и вызывает DHCPDECLINE, если адрес уже существует.
Перед фактической настройкой адреса dhclient-script должен каким-то образом ARP для него и выйти с ненулевым статусом, если он получит ответ. В этом случае клиент отправит на сервер сообщение DHCPDECLINE и получит другой адрес.
http://manpages.ubuntu.com/manpages/wily/en/man8/dhclient-script.8.html
У меня нет копии Ubuntu, чтобы взглянуть на нее (проверьте свой / etc / dhclient-script), но исходный код для Linux dhclient-скрипт можно найти здесь http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/wily/isc-dhcp/wily/view/head:/client/scripts/linux
Я думаю (но, к сожалению, не могу это проверить), что вы можете сделать резервную копию своего существующего dhclient-script и отредактировать этот раздел
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-клиент, но должен генерировать DHCPDECLINE каждый раз, когда вы запускаете dhclient.