Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

什么是瞻博网络® 云原生路由器?

概述

瞻博网络云原生路由器 (JCNR) 是基于容器的软件解决方案,将 JCNR 控制器(基于 cRPD 的控制平面)和 JCNR-vRouter(支持 DPDK 的转发/数据平面)相结合。借助云原生路由器,您可以通过增强的转发功能启用基于 Junos OS 的交换控制。

在 Kubernetes (K8s) 计算主机上运行的 JCNR 控制器提供控制平面管理功能,并使用 Linux 内核或支持 DPDK 的 JCNR-vRouter 提供的转发功能。

DPDK 是一组开源库和驱动程序。DPDK 允许网络接口卡 (NIC) 将直接存储器访问 (DMA) 数据包直接发送到应用程序的地址空间,从而实现快速数据包处理。应用程序会对数据包进行投票,以避免 NIC 中断的开销。与 DPDK 集成后,vRouter 每秒处理的数据包比 vRouter 作为内核模块运行时的数据包数要多。

在此集成解决方案中,JCNR-Controller 使用基于 gRPC 的服务来交换消息并与 JCNR-vRouter 通信,从而创建功能全面的云原生路由器。通过这种密切的沟通,您可以:

  • 了解交换矩阵和工作负载接口

  • 根据需要为 K8s POD 配置 DPDK 或基于内核的接口

  • 为 Pods 配置 IPv4 和 IPv6 地址分配

好处

  • 借助基于 DPDK 的 JCNR-vRouter 提高数据包转发性能

  • 使用 Helm 在通用计算设备上轻松部署、卸下和升级

  • 软件中的完整交换和转发堆栈

  • 基本的 L2 功能,如 MAC 学习、MAC 老化、MAC 限制和 L2 统计

  • 用于管理流量的无线电单元 (RU) 的 L2 可访问性

  • 物理分布式单元 (DU) 的 L2 可访问性,例如 5G 毫米波 DUS 或 4G DUS

  • VLAN 标记

  • 桥接域

  • 中继、接入和子接口端口

  • 支持以太网 NIC 上的多个虚拟功能 (VF)

  • 支持绑定 VF 接口

  • 可配置的 L2 接入控制列表 (ACL)

  • 交换矩阵接口上的出口广播和组播流量速率限制

  • 开箱即用的基于软件的开放式无线接入网络 (O-RAN) 支持

  • 利用容器化部署快速启动

  • 高度可扩展的解决方案

图 1:瞻博网络云原生路由器 Components of Juniper Cloud-Native Router组件
Kubernetes

Kubernetes (K8s) 是一种编排平台,用于在集群计算环境中运行容器化应用程序。它提供容器化应用程序的自动部署、扩展、网络和管理。

K8s Pod 由一个或多个容器组成,每个 Pod 代表应用程序的实例。Pod 是 K8s 可以管理的最小设备。Pod 中的所有容器共享相同的网络名称空间。

我们依靠 K8 来编排云原生路由器所需的基础架构。但是,我们不会在本文档中提供 K8s 安装或管理说明。有关 Kubernetes 文档,请参阅 https://kubernetes.io 。目前,瞻博网络云原生路由器要求 K8s 群集是一个独立群集,这意味着 K8s 的主设备和工人功能都在单个节点上运行。

瞻博网络云原生路由器组件

瞻博网络云原生路由器控制器

JCNR 控制器 (cRPD) 是瞻博网络云原生路由器解决方案的控制平面部分。您可使用控制器与云原生路由器的其他元素进行通信。部署时在控制器上设置的配置、策略和规则将传达给其他组件,主要是用于实施的 JCNR-vRouter 代理和 JCNR-vRouter。

例如,JCNR-Controller 支持访问控制列表 (ACL),以配置具有拒绝规则的 L2 访问列表。JCNR 控制器通过 JCNR-vRouter 代理将配置信息发送至 JCNR-vRouter。

瞻博网络云原生路由器控制器功能:

  • 公开与 Junos OS 兼容的 CLI 配置和操作命令,外部自动化和编排系统可使用 NETCONF 协议访问这些命令。

  • 支持 JCNR-vRouter 作为高速转发平面。这使得使用 DPDK 框架构建的应用程序可以直接将数据包发送和接收到应用程序和 JCNR-vRouter,而无需通过内核。

  • 支持配置由支持 DPDK 的 JCNR-vRouter 管理的物理功能 (PF)、虚拟功能 (VF)、virtio、接入和中继接口上的 VLAN 标记子接口。

  • 支持桥接域配置

瞻博网络云原生路由器-vRouter

JCNR-vRouter 是 Linux 桥接或 Linux 内核中的 Open vSwitch (OVS) 模块的替代品。可容纳 JCNR-vRouter 容器的 Pod 还可容纳 JCNR-vRouter 代理容器。JCNR-vRouter 功能::

  • 执行 L2 转发

  • 执行 L2 速率限制

  • 允许使用基于 DPDK 的转发

  • 实施 L2 访问控制列表 (ACL)

JCNR 容器网络接口 (JCNR-CNI)

JCNR-CNI 是瞻博网络开发的新 CNI,用于处理瞻博网络开发的 Pods,如 JCNR-vRouter 代理和 JCNR-vRouter 代理 DPDK,以及 DPDK 应用程序 Pods 和云原生路由器控制器控制器。JCNR-CNI 是安装在每个节点上的 kubernetes CNI 插件,用于为应用程序 Pod 配置网络接口。在 Pod 创建期间,K8s 将 Pod 接口创建和配置委托至 JCNR-CNI。JCNR-CNI 与 JCNR 控制平面和 JCNR-vrouter 交互以设置 DPDK 接口。卸下 Pod 时,将调用 JCNR-CNI 以调配 K8s 和云原生路由器组件中的 Pod 接口、配置和关联状态。JCNR-CNI 与 Multus CNI 配合使用,可添加和配置 Pod 接口。

JCNR-CNI 提供以下功能:

  • 管理 K8s Pod 中的网络任务,例如分配 IP 地址、分配 MAC 地址,以及在 K8s 群集中的 Pod 和主机之间设置接口

  • 应用 L2 ACL。这些策略会发送至 JCNR-vRouter 以用于在数据平面中应用

  • 对 Pod 事件执行操作,例如添加和删除

  • 生成 cRPD 配置

Syslog-NG

瞻博网络云原生路由器使用 syslog-ng Pod 从 cRPD 和 vRouter 收集事件日志,并将日志转换为基于 JSON 的通知。通知将记录到文件中,可从该文件访问。