快速业务通道

linux下TC HTB流量控制

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-23
量被分成相当多数量的FIFO队列中,每个队列对应一个会话.

  数据按照简单轮转的方式发送,每个会话都按顺序得到发送机会.这种方式非常公平,保证了每个会话都不会被其它会话所淹没,SFQ之被称为“随机”,是它并不是真的为每个会话创建一个队列,而是使用一个散列算法,把所有的会话映射到有限的几个队列中去.

  #参数perturb是多少秒后重新配置一次散列算法,默认为10秒.

  tc qdisc add dev $DEV parent 1:11 handle 111: sfq perturb 5

  tc qidsc add dev $DEV parent 1:12 handle 112: sfq perturb 5

  tc qdisc add dev $DEV parent 1:21 handle 121: sfq perturb 10

  tc qidsc add dev $DEV parent 1:22 handle 122: sfq perturb 10

  tc qidsc add dev $DEV parent 1:23 handle 123: sfq perturb 10

  tc qidsc add dev $DEV parent 1:24 handle 124: sfq perturb 10

  设置过滤器,handle是iptables作mark的值,让被iptables在mangle链做了mark的不同的值选择不同的通道classid,而prio是过滤器的优先级别

  tc filter add dev $DEV parent 1:0 protocol ip prio 1 handle 1 fw classid 1:11

  tc filter add dev $DEV parent 1:0 protocol ip prio 2 handle 2 fw classid 1:12

  tc filter add dev $DEV parent 1:0 protocol ip prio 3 handle 3 fw classid 1:21

  tc filter add dev $DEV parent 1:0 protocol ip prio 4 handle 4 fw classid 1:22

  tc filter add dev $DEV parent 1:0 protocol ip prio 5 handle 5 fw classid 1:23

  tc filter add dev $DEV parent 1:0 protocol ip prio 6 handle 6 fw classid 1:24

  ##################################################

  ##################################

  下行的限制:

  # 设置入队的规则,是把一些经常会造成下载大文件的端口进行控制,不让他们来得太快,导致堵塞,来得太快,就直接drop,就不会浪费和占用机器时间和力量去处理了.

  1 把下行速率控制在大概1000-1500K(大约为带宽的50%),这个速度已经够用了,以便能够得到更多的并发下载连接.

  tc qdisc add dev $DEV handle ffff: ingress

  tc filter add dev $DEV parent ffff: protocol ip prio 50 handle 8 fw police rate ${downlink}kbit burst 10k drop flowid :8

  如果内部网数据流不是很疯狂的话,就不用做下载的限制了,用#符号屏蔽上面两行既可.

  如果要对任何进来的数据进行限速的话,可以用下面这句.

  tc filter add dev $DEV parent ffff : protocol ip prio 10 u32 match ip src 0.0.0.0/0 police rate ${downlink}kbit burst 10k drop flowid :1

  ################################

  开始给数据包打标记

  把出去的不同类数据包(为dport)给mark上标记1---6,让它走不同的通道.

  把进来的数据包(为sport)给mark上标记8,让它受到下行的限制,以免速度太快而影响全局.

  每条规则下跟着return的意思是可以通过RETURN方法避免遍历所有的规则,加快了处理速度.

  设置TOS的处理:

  iptables -t mangle -A PREROUTING -m tos --tos Minimize-Delay -j MARK --set-mark 1

  iptables -t mangle -A PREROUTING -m tos --tos Minimize-Delay -j RETURN

  iptables -t mangle -A PREROUTING -m tos --tos Minimize-Cost -j MARK --set-mark 4

  iptables -t mangle -A PREROUTING --m tos --tos Minimize-Cost -j RETURN

  iptables -t mangle -A PREROUTING -m tos --tos Maximize-Throughput -j MARK --set-mark 5

  iptables -t mangle -A PREROUTING -m tos --tos Maximize-Througput

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