Задать вопрос

Tc: как ограничить полосу интерфейсу?

Всем привет


Пытаюсь урезать исходящую скорость интерфейсу eth0.

Вроде, должно работать вот так:

/sbin/tc qdisc add dev eth0 root handle 1: htb default 30<br/>
/sbin/tc class add dev eth0 parent 1: classid 1:30 htb rate 2mbit



Но не работает. Интерфейс отдает траффик на полной скорости. Подскажите, пожалуйста, что делаю не так?
  • Вопрос задан
  • 4959 просмотров
Подписаться 6 Оценить Комментировать
Ответ пользователя smartlight К ответам на вопрос (3)
@smartlight
#
# speed limit to download\upload data from Internet
# for local IP's in interface eth0
#
#!/bin/sh

# start shaper
shaper_start() {
tc qdisc add dev eth0 root handle 1: htb default 12

tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit ceil 100mbit
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 512kbit ceil 512kbit
tc class add dev eth0 parent 1:1 classid 1:12 htb rate 100mbit ceil 100mbit

tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.10.0/24 match ip sport 80 0xffff flowid 1:10
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.10.0/24 match ip dport 80 0xffff flowid 1:10

tc qdisc add dev eth0 parent 1:10 handle 20: pfifo limit 5
tc qdisc add dev eth0 parent 1:11 handle 30: pfifo limit 5
tc qdisc add dev eth0 parent 1:12 handle 40: pfifo limit 10
}

shaper_stop () {
# remove shaper
tc qdisc del dev eth0 root
}

# Restart shaper
shaper_restart (){
shaper_stop
sleep 1
shaper_start

}
# View shaper status
shaper_status (){
# view status shaper
tc -s -d qdisc show dev eth0

}

case "$1" in
'start')
shaper_start
;;
'stop')
shaper_stop
;;
'restart')
shaper_restart
;;
'status')
shaper_status
;;
*)
echo "usage rc.shaper : start|stop|restart|status"
esac


eth0 — Local Area
eth1 — Internet
Ответ написан