СЕТЕВЫЕ ТЕХНОЛОГИИ И LINUX QOS Современный DPI в Linux и лёгкие решения для управления трафиком в OpenWrt Обзор современных архитектур глубокого анализа пакетов (eBPF/XDP, user-space, DPDK) и практических инструментов классификации трафика для домашних маршрутизаторов. Часть 1. Современные подходы к DPI в Linux Современные решения для глубокого анализа пакетов ( DPI — Deep Packet Inspection ) в Linux ушли от устаревших модулей ядра (таких как xt_ndpi для iptables ) в сторону eBPF/XDP , многопоточных движков в пространстве пользователя ( user-space ) и фреймворков обхода ядра ( DPDK ). Такой подход позволяет анализировать и фильтровать трафик на скоростях в десятки гигабит в секунду без пересборки ядра. 1. Связка eBPF / XDP + DPI (актуальный мейнстрим) Вместо перехвата трафика через тяжёлые цепочки Netfilter современные системы используют хуки XDP (eXpress Data Path) на уровне драйвера сетевой карты или eBPF-хуки внутри подсистемы tc Принцип работы. Первые несколько пакетов сетевого потока (где видны SNI в TLS, заголовки HTTP или QUIC) передаются в user-space для распознавания. Как только приложение определено, правило записывается в eBPF map , а все последующие пакеты потока обрабатываются или отбрасываются прямо в ядре без копирования в память программ. nEdge Lite (от ntop). Легковесный L7-файрвол и шейпер для Linux, построенный поверх библиотеки nDPI. Работает в режиме прозрачного моста или маршрутизатора, определяет зашифрованный трафик по поведенческим эвристикам (ETA) и применяет политики приоритезации или блокировки через JSON- конфигурации. Cilium и Tetragon. В облачных и контейнерных средах (Kubernetes) eBPF-движок Cilium выполняет инспекцию на уровне L7 (HTTP, gRPC, Kafka, DNS) прямо в сокетах и tc -хуках, заменяя классические прокси и файрволы. • • • 2. Открытые движки анализа и системы IDS/IPS Для задач информационной безопасности, телеметрии и детальной аналитики применяются производительные движки в пространстве пользователя: nDPI (от ntop). Ведущая открытая библиотека DPI для Linux, распознающая более 450 протоколов и сервисов (включая QUIC, TLS 1.3, VPN и торренты). Активно развивает методы анализа зашифрованного трафика без расшифровки (Encrypted Traffic Analysis). Suricata (с плагином nDPI). Высокопроизводительный движок IDS/IPS. Начиная с последних веток (Suricata 8/9), поддерживается нативная интеграция плагина ndpi.so , позволяющая создавать правила не только по сигнатурам атак, но и по конкретным приложениям и сервисам. MMT-DPI. Модульный открытый движок на языке C, поддерживающий извлечение метаданных из более чем 200 протоколов, включая QUIC, HTTP/2 и протоколы мобильных сетей 5G/LTE. 3. Высокопроизводительные системы с обходом ядра (DPDK / VPP) На операторских шлюзах с каналами 10G–100G+ стандартный сетевой стек Linux ( sk_buff ) становится узким местом, поэтому DPI переносят на фреймворки прямого доступа к сетевым картам: FD.io VPP (Vector Packet Processing). Векторный маршрутизатор для Linux поверх DPDK. Поддерживает подключаемые DPI-плагины для классификации трафика и применения QoS-политик на линейных скоростях. R&S PACE 2 и Enea Qosmos ixEngine. Промышленные коммерческие SDK для Linux-маршрутизаторов, SD-WAN и NGFW, использующие машинное обучение и поведенческие эвристики для распознавания обфусцированного трафика (VPN, DoH, ESNI/ECH) без MITM-расшифровки. Практическая связка DPI и планировщика очередей tc В современных Linux-шлюзах классификация и управление очередями строятся в три этапа: Классификация. Движок ( nDPI или Suricata в режиме NFQUEUE / eBPF) определяет тип трафика (видеозвонок, игра, загрузка). Маркировка. Соединению присваивается метка ( conntrack mark / skb->mark ) или выставляется значение DSCP в IP-заголовке. Планирование очередей. Классификатор в tc ( fw или flower ) распределяет пакеты по классам htb или корзинам cake (в режиме diffserv4 планировщик CAKE автоматически распределяет приоритеты по меткам DSCP). • • • • • 1. 2. 3. Часть 2. Лёгкие аналоги для домашнего роутера на OpenWrt На домашних маршрутизаторах классический глубокий анализ пакетов (Suricata или полноценный nDPI) обычно избыточен из-за высоких требований к оперативной памяти и процессору. В среде OpenWrt применяются лёгкие гибридные решения, сочетающие анализ DNS, поведенческие эвристики пакетов, eBPF и планировщик CAKE 1. Qosify — самый простой и современный инструмент для QoS Официальный пакет OpenWrt от разработчиков системы, объединяющий eBPF- классификатор и планировщик очередей CAKE в едином конфигурационном файле без ручной настройки tc и nftables Принцип работы. Перехватывает DNS-запросы через ubus , а также оценивает размер пакетов и частоту их отправки ( pps ). Потоки с частыми мелкими пакетами (онлайн-игры, VoIP) автоматически получают высокий приоритет, а крупные потоковые загрузки (торренты, скачивание файлов) отправляются в фоновый класс Bulk Гибкие правила. В файле /etc/qosify/00-defaults.conf можно задавать правила по доменам и маскам (например, dns:*.youtube.com CS4 или dns:*.zoom.us EF ) для автоматической маркировки DSCP. Установка. Выполняется из стандартного репозитория (перед запуском следует отключить luci-app-sqm во избежание конфликтов): opkg update && opkg install qosify 2. Netifyd — полноценный L7 DPI для мониторинга и контроля Компактный агент глубокого анализа пакетов, портированный для OpenWrt. Подходит в тех случаях, когда важно точно определять конкретные приложения и сервисы (YouTube, Telegram, BitTorrent, Netflix) на каждом устройстве в локальной сети. Возможности. Анализирует заголовки, TLS SNI и сигнатуры протоколов на лету с минимальным потреблением ресурсов, формируя локальные отчёты в формате JSON. Применение. Открытые компоненты Netify позволяют настраивать блокировку отдельных L7-протоколов, приоритезацию выбранных приложений или маршрутизацию конкретного сервиса через отдельный WAN-интерфейс. Требования. Для стабильной работы рекомендуется роутер с объёмом ОЗУ от 256– 512 МБ. • • • • • • 3. QoSmate — наглядное управление очередями в веб-интерфейсе LuCI Проект сообщества OpenWrt, объединяющий настройку CAKE, правил nftables и автоматическую классификацию трафика с полноценной графической панелью в LuCI. Особенности. Позволяет прямо в браузере задавать правила приоритезации по портам, IP-адресам, размеру пакетов и скорости потока, а также в реальном времени наблюдать распределение трафика по корзинам CAKE ( Voice , Video , Best Effort , Bulk ). Кому подойдёт. Пользователям, которым важен визуальный контроль и настройка без редактирования конфигурационных файлов по SSH. Сравнительная таблица решений для OpenWrt Решение Основная задача Нагрузка на роутер Веб-интерфейс (LuCI) Qosify Умный QoS и защита от задержек в играх и видеозвонках Очень низкая (eBPF) Нет (настройка через конфиг) QoSmate Гибкий QoS с визуальным контролем очередей Низкая (nftables + CAKE) Есть (полноценный) Netifyd Точное определение приложений и сервисов (L7 DPI) Средняя (зависит от скорости канала) Базовый / консольный вывод Важное требование для OpenWrt: при использовании Qosify, QoSmate, Netifyd или стандартного SQM (CAKE) необходимо отключить Hardware Flow Offloading в разделе Network → Firewall . В противном случае сетевые пакеты будут проходить в обход центрального процессора, минуя правила классификации и очереди QoS. Программный режим ( Software flow offloading ) в большинстве случаев можно оставить включённым. • •