Есть ли способ заставить dnsmasq предлагать IP-адрес, даже если его нет в этом интерфейсе su bnet? - PullRequest
0 голосов
/ 13 января 2020

Мои настройки

У меня огромная сеть l2 с различными / 24 IP-подсетями. Чтобы получить доступ к каждому хосту в сети, отправьте пакеты на номер 255.255.255.255

Что я хочу

Принудительно dnsmasq предлагает IP-адрес (например, 203.0.113.228), даже если машина, на которой установлен dnsmasq работает, не имеет IP в этом (например, 203.0.113.0/24) su bnet.

Почему я хочу это

Так как у меня много / 24 подсетей, я не хочу тратить один IP-адрес для каждой сети только для работы dnsmasq.

Пока успех

Нет успеха. dnsmasq говорит:

dnsmasq-dhcp: недоступен диапазон адресов для запроса DHCP через eth0

Мне удалось найти аналогичный вопрос на форуме openwrt с нулевыми ответами: https://forum.openwrt.org/t/dnsmasq-give-out-any-ip-address-on-certain-interface/1866

Я, конечно, знаю, что то, что я хочу, возможно в протоколе DHCP, так как я успешно создал предложения DHCP через scapy. Конечно, я не хочу писать свой собственный DHCP-сервер на основе scapy ...

Похоже, проблема в том, что я не могу указать маску сети 0.0.0.0 для моего dhcp-диапазона. т.е. это работает: --dhcp-range=tag0,123.123.123.123,static,0.0.0.1 (123.123.123.123 - это IP интерфейса dnsmasq). Dnsmasq работает и может выдавать предложения для подсетей 203.0.113.0/24, 192.168.100.0/24 и др. c. Но если я укажу маску подсети 0.0.0.0, dnsmasq завершится неудачно, я думаю, из-за различных проверок в коде c (if (netmask.s_addr != 0). Интересно, смогу ли я избежать использования такой маски ...

...