停用 SYN 泛洪机制

停用 SYN 泛洪机制

我正在运行一个在端口 59380 上运行服务的服务器。有超过 1000 台机器连接到该服务。一旦我需要重新启动服务,所有这些机器都会同时连接。

这造成了一些麻烦,因为我在 kern.log 中看到了这个日志条目

TCP: Possible SYN flooding on port 59380. *Sending cookies*.  Check SNMP counters.

因此我将 sysctl 更改net.ipv4.tcp_syncookies为 0,因为端点无法正确处理 tcp syn cookies。最后,我重启了网络,以便在生产环境中获取更改

下次我必须重新启动服务时,将记录以下消息

TCP: Possible SYN flooding on port 59380. *Dropping request*.  Check SNMP counters.

我如何才能阻止系统执行此类操作?所有必要的对策均由 iptables 完成...

答案1

不要禁用 SYN cookies,这是非常适得其反的,正如你所看到的,主机不是回退到 cookie 套接字,而是简单地丢弃它。

正确的做法是调整net.ipv4.tcp_max_syn_backlog到足够高的值,以便不再发出此警告。

您可能还需要调整 TCP 堆栈以获得更多内存——粗略地在 Google 上搜索“Linux TCP Tuning”应该可以满足您的需要。

答案2

另请阅读以下页面。也许应该再检查一下。

http://lwn.net/Articles/277146/

https://lkml.org/lkml/2008/2/5/167

相关内容