Тема
Режим
Язык
Тема
Режим
Язык
Регистрация
FREE Бесплатный аудит сайта за 15 мин Заказать →

LibreQoS 2.0: когда технологии DDoS-защиты решают проблемы провайдеров

Executive Summary для руководителя
💰

Финансовый риск

От 50 000 до 300 000 рублей в час из-за недоступности сайта для клиентов при атаке на прикладном уровне (L7), перерасхода ресурсов CPU/RAM хостинга.

📈

Влияние на KPI

Снижение конверсии заказов. Медленный отклик сайта (TTFB) ухудшает поведенческие факторы и пессимизирует поисковый трафик из Google и Яндекса.

⚠️

Уровень критичности

Высокий

👤

Кому поручить

DevOps-инженер / Бэкенд-разработчик

Представьте: 2:17 ночи. В Telegram-чате поддержки провайдера очередная порция гневных сообщений — «лаги в CS2», «голос в Discord прерывается», «пинг 200мс, хотя платим за 100 Мбит». Ваш инженер открывает мониторинг. Канал? Загружен на 60%. Потери пакетов? Ноль. Физика? Без замечаний.

Проблема не в полосе. Проблема в буферах. Это bufferbloat — один из самых недооценённых источников деградации качества связи у интернет-провайдеров, и именно с ним сражается LibreQoS 2.0.

Что такое bufferbloat и почему канал «не виноват»

Bufferbloat возникает, когда сетевое оборудование использует слишком большие буферы для сглаживания пиков трафика. Логика производителя понятна: большой буфер — меньше потерь пакетов. Но на практике переполненный буфер превращается в очередь, в которой пакеты ждут обработки секундами.

⚠️
Симптомы bufferbloat:
  • RTT под нагрузкой резко вырастает (10 мс → 200–500 мс)
  • Jitter делает VoIP/игры невыносимыми даже при «хорошем» пинге в простое
  • Speedtest показывает 95 Мбит — а Zoom всё равно рассыпается
  • Один «тяжёлый» абонент (торренты, бэкапы) роняет качество для остальных на узле

Классические решения — HTB + tc в Linux, Cisco Policy Map, MikroTik Queue Tree — либо дорого стоят в CPU, либо не справляются с современными скоростями, либо не умеют честно делить полосу между потоками. Нужна была принципиально другая архитектура.

LibreQoS 2.0 — архитектура на eBPF/XDP

LibreQoS — open-source система управления трафиком (GPLv2), написанная на C, Rust, Python и JavaScript. Версия 2.0 полностью переработала ядро системы: вместо классического ядерного стека — eBPF + XDP.

Как это работает

XDP (eXpress Data Path) — механизм ядра Linux, позволяющий запускать eBPF-программы прямо на уровне сетевой карты, ещё до того как пакет попадёт в kernel network stack. Это не просто «быстро» — это смена парадигмы:

~100 нс
задержка обработки пакета в XDP
–30%
CPU vs классический HTB (CAKE integral shaper)
до ядра
точка перехвата — DMA-буфер NIC

Поверх XDP работают два алгоритма управления очередями:

  • CAKE (Common Applications Kept Enhanced) — шейпер нового поколения, пришедший на смену HTB+fq_codel. Использует 8-way set associativity для устранения hash collision (слабое место fq_codel), TSO/GSO/GRO peeling для честной работы с суперпакетами, и integral shaper с потреблением CPU на 30% ниже HTB.
  • fq_codel (Fair Queuing Controlled Delay) — честное разделение полосы между потоками с контролируемой задержкой. Гарантирует, что ни один поток не монополизирует очередь.

Результат — VoIP, онлайн-игры и видеоконференции получают гарантированный приоритет, а торрент-клиент соседа не убивает пинг всему дому.

CAKE изнутри: почему это важно для ISP

bash Базовый пример CAKE через tc
# Добавить CAKE-шейпер на интерфейс с полосой 50 Мбит/с
tc qdisc add dev eth2 root cake bandwidth 50mbit

# С приоритизацией по DiffServ и хешированием по потокам
tc qdisc add dev eth2 root cake bandwidth 100mbit diffserv4 flows

# Для ISP: отдельное хеширование по подписчикам (srchost/dsthost)
tc qdisc add dev eth2 root cake bandwidth 1gbit diffserv8 dsthost

