リモートでの設定管理について (NETCONF)
とあるサーバを作っているんだけど、その設定をネットワーク越しに実行して管理できれば便利だなー、と思った (というか設定管理系を自分で作るのが面倒……)。
SNMPはどっちかって言うと監視用な気がするし、MIBはそれなりに複雑だ。
そこでリモートで設定を構成・管理するためのプロトコルについて簡単にサーベイにしたので、覚書。
NETCONF (NETwork CONFiguration protocol)
- ネットワーク構成プロトコル。RFC 6241。
- 設定情報の定義は、YANG (RFC 6020)で書く。
- SNMP代替にななる部分が多い。
- RFCの一覧はNETCONF WGを参照。
実装
- Netopeer2
-
- NETCONFサーバ。libnetconf2に基づく。
- Netoppeer2はNETCONFによるサービスの提供だけを行い、実際の設定はsysrepoを通じて管理する。
- 具体的な構成は、sysrepoで提供されている図がとてもわかりやすい。
- sysrepo
-
- YANGで定義された設定と状態を保存するためのデータストア。
- NETCONFで設定を公開したいサーバは、sysrepoに対してアクセスすることで設定を保存できる。
- sysrepoに対するアクセスのために、クライアントライブラリが用意されている。
- sysrepoとのプロトコルはGoogle Protocol Buffersで定義されている。