用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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: Linux下进行简单网络安全管理下一篇: 如何让wmii 在开机后快速进行初始化设置
关于用PPPOE加TC来搭建 社区宽带网络的所有评论