Услуга подмены DNS-ответов позволяет изменять IP-адреса, возвращаемые DNS-сервером для определенных доменных имен. Это позволяет влиять на ответы DNS-серверов, переопределяя IP-адреса в ответах сервера для определённых типов DNS-запросов, указанных в настройках услуги.
Эта услуга эффективна для контроля DNS-запросов клиентов и перенаправления их на альтернативные IP-адреса. Используется для балансировки трафика определенных ресурсов между разными серверами на основании IP адреса.
Описание настройки экспорта DNS-запросов и DNS-ответов.
Поддерживаемые типы DNS-записи:
A
— IPv4-адрес (длина — 32 бита);AAAA
— IPv6-адрес (длина — 128 бит);HTTPS
— тип записи предназначен для предоставления информации о доступных сервисах, работающих по протоколу HTTPS. Он позволяет указывать альтернативные endpoints, поддержку HTTP/3, шифрование ClientHello и нестандартные порты TCP/UDP;MX
— txt-запись, которая содержит информацию о почтовых серверах, обрабатывающих почту.Возможные действия с DNS-запросами:
ya.ru HTTPS #drop
— DPI отбрасывает DNS-запрос с HTTPS типом записиya.ru HTTPS #nxdomain
— DPI отвечает домен не сущетсвует на DNS-запрос с типом записи HTTPSya.ru A #nxdomain
— DPI отправляет ответ об отсутствии домена с типом записи Amail.ru MX smtp.googlemail.com
— в данном случае на запрос mail.ru с типом MX
должен быть получен ответ что домен mail.ru имеет почтовый сервер по адресу smtp.googlemail.com с preference
равным 10.*
для доменов. vi test.txt google.com A 192.0.2.1 test.ru A #nxdomain example.com AAAA 2001:db8:85a3::8a2e:370:7334 ya.ru HTTPS #drop *.fb.com A 203.0.113.5 mail.ru MX smtp.googlemail.com
dns2dic
конвертировать текстовый файл в бинарный формат, понятный для DPI:cat test.txt|dns2dic test.bin
cp test.bin /var/lib/dpi/dns.bin
fdpi_ctrl load profile --service 19 --profile.name test_193 --profile.json '{ "dns_list" : "/var/lib/dpi/dns.bin" }'
max_profiles_serv19
— настройка максимального количества профилей. По умолчанию — 32.
fastdpi.conf
параметром emit_direction=2
Формат команды:
fdpi_ctrl [команда] --service 19 [список опций] [login или vchannel]
Подключение услуги:
fdpi_ctrl load --service 19 --profile.name test_193 --login test #или fdpi_ctrl load --service 19 --profile.name test_193 --vchannel 1
Отключение услуги:
fdpi_ctrl del --service 19 --profile.name test_193 --login test #или fdpi_ctrl del --service 19 --profile.name test_193 --vchannel 1