Режимы хеширования CAKE позволяют гибко распределять полосу: flowblind — по пакетам, srchost/dsthost — по абонентам, hosts — обоих направлений, flows — по TCP/UDP-потокам. Для ISP-сценариев наиболее релевантен dsthost или hosts — каждый абонент получает справедливую долю, независимо от количества соединений.

Что нового в LibreQoS 2.0

Версия 2.0 — это не просто апдейт движка. Это полноценная платформа мониторинга и управления сетью ISP.

1
WebUI дашборды — браузерный интерфейс для управления шейпингом без командной строки. Графики пропускной способности, задержек и retransmit в реальном времени.
2
Tree View топологии — визуальное дерево сетевой иерархии: от точки присутствия до конкретного абонента. Сразу видно, где «бутылочное горлышко».
3
Queue Dynamics — анализ динамики очередей в реальном времени. Видно, когда и где буфер начинает переполняться, ещё до того как абоненты позвонят в поддержку.
4
Flow Sankey — диаграмма потоков трафика. Наглядно показывает, куда идут топ-потребители полосы в любой момент времени.
5
ASN Analysis + Flow Globe — геовизуализация трафика по автономным системам. Полезно для анализа пиринга и обнаружения аномалий.
6
RTT и retransmit мониторинг на уровне eBPF — метрики собираются без накладных расходов ядра. Видна реальная задержка каждого абонента, а не усреднённая статистика интерфейса.

Из коробки поддерживаются интеграции с основными ISP-платформами: UISP, Splynx, Netzur, VISP, WISPGate, Powercode, Sonar. Абонентская база синхронизируется автоматически — не нужно вручную заводить каждого клиента в систему QoS.

eBPF/XDP: один стек — два мира

Здесь начинается самое интересное для тех, кто думает не только о QoS, но и о безопасности сети.

XDP используется в двух, казалось бы, несвязанных задачах:

💡
LibreQoS (QoS): eBPF-программы классифицируют и шейпируют трафик абонентов прямо в NIC, обеспечивая честную очередь и приоритизацию.

DDoS-митигация: eBPF-программы анализируют и дропают атакующие пакеты прямо в NIC — до того как они нагрузят ядро и приложения.

Технологический стек — идентичный. Разница — только в логике eBPF-программ.

Это означает, что ISP, который уже внедрил LibreQoS, получает готовую инфраструктуру для XDP-based DDoS-фильтрации практически бесплатно с точки зрения hardware-инвестиций. Не нужно покупать отдельный скруббинг-узел — та же карта, тот же драйвер, тот же механизм.

Метрики, которые работают в обе стороны

LibreQoS 2.0 мониторит RTT и retransmit на уровне eBPF для каждого абонента. Но эти же метрики — классические признаки DDoS-атаки:

  • Аномальный рост RTT у группы абонентов → возможная volumetric-атака на upstream
  • Всплеск retransmit → перегрузка канала или SYN flood
  • Нетипичное распределение по ASN (Flow Globe) → источники атаки видны визуально

CAKE shaping дополнительно помогает при volumetric DDoS: ограничение полосы per-subscriber не даёт одному атакованному хосту положить весь сегмент. Это не замена полноценной DDoS-защите, но значимый первый эшелон обороны, который уже встроен в QoS-инфраструктуру.

Вывод: ISP, который строит QoS на eBPF/XDP, фактически закладывает фундамент для будущей DDoS-защиты. Один и тот же стек — две задачи.

Как внедрить LibreQoS 2.0: быстрый старт

📋
Требования: Linux-сервер с поддержкой XDP в драйвере NIC (Intel i210/i350/X550, Mellanox ConnectX-4+), ядро ≥ 5.15, минимум 4 CPU cores / 8 GB RAM для средней нагрузки.
1
Клонировать репозиторий и установить зависимости
bash
git clone https://github.com/LibreQoE/LibreQoS.git
cd LibreQoS
# Установка зависимостей (Debian/Ubuntu)
sudo apt install -y build-essential clang llvm libelf-dev \
  python3-pip rustc cargo
pip3 install -r requirements.txt
2
Собрать и настроить
bash
cd src
cargo build --release
# Редактировать конфиг: интерфейсы, скорость uplink, интеграция с биллингом
cp config.toml.example config.toml
nano config.toml
3
Запустить и проверить WebUI
bash
sudo ./target/release/libreqos_daemon
# WebUI доступен на http://localhost:9123
# Проверить загрузку XDP-программы
ip link show dev eth0 | grep xdp

