Проблема заключается в том, что при больших скоростях линии, шейпинг становится не точным :(
Например, при 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