快速业务通道

linux QOS流量管理实例一

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-17
一个10的接入带宽将被分配给home,office各另一个ISP,如下图所示: 家庭用户得到的带宽为1Mbps,office的带宽为4Mbps,另一个ISP的带宽为5Mbps. ,我们决定使用CBQ,需要在与客户端连接的eth1口添加root qdisc.
tc qdisc add dev eth1 root handle 10: cbq bandwidth 100Mbit avpkt 1000
接下来,需要在父类的基础上创建子类,其参数与父类相同.
tc class add dev eth1 parent 10:0 classid 10:10 cbq bandwidth 100Mbit rate
100Mbit allot 1514 weight 10Mbit prio 5 maxburst 20 avpkt 1000 bounded
接下来,需要为每个客户端创建classes,qdiscs,filters,现在将先从home开始. tc class add dev eth1 parent 10:10 classid 10:100 cbq bandwidth 100Mbit rate
1Mbit allot 1514 weight 128Kbit prio 5 maxburst 20 avpkt 1000 bounded
tc qdisc add dev eth1 parent 10:100 sfq quantum 1514b perturb 15
tc filter add dev eth1 parent 10:0 protocol ip prio 5 u32 match ip dst 1.1.1.1 flowid 10:100
So we created the 10:100 class with a rate of 1Mbit and 128Kbit weight. Next, we attached an sfq qdisc and a u32 filter to match all traffic with the destination IP address 1.1.1.1. The bounded argument of the tc class add cbq command means
#the office
tc class add dev eth1 parent 10:10 classid 10:200 cbq bandwidth 100Mbit rate
4Mbit allot 1514 weight 512Kbit prio 5 maxburst 20 avpkt 1000 bounded
tc qdisc add dev eth1 parent 10:200 sfq quantum 1514b perturb 15
tc filter add dev eth1 parent 10:0 protocol ip prio 5 u32 match ip dst 1.1.2.0/24 flowid 10:200
Empire CMS,phome.net

#the ISP
tc class add dev eth1 parent 10:10 classid 10:300 cbq bandwidth 100Mbit rate
5Mbit allot 1514 weight 640Kbit prio 5 maxburst 20 avpkt 1000 bounded
tc qdisc add dev eth1 parent 10:300 sfq quantum 1514b perturb 15
tc filter add dev eth1 parent 10:0 protocol ip prio 5 u32 match ip dst 1.1.1.2 flowid 10:300
tc filter add dev eth1 parent 10:0 protocol ip prio 5 u32 match ip dst 1.1.3.0/24 flowid 10:300

root@router:~# tc class show dev eth1
class cbq 10: root rate 100000Kbit (bounded,isolated) prio no-transmit
class cbq 10:100 parent 10:10 leaf 806e: rate 1000Kbit (bounded) prio 5
class cbq 10:10 parent 10: rate 100000Kbit (bounded) prio 5
class cbq 10:200 parent 10:10 leaf 806f: rate 4000Kbit (bounded) prio 5
class cbq 10:300 parent 10:10 leaf 8070: rate 5000Kbit (bounded) prio 5
Now, to see that a class is actually shaping packets, we send three ping packets to 1.1.1.1, and check to see if the CBQ class matched those packets using tc –s class show dev eth1:
root@router:~# tc -s class show dev eth1 | fgrep -A 2 10:100
class cbq 10:100 parent 10:10 leaf 806e: rate 1000Kbit (bounded) prio 5
Sent 294 bytes 3 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 184151 undertime 0

现在看起来所有的任务都已配置成功,现在将配置从CBQ转移到HTB上,在转移之前,我人需要删除CBQ的配置.
root@router:~# tc qdisc del root dev eth1------删除eth1上队列. 使用HTB将比CBQ更加简单,操作如下:
root@router:~# tc qdisc add dev eth1 root handle 10: htb
Empire CMS,phome.net
接下来创建子类( child class):
root@router:~# tc class add dev eth1 parent 10:0 classid 10:10 htb rate

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号