gNOI系统服务

使用 gNOI System 服务在目标网络设备上执行系统操作,包括重新启动设备、升级软件和排除网络故障。

概述

gNOI System 服务提供 RPC,用于在网络设备上执行多种不同的系统操作,包括以下操作:

  • 重新启动设备
  • 执行 ping 和 traceroute 命令对网络进行故障排除
  • 升级软件
  • 执行路由引擎切换

原型定义文件位于 https://github.com/openconfig/gnoi/blob/master/system/system.proto。

注意:

如果发生系统故障,该 gnoi-system 进程将重新启动。要手动重新启动它,请使用命令 restart gnoi-system 。

网络设备配置

开始之前:

使用 System 服务 RPC 不需要其他配置。

Ping 和 Traceroute

您可以在网络设备上执行 ping 和 traceroute 命令来排除网络上的问题。

表 1:支持用于网络故障排除的 system.proto RPC
RPC 描述 在版本中引入
Ping()

对设备执行 Ping 操作。 Ping() RPC 支持 IPv4 和 IPv6 ping。此 RPC 在 ping 完成后流式传输回 ping 的结果。

默认数据包数:5

Junos OS 演化版 22.2R1

Traceroute()

在目标设备上执行 traceroute 命令并流式传输结果。

默认跃点计数:30

Junos OS 演化版 22.2R1

示例:Ping

在此示例中,客户端执行 gnoi_ping_request.py Python 应用程序。应用程序将 Ping() RPC 发送到网络设备,然后网络设备对网络上的指定设备执行 ping 操作。

gnoi_ping_request.py应用程序导入grpc_channel模块以建立通道。配置 gNOI 服务中介绍了该grpc_channel模块。应用程序的参数存储在gnoi_ping_request_args.txt文件中。此处显示了应用程序和参数文件。

gnoi_ping_request.py

gnoi_ping_request_args.txt

执行应用

在客户端上,执行应用程序,该应用程序会提示服务器输入 RPC 调用凭据的密码。表示 PingResponse 设备发送了五个 ping。最终响应包括 ping 请求的汇总统计信息,其中显示设备发送了 5 个 ping,并收到了 5 个响应。

重新启动设备

使用 System 服务 RPC 远程重新启动设备,检查重新启动的状态,并在需要时取消重新启动。可以在设备或特定子组件上执行这些 RPC。Junos 设备支持以下重新启动方法:

  • 冷 (1):适用于所有类型的重启。

  • POWERDOWN (2):用于 FPC 和路由引擎(控制器卡)重新启动。

  • HALT (3):用于主动控制处理器重新启动。

  • POWERUP (7):用于 FPC 和路由引擎(控制器卡)重新启动。

从 Junos OS 演化版 25.2R1 开始,您可以在路由引擎组件上使用 POWERDOWN 和 POWERUP 选项。您只能关闭双路由引擎系统中的路由引擎,不能同时关闭两个路由引擎的电源。路由引擎将保持关闭状态,直到下次重新启动。

注意:

要关闭路由引擎的电源并在重新启动后仍保持状态,可以将 OpenConfig 路径/components/component/controller-card/config/power-admin-state/POWER_DISABLED设置为 。此状态更改在备份路由引擎上立即生效。主路由引擎状态仅在重新启动或切换后更改。

表 2:支持用于重新启动的 system.proto RPC
RPC 描述 在版本中引入
Reboot()

重新启动目标。一次只能对目标执行一个重新启动请求。

您可以选择配置将来重新启动的延迟,单独重新启动子组件,并在重新启动时添加消息。延迟配置以纳秒为单位。

Junos 设备支持以下重新启动方法:

  • 冷 (1)

  • 掉电 (2)

  • 暂停 (3)

  • 加电 (7)

Junos OS 演化版 22.2R1

RebootStatus() 返回重新启动的状态。

Junos OS 演化版 22.2R1

CancelReboot() 取消挂起的重启请求。

Junos OS 演化版 22.2R1

示例:重新启动

在此示例中,客户端执行 gnoi_reboot_request.py Python 应用程序。应用程序发送重新启动请求,然后检查重新启动的状态。

该应用程序允许用户以秒为单位设置重新启动延迟。由于以 RebootRequest() 纳秒为单位解释延迟,因此应用程序将用户输入转换为请求的纳秒。在此示例中,客户端为重新启动操作指定了 60 秒的延迟。

