![Windows Server 2016 随机连接问题](https://linux22.com/image/716776/Windows%20Server%202016%20%E9%9A%8F%E6%9C%BA%E8%BF%9E%E6%8E%A5%E9%97%AE%E9%A2%98.png)
我希望有人能帮助我解决这个问题。
我有一台在 hyper-v 上运行的 Windows Server 2016 VM,主机也是 Windows Server 2016。有时通过名称 \\SERVER 连接到其他服务器上的网络共享会失败,而通过 \\IPADDRESS 连接始终有效。
该服务器连接到虚拟交换机,并专用于访问主机的 Broadcom NetXtreme 千兆适配器。
这是该站点的唯一服务器,通过 IPSEC VPN 连接到我们的主站点。
该服务器充当域控制器、DHCP 服务器、DNS 服务器和文件服务器。
我第一次注意到这个问题是在 AD 复制失败时。进一步调查发现,我无法通过 SMB \\SERVER 连接到我们主站点的域控制器,但我可以通过 \\IP 连接。通过名称 ping 服务器有效,DNS 似乎也正常工作。
连接到 \\SERVER 时返回的错误为“Windows 找不到 SERVER。请检查拼写并重试”或“未找到网络路径”
我能够通过名称连接到我们主站点上的其他服务器。
几个小时后,当我进行故障排除时,DFSR 开始无法连接到我们主站点的另一台服务器。日志中的错误“远程过程调用失败且未执行”我发现连接到此服务器时的症状与连接到第一台服务器时相同,唯一的区别是通信问题稍后才出现。
我重新启动了虚拟机,发现一切都恢复正常,AD 正在顺利复制,DFRS 已连接并正常工作。
第二天我登录服务器,发现一切再次失败,并且出现同样的网络问题。
进一步的故障排除表明,禁用并重新启用 Microsoft hyper-v 网络适配器可以恢复连接,但问题会随机再次出现。
服务器上的日志没有显示任何异常。除了来自 AD 复制、DFRS 和 DNS 的错误。DNS 错误是:
DNS 服务器遇到来自 Active Directory 的严重错误。请检查 Active Directory 是否正常运行。
DNS 服务器无法将用户数据报协议 (UDP) 套接字绑定到 172.18.0.10。事件数据是错误代码。重新启动 DNS 服务器或重新启动计算机。
DNS 服务器无法打开地址 172.18.0.10 的套接字。
验证这是否是服务器计算机的有效 IP 地址。如果无效,请使用 DNS 管理器中“服务器属性”下的“接口”对话框将其从 IP 接口列表中删除。然后停止并重新启动 DNS 服务器。(如果这是此计算机上的唯一 IP 接口,则 DNS 服务器可能由于此错误而未启动。在这种情况下,请删除注册表服务部分中的 DNS\Parameters\ ListenAddress 值并重新启动。)
DNS 服务器无法将传输控制协议 (TCP) 套接字绑定到地址 172.18.0.10。事件数据是错误代码。IP 地址 0.0.0.0 可以表示有效的“任意地址”配置,其中计算机上配置的所有 IP 地址均可供使用。重新启动 DNS 服务器或重新启动计算机。
一旦重新启动 hyper-v 网络适配器,日志中的所有错误都会消失。我假设这些错误是由连接问题引起的。
我读到过一些文章说应该在主机网卡上禁用 VMQ,我检查了一下,确实禁用了。我还尝试卸载 Microsoft hyper-v 网络适配器并重新安装,然后在主机上重新安装网卡驱动程序。
有人知道发生了什么吗?这看起来像是一个 DNS 问题,但 DNS 正在使用 nslookup 正确解析名称。
任何帮助将不胜感激。
答案1
事实证明我找错了地方。问题出在站点之间的 VPN 上。
运行数据包捕获后,我发现一些数据包没有到达目的地并重复重发。进一步调查发现,未到达目的地的数据包上设置了 DF 位。
使用 ping -f -l SIZE SERVER
我能够确定 MTU 是 1362,并观察到未通过的 DF 位设置数据包大于此值。由于无法进行分段,因此它们被路由器丢弃。
将主站点的安全设备的最大 MSS 从 1400 降低到 1350 解决了该问题。
我想,一旦我观察到网络适配器重新启动可以暂时解决问题,我就认为问题出在服务器上。
无论如何,很高兴它已经解决了,不确定这篇文章是否会对任何人有帮助,但至少它得到了答案。