Имеем клиентов, которые получают сетевые настройки по dhcp. В dhcpd на каждый порт привязан пул из одного адреса (через 82-ю опцию, которую довешивает коммутатор на dhcp-пакеты). Если менять оборудование у клиента, то повторно настройки на порт не будут выданы dhcpd, потому что время аренды (lease) ещё не истекло.
Мир не без добрых людей и есть хак на isc dhcpd, после которого он начинает повторно выдавать активные lease-ы. Да, это ломает все принципы и правила dhcp протокола, но именно в нашем конкретном случае 1порт->1ip, такое поведение будет оправдано. Итак на стенде все замечательно работает.
enable dhcp_local_relay
config dhcp_local_relay option_82 ports 1-24 policy replace
config address_binding ip_mac ports 1-24 protocol all
config address_binding ip_mac ports 1-24 arp_inspection strict
config address_binding ip_mac ports 1-24 allow_zeroip enable
config address_binding ip_mac ports 1-24 ip_inspection enable
config address_binding ip_mac ports 1-24 forward_dhcppkt enable
config address_binding dhcp_snoop max_entry ports 1-24 limit 1
enable address_binding dhcp_snoop
Как только "внедрили в производство" столкнулись с проблемой повторных левых запросов dhcp со стороны клиента (ос windows). Левых - потому что идут с небольшой задержкой после нормального (с правильным мас-ом медного интерфейса) с маками беспроводных, bluetooth и хз каких других интерфейсов (естественно никаких мостов из этих интерфейсов не собрано и даже сами интерфейсы не активны). Решается явным оключением всех интерфейсов, кроме медного в windows, но это не есть _то_ решение, которое нужно
В итоге наш dhcpd повторно выдаёт те же настройки ip на эти левые маки и привязка на коммутаторе сбивается. В таблице dhcp snooping-а запись обновляется (не создаётся ещё одна новая), поэтому "config address_binding dhcp_snoop max_entry ports 1-24 limit 1" нам не помогает.
Если ли какое другое решение?
PS
Поскольку продление lease-ы идёт udp пакетами с ip адреса клиента на ip адрес сервера, то оно пройдет через acl правило address_binding-а и соответственно config address_binding ip_mac ports 1-24 forward_dhcppkt _disable_ нам не помеха. С другой стороны, при отсутствии привязки, disable не даст нам получить настройки ...
Можно ли добавить параметр, который будет ограничивать кол-во динамических записей в IMPB на порту отключением forward_dhcppkt?
/foo