Вопрос или проблема
У меня есть виртуальная машина с 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=
, которая более компактна и облегчает конфигурацию.
Обработка обратных запросов
-
Использование директивы
server=
:
Вам необходимо добавить обработки для зон обратного DNS:server=/10.10.in-addr.arpa/10.10.10.10 server=/20.10.in-addr.arpa/10.20.20.20
-
Использование директивы
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 ошибок и увеличивает общую надежность инфраструктуры сети. Успешное завершение этой задачи не только удовлетворяет требования текущего конфигурационного спроса, но и способствует улучшению администрирования сетевых ресурсов в будущем.