OpenFlowはネットワークの機能をソフトウエアで制御する「SDN」(Software Defined Network/Networking)を実現する技術の一つ。米スタンフォード大学の研究からスタートし、現在は業界団体のOpen Networking Foundation(ONF)が標準化を進めている。

 「コントローラー」と「OpenFlowスイッチ」の2つの要素がOpenFlowネットワークを構成する。コントローラーは経路計算をしたり、受信パケットをどのように扱うかを指示したりして、複数のOpenFlowスイッチを一元管理する。OpenFlowスイッチは、コントローラーからの指示に基づいて、パケットの転送(フォワーディング)などを受け持つ。コントローラーとOpenFlowスイッチの間の通信に使うのがOpenFlowプロトコルである(の左)。

図●OpenFlowネットワークの仕組み
図●OpenFlowネットワークの仕組み
[画像のクリックで拡大表示]

 OpenFlowスイッチは、受信パケットの条件ごとに処理方法を定義した一覧表「フローテーブル」を持つ。フローテーブルに含まれるルールの一つひとつが「フローエントリー」である。新しくOpenFlowスイッチを接続したり、障害が起こって経路が再計算されたりしたら、コントローラーがOpenFlowプロトコルを使ってOpenFlowスイッチに情報を送る。それに従ってOpenFlowスイッチがフローエントリーを更新する。現在の仕様では、フローエントリーを構成する情報は6種類ある(図の右)。