个人信息
性别:无法查看,请先登录
地区:**
Email:**
QQ:**
MSN:**
主页:**
日志 - 日历
2008 10.6 Mon
   1234
567891011
12131415161718
19202122232425
262728293031 
«» 2008 - 10 «»
用户公告
****** 欢迎加入******
软路由作坊-破挂工作组欢迎大家来讨论Linux、软路由、编程以及外挂制作破解。
QQ群:58167643
搜索BLOG文章
博客基本信息
用户名: dz932
等级: 幼儿园娃娃
在线时间: 263 分钟
日志总数: 6
评论数量: 3
访问次数: 25300
建立时间: 2005-08-06
最新访问

XML RSS 2.0 WAP
我的日志
【原创】在coyote中用笨方法来限制P2P2007-06-22


    装了coyote硬盘版后,网络确实比以前用TP-R402M的时候稳定多了。
    单位里有15台办公电脑,还有教师宿舍里近20台个人电脑都连在同一局域网里,共享电信光纤接入10M带宽。后来,用pplive、ppstream看电影的人多了,导致其他人无法浏览网页。办公电脑都装上了还原精灵,很好管理,可教师宿舍里的电脑就没法管理了,只好用tc和iptables限制带宽。刚开始还行,后来一段时间后又出现无法浏览网页了。查看带宽使用情况,远远没有达到爆满的水平。出现这种情况,应该是连接数太多了——带宽限制也管不了了。下载了一个mimifw的ipt_connlimit.o,但是coyote加载不了,可能内核不支持吧。
    不想把coyote换成minifw,太麻烦了。苦思了几天后,终于解决了问题:给每台电脑分配上传带宽和下载带宽,上传优先权很低,然后专门为http、dns、smtp、pop3开辟一个公共的上传通道,优先权为0。这样,用户用P2P时,用他们的低优先权上传通道,浏览网页时用高优先权的公共上传通道,下载时都用自己的下载通道。

qos脚本
-----------------------------------
# 清除 eth1 所有队列规则
tc qdisc del dev eth1 root 2>/dev/null

# 定义最顶层(根)队列规则,并指定 default 类别编号
tc qdisc add dev eth1 root handle 10: htb default 50

# 定义第一层的 10:1 类别 (总频宽)
tc class add dev eth1 parent 10: classid 10:1 htb rate 128kbps ceil 128kbps

# 定义第二层叶类别
# rate 保证频宽,ceil 最大频宽,prio 优先权
tc class add dev eth1 parent 10:1 classid 10:10 htb rate 8kbps ceil 40kbps prio 1
tc class add dev eth1 parent 10:1 classid 10:11 htb rate 8kbps ceil 40kbps prio 1
tc class add dev eth1 parent 10:1 classid 10:12 htb rate 4kbps ceil 12kbps prio 2
tc class add dev eth1 parent 10:1 classid 10:15 htb rate 4kbps ceil 12kbps prio 2
tc class add dev eth1 parent 10:1 classid 10:61 htb rate 2kbps ceil 4kbps prio 3
tc class add dev eth1 parent 10:1 classid 10:62 htb rate 2kbps ceil 4kbps prio 3
……
#下面一行是为浏览网页开辟一条高优先权的上传通道
tc class add dev eth1 parent 10:1 classid 10:40 htb rate 8kbps ceil 40kbps prio 0

# 定义各叶类别的队列规则
# parent 类别编号,handle 叶类别队列规则编号
# 由于采用 fw 过滤器,所以此处使用 pfifo 的队列规则即可
tc qdisc add dev eth1 parent 10:10 handle 100: pfifo
tc qdisc add dev eth1 parent 10:11 handle 101: pfifo
……

# 设定过滤器
# 指定贴有 10 标签 (handle) 的封包,归类到 10:10 类别,以此类推
tc filter add dev eth1 parent 10: protocol ip prio 100 handle 10 fw classid 10:10
tc filter add dev eth1 parent 10: protocol ip prio 100 handle 11 fw classid 10:11
……
# QoS eth0  下载方面
#

# 清除 eth0所有队列规则
tc qdisc del dev eth0 root 2>/dev/null

# 定义最顶层(根)队列规则,并指定 default 类别编号
tc qdisc add dev eth0 root handle 10: htb default 50

