Перенаправляющий DNS сервер#

Описание#

Перенаправляющий DNS сервер — перенаправляет полученные рекурсивные запросы вышестоящему кэширующему серверу в виде рекурсивных запросов. Используется преимущественно для снижения нагрузки на кэширующий DNS сервер. Перенаправляющий (Forwarding) DNS-сервер имеет следующие свойства:

  • Способность обрабатывать рекурсивные запросы без выполнения самой рекурсии

  • Предоставлять локальный кэш в ближайшем сетевом расположении

  • Увеличивает гибкость в определении локального доменного пространства

В ПО Факел перенаправляющий DNS сервер не требует наличия вышестоящего DNS сервера. Он может выступать как в качестве полноценного рекурсивного DNS сервера, так и пересылать запросы на настраиваемые вышестоящие DNS серверы.

Настройка#

Пример настройки#

Пример настройки разделенного DNS (split DNS) для домена example.com.

Для настройки разделенного DNS будут использоваться следующие параметры:

  • Все DNS запросы для домена example.com должны перенаправляться на DNS сервер по адресу 192.0.2.254 и 2001:db8:cafe::1

  • Все остальные DNS запросы будут перенаправлены на другой набор DNS серверов по адресам 192.0.2.1, 192.0.2.2, 2001:db8::1:ffff и 2001:db8::2:ffff

  • Перенаправляющий DNS сервер будет прослушивать запросы только по адресам внутреннего интерфейса eth1 - 192.168.1.254 для IPv4 и 2001:db8::ffff для IPv6.

  • Перенаправляющий DNS сервер будет принимать запросы на поиск только из внутренних подсетей - 192.168.1.0/24 и 2001:db8::/64

  • Перенаправляющий DNS сервер будет передавать обратные запросы на поиск для зон 10.in-addr.arpa, 168.192.in-addr.arpa, 16-31.172.in-addr.arpa на вышестоящий сервер.

Список команд для настройки:

set service dns forwarding domain example.com server 192.0.2.254
set service dns forwarding domain example.com server 2001:db8:cafe::1
set service dns forwarding name-server 192.0.2.1
set service dns forwarding name-server 192.0.2.2
set service dns forwarding name-server 2001:db8::1:ffff
set service dns forwarding name-server 2001:db8::2:ffff
set service dns forwarding listen-address 192.168.1.254
set service dns forwarding listen-address 2001:db8::ffff
set service dns forwarding allow-from 192.168.1.0/24
set service dns forwarding allow-from 2001:db8::/64
set service dns forwarding no-serve-rfc1918

Список команд#

Основные настройки#

set service dns forwarding system#

Перенаправляет входящие DNS запросы на DNS сервера, которые настроенные в операционной системы.

set service dns forwarding dhcp <interface>#

Определяет интерфейс <interface>, на который DHCP клиенты направляют DNS запросы.

set service dns forwarding name-server <address>#

Задает адрес DNS сервера <address>, на который будут передаваться все DNS запросы. Поддерживается возможность указать несколько адресов для использования различных DNS серверов.

set service dns forwarding domain <domain-name> server <address>#

Перенаправляет полученные запросы для определенного домена <domain-name> на заданный DNS сервер <address>. Поддерживается возможность указать несколько адресов для использования различных DNS серверов. Этот параметр можно использовать для настройки разделенного DNS.

Примечание

Этот параметр работает для зон с обратным поиском 18.172.in-addr.arpa.

set service dns forwarding domain <domain-name> addnta#

Активирует механизм NTA для определенного домена <domain-name>. Этот параметр должен быть установлен, если домен не поддерживает DNSSEC.

set service dns forwarding domain <domain-name> recursion-desired#

Устанавливает RD бит для запросов к вышестоящему DNS серверу.

set service dns forwarding allow-from <network>#

Задает адрес сети <network>, в которой узлам разрешено использовать перенаправляющий DNS сервер.

set service dns forwarding dnssec <off | process-no-validate | process | log-fail | validate>#

Устанавливает уровень для параметра DNSSEC <off | process-no-validate | process | log-fail | validate>.

