Как я могу ограничить 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, поэтому я позволю кому-то ответить. Я оставлю свой оригинальный ответ здесь, просто на случай, если он пригодится любому.

Другие вопросы по тегам