(57)【特許請求の範囲】
【請求項１】
規定されたフローに応じて受信したパケットを処理するコアノードと、前記コアノードを制御する制御装置との間に接続され、１台以上の前記コアノードを集約した集約ネットワーク内に存在する各前記コアノードを制御する通信制御装置であって、
前記集約ネットワーク内の前記コアノードから受信する通知を当該集約ネットワークからの通知に変換して前記制御装置へ送信し、前記制御装置から受信する前記集約ネットワークに対する通知を前記集約ネットワーク内の各前記コアノードに対する通知に変換して当該コアノードに送信する通信制御手段と、
前記集約ネットワーク内の前記コアノードの接続関係、および、前記集約ネットワーク内の前記コアノードが当該集約ネットワーク外の装置に接続されるポートである実ポートと当該実ポートを有する前記コアノードである実ノードとを特定する情報を、前記集約ネットワークごとに記憶するトポロジ変換情報記憶手段と、
前記トポロジ変換情報記憶手段に記憶される情報を、前記集約ネットワーク単位で更新するトポロジ更新手段とを備え、
前記通信制御手段は、前記トポロジ変換情報記憶手段に記憶された情報に基づいて、前記制御装置から受信する前記集約ネットワークに対して規定された集約化フローを、前記集約ネットワーク内の前記コアノードごとに規定される実フローに変換し、さらに、
検出された事象に応じて利用する前記集約ネットワークを定義したポリシを記憶するポリシ記憶手段を備え、
前記トポロジ更新手段は、前記ポリシに基づいて、前記トポロジ変換情報記憶手段に記憶されている情報を、検出された事象に対応する前記集約ネットワークを示す情報で更新する
ことを特徴とする通信制御装置。
【請求項２】
前記通信制御手段は、前記集約ネットワーク内の前記コアノードの接続関係に基づいて通信経路を算出し、算出された通信経路に応じて、前記集約化フローを前記実フローに変換する
請求項１記載の通信制御装置。
【請求項３】
相互に変換される前記集約化フローと前記実フローとを対応付けて記憶するフロー変換情報記憶手段を備え、
前記通信制御手段は、前記フロー変換情報記憶手段に記憶される情報に基づいて、前記集約化フローと前記実フローとを相互に変換する
請求項１又は請求項２に記載の通信制御装置。
【請求項４】
前記トポロジ更新手段は、前記トポロジ変換情報記憶手段に記憶されている情報を更新したときに、前記集約化フローに対応する前記実フローを再計算して、前記フロー変換情報記憶手段に記憶された前記集約化フローに対する前記実フローを更新する
請求項３記載の通信制御装置。
【請求項５】
規定されたフローに応じて受信したパケットを処理するコアノードと、
前記コアノードを制御する制御装置と前記コアノードとの間に接続され、１台以上の前記コアノードを集約した集約ネットワーク内に存在する各前記コアノードを制御する通信制御装置とを備え、
前記通信制御装置は、
前記集約ネットワーク内の前記コアノードから受信する通知を当該集約ネットワークからの通知に変換して前記制御装置へ送信し、前記制御装置から受信する前記集約ネットワークに対する通知を前記集約ネットワーク内の各前記コアノードに対する通知に変換して当該コアノードに送信する通信制御手段と、
前記集約ネットワーク内の前記コアノードの接続関係、および、前記集約ネットワーク内の前記コアノードが当該集約ネットワーク外の装置に接続されるポートである実ポートと当該実ポートを有する前記コアノードである実ノードとを特定する情報を、前記集約ネットワークごとに記憶するトポロジ変換情報記憶手段と、
前記トポロジ変換情報記憶手段に記憶される情報を、前記集約ネットワーク単位で更新するトポロジ更新手段とを含み、
前記通信制御手段は、前記トポロジ変換情報記憶手段に記憶された情報に基づいて、前記制御装置から受信する前記集約ネットワークに対して規定された集約化フローを、前記集約ネットワーク内の前記コアノードごとに規定される実フローに変換し、さらに、
検出された事象に応じて利用する前記集約ネットワークを定義したポリシを記憶するポリシ記憶手段を備え、
前記トポロジ更新手段は、前記ポリシに基づいて、前記トポロジ変換情報記憶手段に記憶されている情報を、検出された事象に対応する前記集約ネットワークを示す情報で更新する
ことを特徴とする通信システム。
【請求項６】
１台以上のコアノードを集約した集約ネットワーク内に存在する各前記コアノードを制御する通信制御方法であって、
前記集約ネットワーク内の前記コアノードから受信する通知を当該集約ネットワークからの通知に変換して制御装置へ送信し、前記制御装置から受信する前記集約ネットワークに対する通知を前記集約ネットワーク内の各前記コアノードに対する通知に変換して当該コアノードに送信し、
前記集約ネットワーク内の前記コアノードの接続関係、および、前記集約ネットワーク内の前記コアノードが当該集約ネットワーク外の装置に接続されるポートである実ポートと当該実ポートを有する前記コアノードである実ノードとを特定する情報を、前記集約ネットワークごとに記憶するトポロジ変換情報記憶手段の情報を、前記集約ネットワーク単位で更新し、
前記トポロジ変換情報記憶手段に記憶された情報に基づいて、前記制御装置から受信する前記集約ネットワークに対して規定された集約化フローを、前記集約ネットワーク内の前記コアノードごとに規定される実フローに変換し、さらに、
検出された事象に応じて利用する前記集約ネットワークを定義したポリシに基づいて、前記トポロジ変換情報記憶手段に記憶されている情報を、検出された事象に対応する前記集約ネットワークを示す情報で更新する
ことを特徴とする通信制御方法。
【請求項７】
規定されたフローに応じて受信したパケットを処理するコアノードと、前記コアノードを制御する制御装置との間に接続され、１台以上の前記コアノードを集約した集約ネットワーク内に存在する各前記コアノードを制御するコンピュータに適用される通信制御用プログラムであって、
前記コンピュータに、
前記集約ネットワーク内の前記コアノードから受信する通知を当該集約ネットワークからの通知に変換して前記制御装置へ送信し、前記制御装置から受信する前記集約ネットワークに対する通知を前記集約ネットワーク内の各前記コアノードに対する通知に変換して当該コアノードに送信する通信制御処理、および、
前記集約ネットワーク内の前記コアノードの接続関係、および、前記集約ネットワーク内の前記コアノードが当該集約ネットワーク外の装置に接続されるポートである実ポートと当該実ポートを有する前記コアノードである実ノードとを特定する情報を、前記集約ネットワークごとに記憶するトポロジ変換情報記憶手段の情報を、前記集約ネットワーク単位で更新するトポロジ更新処理を実行させ、
前記通信制御処理で、前記トポロジ変換情報記憶手段に記憶された情報に基づいて、前記制御装置から受信する前記集約ネットワークに対して規定された集約化フローを、前記集約ネットワーク内の前記コアノードごとに規定される実フローに変換させ、さらに、
前記トポロジ更新処理で、検出された事象に応じて利用する前記集約ネットワークを定義したポリシに基づいて、前記トポロジ変換情報記憶手段に記憶されている情報を、検出された事象に対応する前記集約ネットワークを示す情報で更新する
ための通信制御用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信装置を制御する通信制御装置、通信システム、通信制御方法および通信制御用プログラムに関する。
【背景技術】
【０００２】
近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている（非特許文献１、２参照）。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散および最適化を行うものである。【０００３】
非特許文献２に仕様化されているオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）と、フロー統計情報（Ｃｏｕｎｔｅｒｓ）と、処理内容を定義したインストラクション（Ｉｎｓｔｒｕｃｔｉｏｎｓ）との組が定義される（非特許文献２の「４．１  Ｆｌｏｗ  Ｔａｂｌｅ」の項参照）。【０００４】
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチ条件（非特許文献２の「４．３  Ｍａｔｃｈ  Ｆｉｅｌｄｓ」参照）を含むエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報（カウンタ）を更新する。併せて、オープンフロースイッチは、受信パケットに対して、そのエントリのインストラクションフィールドに記述された処理内容（指定ポートからのパケット送信、フラッディング、廃棄等）を実施する。【０００５】
一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対してエントリ設定の要求を行う。すなわち、この場合、オープンフロースイッチは、受信パケットを処理するための制御情報の送信要求（Packet-In メッセージ）をオープンフローコントローラに対して送信する。【０００６】
オープンフロースイッチは、処理内容が定められたフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを制御情報として用いてパケット転送を行う。【０００７】
図１８は、オープンフローを用いた一般的なネットワーク構成を示す説明図である。図１８に示すコアノード１０２がオープンフロースイッチに対応し、制御装置１０１がオープンフローコントローラに対応する。【０００８】
コアノード１０２は、通信リンク１０４を介して互いに接続されており、一部のノードにはエッジノード１０５が接続されている。ここで、エッジノード１０５は、オープンフローネットワークにおける通信の始点であり、ルータ等の通信仲介装置である。各コアノード１０２は、セキュアチャネル１０３を介して制御装置１０１に接続され、フローの設定やPacket-In メッセージは、このセキュアチャネル１０３上で通信される。【０００９】
このように、オープンフローを用いることでネットワーク内の通信をコントローラで集中制御することが可能になる。一方、ノード数が数万といった複雑な通信ネットワークをオープンフローで制御するため、通信ネットワークを集約化して単純にする方法が非特許文献３に記載されている。【００１０】
図１９は、オープンフローを用いて通信ネットワークを集約化した構成を示す説明図である。図１９に示す例では、コアノード１０２と制御装置２０１が直接には接続されず、両装置の間に集約化装置２０２が介在する。集約化装置２０２が、制御装置２０１によって設定されるフローや、コアノード１０２から通知されるPacket-In メッセージを変換することで、制御装置２０１は、あたかも一つのノードから成る通信ネットワークを制御しているかのように振る舞うことができる。【００１１】
なお、図１９に例示する通信ネットワークでは、各コアノード１０２が、セキュアチャネル２０４を介して集約化装置２０２に接続される。また、集約化装置２０２は、セキュアチャネル２０３を介して制御装置２０１に接続される。【００１２】
また、図２０は、通信ネットワークを集約化した場合の概念を示す説明図である。図２０に示す通信ネットワーク３０１は、各々１台のエッジノードが接続された４つのコアノードを含む。この４つのコアノードを１つのコアノード３０３に集約することで、集約後の通信ネットワーク３０２は、４つのエッジノードに接続された１台のコアノード３０３を含むものとみなすことができる。【００１３】
このように、通信ネットワークの集約化を行うことにより、制御装置は、一のノードのみ制御対象にすればよくなるため、フローの設定やPacket-In メッセージの処理を単純なロジックで実現できるようになる。【００１４】
一方で、信頼性が求められる通信ネットワークにおいては、耐障害性向上のために通信ネットワークの冗長化を行うことが一般的に行われている。冗長化の手法には、ノード単位の多重化やリンク単位の多重化など、目的に応じた様々な手法が存在する。特に、サービスの停止が許されないような高い信頼性が求められる通信ネットワークにおいては、大規模な障害の発生時にも通信を維持できるように、稼動系と待機系の二系統の通信ネットワークが用意され、障害発生時に切り替えて利用することが行われる。【００１５】
図２１は、稼動系と待機系の二系統で冗長化した通信ネットワークの構成を示す説明図である。図２１に示す通信ネットワークは、稼動系ネットワーク４０１と待機系ネットワーク４０２を含む。コアノードを含む各ネットワークは、トポロジが同一である。エッジノード４０４およびエッジノード４０５は、稼動系ネットワーク４０１と待機系ネットワーク４０２の両方に接続されている。【００１６】
平常時、エッジノード間の通信は、稼動系ネットワーク４０１のみを利用して行われる。もし、稼動系ネットワーク４０１の内部で、リンクの切断など、通信に影響を及ぼすような障害が発生した場合、コアノード間の経路情報が変更され、エッジノード間の通信は、待機系ネットワーク４０２に切り替えられる。このようにすることで、障害が発生した場合に、通信ネットワークサービスを継続させることができる。【００１７】
また、特許文献１には、ネットワーク上のノードを仮想化してパケットを転送する通信システムが記載されている。特許文献１に記載された通信システムでは、制御装置が複数の通信ノードを仮想化した仮想ノードを生成し、自身が管理する通信ノードに対して処理規則を設定する。また、各制御装置は、自身の管理するドメインを上位ドメインに含まれるドメインノードとして仮想化する。また、特許文献１に記載された通信システムでは、制御装置の仮想化管理部が、複数の下位ドメインを１つの上位ドメインノードとして制御する。【００１８】
また、特許文献２には、相互にフローの確立を要求できる複数の通信ノードと、フローによる経路を制御できる複数のスイッチとを有する通信ネットワークが記載されている。特許文献２に記載された通信ネットワークでは、複数のネットワーク経路の集合から最適な単一のネットワーク経路が決定される。【００１９】
具体的には、特許文献２に記載された通信ネットワークでは、パケットが通過しなければならないスイッチの集合が定義され、そのスイッチを通過させるようなネットワーク経路の集合が事前に計算される。そして、計算されたネットワーク経路の集合から、エネルギー効率が最適な単一のネットワーク経路が決定される。
【先行技術文献】
【特許文献】
【００２０】
【特許文献１】国際公開第２０１２／１０８３８２号
【特許文献２】特表２０１３−５００６５４号公報
【非特許文献】
【００２１】
【非特許文献１】Ｎｉｃｋ  ＭｃＫｅｏｗｎ他７名、“ＯｐｅｎＦｌｏｗ：Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”、［ｏｎｌｉｎｅ］、［平成２５（２０１３）年９月１８日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-wp-latest.pdf〉
【非特許文献２】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  Ｖｅｒｓｉｏｎ  １．１．０  Ｉｍｐｌｅｍｅｎｔｅｄ  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０２）、［ｏｎｌｉｎｅ］、［平成２５（２０１３）年９月１８日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf〉
【非特許文献３】芦田優太、小出俊夫、下西英之、「OpenFlowネットワークにおけるドメイン縮約を用いた階層型ネットワーク構築手法の提案」、信学技報, vol.112、No.10、CQ2012-7、pp.35-40、２０１２年４月
【発明の概要】
【発明が解決しようとする課題】
【００２２】
上述するように、通信ネットワークの制御を簡易化するためには、通信ネットワークを集約化することが好ましい。一方、通信ネットワークの信頼性を向上させるためには、通信ネットワークを冗長化させることが求められる。【００２３】
通信ネットワークを集約化する場合、単一の通信ネットワークに含まれるすべてのノードを一つの仮想的なネットワークとする。一方、通信ネットワークを冗長化する場合、非連結の独立した通信ネットワークを複数用意して、両方の通信ネットワークを切り替える。このように、集約化と冗長化では、想定する通信ネットワークの構成が一般に異なるため、単純に組み合わせることは困難である。【００２４】
特許文献１に記載された通信システムでは、仮想化されたドメインによるトポロジを利用することで、パケット転送のための経路を簡易に計算することは可能である。しかし、特許文献１に記載された通信システムでは、通信経路がトポロジに基づいて決定されるため、冗長化された複数の通信ノードを有するネットワークの経路を、状況に応じて適切に選択することは困難である。【００２５】
また、特許文献２に記載された通信ネットワークでは、通信経路が予め定められており、障害などの状況に応じて通信ネットワークの経路を動的に制御することは困難である。【００２６】
そこで、本発明は、複数の通信装置を含む通信ネットワークにおいて、各通信装置への制御を簡易化しつつ、通信ネットワークの信頼性を向上させることができる通信制御装置、通信システム、通信制御方法および通信制御用プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２７】
本発明による通信制御装置は、規定されたフローに応じて受信したパケットを処理するコアノードと、コアノードを制御する制御装置との間に接続され、１台以上のコアノードを集約した集約ネットワーク内に存在する各コアノードを制御する通信制御装置であって、集約ネットワーク内のコアノードから受信する通知をその集約ネットワークからの通知に変換して制御装置へ送信し、制御装置から受信する集約ネットワークに対する通知を集約ネットワーク内の各コアノードに対する通知に変換してそのコアノードに送信する通信制御部と、集約ネットワーク内のコアノードの接続関係、および、集約ネットワーク内のコアノードがその集約ネットワーク外の装置に接続されるポートである実ポートとその実ポートを有するコアノードである実ノードとを特定する情報を、集約ネットワークごとに記憶するトポロジ変換情報記憶部と、トポロジ変換情報記憶部に記憶される情報を、集約ネットワーク単位で更新するトポロジ更新部とを備え、通信制御部が、トポロジ変換情報記憶部に記憶された情報に基づいて、制御装置から受信する集約ネットワークに対して規定された集約化フローを、集約ネットワーク内のコアノードごとに規定される実フローに変換することを特徴とする。【００２８】
本発明による通信システムは、規定されたフローに応じて受信したパケットを処理するコアノードと、コアノードを制御する制御装置とコアノードとの間に接続され、１台以上のコアノードを集約した集約ネットワーク内に存在する各コアノードを制御する通信制御装置とを備え、通信制御装置が、集約ネットワーク内のコアノードから受信する通知をその集約ネットワークからの通知に変換して制御装置へ送信し、制御装置から受信する集約ネットワークに対する通知を集約ネットワーク内の各コアノードに対する通知に変換してそのコアノードに送信する通信制御部と、集約ネットワーク内のコアノードの接続関係、および、集約ネットワーク内のコアノードがその集約ネットワーク外の装置に接続されるポートである実ポートとその実ポートを有するコアノードである実ノードとを特定する情報を、集約ネットワークごとに記憶するトポロジ変換情報記憶部と、トポロジ変換情報記憶部に記憶される情報を、集約ネットワーク単位で更新するトポロジ更新部とを含み、通信制御部が、トポロジ変換情報記憶部に記憶された情報に基づいて、制御装置から受信する集約ネットワークに対して規定された集約化フローを、集約ネットワーク内のコアノードごとに規定される実フローに変換することを特徴とする。【００２９】
本発明による通信制御方法は、１台以上のコアノードを集約した集約ネットワーク内に存在する各コアノードを制御する通信制御方法であって、集約ネットワーク内のコアノードから受信する通知をその集約ネットワークからの通知に変換して制御装置へ送信し、制御装置から受信する集約ネットワークに対する通知を集約ネットワーク内の各コアノードに対する通知に変換してそのコアノードに送信し、集約ネットワーク内のコアノードの接続関係、および、集約ネットワーク内のコアノードがその集約ネットワーク外の装置に接続されるポートである実ポートとその実ポートを有するコアノードである実ノードとを特定する情報を、集約ネットワークごとに記憶するトポロジ変換情報記憶部の情報を、集約ネットワーク単位で更新し、トポロジ変換情報記憶部に記憶された情報に基づいて、制御装置から受信する集約ネットワークに対して規定された集約化フローを、集約ネットワーク内のコアノードごとに規定される実フローに変換することを特徴とする。【００３０】
本発明による通信制御用プログラムは、規定されたフローに応じて受信したパケットを処理するコアノードと、コアノードを制御する制御装置との間に接続され、１台以上のコアノードを集約した集約ネットワーク内に存在する各コアノードを制御するコンピュータに適用される通信制御用プログラムであって、コンピュータに、集約ネットワーク内のコアノードから受信する通知をその集約ネットワークからの通知に変換して制御装置へ送信し、制御装置から受信する集約ネットワークに対する通知を集約ネットワーク内の各コアノードに対する通知に変換してそのコアノードに送信する通信制御処理、および、集約ネットワーク内のコアノードの接続関係、および、集約ネットワーク内のコアノードがその集約ネットワーク外の装置に接続されるポートである実ポートとその実ポートを有するコアノードである実ノードとを特定する情報を、集約ネットワークごとに記憶するトポロジ変換情報記憶部の情報を、集約ネットワーク単位で更新するトポロジ更新処理を実行させ、通信制御処理で、トポロジ変換情報記憶部に記憶された情報に基づいて、制御装置から受信する集約ネットワークに対して規定された集約化フローを、集約ネットワーク内のコアノードごとに規定される実フローに変換させることを特徴とする。
【発明の効果】
【００３１】
本発明によれば、複数の通信装置を含む通信ネットワークにおいて、各通信装置への制御を簡易化しつつ、通信ネットワークの信頼性を向上させることができる。
【図面の簡単な説明】
【００３２】
【図１】本発明による通信システムの一実施形態を示すブロック図である。
【図２】集約化装置の構成例を示すブロック図である。
【図３】実トポロジテーブルが保持する情報の例を示す説明図である。
【図４】トポロジ変換テーブルが保持する情報の例を示す説明図である。
【図５】フロー変換テーブルが記憶する情報の例を示す説明図である。
【図６】ネットワーク構成データベースが保持する情報の例を示す説明図である。
【図７】ポリシデータベースが保持する情報の例を示す説明図である。
【図８】集約化装置の動作例を示すフローチャートである。
【図９】設定されるフローの例を示す説明図である。
【図１０】探索された経路の例を示す説明図である。
【図１１】集約化装置の他の動作例を示すフローチャートである。
【図１２】集約ネットワークを切り替える処理の例を示す説明図である。
【図１３】障害が発生した場合の動作例を示す説明図である。
【図１４】多系統の非対称なノード構成を含む冗長化ネットワークの例を示す説明図である。
【図１５】ポリシデータベースが保持する情報の他の例を示す説明図である。
【図１６】本発明による通信制御装置の概要を示すブロック図である。
【図１７】本発明による通信システムの概要を示すブロック図である。
【図１８】オープンフローを用いた一般的なネットワーク構成を示す説明図である。
【図１９】オープンフローを用いて通信ネットワークを集約化した構成を示す説明図である。
【図２０】通信ネットワークを集約化した場合の概念を示す説明図である。
【図２１】稼動系と待機系の二系統で冗長化した通信ネットワークの構成を示す説明図である。
【発明を実施するための形態】
【００３３】
以下、本発明の実施形態を図面を参照して説明する。本実施形態では、本発明による通信システムを、オープンフローを利用して実現する場合について説明する。
【００３４】
図１は、本発明による通信システムの一実施形態を示すブロック図である。図１に例示する通信システムは、制御装置５０１と、集約化装置５０２と、コアノード５０５とを備えている。
【００３５】
コアノード５０５は、規定されたフローに応じて受信したパケットを処理する通信装置である。コアノード５０５は、後述する集約ネットワーク５０３または集約ネットワーク５０４に含まれ、オープンフローにおけるオープンフロースイッチに対応する。コアノード５０５は、セキュアチャネルを介して集約化装置５０２に接続される。
【００３６】
制御装置５０１は、コアノード５０５を制御する装置である。具体的には、制御装置５０１は、後述する集約化された通信ネットワークを制御することによりコアノード５０５の動作を制御する装置であり、オープンフローにおけるオープンフローコントローラに対応する。
【００３７】
制御装置５０１は、集約化装置５０２に接続され、集約化装置５０２を介してコアノード５０５から通知されるPacket-In メッセージを処理する。また、制御装置５０１は、集約化装置５０２に対してフローの設定指示を行う。
【００３８】
制御装置５０１が制御対象とする通信ネットワークは、１台以上のコアノードを集約した通信ネットワーク（以下、集約ネットワークと記すこともある）である。すなわち、集約ネットワークは、仮想的な１台のコアノードを含むネットワークとして取り扱われる。
【００３９】
仮想的な１台のコアノードが備えるポート数は、集約ネットワーク内のコアノードがその集約ネットワーク外の装置に接続されるポート（以下、実ポートと記すこともある。）数に等しい。すなわち、集約ネットワークを通信ネットワークの一系統と捉えた場合、その集約ネットワークに含まれる唯一のコアノードが備えるポート数は、対象とする系統の通信ネットワークが他の装置または通信ネットワークと接続するポート数に等しい。
【００４０】
また、以下の説明では、集約ネットワーク内の個々のコアノード自体を含む通信ネットワークを実ネットワークと記す。図１に示す例では、２つの集約ネットワーク５０３および集約ネットワーク５０４が存在する。本実施形態では、集約ネットワーク５０３は、稼働系の通信ネットワークであり、集約ネットワーク５０４は、待機系の通信ネットワークである。
【００４１】
図１に示す例では、集約ネットワーク５０３は、４台のコアノード５０５を含み、エッジノード５０６およびエッジノード５０７が接続される。また、集約ネットワーク５０４は、集約ネットワーク５０３と同一のネットワークトポロジを有し、集約ネットワーク５０３と同様に、エッジノード５０６およびエッジノード５０７が接続される。また、集約ネットワーク５０３と集約ネットワーク５０４は、いずれか一系統のみ稼働する。
【００４２】
なお、図１では、集約ネットワークが２つの場合を例示しているが、集約ネットワークの数は２つに限定されず、３つ以上であってもよい。また、図１では、各集約ネットワークに含まれるコアノードが４台の場合を例示しているが、コアノードの数は２台または３台であってもよく、５台以上であってもよい。
【００４３】
集約化装置５０２は、コアノード５０５と制御装置５０１との間に接続され、冗長化された通信ネットワークを集約化する装置である。集約化装置５０２は、集約ネットワーク５０３または集約ネットワーク５０４に含まれるすべてのコアノードに接続され、オープンフローにおけるオープンフローコントローラとして動作する。すなわち、集約化装置５０２は、各コアノード５０５から通知されるPacket-In メッセージを変換して制御装置５０１に通知する。
【００４４】
さらに、集約化装置５０２は、制御装置５０１から集約ネットワーク５０３または集約ネットワーク５０４に対して設定されるフローを適用可能な形式に変換し、集約ネットワーク内の各コアノードに対するフロー設定を行う。このように、集約化装置５０２は、各コアノードにフローを設定することで通信を制御していることから、集約化装置５０２のことを、通信制御装置ということができる。
【００４５】
エッジノード５０６およびエッジノード５０７は、通信の始点になる装置であり、例えば、エッジルータである。
【００４６】
図２は、本実施形態の集約化装置５０２の構成例を示すブロック図である。本実施形態の集約化装置５０２は、仮想スイッチ６０１と、トポロジ変換部６０２と、仮想コントローラ６０３と、実トポロジテーブル６０４と、トポロジ変換テーブル６０５と、フロー変換テーブル６０６と、ネットワーク構成データベース６０７と、ポリシ判定部６０８と、ポリシデータベース６０９と、障害検出部６１０とを含む。
【００４７】
仮想スイッチ６０１は、制御装置５０１に接続されオープンフロースイッチのように動作する仮想スイッチである。具体的には、仮想スイッチ６０１は、制御装置５０１から発行されるフローの設定を受け取って、トポロジ変換部６０２に通知する。また、仮想スイッチ６０１は、トポロジ変換部６０２から受信したPacket-In メッセージを制御装置５０１に通知する。
【００４８】
仮想コントローラ６０３は、実ネットワークのノード５０５に接続され、オープンフローコントローラのように動作する。具体的には、仮想コントローラ６０３は、コアノード５０５から通知されるPacket-In メッセージを受信してトポロジ変換部６０２に通知する。また、仮想コントローラ６０３は、トポロジ変換部６０２から受信したコアノード５０５に対するフロー設定などの命令を、適切なコアノード５０５に通知する。
【００４９】
トポロジ変換部６０２は、実ネットワークと集約ネットワークとの間で必要な変換を相互に行う。具体的には、トポロジ変換部６０２は、集約ネットワーク内のコアノード５０５から受信する通知をその集約ネットワークからの通知に変換して制御装置５０１へ送信する。また、トポロジ変換部６０２は、制御装置５０１から受信する集約ネットワークに対する通知をその集約ネットワーク内の各コアノード５０５に対する通知に変換して送信する。
【００５０】
本実施形態のトポロジ変換部６０２は、仮想スイッチ６０１から送信されるフローの設定やPacket-Outなど、オープンフロースイッチとして動作するコアノード５０５への命令を仲介する。具体的には、トポロジ変換部６０２は、仮想スイッチ６０１から受信した情報を、実ネットワークに存在するコアノード５０５への命令に変換して、仮想コントローラ６０３に通知する。
【００５１】
また、本実施形態のトポロジ変換部６０２は、仮想コントローラ６０３から送信されるPacket-In メッセージなど、オープンフローコントローラとして動作する制御装置５０１への通知を仲介する。具体的には、トポロジ変換部６０２は、仮想コントローラ６０３から受信した情報を、集約ネットワークからのメッセージに変換して６０１に通知する。
【００５２】
実トポロジテーブル６０４は、実ネットワークの各コアノードがどのように接続されているかを示すトポロジ情報を保持する。図３は、実トポロジテーブル６０４が保持する情報の例を示す説明図である。図３に示す例では、コアノード間の接続（リンク）を、コアノードを特定するＩＤ（実ノードＩＤ）とそのコアノード上のポートを特定するＩＤ（実ポートＩＤ）のペアで定義している。なお、実トポロジテーブル６０４に保持されるトポロジ情報は、事前に設定されていてもよく、適宜更新されてもよい。
【００５３】
トポロジ変換テーブル６０５は、集約ネットワークのどのポートが実ネットワークのどのポートに対応しているかを示す対応付けと、実ネットワーク上で利用可能なノードおよびリンクについての情報を記憶する。具体的には、トポロジ変換テーブル６０５は、集約ネットワークごとに、実ポートとその実ポートを有するコアノード５０５（以下、実ノードと記すこともある。）との関係を記憶する。
【００５４】
図４は、トポロジ変換テーブル６０５が保持する情報の例を示す説明図である。トポロジ変換テーブル６０５は、集約ネットワークに含まれるコアノードおよびリンクを示す情報を保持する。図４に示す例では、トポロジ変換テーブル６０５は、実ネットワークのコアノードを特定するＩＤ（実ノードＩＤ）およびリンクを特定するためのＩＤ（リンクＩＤ）を保持する。
【００５５】
また、トポロジ変換テーブル６０５は、集約ネットワークのポートに対応する実ネットワークのコアノードおよびそのコアノードのポートを対応付けて保持する。図４に示す例では、トポロジ変換テーブル６０５は、集約ネットワークのポートＩＤ（集約化ポートＩＤ）に対し、実ネットワークのコアノードＩＤとそのコアノードのポートを特定するポートＩＤを対応付けて保持する。
【００５６】
なお、実ネットワークのポートには、エッジノードに接続されているポートと、コアノード間の接続に利用されているポートが存在する。集約ネットワークのポートに対応する実ネットワークのポートは、エッジノードに接続されているポートである。
【００５７】
このような情報が定義されると、トポロジ変換部６０２は、フロー変換テーブル６０６に保持される情報に基づいて、集約化フローと実フローとを相互に変換する処理を行う。
【００５８】
フロー変換テーブル６０６は、集約ネットワークでのフローを実ネットワークでのフローに変換するために、両者を対応付けた情報を保持する。具体的には、フロー変換テーブル６０６は、集約ネットワークごとに規定されるフロー（以下、集約化フローと記す。）と、集約ネットワーク内のコアノードごとに規定されるフロー（以下、実フローと記す。）とを、相互に変換されるフローとして対応付けて保持する。
【００５９】
図５は、フロー変換テーブル６０６が記憶する情報の例を示す説明図である。図５に示す例では、フロー変換テーブル６０６は、集約化フローを示す情報８０１と、実フローを示す情報８０２とを対応付けて保持する。なお、一つの集約化フローに対して複数のコアノードへの実フローが対応するため、実フローを示す情報８０２には、対象のコアノードも併せて保持される。
【００６０】
フロー情報には、コアノードが受け取ったパケットに対する絞り込みの情報（マッチ条件）と、そのパケットに対してどのような操作を行うか（アクション）を示す情報が含まれる。図５に示す集約化フローの例では、始点ＩＰアドレスが“ｘｘ．ｘｘ．ｘｘ．ｘｘ”かつ終点ＩＰアドレスが“ｙｙ．ｙｙ．ｙｙ．ｙｙ”であって、パケットを受け取ったポート番号が“ｐｏｒｔ１”であった場合に、そのパケットをポート番号が“ｐｏｒｔ２”のポートから送信（ＦＯＲＷＡＲＤ）する、というフローが設定されていることを示す。そして、この集約化フローに対し、３つのコアノードへの実フローが対応しており、フロー変換テーブル６０６は、集約ネットワーク上で集約化フローを再現できるように、適切なマッチ条件とアクションを対応付けて保持する。ただし、対応付けられる実フローの数は、３つに限定されず、２つであってもよく、４つ以上であってもよい。
【００６１】
ネットワーク構成データベース６０７は、実ネットワーク上にあるどのノードとリンクを利用して通信を行うかを示す情報を、ネットワークの系統ごと（すなわち、集約ネットワークごと）に保持する。
【００６２】
図６は、ネットワーク構成データベース６０７が保持する情報の例を示す説明図である。図６に示す例では、２つの系統（集約ネットワーク）Ａ，Ｂに対する情報が設定されている。また、図６に示す例では、ネットワーク構成データベース６０７は、トポロジ変換テーブル６０５が記憶する集約ネットワーク（系統）ごとの情報と、各系統が利用中か否かを示すフラグ（図６に例示する「利用中フラグ」）とを対応付けて保持する。このフラグは、設定されている系統が、現在稼働中の系統であることを示す。なお、この系統は、トポロジ変換テーブル６０５にも設定されている。
【００６３】
ポリシデータベース６０９は、検出された事象に応じて利用する集約ネットワークを定義したポリシを保持する。具体的には、ポリシデータベース６０９は、実ネットワーク上で発生した障害に対して、どのネットワーク系統を利用するかを示す対応表を保持する。
【００６４】
図７は、ポリシデータベース６０９が保持する情報の例を示す説明図である。図７に示す例では、集約ネットワーク（系統）Ａ，Ｂのいずれを利用するか決定するためのポリシを示している。具体的には、図７では、障害が発生していない場合、および、フローの再設定などにより回避が可能な障害に対しては系統Ａを利用し、コアノードの障害などにより回避不可能な障害が発生した場合には、系統Ｂに切り替えるというポリシが示されている。
【００６５】
障害検出部６１０は、実ネットワーク上で発生した障害を検出して、ポリシ判定部６０８に通知する。障害検出部６１０は、例えば、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）を用いて各コアノードおよびそのポートの状態を監視することで障害を検出してもよい。なお、障害検出部６１０は、ネットワーク上の障害を検出する方法として知られた他の方法を用いて、実ネットワーク上で発生した障害を検出してもよい。
【００６６】
ポリシ判定部６０８は、ポリシデータベース６０９が保持するポリシをもとに、どの系統の集約ネットワークを利用するかを判定する。そして、ポリシ判定部６０８は、判定した内容に従って、トポロジの構成を書き換える。すなわち、ポリシ判定部６０８は、判定結果をもとに、トポロジ変換テーブル６０５の内容を更新することにより、集約ネットワーク単位で利用するコアノードを切り替える。
【００６７】
具体的には、ポリシ判定部６０８は、障害検出部６１０から障害発生の通知を受け、通知された内容から障害のレベルを判定する。ポリシ判定部６０８は、判定したレベルを元にポリシデータベース６０９を参照して、いずれの系統のネットワークを利用するか判定する。そして、ポリシ判定部６０８は、ネットワーク構成データベース６０７を参照し、利用すると判定した系統（集約ネットワーク）に含まれるコアノードおよびリンクを読み出して、トポロジ変換テーブル６０５にその情報を書き込む。
【００６８】
このようにポリシ判定部６０８がトポロジ情報を書き換えることにより、集約ネットワークに対する実ネットワークのトポロジを切り替えられるため、通信ネットワークの信頼性を向上できるとともに、コアノードへの制御を簡易化できる。
【００６９】
仮想スイッチ６０１と、トポロジ変換部６０２と、仮想コントローラ６０３と、ポリシ判定部６０８と、障害検出部６１０とは、プログラム（通信制御用プログラム）に従って動作するコンピュータのＣＰＵによって実現される。例えば、プログラムは、集約化装置５０２の記憶部（図示せず）に記憶され、ＣＰＵは、そのプログラムを読み込み、プログラムに従って、仮想スイッチ６０１、トポロジ変換部６０２、仮想コントローラ６０３、ポリシ判定部６０８および障害検出部６１０として動作してもよい。
【００７０】
また、仮想スイッチ６０１と、トポロジ変換部６０２と、仮想コントローラ６０３と、ポリシ判定部６０８と、障害検出部６１０とは、それぞれが専用のハードウェアで実現されていてもよい。
【００７１】
また、実トポロジテーブル６０４と、トポロジ変換テーブル６０５と、フロー変換テーブル６０６と、ネットワーク構成データベース６０７と、ポリシデータベース６０９とは、例えば、集約化装置５０２の記憶部（図示せず）に記憶される。記憶部は、例えば、磁気ディスクなどの記憶装置により実現される。実トポロジテーブル６０４、トポロジ変換テーブル６０５、フロー変換テーブル６０６およびネットワーク構成データベース６０７は、それぞれ異なる記憶部に記憶されていてもよく、同一の記憶部内で領域を分けて記憶されていてもよい。
【００７２】
次に、本実施形態の通信システムの動作を説明する。図８は、本実施形態の集約化装置５０２の動作例を示すフローチャートである。図８は、制御装置５０１が集約化装置５０２にフローを設定し、集約化装置５０２が各コアノード５０５に対してフローを設定する処理を示している。
【００７３】
以下の説明では、図４に例示する情報がトポロジ変換テーブル６０５に保持されているものとする。また、実トポロジテーブル６０４には図３に例示する情報が初期値として設定されているものとする。また、フロー変換テーブル６０６には、何も情報が設定されていないものとする。
【００７４】
また、集約ネットワーク５０３が系統Ａのネットワークに対応するものとし、集約ネットワーク５０４が系統Ｂのネットワークに対応するものとする。また、系統Ａが稼働系の通信ネットワークとし、系統Ｂが待機系のネットワークとする。ここでは、初めに稼働系である系統Ａのトポロジ情報が初期値としてトポロジ変換テーブル６０５に設定されているものとする。なお、一般に、トポロジ変換テーブル６０５の初期値には、ネットワーク構成データベース６０７の任意の一系統が設定される。
【００７５】
まず、制御装置５０１は、集約化装置５０２の仮想スイッチ６０１に対して、フロー（集約化フロー）の設定を通知する（ステップＳ１２０１）。図９は、設定されるフローの例を示す説明図である。図９に示す例では、「始点ＩＰアドレスがｘｘ．ｘｘ．ｘｘ．ｘｘで終点ＩＰアドレスがｙｙ．ｙｙ．ｙｙ．ｙｙであるパケットをポート１で受信」した場合に「ポート２から出力する」という内容をコアノード９０３に設定する通知を示す。なお、図９に例示するコアノード９０３は、集約された仮想のコアノードである。
【００７６】
仮想スイッチ６０１は、受信したフローをトポロジ変換部６０２に通知する。トポロジ変換部６０２は、実ネットワーク上でフローを設定する対象となるコアノードを選出する（ステップＳ１２０２）。すなわち、トポロジ変換部６０２は、集約化フローを実フローに変換する対象のコアノードを特定する。
【００７７】
ここでは、図５に例示する集約化フローの情報８０１で示されるマッチ条件およびアクションが制御装置５０１から通知されたとする。この場合、集約化されたコアノードに設定されるｉｎ＿ｐｏｒｔおよびＦＯＲＷＡＲＤ先のポートが決まっているため、トポロジ変換部６０２は、まずそれぞれのポートに該当する実ネットワーク上のポートを探索する。具体的には、トポロジ変換部６０２は、トポロジ変換テーブル６０５を参照して、該当のノードおよびポートを特定する。
【００７８】
次に、トポロジ変換部６０２は、実トポロジテーブル６０４を参照し、集約ネットワーク内のコアノードの接続関係に基づいて、特定したポートの間を結ぶ経路を探索する。このとき、探索の基準には経路最短化や容量最大化など、様々な方法が存在するが、トポロジ変換部６０２は、任意の基準や方法を用いて経路を探索すればよい。
【００７９】
図１０は、探索された経路の例を示す説明図である。例えば、最短経路探索により、図１０の太矢印で示す経路が探索されたとする。このとき、実トポロジテーブル６０４には、稼働系の集約ネットワーク５０３に含まれるリンクのみ設定されているため、最短経路として探索される経路は、集約ネットワーク５０３に含まれるリンクを介した経路のみになる。
【００８０】
経路が特定されると、トポロジ変換部６０２は、経路上のノードに対してフローを設定する。その際、トポロジ変換部６０２は、算出された通信経路に応じて、集約化フローを実フローに変換する（ステップＳ１２０３）。図１０に示す例では、対象のコアノードは、コアノード１００１、コアノード１００２およびコアノード１００３の３つである。経路が特定されれば、それぞれのコアノードの入力ポートおよび出力ポートが決定できるため、トポロジ変換部６０２は、このポートの関係から、集約化フローを各コアノードに設定する実ノードに分解できる。このようにして、図５に例示する実フローが算出される。
【００８１】
トポロジ変換部６０２は、算出したフローを仮想コントローラ６０３に通知し、対象のコアノードへ算出したフローが設定される（ステップＳ１２０４）。
【００８２】
次に、実ネットワークのコアノードが受け取ったPacket-In メッセージを制御装置５０１に通知する処理を説明する。図１１は、本実施形態の集約化装置５０２の他の動作例を示すフローチャートである。
【００８３】
仮想コントローラ６０３は、コアノードからのPacket-In メッセージを受信すると、トポロジ変換部６０２に通知する（ステップＳ１３０１）。
【００８４】
トポロジ変換部６０２は、トポロジ変換テーブル６０５を参照し、Packet-In メッセージを送信したコアノードのＩＤと、Packet-In メッセージに含まれるポート番号をもとに、対応する集約化ポートを特定する（ステップＳ１３０２）。対応する集約化ポートが存在しなかった場合（ステップＳ１３０２におけるＮＯ）、トポロジ変換部６０２は、該当のPacket-In メッセージを制御装置５０１に伝えることなく破棄する（ステップＳ１３０３）。
【００８５】
一方、対応する集約化ポートが存在した場合（ステップＳ１３０２におけるＹＥＳ）、トポロジ変換部６０２は、Packet-In メッセージのポート番号を変換する（ステップＳ１３０４）。具体的には、Packet-In メッセージには対象のパケットを受信したポート番号が含まれているため、トポロジ変換部６０２は、実ネットワークのコアノードにおけるポート番号を、集約ネットワークのコアノードにおけるポート番号に置き換える処理を行う。
【００８６】
トポロジ変換部６０２は、ポート番号を書き換えたPacket-In メッセージを仮想スイッチ６０１を介して制御装置５０１に通知する（ステップＳ１３０５）。
【００８７】
このように、トポロジ変換部６０２が、図８に例示する処理、および、図１１に例示する処理を行うことより、実ネットワークで発生したPacket-In メッセージを、あたかも集約ネットワークで発生したPacket-In メッセージであるかのように変換できる。
また、トポロジ変換部６０２が、集約ネットワークに設定されるフロー（集約化フロー）を、その時点の実ネットワークトポロジに合わせて実フローに分割するため、適切なコアノードにフローを設定ができる。そのため、制御装置５０１は、複雑な実ネットワークを意識することなくネットワーク上の通信を制御できる。
【００８８】
次に、実ネットワークに障害が発生した場合に集約ネットワークを切り替える処理を説明する。図１２は、集約ネットワークを切り替える処理の例を示す説明図である。また、図１３は、図１０に例示する状態から障害が発生した場合の動作例を示す説明図である。集約ネットワークの切り替えは、利用するトポロジを切り替えることにより行われる。
【００８９】
実ネットワークで障害が発生すると、障害検出部６１０が、その障害を検出する（ステップＳ１４０１）。ここでは、図１０に例示するコアノード１００１に障害が発生し、コアノード１００１が使用不可能になったものとする。障害検出部６１０は、その障害の内容をポリシ判定部６０８に通知する。
【００９０】
ポリシ判定部６０８は、受信した障害の内容をもとに、障害の影響レベルを判定する（ステップＳ１４０２）。ここでは、ポリシ判定部６０８は、フロー変換テーブル６０６を参照して、コアノード１００１が使用不可能となったという情報から、障害の影響を判定する。図５に示す例では、コアノード１００１が故障することで、集約化フローが実現不可能になる。このように、実現不可能な集約化フローが存在するため、ポリシ判定部６０８は、この集約化フローに対する経路の再計算を試みる。
【００９１】
図１３に例示するように、集約ネットワーク５０３のコアノード１００１に障害が発生すると、ルートの再設定は不可能である。そのため、ポリシ判定部６０８は、障害レベルを「回避不能な障害」と判定する。なお、ルートの再設定が可能であった場合には、ポリシ判定部６０８は、障害レベルを「回避可能な障害」と判定する。
【００９２】
ポリシ判定部６０８は、ネットワーク構成データベース６０７およびポリシデータベース６０９を参照し、系統（集約ネットワーク）の切り替え先を判定する（ステップＳ１４０３）。判定の前後で系統が同じであった場合、すなわち、系統の切り替えが必要でない場合（ステップＳ１４０３におけるＮＯ）、ポリシ判定部６０８は、何もせずに処理を終了する。
【００９３】
例えば、図７に例示するポリシがポリシデータベース６０９に設定されている場合、ポリシ判定部６０８は、ステップＳ１４０２で判定した「回避不能な障害」に対応する切り替え先の系統Ｂを特定する。また、例えば、図６に例示するネットワーク構成データベース６０７のように現在の系統が設定されている場合、ポリシ判定部６０８は、ネットワーク構成データベース６０７を参照して、現在の系統Ａを特定する。この場合、ポリシ判定部６０８は、現在の系統Ａから系統Ｂへの切り替えが必要と判定する。
【００９４】
系統の切り替えが必要であった場合（ステップＳ１４０３におけるＹＥＳ）、ポリシ判定部６０８は、トポロジ変換テーブル６０５を書き換える（ステップＳ１４０４）。上記の例では、切り替え先が系統Ｂである。そのため、ポリシ判定部６０８は、図６に例示する系統Ｂに含まれる実ノードＩＤ、リンクＩＤおよびポート対応リストをトポロジ変換テーブル６０５に書き込む。さらに、ポリシ判定部６０８は、ネットワーク構成データベース６０７において、系統Ａに設定された利用中フラグを削除し、系統Ｂに利用中フラグを設定する。
【００９５】
ポリシ判定部６０８は、トポロジ変換テーブル６０５への書き換えを検出すると、フロー変換テーブル６０６に設定するフローの再計算を行う（ステップＳ１４０５）。具体的には、ポリシ判定部６０８は、フロー変換テーブル６０６に設定されている実フローの部分をすべて削除する。そして、ポリシ判定部６０８は、図８に例示するステップＳ１２０２およびステップＳ１２０３で行った各集約化フローに対する処理と同様の処理を行う。
【００９６】
このように、ポリシ判定部６０８は、トポロジ変換テーブル６０５に保持されている情報を更新したときに、集約化フローに対応する実フローを再計算して、フロー変換テーブル６０６に保持された集約化フローに対する実フローを更新する。
【００９７】
ポリシ判定部６０８は、再構成されたフロー変換テーブル６０６の内容にしたがって、実ネットワークの各コアノードに対してフローを設定する（ステップＳ１４０６）。この処理は、図８に例示するステップＳ１２０４と同様である。
【００９８】
このように、ポリシ判定部６０８が、トポロジ変換テーブル６０５およびフロー変換テーブル６０６を更新することにより、制御装置５０１が、実ネットワークで発生した障害を意識することなく、障害発生の前後でネットワーク制御を継続できる。
【００９９】
以上のように、本実施形態では、トポロジ変換部６０２が、集約ネットワーク内のコアノードから制御装置への通知、および、制御装置から集約ネットワークへの通知をそれぞれ変換する。また、トポロジ変換テーブル６０５が、集約ネットワーク内のコアノードの接続関係、実ポートおよび実ノードを集約ネットワークごとに保持し、ポリシ判定部６０８が、トポロジ変換テーブル６０５が保持する情報を集約ネットワーク単位で更新する。そして、トポロジ変換部６０２は、トポロジ変換テーブル６０５に保持された情報に基づいて、集約化フローを、集約ネットワーク内のコアノードごとに規定される実フローに変換する。
【０１００】
よって、複数の通信装置を含む通信ネットワークにおいて、各通信装置への制御を簡易化しつつ、通信ネットワークの信頼性を向上させることができる。そのため、通信ネットワークの集約化を崩すことなく、障害を抑制できる。
【０１０１】
すなわち、本実施形態の通信システムでは、集約化装置５０２にトポロジ変換テーブル６０５とフロー変換テーブル６０６を用意し、ポリシ判定部６０８が、ネットワーク障害の検出時に各変換テーブルを書き換える。また、トポロジ変換テーブル６０５に書き込む内容を、ポリシデータベース６０９とネットワーク構成データベース６０７の内容に応じて変更する。
【０１０２】
具体的には、集約化装置５０２が集約化後の通信ネットワークと実際の通信ネットワークの間で情報の変換を行う際に参照するトポロジ変換テーブル６０５およびフロー変換テーブル６０６の内容を、ポリシ判定部６０８が現在利用中の系統に応じて書き換える。そのため、多系統構成による通信ネットワークの冗長化を行いつつ、集約化を実現できる。
【０１０３】
また、本実施形態の通信システムでは、集約化後の通信ネットワークと実際の通信ネットワークとの対応関係がネットワーク構成データベース６０７によって与えられ、ポートの対応以外の制約なくネットワークの構成を設定できる。そのため、通信ネットワークの冗長化構成を柔軟に設定できる。
【０１０４】
また、一般的な通信システムでは、大規模障害を想定して冗長化ネットワークを構築しようとした場合、ネットワークの全面的な切り替えのために、同じトポロジのネットワークを複数用意する必要があり、その構成に様々な制限が存在していた。しかし、本実施形態では、トポロジ変換テーブル６０５の内容を更新することで集約ネットワークを切り替えることができるため、上述するような制限を抑制できる。
【０１０５】
次に、本実施形態の通信システムの変形例を説明する。上記実施形態では、通信ネットワークの冗長化の場合を例示し、図１に例示するような同一のトポロジを有する二系統のネットワークを切り替える方法を説明した。本発明による通信システムでは、集約ネットワークに含まれる実ネットワークのノード構成は、ネットワーク構成データベース６０７に設定された内容によって決定される。そのため、より柔軟に冗長化構成を定義できる。
【０１０６】
図１４は、多系統の非対称なノード構成を含む冗長化ネットワークの例を示す説明図である。図１４に示す例では、実ネットワークに６つのコアノードが含まれ、４つのコアノードを含む系統の集約ネットワーク１８０１、３つのコアノードを含む系統の集約ネットワーク１８０２、および、６つのコアノードを含む系統の集約ネットワーク１８０３が定義されている。
【０１０７】
このように、図１４に例示する集約ネットワーク（系統）は、ノード数もトポロジも異なっており、また、複数の集約ネットワーク（系統）に属するコアノードも存在する。ただし、集約ネットワークからすべてのエッジノードに対するリンクが存在していれば、その構成は任意である。すなわち、コアノードを組み合わせて、すべてのエッジノードにリンクするような集約ネットワークが構成されればよい。トポロジ変換部６０２によって実ネットワークの構成は隠蔽されるため、上述する条件を満たす集約ネットワーク（系統）であれば、制御装置５０１から見えている集約ネットワークには影響しない。
【０１０８】
さらに、上記実施形態では、ポリシデータベース６０９に設定される障害レベルが「回避可能な障害」「回避不能な障害」の２種類だけであったが、障害レベルの種類はこの２種類に限定されない。また、上記実施形態では、障害レベルに応じて利用する系統が定義されていたが、利用する系統を決定するための情報は、障害レベルに限定されない。
【０１０９】
図１５は、ポリシデータベース６０９が保持する情報の他の例を示す説明図である。図１５に示す例では、現在利用中の系統と障害レベルに応じて利用する系統を決定するポリシを示している。
【０１１０】
図１５に示す例では、例えば、障害レベルが「ノードＸとノードＹの帯域狭窄」と検出された場合、利用中の系統に応じて、利用する系統を系統Ａまたは系統Ｂにそれぞれ変更することができる。このように、系統を切り替える条件を細分化することで、よりきめ細かな制御が可能になる。
【０１１１】
また、障害レベルには、より具体的な事象を設定することが可能である。例えば、障害レベルに「あるエッジノードからあるエッジノードの間の通信帯域の利用率が急激に上がった」という現象をポリシデータベース６０９に設定してもよい。ここで、例えば、利用中の系統に「系統Ａ」、利用する系統に「系統Ｂ」を対応付けて設定しておけば、系統Ａで上記現象を検知した際に、該当の経路の帯域に余裕のある系統Ｂに一時的に切り替えることが可能になる。このようにすることで、サービスが利用できなくなることを抑制できる。
【０１１２】
なお、この場合、「利用率が戻ったらもとに戻す」という制御も容易に行うことができる。例えば、利用中の系統に「系統Ｂ」を設定し、利用する系統に「系統Ａ」を設定し、障害レベルに、「あるエッジノードからあるエッジノードの間の通信帯域の利用率が平常値に戻った（帯域回復）」という現象をポリシデータベース６０９に設定すればよい。
【０１１３】
このように、ポリシ判定部６０８が、ポリシデータベース６０９に設定されたポリシに基づいて系統を切り替える処理を行う。そのため、冗長構成された通信ネットワークを、単なる障害回避のためだけではなく、サービス品質の保障やネットワーク利用効率の向上のためにも利用できる。
【０１１４】
次に、本発明の概要を説明する。図１６は、本発明による通信制御装置の概要を示すブロック図である。本発明による通信制御装置８０（例えば、集約化装置５０２）は、規定されたフローに応じて受信したパケットを処理するコアノード（例えば、コアノード５０５）と、コアノードを制御する制御装置（例えば、制御装置５０１）との間に接続され、１台以上のコアノードを集約した集約ネットワーク（例えば、集約ネットワーク５０３，５０４）内に存在する各コアノードを制御する。
【０１１５】
通信制御装置は、集約ネットワーク内のコアノードから受信する通知（例えば、Packet-In メッセージ）を、その集約ネットワークからの通知に変換して制御装置へ送信し、制御装置から受信する集約ネットワークに対する通知（例えば、集約化フロー）を集約ネットワーク内の各コアノードに対する通知（例えば、実フロー）に変換してそのコアノードに送信する通信制御部８１（例えば、トポロジ変換部６０２）と、集約ネットワーク内のコアノードの接続関係（例えば、リンク情報）、および、集約ネットワーク内のコアノードが、その集約ネットワーク外の装置に接続されるポートである実ポートと、その実ポートを有するコアノードである実ノードとを特定する情報（例えば、実ノードＩＤ、リンクＩＤ）を、集約ネットワークごとに記憶するトポロジ変換情報記憶部８２（例えば、実トポロジテーブル６０４、トポロジ変換テーブル６０５）と、トポロジ変換情報記憶部８２に記憶される情報を、集約ネットワーク単位で更新するトポロジ更新部８３（例えば、ポリシ判定部６０８）とを備えている。
【０１１６】
通信制御部８１は、トポロジ変換情報記憶部８２に記憶された情報に基づいて、制御装置から受信する集約ネットワークに対して規定された集約化フローを、集約ネットワーク内のコアノードごとに規定される実フローに変換する。
【０１１７】
そのような構成により、複数の通信装置を含む通信ネットワークにおいて、各通信装置への制御を簡易化しつつ、通信ネットワークの信頼性を向上させることができる。
【０１１８】
また、通信制御装置は、検出された事象（例えば、障害レベル）に応じて利用する集約ネットワークを定義したポリシを記憶するポリシ記憶部（例えば、ポリシデータベース６０９）を備えていてもよい。そして、トポロジ更新部８３は、ポリシに基づいて、トポロジ変換情報記憶部８２に記憶されている情報を、検出された事象に対応する集約ネットワークを示す情報で更新してもよい。そのような構成により、事象に応じた通信ネットワークの切り替えを柔軟に行うことが可能になる。
【０１１９】
また、通信制御部８１は、集約ネットワーク内のコアノードの接続関係に基づいて（例えば、最短経路探索により）通信経路を算出し、算出された通信経路に応じて、集約化フローを実フローに変換してもよい。このようにすることで、集約ネットワーク内の通信経路を動的に決定することが可能になる。
【０１２０】
また、通信制御装置は、相互に変換される集約化フローと実フローとを対応付けて記憶するフロー変換情報記憶部（例えば、フロー変換テーブル６０６）を備えていてもよい。そして、通信制御部８１は、フロー変換情報記憶部に記憶される情報に基づいて、集約化フローと実フローとを相互に変換してもよい。
【０１２１】
また、トポロジ更新部８３は、トポロジ変換情報記憶部に記憶されている情報を更新したときに、集約化フローに対応する実フローを再計算して、フロー変換情報記憶部に記憶された集約化フローに対する実フローを更新してもよい。そのようにすることで、集約ネットワークの切り替えを、通信制御に即時反映できる。
【０１２２】
図１７は、本発明による通信システムの概要を示すブロック図である。本発明による通信システムは、規定されたフローに応じて受信したパケットを処理するコアノード９０（例えば、コアノード５０５）と、コアノード９０を制御する制御装置（例えば、制御装置５０１）とコアノードとの間に接続され、１台以上のコアノードを集約した集約ネットワーク内に存在する各コアノードを制御する通信制御装置８０（例えば、集約化装置５０２）とを備えている。
【０１２３】
なお、通信制御装置８０が備える構成は、図１６に例示する通信制御装置８０が備える構成と同様である。このような構成であっても、複数の通信装置を含む通信ネットワークにおいて、各通信装置への制御を簡易化しつつ、通信ネットワークの信頼性を向上させることができる。
【０１２４】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１２５】
（付記１）規定されたフローに応じて受信したパケットを処理するコアノードと、前記コアノードを制御する制御装置との間に接続され、１台以上のコアノードを集約した集約ネットワーク内に存在する各コアノードを制御するコンピュータに適用される通信制御用プログラムであって、前記コンピュータに、前記集約ネットワーク内のコアノードから受信する通知を当該集約ネットワークからの通知に変換して前記制御装置へ送信し、前記制御装置から受信する集約ネットワークに対する通知を前記集約ネットワーク内の各コアノードに対する通知に変換して当該コアノードに送信する通信制御処理、および、前記集約ネットワーク内のコアノードの接続関係、および、前記集約ネットワーク内のコアノードが当該集約ネットワーク外の装置に接続されるポートである実ポートと当該実ポートを有するコアノードである実ノードとを特定する情報を、集約ネットワークごとに記憶するトポロジ変換情報記憶部の情報を、前記集約ネットワーク単位で更新するトポロジ更新処理を実行させ、前記通信制御処理で、前記トポロジ変換情報記憶部に記憶された情報に基づいて、前記制御装置から受信する前記集約ネットワークに対して規定された集約化フローを、前記集約ネットワーク内のコアノードごとに規定される実フローに変換させるための通信制御用プログラム。
【０１２６】
（付記２）コンピュータに、トポロジ更新処理で、検出された事象に応じて利用する集約ネットワークを定義したポリシに基づいて、トポロジ変換情報記憶部に記憶されている情報を、検出された事象に対応する集約ネットワークを示す情報で更新させる付記１記載の通信制御用プログラム。
【０１２７】
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１２８】
この出願は、２０１４年７月１６日に出願された日本特許出願２０１４−１４５８７２を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１２９】
１０１，２０１，５０１  制御装置
１０２，３０３，４０３，５０５，９０３，１００１〜１００８  コアノード
１０３，２０３，２０４  セキュアチャネル
１０４  通信リンク
１０５，４０４，４０５，５０６，５０７，９０１，９０２  エッジノード
２０２，５０２  集約化装置
３０１，３０２  通信ネットワーク
５０３，５０４，１８０１〜１８０３  集約ネットワーク
６０１  仮想スイッチ
６０２  トポロジ変換部
６０３  仮想コントローラ
６０４  実トポロジテーブル
６０５  トポロジ変換テーブル
６０６  フロー変換テーブル
６０７  ネットワーク構成データベース
６０８  ポリシ判定部
６０９  ポリシデータベース
６１０  障害検出部
【図１】
0006565914.tif 000002
【図２】
0006565914.tif 000003
【図３】
0006565914.tif 000004
【図４】
0006565914.tif 000005
【図５】
0006565914.tif 000006
【図６】
0006565914.tif 000007
【図７】
0006565914.tif 000008
【図８】
0006565914.tif 000009
【図９】
0006565914.tif 000010
【図１０】
0006565914.tif 000011
【図１１】
0006565914.tif 000012
【図１２】
0006565914.tif 000013
【図１３】
0006565914.tif 000014
【図１４】
0006565914.tif 000015
【図１５】
0006565914.tif 000016
【図１６】
0006565914.tif 000017
【図１７】
0006565914.tif 000018
【図１８】
0006565914.tif 000019
【図１９】
0006565914.tif 000020
【図２０】
0006565914.tif 000021
【図２１】
0006565914.tif 000022