NSX Data Center for vSphere 逻辑交换机可在完全脱离底层硬件的虚拟环境中再现交换功能(单播、多播和广播)。逻辑交换机在提供可连接虚拟机的网络连接方式上类似于 VLAN。如果将这些虚拟机连接到同一逻辑交换机,它们就可以通过 VXLAN 相互通信。每个逻辑交换机都有一个类似 VLAN ID 的分段 ID。但与 VLAN ID 不同的是,分段 ID 的数量可能多达 1600 万个。

添加逻辑交换机时,务必记住您正在构建的特定拓扑。例如,以下简单拓扑显示了两个连接到一个分布式逻辑路由器 (DLR) 的逻辑交换机。在此图中,每个逻辑交换机都连接到一个虚拟机。两个虚拟机可以位于不同主机群集或同一主机群集中的不同主机或同一主机上。如果 DLR 未将这些虚拟机分离开来,则虚拟机上配置的底层 IP 地址可能位于同一子网中。如果 DLR 将这些虚拟机分离开来,则虚拟机上的 IP 地址必须位于不同子网中(如示例中所示)。

在创建逻辑交换机时,除了选择传输区域和复制模式以外,您还会配置两个选项:IP 发现和 MAC 学习。

IP 发现最大限度减少各个 VXLAN 分段中(即,连接到同一逻辑交换机的虚拟机之间)的 ARP 流量泛洪。默认情况下,将启用 IP 发现。

MAC 学习在每个 vNIC 上构建一个 VLAN/MAC 对学习表。此表会作为 dvfilter 数据的一部分进行保存。在进行 vMotion 的过程中,dvfilter 会在新位置保存并存储该表。然后,交换机会针对表中的所有 VLAN/MAC 条目发出 RARP。如果正在使用中继 VLAN 的虚拟网卡,您可能希望启用 MAC 学习。

前提条件

  • 必须配置 vSphere Distributed Switch。
  • 必须安装 NSX Manager
  • 必须部署控制器。
  • 必须为 NSX 准备主机群集。
  • 必须配置 VXLAN。
  • 必须配置分段 ID 池。
  • 必须创建传输区域。

过程

  1. 登录到 vSphere Web Client。
  2. 导航到主页 (Home) > 网络和安全 (Networking & Security) > 逻辑交换机 (Logical Switches)
  3. 单击添加 (Add)新建逻辑交换机 (New Logical Switch)(新建逻辑交换机) 图标。
  4. 键入逻辑交换机的名称和可选描述。
  5. 选择要在其中创建逻辑交换机的传输区域。
    默认情况下,逻辑交换机从传输区域继承控制层面复制模式。
  6. (可选) 覆盖传输区域确定的复制模式。

    您可以将其更改为其他可用模式之一。可用模式包括单播、混合和多播。

    如果您创建的逻辑交换机在它必须传输的 BUM 流量方面具有明显不同的特性,您可能希望覆盖单个逻辑交换机继承的传输区域控制层面复制模式。在这种情况下,您可以创建一个使用单播模式的传输区域,并对此单个逻辑交换机使用混合或多播模式。

  7. (可选)启用 IP 发现以启用 ARP 抑制功能。
  8. (可选)启用 MAC 学习。
  9. 将一个虚拟机连接到逻辑交换机,方法是:选择该交换机并单击添加虚拟机 (Add Virtual Machine)HTML5 中的“添加虚拟机”图标。添加虚拟机)图标。
  10. 选择一个或多个虚拟机,然后将其从“可用对象”移到“选定的对象”中。
  11. 单击下一步 (Next),然后为每个虚拟机选择一个 vNIC。单击完成 (Finish)

结果

您创建的每个逻辑交换机都将从分段 ID 池收到一个 ID,且将创建一个虚拟线路。虚拟线路是在每个 vSphere Distributed Switch 上创建的 dvPortgroup。虚拟线路描述符包含逻辑交换机的名称和分段 ID。分配的分段 ID 将显示在以下位置中:

主页 (Home) > 网络和安全 (Networking & Security) > 逻辑交换机 (Logical Switches)中。

