4.2 OpenFlow ver1.1の活用例

OpenFlow ver1.1で新たに追加された機能を活用した例として、LAN環境から広域網までを一括で管理して経路を制御する場合を紹介します。

図2:OpenFlow ver1.1を追加された機能を活用した構成例

なお、各サーバー、クライアント端末のMACアドレスおよびIPアドレスが以下のようになっているものと仮定します。

図3:各サーバー、クライアント端末のMACアドレスとIPアドレス

この例においては、エンドユーザー側のクライアント端末に応じて接続先のデータセンターを切り替えて通信することが可能になります。ここでは、OpenFlowコントローラからOpenFlowスイッチのフローテーブルおよびグループテーブルに対して、下図のような情報が書き込まれているものとして説明します。説明を簡単にするため、インストラクションとしては「アクションの追加」のみ記述されているものとします。

図4:OpenFlowコントローラから、OpenFlowスイッチのフローテーブルとグループテーブルに対して書き込まれている情報(クリックで拡大)

なお、これらの情報はあらかじめOpenFlowスイッチからコントローラに接続した際に書き込んでも良いです(Proactive型と呼ばれます)し、Packet-Inとしてスイッチからコントローラに対して問い合わせがあった際の回答として書き込んでも良いです(Reactive型と呼ばれます)。

このような場合に、クライアントAおよびクライアントBから宛先IPアドレスが192.168.0.10、宛先MACアドレスがeのパケットを送信した場合を考えます。

クライアントAからパケットを送出した場合

  • (1)OpenFlowスイッチ1は、フローテーブル0を検索する。その結果、宛先IPアドレスが192.168.0.10であるためMPLSラベル100を付与しパケットをport3から送出する(OpenFlowスイッチ2に届く)。
  • (2)OpenFlow スイッチ2は、フローテーブル0を検索する。その結果、グループgの処理をするものと判断する。そこでグループテーブルを検索する。その結果、グループgの処理として記述されているとおりport2もしくはport3からパケットを送出する(OpenFlowスイッチ3もしくは4に届く)。この時の転送先はOpenFlowコントローラに問い合わせることなくOpenFlowスイッチが自身で決定する(負荷分散)。
  • (3)
    OpenFlowスイッチ3は、フローテーブル0を検索する。その結果、MPLSラベルが100であるためパケットをport2から送出する。(OpenFlowスイッチ5に届く)。

    OpenFlowスイッチ4は、フローテーブル0を検索する。その結果、MPLSラベルが100であるためパケットをport2から送出する。(OpenFlowスイッチ5に届く)。
  • (4)OpenFlowスイッチ5は、フローテーブル0、1を順に検索する。その結果、MPLSラベルが100かつ送信元MACアドレスがaであるため、MPLSラベルを削除してパケットをport3から送出する(OpenFlowスイッチ6に届く)。
  • (5)OpenFlowスイッチ6はフローテーブル0を検索する。その結果、宛先IPアドレスが192.168.0.10であるため宛先MACアドレスをcに書き換えたパケットをport2から送出する(サーバーCに届く)。

クライアントBからパケットを送出した場合(1から3は上記と同様)

  • (4')OpenFlowスイッチ5は、フローテーブル0、1を順に検索する。その結果、MPLSラベルが100かつ送信元MACアドレスがbであるため、MPLSラベルを削除してパケットをport4から送出する(OpenFlowスイッチ7に届く)。
  • (5')OpenFlowスイッチ7はフローテーブル0を検索する。その結果、宛先IPアドレスが192.168.0.10であるため宛先MACアドレスをdに書き換えたパケットをport2から送出する(サーバーDに届く)。

このように、宛先IPアドレスが同じでも、異なるサーバーに転送することが可能です(なお、この点についてはOpenFlow ver1.0でも可能です)。このように送信元MACアドレスが違うだけでも、宛先を自由に振り分けられるのがOpenFlowの特徴だと言えます。

今回の例ではさらに、OpenFlow ver1.1を利用したことで以下の3点の特徴があります。

・負荷分散の実現
上記の動作2において、同じパケット(マッチングに用いられる要素が同一)であってもOpenFlowスイッチが振り分けを行います。このことで複数経路への負荷の分散が行えます。
・MPLSを使ったスイッチング
上記の動作1から3の処理においては、MPLSのラベリングおよびMPLSラベルのみを利用した経路制御を行っています。これによりスイッチでのマッチング処理の負荷が減り高速な伝送が期待できます。
・複数フローテーブルの活用
上記の動作4および4’の処理においては複数のフローテーブルの処理を順に行っています。フローテーブル0でMPLSに関するマッチング処理を行い、その後フローテーブル1で送信元MACアドレスベースのマッチング処理を行っています。このように、別々のテーブルに分けることでフロー数を抑えることができるようになります。

人気記事トップ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