通过使用一组 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。
- 在运行该 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。
- 运行 show cluster all 以获取集群 ID。
- 运行 show cluster cluster-id 以获取主机 ID。
- 运行 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 内部实施详细信息有关的计数器,通常不用于故障排除或监控。