Подмена DNS-ответов
Назначение
Услуга подмены DNS-ответов позволяет изменять IP-адреса, возвращаемые DNS-сервером для определенных доменных имен. Это позволяет влиять на ответы DNS-серверов, переопределяя IP-адреса в ответах сервера для определённых типов DNS-запросов, указанных в настройках услуги.
Эта услуга эффективна для контроля DNS-запросов клиентов и перенаправления их на альтернативные IP-адреса. Она особенно полезна, когда нужно направить пользователя на ресурс, отличный от запрашиваемого.
Схема работы услуги
- Клиент выполняет определенный тип запроса к DNS-серверу (например, тип A).
- DNS сервер возвращает ответ (для записи типа А это IPv4-адрес).
- DPI видит запрос и проверяет, назначена ли услуга подмены для этого клиента.
- Если услуга назначена, DPI модифицирует оригинальный ответ DNS-сервера, в зависимости от указанных правил в услуге.
- DPI перенаправляет модифицированный ответ клиенту. При этом клиент не замечает модификации и считает ответ легитимным.
Настройка
- Создать текстовый файл и добавить в него правила подмены для DNS, указав доменное имя, тип DNS-записи и IP-адрес, который будет указан в ответе для данного домена. Поддерживается указание * для доменов.
Поддерживаемые типы DNS-записи:- A — IPv4-адрес;
- AAAA — IPv6-адрес.
vi test.txt google.com A 192.0.2.1 example.com AAAA 2001:db8:85a3::8a2e:370:7334 *.fb.com A 203.0.113.5
- Утилитой
dns2dic
конвертировать текстовый файл в бинарный формат, понятный для DPI:cat test.txt|dns2dic test.bin
- Поместить полученный бинарный файл в директорию, откуда его будет читать DPI:
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.
Формат команды:
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