使用tc

时间:2015-11-04 04:29:51

标签: linux linux-kernel tcp-ip bandwidth-throttling

我正在尝试使用tc限制一系列端口的最大带宽(统称)。以下是剧本:

tc qdisc add dev eth0 root handle 1: htb default 10;
tc class add dev eth0 parent 1: classid 1:1 htb rate 75kbit;
tc qdisc add dev eth0 parent 1:1 handle 2: sfq perturb 10
tc filter add dev eth0 parent 1: protocol ip u32 match ip sport 5000 0xffff flowid 1:1;
tc filter add dev eth0 parent 1: protocol ip u32 match ip sport 5001 0xffff flowid 1:1;

上面的脚本运行正常,但这些端口的带宽不受限制。

当我检查状态时,我找不到这些端口的任何过滤器:

$ tc class show dev eth0
class htb 1:1 root leaf 2: prio 0 rate 75000bit ceil 75000bit burst 1599b cburst 1599b

$ tc qdisc show dev eth0
qdisc htb 1: root refcnt 9 r2q 10 default 10 direct_packets_stat 49 direct_qlen 1000
qdisc sfq 2: parent 1:1 limit 127p quantum 1514b depth 127 divisor 1024 perturb 10sec 

$ tc filter show dev eth0
filter parent 1: protocol ip pref 49152 u32 
filter parent 1: protocol ip pref 49152 u32 fh 800: ht divisor 1 
filter parent 1: protocol ip pref 49152 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid 1:1 
  match 13880000/ffff0000 at 20

从上面的输出中,我可以识别出正在应用的classqdisc,但我看不到filter5000中的5001以上输出。

这是filter的预期输出吗?如何解决此问题以便强制执行带宽限制?

0 个答案:

没有答案