Полное руководство по настройке Cake QoS для приоритезации трафика и снижения задержек
Введение
Современные сети требуют эффективного управления трафиком, чтобы минимизировать задержки и обеспечить приоритет важным сервисам (VoIP, видеоконференции, онлайн-игры). Очередь CAKE (Common Applications Kept Enhanced) в MikroTik предлагает продвинутый механизм QoS (Quality of Service), который позволяет оптимизировать интернет-канал и улучшить пользовательский опыт.
В этой статье мы рассмотрим, как настроить CAKE QoS на MikroTik, какие параметры использовать и как правильно классифицировать трафик.
Что такое CAKE и почему он лучше HTB?
CAKE — это улучшенная версия fq_codel, которая:
- Снижает задержки (bufferbloat);
- Поддерживает 8 классов приоритета (DiffServ8);
- Включает автоматическую шейпинг-коррекцию (Overhead Compensation);
- Работает проще, чем HTB + SFQ, но эффективнее.
- Преимущества CAKE перед другими QoS
- Автоматическая адаптация — не требует ручной классификации трафика.
- Учет накладных расходов — корректный расчет пропускной способности для PPPoE/VLAN.
- Эффективность в условиях мульти-WAN — балансировка между каналами без потери производительности.
Если у вас ограниченная полоса пропускания, CAKE помогает грамотно распределять трафик, отдавая приоритет важным сервисам.
Определение параметров для CAKE
Перед настройкой нужно определить тип подключения и максимальную скорость провайдера.
Например:
| Тип соединения | Overhead (байты) |
|---|---|
| Ethernet (без VLAN): Overhead | 34 |
| Ethernet + VLAN (802.1Q) Overhead | 38 (добавляет 4 байта VLAN-тега) |
| Ethernet + Q-in-Q (двойная VLAN) Overhead | 42 |
| PPPoE (без VLAN): Overhead | 40 |
| PPPoE + VLAN: Overhead | 44 |
| Ethernet + VLAN + PPPoE Overhead | 44 |
| DOCSIS (кабельный интернет): Overhead | 18 |
| LTE (4G/5G): Overhead | 30 |
| PPPoE без VPN: Overhead | 40 |
| PPPoE + GRE: Overhead | 48 |
| PPPoE + WireGuard: Overhead | 60 |
| PPPoE + IPsec (ESP): Overhead | 60-64 |
Проверка MTU:
/interface pppoe-client print
Если MTU 1492, значит используется PPPoE, и overhead = 40-44.
Что такое cake overhead и как его настроить в MikroTik?
CAKE Overhead — это параметр в очереди CAKE, который учитывает служебные данные (заголовки) сетевых пакетов. Если этот параметр не настроить, CAKE может неправильно рассчитывать полосу пропускания, что приведет к заниженной или завышенной скорости.
Зачем нужен overhead?
Каждый сетевой пакет состоит из полезной нагрузки (payload) и заголовков (headers).
Например:
- Ethernet (14 байт) + IP (20 байт) + TCP (20 байт) = 54 байта overheadP
- PPoE (8 байт), VLAN (4 байта) и т. д.
Если не учитывать overhead, CAKE может:
- Завышать пропускную способность → пакеты теряются, растет пинг.
- Занижать пропускную способность → недостаточно используется интернет-канал.
Чем diffserv8 лучше diffserv4?
| Параметр | diffserv4 | diffserv8 |
|---|---|---|
| Количество очередей | 4 | 8 |
| Гибкость приоритизации | Средняя | Высокая |
| Подходит для | Обычного QoS | Глубокого контроля трафика |
| Управление трафиком | Простой приоритет | Тонкая настройка |
🔹 Если сеть загружена и требуется более тонкое управление трафиком → diffserv8 лучше.
🔹 Если нужна просто базовая приоритизация (VoIP, веб, P2P), то diffserv4 достаточно.
Настройка CAKE QoS на MikroTik
Создание типа очереди CAKE с автоматический приоритизации
/queue type
add name=cake-cake kind=cake cake-diffserv=diffserv4 cake-nat=yes
Объяснение параметров:
cake-diffserv=diffserv4— приоритизация трафика по 4 уровням (VoIP, видео, веб и т. д.).cake-nat=yes— улучшает работу NAT.cake-overhead=44— учитывает заголовки PPPoE + VLAN.
Создание очереди с ограничением скорости
/queue simple
add dst=pppoe-out1 max-limit=50M/30M name=queue2 queue=cake/cake target="" total-queue=cake
Объяснение параметров:
max-limit=50M/30M— ограничение на 50 Mbps (скачивание) и 30 Mbps (загрузка).target=""— правило действует на всю сеть.- dst=pppoe-out1 — правило будет действовать только на пакеты которые идут в интернет
На этом настройка с автоматической распределениями очереди закончена далее рассмотрим как можно настроить очереди в ручном режиме
Создание типа очереди CAKE с ручной приоритизации
/queue type
add name=cake kind=cake cake-diffserv=diffserv8 cake-nat=yes cake-overhead=44
Объяснение параметров:
cake-diffserv=diffserv8— приоритизация трафика по 8 уровням (VoIP, видео, веб и т. д.).cake-nat=yes— улучшает работу NAT.cake-overhead=44— учитывает заголовки PPPoE + VLAN
Создание очереди с ограничением скорости
/queue simple
add dst=pppoe-out1 max-limit=50M/50M name=queue2 queue=cake/cake target="" total-queue=cake
Объяснение параметров:
max-limit=50M/50M— ограничение на 50 Mbps (скачивание) и 50 Mbps (загрузка).target=""— правило действует на всю сеть.- dst=pppoe-out1 — правило будет действовать только на пакеты которые идут в интернет
Настройка DSCP-кодов для приоритетов (Mangle)
Для корректной работы CAKE важно правильно маркировать трафик с помощью DSCP.
/ip firewall mangle
add chain=prerouting protocol=icmp action=set-priority new-priority=7 passthrough=yes
add chain=prerouting protocol=udp port=5060,10000-20000 action=set-priority new-priority=7 passthrough=yes
VoIP, ICMP (ping) получают наивысший приоритет (DSCP = CS7/EF).
Приоритет Zoom, Webex, видеозвонков
add chain=prerouting protocol=udp port=8801-8810 action=set-priority new-priority=6 passthrough=yes
add chain=prerouting protocol=tcp port=443,3478-3481 action=set-priority new-priority=6 passthrough=yes
Zoom/Webex используют порты UDP 8801-8810, TCP 443/3478-3481.
Маркировка видео (YouTube, Netflix)
add chain=prerouting protocol=tcp port=443 action=set-priority new-priority=5 passthrough=yes
add chain=prerouting protocol=udp port=1935 action=set-priority new-priority=5 passthrough=yes
VPN и обновления ОС
add chain=prerouting protocol=udp port=500,4500 action=set-priority new-priority=3 passthrough=yes
Торренты и P2P (низкий приоритет)
/ip firewall layer7-protocol
add name=torrent regexp="^.*(get|GET).+(torrent|thepiratebay|isohunt|entertane|demonoid|btjunkie|mininova|flixflux|torrentz|vertor|h33t|btscene|bitunity|bittoxic|thunderbytes|entertane|zoozle|vcdq|bitnova|bitsoup|meganova|fulldls|btbot|flixflux|\
seedpeer|fenopy|gpirate|commonbits).*\$"
/queue/simple
add action=set-priority chain=prerouting disabled=yes layer7-protocol=torrent new-priority=2
Проверка работы CAKE QoS
После настройки можно проверить эффективность CAKE:
Проверка очереди
/queue simple print stats
Проверка DSCP-классов
/ip firewall mangle print
Проверка ping при загрузке сети
ping 8.8.8.8 size=1472 do-not-fragment
Если ping стабилен, значит QoS работает правильно.
Также для проверки правильности настройки можно воспользоваться сервисом