(57)【要約】 【課題】制御チャネルにＩｎ−ｂａｎｄ制御方式を用いるネットワークの耐障害性、可用性の向上に貢献する。【解決手段】スイッチは、パケットを処理するパケット処理部と、前記制御チャネルを介して前記制御装置と通信するためのポートを管理する制御チャネル管理部と、他のスイッチと接続されたポートの障害を検出すると、自装置が保持している前記制御チャネルを構成するための制御情報の中から、前記ポートを出力先とする制御情報を検索し、該制御情報にて指定されたパケットの送信元の隣接スイッチに対し、前記制御情報に適合するパケットの転送先を変更するよう指示する切替メッセージを作成して送信する切替メッセージ作成部と、他のスイッチから切替メッセージを受信した場合、前記制御チャネル管理部にて管理されている制御装置と通信するためのポートを変更する切替メッセージ処理部と、を備える。【選択図】図１
2014160951.tif 000002
【特許請求の範囲】
【請求項１】
スイッチ間のデータ転送チャネルを用いて構成された制御チャネルを介して所定の制御装置から設定された制御情報に基づいて、パケットを処理するパケット処理部と、
前記制御チャネルを介して前記制御装置と通信するためのポートを管理する制御チャネル管理部と、
他のスイッチと接続されたポートの障害を検出すると、自装置が保持している前記制御チャネルを構成するための制御情報の中から、前記ポートを出力先とする制御情報を検索し、該制御情報にて指定されたパケットの送信元の隣接スイッチに対し、前記制御情報に適合するパケットの転送先を変更するよう指示する切替メッセージを作成して送信する切替メッセージ作成部と、
他のスイッチから切替メッセージを受信した場合、前記制御チャネル管理部にて管理されている制御装置と通信するためのポートを変更する切替メッセージ処理部と、
を備えるスイッチ。
【請求項２】
前記制御情報には、前記データ転送チャネルを用いて構成された制御チャネル上のパケットを転送するための制御情報であるか否かを示す情報が含まれており、
前記切替メッセージ作成部は、
前記制御チャネル上のパケットを転送するための制御情報の中から、前記障害が検出されたポートを出力先とする制御情報を検索し、該制御情報にて指定されたパケットの送信元の隣接スイッチに対し、前記制御情報に適合するパケットの転送先を変更するよう指示する切替メッセージを作成して送信する請求項１のスイッチ。
【請求項３】
前記切替メッセージ処理部は、
前記制御チャネル管理部にて管理されている制御装置と通信するためのポートの変更後、前記切替メッセージの送信元のスイッチに対し、切替完了メッセージを送信し、
他のスイッチから前記切替完了メッセージを受信すると、前記制御チャネル管理部にて管理されている制御装置と通信するためのポートを前記他のスイッチに変更する請求項１又は２のスイッチ。
【請求項４】
前記切替メッセージ作成部は、
他のスイッチの接続を検出した場合、前記他のスイッチに対し、自装置に対し前記制御装置に対するパケットを送信するよう指示するメッセージを送信する請求項１から３いずれか一のスイッチ。
【請求項５】
前記切替メッセージ処理部は、前記制御チャネルが確立されていない状態において、
他のスイッチから、自装置に対し前記制御装置に対するパケットを送信するよう指示するメッセージを受信した場合、前記他のスイッチに対し、前記制御装置に対するパケットを送信する請求項１から４いずれか一のスイッチ。
【請求項６】
スイッチ間のデータ転送チャネルを用いて構成された制御チャネルを介してスイッチに対し、前記制御チャネルを構成するための制御情報であるか否かを示す情報を含んだ制御情報を設定する制御装置。
【請求項７】
一のスイッチが、制御装置と通信するためのポートを変更したことによる、前記ポートに接続する他のスイッチからのパケットの受信を契機として、前記制御チャネルの経路を変更する請求項６の制御装置。
【請求項８】
スイッチ間のデータ転送チャネルを用いて構成された制御チャネルを介して所定の制御装置から設定された制御情報に基づいて、パケットを処理するパケット処理部と、
前記制御チャネルを介して前記制御装置と通信するためのポートを管理する制御チャネル管理部と、
他のスイッチと接続されたポートの障害を検出すると、自装置が保持している制御情報の中から、前記ポートを出力先とする制御情報を検索し、該制御情報にて指定されたパケットの送信元の隣接スイッチに対し、前記制御情報に適合するパケットの転送先を変更するよう指示する切替メッセージを作成して送信する切替メッセージ作成部と、
他のスイッチから切替メッセージを受信した場合、前記制御チャネル管理部にて管理されている制御装置と通信するためのポートを変更する切替メッセージ処理部と、を備えるスイッチと、
前記スイッチに対し、前記制御情報を設定する制御装置と、を含む通信システム。
【請求項９】
スイッチ間のデータ転送チャネルを用いて構成された制御チャネルを介して、所定の制御装置から設定された制御情報に基づいてパケットを処理するパケット処理部と、
前記制御チャネルを介して前記制御装置と通信するためのポートを管理する制御チャネル管理部と、を備える第１のスイッチが、他のスイッチと接続されたポートの障害を検出すると、自装置が保持している制御情報の中から、前記ポートを出力先とする制御情報を検索し、該制御情報にて指定されたパケットの送信元の隣接スイッチに対し、前記制御情報に適合するパケットの転送先を変更するよう指示する切替メッセージを作成して送信するステップと、
前記第１のスイッチの隣接スイッチである第２のスイッチが、前記第１のスイッチから切替メッセージを受信した場合、前記制御チャネル管理部にて管理されている制御装置と通信するためのポートを変更するステップと、
を含む制御チャネルの管理方法。
【請求項１０】
スイッチ間のデータ転送チャネルを用いて構成された制御チャネルを介して所定の制御装置から設定された制御情報に基づいて、パケットを処理するパケット処理部と、前記制御チャネルを介して前記制御装置と通信するためのポートを管理する制御チャネル管理部と、を備えたスイッチに搭載されたコンピュータに、
他のスイッチと接続されたポートの障害を検出すると、自装置が保持している前記制御チャネルを構成するための制御情報の中から、前記ポートを出力先とする制御情報を検索し、該制御情報にて指定されたパケットの送信元の隣接スイッチに対し、前記制御情報に適合するパケットの転送先を変更するよう指示する切替メッセージを作成して送信する処理と、
他のスイッチから切替メッセージを受信した場合、前記制御チャネル管理部にて管理されている制御装置と通信するためのポートを変更する処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スイッチ、制御装置、通信システム、制御チャネルの管理方法及びプログラムに関し、特に、スイッチ間のデータ転送チャネルを用いて構成された制御チャネルを介して所定の制御装置から設定された制御情報に従い動作するスイッチ、制御装置、通信システム、制御チャネルの管理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、ネットワーク機器のパケット転送機能と経路制御等の制御機能とを分離する形態のネットワークが注目を浴びている。このようなネットワークでは、ネットワーク機器がパケット転送機能を担い、ネットワーク機器の外部に分離したコントローラが制御機能を担うことになる。このようにすることで、制御が容易になり柔軟性に富んだネットワークを構築することが可能になる。
【０００３】
特許文献１、非特許文献１、２に、上記集中制御型のネットワークを実現するオープンフローという技術が提案されている。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。非特許文献２に仕様化されているオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）と、フロー統計情報（Ｃｏｕｎｔｅｒｓ）と、処理内容を定義したインストラクション（Ｉｎｓｔｒｕｃｔｉｏｎｓ）と、の組が定義される（非特許文献２の「５．２  Ｆｌｏｗ  Ｔａｂｌｅ」の項参照）。
【０００４】
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチ条件（非特許文献２の「５．３  Ｍａｔｃｈｉｎｇ」参照）を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報（カウンタ）を更新するとともに、受信パケットに対して、当該エントリのインストラクションフィールドに記述された処理内容（指定ポートからのパケット送信、フラッディング、廃棄等）を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対してエントリ設定の要求、即ち、受信パケットを処理するための制御情報の送信要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を送信する。オープンフロースイッチは、処理内容が定められたフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを制御情報として用いてパケット転送を行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１７０７１８号公報
【非特許文献】
【０００６】
【非特許文献１】Ｎｉｃｋ  ＭｃＫｅｏｗｎほか７名、“ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”、［ｏｎｌｉｎｅ］、［平成２５（２０１３）年１月９日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-wp-latest.pdf〉
【非特許文献２】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  Ｖｅｒｓｉｏｎ  １．３．１  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０４）、［ｏｎｌｉｎｅ］、［平成２５（２０１３）年１月９日検索］、インターネット〈URL: https://www.opennetworking.org/images/stories/downloads/specification/openflow-spec-v1.3.1.pdf〉
【非特許文献３】小出  俊夫、下西  英之、「ＯｐｅｎＦｌｏｗネットワークにおける制御ネットワークの構築自動化に関する一検討」、信学技報、社団法人電子情報通信学会、ＮＳ２００９−１６５（２０１０−３）、Ｖｏｌ．１０９、 Ｎｏ．４４８、ｐｐ．１９−２４、２０１０年３月
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以下の分析は、本発明によって与えられたものである。上記集中制御側のネットワークの制御装置とスイッチ間の通信用の制御チャネルとしては、制御用のネットワークを用意する方式と、制御用のネットワークを設けずに、スイッチ間のデータ用のネットワークに制御チャネルを収容する方式（以下、「Ｉｎ−ｂａｎｄ制御方式」という。例えば、非特許文献３参照）とがある。Ｉｎ−ｂａｎｄ制御方式は、専用チャネルを設けなくともよいという利点があり、今後、大規模なネットワークやサーバ仮想化環境で普及していくと考えられる。
【０００８】
上記Ｉｎ−ｂａｎｄ制御方式は、リンクダウン等によりスイッチ間の通信ができなくなったとき、上記オープンフローコントローラに代表される制御装置もそのリンクを使用して通信していたスイッチと通信ができなくなってしまうという問題点がある。
【０００９】
また、上記Ｉｎ−ｂａｎｄ制御方式は、前記通信不可状態となった原因が途中の通信経路の障害によるものなのか、制御対象のスイッチの障害によるものなのかを判別できないという問題点がある。例えば、前記制御できないスイッチが検出された場合において、制御装置が制御対象のスイッチの障害として処理した場合、制御装置は当該スイッチへの再接続を試みるが、前記通信経路の障害であるため接続することができない。結果として、制御チャネルの再構築が遅れてしまうという問題点がある。
【００１０】
非特許文献３は、専用の特殊フレームを用いて制御チャネルの構築を自動化する手法を記載するに止まっている。
【００１１】
本発明は、制御チャネルにＩｎ−ｂａｎｄ制御方式を用いるネットワークの耐障害性、可用性の向上に貢献できるスイッチ、制御装置、通信システム、制御チャネルの管理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
第１の視点によれば、スイッチ間のデータ転送チャネルを用いて構成された制御チャネルを介して所定の制御装置から設定された制御情報に基づいて、パケットを処理するパケット処理部と、前記制御チャネルを介して前記制御装置と通信するためのポートを管理する制御チャネル管理部と、他のスイッチと接続されたポートの障害を検出すると、自装置が保持している前記制御チャネルを構成するための制御情報の中から、前記ポートを出力先とする制御情報を検索し、該制御情報にて指定されたパケットの送信元の隣接スイッチに対し、前記制御情報に適合するパケットの転送先を変更するよう指示する切替メッセージを作成して送信する切替メッセージ作成部と、他のスイッチから切替メッセージを受信した場合、前記制御チャネル管理部にて管理されている制御装置と通信するためのポートを変更する切替メッセージ処理部と、を備えるスイッチが提供される。
【００１３】
第２の視点によれば、スイッチ間のデータ転送チャネルを用いて構成された制御チャネルを介してスイッチに対し、前記制御チャネルを構成するための制御情報であるか否かを示す情報を含んだ制御情報を設定する制御装置が提供される。
【００１４】
第３の視点によれば、スイッチ間のデータ転送チャネルを用いて構成された制御チャネルを介して所定の制御装置から設定された制御情報に基づいて、パケットを処理するパケット処理部と、前記制御チャネルを介して前記制御装置と通信するためのポートを管理する制御チャネル管理部と、他のスイッチと接続されたポートの障害を検出すると、自装置が保持している制御情報の中から、前記ポートを出力先とする制御情報を検索し、該制御情報にて指定されたパケットの送信元の隣接スイッチに対し、前記制御情報に適合するパケットの転送先を変更するよう指示する切替メッセージを作成して送信する切替メッセージ作成部と、他のスイッチから切替メッセージを受信した場合、前記制御チャネル管理部にて管理されている制御装置と通信するためのポートを変更する切替メッセージ処理部と、を備えるスイッチと、前記スイッチに対し、前記制御情報を設定する制御装置と、を含む通信システムが提供される。
【００１５】
第４の視点によれば、スイッチ間のデータ転送チャネルを用いて構成された制御チャネルを介して、所定の制御装置から設定された制御情報に基づいてパケットを処理するパケット処理部と、前記制御チャネルを介して前記制御装置と通信するためのポートを管理する制御チャネル管理部と、を備える第１のスイッチが、他のスイッチと接続されたポートの障害を検出すると、自装置が保持している制御情報の中から、前記ポートを出力先とする制御情報を検索し、該制御情報にて指定されたパケットの送信元の隣接スイッチに対し、前記制御情報に適合するパケットの転送先を変更するよう指示する切替メッセージを作成して送信するステップと、前記第１のスイッチの隣接スイッチである第２のスイッチが、前記第１のスイッチから切替メッセージを受信した場合、前記制御チャネル管理部にて管理されている制御装置と通信するためのポートを変更するステップと、を含む制御チャネルの管理方法が提供される。本方法は、制御装置との間に構築された制御チャネルを管理する機能を持ったスイッチという、特定の機械に結びつけられている。
【００１６】
第５の視点によれば、スイッチ間のデータ転送チャネルを用いて構成された制御チャネルを介して所定の制御装置から設定された制御情報に基づいて、パケットを処理するパケット処理部と、前記制御チャネルを介して前記制御装置と通信するためのポートを管理する制御チャネル管理部と、を備えたスイッチに搭載されたコンピュータに、他のスイッチと接続されたポートの障害を検出すると、自装置が保持している前記制御チャネルを構成するための制御情報の中から、前記ポートを出力先とする制御情報を検索し、該制御情報にて指定されたパケットの送信元の隣接スイッチに対し、前記制御情報に適合するパケットの転送先を変更するよう指示する切替メッセージを作成して送信する処理と、他のスイッチから切替メッセージを受信した場合、前記制御チャネル管理部にて管理されている制御装置と通信するためのポートを変更する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な（非トランジエントな）記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１７】
本発明によれば、制御チャネルにＩｎ−ｂａｎｄ制御方式を用いるネットワークの耐障害性、可用性の向上に貢献することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態のネットワーク構成を示す図である。
【図２】本発明の一実施形態の構成を示す図である。
【図３】本発明の一実施形態の動作を説明するための図である。
【図４】図３の続図である。
【図５】図４の続図である。
【図６】図５の続図である。
【図７】図６の続図である。
【図８】本発明の第１の実施形態の通信システムの構成を示す図である。
【図９】本発明の第１の実施形態のオープンフローコントローラ（ＯＦＣ）の構成を示すブロック図である。
【図１０】本発明の第１の実施形態のオープンフロースイッチ（ＯＦＳ）の構成を示すブロック図である。
【図１１】本発明の第１の実施形態のオープンフロースイッチ（ＯＦＳ）に設定される制御情報（フローエントリ）の構成例を示す図である。
【図１２】図８のＯＦＣ１、ＯＦＳ１’、ＯＦＳ１、ＯＦＳ２’、ＯＦＳ２の接続関係を表した図である。
【図１３】図１２の構成においてＯＦＳ１０Ａ−１〜ＯＦＳ１０Ａ−５の制御チャネルが確立された状態を示す図である。
【図１４】図１３の状態においてリンクダウンが発生した場合に影響を受ける制御チャネルを示す図である。
【図１５】図１４の状態から制御チャネルを切り替えた後の制御チャネルを示す図である。
【図１６】本発明の第２の実施形態のオープンフロースイッチ（ＯＦＳ）の構成を示すブロック図である。
【図１７】本発明の第２の実施形態のオープンフロースイッチ（ＯＦＳ）の動作を説明するための図である。
【図１８】図１６の続図である。
【図１９】図１７の続図である。
【図２０】図１８の続図である。
【発明を実施するための形態】
【００１９】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００２０】
本発明は、その一実施形態において、図１に示すように、スイッチ間のデータ転送チャネルを用いて構成された制御チャネル（図１の点線）を介して制御装置２０から設定された制御情報に基づいて動作するスイッチ１０−１〜１０−４（以下、スイッチを特に区別しない場合、「スイッチ１０」と記す。）にて実現できる。
【００２１】
より具体的には、スイッチ１０は、図２に示すように、制御装置２０から設定された制御情報に基づいてパケットを処理するパケット処理部１２と、制御チャネルを介して制御装置２０と通信するためのポートを管理する制御チャネル管理部１３と、他のスイッチと接続されたポートの障害を検出すると、自装置が保持している前記制御チャネルを構成するための制御情報の中から、前記ポートを出力先とする制御情報を検索し、該制御情報にて指定されたパケットの送信元の隣接スイッチに対し、前記制御情報に適合するパケットの転送先を変更するよう指示する切替メッセージを作成して送信する切替メッセージ作成部１５と、他のスイッチから切替メッセージを受信した場合、前記制御チャネル管理部にて管理されている制御装置と通信するためのポートを変更する切替メッセージ処理部１４と、を備える。
【００２２】
例えば、図３に示すように、スイッチ１０−１とスイッチ１０−２との間の物理リンクにて障害が発生した場合を考える。この場合、スイッチ１０−２は、図４に示すように、自装置が保持している制御情報の中から、前記ポートを出力先とする制御情報（図１のスイッチ１０−４と制御装置２０間のパケットを中継する制御情報）を検索し、該制御情報にて指定されたパケットの送信元の隣接スイッチ（図４のスイッチ１０−４）に対し、前記制御情報に適合するパケットの転送先を変更するよう指示する切替メッセージを作成して送信する（ステップＳ００１）。
【００２３】
前記切替メッセージを受信したスイッチ１０−４は、前記制御情報に適合するパケット（制御装置２０に送信する制御用パケット）の送信先をスイッチ１０−２からスイッチ１０−３に切り替えてから制御装置２０に対して制御用のパケットを送信する（ステップＳ００２）。
【００２４】
前記制御用のパケットを受信したスイッチ１０−３は、受信パケットに適合するマッチ条件を持つ制御情報を有していない場合の基本動作として、あるいは、新規パケットの受信を制御装置２０に通知するように予め設定された制御情報に従い、制御装置２０に対し、新規パケットの受信を通知する（ステップＳ００３）。
【００２５】
新規パケットの受信通知を受けた制御装置２０は、図５に示すように、受信したパケットの送信元と宛先からスイッチ１０−１〜１０−４間の経路を計算し、経路上のスイッチ１０−１、１０−３に、制御装置２０とスイッチ１０−４間で授受するパケットの転送を指示する制御情報を設定する（ステップＳ００４）。以上により、制御装置２０とスイッチ１０−４間の制御チャネルが確立する（ステップＳ００５）。なお、制御装置２０がスイッチ１０−１〜１０−４間の経路を計算するに当たっては、スイッチ１０−１からもたらされる障害通知や、制御下にあったスイッチ１０−４からの制御パケットがスイッチ１０−３から転送されて来た事実（スイッチ１０−１、１０−２間のリンクの消滅）を参酌することができる。このようにすることで、再びスイッチ１０−１と１０−２間のリンクを経由する経路が計算されないようにすることができる。
【００２６】
また、上記した動作説明からも明らかなように、制御装置２０は、スイッチ１０−４を制御できない状態に陥ったことを迅速に把握し、制御チャネルを再構築することができる。
【００２７】
また、より望ましくは、図６に示すように、前記制御チャネルの切替が完了したスイッチ１０−４からスイッチ１０−２に対して、「切替完了メッセージ」を送信させることもできる。スイッチ１０−２は、「切替完了メッセージ」を受信すると、制御装置２０がスイッチ１０−４を制御可能になったと判断し、今度は、自身の切替メッセージ処理部１４にて、制御装置と通信するためのポートを変更する。そして、スイッチ１０−２は、制御装置２０に送信する制御用パケットの送信先をスイッチ１０−１からスイッチ１０−４に切り替えてから制御装置２０に対して制御用のパケットを送信する（ステップＳ００７）。
【００２８】
前記制御用のパケットを受信した受信したスイッチ１０−４は、受信パケットに適合するマッチ条件を持つ制御情報を有していない場合の基本動作として、あるいは、新規パケットの受信を制御装置２０に通知するように予め設定された制御情報に従い、制御装置２０に対し、新規パケットの受信を通知する（ステップＳ００８）。
【００２９】
新規パケットの受信通知を受けた制御装置２０は、図７に示すように、受信したパケットの送信元と宛先からスイッチ１０−１〜１０−２間の経路を計算し、経路上のスイッチ１０−１、１０−３及び１０−４に、制御装置２０とスイッチ１０−２間で授受するパケットの転送を指示する制御情報を設定する（ステップＳ００９）。以上により、制御装置２０とスイッチ１０−２間の制御チャネルが確立する（ステップＳ０１０）。なおここでも、制御装置２０は、スイッチ１０−１からもたらされる障害通知や、制御下にあったスイッチ１０−４からの制御パケットがスイッチ１０−３から転送されて来た事実（スイッチ１０−１、１０−２間のリンクの消滅）を参酌して経路を計算することができる。
【００３０】
このように、制御装置２０との制御チャネルを回復したスイッチ１０−４を利用して、スイッチ１０−２の制御も回復することができる。
【００３１】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図８は、本発明の第１の実施形態の通信システムの構成を示す図である。図８を参照すると、ホスト１−１〜Ｎ−Ｎの通信を実現するようメッシュ状に接続されたオープンフロースイッチ（以下、「ＯＦＳ」）と、これらＯＦＳに制御情報（フローエントリ）を設定するＮ台のＯＦＣとを接続した構成が示されている。
【００３２】
図９は、本発明の第１の実施形態のＯＦＣの構成を示すブロック図である。図９を参照すると、スイッチ１０によって構成されるネットワークトポロジを記憶するトポロジ記憶部２４と、トポロジ記憶部２４に格納されたネットワークトポロジに基づいて、パケットの転送経路を計算する経路計算部２１と、前記計算した転送経路上のスイッチに設定する制御情報（フローエントリ）を作成し、各スイッチに設定するスイッチ制御部２２と、制御対象のスイッチ１０についてそれぞれ設定した制御チャネルを管理する制御チャネル管理部２３とを備える構成が示されている。
【００３３】
制御チャネル管理部２３は、例えば、各スイッチ１０について設定した制御チャネルの情報として、経由するスイッチのＩＤ（Ｄａｔａ  Ｐａｔｈ  ＩＤ）や個々のスイッチに設定した制御情報（フローエントリ）の内容を対応付けて記憶している。
【００３４】
なお、図９に示したＯＦＣは、非特許文献１、２に記載のオープンフローコントローラに、制御チャネル管理部２３を追加し、Ｉｎ−ｂａｎｄ制御方式でスイッチを制御する機能を追加することで実現できる。
【００３５】
図１０は、本発明の第１の実施形態のＯＦＳの構成を示すブロック図である。図１０を参照すると、ＯＦＣ２０Ａから設定された制御情報（フローエントリ）を格納するフローテーブル１１Ａと、フローテーブル１１Ａを参照して受信パケットを処理するパケット処理部１２と、自装置の制御チャネル情報として、制御用パケットの送信ポートを管理する制御チャネル管理部１３と、切替メッセージ処理部１４と、切替メッセージ作成部１５とを備えた構成が示されている。
【００３６】
切替メッセージ作成部１５は、自装置のポートのうち、他のスイッチと接続されたポートの障害を検出すると以下の動作を行う。まず、切替メッセージ作成部１５は、フローテーブル１１Ａの中から、他のスイッチの制御チャネル上のパケットを転送するための制御情報（フローエントリ）であり、前記障害が検出されたポートを出力先とする制御情報（フローエントリ）を検索する。そして、切替メッセージ作成部１５は、制御情報（フローエントリ）にて指定されたパケットの送信元の隣接スイッチに対し、制御情報（フローエントリ）に適合するパケットの転送先（出力ポート）を変更するよう指示する切替メッセージを送信する。
【００３７】
また、切替メッセージ作成部１５は、他のスイッチの接続を検出した場合、当該スイッチに対し、自装置を経由してＯＦＣ２０Ａに対するパケットを送信するよう指示するメッセージを送信する。
【００３８】
切替メッセージ処理部１４は、他のスイッチから切替メッセージ又は切替完了メッセージを受信した場合、前記制御チャネル管理部１３に管理されている制御パケットの送信ポートを変更する。なお、送信ポートをどのポートに変更するかは、予めＯＦＣ２０Ａから制御チャネル管理部１３に設定された候補の中から選択すればよい。切替メッセージ処理部１４は、他のスイッチから切替メッセージを受信したことにより、制御パケットの送信ポートを変更した場合、制御パケットの送信ポートが完了すると、切替メッセージの送信元のスイッチに対し、切替完了メッセージを送信する。また、切替メッセージ処理部１４は、他のスイッチから、自装置を経由してＯＦＣ２０Ａに対するパケットを送信するよう指示するメッセージを受信した場合、制御パケットの送信ポートとして、当該スイッチとの接続ポートを選択する。
【００３９】
図１１は、本発明の第１の実施形態のＯＦＳ１０Ａのフローテーブル１１Ａに保持される制御情報（フローエントリ）の構成例を示す図である。図１１を参照すると、制御情報（フローエントリ）は、処理を適用するパケットを特定するためのマッチ条件と、マッチ条件に適合したパケットに適用する処理内容を示すインストラクションと、マッチ条件に適合したパケットの統計情報を記録するカウンタと、制御チャネル識別子フィールドとを対応付けて構成される。マッチ条件は、レイヤー１からレイヤー４までのフィールドの任意の組み合わせによって構成される。なお、各情報にはワイルドカードを設定可能となっている（非特許文献２の「Ａ．２．３．７  Ｆｌｏｗ  Ｍａｔｃｈ  Ｆｉｅｌｄｓ」参照）。インストラクションとしては、パケットの転送（Ｏｕｔｐｕｔ）、廃棄（Ｄｒｏｐ）、ヘッダ書換え（ＳＥＴ〜）等を指定することが可能となっている。
【００４０】
また、制御チャネル識別子フィールドには、その制御情報（フローエントリ）が、他のスイッチの制御チャネル上のパケットを転送するための制御情報（フローエントリ）であるか否かを示す情報（例えば、制御チャネル上のパケットを転送するための制御情報（フローエントリ）であれば、制御対象スイッチのＩＤ）が格納される。
【００４１】
なお、図９、図１０に示したＯＦＣ２０Ａ及びＯＦＳ１０Ａの各部（処理手段）は、これらの装置を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【００４２】
続いて、本発明の第１の実施形態の動作について図面を参照して詳細に説明する。以下の説明では、図１２に示すように、ＯＦＳ１０Ａ−２、ＯＦＳ１０Ａ−４間に、リンクＡ、リンクＢとの２つの物理リンクが設けられているものとして説明する。また、図１２中の＃１〜＃５の番号は、ＯＦＳ１０Ａ−２及びＯＦＳ１０Ａ−４のポート番号を表している。具体的には、リンクＡはＯＦＳ１０Ａ−２のポート＃１とＯＦＳ１０Ａ−４のポート＃４とを接続している。同様に、リンクＢはＯＦＳ１０Ａ−２のポート＃２とＯＦＳ１０Ａ−４のポート＃５とを接続している。また、ＯＦＳ１０Ａ−２のポート＃３は、ＯＦＳ１０Ａ−１との接続ポートである。
【００４３】
図１３は、図１２のネットワーク構成において、ＯＦＣ２０Ａと、ＯＦＳ１０Ａ−１〜ＯＦＳ１０Ａ−５間の各制御チャネルが確立された状態を示す図である。図１３のような制御チャネルは、ＯＦＣ２０Ａに近いＯＦＳ１０Ａから順に、ＯＦＣ２０Ａと制御チャネルを確立することで実現できる。例えば、図１３の場合、ＯＦＳ１０Ａ−１、ＯＦＳ１０Ａ−２、ＯＦＳ１０Ａ−３、ＯＦＳ１０Ａ−４、ＯＦＳ１０Ａ−５の順でＯＦＣ２０Ａに接続することになる（ＯＦＳ１０Ａ−２、ＯＦＳ１０Ａ−３の順番は逆でも構わない。）。以下、図１３のＯＦＳ１０Ａ−１〜ＯＦＳ１０Ａ−５がＯＦＣ２０Ａとの制御チャネルを確立するまでの過程を順番に説明する。
【００４４】
まず、ＯＦＳ１０Ａ−１が、ＯＦＣ２０Ａとの直接制御用の通信を行って制御チャネルを確立する。
【００４５】
次に、ＯＦＳ１０Ａ−２が、ＯＦＣ２０Ａと制御用の通信を行うために、ＯＦＳ１０Ａ−１に対して制御用の通信パケットを送信する。ＯＦＳ１０Ａ−２から前記パケットを受信したＯＦＳ１０Ａ−１は、フローテーブル１１Ａの中に合致するマッチ条件を持つ制御情報（フローエントリ）があるかどうかを確認する。前記確認の結果、フローテーブル１１Ａの中に合致するマッチ条件を持つ制御情報（フローエントリ）がないため、ＯＦＳ１０Ａ−１は、ＯＦＣ２０Ａに対し、ＯＦＳ１０Ａ−２から受信したパケットを転送する（非特許文献２の「Ｐａｃｋｅｔ−Ｉｎ」メッセージ参照）。
【００４６】
次に、ＯＦＣ２０Ａは、ＯＦＳ１０Ａ−１から転送されたパケットを確認し、制御用の通信のパケットと判断した場合、ＯＦＳ１０Ａ−１のフローテーブル１１Ａに設定する制御情報（フローエントリ）を作成し、ＯＦＳ１０Ａ−１に送信する。なお、制御用の通信のパケットであるか否かは、例えば、ＩＰアドレスがＯＦＣ２０Ａ宛てであるか否か等により判断できる。このとき、該当制御情報（フローエントリ）のセキュアチャネル識別子フィールドに制御用の制御情報（フローエントリ）であることを示す値（例えば、制御対象となるＯＦＳ１０Ａ−２のＩＤ等）を設定する。また、ＯＦＣ２０Ａは、ＯＦＣ２０ＡからＯＦＳ１０Ａ−２へのパケットを処理する制御情報（フローエントリ）と、ＯＦＳ１０Ａ−２からＯＦＣ２０Ａへのパケットを処理する制御情報（フローエントリ）と、を設定することができる。このとき、セキュアチャネル識別子フィールドに、制御用の制御情報（フローエントリ）であることを示す値を設定するのは、ＯＦＳ１０Ａ−２からＯＦＣ２０Ａへのパケットを処理する制御情報（フローエントリ）のみとする。
【００４７】
以上のようにＯＦＳ１０Ａ−１に制御チャネルを構成するための制御情報（フローエントリ）が追加されたため、結果、ＯＦＳ１０Ａ−２は、ＯＦＣ２０Ａと制御用の通信を行うことが可能となる。以下同様に、ＯＦＳ１０Ａ−３〜ＯＦＳ１０Ａ−５も順次、ＯＦＣ２０Ａと制御用の通信が可能となったＯＦＳ１０Ａを介して、ＯＦＣ２０Ａと制御用の通信を行う。ＯＦＳ１０Ａ−４は、図１３に示したようにリンクＡを通して制御用の通信を行い、ＯＦＳ１０Ａ−５はリンクＢを通して制御用の通信を行う。ここリンクを２つにしているのは、ＯＦＳ１０Ａ間のリンクが複数あり、それぞれのリンクが異なるＯＦＳのための制御用の通信経路として利用されていた場合を説明するためである。もちろん、特定のＯＦＳ１０Ａ間のリンクが１つであっても構わない。
【００４８】
ＯＦＣ２０Ａは、ＯＦＳ１０Ａ−１〜ＯＦＳ１０Ａ−５と接続した際に、各ＯＦＳ１０Ａのセキュアチャネル管理部１３に、なるべく複数の制御用の通信を行うポートを設定しておく。但し、複数のポートを設定できない場合は、１つのポートを使用して制御用通信を行う。例えば、ＯＦＳ１０Ａ−１にはＯＦＣ２０Ａとのリンクが１つしかないため、他の制御用の通信のポートは設定されない。一方、ＯＦＳ１０Ａ−２には、制御用の通信経路として、ＯＦＣ２０Ａ、ＯＦＳ１０Ａ−１を経由する最短経路のほかに、ＯＦＣ２０Ａ、ＯＦＳ１０Ａ−１、ＯＦＳ１０Ａ−３、ＯＦＳ１０Ａ−４と経由する通信経路があるため、制御用の通信を行う別のポートとしてＯＦＳ１０Ａ−４側のポート（＃１）が設定される。ＯＦＳ１０Ａ−３も同様に、別の制御用の通信経路として、ＯＦＣ２０Ａ、ＯＦＳ１０Ａ−１、ＯＦＳ１０Ａ−２、ＯＦＳ１０Ａ−４と経由する通信経路があるため、制御用の通信を行う別のポートとしてＯＦＳ１０Ａ−４側のポートが設定される。ＯＦＳ１０Ａ−４には、別の制御用の通信経路としてＯＦＣ２０Ａ、ＯＦＳ１０Ａ−１、ＯＦＳ１０Ａ−３と経由する通信経路があるため、制御用通信を行う別のポートとしてＯＦＳ１０Ａ−３側のポートが設定される。
【００４９】
ＯＦＳ１０Ａ−５には、別の制御用の通信経路は設定されない。その理由は、ＯＦＳ１０Ａ−５の制御用の通信はＯＦＳ１０Ａ−５とＯＦＳ１０Ａ−４間を必ず通り、ＯＦＳ１０Ａ−５はその他のＯＦＳ１０Ａに対してリンクがないため、別のポートに切り替えることができないからである。ＯＦＣ２０ＡとＯＦＳ１０Ａ−５の制御用の通信経路を考えるとき、ＯＦＣ２０ＡとＯＦＳ１０Ａ−５間の経路は複数設定しておくことが可能だが、ＯＦＳ１０Ａ−５自身は途中のＯＦＳの経路を切り替える手段がないため、切り替えることができない。この場合、ＯＦＳ１０Ａ−４が制御用の通信を切り替える際にＯＦＳ１０Ａ−５が利用する制御用の通信経路の情報を変更する。ＯＦＳ１０Ａ−４が自身の制御用の通信を行うポートをＯＦＳ１０Ａ−５の利用する制御用の通信にも適用することでＯＦＳ１０Ａ−５は障害の発生に関わらず、制御用の通信を継続可能である。
【００５０】
ここで、図１４に示すように、ＯＦＳ１０Ａ−１とＯＦＳ１０Ａ−２間のリンクダウンが発生した場合の動作について説明する。ＯＦＳ１０Ａ−１とＯＦＳ１０Ａ−２間のリンクを制御用の通信経路として利用しているＯＦＳ１０Ａ−２、ＯＦＳ１０Ａ−４及びＯＦＳ１０Ａ−５は次のように動作する。
【００５１】
まず、ＯＦＳ１０Ａ−２は、自身のフローテーブル１１Ａを参照し、ＯＦＳ１０Ａ−１とＯＦＳ１０Ａ−２間のリンクを制御用の通信経路として利用している制御情報（フローエントリ）があるかどうかを確認する。具体的には、ＯＦＳ１０Ａ−２は、フローテーブル１１Ａから、セキュアチャネル識別子フィールドに、制御用の通信を行うエントリであることを示す値が設定されているエントリを検索する。該当する制御情報（フローエントリ）がある場合、ＯＦＳ１０Ａ−２は、該当する制御情報（フローエントリ）のインストラクションフィールドを参照し、リンクダウンの発生したポートを出力ポートに設定しているかどうかを確認する。ここで、当該制御情報（フローエントリ）が、リンクダウンの発生したポートを出力ポートに設定している場合、該当制御情報（フローエントリ）を使用しているＯＦＳ１０Ａは、ＯＦＳ１０Ａ−１とＯＦＳ１０Ａ−２間のリンクの障害により、制御不可能状態になっていることがわかる。
【００５２】
図１４の場合、ＯＦＳ１０Ａ−４とＯＦＳ１０Ａ−５は、ＯＦＳ１０Ａ−１とＯＦＳ１０Ａ−２間のリンクを制御用の通信経路として利用しているため、該当する制御情報（フローエントリ）は２つ存在する。１つは、リンクＡの入力ポート＃１からリンクダウンの発生したポート＃３への出力を指示する制御情報（フローエントリ）であり、もう１つはリンクＢの入力ポート＃２からリンクダウンの発生したポート＃３への出力を指示する制御情報（フローエントリ）である。
【００５３】
そこで、ＯＦＳ１０Ａ−２は、リンクダウンしたリンクを制御用の通信経路として利用しているポート＃１とポート＃２から、ＯＦＳ１０Ａ−４とＯＦＳ１０Ａ−５宛ての切替メッセージを送信する（図４のステップＳ００１に相当）。
【００５４】
前記切替メッセージを受信したＯＦＳ１０Ａ−４は、自身のフローテーブル１１Ａを参照し、セキュアチャネル識別子フィールドの値が制御用の通信を行う制御情報（フローエントリ）であることを示す値である制御情報（フローエントリ）であり、かつ、そのインストラクションフィールドの出力ポートが、ポート＃４又はポート＃５である制御情報（フローエントリ）を検索する。ＯＦＳ１０Ａ−４には、ＯＦＳ１０Ａ−５からの制御用パケットをポート＃５からＯＦＳ１０Ａ−２に転送する制御情報（フローエントリ）が設定されている。そこで、ＯＦＳ１０Ａ−４は、該当制御情報（フローエントリ）のマッチ条件フィールドに設定されている入力ポートから、前記受信した切替メッセージを送信する。結果として、リンクＢを経由して送信された切替メッセージは、ＯＦＳ１０Ａ−５に転送される。一方、ＯＦＳ１０Ａ−４には、制御用パケットをポート＃４からＯＦＳ１０Ａ−２に転送する制御情報（フローエントリ）は設定されていない。そこで、ＯＦＳ１０Ａ−４は、リンクＡを経由して受信した切替メッセージを自身宛てのメッセージと判断する。その後の処理は、図４に示した流れと略同一である（「スイッチ１０」を「ＯＦＳ１０Ａ」、「制御装置２０」を「ＯＦＣ２０Ａ」と読み替える）。
【００５５】
前記のとおり、ＯＦＳ１０Ａ−４経由で前記切替メッセージを受信したＯＦＳ１０Ａ−５は、自身のフローテーブル１１Ａを参照し、セキュアチャネル識別子フィールドの値が制御用の通信を行う制御情報（フローエントリ）であることを示す値である制御情報（フローエントリ）であり、かつ、そのインストラクションフィールドの出力ポートが、切替メッセージの受信ポートである制御情報（フローエントリ）を検索する。しかし、ＯＦＳ１０Ａ−５には、制御用パケットをＯＦＳ１０Ａ−４に転送する制御情報（フローエントリ）は設定されていない。そこで、ＯＦＳ１０Ａ−５は、ＯＦＳ１０Ａ−４から受信した切替メッセージを自身宛てのメッセージと判断する。次に、ＯＦＳ１０Ａ−５は、制御用の通信を行うポートの切り替えを試みる。しかしながら、ＯＦＳ１０Ａ−５には、制御用の通信を行う別のポートが設定されていないため、ＯＦＳ１０Ａ−５は、切り替えを行なわず、ＯＦＳ１０Ａ−４に、切替完了メッセージを送信する。
【００５６】
ＯＦＳ１０Ａ−４は、ＯＦＳ１０Ａ−５から切替完了メッセージを受信すると、切替メッセージ処理部１４で自身の制御用の通信を行うポートを切り替える。具体的には、セキュアチャネル管理部１３に設定されている制御用の通信を行うポートを、ＯＦＳ１０Ａ−２からＯＦＳ１０Ａ−３との接続ポートに変更する。
【００５７】
ＯＦＳ１０Ａ−４は、自身の制御用の通信を行うポートを切り替え後、ＯＦＳ１０Ａ−２に対し、切替完了メッセージを送信する。ＯＦＳ１０Ａ−２はＯＦＳ１０Ａ−４と同様に切替メッセージ処理部１４で切替完了メッセージを処理し、制御用の通信を行うポートをＯＦＳ１０Ａ−１側からＯＦＳ１０Ａ−４側に切り替える。
【００５８】
結果として、ＯＦＳ１０Ａ−１とＯＦＳ１０Ａ−２間のリンクダウンによって制御用の通信が継続できなくなっていたＯＦＳ１０Ａ−２、ＯＦＳ１０Ａ−４、ＯＦＳ１０Ａ−１が、図１５に示すように、制御用の通信経路を切り替えたため、制御用の通信を継続できるようになる。
【００５９】
以上のように、本実施形態によれば、集中制御型のネットワークでＩｎ-ｂａｎｄ制御方式でスイッチを制御する場合における経路障害とスイッチ自体障害を判別することが可能となる。また、上記のとおりスイッチに経路切替機能を持たせることにより、ネットワークの耐障害性、可用性を向上させることが可能となる。
【００６０】
［第２の実施形態］
続いて、上記第１の実施形態に機能を追加した本発明の第２の実施形態について図面を参照して詳細に説明する。本発明の第２の実施形態は、上記第１の実施形態と略同一の構成にて実現できるので、以下、その相違点を中心に説明する。
【００６１】
図１６は、本発明の第２の実施形態のオープンフロースイッチ（ＯＦＳ）の構成を示すブロック図である。図１０に示したＯＦＳとの相違点は、切替メッセージ作成部１５Ｂに、他のＯＦＳ１０Ｂの接続を検出したときに、当該他のＯＦＳ１０Ｂに対し、接続完了メッセージ（第３のメッセージ）を送信する機能が追加されている点と、切替メッセージ処理部１４Ｂに、装置再起動後の接続完了メッセージ（第３のメッセージ）の受信によるポート切替機能が追加されている点である。
【００６２】
図１７は、第１の実施形態と同様のネットワーク構成において、ＯＦＳ１０Ｂ−１とＯＦＳ１０Ｂ−２間にリンク障害が発生し、かつ、同時にＯＦＳ１０Ｂ−４が再起動した状態を示している。この場合、第１の実施形態の動作だけでは、ＯＦＳ１０Ｂ−２が直ちにＯＦＳ１０Ｂ−４に対し、切替メッセージを送信できず、また、仮にＯＦＳ１０Ｂ−４に対し、切替メッセージを送ったとしても、ＯＦＳ１０Ｂ−４自体の制御チャネルも確立されていないため、復旧が遅れてしまうことになる。
【００６３】
そこで、本実施形態のＯＦＳ１０Ｂは、他のＯＦＳ１０Ｂの接続を検出したときに、他のＯＦＳ１０Ｂに対し、接続完了メッセージ（第３のメッセージ）を送信する。例えば、図１８に示すように、ＯＦＳ１０Ｂ−４の再起動により、ＯＦＳ１０Ｂ−４とのリンクアップを検出した場合、ＯＦＳ１０Ｂ−３が、リンクアップしたポートを介して、ＯＦＳ１０Ｂ−４に対して接続完了メッセージ（第３のメッセージ）を送信する（図１８のＳ１０１）。
【００６４】
前記接続完了メッセージ（第３のメッセージ）を受信したＯＦＳ１０Ｂ−４は、図１９に示すように、接続完了メッセージ（第３のメッセージ）から制御用の通信を試みる（図１９のＳ１０２）。具体的には、ＯＦＳ１０Ｂ−４の切替メッセージ処理部１４Ｂは、前記制御チャネル管理部１３に管理されている制御パケットの送信ポートを、接続完了メッセージ（第３のメッセージ）の受信ポートに変更する。なお、ＯＦＳ１０Ｂ−５からも、接続完了メッセージ（第３のメッセージ）を受信する場合が考えられるが、ＯＦＳ１０Ｂ−５との接続ポートが、前記制御チャネル管理部１３に設定されているかどうかを確認することで、前記制御チャネル管理部１３との接続ポートを除外することができる。
【００６５】
前記ＯＦＳ１０Ｂ−４からのＯＦＣ２０Ａ宛てのパケットを受信したＯＦＳ１０Ｂ−３は、受信パケットに適合するマッチ条件を持つ制御情報（フローエントリ）を有していない場合の基本動作として、あるいは、新規パケットの受信をＯＦＣ２０Ａに通知するように予め設定された制御情報（フローエントリ）に従い、ＯＦＣ２０Ａに対し、新規パケットの受信を通知する（ステップＳ１０３）。
【００６６】
新規パケットの受信通知を受けたＯＦＣ２０Ａは、図２０に示すように、受信したパケットの送信元と宛先からＯＦＳ１０Ｂ−１〜ＯＦＳ１０Ｂ−４間の経路を計算し、経路上のＯＦＳ１０Ｂ−１及びＯＦＳ１０Ｂ−３に、ＯＦＣ２０ＡとＯＦＳ１０Ｂ−４間で授受する制御用パケットの転送を指示する制御情報（フローエントリ）を設定する（ステップＳ１０４）。
【００６７】
以上により、ＯＦＣ２０ＡとＯＦＳ１０Ｂ−４間の制御チャネルが確立する（ステップＳ１０５）。なお、ＯＦＣ２０ＡがＯＦＳ１０Ｂ−１〜ＯＦＳ１０Ｂ−４間の経路を計算するに当たっては、ＯＦＳ１０Ｂ−１からもたらされる障害通知や、ＯＦＳ１０Ｂ−２を経由する制御チャネルを介して制御下にあったＯＦＳ１０Ｂ−４からの制御パケットがＯＦＳ１０Ｂ−２から転送されて来た事実（ＯＦＳ１０Ｂ−１、ＯＦＳ１０Ｂ−２間のリンクの消滅）を参酌することができる。このようにすることで、再びＯＦＳ１０Ｂ−１、ＯＦＳ１０Ｂ−２間のリンクを経由する経路を計算しないようにすることができる。
【００６８】
また、上記第２の実施形態においては、ここで、ＯＦＳ１０Ｂが複数のＯＦＳ１０Ｂから接続完了メッセージを受信する場合が考えられるが、ＯＦＳ１０Ｂは、最初に受信したポートで制御用の通信を試みるようにすればよい。例えば、図１７のＯＦＳ１０Ｂ−４が、ＯＦＳ１０Ｂ−２から先に接続完了メッセージを受信する場合が考えられるが、ＯＦＳ１０Ｂ−２経由で制御用パケットを送信しても一定期間、ＯＦＣ２０Ａからの応答が無ければ、ＯＦＳ１０Ｂ−３との接続ポートで制御用の通信を試みることで、制御チャネルを確立することができる。
【００６９】
以上のように本実施形態によれば、２重障害が発生した場合においても迅速に制御チャネルを切り替えて、ＯＦＳ１０Ｂの制御を回復することができる。
【００７０】
以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成や要素の構成は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
【００７１】
最後に、本発明の好ましい形態を要約する。
［第１の形態］
（上記第１の視点によるスイッチ参照）
［第２の形態］
第１の形態のスイッチにおいて、
前記制御情報には、前記データ転送チャネルを用いて構成された制御チャネル上のパケットを転送するための制御情報であるか否かを示す情報が含まれており、
前記切替メッセージ作成部は、
前記制御チャネル上のパケットを転送するための制御情報の中から、前記障害が検出されたポートを出力先とする制御情報を検索し、該制御情報にて指定されたパケットの送信元の隣接スイッチに対し、前記制御情報に適合するパケットの転送先を変更するよう指示する切替メッセージを作成して送信するスイッチ。
［第３の形態］
第１又は第２の形態のスイッチにおいて、
前記切替メッセージ処理部は、
前記制御チャネル管理部にて管理されている制御装置と通信するためのポートの変更後、前記切替メッセージの送信元のスイッチに対し、切替完了メッセージを送信し、
他のスイッチから前記切替完了メッセージを受信すると、前記制御チャネル管理部にて管理されている制御装置と通信するためのポートを前記他のスイッチに変更するスイッチ。
［第４の形態］
第１から第３いずれか一の形態のスイッチにおいて、
前記切替メッセージ作成部は、
他のスイッチの接続を検出した場合、前記他のスイッチに対し、自装置に対し前記制御装置に対するパケットを送信するよう指示するメッセージを送信するスイッチ。
［第５の形態］
第１から第４いずれか一の形態のスイッチにおいて、
前記切替メッセージ処理部は、前記制御チャネルが確立されていない状態で、
他のスイッチから、自装置に対し前記制御装置に対するパケットを送信するよう指示するメッセージを受信した場合、前記他のスイッチに対し、前記制御装置に対するパケットを送信するスイッチ。
［第６の形態］
（上記第２の視点による制御装置参照）
［第７の形態］
第６の形態の制御装置において、
一のスイッチが、制御装置と通信するためのポートを変更したことによる、前記ポートに接続する他のスイッチからのパケットの受信を契機として、前記制御チャネルの経路を変更する制御装置。
［第８の形態］
（上記第３の視点による通信システム参照）
［第９の形態］
（上記第４の視点による制御チャネルの管理方法参照）
［第１０の形態］
（上記第５の視点によるプログラム参照）
なお、上記第８〜第１０の形態は、第１の形態と同様に、第２〜第５の形態に展開することが可能である。
【００７２】
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００７３】
１０、１０−１〜１０−４  スイッチ
１０Ａ、１０Ａ−１〜１０Ａ−５、１０Ｂ、１０Ｂ−１〜１０Ｂ−５  オープンフロースイッチ（ＯＦＳ）
１１  制御情報記憶部
１１Ａ  フローテーブル
１２  パケット処理部
１３  制御チャネル管理部
１４、１４Ｂ  切替メッセージ処理部  
１５、１５Ｂ  切替メッセージ作成部
２０  制御装置
２０Ａ  オープンフローコントローラ（ＯＦＣ）
２１  経路計算部
２２  スイッチ制御部
２３  制御チャネル管理部
２４  トポロジ記憶部
【図１】
2014160951.tif 000003
【図２】
2014160951.tif 000004
【図３】
2014160951.tif 000005
【図４】
2014160951.tif 000006
【図５】
2014160951.tif 000007
【図６】
2014160951.tif 000008
【図７】
2014160951.tif 000009
【図８】
2014160951.tif 000010
【図９】
2014160951.tif 000011
【図１０】
2014160951.tif 000012
【図１１】
2014160951.tif 000013
【図１２】
2014160951.tif 000014
【図１３】
2014160951.tif 000015
【図１４】
2014160951.tif 000016
【図１５】
2014160951.tif 000017
【図１６】
2014160951.tif 000018
【図１７】
2014160951.tif 000019
【図１８】
2014160951.tif 000020
【図１９】
2014160951.tif 000021
【図２０】
2014160951.tif 000022