Назад | Перейти на главную страницу

Как сгенерировать сценарий / пакеты DHCP Decline

У меня есть сниффер пакетов 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.