# 運用・管理 / NETCONF

NETCONFは、ネットワーク機器のコンフィグデータの取得/操作を行うネットワークマネージメントプロトコルです。RESTCONFは、NETCONFと同様の機能を有するネットワークマネージメントプロトコルですが、通信の転送・操作をHTTP over TLS上で行います。NETCONF、RESTCONF共に、クライアント（PC上で動作する管理ソフト等）がサーバー（ネットワーク機器）に要求（コマンド）を送り、サーバーがこれに応じた動作を行ってクライアントに応答を返す、リクエスト・レスポンス型のプロトコルです。本製品は、サーバーとして使用されます。

## 基本設定

### NETCONF

NETCONFサーバー機能を利用するためには、NETCONFクライアントから接続可能なIPアドレスを本製品に設定しておく必要があります。以下の説明では、本製品のIPアドレスは設定済みであると仮定しています。

1. ユーザーを追加します。usernameコマンドを使用します。NETCONFサーバーへのアクセスには、特権レベル15のユーザーを指定する必要があります。

       awplus(config)# username netconf_user privilege 15 password netconf_pw

2. NETCONFによる通信の可否を指定します。通信を許可するユーザーは、netconf allow-usersコマンド、拒否するユーザーはnetconf deny-usersコマンドを使用します。

       awplus(config)# netconf allow-users netconf_user

3. NETCONFサーバーを有効化します。service netconfコマンドを使用します。

       awplus(config)# service netconf

許可リストへの登録時にアクセス元のホスト/IPアドレスを限定するには、以下のように指定します。

    awplus(config)# netconf allow-users netconf_user 10.0.0.5

NETCONFメッセージのログオプションを指定するには、netconf logコマンドを使います。

    awplus(config)# netconf log get

特定のVRFインスタンスでNETCONFサーバーを動作させるには、netconf vrfコマンドを使います。

    awplus(config)# netconf vrf red

NETCONFの接続状況を確認するには、show netconf sessionコマンドを使用します。

    awplus# show netconf session

NETCONFの統計情報を確認するには、show netconf countersコマンドを使用します。

    awplus# show netconf counters

### RESTCONF

1. ユーザーを追加します。usernameコマンドを使用します。RESTCONFサーバーへのアクセスには、特権レベル15のユーザーをNETCONFと同様に指定する必要があります。

       awplus(config)# username restconf_user privilege 15 password restconf_pw

2. HTTPサービス（Webサーバー機能）を有効化します。service httpコマンドを使用します。

       awplus(config)# service http

特定のVRFインスタンスでRESTCONFサーバーを動作させるには、http vrfコマンドでHTTPサービスの動作対象インスタンスを変更します。

    awplus(config)# http vrf red

## 本製品の仕様

### NETCONF

- SSH 830番ポートを使用します。ポートの変更はできません。また、他のサービスがSSH 830番ポートを使用することはできません。
- NETCONFセッション数は、1から10の範囲で任意に指定できます。デフォルト値は4です。
- ランニングコンフィグのみのサポートとなります。
- NETCONFクライアントは、RPCと呼ばれるXMLメッセージを用いてコンフィグデータの取得/操作を行います。本製品において使用可能なRPCは以下の通りです。

表 1
operation | 内容
<get> | ランニングコンフィグとデバイス情報を取得します
<get-config> | 特定のコンフィグデータストアの全てまたは一部を取得します
<edit-config> | コンフィグデータの作成、削除、マージ、置換等の編集を行います
<lock> | コンフィグデータストアをロックします
<unlock> | <lock>コマンドにより以前にロックされたコンフィグデータストアのロックを解除します
<close-session> | NETCONFセッションの終了をリクエストします
<kill-session> | NETCONFセッションを強制終了します

### RESTCONF

- HTTPS上で通信を行います。
- データ形式はJSONのみサポートです（XMLは未サポート）
- ランニングコンフィグのみのサポートとなります。
- 衝突検出・防止メカニズムとして timestamp、entity-tag をサポートします。
- ietf-restconf-monitoringをサポートします。
- Event notification streamingは未サポートです。

RESTCONFクライアントは、HTTPメソッドを用いて各種リソースにアクセスすることで、コンフィグデータの取得/操作、状態情報の取得を行います。本製品において使用可能なリソース、メソッド、クエリーパラメーターは以下の通りです。

- リソース：data、yang-library-version
- メソッド：GET、DELETE、HEAD、OPTIONS、PATCH、POST、PUT
- クエリーパラメーター：content、depth、fields、with-defaults