DNSMASQ обслуживает разные результаты DNS для разных подсетей.

В моей сетевой инфраструктуре есть несколько подсетей, предназначенных для разделения различных типов устройств. Я хотел бы иметь возможность обслуживать разные ответы DNS от разных серверов DNS в зависимости от запрашиваемой подсети. Например, я хотел бы использовать DNS Google для одной подсети, но, скажем, DNS CloudFlare для защиты от вредоносных программ для другой. Я также хотел бы иметь возможность дальнейшей блокировки, используя разные объявления адресов в разных подсетях.

Один из способов, которым некоторые люди выполняют первую часть, - это использовать объявление dhcp-option для обслуживания разных адресов серверов в разных подсетях, но этот вид противоречит цели DNSMASQ и превращает его в основном просто сервер DHCP, а также побеждает использование брандмауэра. ограничить доступ к порту 53 для управления любыми жестко заданными DNS-серверами.

Другой вариант, который я видел, - это запустить 2 экземпляра DNSMASQ, однако это создает сильно настраиваемую настройку, которая не позволяет использовать какие-либо файлы конфигурации системного уровня или запускать сценарии, которых я хотел бы избежать.

Поэтому я надеюсь, что кто-то может предложить решение для этого.

Заранее спасибо.


person dvrhax    schedule 09.03.2021    source источник
comment
Ваш вопрос здесь оффтоп, так как не связан с программированием. При быстром поиске я не нашел эту функцию в DNSMasq, поэтому это программное обеспечение абсолютно обязательно. Если вы посмотрите на unbound, еще один рекурсивный сервер имен, который также может быть авторитетным для некоторых записей, у него есть нужная вам функция, проверьте параметры просмотра в nlnetlabs.nl/documentation/unbound/unbound.conf   -  person Patrick Mevzek    schedule 09.03.2021
comment
Поэтому, если я прочитаю документацию по несвязанным представлениям, это позволит перенаправить определенные домены на локальные домены по подсети, но не похоже, что это позволит мне определить разные серверы имен для пересылки для каждой подсети.   -  person dvrhax    schedule 09.03.2021


Ответы (1)


Предположительно, вы хотите, чтобы все подсети использовали DNSMasq для разрешения локальных доменных имен, но вы хотите, чтобы подсети использовали разные рекурсивные преобразователи для интернет-запросов?

Вы должны иметь возможность сделать это с помощью настроек DHCP (чтобы каждая подсеть получила две записи DNS — одну для DNSMasq и одну для другого преобразователя, например, 8.8.8.8). Эти записи попадут в файл /etc/resolv.conf для каждого устройства и будут предприняты попытки в том порядке, в котором устройство должно разрешить DNS. Если DNSMasq настроен на разрешение только локальных запросов, то устройство будет вынуждено использовать второй адрес (например, 8.8.8.8) для разрешения интернет-запросов.

person johnmgn    schedule 09.03.2021
comment
Согласитесь, что это может решить проблему, но я теряю возможность внесения в черный список, кэширования и других преимуществ, предоставляемых кэширующим сервером имен. - person dvrhax; 09.03.2021
comment
Ах хорошо. Вы хотите, чтобы все запросы проходили через DNSMasq (для использования черного списка, кэширования), но когда DNSMasq перенаправляет запросы на разрешающие серверы имен, вы хотите, чтобы DNSMasq выбирал 8.8.8.8 для запросов, исходящих из одной подсети, и 1.1.1.1, когда запросы исходят из другой подсеть и т. д. Насколько я понимаю, DNSMasq читает локальный файл /etc/resolv.conf, чтобы идентифицировать восходящие преобразователи для пересылки запросов (но их также можно установить напрямую). Я не думаю, что вы можете указать предпочтение маршрутизации в зависимости от исходной подсети для этих запросов (но я могу ошибаться) - person johnmgn; 09.03.2021
comment
Но может оказаться возможным запустить два экземпляра DNSMasq на одном компьютере, чтобы каждый экземпляр прослушивал входящие запросы на разных интерфейсах и указывал разные восходящие преобразователи для этих запросов. - person johnmgn; 09.03.2021