PR

 最近、「OpenFlow」というネットワーク技術がメディアに取り上げられることが増えている。専門家のなかには「ネットワークに革命を起こす技術」とほれ込む人がいれば、「ATMのような昔の技術の焼き直し」と冷めた意見の人もいる。ここまで賛否両論の意見で盛り上がるネットワーク技術は近年では珍しい。

 話題になるのは、現状のネットワークに大きな課題があり、その解決にOpenFlowが一役買えると期待されているからだ。規格化を推進する団体の立ち上げに、名だたるクラウドサービス事業者や通信事業者が参加していることも期待を後押しする。

最初は研究用途から始まった

 OpenFlowによってもたらされるインパクトは二つある。「新しいプロトコルが実験しやすい」ことと、「フレームの処理方法やスイッチの設定をユーザーが自由に記述できる」点だ。

 ネットワーク上でデータを適切に送るためには、経路制御など複雑な計算を担う「コントロールプレーン」と、フレーム転送など単純な処理をする「データプレーン」、各種プロトコルの機能を提供する「アプリケーション」の三つの要素が必要だ。現状の一般的なスイッチでは、これらはすべてベンダーの機器に組み込まれている(図1の左)。使えるプロトコルの規格は主に標準化団体によって決まる。ユーザーが独自機能を作り込む余地はない。

図1●OpenFlowは何がすごいのか
図1●OpenFlowは何がすごいのか
ベンダーのボックス型スイッチは、ネットワークの制御を担うコントロールプレーンもパケットを転送するデータプレーンも、すべての機能は独自のハードウエア製品に組み込まれている。設定方法もベンダーごとに決まっている。OpenFlowを活用すると、実装はソフトウエアでもよい。プログラミングによってユーザーが設定変更や機能拡張をすることもできる。
[画像のクリックで拡大表示]

 これでは新しいプロトコルを試す前に、標準化やベンダーによるプロトタイプ実装の必要があり、費用も時間もかかる。それを解消するための技術として、2007年頃に米スタンフォード大学で研究が始まったのがOpenFlowだ。まず、コントロールプレーンとデータプレーン、アプリケーションを分離。コントロールプレーンとデータプレーンを結ぶ標準インタフェースとして、OpenFlowプロトコルを使う。

 OpenFlowプロトコルに準拠すれば、コントロールプレーンやデータプレーンは、メーカーが開発したハードではなくて、ユーザーが作り込んだソフトでも構わない。このソフトを汎用サーバーにインストールすれば、安価で迅速に新しいプロトコルを試せる。

 さらにOpenFlowでは、レイヤー1からレイヤー4の任意のヘッダー情報を組み合わせてフレームの動きを指定できる。コントロールプレーンなどに手を入れれば、レイヤー4までの範囲でユーザーが自由に新しいプロトコルを作れる。特定のサービスやアプリケーションに最適化したネットワークを、ユーザーが実現できる可能性がある。

 以上をまとめると、OpenFlowは「フレームの制御機能と転送機能を分離し、プログラミングによってネットワークを制御する技術」といえる。