Skip to main content

Приоритизация VoIP-трафика на Mikrotik

Документация для внутреннего использования: как настроить приоритет трафика к SIP-серверу (FreePBX) через MikroTik RouterOS (CHR).
Настраивается приоритет по IP 192.168.1.10 условно айпи телефоний и на порту 5060/UDP.

Цель: Обеспечить стабильное качество голосовой связи даже при общем перегрузе сети.


1: Mangle — пометка соединений и пакетов

Открываем терминал MikroTik (Winbox, WebFig или CLI) и добавляем:

/ip firewall mangle
add chain=forward protocol=udp dst-address=192.168.1.10 dst-port=5060 \
action=mark-connection new-connection-mark=voip_conn passthrough=yes \
comment="Mark VoIP connection to FreePBX"

add chain=forward connection-mark=voip_conn \
action=mark-packet new-packet-mark=voip_pkt passthrough=yes \
comment="Mark VoIP packets"

2: Queue Tree — приоритизация VoIP трафика

Укажи актуальный WAN-интерфейс вместо ether1, если он называется иначе (например, pppoe-out1 или bridge-wan).

/queue tree
add name="VoIP-Priority" parent=ether1 packet-mark=voip_pkt \
priority=1 max-limit=100M comment="Prioritize VoIP to FreePBX"

Что делает каждая часть

КомпонентОписание
Mangle (conn)Помечает все соединения к 192.168.1.10:5060/UDP как voip_conn
Mangle (pkt)Помечает пакеты из этих соединений как voip_pkt
Queue TreeСоздаёт очередь с приоритетом 1 и лимитом в 100 Мбит/с для voip_pkt
Priority = 1Самый высокий пользовательский приоритет (0 зарезервирован системой)
Max-limitОграничивает канал VoIP, если нужно избежать перегруза общего канала

Проверка после настройки

Проверка Torch

/tool torch interface=ether1 port=5060

Проверяем, идёт ли трафик на нужный порт.


Активные соединения

/ip firewall connection print where dst-address~"192.168.1.10" and protocol=udp

Должны быть активные соединения с пометкой connection-mark=voip_conn.


Статистика очереди

/queue tree print stats

Проверь, что bytes > 0, packets > 0, и dropped = 0.


Дополнительные улучшения

  • Если FreePBX использует дополнительные порты (например, RTP 10000–20000) — нужно:

    • Создать отдельное правило в mangle
    • Или использовать address-list, если у тебя несколько IP адресов
  • Избегай использования layer7, если не критично — они грузят CPU

  • Отключи или настрой fasttrack, иначе mangle и queue могут не срабатывать