Linux 使用 HTB 和 filter 进行流量控制未达到预期

Linux 使用 HTB 和 filter 进行流量控制未达到预期

我在两台服务器之间做 tc 实验,当没有添加 tc 规则时,用 iperf3 测试两台服务器之间的带宽约为 7Gbps。

然后我基于HTB添加了一个tc filter进行测试,当我设置的速率限制小于300Mbps或者350Mbps时,测试结果符合预期。

但当速率限制值大于350Mbps时,比如500Mbps或者1Gbps,用iperf3测试两台服务器之间的带宽值仍然在350Mbps左右。

我是否错误地使用了 tc 过滤器?tc 过滤器是否应与 tc 类结合使用?

我使用了如下的TC命令,奇怪的是,无论在ingress方向设置多少速率限制值,都能达到预期,但是HTB却不能。使用ipv4和ipv6时呈现的结果是一样的。

tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol all prio 1 u32 match ip6 dst 2408:8:8:6::16 police rate 1000000kbit burst 800000kbit mtu 64k drop flowid :1
tc qdisc add dev eth0 root handle 1: htb
tc filter add dev eth0 parent 1: protocol all prio 1 u32 match ip6 src 2408:8:8:6::16 police rate 500000kbit burst 400000kbit mtu 64k drop flowid :1

感谢您的帮助

相关内容