---
title: "Microsoft NLB VMware替代方案：解决组播和单播问题"
canonical: "https://safekit.eviden.com/zh-hans/best-practises/microsoft-nlb-vmware-multicast-unicast-alternative/"
description: "在 VMware 中为Microsoft NLB 多播或单播功能而苦恼？ SafeKit提供了一种无需 SAN 的farm集群作为简单替代方案。无需静态 ARP 条目、MAC 地址欺骗或特殊网络配置，即可在Windows和Linux上实现自动负载均衡和故障转移。"
category: "best-practises"
lang: "zh-hans"
topics: "Microsoft NLB 多播模式, Microsoft NLB 单播模式, 替代方案为SafeKit, SafeKit 集群在 farm 模式下如何与 Windows 配合使用？"
---

# Microsoft NLB VMware替代方案：多播和单播问题已解决 {#microsoft-nlb-vmware-alternative-multicast-and-unicast-issues-solved}

## Microsoft NLB 多播模式 {#microsoft-nlb-multicast-mode}

如 VMware 知识库中关于网络负载均衡 (NLB) 多播模式配置的文档（ [ ](<https://knowledge.broadcom.com/external/article?articleNumber=414968>)所述，您需要在交换机或路由器上为连接到集群的每个端口手动配置静态 ARP 解析。在未知的网络环境中部署 NLB 多播模式Microsoft可能是一项复杂而艰巨的任务。

## Microsoft NLB 单播模式 {#microsoft-nlb-unicast-mode}

使用Microsoft NLB 单播模式时，必须配置 ESXi/ESX 主机，使其在任何虚拟机启动时都不发送 RARP 数据包。这就是为什么[ Microsoft NLB 在 VMware ](<https://knowledge.broadcom.com/external/article/344421/microsoft-nlb-not-working-properly-in-un.html>)的单播模式下无法正常工作的原因。

## 替代方案为SafeKit {#alternative-with-safekit}

[ SafeKit ](<https://safekit.eviden.com/zh-hans/best-practises/how-a-virtual-ip-address-works/>)虚拟 IP 地址配置无需任何特殊网络配置，网络负载均衡可在任何环境下运行。当需要在未知的基础架构（例如未知交换机或路由器、物理服务器或虚拟服务器）中部署该解决方案时，这是一个重要的特性。

## SafeKit 集群在 <span class="notranslate farm-term" translate="no">farm</span> 模式下如何与 Windows 配合使用？ {#safekit-farm-cluster}

### <span class="notranslate farm-term" translate="no">farm</span> 模式集群中的虚拟 IP 地址 {#virtual-ip-address-farm}

![SafeKit 集群如何实现 Windows网络负载均衡和故障转移](https://safekit.eviden.com/wp-content/uploads/2023/02/safekit-up-up-up-300.png "w:300")

在上图中，Windows 应用程序在 3 台服务器上运行（3 是一个示例，也可以是 2 台或更多）。用户连接到虚拟 IP 地址。

[虚拟 IP 地址](https://safekit.eviden.com/zh-hans/best-practises/how-a-virtual-ip-address-works/)在 <span class="notranslate farm-term" translate="no">farm</span> 模式集群中的每台服务器上本地配置。  
所有服务器都会接收到虚拟 IP 地址的输入流量，并通过每个服务器内核中的网络过滤器进行分配。

SafeKit 可检测硬件和软件故障，在发生故障时重新配置网络过滤器，并提供可配置的应用程序检查器和恢复脚本。

### 网络过滤器中的负载均衡 {#network-load-balancing}

网络过滤器中的网络负载均衡算法基于客户端数据包的标识（客户端 IP 地址、客户端 TCP 端口）。根据客户端数据包输入的标识，服务器中的一个过滤器接受该数据包；其他服务器中的其他过滤器拒绝该数据包。

一旦数据包被服务器上的过滤器接受，只有该服务器的 CPU 和内存会被响应客户端请求的 Windows 程序使用。输出消息直接从应用程序服务器发送到客户端。

如果服务器发生故障，<span class="notranslate farm-term" translate="no">farm</span> 心跳协议会重新配置网络负载均衡群集中的筛选器，以重新平衡剩余可用服务器上的流量。

### 有状态或无状态应用程序 {#stateful-stateless}

对于有状态的 Windows 程序，存在会话亲和性。同一客户端必须连接到同一服务器上的多个 TCP 会话，才能在服务器上检索其上下文。在这种情况下，SafeKit 负载均衡规则配置在客户端 IP 地址上。因此，同一客户端始终连接到同一服务器上的多个 TCP 会话。不同的客户端分布在 <span class="notranslate farm-term" translate="no">farm</span> 中的不同服务器上。

对于无状态 Windows 程序，没有会话亲和性。同一客户端可以通过多个 TCP 会话连接到服务器 <span class="notranslate farm-term" translate="no">farm</span> 中的不同服务器。服务器上不会在会话之间存储本地上下文。在这种情况下，SafeKit 负载均衡规则配置在 TCP 客户端会话标识上。此配置最适合在服务器之间分配会话，但它需要一个没有会话亲和性的 TCP 服务。

### 如何在 <span class="notranslate farm-term" translate="no">farm</span> 模式下为 Windows 配置 SafeKit 集群？ {#safekit-farm-cluster-configuration}

![SafeKit Web 控制台：用于 Windows网络负载均衡和虚拟 IP 管理的集群配置。](https://safekit.eviden.com/wp-content/uploads/2026/01/safekit-farm-cluster-config.png "w:966")

**以 <span class="notranslate farm-term" translate="no">farm</span> 模式运行的 SafeKit 集群**旨在实现服务的高可用性和可扩展性。该配置侧重于同时在两个节点上分配传入流量：

  * **负载均衡服务（宏选项卡）：** 定义要在所有节点上保持激活的特定应用程序服务（例如，Apache、IIS、Nginx）。
  * **心跳网络：** 用于检测节点是否已离开 <span class="notranslate farm-term" translate="no">farm</span>，从而触发负载的即时重新分配的通信路径。
  * **虚拟 IP（<span class="notranslate farm-term" translate="no">Farm</span> VIP）：** 与 mirror 集群不同，<span class="notranslate farm-term" translate="no">Farm</span> VIP 在节点之间共享，并使用内核过滤算法来分配网络流量。
  * **负载均衡规则：** 根据源 IP 地址或端口定义流量分配策略。
  * **检查器：** 监控应用程序的运行状况，并在检测到进程故障时触发自动重启。

### 如何监控 <span class="notranslate farm-term" translate="no">farm</span> 模式下的 SafeKit Windows 集群？ {#safekit-farm-cluster-monitoring}

![SafeKit 控制台：监控一个双节点农场模式集群，显示两个 Windows 节点均处于 UP 状态，并处于主动负载均衡。](https://safekit.eviden.com/wp-content/uploads/2026/01/safekit-farm-cluster-monitor.png "w:473")

在 <span class="notranslate farm-term" translate="no">farm</span> 模式下监控集群可提供基础设施的 **“主动-主动”** 性质的可见性，其中所有节点都为应用程序的性能做出贡献（此示例中显示 2 个节点）：

  * **UP 状态（2 个节点均为 50%）：** 在健康的 <span class="notranslate farm-term" translate="no">farm</span> 中，两个节点都处于“ UP ”（50%）状态，这意味着它们都通过共享虚拟 IP 积极接收和处理客户端请求。
  * **自动重新平衡：** 如果一个节点发生故障，控制台会直观地显示剩余节点承担 100% 的流量。没有“故障转移”延迟，因为幸存的节点已经处于活动状态（除了几秒钟的检测时间）。
  * **节点插入：** 修复后的节点重新启动时，会从“ STOP ”状态转变为“ UP ”状态，并自动开始接收其负载部分，无需管理员干预。
  * **无数据同步：** 请注意，在 <span class="notranslate farm-term" translate="no">farm</span> 模式集群中，没有“橙色”重新同步状态，因为节点预计是无状态的或共享后端数据库（可以在 mirror 集群中单独保护）。

除了简单的状态图标，该界面还提供一键式节点管理，允许您在计划维护期间手动停止或启动节点，同时共享的虚拟 IP 会自动重新分配流量，而不会中断用户活动。