gnoi_reboot_request.py应用程序导入grpc_channel模块以建立通道。配置 gNOI 服务中介绍了该grpc_channel模块。应用程序的参数存储在reboot_status_request_args.txt文件中。此处显示了应用程序和参数文件。

gnoi_reboot_status_request.py

reboot_status_request_args.txt

执行应用

当客户端执行应用程序时,应用程序会提示服务器输入 RPC 调用凭据的密码。然后,应用程序会在延迟 60 秒后重新启动服务器,并返回适用的重新启动状态消息。下面 reason 设置的消息也会在服务器重新启动之前立即显示在服务器上。在此示例中,登录到服务器的任何用户都会在重新启动之前立即看到“正在测试 gNOI 重新启动”。

升级软件

表 3 列出了支持软件升级的 系统 服务 RPC。

表 3:支持用于软件升级的 system.proto RPC
RPC 描述 在版本中引入
SetPackage()

在目标设备上安装软件映像。

Junos OS 演化版 22.2R1

您可以使用 SetPackage() RPC 将软件映像复制到目标设备并进行安装。源软件映像必须驻留在本地网络管理系统上。如果文件复制操作成功,并且目标位置已存在同名文件,则将覆盖该文件。如果目标位置不存在或写入数据时出错,则 RPC 将返回错误。

默认情况下,SetPackage()不会重新启动设备和激活软件。您必须在消息中SetPackageRequest将该选项显式设置为 activate 1,才能激活新软件。如果激活软件,设备将重新启动并使用新的软件映像。如果未激活软件,则必须重新启动相关节点才能完成安装并激活新的软件映像。

示例:安装软件包

在此示例中,客户端执行 gnoi_system_set_package.py Python 应用程序,该应用程序执行以下操作:

  • 将软件包从本地网络管理系统复制到网络设备。
  • 在网络设备上安装软件包。
  • 重新启动网络设备,从而激活新的软件映像。

应用程序使用适当的参数构造 SetPackageRequest 消息,以定义复制和安装操作的请求。然后,应用程序调用 SetPackage() RPC 将请求发送到网络设备。该 SetPackageRequest 消息包含以下组件:

  • 包含软件映像的路径和文件信息的初始 Package 消息。 activate 该参数设置为 1 (True) 以重新启动设备并激活软件。
  • 不超过 64KB 的顺序消息中的软件映像文件内容流。
  • 带有文件校验和的最后一条消息,用于验证文件内容的完整性。

gnoi_system_set_package.py应用程序导入grpc_channel模块以建立通道。配置 gNOI 服务中介绍了该grpc_channel模块。应用程序的参数存储在文件中args_system_set_package.txt。应用程序和参数文件如下:

gnoi_system_set_package.py

args_system_set_package.txt

执行应用

当客户端执行应用程序时,应用程序会将包从本地设备复制到网络设备,安装它,然后重新启动设备以完成安装。

路由引擎切换

SwitchControlProcessor()您可以使用 RPC 执行路由引擎切换。

注意:

在两个路由引擎启动后,连续的路由引擎切换事件必须至少间隔 400 秒。

表 4:支持用于路由引擎切换的 system.proto RPC
RPC 描述 在版本中引入
SwitchControlProcessor()

从当前路由引擎切换到指定的路由引擎。如果当前路由引擎和指定的路由引擎相同,则为 NOOP。如果目标不存在,则 RPC 将返回错误。

注意:

Junos 设备不支持control_processor SwitchControlProcessorResponse。

Junos OS 演化版 22.2R1

示例:路由引擎切换

在此示例中,gNOI 客户端执行 gnoi_system_switch_control_processor.py 应用程序以执行路由引擎切换。客户端通过包含 control_processor 参数来指定哪个交换机控制处理器或路由引擎应为主路由引擎。如果目标路由引擎不存在,RPC 将返回 INVALID_ARGUMENT 错误。

应用程序导入grpc_channel模块以建立通道。配置 gNOI 服务中介绍了该grpc_channel模块。

gnoi_system_switch_control_processor.py

执行应用

客户端执行应用程序并将参数设置为 control_processor , re1 以便 re1 成为主路由引擎。

执行操作后,re1 是目标设备上的主路由引擎。

变更历史表

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

发布
描述
25.2R1-EVO
从 Junos OS 演化版 25.2R1 开始,您可以使用 gNOI System 服务 Reboot() RPC 为双路由引擎设备上的路由引擎(控制器卡)打开和关闭电源。