(57)【要約】  集中制御型ネットワークの経路切替の高速化に貢献する。制御装置は、制御対象の転送装置に第１の経路でパケットを転送させるための第１の制御情報を生成する第１の制御情報生成部と、前記制御対象の転送装置に前記第１の制御情報の対象パケットを包含するパケット群を前記第１の経路とは異なる第２の経路で転送させる第２の制御情報を生成する第２の制御情報生成部と、前記第２の制御情報の優先度が、前記第１の制御情報よりも高くなるよう前記制御対象の転送装置に設定し、前記制御対象の転送装置に前記第２の制御情報の削除を指示することにより、少なくとも前記第１の制御情報に適合するパケットの転送経路を切替させる転送制御部と、を備える。
2014129624.tif 000002
【特許請求の範囲】
【請求項１】
制御対象の転送装置に第１の経路でパケットを転送させるための第１の制御情報を生成する第１の制御情報生成部と、
前記制御対象の転送装置に前記第１の制御情報の対象パケットを包含するパケット群を前記第１の経路とは異なる第２の経路で転送させる第２の制御情報を生成する第２の制御情報生成部と、
前記第２の制御情報の優先度が、前記第１の制御情報よりも高くなるよう前記制御対象の転送装置に設定し、
前記制御対象の転送装置に前記第２の制御情報の削除を指示することにより、少なくとも前記第１の制御情報に適合するパケットの転送経路を切替させる転送制御部と、
を備える制御装置。
【請求項２】
さらに、前記制御対象の転送装置から収集した情報に基づいて、前記第２の経路の障害を検出する故障通知受信部を備え、
前記転送制御部は、前記第２の経路に障害が発生した際に、前記制御対象の転送装置に前記第２の制御情報の削除を指示する請求項１の制御装置。
【請求項３】
前記転送制御部は、前記制御対象の転送装置に、
受信パケットと照合するマッチ条件と、参照すべき第２のテーブルとを対応付けた第１のテーブルと、
前記第１の制御情報と、前記第２の制御情報とを格納し、前記第１のテーブルの指定に従って参照される複数の第２のテーブルと、を設定する請求項１又は２の制御装置。
【請求項４】
前記第２のテーブルと、前記転送装置の出力ポートとが１対１に対応するよう、前記第２のテーブルを複数設ける請求項３の制御装置。
【請求項５】
前記第１の経路は、前記第２の経路に障害が発生した際の予備経路である請求項１から４いずれか一の制御装置。
【請求項６】
外部から設定された制御情報に従って受信パケットを処理する転送装置と、
前記転送装置に第１の経路でパケットを転送させるための第１の制御情報を生成する第１の制御情報生成部と、
前記転送装置に前記第１の制御情報の対象パケットを包含するパケット群を前記第１の経路とは異なる第２の経路で転送させる第２の制御情報を生成する第２の制御情報生成部と、前記第２の制御情報の優先度が、前記第１の制御情報よりも高くなるよう前記転送装置に設定し、前記転送装置に前記第２の制御情報の削除を指示することにより、少なくとも前記第１の制御情報に適合するパケットの転送経路を切替させる転送制御部と、を備える制御装置と、を含む通信システム。
【請求項７】
制御対象の転送装置に第１の経路でパケットを転送させるための第１の制御情報を生成するステップと、
前記制御対象の転送装置に前記第１の制御情報の対象パケットを包含するパケット群を前記第１の経路とは異なる第２の経路で転送させる第２の制御情報を生成するステップと、
前記第２の制御情報の優先度が、前記第１の制御情報よりも高くなるよう前記制御対象の転送装置に設定するステップと、
前記制御対象の転送装置に前記第２の制御情報の削除を指示することにより、少なくとも前記第１の制御情報に適合するパケットの転送経路を切替させるステップと、を含む経路切替方法。
【請求項８】
制御対象の転送装置に第１の経路でパケットを転送させるための第１の制御情報を生成する処理と、
前記制御対象の転送装置に前記第１の制御情報の対象パケットを包含するパケット群を前記第１の経路とは異なる第２の経路で転送させる第２の制御情報を生成する処理と、
前記第２の制御情報の優先度が、前記第１の制御情報よりも高くなるよう前記制御対象の転送装置に設定する処理と、
前記制御対象の転送装置に前記第２の制御情報の削除を指示することにより、少なくとも前記第１の制御情報に適合するパケットの転送経路を切替させる処理と、を前記転送装置を制御するコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１３−０３４９８２号（２０１３年２月２５日出願）に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、制御装置、通信システム、経路切替方法及びプログラムに関し、特に、転送装置を制御することにより通信を実現する制御装置、通信システム、経路切替方法及びプログラムに関する。
【背景技術】
【０００２】
非特許文献１、２にオープンフローと呼ばれる集中制御型のネットワークが提案されている。非特許文献２のＯｐｅｎＦｌｏｗ１．０．０の仕様におけるオープンフロースイッチ（以下、「ＯＦＳ」とも記す。）とオープンフローコントローラ（以下、「ＯＦＣ」とも記す。）について説明する。【０００３】
ＯＦＳは、パケットのルックアップとフォアワーディングを行うフローテーブルと、コントローラとの通信用のセキュアチャネルを備えている。ＯＦＣは、オープンフロープロトコルを用いてセキュアチャネル上でＯＦＳと通信し、例えばＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）レベルでフローを制御する。【０００４】
一例として、ＯＦＳに最初のパケット（Ｆｉｒｓｔ ｐａｃｋｅｔ）が到着すると、ＯＦＳは、フローテーブルから該パケットのヘッダ情報に適合するマッチ条件を持つエントリを検索する。前記検索の結果、受信パケットのヘッダ情報に適合するマッチ条件を持つエントリが見つからない場合、ＯＦＳは、当該パケットをコントローラにセキュアチャネルで転送する。【０００５】
ＯＦＣは、当該パケットの宛先、送信元情報に基づいて、ＯＦＣが管理するネットワークトポロジー情報から、該パケットの転送経路を決定する。ＯＦＣは、決定した転送経路上の各ＯＦＳのフローテーブルに、当該パケットを前記転送経路に沿って転送させる制御情報（フローエントリ）を設定する。【０００６】
以後、ＯＦＳは、前記最初のパケット（Ｆｉｒｓｔ  ｐａｃｋｅｔ）と共通するヘッダ情報を持つ後続パケットを受信すると、前記制御情報（フローエントリ）に従い、後続パケットを転送する。【０００７】
ＯＦＳのフローテーブルには、例えば、図１３に示すように、パケットヘッダと照合するマッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）と、フローに対する処理を定義したアクション（Ａｃｔｉｏｎ）と、フロー統計情報（Ｓｔａｔｉｓｔｉｃｓ）とを対応付けたエントリが格納される。マッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）は、フローを特定するフローフィルタ定義として機能し、正確な値（Ｅｘａｃｔ）とワイルドカード（Ｗｉｌｄ  Ｃａｒｄ）とを用いることができる。アクション（Ａｃｔｉｏｎ）としては、マッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）に適合するパケットに適用する処理内容（フローに対する処理定義）が設定される。フロー統計情報は、アクティビティカウンタともいい、アクティブエントリ数、パケットルックアップ数、パケットマッチ数、フロー単位に、受信パケット数、受信バイト数、フローがアクティブな期間、ポート単位で受信パケット、送信パケット、受信バイト、送信バイト、受信ドロップ、送信ドロップ、受信エラー、送信エラー、受信フレームアラインメントエラー、受信オーバーランエラー、受信ＣＲＣエラー、コリジョン数が含まれる。【０００８】
ＯＦＳは、入力されたパケットと、フローテーブルのマッチ条件との照合（マッチ）を実行し、マッチ条件にマッチするエントリが見つかった場合、当該パケットに対してマッチしたエントリのアクションフィールドの内容を適用する。一方、マッチするエントリが見つからなかった場合、ＯＦＳは、セキュアチャネルを介してＯＦＣに対して、当該パケットを転送する。ＯＦＣは、当該パケットの経路を決定した後、ＯＦＳに対し、その経路に沿った転送先を指示するフローエントリを送信する。ＯＦＣは、例えば、前記フローエントリにて実現されていた通信の終了検出、ネットワークトポロジーの変更検出、ＯＦＳの障害検出などの契機で、ＯＦＳに対し、フローエントリの変更や削除を指示する。ＯＦＳは、これらＯＦＣからの指示に従い、フローテーブルへのフローエントリの追加、変更、削除を行う。【０００９】
パケットのヘッダの所定のフィールドがスイッチのフローテーブルのマッチ条件との照合に用いられる。マッチ対象の情報は、図１４に示すＥｔｈｅｒｎｅｔ（登録商標）／ＴＣＰ／ＩＰパケットヘッダ中のＭＡＣ  ＤＡ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ）、ＭＡＣ  ＳＡ（ＭＡＣ  Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）、Ｅｔｈｅｒｎｅｔタイプ（ＴＰＩＤ；Ｔａｇ  Ｐｒｏｔｏｃｏｌ  ＩＤｅｎｔｉｆｉｅｒ）、ＶＬＡＮ  ＩＤ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ  ＩＤ)、ＶＬＡＮ  ＴＹＰＥ（優先度）、ＩＰ  ＳＡ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）、ＩＰ  ＤＡ（ＩＰ  Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ）、ＩＰ  プロトコル、Ｓｏｕｒｃｅ  Ｐｏｒｔ（ＴＣＰ／ＵＤＰ  ソースポート、あるいは、ＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）  Ｔｙｐｅ、Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ（ＴＣＰ／ＵＤＰ  ディスティネーションポート、あるいは、ＩＣＭＰ  Ｃｏｄｅ））を含む。【００１０】
図１５は、ＯＦＳがサポートする代表的なアクション名とアクションの内容を示す図である。ＯＵＴＰＵＴは、指定ポート（インタフェース）からパケットを出力するアクションである。ＳＥＴ＿ＶＬＡＮ＿ＶＩＤからＳＥＴ＿ＴＰ＿ＤＳＴは、パケットヘッダのフィールドを修正するアクションである。アクションが指定されないフローエントリにマッチしたパケットはドロップ（廃棄）される。【００１１】
また、ＯＦＳは、物理ポートだけでなく、以下の仮想ポートへパケットを転送する機能を有している。図１６は、ＯｐｅｎＦｌｏｗ１．０．０の仕様において予約されている仮想ポートの例である。ＩＮ＿ＰＯＲＴはパケットを入力ポートに出力する際に利用する仮想ポートである。ＮＯＲＭＡＬはスイッチがサポートする既存の転送パスを用いて処理する際に利用する仮想ポートである。ＦＬＯＯＤはパケットが入来したポートを除く通信可能状態（Ｆｏｒｗａｒｄｉｎｇ状態）のすべてのポートに転送する際に利用する仮想ポートである。ＡＬＬはパケットが入来したポートを除くポートに転送する際に利用する仮想ポートである。ＣＯＮＴＲＯＬＬＥＲはパケットをカプセル化してコントローラに送信する際に利用する仮想ポートである。ＬＯＣＡＬはパケットをスイッチ自身のローカルネットワークスタックに送信する際に利用する仮想ポートである。【００１２】
図１７に、セキュアチャネルを介してＯＦＳとＯＦＣ間で授受されるオープンフロープロトコルの代表的な制御メッセージを例示する。Ｆｌｏｗ−ｍｏｄは、ＯＦＣからＯＦＳに対して、フローエントリの追加、変更、削除を行うためのメッセージである。Ｐａｃｋｅｔ−Ｉｎは、ＯＦＳからＯＦＣに対して送られるメッセージで、フローエントリにマッチしなかったパケットを送るために用いられる。Ｐａｃｋｅｔ−ｏｕｔは、ＯＦＣからＯＦＳに対して送られるメッセージで、ＯＦＣが生成したパケットをＯＦＳの任意のポートから出力するために用いられる。Ｐｏｒｔ−ｓｔａｔｕｓはＯＦＳからＯＦＣに対して送られるメッセージで、ポートの状態が変化したことを通知するために用いられる。例えばポートに接続するリンクに故障が発生した場合、リンクダウン状態になったとの通知が送られる。Ｆｌｏｗ−Ｒｅｍｏｖｅｄは、スイッチからコントローラに対して送られるメッセージで、フローエントリが一定時間使用されず、タイムアウトでＯＦＳのフローテーブルから消されるときに、その旨コントローラへと通知されるために使用される。【００１３】
以上のＯｐｅｎＦｌｏｗ１．０．０の仕様は、非特許文献３において、複数のフローテーブルが扱えるよう拡張が行われている。非特許文献３のＯｐｅｎＦｌｏｗ１．１．０の仕様では、初めに決められたフローテーブル（ここではフローテーブル＃０）を参照する。フローテーブル中のエントリにマッチした場合、次にどのテーブルを参照するかを指定することができる。この拡張により、従来以上に柔軟な制御が可能となっている。【００１４】
特許文献１には、上記したオープンフローを用いた通信システムにおいて、代替経路を予め計算し、通信装置（上記ＯＦＳに相当）に、代替フローエントリを設定しておき、ネットワークの障害又は輻輳発生時に、ＯＦＳが、代替フローエントリのうちのドロップ（廃棄）アクションが設定されていたエントリを削除して、経路を切り替える構成が開示されている。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２０１２−４９６７４号公報
【非特許文献】
【００１６】
【非特許文献１】Ｎｉｃｋ  ＭｃＫｅｏｗｎほか７名、“ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”、［ｏｎｌｉｎｅ］、［平成２５（２０１３）年１月９日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-wp-latest.pdf〉
【非特許文献２】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  Ｖｅｒｓｉｏｎ  １．０．０  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０１）、［ｏｎｌｉｎｅ］、［平成２５（２０１３）年２月１４日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-spec-v1.0.0.pdf〉
【非特許文献３】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  Ｖｅｒｓｉｏｎ  １．１．０  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０２）、［ｏｎｌｉｎｅ］、［平成２５（２０１３）年２月１４日検索］、インターネット〈URL: http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【００１７】
以下の分析は、本発明によって与えられたものである。特許文献１に記載されているように、オープンフローに代表される集中制御型のネットワークでは、障害や輻輳が発生した際に、その対応に時間が掛かってしまうという問題点がある（特許文献１の段落０００６〜０００８参照）。【００１８】
この点、特許文献１の方法では、経路の高速切替が可能となっているが、スイッチの経路制御情報処理部に、フローテーブルに、障害発生ポートから転送するようなエントリがあるかどうかを検索する機能と、該当エントリがあった場合、該当エントリのマッチ条件と一致する代替フローエントリグループの処理「ｄｒｏｐ」を削除する更新を行う機能を追加する必要がある（特許文献１の段落００６４〜００６５参照）。【００１９】
本発明は、スイッチに特別な機能を追加しなくとも、集中制御型ネットワークの経路切替の高速化に貢献できる制御装置、通信システム、経路切替方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
第１の視点によれば、制御対象の転送装置に第１の経路でパケットを転送させるための第１の制御情報を生成する第１の制御情報生成部と、前記制御対象の転送装置に前記第１の制御情報の対象パケットを包含するパケット群を前記第１の経路とは異なる第２の経路で転送させる第２の制御情報を生成する第２の制御情報生成部と、前記第２の制御情報の優先度が、前記第１の制御情報よりも高くなるよう前記制御対象の転送装置に設定し、前記制御対象の転送装置に前記第２の制御情報の削除を指示することにより、少なくとも前記第１の制御情報に適合するパケットの転送経路を切替させる転送制御部と、を備える制御装置が提供される。【００２１】
第２の視点によれば、外部から設定された制御情報に従って受信パケットを処理する転送装置と、上記した制御装置と、を含む通信システムが提供される。【００２２】
第３の視点によれば、制御対象の転送装置に第１の経路でパケットを転送させるための第１の制御情報を生成するステップと、前記制御対象の転送装置に前記第１の制御情報の対象パケットを包含するパケット群を前記第１の経路とは異なる第２の経路で転送させる第２の制御情報を生成するステップと、前記第２の制御情報の優先度が、前記第１の制御情報よりも高くなるよう前記制御対象の転送装置に設定するステップと、前記制御対象の転送装置に前記第２の制御情報の削除を指示することにより、少なくとも前記第１の制御情報に適合するパケットの転送経路を切替させるステップと、を含む経路切替方法が提供される。本方法は、集中制御型のネットワークに配置された転送装置を制御する制御装置という、特定の機械に結びつけられている。【００２３】
第４の視点によれば、制御対象の転送装置に第１の経路でパケットを転送させるための第１の制御情報を生成する処理と、前記制御対象の転送装置に前記第１の制御情報の対象パケットを包含するパケット群を前記第１の経路とは異なる第２の経路で転送させる第２の制御情報を生成する処理と、前記第２の制御情報の優先度が、前記第１の制御情報よりも高くなるよう前記制御対象の転送装置に設定する処理と、前記制御対象の転送装置に前記第２の制御情報の削除を指示することにより、少なくとも前記第１の制御情報に適合するパケットの転送経路を切替させる処理と、を前記転送装置を制御するコンピュータに実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な（非トランジエントな）記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００２４】
本発明によれば、スイッチに特別な機能を追加しなくとも、集中制御型ネットワークの経路切替の高速化に貢献することが可能となる。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施形態の構成を示す図である。
【図２】本発明の一実施形態の動作を説明するための図である。
【図３】本発明の第１の実施形態の制御装置の構成を示す図である。
【図４】本発明の第１の実施形態の制御装置が保持するトポロジー情報の一例を示す図である。
【図５】本発明の第１の実施形態の制御装置が保持する経路情報の一例を示す図である。
【図６】図４のトポロジー情報に対応するスイッチ間のトポロジー構成を示す図である。
【図７】本発明の第１の実施形態の制御装置による経路計算結果を示す図である。
【図８】本発明の第１の実施形態の制御装置の動作（第１の制御情報設定処理）を示したフローチャートである。
【図９】本発明の第１の実施形態の制御装置の動作（第２の制御情報設定処理）を示したフローチャートである。
【図１０】本発明の第１の実施形態のスイッチの第１のテーブルに設定されているフローエントリの一例を示す図である。
【図１１】本発明の第１の実施形態のスイッチの第２のテーブルに設定されているフローエントリの一例を示す図である。
【図１２】本発明の第１の実施形態の制御装置の動作（経路切替処理）を示したフローチャートである。
【図１３】背景技術として説明するＯＦＳのフローテーブルの図である。
【図１４】背景技術として説明するＯＦＳが照合するパケットヘッダ中の項目を説明するための図である。
【図１５】背景技術として説明するＯＦＳが受信パケットに適用するアクションを示す図である。
【図１６】背景技術として説明するＯＦＳがサポートする仮想ポートを説明するための図である。
【図１７】背景技術として説明するオープンフロープロトコルの制御メッセージを説明するための図である。
【発明を実施するための形態】
【００２６】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００２７】
本発明は、その一実施形態において、図１に示すように、制御対象の転送装置１２０に第１の経路でパケットを転送させるための第１の制御情報を生成する第１の制御情報生成部６１と、前記制御対象の転送装置１２０に前記第１の制御情報の対象パケットを包含するパケット群を前記第１の経路とは異なる第２の経路で転送させる第２の制御情報を生成する第２の制御情報生成部６２と、転送制御部６３とを備える制御装置６０にて実現できる。より具体的には、前記転送制御部６３は、前記第２の制御情報の優先度が、前記第１の制御情報よりも高くなるよう前記制御対象の転送装置１２０に設定しておく。そして、転送制御部６３は、前記制御対象の転送装置に前記第２の制御情報の削除を指示することにより、少なくとも前記第１の制御情報に適合するパケットの転送経路を切替させる（図２参照）。
【００２８】
以上のようにすることで、例えば、転送装置１２０のポートに障害が発生した際に（障害発生は、例えば、前述の「Ｐｏｒｔ−ｓｔａｔｕｓ」メッセージの受信等により検出できる。）、そのポートを転送先としている第２の制御情報の削除を指示するだけで、経路を切り替えることが可能となる。
【００２９】
なお、切替先の転送装置には、予め該当パケットを宛先に転送するための制御情報が設定されていることが望ましいが、例えば、切替先に転送装置から前述のＰａｃｋｅｔ−Ｉｎメッセージを制御装置６０に送信させることで経路を再計算し、制御情報を設定する構成することも可能である。
【００３０】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図３は、本発明の第１の実施形態の制御装置６の構成を示す図である。図３を参照すると、ネットワーク中の各スイッチと通信を行うセキュアチャネル１と、スイッチ管理部２と、経路管理部３と、トポロジー管理部４と、経路データベース５とを備えた構成が示されている。
【００３１】
スイッチ管理部２は、故障通知受信部２１と、制御情報送出部２２とを含む。故障通知受信部２１は、セキュアチャネル１を介して、スイッチからの故障通知を受信すると、経路管理部３の制御情報削除指令生成部３１へ故障の内容を送る。制御情報送出部２２は、セキュアチャネル１を介して、経路管理部３の制御情報削除指令生成部３１、正常系制御情報生成部３４、第２テーブル用正常系制御情報生成部３５及び予備系制御情報生成部３６のいずれかから送られてきた制御情報を各スイッチへと送る。
【００３２】
経路管理部３は、制御情報削除指令生成部３１と、経路計算部３２と、予備系経路計算部３３と、正常系制御情報生成部３４と、第２テーブル用正常系制御情報生成部３５と、予備系制御情報生成部３６と、を含む。
【００３３】
制御情報削除指令生成部３１は、故障通知受信部２１から送られてきた故障通知を解析し、該当するスイッチの該当する第２テーブルの制御情報（第２の制御情報）の削除を指令する制御メッセージを生成し、制御情報送出部２２へと送る。
【００３４】
経路計算部３２は、トポロジーデータベース（トポロジーＤＢ）４２に格納されているトポロジー情報を元に、正常時に使用する経路（第２の経路）の計算を行い、正常系制御情報生成部３４及び第２テーブル用正常系制御情報生成部３５に送る。
【００３５】
予備系経路計算部３３は、トポロジーＤＢ４２に格納されているトポロジー情報を元に、スイッチの各ポート故障時に使用する経路（第１の経路）の計算を行い、予備系制御情報生成部３６に送る。
【００３６】
正常系制御情報生成部３４は、経路計算部３２から送られてきた経路計算結果を元に、スイッチの第１テーブルに格納する制御情報を生成し、制御情報送出部２２へと送る。
【００３７】
第２テーブル用正常系制御情報生成部３５は、経路計算部３２から送られてきた経路計算結果を元に、スイッチのテーブルに格納する高優先正常系制御情報（第２の制御情報）を生成し、制御情報送出部２２へと送る。
【００３８】
予備系制御情報生成部３６は、予備系経路計算部３３から送られてきた経路計算結果を元に、スイッチのテーブルに格納する予備系制御情報（第１の制御情報）を生成し、制御情報送出部２２へと送る。
【００３９】
トポロジー管理部４は、トポロジー更新部４１と、トポロジーＤＢ４２とを含む。トポロジー更新部４１は、故障通知受信部２１から送られてきた故障通知を元に、トポロジーＤＢ４２の情報を更新する。
【００４０】
トポロジーＤＢ４２は、制御装置６が管理するネットワーク中の各スイッチ間の接続情報を格納している。図４は、トポロジーＤＢ４２に保持されているトポロジー情報の一例を示す図である。図４の例では、入口側のスイッチのＩＤ４１１と、入口側のスイッチの出力ポート番号４１２と、出口側のスイッチのＩＤ４１３と、出口側のスイッチの入力ポート番号４１４とを対応付けたエントリが示されている。
【００４１】
例えば図４の上から１番目のエントリは、ＩＤが１２１であるスイッチの２番目のポートから、ＩＤが１２２であるスイッチの１番目のポートへと至るリンクが存在することを示している。同様に、図４の上から２、３番目のエントリは、ＩＤが１２１であるスイッチの３番目、４番目のポートから、ＩＤが１２３、１２４であるスイッチの１番目のポートへと至るリンクが存在することを示している。このようなエントリを用いて図６に示すようなスイッチ１２１〜１２４間の接続関係を表すことができる。
【００４２】
なお、この上記したトポロジー情報は、例えば、制御装置６が、スイッチに、上述したＰａｃｋｅｔ−Ｏｕｔメッセージを用いてＬＬＤＰ（Ｌｉｎｋ  Ｌａｙｅｒ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）パケット等の送出を指示し、対抗するスイッチから上述したＰａｃｋｅｔ−Ｉｎメッセージを受信することで収集できる。もちろん、その他の方法で別途用意したネットワークトポロジーを用いてもよい。
【００４３】
経路データベース（経路ＤＢ）５は、経路計算部３２及び予備系経路計算部３３が計算した経路情報を格納している。図５は、経路ＤＢ５に保持されている経路情報の一例を示す図である。図５の例では、宛先プレフィックス５１１と、出口スイッチＩＤ５１２と、出口スイッチ（予備用）ＩＤ５１３とを対応付けたエントリが示されている。
【００４４】
例えば図５の上から１番目のエントリは、宛先プレフィックス１９２．１６８．１．０／２４に接続する出口スイッチはＩＤが１２２であるスイッチであり、また、予備用の出口スイッチはＩＤが１２３であることを示している。また、上から２番目のエントリは、宛先プレフィックス１９２．１６８．２．０／２４に接続する出口スイッチはＩＤが１２４であるスイッチであり、また、予備用の出口スイッチはＩＤが１２３であることを示している。図７は、図６に、図５の経路情報を重ねて表した図である。以下の説明では、図７のように正常系経路（第２の経路）と、予備系経路（第１の経路）が計算されたものとして説明する。
【００４５】
なお、上記した制御装置６の構成中、第２テーブル用正常系制御情報生成部３５が、上記した第２の制御情報生成部に相当し、予備系制御情報生成部３６が上記した第１の制御情報生成部に相当する。
【００４６】
なお、図３に示した制御装置６の各部（処理手段）は、制御装置６を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【００４７】
続いて、本実施形態の動作について図面を参照して詳細に説明する。はじめに、本発明の第１の実施形態の制御装置が経路毎に実施する制御情報の設定処理について説明する。図８は、本発明の第１の実施形態の制御情報の動作（制御情報設定処理１）を表したフローチャートである。また、以下の説明では、スイッチは、非特許文献３のように、制御情報格納用のテーブルを複数保持可能となっており、パケットを受信すると、必ず、第１テーブル（以下「テーブルＴ０」と記す）を参照して以降の処理を決定するよう動作するものとして説明する。また、スイッチは、そのポート番号に対応する第２テーブル群（例えば、１〜ｎ番目のポートに対し、テーブル番号１〜ｎのｎ個の第２テーブル、以下、「テーブルＴ１〜Ｔｎ」と記す。）を備えるものとして説明する。
【００４８】
図８を参照すると、まず、経路計算部３２は、経路ＤＢ５から未処理のエントリＲ１を取り出す（ステップＳ１）。例えば、図５の経路エントリの上から１番目のエントリが取り出される。
【００４９】
次に、経路計算部３２は、トポロジーＤＢ４２から、エントリＲ１中の出口スイッチに接続するリンクを検索し、入口側スイッチの出力ポートＰ１を決定する（ステップＳ２）。例えば、図４のトポロジー情報の中から、エントリＲ１中の出口スイッチ１２２に接続するリンクに当たる上から１番目のエントリが抽出される。この場合、入口側スイッチの出力ポートＰ１は、図７のスイッチ１２１の２番目のポート（ポート２）となる。
【００５０】
次に、正常系制御情報生成部３４は、エントリＲ１中の宛先プレフィックスを含むマッチ条件と、出力ポートＰ１に対応した第２テーブルを参照するというアクションと対応付けた制御情報（振り分け用制御情報）を生成する（ステップＳ３）。例えば、図７のスイッチ１２１に対し、図５の宛先プレフィックスを含むマッチ条件と、２番目のポート（ポート２）に対応するテーブルＴ２の参照を指示するアクションとを対応付けた図１０の上から１番目の制御情報が生成される。なお、本実施形態では、入口側スイッチの出力ポート番号Ｐ１と、テーブルの番号が１対１に対応しているものとして説明するが、両者の対応付けた規定したテーブル等を参照して、参照先のテーブルを決定するようにしてもよい。
【００５１】
次に、制御情報送出部２２は、スイッチに対し、第１テーブルＴ０へと登録する指示とともに制御情報（振り分け用制御情報）を送信する（ステップＳ４）。ここでは、スイッチ１２１に対し、マッチ条件１９２．１６８．１．０／２４に適合するパケットを受信すると、テーブルＴ２を参照するとのアクションを持つ制御情報が設定されることになる（図１０の一番上のエントリ参照）。
【００５２】
続いて、予備系経路計算部３３は、ステップＳ１で取り出したエントリ中の出口スイッチ（予備用）に接続するリンクをトポロジーＤＢ４２から検索し、入口側スイッチの出力ポートＰ２を決定する（ステップＳ５）。例えば、図４のトポロジー情報の中から、エントリＲ１中の出口スイッチ（予備用）１２３に接続するリンクに当たる上から２番目のエントリが抽出される。この場合、入口側スイッチの出力ポートＰ２は、図７のスイッチ１２１の３番目のポート（ポート３）となる。
【００５３】
予備系制御情報生成部は、エントリＲ１中の宛先プレフィックスを含むマッチ条件と、出力ポートＰ２から出力するというアクションとを対応付けた制御情報（第１の制御情報）を生成する（ステップＳ６）。
【００５４】
次に、制御情報送出部２２は、スイッチに対し、第２テーブルＴ２へと登録する指示とともに制御情報（第１の制御情報）を送信する（ステップＳ７）。ここでは、スイッチ１２１に対し、マッチ条件１９２．１６８．１．０／２４に適合するパケットを受信すると、ポートＰ２、即ち、３番目のポートから出力するとのアクションを持つ制御情報（第１の制御情報）が設定されることになる（図１１の上段のテーブルの上から２番目のエントリ参照）。また、この制御情報（第１の制御情報）は、後に説明する第２の制御情報よりも低い優先度が設定される（図１１の上段のテーブルの上から２番目のエントリのＰｒｉｏｒｉｔｙ＝１参照）。このため、例えば、スイッチ１２１が、宛先ＩＰアドレスが１９２．１６８．１．１であるサーバ１４１宛てのパケットを受信した場合、より高い優先度を持つ第２の制御情報が存在するならば、第２の制御情報のアクションが適用されることになる。
【００５５】
次に、経路計算部３２は、経路ＤＢ５中のすべてのエントリが処理済みかを確認し（ステップＳ８）、処理済みでなければステップＳ１へと戻り、処理済みであれば一連の手続きを終了する。例えば、図５の上から２番目のエントリが処理済みでない場合、上記した処理を実行し、スイッチ１２１の第１テーブルＴ０へ制御情報（振り分け用制御情報）を設定する処理（図１０の上から２番目のエントリ参照）と、スイッチ１２１の第２テーブルＴ４へ制御情報（第１の制御情報）を設定する処理（図１１の下段のテーブルの上から２番目のエントリ参照）とが行われる。
【００５６】
本発明の第１の実施形態の制御装置が出力ポート毎に実施する制御情報の設定処理について説明する。図９は、本発明の第１の実施形態の制御装置の動作（制御情報設定処理２）を表したフローチャートである。図９を参照すると、第２テーブル用正常系制御情報生成部３５は、処理対象のスイッチＳの出力ポートのうち、処理済みでないポートＰを選択する（ステップＳ１１）。例えば、図７のスイッチ１２１のポートのうちポート２、ポート４の処理が済んでいない場合、ポート２が選択される。
【００５７】
次に、第２テーブル用正常系制御情報生成部３５は、すべてのフィールドにワイルドカードを設定したマッチ条件と、該当ポートＰに出力するというアクションとを対応付けた制御情報（第２の制御情報）を生成する（ステップＳ１２）。
【００５８】
次に、制御情報送出部２２は、スイッチに対し、前記選択したポートＰに対応する第２テーブルＴＰへと登録する指示とともに、前記制御情報（第２の制御情報）を送信する（ステップＳ１３）。例えば、ステップＳ１１でスイッチ１２１のポート２が選択された場合、スイッチ１２１に対し、すべてのパケットをポート２から出力するとのアクションを持つ制御情報が設定されることになる（図１１の上段のテーブルの上から１番目のエントリ参照）。この制御情報（第２の制御情報）は、前述の第１の制御情報よりも高い優先度が設定される（図１１の上段のテーブルの上から１番目のエントリのＰｒｉｏｒｉｔｙ＝６５５３５参照）。このため、例えば、スイッチ１２１が、宛先ＩＰアドレスが１９２．１６８．１．１であるサーバ１４１宛てのパケットを受信した場合、第２の制御情報が存在するならば、第２の制御情報のアクションが適用されることになる。
【００５９】
次に、第２テーブル用正常系制御情報生成部３５は、処理対象のスイッチＳの出力ポートが処理済みかを確認し（ステップＳ１４）、処理済みでなければステップＳ１１へと戻り、処理済みであれば一連の手続きを終了する。図７のスイッチ１２１のポート４の処理が済んでいない場合、上記した処理を実行し、スイッチ１２１のポート４に対応する第２テーブルＴ４へ制御情報（第２の制御情報）を設定する処理（図１１の下段のテーブルの上から１番目のエントリ参照）が行われる。
【００６０】
続いて、図１０、図１１のように制御情報の設定が完了したとの前提で、スイッチから故障通知として、ポートダウンの通知を受信した場合の動作について説明する。図１２が、本発明の第１の実施形態の制御装置の動作（経路切替処理）を示したフローチャートである。
【００６１】
図１２を参照すると、まず、スイッチＳからポートｍがダウンしたという通知を受信すると（ステップＳ２１）、制御装置６は、スイッチＳに対し、当該スイッチＳのポートｍに対応する第２テーブルＴｍから、第２の制御情報の削除を指示する制御メッセージ（図１７のＦｌｏｗ−ｍｏｄメッセージ）を送信する（ステップＳ２２）。
【００６２】
例えば、図７のスイッチ１２１から、ポート２がダウンしたとの通知を受けた場合、制御装置６は、スイッチ１２１に対し、図１１の上段に示すテーブルＴ２から、高優先の第２の制御情報のエントリを削除するよう指示する。従って、その後、スイッチ１２１が、宛先ＩＰアドレスが１９２．１６８．１．１であるサーバ１４１宛てのパケットを受信した場合、マッチ条件として１９２．１６８．１．０／２４が設定されている第１の制御情報がヒットすることになり、第１の制御情報に規定されたアクション（ポート３から出力）が適用されることになる。これにより、図７に示した宛先プレフィックス１９２．１６８．１．０／２４の経路が、実線で示した正常系経路から破線で示した予備系経路に切り替わる。
【００６３】
同様に、例えば、図７のスイッチ１２１から、ポート４がダウンしたとの通知を受けた場合、制御装置６は、スイッチ１２１に対し、図１１の下段に示すテーブルＴ４から、高優先の第２の制御情報のエントリを削除するよう指示する。従って、その後、スイッチ１２１が、宛先ＩＰアドレスが１９２．１６８．２．１であるサーバ１４２宛てのパケットを受信した場合、第１の制御情報がヒットすることになり、第１の制御情報に規定されたアクション（ポート３から出力）が適用されることになる。これにより、図７に示したサーバ１４１宛ての経路が、実線で示した正常系経路から破線で示した予備系経路に切り替わる。
【００６４】
また、上記のように、予備経路を実現する第１の制御情報には、制御対象のパケットを特定するマッチ条件を記述してあるため、例えば、スイッチ１２２と、スイッチ１２４との双方の正常系経路に障害が発生したとしても、スイッチ１２３に適切なマッチ条件を持つ制御情報を設定することで、それぞれの宛先に応じた転送を行わせることができる。
【００６５】
以上、本実施形態の制御装置６が、スイッチからポートダウンの通知を受けた場合の動作を説明したが、ポートに接続するリンクの障害時にも同様な動作を適用可能である。例えば、隣接スイッチ間でキープアライブを意味するメッセージをお互いに定期的に送信しておき、これらのメッセージが一定時間到着しなかった場合、リンクダウンと判断し、このリンクの接続するポートに対して、図１２と同様の処理を行えばよい。
【００６６】
以上、本発明の実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成や要素の構成は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
【００６７】
例えば、上記した実施形態では、第２の制御情報のマッチ条件に、すべてのフィールドにワイルドカードを設定する例を挙げて説明したが、特定のフィールドに条件を入れて、特定のパケットを対象から外してもよい（例えば、特定のＶＬＡＮ  ＩＤを持つパケット等）。
【００６８】
また、上記した実施形態では、ポートダウンやリンク障害を契機に、正常系の経路と予備系の経路とを切り替える例を挙げて説明したが、本発明の適用場面は上記した例に限られるものではない。例えば、特定のリンクの輻輳を契機に経路を切り替える、特定のタイミングで経路を切り替えるといった用途にも適用可能である。
【００６９】
また、上記した実施形態では、１つのスイッチに、３つのスイッチが接続されている例を挙げて説明したが、スイッチの数に制限はない。例えば、図６のスイッチ１２２〜１２４よりも出口側にスイッチが配置されている場合であっても、同様に経路を計算し、入口側のスイッチ（スイッチ１２１に限られず、代替経路を構成するポートを持つスイッチであればよい）に、第１、第２の制御情報を設定することで、高速な経路切替を実現することができる。
【００７０】
最後に、本発明の好ましい形態を要約する。
［第１の形態］
（上記第１の視点による制御装置参照）
［第２の形態］
第１の形態の制御装置において、
さらに、前記制御対象の転送装置から収集した情報に基づいて、前記第２の経路の障害を検出する故障通知受信部を備え、
前記転送制御部は、前記第２の経路に障害が発生した際に、前記制御対象の転送装置に前記第２の制御情報の削除を指示する制御装置。
［第３の形態］
第１又は第２の形態の制御装置において、
前記転送制御部は、前記制御対象の転送装置に、
受信パケットと照合するマッチ条件と、参照すべき第２のテーブルとを対応付けた第１のテーブルと、前記第１の制御情報と、前記第２の制御情報とを格納し、前記第１のテーブルの指定に従って参照される複数の第２のテーブルと、を設定する制御装置。
［第４の形態］
第３の形態の制御装置において、
前記第２のテーブルと、前記転送装置の出力ポートとが１対１に対応するよう、前記第２のテーブルを複数設ける制御装置。
［第５の形態］
第１から第４いずれか一の形態の制御装置において、
前記第１の経路は、前記第２の経路に障害が発生した際の予備経路である制御装置。
［第６の形態］
（上記第２の視点による通信システム参照）
［第７の形態］
（上記第３の視点による経路切替方法参照）
［第８の形態］
（上記第４の視点によるプログラム参照）
なお、上記第６〜第８の形態は、第１の形態と同様に、第２〜第５の形態に展開することが可能である。
【００７１】
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００７２】
１  セキュアチャネル
２  スイッチ管理部
３  経路管理部
４  トポロジー管理部
５  経路データベース（経路ＤＢ）
６、６０  制御装置
２１  故障通知受信部
２２  制御情報送出部
３１  制御情報削除指令生成部
３２  経路計算部
３３  予備系経路計算部
３４  正常系制御情報生成部
３５  第２テーブル用正常系制御情報生成部
３６  予備系制御情報生成部
４１  トポロジー更新部
４２  トポロジーＤＢ
６１  第１の制御情報生成部
６２  第２の制御情報生成部
６３  転送制御部
１０１  端末
１２０  転送装置
１２１〜１２４  スイッチ
１３１、１３２  ネットワーク
１４１、１４２  サーバ
４１１  入口側のスイッチのＩＤ
４１２  入口側のスイッチの出力ポート番号
４１３  出口側のスイッチのＩＤ
４１４  出口側のスイッチの入力ポート番号
５１１  宛先プレフィックス
５１２  出口スイッチＩＤ
５１３  出口スイッチ（予備用）ＩＤ 
【図１】
2014129624.tif 000003
【図２】
2014129624.tif 000004
【図３】
2014129624.tif 000005
【図４】
2014129624.tif 000006
【図５】
2014129624.tif 000007
【図６】
2014129624.tif 000008
【図７】
2014129624.tif 000009
【図８】
2014129624.tif 000010
【図９】
2014129624.tif 000011
【図１０】
2014129624.tif 000012
【図１１】
2014129624.tif 000013
【図１２】
2014129624.tif 000014
【図１３】
2014129624.tif 000015
【図１４】
2014129624.tif 000016
【図１５】
2014129624.tif 000017
【図１６】
2014129624.tif 000018
【図１７】
2014129624.tif 000019
【国際調査報告】
2014129624.tif 000020
2014129624.tif 000021
2014129624.tif 000022
2014129624.tif 000023