找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5302|回复: 4

[coyote] 有两种做coyote的限速,哪种更适合网吧用!!

[复制链接]
发表于 2006-12-9 15:50:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
1.

#!/bin/sh
#
# Coyote local command init script

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

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

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

# 定义第二层叶类别
# rate 保证频宽,ceil 最大频宽,prio 优先权
tc class add dev eth1 parent 10:1 classid 10:10 htb rate 2kbps ceil 4kbps prio 2
tc class add dev eth1 parent 10:1 classid 10:20 htb rate 2kbps ceil 4kbps prio 2
tc class add dev eth1 parent 10:1 classid 10:30 htb rate 32kbps ceil 40kbps prio 3


tc class add dev eth1 parent 10:1 classid 10:40 htb rate 8kbps ceil 16kbps prio 0
tc class add dev eth1 parent 10:1 classid 10:50 htb rate 4kbps ceil 12kbps prio 1
tc class add dev eth1 parent 10:1 classid 10:60 htb rate 4kbps ceil 12kbps prio 1
tc class add dev eth1 parent 10:1 classid 10:70 htb rate 4kbps ceil 12kbps prio 1


# 定义各叶类别的队列规则
# parent 类别编号,handle 叶类别队列规则编号
# 由于采用 fw 过滤器,所以此处使用 pfifo 的队列规则即可
tc qdisc add dev eth1 parent 10:10 handle 101: pfifo
tc qdisc add dev eth1 parent 10:20 handle 102: pfifo
tc qdisc add dev eth1 parent 10:30 handle 103: pfifo
tc qdisc add dev eth1 parent 10:40 handle 104: pfifo
tc qdisc add dev eth1 parent 10:50 handle 105: pfifo
tc qdisc add dev eth1 parent 10:60 handle 106: pfifo
tc qdisc add dev eth1 parent 10:70 handle 107: 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 20 fw classid 10:20
tc filter add dev eth1 parent 10: protocol ip prio 100 handle 30 fw classid 10:30
tc filter add dev eth1 parent 10: protocol ip prio 100 handle 40 fw classid 10:40
tc filter add dev eth1 parent 10: protocol ip prio 100 handle 50 fw classid 10:50
tc filter add dev eth1 parent 10: protocol ip prio 100 handle 60 fw classid 10:60
tc filter add dev eth1 parent 10: protocol ip prio 100 handle 70 fw classid 10:70



# QoS eth0  下载方面
#

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

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

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

# 定义第二层叶类别
# rate 保证频宽,ceil 最大频宽,prio 优先权
tc class add dev eth0 parent 10:1 classid 10:10 htb rate 2kbps ceil 32kbps prio 2
tc class add dev eth0 parent 10:1 classid 10:20 htb rate 2kbps ceil 32kbps prio 2
tc class add dev eth0 parent 10:1 classid 10:30 htb rate 32kbps ceil 212kbps prio 3

tc class add dev eth0 parent 10:1 classid 10:40 htb rate 16kbps ceil 196kbps prio 0
tc class add dev eth0 parent 10:1 classid 10:50 htb rate 8kbps ceil 188kbps prio 1
tc class add dev eth0 parent 10:1 classid 10:60 htb rate 8kbps ceil 188kbps prio 1
tc class add dev eth0 parent 10:1 classid 10:70 htb rate 8kbps ceil 188kbps prio 1

# 定义各叶类别的队列规则
# parent 类别编号,handle 叶类别队列规则编号
tc qdisc add dev eth0 parent 10:10 handle 101: pfifo
tc qdisc add dev eth0 parent 10:20 handle 102: pfifo
tc qdisc add dev eth0 parent 10:30 handle 103: pfifo
tc qdisc add dev eth0 parent 10:40 handle 104: pfifo
tc qdisc add dev eth0 parent 10:50 handle 105: pfifo
tc qdisc add dev eth0 parent 10:60 handle 106: pfifo
tc qdisc add dev eth0 parent 10:70 handle 107: 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 20 fw  classid 10:20
tc filter add dev eth0 parent 10: protocol ip prio 100 handle 30 fw  classid 10:30
tc filter add dev eth0 parent 10: protocol ip prio 100 handle 40 fw  classid 10:40
tc filter add dev eth0 parent 10: protocol ip prio 100 handle 50 fw  classid 10:50
tc filter add dev eth0 parent 10: protocol ip prio 100 handle 60 fw  classid 10:60
tc filter add dev eth0 parent 10: protocol ip prio 100 handle 70 fw  classid 10:70
=====================================================================

