快速业务通道

Linux流量控制中的HTB队列创建与过滤

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-20
有达到配额时,其剩余的带宽并不能被其他两个数据流所借用.在这里将涉及如何使不同的数据流可以共享一定的带宽.

  需要用到HTB的一个特性, 即对于一个类别中的所有子类别,它们将共享该父类别所拥有的带宽,同时,又可以各个子类别申请的各自带宽得到保证.这也就是说,当某个数据流的实际使用带宽没有达到其配额时, 其剩余的带宽可以借给其他的数据流.而在借出的过程中,如果本数据流的数据量增大,则借出的带宽部分将收回, 以保证本数据流的带宽配额.

  下面考虑这样的需求, 同样是三个数据流WWW、E-mail和Telnet, 其中的Telnet独立分配20Mbit/s的带宽.另一方面,VWVW 和SMTP各自分配40Mbit/s.同时,它们又是共享的关系, 即它们可以互相借用带宽.如图3所示.


图三

  需要的TC命令如下:

  1.#tc qdisc add dev eth0 root handle 1: htb default 21

  2.#tc class add dev eth0 partent 1: classid 1:1 htb rate

  20mbit ceil 20mbit

  3.#tc class add dev eth0 parent 1: classid 1:2 htb rate

  80mbit ceil 80mbit

  4.#tc class add dev eth0 parent 1: classid 1:21 htb rate

  40mbit ceil 20mbit

  5.#tc class add dev eth0 parent 1:2 classid 1:22 htb rate

  40mbit ceil 80mbit

  6.#tc filter add dev eth0 protocol parent 10 prio 1 u32

  match ip dport 80 0xffff flowid 1:21

  7.#tc filter add dev eth0 protocol parent 1:0 prio 1 u32

  match ip dport 25 0xffff flowid 1:22

  8.#tc filter add dev eth0 protocol parent 1:0 prio 1 u32

  match ip dport 23 0xffff flowid 1:1

  这里为根队列1创建两个根类别,即1:1和1:2,其中1:1对应Telnet数据流,1:2对应80Mbit的数据流.然后,在1:2中,创建两个子类别1:21和1:22,分别对应WWW和E-mail数据流.类别1:21和1:22是类别1:2的子类别,因此他们可以共享分配的80Mbit带宽.同时,又确保当需要时,自己的带宽至少有40Mbit.

  从这个例子可以看出,利用HTB中类别和子类别的包含关系,可以构建更加复杂的多层次类别树,从而实现的更加灵活的带宽共享和独占模式,达到企业级的带宽管理目的.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号