Полная документация, включая настройку интеграций с UISP и Splynx, доступна в официальном Wiki проекта.

In memoriam: Dave Täht

LibreQoS 2.0 посвящён памяти Dave Täht (1966–2025) — основателя проекта Bufferbloat, создателя CeroWrt и автора множества RFC по управлению сетевыми очередями. Он умер в 2025 году в возрасте 59 лет.

Дейв потратил годы на то, чтобы объяснить индустрии: проблема не в ширине канала — проблема в том, как мы управляем очередями. CAKE и fq_codel — прямое следствие его работы. Каждый пользователь, у которого голос в Zoom больше не «рассыпается» под нагрузкой, косвенно обязан этому человеку.

FAQ

LibreQoS — это замена Cisco/MikroTik или дополнение?

Дополнение. LibreQoS разворачивается как inline-узел перед вашим существующим оборудованием или параллельно с ним. Cisco и MikroTik продолжают работать для маршрутизации и политик — LibreQoS берёт на себя шейпинг и QoS на уровне eBPF/XDP. Для небольших ISP (до 10 Гбит) один commodity-сервер с Intel X550 полностью заменяет классический QoS-стек.

Какие NIC поддерживают XDP native mode?

Нативный XDP (наиболее производительный) поддерживают: Intel i210, i350, X550, X710, XL710; Mellanox ConnectX-4/5/6; Broadcom bnxt; Netronome (Agilio). В режиме generic XDP работает на любом интерфейсе, но с потерей производительности — для продакшена не рекомендуется. Полный список смотрите в документации eBPF/XDP.

Что происходит при перегрузке канала — пакеты дропаются случайно?

Нет. CAKE использует controlled delay (CoDel) вместо случайного дропа (RED). Пакеты удерживаются в очереди не дольше допустимого времени (по умолчанию 5 мс), после чего дропаются с сигналом для TCP-congestion control. Алгоритм предпочитает задержку с предсказуемым дропом случайным потерям — это то, что нужно интерактивным приложениям.

LibreQoS защищает от DDoS?

Напрямую — нет, LibreQoS это QoS-система, не скруббер. Но: во-первых, per-subscriber shaping через CAKE ограничивает распространение volumetric-атаки внутри сети. Во-вторых, eBPF/XDP-инфраструктура, которую вы развернёте для QoS, является прямой основой для последующего внедрения XDP-based DDoS-митигации — без дополнительных hardware-инвестиций. Это стратегический аргумент в пользу eBPF-стека для ISP.

Узнайте, где в вашей сети прячется bufferbloat

Мы проведём бесплатный аудит сетевой инфраструктуры: проверим метрики RTT под нагрузкой, оценим текущий QoS-стек и дадим конкретные рекомендации по внедрению eBPF/XDP-решений — как для качества сервиса, так и для защиты от DDoS.

Запросить бесплатный аудит →
Чек-лист проверки для владельца бизнеса

Скопируйте эти вопросы и отправьте вашему техническому директору (CTO) или руководителю разработки:

  • Настроена ли WAF-фильтрация для отсечения ботов с помощью JS-челленджей без показа капчи реальным пользователям?
  • Защищен ли веб-сервер от атак типа Slowloris путем оптимизации HTTP Keep-Alive таймаутов?
  • Проверено ли наше приложение на защиту от атак типа HTTP Request Smuggling и отравления кэша?

Словарь по теме

SYN Flood

Атака на сетевом уровне (L4), при которой атакующий отправляет множество SYN-пакетов, не завершая TCP-рукопожатие. Исчерпывает таблицу соединений сервера.

Latency

Время отклика — задержка между отправкой запроса и получением ответа. Измеряется в миллисекундах. Чем меньше — тем лучше.

DDoS

Распределённая атака на отказ в обслуживании. Множество устройств одновременно отправляют запросы на сервер, перегружая его и делая недоступным для легитимных пользователей.

UDP

Протокол быстрой передачи данных без гарантии доставки. Используется для видео, игр, DNS. Часто эксплуатируется в DDoS-атаках.

TCP

Протокол надёжной передачи данных. Гарантирует доставку пакетов в правильном порядке. Используется для HTTP, HTTPS.

Получите план защиты под ваш сайт

Оставьте контакт и адрес сайта — пришлём план защиты и список приоритетных шагов.

  • Приоритетные шаги на 7 дней
  • Быстрая обратная связь
  • План в удобном формате
Без спама. Можно указать Telegram (@username) или email.
Написать в Telegram