主页 > 网络 (Home > Networking)中:

请注意,在两个 vSphere Distributed Switch(Compute_VDS 和 Mgmt_VDS)上都会创建虚拟线路。这是因为这两个 vSphere Distributed Switch 都是与 Web 和应用程序逻辑交换机关联的传输区域的成员。

主页 > 主机和群集 > 虚拟机 > 摘要 (Home > Hosts and Clusters > VM > Summary)中:

在运行连接到逻辑交换机的虚拟机的主机上,进行登录并执行以下命令,以查看逻辑 VXLAN 配置和状态信息。

  • 显示主机特定的 VXLAN 详细信息。

    ~ # esxcli network vswitch dvs vmware vxlan list
    VDS ID                                           VDS Name      MTU  Segment ID     Gateway IP     Gateway MAC        Network Count  Vmknic Count
    -----------------------------------------------  -----------  ----  -------------  -------------  -----------------  -------------  ------------
    88 eb 0e 50 96 af 1d f1-36 fe c1 ef a1 51 51 49  Compute_VDS  1600  192.168.250.0  192.168.250.1  ff:ff:ff:ff:ff:ff              0             1
    
    注: 如果 esxcli network vswitch dvs vmware vxlan 命令生成“未知命令或命名空间 (Unknown command or namespace)”错误消息,请在主机上运行 /etc/init.d/hostd restart 命令,然后重试。

    “VDS 名称”显示主机连接到的 vSphere Distributed Switch。

    “分段 ID”是 VXLAN 使用的 IP 网络。

    “网关 IP”是 VXLAN 使用的网关 IP 地址。

    网关 MAC 地址保持为 ff:ff:ff:ff:ff:ff。

    “网络计数”保持为 0,除非 DLR 连接到逻辑交换机。

    Vmknic 计数应与连接到逻辑交换机的虚拟机数相匹配。

  • 测试 IP VTEP 接口连接,并确认 MTU 已增加,可支持 VXLAN 封装。对 vmknic 接口 IP 地址执行 ping 操作。要在 vSphere Web Client 中查找 vmknic 接口的 IP 地址,请执行以下步骤:
    1. 单击一个主机。
    2. 导航到配置 (Configure) > 网络 (Networking) > 虚拟交换机 (Virtual Switches)
    3. 选择相应的 vSphere Distributed Switch。
    4. 在分布式交换机的示意图中,查看 VXLAN 和 VMkernel 端口设置。

    -d 标记用于设置 IPv4 数据包上的不分段 (DF) 位。-s 标记用于设置数据包大小。

    root@esxcomp-02a ~ # vmkping ++netstack=vxlan -d -s 1570 192.168.250.100
    PING 192.168.250.100 (192.168.250.100): 1570 data bytes
    1578 bytes from 192.168.250.100: icmp_seq=0 ttl=64 time=1.294 ms
    1578 bytes from 192.168.250.100: icmp_seq=1 ttl=64 time=0.686 ms
    1578 bytes from 192.168.250.100: icmp_seq=2 ttl=64 time=0.758 ms
    
    --- 192.168.250.100 ping statistics ---
    3 packets transmitted, 3 packets received, 0% packet loss
    round-trip min/avg/max = 0.686/0.913/1.294 ms
    ~ #
    
    root@esxcomp-01a ~ # vmkping ++netstack=vxlan -d -s 1570 192.168.250.101
    PING 192.168.250.101 (192.168.250.101): 1570 data bytes
    1578 bytes from 192.168.250.101: icmp_seq=0 ttl=64 time=0.065 ms
    1578 bytes from 192.168.250.101: icmp_seq=1 ttl=64 time=0.118 ms
    
    --- 192.168.250.101 ping statistics ---
    2 packets transmitted, 2 packets received, 0% packet loss
    round-trip min/avg/max = 0.065/0.091/0.118 ms
    
    

后续步骤

创建一个逻辑(分布式)路由器并将其连接到逻辑交换机,以启用连接到不同逻辑交换机的虚拟机之间的连接。