Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

了解用于管理网络设备的 gRPC 服务

SUMMARY gRPC 客户端应用可以使用 gRPC 网络服务(包括 gNOI 操作和 gRIBI 服务)来管理受支持的网络设备。

gRPC 网络服务的优势

  • 提供简单、不受供应商制约的接口,用于管理网络设备。
  • 使您能够更轻松地大规模管理多供应商网络。
  • 使用 gRPC 远程过程调用框架传输和协议缓冲区进行服务定义和编码,从而提供高效传输和快速处理。

了解 OpenConfig

OpenConfig 是网络行业的一项协同工作,旨在转向一种更动态的可编程方法来配置和管理多供应商网络。OpenConfig 支持使用不受供应商制约的服务定义和数据模型来管理和配置网络。服务定义定义在网络设备上执行的常见操作,数据模型定义常见网络协议或服务的网络设备的配置和操作状态。

使用行业标准模型和规格,拥有多供应商网络的运营商受益匪浅。OpenConfig 的目标是让运营商能够使用一组数据模型和操作来配置和管理支持 OpenConfig 计划的所有网络设备。OpenConfig 工作组制定了基于 gRPC 的接口规范,用于管理网络设备上的配置、操作和遥测流,这与其他传统网络管理协议不同。

基于 gRPC 的服务概述

gRPC 是最初由 Google 开发的开源远程过程调用 (RPC) 框架。gRPC 使用 HTTP/2 进行传输,并支持现代安全机制和双向流传输。gRPC 使用 Protocol Buffers 数据格式定义服务和对数据进行编码。协议缓冲区不受语言制约,并支持多种不同语言的绑定,使操作人员能够轻松地将基于 gRPC 的服务集成到现有管理应用程序中。

OpenConfig 工作组为基于 gRPC 的网络管理协议定义了规范。基于 gRPC 的网络服务包括:

  • gRPC 网络管理接口 (gNMI) — 用于配置管理和流遥测的单一服务。
  • gRPC 网络操作接口 (gNOI) — 用于运维管理的微服务套件。
  • gRPC 路由信息基本接口 (gRIBI) — 使外部应用程序能够以编程方式在目标设备上的路由表中添加或删除条目的服务。

图 1 展示了不同服务的范围。

图 1:gRPC 网络接口 gRPC Network Interfaces

gNMI、gNOI 和 gRIBI 服务概述

gNMI 为网络元素的状态管理提供单一服务。gNMI 使用不受供应商制约的数据模型,用于定义常见网络协议或服务的网络设备的配置和操作状态。gNMI 客户端可以检索和修改网络设备的配置,以及流式传输操作数据。运营商通过订阅感兴趣的特定数据对象来监控网络。gNMI 还支持 基于更改 的流传输,这对时间敏感型操作至关重要。

有关使用 gNMI 在 Junos 设备上进行配置管理和遥测流处理的详细信息,请参阅:

gNMI 处理状态管理,gNOI 处理运维管理。gNOI 是基于 gRPC 的微服务的集合,用于在网络设备上执行通用操作。每个服务定义都定义了远程过程调用 (RPC),管理应用程序可以在设备上执行一组操作,例如重新启动设备、升级软件或轮换证书。有关支持的 gNOI 服务列表,请参阅 gNOI 服务概述

gRIBI 是用于管理网络设备的路由信息库(RIB,也称为路由表)和转发信息库(FIB,也称为转发表)的单一服务。管理应用程序可以在设备上执行 gRIBI RPC,以检索、添加、修改或删除设备的 RIB 或 FIB 中的路由。有关受支持的 gRIBI RPC 的详细信息,请参阅 gRIBI

gNMI、gNOI 和 gRIBI 使用 gRPC 进行传输,而 gRPC 服务器与 gRPC 客户端之间的连接通过 SSL 加密的 gRPC 会话进行。例如, 图 2 展示了 gNOI 客户端和服务器之间的简单连接。瞻博网络支持仅服务器身份验证和 gRPC 会话交互身份验证,后者使用 X.509 证书对设备或应用程序进行身份验证。证书可由证书颁发机构签名,也可自签名。

图 2:gNOI 服务器和客户端交互 gNOI Server and Client Interaction

gNMI、gNOI 和 gRIBI 定义了用于管理网络设备的服务。每个服务定义在 proto 定义文件中定义该特定服务的操作 (RPC) 和数据结构(消息)。数据结构使用协议缓冲区定义,协议缓冲区是一种用于序列化结构化数据的开源、语言中立的数据格式。 protoc 您可以使用或等效编译器来编译您选择的语言的 proto 文件。管理应用程序可以使用已编译文件中的代码对网络设备执行请求的操作。 表 1 提供了包含 proto 定义文件的 gNMI、gNOI 和 gRIBI GitHub 存储库的位置。

表 1:gNMI、gNOI 和 gRIBI 存储库
接口 GitHub 存储库
gNMI openconfig/gnmi
GNOI openconfig/gnoi
GRIBI openconfig/gribi

gNMI、gNOI 和 gRIBI 提供了其他网络管理协议(如 NETCONF 和 RESTCONF)的替代方案和优势。由于 gNMI、gNOI 和 gRIBI 是基于 gRPC 的服务,并且可以编译多种不同受支持的语言的 proto 定义文件,因此这些服务可以轻松与现有管理应用程序集成,以管理多供应商网络。此外,使用协议缓冲区进行数据序列化通常可借助其他序列化格式(如 JSON 和 XML)提高传输效率并加快处理速度。