Я пытаюсь управлять полосой пропускания для ipset с помощью этих руководств 1 , 3 , 2 1 . И этот скрипт . Я изменил его, чтобы получить ipsetnames.
Это мой скрипт Bandwithshaing.
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, я получаю следующий результат. Начало формирования полосы пропускания: недопустимое «совпадение»
Illegal "match"
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
Illegal "match"
Illegal "match"
done
Это не влияет на формирование полосы пропускания. Если я использую IP-адрес, он работает нормально.
Я новичок в qdisc и tc, возможно ли это сделать?
Заранее спасибо. Что мне здесь не хватает?
"إجابات RTNETLINK: الملف موجود" عندما يكون هناك بالفعل qdisc متصل بالجذر. عادةً ما يتم تشغيل "tc qdisc del dev $ IF root" قبل إعداد قواعد tc على الجهاز بحيث يتم حذف القواعد القديمة.
يمكن تطبيق قواعد Tc فقط على حركة المرور للخارج. مقبض الجذر مخصص لحركة المرور ولن تكون هناك حزم مع تعيين dst على IP1 أو IP2. نستخدم جهاز ifb لتحويل حركة مرور الدخول إلى خروج وتطبيق القواعد عليه - http://linux-ip.net/gl/tc-filters/tc-filters-node3.html
لست تأكد من استخدام أسماء مجموعات الشرائح في المرشحات