NSX 路由子系统是由多个组件实现的。

  • NSX Manager
  • 控制器群集
  • ESXi 主机模块(内核和 UWA)
  • DLR 控制虚拟机
  • ESG

NSX Manager

NSX Manager 提供与 NSX 路由有关的以下功能:
  • 作为集中式管理层面,从而为所有 NSX 管理操作提供统一的 API 访问点
  • 在主机上安装分布式路由内核模块和用户环境代理,以做好准备以提供 NSX 功能
  • 创建/破坏 DLR 和 DLR LIF
  • 通过 vCenter 部署/删除 DLR 控制虚拟机和 ESG
  • 通过 REST API 配置控制器群集,并通过消息总线配置主机:
    • 为主机控制层面代理提供控制器 IP 地址
    • 生成证书并将其分发到主机和控制器以保护控制层面通信安全
  • 通过消息总线配置 ESG 和 DLR 控制虚拟机
    • 请注意,可以在未准备的主机上部署 ESG,在这种情况下,将使用 VIX 代替消息总线

控制器群集

NSX 分布式路由需要使用群集的控制器以扩展和提高可用性,从而提供以下功能:
  • 支持 VXLAN 和分布式路由控制层面
  • 提供 CLI 接口以获取统计信息和运行时状态
  • 为每个 DLR 实例选择主控制器节点
    • 主节点从 DLR 控制虚拟机中接收路由信息,并将其分发到主机
    • 将 LIF 表发送到主机
    • 跟踪 DLR 控制虚拟机所在的主机
    • 为 VLAN LIF 选择指定的实例,并将该信息传送到主机;通过控制层面保持活动(超时为 30 秒,检测时间可以是 20-40 秒)监控 DI 主机;为主机发送更新(如果选定的 DI 主机消失)

ESXi 主机模块

NSX 路由直接利用两个用户环境代理 (UWA) 和路由内核模块,并且还依靠 VXLAN 内核模块建立 VXLAN 连接。

下面简要说明了其中的每个组件的功能:
  • 控制层面代理 (netcpa) 是 TCP (SSL) 客户端,它使用控制层面协议与控制器通信。它可能会连接到多个控制器。netcpa 与消息总线客户端 (vsfwd) 通信,以便从 NSX Manager 中检索控制层面相关信息。
  • netcpa 打包和部署:
    • 该代理打包为 VXLAN VIB(vSphere 安装包)
    • 在主机准备期间,NSX Manager 通过 EAM (ESX Agency Manager) 进行安装
    • 在 ESXi netcpa 上作为服务守护程序运行
    • 可以通过其启动脚本 /etc/init.d/netcpad 启动/停止/查询
    • 可以通过“网络和安全”用户界面中的“安装”->“主机准备”->“安装状态”在单个主机或整个群集上远程重新启动
  • DLR 内核模块 (vdrb) 与 DVS 集成在一起以启用 L3 转发
    • 由 netcpa 配置
    • 作为 VXLAN VIB 部署的一部分进行安装
    • 通过名为“vdrPort”的特殊中继(支持 VLAN 和 VXLAN)连接到 DVS
    • 保留有关 DLR 实例的信息以及每个实例的:
      • LIF 和路由表
      • 主机本地 ARP 缓存
  • netcpa、ESG 和 DLR 控制虚拟机使用消息总线客户端 (vsfwd) 与 NSX Manager 通信
    • vsfwd 通过 vpxa/hosd 从 vCenter 设置的 /UserVars/RmqIpAddress 中获取 NSX Manager 的 IP 地址,然后使用在其他 /UserVars/Rmq* 变量中存储的每个主机的凭据登录到消息总线服务器
  • 在 ESXi 主机上运行的 netcpa 依靠 vsfwd 执行以下操作:
    • 从 NSX Manager 中获取主机的控制层面 SSL 私钥和证书。然后,将这些信息存储在 /etc/vmware/ssl/rui-for-netcpa.* 中
    • 从 NSX Manager 中获取控制器的 IP 地址和 SSL 指纹。然后,将这些信息存储在 /etc/vmware/netcpa/config-by-vsm.xml 中
    • 在主机上根据 NSX Manager 指令创建和删除 DLR 实例
  • 打包和部署
    • 与 netcpa 相同,它是 VXLAN VIB 的一部分
    • 在 ESXi vsfwd 上作为服务守护程序运行
    • 可以通过其启动脚本 /etc/init.d/ vShield-Stateful-Firewall 启动/停止/查询
  • ESG 和 DLR 控制虚拟机使用到 vsfwd 的 VMCI 通道从 NSX Manager 中接收配置

DLR 控制虚拟机和 ESG

  • DLR 控制虚拟机是其 DLR 实例的“路由处理器”
    • 具有每个 DLR LIF 的“占位符”或“真正 vNIC 接口”以及 IP 配置
    • 可以运行两个可用的动态路由协议(BGP 或 OSPF)之一以及/或者使用静态路由
    • 至少需要一个“上行链路”LIF 才能运行 OSPF 或 BGP
    • 通过直接连接的 (LIF) 子网、静态和动态路由计算转发表,然后通过到 netcpa 的 VMCI 链路将其发送到 DLR 实例的主控制器
    • 在活动/备用虚拟机对配置中支持 HA
  • ESG 是虚拟机中的自包含路由器
    • 完全独立于 NSX DLR 路由子系统(无 NSX 控制层面集成)
    • 通常作为一个或多个 DLR 的上游网关
    • 支持多个同时运行的动态路由协议