Грамотная настройка VOIP Queues QOS

Обсуждение ПО и его настройки
Ответить
kzua
Сообщения: 4
Зарегистрирован: 25 май 2020, 09:44

Добрый день!

В Интернете так и не нашел однозначной настройки Queues для VOIP QOS.
Пока такие простые условия:
1. Есть внешний IP VOIP сервера провайдера - Ростелеком.
2. Есть внутренний сервер Asterisk 192.168.0.241.
Между ними Mikrotik.
На Mikrotik включен fasttrack:

Код: Выделить всё

add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related
add action=accept chain=forward comment="defconf: accept established,related, untracked" connection-state=established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
SIP ALG по рекомендациям отключен:

Код: Выделить всё

/ip firewall service-port
set sip disabled=yes
На https://wiki.mikrotik.com/wiki/Manual:IP/Fasttrack указано:
"Note that not all packets in a connection can be FastTracked, so it is likely to see some packets going through slow path even though connection is marked for FastTrack. This is the reason why fasttrack-connection is usually followed by identical action=accept rule.
FastTracked packets bypass firewall, connection tracking, simple queues, queue tree with parent=global, ip traffic-flow(restriction removed in 6.33), IP accounting, IPSec, hotspot universal client, VRF assignment, so it is up to administrator to make sure FastTrack does not interfere with other configuration;"

Из изложенного Выше понятно, что не все очереди работают при включенном fasttrack.

По рекомендованным правилам маркирую пакеты и устанавливаю dscp.

Код: Выделить всё

/ip firewall mangle
add action=mark-connection chain=forward dst-address=192.168.0.241 new-connection-mark=sipconnection passthrough=yes port=5060 protocol=tcp
add action=mark-connection chain=forward new-connection-mark=sipconnection passthrough=yes port=5060 protocol=tcp src-address=192.168.0.241
add action=mark-connection chain=forward dst-address=192.168.0.241 new-connection-mark=sipconnection passthrough=yes port=5060 protocol=udp
add action=mark-connection chain=forward new-connection-mark=sipconnection passthrough=yes port=5060 protocol=udp src-address=192.168.0.241
add action=mark-packet chain=forward connection-mark=sipconnection new-packet-mark=SIP passthrough=yes
add action=mark-connection chain=forward dst-address=192.168.0.241 new-connection-mark=rtpconnection passthrough=yes port=10000-20000 protocol=udp
add action=mark-connection chain=forward new-connection-mark=rtpconnection passthrough=yes port=10000-20000 protocol=udp src-address=192.168.0.241
add action=mark-packet chain=forward connection-mark=rtpconnection new-packet-mark=RTP passthrough=yes
add action=change-dscp chain=postrouting log-prefix=change-dscp new-dscp=46 packet-mark=RTP passthrough=yes
Будет ли 100% маркировка VOIP при включенном fasttrack? Как это доказательно проверить?
В разных инструкциях у подобных правил кто-то ставит passthrough=no, кто-то passthrough=yes. На что это влияет?

В лог правила: add action=change-dscp показывает:

Код: Выделить всё

09:25:09 firewall,info change-dscp postrouting: in:(unknown 0) out:bridge1, src-mac 00:18:82:30:01:14, proto TCP (ACK), 192.168.5.7:37777->192.168.0.223:52529, len 1420 
09:25:09 firewall,info change-dscp postrouting: in:(unknown 0) out:bridge1, src-mac 00:18:82:30:01:14, proto TCP (ACK), 192.168.5.7:37777->192.168.0.223:52529, len 1420 
09:25:09 firewall,info change-dscp postrouting: in:(unknown 0) out:bridge1, src-mac 00:18:82:30:01:14, proto TCP (ACK), 192.168.5.7:37777->192.168.0.223:52529, len 1420 
09:25:09 firewall,info change-dscp postrouting: in:(unknown 0) out:bridge1, src-mac 00:18:82:30:01:14, proto TCP (ACK,PSH), 192.168.5.7:37777->192.168.0.223:52505, len 97 
09:25:09 firewall,info change-dscp postrouting: in:(unknown 0) out:pppoe-out1, src-mac 00:15:5d:00:fe:15, proto UDP, 192.168.0.241:18736->192.168.4.14:12312, len 200 
09:25:09 firewall,info change-dscp postrouting: in:(unknown 0) out:pppoe-out1, src-mac 34:97:f6:92:6f:f2, proto TCP (ACK), 192.168.0.223:52505->192.168.5.7:37777, len 40
Почему in:(unknown 0)? Так должно быть?

Далее какие очереди настраивать при включенном fasttrack?
Я так понимаю, нужно идти Queues>Queue Tree
Queue type = default?
Предварительный результат такой:

Код: Выделить всё

/queue tree
add limit-at=50M max-limit=50M name=download parent=bridge1 queue=default
add limit-at=10M max-limit=10M name=download_pri_1 packet-mark=RTP parent=download priority=1 queue=default
add limit-at=2M max-limit=2M name=download_pri_2 packet-mark=SIP parent=download priority=2 queue=default
add max-limit=38M name=download_pri_8 packet-mark=no-mark parent=download
add name=upload parent=pppoe-out1 queue=default
add limit-at=10M max-limit=10M name=upload_pri_1 packet-mark=RTP parent=upload priority=1 queue=default
add limit-at=2M max-limit=2M name=upload_pri_2 packet-mark=SIP parent=upload priority=2 queue=default
add max-limit=38M name=upload_pri_8 packet-mark=no-mark parent=upload queue=default
Как доказать, что это в самом деле работает? И действительно для RTP входящего и исходящего 10M гарантировано?

И вопрос по настройке firewall для VOIP.
В Firwall Connections я вижу только соединения вида
Src Address: 192.168.0.241 Dst Address: РостелекомIP для SIP и RTP.
Почему нет соединений Src Address: РостелекомIP Dst Address: 192.168.0.241 или Мой внешний IP?
Должно же быть два RTP потока входящий и исходящий? Nat Traversal включился?


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

Из изложенного Выше понятно, что не все очереди работают при включенном fasttrack.
Из изложенного выше понятно, что при включенном fasttrack у вас никакие очереди работать не будут.

passthrough определяет заканчивать ли выполнение цепочки при срабатывании правила или продолжать отрабатывать дальше.


Telegram: @thexvo
Ответить