OpenFlowのアーキテクチャと仕様・機能

2012年2月9日(木)
前田 繁章

連載2回目となる今回は、OpenFlowとはどういったものか、基本的なアーキテクチャやその仕様・機能について説明します。

2.1 OpenFlowアーキテクチャ

2.1.1 基本構成

まずは、OpenFlowの基本的な構成から説明します。OpenFlowは大きく「OpenFlowスイッチ」と「OpenFlow」コントローラの2つで構成されます。従来のネットワーク機器においてハードウェアで行われるパケット伝送処理を行うのがOpenFlowスイッチの役割です(Data-Planeの役割を担う)。一方、従来のL2スイッチやルータ等で実装されている機能のうち、アドレス学習やルーティングなど計路制御機能を担うのがOpenFlowコントローラです(Control-Planeの機能を担う)。

図1:OpenFlowを構成する2つのコントローラ

OpenFlowではこのように伝送機能と経路制御機能が分離されています。OpenFlowプロトコルではこの分離されたOpenFlowコントローラとOpenFlowスイッチ間とのやり取りの内容について規定してあります。なおOpenFlowコントローラとスイッチの間でやり取りする制御用の通信はTCP/IPであるため、一般には従来あるネットワークのプロトコルに沿って処理されます。

2.1.2 OpenFlowスイッチの挙動(概要)

OpenFlowスイッチは起動時に(あらかじめコンフィグレーションで設定された)OpenFlowコントローラに対して制御用の通信路を確立します。いったん通信路が確立されると、OpenFlowコントローラからOpenFlowスイッチに対して要求を出したり、OpenFlowスイッチからOpenFlowコントローラに対して問い合わせを行ったりということが可能になります。

OpenFlowスイッチでは「フロー」と呼ばれる単位で通信トラフィックを制御します。各々のフローはOpenFlowスイッチに置いては「フローテーブル」と呼ばれるテーブルで保持されます。OpenFlowスイッチは、通信を受信した場合このフローテーブルに格納されたフローに基づいて動作を決定します。もし、フローテーブルにない通信を受信した場合は、スイッチからコントローラに対して問い合わせを実施します(この点については後述します)。

それではまずフローについて説明したいと思います。フローは「ヘッダフィールド(マッチングルール)」「アクション」「統計情報」の3つの構成要素からなります。ここでは、それぞれの構成要素について詳しく解説していきます。

ヘッダフィールドとは、OpenFlowスイッチが通信トラフィックを受信した際にトラフィックを識別し特定するためのものです。このヘッダフィールドはOpenFlow ver1.0においては以下の12個の要素が規定されています。

図2:OpenFlow ver1.0が規定する12個のヘッダフィールド

従来のネットワーク機器の場合、例えばL2スイッチであれば、宛先のMACアドレスを用いてスイッチが転送先の物理ポートを特定し、そのポートからパケットを送出する、というような動作をしています。L3スイッチであれば宛先のIPアドレスを用いて同様のふるまいをします。このように各レイヤに対応したネットワーク機器が個別に存在し、そのレイヤで処理を行うのが従来のネットワーク機器の特徴でした。

OpenFlowの世界では、レイヤや宛先という枠組みではなく、このヘッダフィールドというものを識別子として通信を行います。この際、ヘッダフィールドで規定される12個の要素のうち各レイヤの任意のアドレス・ポート等の要素を組み合わせて制御することが可能です。例えば「L1の物理ポートとL2の宛先アドレスの2つをキーにする」、「L3のIP宛先アドレスのみ利用する」など自由に選択してパケット転送先を決定することが可能です。

アクションとはフローに対する処理定義を行う部分です。パケットをコントローラに転送する、ブロードキャストする、パケットの書き換えを行う等の処理を定義することができます。ヘッダフィールドに一致した通信を受け取ったOpenFlowスイッチは、このアクションの記述に従って通信を制御することになります。アクションにて定義できる処理をまとめたものが次の表です。

図3:OpenFlowスイッチが通信を制御するアクション(クリックで拡大)

統計情報とは、ヘッダフィールドに一致した通信がどれくらい発生し、どれくらいの処理をしたかを管理するフィールドです。パケット数やバイト数、当該フローがOpenFlowスイッチ上に生成されてからの時間などの情報を管理します。なお、この管理されている情報についてはOpenFlowコントローラからOpenFlowプロトコル経由で情報収集が可能です。

株式会社NTTデータ 技術開発本部

入社以来、IT基盤分野の技術開発に従事。これまで、RFIDプラットフォーム開発、NGN接続連携プラットフォーム開発などを行う。現在は、OpenFlowコントローラの開発を主とし、OpenFlowを活用した新規サービスの検討および開発に取り組んでいる。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています