什么是容器化 RPD?
Junos® 容器化路由协议进程 (cRPD) 是在 Linux 容器化环境中实例化的 Junos OS 路由功能的一个实例。cRPD 为网络提供云原生路由。我们将 cRPD 软件打包为 Docker 容器映像。cRPD 支持在设备上使用 IS-IS、OSPF 和 BGP 的路由器功能,如图 3 所示。
cRPD 的优势
-
缩短部署时间 — 使用容器将服务的启动时间从几分钟缩短到几秒钟,从而加快部署。
-
无缝升级 — 升级软件,将服务中断降至最低。
-
灵活性 — 以最少的资源要求启动多个 cRPD 实例,以支持目标规模。
-
稳定性 — 在 Linux 上提供稳定的路由软件。
Linux 上的 rpd 概述
Junos 路由协议进程 (rpd) 是路由引擎软件中的一个软件进程。rpd 控制在设备上运行的路由协议。
作为一个软件进程,rpd:
-
从基于 Linux 的路由协议堆栈的中心运行。
-
维护一个或多个路由表,以整合从所有路由协议中学习的路由信息。
-
管理所有协议消息、路由表更新并实施路由策略。
您可以使用 rpd 应用程序:
-
在软件容器上运行。cRPD 应用程序支持容器化路由反射器 (cRR) 等路由解决方案。cRR 服务必须独立工作。
-
与管理、CLI 进行配置、与 BFD(用于检测链路实时性)、定期数据包管理流程 (PPMD) 和更新协议会话进行交互。
-
了解使用各种路由协议的路由状态。
-
在路由信息库 (RIB)(也称为路由表)中维护完整的路由信息集。
-
启动所有配置的路由协议并处理所有路由消息。rpd 维护一个或多个路由表,这些表整合了路由器从所有路由协议中获知的路由信息。
-
实施路由策略,通过该策略控制在路由协议和路由表之间移动的路由信息。使用路由策略,您可以过滤和限制信息的传输,以及设置与特定路由关联的属性。
-
将符合本地选择标准的路由下载到转发信息库 (FIB) 中,也称为转发表。
-
根据路由信息确定网络目标的活动路由,并将这些路由编程到路由引擎的转发表。
-
通过 Netlink 消息了解接口属性,如名称、地址、最大传输单元 (MTU) 设置和链路状态。
Docker 概述
cRPD 可在支持 Docker 的任何 Linux 分发系统上运行。
Docker 是一个开源软件平台,可用来创建、管理和分解可以在任何 Linux 服务器上运行的虚拟容器。容器中的 Docker 包应用程序。您可以在任何 Linux 操作系统上移植并使用这些容器。容器为应用程序提供 OS 级虚拟化。
容器不作为虚拟机 (VM) 运行;而是通过为虚拟环境提供专用的 CPU、内存、I/O 和网络功能来隔离虚拟环境。
容器的优势
-
通过隔离提高效率 — 容器使用主机 OS Linux 内核功能,例如隔离组和命名空间,使多个容器能够在同一 Linux 主机操作系统上隔离运行。容器中的应用程序共享其 Linux 主机操作系统的内核,因此内存更少。
-
提高启动(启动)速度 — 与虚拟机相比,容器的启动时间更少。因此,您可以使用容器快速高效地安装、运行和升级应用程序。
图 2 概述了典型的 Docker 容器环境。
cRPD 的工作原理是什么?
启动 Docker 时,会自动创建默认网桥网络(也称为 网桥),并且容器会连接到该网络,除非另有指定。您可以使用此网桥网络在同一主机上运行多个容器,而无需分配动态端口。
网桥支持连接到同一网桥网络的容器进行通信,同时提供与未连接到网桥网络的容器的隔离。
桥接模式:
-
容器通过网桥连接到主机网络堆栈。
-
多个容器连接到同一网桥,相互通信。
-
网桥在连接到主机 OS 网络接口时支持外部通信。
使用容器部署 RPD 应用时,FIB 会公开被发送至 Linux 容器中的 RPD 的底层操作系统内核获知的网络接口。RPD 了解所有网络接口,并添加所有网络接口的路由状态。如果系统中正在运行其他 Docker 容器,则直接在主机上运行的所有容器和应用程序都可以访问同一组网络接口和状态。cRPD 将符合本地路由选择标准的路由转发到 FIB。
路由反射器
您可以部署 cRPD 以提供仅控制平面服务,例如 BGP 路由反射。
cRR 托管在不同的网络服务器硬件上。应用程序会使用使用路由反射服务学习的可访问性信息。路由反射网络服务必须独立工作,而不依赖于托管应用程序的相同硬件或控制器。
路由引擎内核
路由引擎软件由几个控制路由器功能的软件进程和一个支持所有进程之间通信的内核组成。
路由引擎内核提供:
-
路由表与路由引擎转发表之间的链路。
-
与数据包转发引擎通信。内核会将数据包转发引擎的转发表副本与路由引擎中的主副本同步。
主机 Linux 内核存储 FIB,所有路由和下一跃点信息都存储在 FIB 中,以便进行数据包转发。
rpd 在 Linux 上本机运行,并使用 Netlink 与 Linux 内核共享程序路由信息。Netlink 是一个 Linux 内核接口,用于内核与用户空间进程之间以及不同用户空间进程之间的通信。cRPD 是用户空间流程的示例。
您可以使用 Netlink 消息:
-
编程或安装 Linux 内核中 rpd 生成的 FIB 状态。
-
与 mgd 和 CLI 交互进行配置和管理。
-
使用 ppmd 维护协议会话。
-
使用 BFD 检测实时情况。
cRPD 上支持的功能
cRPD 支持以下功能:
-
Linux 容器中的 BGP 路由反射器 (LXC)
-
BGP add-path、多路径、平滑重启助手模式
-
BGP、OSPF、OSPFv3、IS-IS 和静态协议
-
BMP、BFD 和 Linux FIB
-
等价多路径 (ECMP)
-
适用于可编程 RPD (PRPD) 的瞻博网络扩展工具包 (JET)
-
Junos OS CLI
-
使用开放接口 NETCONF 和 SSH 进行管理
-
IPv4 和 IPv6 路由
-
MPLS 路由
发 牌
您需要许可证才能激活 cRPD 软件功能。要了解有关 cRPD 许可证的更多信息,请参阅 cRPD 上支持的功能、 适用于 cRPD 的 Flex 许可证和管理 cRPD 许可证。