ネットワーク デバイスを管理するための gRPC サービスについて
概要 gRPC クライアント アプリケーションは、gNOI 運用や gRIBI サービスなどの gRPC ネットワーク サービスを使用して、サポート対象のネットワーク デバイスを管理できます。
gRPC ネットワーク サービスのメリット
- ネットワーク デバイスを管理するためのベンダーに依存しないシンプルなインターフェイスを提供します。
- マルチベンダーネットワークをより簡単に大規模に管理できます。
- トランスポート用に gRPC リモートプロシージャコールフレームワークを使用し、サービス定義とエンコーディング用にプロトコルバッファを使用し、効率的なトランスポートと高速処理を提供します。
OpenConfig について
OpenConfig は、マルチベンダー ネットワークの構成と管理をより動的でプログラム可能な方法に移行するためのネットワーク業界における協力的な取り組みです。OpenConfig は、ベンダー中立のサービス定義とデータ モデルの使用をサポートし、ネットワークの管理と設定を行います。サービス定義はネットワーク デバイス上で実行される共通の運用を定義し、データ モデルは一般的なネットワーク プロトコルまたはサービスのネットワーク デバイスの設定と運用状態を定義します。
マルチベンダーネットワークを使用する事業者は、業界標準のモデルと仕様を使用することで大きなメリットを得ることができます。OpenConfig の目標は、オペレーターが単一のデータ モデルと運用セットを使用して、OpenConfig イニシアチブをサポートするすべてのネットワーク デバイスを構成および管理できることを目的としています。OpenConfig ワーキング グループは、ネットワーク デバイスの設定、運用、テレメトリ ストリームを管理するための gRPC ベースのインターフェイスの仕様を開発しました。他の従来のネットワーク管理プロトコルよりも利点があります。
gRPC ベースのサービスの概要
gRPC は、Google が開発したオープンソースのリモート プロシージャ コール(RPC)フレームワークです。gRPCは、トランスポートにHTTP/2を使用し、最新のセキュリティメカニズムと双方向ストリーミングをサポートしています。gRPCは、サービスとエンコーディングデータを定義するためにプロトコルバッファのデータフォーマットを使用します。プロトコル バッファは言語に依存せず、さまざまな言語のバインディングをサポートしているため、通信事業者は gRPC ベースのサービスを既存の管理アプリケーションに簡単に統合できます。
OpenConfig 作業グループは、gRPC ベースのネットワーク管理プロトコルの仕様を定義しています。gRPC ベースのネットワーク サービスには以下が含まれます。
- gRPCネットワーク管理インターフェイス(gNMI):設定管理とストリーミングテレメトリのための単一サービス。
- gRPCネットワーク運用インターフェイス(gNOI)—運用管理のためのマイクロサービススイート。
- gRPC ルーティング情報ベース インターフェイス(gRIBI):外部アプリケーションが、ターゲット デバイス上のルーティング テーブル内のエントリをプログラムによって追加または削除できるようにするサービスです。
図 1 は、さまざまなサービスのスコープを示しています。

gNMI、gNOI、gRIBI サービスの概要
gNMI は、ネットワーク要素の状態管理に単一のサービスを提供します。gNMIでは、ベンダー中立のデータモデルを使用して、一般的なネットワークプロトコルやサービスのネットワークデバイスの設定と運用状態を定義します。gNMIクライアントは、ネットワークデバイスの設定を取得および変更するとともに、運用データをストリーミングすることができます。オペレーターは、対象となる特定のデータオブジェクトにサブスクライブしてネットワークを監視します。gNMI は、時間の影響を受けやすい操作に不可欠な オンチェンジ ストリーミングもサポートしています。
Junos デバイスでの構成管理とテレメトリ ストリーミングに gNMI を使用する方法の詳細については、以下を参照してください。
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証明書を使用してデバイスまたはアプリケーションを認証します。証明書は、認証機関または自己署名によって署名できます。

gNMI、gNOI、gRIBI は、ネットワーク デバイスを管理するためのサービスを定義します。各サービス定義は、proto 定義ファイル内のその特定のサービスの操作(RPC)とデータ構造(メッセージ)を定義します。データ構造は、構造化データをシリアル化するためのオープン ソースの言語に中立なデータ形式であるプロトコル バッファーを使用して定義されます。または同等のコンパイラを使用 protoc
して、選択した言語の proto ファイルをコンパイルします。管理アプリケーションは、コンパイルされたファイル内のコードを使用して、要求された操作をネットワーク デバイスで実行できます。 表 1 は、proto 定義ファイルを含む gNMI、gNOI、gRIBI GitHub リポジトリの場所を示しています。
Interface | GitHub リポジトリ |
---|---|
gNMI | openconfig/gnmi |
gNOI | openconfig/gnoi |
gRIBI | openconfig/gribi |
gNMI、gNOI、gRIBI は、NETCONF や RESTCONF などの他のネットワーク管理プロトコルに比べて代替手段やメリットを提供します。gNMI、gNOI、gRIBI は gRPC ベースのサービスであり、proto 定義ファイルは多くのサポート対象言語でコンパイルできるため、サービスを既存の管理アプリケーションと簡単に統合してマルチベンダー ネットワークを管理できます。さらに、データのシリアル化にプロトコル バッファーを使用すると、JSON や XML などの他のシリアル化形式よりも効率的なトランスポートと高速な処理が通常提供されます。