主机中的分布式逻辑路由器 (DLR) 内核模块在 VXLAN 网络之间以及在虚拟网络和物理网络之间执行路由。如果需要,NSX Edge 设备 将提供动态路由功能。通用分布式逻辑路由器可在通用逻辑交换机之间提供东西向路由。

注:NSX Data Center 6.4.4 开始,在 vSphere Web Client 中,术语“通用逻辑路由器”将替换为“通用分布式逻辑路由器”。在此文档中,这两个术语可互换使用;但它们指代同一个对象。
在部署新的逻辑路由器时,请考虑以下事项:
  • NSX Data Center for vSphere 6.2 及更高版本允许将逻辑路由器路由的逻辑接口 (LIF) 连接到 VLAN 桥接的 VXLAN。
  • 逻辑路由器接口和桥接接口无法连接到 VLAN ID 设置为 0 的 dvPortgroup。
  • 给定的逻辑路由器实例无法连接到位于不同传输区域的逻辑交换机。此操作旨在确保所有逻辑交换机和逻辑路由器实例相对应。
  • 如果逻辑路由器已连接到跨多个 vSphere Distributed Switch (VDS) 的逻辑交换机,则该逻辑路由器将无法连接到支持 VLAN 的端口组。这是为了确保逻辑路由器实例与主机中的逻辑交换机 dvPortgroup 正确对齐。
  • 如果两个网络位于同一 vSphere Distributed Switch 中,则不能在两个具有相同 VLAN ID 的不同分布式端口组 (dvPortgroup) 上创建逻辑路由器接口。
  • 如果两个网络位于不同的 vSphere Distributed Switch 中,但这两个 vSphere Distributed Switch 共享相同的主机,则不应在两个具有相同 VLAN ID 的不同 dvPortgroup 上创建逻辑路由器接口。换句话说,如果两个 dvPortgroup 位于两个不同的 vSphere Distributed Switch 中,且这两个 vSphere Distributed Switch 不共享主机,则可以在两个具有相同 VLAN ID 的不同网络上创建逻辑路由器接口。
  • 如果配置了 VXLAN,则必须将逻辑路由器接口连接到配置了 VXLAN 的 vSphere Distributed Switch 上的分布式端口组。请不要将逻辑路由器接口连接到其他 vSphere Distributed Switch 上的端口组。
以下列表介绍了逻辑路由器上的接口类型(上行链路和内部)支持的功能:
  • 动态路由协议(BGP 和 OSPF)仅在上行链路接口上受支持。
  • 防火墙规则仅在上行链路接口上适用,且限制为控制和管理传至 Edge 虚拟设备的流量。
  • 有关 DLR 管理接口的详细信息,请参见知识库文章《管理接口指南:DLR 控制虚拟机 - NSX》,网址为 http://kb.vmware.com/kb/2122060
重要说明:

如果您在跨 vCenter NSX 环境中的 NSX Edge 上启用高可用性,则活动和备用 NSX Edge 设备必须位于同一个 vCenter Server 中。如果您将 NSX Edge HA 对的一个设备迁移到其他 vCenter Server 中,则两个 HA 设备不再作为 HA 对运行,而且您可能会遇到流量中断问题。

前提条件

  • 必须为您分配了企业管理员NSX 管理员角色。
  • 即使不打算创建逻辑交换机,也必须创建本地分段 ID 池。
  • 在创建或更改逻辑路由器配置之前,请确保控制器集群已启动且可用。如果缺少 NSX Controller,逻辑路由器便无法将路由信息分发给主机。逻辑路由器依靠 NSX Controller 来运行,而 Edge 服务网关 (ESG) 不会这样。
  • 如果逻辑路由器将连接到 VLAN dvPortgroup,请确保已安装逻辑路由器设备的所有 Hypervisor 主机都可以在 UDP 端口 6999 上相互访问。要使基于逻辑路由器 VLAN 的 ARP 代理能够正常工作,需要在此端口上通信。
  • 确定在何处部署逻辑路由器设备。
    • 目标主机必须属于与连接到新逻辑路由器接口的逻辑交换机相同的传输区域。
    • 如果在 ECMP 设置中使用 ESG,应避免将逻辑路由器设备放在与它的一个或多个上游 ESG 相同的主机上。可以使用 DRS 反关联性规则强制采用该做法,从而降低主机故障对逻辑路由器转发的影响。如果您具有一个单独的或处于 HA 模式下的上游 ESG,则此准则不适用。有关详细信息,请参见《NSX 网络虚拟化设计指南》,网址为 https://communities.vmware.com/docs/DOC-27683
  • 确认已为 NSX Data Center for vSphere 准备好安装逻辑路由器设备的主机集群。请参见NSX 安装指南中的“为 NSX 准备主机集群”。
  • 确定是否需要启用本地输出。本地输出允许您选择性地向主机发送路由。如果 NSX 部署跨多个站点,您可能需要此功能。有关详细信息,请参见跨 vCenter NSX 拓扑。无法在创建通用逻辑路由器后启用本地输出。