Перенаправляющий DNS сервер имеет 5 различных уровней обработки DNSSEC:

  • off - В этом режиме обработка DNSSEC не производится. Перенаправляющий DNS сервер не будет устанавливать бит DNSSEC OK (DO) в исходящих запросах и будет игнорировать биты DO и AD в запросах.

  • process-no-validate - В этом режиме перенаправляющий DNS сервер будет устанавливать DO-бит в исходящих запросах и предоставлять RR-наборы, связанные с DNSSEC (NSEC, RRSIG), клиентам, которые их запрашивают (с помощью DO-бита в запросе), за исключением зон, предоставляемых с помощью настройки зон для авторизации. В этом режиме он не будет выполнять никаких проверок, даже по запросу клиента.

  • process - Если для параметра dnssec установлено значение process, то поведение перенаправляющего DNS сервера будет аналогично поведению в режиме process-no-validate. Однако перенаправляющий DNS сервер попытается проверить данные, если в запросе установлен хотя бы один из битов DO или AD. В этом случае он установит в ответе бит AD, если данные проверены успешно, или пошлет SERVFAIL, если проверка окажется ошибочной.

  • log-fail - В этом режиме перенаправляющий DNS сервер будет пытаться проверить все данные, получаемые с доверенных серверов, независимо от запросов клиента по DNSSEC, и записывать результат проверки в журнал. Этот режим можно использовать для определения дополнительной нагрузки и количества возможных фиктивных ответов перед включением полноценной проверки. Ответы на запросы клиента аналогичны процессу.

  • validate - Наивысший режим обработки DNSSEC. В этом режиме все запросы будут проверяться и в случае обнаружения не легитимных данных будет отправлен ответ SERVFAIL, независимо от запроса клиента.

Примечание

Популярный инструмент Dig для Unix/Linux устанавливает AD-бит в запросе. Это может привести к неожиданным результатам запроса при тестировании. В этом случае нужно указать параметр +noad в командной строке dig.

Примечание

CD бит корректно выполняется для process и validate. Для log-fail сбои также будут регистрироваться.

set service dns forwarding ignore-hosts-file#

Отключает поиска по имени узла из файла /etc/hosts для перенаправляющего DNS сервера.

set service dns forwarding cache-size <0-2147483647>#

Задает максимальное значение для количества записей DNS кэша <0-2147483647>. По умолчанию для максимального количества записей установлено значение 10000.

set service dns forwarding negative-ttl <0-7200>#

Задает максимальное время кэширования <0-7200> для отрицательных записей. По умолчанию для максимального времени кэширования установлено значение 3600 секунд.

Примечание

Запрос, на который нет подтвержденного ответа, кэшируется, чтобы впоследствии быстро исключить DNS запись, не создавая большой нагрузки на удаленный сервер.

set service dns forwarding listen-address <address>#

Устанавливает локальные адреса IPv4 или IPv6 <address>, к которым будет привязан перенаправляющий DNS сервер. Этого адреса DNS сервер будет использовать для прослушивания входящих соединений.

set service dns forwarding source-address <address>#

Устанавливает локальные адреса IPv4 или IPv6 <address>, используемые в качестве адреса источника для отправки запросов. С этого адреса DNS сервер будет отправлять перенаправленные на него исходящие DNS запросы.

set service dns forwarding no-serve-rfc1918#

Активирует параметр, который делает перенаправляющий DNS сервер неизвестным для зон: 10.in-addr.arpa, 168.192.in-addr.arpa, 16-31.172.in-addr.arpa, что позволяет использовать вышестоящие DNS-серверы для обратного поиска этих зон.

Мониторинг и эксплуатация#

reset dns forwarding <all | domain>#

Сбрасывает локальную базу данных кэша переадресации DNS. Можно сбросить кэш для всех записей или только для записей, относящихся к определенному домену.

restart dns forwarding#

Перезапускает процесс перенаправляющего DNS сервера. При этом также аннулируется локальный кэш переадресации DNS.

show dns forwarding#

Выводит на экран статистику работы перенаправляющего DNS сервера.