使用 tc qdiscs 进行带宽限制

使用 tc qdiscs 进行带宽限制

我正在尝试使用第三台被动机器作为桥梁来限制简单的 iperf 服务器和客户端之间的带宽。在没有干扰的情况下,iperf 返回的带宽约为 90 Mbits/sec。我的目标是创建一个根 qdisc,将所有未分类的流量(所有内容)发送到子 HTB 类,在那里设置我的带宽,然后路由到叶 qdisc,一旦我使其工作正常,将在其中设置其他 tc 参数。我的实现很简单:

sudo tc qdisc add dev $interface root handle 1: htb default 10

sudo tc class add dev $interface parent 1:0 classid 1:10 htb rate $bandwidth burst $burst

sudo tc qdisc add dev $interface parent 1:10 handle 10:0 netem #other stuff goes here

$interface = eth1当使用、$bandwidth = 500kbps、 ,在网桥上执行此 bash 脚本时$burst = 15k,我发现 iperf 带宽有所减少,但远未达到规定值(通常为 ~5Mbps)。

我的脚本有错误吗?我是否误用了 burst 变量?请帮忙。

更新:经过进一步调查,我发现当将此流量控制应用于与服务器接口的以太网卡时,它可以正常工作,但当将相同的命令应用于客户端时,就会出现问题。当整个设置被逆转时,情况也是如此。

答案1

HTB 带宽控制只有形状传出流量,因此为了限制服务器和客户端 TCP 连接之间的带宽,必须对两个桥接接口应用整形。(感谢 0x534B41)

相关内容