这实际上只是一个关于最佳实践的问题,因为似乎存在一些混淆。我们的 Hyper-V 集群的物理主机有 4 个与 4 个子网相关的 Nic 接口。
现在,在运行最佳实践分析器时,它总是抱怨这些接口中的大多数无法相互通信。这是因为除了一个 Nic 之外,其他所有 Nic 都没有在静态设置中定义网关。我以为最佳实践是只定义一个网关,但我可能错了。
因此,问题是:
为每个服务器、每个子网或每个网卡(在集群环境中)定义一个网关是最佳做法吗?和,在集群环境中定义多个网关有什么影响?
答案1
对于集群成员共有的每个网络(在同一子网中具有 NIC),集群将创建一个集群网络并为该集群网络启用集群通信(集群心跳流量、CSV 元数据流量和重定向 CSV 流量)。集群验证向导将尝试在所有集群成员之间从所有集群网络到所有其他集群网络进行通信(这样,如果任何单个集群网络在任何集群成员上不可用,集群仍可以通过其他集群网络与该集群成员进行通信)。它无法从路由集群网络与非路由集群网络进行通信,这是意料之中的。您应该做的是确定您希望集群在哪些集群网络上进行通信,并禁用所有其他集群网络上的集群通信。您可以在每个集群网络的属性中执行此操作。例如,您的 iSCSI 网络不需要为集群通信启用(事实上,您不希望集群通信发生在您的 iSCSI 网络上)。
如果您为每个物理网卡分配了一个 IP 地址(可能在不同的子网中,也可能在不同的 VLAN 中),那么这就是您拥有多个集群网络的原因,也是集群尝试在所有集群之间进行通信的原因。
您是否使用专用 NIC 来处理 iSCSI 流量?您是否有专用 NIC 来处理 LiveMigration 流量?CSV 流量呢?
您能告诉我们您是如何配置 Hyper-V 虚拟交换机的吗?您是否允许管理操作系统共享所有虚拟交换机?您创建了多少个虚拟交换机?您是否为每个物理 NIC 都创建了一个虚拟交换机?
答案2
最好只有一个默认网关。如果该网关与其他三个接口不匹配,或者路由表中没有明确的路由,则该网关将成为发送流量的接口。
如果您有特定子网的流量不应流出“默认网关”,请使用路线命令来更新路由表。具体来说route add
。
指定多个默认网关将影响路由。使用该route print
命令验证系统的路由表没有任何冲突的条目。
答案3
让我看看我是否可以解释这一点,同时给出的所有其他答案也都是有效的。
因此您有 4 个 NIC,因此您配置了 4 个子网,因为子网的掩码将决定服务器可以(直接)发送数据包的网络的大小。
如果发生服务器想要将数据包发送到未直接连接到配置的子网的地址的情况,则需要一个“网关”来发送该数据包。
每个 NIC 属性都有一个名为“默认网关”的字段,这有点误导,并且来自于服务器通常只有一个 NIC 的时代。
配置的一个或多个子网可能具有路由器(即网关)
因此,如果需要将数据包发送到配置的子网之外的地址,您需要确定使用哪个路由器。
如果您只有一个路由器,位于一个子网上,那么就很简单:在连接到该子网的 NIC 上,在“默认网关”框中输入路由器的 IP 地址。对于所有其他 NIC,请将此字段留空
完成此操作后,所有发往 4 个子网之外的数据包都将被发送到该路由器,因为该路由器现在是主机的“默认网关”。
更高级:如果您有多个路由器,位于多个子网上,情况会变得稍微复杂一些。如果是这种情况,则需要使用命令将多个网关添加到路由表ROUTE ADD
。并且您需要输入一个metric
来确定哪一个是“默认网关”(即具有最低度量的网关)。
摘要:因此,对于给定的主机,只有一个“默认网关”,它是“路由表”中具有“最低度量”的“网关”。
简单配置:只需在其中一个 NIC 中填写网关,其他 NIC 留空。
metric
高级配置:使用命令指定添加路由器作为网关ROUTE ADD
。
检查:您可以使用ROUTE PRINT
命令检查路由表以查看其配置方式。
HTH,埃德温。