Bu dersleri 1 , 3 , 2 1 kullanarak bir ipset için bant genişliği kontrolü yapmaya çalışıyorum . Ve bu senaryo . İpsetnames almak için değiştirdim.
Bu benim bandwithshaing betiğim.
TC=/sbin/tc
IF=wlan0 # Interface
DNLD=1mbit # DOWNLOAD Limit
UPLD=1mbit # UPLOAD Limit
IP1="myIPset1" # Host IP
IP2="myIPset2"
U32="$TC filter add dev $IF protocol ip parent 1:0 prio 1 u32"
start() {
$TC qdisc add dev $IF root handle 1: htb default 30
$TC class add dev $IF parent 1: classid 1:1 htb rate $DNLD
$TC class add dev $IF parent 1: classid 1:2 htb rate $UPLD
$U32 match iptables dst $IP flowid 1:1
$U32 match iptables src $IP flowid 1:2
#second chain
$TC qdisc add dev $IF root handle 1: htb default 30
$TC class add dev $IF parent 1: classid 1:1 htb rate $DNLD
$TC class add dev $IF parent 1: classid 1:2 htb rate $UPLD
$U32 match iptables dst $IP1 flowid 1:1
$U32 match iptables src $IP1 flowid 1:2
}
stop() {
$TC qdisc del dev $IF root
}
restart() {
stop
sleep 1
start
}
show() {
$TC -s qdisc ls dev $IF
}
case "$1" in
start)
echo -n "Starting bandwidth shaping: "
start
echo "done"
;;
stop)
echo -n "Stopping bandwidth shaping: "
stop
echo "done"
;;
restart)
echo -n "Restarting bandwidth shaping: "
restart
echo "done"
;;
show)
echo "Bandwidth shaping status for $IF:\n"
show
echo ""
;;
*)
pwd=$(pwd)
echo "Usage: $(/usr/bin/dirname $pwd)/tc.bash {start|stop|restart|show}"
;;
esac
exit 0
Bandwithshaping betiğini başlatmaya çalıştığımda çıktıyı izliyorum. Bant genişliği biçimlendirmesini başlatma: Yasadışı "eşleşme"
Illegal "match"
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
Illegal "match"
Illegal "match"
done
Bu, bant genişliğini şekillendirmiyor. Bir IP adresi kullanırsam, iyi çalışıyor.
Qdisc ve tc için yeniyim, bunu yapmak mümkün mü?
Şimdiden teşekkürler. Burada ne özlüyorum?