除了主机组件以外,NSX 路由还使用控制器群集和 DLR 控制虚拟机的服务,它们都是 DLR 控制层面信息来源,并具有自己的 CLI 以用于检查这些信息。

DLR 实例主控制器

每个 DLR 实例由某个控制器节点提供服务。可以使用以下 CLI 命令查看 DLR 实例的主控制器节点包含的信息:

nsx-controller # show control-cluster logical-routers instance 1460487509
LR-Id      LR-Name            Hosts[]         Edge-Connection Service-Controller
1460487509 default+edge-1     192.168.210.57                  192.168.110.201
                              192.168.210.51
                              192.168.210.52
                              192.168.210.56
                              192.168.110.51
                              192.168.110.52

nsx-controller # show control-cluster logical-routers interface-summary 1460487509
Interface                        Type   Id           IP[]
570d455500000002                 vxlan  5003         192.168.10.2/29
570d45550000000b                 vxlan  5001         172.16.20.1/24
570d45550000000c                 vxlan  5002         172.16.30.1/24
570d45550000000a                 vxlan  5000         172.16.10.1/24

nsx-controller # show control-cluster logical-routers routes 1460487509
LR-Id       Destination        Next-Hop
1460487509  0.0.0.0/0          192.168.10.1

  • “show control-cluster logical-routers”命令的“instance”子命令显示连接到该 DLR 实例的该控制器的主机列表。在正常工作的环境中,该列表包含所有群集中 DLR 所在的所有主机。
  • “interface-summary”显示控制器从 NSX Manager 中获悉的 LIF。该信息将发送到主机。
  • “routes”显示该 DLR 的控制虚拟机发送到该控制器的路由表。请注意,与 ESXi 主机上不同,该表不包含任何直接连接的子网,因为该信息是 LIF 配置提供的。

DLR 控制虚拟机

DLR 控制虚拟机具有 LIF 和路由/转发表。DLR 控制虚拟机的生命周期的主要输出是 DLR 路由表,这是 Interfaces 和 Routes 生成的。

edge-1-0> show ip route

Codes: O - OSPF derived, i - IS-IS derived, B - BGP derived,
C - connected, S - static, L1 - IS-IS level-1, L2 - IS-IS level-2,
IA - OSPF inter area, E1 - OSPF external type 1, E2 - OSPF external type 2

Total number of routes: 5

S       0.0.0.0/0            [1/1]         via 192.168.10.1
C       172.16.10.0/24       [0/0]         via 172.16.10.1
C       172.16.20.0/24       [0/0]         via 172.16.20.1
C       172.16.30.0/24       [0/0]         via 172.16.30.1
C       192.168.10.0/29      [0/0]         via 192.168.10.2

edge-1-0> show ip forwarding
Codes: C - connected, R - remote,
       > - selected route, * - FIB route
R>* 0.0.0.0/0 via 192.168.10.1, vNic_2
C>* 172.16.10.0/24 is directly connected, VDR
C>* 172.16.20.0/24 is directly connected, VDR
C>* 172.16.30.0/24 is directly connected, VDR
C>* 192.168.10.0/29 is directly connected, vNic_2
  • 转发表的用途是显示选择哪个 DLR 接口以作为给定目标子网的输出。
    • 将为所有“内部”类型的 LIF 显示“VDR”接口。“VDR”接口是与 vNIC 不对应的伪接口。

DLR 控制虚拟机的接口可能如下所示:

edge-1-0> show interface
Interface VDR is up, line protocol is up
  index 2 metric 1 mtu 1500 <UP,BROADCAST,RUNNING,NOARP>
  HWaddr: be:3d:a1:52:90:f4
  inet6 fe80::bc3d:a1ff:fe52:90f4/64
  inet 172.16.10.1/24
  inet 172.16.20.1/24
  inet 172.16.30.1/24
  proxy_arp: disabled
  Auto-duplex (Full), Auto-speed (2460Mb/s)
    input packets 0, bytes 0, dropped 0, multicast packets 0
    input errors 0, length 0, overrun 0, CRC 0, frame 0, fifo 0, missed 0
    output packets 0, bytes 0, dropped 0
    output errors 0, aborted 0, carrier 0, fifo 0, heartbeat 0, window 0
    collisions 0

Interface vNic_0 is up, line protocol is up
  index 3 metric 1 mtu 1500 <UP,BROADCAST,RUNNING,MULTICAST>
  HWaddr: 00:50:56:8e:1c:fb
  inet6 fe80::250:56ff:fe8e:1cfb/64
  inet 169.254.1.1/30
  inet 10.10.10.1/24
  proxy_arp: disabled
  Auto-duplex (Full), Auto-speed (2460Mb/s)
    input packets 582249, bytes 37339072, dropped 49, multicast packets 0
    input errors 0, length 0, overrun 0, CRC 0, frame 0, fifo 0, missed 0
    output packets 4726382, bytes 461202852, dropped 0
    output errors 0, aborted 0, carrier 0, fifo 0, heartbeat 0, window 0
    collisions 0

Interface vNic_2 is up, line protocol is up
  index 9 metric 1 mtu 1500 <UP,BROADCAST,RUNNING,MULTICAST>
  HWaddr: 00:50:56:8e:ae:08
  inet 192.168.10.2/29
  inet6 fe80::250:56ff:fe8e:ae08/64
  proxy_arp: disabled
  Auto-duplex (Full), Auto-speed (2460Mb/s)
    input packets 361446, bytes 30167226, dropped 0, multicast packets 361168
    input errors 0, length 0, overrun 0, CRC 0, frame 0, fifo 0, missed 0
    output packets 361413, bytes 30287912, dropped 0
    output errors 0, aborted 0, carrier 0, fifo 0, heartbeat 0, window 0
    collisions 0

感兴趣的注意事项:

  • “VDI”接口没有关联的虚拟机网卡 (vNIC)。这是单个“伪接口”,将为其配置 DLR 的所有“内部”LIF 的所有 IP 地址。
  • 此示例中的 Nic_0 接口是 HA 接口。
    • 上面的输出是从启用了 HA 的部署 DLR 中提取的,并为 HA 接口分配一个 IP 地址。这显示为两个 IP 地址:169.254.1.1/30(为 HA 自动分配的)和 10.10.10.1/24(为 HA 接口手动分配的)。
    • 在 ESG 上,操作员可以手动将某个 vNIC 指定为 HA,或者保留默认设置以让系统自动从可用的“内部”接口中进行选择。具有“内部”类型是一项要求,否则,HA 将失败。
  • vNic_2 接口具有“上行链路”类型;因此,它表示为“真实”vNIC。
    • 请注意,在该接口上看到的 IP 地址与 DLR 的 LIF 相同;但 DLR 控制虚拟机不会应答 LIF IP 地址(此处为 192.168.10.2/29)的 ARP 查询。可以为该 vNIC 的 MAC 地址应用一个 ARP 筛选器以进行应答。
    • 在 DLR 上配置动态路由协议之前,上述观点是正确的,此时,将 IP 地址与 ARP 筛选器一起移除,并替换为在动态路由协议配置期间指定的“协议 IP”地址。
    • 在 DLR 控制虚拟机上运行的动态路由协议使用该 vNIC 与其他路由器通信以发布和获悉路由。
  • 在断开连接 Edge 并进行 HA 故障切换后,将从活动 Edge 路由信息库 (Routing Information Base, RIB)/转发信息库 (Forwarding Information Base, FIB) 中移除断开连接的 Edge 接口 IP 地址。但备用 Edge FIB 表或 show ip forwarding 命令仍显示该 IP,并且不会从 FIB 表中移除该 IP。这是预期的行为。