主机中的分布式逻辑路由器 (DLR) 内核模块在 VXLAN 网络之间以及在虚拟网络和物理网络之间执行路由。如果需要,NSX Edge 设备 将提供动态路由功能。通用分布式逻辑路由器可在通用逻辑交换机之间提供东西向路由。
- 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 拓扑。无法在创建通用逻辑路由器后启用本地输出。
过程
结果
在以下示例拓扑中,应用程序虚拟机的默认网关为 172.16.20.1。Web 虚拟机的默认网关为 172.16.10.1。确保这些虚拟机可以相互 ping 其默认网关。
-
列出所有逻辑路由器实例信息。
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”字段。
-
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。此信息将发送到由传输区域管理的主机集群中的主机。
-
列出连接到该控制器的所有逻辑路由器。
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 中继。