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