Есть роутер на котором стоит nat ОС Linux (Cent-OS) kernel - 2.6.9-22
Хочу сделать приоритизацию VOIP трафика.
Вот так строю очереди. 1:10 для VOIP трафика 1:20 для всего остального ну и 1:30 для icmp
#!/bin/shTCOP="add"
IF=eth0
RATE=150
CEIL=180
tc qdisc ${TCOP} dev ${IF} root handle 1: htb default 102
tc class ${TCOP} dev ${IF} parent 1: classid 1:1 htb rate ${RATE}kbit ceil ${CEIL}kbit
tc class ${TCOP} dev ${IF} parent 1:1 classid 1:10 htb rate 64kbit ceil ${RATE}kbit prio 1
tc class ${TCOP} dev ${IF} parent 1:1 classid 1:20 htb rate 64kbit ceil ${RATE}kbit prio 2
tc class ${TCOP} dev ${IF} parent 1:1 classid 1:30 htb rate 64kbit ceil ${RATE}kbit prio 0
tc class ${TCOP} dev ${IF} parent 1:20 classid 1:100 htb rate ${RATE}kbit
tc class ${TCOP} dev ${IF} parent 1:20 classid 1:101 htb rate ${RATE}kbit
tc class ${TCOP} dev ${IF} parent 1:20 classid 1:102 htb rate ${RATE}kbit
tc qdisc ${TCOP} dev ${IF} parent 1:10 handle 10: pfifo
tc qdisc ${TCOP} dev ${IF} parent 1:100 handle 100: sfq perturb 10
tc qdisc ${TCOP} dev ${IF} parent 1:101 handle 101: sfq perturb 10
tc qdisc ${TCOP} dev ${IF} parent 1:102 handle 102: sfq perturb 10
tc filter ${TCOP} dev ${IF} parent 1:0 protocol ip prio 1 handle 1 fw flowid 1:10
tc filter ${TCOP} dev ${IF} parent 1:0 protocol ip prio 4 handle 4 fw flowid 1:100
tc filter ${TCOP} dev ${IF} parent 1:0 protocol ip prio 3 handle 3 fw flowid 1:30
# icmp
iptables -t mangle ${IPTOP} PREROUTING -p icmp -j MARK --set-mark 0x3
iptables -t mangle ${IPTOP} PREROUTING -p icmp -j RETURN
#IAX2
iptables -t mangle ${IPTOP} PREROUTING -p udp -m udp --dport 4569 -j MARK --set-mark 0x1
iptables -t mangle ${IPTOP} PREROUTING -p udp -m udp --dport 4569 -j RETURN
iptables -t mangle ${IPTOP} PREROUTING -p tcp -m tcp --dport 4569 -j MARK --set-mark 0x1
iptables -t mangle ${IPTOP} PREROUTING -p tcp -m tcp --dport 4569 -j RETURN
# everything else goes into lowest priority
iptables -t mangle ${IPTOP} PREROUTING -j MARK --set-mark 0x4
iptables -t mangle ${IPTOP} OUTPUT -j MARK --set-mark 0x4
Все работает , пакеты вроде идут куда надо. Но временами вылетают сообщения
HTB quantum of class is too big. Consider r2q change
HTB HTB quantum of class is too small. Consider r2q change
Но самый прикол в том , что в определенный момент(очень вероятно когда количество именно voip трафика увиличивается ) то он вобще перестает проходить. Т.е. удаленный asterisk сервер не может установить соеденение по IAX2 с сервером в офисе , хотя в обратном направление все нормально. Инет при этом тоже работает нормально.
В чем может быть проблема и как ее исправить ?