关于tc中不受流量控制的问题!
大家好!在这里有些tc的问题想跟大家探讨一下!
应用模式是一个用户上来生成一条类和这个类下面的一个过滤器。
语句如下:
tc class add dev eth0 parent 1:1 classid 1:1 cbq rate 1Mbit prio 7 allot 1514 bounded
tc filter add dev eth0 parent 1:1 protocol ip prio 7 u32 match ip src 172.111.1.116 flowid 1:1
每个用户登录上来的时候都生成自己对应的类和这个类下面的一个过滤器。
现在出现的一个情况是,用户已经生成了自己的类和过滤器,但是它却不受流量的限制,也就是说不受tc控制。请问,这种情况是怎么一回事,如何才能避免?欢迎大家发表自己的看法!
(注:本人可能说问题说得不够详细,也欢迎大家多提出自己对这问题的疑问以获取更详细的说法,谢谢!)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
我以前测试过cbq,总是控制不好,不知是否参数的问题,后来改用HTB,效果就不错,建议楼主试一下,脚本如下:
初始化脚本
复制代码
设置带宽控制
复制代码
注意 iptables mark 的数值 中和 tc filter 中的hangle 要对应
[ 本帖最后由 ippen 于 2006-7-5 13:41 编辑 ]
好,我先试试~~~~~~~~~~~
有了新进展,有些东西是我搞错了,原来不受控制的用户没有在队列生成~!
我描述一下实现思路吧:
eth0:控制上行
eth1:控制下行
tc程序做了两个,一个是控制上行,一个是控制下行的。
当有用户登录上来的时候,根据这用户的带宽设定生成对应的控制。生成规则是一个用户在一个方向上生成一条class和一条filter,就是说如果有10个用户的话就有10条class和对应10条filter。
eth0:
class生成语句:
dev eth0 parent 1:1 classid 1:31 cbq bandwidth 100Mbit rate 1Mbit maxburst 20 allot 1514 prio 7 avpkt 1000 cell 8 weight 100kbit split 1:0 bounded
filter生成语句:
dev eth0 parent 1: protocol ip prio 100 handle 800::1 u32 match ip src 172.111.1.116 flowid 1:31
eth1:
class生成语句:
dev eth1 parent 1:1 classid 1:31 cbq bandwidth 100Mbit rate 2Mbit maxburst 20 allot 1514 prio 7 avpkt 1000 cell 8 weight 100kbit split 1:0 bounded
filter生成语句:
dev eth1 parent 1: protocol ip prio 100 handle 800::1 u32 match ip dst 某一IP flowid 1:31
在使用中发现,如果只起某一方向的限制,也是会出现不受流量控制的现象,但用户对应的class和filter还是生成了。
请大家踊跃发言。谢谢!
[ 本帖最后由 chancecui 于 2006-7-4 10:34 编辑 ]
贴一下 另外的一个方向的控制脚本
回2楼:
1.不受限制是指完全的不受限制。不太准确也是说也能限制,只是不太准而已!
2.已经在两个方向做了,结果还是不受限制呢!
谢谢2楼的回答,请继续!
其它人也可以多提问啊~~~!
两个可能的原因
1. CBQ限速不太准确,试试用HTB
2. 限速要在两个方向上做,如果eth0是接外网的,那么你的限速规则是限制上传流量了,限制下载流量要在内网的网卡上做