我被 SYN 洪水击中,几乎杀死了我的 ipvs 负载均衡器的网络堆栈(80K 数据包/秒)。“ksoftirqd”进程占用了 100% 的 CPU,机器几乎无法响应网络。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
除了零窗口大小外,我在洪水中找不到共同点,这可能是过滤的一个钩子。
- ksoftirqd 确实是瓶颈吗?
- 有没有办法在 linux box 到达 ksoftirqd bottelenck 之前对其进行过滤?
- 如果不是,我如何在我的 Cisco 6509 上过滤窗口大小 == 0?
谢谢!
好的,所以瓶颈原来是 iptables 规则/nat/连接跟踪。
以此为第一条规则,机器上的负载显着下降。