(57)【特許請求の範囲】
【請求項１】
予め定めた経路上の中継装置に、第１の階層のアドレスに基づいて、所定のマシン間のパケットを転送する第１の制御情報を設定する第１の制御情報設定部と、
前記中継装置を介して前記第１の制御情報を設定済みのマシンの一方から、前記第１の階層よりも上位の第２の階層のアドレスを宛先アドレスとしたパケットを受信した場合、前記中継装置に対し、前記第２の階層のアドレスを宛先アドレスとしたパケットの第１の階層の宛先アドレスを前記第１の制御情報に定められた第１の階層のアドレスに変換してから転送させる第２の制御情報を設定する第２の制御情報設定部と、
を備えた制御装置。
【請求項２】
前記第１の階層のアドレスは、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスであり、前記第２の階層のアドレスはＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスである請求項１の制御装置。
【請求項３】
前記第１の制御情報設定部は、前記中継装置を介して一のマシンからＡＲＰ（Ａｄｄｒｅｓｓ Ｒｅｓｏｌｕｔｉｏｎ Ｐｒｏｔｏｃｏｌ）パケットを受信すると、前記中継装置を介してＡＲＰパケットを他のマシンに転送し、
前記配下の中継装置を介して、前記ＡＲＰパケットに対するＡＲＰ応答パケットを受信すると、前記ＡＲＰパケットとＡＲＰ応答パケットとの送信元のマシン間の経路を計算し、該経路上の中継装置に前記経路に沿ってパケットを転送させる第１の制御情報を設定する請求項２の制御装置。
【請求項４】
前記第２の制御情報は、前記第１の制御情報の処理内容フィールドに、宛先ＭＡＣアドレスに変換させる処理を追加することによって生成される請求項１から３いずれか一の制御装置。
【請求項５】
予め定めた経路上の中継装置に、第１の階層のアドレスに基づいて、所定のマシン間のパケットを転送する第１の制御情報を設定する第１の制御情報設定部と、前記中継装置を介して前記第１の制御情報を設定済みのマシンの一方から、前記第１の階層よりも上位の第２の階層のアドレスを宛先アドレスとしたパケットを受信した場合、前記中継装置に対し、前記第２の階層のアドレスを宛先アドレスとしたパケットの第１の階層の宛先アドレスを前記第１の制御情報に定められた第１の階層のアドレスに変換してから転送させる第２の制御情報を設定する第２の制御情報設定部と、を備えた制御装置と、
前記制御装置より、前記第１、第２の制御情報が設定される中継装置と、
を含む通信システム。
【請求項６】
予め定めた経路上の中継装置に、第１の階層のアドレスに基づいて、所定のマシン間のパケットを転送する第１の制御情報を設定するステップと、
前記中継装置を介して前記第１の制御情報を設定済みのマシンの一方から、前記第１の階層よりも上位の第２の階層のアドレスを宛先アドレスとしたパケットを受信した場合、前記中継装置に対し、前記第２の階層のアドレスを宛先アドレスとしたパケットの第１の階層の宛先アドレスを前記第１の制御情報に定められた第１の階層のアドレスに変換してから転送させる第２の制御情報を設定するステップと、
を含む通信方法。
【請求項７】
制御装置を構成するコンピュータに、
予め定めた経路上の中継装置に、第１の階層のアドレスに基づいて、所定のマシン間のパケットを転送する第１の制御情報を設定する処理と、
前記中継装置を介して前記第１の制御情報を設定済みのマシンの一方から、前記第１の階層よりも上位の第２の階層のアドレスを宛先アドレスとしたパケットを受信した場合、前記中継装置に対し、前記第２の階層のアドレスを宛先アドレスとしたパケットの第１の階層の宛先アドレスを前記第１の制御情報に定められた第１の階層のアドレスに変換してから転送させる第２の制御情報を設定する処理と、
を実行させるプログラム。
【請求項８】
制御対象の中継装置のうち、制御対象外のネットワークを介して接続する中継装置間のリンクの状態を把握する特定リンク管理部と、
前記制御対象の中継装置から収集した情報に基づいてトポロジ情報を構築するとともに、前記制御対象外のネットワークを介して接続する中継装置間のリンクの状態に基づいて、前記トポロジ情報を更新するトポロジ管理部と、
前記制御対象外のネットワークを介して接続する中継装置間のリンクを含んだトポロジ情報に基づいて、前記中継装置に接続するマシン間のパケット転送経路を計算し、該転送経路上の中継装置に、前記転送経路に従ったパケット転送を行わせる制御情報を生成する経路管理部と、
前記中継装置に前記制御情報を設定する中継装置通信部と、を備え、
前記制御対象外のネットワークを経由する転送経路上の中継装置のうち、前記制御対象外のネットワークの手前にある中継装置に、パケットが制御対象外のネットワークを通過できるようにヘッダ書換えを行わせ、
前記制御対象外のネットワークを経由する転送経路上の中継装置のうち、前記制御対象外のネットワークを越えた位置にある中継装置に、前記書き換えたヘッダを復元する処理を行わせること、
を特徴とする制御装置。
【請求項９】
制御対象の中継装置のうち、制御対象外のネットワークを介して接続する中継装置間のリンクの状態を把握する特定リンク管理部と、
前記制御対象の中継装置から収集した情報に基づいてトポロジ情報を構築するとともに、前記制御対象外のネットワークを介して接続する中継装置間のリンクの状態に基づいて、前記トポロジ情報を更新するトポロジ管理部と、
前記制御対象外のネットワークを介して接続する中継装置間のリンクを含んだトポロジ情報に基づいて、前記中継装置に接続するマシン間のパケット転送経路を計算し、該転送経路上の中継装置に、前記転送経路に従ったパケット転送を行わせる制御情報を生成する経路管理部と、
前記中継装置に前記制御情報を設定する中継装置通信部と、を備え、
前記制御対象外のネットワークを経由する転送経路上の中継装置のうち、前記制御対象外のネットワークの手前にある中継装置に、パケットが制御対象外のネットワークを通過できるようにヘッダ書換えを行わせ、
前記制御対象外のネットワークを経由する転送経路上の中継装置のうち、前記制御対象外のネットワークを越えた位置にある中継装置に、前記書き換えたヘッダを復元する処理を行わせる制御装置と、
前記制御対象外のネットワークを挟んで配置され、前記制御装置から設定された制御情報に従って動作する複数の中継装置と、を含む通信システム。
【請求項１０】
制御対象の中継装置のうち、制御対象外のネットワークを介して接続する中継装置間のリンクの状態を把握する特定リンク管理部と、
前記制御対象の中継装置から収集した情報に基づいてトポロジ情報を構築するとともに、前記制御対象外のネットワークを介して接続する中継装置間のリンクの状態に基づいて、前記トポロジ情報を更新するトポロジ管理部と、
前記制御対象外のネットワークを介して接続する中継装置間のリンクを含んだトポロジ情報に基づいて、前記中継装置に接続するマシン間のパケット転送経路を計算し、該転送経路上の中継装置に、前記転送経路に従ったパケット転送を行わせる制御情報を生成する経路管理部と、
前記中継装置に前記制御情報を設定する中継装置通信部と、を備える制御装置が、
前記制御対象外のネットワークを経由する転送経路上の中継装置のうち、前記制御対象外のネットワークの手前にある中継装置に、パケットが制御対象外のネットワークを通過できるようにヘッダ書換えを行わせるステップと、
前記制御対象外のネットワークを経由する転送経路上の中継装置のうち、前記制御対象外のネットワークを越えた位置にある中継装置に、前記書き換えたヘッダを復元する処理を行わせるステップと、を含む通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１２−２５８４０６号（２０１２年１１月２７日出願）に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、制御装置、通信システム、通信方法及びプログラムに関し、特に、スイッチを集中制御することにより通信を実現する制御装置、通信システム、通信方法及びプログラムに関する。
【背景技術】
【０００２】
近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている（非特許文献１、２参照）。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。非特許文献２に仕様化されているオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）と、フロー統計情報（Ｃｏｕｎｔｅｒｓ）と、処理内容を定義したインストラクション（Ｉｎｓｔｒｕｃｔｉｏｎｓ）と、の組が定義される（非特許文献２の「４．１  Ｆｌｏｗ  Ｔａｂｌｅ」の項参照）。【０００３】
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチ条件（非特許文献２の「４．３  Ｍａｔｃｈ  Ｆｉｅｌｄｓ」参照）を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報（カウンタ）を更新するとともに、受信パケットに対して、当該エントリのインストラクションフィールドに記述された処理内容（指定ポートからのパケット送信、フラッディング、廃棄等）を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対してエントリ設定の要求、即ち、受信パケットを処理するための制御情報の送信要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を送信する。オープンフロースイッチは、処理内容が定められたフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを制御情報として用いてパケット転送を行う。【０００４】
また、特許文献１には、パケット通信経路の区間毎に、上記フローエントリのタイムアウト値を異ならせることにより、オープンフローコントローラに相当する経路制御装置の負荷を低減する方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１０１２４５号公報
【非特許文献】
【０００６】
【非特許文献１】Ｎｉｃｋ  ＭｃＫｅｏｗｎほか７名、“ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”、［ｏｎｌｉｎｅ］、［平成２４（２０１２）年９月２５日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-wp-latest.pdf〉
【非特許文献２】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  Ｖｅｒｓｉｏｎ  １．１．０  Ｉｍｐｌｅｍｅｎｔｅｄ  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０２）、［ｏｎｌｉｎｅ］、［平成２４（２０１２）年９月２５日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以下の分析は、本発明によって与えられたものである。上記した非特許文献１、２のオープンフロースイッチに、宛先ＭＡＣアドレスをマッチ条件とし、その宛先ＭＡＣアドレスに対応するポートからの出力を指示するフローエントリを設定することで、オープンフロースイッチをレイヤ２スイッチ（以下、レイヤ２、レイヤ３をそれぞれ「Ｌ２」、「Ｌ３」と記す。）と同様に動作させることができる。この方式によれば、マッチ条件に送信元のアドレスを指定しないため、個々のスイッチに設定するフローエントリ数の削減や、オープンフローコントローラへの問い合わせ（Ｐａｃｋｅｔ−Ｉｎ）を大きく削減できるという利点がある。【０００８】
しかしながら、上記方式では、Ｌ２パケットの転送しかサポートできないという問題点がある。例えば、あるマシンが、通信相手が異なるサブネットに属すると認識する場合、デフォルトゲートウェイ（例えば、オープンフローコントローラでもよい。）に対して、デフォルトゲートウェイのＭＡＣアドレスを宛先ＭＡＣアドレスとしたパケット（Ｌ３パケット）を送信する。この場合、上記したＬ２パケットに特化した転送方式では正しい宛先に転送することができないという問題が生じる。【０００９】
もちろん、マッチ条件として、宛先ＩＰアドレス等を指定したフローエントリを本来の宛先の経路上のスイッチに設定すれば、前記マシンから送信されたＬ３パケットを正しい宛先に転送することができるが、上記したＬ２パケットに特化した転送方式の利点が喪われてしまう可能性がある。【００１０】
本発明は、上記したオープンフローに代表される集中制御型の通信システムにおいて、個々の中継装置に設定する制御情報のエントリ数の削減や、制御装置への問い合わせの削減に貢献できる制御装置、通信システム、通信方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
第１の視点によれば、予め定めた経路上の中継装置に、第１の階層のアドレスに基づいて、所定のマシン間のパケットを転送する第１の制御情報を設定する第１の制御情報設定部と、前記中継装置を介して前記第１の制御情報を設定済みのマシンの一方から、前記第１の階層よりも上位の第２の階層のアドレスを宛先アドレスとしたパケットを受信した場合、前記中継装置に対し、第２の階層のアドレスを宛先アドレスとしたパケットの第１の階層の宛先アドレスを前記第１の制御情報に定められた第１の階層のアドレスに変換してから転送させる第２の制御情報を設定する第２の制御情報設定部と、を備えた制御装置が提供される。【００１２】
第２の視点によれば、予め定めた経路上の中継装置に、第１の階層のアドレスに基づいて、所定のマシン間のパケットを転送する第１の制御情報を設定する第１の制御情報設定部と、前記中継装置を介して前記第１の制御情報を設定済みのマシンの一方から、前記第１の階層よりも上位の第２の階層のアドレスを宛先アドレスとしたパケットを受信した場合、前記中継装置に対し、前記第２の階層のアドレスを宛先アドレスとしたパケットの第１の階層の宛先アドレスを前記第１の制御情報に定められた第１の階層のアドレスに変換してから転送させる第２の制御情報を設定する第２の制御情報設定部と、を備えた制御装置と、前記制御装置より、前記第１、第２の制御情報が設定される中継装置と、を含む通信システムが提供される。【００１３】
第３の視点によれば、予め定めた経路上の中継装置に、第１の階層のアドレスに基づいて、所定のマシン間のパケットを転送する第１の制御情報を設定するステップと、前記中継装置を介して前記第１の制御情報を設定済みのマシンの一方から、前記第１の階層よりも上位の第２の階層のアドレスを宛先アドレスとしたパケットを受信した場合、前記中継装置に対し、前記第２の階層のアドレスを宛先アドレスとしたパケットの第１の階層の宛先アドレスを前記第１の制御情報に定められた第１の階層のアドレスに変換してから転送させる第２の制御情報を設定するステップと、を含む通信方法が提供される。本方法は、制御情報を設定することにより中継装置を制御する制御装置という、特定の機械に結びつけられている。【００１４】
第４の視点によれば、制御装置を構成するコンピュータに、予め定めた経路上の中継装置に、第１の階層のアドレスに基づいて、所定のマシン間のパケットを転送する第１の制御情報を設定する処理と、前記中継装置を介して前記第１の制御情報を設定済みのマシンの一方から、前記第１の階層よりも上位の第２の階層のアドレスを宛先アドレスとしたパケットを受信した場合、前記中継装置に対し、前記第２の階層のアドレスを宛先アドレスとしたパケットの第１の階層の宛先アドレスを前記第１の制御情報に定められた第１の階層のアドレスに変換してから転送させる第２の制御情報を設定する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な（非トランジエントな）記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１５】
本発明によれば、集中制御型の通信システムにおいて、個々の中継装置に設定する制御情報のエントリ数の削減や、制御装置への問い合わせの削減に貢献することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態の構成を示す図である。
【図２】本発明の一実施形態の動作を説明するための図である。
【図３】本発明の一実施形態の動作を説明するための図である。
【図４】本発明の第１の実施形態の通信システムの構成を示す図である。
【図５】本発明の第１の実施形態の通信システムの制御装置の構成例を示す図である。
【図６】本発明の第１の実施形態の通信システムの制御装置のトポロジテーブル（トポロジ収集前）の構成例を示す図である。
【図７】本発明の第１の実施形態の通信システムの制御装置のレガシー管理テーブルの構成例を示す図である。
【図８】本発明の第１の実施形態の通信システムの制御装置のレガシーリンク管理テーブルの構成例を示す図である。
【図９】本発明の第１の実施形態の通信システムの制御装置のトポロジ構築動作を説明するための流れ図である。
【図１０】本発明の第１の実施形態の通信システムにおいて、レガシーネットワークに関する情報が設定された際の制御装置の動作を表した流れ図である。
【図１１】図１０の続図である。
【図１２】本発明の第１の実施形態の通信システムの制御装置が生成する制御情報（フローエントリ）の例を示す図である。
【図１３】本発明の第１の実施形態の通信システムの制御装置のトポロジ更新動作を説明するための流れ図である。
【図１４】本発明の第１の実施形態の通信システムの制御装置のトポロジテーブル（トポロジ更新後）の構成例を示す図である。
【図１５】本発明の第１の実施形態の通信システムの制御装置のトポロジ更新動作を説明するための別の流れ図である。
【図１６】本発明の第１の実施形態の通信システムにおけるユーザパケットの転送動作を説明するための流れ図である。
【図１７】本発明の第１の実施形態の通信システムの制御装置により中継装置１１０３に設定される制御情報（フローエントリ）の例である。
【図１８】本発明の第１の実施形態の通信システムの制御装置により中継装置１１０４に設定される制御情報（フローエントリ）の例である。
【図１９】本発明の第１の実施形態の通信システムの制御装置により中継装置１１０３及び中継装置１１０４に設定された制御情報（フローエントリ）により実現される転送経路を示す図である。
【図２０】本発明の第２の実施形態の通信システムの構成を示す図である。
【図２１】本発明の第２の実施形態の通信システムの構成を示す別の図である。
【図２２】本発明の第２の実施形態の通信システムの構成を示す別の図である。
【図２３】本発明の第３の実施形態の通信システムの構成を示す図である。
【図２４】本発明の第４の実施形態の通信システムの構成を示す図である。
【図２５】本発明の第５の実施形態の通信システムの構成を示す図である。
【図２６】本発明の第６の実施形態の通信システムの構成を示す図である。
【図２７】本発明の第６の実施形態の制御装置の動作を表した流れ図である。
【図２８】本発明の第６の実施形態の制御装置により制御情報が設定される過程を示す図である。
【図２９】本発明の第６の実施形態の制御装置により制御情報が設定される過程を示す図である。
【図３０】本発明の第６の実施形態の制御装置によりスイッチに設定される制御情報（フローエントリ）の例である。
【図３１】本発明の第６の実施形態の制御装置によりスイッチに設定される制御情報（フローエントリ）の例である。
【図３２】本発明の第６の実施形態のＶＭ１−ＶＭ５間で授受されるＬ２パケット及びＬ３パケットの送信元アドレスと宛先アドレスとを示す図である。
【図３３】本発明の第６の実施形態の制御装置の動作を表した流れ図である。
【図３４】本発明の第６の実施形態の制御装置によりスイッチに設定される制御情報（フローエントリ）の例である。
【図３５】本発明の第６の実施形態の制御装置によりスイッチに設定される制御情報（フローエントリ）の例である。
【発明を実施するための形態】
【００１７】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００１８】
本発明は、その一実施形態において、図１に示すように、第１の制御情報設定部１１と、第２の制御情報設定部１２とを備えて、複数の中継装置Ａ〜Ｃを制御する制御装置１０Ａにて実現できる。
【００１９】
第１の制御情報設定部１１は、図２に示すように、予め定めた経路上の中継装置（中継装置Ａ〜Ｃ）に、第１の階層のアドレス（図２の例では、Ｌ２アドレス）に基づいて、所定のマシン間のパケットを転送する第１の制御情報を設定する。図２の例では、第１の制御情報設定部１１は、中継装置Ａ〜Ｃに、Ｌ２アドレスが００：００：００：００：００：ＡＡであるマシンＡから、Ｌ２アドレスが００：００：００：００：００：ＢＢであるマシンＢへのパケットの転送を指示する制御情報を設定している。
【００２０】
一方、第２の制御情報設定部１２は、図３に示すように、中継装置Ａを介して前記第１の制御情報を設定済みのマシンＡ、Ｂの一方から（図３のマシンＡ）、前記第１の階層よりも上位の第２の階層のアドレスを宛先アドレスとしたパケット（Ｌ３パケット）を受信した場合、中継装置Ａに対し、前記第２の階層のアドレスを宛先アドレスとしたパケットの第１の階層の宛先アドレスを前記第１の制御情報に定められた第１の階層のアドレスに変換してから転送させる第２の制御情報を設定する。前記第２の階層のアドレスを宛先アドレスとしたパケット（Ｌ３パケット）の第１の階層の宛先アドレスには、例えば、ルータとしても動作する図３の制御装置１０ＡのＬ２アドレス等が設定されているので、中継装置Ａは、図３の制御装置１０ＡのＬ２アドレスをマシンＢのＬ２アドレスに書き換えてから転送する動作を行うことになる。
【００２１】
以上のように、第１の階層のアドレスを用いて転送を行う方式をベースとしつつ、ルータ越えの必要のある第２の階層のアドレスが指定されたパケットを正しい宛先に転送することが可能になる。なお、図３の例では、中継装置Ｃにて、第１の階層のアドレスを書き換えずに、そのままマシンＢに転送しているが、中継装置Ｃにて、第１の階層のアドレスを元の内容に復元してもよい。
【００２２】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図４は、本発明の第１の実施形態の通信システムの構成を示す図である。図４を参照すると、中継装置１１０６、１１０７によって構成されるレガシーネットワーク１２００と、レガシーネットワーク１２００の端点に配置された中継装置１１０３、１１０４と、中継装置１１０３、１１０４に制御情報（フローエントリ）を設定することにより中継装置１１０３、１１０４を制御する制御装置１００と、を備えた構成が示されている。また、中継装置１１０３、１１０４にはそれぞれ、端末装置１１０２、１１０５が接続されている。また、制御装置１００には、制御装置１００が保持するレガシー情報等を管理するための保守端末１１０１が接続されている。
【００２３】
図４において、図中の実線は、ユーザデータ等を転送する転送チャネルを示し、図中の破線は制御メッセージを授受する制御チャネルを示している。また、中継装置１１０３、１１０４、１１０６、１１０７を示すボックス内に付された記号Ｐ１〜Ｐ４は、各中継装置のポート番号を表している。
【００２４】
中継装置１１０３、１１０４は、制御装置１００から設定された制御情報に従って動作する、非特許文献１、２のオープンフロースイッチ等の機器で構成することができる。
【００２５】
中継装置１１０６、１１０７は、制御装置１００の制御を受けないＬ２スイッチ等の機器であり、例えば、ポートと宛先Ｌ２アドレスとを対応付けたアドレステーブルを保持し、受信パケットのＬ２アドレスに対応するポートからパケットを送信する。また、中継装置１１０６、１１０７は、パケット受信時に、前記アドレステーブルへの宛先の学習動作を行う。レガシーネットワーク１２００は、これらのＬ２スイッチ等の制御対象外の中継装置を含んで構成され、制御装置１００からの制御を受けないネットワークである。
【００２６】
端末装置１１０２、１１０５は、ユーザの利用する各種の端末装置である。なお、本実施形態では、端末装置１１０２、１１０５間の通信を実現する例を挙げて説明するが、端末装置以外の機器が通信相手であってもよい。例えば、端末装置が各種のサーバと通信する場合でもよいし、あるいは、マシン同士、いわゆるＭ２Ｍ通信であってもよい。
【００２７】
図５は、上記制御装置１００の構成例を示す図である。図５を参照すると、中継装置通信部１０１と、トポロジ管理部１０２と、トポロジテーブル１０３と、保守端末通信部１０４と、レガシー管理部１０５と、レガシー管理テーブル１０６と、レガシーリンク管理部１０７と、レガシーリンク管理テーブル１０８と、経路管理部１０９と、を備えた構成が示されている。
【００２８】
中継装置通信部１０１は、中継装置１１０３、１１０４に対する制御情報（フローエントリ）の設定や、中継装置１１０３、１１０４からの制御情報（フローエントリ）の設定要求等のメッセージを授受する。また、中継装置通信部１０１は、中継装置１１０３、１１０４に対してトポロジ確認用パケットの送信を指示し、中継装置１１０３、１１０４からトポロジ確認用パケットに対する応答パケットを受信する。中継装置１１０３、１１０４とのメッセージの授受には、非特許文献２のオープンフロープロトコルを用いることもできる。
【００２９】
トポロジ管理部１０２は、中継装置１１０３、１１０４によるトポロジ確認用パケットの送信結果に基づいて、図６に示すトポロジテーブル１０３を管理する。トポロジテーブル１０３の更新処理については、後に詳細に説明する。
【００３０】
保守端末通信部１０４は、保守端末１１０１に対し、レガシー接続ポート情報及びレガシー識別情報の入力画面を送信する。ユーザから、レガシー接続ポート情報及びレガシー識別情報の入力を受け付けると、保守端末通信部１０４は、レガシー管理部１０５に対して、これらを転送する。
【００３１】
レガシー管理部１０５は、制御装置１００の制御対象となっている中継装置１１０３、１１０４に接続されているレガシーネットワークの情報を管理する。
【００３２】
図７は、レガシー管理テーブル１０６の構成例を示す図である。図７のレガシー管理テーブル１０６には、レガシーネットワークの識別情報（ここでは、レガシーネットワークの符号と同じく「１２００」とする。）と、識別用ＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）  ＩＤと、制御装置１００の制御対象となっている中継装置１１０３、１１０４の接続ポートとを対応付けたエントリを格納するエントリが格納されている。また、図７の例では、識別用ＶＬＡＮ（ＩＤ）として、「３０００」という値が設定され、接続ポートとして図４に示すとおり、中継装置１１０３のポートＰ２と、中継装置１１０４のポートＰ２とが設定されている。即ち、図７のエントリは、中継装置１１０３のポートＰ２と、中継装置１１０４のポートＰ２とにＶＬＡＮ  ＩＤ「３０００」が割り当てられた識別情報１２００のレガシーネットワークが接続されていることを示している。
【００３３】
レガシーリンク管理部１０７は、上記のようにして、レガシー管理テーブル１０６に新規エントリの追加、既存エントリの変更等が行われると、レガシー管理テーブル１０６の該当エントリから接続ポート情報を読み出して、レガシーネットワークとの接続リンク（以下、「レガシーリンク」という。）の情報を管理する。レガシーリンク管理部１０７は上記した特定リンク管理部に相当する。また、レガシーリンクは、「レガシーネットワークを介して接続する中継装置間の仮想的なリンク」とも言い換えることができる。
【００３４】
図８は、レガシーリンク管理テーブル１０８の構成例を示す図である。図８のレガシーリンク管理テーブル１０８には、レガシー管理テーブル１０６から読み出した接続ポート毎に、そのポートのＭＡＣアドレス（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ａｄｄｒｅｓｓ）、接続状態等を対応付けたエントリを格納するエントリが格納されている。なお、中継装置１１０３、１１０４のＭＡＣアドレスは、中継装置１１０３、１１０４に問い合わせることにより入手可能であり、接続状態は、後記するレガシーリンク確立用パケットの送信結果に基づき検出することができる。
【００３５】
経路管理部１０９は、トポロジテーブル１０３及びレガシー管理テーブル１０６を参照して、自装置の配下の中継装置間の経路を計算して管理する。また、経路管理部１０９は、前記計算した経路上の中継装置に、その経路に沿ったパケット転送を行わせるための制御情報を生成し、中継装置通信部１０１に、これらの制御情報を設定させる。
【００３６】
なお、上記した制御装置１００は、非特許文献１、２のオープンフローコントローラをベースにレガシーネットワークの管理機能、レガシーネットワークを考慮したパケット変換内容の決定機能等を追加した構成にて実現できる。また、図５に示した制御装置１００の各部（処理手段）は、制御装置１００を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【００３７】
続いて、本実施形態の動作について図面を参照して詳細に説明する。
【００３８】
（トポロジ構築）
はじめに、制御装置１００のトポロジ構築動作について説明する。図９は、制御装置１００のトポロジ収集動作を説明するための流れ図である。
【００３９】
図９を参照すると、まず、制御装置１００は、中継装置１１０３、１１０４に対し、それぞれのポートからトポロジ確認用のパケットを送信するよう指示する（ＳＴＥＰ１）。トポロジ確認用のパケットとしては、ＬＬＤＰ（Ｌｉｎｋ  Ｌａｙｅｒ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）パケットや、ＯＳＰＦ（Ｏｐｅｎ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ）等のルーティングプロトコルのパケットを用いることができる。また、制御装置１００から中継装置１１０３、１１０４へのパケット出力指示は、例えば、非特許文献２のＰａｃｋｅｔ−Ｏｕｔメッセージを用いることができる。
【００４０】
一方、中継装置１１０３、１１０４は、他の中継装置からこれらトポロジ確認用のパケットを受信すると、制御装置１００に対し、これらトポロジ確認用のパケットを受信した旨と、その受信ポートとを通知する（ＳＴＥＰ２）。また、中継装置１１０３、１１０４から制御装置１００への受信パケットの報告は、例えば、非特許文献２のＰａｃｋｅｔ−Ｉｎメッセージを用いることができる。
【００４１】
制御装置１００は、前記トポロジ確認用のパケットを受信した中継装置１１０３、１１０４からの情報に基づいて、トポロジ確認用のパケットを授受した中継装置間が接続されていることを認識し、トポロジ情報を生成する（ＳＴＥＰ３）。図６は、トポロジ確認用パケットの送信後の状態を示している。図４に示したように、中継装置１１０３、１１０４のポートＰ１、Ｐ２から送信したトポロジ確認用のパケットは、端末１１０２、１１０５又はレガシーネットワークの中継装置１１０６、１１０７にて受信される。これらの装置は、制御装置１００に対して、トポロジ確認用のパケットの受信通知を送信しないため、制御装置１００は、各中継装置の各ポートに隣接する中継装置等は「無し」と設定する。次に、制御装置１００は、ＳＴＥＰ３で生成したトポロジ情報をトポロジテーブル１０３に記録する（ＳＴＥＰ４）。
【００４２】
（レガシーネットワーク情報の取得）
続いて、制御装置１００のレガシーネットワーク情報の取得動作について説明する。図１０、図１１は、ユーザからレガシーネットワークに関する情報が設定された際の制御装置１００の動作を表した流れ図である。
【００４３】
図１０を参照すると、まず、ユーザが保守端末１１０１を介して、レガシー識別情報と、識別用ＶＬＡＮと、接続ポート情報とを指定する（ＳＴＥＰ１１）。ここでは、図７に示すように、レガシー識別情報＝１２００と、識別用ＶＬＡＮ＝３０００と、接続ポート情報＝１１０３のＰ２、１１０４のＰ２と指定がされたものとする。
【００４４】
前記保守端末１１０１から送信された情報を受信した制御装置１００は、これらの情報を図７に示すレガシー管理テーブル１０６に記録する（ＳＴＥＰ１２）。
【００４５】
次に制御装置１００は、レガシー管理テーブル１０６に新規に登録されたエントリの接続ポート情報に指定されているポートのＭＡＣアドレスを、該当する中継装置１１０３、１１０４から取得する（ＳＴＥＰ１３）。次に、制御装置１００は、これらの情報を図８に示すレガシーリンク管理テーブル１０８に記録する（ＳＴＥＰ１４）。ここでは、中継装置１１０３のポートＰ２のＭＡＣアドレス（ＭＡＣ−Ａ）と、中継装置１１０４のポートＰ２のＭＡＣアドレス（ＭＡＣ−Ｂ）とが取得され、それぞれ図８に示すように、ポート情報と対応付けて記録されたものとする。
【００４６】
次に、制御装置１００は、レガシーネットワークに接続しているポートからのパケットの廃棄を指示する制御情報を作成する（図１１のＳＴＥＰ１５）。
【００４７】
図１２は、図８に示すレガシーリンク管理テーブル１０８のエントリに基づいて作成された制御情報の例である。図１２の上段は、中継装置１１０３に設定される制御情報の例を示す。図１２の制御情報は、優先順位が低い順に、順番に並べられている。従い、中継装置１１０３は、ポートＰ２から送信元ＭＡＣアドレス（ＳＭＡＣ）がＭＡＣ−Ｂ（中継装置１１０４のポートＰ２のＭＡＣアドレス）であるパケットを受信すると、そのパケットを廃棄する動作を行う。また、マッチ条件が「なし」となっている制御情報は、優先順位が上位の制御情報のいずれにも適合しない場合に実行される処理内容を規定している。このため、中継装置１１０３は、ポートＰ２からその他パケットを受信した場合も、そのパケットを廃棄する動作を行う。
【００４８】
同様に、図１２の下段は、中継装置１１０４に設定される制御情報の例を示す。中継装置１１０４は、ポートＰ１から送信元ＭＡＣアドレス（ＳＭＡＣ）がＭＡＣ−Ａ（中継装置１１０３のポートＰ２のＭＡＣアドレス）であるパケットを受信すると、そのパケットを廃棄する動作を行う。また、中継装置１１０４においてもマッチ条件を「なし」とした制御情報が設けられているため、中継装置１１０４は、ポートＰ２からその他パケットを受信した場合も、そのパケットを廃棄する動作を行う。
【００４９】
次に、制御装置１００は、上記のようにして作成した制御情報を中継装置１１０３、１１０４に設定する（図１１のＳＴＥＰ１６）。
【００５０】
（レガシーネットワークの情報を用いたトポロジの更新）
続いて、制御装置１００における、前記レガシーネットワークの情報を用いたトポロジ更新動作について説明する。図１３は、本実施形態の制御装置によるトポロジ更新動作を説明するための流れ図である。
【００５１】
制御装置１００は、中継装置１１０３、１１０４に対し、それぞれのレガシー接続ポートからレガシーリンク確立用パケットを送信するよう指示する（ＳＴＥＰ２１）。レガシーリンク確立用パケットとしては、前述のトポロジ確認用のパケットと同様のパケットを用いることができる。また、レガシーリンク確立用パケットによりレガシーネットワークの中継装置１１０６、１１０７がアドレステーブルの学習を行うことになる。
【００５２】
一方、中継装置１１０３、１１０４は、レガシーネットワーク１２００を介して、他の中継装置からこれらレガシーリンク確立用パケットを受信すると、図１１のＳＴＥＰ１６にて設定された制御情報に従い、レガシーリンク確立用パケットを廃棄する。制御装置１００は、中継装置１１０３、１１０４に対して、レガシーリンク確立用パケットを廃棄したか否かを問い合わせることにより、レガシーリンク確立用パケットが廃棄されたことを確認する（ＳＴＥＰ２２）。
【００５３】
前記確認の結果、予定通りにレガシーリンク確立用パケットが廃棄されたことを確認できた場合、制御装置１００は、中継装置１１０３と中継装置１１０４とが、レガシーネットワーク１２００を介して接続されていることを認識する（ＳＴＥＰ２３）。
【００５４】
そして、制御装置１００は、トポロジテーブル１０３を更新する（ＳＴＥＰ２４）。図１４は、更新後のトポロジテーブルを示す図である。図１４を参照すると、中継装置１１０３のポートＰ２のリンクの情報として、隣接中継装置１１０４と、そのポート情報Ｐ２が追記されている。同様に、中継装置１１０４のポートＰ２のリンクの情報として、隣接中継装置１１０３と、そのポート情報Ｐ２が追記されている。
【００５５】
ここで、図１３のＳＴＥＰ２２において、レガシーリンク確立用パケットが廃棄されたことを確認できなかった場合の動作について説明する。
【００５６】
図１５は、レガシーリンク確立用パケットが廃棄されたことを確認できなかった場合の動作を説明するための流れ図である。図１５のＳＴＥＰ２１、２２は、図１３のＳＴＥＰ２１、２２と同様である。ＳＴＥＰ２２の確認の結果、レガシーリンク確立用パケットが廃棄されたことを確認できなかった場合、制御装置１００は、中継装置１１０３と中継装置１１０４とのリンクが切断されたことを認識する（ＳＴＥＰ３３）。
【００５７】
そして、制御装置１００は、トポロジテーブル１０３を更新する（ＳＴＥＰ３４）。更新後の内容は、図６に示したとおり、中継装置１１０３のポートＰ２、中継装置１１０４のポートＰ２のリンクの情報から、隣接中継装置とそのポート情報が削除された状態となる。
【００５８】
（ユーザパケットの転送）
続いて、上記のようにして把握されるトポロジを用いて行われるユーザパケットの転送動作について説明する。図１６は、本発明の第１の実施形態の通信システムにおけるユーザパケットの転送動作を説明するための流れ図である。
【００５９】
図１６を参照すると、まず、端末装置１１０２（１１０５）が端末装置１１０５（１１０２）宛てのパケット（以下、「ユーザパケット」という。）を送信する。中継装置１１０３（１１０４）は、ユーザパケットを受信すると、制御装置１００から設定された制御情報の中から、ユーザパケットに適合するマッチ条件を持つ制御情報を検索するが、この時点では、図１２に示したように、ユーザパケットを処理するための制御情報は設定されていない。そこで、中継装置１１０３（１１０４）は、制御装置１００に対してユーザパケットを転送し、制御情報の設定を要求する。制御装置１００は、中継装置１１０３（１１０４）からユーザパケットを受信すると（ＳＴＥＰ４１）、トポロジテーブル１０３を参照して、ユーザパケットを宛先に転送するための転送経路を計算する（ＳＴＥＰ４２）。
【００６０】
上述したトポロジの構築、更新により、レガシーネットワークを含んだ全体のトポロジは、図４に示すように把握されているため、制御装置１００は、例えば、端末装置１１０２からのパケットを、中継装置１１０３、レガシーネットワーク１２００、中継装置１１０４の順で端末装置１１０５に転送する経路を計算する。
【００６１】
次に、制御装置１００は、計算した転送経路上の中継装置に、転送経路に沿ったパケット転送を行わせるための制御情報を生成する（ＳＴＥＰ４３）。例えば、制御装置１００は、中継装置１１０３に、端末装置１１０２からのパケットを、そのポートＰ２から転送させる制御情報を設定する。また、制御装置１００は、中継装置１１０４に、ポートＰ２（レガシーネットワーク）から受信した端末装置１１０５宛てのパケットを、そのポートＰ１から転送させる制御情報を設定する。
【００６２】
次に、制御装置１００は、前記生成した制御情報を、転送経路上の中継装置１１０３、１１０４に設定する（ＳＴＥＰ４４）。さらに、制御装置１００は、ＳＴＥＰ４１で中継装置１１０３から受信したパケットを出力するよう、中継装置１１０４に指示する（ＳＴＥＰ４５）。
【００６３】
以上により、その後、端末装置１１０２から端末１１０５に宛てて送信されたパケットは、中継装置１１０３、１１０４に設定された制御情報に従って端末１１０５に転送される。
【００６４】
図１７は、中継装置１１０３に設定される制御情報の例である。図１７の左側に「追加」と記載されたエントリが、ユーザパケットを処理するために追加された制御情報である。上から３番目のエントリは、送信元ＭＡＣアドレス（ＳＭＡＣ）が端末装置１１０２のＭＡＣアドレスであり、かつ、宛先ＭＡＣアドレス（ＤＭＡＣ）が端末装置１１０５のＭＡＣアドレスであるというマッチ条件が設定されている。そして、このマッチ条件に適合するパケットについて、ＳＭＡＣをＭＡＣ−Ａ（中継装置１１０３のポートＰ２のＭＡＣアドレス）に変更、ＤＭＡＣをＭＡＣ−Ｂ（中継装置１１０４のポートＰ２のＭＡＣアドレス）に変更、ＶＬＡＮ  ＩＤ３０００を付与してから、ポートＰ２から転送する処理を行わせるアクション（Ａｃｔｉｏｎ）が記述されている。また、図１７の例では、端末装置１１０５から端末１１０２宛ての応答パケットを処理するための制御情報も設定されている。上から４番目のエントリは、宛先ＭＡＣアドレス（ＤＭＡＣ）がＭＡＣ−Ａ（中継装置１１０３のポートＰ２のＭＡＣアドレス）というマッチ条件に適合するパケットについて、ＳＭＡＣ、ＤＭＡＣをそれぞれ復元し、かつ、ＶＬＡＮ  ＩＤを削除した上で、ポートＰ２から転送させる処理を行わせるアクション（Ａｃｔｉｏｎ）が記述されている。
【００６５】
図１８は、中継装置１１０４に設定される制御情報の例である。図１８の左側に「追加」と記載されたエントリが、ユーザパケットを処理するために追加された制御情報である。上から３番目のエントリは、端末装置１１０５から端末１１０２宛ての応答パケットを処理するための制御情報である。具体的には、送信元ＭＡＣアドレス（ＳＭＡＣ）が端末装置１１０５のＭＡＣアドレスであり、かつ、宛先ＭＡＣアドレス（ＤＭＡＣ）が端末装置１１０２のＭＡＣアドレスであるというマッチ条件が設定されている。そして、このマッチ条件に適合するパケットについて、ＳＭＡＣをＭＡＣ−Ｂ（中継装置１１０４のポートＰ２のＭＡＣアドレス）に変更、ＤＭＡＣをＭＡＣ−Ａ（中継装置１１０３のポートＰ２のＭＡＣアドレス）に変更、ＶＬＡＮ  ＩＤ３０００を付与してから、ポートＰ２から転送する処理を行わせるアクション（Ａｃｔｉｏｎ）が記述されている。また、上から４番目のエントリは、端末装置１１０２から端末１１０５宛てのパケットを処理するための制御情報であり、宛先ＭＡＣアドレス（ＤＭＡＣ）がＭＡＣ−Ｂ（中継装置１１０４のポートＰ２のＭＡＣアドレス）というマッチ条件に適合するパケットについて、ＳＭＡＣ、ＤＭＡＣをそれぞれ復元し、かつ、ＶＬＡＮ  ＩＤを削除した上で、ポートＰ２から転送させる処理を行わせるアクション（Ａｃｔｉｏｎ）が記述されている。
【００６６】
以上の結果、図１９に示すように、レガシーネットワーク１２００を経由する双方向のパケット転送が実現される。そして、例えば、端末装置１１０２から送信された端末１１０５宛てのパケットは、入口側の中継装置１１０３にて、レガシーネットワークで正しく転送が行われるようなＭＡＣ書き換えが行われ、出口側の中継装置１１０４にて、復元される。そして、図１７、図１８に示したように、個々の中継装置に設定する制御情報のエントリ数は２つであり、制御装置１００への問い合わせ（制御情報の設定要求）も初回のパケット受信時となっているため、制御装置１００や中継装置１１０３、１１０４の負荷の増大や、リソース使用量の増大を伴うこともない。
【００６７】
続いて、本発明の第２〜第５の実施形態について説明する。本発明の第２〜第５の実施形態は、第１の実施形態と制御装置１００によって制御される中継装置が配置されたネットワークと、そうではないネットワーク（レガシーネットワーク）の配置関係が相違するものであり、制御装置１００の構成に特段の変更はない。以下、その相違点を中心に説明する。
【００６８】
［第２の実施形態］
図２０は、本発明の第２の実施形態の通信システムの構成を示す図である。図４に示した第１の実施形態との相違点は、レガシーネットワーク１２００の両端に、制御装置１００によって制御される中継装置が配置されたネットワーク１３１０、１３２０が配置され、端末装置１００１〜１００４がこれらを経由して通信する点である。
【００６９】
図２１は、第１の実施形態と同様に、トポロジ確認用のパケットを送信することにより把握されるネットワークトポロジを示す図である。図２１に表されたとおり、第１の実施形態の中継装置１１０３が、中継装置１０１０、１０１１の２台となり、第１の実施形態の中継装置１１０４が、中継装置１０１８、１０１９の２台となり、それぞれに端末装置１００１〜１００４が接続されているだけで、基本的な構成に相違は無い。
【００７０】
図２２は、第１の実施形態と同様に、レガシーリンク確立用パケットを送信することにより把握されるネットワークトポロジを示す図である。レガシーリンク確立用パケットの送信により、中継装置１０７１〜１０７６は、それぞれのポートと、中継装置１０１０、１０１１、１０１８、１０１９のレガシー接続ポートのＭＡＣアドレスとの対応関係を学習する。また、制御装置１００は、中継装置１０１０、１０１１、１０１８、１０１９間のリンクの状態を把握する。これにより、第１の実施形態と同様に、レガシーネットワークの入口側の中継装置には、必要なヘッダの書き換えを行ってからレガシーネットワークに転送する制御情報が設定され、レガシーネットワークからの出口側の中継装置には、ヘッダの復元を行ってから転送する制御情報が設定される。この結果、端末装置１００１〜１００４間のパケットは、それぞれレガシーネットワークとの接続ポートを有する中継装置にてヘッダ書換え（復元）が行われ、レガシーネットワークを越えた後は、制御装置１００の指示に従い、宛先の通信端末に転送される。
【００７１】
以上のように、本発明は、図４に示した端末装置と中継装置とが１対１で配置されている構成に限らず、制御装置１００の配下の中継装置が複数あり、それぞれに端末装置が接続されているようなネットワーク構成にも適用できる。
【００７２】
［第３の実施形態］
図２３は、本発明の第３の実施形態の通信システムの構成を示す図である。図２０に示した第２の実施形態との相違点は、レガシーネットワークが複数あり、レガシーネットワーク１２００、１２１０として複数存在する点である。この構成は、第１の実施形態の構成を並列接続した構成と見ることもできる。この構成では、制御装置１００が、レガシーネットワーク１２００、１２１０のどちらを用いてユーザパケットを転送するかを選択することができる、という利点がある。例えば、端末装置１００１−１００３間のパケットは、レガシーネットワーク１２００を経由して転送し、端末装置１００２−１００４間のパケットは、レガシーネットワーク１２１０を経由して転送するといった分散が可能となる。また例えば、端末装置１００１−１００３間のパケットと端末装置１００２−１００４間のパケットとの双方を、レガシーネットワーク１２００を経由して転送し、レガシーネットワーク１２１０を休止させるといった運用も可能となる。
【００７３】
［第４の実施形態］
図２４は、本発明の第４の実施形態の通信システムの構成を示す図である。図２３に示した第３の実施形態との相違点は、レガシーネットワーク１２１０がなく、ネットワーク１３１０とネットワーク１３２０とが直接接続されている点である。この構成では、この構成では、制御装置１００が、レガシーネットワーク１２００を用いてユーザパケットを転送するか否かを選択することができる、という利点がある。
【００７４】
［第５の実施形態］
図２５は、本発明の第５の実施形態の通信システムの構成を示す図である。図２３に示した第３の実施形態との相違点は、ネットワーク１３１０のさらに外側にレガシーネットワーク１２１０があり、さらにその外側に制御装置が制御可能な中継装置が配置されているネットワーク１３３０が配置されている点である。
【００７５】
本実施形態においても、レガシーリンク確立用パケットの送信により、レガシーネットワーク１２００、１２１０上の中継装置におけるアドレス学習が行われ、また、制御装置１００によるネットワーク１３１０−１３２０に属する中継装置間のリンク及びネットワーク１３２０−１３３０に属する中継装置間のリンクの状態の把握が行われる。このため、第１の実施形態と同様に、制御装置１００から、必要なヘッダ書換えとパケット転送を指示する制御情報を設定することで、２つのレガシーネットワーク１２００、１２１０を経由してパケットを転送することができる。
【００７６】
［第６の実施形態］
続いて、仮想マシンが動作するマシン間の通信に本発明を適用した第６の実施形態について説明する。図２６は、本発明の第６の実施形態の通信システムの構成を示す図である。図６を参照すると、コアネットワークを構成する（コア）中継装置２０−１〜２０−３（以下、特に区別しない場合、「中継装置２０」と記す。）と、マシン４０−１〜４０−５及びストレージ５０と接続された（エッジ）中継装置３０−１〜３０−３（以下、特に区別しない場合、「中継装置３０」と記す。）と、これら中継装置２０−１〜２０−３及び中継装置３０−１〜３０−３を制御する制御装置１０とを含む構成が示されている。
【００７７】
制御装置１０は、中継装置２０、３０に対して制御情報を設定することで、マシン４０−１〜４０−５上で動作する仮想マシン（以下、「ＶＭ」と記す。）及びストレージ５０間の通信を制御する。
【００７８】
中継装置２０は、中継装置３０とメッシュ状に接続されて、任意のＶＭとＶＭ、任意のＶＭとストレージ５０間の経路を構成することが可能となっている。
【００７９】
中継装置２０、３０は、前記制御装置１０から設定された制御情報を保持し、この制御情報を参照して受信パケットの処理を行う。具体的には、パケットを受信すると、制御情報の中から、受信パケットのヘッダ情報等に適合するマッチ条件を持つ制御情報に記述された処理内容（アクション）を実行する。一方、受信パケットのヘッダ情報に適合するマッチ条件を持つ制御情報を保持していない場合、中継装置２０、３０は、制御装置１０に対して、受信パケット（又は受信パケットから抽出した情報）を送信し、制御情報の設定を要求する。中継装置２０、３０の基本的な動作は、第１の実施形態の中継装置１１０３、１１０４と同様である。
【００８０】
マシン４０−１〜４０−５は、複数のユーザにそれぞれ専用的に利用させるＶＭ１〜ＶＭ１０が動作する仮想化サーバ等と呼ばれる機器によって構成されている。ストレージ５０は、これらＶＭからアクセスするデータ等を格納している。従って、ユーザは、ＶＭを利用してストレージ５０にアクセスして、必要なデータを参照したり、他のＶＭと通信したり、ＶＭからストレージ５０にデータを保存することができるようになっている。
【００８１】
続いて、上記のようなＶＭ−ストレージ間、ＶＭ−ＶＭ間のＬ２レベルの通信に必要な制御情報を設定するための制御装置１０の動作について説明する。
【００８２】
図２７は、本発明の第６の実施形態の制御装置の動作を表したフローチャートである。ここでは、ＶＭ１がＶＭ５と通信をするための設定について説明する。はじめに、ＶＭ１が、ＶＭ５のＭＡＣアドレスを解決するため、ＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）パケットを送信する（ステップＳ１０１）。
【００８３】
中継装置３０−１は、前記ＡＲＰパケットに対応する制御情報を保持していないため、制御装置１０にＡＲＰパケットを転送する。制御装置１０は、受信したＡＲＰパケットからＶＭ１の位置（中継装置３０−１の特定のポートに接続）と、ＭＡＣアドレスとを学習する（ステップＳ１０２）。
【００８４】
次に、制御装置１０は、他の中継装置３０−２、３０−３から中継装置３０−１を経由してＶＭ１に到る転送経路を計算する。また、制御装置１０は、前記計算した転送経路に沿ったパケット転送を実現するＬ２用の制御情報（第１の制御情報）を生成し、経路上の中継装置に設定する（ステップＳ１０３）。
【００８５】
図２８は、上記ＶＭ１宛てのＬ２用の制御情報の設定が完了した状態を示す図である。図中の中継装置２０−１、３０−１〜３０−３を示すボックス内の「ＶＭ１」がＶＭ１宛ての制御情報を表している。
【００８６】
次に、制御装置１０は、ステップＳ１０２で受信したＡＲＰパケットを送信元の中継装置３０−１以外の中継装置３０−２、３０−３に送信する（ステップＳ１０４）。中継装置３０−２、３０−３は、それぞれ受信したＡＲＰパケットを自装置内で動作するＶＭ５〜ＶＭ１０に転送する。
【００８７】
ＡＲＰパケットは、ＶＭ５のＭＡＣアドレスを解決するためのものであるため、ＶＭ５がＡＲＰ応答を送信する。中継装置３０−２は、前記ＡＲＰ応答パケットに対応する制御情報を保持していないため、制御装置１０にＡＲＰ応答パケットを転送する。制御装置１０は、受信したＡＲＰ応答パケットからＶＭ５の位置（中継装置３０−２の特定のポートに接続）と、ＭＡＣアドレスとを学習する（ステップＳ１０５）。また、制御装置１０は、ＶＭ５に代わって、学習したＶＭ５のＭＡＣアドレスをＶＭ１に応答する。
【００８８】
次に、制御装置１０は、他の中継装置３０−１、３０−３から中継装置３０−２を経由してＶＭ５に到る転送経路を計算する。また、制御装置１０は、前記計算した転送経路に沿ったパケット転送を実現するＬ２用の制御情報（第１の制御情報）を生成し、経路上の中継装置に設定する（ステップＳ１０６）。
【００８９】
図２９は、上記ＶＭ１とＶＭ５宛てのＬ２用の制御情報の設定が完了した状態を示す図である。図中の中継装置２０−１、３０−１〜３０−３を示すボックス内の「ＶＭ５」がＶＭ５宛ての制御情報を表している。
【００９０】
次に、ＶＭ５がＶＭ１に対して、ＶＭ１のＭＡＣアドレスを解決するためのＡＲＰパケットを送信すると（ステップＳ１０７）、中継装置３０−２は、前記ＡＲＰパケットに対応する制御情報を保持していないため、制御装置１０にＡＲＰパケットを転送する。制御装置１０は、ＶＭ１に代わって、ステップＳ１０２で学習済みのＶＭ１のＭＡＣアドレスをＶＭ５に応答する（ステップＳ１０８）。
【００９１】
以上により、ＶＭ１とＶＭ５とがそれぞれ相手のＭＡＣアドレスを宛先としたＬ２パケットを送受信できる状態になる（ステップＳ１０９）。
【００９２】
図３０、図３１は、上記のステップＳ１０９の時点で、中継装置３０−１、中継装置２０−１、中継装置３０−２に設定される制御情報の例を示す図である。図３１は、ＶＭ１からＶＭ５宛てのＬ２パケットを処理するための制御情報であり、宛先ＭＡＣアドレスとしてＶＭ５のＭＡＣアドレスを設定したマッチ条件と、転送経路に沿ったパケット転送を行わせる処理内容（アクション）とを対応付けた内容となっている。同様に、図３２は、ＶＭ５からＶＭ１宛てのＬ２パケットを処理するための制御情報である。いずれもマッチ条件として宛先ＭＡＣアドレスのみを指定したものとなっており、中継装置と制御装置１０の負荷を増大させることなく転送を実現できるものとなっている。
【００９３】
ここで、ＶＭ１−ＶＭ５間でＬ３パケットの送信が行われる場合を考える。図３２は、ＶＭ１−ＶＭ５間で授受されるＬ２パケット及びＬ３パケットの送信元アドレスと宛先アドレスとを示す図である。図３２に示したように、Ｌ３パケットは、宛先ＭＡＣアドレスとして、デフォルトゲートウェイとして設定されている装置（本実施形態では、制御装置１０とする）のＭＡＣアドレスが設定されているため、上記図３０、図３１に示す制御情報では転送できない。このため、中継装置３０−１から制御装置１０に対して、Ｌ３パケットが転送されて、制御情報の設定要求が行われる。
【００９４】
図３３は、ＶＭ１からＶＭ５宛てにＬ３パケットが送信された場合の制御装置１０の動作を表した流れ図である。
【００９５】
図３３を参照すると、ＶＭ１がＶＭ５宛てにＬ３パケットを送信すると（ステップＳ２０１）、中継装置３０−１が制御装置１０宛てにＬ３パケットを転送し、制御情報の設定を要求する（ステップＳ２０２）。
【００９６】
前記制御情報の設定要求を受けた制御装置１０は、図３０に示す中継装置３０−１に設定済みの制御情報を図３４に示すように書き換える（ステップＳ２０３）。図３４の例では、宛先ＭＡＣアドレスに、ＧＷ（制御装置１０）のＭＡＣアドレスが設定され、かつ、宛先ＩＰアドレスに、ＶＭ５のＩＰアドレスが設定されている場合、即ち、ＶＭ５を宛先としたＬ３パケットを受信した場合、中継装置３０−１は、送信元のＭＡＣアドレスをＧＷ（制御装置１０）のＭＡＣアドレスに書き換え、かつ、宛先ＭＡＣアドレスにＶＭ５のＭＡＣアドレスに書き換えてから、中継装置２０−１に転送する処理を行うことになる。これにより、中継装置２０−１、中継装置３０−２は、ＶＭ５宛てのＬ３パケットをＬ２パケットとして転送することになる。
【００９７】
また、制御装置１０は、図３１に示す中継装置３０−２に設定済みの制御情報を図３５に示すように書き換える。図３５の例では、宛先ＭＡＣアドレスに、ＧＷ（制御装置１０）のＭＡＣアドレスが設定され、かつ、宛先ＩＰアドレスに、ＶＭ１のＩＰアドレスが設定されている場合、即ち、ＶＭ１を宛先としたＬ３パケットを受信した場合、中継装置３０−２は、送信元のＭＡＣアドレスをＧＷ（制御装置１０）のＭＡＣアドレスに書き換え、かつ、宛先ＭＡＣアドレスにＶＭ１のＭＡＣアドレスに書き換えてから、中継装置２０−１に転送する処理を行うことになる。これにより、中継装置２０−１、中継装置３０−１は、ＶＭ１宛てのＬ３パケットをＬ２パケットとして転送することになる。
【００９８】
前記制御情報の書き換えが完了すると、制御装置１０は、出口側の中継装置３０−２に対して、ステップＳ２０２で転送を受けたＶＭ５宛てのＬ３パケットを転送し、ＶＭ５に転送させる（ステップＳ２０４）。
【００９９】
その後は、図３４、図３５に示した制御情報（第２の制御情報）が設定されているため、ＶＭ１とＶＭ５間でＬ３パケットの授受が可能となる（ステップＳ２０５）。このときに、入口側の中継装置で必要な書き換えが行われるため、以降の中継装置では、新たな制御情報の設定をしなくとも、宛先ＭＡＣアドレスをマッチ条件とする制御情報により、パケットを転送することが可能となっている。
【０１００】
以上のように、本発明は、ＶＭやストレージが稼動する仮想化環境においても好適に適用することが可能である。
【０１０１】
最後に、本発明の好ましい形態を要約する。
［第１の形態］
（上記第１の視点による制御装置参照）
［第２の形態］
第１の形態の制御装置において、
前記第１の階層のアドレスは、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスであり、前記第２の階層のアドレスはＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスである制御装置。
［第３の形態］
第２の形態の制御装置において、
前記第１の制御情報設定部は、前記中継装置を介して一のマシンからＡＲＰ（Ａｄｄｒｅｓｓ Ｒｅｓｏｌｕｔｉｏｎ Ｐｒｏｔｏｃｏｌ）パケットを受信すると、前記中継装置を介してＡＲＰパケットを他のマシンに転送し、
前記配下の中継装置を介して、前記ＡＲＰパケットに対するＡＲＰ応答パケットを受信すると、前記ＡＲＰパケットとＡＲＰ応答パケットとの送信元のマシン間の経路を計算し、該経路上の中継装置に前記経路に沿ってパケットを転送させる第１の制御情報を設定する制御装置。
［第４の形態］
第１〜第３いずれか一の形態の制御装置において、
第２の制御情報は、前記第１の制御情報の処理内容フィールドに、宛先ＭＡＣアドレスに変換させる処理を追加することによって生成される制御装置。
［第５の形態］
（上記第２の視点による通信システム参照）
［第６の形態］
（上記第３の視点による通信方法参照）
［第７の形態］
（上記第４の視点によるプログラム参照）
［第８の形態］
制御対象の中継装置のうち、制御対象外のネットワークを介して接続する中継装置間のリンクの状態を把握する特定リンク管理部と、
前記制御対象の中継装置から収集した情報に基づいてトポロジ情報を構築するとともに、前記制御対象外のネットワークを介して接続する中継装置間のリンクの状態に基づいて、前記トポロジ情報を更新するトポロジ管理部と、
前記制御対象外のネットワークを介して接続する中継装置間のリンクを含んだトポロジ情報に基づいて、前記中継装置に接続するマシン間のパケット転送経路を計算し、該転送経路上の中継装置に、前記転送経路に従ったパケット転送を行わせる制御情報を生成する経路管理部と、
前記中継装置に前記制御情報を設定する中継装置通信部と、を備え、
前記制御対象外のネットワークを経由する転送経路上の中継装置のうち、前記制御対象外のネットワークの手前にある中継装置に、パケットが制御対象外のネットワークを通過できるようにヘッダ書換えを行わせ、
前記制御対象外のネットワークを経由する転送経路上の中継装置のうち、前記制御対象外のネットワークを越えた位置にある中継装置に、前記書き換えたヘッダを復元する処理を行わせること、
を特徴とする制御装置。
［第９の形態］
第８の形態の制御装置において、
前記特定リンク管理部は、前記制御対象外のーネットワークを介して接続する中継装置の一方から他方に所定のパケット送信し、前記他方において前記所定のパケット受信できたか否かにより、前記制御対象外のネットワークを介して接続する中継装置間のリンクの状態を把握する制御装置。
［第１０の形態］
制御対象の中継装置のうち、制御対象外のネットワークを介して接続する中継装置間のリンクの状態を把握する特定リンク管理部と、
前記制御対象の中継装置から収集した情報に基づいてトポロジ情報を構築するとともに、前記制御対象外のネットワークを介して接続する中継装置間のリンクの状態に基づいて、前記トポロジ情報を更新するトポロジ管理部と、
前記制御対象外のネットワークを介して接続する中継装置間のリンクを含んだトポロジ情報に基づいて、前記中継装置に接続するマシン間のパケット転送経路を計算し、該転送経路上の中継装置に、前記転送経路に従ったパケット転送を行わせる制御情報を生成する経路管理部と、
前記中継装置に前記制御情報を設定する中継装置通信部と、を備え、
前記制御対象外のネットワークを経由する転送経路上の中継装置のうち、前記制御対象外のネットワークの手前にある中継装置に、パケットが制御対象外のネットワークを通過できるようにヘッダ書換えを行わせ、
前記制御対象外のネットワークを経由する転送経路上の中継装置のうち、前記制御対象外のネットワークを越えた位置にある中継装置に、前記書き換えたヘッダを復元する処理を行わせる制御装置と、
前記レガシーネットワークを挟んで配置され、前記制御装置から設定された制御情報に従って動作する複数の中継装置と、を含む通信システム。
［第１１の形態］
制御対象の中継装置のうち、制御対象外のネットワークを介して接続する中継装置間のリンクの状態を把握する特定リンク管理部と、
前記制御対象の中継装置から収集した情報に基づいてトポロジ情報を構築するとともに、前記制御対象外のネットワークを介して接続する中継装置間のリンクの状態に基づいて、前記トポロジ情報を更新するトポロジ管理部と、
前記制御対象外のネットワークを介して接続する中継装置間のリンクを含んだトポロジ情報に基づいて、前記中継装置に接続するマシン間のパケット転送経路を計算し、該転送経路上の中継装置に、前記転送経路に従ったパケット転送を行わせる制御情報を生成する経路管理部と、
前記中継装置に前記制御情報を設定する中継装置通信部と、を備える制御装置が、
前記制御対象外のネットワークを経由する転送経路上の中継装置のうち、前記制御対象外のネットワークの手前にある中継装置に、パケットが制御対象外のネットワークを通過できるようにヘッダ書換えを行わせるステップと、
前記制御対象外のネットワークを経由する転送経路上の中継装置のうち、前記制御対象外のネットワークを越えた位置にある中継装置に、前記書き換えたヘッダを復元する処理を行わせるステップと、を含む通信方法。
［第１２の形態］
制御対象の中継装置のうち、制御対象外のネットワークを介して接続する中継装置間のリンクの状態を把握する特定リンク管理部と、
前記制御対象の中継装置から収集した情報に基づいてトポロジ情報を構築するとともに、前記制御対象外のネットワークを介して接続する中継装置間のリンクの状態に基づいて、前記トポロジ情報を更新するトポロジ管理部と、
前記制御対象外のネットワークを介して接続する中継装置間のリンクを含んだトポロジ情報に基づいて、前記中継装置に接続するマシン間のパケット転送経路を計算し、該転送経路上の中継装置に、前記転送経路に従ったパケット転送を行わせる制御情報を生成する経路管理部と、
前記中継装置に前記制御情報を設定する中継装置通信部と、を備える制御装置を構成するコンピュータに、
前記制御対象外のネットワークを経由する転送経路上の中継装置のうち、前記制御対象外のネットワークの手前にある中継装置に、パケットが制御対象外のネットワークを通過できるようにヘッダ書換えを行わせる処理と、
前記制御対象外のネットワークを経由する転送経路上の中継装置のうち、前記制御対象外のネットワークを越えた位置にある中継装置に、前記書き換えたヘッダを復元する処理を行わせる処理と、を実行させるプログラム。
なお、上記第５〜第７の形態は、第１の形態と同様に、第２〜第４の形態に展開することが可能である。同様に、上記第１０〜第１２の形態は、第８の形態と同様に、第９の形態に展開することが可能である。
【０１０２】
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【０１０３】
１０、１０Ａ、１００  制御装置
１１  第１の制御情報設定部
１２  第２の制御情報設定部
２０−１〜２０−３、３０−１〜３０−３  中継装置
４０−１〜４０−５  マシン
５０  ストレージ
１０１  中継装置通信部
１０２  トポロジ管理部
１０３  トポロジテーブル
１０４  保守端末通信部
１０５  レガシー管理部
１０６  レガシー管理テーブル
１０７  レガシーリンク管理部
１０８  レガシーリンク管理テーブル
１０９  経路管理部
１１０１  保守端末
１００１〜１００４、１１０２、１１０５  端末装置
１０１０、１０１１、１０１８、１０１９、１１０３、１１０４  中継装置
１０７１〜１０７６、１１０６、１１０７  中継装置（Ｌ２）
１２００、１２１０  レガシーネットワーク
１３００〜１３３０  ネットワーク
Ｐ１〜Ｐ４  ポート番号  
【図１】
0006024761.tif 000002
【図２】
0006024761.tif 000003
【図３】
0006024761.tif 000004
【図４】
0006024761.tif 000005
【図５】
0006024761.tif 000006
【図６】
0006024761.tif 000007
【図７】
0006024761.tif 000008
【図８】
0006024761.tif 000009
【図９】
0006024761.tif 000010
【図１０】
0006024761.tif 000011
【図１１】
0006024761.tif 000012
【図１２】
0006024761.tif 000013
【図１３】
0006024761.tif 000014
【図１４】
0006024761.tif 000015
【図１５】
0006024761.tif 000016
【図１６】
0006024761.tif 000017
【図１７】
0006024761.tif 000018
【図１８】
0006024761.tif 000019
【図１９】
0006024761.tif 000020
【図２０】
0006024761.tif 000021
【図２１】
0006024761.tif 000022
【図２２】
0006024761.tif 000023
【図２３】
0006024761.tif 000024
【図２４】
0006024761.tif 000025
【図２５】
0006024761.tif 000026
【図２６】
0006024761.tif 000027
【図２７】
0006024761.tif 000028
【図２８】
0006024761.tif 000029
【図２９】
0006024761.tif 000030
【図３０】
0006024761.tif 000031
【図３１】
0006024761.tif 000032
【図３２】
0006024761.tif 000033
【図３３】
0006024761.tif 000034
【図３４】
0006024761.tif 000035
【図３５】
0006024761.tif 000036