(57)【要約】【課題】簡易に、スイッチに収容可能なフロー数を拡大することができるオープンフロー制御装置、経路管理方法および経路管理プログラムを提供する。【解決手段】フローエントリに基づいてパケットを転送するスイッチを制御するオープンフロー制御装置であって、ネットワークのエッジに設置されるエッジスイッチが行う、端末から入力するパケットに対する処理を、当該エッジスイッチとは別のスイッチに委譲させる委譲制御を行う委譲制御部１０を含む。【選択図】図１３
2015159500.tif 000002
【特許請求の範囲】
【請求項１】
フローエントリに基づいてパケットを転送するスイッチを制御するオープンフロー制御装置であって、
エッジスイッチが行う、端末から入力するパケットに対する処理を、当該エッジスイッチとは別のスイッチに委譲させる委譲制御を行う委譲制御部を含む
ことを特徴とするオープンフロー制御装置。
【請求項２】
委譲制御部は、エッジスイッチに新たなフローエントリが登録できなくなった場合に、委譲制御を行う
請求項１に記載のオープンフロー制御装置。
【請求項３】
委譲制御部は、委譲元のスイッチに設定された、端末から入力するパケットを処理するためのフローエントリを、委譲先のスイッチに登録し直し、前記委譲元のスイッチに、前記端末から入力したパケットを前記委譲先のスイッチに転送するための入力委譲エントリを登録する
請求項１または請求項２に記載のオープンフロー制御装置。
【請求項４】
委譲制御部は、委譲先のスイッチに、端末から入力する特定のパケットが転送されるように、入力委譲エントリのマッチ条件を設定する
請求項３に記載のオープンフロー制御装置。
【請求項５】
委譲制御部は、端末から入力するパケットの内容に応じて異なるスイッチに当該パケットを転送する入力委譲エントリを、委譲元のスイッチに登録する
請求項３または請求項４に記載のオープンフロー制御装置。
【請求項６】
委譲制御部は、エッジスイッチが行う、端末に出力するパケットに対する処理を、当該エッジスイッチとは別のスイッチに委譲させる
請求項１から請求項５のうちのいずれか１項に記載のオープンフロー制御装置。
【請求項７】
フローエントリに基づいてパケットを転送するスイッチを制御するオープンフロー制御装置における経路管理方法であって、
エッジスイッチが行う、端末から入力するパケットに対する処理を、当該エッジスイッチとは別のスイッチに委譲させる
ことを特徴とする経路管理方法。
【請求項８】
フローエントリに基づいてパケットを転送するスイッチを制御するオープンフロー制御装置におけるコンピュータに、
エッジスイッチが行う、端末から入力するパケットに対する処理を、当該エッジスイッチとは別のスイッチに委譲させる処理を実行させる
ための経路管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のスイッチを制御するオープンフロー制御装置、経路管理方法および経路管理プログラムに関する。
【背景技術】
【０００２】
ネットワーク環境において、スイッチの物理インタフェースに収容する端末の集積度を高める技術として、ＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）でセグメントを論理的に分割する方法や、サーバを仮想化する技術がある。このような仮想化技術の普及と、ＩＴ機器の性能向上により、ネットワーク環境における端末の密度が高まっている。
【０００３】
オープンフロー（ＯｐｅｎＦｌｏｗ）によりフロー制御を行う環境では、端末の密度が高まると、ネットワークに収容されるフロー数が増大し、必要なフローエントリ数が多くなる。特に、オープンフローの特徴の１つであるきめ細かなフロー制御を行う環境では、必要なフローエントリ数がより多くなる可能性がある。フローエントリ数の増大により、スイッチのフローテーブルがあふれると、新規フローの生成ができなくなる。それにより、スイッチのフローエントリが、フロー数に対して不足することが懸念される。
【０００４】
特に、ネットワークのエッジ（境界）に設置されるスイッチ（エッジスイッチ）でカプセル化を行うＳＰＢ（Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｂｒｉｄｇｉｎｇ）やＴＲＩＬＬ（Ｔｒａｎｓｐａｒｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ  ｏｆ  Ｌｏｔｓ  ｏｆ  Ｌｉｎｋｓ）のような制御方式では、エッジスイッチで宛先の情報とカプセル化のタグとの対応付けを行う必要があり、端末数やフロー数が多いほど、エッジスイッチにおけるフローテーブルの消費が多くなる。また、データセンタのようなネットワークでは、利用ユーザの都合や外部からの攻撃などにより、一時的にフロー数が増大する場合がある。
【０００５】
一般的に、スイッチは、インタフェース数の違いで製品が区分けされ、インタフェース数が多いスイッチほど高価な製品となる。また、フローテーブルの容量が大きいスイッチほど、インタフェース数が多い。そのため、フローテーブルの容量が大きいスイッチほど、高価になる。従って、増大したフロー数に合わせて、フローテーブルの容量が大きい高価なスイッチを使用してネットワークを構築しようとすると、多くのコストが必要となる。
【０００６】
汎用のＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）は、メモリモジュールの増設により容量を柔軟に拡大することができる。しかし、スイッチのフローエントリを検索するＴＣＡＭ（Ｔｅｒｎａｒｙ  ｃｏｎｔｅｎｔ−ａｄｄｒｅｓｓａｂｌｅ  ｍｅｍｏｒｙ）のようなハードウェアの場合、容量を拡大するには設計レベルの変更が必要となる。つまり、フローテーブルの容量を拡大するには、多くの開発工数が必要となる。
【０００７】
特許文献１には、オープンフローネットワークにおいて、データ通信が始まる前にコントローラが自発的にエントリ登録を行う「事前のエントリ登録」を実現するための具体的な方式が記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】国際公開ＷＯ２０１２／０９６１３１号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１に記載された方式では、端末数やフロー数に応じて、スイッチ、特にエッジスイッチのフローエントリ数が多くなり、フローテーブルがあふれる可能性がある。
【００１０】
そこで、本発明は、簡易に、スイッチに収容可能なフロー数を拡大することができるオープンフロー制御装置、経路管理方法および経路管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明によるオープンフロー制御装置は、フローエントリに基づいてパケットを転送するスイッチを制御するオープンフロー制御装置であって、エッジスイッチが行う、端末から入力するパケットに対する処理を、当該エッジスイッチとは別のスイッチに委譲させる委譲制御を行う委譲制御部を含むことを特徴とする。
【００１２】
本発明による経路管理方法は、フローエントリに基づいてパケットを転送するスイッチを制御するオープンフロー制御装置における経路管理方法であって、エッジスイッチが行う、端末から入力するパケットに対する処理を、当該エッジスイッチとは別のスイッチに委譲させることを特徴とする。
【００１３】
本発明による経路管理プログラムは、フローエントリに基づいてパケットを転送するスイッチを制御するオープンフロー制御装置におけるコンピュータに、エッジスイッチが行う、端末から入力するパケットに対する処理を、当該エッジスイッチとは別のスイッチに委譲させる処理を実行させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、簡易に、スイッチに収容可能なフロー数を拡大することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明によるオープンフロー制御装置を含む通信システムの第１の実施形態の構成を示すブロック図である。
【図２】入力用エントリ委譲元・委譲先とそれに対応するＩＤとを含むテーブルの一例を示す説明図である。
【図３】端末宛てのパケットを出力用ＯＦＳに転送する入力用エントリの一例を示す説明図である。
【図４】図３に示す入力用エントリを他のＯＦＳに委譲したときに、当該他のＯＦＳに登録される入力用エントリの一例を示す説明図である。
【図５】２ホップ以上離れたＯＦＳが入力用エントリの委譲先である場合に、当該ＯＦＳに登録される入力用エントリの一例を示す説明図である。
【図６】入力委譲エントリの一例を示す説明図である。
【図７】入力用エントリ委譲後の通信経路の一例を示す説明図である。
【図８】出力用エントリ委譲元・委譲先とそれに対応するＩＤとを含むテーブルの一例を示す説明図である。
【図９】端末宛てのパケットを出力用ＯＦＳのＩＦに転送する出力用エントリの一例を示す説明図である。
【図１０】図９に示す出力用エントリを他のＯＦＳに委譲したときに、当該他のＯＦＳに登録される出力用エントリの一例を示す説明図である。
【図１１】出力委譲エントリの一例を示す説明図である。
【図１２】出力用エントリ委譲後の通信経路の一例を示す説明図である。
【図１３】本発明によるオープンフロー制御装置の最小構成を示すブロック図である。
【発明を実施するための形態】
【００１６】
実施形態１．
以下、本発明の第１の実施形態を図面を参照して説明する。
【００１７】
本実施形態では、オープンフローによりフロー制御を行う通信システムを例として説明する。
【００１８】
図１は、本発明によるオープンフロー制御装置（ＯＦＣ（ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ））を含む通信システムの第１の実施形態の構成を示すブロック図である。図１に示すように、通信システムは、ＯＦＣ１１と、ＯＦＳ（ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ）２１〜２４とを備える。通信システムには、端末３１，３２が接続されている。なお、図１では、４つのＯＦＳ２１〜２４が例示されているが、ＯＦＳはいくつあってもよい。また、２つの端末３１，３２が例示されているが、端末は、通信システムにいくつ接続されていてもよい。
【００１９】
ＯＦＳ２１〜２４は、処理対象とするパケットを抽出するためのマッチ条件と、当該パケットに対するアクションとが記載されたフローエントリに基づいてパケットを転送する。
【００２０】
ＯＦＳ２１は、ＩＦ（インタフェース）２１２〜２１４を有する。ＯＦＳ２２は、ＩＦ２２３〜２２４を有する。ＯＦＳ２３は、ＩＦ２３１〜２３２，２３４を有する。ＯＦＳ２４は、ＩＦ２４１，２４４を有する。そして、端末３１は、ＯＦＳ２１のＩＦ２１４に接続されている。端末３２は、ＯＦＳ２３のＩＦ２３４に接続されている。
【００２１】
ＯＦＣ１１は、ＯＦＳ２１〜２４を制御する。具体的には、ＯＦＣ１１は、フローエントリを生成し、ＯＦＳ２１〜２４のフローテーブルに登録する。
【００２２】
なお、ＯＦＣ１１から各ＯＦＳを制御するためのインタフェースは、１つでもよい。例えば、ＯＦＣ１１とＯＦＳ２１〜２４との間にスイッチを配置して、１つのインタフェースを分岐する構成であってもよい。また、端末３１，３２とＯＦＳ２１〜２４との間に上記スイッチとは別のスイッチが配置されていてもよく、そのスイッチには別の端末が接続されていてもよい。
【００２３】
ＯＦＣ１１は、経路管理部１１０を含む。なお、「ＯＦＣ１１が制御する」などの表現を用いるが、具体的には、経路管理部１１０が処理を実行することである。
【００２４】
なお、経路管理部１１０は、例えば、経路管理プログラムに従って動作するコンピュータ（例えば、ＯＦＣ１１）のＣＰＵによって実現される。経路管理プログラムは、例えば、ＯＦＣ１１の記憶装置（図示せず）に記憶される。ＣＰＵは、そのプログラムを読み込み、そのプログラムに従って、経路管理部１１０として動作する。
【００２５】
次に、本実施形態の動作を説明する。
【００２６】
以降の説明では、トラフィックの入口となるＯＦＳを、ＩｎｇｒｅｓｓＯＦＳ（入力用ＯＦＳ）と呼ぶ。また、入力用ＯＦＳのフローエントリを、Ｉｎｇｒｅｓｓエントリ（入力用エントリ）と呼ぶ。また、トラフィックの出口となるＯＦＳを、ＥｇｒｅｓｓＯＦＳ（出力用ＯＦＳ）と呼ぶ。また、出力用ＯＦＳのフローエントリを、Ｅｇｒｅｓｓエントリ（出力用エントリ）と呼ぶ。また、入力用ＯＦＳと出力用ＯＦＳとの間の経路途中のＯＦＳを、ＣｏｒｅＯＦＳ（コアＯＦＳ）と呼ぶ。また、コアＯＦＳのフローエントリを、Ｃｏｒｅエントリ（コアエントリ）と呼ぶ。
【００２７】
ここで、図１に示すＯＦＳ２１には、端末３１の他にも端末が接続されているとする。また、それらの端末の通信のためのフローエントリが、ＯＦＳ２１に登録されているとする。また、ＯＦＣ１１が、ＯＦＳ２１のフローテーブルが枯渇している状態を検出したとする。なお、フローテーブルの枯渇とは、フローテーブルの容量に空きがなくなり、フローエントリを新たに登録できない状態をいう。フローテーブルの枯渇の検出方法としては、ＯＦＳ２１のフローテーブルの容量と登録したフローエントリ数から計算する方法、または、フローテーブルの枯渇によるフローエントリの登録要求に対するエラーの応答から検出する方法などが考えられる。
【００２８】
ＯＦＣ１１は、エッジスイッチであるＯＦＳ２１のフローテーブルの枯渇に対応するため、ＯＦＳ２１のＩＦから入力するパケットに対する入力用エントリを、他のＯＦＳに委譲する。つまり、ＯＦＣ１１は、端末３１から入力するパケットに対する処理を、他のＯＦＳに委譲する。ここでは、ＯＦＣ１１は、ＯＦＳ２１のＩＦ２１４から入力するパケットに対する入力用エントリ（以下、単にＩＦ２１４の入力用エントリという）を、ＯＦＳ２２に委譲すると判断したとする。
【００２９】
なお、委譲元のインタフェースの決定方法としては、例えば、入力用エントリ数、トラフィックの統計情報などに基づいて決定する方法が考えられる。委譲先のＯＦＳの決定方法としては、例えば、フローテーブルの空き状況、委譲元ＯＦＳ（ここでは、ＯＦＳ２１）からの距離、トラフィックの統計情報などに基づいて決定する方法が考えられる。また、ＯＦＣ１１は、委譲元のインタフェースを決定する際、ＩＦ２１４の特定のＶＬＡＮなど、一部を委譲する、という判断をしてもよい。また、ＯＦＣ１１は、委譲先のＯＦＳを決定する際、２ホップ以上離れたＯＦＳを委譲先にする、という判断をしてもよい。
【００３０】
次に、ＯＦＣ１１は、ＯＦＳ２１のＩＦ２１４の入力用エントリを、ＯＦＳ２２のＩＦ２２４に委譲することによって、ＯＦＳ２１のＩＦ２１４を入り口とするフローの経路を生成し直す。例えば、端末３１から端末３２宛てのフローが存在したとき、入力用エントリの委譲後は、端末３１から端末３２宛てのトラフィックが、ＯＦＳ２２に転送される。そのため、予めＯＦＳ２２から端末３２に対する経路が生成されていない場合は、ＯＦＣ１１は、ＯＦＳ２２→ＯＦＳ２４→ＯＦＳ２３→端末３２の経路（以下、第１の経路という）、またはＯＦＳ２２→ＯＦＳ２１→ＯＦＳ２３→端末３２の経路（以下、第２の経路という）を生成する必要がある。以降、第１の経路を適用した場合の動作を説明するが、第２の経路を適用することも可能である。第２の経路を適用した場合は、コア経路がＯＦＳ２１を通ることになる。しかし、コアエントリを集約している場合は、ＯＦＳ２１に登録されるコアエントリ数は少ないため、ＯＦＳ２１のフローテーブルを圧迫することはない。
【００３１】
次に、ＯＦＣ１１は、入力用エントリ委譲元のスイッチとインタフェースに対して、当該スイッチとインタフェースを識別するためのＩＤを割り当てる。ＩＤは、パケットの中に委譲元を識別するためのタグとして含める値である。ＶＬＡＮやＭＰＬＳ（Ｍｕｌｔｉ  Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）などの、フローエントリのマッチ条件として設定可能なパケット内のフィールドを、タグとして使うことができる。ＯＦＣ１１は、ＩＤを、委譲元と委譲先のスイッチおよびインタフェースを示す情報とともに管理する。本実施形態では、ＯＦＣ１１は、ＩＤと、入力用エントリ委譲元・委譲先との対応を示すテーブルを、記憶部（図示せず）に保持する。図２は、入力用エントリ委譲元・委譲先とそれに対応するＩＤとを含むテーブルの一例を示す説明図である。ここで、ＯＦＣ１１は、図２に示すように、入力用エントリ委譲元であるＯＦＳ２１のＩＦ２１４のＩＤとして、１００１を割り当てたとする。
【００３２】
次に、ＯＦＣ１１は、ＯＦＳ２１のＩＦ２１４の入力用エントリをＯＦＳ２２に委譲する。具体的には、ＯＦＣ１１は、ＯＦＳ２１のＩＦ２１４の入力用エントリに対応するフローエントリを、ＯＦＳ２２に登録する。例えば、端末３１から端末３２に流れるフローが存在していて、ＯＦＣ１１がそのフローに対応してＯＦＳ２１に登録した入力用エントリが、図３に示す内容であったとする。図３は、端末３２宛てのパケットを出力用ＯＦＳであるＯＦＳ２３に転送するフローエントリ（入力用エントリ）の一例を示す説明図である。図３に示す入力用エントリには、転送の際に経路制御タグＸを追加するアクションが設定されている。経路制御タグＸは、ＯＦＣ１１によるフローエントリ制御のためのタグである。なお、経路制御タグは、ＯＦＣ１１によるフロー制御のために付加するタグであり、ＯＦＣ１１のフロー生成のアーキテクチャに依存するタグである。そのため、経路制御タグは、省略することも、他の形で代替することも可能である。経路制御タグも上記ＩＤと同様に、ＶＬＡＮやＭＰＬＳなどの、パケット内のフィールドを利用することができる。
【００３３】
図４は、図３に示す入力用エントリを他のＯＦＳ（ここでは、ＯＦＳ２２）に委譲したときに、当該他のＯＦＳに登録される入力用エントリの一例を示す説明図である。図４に示す入力用エントリは、ＯＦＳ２１から転送された端末３２宛てのパケットに、図３に示す入力用エントリと同様に経路制御タグＸを設定して転送するフローである。なお、図４に示す“Ｒｅｍｏｖｅ”は、転送の際にタグを外すアクションを表す。
【００３４】
図４に示す入力用エントリと図３に示す入力用エントリとの違いは、入出力インタフェースが変わっていることと、ＯＦＳ２１のＩＦ２１４から届いたことを示す、図２に示すＩＤと同じＩＤの委譲制御タグがマッチ条件にあることである。ＯＦＳ２１とＯＦＳ２２との間のリンクは、コア経路として使われるほか、ＯＦＳ２１の複数のインタフェースの入力用エントリの委譲のために使われる可能性がある。そのため、ＯＦＳ２１のＩＦ２１４から委譲されていることを識別するための委譲制御タグがマッチ条件に含まれている。
【００３５】
なお、図４に示す入力用エントリでは、転送の際に委譲制御タグを外すアクションが設定されているが、委譲制御タグと経路制御タグとを同じ方法で設定する場合は（例えば、両方ともＶＬＡＮＩＤとして設定する場合は）、ＯＦＣ１１は、当該入力用エントリに、委譲制御タグの値を経路制御タグの値に変更するアクションを設定してもよい。
【００３６】
また、入力用エントリはすべて委譲しなければならないわけではない。後述する入力委譲エントリのマッチ条件の優先度を入力用エントリのマッチ条件の優先度より低く設定することで、入力用エントリにマッチしなかったパケットだけを入力委譲エントリにマッチさせることができる。このように、ＯＦＳ２１から少数の入力用エントリだけをＯＦＳ２２に委譲させることにより、ＯＦＳ２１のフローテーブルの空き領域をより高速に用意することが可能となる。従って、ＯＦＳ２１のフローテーブルが既にあふれている状態であっても、入力委譲エントリを設定するための領域を高速に用意することが可能となる。
【００３７】
図５は、２ホップ以上離れたＯＦＳが入力用エントリの委譲先である場合に、当該ＯＦＳに登録される入力用エントリの一例を示す説明図である。ＯＦＳ２１から２ホップ以上離れたＯＦＳ２４を入力用エントリの委譲先とする場合は、ＯＦＣ１１は、ＯＦＳ２２に、図５に示すように入力インタフェースと委譲制御タグをマッチ条件として、委譲制御タグを付けたままＯＦＳ２４に転送するフローエントリを登録する。なお、図５に示すフローエントリには、委譲制御タグのＩＤの重複を避けるためにタグを書き換えるアクションを追加してもよい。
【００３８】
次に、ＯＦＣ１１は、図６に示すフローエントリをＯＦＳ２１に登録する。このフローエントリを入力委譲エントリと呼ぶ。図６は、入力委譲エントリの一例を示す説明図である。図６に示すフローエントリは、ＯＦＳ２１のＩＦ２１４の入力パケットに委譲制御タグを付けてＯＦＳ２２に転送するフローを示す。アクションで設定する委譲制御タグは、ＯＦＳ２１のＩＦ２１４から入力されたことを示す。つまり、当該委譲制御タグのＩＤは、図２に示すテーブルで管理されるＩＤであり、図４に示す入力用エントリのマッチ条件の委譲制御タグと同じＩＤである。
【００３９】
図６には、ＩＦ２１４のすべての入力パケットを転送するフローが示されているが、マッチ条件を変更することで特定のＶＬＡＮのみを委譲対象とするなど、入力用エントリを委譲する範囲を絞り込むことができる。また、入力パケットのＶＬＡＮＩＤ毎に異なるＯＦＳへ転送する入力委譲エントリを登録することで、ＶＬＡＮＩＤによって入力用エントリの委譲先ＯＦＳを切り替えることも可能である。
【００４０】
最後に、ＯＦＣ１１は、ＯＦＳ２１からＯＦＳ２２に委譲された入力用エントリをＯＦＳ２１から削除する。ただし、ＯＦＳ２１のフローテーブルが既にあふれている場合は、ＯＦＣ１１は、ＯＦＳ２１に入力委譲エントリを登録する前にＯＦＳ２１から入力用エントリを削除して、入力委譲エントリのためのフローエントリを空けておく必要がある。なお、この場合、削除した入力用エントリに対応するフローが一時的に不通になる。
【００４１】
以上により、端末３１から端末３２のフローに対する入力用エントリがＯＦＳ２１からＯＦＳ２２に委譲される。そして、ＯＦＳ２１には入力委譲エントリ、ＯＦＳ２２には入力用エントリ、ＯＦＳ２４にはコアエントリ、ＯＦＳ２３には出力用エントリが設定される。図７は、入力用エントリ委譲後の通信経路の一例を示す説明図である。図７に示すように、通信経路は、端末３１→ＯＦＳ２１→ＯＦＳ２２→ＯＦＳ２４→ＯＦＳ２３→端末３２となる。この経路は最短経路ではないが、ＯＦＳ２１のフローテーブルには空きができているので、当該フローテーブルに別のフローエントリを登録することができる。
【００４２】
次に、入力用エントリの委譲後のフローの生成方法について説明する。
【００４３】
ＯＦＣ１１が、ファーストパケット（既存のフローエントリに合致しない新規のパケット）のパケットインメッセージを契機としてフローを生成する方式を採用している場合、入力委譲エントリが委譲元ＯＦＳに登録された時点で、新しいフローのファーストパケットも入力委譲エントリにヒットして、委譲先ＯＦＳに転送される。そのため、ＯＦＣ１１が、パケットインメッセージの通知元のＯＦＳが変わることに対応する必要がある。
【００４４】
例えば、端末３１から端末３２への新規フローが発生したとする。ファーストパケットは、ＯＦＳ２１の入力委譲エントリ（図６に示すフロー）にヒットし、委譲制御タグが設定されてＯＦＳ２２のＩＦ２２４に転送される。そして、ＯＦＳ２２は、ＯＦＣ１１にパケットインメッセージを通知する。
【００４５】
ＯＦＣ１１は、受け取ったパケットインメッセージから、ＩＤが１００１の委譲制御タグを設定されたパケットがＯＦＳ２２のＩＦ２２４に届いたことを検出することができる。ＯＦＣ１１は、パケットインメッセージの通知元のスイッチおよびインタフェースと委譲制御タグのＩＤとを、図２に示すテーブルの入力用エントリ委譲先のスイッチおよびインタフェースとＩＤとに照合し、同じ組み合わせがあった場合は、ＯＦＳ２１のＩＦ２１４から委譲されたパケットであると判断する。図２に示すテーブルに同じ組み合わせがない場合は、ＯＦＣ１１は、入力用エントリの委譲はないと判断し、通常の方法でフローを生成する。
【００４６】
ＯＦＣ１１は、ＯＦＳ２１のＩＦ２１４から委譲されたパケットであると判断した場合は、フローに対応するフローエントリを生成する。このとき、ＯＦＣ１１は、入力用ＯＦＳとして、入力用エントリ委譲元のＯＦＳであるＯＦＳ２１か、入力用エントリ委譲先のＯＦＳであるＯＦＳ２２のどちらかを選択することができる。ＯＦＳ２１のフローテーブルが枯渇している状態が続いている場合は、ＯＦＣ１１は、ＯＦＳ２２に、図４に示すようにマッチ条件に委譲制御タグを含む入力用エントリを設定する。ＯＦＳ２１のフローテーブルの枯渇が解消している場合は、ＯＦＣ１１は、ＯＦＳ２１に、入力委譲エントリより高い優先度で入力用エントリを設定し、最短経路のフローを設定することができる。
【００４７】
なお、本実施形態では、図６に示すように、入力用エントリを委譲するときに委譲元を示すＩＤをタグ（委譲制御タグ）としてパケットに含めたが、委譲元を識別する必要がない場合には当該タグを省略することができる。例えば、委譲元ＯＦＳのすべてのインタフェースが同じセグメントに属している場合は、委譲元ＯＦＳのインタフェースを識別することは必須ではない。従って、この場合、委譲制御タグを省略することができる。
【００４８】
委譲制御タグを省略した場合、ＯＦＣ１１は、委譲先ＯＦＳから受け取ったパケットインメッセージから、委譲元ＯＦＳのインタフェースを識別することができなくなる。しかし、入力用エントリが委譲されている状態を解除するときに、入力用エントリ委譲元のＯＦＳに設定する入力用エントリのマッチ条件に入力インタフェースを指定する必要がない場合は、ＯＦＣ１１が、委譲元ＯＦＳのインタフェースを把握することは必須ではない。従って、その場合は、委譲制御タグを省略することができる。
【００４９】
以上に説明したように、本実施形態では、ＯＦＳに登録する入力用エントリを別のＯＦＳに委譲する。例えば、エッジスイッチのフローエントリが不足した場合に、フローエントリ数に余裕がある近くのスイッチにエッジスイッチの機能を分担させることができるので、別のスイッチのフローエントリを活用することが可能となる。従って、本実施形態によれば、ＯＦＳに収容可能なフロー数（フローエントリ数ではなく、そのＯＦＳを出入り口とするフロー数）を拡大することができる。つまり、スイッチのインタフェースに収容する端末数や、端末あたりのフロー数の拡大に対応することができる。
【００５０】
従って、例えば、特許文献１に記載されたシステムに本発明を適用すれば、端末数やフロー数が増大した場合でも、エッジスイッチのフローテーブルがあふれることを回避することができる。特許文献１に記載されたシステムでは、コアスイッチのフローエントリはスイッチの台数に集約されるので、本発明を適用することにより、スイッチに収容可能なフロー数をより拡大することができる。
【００５１】
また、本実施形態によれば、フローエントリ数に余裕がある近くのスイッチのフローエントリを活用することができるので、ネットワーク全体におけるスイッチのフローテーブルの使用率を高めることが可能となる。
【００５２】
実施形態２．
以下、本発明の第２の実施形態を図面を参照して説明する。
【００５３】
第１の実施形態では、入力用エントリを委譲する通信システムを例にしたが、本実施形態では、出力用エントリを委譲する通信システムを例にする。
【００５４】
なお、通信システムの第２の実施形態の構成は、図１に示す第１の実施形態の構成と同様であるため、説明を省略する。
【００５５】
ここで、図１に示すＯＦＳ２３には端末３２の他にも端末が接続されているとする。また、それらの端末の通信のためのフローエントリがＯＦＳ２３に登録されているとする。また、ＯＦＣ１１が、ＯＦＳ２３のフローテーブルが枯渇している状態を検出したとする。
【００５６】
ＯＦＣ１１は、エッジスイッチであるＯＦＳ２３のフローテーブルの枯渇に対応するため、ＯＦＳ２３のＩＦ２３４を出口とする出力用エントリを、他のＯＦＳ（ここでは、ＯＦＳ２４）に委譲させる。つまり、ＯＦＣ１１は、端末３２に出力するパケットに対する処理を、他のＯＦＳに委譲する。
【００５７】
この場合、ＯＦＣ１１は、図８に示すようなテーブルを作成する。図８は、出力用エントリ委譲元・委譲先とそれに対応するＩＤとを含むテーブルの一例を示す説明図である。ＯＦＣ１１は、ＯＦＳ２４に対して、図８に示すタグを付けてＯＦＳ２３に転送する出力用エントリを登録する。また、ＯＦＣ１１は、ＯＦＳ２３に対して、図８に示すＩＤと同じタグの付いたパケットが届いたら、当該タグを外してＩＦ２３４に転送する出力委譲エントリを登録する。
【００５８】
例えば、出力用エントリの委譲前にＯＦＳ２３に設定されていた出力用エントリが、図９に示す内容であったとする。図９は、端末３２宛てのパケットを出力用ＯＦＳのＩＦ（ここでは、ＩＦ２３４）に転送する出力用エントリの一例を示す説明図である。図９に示す出力用エントリには、転送時にＯＦＣ１１によるフロー制御のために追加された経路制御タグを外すアクションが設定されている。
【００５９】
図１０は、図９に示す出力用エントリを他のＯＦＳ（ここでは、ＯＦＳ２４）に委譲したときに、当該他のＯＦＳに登録される出力用エントリの一例を示す説明図である。図１０に示す出力用エントリは、端末３２宛てのパケットから経路制御タグを外し、代わりに図８に示すＩＤと同じＩＤの委譲制御タグを設定して、ＯＦＳ２３に転送するフローである。また、ＯＦＳ２３に設定する出力委譲エントリは、図１１に示すような内容になる。図１１は、出力委譲エントリの一例を示す説明図である。図１１に示す出力委譲エントリは、図８に示すＩＤの委譲制御タグが付いたパケットが、ＯＦＳ２４から届いたときに、タグを外してＩＦ２３４に転送するフローである。
【００６０】
出力委譲エントリは、ＩＦ２３４の出力用エントリが複数ある場合でも、当該出力用エントリの数に関わらず、１エントリで対応させることができる。そのため、ＯＦＣ１１は、出力用エントリを委譲した後に、ＯＦＳ２３からＩＦ２３４の出力用エントリを全て削除して、ＯＦＳ２３のフローテーブルを空けることができる。
【００６１】
通常、ＯＦＣ１１が出力用エントリを委譲する前の状態では、端末３２宛てのパケットがＯＦＳ２３に向かうように経路上のスイッチにフローエントリが作成されているはずである。そのため、ＯＦＣ１１が出力用エントリをＯＦＳ２３からＯＦＳ２４に委譲するときは、ＯＦＣ１１は、端末３２宛てのパケットがＯＦＳ２４に向かうように他のスイッチのフローも変更する必要がある。そのため、出力用エントリを委譲するときのＯＦＣ１１の動作は、入力用エントリを委譲するときよりも複雑になる。しかし、片方向通信が使われる環境で特定のスイッチに出力用エントリが集中する環境では、出力用エントリを委譲することで、フローテーブルの枯渇を回避することができる。
【００６２】
入力用エントリとコアエントリによる転送経路がＯＦＳ２１→ＯＦＳ２２→ＯＦＳ２４の場合は、最終的に端末３１から端末３２へのフローの経路は図１２に示す通りとなる。図１２は、出力用エントリ委譲後の通信経路の一例を示す説明図である。
【００６３】
ＯＦＣ１１は、出力委譲エントリの優先度を出力用エントリの優先度より低くなるように設定することで、一部の出力用エントリを他のＯＦＳに委譲せずにＯＦＳ２３に残すようにすることもできる。なお、この場合、ＯＦＣ１１は、出力用エントリが設定されているＯＦＳに合わせて他のスイッチの入力用エントリとコアエントリを制御し、適切な出力用ＯＦＳにパケットが転送されるようにする必要がある。
【００６４】
出力用エントリの委譲を実施した場合でも、新規フローのファーストパケットは通常通りに入力用ＯＦＳからパケットインメッセージが通知される。そのため、ＯＦＣ１１は、入力用エントリをパケットインメッセージの通知元である入力用ＯＦＳに設定し、出力用エントリが設定されている出力用ＯＦＳにパケットが届くようにフローを制御する。
【００６５】
以上に説明したように、本実施形態では、ＯＦＳに登録する出力用エントリを別のＯＦＳに委譲する。そのため、第１の実施形態と同様に、ＯＦＳに収容可能なフロー数を拡大することができる。
【００６６】
以上、各実施形態においてオープンフローに適用される通信システムを例にしたが、本発明はオープンフロー以外にも適用可能である。例えば、各実施形態におけるＯＦＣは、オープンフローにおけるコントローラ以外の制御装置であってもよい。また例えば、各実施形態におけるＯＦＳは、オープンフローにおけるスイッチ以外のパケット転送装置であってもよい。つまり、エッジスイッチ以外のスイッチも制御対象とするホップバイホップ型のネットワークであれば、本発明を適用することができる。また、本発明は、データセンタのような端末の密度の高い環境に好適に適用可能である。
【００６７】
なお、上記の各実施形態は組み合わせて用いることもできる。
【００６８】
次に、本発明の概要を説明する。図１３は、本発明によるオープンフロー制御装置の最小構成を示すブロック図である。図１３に示すように、本発明によるオープンフロー制御装置は、フローエントリに基づいてパケットを転送するスイッチ（例えば、図１に示すＯＦＳ２１〜２４に相当）を制御するオープンフロー制御装置（例えば、図１に示すＯＦＣ１１に相当）であって、エッジスイッチが行う、端末（例えば、図１に示す端末３１，３２に相当）から入力するパケットに対する処理を、当該エッジスイッチとは別のスイッチに委譲させる委譲制御を行う委譲制御部１０（例えば、図１に示すＯＦＣ１１における経路管理部１１０に相当）を含む。
【００６９】
そのような構成によれば、例えば、オープンフローネットワークにおいて、ＯＦＳに登録する入力用エントリを別のＯＦＳに委譲することができる。それにより、例えば、エッジスイッチのフローエントリが不足した場合に、フローエントリ数に余裕がある近くのスイッチにエッジスイッチの機能を分担させることができる。よって、別のスイッチのフローエントリを活用することができ、スイッチに収容可能なフロー数を拡大することができる。
【００７０】
また、委譲制御部１０は、エッジスイッチに新たなフローエントリが登録できなくなった場合に、委譲制御を行ってもよい。そのような構成によれば、エッジスイッチのフローテーブルの枯渇を回避することができ、新規フローの生成を確実に行うことができる。また、フローテーブルが枯渇している場合に入力用エントリの委譲を実行するようにしているので、フローテーブルの枯渇が解消している場合には、入力用エントリを委譲せずに、最短経路のフローを設定することができる。
【００７１】
また、委譲制御部１０は、委譲元のスイッチに設定された、端末から入力するパケットを処理するためのフローエントリを、委譲先のスイッチに登録し直し、委譲元のスイッチに、端末から入力したパケットを委譲先のスイッチに転送するための入力委譲エントリを登録してもよい。そのような構成によれば、委譲元のスイッチが端末から入力したパケットが、当該委譲元のスイッチを介して委譲先のスイッチに転送される。そして、委譲先のスイッチにおいて当該パケットの処理が行われる。つまり、当該パケットの処理を確実に委譲先のスイッチに委譲させることができる。
【００７２】
また、委譲制御部１０は、委譲先のスイッチに、端末から入力する特定のパケットが転送されるように、入力委譲エントリのマッチ条件を設定してもよい。そのような構成によれば、特定のＶＬＡＮのみを委譲対象とするなど、フローエントリを委譲する範囲を絞り込むことができる。
【００７３】
また、委譲制御部１０は、端末から入力するパケットの内容に応じて異なるスイッチに当該パケットを転送する入力委譲エントリを、委譲元のスイッチに登録してもよい。そのような構成によれば、例えば、入力パケットのＶＬＡＮＩＤ毎に異なるスイッチへ転送する入力委譲エントリを、委譲元のスイッチに登録することができる。従って、ネットワーク環境の状況などに応じて、より適切なスイッチを委譲先とすることができる。
【００７４】
また、委譲制御部１０は、エッジスイッチが行う、端末に出力するパケットに対する処理を、当該エッジスイッチとは別のスイッチに委譲させてもよい。そのような構成によれば、例えば、オープンフローネットワークにおいて、ＯＦＳに登録する出力用エントリを別のＯＦＳに委譲することができる。従って、ＯＦＳに収容可能なフロー数をより拡大することができる。
【符号の説明】
【００７５】
１０  委譲制御部
１１  ＯＦＣ
２１〜２４  ＯＦＳ
３１〜３２  端末
１１０  経路管理部
２１２〜２１４、２２３〜２２４、２３１〜２３２、２３４、２４１、２４４  ＩＦ
【図１】
2015159500.tif 000003
【図２】
2015159500.tif 000004
【図３】
2015159500.tif 000005
【図４】
2015159500.tif 000006
【図５】
2015159500.tif 000007
【図６】
2015159500.tif 000008
【図７】
2015159500.tif 000009
【図８】
2015159500.tif 000010
【図９】
2015159500.tif 000011
【図１０】
2015159500.tif 000012
【図１１】
2015159500.tif 000013
【図１２】
2015159500.tif 000014
【図１３】
2015159500.tif 000015