快速业务通道

用PPPOE加TC来搭建 社区宽带网络

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-01
在这里问下大家谁能帮忙解决传输速度的问题!!!万分感谢下面就开始使用TC来划分流量了
我用的调度算法为 HTB(分层令牌桶),有朋友用CBQ 但是我用的是Linux作服务器 (linux的软件时钟对CBQ的效果不理想),在这里用HTB效果更好一些
tc qdisc #查看当前的 队列 信息
tc qdisc add dev ppp0 root handle 1:0 htb default 13
#这里的root可不是 root用户,而是 “根”的意思,详细的意思我在这里就不多说了,如果你想深入了解下流控的概念可以看看这个 《Traffic Control using tcng and HTB HOWTO》和《Linux的高级路由和流量控制HOWTO
中文版》 估计你看完了这两本书会对 QOS于Linux的路由有更深入的了解;
#上面的命令 是建立了一条默认的队列,意思是如果没有特殊定义的规则默认包会走 1:13这个通道
tc class add dev ppp0 parent 1:0 classid 1:1 htb rate 10mbit burst 50k #在根队列 1:0的上面 建立一条总的class 1:1 采用HTB算法 速度为 10mbit 迸发值设为50k字节,(这个迸发值根据实际情况自定,我这里随便设的)
tc class add dev ppp0 parent 1:1 classid 1:11 htb rate 3mbit burst 30k ceil 6mbit #在上面class 1:1 的下面继续分类 1:11 ,这里的ceil是指在其他通道都空闲的时候这条通道可以占用的带宽,如果其他通道忙碌则会回到3mbit
tc class add dev ppp0 parent 1:1 classid 1:12 htb rate 6mbit burst 10k
tc class add dev ppp0 parent 1:1 classid 1:13 htb rate 1mbit burst 100k ceil 3mbit tc qdisc add dev ppp0 parent 1:11 handle 10:0 sfq perturb 20 #设定每个子类的具体调度算法为SFQ(随机公平队列) perturb 20是指每20秒从新计算sfq的随机值
tc qdisc add dev ppp0 parent 1:12 handle 20:0 sfq perturb 20
tc qdisc add dev ppp0 parent 1:13 handle 30:0 sfq perturb 20 下面我们要在根上面加一个过滤器,用来规定什么样的包应该去哪条通道
tc filter add dev ppp0 parent 1:0 protocol ip prio 800 u32 match ip dst 172.16.1.19/32 flowid 1:13 #这里可以规定某个ip地址应该去哪个通道,比如这个IP是老板的,可以让他独享一个通道
tc filter add dev ppp0 parent 1:0 protocol ip prio 800 u32 match ip sport 22 0xffff flowid 1:11
tc filter add dev ppp0 parent 1:0 protocol ip prio 800 u32 match ip sport 80 0xffff flowid 1:12
tc filter add dev ppp0 parent 1:0 protocol ip prio 800 u32 match ip sport 20 0xffff flowid 1:12 拨号自动限速脚本,这样在有客户端连上来的时候会自动对其限速
在 /etc/ppp/目录下建立 auth-up这个文件,在里面加入下面这些语句
#!/bin/bash export PATH=/bin:/usr/bin:/sbin:/usr/sbin tc qdisc add dev $IFNAME root handle 1:0 htb default 13
tc class add dev $IFNAME parent 1:0 classid 1:1 htb rate 10mbit burst 50k
tc class add dev $IFNAME parent 1:1 classid 1:11 htb rate 3mbit burst 30k ceil 6mbit
tc class add dev $IFNAME parent 1:1 classid 1:12 htb rate 6mbit burst 10k
tc class add dev $IFNAME parent 1:1 classid 1:13 htb rate 1mbit burst 100k ceil 3mbit tc qdisc add dev $IFNAME parent 1:11 handle 10:0 sfq perturb 20
tc qdisc add dev $IFNAME parent 1:12 handle 20:0 sfq perturb 20
tc qdisc add dev $IFNAME parent 1:13 handle 30:0 sfq perturb 20 tc filter add dev $IFNAME parent 1:0 protocol ip prio 1000 u32 match ip dst 172.16.1.19/32 flowid 1:13
tc filter add dev $IFNAME parent 1:0 protocol ip prio 1000 u32 match ip sport 22 0xffff flowid 1:11
tc filter add dev $IFNAME parent 1:0 protocol ip

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