Você pode configurar a formatação com regras assim:
tc qdisc del dev eth0 root
tc qdisc add dev eth0 root handle 1: htb default 1 r2q 160
tc class add dev eth0 parent 1: classid 1:1 htb rate 2000kbit burst 1k
tc class add dev eth0 parent 1:1 classid 1:2 htb rate 2000kbit ceil 2000kbit burst 1k
tc class add dev eth0 parent 1:1 classid 1:3 htb rate 1200kbit ceil 1200kbit burst 1k
tc qdisc add dev eth0 parent 1:2 handle 2: sfq perturb 10
tc qdisc add dev eth0 parent 1:3 handle 3: sfq perturb 10
Então você pode usar o iptables para classificar os pacotes nessas classes:
iptables -t mangle -A POSTROUTING -o eth0 --set-class 1:2
iptables -t mangle -A POSTROUTING -o eth0 -m tcp -p tcp --dport 80 -j CLASSIFY --set-class 1:3
Observe que essa é a última regra de correspondência que define a classe. Ela não entra em curto quando uma regra corresponde. Demorei um pouco para gritar isso.