过程

  1. vSphere Web Client 中,导航到主页 (Home) > 网络和安全 (Networking & Security) > NSX Edge (NSX Edges)
  2. 选择要添加通用逻辑(分布式)路由器的主 NSX Manager
  3. 单击添加 (Add),然后单击通用逻辑 (分布式) 路由器 (Universal Logical (Distributed) Router)
  4. (可选) 启用本地输出。
  5. 输入逻辑路由器的名称、说明和其他详细信息。
    选项 说明
    名称

    输入要在 vCenter 清单中显示的逻辑路由器名称。

    确保该名称在单个租户的所有逻辑路由器中是唯一的。

    主机名称

    可选。输入要在 CLI 中为逻辑路由器显示的主机名。

    如果未输入主机名,则在 CLI 中显示自动创建的 Edge ID。

    说明 可选。输入逻辑路由器说明。
    部署 Edge 设备

    默认情况下,将选择该选项。Edge 设备(也称为逻辑路由器虚拟设备)是动态路由和逻辑路由器设备的防火墙所必需的,适用于逻辑路由器 ping、SSH 访问和动态路由流量。

    如果您仅需要使用静态路由,并且不希望部署 Edge 设备,请取消选择该选项。无法在创建逻辑路由器之后向其添加 Edge 设备。

    高可用性

    可选。默认情况下,将禁用 HA。可以选择该选项以在逻辑路由器上启用并配置 HA。

    如果您打算执行动态路由,则需要使用 HA。

    HA 日志记录

    可选。默认情况下,将禁用 HA 日志记录。

    如果启用了日志记录,默认日志级别将设置为“信息”。如有必要,您可以更改该设置。

  6. 指定逻辑路由器的 CLI 设置和其他设置。
    选项 说明
    用户名 输入要用于登录到 Edge CLI 的用户名。
    密码 输入至少为 12 个字符的密码,并且它必须符合以下规则:
    • 不能超过 255 个字符
    • 至少一个大写字母和一个小写字母
    • 至少一个数字
    • 至少一个特殊字符
    • 不能包含用户名以作为子字符串
    • 不能将一个字符连续重复 3 次或以上。
    确认密码 重新输入密码以进行确认。
    SSH 访问

    可选。默认情况下,将禁用 SSH 访问。如果未启用 SSH,则仍可通过打开虚拟设备控制台来访问逻辑路由器。

    启用 SSH 会导致 SSH 进程在逻辑路由器上运行。您必须手动调整逻辑路由器防火墙配置,才能允许对逻辑路由器的协议地址进行 SSH 访问。协议地址会在逻辑路由器上配置动态路由时进行配置。

    FIPS 模式

    可选。默认情况下,将禁用 FIPS 模式。

    在启用 FIPS 模式时,与 NSX Edge 之间的任何安全通信将使用 FIPS 允许的加密算法或协议。

    Edge 控制级别日志记录 可选。默认情况下,日志级别为“信息”。
  7. 配置 NSX Edge 设备部署。
    • 如果未选择部署 Edge 设备 (Deploy Edge Appliance),您无法添加设备。单击下一步 (Next)继续配置。
    • 如果您选择了部署 Edge 设备 (Deploy Edge Appliance),请输入逻辑路由器虚拟设备的设置。
    例如:
    选项
    集群/资源池 管理和 Edge
    数据存储 ds-1
    主机 esxmgt-01a.corp.local
    资源预留 系统管理
    有关资源预留的详细信息,请参见《 NSX 管理指南》中的“管理 NSX Edge 设备资源预留”。
  8. 配置 NSX Edge 的接口。
    1. 指定名称、类型和其他基本接口详细信息。
      选项 说明
      名称 输入接口的名称。
      类型 选择“内部”或“上行链路”。

      内部接口用于连接到允许虚拟机到虚拟机(有时称为东西向)通信的交换机。内部接口将在逻辑路由器虚拟设备上作为伪虚拟网卡进行创建。上行链路接口用于南北向通信,它们是在逻辑路由器虚拟设备上作为 vNIC 创建的。

      逻辑路由器上行链路接口可能会连接到 Edge 服务网关或第三方路由器虚拟机。您必须至少有一个上行链路接口才能进行动态路由。

      已连接到 选择要将该接口连接到的分布式虚拟端口组或逻辑交换机。
    2. 配置接口的子网。
      选项 说明
      主 IP 地址

      在逻辑路由器上,仅支持 IPv4 寻址。

      您在此处输入的接口配置可在以后进行修改。可以在部署逻辑路由器后添加、移除和修改接口。

      子网前缀长度 输入接口的子网掩码。
    3. (可选) 如有必要,请编辑默认 MTU 值。上行链路和内部接口的默认值都为 1500。
      下表显示包含两个内部接口(应用程序和 Web)和一个上行链路接口(到 ESG)的示例。
      表 1. 示例:NSX Edge 接口
      名称 IP 地址 子网前缀长度 已连接到
      应用程序 172.16.20.1* 24 应用程序
      Web 172.16.10.1* 24 Web
      到 ESG 192.168.10.2* 29 转换
  9. 确保连接到逻辑交换机的虚拟机的默认网关都正确设置为逻辑路由器接口 IP 地址。

