限制Linux网关上内部接口的带宽

前端之家收集整理的这篇文章主要介绍了限制Linux网关上内部接口的带宽前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我负责一个基于 Linux(运行Debian)的分支机构路由器,该路由器采用单个高速Internet连接(eth2)并将其转换为大约20个内部网络,每个网络都有一个单独的子网(192.168.1.0/24到192.168) .20.0 / 24)和一个单独的VLAN(eth0.101到eth0.120).我试图限制一个内部子网上的带宽,这个子网一直在咀嚼比它应该更多的带宽.做这个的最好方式是什么?

我第一次尝试使用Wondershaper,我在SuperUser here上听说过.不幸的是,这对于我所拥有的相反情况很有用……它在客户端非常有用,而不是在Internet端.

我的第二次尝试是使用在http://www.topwebhosts.org/tools/traffic-control.php找到的脚本,我修改了它,因此活动部分是:

tc qdisc add dev eth0.113 root handle 13: htb default 100
tc class add dev eth0.113 parent 13: classid 13:1 htb rate 3mbps
tc class add dev eth0.113 parent 13: classid 13:2 htb rate 3mbps
tc filter add dev eth0.113 protocol ip parent 13:0 prio 1 u32 match ip dst 192.168.13.0/24 flowid 13:1
tc filter add dev eth0.113 protocol ip parent 13:0 prio 1 u32 match ip src 192.168.13.0/24 flowid 13:2

我想要做的是将VLAN 113(子网192.168.13.0/24)上的带宽限制为3mbit向上和3mbit向下.不幸的是,它似乎根本没有效果!我对tc命令非常缺乏经验,所以任何帮助这项工作都会受到赞赏.

解决方法

从开发人员引用试图做同样事情的人: Doing traffic control on vlan’s may not work as expected because the vlan pseudo-device does not have any transmit queue.

由于您已经将规则编写到rate limit by subnet,因此需要让Linux对其进行速率控制.

我建议通过将VLAN置于桥接器中来解决这个问题(尽管为了保持一致性,您可能希望为每个VLAN创建一个桥接器):

brctl addbr br113
btctl addif br113 eth0.113

然后,您可以将您的tc规则应用于br113而不是eth0.113.

(配置/ etc / network / interfaces留给读者练习,如果有效的话……)

或者将流量控制规则应用于WAN接口eth2可能更简单;最终结果应该大致相同.

原文链接:https://www.f2er.com/linux/398205.html

猜你在找的Linux相关文章