LINUX.ORG.RU
ФорумAdmin

isc-dhcp-server заблокировать прием broadcast

 ,


0

3

dhcpd должен принимать запросы только с relay серверов, но т.к. висит на интерфейсе то на него приходят запросы из локальной сети (на которые он не должен отвечать). iptables (включая raw)/ebtables бесполезны т.к. dhcpd слушает raw socket раньше netfilter. Пробовал блокануть в ebtables на гипервизере (proxmox) - аналогично запросы проходят (что уже странно, но может в virtio дело).

Конечно можно попробовать запихнуть в отдельный bridge, на отдельный vlan и зарезать по acl уровнем выше, но это совсем кошмар для такой простой операции.

Может есть хитрая опция в dhcpd.conf которая позволит заблокировать запросы с 0.0.0.0? Пока пробую создать class который фильтрует по наличию opt82 и раздает адрес только подходящим клиентам, но не совсем понятно как это будет работать вкупе с классами которые по opt82 раздают статические ip (но это в процессе проверки), но мне такое решение кажется излишне костыльним и должно быть что-то более элегантное.

★★★★★

Последнее исправление: Kolins (всего исправлений: 1)

Пока пробую создать class который фильтрует по наличию opt82 и раздает адрес только подходящим клиентам, но не совсем понятно как это будет работать вкупе с классами которые по opt82 раздают статические ip (но это в процессе проверки), но мне такое решение кажется излишне костыльним и должно быть что-то более элегантное.

Работает и со статическими нормально работает, но в логи пишет что нет свободных адресов для broadcast запросов, что неприятно

Kolins ★★★★★
() автор топика

Первое - указать при запуске dhcpd в явном виде список интерфейсов на который приходят запросу с релеев. Тогда он не будет слушать запросы с других интерфейсов.

Либо в конфиге нужно перечислить все подсети с опцией «not authoritative;» из которых не нужно обрабатывать запросы.

У меня все такие сети сконфигурированы с двумя опциями: «not authoritative;» и «deny unknown-clients;»

vel ★★★★★
()
Ответ на: комментарий от vel

указать при запуске dhcpd в явном виде список интерфейсов на который приходят запросу с релеев.

Всего 1 интервейс, но на pve он забриджован с vlan где живут другие виртуалки с разных серверов

Либо в конфиге нужно перечислить все подсети с опцией «not authoritative;» из которых не нужно обрабатывать запросы.

А вот про это пойду почитаю

Kolins ★★★★★
() автор топика