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 Evolved 22.2R1

Traceroute()

ターゲットデバイスでtracerouteコマンドを実行し、結果をストリーミングバックします。

デフォルトのホップ数:30

Junos OS Evolved 22.2R1

例:Ping

この例では、クライアントは gnoi_ping_request.py Pythonアプリケーションを実行します。アプリケーションは Ping() RPCをネットワークデバイスに送信し、ネットワーク上の指定されたデバイスにpingを実行します。

gnoi_ping_request.pyアプリケーションは、チャネルを確立するためのgrpc_channelモジュールをインポートします。grpc_channelモジュールについては、gNOIサービスの設定で説明しています。アプリケーションの引数はgnoi_ping_request_args.txtファイルに格納されます。アプリケーションファイルと引数ファイルがここに示されています。

gnoi_ping_request.py

gnoi_ping_request_args.txt

アプリケーションの実行

クライアントでアプリケーションを実行すると、RPC 呼び出し資格情報に対するサーバーのパスワードの入力を求められます。この PingResponse は、デバイスが5つのpingを送信したことを示しています。最終的な応答には、デバイスが 5 回の ping を送信し、5 回の応答を受信したことを示す ping リクエストの概要統計が含まれています。

デバイスの再起動

SystemサービスRPCを使用して、デバイスをリモートで再起動し、再起動のステータスを確認し、必要に応じて再起動をキャンセルします。これらのRPCは、デバイス上または特定のサブコンポーネント上で実行できます。Junosデバイスは、以下の再起動方法をサポートしています。

  • COLD(1):すべてのタイプの再起動に使用できます。

  • パワーダウン(2):FPCおよびルーティングエンジン(コントローラカード)の再起動に使用します。

  • HALT (3): アクティブな制御プロセッサの再起動に使用します。

  • POWERUP(7):FPCおよびルーティングエンジン(コントローラカード)の再起動に使用します。

Junos OS Evolvedリリース25.2R1以降、ルーティングエンジンコンポーネントでPOWERDOWNおよびPOWERUPオプションを使用できるようになりました。デュアル ルーティングエンジン システムでは ルーティングエンジン の電源のみをダウンでき、両方のルーティング エンジンの電源を同時にオフにすることはできません。ルーティングエンジンは、次の再起動まで電源がオフのままになります。

注:

ルーティングエンジンの電源を切り、再起動後も状態を維持するには、OpenConfig パス /components/component/controller-card/config/power-admin-state/ を POWER_DISABLED に設定します。この状態変更は、バックアップのルーティングエンジン上で直ちに有効になります。プライマリルーティングエンジンの状態は、再起動またはスイッチオーバー後にのみ変化します。

表2:再起動時にサポートされているsystem.proto RPC
RPC 説明 リリースで導入
Reboot()

ターゲットを再起動します。ターゲットに対して一度に実行できる再起動要求は1つだけです。

オプションで、将来再起動する遅延を設定したり、サブコンポーネントを個別に再起動したり、再起動開始時にメッセージを追加したりできます。遅延はナノ秒単位で設定されます。

Junosデバイスは、以下の再起動方法をサポートしています。

  • 冷たい (1)

  • パワーダウン (2)

  • 停止 (3)

  • パワーアップ (7)

Junos OS Evolved 22.2R1

RebootStatus() 再起動のステータスを返します。

Junos OS Evolved 22.2R1

CancelReboot() 保留中の再起動要求をキャンセルします。

Junos OS Evolved 22.2R1

例:再起動

この例では、クライアントは gnoi_reboot_request.py Pythonアプリケーションを実行します。アプリケーションは再起動要求を送信し、再起動のステータスを確認します。

このアプリケーションでは、ユーザーは再起動の遅延を秒単位で設定できます。 RebootRequest() は遅延をナノ秒単位で解釈するため、アプリケーションはユーザー入力をリクエストのナノ秒に変換します。この例では、クライアントは再起動操作に 60 秒の遅延を指定します。

gnoi_reboot_request.pyアプリケーションは、チャネルを確立するためのgrpc_channelモジュールをインポートします。grpc_channelモジュールについては、gNOIサービスを設定するで説明しています。アプリケーションの引数は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 Evolved 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モジュールをインポートします。grpc_channelモジュールについては、gNOIサービスを設定するで説明しています。アプリケーションの引数は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デバイスは、SwitchControlProcessorResponseのcontrol_processor をサポートしていません。

Junos OS Evolved 22.2R1

例:ルーティングエンジンのスイッチオーバー

この例では、gNOIクライアントが gnoi_system_switch_control_processor.py アプリケーションを実行してルーティングエンジンスイッチオーバーを実行します。クライアントは、 control_processor 引数を含めることで、どのスイッチ制御プロセッサ (ルーティングエンジン) をプライマリ ルーティングエンジンにするかを指定します。ターゲットルーティングエンジンが存在しない場合、RPC は INVALID_ARGUMENT エラーを返します。

アプリケーションは、チャネルを確立するための grpc_channel モジュールをインポートします。 grpc_channel モジュールについては、 gNOIサービスを設定するで説明しています。

gnoi_system_switch_control_processor.py

アプリケーションの実行

クライアントはアプリケーションを実行し、re1 がプライマリ ルーティングエンジンになるように control_processor 引数を re1 に設定します。

操作の実行後、re1はターゲットデバイス上のプライマリルーティングエンジンとなります。

変更履歴テーブル

サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がお使いのプラットフォームでサポートされているかどうかを確認します。

リリース
説明
25.2R1-EVO
Junos OS Evolved リリース 25.2R1 以降、gNOI System サービス Reboot() RPC を使用して、デュアル ルーティングエンジン デバイスの ルーティングエンジン(コントローラー カード)の電源をオンおよびオフにすることができます。