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

NETCONFとは何か?

NETCONFは、ネットワーク機器の設定(以下「コンフィグレーション」)の制御を実現するためにデザインされたプロトコルです。

大規模な、キャリアグレードのネットワークにおいて、ネットワーク機器のコンフィグレーションおよび管理は非常に重要な意味を持っています。なぜなら、コンフィグレーションのエラーが「ネットワークの混乱」「セキュリティホール」「パフォーマンスの低下」をもたらすことがあるためです。

これまで、ネットワークを運用し、性能および安全を確保するためには多大な工数とエンジニアを投入しなければなりませんでした。その負担を軽減し、コストの削減を実現するためには、ネットワーク機器の管理を目的とするコンフィグレーションに特化した、プログラマブルなプロトコルを標準化する必要がありました。NETCONFは、そのような要求に基づき策定されたプロトコルです。

標準規格

NETCONFプロトコルは、2006年3月にRFCとして正式公開されました。
プロトコルの詳細は、下記のRFCで規定されています。

  • RFC 4741(ベースプロトコル)
  • RFC 4742(SSHトランスポートマッピング)
  • RFC 4743(SOAPトランスポートマッピング)
  • RFC 4744(BEEPトランスポートマッピング)
  • RFC 5277(NETCONFイベント通知)

NETCONFと他のアプローチとの違い

NETCONF以前は、コマンドラインインターフェース(以下、CLI)のスクリプトがコンフィグレーションの変更を自動化するための初期のアプローチでした。しかし、CLIはあくまでもネットワーク管理者が操作を行うためのインターフェースに過ぎません。また、CLIのスクリプトにはいくつもの制限があります。例えば、スクリプトにはトランザクションの管理が組み込まれていないため、一度に大量のネットワーク機器が追加・更新・置き換えられた場合には、コマンド入力などの膨大なメンテナンス作業が必要となります。

SNMPは、コンフィグレーションに変更を書き込むためのもうひとつのアプローチです。しかし、SNMPのMIBは複雑なため、多くの場合アプリケーションのパフォーマンスや監視を行うために使われています。SNMPがコンフィグレーションのために使用されない理由として、MIBモジュールを見つけて訂正するためのプロセスの定義がないこと、UDPプロトコルを使った継承に制限があること、標準化されたセキュリティがないこと、コミットするメカニズムがないことなどが挙げられます。

NETCONFのプロトコル構造

NETCONFのプロトコル構造は、「トランスポートプロトコル層」「RPC層」「オペレーション層」「コンテクスト層」という4つの層で構成されています。

  • トランスポートプロトコル層
    クライアント(ネットワークマネージャ)とサーバ(ネットワーク機器)が実際の通信を行うための通信プロトコルが位置します。
  • RPC層
    RPC(リモート・プロシージャ・コール)の符号化のためのメカニズムが位置します。この層では、階層的なコンテンツのための符号化メカニズムや交換を行う共通言語としてXMLを使用しており、RPCはXMLで記述されています。
  • オペレーション層
    XMLで符号化されたパラメータをRPCメソッドで呼び出す各種オペレーションが位置します。
  • コンテント層
    機器のコンフィグレーションデータ並びに障害管理および性能管理に必要な状態情報が位置します。

NETCONFの主な特長

  • 複数のコンフィグレーションのためのデータ保存(candidate, running, startup)
  • コンフィグレーションを変更するためのトランザクションのサポート
  • コンフィグレーションの検証
  • データモデリング言語「YANG」(RFC 6020)を使ったコンフィグレーションの作成
  • フィルタにより選別されたコンフィグレーションデータの検索
  • 各種イベント通知のサポート

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

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

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