Полное руководство по настройке 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): Overhead34
Ethernet + VLAN (802.1Q) Overhead38 (добавляет 4 байта VLAN-тега)
Ethernet + Q-in-Q (двойная VLAN) Overhead42
PPPoE (без VLAN): Overhead40
PPPoE + VLAN: Overhead44
Ethernet + VLAN + PPPoE Overhead44
DOCSIS (кабельный интернет): Overhead18
LTE (4G/5G): Overhead30
PPPoE без VPN: Overhead40
PPPoE + GRE: Overhead48
PPPoE + WireGuard: Overhead60
PPPoE + IPsec (ESP): Overhead60-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?

Параметрdiffserv4diffserv8
Количество очередей48
Гибкость приоритизацииСредняяВысокая
Подходит дляОбычного 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 работает правильно.

Также для проверки правильности настройки можно воспользоваться сервисом