OpenFlowのアーキテクチャと仕様・機能
連載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プロトコル経由で情報収集が可能です。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- OpenFlowの使い方(例)と活用事例
- OpenFlow ver1.1およびver1.2の追加機能と活用例
- SDNの実装方式
- 平成30年度の午後Ⅱ問題対策②-問2【後半】
- 試験直前対策:令和3年度の午後試験で出題された技術と仕組みの解説
- ハイブリッド・クラウドに向けたネットワーク技術の将来
- NEC、OpenFlow Ver1.3に対応した「UNIVERGE PFシリーズ」のコントローラおよびスイッチの新製品2機種を発売
- NEC、OpenFlow対応「UNIVERGE PFシリーズ」のコントローラ機能を強化、スイッチの新製品を発売
- ハードウェアありきのSDNから、仮想ネットワークを切り離して考えてみよう
- MidoNetのパケット処理をDVRと比較してみる