QoS Linux
HTB
HTB is an alternative to CBQ (lower CPU usage & better help)Here is a script to optimise one end of an IAX over SDSL link:
- !/bin/sh
TCOP="add"
IPTOP="-A"
if [ "$1" == "stop" ]; then
echo "Stopping..."
TCOP="del"
IPTOP="-D"
fi
- +---------+
- | root 1: |
- +---------+
- |
- +----------------------------+
- | class 1:1 |
- +----------------------------+
- | | |
- +----+ +----+ +----+
- |1:10| |1:20| |1:30|
- +----+ +----+ +----+
- |
- +--------+--------+
- | | |
- +-----+ +-----+ +-----+
- |1:100| |1:101| |1:102|
- +-----+ +-----+ +-----+
- 1:10 is the class for VOIP traffic, pfifo qdisc
- 1:20 is for bulk traffic (htb, leaves use sfq)
- 1:30 is the class that interactive and TCP SYN/ACK traffic (sfq qdisc)
- 1:20 is further split up into different kinds of bulk traffic: web, mail and
- everything else. 1:100-102 fight amongst themselves for their slice of excess
- bandwidth, and in turn 1:10,20 and 30 then fight for any excess above their
- minimum rates.
- which interface to throw all this on (DSL)
- ceil is 75% of max rate (768kbps)
- rate is 65% of max rate
- we don't let it go to 100% because we don't want the DSL modem (Pairgain MegaBit Modem 300S)
- to have a ton of packets in their buffers. *we* want to do the buffering.
CEIL=640
- RATE=450
- CEIL=500
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: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 classid 1:10
tc filter ${TCOP} dev ${IF} parent 1:0 protocol ip prio 4 handle 4 fw classid 1:100
- IAX2 prio 0.
iptables -t mangle ${IPTOP} PREROUTING -p udp -m udp --dport 4569 -j RETURN
- everything else goes into lowest priority (best effort).
iptables -t mangle ${IPTOP} OUTPUT -j MARK --set-mark 0x4
NB The other end of this link is controlled by a Cisco - see QoS Cisco IOS
See Also
- QoS Linux with HFSC
- Asterisk QoS
- Traffic Shaping for VOIP With Linux and FWBuilder
- VoIP Spear QoS monitoring — for 24x7x365 monitoring of your Internet's QoS
- Linus ADSL Bandwidth management HOWTO
- http://lartc.org/: Linux Advanced Routing and traffic control
- QoS And Traffic Shaping For VoIP Users Using iproute2 And Asterisk
Go back to QoS: Quality of Service in VOIP Networks
Created by: oej, Last modification: Wed 13 of Apr, 2011 (02:30 UTC) by jaredwatkins
Featured -
Search:

Page Changes














