iptables的性能问题。
我们的产品在linux上使用iptables作为防火墙。对每一个IP地址,都用iptables设置防火墙规则。用一个shell脚本调用iptables命令。
现在我们老板觉得使用shell脚本的效率太低(因为我们需要在五分钟内设置10000条iptables规则)。要求我们使用C语言做一个binary的程序来做。
我有三个问题:
第一,我不知道用C语言如何做?
第二,如果在C程序中只是用fork, popen, system等来调用iptables, 效率真的会比脚本shell高吗?
第三,五分钟内设置10000条iptables规则对iptables可能吗?
欢迎大家讨论。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
自己顶一下.自己顶一下.
怎么写那么多的策略?
即使可以短时间之内实现部署那么多策略,真正数据包遍历时候的效率又是个新问题了
主要是用户太多,大约2000用户。
一个用户(IP)5条规则, 要在5分钟内注册2000个用户。
我也担心数据包遍历时候的效率。
郁闷呀。
老板只管签合同挣钱, 才不管能否实现呢、
能具体说说吗?我不是很理解这样的做法,也许有更简洁的方法
我的iptables要求在5分钟内插入大约20000条规则.(是动态的,所以不能用iptables-restore什么的)
我现在使用iptables1.2.6a的版本, 我试了一下,好像不能到达要求.
请问:
1) 如果我升级iptables, 可以提高插入规则的效率吗?
2) 我也想过用libiptc来直接操作iptables, 我想应该能提高效率.但是担心自己写的代码不稳定.
哪位大侠能否提供一些成熟的代码呢?主要是执行iptabels的-I 和-A的操作.
谢谢了.
看一下 -A 或者 -I 的时候什么慢,top 看一下,是 user 还是 system 还是 softirq
问题太高深了~~ 飘过
不知道,对于用户能不能分组.分层次将用户加入规则组中.这样是不是可以效率与速度并存.
用户--->iptables组------->组1------>组规则(iptables的具体规则accept/drop)
组2----->(iptables的具体规则accept/drop)
...........
256*256*5(256个组,256子组,每个子组5个规则),对于netfilter来说是一个相当大的匹配规模了。但这样匹配效率损失不多。
[ 本帖最后由 wysilly 于 2007-9-23 14:26 编辑 ]