# 定义第一层的 10:1 类别 (总频宽)
tc class add dev eth0 parent 10: classid 10:1 htb rate 1280kbps ceil 1280kbps

# 定义第二层叶类别
# rate 保证频宽,ceil 最大频宽,prio 优先权
tc class add dev eth0 parent 10:1 classid 10:10 htb rate 30kbps ceil 300kbps prio 0
tc class add dev eth0 parent 10:1 classid 10:11 htb rate 30kbps ceil 150kbps prio 0
tc class add dev eth0 parent 10:1 classid 10:12 htb rate 10kbps ceil 90kbps prio 1
tc class add dev eth0 parent 10:1 classid 10:70 htb rate 10kbps ceil 90kbps prio 1
……
# 定义各叶类别的队列规则
# parent 类别编号,handle 叶类别队列规则编号
tc qdisc add dev eth0 parent 10:10 handle 100: pfifo
tc qdisc add dev eth0 parent 10:11 handle 101: pfifo
……

# 设定过滤器
tc filter add dev eth0 parent 10: protocol ip prio 100 handle 10 fw classid 10:10
tc filter add dev eth0 parent 10: protocol ip prio 100 handle 11 fw classid 10:11
tc filter add dev eth0 parent 10: protocol ip prio 100 handle 12 fw classid 10:12
……
-----------------------------------

iptables脚本

------------------------------------

#web请求加速,上传带宽8-40k,优先权:0
iptables -t mangle -A PREROUTING  -m layer7 --l7proto http -j MARK --set-mark 40
iptables -t mangle -A PREROUTING  -m layer7 --l7proto dns -j MARK --set-mark 40
iptables -t mangle -A PREROUTING  -m layer7 --l7proto pop3 -j MARK --set-mark 40
iptables -t mangle -A PREROUTING  -m layer7 --l7proto smtp -j MARK --set-mark 40

#DHCP机,每2台分配带宽:下载10K-90K,优先权:1  上传2-4k,优先权:3
iptables -t mangle -A PREROUTING -s 172.18.196.61 -j MARK --set-mark 61
iptables -t mangle -A POSTROUTING -d 172.18.196.61 -j MARK --set-mark 61
iptables -t mangle -A PREROUTING -s 172.18.196.62 -j MARK --set-mark 61
iptables -t mangle -A POSTROUTING -d 172.18.196.62 -j MARK --set-mark 61
……

#办公电脑10台,每2台分配下载带宽:10K-90K,优先权:1  上传4-12k,优先权:2
iptables -t mangle -A PREROUTING -s 172.18.196.117 -j MARK --set-mark 12
iptables -t mangle -A POSTROUTING -d 172.18.196.117 -j MARK --set-mark 12
……

#其他有固定IP的电脑,每2台分配下载带宽:10K-90K,优先权:1  上传4-12k,优先权:2
iptables -t mangle -A PREROUTING -s 172.18.196.109 -j MARK --set-mark 22
iptables -t mangle -A POSTROUTING -d 172.18.196.109 -j MARK --set-mark 22
……
#服务器,分配下载带宽:30K-150K,优先权:0  上传8-40k,优先权:1
iptables -t mangle -A PREROUTING -s 172.18.196.100 -j MARK --set-mark 10
iptables -t mangle -A POSTROUTING -d 172.18.196.100 -j MARK --set-mark 10
……
#特殊用途,分配带宽:30K-300K,优先权:0  上传8-40k,优先权:1
iptables -t mangle -A PREROUTING -s 172.18.196.11 -j MARK --set-mark 11
iptables -t mangle -A POSTROUTING -d 172.18.196.11 -j MARK --set-mark 11

#剩余电脑使用下载带宽:20K-150K,优先权:1  上传8-16k,优先权:2

原创文章如转载,请注明:转载自软路由作坊-破挂工作组 [ http://dz932.blog.zj.com/ ]
本文链接地址:http://dz932.blog.zj.com/blog/d-135571.html

TAG: coyote
相关文章
文章评论1条回复
[网络世界] 评论于
给文章评分
评分: -5 -3 -1 - +1 +3 +5
我来说两句
认证码*   看不清,就点我! 输入四位字母或数字
(您还没有登录,登录发表)
粗体 斜体 下划线 插入url链接 飞行字 移动字