(57)【特許請求の範囲】
【請求項１】
制御用チャネルを介してスイッチに制御情報を設定することにより前記スイッチを制御する制御装置と、
前記制御装置から設定された制御情報に基づいて受信パケットを処理するパケット処理部と、前記制御装置と他のスイッチ間の制御用パケットの入力ポートを学習し、前記学習結果に基づいて、前記制御用パケットを転送するレイヤ２転送部と、前記制御チャネルの切断を検出した場合、隣接するスイッチに対し、前記制御装置のレイヤ２アドレスの解決を要求するパケットを送信し、前記隣接するスイッチを介して前記制御装置からレイヤ２アドレスを取得し、前記取得したレイヤ２アドレスを用いて前記制御装置に制御用パケットを送信することで、前記制御装置との間に第２の制御チャネルを構成する代替制御チャネル構成部と、を備えるスイッチと、
を含む通信システム。
【請求項２】
前記スイッチは、前記制御チャネルの切断を検出した場合、隣接するすべてのスイッチに対し、前記制御装置のレイヤ２アドレスの解決を要求するパケットを送信し、
前記制御装置は、前記制御装置のレイヤ２アドレスの解決を要求するパケットのいずれか一つに対して応答する代替制御チャネル管理部を備える請求項１の通信システム。
【請求項３】
前記代替制御チャネル管理部は、最初に到達した制御装置のレイヤ２アドレスの解決を要求するパケットに応答する請求項２の通信システム。
【請求項４】
前記制御装置は、前記制御装置と他のスイッチ間の制御用パケットを前記レイヤ２転送部で転送するよう指示する制御情報を、予め各スイッチに設定しておく請求項１から３いずれか一の通信システム。
【請求項５】
前記制御装置と前記スイッチとの間、又は、前記スイッチ間に、レイヤ２スイッチが配置されている請求項１から４いずれか一の通信システム。
【請求項６】
制御用チャネルを介してスイッチに制御情報を設定することにより前記スイッチを制御する制御装置から設定された制御情報に基づいて受信パケットを処理するパケット処理部と、
前記制御装置と他のスイッチ間の制御用パケットの入力ポートを学習し、前記学習結果に基づいて、前記制御用パケットを転送するレイヤ２転送部と、
前記制御チャネルの切断を検出した場合、隣接するスイッチに対し、前記制御装置のレイヤ２アドレスの解決を要求するパケットを送信し、前記隣接するスイッチを介して前記制御装置からレイヤ２アドレスを取得し、前記取得したレイヤ２アドレスを用いて前記制御装置に制御用パケットを送信することで、前記制御装置との間に第２の制御チャネルを構成する代替制御チャネル構成部と、
を備えるスイッチ。
【請求項７】
前記制御チャネルの切断を検出した場合、隣接するすべてのスイッチに対し、前記制御装置のレイヤ２アドレスの解決を要求するパケットを送信する請求項６のスイッチ。
【請求項８】
前記制御装置から設定された制御情報に基づいて、前記制御装置と他のスイッチ間の制御用パケットを前記レイヤ２転送部で転送する請求項６又は７のスイッチ。
【請求項９】
制御用チャネルを介して制御情報が設定され、前記制御チャネルの切断を検出すると、隣接するスイッチに対して制御装置のレイヤ２アドレスの解決を要求するパケットを送信するスイッチを制御する制御装置であって、
前記制御装置のレイヤ２アドレスの解決を要求するパケットを複数のスイッチから受信した場合、前記パケットのいずれか一つに対して応答する代替制御チャネル管理部を備える制御装置。
【請求項１０】
制御用チャネルを介してスイッチに制御情報を設定することにより前記スイッチを制御する制御装置から設定された制御情報に基づいて受信パケットを処理するパケット処理部と、前記制御装置と他のスイッチ間の制御用パケットの入力ポートを学習し、前記学習結果に基づいて、前記制御用パケットを転送するレイヤ２転送部とを備えるスイッチが、
前記制御チャネルの切断を検出した場合、隣接するスイッチに対し、前記制御装置のレイヤ２アドレスの解決を要求するパケットを送信するステップと、
前記隣接するスイッチを介して前記制御装置からレイヤ２アドレスを取得するステップと、
前記取得したレイヤ２アドレスを用いて前記制御装置に制御用パケットを送信することで、前記制御装置との間に第２の制御チャネルを構成するステップと、
を含む制御用チャネルの構築方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願についての記載）
本発明は、日本国特許出願：特願２０１３−０３６０９１号（２０１３年２月２６日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、通信システム、スイッチ、制御装置、制御用チャネルの構築方法及びプログラムに関し、特に、制御装置を有する集中制御型の通信システム、スイッチ、制御装置、制御用チャネルの構築方法及びプログラムに関する。
【背景技術】
【０００２】
近年、ネットワーク機器のパケット転送機能と経路制御等の制御機能とを分離した形態のネットワークが注目を浴びている。このようなネットワークでは、ネットワーク機器がパケット転送機能を担い、ネットワーク機器の外部に分離したコントローラが制御機能を担うことになる。このようにすることで、制御が容易になり柔軟性に富んだネットワークを構築することが可能になる。【０００３】
非特許文献１、２に、上記集中制御型のネットワークを実現するオープンフローという技術が提案されている。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。非特許文献２に仕様化されているオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）と、フロー統計情報（Ｃｏｕｎｔｅｒｓ）と、処理内容を定義したインストラクション（Ｉｎｓｔｒｕｃｔｉｏｎｓ）と、の組が定義される（非特許文献２の「５．２  Ｆｌｏｗ  Ｔａｂｌｅ」の項参照）。【０００４】
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチ条件（非特許文献２の「５．３  Ｍａｔｃｈｉｎｇ」参照）を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報（カウンタ）を更新するとともに、受信パケットに対して、当該エントリのインストラクションフィールドに記述された処理内容（指定ポートからのパケット送信、フラッディング、廃棄等）を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対してエントリ設定の要求、即ち、受信パケットを処理するための制御情報の送信要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を送信する。オープンフロースイッチは、処理内容が定められたフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを制御情報として用いてパケット転送を行う。【０００５】
また、非特許文献３には、制御用のネットワークを設けずに、スイッチ間のデータ用のネットワークに制御チャネルを収容する方式（以下、「Ｉｎ−ｂａｎｄ制御方式」という。例えば、非特許文献３参照）が開示されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Ｎｉｃｋ  ＭｃＫｅｏｗｎほか７名、“ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”、［ｏｎｌｉｎｅ］、［平成２５（２０１３）年１月９日検索］、インターネット〈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〉
【非特許文献３】小出  俊夫、下西  英之、「ＯｐｅｎＦｌｏｗネットワークにおける制御ネットワークの構築自動化に関する一検討」、信学技報、社団法人電子情報通信学会、ＮＳ２００９−１６５（２０１０−３）、Ｖｏｌ．１０９、 Ｎｏ．４４８、ｐｐ．１９−２４、２０１０年３月
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以下の分析は、本発明によって与えられたものである。非特許文献１、２に代表される集中制御型のネットワークにおいては、制御装置とスイッチ間の制御用チャネルには高い信頼性が求められる。この制御用チャネルが切断されると、その制御用チャネルを介して制御を受けていたスイッチは、制御装置の制御対象から外れ、制御不能となる。結果として、データチャネル用のリンクに接続されている状態であっても通信障害を引き起こすこととなる。【０００８】
上記制御チャネルの信頼性を高めるための方法としては、ＬＡＧ（Ｌｉｎｋ  Ａｇｇｒｅｇａｔｉｏｎ）などのリンク冗長化手法が挙げられる。しかしながら、ＬＡＧは冗長度を高めるためには物理的なリンクを増やす必要があるため、高い冗長度を実現しづらいという問題点がある。【０００９】
非特許文献３では、各スイッチに特殊フレームを解釈させる機能を追加させる必要がある。また、非特許文献３では、トポロジ探索を定期的に繰り返し実施することにより、その対障害性を向上させることができると述べるに止まっている。【００１０】
本発明は、上記集中制御型ネットワークの制御用チャネルの切断時の自動復旧手段を提供し、その対障害性の向上に貢献できる通信システム、スイッチ、制御装置、制御用チャネルの構築方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
第１の視点によれば、制御用チャネルを介してスイッチに制御情報を設定することにより前記スイッチを制御する制御装置と、前記制御装置から設定された制御情報に基づいて受信パケットを処理するパケット処理部と、前記制御装置と他のスイッチ間の制御用パケットの入力ポートを学習し、前記学習結果に基づいて、前記制御用パケットを転送するレイヤ２転送部と、前記制御チャネルの切断を検出した場合、隣接するスイッチに対し、前記制御装置のレイヤ２アドレスの解決を要求するパケットを送信し、前記隣接するスイッチを介して前記制御装置からレイヤ２アドレスを取得し、前記取得したレイヤ２アドレスを用いて前記制御装置との間に第２の制御チャネルを構成する代替制御チャネル構成部と、を備えるスイッチと、を含む通信システムが提供される。【００１２】
第２の視点によれば、制御用チャネルを介してスイッチに制御情報を設定することにより前記スイッチを制御する制御装置から設定された制御情報に基づいて受信パケットを処理するパケット処理部と、前記制御装置と他のスイッチ間の制御用パケットの入力ポートを学習し、前記学習結果に基づいて、前記制御用パケットを転送するレイヤ２転送部と、前記制御チャネルの切断を検出した場合、隣接するスイッチに対し、前記制御装置のレイヤ２アドレスの解決を要求するパケットを送信し、前記隣接するスイッチを介して前記制御装置からレイヤ２アドレスを取得し、前記取得したレイヤ２アドレスを用いて前記制御装置との間に第２の制御チャネルを構成する代替制御チャネル構成部と、を備えるスイッチが提供される。【００１３】
第３の視点によれば、制御チャネルを介して制御情報が設定され、前記制御チャネルの切断を検出すると、隣接するスイッチに対して制御装置のレイヤ２アドレスの解決を要求するパケットを送信するスイッチを制御する制御装置であって、前記制御装置のレイヤ２アドレスの解決を要求するパケットを複数のスイッチから受信した場合、前記パケットのいずれか一つに対して応答する代替制御チャネル管理部を備える制御装置が提供される。
【００１４】
第４の視点によれば、制御用チャネルを介してスイッチに制御情報を設定することにより前記スイッチを制御する制御装置から設定された制御情報に基づいて受信パケットを処理するパケット処理部と、前記制御装置と他のスイッチ間の制御用パケットの入力ポートを学習し、前記学習結果に基づいて、前記制御用パケットを転送するレイヤ２転送部とを備えるスイッチが、前記制御チャネルの切断を検出した場合、隣接するスイッチに対し、前記制御装置のレイヤ２アドレスの解決を要求するパケットを送信するステップと、前記隣接するスイッチを介して前記制御装置からレイヤ２アドレスを取得するステップと、前記取得したレイヤ２アドレスを用いて前記制御装置との間に第２の制御チャネルを構成するステップと、を含む制御用チャネルの構築方法が提供される。本方法は、制御用チャネルを介して設定された制御情報に基づいて受信パケットを処理するスイッチという、特定の機械に結びつけられている。【００１５】
第５の視点によれば、制御用チャネルを介してスイッチに制御情報を設定することにより前記スイッチを制御する制御装置から設定された制御情報に基づいて受信パケットを処理するパケット処理部と、前記制御装置と他のスイッチ間の制御用パケットの入力ポートを学習し、前記学習結果に基づいて、前記制御用パケットを転送するレイヤ２転送部とを備えるスイッチに搭載されたコンピュータに、前記制御チャネルの切断を検出した場合、隣接するスイッチに対し、前記制御装置のレイヤ２アドレスの解決を要求するパケットを送信する処理と、前記隣接するスイッチを介して前記制御装置からレイヤ２アドレスを取得する処理と、前記取得したレイヤ２アドレスを用いて前記制御装置との間に第２の制御チャネルを構成する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な（非トランジエントな）記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１６】
本発明によれば、集中制御型ネットワークの対障害性の向上に貢献することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】一実施形態の構成を示す図である。
【図２】一実施形態の動作を説明するための図である。
【図３】一実施形態の動作を説明するための図である。
【図４】一実施形態の動作を説明するための図である。
【図５】一実施形態の動作を説明するための図である。
【図６】第１の実施形態の通信システムの構成を示す図である。
【図７】第１の実施形態のスイッチの構成を示す図である。
【図８】第１の実施形態のスイッチが保持する制御情報（フローエントリ）を説明するための図である。
【図９】第１の実施形態の制御装置の構成を示す図である。
【図１０】第１の実施形態の制御装置に保持される中継スイッチ情報を説明するための図である。
【図１１】第１の実施形態の制御装置の動作を説明するための図である。
【図１２】第１の実施形態の制御装置の動作を説明するための図である。
【図１３】第１の実施形態の制御装置の動作を説明するための図である。
【図１４】第１の実施形態の制御装置の動作を説明するための図である。
【図１５】第１の実施形態の制御装置の動作を説明するための図である。
【図１６】第１の実施形態の制御装置の動作を説明するための図である。
【図１７】第２の実施形態の通信システムの構成を示す図である。
【発明を実施するための形態】
【００１８】
はじめに一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本願開示を図示の態様に限定することを意図するものではない。
【００１９】
本願開示の一実施形態において、図１に示すように、スイッチ１０Ａ、１０Ｂと、制御用チャネル（図１の破線）を介してスイッチ１０Ａ、１０Ｂに制御情報を設定することにより、スイッチ１０Ａ、１０Ｂを制御する制御装置２０Ａと、を含む通信システムにて実現できる。
【００２０】
より具体的には、スイッチ１０Ａ（１０Ｂ）は、制御装置２０Ａから設定された制御情報に基づいて受信パケットを処理するパケット処理部１２と、前記制御装置と他のスイッチ間の制御用パケットの入力ポートを学習し、前記学習結果に基づいて、前記制御用パケットを転送するレイヤ２転送部１３と、代替制御チャネル構成部１４とを備える。
【００２１】
代替制御チャネル構成部１４は、前記制御チャネルの切断を検出した場合、隣接するスイッチに対し、前記制御装置のレイヤ２アドレスの解決を要求するパケットを送信する（図２参照）。前記制御装置のレイヤ２アドレスの解決を要求するパケットに対する応答が得られると（図３、図４参照）、代替制御チャネル構成部１４は、前記取得したレイヤ２アドレスを用いて前記制御装置との間に第２の制御チャネルを構成する（図５参照）。なお、前記制御チャネルの切断を検出したスイッチと、制御装置２０Ａ間の制御パケットは、第２の制御チャネル上のスイッチのレイヤ２転送部１３によって中継される。
【００２２】
以上のようにすることで、ＬＡＧ等の物理的な冗長リンクを用いずに、代替制御チャネル（第２の制御チャネル）を構成することが可能となる。
【００２３】
［第１の実施形態］
続いて、第１の実施形態について図面を参照して詳細に説明する。図６は、第１の実施形態の通信システムの構成を示す図である。図６を参照すると、複数のスイッチ１０−１〜１０−４と、これらスイッチ１０−１〜１０−４を制御する制御装置２０とが、示されている。スイッチ１０−１〜１０−４は、図６の実線で示されたリンクによって接続されている。また、スイッチ１０−１〜１０−４と制御装置２０は、図６の破線で示された制御用チャネルで接続されている。なお、図６の＃１−１といった符号は、スイッチ１０−１〜１０−４のポート番号を表している。
【００２４】
図７は、第１の実施形態のスイッチ（以下、スイッチ１０−１〜１０−４を特に区別しない場合、「スイッチ１０」と記す。）の構成を示す図である。図７を参照すると、制御情報記憶部１１と、パケット処理部１２と、レイヤ２転送部１３と、代替制御チャネル構成部１４と、プロトコル処理部１５と、を備えた構成が示されている。なお、図７の＃１−１等の符号は、図６に対応するポート番号であり、ＬＯＣＡＬは代替制御チャネル構成部１４に接続されたスイッチ内部のローカルポート、ＮＯＲＭＡＬは、レイヤ２転送部１３に接続されたスイッチ内部のノーマルポートを示している。
【００２５】
制御情報記憶部１１は、制御装置２０から送信された制御情報（フローエントリ）を記憶している。図８は、制御情報（フローエントリ）を格納したテーブルの一例であり、制御情報（フローエントリ）は、受信パケットのヘッダ等と照合するマッチ条件と、このマッチ条件に適合するパケットに適用する処理内容を定めたインストラクションと、個々の制御情報の優先順位を示す優先度とを対応付けて構成されている。
【００２６】
パケット処理部１２は、パケットが入力されると、制御情報記憶部１１から、受信パケットの適合するマッチ条件を持つ制御情報（フローエントリ）を検索し、そのインストラクションフィールドに定められた処理内容（指定ポートからの転送、ヘッダ書換え、廃棄等）を実行する。例えば、図８に示すような制御情報（フローエントリ）が格納されている場合において、送信元ＭＡＣアドレス（ＳＭＡＣ）が、制御装置２０のＭＡＣアドレスであり、かつ、宛先ＭＡＣアドレス（ＤＭＡＣ）が自身のポートのＭＡＣアドレスに一致するパケットを受信すると、スイッチ１０−１は、そのパケットをローカルポートから出力する動作を行う。また、受信パケットに適合するマッチ条件を持つ制御情報（フローエントリ）が制御情報記憶部１１に存在しない場合、パケット処理部１２は、プロトコル処理部１５を介して、制御装置２０に対し、受信パケットの情報を送信して、制御情報（フローエントリ）の生成・送信を要求する（非特許文献２のＰａｃｋｅｔ−Ｉｎメッセージに相当）。なお、制御情報（フローエントリ）の送信を要求動作は、制御情報（フローエントリ）のインストラクションとして設定されている場合にも実行される。
【００２７】
レイヤ２転送部１３は、ＭＡＣアドレステーブルを保持し、以下の動作を行う。まず、レイヤ２転送部１３は、パケットを受信した際、そのパケットのイーサフレームヘッダの送信元ＭＡＣアドレスを参照し、ＭＡＣアドレステーブルに該当するエントリが存在しない場合はそのＭＡＣアドレスと受信ポートと対応付けてＭＡＣアドレステーブルに登録する。また、ＭＡＣアドレステーブルに該当するエントリが存在する場合、レイヤ２転送部１３は、そのＭＡＣアドレスに対応付けられたポートから受信パケットを出力する。また、ＭＡＣアドレステーブルに該当するエントリが存在しない場合、レイヤ２転送部１３は、入力ポートを除くすべてのポートからそのパケットを出力する（フラッディング）。
【００２８】
代替制御チャネル構成部１４は、例えば、制御装置２０と接続されたポート＃１−１のポートダウン等により制御チャネルの切断を検出した場合、他のスイッチと接続しているすべてのポートから、制御装置２０のＭＡＣアドレスの解決を求めるＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）パケットを出力する。このパケットは、隣接するスイッチにおいて、例えば、上述した受信パケットに適合するマッチ条件を持つ制御情報（フローエントリ）が制御情報記憶部１１に存在しない場合の動作により制御装置２０に転送される。
【００２９】
また、前記ＡＲＰ要求パケットに対する応答パケットを受信すると、代替制御チャネル構成部１４は、そのＭＡＣアドレスを宛先として制御装置２０に制御用パケットを送信する。この制御用パケットは、隣接するスイッチ１０のレイヤ２転送部１３を介して、制御装置２０に届けられる。以上により代替制御チャネルが構築される。
【００３０】
プロトコル処理部１５は、非特許文献２のオープンフロープロトコル等の所定のプロトコルに従って、制御装置２０と通信し、制御装置２０から受信した制御情報（フローエントリ）を制御情報記憶部１１に格納する動作や、制御装置２０から指示した制御情報（フローエントリ）を制御情報記憶部１１から削除する動作等を実行する。
【００３１】
なお、上記のようなレイヤ２転送部１３を備えたスイッチ１０は、非特許文献２において「Ｈｙｂｒｉｄ  Ｓｗｉｔｃｈ」として規定されているスイッチに、代替制御チャネル構成部１４を追加することで構成することもできる（非特許文献２の「５．１  Ｐｉｐｅｌｉｎｅ  Ｐｒｏｃｅｓｓｉｎｇ」参照）。
【００３２】
続いて、本実施形態の制御装置２０の構成について説明する。図９は、第１の実施形態の制御装置２０の構成を示す図である。図９を参照すると、代替制御チャネル管理部２１と、スイッチ管理部２２と、パケット梱包・振り分け部２３と、パケット送受信部２４とを備えた構成が示されている。
【００３３】
代替制御チャネル管理部２１は、制御チャネル切断時の代替経路となるスイッチ（中継スイッチ）の情報を管理するモジュールである。図９の例では、代替制御チャネル管理部２１は、中継スイッチ選択部２１１と、中継スイッチ管理部２１２とを備えている。中継スイッチ選択部２１１は、制御チャネル切断を検出したスイッチ１０からのＡＲＰ要求パケットを受信すると、中継スイッチ管理部２１２を参照して、そのＡＲＰ要求パケットがすでに代替制御チャネルを構築済み（他のスイッチを経由して先にＡＲＰ要求パケットを受信し、ＡＲＰ応答を送信済み）であるか否かを確かめてから、ＡＲＰ応答パケットを送信する。
【００３４】
図１０は、中継スイッチ管理部２１２にて保持される中継スイッチ情報の一例である。図１０の例では、制御チャネル接続先スイッチフィールドに、制御チャネル切断を検出したスイッチのＩＰアドレスが格納され、中継スイッチフィールドに、そのスイッチの代替制御チャネル上のスイッチとそのポートの情報が格納されている。
【００３５】
中継スイッチ選択部２１１は、ＡＲＰ要求パケットを受信すると、その送信元のスイッチに対応するエントリがすでに存在するかどうかを確認する。前記確認の結果、送信元のスイッチに対応するエントリが存在しない場合、中継スイッチ選択部２１１は、中継スイッチ管理部２１２に、ＡＲＰ要求パケットの送信元のスイッチの情報と、そのＡＲＰを中継してきたスイッチの情報とを格納し、さらに、ＡＲＰ要求パケットの送信元に対する応答を送信する。一方、前記確認の結果、送信元のスイッチに対応するエントリがすでに存在する場合、すでに代替制御チャネルの構築に必要な情報（制御装置２０のＭＡＣアドレス）は送信元のスイッチ１０に届いているため、中継スイッチ選択部２１１は、ＡＲＰ要求パケットを破棄する。
【００３６】
スイッチ管理部２２は、制御装置２０に接続されているスイッチを管理するモジュールである。例えば、各スイッチ１０からの制御情報（フローエントリ）の送信要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）に応じて、制御情報（フローエントリ）を生成、送信する動作を行う。スイッチ管理部２２は、前記制御情報（フローエントリ）の生成のために、スイッチ１０によって構成されるネットワークトポロジや各スイッチが持つポート情報などを保持している。
【００３７】
パケット梱包・振り分け部２３は、スイッチ１０に送信するパケットのカプセル化や、スイッチ１０から受信したパケットを組み立てて代替制御チャネル管理部２１又はスイッチ管理部２２に振り分ける動作を行う。具体的には、パケット梱包・振り分け部２３は、スイッチ１０から転送されてきたＡＲＰ要求パケットを代替制御チャネル管理部２１に転送し、代替制御チャネル管理部２１から出力されたＡＲＰ応答パケットを、パケット送信モジュールに出力する動作を行う。
【００３８】
パケット送受信部２４は、制御チャネル又は代替制御チャネルを介してスイッチ１０と、パケットの送受信を行うモジュールである。
【００３９】
なお、上記のような制御装置２０は、非特許文献２のオープンフローコントローラをベースに、代替制御チャネル管理部２１と代替制御チャネル管理部２１へのパケット振り分け機能を追加することで構成することができる。
【００４０】
なお、図１に示したスイッチ１０及び制御装置２０の各部（処理手段）は、これらの装置を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【００４１】
続いて、第１の実施形態の動作について図面を参照して詳細に説明する。以下、本実施形態を４つのフェーズ（「初期設定」、「制御チャネル切断後のＡＲＰ要求転送」、「ＡＲＰ応答転送」、「代替制御チャネルの確立」）に分けて説明する。
【００４２】
［初期設定］
図１１は、本実施形態の制御装置２０による初期設定の動作を表した図である。制御装置２０は、スイッチ１０と制御チャネルが確立されると、初期設定として、各スイッチ１０に、以下の処理（１）〜（３）を実行させる制御情報（フローエントリ）を設定する。（１）制御装置２０宛てのパケットは、レイヤ２転送部１３で転送する。例えば、図８の下から２番目の制御情報（フローエントリ）が各スイッチに設定される。なお、図８の例では、マッチ条件がＤＭＡＣ（宛先ＭＡＣアドレス）＝制御装置のＭＡＣアドレスであるパケットをノーマルポート（レイヤ２予約ポート）から出力するインストラクションが定められている。これにより、該当するパケットを受信すると、ノーマルポート経由でレイヤ２転送部１３による転送が行われる。ここで、ノーマルポート（レイヤ２予約ポート）とは、非特許文献２において、レイヤ２転送機能を備えた「Ｈｙｂｒｉｄ  Ｓｗｉｔｃｈ」の予約ポートとして規定されている「Ｎｏｒｍａｌ」ポートと同等のものである。
（２）制御装置２０からのパケットは、レイヤ２転送部１３により転送する。例えば、図８の下から１番目の制御情報（フローエントリ）が各スイッチに設定される。なお、図８の例では、マッチ条件がＳＭＡＣ（送信元ＭＡＣアドレス）＝制御装置のＭＡＣアドレスであるパケットをノーマルポート（レイヤ２予約ポート）から出力するインストラクションが定められている。これにより、先の（１）の制御情報（フローエントリ）と同様に、該当するパケットを受信すると、レイヤ２転送部１３による転送が行われる。
（３）制御装置２０からのパケットであり、かつ、宛先ＭＡＣアドレスが自装置のポートに付与されたＭＡＣアドレスであるパケットは、自装置宛ての制御パケットであると判断し、代替制御チャネル構成部１４に送る。例えば、図８の上から１、２番目の制御情報（フローエントリ）が各スイッチに設定される。なお、図８の例では、該当パケットをローカルポートから出力するインストラクションが定められている。ここで、ローカルポートとは、スイッチ内部の代替制御チャネル構成部１４に接続されているポートであり、非特許文献２において予約ポートとして規定されている「Ｌｏｃａｌ」ポートと同等のものである。
【００４３】
以上のように図８に示す制御情報（フローエントリ）を各スイッチに設定することにより初期設定が完了し、代替制御チャネルの構成が可能となる。なお、上記処理を実現する各制御情報（フローエントリ）のマッチ条件は一部一致することになる。このため、図８の例では、より細かいマッチ条件が設定されている制御情報（フローエントリ）が優先的に適用されるように、高い優先度が与えられている。
【００４４】
［制御チャネル切断後のＡＲＰ要求転送］
図１２は、本実施形態のスイッチ１０−１において制御チャネル切断を検出した場合の動作を表した図である。図１２に示したとおり、スイッチ１０−１は、制御チャネル切断を検出すると、他のスイッチ１０−２、１０−３と接続されているポートから、制御装置のＡＲＰ要求パケットを送信する。
【００４５】
前記ＡＲＰ要求パケットを受信したスイッチ１０−２、１０−３は、ＡＲＰ要求パケットに適合するマッチ条件を持つ制御情報（フローエントリ）を持たないため、図１３に示すように、制御装置２０に対し、受信したＡＲＰ要求パケットを転送し、制御情報（フローエントリ）の送信を要求する（Ｐａｃｋｅｔ−Ｉｎメッセージ）を送信する。
【００４６】
以上により、制御チャネル切断時のＡＲＰ要求パケットが制御装置２０に転送される。なお、図１３の制御装置２０へのＡＲＰ要求パケットの転送は、初期設定時に、ＡＲＰ要求パケットを制御装置２０に転送させる制御情報（フローエントリ）を各スイッチに設定しておくことでも実現できる。
【００４７】
［ＡＲＰ応答転送］
前記ＡＲＰ要求パケットを受信した制御装置２０は、スイッチ１０−２、１０−３のいずれかを中継スイッチとして選択し、スイッチ１０−１との接続ポートを指定してＡＲＰ応答パケットの出力を指示する。図１４の例では、スイッチ１０−２からのＡＲＰ要求パケットの方が先に制御装置２０に到達したため、制御装置２０は、中継スイッチとしてスイッチ１０−２を選択し、そのポート＃２−１からＡＲＰ応答パケットを送信するよう指示している。なお、本実施形態では、非特許文献２のＰａｃｋｅｔ−Ｏｕｔメッセージを用いてＡＲＰ応答パケットの出力を指示している。また、本実施形態では、ＡＲＰ要求パケットの到達が早かった（つまりチャネル長が短い）方のスイッチを中継スイッチとして選択しているが、例えば、制御装置２０が、各スイッチの性能や位置（実際に最短経路上にあるかどうか）等を考慮するものとしてもよい。
【００４８】
前記ＡＲＰ応答パケットの出力を指示するＰａｃｋｅｔ−Ｏｕｔメッセージを受信したスイッチ１０−２は、図１５に示すように、Ｐａｃｋｅｔ−Ｏｕｔメッセージにて指定されたポートからＡＲＰ応答パケットを出力する。これにより、制御装置２０からのＡＲＰ応答パケットがスイッチ１０−１に到達する。
【００４９】
［代替制御チャネルの確立］
前記ＡＲＰ応答パケットを受信したスイッチ１０−１は、スイッチ１０−２からＡＲＰ応答パケットを受信したので、図８の上から１番目の制御情報（フローエントリ）に従い、内部のローカルポートを介して、代替制御チャネル構成部１４にＡＲＰ応答パケットを転送する。
【００５０】
ＡＲＰ応答パケットを受信した代替制御チャネル構成部１４は、前記ＡＲＰ応答パケットを受信したポートから制御装置２０に対しセッション接続要求パケットを送信する。スイッチ１０−２は、セッション接続要求パケットを受信すると、初期設定にて設定された、制御装置宛てのパケットをレイヤ２で転送するとの制御情報（フローエントリ）に従い、レイヤ２転送部１３を介して、制御装置２０に転送する。なお、この段階で、スイッチ１０−２のレイヤ２転送部１３が、制御装置２０のＭＡＣアドレスとそのポートを未学習である場合、フラッディングを行うことになる。もちろん、制御装置２０がスイッチ１０−２のレイヤ２転送部１３に自身のＭＡＣアドレスを学習させるパケットを送信するようにしてフラッディングを抑止するようにしてもよい。
【００５１】
セッション接続要求パケットを受信した制御装置２０は、スイッチ１０−２経由で、スイッチ１０−１に対して、セッション接続応答パケットを送信する。スイッチ１０−２は、セッション接続応答パケットを受信すると、初期設定にて設定された、制御装置２０を送信元とするパケットをレイヤ２で転送するとの制御情報（フローエントリ）に従い、レイヤ２転送部１３を介して、スイッチ１０−１に転送する。なお、ここでは、スイッチ１０−２のレイヤ２転送部１３は、セッション接続要求パケットの転送時に、スイッチ１０−１のＭＡＣアドレスとそのポートを学習しているため、フラッディングは行われない。
【００５２】
以上により、セッション接続応答パケットがスイッチ１０−１に到達することで、図１６に示すように、代替制御チャネルが確立される。以後、制御装置２０は、スイッチ１０−１の制御を再開する。なお、この代替制御チャネルも切断となった場合には、再度、上記［制御チャネル切断後のＡＲＰ要求転送］処理以降を実行することで、今度は、スイッチ１０−３を中継スイッチとした代替制御チャネルを構築することができる。
【００５３】
以上のように、本実施形態によれば、制御装置２０とスイッチ１０間の物理リンクを増設することなく、制御チャネルの冗長化を実現することが可能となる。その理由は、他のスイッチを経由して制御装置２０へ到達可能な物理的な経路が存在する限り、代替制御チャネルを構成できるようにしたことにある。
【００５４】
以上、本発明の実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成や要素の構成は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
【００５５】
例えば、図１７に示すように、制御装置２０の制御を受けないレイヤ２スイッチが混在するネットワークにも適用可能である（第２の実施形態）。
【００５６】
図１７の場合、制御装置２０とスイッチ１０−１〜１０−４間にレイヤ２スイッチ（以下、「Ｌ２スイッチ」）３０−１が配置されている。この場合においても、スイッチ１０とＬ２スイッチを繋ぐリンクが切断された場合は、第１の実施形態と同様にＡＲＰ要求パケットの送信が開始され、同様の手順により代替制御チャネルを確立することができる。なお、図１７の例においては、ＡＲＰ要求パケットに対する応答が行われた後、制御チャネル切断検出スイッチ（例えば、スイッチ１０−１）から、セッション接続要求パケットが送信されたタイミングで、Ｌ２スイッチ３０−１がＭＡＣテーブルを学習することになる。また、この場合においては、制御装置２０がＬ２スイッチ３０−１に自身のＭＡＣアドレスを学習させるパケットを送信するようにしてフラッディングを抑止するようにしてもよい。
【００５７】
また、図１７の場合、スイッチ１０−２とスイッチ１０−３との間にもＬ２スイッチ３０−２が配置されている。この場合においても、問題なくＡＲＰ要求パケット及びＡＲＰ応答パケットを転送することができる。例えば、図１７のスイッチ１０−２の制御チャネルが切断されたとすると、スイッチ１０−２は、Ｌ２スイッチ３０−２にもＡＲＰ要求パケットを送信する。この段階で、Ｌ２スイッチ３０−２は、スイッチ１０−２のＭＡＣアドレスを学習する。そして、Ｌ２スイッチ３０−２がＡＲＰ要求パケットをフラッディングすることにより、ＡＲＰ要求パケットがスイッチ１０−４に到達する。その後は、先の第１の実施形態と同様に、スイッチ１０−４が、制御装置２０に対して、制御情報（フローエントリ）の生成、送信を要求する動作により、ＡＲＰ要求パケットが制御装置２０に到達する。制御装置２０が、中継スイッチとしてスイッチ１０−４を選択した場合、制御装置２０は、スイッチ１０−４に対し、Ｌ２スイッチ３０−２に向けてＡＲＰ応答パケットを出力するよう指示する。この段階で、Ｌ２スイッチ３０−２は、スイッチ１０−２のＭＡＣアドレスを学習しているので、ＡＲＰ応答パケットは、スイッチ１０−２に到達する。また、Ｌ２スイッチ３０−２は、ＡＲＰ応答パケットの受信時に、制御装置２０のＭＡＣアドレスを学習するので、スイッチ１０−２から受信したセッション接続要求パケットもスイッチ１０−４経由で制御装置２０に転送される。
【００５８】
また、上記した第１の実施形態では特に触れなかったが、本発明は、非特許文献３に記載されているＩｎ−ｂａｎｄ制御方式にも適用することができる。
【００５９】
最後に、本発明の好ましい形態を要約する。
［第１の形態］
（上記第１の視点による通信システム参照）
［第２の形態］
第１の形態の通信システムにおいて、
前記スイッチは、前記制御チャネルの切断を検出した場合、隣接するすべてのスイッチに対し、前記制御装置のレイヤ２アドレスの解決を要求するパケットを送信し、
前記制御装置は、前記制御装置のレイヤ２アドレスの解決を要求するパケットのいずれか一つに対して応答する代替制御チャネル管理部を備える通信システム。
［第３の形態］
第２の形態の通信システムにおいて、
前記代替制御チャネル管理部は、最初に到達した制御装置のレイヤ２アドレスの解決を要求するパケットに応答する通信システム。
［第４の形態］
第１から第３いずれか一の形態の通信システムにおいて、
前記制御装置は、前記制御装置と他のスイッチ間の制御用パケットを前記レイヤ２転送部で転送するよう指示する制御情報を、予め各スイッチに設定しておく通信システム。
［第５の形態］
第１から第４いずれか一の形態の通信システムにおいて、
前記制御装置と前記スイッチとの間、又は、前記スイッチ間に、レイヤ２スイッチが配置されている通信システム。
［第６の形態］
（上記第２の視点によるスイッチ参照）
［第７の形態］
第６の形態のスイッチにおいて、
前記制御チャネルの切断を検出した場合、隣接するすべてのスイッチに対し、前記制御装置のレイヤ２アドレスの解決を要求するパケットを送信するスイッチ。
［第８の形態］
第６又は第７の形態のスイッチにおいて、
前記制御装置から設定された制御情報に基づいて、前記制御装置と他のスイッチ間の制御用パケットを前記レイヤ２転送部で転送するスイッチ。
［第９の形態］
（上記第３の視点による制御装置参照）
［第１０の形態］
（上記第４の視点による制御用チャネルの構築方法参照）
［第１１の形態］
（上記第５の視点によるプログラム参照）
なお、上記第１０、第１１の形態は、第１の形態と同様に、第２〜第５の形態に展開することが可能である。
【００６０】
なお、上記の非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００６１】
１０、１０Ａ、１０Ｂ、１０−１〜１０−４  スイッチ
１１  制御情報記憶部
１２  パケット処理部  
１３  レイヤ２転送部
１４  代替制御チャネル構成部
１５  プロトコル処理部
２０、２０Ａ  制御装置
２１  代替制御チャネル管理部
２２  スイッチ管理部
２３  パケット梱包・振り分け部
２４  パケット送受信部
３０−１、３０−２  レイヤ２スイッチ（Ｌ２スイッチ）
２１１  中継スイッチ選択部
２１２  中継スイッチ管理部
＃１−１、＃１−２、＃１−３、＃２−１  ポート
【図１】
0005987971.tif 000002
【図２】
0005987971.tif 000003
【図３】
0005987971.tif 000004
【図４】
0005987971.tif 000005
【図５】
0005987971.tif 000006
【図６】
0005987971.tif 000007
【図７】
0005987971.tif 000008
【図８】
0005987971.tif 000009
【図９】
0005987971.tif 000010
【図１０】
0005987971.tif 000011
【図１１】
0005987971.tif 000012
【図１２】
0005987971.tif 000013
【図１３】
0005987971.tif 000014
【図１４】
0005987971.tif 000015
【図１５】
0005987971.tif 000016
【図１６】
0005987971.tif 000017
【図１７】
0005987971.tif 000018