免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: platinum
打印 上一主题 下一主题

[网络管理] 谈一下如何利用iptables限制速度(不用tc) [复制链接]

论坛徽章:
0
51 [报告]
发表于 2005-05-08 21:23 |只看该作者

谈一下如何利用iptables限制速度(不用tc)

原帖由 "JohnBull" 发表:
-m limit的算法就是TBF,tc也有这个算法。
但是用limit的时候往往都是一下写两条规则,而且还不一定匹配所有数据包,会给很多无辜的包带来延迟,不划算。


可否详细说明一下这个TBF算法?似乎资料很少。

论坛徽章:
0
52 [报告]
发表于 2005-09-26 13:47 |只看该作者

谈一下如何利用iptables限制速度(不用tc)

可以看到这么多版主在一起交流真能学到很多东西。

论坛徽章:
0
53 [报告]
发表于 2006-01-07 07:09 |只看该作者
问个问题行不?
对进入本机ETH0的数据限制为100/S用TC怎么实现??

论坛徽章:
0
54 [报告]
发表于 2006-07-25 06:03 |只看该作者
经测试,这个办法很有效,特别是在限制BT下载导致其它网络用户速度减慢上,可以做到BT下载速度只有轻微下降其它网络用户浏览网页不受影响

论坛徽章:
0
55 [报告]
发表于 2006-07-25 23:38 |只看该作者
# Limit Platinum
iptables -A FORWARD -s 10.39.1.1 -m state --state NEW,ESTABLISHED,RELATED -m limit --limit 20/s -j ACCEPT
iptables -A FORWARD -s 10.39.1.1 -j DROP

只能针对单IP 如果-s 10.39.1.0/24 段的怎么实现?

论坛徽章:
0
56 [报告]
发表于 2006-07-25 23:39 |只看该作者
原帖由 bleach 于 2006-7-25 23:38 发表
# Limit Platinum
iptables -A FORWARD -s 10.39.1.1 -m state --state NEW,ESTABLISHED,RELATED -m limit --limit 20/s -j ACCEPT
iptables -A FORWARD -s 10.39.1.1 -j DROP

只能针对单IP 如果-s 10.39.1. ...

IP 换成 IP 段
iptables -A FORWARD -s 10.39.1.0/24 -m limit --limit 20/s -j ACCEPT
iptables -A FORWARD -s 10.39.1.0/24 -j DROP

论坛徽章:
0
57 [报告]
发表于 2006-07-26 04:36 |只看该作者
原帖由 platinum 于 2006-7-25 23:39 发表

IP 换成 IP 段
iptables -A FORWARD -s 10.39.1.0/24 -m limit --limit 20/s -j ACCEPT
iptables -A FORWARD -s 10.39.1.0/24 -j DROP


..........

开始我这样想的:
这样会段内其中一个IP limit > 20/s ,则也执行啦 -s 10.39.1.0/24 -j DROP,是不是整个段内用户都受这条drop语句波及

后来想到包是按顺序匹配的 limit >20/s 后 drop的只是当前包,对 limit <20 的包根本干预不到。

不过,drop掉的包会重新发吧

另外 limit 的限制每秒多少个 我不知道该设定到多少合适。这个限制界限数是根据什么求出来的?

论坛徽章:
0
58 [报告]
发表于 2006-07-26 08:15 |只看该作者
原帖由 bleach 于 2006-7-26 04:36 发表
开始我这样想的:
这样会段内其中一个IP limit > 20/s ,则也执行啦 -s 10.39.1.0/24 -j DROP,是不是整个段内用户都受这条drop语句波及

是,tc 也是如此

后来想到包是按顺序匹配的 limit >20/s 后 drop的只是当前包,对 limit <20 的包根本干预不到。



不过,drop掉的包会重新发吧

是,tc 也是如此,只不过 tc 有个很小的缓存队列,大小很有限,当缓存不够的时候也是丢包处理,届时也会重传,除非修改 window 参数,但这个只对 TCP 协议有效,对 UDP 无效,且 window 的计算很复杂,我也还没弄明白

另外 limit 的限制每秒多少个 我不知道该设定到多少合适。这个限制界限数是根据什么求出来的?

这是一个大概,我根据网络中的平均包大小来计算的

论坛徽章:
0
59 [报告]
发表于 2006-07-26 14:23 |只看该作者
原帖由 platinum 于 2006-7-26 08:15 发表

是,tc 也是如此





是,tc 也是如此,只不过 tc 有个很小的缓存队列,大小很有限,当缓存不够的时候也是丢包处理,届时也会重传,除非修改 window 参数,但这个只对 TCP 协议有效,对 UDP 无效,且  ...



我多条线 不等的带宽 要如何限制?
比如 eth1是3M eth2是30M 这样怎么能用一个 limit 数限制呢?

记得你有副负载均衡的下载图 多条ADSL 我对外三条出口 我一直不知道怎么用linux做出三条都使用起来的均衡方法
只能手动 加路由策略 一条线拥挤 另一条线闲置 手动改不是办法。。

请把你那次做的均衡方法share一下 十分感谢

[ 本帖最后由 bleach 于 2006-7-26 14:28 编辑 ]

论坛徽章:
0
60 [报告]
发表于 2006-07-26 14:59 |只看该作者
限制和是否多条线路没关系,要学会变通

多链路均衡的做法说过很多遍了,不再多说
http://bbs.chinaunix.net/viewthr ... platinum&page=1
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP