特別企画

【SDN特集】第一回 クラウド時代の仮想ネットワーク技術、SDNとOpenFlowを解説する

 昨今話題のキーワードに「SDN(Software-Defined Network)」というものがある。これは、ソフトウェアによって自由にネットワークを制御しようという考え方だが、これまでのネットワークとは何が違うのか。

 本稿では、SDNの概要を紹介するとともに、その代表として語られることの多い、OpenFlowについても簡単に説明していく。

ネットワーク機器をソフトウェアで一元的に制御するSDN

 ネットワークを管理する上では、ネットワーク管理者が全体の設計図をもとにルータ、スイッチ、ファイアウォールなどの機器を個別に設定し、それぞれのVLANを構成することで、ネットワーク全体の整合性を保つといった手法が一般的である。

 しかし、データセンターのサーバーが仮想化技術によって統合されるようになった昨今の大規模なネットワークでは、構成の複雑化に伴って全体の把握が困難になってしまっている。またクラウド化が進展する昨今のデータセンターでは、システム規模の拡大に伴う機器の追加や仮想マシンの移動(ライブマイグレーション)などもひんぱんに行われるため、管理者の設定変更に対する負荷はどんどん高まっているという。

 特に仮想マシンがライブマイグレーションした場合、移動先でVLAN設定やQoSなど、各種のネットワーク設定を変更せねばならないが、こうした1つ1つに対して管理者は手動での設定変更を余儀なくされている。

 これに対してSDNでは、個々のネットワーク機器をそれぞれ制御するのではなく、ネットワーク全体を俯瞰(ふかん)した上でソフトウェアによって一括制御するため、はるかに管理が容易になる。SDNでは、設定するのはあくまでネットワーク全体であり、個別のネットワーク機器は(設定の面では)あまり意識されなくなるからだ。

 まだ新しい考え方であるだけに、SDNの定義は完全に定まってきたわけではないが、SDNを推進する非営利団体、Open Networking Foundation(ONF)のエグゼクティブ・ディレクター、ダン・ピット氏は、「データプレーンとコントロールプレーンが分割されていること」「グローバルな視点を持つ集中制御ソフトがあること」「ネットワークの直接的なプログラマビリティを持つこと」の3点を、OVFでのSDNの定義として説明していた。

 つまりSDNの世界では、スイッチはあくまでもパケットのフォワーディングが主な仕事であるデータプレーンになり、パケットのルートを決定するコントロールプレーンはスイッチの外に出るようになる。従って、SDNではコントロールプレーンの役割が非常に重要になると考えられている。

Open Networking Foundation(ONF)の考えるSDNのフレームワーク(出典:ONF)
2012年6月時点でのONFメンバー。Cisco、HP、IBM、Juniper Networksといったグローバルの大手ベンダーに加え、国内からも富士通、日立、NEC、NTT Com、NCLCなど多くの企業が参加している(出典:ONF)

SDNの代表格、OpenFlow

 SDNの代表的なものとして注目を集めているのが、OpenFlowである。

 OpenFlowでは、MACアドレス、IPアドレス、ポート番号などを組み合わせて定義される「フロー」をもとに、通信トラフィックを制御している。集中制御により、ネットワークの全体像を把握しながら最適な経路で通信を行わせることが可能になるほか、コントロールポイントから一元管理されているため、ネットワークの秩序を保つことができる。

 先に説明したSDNの役割に当てはめると、データプレーンが「OpenFlowスイッチ」、コントロールプレーンが「OpenFlowコントローラ」に相当し、この両者がOpenFlowプロトコルを使ってやり取りする、といった形になる。

 コントローラからスイッチに送られるのは、「フローテーブル(Flow Table)」と呼ばれる。これは、パケットを処理するための優先度や負荷分散などをコントローラが計算した最適経路で、スイッチでは、このテーブルをもとにパケットを転送することになるが、コントローラ側でのプログラミングで容易にかつ瞬時に変更できるため、柔軟なネットワーク設計が可能になるのだ。もちろん、1つのコントローラからは複数のスイッチをコントロールできる。

これまでのネットワーク通信を交通システムと車に例えば場合【左】、同じ目的地に対して、どの車も各交差点の交通標識に従って同じ道で向かっているようなもの。それに対してプログラマブルな技術であるOpenFlow【右】では、集中制御によって混雑状況や道路工事などの全体を把握しつつ、許可された車のみを最適な経路に誘導し、目的地に到着させるようなものだという(出典:NEC)

 なお、OpenFlowの実装方法には、OpenFlow対応ネットワーク機器を利用する「ホップ・バイ・ホップ方式」と、既存ネットワーク環境上でOpenFlowネットワークを実現する「オーバーレイ方式」という、大きく分けて2つの種類がある。

ホップ・バイ・ホップ方式とオーバーレイ方式

 ホップ・バイ・ホップは、OpenFlowコントローラがすべての物理スイッチと仮想スイッチへフローテーブルを配信し、一元的に経路をコントロールする方式。コントローラですべての経路を制御できるのでわかりやすいが、スイッチがOpenFlowに対応している必要がある。

 その代表例は、NECの「プログラマブルフロースイッチ」がまず挙げられるだろう。また、NCLCや日商エレが取り扱う米Pica8の「Prontoシリーズ」は、OpenFlowにも対応したスイッチとして最近露出が多くなっているし、既存のスイッチではブロケードの「NetIron CER」、日本HPの「ProCurve」などでOpenFlow対応が発表されている。

 OpenFlowはもともとオープンな規格であるだけに、マルチベンダーでのシステム構築も視野に入れられているが、現状では単一ベンダーでのシステム構築が多く、相互検証を進めることがこれからの課題になっている(中には検証済みの組み合わせもあるが)。

 一方のオーバーレイは、仮想サーバーのソフトウェアスイッチなどのネットワークエッジ間でトンネルを張り、論理的なネットワークを構成する方式のこと。既存のネットワーク機器がそのまま使えるため導入はしやすいが、細かな経路設定や帯域制御などはできないといった長所・短所を持つ。

 その代表例としては、VMwareに買収されたNiciraの「NVP」がもっとも著名だが、Big Switch Networks、ミドクラ、ストラトスフィアなども手がけている。

 両方式とも一長一短があるため、現在は用途に合わせて選択することになるだろうが、NTTデータが開発している「バーチャルネットワークコントローラ Ver2.0」のように、両方式に対応した製品もこれから登場してくるだろう。

オーバーレイ方式とホップ・バイ・ホップ方式(出典:NCLC)

 このように、OpenFlow対応製品は続々と登場しており、次代のネットワークではOpenFlowの採用が進んできそうな状況になっている。しかし、現段階ではまだ多くの問題があり、本番環境への導入はまだ多くない。

 そこで、現実的なソリューションとして各ベンダーはどういったものを提供しているのか、またどういうロードマップでSDNへの対応を進めようとしているのかが気になるところ。次回からは、そうした各ベンダーの取り組みを紹介していきたい。