结果

在以下示例拓扑中,应用程序虚拟机的默认网关为 172.16.20.1。Web 虚拟机的默认网关为 172.16.10.1。确保这些虚拟机可以相互 ping 其默认网关。

该图以环绕的文本进行了说明。

使用 SSH 或控制台连接到 NSX Manager,并运行以下命令:
  • 列出所有逻辑路由器实例信息。

    nsxmgr-l-01a> show logical-router list all
    Edge-id             Vdr Name                      Vdr id              #Lifs
    edge-1              default+edge-1                0x00001388          3
    
  • 列出已从控制器集群收到逻辑路由器的路由信息的主机。

    nsxmgr-l-01a> show logical-router list dlr edge-1 host
    ID                   HostName                             
    host-25              192.168.210.52                       
    host-26              192.168.210.53                       
    host-24              192.168.110.53

    输出包括配置为传输区域的成员的所有主机集群中的所有主机,该传输区域拥有连接到指定逻辑路由器(本示例中为 edge-1)的逻辑交换机。

  • 列出由逻辑路由器传送给主机的路由表信息。所有主机间的路由表条目应一致。

    nsx-mgr-l-01a> show logical-router host host-25 dlr edge-1 route
    
    VDR default+edge-1 Route Table
    Legend: [U: Up], [G: Gateway], [C: Connected], [I: Interface]
    Legend: [H: Host], [F: Soft Flush] [!: Reject] [E: ECMP]
    
    Destination     GenMask          Gateway         Flags   Ref Origin   UpTime    Interface
    -----------     -------          -------         -----   --- ------   ------    ---------
    0.0.0.0         0.0.0.0          192.168.10.1    UG      1   AUTO     4101      138800000002
    172.16.10.0     255.255.255.0    0.0.0.0         UCI     1   MANUAL   10195     13880000000b
    172.16.20.0     255.255.255.0    0.0.0.0         UCI     1   MANUAL   10196     13880000000a
    192.168.10.0    255.255.255.248  0.0.0.0         UCI     1   MANUAL   10196     138800000002
    192.168.100.0   255.255.255.0    192.168.10.1    UG      1   AUTO     3802      138800000002
    
  • 从其中某个主机的角度,列出有关路由器的其他信息。此输出有助于了解哪个控制器正在与该主机进行通信。

    nsx-mgr-l-01a> show logical-router host host-25 dlr edge-1 verbose
    
    VDR Instance Information :
    ---------------------------
    
    Vdr Name:                   default+edge-1
    Vdr Id:                     0x00001388
    Number of Lifs:             3
    Number of Routes:           5
    State:                      Enabled
    Controller IP:              192.168.110.203
    Control Plane IP:           192.168.210.52
    Control Plane Active:       Yes
    Num unique nexthops:        1
    Generation Number:          0
    Edge Active:                No
    

show logical-router host host-25 dlr edge-1 verbose 命令的输出中,检查“控制器 IP”字段。

