YunThanatos 发表于 2015-01-07 14:28

需要对一个防火墙进行synflood测试 现在程序能达到400,000pps 如何进一步提高发包速度

本帖最后由 YunThanatos 于 2015-01-07 20:05 编辑

这是发起synflood的机器配置:
        CPU:
                Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz
                Architecture:          x86_64
                CPU(s):                24
                On-line CPU(s) list:   0-23
                Thread(s) per core:    2
                Core(s) per socket:    6
        NIC:
                05:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection

synflood程序:
        使用c语言开发的,使用system call:raw socket接口发送自定义IP头的SYN包(工作于用户空间)

现在的性能:
        threads:24 200,000pps
        threads:80 400,000pps

如何进一步提高syn发包速度? 难道用户空间发包只能到达这种程度了么?

YunThanatos 发表于 2015-01-07 15:06

之前在lvs的文档里看过一份synproxy的测试报告:
在他们的机器上,synproxy能抵挡350w pps的synflood攻击

不知道taobao的350w pps synflood的攻击是怎么产生的?是分布式DDOS还是单机DOS?
350w=3.5x10^6   每微秒能发3.5个syn攻击包如果从内核级别实现发包 理论上能到3.5ppus的速度么?

gaojl0728 发表于 2015-01-07 15:48

按照每个SYN包64字节计算, 千兆网卡的最大PPS 理论上才200W

YunThanatos 发表于 2015-01-07 17:08

回复 3# gaojl0728


    是的!千兆网卡发SYN包理论峰值约为 200w pps 谢谢提醒!
   
PS:

    在用户空间提高发包速度 目前想到的方法有:

      ·使用多进程的方法尽可能的接近网卡的性能极限了
      ·使用DDOS的方法(间接)

Godbach 发表于 2015-01-07 17:13

回复 2# YunThanatos

阿里有钱,随便上几个测试仪不就够了。还需要自己写测试程序吗?


   

Godbach 发表于 2015-01-07 17:19

回复 1# YunThanatos

我建议你先考虑优化自己程序的实现逻辑,印象中我几年用的 hping,开启几个进程,每秒几十万pps 应该是可以达到的。

你可以先编译个 hping 发送 synflood 试试它能够达到多少。


   

YunThanatos 发表于 2015-01-07 19:43

回复 6# Godbach


    刚刚测试了一下 hping的synflood在相同的机器上测试最高能达到约20w pps 它每一次发伪造包都会重新计算checksum
   
    刚才看了一下网络测试仪 确实很贵 :wink:

YunThanatos 发表于 2015-01-07 19:46

Godbach 发表于 2015-01-07 17:19 static/image/common/back.gif
回复 1# YunThanatos

我建议你先考虑优化自己程序的实现逻辑,印象中我几年用的 hping,开启几个进程, ...

### 这是测试防火墙的synflood防御策略:
   "SYN Flood保护:当设备下主机IP收到SYN报文数量,每秒超过次数设置值时(此处设置为10000),此设备下主机进入SYN Flood防御模式,此时此设备下主机会对新客户机IP的第一个SYN请求包进行丢弃,正常客户机发送第一个SYN请求包没有收到回应,会继续发送第二个SYN请求包,当设备收到此客户机的第二个SYN请求包才会放行。"

这是非常单一的syn首包丢弃策略,如果攻击者将伪造的Syn报文发送两次,这种方法就失去了效果

现在的目标是测试这个防火墙:
      
      将伪造的Syn报文间隔一小段时间后 再发一次 验证它能否穿透firewall
      这样的话 攻击程序必须得维护一个很大的伪造sip:sport的状态数组 目前好像没有发现这样的工具
      程序最后测试的时候就遇到了这个发包速度的问题了


PS:
   使用pktgen做了一下测试 64B包速度能达到 60w pps左右


Godbach 发表于 2015-01-08 11:25

回复 8# YunThanatos

不是在讨论如何提高你发包工具的速度吗,怎么转向防御策略了 :wink:

   

humjb_1983 发表于 2015-01-08 14:05

建议先分析下瓶颈在哪里,一方面是从发包程序自身角度优化,另一方面可以考虑操作操作系统层面优化。
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 需要对一个防火墙进行synflood测试 现在程序能达到400,000pps 如何进一步提高发包速度