gNOI:操作インターフェイス

gNOI について

gRPC ネットワーク オペレーション インターフェイス(gNOI)は、ネットワーク デバイス上で操作コマンドを実行するための gRPC ベースのマイクロサービス セットを定義します。

gNOI は Google リモートプロシジャコール(gRPC)をトランスポートプロトコルとして使用します。構成は gNMI と同じです。gNMI 構成の詳細については、gRPC エージェントを参照してください。gNOI RPC 要求を送信するには、各 RPC に gNOI クライアント インターフェイスを実装するクライアントが必要です。Cisco NX-OS リリース 10.1(1) では、gNOI は限られた数のコンポーネントに対してリモートプロシージャコール(RPC)を定義しており、その一部はハードウェア(光インターフェイスなど)に関連しています。

Proto ファイルは gRPC マイクロサービス用に定義されており、GitHub で入手できます。https://github.com/openconfig/gnoi

表 1. サポートされる gNOI RPC
プロトコル gNOI RPC サポートあり
System ping
トレースルート はい
時間 はい
SwitchControl プロセッサ はい
リブート はい
RebootStatus はい
CancelReboot はい
OS アクティブ化 はい
インターフェイス はい
Cert LoadCertificate はい
File get はい
Stat はい
削除 はい

更新履歴

リリース 説明(Description)
10.1(1) gNOI RPC が同等の CLI とともに実装されました。既存の CLI の制限または有効なオプションはそのまま適用されます。
10.2(1) file.proto および cert.proto のサポートを追加

gNOI のガイドラインと制限事項

gNOI 機能には、次の注意事項と制約事項があります。

  • 最大 16 のアクティブな gNOI RPC がサポートされます。

  • Cisco Nexus 9000 シリーズ スイッチは、1 つの gNMI サービスと 2 つの gNOI マイクロサービスを持つ 1 つのエンドポイントを実行します。

gNOI の構成

gNMI は、gRPC エージェントの子機能です。gRPC エージェントを有効にするには、 gRPC エージェント を参照してください。現在、gNOI の個別の構成はありません。

System .Proto

システム proto サービスは、設定およびテレメトリ パイプラインの外部でターゲットを管理できるようにする操作可能な RPC のコレクションです。

次に、システム proto の RPC サポートの詳細を示します。

RPC サポート 説明(Description) 制限事項
ping ping/ping6 cli コマンド ターゲットで ping コマンドを実行し、結果をストリーム バックします。一部のターゲットでは、すべての結果が使用可能になるまで結果がストリーミングされない場合があります。パケット数が明示的に指定されていない場合は、ping5 が使用されます。 do_not_resolve オプションはサポートされていません。
トレースルート traceroute/traceroute6 cli コマンド ターゲットで traceroute コマンドを実行し、結果をストリーム バックします。一部のターゲットでは、すべての結果が使用可能になるまで結果がストリーミングされない場合があります。最大ホップ カウント 30 が使用されます。 itial_ttl、marx_ttl、wait、do_not_fragment、do_not_resolve、および l4protocol オプションはサポートされていません。
時間 ローカル時刻 ターゲットの現在の時刻を返します。通常、ターゲットが応答しているかどうかをテストするために使用されます。 -
SwitchControl プロセッサ system switchover cli コマンド 現在のルート プロセッサから指定されたルート プロセッサに切り替えます。スイッチオーバーは即座に発生します。応答がクライアントに返されることが保証されない場合があります。 スイッチオーバーは即座に発生します。その結果、応答がクライアントに返されることが保証されない場合があります。
リブート reload module ターゲットをリブートします。 message オプションはサポートされません。delay オプションはスイッチのリロードでサポートされます。path オプションは 1 つのモジュール番号を受け入れます。
RebootStatus show version [module] cli コマンド ターゲットのリブートのステータスを返します。 -
CancelReboot reload cancel 保留中の再起動要求をキャンセルします。 -

(注)  


SetPackage RPC はサポートされていません。


OS .Proto

OS サービスは、ターゲット上の OS インストールに対するインターフェイスを提供します。OS パッケージのファイル形式は、プラットフォームによって異なります。プラットフォームは、提供された OS パッケージが有効でブート可能であることを検証する必要があります。これには、既知の良好なハッシュに対するハッシュチェックを含める必要があります。ハッシュは OS パッケージに埋め込むことをお勧めします。

ターゲットは、独自の永続ストレージと OS インストールプロセスを管理します。一連の個別の OS パッケージを保存し、着信する新しい OS パッケージ用に常にプロアクティブにスペースを解放します。ターゲットには、有効な着信 OS パッケージ用の十分なスペースが常にあることが保証されます。現在実行中の OS パッケージは削除しないでください。クライアントは、最後に正常にインストールされたパッケージが使用可能であることを期待する必要があります。

次に、OS プロトコルの RPC サポートの詳細を示します。

RPC サポート 説明(Description) 制限事項
アクティブ化 install all nxos bootflash:///img_name 要求された OS バージョンを、次回のリブート時に使用されるバージョンとして設定します。この RPC は、ターゲットを再起動します。 再起動に失敗した場合は、ロールバックまたは回復できません。
検証 show version [検証(Verify)] は、実行中の OS バージョンを確認します。この RPC は、ターゲットの起動中に成功するまで複数回呼び出される場合があります。 -

