コンテンツにスキップ

「NETCONF」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
Cewbot (会話 | 投稿記録)
m Bot作業依頼: sourceタグをsyntaxhighlightタグに置換 (Category:非推奨のsourceタグを使用しているページ) - log
45行目: 45行目:
<rpc message-id="1" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<rpc message-id="1" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<get-config>
<get-config>
<source>
<syntaxhighlight>
<running/>
<running/>
</source>
</syntaxhighlight>
<filter xmlns:t="http://example.com/schema/1.2/config" type="xpath"
<filter xmlns:t="http://example.com/schema/1.2/config" type="xpath"
select="/t:top/t:users/t:user[t:name='fred']"/>
select="/t:top/t:users/t:user[t:name='fred']"/>
128行目: 128行目:


以下は、その<code><hello></code>メッセージの例である。
以下は、その<code><hello></code>メッセージの例である。
<source lang="xml">
<syntaxhighlight lang="xml">
<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<capabilities>
<capabilities>
137行目: 137行目:
<session-id>4</session-id>
<session-id>4</session-id>
</hello>
</hello>
</syntaxhighlight>
</source>


==実装==
==実装==

2020年7月5日 (日) 23:09時点における版

NETCONF: Network Configuration Protocol)は、ネットワーク機器の設定を取得、更新するための遠隔手続き呼出し (RPC) ベースの通信プロトコルである。クライアントとしてネットワーク管理アプリケーション、サーバとしてネットワーク機器を想定したクライアントサーバモデルのプロトコルとして定義されている。

経緯

IETFでの議論[1]を経て、2006年に初版1.0が RFC 4741 として公開された。その後、2011年に改訂版 1.1 が RFC 6241 として発行されている。

特徴

プロトコル構成

NETCONFプロトコルは、大きく四つの層に分けられる[2]

セキュアトランスポート層

メッセージを転送するためのプロトコルを規定した層である。RFC 6241 ではこの層については要件のみが規定され、特定のプロトコルには依存しない形になっている。SSH[3]TLS[4]SOAP[5]BEEP英語版[6]などの利用が想定されている。

メッセージ層

NETCONFのRPCメッセージはXMLにコード化されてやり取りされる[7]。そのコード化方法を規定した層である。クライアントからのRPCリクエストは<rpc>要素を、サーバからのレスポンスは <rpc-reply>(エラーのときは<rpc-error>)要素をそれぞれルートとしたXMLメッセージを用いる。

<rpc message-id="1" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
  <get-config>
    <syntaxhighlight>
      <running/>
   <filter xmlns:t="http://example.com/schema/1.2/config" type="xpath"
           select="/t:top/t:users/t:user[t:name='fred']"/>
 </get-config>

</rpc>

<rpc-reply message-id="1" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

  
  

</rpc-reply> </syntaxhighlight>

オペレーション層

NETCONFプロトコルでは、設定データストアやNETCONFセッションに対する操作を定義している[8]

オペレーション 説明
get-config 指定した設定データストアから設定を取得する。
edit-config 指定した設定データストアの内容を更新する。
copy-config 指定した設定データストアの内容を別の設定データストアの内容で置き換える。
delete-config 指定したデーストアを削除する。
lock 指定した設定データストアを排他的にロックする。
unlock 指定した設定データストアのロックを解除する。
get running 設定データストアから設定やネットワーク機器の状態情報を取得する。
close-session NETCONFセッションを安全に閉じるよう要求する。
kill-session NETCONFセッションを強制終了する。

設定データストア[9]とは、ネットワーク機器が動作中、あるいは起動時などそれぞれの状態にあるときに、読み込まれたり設定されたりする対象となる設定データ全体のことである。NETCONFプロトコルでは、動作中の設定データストアは<running/>と表され、NETCONFをサポートする機器は必ずこの設定データストアを持たなければならない。加えて、機器によっては起動時の設定データストア<startup/>などを持つことができる。

コンテント層

NETCONFプロトコルではこの層については特に規定しない。NETCONFでやり取りされるデータの定義は、YANGモデルによって行う[10]

Capability

あるネットワーク機器が、標準的な機能に加え、その機器固有の機能をNETCONF経由でアクセスできるようにしたい場合がある。この機能または機能群のことを capability といい、URIを用いて表す。例えば、get-config操作のフィルタをXPathで記述できる機能の capability はurn:ietf:params:netconf:capability:xpath:1.0と表現される[11]

ネットワーク機器とNETCONFクライアントの間でセッションが開かれた時、ネットワーク機器とクライアントは相手に対し利用可能な機能の capability のリストを、<hello>メッセージとして相手に広告する。これにより、そのセッションで利用する capability のバージョン調整などを行うことが可能となる。

以下は、その<hello>メッセージの例である。

   <hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
     <capabilities>
       <capability>urn:ietf:params:netconf:base:1.1</capability>
       <capability>urn:ietf:params:netconf:capability:startup:1.0</capability>
       <capability>http://example.net/router/2.3/myfeature</capability>
     </capabilities>
     <session-id>4</session-id>
   </hello>

実装

ネットワーク機器

ネットワーク管理アプリケーション

ライブラリ/ツール

脚注

公式サイト

出典

  1. ^ https://tools.ietf.org/wg/netconf/draft-ietf-netconf-prot
  2. ^ "Protocol Overview". (英語). pp. 8. sec. 1.2. doi:10.17487/RFC6241. RFC 6241 {{citation}}: |title=は必須です。 (説明)
  3. ^ RFC 6242 (英語). doi:10.17487/RFC6242
  4. ^ RFC 7589 (英語). doi:10.17487/RFC7589
  5. ^ RFC 4743 (英語). doi:10.17487/RFC4743
  6. ^ RFC 4744 (英語). doi:10.17487/RFC4744
  7. ^ "XML Considerations". (英語). pp. 13. sec. 3. doi:10.17487/RFC6241. RFC 6241 {{citation}}: |title=は必須です。 (説明)
  8. ^ "Protocol Operations". (英語). pp. 35. sec. 7. doi:10.17487/RFC6241. RFC 6241 {{citation}}: |title=は必須です。 (説明)
  9. ^ "Configuration Datastores". (英語). pp. 19. sec. 5.1. doi:10.17487/RFC6241. RFC 6241 {{citation}}: |title=は必須です。 (説明)
  10. ^ "Protocol Overview". (英語). pp. 8. sec. 1.2. doi:10.17487/RFC6241. RFC 6241 {{citation}}: |title=は必須です。 (説明)
  11. ^ "XPath Capability". (英語). pp. 67. sec. 8.9. doi:10.17487/RFC6241. RFC 6241 {{citation}}: |title=は必須です。 (説明)
  12. ^ Cisco IOS ネットワーク管理コンフィギュレーション ガイド Network Configuration Protocol (NETCONF)
  13. ^ NETCONF XML Management Protocol and Junos XML API Overview
  14. ^ OAN(Open Autonomic Networking)
  15. ^ NSO FAQ'S

外部リンク