1) 针对网络物理设备(如以太网卡eth0)绑定一个CBQ队列
#tc qdisc add dev eth0 root handle 1: cbq bandwidth 10Mbit avpkt 1000 cell 8 mpu 64
#tc class add dev eth0 parent 1:1 classid 1:2 cbq bandwidth 10Mbit rate 64Kbit maxburst 20 allot 1514 prio 8 avpkt 1000 cell 8 weight 100Kbit bounded
创建分 类1:2,其父分类为1:1,分配带宽为64Kbit,优先级别为8。该队列的最大可用带宽为10Mbit,实际分配的带宽为64Kbit,可接收冲突的 发送最长包数目为20字节;最大传输单元加MAC头的大小为1514字节,优先级别为8,包的平均大小为1000字节,包间隔发送单元的大小为8字节,相 应于实际带宽的加权速率为100Kbit,且不可借用未使用带宽。
3)在子分类地下创建队列,使用sfq随机公平队列
#tc qdisc add dev eth0 parent 1:2 sfq quantum 1514b perturb 15
#tc qdisc add dev eth0 parent 1:3 sfq quantum 1514b perturb 15
在分类底下,创建队列,使用sfq随即公平队列
4) 为每一分类建立一个基于路由的过滤
#tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dst 192.111.1.116 flowid 1:2
#tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dst 192.111.1.66 flowid 1:3
限制各ip地址的下载带宽,使用u32过滤器,对目的地址进行分类,对应已经创建的队列
需要添加新的被限制ip的下载带宽,需要先要创建新的分类(比如1:4),然后根据新的分类创建新的sfq队列,最后使用u32过滤器对目的地址进行带宽限制。
需要对几个ip限制下载带宽,就需要创建几个分类、队列、过滤器
限制上传
维护
主要包括对队列、分类、过滤器和路由的增添、修改和删除。
增添动作一般依照”队列->分类->过滤器->路由”的顺序进行;修改动作则没有什么要求;删除则依照”路由->过滤器->分类->队列”的顺序进行。
#简单显示指定设备的队列状况
/sbin/tc qdisc ls dev eth0
分类的维护
增添动作通过tc class add命令实现。
修改动作通过tc class change命令实现,如下所示:
/sbin/tc class change dev eth0 parent 1:1 classid 1:2 cbq bandwidth 10Mbit rate 64Kbit maxburst 20 allot 1514 prio 8 avpkt 1000 cell 8 weight 100Kbit bounded
对于bounded命令应慎用,一旦添加后就进行修改,只可通过删除后再添加来实现。
#过滤器的维护
本文转自feisky博客园博客,原文链接:http://www.cnblogs.com/feisky/archive/2011/11/13/2247261.html,如需转载请自行联系原作者
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223211.html原文链接:https://javaforall.net
