Я хочу, чтобы в моей сети хост 10.10.10.1
разрешал имена через 8.8.8.8
и 10.10. 10.2
через 8.8.4.4
. Они получают свои настройки DNS через службу DHCP dnsmasq
.
Я могу представить два решения:
dnsmasq
(поэтому они оба получают свой IP-адрес как DNS-сервер) и dnsmasq
перенаправляет запросы на основе исходного IP-адреса запрашивающего хоста. Это что-то настраиваемое в dnsmasq?
Ближайшая конфигурация, которую я обнаружил, - server = / example.com / 8.8.8.8
, который перенаправит на 8.8.8.8
запросы на разрешение example.com
. Однако в моем случае это источник должен вызывать условие, а не пункт назначения.
Возможно, вам стоит подумать об использовании функции "views" в BIND. Я не совсем уверен, что вы делаете, но похоже, что вам нужно разное разрешение IP внутри вашей локальной сети из-за пределов вашей локальной сети.
BIND позволяет вам отвечать на запросы с разными результатами в зависимости от IP-адреса источника. Подробнее об этом читайте здесь: https://kb.isc.org/article/AA-00851/0/Understanding-views-in-BIND-9-by-example.html
Вы можете сделать это, назначив класс одному из серверов. Затем на основе этого класса отправить другой список DNS-серверов. В настройках, приведенных ниже, используйте mac-адрес для установки тега, который используется для указания другого списка серверов. Существуют различные условия, которые могут быть использованы для установки тега.
dhcp-mac=set:alt,00:03:aa:bb:cc:dd
dhcp-option=6,8.8.8.8,8.8.4.4
dhcp-option=alt:6,8.8.4.4,8.8.8.8
Было бы проще просто установить /etc/resolv.conf
на одном сервере на соответствующее значение.
вы можете использовать опцию -p в dnsmasq для запуска нескольких экземпляров dnsmasq и перенаправления с помощью iptables
что-то вроде этого:
# dnsmasq -p 1054
# dnsmasq -p 1055
# iptables -I INPUT --src NET1/M --dst YOURIP -p udp --dport 53 -j REDIRECT --to-ports 1054
# iptables -I INPUT --src NET2/M --dst YOURIP -p udp --dport 53 -j REDIRECT --to-ports 1055