本节中的步骤适用于在配置和运行时状态正常时通过覆盖网络交换机对不同管理程序上虚拟机之间的连接问题进行故障排除。

如果虚拟机位于同一管理程序上,请转到对覆盖网络逻辑交换机的 ARP 问题进行故障排除

过程

  1. 在具有逻辑交换机的控制器上运行以下命令,以查看 CCP 是否具有正确的 VTEP 列表:
    controller1> get logical-switch 5000 vtep
  2. 在每个管理程序上,运行以下 NSX CLI 命令以查看它是否具有正确的 VTEP 列表:

    在 ESXi 上:

    host1> get logical-switch <logical-switch-UUID> tep-table

    或者,您可以运行以下 shell 命令查看 VTEP 信息:

    [root@host1:~] net-vdl2 -M vtep -s vds -n VNI

    在 KVM 上:

    host1> get logical-switch <logical-switch-UUID or VNI> tep-table
  3. 检查管理程序上的 VTEP 是否可以相互执行 ping 操作。

    在 ESXi shell 提示符下:

    host1> ping ++netstack=vxlan <remote-VTEP-IP>

    在 KVM shell 提示符下:

    host1> ping <remote-VTEP-IP>

    如果 VTEP 无法相互执行 ping 操作,

    1. 请确保在创建传输节点时指定的传输 VLAN 与底层网络的期望相匹配。如果在底层网络中使用的是访问端口,那么传输 VLAN 应设置为 0。如果要指定传输 VLAN,那么应将管理程序连接到的底层网络交换机端口配置为在中继模式下接受此 VLAN。

    2. 检查底层网络连接。

  4. 检查 VTEP 之间的 BFD 会话是否已启动。

    在 ESXi 上,运行 net-vdl2 -M bfd 并查看响应。例如,

    BFD count: 1
    ===========================
    Local IP: 192.168.48.35, Remote IP: 192.168.197.243, Local State: up, Remote State: up, Local
    Diag: No Diagnostic, Remote Diag: No Diagnostic, minRx: 1000000, isDisabled: 0

    在 KVM 上,找到远程 IP 的 GENEVE 接口。

    ovs-vsctl list interface <GENEVE-interface-name>

    如果您不知道接口名称,请运行 ovs-vsctl find Interface type=geneve 返回所有隧道接口。查找 BFD 信息。

    如果找不到远程 VTEP 的 GENEVE 接口,请检查 nsx-agent 是否正在运行以及 OVS 集成网桥是否已连接到 nsx-agent。

    [root@host1 ~]# ovs-vsctl show
    96c9e543-fc68-448a-9882-6e161c313a5b
      Manager "tcp:127.0.0.1:6632"
        is_connected: true 
      Bridge nsx-managed
        Controller "tcp:127.0.0.1:6633"
          is_connected: true
        Controller "unix:ovs-l3d.mgmt"
          is_connected: true
        fail_mode: secure