欺骗性DDoS防护策略,filter窗口大小== 0?

我被一个SYN洪水所击中,几乎杀死了我的ipvs负载平衡器(80K数据包/秒)的networking堆栈。 “ksoftirqd”进程占用了100%的CPU,机器几乎没有响应networking。 一个tcpdump泄露了这样的数据包:

21:24:40.994920 IP 193.41.136.187.17435 > MY-IP.80: Flags [S], seq 3387555840, win 0, length 0 21:24:40.994940 IP 46.159.109.102.63863 > MY-IP.80: Flags [S], seq 4209573888, win 0, length 0 21:24:40.994961 IP 32.199.104.48.30346 > MY-IP.80: Flags [S], seq 512360448, win 0, length 0 

除了零窗口大小之外,我无法在洪水中find共同的分母,这可能是过滤的一个钩子。

  1. ksoftirqd的确是瓶颈?
  2. 有没有一种方法来过滤之前,它在linux框到达ksoftirqd bottelenck?
  3. 如果没有,我如何过滤我的思科6509上的窗口大小== 0?

谢谢!

好吧,所以瓶颈竟然是iptables规则/ nat /连接跟踪。

 -A INPUT -p tcp -m tcp --tcp-flags SYN -m u32 --u32 0x6&0xff=0x6&&0x4&0x1fff=0x0&&0x0>>0x16&0x3c@0xc&0xffff=0x0 -j DROP 

作为第一条规则,机器上的负载显着下降。