NSX 为 VTEP VMkernel 网卡创建分布式虚拟端口组以准备为 VXLAN 选择的 vSphere Distributed Switch。

VTEP 的绑定策略、负载平衡方法、MTU 和 VLAN ID 是在 VXLAN 配置期间选择的。绑定和负载平衡方法必须与为 VXLAN 选择的 DVS 配置相匹配。

MTU 必须设置为至少 1600,并且不小于在 DVS 上已配置的大小。

创建的 VTEP 数取决于选择的绑定策略和 DVS 配置。

VXLAN 准备期间的常见问题

由于以下几个原因,VXLAN 准备可能会失败:
  • 为 VXLAN 选择的绑定方法与 DVS 支持的方法不匹配。要查看支持的方法,请参见《NSX 网络虚拟化设计指南》,网址为 https://communities.vmware.com/docs/DOC-27683
  • 为 VTEP 选择的 VLAN ID 不正确。
  • 选择了 DHCP 以分配 VTEP IP 地址,但没有可用的 DHCP 服务器。
  • 缺少 VMkernel 网卡。按照VXLAN VMkernel 网卡不同步中所述,解决该错误。
  • VMkernel 网卡具有错误的 IP 地址。按照https://kb.vmware.com/kb/2137025中所述,解决该错误。
  • 为 VTEP 选择的 MTU 设置不正确。您应该按照本主题后面所述调查 MTU 是否不匹配。
  • 选择的 VXLAN 网关不正确。您应该按照本主题后面所述调查在配置 VXLAN 网关时是否出错。

重要的端口号

VXLAN UDP 端口用于 UDP 封装。在 NSX 6.2.3 之前,默认 VXLAN 端口号为 8472。在 NSX 6.2.3 中,新安装的默认 VXLAN 端口号更改为 4789。在使用硬件 VTEP 的 NSX 6.2 和更高版本的安装中,您必须使用 VXLAN 端口号 4789。有关更改 VXLAN 端口配置的信息,请参阅《NSX 管理指南》中的“更改 VXLAN 端口”。

在主机没有任何需要控制器连接的活动虚拟机时,控制层面状态显示为 disabled

可以使用 show logical-switch 命令查看主机上的 VXLAN 详细信息。有关详细信息,请参见《NSX 命令行界面参考》。

如果未在主机中填充需要连接到控制器群集以转发表信息的任何虚拟机,则 show logical-switch host hostID verbose 命令将控制层面状态显示为 disabled

Network count:  18
VXLAN network:  32003
Multicast IP:   0.0.0.0
Control plane:  Disabled  <<========
MAC entry count:        0
ARP entry count:        0
Port count:     1

在配置 VXLAN 网关时出错

如果在网络和安全 > 安装和升级 > 主机准备 > 配置 VXLAN (Networking & Security > Installation and Upgrade> Host Preparation > Configure VXLAN) 中使用静态 IP 池配置 VXLAN,并且配置无法在 VTEP 上设置 IP 池网关,主机群集的 VXLAN 配置将进入“错误 (红色)”状态。错误消息为“无法在主机上设置 VXLAN 网关”(VXLAN Gateway cannot be set on host),错误状态为“VXLAN_GATEWAY_SETUP_FAILURE”。

在 REST API 调用 GET https://<nsxmgr-ip>/api/2.0/nwfabric/status?resource=<cluster-moid> 中,VXLAN 状态如下所示:

<nwFabricFeatureStatus>
<featureId>com.vmware.vshield.nsxmgr.vxlan</featureId>
  <featureVersion>5.5</featureVersion>
  <updateAvailable>false</updateAvailable>
  <status>RED</status>
  <message>VXLAN Gateway cannot be set on host</message>
  <installed>true</installed>
  <enabled>true</enabled>
  <errorStatus>VXLAN_GATEWAY_SETUP_FAILURE</errorStatus>
</nwFabricFeatureStatus>

解决办法:要解决该错误,可以使用两种方法。

  • Option 1:移除主机群集的 VXLAN 配置,确保正确配置并且可访问底层网关以修复 IP 池中的网关设置,然后为主机群集重新配置 VXLAN。
  • Option 2:执行以下步骤。
    1. 通过确保网关配置正确且可访问来修复 IP 池中的基础网关设置。
    2. 将主机置于维护模式,确保主机上没有任何活动的虚拟机流量。
    3. 从主机中删除 VXLAN VTEP。
    4. 将主机退出维护模式。如果将主机退出维护模式,则会在 NSX Manager 上触发创建 VXLAN VTEP 的过程。NSX Manager 将尝试在主机上重新创建所需的 VTEP。

调查 MTU 不匹配问题

  • 运行以下命令以验证是否将 MTU 配置为 1600 或更高:

    ping ++netstack=vxlan -d -s 1572 -I <vmkx hostname_or_IP>

    其中 vmkx 是 VMkernel 端口的 ID,hostname_or_IP 是 VMkernel 端口的 IP 或主机名。

    这样,您就可以检查所有上行链路的有效性。如果在多 VTEP 环境中工作,您可以从每个可能的 VTEP VMkernel 源/目标接口中运行 ping 命令以验证所有路径,从而验证所有上行链路。

  • 检查物理基础架构。很多时候,可以更改物理基础架构配置以解决问题。
  • 确定该问题是仅限于单个逻辑交换机,还是其他逻辑交换机也会受到影响。验证该问题是否影响所有逻辑交换机。

有关 MTU 检查的详细信息,请参见NSX 升级指南中的“验证 NSX 工作状态”。