NETCONF および ConfD

この章では、NETCONF および ConfD manager と呼ばれる StarOS プロセスについて説明します。

ここで説明する内容は、次のとおりです。

概要

StarOS は、Cisco Network Service Orchestrator(NSO)とともに設定および運用データを転送するための YANG データモデルをサポートするノースバウンド NETCONF インターフェイスを提供します。また、NSO 管理コンソールと通信するための ConfD エンジンも組み込まれています。

NETCONF(Network Configuration Protocol)は、IETF(RFC 6241)によって開発および標準化されたネットワーク管理プロトコルです。ネットワークデバイスの設定をインストール、操作、削除するためのメカニズムを提供します。この操作は、単純なリモートプロシージャコール(RPC)レイヤの最上位で実現されます。NETCONF プロトコルは、設定データとプロトコルメッセージに XML ベースのデータ符号化を使用します。プロトコルメッセージは、セキュアなトランスポートプロトコル上で交換されます。

ConfD は、デバイスを管理するための一連のインターフェイスを提供する、オンデバイス管理フレームワークです。ConfD フレームワークは、データモデルからすべての管理インターフェイスを自動的にレンダリングします。ConfD は完全な NETCONF 仕様を実装し、XML でエンコードされたコンテンツを使用して SSH で実行します。

ConfD は、外部認証を介して認証/認可されたアクセスのみを許可するように設定されています。ConfD Manager は、新しいユーザーを認証/認可するときに、ConfD が起動するためのスタンドアロン CLI モジュールを提供します。ConfD は、StarOS 認証を介して認可されたアクセスのみを許可するように設定されています。認証時に、ユーザーには権限レベル(0 ~ 15)が与えられます。この権限レベルは、YANG モデルで定義されているように、StarOS secure admin、、 adminoperatorにダウンロードすると、 および inspector にマッピングされます。StarOS は、各 ConfD 認証要求の CLI 認証イベントやステータスメッセージをログに記録します。

サウスバウンド側では、ConfD は、ConfD 管理エージェントによって提供される一連の API を介して呼び出された StarOS プロセスと通信します。ConfD 構成データベース(CDB)は、オブジェクトを保存するために ConfD によって使用されます。StarOS は、ConfD 提供の API を使用してデータベースにアクセスします。ConfD 構成データベースにデータが入力されると、StarOS は CLI アクセスによる全体的な設定の変更を引き続き許可します。結果として、CDB への自動更新は行われません。CDB は NETCONF インターフェイス経由でアップデートを受信します。CDB と StarOS の構成データベースを同期された状態に保つには、CLI アクセス(外部から NETCONF)へのすべての変更を YANG モデルでサポートされる設定オブジェクトに手動で適用する必要があります。

YANG は、NETCONF ネットワーク構成プロトコル向けのデータモデリング言語です。これは、設定データとネットワーク要素の状態データの両方をモデル化するために使用できます。YANG は、ネットワーク要素によって生成されるイベント通知の形式を定義するために使用することもできます。また、データモデルは、NETCONF プロトコル(RFC 6020)を介してネットワーク要素で呼び出すことができるリモートプロシージャコールの署名を定義することができます。YANG ファイルは StarOS の一部としてコンパイルされ、既存の StarOS でサポートされている CLI コマンドのサブセットを組み込みます。

このリリースでは、YANG モデルは NSO を介して限られた一連の ECS 構成コマンドをサポートしています。詳細については、NSO ユーザーマニュアルおよび を参照してください。 サポートされている StarOS ECS 設定コマンドと呼ばれます。

図 1. NETCONF システムフロー

ConfD の設定

StarOS で NETCONF プロトコルを有効にするには、 server confd を有効にして、Netconf プロトコル構成モードを開始する必要があります。NETCONF プロトコル構成モードでは、オプションの構成コマンドがサポートされています。

SSH キーの要件

NETCONF-ConfD のサポートでは、ローカルコンテキストで V2-RSA SSH キーが設定されている必要があります。