(注)  


インストール RPC はサポートされていません。


Cert .Proto

証明書管理サービスは、ターゲットによってエクスポートされます。ローテーション、インストール、およびその他の証明書プロトコル RPC はサポートされていません。

RPC サポート 説明(Description) 制限事項
LoadCertificate

crypto ca import <trustpoint>

pkcs12 <file> <passphrase>

CA 証明書のバンドルをロードします。 -

ファイル proto

ファイル proto は、file.proto RPC の機能に基づいてメッセージをストリーミングします。ここに記載されていない Put およびその他の RPC は、ファイル Proto ではサポートされていません。

Get、Stat、および Remove RPC は、bootflash、bootflash://sup-remote、logflash、logflash://sup-remote、usb、volatile、volatile://sup-remote、および debug のファイル システムをサポートします。

次に、ファイル proto の RPC サポートの詳細を示します。

RPC サポート 説明(Description) 制限事項
結果 Get はターゲットからファイルの内容を読み取り、ストリーミングします。ファイルは連続したメッセージによってストリーミングされます。各メッセージには最大 64 KB のデータが含まれます。最後のメッセージが送信された後、送信されたデータのハッシュが送信され、ストリームが閉じられます。ファイルが存在しない場合、またはファイルの読み取り中にエラーが発生した場合は、エラーが返されます。 ファイル サイズの上限は 32 MB です。
Stat Stat は、ターゲット上のファイルに関するメタデータを返します。ファイルが存在しない場合、またはファイルのメタデータへのアクセス中にエラーが発生した場合は、エラーが返されます。 -
削除 Remove は、ターゲットから指定されたファイルを削除します。ファイルが存在しない場合、ディレクトリである場合、または削除操作でエラーが発生した場合は、エラーが返されます。 -

Factory Reset .Proto

この .proto は現在、1 つの RPC のみを定義しています。「https://github.com/openconfig/gnoi/blob/master/factory_reset/factory_reset.proto」を参照してください。

RPC サポート 説明(Description) 制限事項
FactoryReset ターゲットで ping コマンドを実行し、結果をストリーム バックします。一部のターゲットでは、すべての結果が使用可能になるまで結果がストリーミングされない場合があります。パケット数が明示的に指定されていない場合は、ping5 が使用されます。 do_not_resolve オプションはサポートされていません。

FactoryReset

gNOI の初期設定へのリセット操作を行うと、指定されたモジュールのすべての永続ストレージが消去されます。これには、構成、すべてのログ データ、およびフラッシュと SSD(ソリッドステートドライブ)のすべての内容が含まれます。リセットは直前のブート イメージでブートし、ライセンスを含むすべてのストレージを消去します。 gNOI の初期設定へのリセットは、次の 2 つのモードをサポートしています。

  • 再フォーマットと再パーティションのみが可能な高速消去。

  • データをセキュアに消去してワイプし、回復不可能にする、セキュア消去。

オプション Description
factory_os 工場出荷時の OS バージョンにロールバックするかどうかを指定します。 NX-OS では true に設定することはサポートされていません。現在のブートイメージを保持する必要があります。
zero_fill 時間のかかる、全面的なセキュア消去を実行するかどうかを指定します。

zero_fill = true:factory-reset module all preserve-image force を指定します。

zero_fill = false:factory-reset module all bypass-secure-erase preserve-image force を指定します。

gNOI のトラブルシューティング

gNOI のデバッグ

gNOI のステータスを確認するには、次のコマンドを入力します。

コマンドの表示

コマンド 説明
clear grpc gnoi rpc カウンタまたは呼び出しをクリーンアップするために使用されます。

debug grpc events {events|errors}

show grpc nxsdk event-history {events|errors}

イベント履歴からイベントとエラーをデバッグします。
show grpc internal gnoi service statistics gNOI サービス統計を表示します。
show grpc internal gnoi rpc {summary|detail} 有用性のために「internal 」キーワード コマンドが追加されました。
clear grpc gnoi rpc カウンタまたは呼び出しをクリーンアップするために使用されます。

出力例

show grpc gnmi service statistics
=============
gRPC Endpoint
=============

Vrf            : management
Server address : [::]:50051

Status         : Running - certificate expired
Cert notBefore : Jun 20 16:43:49 2023 GMT
Cert notAfter  : Jun 21 16:43:49 2023 GMT
Client Root Cert notBefore : n/a
Client Root Cert notAfter  : n/a

Max concurrent calls            :  16
Active calls                    :  0
show grpc internal gnoi rpc all summary
=============
gRPC Endpoint
=============
Vrf            : management
Server address : [::]:50051
RPC Type        State      Last Activity  Cnt Req    Cnt Resp   Client
--------------- ---------- -------------- ---------- ---------- ----------------------------------------
system.ping     End        01/12 20:22:06          1          6 ipv4:171.68.196.210:53222
system.time     Listen     01/12 20:21:57          0          0

デバッグ ログの収集

gNOI は、gRPC エージェントの子サービスです。詳細については、「gRPC エージェント」の章を参照してください。