オンデバイスネットワーク機器管理用ソフトウェア DMAP NETCONF、SNMP、REST、CLI、WebUIのI/Fを同一データモデルから自動生成

RESTCONFとは何か?

RESTCONFは、RESTのルールをベースにし、 HTTP/HTTPS上で、YANG(RFC7950)で定義されたデータにアクセスするために設計されたプロトコルです。RESTCONFは、RESTと同様にURL形式(例:/Root/Path/To/TargetDataObject)で指定を行い、ペイロードデータはXMLまたはJSON形式となります。

RESTCONFは、NETCONFとの置き換えを前提としたプロトコルではなく、NETCONFと同じYANGで定義されたデータを扱うため、NETCONFと共存させることもできるのが特長です。

RESTCONF公開の背景

近年、SDN、ゼロタッチプロビジョニングや自動化などを目指したネットワークプログラマビリティが注目されていますが、OSS/NMSの管理対象デバイスについてもネットワークプログラマビリティが求められるようになってきています。この課題に対する1つの解がNETCONF(「NETCONFとは何か?」を参照)でした。

他方で、Web サービスやデータセンターといった分野では、RESTful API(以下「REST」)がプログラマブルAPIとして一般的になっており、ノウハウも蓄積されています。RESTは、OSS/NMSのSouthbound側に特別なクライアントを用意しなくてもRESTのノウハウさえあれば利用できます。"curl"などの汎用ツールも多く、利用の障壁が低いことも大きなメリットです。必然的にデバイス側にもREST対応の需要が高まりますが、課題もありました。RESTが大まかなルールの集合体のようなものであり、厳密な規約としては存在しないため、デバイス間の個別仕様が生まれやすく、OSS/NMSから見た時のデバイス間のインターオペラビリティを確保できませんでした。

こうしたRESTの課題を克服するため、IETFで議論が進められました。その結果、NETCONFのデータストアのコンセプトをRESTに取り込むような形で、2017年6月にRFC8040としてRESTCONFが公開されました。

RESTCONFとNETCONFの比較

RESTCONFは、名前のとおりRESTとNETCONFのいいとこ取りをしたような設計になっています。両者のAPIの違いを一覧表にしました。

操作概要RESTCONFNETCONF
message-body なしの
データ読み出し
HEAD実装なし
サポートしている操作の
一覧取得
OPTION実装なし
データおよびメタデータ
読み出し
GET<get>,<get-config>
データ生成POST<edit-config>(nc:operation="create")
データ生成/更新
(削除含む)
PUT<edit-config>(nc:operation="create/replace")
<copy-config>
データ生成/更新
(削除は不可)
PATCH<edit-config>(nc:operation="merge")
データ削除DELETE<edit-config>(nc:operation="delete")
データロック実装なし<lock>
データアンロック実装なし<unlock>
セッションクローズ実装なし<close-session>,<kill-session>
RPC実行POSTRPCの直接コール

一方で、RESTの思想である"ステートレス"を堅持するため、データのロック/アンロック、セッション、トランザクションといった概念は、NETCONFから継承されていません。一覧表のとおり、RESTCONFはRESTをベースにしているため、HEADやOPTIONなどNETCONFにはなかったREST由来のAPIは、そのまま残っています。

ユビキタスAIが提供するRESTCONF関連製品

ネットワーク機器管理用ソフトウェア 「DMAP」

RESTCONFをフルサポートしたネットワーク機器開発ベンダー様向けのオンデバイスマネージメントソフトウェアです。「DMAP」を導入することにより、データモデルから5種類のインターフェース(NETCONF、 RESTCONF、SNMP、CLI、WebUI)の作成が容易に行えます。

メニューを閉じる
一つ前に戻る