![Linux 使用 HTB 和 filter 进行流量控制未达到预期](https://linux22.com/image/752472/Linux%20%E4%BD%BF%E7%94%A8%20HTB%20%E5%92%8C%20filter%20%E8%BF%9B%E8%A1%8C%E6%B5%81%E9%87%8F%E6%8E%A7%E5%88%B6%E6%9C%AA%E8%BE%BE%E5%88%B0%E9%A2%84%E6%9C%9F.png)
我在两台服务器之间做 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
感谢您的帮助