Назад | Перейти на главную страницу

dnsmasq: настраиваемое разрешение имен для разных клиентов

У меня есть сеть, в которой я запускаю dnsmasq для DHCP и DNS. В моей сети есть несколько клиентов, каждый из которых должен связываться с главной машиной (что они делают с помощью DNS-запроса к dnsmasq для master). Теперь я хочу запустить несколько основных / клиентских групп в одной сети, и я хочу иметь возможность легко настраивать, какой клиент связан с каким мастером.

Можно ли настроить dnsmasq так, чтобы он давал разные ответы на определенный DNS-запрос разным клиентам? Например, если 10.0.2.23 запросы для master Я хочу чтобы результат был 10.0.3.1. Однако если 10.0.2.24 запросы для master Я хочу чтобы результат был 10.0.3.2.

Я знаю, что могу добиться этого, просто сделав master запись в каждый клиентский /etc/hosts файл, но мне бы хотелось, чтобы вся эта информация была в одном файле конфигурации (например, /etc/dnsmasq.d/masterclient.conf)

TL; DR: явное лучше неявного

Вы также можете убедиться, что любая диагностика, которую вы запускаете в своей сети, также выявляет соединение между членами каждой пары.

Если dnsmasq выполняет и dns, и dhcp, легко решить как проблему «каждый клиент знает своего хозяина», так и сделать возможной проверку правильности настройки - НЕ заставляя dnsmasq реагировать по-разному в зависимости от того, кто запрашивает.

Вместо этого я рекомендую вам убедиться, что каждый клиент запрашивает своего хозяина специально, сделав свою группу частью своего полного доменного имени:

# make sure your dhcp clients use dnsmasq as dns & split them in groups
#  (you probably already do that baes on either mac or subnet)
dhcp-range=set:group1,10.0.2.0,10.0.2.23,255.255.255.0,4h
dhcp-range=set:group2,10.0.2.24,10.0.2.50,255.255.255.0,4h
dhcp-otion=option:dns-server,0.0.0.0

# based on tags, give them a dns search domain
dhcp-option=tag:group1,option:domain-search,pair1.local
dhcp-option=tag:group2,option:domain-search,pair2.local

# making the respective master address known to them
address=/master.pair1.local/10.0.3.1
address=/master.pair2.local/10.0.3.2

Есть способы основывать решение о том, какой клиент к какой группе принадлежит, на разных параметрах; в зависимости от того, что определяет, в какой группе должен быть клиент, мой пример разбивается на dhcp-range может быть либо достаточным, либо совершенно неуместным.

Предостережение: перенастройка клиентов в разные группы может быть выполнена только в соответствии со сроками аренды DHCP, что менее гибко, чем dns TTL.