2.

首先不要用web管理开启qos,QOS Init Configuration中QOS init type 一定要是QOS Disabled,不使用自带的qos脚本。
2.如果想限制一个ip的带宽在/etc/rc.d/rc.local文件中加入以下内容:
tc qdisc add dev eth0 root handle 1: htb r2q 1
tc class add dev eth0 parent 1: classid 1:1 htb rate 50kbit burst 10k
tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst 192.168.111.168 flowid 1:1
就可以限制192.168.111.168的带宽为50k了,实际下载速度为8k左右。

3.如果想限制一段ip的带宽在/etc/rc.d/rc.local文件中加入以下内容:
tc qdisc add dev eth0 root handle 1: htb r2q 1
tc class add dev eth0 parent 1: classid 1:1 htb rate 400kbit burst 10k
tc filter add dev eth0 parent 1: protocol ip prio 16 u32
match ip dst 192.168.111.0/24 flowid 1:1

就可以限制192.168.111.0 到255 的带宽为400k了,实际下载速度为50k左右。
这种情况下,这个网段所有机器共享这50k的带宽。
由于限制单个ip的带宽比较麻烦,所以我限制了一段ip的带宽,又给本地网卡加了一个ip地址,加的ip的网段带宽没有限制
在web管理LAN Configuration的(Optional) Secondary IP Address and Netmask里设定的。

详细的讲一下:tc qdisc add dev eth0 root handle 1: htb r2q 1
加一个没有default的root,
使整个网络的带宽没有限制。
tc class add dev eth0 parent 1: classid 1:1 htb rate 400kbit burst 10k
设定一个类默认带宽是400kbit

tc filter add dev eth0 parent 1: protocol ip prio 16 u32
match ip dst 192.168.111.0/24 flowid 1:1

设定192.168.111.0整个网段使用类1:1,从而限制带宽。

而默认不限制带宽,只有指定那个ip或段才去限制。
routeros
发表于 2006-12-11 15:31:42 | 显示全部楼层
第一种是用QOS方式,我正在用,效果不错.
第二种用HTB方式,好象说技术已经落后了,反正没用过
routeros
回复

使用道具 举报

 楼主| 发表于 2006-12-11 16:00:05 | 显示全部楼层
第一种应该也是HTB方式,第一种还少标签规则没有加如下!!!!
iptables 指令,过滤器 (编辑自定义防火墙规则) :

# uploads
# 设定上传方面,先利用 iptables 给封包贴标签,再交由 fw 过滤器进行过滤
iptables -t mangle -A PREROUTING -s 192.168.1.6 -m layer7 --l7proto dns -j MARK --set-mark 10
iptables -t mangle -A PREROUTING -s 192.168.1.6 -m layer7 --l7proto smtp -j MARK --set-mark 20
iptables -t mangle -A PREROUTING -s 192.168.1.6 -m layer7 --l7proto http -j MARK --set-mark 30
iptables -t mangle -A PREROUTING -s 192.168.1.1 -j MARK --set-mark 40
iptables -t mangle -A PREROUTING -s 192.168.1.2 -j MARK --set-mark 50
iptables -t mangle -A PREROUTING -s 192.168.1.3 -j MARK --set-mark 60
# downloads
# 下载方面
iptables -t mangle -A POSTROUTING -d 192.168.1.6 -m layer7 --l7proto dns -j MARK --set-mark 10
iptables -t mangle -A POSTROUTING -d 192.168.1.6 -m layer7 --l7proto smtp -j MARK --set-mark 20
iptables -t mangle -A POSTROUTING -d 192.168.1.6 -m layer7 --l7proto http -j MARK --set-mark 30
iptables -t mangle -A POSTROUTING -d 192.168.1.1 -j MARK --set-mark 40
iptables -t mangle -A POSTROUTING -d 192.168.1.2 -j MARK --set-mark 50
iptables -t mangle -A POSTROUTING -d 192.168.1.3 -j MARK --set-mark 60

楼上的兄弟QQ多少,有几个问题想请教一下!!!

[ 本帖最后由 zy3680 于 2006-12-11 16:08 编辑 ]
routeros
回复

使用道具 举报

发表于 2006-12-12 08:18:36 | 显示全部楼层
100568,加我时请注明routerclub上的会员,有空交流
routeros
回复

使用道具 举报

发表于 2006-12-13 17:29:19 | 显示全部楼层
这就去试,顶一个先
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-5-9 21:51 , Processed in 0.077574 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表