通过 SSH 登录到控制器,并运行以下命令以显示控制器获知的 VNI、VTEP、MAC 和 ARP 表状态信息。
  • 192.168.110.202 # show control-cluster logical-switches vni 5000
    VNI      Controller      BUM-Replication ARP-Proxy Connections
    5000     192.168.110.201 Enabled         Enabled   0
    
    VNI 5000 的输出显示零个连接,并将控制器 192.168.110.201 列为 VNI 5000 的所有者。登录到此控制器,以收集 VNI 5000 的更多信息。
    192.168.110.201 # show control-cluster logical-switches vni 5000
    VNI      Controller      BUM-Replication ARP-Proxy Connections
    5000     192.168.110.201 Enabled         Enabled   3
    
    192.168.110.201 上的输出显示三个连接。检查其他 VNI。
    192.168.110.201 # show control-cluster logical-switches vni 5001
    VNI      Controller      BUM-Replication ARP-Proxy Connections
    5001     192.168.110.201 Enabled         Enabled   3
    
    192.168.110.201 # show control-cluster logical-switches vni 5002
    VNI      Controller      BUM-Replication ARP-Proxy Connections
    5002     192.168.110.201 Enabled         Enabled   3
    由于 192.168.110.201 拥有全部三个 VNI 连接,我们预期会在另一个控制器 192.168.110.203 上看到零个连接。
    192.168.110.203 # show control-cluster logical-switches vni 5000
    VNI      Controller      BUM-Replication ARP-Proxy Connections
    5000     192.168.110.201 Enabled         Enabled   0
    
  • 在检查 MAC 和 ARP 表之前,从一个虚拟机 ping 到另一个虚拟机。
    从应用程序虚拟机到 Web 虚拟机:
    vmware@app-vm$ ping 172.16.10.10
    PING 172.16.10.10 (172.16.10.10) 56(84) bytes of data.
    64 bytes from 172.16.10.10: icmp_req=1 ttl=64 time=2.605 ms
    64 bytes from 172.16.10.10: icmp_req=2 ttl=64 time=1.490 ms
    64 bytes from 172.16.10.10: icmp_req=3 ttl=64 time=2.422 ms
    
    检查 MAC 表。
    192.168.110.201 # show control-cluster logical-switches mac-table 5000
    VNI      MAC               VTEP-IP         Connection-ID
    5000     00:50:56:a6:23:ae 192.168.250.52  7
    192.168.110.201 # show control-cluster logical-switches mac-table 5001
    VNI      MAC               VTEP-IP         Connection-ID
    5001     00:50:56:a6:8d:72 192.168.250.51  23
    检查 ARP 表。
    192.168.110.201 # show control-cluster logical-switches arp-table 5000
    VNI      IP              MAC               Connection-ID
    5000     172.16.20.10    00:50:56:a6:23:ae 7
    192.168.110.201 # show control-cluster logical-switches arp-table 5001
    VNI      IP              MAC               Connection-ID
    5001     172.16.10.10    00:50:56:a6:8d:72 23

检查逻辑路由器信息。每个逻辑路由器实例都由某个控制器节点提供服务。

show control-cluster logical-routers 命令的 instance 子命令显示连接到此控制器的逻辑路由器列表。

interface-summary 子命令显示控制器从 NSX Manager 获知的 LIF。此信息将发送到由传输区域管理的主机集群中的主机。

