主机中的逻辑路由器内核模块在 VXLAN 网络之间以及虚拟和物理网络之间执行路由。如果需要,NSX Edge 设备可提供动态路由功能。在跨 vCenter NSX 环境中,逻辑路由器可以在主 NSX Manager 和辅助 NSX Manager 上创建,但通用逻辑路由器只能在主 NSX Manager 上创建。

关于此任务

以下列表介绍了逻辑路由器上的接口类型(上行链路和内部)支持的功能:

  • 动态路由协议(BGP 和 OSPF)仅在上行链路接口上受支持。

  • 防火墙规则仅在上行链路接口上适用,且限制为控制和管理传至 Edge 虚拟设备的流量。

  • 有关 DLR 管理接口的详细信息,请参见知识库文章“分布式逻辑路由器控制虚拟机的管理接口注意事项”,网址为 http://kb.vmware.com/kb/2122060

先决条件

  • 您必须已获得企业管理员或 NSX 管理员角色。

  • 安装逻辑路由器之前,您的环境必须包含正常运行的控制器群集。

  • 即使不打算创建 NSX 逻辑交换机,您也必须创建本地分段 ID 池。

  • 如果缺少 NSX Controller,逻辑路由器便无法将路由信息分发给主机。逻辑路由器依靠 NSX Controller 来运行,而 Edge 服务网关 (ESG) 不会这样。在创建或更改逻辑路由器配置之前,确保控制器群集已启动且可用。

  • 如果逻辑路由器将连接到 VLAN dvPortgroup,请确保已安装逻辑路由器设备的所有虚拟机管理程序主机都可以在 UDP 端口 6999 上相互访问,以便基于逻辑路由器 VLAN 的 ARP 代理能够正常工作。

  • 逻辑路由器接口和桥接接口无法连接到 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 的不同网络上创建逻辑路由器接口。

  • 与 NSX 版本 6.0 和 6.1 不同,NSX 版本 6.2 允许将逻辑路由器路由的逻辑接口 (LIF) 连接到桥接至 VLAN 的 VXLAN。

  • 选择放置逻辑路由器虚拟设备时,如果在 ECMP 设置中使用 ESG,则避免将逻辑路由器虚拟设备与其一个或多个上游 ESG 放置在相同主机上。可以使用 DRS 反关联性规则强制执行这一点,从而减少主机故障对逻辑路由器转发的影响。如果您具有一个单独的或处于 HA 模式下的上游 ESG,则此准则不适用。有关详细信息,请参见 https://communities.vmware.com/docs/DOC-27683 上的《VMware NSX for vSphere 网络虚拟化设计指南》

过程

  1. 在 vSphere Web Client 中,导航到主页 > 网络和安全 > NSX Edge (Home > Networking & Security > NSX Edges)
  2. 单击添加 (Add) (添加) 图标。
  3. 选择逻辑 (分布式) 路由器 (Logical (Distributed) Router),然后键入设备的名称。

    该名称会显示在 vCenter 清单中。该名称在单个租户内的所有逻辑路由器中都应唯一。

    此外,还可以输入主机名。该名称会显示在 CLI 中。如果未指定主机名,则 CLI 中将显示自动创建的 Edge ID。

    此外,还可以输入描述和租户。

    例如:

  4. (可选) 部署一个 Edge 设备。

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

    如果您只需要静态路由,且不希望部署 Edge 设备,则可以取消选择 Edge 设备选项。无法在创建逻辑路由器之后向其添加 Edge 设备。

  5. (可选) 启用高可用性。

    默认情况下,不会选择“启用高可用性”。请选中“启用高可用性”复选框以启用并配置高可用性。如果您计划执行动态路由,则需要高可用性。

  6. 键入逻辑路由器的密码,然后重新键入一次。

    该密码必须是 12-255 个字符,且必须包含:

    • 至少一个大写字母

    • 至少一个小写字母

    • 至少一个数字

    • 至少一个特殊字符

  7. (可选) 启用 SSH 并设置日志级别。

    默认情况下,SSH 处于禁用状态。如果未启用 SSH,则仍可通过打开虚拟设备控制台来访问逻辑路由器。在此处启用 SSH 会导致 SSH 进程在逻辑路由器虚拟设备上运行,但您还将需要手动调整逻辑路由器防火墙配置,以允许对逻辑路由器的协议地址进行 SSH 访问。协议地址会在逻辑路由器上配置动态路由时进行配置。

    默认情况下,日志级别为紧急。

    例如:

  8. 配置部署。
    • 如果未选择部署 NSX Edge (Deploy NSX Edge),则添加 (Add) (添加) 图标为灰显状态。单击下一步 (Next)继续配置。

    • 如果选择了部署 NSX Edge (Deploy NSX Edge),请输入将添加到 vCenter 清单的逻辑路由器虚拟设备的设置。

    例如:

  9. 配置接口。

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

    在“HA 接口配置”中,如果选择了部署 NSX Edge (Deploy NSX Edge),您必须将接口连接到分布式端口组。建议将 VXLAN 逻辑交换机用于 HA 接口。将从链路本地地址空间 169.250.0.0/16 中分别选择两个 NSX Edge 设备的 IP 地址。不需要进行进一步配置以配置 HA 服务。

    注:

    在先前版本的 NSX 中,HA 接口称为管理接口。远程访问逻辑路由器不支持 HA 接口。对于与 HA 接口不在同一 IP 子网上的位置,无法通过 SSH 方式连接 HA 接口。无法配置将 HA 接口排除在外的静态路由,这意味着 RPF 将丢弃入站流量。理论上可以禁用 RPF,但这将不利于实现高可用性。对于 SSH,使用逻辑路由器的协议地址,这将在稍后配置动态路由时进行配置。

    在 NSX 6.2 中,逻辑路由器的 HA 接口会自动从路由重新分布中排除。

    配置此 NSX Edge 的接口 (Configure interfaces of this NSX Edge)中,内部接口用于连接到允许虚拟机间(有时称为东西向)通信的交换机。内部接口将在逻辑路由器虚拟设备上作为伪虚拟网卡进行创建。上行链路接口用于南北向通信。逻辑路由器上行链路接口可能会连接到 NSX Edge 服务网关、其第三方路由器虚拟机或支持 VLAN 的 dvPortgroup,以使逻辑路由器直接与物理路由器连接。您必须至少有一个上行链路接口才能进行动态路由。上行链路接口将在逻辑路由器虚拟设备上作为虚拟网卡进行创建。

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

    以下示例显示连接到管理分布式端口组的 HA 接口。该示例还显示两个内部接口(应用程序和 Web)和一个上行链路接口(通向 ESG)。

  10. 配置默认网关。

    例如:

  11. 确保连接到逻辑交换机的任何虚拟机的默认网关都正确设置为逻辑路由器接口 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 虚拟机:

    检查 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 端口。

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

    [root@192.168.110.53:~] #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 处于活动状态。

    [root@192.168.210.52:~] # 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 及更高版本中启用 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
    

下一步做什么

在第一次部署 NSX Edge 设备的主机上,NSX 会启用自动虚拟机启动/关机。如果设备虚拟机后来被迁移到其他主机,则新的主机可能不会启用自动虚拟机启动/关机。因此,VMware 建议您检查群集中的所有主机,以确保启用了自动虚拟机启动/关机。请参见 http://pubs.vmware.com/vsphere-60/index.jsp?topic=%2Fcom.vmware.vsphere.vm_admin.doc%2FGUID-5FE08AC7-4486-438E-AF88-80D6C7928810.html

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

例如: