Как условно перенаправить DNS-запросы с помощью dnsmasq?

Я хочу, чтобы в моей сети хост 10.10.10.1 разрешал имена через 8.8.8.8 и 10.10. 10.2 через 8.8.4.4 . Они получают свои настройки DNS через службу DHCP dnsmasq .

Я могу представить два решения:

  • хосты получают определенный набор DNS-серверов в зависимости от их IP.
  • оба хоста разрешаются через сервер dnsmasq (поэтому они оба получают свой IP-адрес как DNS-сервер) и dnsmasq перенаправляет запросы на основе исходного IP-адреса запрашивающего хоста.

Это что-то настраиваемое в dnsmasq?

Ближайшая конфигурация, которую я обнаружил, - server = / example.com / 8.8.8.8 , который перенаправит на 8.8.8.8 запросы на разрешение example.com . Однако в моем случае это источник должен вызывать условие, а не пункт назначения.

1
задан 11 June 2016 в 17:29
3 ответа

Возможно, вам стоит подумать об использовании функции "views" в BIND. Я не совсем уверен, что вы делаете, но похоже, что вам нужно разное разрешение IP внутри вашей локальной сети из-за пределов вашей локальной сети.

BIND позволяет вам отвечать на запросы с разными результатами в зависимости от IP-адреса источника. Подробнее об этом читайте здесь: https://kb.isc.org/article/AA-00851/0/Understanding-views-in-BIND-9-by-example.html

1
ответ дан 3 December 2019 в 20:37

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

1
ответ дан 3 December 2019 в 20:37

вы можете использовать опцию -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
0
ответ дан 19 January 2020 в 16:40

Теги

Похожие вопросы