Ограничение скорости на MikroTik — Simple Queue и PCQ
Управление полосой пропускания (QoS — Quality of Service) — одна из ключевых задач сетевого администратора. Без ограничения скорости один пользователь с торрентами может "положить" интернет для всего офиса, а VoIP-звонки начнут прерываться из-за нехватки полосы. RouterOS предоставляет мощные инструменты QoS: Simple Queue для базовых задач, PCQ для равномерного распределения канала и Queue Tree для продвинутых сценариев с приоритизацией трафика.
Описание
Зачем нужно ограничение скорости
Типичная ситуация: офис на 20 человек, тариф провайдера 100 Мбит/с. Без QoS:
- Менеджер скачивает ISO-образ Windows — 80 Мбит/с уходит на него
- Бухгалтерия не может загрузить отчёт в банк-клиент
- VoIP-звонки директора "квакают" и прерываются
- Видеоконференция тормозит
С правильным QoS каждый получает гарантированную полосу, а критический трафик (VoIP, видеосвязь) имеет приоритет.
Механизмы QoS в RouterOS
| Механизм | Назначение | Сложность | Когда использовать |
|---|---|---|---|
| Simple Queue | Ограничение по IP/подсети | Низкая | Один клиент, малая сеть |
| PCQ (Per Connection Queue) | Равномерное распределение | Средняя | Офис/гостиница — поровну всем |
| Queue Tree + Mangle | Приоритизация по типу трафика | Высокая | VoIP, видео, игры — приоритетный QoS |
Терминология
- max-limit — максимальная скорость (жёсткий потолок)
- limit-at — гарантированная скорость (CIR — Committed Information Rate)
- burst-limit — скорость в режиме burst (кратковременное превышение)
- burst-threshold — порог, при превышении которого burst отключается
- burst-time — время расчёта средней скорости для burst
- target — IP-адрес или подсеть, к которой применяется очередь
- parent — родительская очередь для иерархии
Настройка
Simple Queue — базовое ограничение
Simple Queue — самый простой инструмент. Работает по принципу: указываете target (IP или подсеть) и max-limit (максимальная скорость upload/download).
[admin@MikroTik] ># Ограничение для одного хоста: 10 Мбит/с загрузка, 5 Мбит/с отдача /queue/simple/add name="PC-director" target=192.168.88.10/32 \ max-limit=5M/10M comment="Директор" # Ограничение для подсети: 50 Мбит/с на всю подсеть /queue/simple/add name="Accounting-VLAN" target=192.168.10.0/24 \ max-limit=10M/50M comment="Бухгалтерия VLAN 10" # Ограничение с гарантированной полосой /queue/simple/add name="VoIP-server" target=192.168.88.50/32 \ max-limit=2M/2M limit-at=1M/1M priority=1/1 \ comment="VoIP сервер — приоритетный"
Формат скорости: upload/download. Значение 5M/10M означает 5 Мбит/с upload и 10 Мбит/с download.
Simple Queue с Burst
Burst позволяет кратковременно превышать лимит. Это удобно для веб-сёрфинга: страницы загружаются быстро (burst), а длительные скачивания ограничиваются до max-limit.
[admin@MikroTik] ># Обычная скорость 5 Мбит/с, burst до 10 Мбит/с /queue/simple/add name="User-burst-example" target=192.168.88.20/32 \ max-limit=5M/5M \ burst-limit=10M/10M \ burst-threshold=4M/4M \ burst-time=16s/16s \ comment="С burst: обычно 5M, кратковременно до 10M"
Как работает burst:
- Пользователь начинает загрузку — получает burst-limit (10 Мбит/с)
- RouterOS считает среднюю скорость за burst-time (16 секунд)
- Когда средняя превышает burst-threshold (4 Мбит/с) — burst отключается
- Скорость падает до max-limit (5 Мбит/с)
- Когда средняя опускается ниже threshold — burst снова доступен
Параметры burst:
| Параметр | Значение | Описание |
|---|---|---|
| max-limit | 5M/5M | Обычная скорость |
| burst-limit | 10M/10M | Скорость при burst |
| burst-threshold | 4M/4M | Порог отключения burst |
| burst-time | 16s/16s | Окно расчёта средней скорости |
PCQ — равномерное распределение канала
PCQ (Per Connection Queue) — это тип очереди, который автоматически делит полосу пропускания поровну между всеми активными пользователями. Вместо создания отдельного правила для каждого IP, вы создаёте один queue type и одну очередь.
Пример задачи: офис 20 человек, тариф 100 Мбит/с. Каждый должен получить не более 5 Мбит/с download и 2.5 Мбит/с upload.
[admin@MikroTik] ># Шаг 1: Создаём PCQ-тип для download /queue/type/add name=pcq-download-5M kind=pcq \ pcq-rate=5M pcq-classifier=dst-address # Шаг 2: Создаём PCQ-тип для upload /queue/type/add name=pcq-upload-2.5M kind=pcq \ pcq-rate=2500k pcq-classifier=src-address # Шаг 3: Применяем через Simple Queue /queue/simple/add name="Office-PCQ" target=192.168.88.0/24 \ max-limit=20M/100M \ queue=pcq-upload-2.5M/pcq-download-5M \ comment="Офис: 100M/20 = 5M каждому"
Ключевой параметр — pcq-classifier:
dst-address— для download (классификация по адресу получателя = IP пользователя)src-address— для upload (классификация по адресу отправителя = IP пользователя)
Если PCQ rate установить в 0, канал делится динамически: при 2 активных пользователях каждый получит 50 Мбит/с, при 20 — по 5 Мбит/с:
[admin@MikroTik] ># Динамическое деление канала (без фиксированного лимита на пользователя) /queue/type/add name=pcq-download-dynamic kind=pcq \ pcq-rate=0 pcq-classifier=dst-address pcq-total-limit=2000 /queue/type/add name=pcq-upload-dynamic kind=pcq \ pcq-rate=0 pcq-classifier=src-address pcq-total-limit=2000 /queue/simple/add name="Office-dynamic" target=192.168.88.0/24 \ max-limit=20M/100M \ queue=pcq-upload-dynamic/pcq-download-dynamic \ comment="Динамическое деление канала"
Queue Tree + Mangle — продвинутый QoS
Queue Tree позволяет строить иерархию очередей с приоритизацией. Это самый мощный, но и самый сложный механизм. Используется совместно с Mangle для маркировки пакетов.
Задача: канал 100 Мбит/с, три класса трафика:
- VoIP — приоритет 1, гарантия 10 Мбит/с
- Web — приоритет 4, гарантия 40 Мбит/с
- Bulk (торренты, обновления) — приоритет 8, без гарантии, остатки канала
[admin@MikroTik] ># === Шаг 1: Маркировка пакетов через Mangle === /ip/firewall/mangle # Маркировка VoIP трафика (SIP + RTP) add chain=forward protocol=udp dst-port=5060-5061 \ action=mark-packet new-packet-mark=voip passthrough=no \ comment="VoIP SIP" add chain=forward protocol=udp dst-port=10000-20000 \ action=mark-packet new-packet-mark=voip passthrough=no \ comment="VoIP RTP" # Маркировка по DSCP (если VoIP-оборудование ставит DSCP EF) add chain=forward dscp=46 \ action=mark-packet new-packet-mark=voip passthrough=no \ comment="VoIP DSCP EF" # Маркировка Web трафика (HTTP/HTTPS) add chain=forward protocol=tcp dst-port=80,443 \ action=mark-packet new-packet-mark=web passthrough=no \ comment="Web HTTP/HTTPS" # Маркировка DNS add chain=forward protocol=udp dst-port=53 \ action=mark-packet new-packet-mark=web passthrough=no \ comment="DNS" # Всё остальное — bulk add chain=forward action=mark-packet new-packet-mark=bulk passthrough=no \ comment="Bulk — all other traffic" # === Шаг 2: Queue Tree === /queue/tree # Родительская очередь (потолок канала) add name="Total-Download" parent=global max-limit=100M \ comment="Total download bandwidth" # VoIP — приоритет 1 add name="VoIP-Download" parent=Total-Download \ packet-mark=voip priority=1 \ limit-at=10M max-limit=20M \ comment="VoIP: гарантия 10M, макс 20M" # Web — приоритет 4 add name="Web-Download" parent=Total-Download \ packet-mark=web priority=4 \ limit-at=40M max-limit=80M \ comment="Web: гарантия 40M, макс 80M" # Bulk — приоритет 8 add name="Bulk-Download" parent=Total-Download \ packet-mark=bulk priority=8 \ limit-at=0 max-limit=100M \ comment="Bulk: без гарантии, до 100M если канал свободен"
Приоритеты в RouterOS: 1 — наивысший, 8 — наименьший. При перегрузке канала трафик с приоритетом 1 (VoIP) обслуживается первым.
Приоритизация VoIP через DSCP
Если VoIP-оборудование (IP-телефоны, АТС) устанавливает DSCP-метки, можно использовать их для приоритизации без Mangle:
[admin@MikroTik] ># Просмотр DSCP-меток в проходящем трафике /tool/sniffer/quick port=ether1 ip-protocol=udp # Установка DSCP EF для VoIP трафика (если оборудование не ставит) /ip/firewall/mangle/add chain=forward protocol=udp dst-port=5060-5061 \ action=change-dscp new-dscp=46 passthrough=yes \ comment="Set DSCP EF for SIP" /ip/firewall/mangle/add chain=forward protocol=udp dst-port=10000-20000 \ action=change-dscp new-dscp=46 passthrough=yes \ comment="Set DSCP EF for RTP"
Стандартные DSCP-значения:
| DSCP | Код | Назначение |
|---|---|---|
| 46 | EF (Expedited Forwarding) | VoIP, голос |
| 34 | AF41 | Видеоконференции |
| 26 | AF31 | Потоковое видео |
| 18 | AF21 | Транзакционные данные |
| 10 | AF11 | Высокоприоритетные данные |
| 0 | BE (Best Effort) | Обычный трафик |
Иерархические очереди: родитель + дети
Для офиса с несколькими отделами можно построить иерархию:
[admin@MikroTik] >/queue/simple # Родительская очередь — весь канал add name="Total" target=192.168.0.0/16 max-limit=20M/100M # Отдел продаж — гарантия 5M, максимум 50M add name="Sales" target=192.168.10.0/24 parent=Total \ limit-at=2M/5M max-limit=10M/50M # Бухгалтерия — гарантия 3M, максимум 30M add name="Accounting" target=192.168.20.0/24 parent=Total \ limit-at=1M/3M max-limit=5M/30M # Гостевой Wi-Fi — без гарантий, максимум 10M add name="Guest-WiFi" target=192.168.30.0/24 parent=Total \ limit-at=0/0 max-limit=2M/10M
Сумма limit-at детей не должна превышать max-limit родителя. Если канал свободен — дети могут использовать больше, вплоть до своего max-limit.
Проверка
Мониторинг Simple Queue
[admin@MikroTik] ># Просмотр всех очередей с текущей статистикой /queue/simple/print stats # Детальная статистика конкретной очереди /queue/simple/print stats where name="Office-PCQ" # Мониторинг в реальном времени (обновление каждые 2 секунды) /queue/simple/monitor Office-PCQ interval=2
Вывод print stats показывает:
| Поле | Описание |
|---|---|
| rate | Текущая скорость (upload/download) |
| packet-rate | Пакетов в секунду |
| bytes | Всего передано байт |
| packets | Всего передано пакетов |
| queued-bytes | Байт в очереди (ожидают отправки) |
| dropped | Сброшено пакетов (превышение лимита) |
Мониторинг Queue Tree
[admin@MikroTik] ># Статистика Queue Tree /queue/tree/print stats # Мониторинг конкретной очереди /queue/tree/monitor VoIP-Download interval=2
Проверка PCQ
[admin@MikroTik] ># Просмотр типов очередей /queue/type/print # Детальная информация о PCQ /queue/type/print detail where name~"pcq"
Тестирование скорости
[admin@MikroTik] ># Встроенный bandwidth test (к другому MikroTik) /tool/bandwidth-test address=192.168.88.1 protocol=tcp direction=both # Проверка, попадает ли трафик в очередь (должен расти счётчик bytes) /queue/simple/print stats where name="PC-director"
Для клиентского теста используйте speedtest.net или iperf3 с компьютера за роутером.
Сравнительная таблица: Simple Queue vs PCQ vs Queue Tree
| Критерий | Simple Queue | PCQ | Queue Tree |
|---|---|---|---|
| Сложность настройки | Низкая | Средняя | Высокая |
| Количество правил | 1 на пользователя | 1 на подсеть | По типу трафика |
| Равномерное деление | Нет | Да, автоматически | Нет (вручную) |
| Приоритизация | Базовая (priority 1-8) | Нет | Полная (priority + HTB) |
| Burst | Да | Нет | Нет |
| Маркировка Mangle | Не нужна | Не нужна | Обязательна |
| Иерархия (parent) | Да | Через Simple Queue | Да |
| Нагрузка на CPU | Низкая | Средняя | Высокая |
| Масштабируемость | До ~50 правил | До 1000+ пользователей | До 1000+ классов |
| Рекомендуется для | Малые сети, 1-10 IP | Офис, гостиница, провайдер | ISP, мультисервисные сети |
Типичные ошибки
1. Очередь не работает — трафик не попадает
Наиболее частая причина: неправильно указан target или интерфейс. Проверьте:
[admin@MikroTik] ># Убедитесь, что target указан правильно /queue/simple/print where name="My-Queue" # Проверьте, что трафик от пользователя реально проходит через роутер /tool/torch interface=ether2 src-address=192.168.88.20
Если используете Queue Tree — убедитесь, что Mangle-правила маркируют пакеты:
[admin@MikroTik] ># Проверка счётчиков Mangle /ip/firewall/mangle/print stats where chain=forward
2. Двойное ограничение (Simple Queue + Queue Tree)
Simple Queue и Queue Tree работают независимо. Если пакет попадает в обе очереди — он ограничивается дважды. Не смешивайте их для одного и того же трафика.
[admin@MikroTik] ># Проверить, нет ли конфликтующих очередей /queue/simple/print /queue/tree/print
3. Неправильный pcq-classifier
Самая частая ошибка при настройке PCQ:
- Для download используйте
pcq-classifier=dst-address— классификация по IP получателя (пользователя в LAN) - Для upload используйте
pcq-classifier=src-address— классификация по IP отправителя (пользователя в LAN)
Если перепутать — все пользователи попадут в одну под-очередь и PCQ не будет работать.
4. max-limit не учитывает overhead
Если тариф провайдера 100 Мбит/с, не ставьте max-limit=100M. Учитывайте PPPoE overhead (~5-8%), TCP overhead и другие факторы:
[admin@MikroTik] ># Рекомендуемое значение: 90-95% от тарифа /queue/simple/add name="Total" target=192.168.88.0/24 \ max-limit=19M/95M comment="Тариф 100M, запас на overhead"
5. Burst-параметры подобраны неправильно
Правила подбора burst:
- burst-limit = 2-3x от max-limit (не более)
- burst-threshold = 75-80% от max-limit
- burst-time = 10-20 секунд
Слишком высокий burst-limit при длинном burst-time приведёт к перегрузке канала. Слишком короткий burst-time сделает burst незаметным.
6. Забыли про upload
Часто ограничивают только download, забывая про upload. Один пользователь, заливающий видео на YouTube, может забить весь upload-канал, что приведёт к задержкам TCP ACK для всех остальных:
[admin@MikroTik] ># Неправильно — upload не ограничен (0 = без лимита) /queue/simple/add name="Bad" target=192.168.88.0/24 max-limit=0/100M # Правильно — ограничены оба направления /queue/simple/add name="Good" target=192.168.88.0/24 max-limit=20M/100M
Полный пример: офис 20 человек с VoIP
[admin@MikroTik] ># === Тариф: 100 Мбит/с download, 20 Мбит/с upload === # === 20 сотрудников + VoIP-сервер + гостевой Wi-Fi === # Шаг 1: PCQ-типы для равномерного распределения /queue/type/add name=pcq-down kind=pcq pcq-rate=5M \ pcq-classifier=dst-address /queue/type/add name=pcq-up kind=pcq pcq-rate=2M \ pcq-classifier=src-address # Шаг 2: Mangle для маркировки VoIP /ip/firewall/mangle add chain=forward protocol=udp dst-port=5060-5061 \ action=mark-packet new-packet-mark=pkt-voip passthrough=no add chain=forward protocol=udp dst-port=10000-20000 dscp=46 \ action=mark-packet new-packet-mark=pkt-voip passthrough=no add chain=forward src-address=192.168.88.0/24 \ action=mark-packet new-packet-mark=pkt-office passthrough=no add chain=forward src-address=192.168.30.0/24 \ action=mark-packet new-packet-mark=pkt-guest passthrough=no # Шаг 3: Simple Queue — иерархия /queue/simple # Родитель — весь канал add name="Total" target=0.0.0.0/0 max-limit=19M/95M # VoIP — приоритет 1, гарантия 2M add name="VoIP" target=192.168.88.50/32 parent=Total \ priority=1/1 limit-at=2M/2M max-limit=5M/5M \ comment="VoIP сервер" # Офис — PCQ, каждому по 5M download add name="Office" target=192.168.88.0/24 parent=Total \ limit-at=10M/50M max-limit=18M/90M \ queue=pcq-up/pcq-down \ comment="Офис 20 человек" # Гостевой Wi-Fi — без гарантий add name="Guest" target=192.168.30.0/24 parent=Total \ limit-at=0/0 max-limit=2M/10M \ comment="Гостевой Wi-Fi" # Проверка /queue/simple/print stats
Эта конфигурация гарантирует VoIP-серверу минимум 2 Мбит/с даже при полной загрузке канала, распределяет офисный трафик равномерно между сотрудниками через PCQ и ограничивает гостевой Wi-Fi до 10 Мбит/с download без каких-либо гарантий.
Дополнительные сценарии
Ограничение скорости по времени суток
В некоторых организациях требуется разная политика QoS в рабочее и нерабочее время. Например, днём каждый сотрудник получает 5 Мбит/с, а после 18:00 — весь канал делится динамически без ограничений на пользователя.
[admin@MikroTik] ># PCQ-тип для рабочего времени (фиксированный лимит) /queue/type/add name=pcq-work kind=pcq pcq-rate=5M \ pcq-classifier=dst-address # PCQ-тип для нерабочего времени (динамическое деление) /queue/type/add name=pcq-free kind=pcq pcq-rate=0 \ pcq-classifier=dst-address # Очередь (изначально с рабочим PCQ) /queue/simple/add name="Office-scheduled" target=192.168.88.0/24 \ max-limit=20M/100M queue=default/pcq-work # Скрипт переключения на свободный режим /system/script/add name=qos-free source={ /queue/simple/set [find name="Office-scheduled"] queue=default/pcq-free :log info "QoS: switched to free mode" } # Скрипт переключения на рабочий режим /system/script/add name=qos-work source={ /queue/simple/set [find name="Office-scheduled"] queue=default/pcq-work :log info "QoS: switched to work mode" } # Расписание /system/scheduler/add name=qos-to-work start-time=09:00:00 \ interval=1d on-event=qos-work /system/scheduler/add name=qos-to-free start-time=18:00:00 \ interval=1d on-event=qos-free
Ограничение скорости для конкретного приложения (торренты)
Торрент-трафик сложно идентифицировать, но можно ограничить по количеству соединений. Торрент-клиенты открывают сотни одновременных соединений, в отличие от браузера (обычно 6-15 соединений на вкладку).
[admin@MikroTik] ># Определяем хосты с большим количеством соединений # и добавляем их в address-list /ip/firewall/mangle/add chain=forward protocol=tcp \ connection-limit=100,32 src-address=192.168.88.0/24 \ action=mark-packet new-packet-mark=pkt-heavy passthrough=no \ comment="Mark heavy users (100+ connections)" # Ограничиваем скорость для heavy users через Queue Tree /queue/tree/add name="Heavy-Users" parent=global \ packet-mark=pkt-heavy max-limit=2M priority=8 \ comment="Throttle heavy connection users to 2Mbps"
Мониторинг загрузки канала через Torch
Инструмент Torch позволяет в реальном времени видеть, кто потребляет трафик:
[admin@MikroTik] ># Показать топ потребителей на WAN-интерфейсе /tool/torch interface=ether1 src-address=192.168.88.0/24 # Показать трафик конкретного пользователя /tool/torch interface=ether1 src-address=192.168.88.20 # Показать трафик по портам (найти торренты, видео и т.д.) /tool/torch interface=ether1 src-address=192.168.88.0/24 port=any
Torch — незаменимый инструмент при диагностике проблем с QoS. Если очередь не работает как ожидается, Torch покажет реальные потоки трафика и поможет понять, куда уходит полоса пропускания. Комбинируйте Torch с /queue/simple/print stats для полной картины: Torch показывает сырой трафик, а stats показывает, как очереди его обрабатывают.
# Ограничение для одного хоста: 10 Мбит/с загрузка, 5 Мбит/с отдача
/queue/simple/add name="PC-director" target=192.168.88.10/32 \
max-limit=5M/10M comment="Директор"
# Ограничение для подсети: 50 Мбит/с на всю подсеть
/queue/simple/add name="Accounting-VLAN" target=192.168.10.0/24 \
max-limit=10M/50M comment="Бухгалтерия VLAN 10"
# Ограничение с гарантированной полосой
/queue/simple/add name="VoIP-server" target=192.168.88.50/32 \
max-limit=2M/2M limit-at=1M/1M priority=1/1 \
comment="VoIP сервер — приоритетный"
# Обычная скорость 5 Мбит/с, burst до 10 Мбит/с
/queue/simple/add name="User-burst-example" target=192.168.88.20/32 \
max-limit=5M/5M \
burst-limit=10M/10M \
burst-threshold=4M/4M \
burst-time=16s/16s \
comment="С burst: обычно 5M, кратковременно до 10M"
# Шаг 1: Создаём PCQ-тип для download
/queue/type/add name=pcq-download-5M kind=pcq \
pcq-rate=5M pcq-classifier=dst-address
# Шаг 2: Создаём PCQ-тип для upload
/queue/type/add name=pcq-upload-2.5M kind=pcq \
pcq-rate=2500k pcq-classifier=src-address
# Шаг 3: Применяем через Simple Queue
/queue/simple/add name="Office-PCQ" target=192.168.88.0/24 \
max-limit=20M/100M \
queue=pcq-upload-2.5M/pcq-download-5M \
comment="Офис: 100M/20 = 5M каждому"
# Динамическое деление канала (без фиксированного лимита на пользователя)
/queue/type/add name=pcq-download-dynamic kind=pcq \
pcq-rate=0 pcq-classifier=dst-address pcq-total-limit=2000
/queue/type/add name=pcq-upload-dynamic kind=pcq \
pcq-rate=0 pcq-classifier=src-address pcq-total-limit=2000
/queue/simple/add name="Office-dynamic" target=192.168.88.0/24 \
max-limit=20M/100M \
queue=pcq-upload-dynamic/pcq-download-dynamic \
comment="Динамическое деление канала"
# === Шаг 1: Маркировка пакетов через Mangle ===
/ip/firewall/mangle
# Маркировка VoIP трафика (SIP + RTP)
add chain=forward protocol=udp dst-port=5060-5061 \
action=mark-packet new-packet-mark=voip passthrough=no \
comment="VoIP SIP"
add chain=forward protocol=udp dst-port=10000-20000 \
action=mark-packet new-packet-mark=voip passthrough=no \
comment="VoIP RTP"
# Маркировка по DSCP (если VoIP-оборудование ставит DSCP EF)
add chain=forward dscp=46 \
action=mark-packet new-packet-mark=voip passthrough=no \
comment="VoIP DSCP EF"
# Маркировка Web трафика (HTTP/HTTPS)
add chain=forward protocol=tcp dst-port=80,443 \
action=mark-packet new-packet-mark=web passthrough=no \
comment="Web HTTP/HTTPS"
# Маркировка DNS
add chain=forward protocol=udp dst-port=53 \
action=mark-packet new-packet-mark=web passthrough=no \
comment="DNS"
# Всё остальное — bulk
add chain=forward action=mark-packet new-packet-mark=bulk passthrough=no \
comment="Bulk — all other traffic"
# === Шаг 2: Queue Tree ===
/queue/tree
# Родительская очередь (потолок канала)
add name="Total-Download" parent=global max-limit=100M \
comment="Total download bandwidth"
# VoIP — приоритет 1
add name="VoIP-Download" parent=Total-Download \
packet-mark=voip priority=1 \
limit-at=10M max-limit=20M \
comment="VoIP: гарантия 10M, макс 20M"
# Web — приоритет 4
add name="Web-Download" parent=Total-Download \
packet-mark=web priority=4 \
limit-at=40M max-limit=80M \
comment="Web: гарантия 40M, макс 80M"
# Bulk — приоритет 8
add name="Bulk-Download" parent=Total-Download \
packet-mark=bulk priority=8 \
limit-at=0 max-limit=100M \
comment="Bulk: без гарантии, до 100M если канал свободен"
# Просмотр DSCP-меток в проходящем трафике
/tool/sniffer/quick port=ether1 ip-protocol=udp
# Установка DSCP EF для VoIP трафика (если оборудование не ставит)
/ip/firewall/mangle/add chain=forward protocol=udp dst-port=5060-5061 \
action=change-dscp new-dscp=46 passthrough=yes \
comment="Set DSCP EF for SIP"
/ip/firewall/mangle/add chain=forward protocol=udp dst-port=10000-20000 \
action=change-dscp new-dscp=46 passthrough=yes \
comment="Set DSCP EF for RTP"
/queue/simple
# Родительская очередь — весь канал
add name="Total" target=192.168.0.0/16 max-limit=20M/100M
# Отдел продаж — гарантия 5M, максимум 50M
add name="Sales" target=192.168.10.0/24 parent=Total \
limit-at=2M/5M max-limit=10M/50M
# Бухгалтерия — гарантия 3M, максимум 30M
add name="Accounting" target=192.168.20.0/24 parent=Total \
limit-at=1M/3M max-limit=5M/30M
# Гостевой Wi-Fi — без гарантий, максимум 10M
add name="Guest-WiFi" target=192.168.30.0/24 parent=Total \
limit-at=0/0 max-limit=2M/10M
# Просмотр всех очередей с текущей статистикой
/queue/simple/print stats
# Детальная статистика конкретной очереди
/queue/simple/print stats where name="Office-PCQ"
# Мониторинг в реальном времени (обновление каждые 2 секунды)
/queue/simple/monitor Office-PCQ interval=2
# Статистика Queue Tree
/queue/tree/print stats
# Мониторинг конкретной очереди
/queue/tree/monitor VoIP-Download interval=2
# Просмотр типов очередей
/queue/type/print
# Детальная информация о PCQ
/queue/type/print detail where name~"pcq"
# Встроенный bandwidth test (к другому MikroTik)
/tool/bandwidth-test address=192.168.88.1 protocol=tcp direction=both
# Проверка, попадает ли трафик в очередь (должен расти счётчик bytes)
/queue/simple/print stats where name="PC-director"
# Убедитесь, что target указан правильно
/queue/simple/print where name="My-Queue"
# Проверьте, что трафик от пользователя реально проходит через роутер
/tool/torch interface=ether2 src-address=192.168.88.20
# Проверка счётчиков Mangle
/ip/firewall/mangle/print stats where chain=forward
# Проверить, нет ли конфликтующих очередей
/queue/simple/print
/queue/tree/print
# Рекомендуемое значение: 90-95% от тарифа
/queue/simple/add name="Total" target=192.168.88.0/24 \
max-limit=19M/95M comment="Тариф 100M, запас на overhead"
# Неправильно — upload не ограничен (0 = без лимита)
/queue/simple/add name="Bad" target=192.168.88.0/24 max-limit=0/100M
# Правильно — ограничены оба направления
/queue/simple/add name="Good" target=192.168.88.0/24 max-limit=20M/100M
# === Тариф: 100 Мбит/с download, 20 Мбит/с upload ===
# === 20 сотрудников + VoIP-сервер + гостевой Wi-Fi ===
# Шаг 1: PCQ-типы для равномерного распределения
/queue/type/add name=pcq-down kind=pcq pcq-rate=5M \
pcq-classifier=dst-address
/queue/type/add name=pcq-up kind=pcq pcq-rate=2M \
pcq-classifier=src-address
# Шаг 2: Mangle для маркировки VoIP
/ip/firewall/mangle
add chain=forward protocol=udp dst-port=5060-5061 \
action=mark-packet new-packet-mark=pkt-voip passthrough=no
add chain=forward protocol=udp dst-port=10000-20000 dscp=46 \
action=mark-packet new-packet-mark=pkt-voip passthrough=no
add chain=forward src-address=192.168.88.0/24 \
action=mark-packet new-packet-mark=pkt-office passthrough=no
add chain=forward src-address=192.168.30.0/24 \
action=mark-packet new-packet-mark=pkt-guest passthrough=no
# Шаг 3: Simple Queue — иерархия
/queue/simple
# Родитель — весь канал
add name="Total" target=0.0.0.0/0 max-limit=19M/95M
# VoIP — приоритет 1, гарантия 2M
add name="VoIP" target=192.168.88.50/32 parent=Total \
priority=1/1 limit-at=2M/2M max-limit=5M/5M \
comment="VoIP сервер"
# Офис — PCQ, каждому по 5M download
add name="Office" target=192.168.88.0/24 parent=Total \
limit-at=10M/50M max-limit=18M/90M \
queue=pcq-up/pcq-down \
comment="Офис 20 человек"
# Гостевой Wi-Fi — без гарантий
add name="Guest" target=192.168.30.0/24 parent=Total \
limit-at=0/0 max-limit=2M/10M \
comment="Гостевой Wi-Fi"
# Проверка
/queue/simple/print stats
# PCQ-тип для рабочего времени (фиксированный лимит)
/queue/type/add name=pcq-work kind=pcq pcq-rate=5M \
pcq-classifier=dst-address
# PCQ-тип для нерабочего времени (динамическое деление)
/queue/type/add name=pcq-free kind=pcq pcq-rate=0 \
pcq-classifier=dst-address
# Очередь (изначально с рабочим PCQ)
/queue/simple/add name="Office-scheduled" target=192.168.88.0/24 \
max-limit=20M/100M queue=default/pcq-work
# Скрипт переключения на свободный режим
/system/script/add name=qos-free source={
/queue/simple/set [find name="Office-scheduled"] queue=default/pcq-free
:log info "QoS: switched to free mode"
}
# Скрипт переключения на рабочий режим
/system/script/add name=qos-work source={
/queue/simple/set [find name="Office-scheduled"] queue=default/pcq-work
:log info "QoS: switched to work mode"
}
# Расписание
/system/scheduler/add name=qos-to-work start-time=09:00:00 \
interval=1d on-event=qos-work
/system/scheduler/add name=qos-to-free start-time=18:00:00 \
interval=1d on-event=qos-free
# Определяем хосты с большим количеством соединений
# и добавляем их в address-list
/ip/firewall/mangle/add chain=forward protocol=tcp \
connection-limit=100,32 src-address=192.168.88.0/24 \
action=mark-packet new-packet-mark=pkt-heavy passthrough=no \
comment="Mark heavy users (100+ connections)"
# Ограничиваем скорость для heavy users через Queue Tree
/queue/tree/add name="Heavy-Users" parent=global \
packet-mark=pkt-heavy max-limit=2M priority=8 \
comment="Throttle heavy connection users to 2Mbps"
# Показать топ потребителей на WAN-интерфейсе
/tool/torch interface=ether1 src-address=192.168.88.0/24
# Показать трафик конкретного пользователя
/tool/torch interface=ether1 src-address=192.168.88.20
# Показать трафик по портам (найти торренты, видео и т.д.)
/tool/torch interface=ether1 src-address=192.168.88.0/24 port=any