首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux / conntrack性能问题

Linux / conntrack性能问题
EN

Server Fault用户
提问于 2012-10-15 11:29:50
回答 2查看 2.4K关注 0票数 9

我在实验室里用4台机器进行了测试:

  • 2台旧P4机(t1,t2)
  • 1 Xeon 5420 DP 2.5 GHz 8 GB内存(t3) Intel e1000
  • 1 Xeon 5420 DP 2.5 GHz 8 GB内存(t4) Intel e1000

测试linux防火墙的性能,因为我们在过去的几个月中被大量的系统洪水攻击咬了。所有机器运行Ubuntu12.04 64位。t1,t2,t3通过1GB/s交换机互连,t4通过额外的接口连接到t3。因此,t3模拟防火墙,t4是目标,t1,t2扮演的是生成数据包风暴的攻击者(192.168.4.199是t4):

代码语言:javascript
复制
hping3 -I eth1 --rand-source --syn --flood 192.168.4.199 -p 80

t4丢弃所有传入的数据包,以避免与网关混淆,t4的性能问题等等。我在iptraf中查看数据包状态。我已经将防火墙(t3)配置为:

  • 库存3.2.0-31-泛型#50-Ubuntu SMP内核
  • rhash_entries=33554432作为核参数
  • sysctl如下: net.ipv4.ip_forward =1 net.ipv4.route.gc_elasticity =2 net.ipv4.route.gc_timeout =1 net.ipv4.route.gc_interval =5 net.ipv4.route.gc_min_interval_ms = 500 net.ipv4.route.gc_thresh = 2000000 net.ipv4.route.max_size = 20000000

(当t3发送尽可能多的数据包时,我做了很多调整以保持t1+t2运行)。

这一努力的结果有些奇怪:

  • t1+t2设法发送每个大约200 k的数据包/S。在最好的情况下,t4的总容量为200 K,因此有一半的数据包丢失。
  • t3在控制台上几乎无法使用,尽管数据包正在通过它(大量的软irq)
  • 路由缓存垃圾收集器不可能是可预测的,并且在默认情况下被很少的数据包/S (<50k数据包/S)所淹没。
  • 激活有状态iptables规则使到达t4的分组速率降至约100 k包/S,导致75%以上的数据包丢失

这是我的主要关注点--两台旧的P4机器尽可能多地发送数据包--这意味着几乎每个网络上的人都应该能够做到这一点。

因此,我的问题是:我是否忽略了配置或测试设置中的一些重要点?对于建立防火墙系统,特别是在smp系统上,是否有其他选择?

EN

回答 2

Server Fault用户

发布于 2012-11-04 18:12:57

我将迁移到内核>= 3.6,它不再有路由缓存。这应该能解决你的一部分问题。

票数 1
EN

Server Fault用户

发布于 2012-11-04 16:53:36

您在T3上的日志设置如何?如果所有丢弃的数据包都被记录,磁盘I/O可能是原因。

因为这是一个测试环境,所以您可以在关闭T3日志记录的情况下尝试测试。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/438451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档