Финансовый риск
От 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 возникает, когда сетевое оборудование использует слишком большие буферы для сглаживания пиков трафика. Логика производителя понятна: большой буфер — меньше потерь пакетов. Но на практике переполненный буфер превращается в очередь, в которой пакеты ждут обработки секундами.
- 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. Это не просто «быстро» — это смена парадигмы:
Поверх 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
# Добавить 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.
Из коробки поддерживаются интеграции с основными ISP-платформами: UISP, Splynx, Netzur, VISP, WISPGate, Powercode, Sonar. Абонентская база синхронизируется автоматически — не нужно вручную заводить каждого клиента в систему QoS.
eBPF/XDP: один стек — два мира
Здесь начинается самое интересное для тех, кто думает не только о QoS, но и о безопасности сети.
XDP используется в двух, казалось бы, несвязанных задачах:
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-инфраструктуру.
Как внедрить LibreQoS 2.0: быстрый старт
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
cd src
cargo build --release
# Редактировать конфиг: интерфейсы, скорость uplink, интеграция с биллингом
cp config.toml.example config.toml
nano config.toml
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 разворачивается как inline-узел перед вашим существующим оборудованием или параллельно с ним. Cisco и MikroTik продолжают работать для маршрутизации и политик — LibreQoS берёт на себя шейпинг и QoS на уровне eBPF/XDP. Для небольших ISP (до 10 Гбит) один commodity-сервер с Intel X550 полностью заменяет классический QoS-стек.
Нативный 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 это 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.