Перенаправление DNS-запросов EcoNAT Documentation
Данная функциональность позволяет провайдеру перенаправлять DNS-запросы абонентов на свой DNS-сервер, независимо от того, какой IP-адрес DNS-сервера указан в исходном запросе. Перенаправление выполняется на основании заданных правил. Можно задать до 8 правил (например, отдельные правила для разных подсетей).
Настройка перенаправления DNS-запросов производится в ветке system.dns_redirects. В первую очередь необходимо создать правило командой create dns_redirect <имя правила>. Затем следует задать параметры правила и применить настройки. В таблице ниже дано описание параметров правила.
Параметр | Описание |
---|---|
enable | disable | Включение / выключение правила |
priority | Приоритет правила. Чем меньше значение, тем выше приоритет. По умолчанию 100 |
dns_redirect_timeout | Время ожидания ответа DNS-сервера в секундах. По умолчанию 5 |
dns_redirect_no_response_count | Максимально допустимое количество последовательных DNS-запросов, на которые в течение dns_redirect_timeout от DNS-сервера не поступило ответа. По умолчанию 3. При достижении данного количества DNS-серверу присваивается статус "недоступен" |
dns_redirect_deadtime | Время в секундах, в течение которого на DNS-сервер в статусе "недоступен" не будут перенаправляться DNS-запросы. По умолчанию 120 |
dns_redirect_ipv4_servers ( ) | IPv4-адреса DNS-серверов, на которые должны перенаправляться DNS-запросы в пакетах IPv4. Можно задать до 32 адресов. Если указано несколько адресов, то для выбора DNS-сервера применяется алгоритм Round-robin. Адреса можно указывать как по отдельности через пробел, так и диапазоном через дефис или длину префикса (не меньше 27) |
dns_redirect_ipv6_servers ( ) | IPv6-адреса DNS-серверов, на которые должны перенаправляться DNS-запросы в пакетах IPv6. Можно задать до 32 адресов. Если указано несколько адресов, то для выбора DNS-сервера применяется алгоритм Round-robin. Адреса можно указывать в полной и сокращённой форме как по отдельности через пробел, так и диапазоном через дефис или длину префикса (не меньше 123) |
acl ( ) | Предварительно созданный ACL для трафика IPv4, которому должны соответствовать пакеты для того, чтобы к ним было применено правило перенаправления. Можно указать несколько ACL через пробел. Порядок указания определяет последовательность проверки трафика на соответствие правилам ACL |
aclv6 ( ) | Предварительно созданный ACL для трафика IPv6, которому должны соответствовать пакеты для того, чтобы к ним было применено правило перенаправления. Можно указать несколько ACL через пробел. Порядок указания определяет последовательность проверки трафика на соответствие правилам ACL |
Пример настройки:
configure
goto dns_redirects
create dns_redirect A
goto dns_redirectA
enable
priority 100
dns_redirect_timeout 5
dns_redirect_no_response_count 3
dns_redirect_deadtime 120
dns_redirect_ipv4_servers ( 10.10.0.100 10.10.0.111-10.10.0.115 )
dns_redirect_ipv6_servers ( fc00::2 fc00::3 )
acl ( aclv4_dns_redirect )
aclv6 ( aclv6_dns_redirect )
apply
Примечание. Настройки не будут применены, если при установленном параметре enable выполняется хотя бы одно из следующих условий:
- задан acl, но не задан dns_redirect_ipv4_servers;
- задан aclv6, но не задан dns_redirect_ipv6_servers;
- не задан ни acl, ни aclv6;
- не создан ACL, указанный в параметре acl или aclv6.
Для диагностики и просмотра статистики перенаправления DNS-запросов предусмотрены следующие команды:
show dns_redirect brief – вывод сводной информации по всем правилам. Пример выводимых данных:
# show dns_redirect brief
Name Priority Status
dns_redirectA 100 enable
dns_redirectB 200 enable
show dns_redirect <имя правила> counters – вывод подробной информации по отдельному правилу. Пример выводимых данных:
# show dns_redirect dns_redirectA counters
DNS IP TOTAL SENT NO ANSWER STATUS DEADTIME
-------------------------------------------------------------------------------------
10.10.0.100 456098 310 DEAD 90
10.10.0.111 25698345783 0 ALIVE -
fc00::2 34747123 23 ALIVE -
fc00::3 1435 132 DEAD 50
где
TOTAL SENT – общее количество DNS-запросов, перенаправленных на данный DNS-сервер (64-битный счётчик)
NO ANSWER – количество событий, когда от данного DNS-сервера не было получено ответа (32-битный счётчик)
STATUS – DEAD: серверу присвоен статус "недоступен", и он не используется для перенаправления; ALIVE – сервер используется для перенаправления
DEADTIME – оставшееся время dns_redirect_deadtime (только для серверов в статусе DEAD)
clear dns_redirect <имя правила> { all | <IP-адрес> } – сброс счётчиков TOTAL SENT и NO ANSWER для всех DNS-серверов (all) или для определённого DNS-сервера (IP-адрес). Данная команда выполняется только в конфигурационном режиме. Пример выводимых данных:
# clear dns_redirect dns_redirectA 10.10.0.100
Ok
# show dns_redirect dns_redirectA counters
DNS IP TOTAL SENT NO ANSWER STATUS DEADTIME
-------------------------------------------------------------------------------------
10.10.0.100 0 0 DEAD 90
10.10.0.111 25698345783 0 ALIVE -
fc00::2 34747123 23 ALIVE -
fc00::3 1435 132 DEAD 50
reset dns_redirect <имя правила> { all | <IP-адрес> } – сброс таймера dns_redirect_deadtime и возврат определённого сервера (IP-адрес) или всех серверов (all) в группу DNS-серверов, используемых для перенаправления. Данная команда выполняется только в конфигурационном режиме. Пример выводимых данных:
# reset dns_redirect dns_redirectA fc00::3
Ok
# show dns_redirect dns_redirectA counters
DNS IP TOTAL SENT NO ANSWER STATUS DEADTIME
-------------------------------------------------------------------------------------
10.10.0.100 0 0 DEAD 90
10.10.0.111 25698345783 0 ALIVE -
fc00::2 34747123 23 ALIVE -
fc00::3 1435 132 ALIVE 50