MidoNetはオープンソースクラウド基盤であるOpenStackのうち、ネットワークコンポーネントであるNeutronのバックエンド標準を目指して開発が進められている、ネットワーク仮想化ソフトウェアです。今回は、 MidoNetとはSoftware Defined Networkingの中でどのような位置づけのプロダクトであり、何ができるものか、その上でOpenStackとどのように関わるのか、どのように利用するのか、といった視点で、少しずつ見ていくことにします。
MidoNetを説明するための前提
まずは、おさらいとして少しSDNやネットワーク仮想化の話をしましょう。
現在のSDN(Software Defined Networking)とは
元々SDNを定義したONF(Open Networking Foundation)が提唱したものは、次のような概念でした。
- 従来のネットワークは、パケットの転送(Data Plane)と制御(Control Plane)が一体化したネットワークノードが自律分散し、それらが相互接続されることで構成されていた
- そこからData PlaneとControl Planeを分離し、Data Planeはルールに従ったパケットの転送に徹して、Control Planeは転送ルールの決定とData Planeへのルール配布を行う形を定義した
- この転送ルールを配布するための統一的なプロトコルが、OpenFlowである
- Control Planeはアプリケーションに対してAPIを公開できる
- これにより、機器の管理が一元化でき、パケットの細かい制御がプログラミング可能になる
現在では、根底にあるものは同じですが、SDNは文脈によってさまざまな解釈が行われるようになりました。例えば、単に汎用サーバ機とソフトウェアスイッチで構成したネットワークを示すこともあれば、異種のプロトコルや機器が混在(ヘテロジニアス)したネットワーク環境をAPIでプログラミング可能にし、ネットワークを迅速・柔軟に構成できることを示すなど、幅広い意味を持っています。
また、SDNでも扱う規模、解決すべき課題や複雑さ、登場人物などがまったく異なることもあり、SDNの話をする場合は、どの範囲に対するものかを明言したほうが混乱が少なくて済むような状態です。
例えば、SDNの係る範囲には以下のようなものが存在します。
- WAN向け
- LAN、データセンターネットワーク、プライベートクラウド向け
- その他小規模なもの
取りうる構成や利用される技術にも、以下のような分類が存在します。 なお、これはSDNが流行りはじめた当初からある分類ですが、現在ではマルチレイヤ、つまりOverlayのネットワークと、Underlayのノードを一元管理、制御するような研究やプロダクト開発も進んでいます。
技術 | Hop by Hop | Edge Overlay |
---|---|---|
特徴 |
・各ネットワークノードをコントローラで一元管理、制御する ・OpenFlowが代表例 |
・トンネリング技術で仮想的なネットワークを構築 ・とりわけ、ハイパーバイザの隣に配置したソフトウェアスイッチを制御対象にすることが多く、VMに近いところでパケットを制御する ・プライベートクラウドを構成するようなネットワークではこちらが主流になってきている |
長所 | ・一つ一つのネットワークノードを制御できるため、細かい経路制御や帯域制御が効く | ・ネットワークノードは制御対象としないため、既存ネットワーク機器の構成をそのまま利用できる |
短所 |
・適用範囲のすべての機器が一斉に対応しなければならない ・すべてを細かく制御する場合、設定が膨大で煩雑になる |
・ハイパーバイザホストから出たあとのパケットの転送は従来のネットワークリソースに任せるため、そのレイヤにおいて細かい制御がしにくい |
今回は、データセンターネットワーク、プライベートクラウドの文脈で話を進めます。