当Linux内核检测到SYN泛滥时,它会记录如下消息:
possible SYN flooding on port 80. Sending cookies
有人知道内核用于检测这一点的确切方法吗?
发布于 2011-06-23 14:05:14
如果我正确地读取sysctl/tcp内容,那么当未加标记的syn请求数超过net.ipv4.tcp_max_syn_backlog值时,它就会被绊倒。具体地说:
tcp_max_syn_backlog变量告诉您的框,有多少SYN请求保存在内存中,而我们还没有从3路握手中获得第三个数据包。tcp_max_syn_backlog变量被tcp_syncookies变量覆盖,需要打开该变量才能产生任何效果。如果服务器在高峰时间遭遇重载,您可能需要稍微增加这个值。
我认为它如此简单的原因是来自tcp_syncookies的文本:
当特定套接字的内核syn积压队列溢出时,tcp_syncookies变量用于向主机发送所谓的syncookie。这意味着,如果我们的主机被来自不同主机的多个SYN数据包淹没,syn积压队列可能会溢出,因此该函数开始发送cookie,以查看SYN数据包是否真正合法。
在我看来,这听起来就像拥有> tcp_max_syn_backlog优秀连接的syn队列一样简单。
发布于 2011-06-23 13:59:48
这篇文章 on SYN cookie可能会有所帮助。当然,你可以,检查源。
https://serverfault.com/questions/283416
复制相似问题