首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模拟TCP SYN洪水的问题

模拟TCP SYN洪水的问题
EN

Server Fault用户
提问于 2013-06-20 20:42:46
回答 1查看 2.5K关注 0票数 4

我试图模拟TCP洪流来优化web服务器(计划部署在AWS上)。

我设置了一个“目标”VM,禁用了iptables,并在两个本地“源”机器上运行hping (hping -p 80 -i u1000 -c 1000 -S destaddr) (在这些机器的输出链中过滤RST )。

我本来希望在目标服务器的netstat输出中看到1000条SYN_RECV记录,但我只看到了256个最大记录(每台“源”计算机256个)。我似乎在“目标”机器上碰到了一些限制,却找不到它在哪里。tcp_max_syn_backlog增加到8096。

知道这个限制是在哪里设定的吗?

EN

回答 1

Server Fault用户

发布于 2013-06-22 16:13:01

好的,所以我在webhostingtalk上问了同样的问题,虽然没有得到直接的回答,但它有助于拓宽视野:)

基本上,我忽略了应用程序级别(webserver)的限制。但是,这位来自荷兰的好心绅士们挖掘得更深,并在这里发表了他非常相关的发现:

http://blog.dubbelboer.com/2012/04/09/syn-cookies.html

基本上,web服务器(我正在使用nginx)传递一个常量(限制)来侦听函数,它在这里定义:

https://github.com/git-mirror/nginx/...x_config.h#L97

定义NGX_LISTEN_BACKLOG 511

因此,内核限制甚至还没有发挥作用。

Nginx常量是在其中编译的,所以我很快检查了apache -幸运的是它是可配置的:

http://httpd.apache.org/docs/2.0/mod...#listenbacklog

所以我把它设为8k,得到了我需要的东西(两个包丢失了):

来源:

hping -S -c 20000 -i u20 -p 80目标

目标:

netstat -nta _ grep SYN_RECV _ wc 8192 49152 729088

最后,我最初的256个连接限制实际上是因为我最初向端口22发送请求(而且sshd显然将tcp连接待办事项设置为256)。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/517385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档