Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

使用 gRPC 拨出进行安全遥测收集

了解 gRPC 拨出

从 Junos OS 版本 22.4R1 开始,JTI 支持 ACX 系列路由器、MX 系列路由器、PTX 系列路由器和 QFX 系列交换机上的远程 gRPC 拨出支持。使用 gRPC 拨出时,目标设备(服务器)启动与收集器(客户端)的 gRPC 会话。建立会话后,目标会将传感器组订阅指定的遥测数据流式传输到收集器。这与 gRPC 网络管理接口 (gNMI) 拨入方法相反,在该方法中,收集器启动与目标设备的连接。

gRPC 拨出简化了流式遥测统计信息。将目标设备配置为流式传输统计信息并将其导出到收集器 IP 地址,可消除收集器(客户端)上的访问负担。(见 图 1)。

图 1:gRPC 拨出 gRPC Dial-Out

与 gRPC 拨入相比,gRPC 拨出具有以下几个优点:

  • 减少目标设备暴露于拓扑结构之外的威胁。

  • 简化对目标设备的访问。gRPC 拨入方法要求收集器克服一系列复杂的防火墙配置才能访问目标设备。gRPC 拨出不会。

  • 收集器可以是无状态的;无需启动会话,它们只需侦听、订阅和存储收集的数据。

  • 支持相互加密以提高安全性。

要启用统计信息导出,请在 [] 层次结构级别包含 export-profile and sensoredit services analytics语句。导出配置文件必须包括报告速率、传输服务(例如 gRPC)和格式(例如 gbp-gnmi)。传感器配置应包括收集器的名称(服务器的名称)、导出配置文件的名称和资源路径。资源路径的一个示例是 /interfaces/interface[name='fxp0'

gRPC 隧道概述

gRPC 隧道充当客户端-服务器协议,通过默认路由实例或配置的路由实例拨出从目标到 TCP 客户端的会话。如果不选择配置路由实例,gRPC 隧道将使用默认路由实例。

可以为每个 gRPC 隧道会话配置源地址,以拨出与隧道服务器的连接。如果未配置源地址,内核将选取可以访问隧道服务器的源地址。

有关 gRPC 隧道的详细信息,请参阅 https://github.com/openconfig/grpctunnel

gRPC 隧道有三个主要实体:

  • 目标— — 表示网络设备。目标是 gRPC 客户端。

  • 隧道服务器 — 一种软件实体,它是管理订阅和目标注册的外部应用程序。隧道服务器是 gRPC 服务器。

  • 隧道客户端— — 执行客户端任务的软件实体。隧道客户端可以在隧道服务器中自包含。隧道客户端也是 gRPC 客户端。

使用 gRPC 隧道会话的优点:

  • 从服务器端建立连接时,克服一系列复杂的防火墙配置。

  • 访问各种TCP服务器应用程序,如gNMI-gNOI,SSH或NETCONF-SSH,无需任何操作要求。

gRPC 隧道架构

gRPC 隧道是基于 TCP 的应用程序在 gRPC 消息中进行通信的通用基础结构。

通常,TCP 客户端会启动与 TCP 服务器或目标的连接。Junos 设备充当运行 TCP 服务器应用程序(如 gNMI-gNOI、SSH 和 NETCONF-SSH)的目标。如果客户端无法访问服务器,常见原因可能是:

  • 服务器遇到复杂的防火墙配置,其中的防火墙会阻止入站连接。

  • 服务器连接到实现网络地址转换 (NAT) 的路由器。

  • 服务器遇到任何其他操作要求,这会阻止外部连接。

当 TCP 客户端无法访问目标时,可以配置 gRPC 隧道会话以在 TCP 客户端和目标之间建立连接。gRPC 隧道会话在目标拨出到 TCP 客户端的相反方向上建立连接。

要使用 gRPC 隧道会话,需要将隧道客户端添加到运行 grpc 隧道进程的目标端,并执行所有与 gRPC 隧道相关的配置。在 TCP 客户端,添加了隧道服务器。

必须在 grpc-tunnel [edit system services] 层次结构中包含配置语句才能配置 gRPC 隧道会话。

gRPC 隧道安全性

gRPC 隧道是一种拨出模式,其中设备根据配置启动连接。gRPC 隧道位于使用 TLS 证书的安全 gRPC 通道上。

示例:配置 gRPC 隧道

概述

本节介绍为此示例配置目标所需的步骤。焦点位于目标上,因为这是配置 gRPC 隧道的 Junos 设备。

要求

此示例使用以下软件和硬件组件:

  • 适用于路由和交换设备的 Junos OS 或 Junos Evolved 22.4 或更高版本

  • 一个主机设备作为隧道客户端

  • 一个主机设备作为隧道服务器

拓扑

图 1 显示了此示例中使用的拓扑。

图 2:gRPC 隧道设置 gRPC tunnel setup

根据目标设备的 Junos 配置,它会拨出一条 grpc 隧道到隧道服务器。目标设备通过注册流 RPC 向隧道服务器注册自身。

当客户端请求特定目标的 TCP 会话时,隧道服务器充当中介并连接到隧道服务器上上述注册的目标会话。

如果目标支持请求的目标类型,设备将拨出一个名为隧道流 RPC 的新隧道。这将通过隧道服务器在客户端和目标之间建立 gRPC 隧道。隧道客户端现在可以访问目标系统上的预期 TCP 应用程序。

注意:

隧道服务器和网络设备之间只能有一个寄存器流,但同一对之间可以有多个隧道流。

配置 gRPC 隧道

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改任何必要的详细信息以匹配您的网络配置,然后将命令复制并粘贴到 [edit] 层次结构级别的 CLI 中。

分步过程

按照以下步骤在目标设备中配置 gRPC 隧道。

  1. 在 gRPC 隧道下配置服务器。

    1. 配置隧道服务器的 IPv4 或 IPv6 地址或主机名。

    2. 配置隧道服务器侦听的端口号。

    3. 使用 tls 语句配置凭据。

    4. 指定要访问的目标应用程序。可用选项包括 sshnetconf-ssh gnmi-gnoi

  2. (可选)设置 重试间隔 (以秒为单位)。如果无法访问隧道服务器,目标设备将在重试间隔后重试连接。

  3. (可选)

    设置 路由实例。如果未设置路由实例,gRPC 隧道将使用默认路由实例。
  4. (可选)

    设置 源地址。如果未设置源地址,内核将选取可以访问隧道服务器的源地址。
  5. (可选)在 grpc 隧道下配置目标字符串选项

    1. 使用 pattern 语句创建受支持选项的有序列表。

    2. 使用自定义字符串语句定义当语句模式作为选项之一包含custom时发送的自定义字符串

    3. 当模式中选择了多个选项时,请使用 分隔符 语句。默认情况下, | 使用(管道符号)。

注意:

最多可以配置 10 个隧道服务器。

结果

显示目标设备上的配置结果。输出仅反映此示例中添加的功能配置。

更改历史记录表

功能支持由您使用的平台和版本决定。使用功能资源管理器确定您的平台是否支持某个 功能

释放
描述
22.4R1
从 Junos OS 版本和 Junos OS 演化版 22.4R1 开始,JTI 支持 ACX 系列路由器、MX 系列路由器、PTX 系列路由器和 QFX 系列交换机上的远程 gRPC 拨出支持。