linux下TC HTB流量控制
量被分成相当多数量的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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |