2026-09-16
Приоритезация интернет-трафика на Mikrotik: Simple Queues и Queue Tree

MikroTik RouterBoard RB260GS

Приоритезация интернет-трафика на Mikrotik: Simple Queues и Queue Tree

Когда канал общий на всех пользователей, а кто-то качает и «съедает» всё — нужна очередь (queue). RouterOS даёт два подхода: Simple Queues (просто и быстро) и Queue Tree (гибко, но требует mangle). В этой статье разберём оба, включая приоритезацию трафика по DSCP-метке из предыдущих статей.


Что выбрать: Simple Queues или Queue Tree

Критерий Simple Queues Queue Tree
Сложность Низкая Средняя
Гибкость Средняя Высокая
Parent-иерархия Встроенная Через interface/global
Работа с DSCP/mangle Через filter (ограниченно) Полная (packet-mark)
Нагрузка на CPU Ниже Выше

Для домашней/офисной сети до ~30 клиентов обычно достаточно Simple Queues. Для продвинутого управления (веб против торрентов, VoIP приоритет, гостевой Wi-Fi) — Queue Tree.


Часть 1. Simple Queues: ограничить скорость и поделить канал

Шаг 1. Базовое правило на весь канал

/queue simple add 
    name="global" 
    target=192.168.0.0/24 
    max-limit=100M/100M 
    comment="Всё на 100 Мбит"
  • target — подсеть, к которой применяется
  • max-limit = upload/download в мегабитах (RouterOS 7 понимает M/K)

Шаг 2. Иерархия: разделить канал поровну или по приоритету

Сначала создаём родительскую очередь на интерфейс:

/queue simple add name="WAN" interface=ether1 max-limit=100M/100M

Затем детки с parent=WAN. Проще всего через GUI: Queues → Simple Queues, кнопка «Детей» справа. Или вручную:

/queue simple add 
    name="Office" 
    parent="WAN" 
    target=192.168.0.10-192.168.0.50 
    max-limit=30M/40M
/queue simple add 
    name="Guest" 
    parent="WAN" 
    target=192.168.0.51-192.168.0.60 
    max-limit=5M/5M

Правило: сумма детей не обязана равняться родителю — RouterOS сам отдаст излишек родителя наиболее активному ребёнку, если у ребёнка limit-at выделен.

Шаг 3. Лимит на одно подключение (per-connection)

Чтобы никто один не жрал весь канал:

/queue simple add name="PC-10" parent="WAN" 
    target=192.168.0.10 max-limit=20M/20M limit-at=10M/10M burst-limit=30M/30M burst-threshold=15M/15M burst-time=5s
  • limit-at — гарантированная скорость
  • max-limit — потолок
  • burst-* — короткий «пик» выше потолка, если канал свободен

Часть 2. Queue Tree: приоритет по DSCP (связка с метками)

Queue Tree работает по packet-mark — это ровно те метки, которые мы ставили через mangle в статьях про DSCP в Windows и Ubuntu. Схема:

  1. mangle помечает пакеты (vpn-traffic, voip, download, default)
  2. Queue Tree создаёт очередь на интерфейс
  3. Каждый packet-mark получает свою очередь и приоритет

Шаг 1. Мечим трафик через mangle

/ip firewall mangle
add chain=forward dst-address-list=!NoQoS dscp=46 action=mark-packet 
    new-packet-mark=VoIP pass-through=no comment="DSCP46 -> VoIP"
add chain=forward dst-address-list=!NoQoS dscp=26,34 action=mark-packet 
    new-packet-mark=Business pass-through=no comment="DSCP 26/34 -> Business"
add chain=forward dst-address-list=!NoQoS protocol=tcp port=443,80 
    action=mark-packet new-packet-mark=Web pass-through=no comment="Web"
add chain=forward dst-address-list=!NoQoS action=mark-packet 
    new-packet-mark=Bulk pass-through=no comment="Все остальное"

Порядок правил важен: чем специфичнее — тем раньше. Список NoQoS создайте через /ip firewall address-list и добавьте туда адреса, которые трогать нельзя (управление, локальные ресурсы).

Шаг 2. Родительская очередь на исходящий интерфейс

/queue tree add name="WAN-DL" packet-mark="" 
    parent=ether1 max-limit=100M comment="Download шейпер"
/queue tree add name="WAN-UL" packet-mark="" 
    parent=pppoe-out1 max-limit=20M comment="Upload шейпер"
  • Download шейпим на физическом интерфейсе ether1
  • Upload шейпим на WAN-интерфейсе (pppoe-out1 / ether1-WAN)

