Win 2012 R2 / IIS 8.5 间歇性连接被拒绝

Win 2012 R2 / IIS 8.5 间歇性连接被拒绝

当用户尝试打开我们的网站时,我们遇到了连接被拒绝的问题。这个问题随机发生,大约每月一两次,并且会持续几个小时。此外,当发生这种情况时,几乎所有连接都会因连接被拒绝错误而被拒绝。但同时也有成功的连接。

  • 操作系统:Win 2012 R2 Standard,托管于 ESXI 6
  • IIS 8.5
  • Web 服务器正在托管 ASP.NET 应用程序。
  • Windows 防火墙已开启。
  • 服务器上当前平均连接数:~3500(基于 Web 服务\当前连接性能监视器计数器)
  • 总内存:40GB
  • CPU:30 核,2.30 GHz

发生此问题时,有足够的 RAM(超过 ~60%)和 CPU(超过 ~70%)可用。我们还检查了网络防火墙,显然流量通过网络防火墙没有问题,问题发生在服务器级别。我们甚至无法通过远程桌面并尝试在本地打开网站。

我们检查了端口耗尽问题,似乎不是这个问题。SYN 数据包数量很高,但与其他一切正常的日子类似。

这是 HTTPERR 日志的一天总结:

s-reason    COUNT(ALL *)
Timer_ConnectionIdle    462040
Timer_MinBytesPerSecond 27555
Request_Cancelled   1757
Timer_EntityBody    428
Forbidden   247
URL 130
Hostname    117
BadRequest  102
Connection_Dropped  96
Client_Reset    88
Connection_Dropped_List_Full    40
Verb    10
Header  7
Connection_Abandoned_By_ReqQueue    1

如果我们能提供任何帮助来找出我们在尝试打开此服务器上托管的网站时被拒绝连接的原因,我们将不胜感激。

答案1

您是在虚拟环境中运行,还是在物理机器中运行?(编辑,刚刚重新阅读,看到了 ESXI 6。所以它是虚拟的。)

您有一个 VMware VM,您使用的是标准安装 NIC,还是使用 VM 提供商特定的 NIC?(即:Intel 与 VMWare)

我们遇到了类似的问题,但发生时持续时间要短得多。(当运行自动脚本检查 30 个站点的启动/关闭状态时,我们的问题就暴露出来了,但只影响了六个 LWP 获取。)

(抱歉,目前还不能使用评论,因为没有它的代表)

编辑2

按照此 TechNet 链接Mohammad 发现,在 Vista 及以上版本中,SYN Attack Protect 默认处于启用状态。这是我昨天发现的,但与我昨天读到的不同的是,编辑1显然不要让它变得更具攻击性或主动性。

我采取了临时措施,在防火墙上封锁 IP,看看会发生什么。过多的 SYN_RECEIVED 连接会断开,然后最终在另一个 IP 上再次上升(正如您所预料的那样)。

编辑 1 - [可能被揭穿了?]

如果您还没有阅读下面的所有评论,看起来这正朝着 SYN 攻击的方向发展(对我们双方来说)。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\我目前正在开发服务器上试验以下更改以进行测试:

SynAttackProtecthttps://technet.microsoft.com/en-us/library/cc938202.aspx TcpMaxConnectResponseRetransmissionshttps://technet.microsoft.com/en-us/library/cc938208.aspx TcpTimedWaitDelayhttps://technet.microsoft.com/en-us/library/cc938217.aspx TcpMaxHalfOpenRetriedhttps://technet.microsoft.com/en-us/library/cc938213.aspx TcpMaxPortsExhaustedhttps://technet.microsoft.com/en-us/library/cc938214.aspx TcpTimedWaitDelayhttps://technet.microsoft.com/en-us/library/cc938217.aspx

有点像这里详述的内容:https://alnitech.com/news/how-to-protect-your-windows-server-from-syn-flood/

有用的提示 - 一些 TCP / UDP 端口用法。特别是如果您正在考虑增加临时范围内的端口。(即netsh int ipv4 set dynamicportrange tcp start=45536 num=20000:) https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

相关内容