目的
SDNにおけるopenflowやNETCONFIGの位置付けがよくわからなかったので整理。
SDN(Software Defined Networkking)に含まれる技術要素
以下が含まれる。本記事では、Openflowとネットワーク装置のAPIに着目する。
- Openflow
- ネットワーク装置のAPI(SNMP,NETCONF,RESTfulAPI)
- NFV
- ベアメタルスイッチ
- ネットワークの自動化
- SD-WAN
Openflowの意義
- ネットワーク装置のコントロールプレーンと制御プレーンを分離している点。これにより、BGP,OSPF,STPといったネットワーク装置間の制御プロトコルが不要になり、コントローラによる一元管理が可能となる。
- パケット転送のみを制御する。認証やSNMPなどの管理レイヤの制御はスコープ外。
- openflowによるデータ転送に、従来のルーティングを組み合わせることが可能。
ネットワーク装置のAPIの意義
- コマンド文字列解析をせずに構造化データとして利用できること
- 構造化データのフォーマットには、「YAML」「XML」「JSON」などがある。YAMLは人とソフトウエア間向けフォーマットであり、XML、JSONはソフトウエア間のフォーマットである。
- データフォーマットについてどのような構造化に基づいてデータを保持することか定義するものがデータモデル。XMLにはXSD、 JSONにはJSONスキーマがあるが共通で利用可能なネットワーク装置向けのデータモデルにYANGモデルがある。YANGモデルで定義したデータはツールによりXML,JSONフォーマットにエンコード可能である。
- APIの種類には「SNMP」「NETCONF」「RESTfulAPI」がある
- SNMPは、ポーリング式のプロトコルで、サーバからネットワーク装置上で動作するSNMPエージェントに対して、SNMPで利用可能なデータをモデル化したMIBデータについて、取得・設定を行うことが可能。
- NETCONFは、SSHコネクションによる型のプロトコル。NETCONFクライアントからネットワーク装置上で動作するNETCONFサーバに対して、送受信するデータは、XMLでエンコードされている。XMLにはRPCを埋め込むことも可能。トランザクションベースの設定制御に対応。
- RESTfulAPIは、HTTPベースのシステム同様に、ネットワーク装置であるサーバに対してクライアントが制御をする。HTTP GETにより、JSONやXMLで構造化されたデータを取得できる。
まとめ
-
OpenflowとSNMP/NETCONF/RESTfulAPIは、そもそもの存在目的が異なる。
-
Openflowはネットワーク装置の、コントロールプレーンとデータプレーンを分離した点が重要であり、Openflowのプロトコルはデータプレーンを制御するためのコントロールプレーンに関する制御。
-
SNMP/NETCONF/RESTfulAPIはネットワーク装置の管理に関する制御。
参考