Как я могу ограничить dnsmasq только для ответа на определенные клиентские DNS-запросы?
Я смотрю на использование сервера dnsmasq, чтобы легко обслуживать некоторые локальные временные имена хостов, а также предоставлять рекурсивный DNS для локальных клиентов.
Однако служба dnsmasq, по-видимому, всегда позволяет любому клиенту искать записи DNS, если она настроена как рекурсивный DNS-сервер.
Есть ли способ ограничить службу dnsmasq разрешением запросов только от локальных клиентов, скажем, что-то вроде 192.168.0.0/16 и 127.0.0.0/8 и, возможно, даже несколько избранных публичных IP-адресов?
Я мог бы сделать это с помощью iptables, но было бы гораздо предпочтительнее, если бы я мог сохранить DNS-релевантную конфигурацию локальной для dnsmasq.
1 ответ
Вы можете ограничить интерфейс, который прослушивает dnsmasq (например, ваша локальная сеть):
это указывает только прослушивание eth0:
interface=eth0
и это указывает только прослушивание по определенному адресу (в данном случае 192.168.1.1):
listen-address:192.168.1.1
Вы также можете указать интерфейс, чтобы не слушать:
except-interface=eth1
Вы можете повторить строку для более чем одного интерфейса.
ПОПРАВКИ
извините, я перечитал ваш вопрос и не считаю, что мой ответ особенно полезен, вы хотите ограничить доступ к dns (в dnsmasq conf), а не ограничивать, где и как вы получаете аренду вашего dhcp. Я не знаю, как это сделать в файле конфигурации dnsmasq, поэтому я позволю кому-то ответить. Я оставлю свой оригинальный ответ здесь, просто на случай, если он пригодится любому.