Утром все сотрудники пришли на работу, открыли браузер — и VoIP-звонки превратились в кашу. Кто-то качает обновления, кто-то смотрит YouTube, кто-то заливает бэкап в облако. Канал забит, голосовой трафик теряет пакеты, переговоры срываются. Знакомая картина?
QoS в MikroTik — инструмент, который расставляет трафик по приоритетам: VoIP получает гарантированную полосу, торренты — остатки, а всё остальное — по справедливости. В этом руководстве: полная настройка QoS в RouterOS от простого ограничения пользователя до приоритизации VoIP и управления трафиком на порту в bridge. Только практика, только рабочие конфиги.
Что такое QoS в MikroTik и зачем он нужен
QoS (Quality of Service) — механизм управления полосой пропускания и приоритетами трафика. Без QoS маршрутизатор обрабатывает все пакеты одинаково: торрент-клиент конкурирует с VoIP на равных, и голосовой звонок проигрывает — у торрента пакетов тупо больше.
С QoS роутер знает: этот UDP-поток на порт 5060 — голос, его надо пропустить первым. А вот эти 500 соединений на BitTorrent — в конец очереди.
Где MikroTik QoS применяется на практике:
- Провайдерские сети — ограничение скорости абонентов по тарифным планам
- Офисные сети — приоритет VoIP, видеоконференций, ERP-систем над развлекательным трафиком
- Wi-Fi сети — справедливое распределение полосы между клиентами
- Гостиничные и хостельные сети — ограничение скорости на комнату или на устройство
- Промышленные и SCADA-сети — гарантированная полоса для критических систем управления
RouterOS предоставляет несколько механизмов QoS, которые можно комбинировать:
- Simple Queue — простые правила ограничения скорости по IP или подсети
- Queue Tree — иерархические очереди для сложных политик трафика
- PCQ (Per Connection Queue) — справедливое распределение полосы между соединениями
- Mangle — маркировка трафика для последующей обработки очередями
Основные механизмы QoS в MikroTik: сравнение
| Тип очереди | Сложность | Применение | Производительность |
|---|---|---|---|
| Simple Queue | Низкая | Офис, небольшие сети, ограничение по IP | Снижает производительность при большом количестве правил |
| Queue Tree | Высокая | Провайдеры, сложные политики, иерархии | Эффективнее Simple Queue при масштабировании |
| PCQ | Средняя | Равномерная балансировка, Wi-Fi, hotspot | Высокая при большом числе абонентов |
Simple Queue
Самый простой инструмент. Работает на уровне IP-адресов и подсетей. Подходит для небольших офисных сетей, где нужно ограничить скорость нескольких пользователей или задать базовые приоритеты. Настраивается за минуты, понятен без глубокого погружения в RouterOS. Главный минус: при десятках и сотнях правил начинает серьёзно нагружать CPU.
Queue Tree
Мощный инструмент для провайдеров и сложных корпоративных сетей. Позволяет строить иерархии очередей: глобальный лимит → группы → отдельные пользователи. Требует маркировки трафика через Mangle и понимания концепции parent/child очередей. Зато обеспечивает полный контроль над тем, кто, сколько и когда получает полосу.
PCQ (Per Connection Queue)
Специализированный тип очереди для справедливого распределения. Делит доступную полосу поровну между активными соединениями или IP-адресами. Идеален для Wi-Fi-сетей, hotspot и ситуаций, когда нужно «чтобы никто не объедал соседей» без ручного управления каждым абонентом.
MikroTik QoS настройка: от простого к сложному
Базовое ограничение скорости через Simple Queue
Начнём с самого распространённого сценария — ограничить конкретного пользователя по IP-адресу.
# Ограничить пользователя 192.168.1.100 до 10 Мбит/с вверх и вниз /queue simple add name=User1 target=192.168.1.100/32 max-limit=10M/10M # Ограничить целую подсеть /queue simple add name=Office_LAN target=192.168.1.0/24 max-limit=100M/100M # С приоритетом (1 — максимальный, 8 — минимальный) /queue simple add name=Manager target=192.168.1.50/32 max-limit=20M/20M priority=1/1 # Разные лимиты на загрузку и отдачу /queue simple add name=User_Asymmetric target=192.168.1.101/32 max-limit=50M/10M
Параметры Simple Queue:
target— IP-адрес, подсеть или интерфейс, к которому применяется ограничениеmax-limit— максимальная скорость в форматеupload/downloadlimit-at— гарантированная минимальная скорость (burst не падает ниже этого значения)priority— приоритет очереди (1–8), используется когда несколько очередей конкурируют за полосуburst-limit— максимальная скорость в режиме burst (кратковременного пика)burst-time— время, в течение которого разрешён burst
Настройка burst: быстрый старт загрузки
# Пользователь получает 20 Мбит/с на 10 секунд при начале загрузки,
# затем снижается до основного лимита 10 Мбит/с
/queue simple
add name=User_Burst \
target=192.168.1.102/32 \
max-limit=10M/10M \
burst-limit=20M/20M \
burst-threshold=8M/8M \
burst-time=10s/10s
PCQ: справедливое распределение для провайдера
# Создать PCQ-тип очереди (разделяет полосу между dst-адресами)
/queue type
add name=PCQ_Download kind=pcq pcq-classifier=dst-address pcq-rate=0 pcq-limit=50KiB
add name=PCQ_Upload kind=pcq pcq-classifier=src-address pcq-rate=0 pcq-limit=50KiB
# Применить PCQ к интерфейсу
/queue simple
add name=ISP_Fair_Share \
target=192.168.0.0/16 \
max-limit=100M/100M \
queue=PCQ_Upload/PCQ_Download
[/bash>
<h2>Настройка приоритета трафика: VoIP, игры, видеоконференции</h2>
<p>Ограничение скорости — это половина QoS. Вторая половина — приоритизация: убедиться, что критически важный трафик получает полосу в первую очередь, даже когда канал загружен.</p>
<p>Схема работы: <strong>Mangle маркирует пакеты → Queue Tree обрабатывает по маркам</strong>.</p>
<h3>Шаг 1: Маркировка трафика через Mangle</h3>
[bash]
# Маркировать VoIP-трафик (SIP протокол, UDP порт 5060)
/ip firewall mangle
add chain=forward protocol=udp dst-port=5060 action=mark-packet \
new-packet-mark=voip passthrough=no comment="VoIP SIP signaling"
# Маркировать RTP (голосовые данные, обычно UDP 10000-20000)
/ip firewall mangle
add chain=forward protocol=udp dst-port=10000-20000 action=mark-packet \
new-packet-mark=voip_rtp passthrough=no comment="VoIP RTP media"
# Маркировать игровой трафик (пример: CS2, Valorant)
/ip firewall mangle
add chain=forward protocol=udp dst-port=27000-27050 action=mark-packet \
new-packet-mark=gaming passthrough=no comment="Steam/Gaming UDP"
# Маркировать HTTP/HTTPS (веб)
/ip firewall mangle
add chain=forward protocol=tcp dst-port=80,443 action=mark-packet \
new-packet-mark=web passthrough=no comment="Web traffic"
# Маркировать торрент-трафик (через connection-mark, более надёжно)
/ip firewall mangle
add chain=forward p2p=all-p2p action=mark-packet \
new-packet-mark=bulk passthrough=no comment="P2P/Torrent"
Шаг 2: Создание Queue Tree с приоритетами
# Главная очередь (ограничение всего исходящего трафика на WAN)
/queue tree
add name=WAN_Total parent=ether1 max-limit=100M comment="Total WAN bandwidth"
# VoIP — максимальный приоритет, гарантированная полоса
/queue tree
add name=VoIP parent=WAN_Total packet-mark=voip \
priority=1 max-limit=5M limit-at=2M \
comment="VoIP SIP - highest priority"
add name=VoIP_RTP parent=WAN_Total packet-mark=voip_rtp \
priority=1 max-limit=10M limit-at=3M \
comment="VoIP RTP media"
# Игровой трафик — высокий приоритет (низкая латентность важна)
/queue tree
add name=Gaming parent=WAN_Total packet-mark=gaming \
priority=2 max-limit=30M \
comment="Gaming - low latency priority"
# Веб-трафик — средний приоритет
/queue tree
add name=Web parent=WAN_Total packet-mark=web \
priority=4 max-limit=80M \
comment="HTTP/HTTPS web"
# Bulk/Torrent — минимальный приоритет, остатки полосы
/queue tree
add name=Bulk parent=WAN_Total packet-mark=bulk \
priority=8 max-limit=20M \
comment="P2P bulk - lowest priority"
Таблица приоритетов для типичного офиса
| Тип трафика | Приоритет | Гарантированная полоса | Максимальная полоса |
|---|---|---|---|
| VoIP (SIP + RTP) | 1 — наивысший | 3 Мбит/с | 10 Мбит/с |
| Видеоконференции | 2 | 5 Мбит/с | 30 Мбит/с |
| VPN / ERP | 3 | 2 Мбит/с | 50 Мбит/с |
| Веб / Email | 4 — средний | — | 80 Мбит/с |
| Обновления ОС | 6 | — | 20 Мбит/с |
| Торренты / P2P | 8 — наименьший | — | 10 Мбит/с |
MikroTik QoS на порту в bridge
Здесь начинается самая частая головная боль. Вы настроили Simple Queue или Queue Tree, проверяете — QoS не работает. Пользователи в bridge качают без ограничений. Что происходит?
Проблема: в режиме bridge трафик между портами коммутируется на L2 и не проходит через IP-стек. Firewall, Mangle и очереди работают на уровне IP (L3), поэтому они просто не видят этот трафик. QoS в bridge по умолчанию не работает.
Решение 1: Включить use-ip-firewall для bridge
# Заставить трафик внутри bridge проходить через IP Firewall /interface bridge settings set use-ip-firewall=yes use-ip-firewall-for-vlan=yes use-ip-firewall-for-pppoe=yes # Проверить текущие настройки /interface bridge settings print
Важно: включение use-ip-firewall увеличивает нагрузку на CPU, так как трафик больше не коммутируется аппаратно. На бюджетных RouterBOARD с большим трафиком это может стать узким местом.
Решение 2: Ограничение по подсети (работает без use-ip-firewall)
# Ограничить всю подсеть, подключённую к bridge
/queue simple
add name=Bridge_LAN target=192.168.10.0/24 max-limit=50M/50M \
comment="Limit for bridge segment"
Решение 3: Ограничение трафика на конкретном порту bridge
# Ограничить трафик на физическом интерфейсе ether2 (порт в bridge)
/queue simple
add name=LAN_Port_ether2 target=ether2 max-limit=100M/100M \
comment="Speed limit on bridge port ether2"
# Или через Queue Tree с parent на конкретный интерфейс
/queue tree
add name=Port_ether2_Out parent=ether2 max-limit=100M \
comment="Egress limit on ether2"
Решение 4: VLAN + QoS (правильный подход для bridge)
# Создать VLAN-интерфейс поверх bridge /interface vlan add name=vlan10 interface=bridge1 vlan-id=10 # Назначить IP на VLAN-интерфейс /ip address add address=192.168.10.1/24 interface=vlan10 # Теперь QoS через Simple Queue работает на VLAN-интерфейсе /queue simple add name=VLAN10_Limit target=vlan10 max-limit=50M/50M
Настройка bridge с аппаратным ускорением и QoS
# На RouterBOARD с коммутатором (например, hEX, RB4011): # Проверить, используется ли hardware offloading /interface ethernet print detail # Отключить hardware offloading на портах, где нужен QoS /interface ethernet set ether2 hw=no set ether3 hw=no # После этого use-ip-firewall начнёт работать корректно на этих портах
Полный пример QoS для офисной сети
Собираем всё вместе: сеть офиса на 50 человек, WAN 100 Мбит/с, нужно обеспечить качество VoIP, ограничить торренты и дать приоритет рабочим приложениям.
# ============================================
# ШАГ 1: Маркировка трафика через Mangle
# ============================================
/ip firewall mangle
# VoIP
add chain=forward protocol=udp dst-port=5060,5061 \
action=mark-packet new-packet-mark=voip passthrough=no
add chain=forward protocol=udp dst-port=10000-20000 \
action=mark-packet new-packet-mark=voip passthrough=no
# Видеоконференции (Zoom, Teams, Meet)
add chain=forward protocol=udp dst-port=8801-8802 \
action=mark-packet new-packet-mark=video_conf passthrough=no
add chain=forward protocol=tcp dst-port=8801-8802 \
action=mark-packet new-packet-mark=video_conf passthrough=no
# P2P / Torrent
add chain=forward p2p=all-p2p \
action=mark-packet new-packet-mark=bulk passthrough=no
# Веб (всё остальное TCP 80/443)
add chain=forward protocol=tcp dst-port=80,443 \
action=mark-packet new-packet-mark=web passthrough=no
# ============================================
# ШАГ 2: Queue Tree
# ============================================
/queue tree
# Корневая очередь на WAN-интерфейсе
add name=WAN_Out parent=ether1 max-limit=95M \
comment="Leave 5% headroom for routing"
# VoIP — наивысший приоритет
add name=Q_VoIP parent=WAN_Out packet-mark=voip \
priority=1 max-limit=15M limit-at=5M
# Видеоконференции
add name=Q_VideoConf parent=WAN_Out packet-mark=video_conf \
priority=2 max-limit=40M limit-at=10M
# Веб-трафик
add name=Q_Web parent=WAN_Out packet-mark=web \
priority=4 max-limit=95M
# Bulk / Torrent — минимальный приоритет
add name=Q_Bulk parent=WAN_Out packet-mark=bulk \
priority=8 max-limit=15M limit-at=1M
Диагностика и мониторинг QoS в MikroTik
Настроили — проверяем. Вот инструментарий для диагностики работы очередей.
# Статистика Simple Queue: пакеты, байты, drops /queue simple print stats # Статистика Queue Tree /queue tree print stats # Мониторинг трафика в реальном времени (torch) # Показывает, что сейчас идёт через интерфейс /tool torch interface=ether1 # Torch с фильтром по IP /tool torch interface=ether1 src-address=192.168.1.100 # Bandwidth test (проверка пропускной способности до другого MikroTik) /tool bandwidth-test address=192.168.1.1 user=admin # Посмотреть текущие очереди и их состояние /queue simple print detail /queue tree print detail # Проверить маркировку пакетов (увидеть, какие packet-mark активны) /ip firewall mangle print stats # Профилировщик CPU (если QoS нагружает процессор) /tool profile
Интерпретация статистики очередей
При выводе /queue simple print stats обратите внимание на поле dropped. Если счётчик дропов растёт — очередь работает: она отбрасывает лишний трафик, удерживая скорость в заданных лимитах. Это нормально. Если дропов нет, но пользователь жалуется на скорость — QoS, скорее всего, вообще не применяется к этому трафику.
# Сброс статистики очередей для чистого наблюдения /queue simple reset-counters [find] /queue tree reset-counters [find]
Частые ошибки при настройке QoS в MikroTik
Ошибка 1: FastTrack обходит QoS
Самая распространённая проблема. FastTrack — механизм аппаратного ускорения соединений в RouterOS. Ускоренные соединения проходят мимо Firewall и очередей. QoS просто не видит этот трафик.
# Найти и отключить правило FastTrack /ip firewall filter print # Отключить конкретное правило fasttrack /ip firewall filter disable [find action=fasttrack-connection] # Или отключить connection-mark для fasttrack /ip firewall connection tracking set generic-timeout=10m # Проверить, что FastTrack отключён /ip firewall filter print where action=fasttrack-connection
Альтернатива: если FastTrack важен для производительности, маркируйте трафик через Mangle до FastTrack в таблице цепочек.
Ошибка 2: Неправильный parent в Queue Tree
# НЕПРАВИЛЬНО: parent=global не привязан к конкретному интерфейсу /queue tree add name=VoIP parent=global packet-mark=voip priority=1 # ПРАВИЛЬНО: parent должен быть корневой очередью на нужном интерфейсе /queue tree add name=WAN parent=ether1 max-limit=100M # сначала корневая add name=VoIP parent=WAN packet-mark=voip priority=1 # потом дочерняя
Ошибка 3: Packet-mark не применяется (Mangle не срабатывает)
# Проверить порядок правил Mangle — важен! /ip firewall mangle print # Правила обрабатываются сверху вниз. Если трафик попал под правило # с passthrough=no — дальнейшие правила не применяются. # Проверить счётчики — если bytes=0, правило не срабатывает /ip firewall mangle print stats # Убедиться в правильной цепочке: # forward — для транзитного трафика (между клиентами и интернетом) # output — для трафика самого роутера # prerouting — для входящего трафика до роутинга
Ошибка 4: QoS в bridge не работает без use-ip-firewall
# Проверить текущее состояние /interface bridge settings print # Включить обработку IP в bridge /interface bridge settings set use-ip-firewall=yes # После изменения может потребоваться перезагрузка /system reboot
Ошибка 5: Simple Queue и Queue Tree конфликтуют
Не используйте Simple Queue и Queue Tree одновременно для одного и того же трафика — они обрабатываются независимо и будут конфликтовать. Simple Queue обрабатывается первым, если совпадает с target. Выберите один подход: либо Simple Queue для простых сетей, либо Queue Tree + Mangle для сложных.
Оптимизация QoS под нагрузку: советы для провайдеров
# Проверить загрузку CPU при работе QoS
/system resource print
# Если CPU > 70% из-за очередей — переходить на PCQ или аппаратный QoS
# Использовать PCQ вместо индивидуальных Simple Queue для абонентов
/queue type
add name=PCQ_Down kind=pcq pcq-classifier=dst-address \
pcq-rate=10M pcq-limit=100KiB pcq-burst-rate=20M pcq-burst-threshold=8M
add name=PCQ_Up kind=pcq pcq-classifier=src-address \
pcq-rate=5M pcq-limit=50KiB
# Применить PCQ на интерфейс провайдера
/queue simple
add name=ISP_PCQ target=0.0.0.0/0 interface=ether1 \
queue=PCQ_Up/PCQ_Down max-limit=1000M/1000M
На высоконагруженных роутерах (RB4011, CCR-серия) используйте hardware queue для ограничений на уровне интерфейса — это снимает нагрузку с CPU и работает на скоростях 1+ Гбит/с.
Заключение
QoS в MikroTik — не магия и не сложная наука, если понять базовую логику: маркируем трафик через Mangle → обрабатываем очередями. Simple Queue закрывает 80% офисных задач, Queue Tree нужен там, где требуется гибкость и масштаб.
Ключевые выводы:
- FastTrack — первое, что нужно проверить, если QoS не работает
- В bridge трафик не проходит через IP-стек без
use-ip-firewall=yes - Queue Tree без корректного parent — не работает
- Для провайдерских сетей PCQ эффективнее сотен Simple Queue
- Мониторьте статистику очередей и счётчики Mangle — они скажут всё о том, работает ли QoS
Для сложных сетей с тысячами абонентов и требованиями к SLA смотрите в сторону CCR-серии с hardware offloading и HTB-шейпером. Но для 90% задач хватит того, что описано выше.
Пишите в комментарии свои кейсы и конфигурации — разберём.
Оставайтесь на связи
Рецепты от IT-боли. Без воды, без рекламы, без маркетинговой шелухи.
Подписаться на IT-Аптеку →