routes 子命令显示由逻辑路由器的虚拟设备(也称为控制虚拟机)发送到此控制器的路由表。与 ESXi 主机上不同,此路由表不包括直接连接的子网,因为此信息由 LIF 配置提供。ESXi 主机上的路由信息包括直接连接的子网,因为在这种情况下,它是一个由 ESXi 主机的数据路径使用的转发表。
  • 列出连接到该控制器的所有逻辑路由器。
    controller # show control-cluster logical-routers instance all
    LR-Id      LR-Name            Universal Service-Controller Egress-Locale
    0x1388     default+edge-1     false     192.168.110.201    local
    

    记下 LR-Id 并用于以下命令。

  • controller # show control-cluster logical-routers interface-summary 0x1388
    Interface                        Type   Id           IP[]
    13880000000b                     vxlan  0x1389       172.16.10.1/24
    13880000000a                     vxlan  0x1388       172.16.20.1/24
    138800000002                     vxlan  0x138a       192.168.10.2/29
    
  • controller # show control-cluster logical-routers routes 0x1388
    Destination        Next-Hop[]      Preference Locale-Id                            Source
    192.168.100.0/24   192.168.10.1    110        00000000-0000-0000-0000-000000000000 CONTROL_VM
    0.0.0.0/0          192.168.10.1    0          00000000-0000-0000-0000-000000000000 CONTROL_VM
    
    [root@comp02a:~] esxcfg-route -l
    VMkernel Routes:
    Network          Netmask          Gateway          Interface
    10.20.20.0       255.255.255.0    Local Subnet     vmk1
    192.168.210.0    255.255.255.0    Local Subnet     vmk0
    default          0.0.0.0          192.168.210.1    vmk0
    
  • 显示控制器与特定 VNI 之间的连接。
    192.168.110.203 # show control-cluster logical-switches connection-table 5000
    Host-IP         Port  ID
    192.168.110.53  26167 4
    192.168.210.52  27645 5
    192.168.210.53  40895 6
    
    192.168.110.202 # show control-cluster logical-switches connection-table 5001
    Host-IP         Port  ID
    192.168.110.53  26167 4
    192.168.210.52  27645 5
    192.168.210.53  40895 6
    

    这些主机 IP 地址是 vmk0 接口,而非 VTEP。ESXi 主机与控制器之间的连接将在管理网络上创建。此处的端口号是主机与控制器建立连接时由 ESXi 主机 IP 堆栈分配的极短 TCP 端口。

  • 在主机上,可以查看与端口号匹配的控制器网络连接。

    [[email protected]:~] #esxcli network ip connection list | grep 26167
    tcp         0       0  192.168.110.53:26167             192.168.110.101:1234  ESTABLISHED     96416  newreno  netcpa-worker
    
  • 显示主机上的活动 VNI。观察各主机间输出的不同之处。并非所有主机上的所有 VNI 都处于活动状态。如果主机的某个虚拟机已连接到逻辑交换机,则该主机上的 VNI 处于活动状态。

    [[email protected]:~] # 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  VTEP Count
    --------  -------------------------  -----------------------------------  ---------------------  ----------  ---------------  ---------------  ----------
        5000  N/A (headend replication)  Enabled (multicast proxy,ARP proxy)  192.168.110.203 (up)            1                0                0           0
        5001  N/A (headend replication)  Enabled (multicast proxy,ARP proxy)  192.168.110.202 (up)            1                0                0           0
    
    注: 要在 vSphere 6.0 及更高版本中启用 vxlan 命名空间,请运行 /etc/init.d/hostd restart 命令。

    对于处于混合模式或单播模式的逻辑交换机,esxcli network vswitch dvs vmware vxlan network list --vds-name <vds-name> 命令包含以下输出:

    • 将启用控制平面。
    • 将列出多播代理和 ARP 代理。将列出 AARP 代理,即使已禁用 IP 发现。
    • 将列出有效的控制器 IP 地址并建立连接。
    • 如果将逻辑路由器连接到 ESXi 主机,则端口计数至少为 1,即使主机上没有任何虚拟机连接到逻辑交换机。此端口为 vdrPort,是连接到 ESXi 主机上逻辑路由器内核模块的特殊 dvPort。
  • 首先从虚拟机 ping 到不同子网上的另一个虚拟机,然后显示 MAC 表。请注意,内部 MAC 是虚拟机条目,而外部 MAC 和外部 IP 是指 VTEP。

    ~ # esxcli network vswitch dvs vmware vxlan network mac list --vds-name=Compute_VDS --vxlan-id=5000
    Inner MAC          Outer MAC          Outer IP        Flags
    -----------------  -----------------  --------------  --------
    00:50:56:a6:23:ae  00:50:56:6a:65:c2  192.168.250.52  00000111
    
    ~ # esxcli network vswitch dvs vmware vxlan network mac list --vds-name=Compute_VDS --vxlan-id=5001
    Inner MAC          Outer MAC          Outer IP        Flags
    -----------------  -----------------  --------------  --------
    02:50:56:56:44:52  00:50:56:6a:65:c2  192.168.250.52  00000101
    00:50:56:f0:d7:e4  00:50:56:6a:65:c2  192.168.250.52  00000111
    

下一步做什么

如果在群集上禁用了 vSphere HA,在安装 NSX Edge 设备时,NSX 将在主机上启用自动虚拟机启动/关闭。如果以后将设备虚拟机迁移到群集中的其他主机,新主机可能不会启用自动虚拟机启动/关闭。因此,在已禁用 vSphere HA 的群集上安装 NSX Edge 设备时,您必须最好检查群集中的所有主机以确保启用了自动虚拟机启动/关闭。请参见《vSphere 虚拟机管理》中的“编辑虚拟机启动和关闭设置”。

部署逻辑路由器后,双击逻辑路由器 ID 以配置其他设置,如接口、路由、防火墙、桥接和 DHCP 中继。