SSH キーが使用できない場合、StarOS はエラーメッセージを生成します。

Failure: The ConfD (NETCONF) server requires an RSA key on the local context

You can run the show ssh key コマンドを実行して、システム上に SSH キーが存在することを確認できます。

SSH キーが使用できない場合は、このガイドの「スタートアップガイド」の章の「SSH オプションの設定」 セクションを [Getting Started] 参照してください。

NETCONF プロトコル構成モード

NETCONF プロトコルは、コンテキスト構成モードの server conf コマンドを介して有効にします。 コマンドを削除しないでください。このコマンドは、ローカルコンテキストのみに制限されます。

[local]host_name# configure 
[local]host_name(config)# context local 
[local]host_name(config-ctx)# server confd 
[local]host_name(config-confd)# ? 
  autosave-config      - Automatically saves current configuration to the URL specified  
                         whenever a change is applied through ConfD interfaces 
  confd-user           - Configures the default login user with full administrator rights  
                         for the ConfD server. 
  end                  - Exits configuration mode and returns to Exec Mode 
  exit                 - Exits current configuration mode, returning to previous mode 
  no                   - Enables/Disables the followed option 

次に、 autosave-configconfd-user キーワードはオプションです。

NETCONF プロトコルを無効にするには、グローバル構成モードの no server confd コマンドを実行します。 コマンドを削除しないでください。

詳細については、『Command Line Interface Reference』の 「NETCONF Protocol Configuration Mode Commands」 の章を参照してください。 Command Line Interface Referenceを参照してください。

autosave-config

この NETCONF プロトコル構成モード コマンドは、CLI ベースのモデルの ConfD インターフェイスを介して、変更が NSO によって適用されるたびに、現在の ConfD 設定を指定された URL に自動的に保存します。デフォルトでは、このコマンドは無効になっています。

コマンド構文は次のとおりです。 autosave-config <url>を使用して、アクセス ポイント上で自動的に生成されます。ここで、 [ file: ]{/flash | /usb1 | /hd-raid | /sftp} [ /<directory>] /<filename>を参照してください。

confd-user

この NETCONF プロトコルの構成モードのコマンドは、NETCONF を介してすべての CLI 操作のユーザー名を関連付けます。ユーザは、検証可能なログイン情報で認証されます。このユーザー名は、CLI ロギング目的でのみ使用されます。

コマンド構文は次のとおりです。 confd-user <username> を使用して、アクセス ポイント上で自動的に生成されます。ここで、 <username> は、1 ~ 144 文字の英数字の文字列です。


重要


NETCONF セッションまたは RESTful セッションは、検証可能なログイン情報で引き続き確立する必要があります。


CDB のシーディングと同期

After enabling server confd を有効にした後、StarOS で ConfD によって管理されている構成データベース(CDB)のローカルコピーを使用して CDB を最初にシードする必要がある場合があります。シーディングの手順では、CLI ベースのすべての YANG モデルでサポートされている設定コマンドを含む StarOS プラットフォームで ConfD によって使用される CDB が作成されます。


重要


  • StarOS CLI を介して管理対象オブジェクトを手動で変更した場合は、次に説明する手順を繰り返して、実行時設定を NSO と再同期する必要があります。

手順


ステップ 1

Exec モードの save configuration <url> confd を実行して、ConfD でサポートされている StarOS 設定データを /flash デバイス上のファイルに保存します。

ステップ 2

Exec モードの show configuration error を実行して、保存した設定を検証します。設定を適用する前にエラーを修正します。そうしないと、ConfD によって設定全体が拒否されます。

ステップ 3

Exec モードの configure confd <url> を実行して、ConfD 設定を適用します。ConfD 設定が適用されると、デバイスは NSO 管理サービスへの NETCONF 接続を確立できるようになります。

ステップ 4

デバイスを NSO と同期します。同期プロセスの詳細については、NSO のユーザーマニュアルを参照してください。


設定例

