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