30 KiB
17. Фильтр: настройка DPI
← Оглавление · ← Раздел 16: Фильтр: ACL и пулы
Модуль DPI (Deep Packet Inspection) — ключевая подсистема фильтра, отвечающая за анализ и фильтрацию трафика. Настройки DPI включают общие параметры модуля, конфигурацию работы с реестром Роскомнадзора, параметры деградации протоколов и индивидуальные настройки DPI-листов.
Примечание: формат секции DPI различается между пилотным проектом (Урал) и федеральным проектом. В пилотном проекте настройки реестра Роскомнадзора находятся внутри DPI-листа 0. В федеральном проекте они вынесены в отдельную секцию, а все DPI-листы (0–15) стали абсолютно идентичными по структуре.
17.1. Общие настройки модуля DPI
Общие настройки расположены в корне секции dpi конфигурации фильтра.
17.1.1. Включение/выключение DPI
| Значение | Поведение |
|---|---|
| enable | Модуль DPI активен, трафик анализируется и обрабатывается |
| disable | Модуль DPI выключен, весь трафик пропускается прозрачно |
В рабочем режиме DPI должен быть включён. Выключение модуля DPI может использоваться для диагностики: если выключить DPI и убедиться, что фильтр больше не влияет на трафик — значит, проблема была именно в DPI-обработке.
17.1.2. Send RST off: отключение TCP Reset при блокировке протоколов
Параметр send RST off — важная настройка, определяющая поведение фильтра при блокировке распознанных протоколов.
| Значение | Поведение |
|---|---|
| off | TCP Reset при блокировке протоколов не отправляется |
| on | TCP Reset отправляется абоненту и серверу при блокировке |
В проекте ТСПУ параметр всегда должен быть в режиме off.
Почему отправка TCP Reset опасна:
Когда приложение абонента (например, Telegram) пытается установить TCP-соединение и получает в ответ TCP Reset, оно воспринимает это как временный сбой и немедленно пытается установить новое соединение. Этот цикл повторяется непрерывно и с высокой частотой:
- Приложение отправляет TCP SYN;
- Фильтр распознаёт протокол и отправляет TCP Reset;
- Приложение мгновенно пытается установить новое соединение;
- Цикл повторяется бесконечно.
На практике наблюдались случаи, когда мобильные устройства начинали тормозить из-за того, что Telegram непрерывно пытался переустановить заблокированную сессию. Количество генерируемых сессий создаёт избыточную нагрузку на фильтр.
При отключённой отправке Reset соединение отбрасывается молча — приложение пытается установить сессию, сессия «висит» и обрывается только по тайм-ауту. Это значительно снижает количество повторных попыток и нагрузку на фильтр.
17.1.3. Functionality mode: normal (не double mirror traffic)
| Значение | Описание | Применение в ТСПУ |
|---|---|---|
| normal | Стандартный режим работы фильтра | Всегда |
| double mirror traffic | Режим для работы с копией (зеркалом) трафика | Не используется |
Параметр всегда должен быть normal. Режим double mirror traffic предназначен для сценариев, когда фильтр получает зеркалированную копию трафика, что в проекте ТСПУ не применяется.
В секции DPI также присутствует устаревшая команда extra analysis off — она не используется и не требует внимания.
17.2. Настройка реестра РКН
Секция настройки реестра Роскомнадзора определяет параметры скачивания и обработки списков блокировки, предоставляемых Роскомнадзором.
Примечание: в федеральном проекте эта секция вынесена в отдельный раздел конфигурации. В пилотном проекте (Урал) настройки находятся внутри DPI-листа 0.
17.2.1. Источник: RKN или ГРФЦ
| Источник | Описание |
|---|---|
| RKN | Оригинальный формат выгрузки с серверов Роскомнадзора |
| ГРФЦ | Новый формат выгрузки (оптимизированная база данных, уменьшенный объём) |
Роскомнадзор предложил новый источник списков — ГРФЦ. По сравнению с оригинальным форматом RKN, база данных ГРФЦ оптимизирована и уменьшена в объёме. Рекомендуется переключаться на выгрузку с ГРФЦ.
17.2.2. Логин/пароль для доступа к серверу РКН
Для скачивания реестра с сервера Роскомнадзора требуется авторизация. Логин и пароль задаются в секции настройки реестра. Учётные данные выдаются Роскомнадзором.
17.2.3. Привязка к DPI-листу (list number)
Параметр list number определяет, к какому DPI-листу будет привязан реестр Роскомнадзора. По умолчанию — 0. В текущей конфигурации проекта ТСПУ фильтрация по реестру Роскомнадзора осуществляется в DPI-листе 0.
17.2.4. Proxy-сервер, dump server
| Параметр | Описание |
|---|---|
| Proxy server | Промежуточный сервер для доступа к реестру РКН, если прямое соединение невозможно |
| Dump server | Сервер, на который фильтр выгружает скачанный реестр для внешнего анализа |
Proxy server используется, когда фильтр не может напрямую подключиться к серверу Роскомнадзора.
Dump server полезен для диагностики: можно получить копию того же дампа, который скачал фильтр, и проанализировать его на внешнем сервере. Фильтр скачивает реестр, а затем выгружает его на указанный dump server.
17.2.5. Проблемы скачивания: минимальная скорость ~10 Мбит/с
Сервер Роскомнадзора настроен таким образом, что разрывает соединение при низкой скорости скачивания. Эмпирически установлено, что минимальная скорость загрузки для успешного скачивания реестра составляет ~10 Мбит/с. При более низкой скорости сервер Роскомнадзора обрывает соединение через некоторое время.
Типичные причины проблем со скачиванием:
- Недостаточная скорость management-интерфейса;
- Ошибки на интерфейсе фильтра (в одном случае проблема решилась перезагрузкой фильтра);
- Проблемы на стороне коммутатора или промежуточного оборудования.
При диагностике проблем скачивания следует обращать внимание на скорость и ошибки на management-интерфейсе. Команда dpi run позволяет принудительно инициировать обновление всех DPI-листов (подробнее — в разделе 18.13.4).
Примечание: запуск
dpi runне гарантирует, что реестр будет скачан — сервер РКН может ответить, что обновлений нет, и в этом случае ничего скачано не будет.
17.3. Деградация протоколов (protocols capacity)
Механизм деградации протоколов позволяет частично ухудшить работу распознанного протокола вместо полной блокировки. Настройка выполняется в секции DPI для каждого протокола индивидуально.
17.3.1. Шкала 0–100: 0 = полная блокировка, 100 = полный пропуск
Для каждого протокола задаётся значение capacity в условных единицах от 0 до 100:
| Значение | Поведение |
|---|---|
| 0 | Полная блокировка — ничего не пропускается |
| 100 | Полное пропускание — трафик не затрагивается |
| 1–99 | Деградация — дроп пакетов с заданной вероятностью |
17.3.2. Дроп пакетов с заданной вероятностью
Механизм деградации работает просто: с определённой вероятностью, зависящей от параметра capacity, фильтр дропает пакеты в рамках сессии распознанного протокола. Чем ниже значение capacity, тем больше пакетов отбрасывается.
17.3.3. Эффективная деградация: 2–10% пропускания
На практике деградация становится заметной для пользователя только при значениях capacity в диапазоне 2–10. Это объясняется свойствами TCP:
- TCP обладает встроенным механизмом повторной передачи потерянных пакетов;
- При низкой степени деградации (высоких значениях capacity) TCP успешно компенсирует потери, и пользователь практически ничего не замечает;
- Только при высокой степени деградации (capacity ~2–10) потери становятся настолько значительными, что TCP не успевает их компенсировать.
При значении capacity около 5 задержка отправки сообщений в приложениях может достигать десятков секунд.
17.3.4. Влияние на голосовые вызовы и мессенджеры
Деградация протоколов особенно эффективна для голосовых вызовов и видеозвонков, где потеря пакетов непосредственно влияет на качество:
- Заикание голоса и пропадание звука;
- Рассинхронизация аудио и видео;
- Невозможность разговаривать при высокой степени деградации;
- Для текстовых сообщений — значительные задержки доставки.
Деградация является альтернативой полной блокировке: вместо немедленного и очевидного отключения сервиса пользователь получает постепенное ухудшение качества связи.
17.4. Настройка DPI-листов (0–16)
На фильтре может быть настроено до 16 DPI-листов (номера 0–15). В будущих прошивках это количество может быть расширено — планируется возможность генерации DPI-листов по необходимости на уровне конфигурации.
Все DPI-листы имеют одинаковую структуру настроек (в федеральном проекте). Каждый лист настраивается индивидуально.
17.4.1. Enable/disable каждого листа
Каждый DPI-лист может быть включён или выключен независимо от остальных:
dpi list <N>
enable ← включить лист
disable ← выключить лист
17.4.2. BitTorrent UTP detection
| Значение | Описание |
|---|---|
| on | Включено распознавание протокола BitTorrent UTP |
| off | Распознавание BitTorrent UTP выключено |
Если требуется распознавание и блокировка BitTorrent, параметр должен быть включён (on).
17.4.3. WH List Mode: blacklist (по умолчанию) / whitelist
Параметр WH list mode определяет логику работы DPI-листа:
| Режим | Поведение | Применение в ТСПУ |
|---|---|---|
| blacklist | Всё, что совпало со списком — блокируется; остальное пропускается | По умолчанию |
| whitelist | Пропускается только совпавший трафик; всё остальное блокируется | Не используется |
В проекте ТСПУ режим whitelist не используется из-за риска случайной блокировки всего трафика. Этот режим применяется в других сценариях, например, при использовании BRAS-функциональности на устройстве.
17.4.4. Behavior: block / ignore / color / redirect
Параметр behavior определяет, что происходит с трафиком, совпавшим со списком данного DPI-листа:
| Значение | Описание | Применение в ТСПУ |
|---|---|---|
| block | Трафик блокируется (дропается) | Основной рабочий режим |
| ignore | Совпадение фиксируется и логируется, трафик пропускается | Для распознавания протоколов |
| color | Совпавший трафик «окрашивается» | Не используется |
| redirect | Трафик перенаправляется | Не используется |
Режим block — основной для блокировки по реестру Роскомнадзора и по очищенным протокольным спискам. При срабатывании блокировки:
- Для HTTP: абоненту отправляется HTTP-редирект (302) на страницу-заглушку;
- Для HTTPS: абоненту и серверу отправляется TCP Reset, разрывающий соединение (поскольку содержимое зашифровано и подмена ответа невозможна).
Режим ignore — используется для первой стадии двухстадийной блокировки: фильтр распознаёт протоколы и отправляет логи на SPFS, но сам трафик не блокирует. Данные передаются в ЦСУ для формирования очищенных списков (подробнее — в разделе 8).
Также в секции DPI-листа присутствует параметр logs on/off — включение журналирования срабатываний данного списка. В проекте ТСПУ эта функциональность, как правило, используется.
17.4.5. Redirect URL — страница-заглушка для заблокированных HTTP-ресурсов
Параметр redirect URL задаёт адрес страницы-заглушки, на которую перенаправляется абонент при блокировке HTTP-ресурса по реестру Роскомнадзора.
Типичное содержимое страницы-заглушки: уведомление абонента о том, что запрошенный ресурс заблокирован в соответствии с требованиями законодательства.
Важно: redirect URL работает только для HTTP-трафика. Для HTTPS-трафика перенаправление невозможно (содержимое зашифровано), поэтому используется TCP Reset.
Также в секции DPI-листа присутствуют параметры, связанные с redirect behavior (redirect interval и др.) — в проекте ТСПУ они не используются.
17.4.6. Download URL — источник списков, update schedule
| Параметр | Описание |
|---|---|
| Download URL | URL, откуда фильтр скачивает список фильтрации для данного DPI-листа |
| Update schedule | Интервал обновления списка (например, 30 минут) |
Download URL задаёт источник списков для DPI-листов, не связанных с реестром Роскомнадзора (скачивание реестра РКН настраивается отдельно — см. раздел 17.2). Типичный источник — ресурс в центральной системе управления (ЦСУ), откуда загружаются очищенные протокольные списки.
Update schedule определяет частоту обновления:
| Значение | Поведение |
|---|---|
| Время (мин.) | Список обновляется с заданным интервалом |
| never | Список никогда не обновляется и не скачивается |
Внимание: значение
never— частая причина проблем. Если всё настроено корректно, но update schedule установлен вnever, списки просто не будут скачиваться. Необходимо задать конкретный интервал обновления.
17.4.7. Protocols — список распознаваемых протоколов
В секции protocols каждого DPI-листа указываются протоколы, по которым будет осуществляться распознавание и последующее действие (блокировка, игнорирование и т.д.).
Список протоколов задаётся перечислением названий: Telegram, WhatsApp, Viber, BitTorrent и др. Набор поддерживаемых протоколов определяется версией прошивки фильтра.
17.4.8. No IP / IP — исключение/включение адресов для обработки
Параметры IP и No IP определяют, какой трафик подлежит обработке данным DPI-листом:
| Параметр | Описание |
|---|---|
| IP | Подсети и адреса, которые должны обрабатываться данным DPI-листом |
| No IP | Локальные адреса абонентов, исключённые из обработки |
| No IP Remote | Удалённые адреса (серверы), исключённые из обработки |
| IPv6 / No IPv6 | Аналогичные параметры для IPv6-трафика |
По умолчанию параметр IP должен содержать сеть 0.0.0.0/0 для всех VLAN — тогда весь трафик, попавший в DPI, будет обрабатываться данным листом.
Использование No IP для диагностики:
Параметр No IP — ключевой инструмент траблшутинга. Чтобы проверить, влияет ли данный DPI-лист на конкретного абонента:
- Добавить локальный IP-адрес абонента в No IP данного DPI-листа;
- Выполнить
apply; - Проверить, изменилось ли поведение у абонента;
- Если приложение у абонента заработало — данный DPI-лист действительно блокировал его трафик;
- Если ничего не изменилось — проблема не в данном DPI-листе.
Параметр No IP Remote работает аналогично, но исключает из обработки удалённый IP-адрес (адрес сервера).
17.4.9. QUIC list
Параметр QUIC list определяет список ресурсов, для которых должен распознаваться протокол QUIC (Quick UDP Internet Connections) — протокол, разработанный Google для оптимизации доставки контента.
Фильтр умеет распознавать QUIC, но для этого необходимо внести ресурсы, которые планируется обрабатывать, в QUIC list.
17.5. Формат списков фильтрации
Списки фильтрации (кроме реестра Роскомнадзора, который скачивается в специальном формате) представляют собой текстовые файлы, где на каждой строке перечислены ресурсы для обработки.
17.5.1. IP-адреса, подсети, диапазоны, URL
Поддерживаемые форматы записей в списках:
| Формат | Пример | Описание |
|---|---|---|
| IP-адрес | 1.2.3.4 |
Конкретный IP-адрес |
| Подсеть | 10.0.0.0/8 |
Подсеть в CIDR-нотации |
| Диапазон IP | 1.2.3.4-1.2.3.10 |
Диапазон адресов |
| URL | http://example.com/page |
Конкретный URL (HTTP) |
| Домен | example.com |
Домен (HTTP и HTTPS) |
| Домен с поддоменами | *.example.com |
Домен и все поддомены |
Если в начале URL стоит звёздочка (*), обрабатываются все протоколы (HTTP и HTTPS) и все поддомены данного домена. Если протокол не указан явно, обрабатываются и HTTP, и HTTPS.
17.5.2. HTTP: блокировка конкретного URL
Для HTTP-трафика возможна блокировка конкретного URL — вплоть до отдельной страницы. Это обусловлено тем, что при HTTP-соединении URL передаётся в открытом виде в заголовке запроса, и фильтр может его проанализировать.
Пример: запись http://example.com/specific/page.html в списке заблокирует только эту конкретную страницу, остальные страницы на example.com останутся доступными.
17.5.3. HTTPS: блокировка только по домену (SNI/Client Hello)
Для HTTPS-трафика блокировка возможна только на уровне домена. Это фундаментальное ограничение, связанное с механизмом установления HTTPS-соединения:
- При установлении HTTPS-соединения клиент отправляет Client Hello;
- В Client Hello содержится поле SNI (Server Name Indication), указывающее доменное имя сервера;
- Поле SNI содержит только домен (например,
ru.wikipedia.org) — без пути и URL; - Всё остальное содержимое HTTPS-соединения зашифровано и недоступно для анализа.
Практическое следствие: если в списке указана строка вида https://ru.wikipedia.org/wiki/Конкретная_статья, фильтр заблокирует весь домен ru.wikipedia.org целиком, а не конкретную страницу. Поле SNI не содержит пути URL, поэтому фильтр видит только домен и блокирует все обращения к нему.
| Протокол | Точность блокировки | Причина |
|---|---|---|
| HTTP | До конкретного URL/страницы | URL виден в открытом виде в заголовке |
| HTTPS | Только весь домен целиком | В SNI (Client Hello) только домен |
← Оглавление · ← Раздел 16: Фильтр: ACL и пулы · Раздел 18: Фильтр: мониторинг и диагностика →