在此页面上
什么是瞻博网络® 云原生路由器?
概述
瞻博网络云原生路由器 (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) 支持
-
利用容器化部署快速启动
-
高度可扩展的解决方案
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 标记子接口。
-
支持桥接域配置
JCNR-vRouter 是 Linux 桥接或 Linux 内核中的 Open vSwitch (OVS) 模块的替代品。可容纳 JCNR-vRouter 容器的 Pod 还可容纳 JCNR-vRouter 代理容器。JCNR-vRouter 功能::
-
执行 L2 转发
-
执行 L2 速率限制
-
允许使用基于 DPDK 的转发
-
实施 L2 访问控制列表 (ACL)
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 Pod 从 cRPD 和 vRouter 收集事件日志,并将日志转换为基于 JSON 的通知。通知将记录到文件中,可从该文件访问。