我在一个大型数据中心工作,被指派对 Windows (IIS) Web 服务器进行故障排除和问题排查,该服务器是数据中心客户的门户。此门户服务器位于本地数据中心的 DMZ 上。
我无法访问门户桌面,只能依靠外部管理员与我一起进行测试并报告门户的状况。他告诉我没有配置软件防火墙或其他过滤功能。
虽然大多数远程网页都运行正常,但门户网站应该提供的几个 URL 却无法加载。我在门户网站系统上安装了 wireshark,并捕获了其中一个故障。我使用 IE 访问有问题的远程 Web 服务器之一。我可以看到从远程服务器返回的 TCP SYN-ACK,但在几次 HTTP GET 都无法获得响应后,门户网站服务器发送了重置。
(对答案 1 的回应:从防火墙外部进行的捕获;
Internet Protocol,
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
<snip>
Transmission Control Protocol
<snip>
Flags: 0x18 (PSH, ACK)
0... .... = Congestion Window Reduced (CWR): Not set
.0.. .... = ECN-Echo: Not set
看来 ECN 已被禁用。)
远程 Web 服务器的 Web 管理员向我保证不会屏蔽任何网站。我在本地防火墙外进行了捕获,因此应该不会出现问题。
另一位技术人员设置了一台笔记本电脑,并使用了门户网站的 IP 地址(我们将门户网站离线进行测试)。笔记本电脑按预期加载 URL。我尝试加载 Firefox 以确保 HTTP GET 格式正确。与 IE 一样失败。
因此,看起来这不是远程 Web 服务器或网络的问题,因为笔记本电脑没有问题。
此时,我不确定还要问什么问题或做什么测试。
答案1
禁用 ECN(因为消息太短而导致的填充)
答案2
不幸的是,远程“分析”问题或提出建议的信息太少了。有机会从我的一位美国同事那里获得帮助:www.wildpackets.com。他们可以为您提供咨询,为您提供我们软件的评估或派人到现场完成这项工作。
谨致问候,莱纳斯
答案3
这个问题的最终解决办法是在门户服务器上的 NIC 设置中找到的。具体来说,就是注册表中的 TCP 参数。我使用 netsh (netsh int ip reset resetlog.txt) 进行了全面重置。这些参数被认为是最令人感兴趣的;
“TcpMaxDataRetransmissions”=dword:0000000a “DefaultTTL”=dword:00000040 “Tcp1323Opts”=dword:00000003 “TcpWindowSize”=dword:00a00000
(删除或更改。这目前是一个巨大的 10MB 窗口大小。如果您想保留这个参数硬编码,请将其设置为 FAF0(略低于 64240 字节))。
“GlobalMaxTcpWindowSize”=dword:00a00000
执行 netsh 操作后,失败的 URL 正常运行。