3

我正在尝试使用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

从上面的输出中,我可以识别class并被qdisc应用,但是在上面的输出中我看不到filter端口50005001

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

4

0 回答 0