免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3574 | 回复: 9
打印 上一主题 下一主题

[网络管理] iptables过滤表性能问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-06 21:22 |只看该作者 |倒序浏览
我在FORWARD链上配置100条简单规则(源IP,目的IP,源端口,目的端口),以每秒1000pps速度发包,FORWARD链上接收速率为800多pps;
如果配置1000条、10000条简单规则,接收速率就相当低了,不超过两位数。
不知道性能为什么这么低,我自己写的过滤程序,也是使用简单的规则,在10000条规则集下可以达到8000pps的接收速率,不明白iptables的性能瓶颈出在哪里,还是我用的方式不对,各位大侠能否指教一二?
机子的配置是老赛扬2.0G 512M内存,10/100M网卡。

====================================
是我查看失误。
最后应用附件中的规则集,接收率在2000pps~4000pps之间。

[ 本帖最后由 springtty 于 2009-4-10 23:32 编辑 ]

udp_rules.zip

30.02 KB, 下载次数: 52

论坛徽章:
0
2 [报告]
发表于 2009-04-06 21:28 |只看该作者

回复 #1 springtty 的帖子

请将规则发上来分析语法问题

论坛徽章:
0
3 [报告]
发表于 2009-04-06 21:50 |只看该作者
原帖由 kns1024wh 于 2009-4-6 21:28 发表
请将规则发上来分析语法问题

刚刚增加了附件,也发你邮箱一份。
看看我这样配置是不是有问题,我这个脚本从配置文件读规则,然后一条一条的提交,提交的过程也很慢,这个可以理解。
但是我想iptables/Netfilter用的是线性匹配,速率不应该相差这么大,我听说iptables在10000条规则情况下,应该在2500~3000pps之间。

论坛徽章:
0
4 [报告]
发表于 2009-04-06 21:55 |只看该作者
数据包应该都是正确的,目的地址都能被路由。
当我把FORWARD规则清空时,速率就正常了。
对了,我是使用iptables -L -n -v 显示的。

论坛徽章:
0
5 [报告]
发表于 2009-04-06 22:05 |只看该作者

回复 #4 springtty 的帖子

是否可以使用子网的方式进行匹配呢

论坛徽章:
0
6 [报告]
发表于 2009-04-06 22:22 |只看该作者
原帖由 kns1024wh 于 2009-4-6 22:05 发表
是否可以使用子网的方式进行匹配呢

源IP是通过子网方式匹配的,其实iptables/Netfilter匹配时,都是使用smask&sip == rules.sip & rules.smask 这种比较方式吧,即都与掩码相与,然后看是否相等

论坛徽章:
0
7 [报告]
发表于 2009-04-07 12:34 |只看该作者
原帖由 springtty 于 2009-4-6 22:22 发表

源IP是通过子网方式匹配的,其实iptables/Netfilter匹配时,都是使用smask&sip == rules.sip & rules.smask 这种比较方式吧,即都与掩码相与,然后看是否相等



规则写得太没效率了,

1.新建两个链,分别为udp和tcp
2.在你做过滤的端口,filter 表的input链中将tcp和udp分别转向至上面新建的两个链,
3.分别在新建的链中应用规则,比喻你的UDP1000,使用iprange,你的那1000条规则完全可以写成50个,目地地址分别是1-20的主机写在一个range中

论坛徽章:
0
8 [报告]
发表于 2009-04-07 14:20 |只看该作者
原帖由 kevin.tan 于 2009-4-7 12:34 发表



规则写得太没效率了,

1.新建两个链,分别为udp和tcp
2.在你做过滤的端口,filter 表的input链中将tcp和udp分别转向至上面新建的两个链,
3.分别在新建的链中应用规则,比喻你的UDP1000,使用iprange ...

谢谢各位的建议哈,这几个规则集是用程序生成的,我只是测试iptalbes线性匹配的性能,这并不是真正的应用。
目前我写了一个算法,做到了在10000条这种BT规则集下达70000pps的接收速率,等我写完论文答辩通过了,我会把论文给大家分享。

论坛徽章:
0
9 [报告]
发表于 2009-04-07 17:25 |只看该作者
原帖由 springtty 于 2009-4-7 14:20 发表

谢谢各位的建议哈,这几个规则集是用程序生成的,我只是测试iptalbes线性匹配的性能,这并不是真正的应用。
目前我写了一个算法,做到了在10000条这种BT规则集下达70000pps的接收速率,等我写完论文答辩通过 ...


哇,恭喜楼主,原来是牛人,献丑了,不要介意, 期待分享你的成果

ps 对于规则超过一定数目下的netfilter,可以看看这个项目http://www.hipac.org/\"\"

论坛徽章:
0
10 [报告]
发表于 2009-04-07 17:54 |只看该作者
原帖由 kevin.tan 于 2009-4-7 17:25 发表


哇,恭喜楼主,原来是牛人,献丑了,不要介意, 期待分享你的成果

ps 对于规则超过一定数目下的netfilter,可以看看这个项目http://www.hipac.org/\"\"

我不是牛人哈。刚刚看了hipac,做得挺好的,可以和iptables兼容,我这个比较学术化,离实用还有一段距离
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP