OpenFlow ver1.1およびver1.2の追加機能と活用例

前回までは、OpenFlow ver1.0をベースにして、プロトコルで規定されている仕様、およびその仕様に沿った使い方、活用事例を紹介しました。最終回である今回は、OpenFlow ver1.1およびver1.2の仕様の内容に言及するとともに、それによって新たに実現できる活用例を紹介します。4.1

前田 繁章

2012年2月23日 20:00

前回までは、OpenFlow ver1.0をベースにして、プロトコルで規定されている仕様、およびその仕様に沿った使い方、活用事例を紹介しました。最終回である今回は、OpenFlow ver1.1およびver1.2の仕様の内容に言及するとともに、それによって新たに実現できる活用例を紹介します。

4.1 OpenFlow ver 1.1の追加機能

OpenFlow ver 1.1 では表のような機能が追加されています。その内容について、特に大きなものを中心に見ていきます。

図1:OpenFlow ver1.1で追加された機能

4.1.1 複数テーブル

OpenFlow ver1.1では、OpenFlowスイッチが単一のテーブルではなく複数のテーブルを持つ場合を想定しており、複数テーブル間の処理(パイプライン処理と呼ばれます)も規定されています。また、グループテーブルと呼ばれる特殊なテーブルも定義されています(グループについては後述)。複数のテーブルを持つ場合に、OpenFlowスイッチがパケット受信した時の処理は以下のようになります。

  1. OpenFlowスイッチがパケットを受信する。
  2. テーブル0に遷移する。
  3. そのテーブルに記述されているマッチングルール(OpenFlow ver1.0の用語ではヘッダフィールドと定義されていましたがOpenFlow ver1.1の正式な用語としてはマッチフィールドとして定義されます)を検索する。
  4. 一致するものがあれば、記述されているインストラクション(「アクションの追加」、「アクションの削除」、「別のテーブルへ遷移」など)に沿った処理を行う
  5. 次のテーブル(テーブル1)に遷移する
  6. 上記の3~5をテーブル2、3、・・・という風に、OpenFlowスイッチで保持されているテーブルの上限まで繰り返す
  7. 各テーブルでの処理によって完成したアクションを実行する

アクションとしては、OpenFlow ver1.0と同様にパケットを転送する、パケットを破棄する、フィールドの値を書き換えるなどの記述が可能です。加えて、ver 1.1 ではTTLの値を変える、VLANやMPLSのTagを追加・削除するなどの記述もできるようになっています。また、アクションとして「グループ処理を行う」と記述することで、グループテーブルで定義されたグループ処理を行うことができるようになります。

複数テーブルに対応することで、マッチングルールの記述に意味を持たせやすくなります。例えば、テーブル0ではVLAN IDを見て処理を決定し、テーブル1では宛先MACアドレスを見て処理を決定するといったことができます。

スイッチの実装の面から言えば、OpenFlowスイッチで管理するフロー数が少なくなる、スイッチのTCAMを有効活用できるなどのメリットがあります。また、コントローラを開発する立場から見ると、QoSのみを考慮した処理・ルーティングのみを考慮した処理を個別に実装し、それをあとから組み合わせるなどが行いやすくなります。

4.1.2 グループ

OpenFlow ver1.1においては、グループという概念を用いて複数のポートをグループ化して処理を定義することが可能です。これにより、OpenFlowコントローラからに毎回問い合わせを行わなくても、OpenFlowスイッチが能動的に動作することで、複数経路を実現したり、マルチキャストを実現したりすることができるようになります。このためのグループのタイプとして、以下の4つが定義されています。

・all
グループとして定義されているポートの、すべてのポートからパケットを送出します。マルチキャストやブロードキャストを実現するために用いられます。
・select
グループとして定義されているポートのうち、一つのポートを選択してパケットを送出します。同じマッチングルールを持つパケットの場合でも、その都度ポートを選択することになりますので経路の負荷分散が可能になります。
・indirect
グループとして定義されている、特定の一つのポートからパケットを送出します。これによりわざわざポートを直接指定するのではなく、グループという枠組みの中でポートを扱うことが可能になります。特定のポートを利用する場合でもそれを一つのグループとみなすことで、一つのポートに対する処理も複数のポートに対する処理もグループによる処理として同じように実装できるようになります。
・fast failover
グループとして定義されているポートのうち、特定のポートを選択してパケットを送出します。そのポートが利用不可能な時(リンクダウン時等)は、グループ内の別のポートからパケットを送出します。これにより、コントローラに逐一問い合わせを行うことなくフェールオーバー(経路の迂回)が実現できます。

どんなグループがあり、そのタイプは上記のどれか、といった情報は、OpenFlowスイッチのグループテーブルで管理されます。

4.1.3 MPLS

OpenFlow ver1.1では、MPLSプロトコルに新たに対応しています。パケットのマッチングにMPLSのラベルを利用できるほか、MPLSタグの追加、修正、削除も行うことが可能です。これにより、データセンター内やキャンパスネットワークといったLANを中心とした活用だけでなく、広域網など、WAN分野での活用も今後広がっていくと考えられます。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30