Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
dpi:dpi_options:dns_substitution [2025/07/24 14:37] – [Схема работы услуги] atereschenko | dpi:dpi_options:dns_substitution [2025/09/22 11:46] (текущий) – atereschenko |
---|
{{tag>Услуги "Услуга 19" "Подмена DNS"}} | {{tag>Услуги "Услуга 19" "Подмена DNS"}} |
{{indexmenu_n>16}} | {{indexmenu_n>16}} |
======Подмена DNS-ответов====== | ======Обработка DNS-запросов и подмена DNS-ответов====== |
=====Назначение===== | =====Назначение===== |
Услуга подмены DNS-ответов позволяет изменять IP-адреса, возвращаемые DNS-сервером для определенных доменных имен. Это позволяет влиять на ответы DNS-серверов, переопределяя IP-адреса в ответах сервера для определённых типов DNS-запросов, указанных в настройках услуги.\\ | Услуга подмены DNS-ответов позволяет изменять IP-адреса, возвращаемые DNS-сервером для определенных доменных имен. Это позволяет влиять на ответы DNS-серверов, переопределяя IP-адреса в ответах сервера для определённых типов DNS-запросов, указанных в настройках услуги.\\ |
Эта услуга эффективна для контроля DNS-запросов клиентов и перенаправления их на альтернативные IP-адреса. Используется для балансировки трафика определенных ресурсов между разными серверами на основании IP адреса. | Эта услуга эффективна для контроля DNS-запросов клиентов и перенаправления их на альтернативные IP-адреса. Используется для балансировки трафика определенных ресурсов между разными серверами на основании IP адреса. \\ [[dpi:dpi_options:opt_li:li_ipfix#настройка_экспорта_dns-ответов_или_dns-запросов|Описание настройки экспорта DNS-запросов и DNS-ответов]]. |
| |
====Схема работы услуги==== | ====Схема работы услуги==== |
Возможные действия с DNS-запросами: | Возможные действия с DNS-запросами: |
* ''ya.ru HTTPS #drop'' — DPI отбрасывает DNS-запрос с HTTPS типом записи | * ''ya.ru HTTPS #drop'' — DPI отбрасывает DNS-запрос с HTTPS типом записи |
* ''ya.ru HTTPS #drop'' — DPI отвечает домен не сущетсвует на DNS-запрос с HTTPS типом записи | * ''ya.ru HTTPS #nxdomain'' — DPI отвечает домен не сущетсвует на DNS-запрос с типом записи HTTPS |
* ''ya.ru A #nxdomain'' — DPI отправляет ответ об отсутствии домена | * ''ya.ru A #nxdomain'' — DPI отправляет ответ об отсутствии домена с типом записи A |
* ''mail.ru MX smtp.googlemail.com'' — в данном случае на запрос mail.ru с типом ''MX'' должен быть получен ответ что домен mail.ru имеет почтовый сервер по адресу smtp.googlemail.co с ''preference'' равным 10. | * ''mail.ru MX smtp.googlemail.com'' — в данном случае на запрос mail.ru с типом ''MX'' должен быть получен ответ что домен mail.ru имеет почтовый сервер по адресу smtp.googlemail.com с ''preference'' равным 10. |
=====Настройка===== | =====Настройка===== |
- Создать текстовый файл и добавить в него правила обработки DNS-запросов, указав доменное имя, тип DNS-записи, доменное имя, действие и IP-адрес, который будет указан в ответе для данного домена. Поддерживается указание ''*'' для доменов. <code bash>vi test.txt | - Создать текстовый файл и добавить в него правила обработки DNS-запросов, указав: доменное имя, тип DNS-записи, или действие, или IP-адрес или домен для записи с типом MX, который будет указан в ответе для данного домена. Поддерживается указание ''*'' для доменов. <code bash>vi test.txt |
google.com A 192.0.2.1 | google.com A 192.0.2.1 |
test.ru A #nxdomain | test.ru A #nxdomain |
mail.ru MX smtp.googlemail.com | mail.ru MX smtp.googlemail.com |
</code> | </code> |
- Утилитой ''dns2dic'' конвертировать текстовый файл в бинарный формат, понятный для DPI:<code bash>cat test.txt|dns2dic test.bin</code> | - Утилитой ''dns2dic'' конвертировать текстовый файл в бинарный формат, понятный для DPI:<code bash>cat test.txt|dns2dic test.bin</code> Обратная конвертация утилитой dic2dns. |
- Поместить полученный бинарный файл в директорию, откуда его будет читать DPI:<code bash>cp test.bin /var/lib/dpi/dns.bin</code> | - Поместить полученный бинарный файл в директорию, откуда его будет читать DPI:<code bash>cp test.bin /var/lib/dpi/dns.bin</code> |
- Создать профиль услуги:<code bash>fdpi_ctrl load profile --service 19 --profile.name test_193 --profile.json '{ "dns_list" : "/var/lib/dpi/dns.bin" }'</code> | - Создать профиль услуги:<code bash>fdpi_ctrl load profile --service 19 --profile.name test_193 --profile.json '{ "dns_list" : "/var/lib/dpi/dns.bin" }'</code> |
fdpi_ctrl del --service 19 --profile.name test_193 --vchannel 1</code> | fdpi_ctrl del --service 19 --profile.name test_193 --vchannel 1</code> |
| |
| |
| Поиск абонентов, которым подключена услуга с заданным именем профиля: |
| |
| <code bash>fdpi_ctrl list all --service 19 --profile.name test_193</code> |
| |
| |
| Удаление именованного профиля (не должно быть абонентов, которые его используют): |
| |
| <code bash>fdpi_ctrl del profile --service 19 --profile.name test_193</code> |
| |
| Изменение настроек (профиля) услуги (новые настройки применятся ко всем абонентам с заданным профилем услуги): |
| <code bash> |
| fdpi_ctrl load profile --service 19 --profile.name test_193 --profile.json '{ "dns_list" : "/var/lib/dpi/dns.bin" }' |
| </code> |
| |