我有以下情况:
四台运行 Windows Server 2019 的 Hyper-V 主机服务器加入 Hyper-V 故障转移群集。每台服务器都具有相同的网络配置 - 管理网络(已配置群集和客户端通信)和几个其他网络 - 用于 CSV、LM 和 iSCSI 流量等,所有这些网络都仅配置了群集通信。每个网络接口都正确地位于其自己的子网/VLAN 中。管理网络接口已配置网关。其他网络没有,因为它们仅用于主机之间的群集流量。
主机可以通过所有网络接口互相看到对方。生产环境中一切运行良好,集群验证通过,集群流量正常,实时迁移也是如此。
让我困惑的是,我看到防火墙上有持续的 SMB 流量 (tcp/445),该防火墙位于管理接口的网关后面。存在持续的数据包流,其中每个 Hyper-V 主机都尝试通过 SMB 进行通信,从其管理网络 IP 地址作为源,到 CSV 网络上所有其他主机的地址作为目标。防火墙隐式拒绝了此 SMB 流量,因此任何实际的主机间集群流量都不可能绕过和通过防火墙。
问题是,防火墙根本不应该看到这种流量,因为服务器不需要通过默认网关来访问直接连接(在线)的网络。当我尝试使用 traceroute 手动测试通信时,一切都很好,数据包不会通过网关。
在我看来,无论出于何种原因,Hyper-V 都会选择无效的源接口和源 IP(对于 CSV 网络中主机的给定目标 IP),而不是选择来自同一直接连接网络的接口作为源。
由于 Hyper-V 集群的一切都在正常运行,因此很难诊断我们看到的这种额外流量。有人能解释一下吗?
答案1
这是 Windows Server 故障转移群集节点的默认行为。它将定期测试每条可能的节点间路径,以寻找更优的路由和更高的冗余度。
除非它造成了问题,否则最好让它顺其自然。我还没有探索过任何强制它停止这样做的方法,但任何解决方案都意味着大量繁重的工作,以消除相当于几个虚假数据包的干扰。SMB 多通道约束可能会起到作用。