dnsmasq с двумя отдельными доменами AD

Вопрос или проблема

У меня есть виртуальная машина с CentOS, на которой я пытаюсь настроить dnsmasq для выполнения запросов к двум DNS-серверам. Эти DNS-серверы обслуживают запросы только для домена, в котором они находятся.

  • DNS1 – 10.10.10.10 – обрабатывает только запросы к *.domain1.com
  • DNS2 – 10.20.20.20 – обрабатывает только запросы к *.domain2.com
centOS# nmcli device show | grep DNS
IP4.DNS[1]:    127.0.0.1
centOS# tail -n 5 /etc/dnsmasq.conf
server=/domain1.com/10.10.10.10
server=/domain2.com/10.20.20.20
no-resolv

Проблема в том, что я продолжаю получать ошибку NXDOMAIN, когда запускаю nslookup.

  • nslookup 10.10.10.100 10.10.10.10, работает нормально — Ожидаемо
  • nslookup 10.10.10.100 10.20.20.20, ошибка NXDOMAIN — Ожидаемо
  • nslookup 10.10.10.100, ошибка NXDOMAIN — Почему это не работает на основе конфигурации?

Попытки, которые были предприняты:

  • Я пробовал использовать no-negcache. По какой-то причине, все запросы продолжают отправляться ко второму DNS-серверу (подтверждено через log-queries)
  • Также пробовал использовать strict-order. Опять же, все, что говорит второй DNS-сервер, считается окончательным, а первый игнорируется.

Ну, ни один из ваших примеров nslookup на самом деле не делает запрос для domain1.com или domain2.com. Во всех трех примерах вы делаете только ‘обратные DNS’ запросы для 10.10.10.100, который, конечно, не относится ни к одному из этих доменных имен.

Даже если бы это возвратило PTR в something.domain1.com, Dnsmasq не может знать это заранее, прежде чем он выполнит запрос!

Фактическое доменное имя, на которое делается запрос, находится в специальном формате in-addr: DNS не имеет истинных обратных запросов, поэтому nslookup 10.10.10.100 делает запрос для 100.10.10.10.in-addr.arpa из отдельной обратной зоны. Поэтому, если вы хотите распределять запросы к обратным зонам в дополнение к обычным запросам по доменному имени, вам потребуются дополнительные записи server= для этого:

server=/10.10.in-addr.arpa/10.10.10.10
server=/20.10.in-addr.arpa/10.20.20.20

или опции “удобства” rev-server=:

rev-server=10.10.0.0/16, 10.10.10.10
rev-server=10.20.0.0/16, 10.20.20.20

Ответ или решение

Настройка Dnsmasq для работы с двумя отдельными доменами Active Directory является важной задачей для IT специалистов, стремящихся оптимально маршрутизировать DNS-запросы в корпоративной сети. Для решения, вызовающее NXDOMAIN ошибки при использовании DNS-сервера, требуется тщательный анализ конфигурации Dnsmasq на CentOS и понимание процесса разрешения DNS-имен.

Теория

Dnsmasq — это легковесный сервер DHCP и DNS, который может использоваться для кэширования DNS-запросов и перенаправления их к различным вышестоящим серверам в зависимости от настроек. Проблема, с которой сталкивается пользователь, возникает из-за специфики обработки обратных запросов DNS (reverse DNS lookups). Конфигурация, представленная в системе CentOS, предназначена для обработки прямых запросов к доменам domain1.com и domain2.com, но не учитывает нюансы обратных записей типа DNS, которые продолжают вызывать ошибки NXDOMAIN.

Пример

Вы рассматриваете конфигурацию, где:

  • DNS1 обслуживает только запросы для *.domain1.com и находится на IP: 10.10.10.10.
  • DNS2 обслуживает только запросы для *.domain2.com и находится на IP: 10.20.20.20.
  • Конфигурация Dnsmasq настроена для этих доменов следующим образом:

    server=/domain1.com/10.10.10.10
    server=/domain2.com/10.20.20.20
    no-resolv

Эта конфигурация изначально не учитывает специфический формат, необходимый для обработки обратных DNS-запросов, которые выглядят как 100.10.10.10.in-addr.arpa.

Применение

Для решения текущей проблемы нужно дополнительно указать настройки обработчика обратных запросов. Это может быть сделано либо с помощью директив server=, либо с использованием директивы rev-server=, которая более компактна и облегчает конфигурацию.

Обработка обратных запросов

  1. Использование директивы server=:
    Вам необходимо добавить обработки для зон обратного DNS:

    server=/10.10.in-addr.arpa/10.10.10.10
    server=/20.10.in-addr.arpa/10.20.20.20
  2. Использование директивы rev-server=:
    Этот метод является более лаконичным и простым в управлении. Директива rev-server позволяет указать IP-диапазон для обработки:

    rev-server=10.10.0.0/16, 10.10.10.10
    rev-server=10.20.0.0/16, 10.20.20.20

Заключение

С корректно настроенными обработчиками для обратных запросов Dnsmasq сможет правильно маршрутизировать запросы не только к доменным узлам, но и к их IP-адресам. Такая настройка гарантирует стабильное и предсказуемое поведение системы DNS, что особенно важно в крупных корпоративных сетях с несколькими доменами Active Directory. При этом важно помнить, что при добавлении новых доменов или изменении существующих конфигураций, необходимо будет корректировать и конфигурацию Dnsmasq в соответствии с новыми требованиями.

Таким образом, конфигурация Dnsmasq становится более гибкой и адаптивной, что снижает риск возникновения NXDOMAIN ошибок и увеличивает общую надежность инфраструктуры сети. Успешное завершение этой задачи не только удовлетворяет требования текущего конфигурационного спроса, но и способствует улучшению администрирования сетевых ресурсов в будущем.

Оцените материал
Добавить комментарий

Капча загружается...