пытаюсь построить шейпер для старгейзера
застрял на вопросе ограничения входящего к клиенту трафика
должен сказать, что внешний и внутренний интерфейсы у меня выполнены в виде vlan'ов (ext=vlan144 , int=vlan14)которые заходят через основную сетевуху eth0.
добавил еще и сетевуху eth1 в качестве тестового внутреннего интерфейса.
примерно вот такой скрипт:
#!/bin/sh
INTIF=XXX # vlan14 или eth1
IP=YY.YY.YY.YY
mark=100
SPD=256
SPDC=256
#зачищаю старое
/sbin/tc qdisc del dev $INTIF root
# создаю корневую дисциплину и добавляю в нее класс
/sbin/tc qdisc add dev $INTIF root handle 1: htb
/sbin/tc class add dev $INTIF parent 1: classid 1:1 htb rate 1000mbit ceil 1000mbit burst 200k
#помечаю пакеты конкретного пользователя
/sbin/iptables -t mangle -A FORWARD -d $IP -j MARK --set-mark $mark
#создаю класс пользователя и отфильтровываю в него помеченные пакеты
/sbin/tc class add dev $INTIF parent 1:1 classid 1:$mark htb rate ${SPD}kbit ceil ${SPDC}kbit burst 10k
/sbin/tc filter add dev $INTIF parent 1: protocol ip prio 5 handle $mark fw classid 1:$mark
если подключить пользователя через eth1 то данный скрипт абсолютно ровно ограничивает скорость.
если же его подключить к vlan'у то скорость режется, но очень не ровно, а какой то пилой, причем среднее значение около 160килобит/сек , хотя ожидается 256.
может ли tc некорректно работать с виланами?
как это пофиксить?
может целесообразно использовать ifb? даст ли это какой то результат?