Потихоньку настраиваю QoS на роутере. Более менее разобрался в принципах остались нюансы. Скрипт такой:
int="br0"
DL=10Mbit
tc qdisc del dev $int root > /dev/null 2>&1
tc qdisc add dev $int root handle 1: htb default 30
tc class add dev $int parent 1: classid 1:1 htb rate $DL ceil $DL
tc class add dev $int parent 1:1 classid 1:10 htb rate 5kbit ceil $DL prio 2
tc class add dev $int parent 1:1 classid 1:20 htb rate 5kbit ceil $DL prio 3
tc class add dev $int parent 1:1 classid 1:30 htb rate 3Mbit ceil $DL prio 4
tc qdisc add dev $int parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $int parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev $int parent 1:30 handle 30: sfq perturb 10
###HIGH PRIO
#ICMP
tc filter add dev $int parent 1: protocol ip prio 1 u32 match ip protocol 1 0xff flowid 1:10
#ACK
tc filter add dev $int parent 1: protocol ip prio 1 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:10
#DNS
tc filter add dev $int parent 1: protocol ip prio 1 u32 match ip protocol 17 0xff match ip sport 53 0xffff flowid 1:10
#VOIP
tc filter add dev $int parent 1: protocol ip prio 2 u32 match ip tos 0x68 0xff match ip protocol 11 0xff flowid 1:10
tc filter add dev $int parent 1: protocol ip prio 2 u32 match ip tos 0xb8 0xff match ip protocol 11 0xff flowid 1:10
#TOS
tc filter add dev $int parent 1: protocol ip prio 2 u32 match ip tos 0x10 0xff flowid 1:10
#IPTV
tc filter add dev $int parent 1: protocol ip prio 2 u32 match ip protocol 17 0xff match ip dst 224.0.0.0/3 flowid 1:10
#SSH+TELNET
tc filter add dev $int parent 1: protocol ip prio 2 u32 match ip protocol 6 0xff match ip sport 22 0xfffe flowid 1:10
#RDP ????
#SKYPE ????
Вопросы остались как выявить skype трафик, чтобы добавить его в приоритетный список? Еще есть RDP, вроде все просто порт 3389, но на многих серверах он настроен на других портах, может как-то можно по содержимому пакетов через u32 match выявить? Подскажите.