gRPC トンネルサービスを使用した gNMI ダイヤルアウト

ここでは、gNMI ダイヤルアウト接続のトンネルサービスを設定する方法について説明します。gRPC トンネルサーバーを使用して、gRPC ネットワーク管理インターフェイス(gNMI)または gRPC ネットワーク運用インターフェイス(gNOI)などの外部クライアントからの接続を転送し、直接接続を確立せずにネットワークデバイスに接続できます。

gRPC トンネルサービスを使用した gNMI ダイヤルアウト

Cisco IOS XE Dublin 17.11.1 より前のリリースでは、gNMI はダイヤルインセッションをサポートし、データコレクターは RPC をネットワークデバイスに直接送信します。Cisco IOS XE Dublin 17.11.1 以降、gNMI は OpenConfig フォーラムの推奨事項に従って、gNMI ダイヤルアウト接続にトンネルサービスを使用します。

gRPC トンネルサービスを介した gNMI ダイヤルアウトでは、ルータ(トンネルクライアント)を使用してコレクター(トンネルサーバー)にダイヤルアウトできます。セッションの確立後、トンネルサーバーはクライアントとして機能し、gNMI サービスを要求します。トンネルサーバーは、1 つ以上の gNMI または gNOI クライアントからの要求を転送します。gRPC トンネルサーバーは、gNMI や gNOI クライアントとは異なるエンティティである可能性があることに注意してください。


(注)  


gRPC トンネルは、tunnel.proto ファイルで提供される機能仕様に基づいて設計されています。


gRPC トンネルを使用した gNMI ダイヤルアウトの詳細については、Github リポジトリを参照してください。


(注)  


トンネルサービスは、Transport Layer Security(TLS)セッションのみをサポートします。


gRPC トンネルサービスを使用した gNMI ダイヤルアウトについて

次の項では、従来の gRPC 接続、gRC トンネル、および gRPC トンネルを使用した GNMIB への接続について詳しく説明します。

従来の gRPC 接続

次の図の黄色の矢印は、ネットワークデバイスに接続して gRPC や gNOI サービスにアクセスするための従来の方法を示しています。gNMI クライアントは、直接接続が許可されている場合にのみ、ネットワークデバイスに接続します。

図 1. 従来の gRPC 接続

gRPC トンネル

gRPC トンネルの主なコンポーネントは次のとおりです。

  • ターゲット:ネットワークデバイス上の単一のサービスを表します。たとえば、gNMI や gNOI は 1 つのターゲットタイプです。トンネルクライアントは、1 つ以上のターゲットタイプをトンネルサーバーに登録できます。

  • トンネル:トンネルクライアントとサーバー間でデータを転送できる双方向ストリーム。

  • トンネルサーバー:ターゲットのサブスクリプションと登録を管理する gRPC サーバー。

  • トンネルクライアント:GNMIB は gRPC のトンネルクライアントです。

gRPC トンネルを使用した GNMIB への接続

gRPC トンネル設計では、従来と逆のフローになります。ネットワークデバイスは、gRPC トンネルサーバーにダイヤルアウトします。これにより、gRPC トンネルサーバーと gNMI または gNOI クライアントは、ネットワークデバイスのアドレスと場所を認識できなくなります。また、発信接続がブロックされている場合でも、ネットワークデバイスは gRPC トンネルサーバーにアクセスできます。

図 2. GNMIB への新しい接続方法

gRPC トンネルサービスを使用した gNMI ダイヤルアウトの設定方法

次の項では、gRPC トンネルサービス設定を使用した大規模な gNMI ダイヤルアウトの設定について詳しく説明します。

ターゲットの設定と有効化

ターゲットを設定して有効にするには、ネットワークデバイスで次のコマンドを実行します。

手順の概要

  1. enable
  2. configure terminal
  3. gnxi grpctunnel target {GNMI_GNOI | GNMI_GNOI_INSECURE}
  4. enable
  5. end

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

enable

例:

Device> enable

特権 EXEC モードを有効にします。

  • パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:

Device# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

gnxi grpctunnel target {GNMI_GNOI | GNMI_GNOI_INSECURE}

例:

Device(config)# gnxi grpctunnel target GNMI_GNOI

gRPC トンネルターゲットを設定し、ターゲット コンフィギュレーション モードを開始します。

(注)  

 

GNMI_GNOI ターゲットのみがサポートされます。GNMI_GNOI_INSECURE ターゲットはテストのみの目的で使用し、常に GNMIB の非セキュアポートに接続します。

ステップ 4

enable

例:

Device(config-target)# enable

トンネルターゲットを有効にします。

ステップ 5

end

例:

Device(config-target)# end

ターゲットのコンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

gRPC トンネルの設定

gRPC トンネルを構成するネットワークデバイスのターゲットを設定して有効にするには、次のコマンドを実行します。トンネルサーバーの IP アドレス、トンネルサーバーがリッスンするポート、および送信元または発信 VRF を設定します。次の設定タスクは、データがターゲットからサーバーに送られる様子を示しています。

