我在位于 Sonicwall 防火墙后面的 Intel 服务器硬件上的 Windows Core 2008 R2 服务器上虚拟化的 Server 2008 R2 上运行 IIS 7.5。
几个月以来,我们一直有少量客户(大概每周一个)联系我们,说他们无法访问网站。当这种情况发生时,我会立即开始诊断问题,以下是我发现的情况:
- 我可以访问该网站。
- 我们在其他地方的支持人员可以访问该网站。
- 据推测(因为我们没有收到他们的消息),其他客户可以访问该网站。
- 客户可以 ping 和 tracert 到服务器。
- 客户无法访问同一服务器上共享同一 IP 地址的其他网站。
- 客户可以访问同一服务器上使用不同 IP 地址的其他网站。
- iisreset 不能解决问题。
- 重置客户的路由器并不能解决问题。
- 清除防火墙的 ARP 缓存并不能解决问题。
- 更改客户的浏览器和/或重新启动他的机器并不能解决问题。
- 切换到客户路由器后面的另一台计算机并不能解决问题。
- 在 15 到 30 分钟内,问题就会神奇地得到解决,客户可以再次访问网站。
- 当失败时,客户会看到超时消息,并且 IIS 日志根本不显示该请求的记录。
其他说明:
- 该问题对哪些客户有影响似乎没有固定规律。
- 我们不使用负载平衡。
- 除了防火墙之外,IIS 前面没有其他安全软件/硬件。
- IIS VM 具有所有最新的 Windows 更新。
- 服务器核心安装具有所有最新的 Windows 更新。
- Sonicwall 正在运行最新固件。
我怀疑可能是以下问题:
- 如果客户的浏览器错误地解析了网站的 DNS,则可能导致上述所有问题。下次发生这种情况时,我将使用 Fiddler 来验证浏览器尝试连接的 IP 地址。但不确定为什么 ping 能够从命令行正确解析它。
- 也许 Sonicwall 以某种方式阻止了连接。如果是这样,它只会阻止特定的源 IP + 目标 IP + 协议,并且只持续 15 - 30 分钟。我没有获得/激活任何 Sonicwall 的高级过滤服务。我可以通过重置 Sonicwall 来测试这个理论,考虑到其他用户同时访问服务器,这是一个有点可怕的提议。
- 也许 Server Core(主机操作系统)和 Server 2008 R2(客户操作系统)之间的虚拟网络连接在一段时间内以某种方式阻塞了连接。我不确定如何测试/诊断这个问题。
- 也许主机上的 NIC 驱动程序存在一些奇怪的问题?我也不确定如何测试这个。
答案1
这不是一个令人满意的解决方案,但我最终从上面描述的虚拟化解决方案转移到了独立服务器,到目前为止问题已经消失。我不知道这是之前主机网卡的问题,还是虚拟机和主机之间的虚拟网络适配器的问题,或者完全是其他问题,但目前一切运行顺利。如果问题再次出现,我会更新这个问题/答案。