找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8510|回复: 5

[coyote] Coyote无法限制上传频宽

[复制链接]
发表于 2007-1-25 21:11:44 | 显示全部楼层 |阅读模式

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

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

×
/etc/rc.d/rc.local
# QoS eth1  上传方面

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

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

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

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


# 定义各叶类别的队列规则
# parent 类别编号,handle 叶类别队列规则编号
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 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

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

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

# 定义第一层的 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:40 htb rate 8kbps ceil 252kbps prio 0
tc class add dev eth0 parent 10:1 classid 10:50 htb rate 4kbps ceil 248kbps prio 1

tc class add dev eth0 parent 10:1 classid 10:60 htb rate 0kbps ceil 64kbps prio 2


# 定义各叶类别的队列规则
# parent 类别编号,handle 叶类别队列规则编号
# 由于采用 fw 过滤器,所以此处使用 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

# 设定过滤器
# 指定贴有 10 标签 (handle) 的封包,归类到 10:10 类别,以此类推
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


/etc/coyote/firewall.local

# uploads
# 设定上传方面,先利用 iptables 给封包贴标签,再交由 fw 过滤器进行过滤

iptables -t mangle -A PREROUTING -s 192.168.1.100 -j MARK --set-mark 10
iptables -t mangle -A PREROUTING -s 192.168.1.101 -j MARK --set-mark 20

# downloads
# 下载方面

iptables -t mangle -A POSTROUTING -d 192.168.1.100 -j MARK --set-mark 40
iptables -t mangle -A POSTROUTING -d 192.168.1.101 -j MARK --set-mark 50


不知道是哪里设定出了问题,下载可以被控制,而上传却不行
routeros
发表于 2007-6-19 15:29:09 | 显示全部楼层
tc class add dev eth1 parent 10:2 classid 10:10 htb rate 18kbps ceil 18kbps prio 0
tc class add dev eth1 parent 10:2 classid 10:20 htb rate 14kbps ceil 14kbps prio 1
tc class add dev eth1 parent 10:2 classid 10:30 htb rate 0kbps ceil 8kbps prio 2

你的总上传带宽是32k,却被10:10和10:20的保证带宽给全占了,10:30哪能有8k的最大带宽啊,所以你的带宽分配是失败的,QOS也就无法正常工作了。保证带宽可设小一些,最大带宽不能超过这个值:总带宽-其他类(不包括本类)的保证带宽之和。修改:

tc class add dev eth1 parent 10:2 classid 10:10 htb rate 8kbps ceil 24kbps prio 0
#这肯定准备给你自己用的,保证8k,最大24k(也就是32k-(4k+4k))

tc class add dev eth1 parent 10:2 classid 10:20 htb rate 4kbps ceil 20kbps prio 1
#保证4k,最大20k(也就是32k-(8k+4k))

tc class add dev eth1 parent 10:2 classid 10:30 htb rate 4kbps ceil 20kbps prio 2
#保证4k,最大20k(也就是32k-(8k+4k))

当然,最大带宽可以设小一些,但不能再大了

[ 本帖最后由 bfrader 于 2007-6-19 15:30 编辑 ]
routeros
回复

使用道具 举报

发表于 2007-7-11 07:28:46 | 显示全部楼层
正常的 PPP0E拨号 断线后再拨号 是限制不了上行的
routeros
回复

使用道具 举报

发表于 2012-2-16 17:06:55 | 显示全部楼层
楼上的朋友,我发现coyote的外网不管是static ip还是PPPOE,上传速度都无法控制,能否帮忙看看代码有什么问题,谢谢。
tc qdisc add dev eth1 root handle 1: htb r2q 1
tc class add dev eth1 parent 1: classid 1:1 htb rate 30kbit burst 5kbit
tc filter add dev eth1 parent 1: protocol ip prio 16 u32 match ip src 192.168.1.225/32 flowid 1:1
tc class add dev eth1 parent 1: classid 1:2 htb rate 30kbit burst 5kbit
tc filter add dev eth1 parent 1: protocol ip prio 16 u32 match ip src 192.168.1.226/32 flowid 1:2
routeros
回复

使用道具 举报

发表于 2012-2-16 17:08:25 | 显示全部楼层
本帖最后由 芝麻 于 2012-2-16 17:12 编辑

但如果采用把数据包打标后交给限速队列来处理是可行的,如
tc qdisc add dev eth1 root handle 1: htb default 255
tc class add dev eth1 parent 1: classid 1:256 htb rate 128kbps ceil 128kbps
tc class add dev eth1 parent 1:256 classid 1:1 htb rate 8kbps ceil 12kbps prio 3
tc filter add dev eth1 parent 1: protocol ip prio 100 handle 1 fw classid 1:1
在自定义防火墙规则里打标
iptables -t mangle -A PREROUTING -s 192.168.111.1/32 -j MARK --set-mark 1
routeros
回复

使用道具 举报

发表于 2014-11-29 12:38:37 | 显示全部楼层
楼主威武  知道我辈学习
routeros
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 18:52 , Processed in 0.060374 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

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