« -: Aug 31, 2008, 22:23 »
здравейте, искам да огранича скоростта на торентите. интернет скоростта ми е 10МБит/с, pppoe, и ограничението което се опитвам да направя е на вътрешният интерфейс, като целият трафик без торенти искам да ми е 96Мбит/с, а торентите 4Мбит/с. попаднах на предишни статии тук и от други места и скалъпих един скрипт, но не мога да си намеря грешката и защо не се получава, ако можете да ми помогнете да намеря къде греша. идеята ми е на три таблици, като последните 2 са за торенти и разпределям трафика на входящ и изходящ, да са независими и да не могат да пипат от другите траблици.
това ми е скрипта:
dev=eth0
RATE1=96mbit
RATE2=4mbit
PRIO1="prio 5"
PRIO2="prio 0"
OPTION="allot 1514 maxburst 20 avpkt 1000"
OPTION2=bounded
policy=cbq
case $policy in
cbq)
tc qdisc add dev $dev root handle 1: cbq bandwidth 100Mbit avpkt 1000
tc class add dev $dev parent 1: classid 1:1 cbq bandwidth 100Mbit rate 100Mbit \
allot 1514 weight 100Mbit prio 8 maxburst 20 avpkt 1000
#all trafic
tc class add dev $dev parent 1:1 classid 1:10 cbq bandwidth 100Mbit \
rate $RATE1 $OPTION $PRIO1 $OPTION2
#torrents up
tc class add dev $dev parent 1:1 classid 1:11 cbq bandwidth 100Mbit \
rate $RATE2 $OPTION $PRIO2 $OPTION2
#torrents down
tc class add dev $dev parent 1:1 classid 1:12 cbq bandwidth 100Mbit \
rate $RATE2 $OPTION $PRIO2 $OPTION2
;;
htb)
tc qdisc add dev $dev root handle 1: htb default 10
tc class add dev $dev parent 1: classid 1:1 htb rate 100Mbit
#all trafic
tc class add dev $dev parent 1:1 classid 1:10 htb rate $RATE1 ceil 100Mbit
#torrents up
tc class add dev $dev parent 1:1 classid 1:11 htb rate $RATE2 bounded
#torrents down
tc class add dev $dev parent 1:1 classid 1:12 htb rate $RATE2 bounded
;;
esac
tc qdisc add dev $dev parent 1:10 sfq quantum 1514b perturb 15
tc qdisc add dev $dev parent 1:11 sfq quantum 1514b perturb 15
tc qdisc add dev $dev parent 1:12 sfq quantum 1514b perturb 15
tc filter add dev $dev protocol ip parent 1:0 prio 5 handle 1 fw flowid 1:10
tc filter add dev $dev protocol ip parent 1:0 prio 0 handle 2 fw flowid 1:11
tc filter add dev $dev protocol ip parent 1:0 prio 0 handle 3 fw flowid 1:12
това са ми правилата в iptables за mangle:
qos_unpriv=1024:65535
for i in tcp udp; do
$ipt -t mangle -A PREROUTING -i eth0 -p $i --dport ${qos_unpriv} -j MARK --set-mark 2
$ipt -t mangle -A POSTROUTING -o eth0 -p $i --sport ${qos_unpriv} -j MARK --set-mark 3
$ipt -t mangle -A PREROUTING -i eth0 -p $i --dport 1:1024 -j MARK --set-mark 1
$ipt -t mangle -A POSTROUTING -o eth0 -p $i --sport 1:1024 -j MARK --set-mark 1
done
благодаря предварително