(57)【要約】  制御対象の通信が増加しても、個々のスイッチに設定するフローエントリの数の増大を抑えることができるようにする。スイッチは、優先順位を有する複数のフローテーブルを順次参照してパケットを処理する機能を備える。このスイッチを制御する制御装置は、マッチ条件として設定可能な情報のうち予め定めた項目をマッチ条件に持つ第１のフローテーブルと、該第１のフローテーブルと異なる項目をマッチ条件に持ち、前記第１のフローテーブルのエントリにヒットした場合に参照される第２のフローテーブルとにそれぞれ設定するエントリ情報を生成するエントリ生成部と、前記生成されたエントリ情報に基づいて、前記スイッチに対し、前記第１、第２フローテーブルの更新を指示するエントリ操作部と、前記スイッチの各フローテーブルの内容を管理するエントリ管理部と、を備える。
2013180207.tif 000002
【特許請求の範囲】
【請求項１】
優先順位を有する複数のフローテーブルを順次参照してパケットを処理する機能を備えたスイッチと接続され、
マッチ条件として設定可能な情報のうち予め定めた項目をマッチ条件に持つ第１のフローテーブルと、該第１のフローテーブルと異なる項目をマッチ条件に持ち、前記第１のフローテーブルのエントリにヒットした場合に参照される第２のフローテーブルとにそれぞれ設定するエントリ情報を生成するエントリ生成部と、
前記生成されたエントリ情報に基づいて、前記スイッチに対し、前記第１、第２フローテーブルの更新を指示するエントリ操作部と、
前記スイッチの各フローテーブルの内容を管理するエントリ管理部と、
を備える制御装置。
【請求項２】
前記エントリ生成部は、さらに、既存フローの変更の必要が生じた時に、前記エントリ管理部を参照して、前記第１、第２のフローテーブルの変更内容を決定し、
前記エントリ操作部は、前記決定された変更内容に基づいて、前記スイッチに対し、前記第１、第２フローテーブルの更新を指示する請求項１の制御装置。
【請求項３】
前記第１のフローテーブルに格納されたＭ個のエントリと、
前記第２のフローテーブルに格納されたＮ個のエントリと、により、
マッチ条件が異なるＭ×Ｎ個のフローをＭ＋Ｎ個のエントリで制御する請求項１又は２の制御装置。
【請求項４】
前記エントリ管理部には、予め決定しておいた、第１のフローテーブルでマッチ条件として用いる項目と、第２のフローテーブルでマッチ条件として用いる項目とを定めた設定情報が格納され、
前記エントリ生成部は、前記スイッチから要求されたパケットを識別するためのマッチ条件を持つ仮のエントリを生成した後、前記設定情報を参照して、前記マッチ条件を分解して、前記第１、第２のフローテーブルに設定するエントリ情報を生成する請求項１から３いずれか一の制御装置。
【請求項５】
前記エントリ生成部は、さらに、前記第２のフローテーブルと異なる項目をマッチ条件に持ち、前記第２のフローテーブルのエントリにヒットした場合に参照される第３のフローテーブルに設定するエントリ情報を生成し、
前記エントリ操作部は、前記生成されたエントリ情報に基づいて、前記スイッチに対し、前記第１〜第３フローテーブルの更新を指示する請求項１から４いずれか一の制御装置。
【請求項６】
優先順位を有する複数のフローテーブルを順次参照してパケットを処理する機能を備えたスイッチと、
マッチ条件として設定可能な情報のうち予め定めた項目をマッチ条件に持つ第１のフローテーブルと、該第１のフローテーブルとを異なる項目をマッチ条件に持ち、前記第１のフローテーブルのエントリにヒットした場合に参照される第２のフローテーブルとにそれぞれ設定するエントリ情報を生成するエントリ生成部と、前記生成されたエントリ情報に基づいて、前記スイッチに対し、前記第１、第２フローテーブルの更新を指示するエントリ操作部と、前記スイッチの各フローテーブルの内容を管理するエントリ管理部と、を備える制御装置と、を含む通信システム。
【請求項７】
前記制御装置は、
前記第１のフローテーブルに格納されたＭ個のエントリと、
前記第２のフローテーブルに格納されたＮ個のエントリと、により、
マッチ条件が異なるＭ×Ｎ個のフローをＭ＋Ｎ個のエントリで制御する請求項６の通信システム。
【請求項８】
前記エントリ管理部には、予め決定しておいた、第１のフローテーブルでマッチ条件として用いる項目と、第２のフローテーブルでマッチ条件として用いる項目とを定めた設定情報が格納され、
前記エントリ生成部は、前記スイッチから要求されたパケットを識別するためのマッチ条件を持つ仮のエントリを生成した後、前記設定情報を参照して、前記マッチ条件を分解して、前記第１、第２のフローテーブルに設定するエントリ情報を生成する請求項６又は７の通信システム。
【請求項９】
マッチ条件として設定可能な情報のうち予め定めた項目をマッチ条件に持つ第１のフローテーブルと、該第１のフローテーブルと異なる項目をマッチ条件に持ち、前記第１のフローテーブルのエントリにヒットした場合に参照される第２のフローテーブルとにそれぞれ設定するエントリ情報を生成するステップと、
優先順位を有する複数のフローテーブルを順次参照してパケットを処理する機能を備えたスイッチに対し、前記生成されたエントリ情報に基づいて、前記第１、第２フローテーブルの更新を指示するステップと、
を含むスイッチ制御方法。
【請求項１０】
優先順位を有する複数のフローテーブルを順次参照してパケットを処理する機能を備えたスイッチを制御するコンピュータに、
マッチ条件として設定可能な情報のうち予め定めた項目をマッチ条件に持つ第１のフローテーブルと、該第１のフローテーブルと異なる項目をマッチ条件に持ち、前記第１のフローテーブルのエントリにヒットした場合に参照される第２のフローテーブルとにそれぞれ設定するエントリ情報を生成する処理と、
優先順位を有する複数のフローテーブルを順次参照してパケットを処理する機能を備えたスイッチに対し、前記生成されたエントリ情報に基づいて、前記第１、第２フローテーブルの更新を指示する処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１２−１２４０９１号（２０１２年  ５月３１日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、制御装置、通信システム、スイッチ制御方法及びプログラムに関し、特に、ネットワークに配置されたスイッチを集中制御する制御装置、通信システム、スイッチ制御方法及びプログラムに関する。
【背景技術】
【０００２】
非特許文献１に、オープンフローと呼ばれるネットワークにおけるスイッチ（オープンフロースイッチ、以下「ＯＦＳ」）の仕様が規定されている。オープンフローでは、オープンフローコントローラ（以下、「ＯＦＣ」）と呼ばれる制御装置が配置される。ＯＦＳが保持するフローテーブルには、受信パケットと照合するマッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）と、マッチ条件に適合するパケットに適用する処理内容（Ｉｎｓｔｒｕｃｔｉｏｎｓ）とを対応付けたエントリ（フローエントリ）が格納される。ＯＦＣは、配下のＯＦＳが保持するフローテーブルの内容を操作（新規エントリの追加、変更、削除等）することにより、フロー単位のきめ細かな制御を行うことができる。【０００３】
マッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）とは、Ｅｔｈｅｒｎｅｔ（登録商標）、ＴＣＰ／ＩＰにて規定されたＯＳＩ参照モデルにおけるレイヤ１〜レイヤ４の定めるデータ領域を１つの単位として再定義したものである。具体的には、マッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）として、物理的なスイッチのポート、ＩＥＥＥ８０２．１Ｑの定めるＶＬＡＮ  ＩＤ、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）ポート番号等、多岐に渡る情報を設定し、細かい粒度で、パケットに対する処理を変更することができる（図１０参照）。【０００４】
処理内容（Ｉｎｓｔｒｕｃｔｉｏｎｓ）としては、例えば、該当パケットを別のポートにフォワードしたり、フォワードせずにＤｒｏｐしたりすることが可能となっている。非特許文献１のＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ  １．１．０では、処理内容（Ｉｎｓｔｒｕｃｔｉｏｎｓ）として、他のフローテーブルへの遷移を指示する命令（Ｇｏ−ｔｏ  Ｔａｂｌｅ）を設定することにより、複数のフローテーブルを使って複数の処理内容を実行するパイプライン処理を実施することもできる（非特許文献１の「４．１．１  Ｐｉｐｅｌｉｎｅ  Ｐｒｏｃｅｓｓｉｎｇ」参照）。【０００５】
また、特許文献１には、クライアント端末にサービスを提供するサービス提供サーバからの負荷分散要求に応じてスイッチに設定したフローエントリを変更することにより、サービス提供サーバの負荷分散を行う、上記ＯＦＣ相当のコントローラが開示されている。【０００６】
また、特許文献２には、通信ネットワーク上に配置された複数のスイッチのエントリあふれを抑制することができるという管理計算機が開示されている。同公報によれば、この管理計算機は、個々のスイッチの使用エントリ数に依存するパラメータ（エントリ状態情報）を参照して、エンドツーエンドのスイッチコストを計算し、スイッチコストが最小となる経路をフローの経路として決定する、と記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−１７０７１８号公報
【特許文献２】特開２０１０−１６１４７３号公報
【非特許文献】
【０００８】
【非特許文献１】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  Ｖｅｒｓｉｏｎ  １．１．０  Ｉｍｐｌｅｍｅｎｔｅｄ  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０２）、［ｏｎｌｉｎｅ］、［平成２４（２０１２）年３月１４日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００９】
以下の分析は、本発明によって与えられたものである。上記したオープンフローでは、基本的に１フローにつき、１つ以上のエントリを作成してＯＦＳを制御するものである。このため、制御対象の通信が増加すると、個々のＯＦＳに設定するフローエントリが増大し、ＯＦＳの性能に影響してしまうという問題点がある。ここで、「フロー」とは、オープンフロー等の集中制御型ネットワークにおける通信の取扱い単位である。【００１０】
例えば、オープンフローネットワークを介して、１つのサーバに対し、多くのクライアントが通信する場合、ある１つのアドレスから、多くのアドレスに対する通信が発生する。このような場合、図１１のフローエントリ＃１、＃２に示すように、送信元アドレスと宛先アドレスの組み合わせの数に応じたフローエントリが必要となる。【００１１】
また、図１２に示すように、同一のアドレス間の通信であっても、ＶＬＡＮ  ＩＤ、ＶＬＡＮ  Ｐｒｉｏｒｉｔｙ、ＩＰのプロトコル番号やＩＰ  ＴｏＳ等（図１０参照）によりフローを識別し、処理内容を変えたいという場合もある。このような場合には、さらにフローエントリ数が増えることになる。【００１２】
この点、非特許文献１には、パイプライン処理を用いて、あるフローテーブルのエントリでパケットのヘッダを書き換えた後、次のフローテーブルでは前記書き換え後のヘッダにて該当するエントリを検索するといった用法が記載されるに止まっている。【００１３】
本発明は、制御対象の通信が増加しても、個々のスイッチに設定するフローエントリの数の増大を抑えることのできる制御装置、通信システム、スイッチ制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
第１の視点によれば、優先順位を有する複数のフローテーブルを順次参照してパケットを処理する機能を備えたスイッチと接続され、マッチ条件として設定可能な情報のうち予め定めた項目をマッチ条件に持つ第１のフローテーブルと、該第１のフローテーブルと異なる項目をマッチ条件に持ち、前記第１のフローテーブルのエントリにヒットした場合に参照される第２のフローテーブルとにそれぞれ設定するエントリ情報を生成するエントリ生成部と、前記生成されたエントリ情報に基づいて、前記スイッチに対し、前記第１、第２フローテーブルの更新を指示するエントリ操作部と、前記スイッチの各フローテーブルの内容を管理するエントリ管理部と、を備える制御装置が提供される。【００１５】
第２の視点によれば、優先順位を有する複数のフローテーブルを順次参照してパケットを処理する機能を備えたスイッチと、マッチ条件として設定可能な情報のうち予め定めた項目をマッチ条件に持つ第１のフローテーブルと、該第１のフローテーブルとを異なる項目をマッチ条件に持ち、前記第１のフローテーブルのエントリにヒットした場合に参照される第２のフローテーブルとにそれぞれ設定するエントリ情報を生成するエントリ生成部と、前記生成されたエントリ情報に基づいて、前記スイッチに対し、前記第１、第２フローテーブルの更新を指示するエントリ操作部と、前記スイッチの各フローテーブルの内容を管理するエントリ管理部と、を備える制御装置と、を含む通信システムが提供される。【００１６】
第３の視点によれば、マッチ条件として設定可能な情報のうち予め定めた項目をマッチ条件に持つ第１のフローテーブルと、該第１のフローテーブルと異なる項目をマッチ条件に持ち、前記第１のフローテーブルのエントリにヒットした場合に参照される第２のフローテーブルとにそれぞれ設定するエントリ情報を生成するステップと、優先順位を有する複数のフローテーブルを順次参照してパケットを処理する機能を備えたスイッチに対し、前記生成されたエントリ情報に基づいて、前記第１、第２フローテーブルの更新を指示するステップと、を含むスイッチ制御方法が提供される。本方法は、優先順位を有する複数のフローテーブルを順次参照してパケットを処理する機能を備えたスイッチを制御する制御装置という、特定の機械に結びつけられている。【００１７】
第４の視点によれば、優先順位を有する複数のフローテーブルを順次参照してパケットを処理する機能を備えたスイッチを制御するコンピュータに、マッチ条件として設定可能な情報のうち予め定めた項目をマッチ条件に持つ第１のフローテーブルと、該第１のフローテーブルと異なる項目をマッチ条件に持ち、前記第１のフローテーブルのエントリにヒットした場合に参照される第２のフローテーブルとにそれぞれ設定するエントリ情報を生成する処理と、優先順位を有する複数のフローテーブルを順次参照してパケットを処理する機能を備えたスイッチに対し、前記生成されたエントリ情報に基づいて、前記第１、第２フローテーブルの更新を指示する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な（非トランジエントな）記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１８】
本発明によれば、制御対象の通信が増加しても、個々のスイッチに設定するフローエントリの数の増大を抑えることが可能となる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態の構成を示す図である。
【図２】本発明の第１の実施形態の通信システムの構成を示す図である。
【図３】本発明の第１の実施形態のＯＦＣとＯＦＳの詳細構成を示す図である。
【図４】本発明の第１の実施形態のＯＦＣの動作（新規エントリ設定）を表したフローチャートである。
【図５】図４のステップＳ１０２で生成される仮のエントリの例である。
【図６】最終的にＯＦＳに設定されるエントリの例である。
【図７】本実施形態の効果を説明するための図である。
【図８】本実施形態の効果を説明するための図である。
【図９】本発明の第１の実施形態のＯＦＣの動作（既存エントリ変更）を表したフローチャートである。
【図１０】非特許文献１のオープンフローにおいてマッチ条件として使用可能な情報を示す図である。
【図１１】非特許文献１のオープンフローにおけるフローエントリの設定例を示す図である。
【図１２】非特許文献１のオープンフローにおけるフローエントリの設定例を示す別の図である。
【発明を実施するための形態】
【００２０】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００２１】
本発明は、その一実施形態において図１に示すように、優先順位を有する複数のフローテーブル２３を順次参照してパケットを処理する機能（パケット処理部２２）を備えたスイッチ２０と、制御メッセージ送受信部２１を介してスイッチ２０を制御することによりクライアント３０とサーバ４０間の通信を実現する制御装置１０とを含む構成にて実現できる。
【００２２】
より具体的には、制御装置１０は、マッチ条件として設定可能な情報のうち予め定めた項目をマッチ条件に持つ第１のフローテーブルと、該第１のフローテーブルと異なる項目をマッチ条件に持ち、前記第１のフローテーブルのエントリにヒットした場合に参照される第２のフローテーブルとにそれぞれ設定するエントリ情報を生成するエントリ生成部１１と、前記生成されたエントリ情報に基づいて、スイッチ２０に対し、前記第１、第２フローテーブルの更新を指示するエントリ操作部１３と、前記スイッチ２０の各フローテーブルの内容を管理するエントリ管理部１２と、を備える。
【００２３】
以上のように本発明によれば、マッチ条件の組み合わせで表されるＭ×Ｎ個のフロー（Ｍ、Ｎは自然数）を第１のフローテーブルに登録するＭ個のエントリと、Ｍ個のエントリにて参照指定される第２のフローテーブルに登録するＮ個のエントリにて制御することが可能になる。
【００２４】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図２は、本発明の第１の実施形態の通信システムの構成を示す図である。図２を参照すると、２台のＯＦＳ２０Ａ、２０Ｂによって構成されたネットワークと、ＯＦＳ２０Ａ、２０Ｂを制御するＯＦＣ１０Ａと、ＯＦＳ２０Ａ、２０Ｂを介して通信するクライアント３０Ａ、３０Ｂと、２台のサーバ４０Ａ、４０Ｂとが示されている。
【００２５】
図２の例では、ＯＦＳ２０Ａは、Ｐ１〜Ｐ４の４つのポートを持ち、ポートＰ１には、クライアント３０Ａが接続され、ポートＰ２には、クライアント３０Ｂが接続されている。ＯＦＳ２０Ｂは、Ｐ１〜Ｐ４の４つのポートを持ち、ポートＰ１には、サーバ４０Ａが接続され、ポートＰ２には、サーバ４０Ｂが接続されている。また、ＯＦＳ２０Ａ、２０ＢのポートＰ３はＯＦＣ１０Ａとの接続ポートに使用されている。さらに、ＯＦＳ２０Ａ、２０Ｂ間はそれぞれポートＰ４により接続されている。
【００２６】
クライアント３０Ａ、３０Ｂは、パーソナルコンピュータや携帯端末等の情報処理装置である。以下の説明では、クライアント３０Ａには、ＶＬＡＮ  ＩＤ＝１が設定され、クライアント３０Ｂには、ＶＬＡＮ  ＩＤ＝２が設定されているものとする。
【００２７】
サーバ４０Ａ、４０Ｂは、クライアント３０Ａ、３０Ｂに対し各種サービスを提供する情報処理装置である。以下の説明では、サーバ４０Ａには、ＶＬＡＮ  ＩＤ＝３が設定され、サーバ４０Ｂには、ＶＬＡＮ  ＩＤ＝２が設定されているものとする。
【００２８】
図３は、ＯＦＣとＯＦＳの詳細構成を示す図である。図３を参照すると、エントリ生成部１１と、エントリ管理部１２と、制御メッセージ送受信部１３ａとを備えたＯＦＣ１０Ａと、制御メッセージ送受信部２１と、パケット処理部２２と、複数のフローテーブル２３とを備えたＯＦＳ２０Ａが示されている。なお、ＯＦＳ２０Ｂは、ＯＦＳ２０Ａと同一の構成であるので説明を省略する。
【００２９】
ＯＦＣ１０Ａのエントリ生成部１１は、制御メッセージ送受信部１３ａを介して、ＯＦＳ２０Ａまたは２０Ｂから、新規フローの検出通知（Ｐａｃｋｅｔ−Ｉｎメッセージ）を受けると、当該パケットを所定の経路で転送させるために、経路上のＯＦＳ２０Ａ、２０Ｂに設定するエントリを生成する。なお、前記パケットの転送経路は、図示省略するネットワークトポロジやユーザのアクセスポリシ等を参照して、計算することができる。また、エントリ生成部１１が生成するエントリの詳細は後に図を用いて詳細に説明する。
【００３０】
エントリ管理部１２は、各ＯＦＳ２０Ａ、２０Ｂのフローテーブル２３に設定されているエントリと同一の内容を記憶し、管理する。具体的には、エントリ管理部１２は、自身が記憶している各ＯＦＳ２０Ａ、２０Ｂのフローテーブルに、制御メッセージ送受信部１３ａによるフローテーブルの操作内容と同様の内容を適用するようにすればよい。また、エントリ管理部１２には、ＯＦＳ毎やフロー毎に予め決定しておいた、第１のフローテーブルでマッチ条件として用いる項目と、第２のフローテーブルでマッチ条件として用いる項目とを定めた設定情報が格納される。
【００３１】
制御メッセージ送受信部１３ａは、上述したエントリ操作部に相当し、各ＯＦＳ２０Ａ、２０Ｂに対し、制御メッセージを送信することにより、各ＯＦＳ２０Ａ、２０Ｂのフローテーブルに格納されているエントリを操作（新規登録、変更、削除等）する。
【００３２】
なお、上記のようなＯＦＣ１０Ａは、非特許文献１のＯＦＣのエントリ生成機能に変更を加えることで実現することができる。また、ＯＦＣ１０Ａの各部（処理手段）は、ＯＦＣ１０Ａを構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【００３３】
ＯＦＳ２０Ａの制御メッセージ送受信部２１は、ＯＦＣ１０Ａの制御メッセージ送受信部１３ａから受信した制御メッセージに従い、フローテーブル２３のエントリに変更を加える。
【００３４】
パケット処理部２２は、クライアント３０ＡやＯＦＳ２０Ｂからパケットを受信すると、複数のフローテーブル２３の中から最も優先度の高いフローテーブル（非特許文献１のＴａｂｌｅ＃０）から、受信パケットに適合するマッチ条件を持つエントリを検索し、当該エントリに設定されている処理内容（Ｉｎｓｔｒｕｃｔｉｏｎｓ）を実行する。このときの処理内容（Ｉｎｓｔｒｕｃｔｉｏｎｓ）に、指定されたフローテーブルの参照を指示するアクション（Ｇｏ−ｔｏ  Ｔａｂｌｅ＃Ｎ）が設定されている場合、パケット処理部２２は、指定されたフローテーブルを参照し、受信パケットに適合するマッチ条件を持つエントリを検索する。なお、前記検索の結果、受信パケットに適合するマッチ条件を持つエントリが見つからなかった場合、パケット処理部２２は、制御メッセージ送受信部２１を介して、ＯＦＣ１０Ａに対し、新規フローの検出通知（Ｐａｃｋｅｔ−Ｉｎメッセージ）を送信する。
【００３５】
複数のフローテーブル２３は、図６に示すように、複数のフローテーブル（Ｔａｂｌｅ＃０、Ｔａｂｌｅ＃１）によって構成される。図６の例では、Ｔａｂｌｅ＃０が最も優先度の高いフローテーブルであるものとする。図６のＴａｂｌｅ＃０の検索の結果、受信パケットの入力ポートやヘッダ情報（送信元ＭＡＣアドレス〜宛先ＩＰアドレス）に適合するマッチ条件を持つエントリとして、Ｔａｂｌｅ＃０の＃１のエントリが見つかった場合、その処理内容（Ｉｎｓｔｒｕｃｔｉｏｎｓ）に従い、Ｔａｂｌｅ＃１の再検索が行われる。Ｔａｂｌｅ＃１の検索の結果、受信パケットのＶＬＡＮ  ＩＤに適合するマッチ条件を持つエントリとして、Ｔａｂｌｅ＃０の＃１のエントリが見つかった場合、その処理内容（Ｉｎｓｔｒｕｃｔｉｏｎｓ）に従い、ＶＬＡＮ  ＩＤを“２”に書き換える処理と、ポートＰ４から出力する処理が行われる。この結果、受信パケットは、ポートＰ４に接続されたＯＦＳ２０Ｂに転送される。なお、図５〜図８においては、フロー識別には必要のないフィールドにはワイルドカードが設定されており、これらの項目は省略されている。
【００３６】
なお、このようなＯＦＳ２０Ａ、２０Ｂは、非特許文献１のＯＦＳを用いて実現することができる。
【００３７】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図４は、本発明の第１の実施形態のＯＦＣの動作（新規エントリ設定）を表したフローチャートである。以下の説明では、図２のクライアント３０Ａが、サーバ４０Ｂに対してパケットを送信した例を挙げて説明する。また、クライアント３０ＡのＭＡＣアドレスは、“００：００：００：００：０Ａ：０１”であり、ＩＰアドレスは、“１０．０．０．１”であるものとする。また、サーバ４０ＢのＭＡＣアドレスは、“００：００：００：００：０Ｂ：０１”であり、ＩＰアドレスは、“１０．０．０．２”であるものとする。
【００３８】
図４を参照すると、クライアント３０Ａからサーバ４０Ｂに宛てたパケットを受信したＯＦＳ２０Ａは、フローテーブル２３の検索の結果、該当するエントリが存在しないため、ＯＦＣ１０Ａに対して、新規フローの検出通知（Ｐａｃｋｅｔ−Ｉｎメッセージ）を送信する。ＯＦＳ２０ＡまたはＯＦＳ２０Ｂから、新規フローの検出通知（Ｐａｃｋｅｔ−Ｉｎメッセージ）を受信すると（ステップＳ１０１）、ＯＦＣ１０Ａは、新規フローの検出通知（Ｐａｃｋｅｔ−Ｉｎメッセージ）に含まれる受信パケットの情報を用いて、当該パケットに後続するパケットを処理するための仮のエントリを生成する（ステップＳ１０２）。
【００３９】
図５は、ステップＳ１０２で生成される仮のエントリを示す図である。ＯＦＳ２０Ａは、ポートＰ１で、クライアント３０Ａからサーバ４０Ｂに宛てたパケットを受信したので、入力ポートＰ１（以下、フローテーブルにおいては、Ｐ１〜Ｐ４は、それぞれ１、２、３、４と表記する。）、クライアント３０Ａ及びサーバ４０ＢのＭＡＣアドレス、ＩＰアドレスをマッチ条件とし、ＶＬＡＮ  ＩＤの書き換え（ＶＬＡＮ  ＩＤ＝１→２）と、ＯＦＳ２０Ｂへの転送（ポートＰ４からの転送）を処理内容（Ｉｎｓｔｒｕｃｔｉｏｎｓ）とするエントリを生成する。
【００４０】
次に、ＯＦＣ１０Ａは、前記生成した仮のエントリをＯＦＳ２０Ａの２つのフローテーブルに設定するエントリに分解する処理を開始する。まず、ＯＦＣ１０Ａは、エントリ管理部１２を参照して、生成した仮のエントリのマッチ条件のうち、入力ポート〜宛先ＩＰアドレスと同一のマッチ条件を持つエントリがＯＦＳ２０Ａの第１のフローテーブル（Ｔａｂｌｅ＃０）に登録されているか否かを確認する（ステップＳ１０３）。
【００４１】
この時点では、クライアント３０Ａ及びサーバ４０ＢのＭＡＣアドレス、ＩＰアドレスをマッチ条件とするエントリは設定されていないので、ＯＦＣ１０Ａは、エントリ管理部１２の設定情報を参照し、図６の上段に示すように、入力ポート＝Ｐ１、クライアント３０Ａ及びサーバ４０ＢのＭＡＣアドレス、ＩＰアドレスをマッチ条件とし、第２のフローテーブル（Ｔａｂｌｅ＃１）の参照を指示するエントリを生成し、ＯＦＳ２０Ａに設定する（ステップＳ１０４）。また、ＯＦＣ１０Ａは、ＯＦＳ２０Ａに設定したエントリを自装置のエントリ管理部１２にも登録する。なお、図６では省略されているが、各エントリのフロー識別には必要のないフィールドにはどのような値にもマッチするものとして取り扱うワイルドカードが設定される。
【００４２】
次に、ＯＦＣ１０Ａは、エントリ管理部１２を参照して、生成した仮のエントリの残るマッチ条件と処理内容の組み合わせを持つエントリがＯＦＳ２０Ａの第２のフローテーブル（Ｔａｂｌｅ＃１）に登録されているか否かを確認する（ステップＳ１０５）。
【００４３】
この時点では、ＶＬＡＮ  ＩＤが１であることをマッチ条件とし、ＶＬＡＮ  ＩＤを２に書き換え、ポートＰ４から転送する処理内容を持つエントリは設定されていないので、ＯＦＣ１０Ａは、図６の下段に示すように、ＶＬＡＮ  ＩＤ＝１をマッチ条件とし、ＶＬＡＮ  ＩＤの書き換えと、ポートＰ４からの転送を処理内容（Ｉｎｓｔｒｕｃｔｉｏｎｓ）とするエントリを生成し、ＯＦＳ２０Ａに設定する（ステップＳ１０６）。また、ＯＦＣ１０Ａは、ＯＦＳ２０Ａに設定したエントリを自装置のエントリ管理部１２にも登録する。
【００４４】
このようにしてステップＳ１０２で生成された仮のエントリは、図６に示すように、２つのエントリに分解されて設定される。
【００４５】
その後、例えば、クライアント３０Ａからサーバ４０Ｂ宛てに、異なるＶＬＡＮ  ＩＤのパケットが送出されたとしても、ＯＦＣ１０Ａは、図６に示したフローにより、第１、第２のフローテーブルに必要なエントリのみを生成し、設定する。
【００４６】
続いて本実施形態の効果について説明する。ＯＦＳ２０Ａが受信しうるパケットのＶＬＡＮ  ＩＤが１〜１０の１０パターン、送信元ＭＡＣアドレスが００：００：００：００：０Ａ：０１，００：００：００：００：０Ａ：０２，００：００：００：００：０Ａ：０３〜００：００：００：００：０Ａ：０Ａの１０パターン存在する場合、図４のステップＳ１０２では、図７に示すように１００パターンのエントリが生成される。
【００４７】
しかしながら、本実施形態では、図４のステップＳ１０３〜Ｓ１０６に示すエントリの分解処理が行われるため、ＯＦＳ２０Ａに設定されるエントリは、図８に示すように、１０＋１０の２０パターンに集約される。
【００４８】
また本実施形態によれば、フローの変更時にもその処理対象エントリ数が削減される。図９は、ＯＦＳやサーバの故障等の経路変更事由が発生した際のＯＦＣの動作（既存エントリ変更）を表したフローチャートである。経路変更事由が発生すると、ＯＦＣ１０Ａは、新規エントリ設定時と同様に、変更後のパケット転送経路を実現する仮のエントリを生成する。そして、図４のフローチャートのＳ１０３〜Ｓ１０６と同様に、第１、第２のフローテーブルについてそれぞれ更新を行う。
【００４９】
これにより、例えば、図２のサーバ４０Ｂに障害が発生し、サーバ４０Ａに切替えたい場合、図７の処理内容（Ｉｎｓｔｒｕｃｔｉｏｎｓ）のＶＬＡＮ  ＩＤ書換フィールドを３に変更する必要がある。図７のフローテーブルのまま変更を行う場合、１００個のエントリの変更が必要となるが、図９のフローを適用すれば、ステップＳ２０３にて第１のフローテーブルの変更は不要と判断されるので、第２のテーブルの１０個のエントリを書き換えれば済むことになる。
【００５０】
以上、本発明の実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した実施形態で用いたネットワーク構成や、クライアント、サーバの数に制約は無い。
【００５１】
また、上記した実施形態では、仮のエントリを２つのフローテーブルに分解する例を挙げて説明したが、エントリ管理部１２に記憶する設定情報の設定次第で、３つ以上のフローテーブルに分解することも可能である。例えば、図６、図８の第１のフローテーブル（Ｔａｂｌｅ＃０）を、送信元アドレスをマッチ条件とするフローテーブルと、宛先アドレスをマッチ条件とするフローテーブルと、に分解することもできる。
【００５２】
また、上記した実施形態で挙げたフローテーブルの分解パターンも種々の変形を加えることができる。例えば、マッチ条件として、図１０に示す他のフィールドの値を追加してもよいし、削除してもよい。もちろん、第１のフロ−テーブルのマッチ条件の一部を、第２のフロ−テーブルのマッチ条件に移動してもよい。
【００５３】
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００５４】
１０  制御装置
１０Ａ  ＯＦＣ（オープンフローコントローラ）
１１  エントリ生成部
１２  エントリ管理部
１３  エントリ操作部
１３ａ  制御メッセージ送受信部
２０  スイッチ
２０Ａ、２０Ｂ  ＯＦＳ（オープンフロースイッチ）
２１  制御メッセージ送受信部
２２  パケット処理部
２３  フローテーブル
３０、３０Ａ、３０Ｂ  クライアント
４０、４０Ａ、４０Ｂ  サーバ
【図１】
2013180207.tif 000003
【図２】
2013180207.tif 000004
【図３】
2013180207.tif 000005
【図４】
2013180207.tif 000006
【図５】
2013180207.tif 000007
【図６】
2013180207.tif 000008
【図７】
2013180207.tif 000009
【図８】
2013180207.tif 000010
【図９】
2013180207.tif 000011
【図１０】
2013180207.tif 000012
【図１１】
2013180207.tif 000013
【図１２】
2013180207.tif 000014
【国際調査報告】
2013180207.tif 000015
2013180207.tif 000016
2013180207.tif 000017
2013180207.tif 000018