Aqui, eu uso assim:
#Remove regras de HTB
tc qdisc del dev eth0 root
tc qdisc del dev eth0 ingress
#Classes por Ip's
tc qdisc add dev eth0 root handle 1: htb default 100
tc class add dev eth0 parent 1: classid 1:1 htb rate 1264kbit
tc qdisc add dev eth0 handle ffff: ingress
tc class add dev eth0 parent 1:1 classid 1:19 htb rate 64kbit ceil 300kbit
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 64kbit ceil 300kbit
tc class add dev eth0 parent 1:1 classid 1:21 htb rate 128kbit ceil 300kbit
tc class add dev eth0 parent 1:1 classid 1:22 htb rate 64kbit ceil 300kbit
tc class add dev eth0 parent 1:1 classid 1:23 htb rate 64kbit ceil 300kbit
tc class add dev eth0 parent 1:1 classid 1:24 htb rate 64kbit ceil 300kbit
tc class add dev eth0 parent 1:1 classid 1:100 htb rate 950kbit ceil 950kbit
#SFQ
tc qdisc add dev eth0 parent 1:19 handle 19: sfq perturb 5
tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 5
tc qdisc add dev eth0 parent 1:21 handle 21: sfq perturb 5
tc qdisc add dev eth0 parent 1:22 handle 22: sfq perturb 5
tc qdisc add dev eth0 parent 1:23 handle 23: sfq perturb 5
tc qdisc add dev eth0 parent 1:24 handle 24: sfq perturb 5
#Filtros
tc filter add dev eth0 protocol ip parent 1:0 prio 4 u32 match ip dst 10.0.0.19 flowid 1:21
tc filter add dev eth0 protocol ip parent 1:0 prio 4 u32 match ip dst 10.0.0.20 flowid 1:21
tc filter add dev eth0 protocol ip parent 1:0 prio 4 u32 match ip dst 10.0.0.21 flowid 1:21
tc filter add dev eth0 protocol ip parent 1:0 prio 5 u32 match ip dst 10.0.0.22 flowid 1:22
tc filter add dev eth0 protocol ip parent 1:0 prio 5 u32 match ip dst 10.0.0.23 flowid 1:23
tc filter add dev eth0 protocol ip parent 1:0 prio 5 u32 match ip dst 10.0.0.24 flowid 1:24
#Controle dos UpLoads
tc filter add dev eth0 protocol ip parent ffff:0 prio 1 u32 match ip src 10.0.0.19 police rate 32kbit burst 64kbit drop flowid ffff:1
tc filter add dev eth0 protocol ip parent ffff:0 prio 1 u32 match ip src 10.0.0.20 police rate 32kbit burst 64kbit drop flowid ffff:1
tc filter add dev eth0 protocol ip parent ffff:0 prio 1 u32 match ip src 10.0.0.21 police rate 32kbit burst 64kbit drop flowid ffff:1
tc filter add dev eth0 protocol ip parent ffff:0 prio 1 u32 match ip src 10.0.0.22 police rate 32kbit burst 64kbit drop flowid ffff:1
tc filter add dev eth0 protocol ip parent ffff:0 prio 1 u32 match ip src 10.0.0.23 police rate 32kbit burst 64kbit drop flowid ffff:1
tc filter add dev eth0 protocol ip parent ffff:0 prio 1 u32 match ip src 10.0.0.24 police rate 32kbit burst 64kbit drop flowid ffff:1
Considerando que eth0 é a saída para meus clientes. Tenho 3 arquivos com ceil 128, 200 e 300, salvos e com permição para execução, eles estão agendados no cron do meu servidor.
Temos as velocidades mínimas garantidas de 64k que é o que está contrato, e o ceil que empresta banda quando está folgado o link, é claro que esses 300k só são liberados de madrugada, já que durante o dia esse balanceamento não deu muito certo por causa dos p2p. Ai nesse caso, uso outro arquivo com ceil de 128 e 200, que são iniciados em horários distintos pelo cron.
Basta salvar o arquivo modificando para seus Ip´s e carregá-lo com "sh", ou pode incluir essas linhas no rc.local para carregar na inicialização. Aqui eu uso assim e tem funcionado bem. Hoje a tarde pesquisei como implementar o burst, achei a documentação do HTB, achei meio chatinho, mais vou me empenhar em fazer, pois a noite o cron aqui starta os comandos com ceil de 128k, ai eu queria usar um busrt de 5 segundos a 200k.
Se alguém souber fazer ai eu fico grato pela dica!