通过使用一组 CLI 命令,操作员可以检查 NSX 路由子系统的各个部分的运行状态。

由于 NSX 路由子系统的分布式特性,可以在各种 NSX 组件上访问一些 CLI。从 NSX 6.2 版开始,NSX 还具有一个集中式 CLI,可帮助缩短访问和登录到各种分布式组件所需的“行程时间”。它可以从一个位置中访问大多数信息:NSX Manager shell。

检查必备条件

每个 ESXi 主机必须满足两个主要的必备条件:
  • 连接到 DLR 的任何逻辑交换机正常工作。
  • 已成功为 VXLAN 准备 ESXi 主机。

逻辑交换机运行状况检查

NSX 路由与 NSX 逻辑交换配合使用。要验证连接到 DLR 的逻辑交换机是否正常工作,请执行以下操作:
  • 查找连接到相关 DLR 的每个逻辑交换机的分段 ID (VXLAN VNI),例如,5004..5007。

分段 ID 依次为 5004、5005、5006 和 5007 的逻辑交换机 A、B、C 和 D 的状态为“正常”(绿色)。

  • 在运行该 DLR 提供服务的虚拟机的 ESXi 主机上,检查连接到该 DLR 的逻辑交换机的 VXLAN 控制平面的状态。
# esxcli network vswitch dvs vmware vxlan network list --vds-name=Compute_VDS
VXLAN ID  Multicast IP               Control Plane                        Controller Connection  Port Count  MAC Entry Count  ARP Entry Count
--------  -------------------------  -----------------------------------  ---------------------  ----------  ---------------  ---------------
    5004  N/A (headend replication)  Enabled (multicast proxy,ARP proxy)  192.168.110.201 (up)            2                2                0
    5005  N/A (headend replication)  Enabled (multicast proxy,ARP proxy)  192.168.110.202 (up)            1                0                0
    5006  N/A (headend replication)  Enabled (multicast proxy,ARP proxy)  192.168.110.203 (up)            1                1                0
    5007  N/A (headend replication)  Enabled (multicast proxy,ARP proxy)  192.168.110.202 (up)            1                0                0

检查每个相关 VXLAN 的以下内容:

  • 对于混合或单播模式下的逻辑交换机:
    • Control Plane 为“Enabled”。
    • 列出了“multicast proxy”和“ARP proxy”;即使禁用了 IP 发现,也会列出“ARP proxy”。
    • 在“Controller”下面列出了有效的控制器 IP 地址,并且“Connection”为“up”。
  • “Port Count”正确无误 - 至少为 1 个,即使在连接到相关逻辑交换机的该主机上没有虚拟机。该端口为 vdrPort,这是连接到 ESXi 主机上的 DLR 内核模块的特殊 dvPort。
  • 运行以下命令以确保 vdrPort 连接到每个相关的 VXLAN。
~ # esxcli network vswitch dvs vmware vxlan network port list --vds-name=Compute_VDS --vxlan-id=5004
Switch Port ID  VDS Port ID  VMKNIC ID
--------------  -----------  ---------
      50331656  53                   0
      50331650  vdrPort              0


~ # esxcli network vswitch dvs vmware vxlan network port list --vds-name=Compute_VDS --vxlan-id=5005
Switch Port ID  VDS Port ID  VMKNIC ID
--------------  -----------  ---------
      50331650  vdrPort              0
  • 在上面的示例中,VXLAN 5004 具有一个虚拟机和一个 DLR 连接,而 VXLAN 5005 仅具有一个 DLR 连接。
  • 检查是否将相应的虚拟机正确连接到对应的 VXLAN,例如,VXLAN 5004 上的 web-sv-01a。
~ # esxcfg-vswitch -l
DVS Name         Num Ports   Used Ports  Configured Ports  MTU     Uplinks
Compute_VDS      1536        10          512               1600    vmnic0

  DVPort ID           In Use      Client
[..skipped..]
  53                  1           web-sv-01a.eth0

VXLAN 准备检查

作为 ESXi 主机的 VXLAN 配置的一部分,还会安装和配置 DLR 内核模块,并将其连接到为 VXLAN 准备的 DVS 上的 dvPort。

  1. 运行 show cluster all 以获取集群 ID。
  2. 运行 show cluster cluster-id 以获取主机 ID。
  3. 运行 show logical-router host hostID connection 以获取状态信息。
nsxmgr-01a# show logical-router host <hostID> connection

Connection Information:
-----------------------

DvsName           VdrPort           NumLifs  VdrVmac
-------           -------           -------  -------
Compute_VDS       vdrPort           4        02:50:56:56:44:52
    Teaming Policy: Default Teaming
    Uplink   : dvUplink1(50331650): 00:50:56:eb:41:d7(Team member)


   Stats : Pkt Dropped      Pkt Replaced     Pkt Skipped
   Input : 0                0                1968734458
  Output : 303              7799             31891126
  • 启用了 VXLAN 的 DVS 将创建一个 vdrPort,它由该 ESXi 主机上的所有 DLR 实例共享。
  • “NumLifs”指的是位于该主机上的所有 DLR 实例中的 LIF 总和。
  • “VdrVmac”是 DLR 在所有实例中的所有 LIF 上使用的 vMAC。该 MAC 在所有主机上是相同的。在 ESXi 主机外部的物理网络中传输的任何帧中,不会看到该内容。
  • 对于启用了 VXLAN 的 DVS 的每个 dvUplink,具有一个匹配的 VTEP;但使用 LACP/以太通道成组模式时除外,此时,仅创建一个 VTEP,而与 dvUplink 数无关。
    • 在离开主机时 DLR 路由的流量(源 MAC = vMAC)将源 MAC 更改为相应 dvUplink 的 pMAC。
    • 请注意,将使用原始虚拟机的源端口或源 MAC 确定 dvUplink(这是在 DVS 元数据中为每个数据包保留的)。
    • 如果在主机上具有多个 VTEP 并且某个 dvUplink 发生故障,与故障 dvUplink 关联的 VTEP 以及绑定到该 VTEP 的所有虚拟机将移动到剩下的某个 dvUplink。这样做是为了避免与将虚拟机移动到不同 VTEP 有关的控制平面更改发生泛洪。
  • 每个“dvUplinkX”旁边的“()”中的数字是 dvPort 编号。这对于单个上行链路上的数据包捕获非常有用。
  • 为每个“dvUplinkX”显示的 MAC 地址是与该 dvUplink 关联的“pMAC”。该 MAC 地址用于来自于 DLR 的流量,例如,DLR 生成的 ARP 查询以及在离开 ESXi 主机时 DLR 路由的任何数据包。可以在物理网络上看到该 MAC 地址:直接(如果 DLR LIF 具有 VLAN 类型)或从 VXLAN LIF 的 VXLAN 数据包中。
  • Pkt Dropped/Replaced/Skipped 指的是与 DLR 内部实施详细信息有关的计数器,通常不用于故障排除或监控。