免费注册 查看新帖 |

Chinaunix

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

[网络管理] 发布一个速度匹配的内核模块(hashspeed) [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-01-02 19:56 |只看该作者
太棒了.

希望这种帖子越来越多.

论坛徽章:
0
12 [报告]
发表于 2008-01-02 20:02 |只看该作者
原帖由 mack2050 于 2008-1-2 19:46 发表
不知道可不可以和IPRANGE一起匹配使用,我试试先!

iptables -I FORWARD 18 -m iprange --src-range 192.168.1.12-192.168.80 -m hashspeed \! --hashspeed-bytes 256K --hashspeed-mode dstip --hashspeed-na ...



你需要运行
depmod -a
否则,不会自动加载相应的内核模块

论坛徽章:
0
13 [报告]
发表于 2008-01-02 20:04 |只看该作者
谢谢,楼主,我马上试试!

论坛徽章:
0
14 [报告]
发表于 2008-01-02 20:07 |只看该作者
确实可以了,不过因为我是远程做的,所以现在还不能测试是否能达到效果,有了结果我会马上回贴的!
对了,请楼主解释一下depmod -a的意义所在?还有如果象我这样针对一段IP来做的话,如果这一段的IP当中有某一个人的流量很大的话,虽然限制了是不是还是会影响到他人,这个模块是否会有象TC一样轮询的机制,来保证其它人不受影响?

论坛徽章:
0
15 [报告]
发表于 2008-01-02 20:19 |只看该作者
原帖由 mack2050 于 2008-1-2 20:07 发表
确实可以了,不过因为我是远程做的,所以现在还不能测试是否能达到效果,有了结果我会马上回贴的!
对了,请楼主解释一下depmod -a的意义所在?还有如果象我这样针对一段IP来做的话,如果这一段的IP当中有某一个人的流 ...



就是修正各个内核模块之间的依赖关系,并生成相应的信息文件,这样,用modprobe进行加载的时候,就可以自动加载指定的模块,同时加载它依赖的所有模块。

这个只是匹配模块,没有更多的处理,更没有轮询的机制(在readme中说明得很清楚)

如果你的带宽不大,但是给每个IP设置的带宽很大(IP数*每IP带宽>总带宽)的话,就有可能出现抢占现象。


我自己监测到的也有这种情况,当网络空闲的时候,会有一些IP达到设定的带宽,而被阻止,但是当网络繁忙的时候,大部分IP都达不到设定的带宽(但是,鲜有IP会超过设定的带宽)

根据匹配原理,带宽限制不是绝对精确的,有一个浮动范围,我监测到的基本上保持在10%的范围以内。

论坛徽章:
0
16 [报告]
发表于 2008-01-02 20:28 |只看该作者
http://springwind.bhu.edu.cn:60000/hashspeed/showspeed.cgi

是一个perl写的cgi程序,可以通过它在浏览器中查看当前各个IP的数据带宽和数据包的速率(取样间隔0.5秒)

这个需要web服务器支持cgi

至于如何让这个程序正常运行,需要根据具体的web服务器来进行设定

论坛徽章:
0
17 [报告]
发表于 2008-01-02 21:02 |只看该作者
您说的这个意思是指对每一个IP限制的带宽,而不是一批IP共享这个带宽是吗?按这样理解的话,就是前面我的那个语句指的是从12-80的这些IP,每个的最高上限为200K,任一个超过了就会阻止是吗?

还有您最后这个程序具体是怎么使用的呀?

论坛徽章:
0
18 [报告]
发表于 2008-01-02 22:28 |只看该作者
原帖由 mack2050 于 2008-1-2 21:02 发表
您说的这个意思是指对每一个IP限制的带宽,而不是一批IP共享这个带宽是吗?按这样理解的话,就是前面我的那个语句指的是从12-80的这些IP,每个的最高上限为200K,任一个超过了就会阻止是吗?

还有您最后这个程序具 ...



本来就是针对每个IP的

论坛徽章:
0
19 [报告]
发表于 2008-01-02 22:33 |只看该作者
iptables -I FORWARD 18 -m iprange --src-range 192.168.1.12-192.168.80 -m hashspeed \! --hashspeed-bytes 256K --hashspeed-mode dstip --hashspeed-name dlimit -j DROP


我这句是想限制下载速度的,那么IPRANGE 应该是用--dst-range才对吧?

论坛徽章:
0
20 [报告]
发表于 2008-01-02 22:41 |只看该作者
如果想限制下载速度,你需要控制的是内网接口上的发包,mode为dstip

iptables -I FORWARD 18 -o eth1 -m iprange --dst-range 192.168.1.12-192.168.80 -m hashspeed \! --hashspeed-bytes 256K --hashspeed-mode dstip --hashspeed-name dlimit -j DROP

至于iprange的具体用法,我不太清楚

如果想控制上传速度,需要控制在内网接口上的受包,同时,需要把mode修改为srcip
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP