« -: Jan 15, 2005, 00:52 »
попаднах на един малък проблем докато писах един НТВ скрипт. Ето го скрипта
Примерен код |
#!/bin/sh
dev=eth0#local interface t=3#tozi skript
#------Trafikyt se zadava v kilobitove!!! low_rate3=96 high_rate3=768 fen_rate3=2048
pri1="tc filter add dev $dev protocol ip parent 1:0 prio 1 u32" pri2="tc filter add dev $dev protocol ip parent 1:0 prio 2 u32" pri3="tc filter add dev $dev protocol ip parent 1:0 prio 3 u32"
tc qdisc add dev $dev root handle 1: htb default 30 tc class add dev $dev parent 1: classid 1:$t htb rate 100mbit burst 1k
i=0
for host in `cat ./hosts$t`; do tc class add dev $dev parent 1:$t classid 1:${t}1$((++i)) htb rate $((low_rate3/10))kbit ceil $((low_rate3))kbit burst 1k prio 10 tc class add dev $dev parent 1:$t classid 1:${t}2$i htb rate $((high_rate3/10))kbit ceil $(($high_rate3))kbit burst 1k prio 10 tc class add dev $dev parent 1:$t classid 1:${t}3$i htb rate $((fen_rate3/10))kbit ceil $(($fen_rate3))kbit burst 1k prio 10 tc qdisc add dev $dev parent 1:${t}1$i handle ${i}10$t: sfq perturb 10 tc qdisc add dev $dev parent 1:${t}2$i handle ${i}20$t: sfq perturb 10 tc qdisc add dev $dev parent 1:${t}3$i handle ${i}30$t: sfq perturb 10 $pri3 match ip dst $host flowid 1:${t}1$i $pri3 match ip src $host flowid 1:${t}1$i for ip in `cat ./bgipmap`; do $pri2 match ip src $ip match ip dst $host flowid 1:${t}2$i $pri2 match ip dst $ip match ip src $host flowid 1:${t}2$i done for ip in `cat ./locipmap`; do $pri1 match ip src $ip match ip dst $host flowid 1:${t}3$i $pri1 match ip dst $ip match ip src $host flowid 1:${t}3$i done done
|
Така, значи във хостс файла има 2 ипта. До мен стига 4mbps, аз искам тия вътре 2та компютъра да имат всеки по 2мбпс (за фенбг), и там другите бързини за БГ и външен.
Обаче нещо не става така. Вместо всеки да има макс 2мбпс, те имат ОБЩО 2мбпс, и като свалят заедно, всеки има макс 1мбпс.
Защо се получава така?