次のコマンドシーケンスは、NETCONF プロトコルをサポートする COnfD 設定を確立します。

A type v2-RSA SSH key is required for enabling server confd を有効にするには、タイプ v2-RSA SSH キーが必要です。と呼ばれます。

configure 
  context local 
      ssh key 
<encrypted key text> 
len 938 type v2-rsa 
    server confd 
      confd-user NETCONF 
      autosave-config /flash/config.cfg 
    #exit 
    subscriber default 
    exit 
    aaa group default 
    #exit 
    gtpp group default 
    #exit 
  #exit 
end 
注:
  • confd-userautosave-config はオプションです。Just configuring server confd を設定すると、 NETCONF サポートが有効になります。

設定の確認

NETCONF-ConfD 設定に関する情報を表示するには、2 つの Exec モードの show コマンドがあります。

show confdmgr コマンド

このコマンドは、StarOS ConfD Manager(confdmgr)プロセスに関する情報を表示します。

このコマンドの構文は、次のとおりです。

show confdmgr { confd { cdb | netconf | state } | subscriptions } 

注:

See below for a sample output for show confdmgr の出力例については、以下を参照してください。(

  • 次に、 confd キーワードを指定すると、次のオプションが表示されます。

    • cdb は ConfD CDB 情報を表示します。

    • netconf は NETCONF ステート情報を表示します。

    • ステート は現在の ConfD ステート情報を表示します。

  • 次に、 登録 キーワードを指定すると、ConfD CDB サブスクリプション情報が表示されます。

[local]<host_name># show confdmgr 
 
State Information 
----------------- 
State               Started 
Subscriptions       2 
Last successful id  1461-704882-705350 
Last failed id      None 
Autosave url        Not configured 
Username            Not configured 
 
Statistics 
---------- 
Triggers                  1 
Notifications             2 
Successful notifications  2 
Failed notifications      0 
Unexpected                0 
[local]<host_name># 

この出力の統計部分には、次の情報が含まれています。

  • Triggers :confdmgr が ConfD に CDB の内容をダンプして confdmgr に戻し、その結果、SCT による設定の同期が行われた回数(共有設定タスク)。

  • Notifications :ConfD が confdmgr に更新を送信した回数。

  • Successful Notifications :ConfD から受信した更新が正常に処理された回数。

  • Failed Notifications :ConfD から受信した更新が正常に処理されなかった回数。成功した回数と失敗した回数は、常に通知の合計数と同じである必要があります。

  • Unexpected :予期しない状況が発生した回数。各ケースに対してエラーログが生成されます。

See below for a sample output for show confdmgr confd cbd の出力例については、以下を参照してください。(

[local]<host_name># show confdmgr confd cdb 
active-charging service acs 
exit 
context local 
 server confd 
  autosave-config /tmp/ut_confdmgr_config.txt 
  confd-user      confd_user 
 exit 
exit 
nacm read-default permit 
nacm groups group admin 
! 
nacm groups group inspector 
! 
nacm groups group operator 
! 
nacm groups group secure_admin 
! 
nacm rule-list secure_admin 
! 
 group [ secure_admin ] 
 rule any-access 
  action permit 
! 
 rule secure_admin_server_confd 
  module-name       cisco-staros-cli-config 
  path              /context/server/confd 
  access-operations create,read,update 
  action            permit 
  | 
  | 
  V 
nacm rule-list inspector 
 group [ inspector ] 
 rule any-access 
  access-operations read 
  action            permit 
 ! 
! 
[local]<host_name># 

See below for a sample output for show confdmgr confd netconf の出力例については、以下を参照してください。(

[local]<host_name># show confdmgr confd netconf 
netconf-state capabilities capability urn:ietf:params:netconf:base:1.0 
netconf-state capabilities capability urn:ietf:params:netconf:base:1.1 
netconf-state capabilities capability urn:ietf:params:netconf:capability:writable-running:1.0 
netconf-state capabilities capability urn:ietf:params:netconf:capability:candidate:1.0 
 | 
 | 
 V 
netconf-state statistics netconf-start-time 2016-03-30T17:09:49-04:00 
netconf-state statistics in-bad-hellos 0 
netconf-state statistics in-sessions 0 
netconf-state statistics dropped-sessions 0 
netconf-state statistics in-rpcs 0 
 | 
 | 
 V 
netconf-state datastores datastore candidate 
NAME         CREATOR  CREATED                    CONTEXT 
---------------------------------------------------------- 
/rollback0   admin    2016-04-26T17:08:02-00:00  noaaa 
/rollback1   admin    2016-04-26T17:07:57-00:00  noaaa 
/rollback2   admin    2016-04-26T17:07:49-00:00  noaaa 
/rollback3   admin    2016-04-26T17:07:49-00:00  noaaa 
/rollback4   admin    2016-04-26T17:07:47-00:00  noaaa 
 | 
 | 
 V 
/cli-history/admin.hist 
/cli-history/root.hist 
/global.data 
 
[local]<host_name># 

See below for a sample output for show confdmgr confd state の出力例については、以下を参照してください。(

[local]<host_name># show confdmgr confd state
Monday June 24 10:58:49 EDT 2019
confd-state version 7.1
confd-state epoll false
confd-state daemon-status started
confd-state loaded-data-models data-model acs-config
 revision        2016-10-31
 namespace       http://www.cisco.com/usp/nfv/acs-config
 prefix          acs-config
 exported-to-all
confd-state loaded-data-models data-model cisco-staros-bulkstats
 revision        2016-12-14
 namespace       http://www.cisco.com/staros-bulkstats
 prefix          staros_bulkstats
 exported-to-all
confd-state loaded-data-models data-model cisco-staros-cli-config
 revision        2016-12-14
 namespace       http://www.cisco.com/staros-cli-config
 prefix          staros_cli
 exported-to-all
confd-state loaded-data-models data-model cisco-staros-config
 revision        2016-12-14
 namespace       http://www.cisco.com/staros-config
 prefix          staros_config
 exported-to-all
confd-state loaded-data-models data-model cisco-staros-exec
 revision        2016-12-14
 namespace       http://www.cisco.com/staros-exec
 prefix          staros_exec
 exported-to-all
confd-state loaded-data-models data-model cisco-staros-kpi
 revision        2017-10-31
 namespace       http://www.cisco.com/staros-kpi 

See below for a sample output for show confdmgr subscriptions の出力例については、以下を参照してください。(

[local]<host_name># show confdmgr subscriptions 
 
Subscriptions: 
Path                               Index  Namespace 
--------------------------------------------------- 
/active-charging                       6     staros 
/context                               7     staros 
[local<host_name># 

サブスクリプションとは、変更が発生したときに confdmgr に通知する必要がある Yang モデルで定義されている設定ポイントのことです。このリリースでは、「/active-charging」と「/context」の 2 つのサブスクリプションがあります。

show configuration confd コマンド

次に、 confd キーワードは、 show configuration コマンドの出力をフィルタリングして、YANG モデルでサポートされている構成コマンドだけを表示します。

show configuration confd  

サンプル出力は次のようになります。

[local]<host_name># show configuration confd 
config 
  context local 
    server confd 
    #exit 
  active-charging service ecs 
    ruledef rd1 
      tcp any-match = TRUE 
    #exit 
    rulebase default 
    #exit 
  #exit 
end 
[local]<host_name># 

clear confdmgr statistics

このコマンドは、 show confdmgr コマンドの出力の [Statistics] セクションに一覧表示されているすべての内容をクリアします。これには次が含まれます。
  • Triggers

  • 通知(Notifications)

  • Successful notifications

  • Failed notifications

  • Unexpected

Show Support Details(SSD)

The output of all show confdmgr すべての コマンドの出力が SSD に追加されました。

CDB のメンテナンス

ConfD 構成データベース(CDB)のローカルコピーは、StarOS 上の ConfD によって管理されます。

すべての ConfD でサポートされている StarOS 構成コマンドを URL に表示して保存できます。次に、 confd そのため、confd キーワードが コマンドと show configuration save configuration コマンドに追加されました。

ConfD でサポートされている設定を URL に保存した後、Exec モードのコマンドを使用して、それを CDB に直接適用できます。 configure confd <url> コマンドを削除しないでください。このコマンドは、 url にあるファイルの内容を、ConfD の実行構成に適用します。

上記のコマンドに関する詳細については、以下を参照してください。

clear confdmgr confd cdb

この Exec モードコマンドは、ConfD が設定オブジェクトを保存するために使用する ConfD 設定データベース(CDB)の設定を消去します。StarOS は、ConfD が提供する API を使用してデータベースにアクセスします。


(注)  


ConfD および NETCONF プロトコルのサポートを無効にするために、 no server confd コンテキスト構成モードの コマンドがローカルコンテキストで実行されている場合を除き、CDB を消去することはできません。


次に、CDB をクリアするためのコマンドシーケンスの例を示します。

[local]host_name# config 
[local]host_name(config)# context local 
[local]host_name(config-ctx)# no server confd 
[localhost_name(config-ctx)# end 
[local]host_name# clear confdmgr confd cdb 
About to delete the ConfD configuration database 
The running configuration is NOT affected. 
Are you sure? [Yes|No]: y 
[local]host_name# 

注意    


CDB のクリアは端末の動作です。その後、CDB を再設定する必要があります。


configure confd <url>

この Exec モードのコマンドは、URL によって指定された設定スクリプトの内容を現在の ConfD 設定データベース(CDB)に適用します。

次に、コマンドシーケンスの例を示します。

[local]host_name# save configuration /flash/confd.config confd 
[local]host_name# configure confd /flash/confd.config 
Info: #!$$ StarOS V20.2 Chassis 52767e9ff9e207bed12c76f7f8a5352c 
Info: config 
Info:   active-charging service acs 
Info:     rulebase default 
Info:     #exit 
Info:   #exit 
Info: end 
[local]host_name#  

(注)  


Executing configure confd を実行しても、グローバル構成モードに移行することはありません。次に、 confd キーワードは not ASR 5000 ではサポートされていません。


save configuration <url> confd

キーワード confd が Exec モードの save configuration コマンドに追加されました。 コマンドを削除しないでください。このキーワードは、YANG モデルでサポートされている設定コマンドのみを含むように、保存された設定コマンドをフィルタリングします。

次に、このプロセスのコマンドシンタックスを示します。

[local]host_name# save configuration <url> confd 

設定コマンドの YANG モデルのサブセット出力は、 show file url <url> コマンドを使用して表示できます。ここで、 <url> は、設定を保存するために使用されるパス名です。保存された設定ファイルは、 configure confd コマンドを使用して CDB に適用できます。 コマンドを使用します。

サポートされている StarOS ECS 設定コマンド

このリリースでは、CLI ベースの YANG モデルで次の StarOS ECS コマンドがサポートされています。

  • ruledef <ruledef_name>
    • ip server-ip-address = *

    • tcp-ether-port = *

    • udp ether-port = *

    • tcp either-port-range = *

    • udp ether-port range = *

    • tcp-any-match = *

    • udp any-match = *

    • http url = *

    • httpcookie = *

    • http x-header = *

  • group-of-ruledefs <ruledefs_group_name>
    • add-ruledef priority = *

  • qos-group-of-ruledefs <group_name>

    • add-group-of-ruledef <group_of_ruledef_name>

  • charging-action <charging_action_name>

    • flow-idle-timeout <seconds>

    • content-id 1

    • service-identifier <service_id>

    • billing-action egcdr

  • rulebase <rulebase_name>
    • action priority <priority_number> group-of-ruledefs <ruledefs_group_name> charging-action <charging_action_name>


(注)  


"= *" indicates support for every option following the prior keyword/value.


ConfD のアップグレードサポート