手順の概要

  1. enable
  2. configure terminal
  3. gnxi grpctunnel destination destination-name
  4. enable
  5. address IP-address
  6. port port-number
  7. identity-trustpoint trustpoint-name
  8. source-address IP-address
  9. source-vrf VRF-name
  10. end

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

enable

例:

Device> enable

特権 EXEC モードを有効にします。

  • パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:

Device# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

gnxi grpctunnel destination destination-name

例:

Device(config)# gnxi grpctunnel destination foobar

gRPC トンネル宛先を設定し、宛先コンフィギュレーション モードを開始します。

ステップ 4

enable

例:

Device(config-destination)# enable


% node-1:dbm:gnmi:Destination address must be set when destination is enabled

トンネルの宛先を有効にします。

ステップ 5

address IP-address

例:

Device(config-destination)# address 209.165.200.225

宛先 IP アドレスを設定します。

ステップ 6

port port-number

例:

Device(config-destination)# port 1234

宛先ポートを設定します。

  • port-number 引数の有効値は 0 ~65535 です。

ステップ 7

identity-trustpoint trustpoint-name

例:

Device(config-destination)# identity-trustpoint trustpoint1

宛先との安全な接続を確立する際に TLS アイデンティティとして指定したトラストポイント証明書を設定します。

ステップ 8

source-address IP-address

例:

Device(config-destination)# source-address 209.165.201.30

トンネルサーバーや宛先に接続する際に使用する送信元アドレスを設定します。

ステップ 9

source-vrf VRF-name

例:

Device(config-destination)# source-vrf Mgmt-vrf

トンネルサーバーや宛先に接続する際の送信元の Virtual Routing and Forwarding(VRF)インスタンスを設定します。

ステップ 10

end

例:

Device(config-destination)# end

宛先コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

gRPC トンネルサービス設定を使用した gNMI ダイヤルアウトの確認

gRPC トンネル サービス インターフェイスの状態を確認するには、次のコマンドを使用します。

Device# show gnxi state detail

Settings
========
Server: Enabled
Server port: 50052
Secure server: Enabled
Secure server port: 9339
Secure client authentication: Disabled
Secure trustpoint: gnoi_pyats
Secure client trustpoint:
Secure password authentication: Disabled

GNMI
====
Admin state: Enabled
Oper status: Up
State: Provisioned
gRPC Server
-----------
Admin state: Enabled
Oper status: Up
Configuration service
---------------------
Admin state: Enabled
Oper status: Up
Telemetry service
-----------------
Admin state: Enabled
Oper status: Up

GNOI
====
Cert Management service
-----------------
Admin state: Enabled
Oper status: Up
OS Image service
----------------
Admin state: Enabled
Oper status: Up
Supported: Supported
Factory Reset service
---------------------
Admin state: Enabled
Oper status: Up
Supported: Supported

GRPC Tunnel
===========
Admin state: Enabled
Oper status: Up

現在設定されているすべての gRPC トンネルサーバーのステータスを表示するには、次のコマンドを使用します。

Device# show gnxi grpctunnel destinations

All configured destinations
Destination Name: foobar
Target: GNMI_GNOI
Tag: 1
Registered: Yes
Session Started: Yes
Tunnel Active: Yes
Error:
Destination Name: example
Target: GNMI_GNOI
Tag: 1
Registered: Yes
Session Started: Yes
Tunnel Active: Yes
Error:

gRPC トンネルサービスを使用した gNMI ダイヤルアウトの機能情報

次の表に、このモジュールで説明した機能に関するリリース情報を示します。この表は、ソフトウェア リリース トレインで各機能のサポートが導入されたときのソフトウェアリリースだけを示しています。その機能は、特に断りがない限り、それ以降の一連のソフトウェアリリースでもサポートされます。

プラットフォームのサポートおよびシスコ ソフトウェアイメージのサポートに関する情報を検索するには、Cisco Feature Navigator を使用します。Cisco Feature Navigator にアクセスするには、www.cisco.com/go/cfn に移動します。Cisco.com のアカウントは必要ありません。
表 1. gRPC トンネルサービスを使用した gNMI ダイヤルアウトの機能情報

機能名

リリース

機能情報

gRPC トンネルサービスを使用した gNMI ダイヤルアウト

Cisco IOS XE Dublin 17.11.1

この機能を使用すると、ネットワークデバイス(トンネルクライアント)を設定し、CLI を介して gRPC トンネルサーバーに特定のターゲット(事前承認済みサービス)を登録できます。

次のコマンドがこの機能で導入されました。

  • gnxi grpctunnel destination

  • gnxi grpctunnel target

この機能が次のプラットフォームで追加されました。

  • Cisco Catalyst 9200、9200L、および 9200CX シリーズ スイッチ

  • Cisco Catalyst 9300、9300L、および 9300X シリーズ スイッチ

  • Cisco Catalyst 9400 および 9400X シリーズ スイッチ

  • Cisco Catalyst 9500 および 9500 ハイ パフォーマンス シリーズ スイッチ

  • Cisco Catalyst 9600 および 9600X シリーズ スイッチ

  • Cisco Network Convergence System 4200 シリーズ