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

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

Спасибо и заранее !!

3
задан 17 February 2016 в 22:35
2 ответа

Похоже, это должно быть возможно, но для этого потребуется немного возиться ...

Как вы предложили в комментариях, 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.

1
ответ дан 3 December 2019 в 07:25

От любого генератора трафика создайте сообщение Ethernet IPv4-DHCP типа 53 с 04 для отклонения и 06 байт для NAK

0
ответ дан 26 July 2021 в 08:26

Теги

Похожие вопросы