Содержание

Подмена DNS-ответов

Назначение

Услуга подмены DNS-ответов позволяет изменять IP-адреса, возвращаемые DNS-сервером для определенных доменных имен. Это позволяет влиять на ответы DNS-серверов, переопределяя IP-адреса в ответах сервера для определённых типов DNS-запросов, указанных в настройках услуги.
Эта услуга эффективна для контроля DNS-запросов клиентов и перенаправления их на альтернативные IP-адреса. Она особенно полезна, когда нужно направить пользователя на ресурс, отличный от запрашиваемого.

Схема работы услуги

  1. Клиент выполняет определенный тип запроса к DNS-серверу (например, тип A).
  2. DNS сервер возвращает ответ (для записи типа А это IPv4-адрес).
  3. DPI видит запрос и проверяет, назначена ли услуга подмены для этого клиента.
  4. Если услуга назначена, DPI модифицирует оригинальный ответ DNS-сервера, в зависимости от указанных правил в услуге.
  5. DPI перенаправляет модифицированный ответ клиенту. При этом клиент не замечает модификации и считает ответ легитимным.

Настройка

  1. Создать текстовый файл и добавить в него правила подмены для 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
  2. Утилитой dns2dic конвертировать текстовый файл в бинарный формат, понятный для DPI:
    cat test.txt|dns2dic test.bin
  3. Поместить полученный бинарный файл в директорию, откуда его будет читать DPI:
    cp test.bin /var/lib/dpi/dns.bin
  4. Создать профиль услуги:
    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