我有一个testing设置在实验室与4台机器:
testinglinux防火墙的性能,因为在过去的几个月里,我们被一些syn-flood攻击所困扰。 所有机器运行Ubuntu 12.04 64位。 t1,t2,t3通过1GB / s交换机相互连接,t4通过额外接口与t3相连。 所以t3模拟防火墙,t4是目标,t1,t2发挥攻击者生成的分组风暴(192.168.4.199是t4):
hping3 -I eth1 --rand-source --syn --flood 192.168.4.199 -p 80
t4会丢弃所有传入的数据包,以避免与网关混淆,t4等性能问题。我观察iptraf中的数据包统计信息。 我已经configuration了防火墙(t3),如下所示:
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
(当t1 + t2发送尽可能多的数据包时,我已经调整了很多以保持t3运行)。
这种努力的结果有点奇怪:
而这也是我主要关心的 – 两台P4旧机器发送尽可能多的数据包 – 这意味着几乎networking上的每个人都应该能够做到这一点。
所以这里是我的问题:我忽略了一些importand点在configuration或在我的testing设置? build立防火墙系统,特别是在smp系统上有没有其他的select?
我将迁移到不再具有路由caching的Kernel> = 3.6。 这应该解决你的问题的一部分。
你在T3上的日志logging设置如何? 如果所有丢弃的数据包都被logging,则磁盘I / O可能是原因。
由于这是一个testing环境,因此可以尝试closuresT3日志logging的testing。