Проблема заключается в том, что при больших скоростях линии, шейпинг становится не точным :( Например, при RATE=1Mbit реальная скорость около 400кбайт (почти 4 мегабита) А при RATE=512Kbit всё правильно - честных 64 кбайта. Чем выше RATE - тем меньше точность шейпинга (в сторону завышения реальной скорости).
Вот моя конфигурация htb.init:
/etc/sysconfig/htb/eth1 :
DEFAULT=30 R2Q=66
/etc/sysconfig/htb/eth1-2:10.uaix :
# class containing UA-IX bandwidth RATE=1Mbit CEIL=1Mbit BURST=15k LEAF=sfq MARK=1
/etc/sysconfig/htb/eth1-2:30.default : # default class containing total bandwidth RATE=512Kbit #CEIL=512Kbit BURST=15k LEAF=sfq
Да, кстати, сгенеренный скрипт выглядит вот так:
/sbin/tc qdisc del dev eth1 root /sbin/tc qdisc add dev eth1 root handle 1 htb default 30 r2q 66
/sbin/tc class add dev eth1 parent 1: classid 1:2 htb rate 100Mbit ceil 100Mbit burst 15k
/sbin/tc class add dev eth1 parent 1:2 classid 1:10 htb rate 2Mbit burst 15k /sbin/tc qdisc add dev eth1 parent 1:10 handle 10 sfq perturb 10 /sbin/tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 1 fw classid 1:10
/sbin/tc class add dev eth1 parent 1:2 classid 1:20 htb rate 90Mbit burst 15k /sbin/tc qdisc add dev eth1 parent 1:20 handle 20 sfq perturb 10 /sbin/tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 2 fw classid 1:20
/sbin/tc class add dev eth1 parent 1:2 classid 1:30 htb rate 384Kbit burst 15k /sbin/tc qdisc add dev eth1 parent 1:30 handle 30 sfq perturb 10