Для upload download раздельно: download ставится на LAN-интерфейс, upload — на WAN-интерфейс.

Шаг 3. Детские очереди по packet-mark

/queue tree add name="VoIP" packet-mark="VoIP" parent="WAN-DL" 
    max-limit=10M burst-limit=20M burst-threshold=8M burst-time=3s 
    priority=1 comment="Голос - самый высокий приоритет"
/queue tree add name="Business" packet-mark="Business" parent="WAN-DL" 
    priority=2
/queue tree add name="Web" packet-mark="Web" parent="WAN-DL" 
    priority=4
/queue tree add name="Bulk" packet-mark="Bulk" parent="WAN-DL" 
    limit-at=2M max-limit=100M priority=8 comment="Остальное - фон"

priority работает по принципу строгих приоритетов: пакеты с priority=1 обслуживаются раньше, чем с priority=2 и т.д. Этот принцип совпадает с логикой DSCP: метка 46 (EF) → очередь с priority=1.

Шаг 4. То же для upload

/queue tree add name="VoIP-UL" packet-mark="VoIP" parent="WAN-UL" 
    max-limit=2M priority=1
/queue tree add name="Business-UL" packet-mark="Business" parent="WAN-UL" priority=2
/queue tree add name="Web-UL" packet-mark="Web" parent="WAN-UL" priority=4
/queue tree add name="Bulk-UL" packet-mark="Bulk" parent="WAN-UL" 
    limit-at=512k max-limit=20M priority=8

Проверка работы очередей

Простые счётчики

/queue simple print stats
/queue tree print stats

Смотрим колонки rate, bytes, packets. У активного клиента должна расти скорость.

Пинг во время загрузки

Запустите торрент/загрузку на фоне и пингуйте шлюз:

/ping 8.8.8.8 count=50

Если ping стабилен ≤ 5 мс при загрузке канала — шейпер работает. Если пингует 50-100 мс — поднимите приоритет VoIP/управление и ограничьте фон.

Watch-интерфейсы

/tool graphing interface add interface=ether1
/tool graphing queue add name="WAN-DL"

Графики покажут боксёры скорости по очередям — наглядно видно, кто что ест.


Тонкости и подводные камни

  • Queue Tree требует packet-mark, а Simple Queues — нет. Без mangle Queue Tree не получится (только простые очереди).
  • Simple Queues игнорируют packet-mark — если уже используете mangle, используйте Queue Tree.
  • Double-queuing: не шейпите один трафик одновременно Simple и Tree — будет конфликт. Выберите один механизм на интерфейс.
  • FastTrack отключится автоматически — когда есть queue на интерфейсе, RouterOS сам убирает этот трафик из fasttrack. На всякий случай проверьте /ip firewall raw.
  • Wi-Fi клиенты: шейпер на беспроводном интерфейсе работает, но точки с агрегацей ведут себя хуже. Шейпите на bridge-интерфейсе.
  • PCQ vs queue tree: PCQ (Per Connection Queuing) делит скорость поровну между соединениями — удобно для гостевых. Пример: limit-at=0 max-limit=100M packet-marks=Bulk pcq-classifier=both-addresses.
  • HTB-обучение: Simple Queues построены на HTB. Дочерние очереди с limit-at гарантируют минимальную скорость, излишек распределяется. Это основа — понимание HTB убирает 90% проблем с шейпингом на Mikrotik.

Шпаргалка

# Simple Queue - базово
/queue simple add name="WAN" interface=ether1 max-limit=100M/100M
/queue simple add name="Office" parent="WAN" target=192.168.0.10-192.168.0.50 
    max-limit=30M/40M

# Queue Tree - продвинуто
/ip firewall mangle add chain=forward dscp=46 action=mark-packet 
    new-packet-mark=VoIP pass-through=no
/ip firewall mangle add chain=forward action=mark-packet 
    new-packet-mark=Bulk pass-through=no
/queue tree add name="WAN-DL" parent=ether1 max-limit=100M
/queue tree add name="VoIP" packet-mark="VoIP" parent="WAN-DL" priority=1
/queue tree add name="Bulk" packet-mark="Bulk" parent="WAN-DL" 
    limit-at=2M max-limit=100M priority=8

Проверено на: RouterOS 7.14+.
Дата: Сентябрь 2026.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *