Приоритизация 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могут не срабатывать