Linux流量控制中的HTB队列创建与过滤
有达到配额时,其剩余的带宽并不能被其他两个数据流所借用.在这里将涉及如何使不同的数据流可以共享一定的带宽.
需要用到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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |