Microsoft NLB 在单播模式下不能正常工作
search cancel

Microsoft NLB 在单播模式下不能正常工作

book

Article ID: 344419

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction


Symptoms:

免责声明:本文为 Microsoft NLB not working properly in Unicast Mode (1556) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


当运行以单播模式配置的 Microsoft 网络负载平衡 (NLB)时,网络流量只会引导至其中一个节点。


Environment

VMware ESX Server 2.0.x
VMware ESX 4.0.x
VMware ESXi 3.5.x Embedded
VMware ESXi 4.1.x Installable
VMware vSphere ESXi 6.5
VMware vSphere ESXi 5.0
VMware ESX 4.1.x
VMware ESXi 3.5.x Installable
VMware vSphere ESXi 5.1
VMware ESXi 4.0.x Embedded
VMware ESXi 4.0.x Installable
VMware vSphere ESXi 6.0
VMware ESX Server 2.5.x
VMware vSphere ESXi 5.5
VMware ESX Server 3.5.x
VMware ESXi 4.1.x Embedded
VMware ESX Server 2.1.x
VMware ESX Server 3.0.x

Resolution

在单播模式下,分配给 Microsoft NLB 群集的所有网卡将共享通用的 MAC 地址。这要求交换机上的所有网络流量都通过端口传输(泛滥)到所有的 NLB 节点。通常,在交换机获取通过其发送网络流量的主机的 MAC 地址时,可以在交换环境中避免通过端口传输(泛滥)流量。

Microsoft NLB 群集会屏蔽群集的所有传出流量的 MAC 地址,以防交换机获取 MAC 地址。

在 ESXi/ESX 主机中,每次出现特定的操作(例如,打开虚拟机电源、遇到组合故障切换、执行特定 vMotion 操作等)时,VMkernel 都会发送一个 RARP 数据包。RARP 数据包会通知交换机有关该虚拟机的 MAC 地址。在 NLB 群集环境中,只要打开 NLB 节点,就会公开群集网卡的 MAC 地址。这会导致所有入站流量通过单个交换机端口传递到 NLB 群集的单个节点中。

要解决此问题,必须将 ESXi/ESX 主机配置为在打开其任何虚拟机电源时不发送 RARP 数据包。

注意

  • VMware 建议配置群集以使用 NLB 多播模式,即使在完成这些步骤后 NLB 单播模式可以正常工作也是如此。之所以提出此建议,是因为这些步骤中介绍的设置有可能影响虚拟机上的 vMotion 操作。此外,单播模式会强制 LAN 上的物理交换机将所有的 NLB 群集流量广播到 LAN 上的每台机器中。如果您计划使用 NLB 单播模式,请确保:

    • NLB 单播成员既可位于同一 ESX 主机上,也可位于不同 ESX 主机上。
      连接到 NLB 群集的客户端计算机必须通过物理交换机与群集通信。
      这是因为 NLB 单播依赖端口传输(泛滥)流量访问所有群集成员,并且虚拟交换机没有端口传输(泛滥)单播流量。
      要确保客户端和群集之间的流量始终通过物理交换机,客户端和 NLB 群集应位于不同的广播域上。
    • 不支持单播 NLB 虚拟机的 vMotion。
    • 端口组上的安全策略伪传输设置为接受
    • 端口组/虚拟交换机会阻止 RARP 数据包的传输,如本文后面部分所述。

  • VMware 建议在 NLB 服务器上提供两个网卡。

ESXi/ESX 3.x、4.x 和 5.x

在使用 Virtual Infrastructure (VI) Client 或 vSphere Client 打开虚拟机、组合故障切换等时,您可以阻止 ESXi/ESX 主机发送 RARP 数据包。您可以在虚拟交换机级别或端口组级别控制此设置。

要阻止虚拟交换机进行 RARP 数据包传输,请执行以下操作:

注意:此设置会影响所有使用交换机的端口组。您可以通过为端口组配置 RARP 数据包传输来覆盖各个端口组的此设置。

  1. 登录到 VI Client/vSphere Client,然后选择 ESXi/ESX 主机。
  2. 单击配置选项卡。
  3. 单击“硬件”下的网络
  4. 单击 vSwitch 的属性。将显示“vSwitch 属性”对话框。
  5. 单击端口选项卡。
  6. 单击 vSwitch,然后单击编辑
  7. 单击网卡绑定
  8. 从“通知交换机”下拉列表中选择



  9. 单击确定,然后关闭“vSwitch 属性”对话框。


要阻止端口组进行 RARP 数据包传输,请执行以下操作:

注意:此设置会覆盖您为整个虚拟交换机进行的设置。

  1. 登录到 VI Client 或 vSphere Client,然后选择 ESXi/ESX 主机。
  2. 单击配置选项卡。
  3. 单击“硬件”下的网络
  4. 单击 vSwitch 的属性。将显示“vSwitch 属性”对话框。
  5. 单击端口
  6. 单击要编辑的端口组,然后单击编辑
  7. 单击网卡绑定
  8. 从“通知交换机”下拉列表中选择



  9. 单击确定以关闭“vSwitch 属性”对话框。

ESX 2.x

  1. 登录到管理界面,然后单击选项 > 高级设置
  2. Net.NotifySwitch 的值设置为 0

    注意Net.NotifySwitch 是影响所有虚拟机的全局设置。

有关 NLB 的详细信息,请参见 Microsoft TechNet 文章 Network Load Balancing Technical Overview

注意:截至 2014 年 1 月 14 日,上述链接正确无误。如果您发现该链接已损坏,请提供反馈,VMware 员工将会更新该链接。此链接中的信息按原样提供,VMware 对于这些信息的准确性或适用性不做任何保证。

如需了解相关信息,请参见 Microsoft Network Load Balancing Multicast and Unicast operation modes (1006580)

Windows 2008 引入了一个强大的主机模型,该模型不允许不同的网卡相互通信。例如,如果请求发送到第二个网卡,并且没有默认的网关设置,则网卡不会使用第一个网卡来答复请求,即使第一个网卡上有默认的网关设置也是如此。

要更改此行为并返回 2003 模型,请在命令提示符下运行这些命令:

netsh interface ipv4 set interface "Local Area Connection" weakhostreceive=enable
netsh interface ipv4 set interface "Local Area Connection" weakhostsend=enable


其中,Local Area Connection 为网络接口的名称。

有关详细信息,请参见关于 Strong and Weak Host Models 的 Microsoft TechNet 杂志文章。

注意:截至 2014 年 1 月 14 日,上述链接正确无误。如果您发现该链接已损坏,请提供反馈,VMware 员工将会更新该链接。此链接中的信息按原样提供,VMware 对于这些信息的准确性或适用性不做任何保证。


其他信息



Additional Information

Microsoft NLB not working properly in Unicast Mode