我正在尝试使用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
端口5000
和5001
。
这是预期的输出filter
吗?如何解决此问题以便强制执行带宽限制?