我在一个大型数据中心工作,并被分配对作为数据中心客户门户的 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 服务器的网站管理员向我保证没有站点被阻止。我在本地防火墙外进行了捕获,因此那里应该没有问题。
另一位技术人员设置了一台笔记本电脑并使用了门户的 IP 地址(我们将门户脱机进行测试)。笔记本电脑按预期加载 URL。我尝试加载 Firefox 以确保 HTTP GET 没有格式错误。与 IE 相同的失败。
因此,似乎不是远程 Web 服务器或网络,因为笔记本电脑没有问题。
在这一点上,我不确定要问什么其他问题或要做什么测试。
禁用 ECN(等等等等填充,因为消息太短)
不幸的是,远程“分析”问题或提出建议的信息较少。有机会从我在美国的一位同事那里获得帮助:www.wildpackets.com。他们可以向您咨询,为您提供对我们软件的评估或派人到现场完成工作。
最好的问候,莱纳斯
这个问题的最终解决方案是在门户服务器上的 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 按预期工作。