(57)【要約】【課題】可用性を向上させる通信システムを提供する。【解決手段】通信システムは、通信ノードと接続され、パケットを処理するための処理規則に従いパケットを処理するスイッチと、スイッチに処理規則を設定する制御装置と、スイッチに接続され、稼働系の通信ノードと待機系の通信ノードからなる冗長化システムを管理する管理装置と、を含む。制御装置は、スイッチと稼働系の通信ノードの間の接続障害により、通信ノードと稼働系の通信ノード間の第１のパケット転送経路が不存在となる場合に、第１のパケット転送経路に関連する処理規則を、スイッチから削除すると共に、第１のパケット転送経路の不存在を管理装置に通知する。管理装置は、制御装置からの通知に応じて、冗長化システムの稼働系と待機系の通信ノードを入れ替える。【選択図】図１
2014168157.tif 000002
【特許請求の範囲】
【請求項１】
通信ノードと接続され、パケットを処理するための処理規則に従いパケットを処理するスイッチと、
前記スイッチに処理規則を設定する制御装置と、
前記スイッチに接続され、稼働系の通信ノードと待機系の通信ノードからなる冗長化システムを管理する管理装置と、
を含み、
前記制御装置は、前記スイッチと前記稼働系の通信ノードの間の接続障害により、前記通信ノードと前記稼働系の通信ノード間の第１のパケット転送経路が不存在となる場合に、前記第１のパケット転送経路に関連する処理規則を、前記スイッチから削除すると共に、前記第１のパケット転送経路の不存在を前記管理装置に通知し、
前記管理装置は、前記制御装置からの通知に応じて、前記冗長化システムの稼働系と待機系の通信ノードを入れ替える通信システム。
【請求項２】
前記制御装置は、前記スイッチのポートであって、前記稼働系の通信ノードと接続する第１のポートの状態変化に応じて、前記第１のパケット転送経路が存在するか否かを判定する請求項１の通信システム。
【請求項３】
前記制御装置は、前記スイッチのポートであって、他のスイッチと接続する第２のポートの状態変化に応じて、前記第１のパケット転送経路が存在するか否かを判定する請求項１又は２の通信システム。
【請求項４】
前記制御装置は、パケット転送経路に含まれる、始点のスイッチ、中間のスイッチ及び終点のスイッチに関する情報に基づいて、前記第１のパケット転送経路が存在するか否かを判定する請求項１乃至３のいずれか一項に記載の通信システム。
【請求項５】
前記制御装置は、前記第１のパケット転送経路が不存在となる場合に、前記通信ノードと前記待機系の通信ノード間の第２のパケット転送経路を計算し、前記計算された第２のパケット転送経路を実現する処理規則を、前記スイッチに設定する請求項１乃至４のいずれか一項に記載の通信システム。
【請求項６】
前記管理装置は、前記稼働系の通信ノードに生じた障害を認識した場合に、前記制御装置に、前記稼働系の通信ノードの使用不能を通知する請求項１乃至５のいずれか一項に記載の通信システム。
【請求項７】
前記制御装置は、前記使用不能が通知された稼働系の通信ノードに関連する処理規則を、前記スイッチから削除する請求項６の通信システム。
【請求項８】
通信ノードと接続され、パケットを処理するための処理規則に従いパケットを処理するスイッチを制御する制御装置であって、
前記スイッチと、冗長化システムを構成する稼働系の通信ノードの間の接続障害により、前記通信ノードと前記稼働系の通信ノード間のパケット転送経路が不存在となる場合に、前記パケット転送経路を実現する処理規則を、前記スイッチから削除すると共に、前記パケット転送経路の不存在を、前記冗長化システムを管理する管理装置に通知する制御装置。
【請求項９】
通信ノードと接続され、パケットを処理するための処理規則に従いパケットを処理するスイッチを制御する制御装置の制御方法であって、
前記スイッチと、冗長化システムを構成する稼働系の通信ノードの間の接続障害により、前記通信ノードと前記稼働系の通信ノード間のパケット転送経路が存在するか否かを判定する工程と、
前記パケット転送経路が不存在の場合に、前記パケット転送経路を実現する処理規則を、前記スイッチから削除する工程と、
前記パケット転送経路が不存在の場合に、前記パケット転送経路の不存在を、前記冗長化システムを管理する管理装置に通知する工程と、
を含む制御装置の制御方法。
【請求項１０】
通信ノードと接続され、パケットを処理するための処理規則に従いパケットを処理するスイッチを制御する制御装置を制御するコンピュータに実行させるプログラムであって、
前記スイッチと、冗長化システムを構成する稼働系の通信ノードの間の接続障害により、前記通信ノードと前記稼働系の通信ノード間のパケット転送経路が存在するか否かを判定する処理と、
前記パケット転送経路が不存在の場合に、前記パケット転送経路を実現する処理規則を、前記スイッチから削除する処理と、
前記パケット転送経路が不存在の場合に、前記パケット転送経路の不存在を、前記冗長化システムを管理する管理装置に通知する処理と、
実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、制御装置、制御装置の制御方法及びプログラムに関する。特に、冗長化された通信システム、制御装置、制御装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている（非特許文献１、２参照）。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。非特許文献２に仕様化されているオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加又は書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）と、フロー統計情報（Ｃｏｕｎｔｅｒｓ）と、処理内容を定義したインストラクション（Ｉｎｓｔｒｕｃｔｉｏｎｓ）と、の組が定義される（非特許文献２の「４．１  Ｆｌｏｗ  Ｔａｂｌｅ」の項参照）。
【０００３】
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチ条件（非特許文献２の「４．３  Ｍａｔｃｈ  Ｆｉｅｌｄｓ」参照）を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報（カウンタ）を更新するとともに、受信パケットに対して、当該エントリのインストラクションフィールドに記述された処理内容（指定ポートからのパケット送信、フラッディング、廃棄等）を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対してエントリ設定の要求、即ち、受信パケットを処理するための制御情報の送信要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を送信する。オープンフロースイッチは、処理内容が定められたフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを制御情報として用いてパケット転送を行う。
【０００４】
さらに、ネットワークの信頼性及び可用性を向上させる目的で、通信ノードの冗長化が行われる。例えば、ＶＲＲＰ（Virtual Router Redundancy Protocol）等の冗長化プロトコルをサポートする２つの通信ノードを用意し、これらの通信ノードのうち１つを稼働系の通信ノードとして動作させ、他の通信ノードは待機系の通信ノードとして動作させる。稼働系の通信ノードに障害が生じると、稼働系の通信ノードと待機系の通信ノードが入れ替わる（フェイルオーバーの実施）ことで、ネットワークの信頼性及び可用性を高める。
【０００５】
特許文献１において、稼働系の通信ノードと待機系の通信ノードの間で定期的な通信（所謂、ハートビート通信）を行い、稼働系のホストの生存を確認する冗長化システム（二重化システム）が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−３０２５１２号公報
【非特許文献】
【０００７】
【非特許文献１】Nick McKeownほか７名、"OpenFlow: Enabling Innovation in Campus Networks"、［online］、［平成25年2月1日検索］、インターネット〈URL：http://www.openflowswitch.org//documents/openflow-wp-latest.pdf〉
【非特許文献２】"OpenFlow Switch Specification" Version 1.1.0. (Wire Protocol 0x02) ［平成25年2月1日検索］、インターネット〈URL：http://www.openflowswitch.org/documents/openflow-spec-v1.1.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００８】
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
【０００９】
特許文献１が開示するような、稼働系の通信ノードと待機系の通信ノードが定期的な通信を行うことで、稼働系の通信ノードと待機系の通信ノードを入れ替える手法には、通信システム全体の信頼性及び可用性の観点からは問題がある。冗長化された通信ノードを含む通信システムが正常に動作しない状況は、稼働系の通信ノードにおける障害の発生に限らない。例えば、稼働系の通信ノードと、当該通信ノードに接続されたスイッチと、の間に接続障害が生じている場合には、通信システム全体が正常に動作しているといえない。
【００１０】
しかし、このような場合、稼働系の通信ノード自身には障害が生じておらず、稼働系の通信ノードと待機系の通信ノード間の定期的な通信は可能である。稼働系の通信ノードと待機系の通信ノードとの間で定期的な通信が行われていれば、フェイルオーバーは生じない。即ち、稼働系の通信ノードと当該通信ノードに接続されたスイッチの間には接続障害が生じているにもかかわらず、障害を回復するための対応が実施されることはない。即ち、通信システムの可用性に関し、改善の余地がある。
【００１１】
本発明は、可用性を向上させることに寄与する通信システムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の第１の視点によれば、通信ノードと接続され、パケットを処理するための処理規則に従いパケットを処理するスイッチと、前記スイッチに処理規則を設定する制御装置と、前記スイッチに接続され、稼働系の通信ノードと待機系の通信ノードからなる冗長化システムを管理する管理装置と、を含み、前記制御装置は、前記スイッチと前記稼働系の通信ノードの間の接続障害により、前記通信ノードと前記稼働系の通信ノード間の第１のパケット転送経路が不存在となる場合に、前記第１のパケット転送経路に関連する処理規則を、前記スイッチから削除すると共に、前記第１のパケット転送経路の不存在を前記管理装置に通知し、前記管理装置は、前記制御装置からの通知に応じて、前記冗長化システムの稼働系と待機系の通信ノードを入れ替える通信システムが提供される。
【００１３】
本発明の第２の視点によれば、通信ノードと接続され、パケットを処理するための処理規則に従いパケットを処理するスイッチを制御する制御装置であって、前記スイッチと、冗長化システムを構成する稼働系の通信ノードの間の接続障害により、前記通信ノードと前記稼働系の通信ノード間のパケット転送経路が不存在となる場合に、前記パケット転送経路を実現する処理規則を、前記スイッチから削除すると共に、前記パケット転送経路の不存在を、前記冗長化システムを管理する管理装置に通知する制御装置が提供される。
【００１４】
本発明の第３の視点によれば、通信ノードと接続され、パケットを処理するための処理規則に従いパケットを処理するスイッチを制御する制御装置の制御方法であって、前記スイッチと、冗長化システムを構成する稼働系の通信ノードの間の接続障害により、前記通信ノードと前記稼働系の通信ノード間のパケット転送経路が存在するか否かを判定する工程と、前記パケット転送経路が不存在の場合に、前記パケット転送経路を実現する処理規則を、前記スイッチから削除する工程と、前記パケット転送経路が不存在の場合に、前記パケット転送経路の不存在を、前記冗長化システムを管理する管理装置に通知する工程と、を含む制御装置の制御方法が提供される。
なお、本方法は、スイッチを制御する制御装置という、特定の機械に結びつけられている。
【００１５】
本発明の第４の視点によれば、通信ノードと接続され、パケットを処理するための処理規則に従いパケットを処理するスイッチを制御する制御装置を制御するコンピュータに実行させるプログラムであって、前記スイッチと、冗長化システムを構成する稼働系の通信ノードの間の接続障害により、前記通信ノードと前記稼働系の通信ノード間のパケット転送経路が存在するか否かを判定する処理と、前記パケット転送経路が不存在の場合に、前記パケット転送経路を実現する処理規則を、前記スイッチから削除する処理と、前記パケット転送経路が不存在の場合に、前記パケット転送経路の不存在を、前記冗長化システムを管理する管理装置に通知する処理と、実行させるプログラムが提供される。
なお、第４の視点に係るプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント（ｎｏｎ−ｔｒａｎｓｉｅｎｔ）なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１６】
本発明の各視点によれば、可用性を向上させることに寄与する通信システム、制御装置、制御装置の制御方法及びプログラムが、提供される。
【図面の簡単な説明】
【００１７】
【図１】一実施形態の概要を説明するための図である。
【図２】第１の実施形態に係る通信システムの一例を示す図である。
【図３】スイッチ１０の内部構成の一例を示す図である。
【図４】スイッチ１０に設定する処理規則の一例を示す図である。
【図５】インストラクションフィールドに設定可能な処理内容とその内容の一例の図である。
【図６】制御装置２０の内部構成の一例を示す図である。
【図７】トポロジＤＢ２２のエントリの一例を示す図である。
【図８】パケット転送経路ＤＢ２５のエントリの一例を示す図である。
【図９】構成管理装置４０の内部構成の一例を示す図である。
【図１０】通信ノード管理ＤＢ４１のエントリの一例を示す図である。
【図１１】スイッチ１０の動作の一例を示すフローチャートである。
【図１２】制御装置２０の動作の一例を示すフローチャートである。
【図１３】制御装置２０の動作の一例を示すフローチャートである。
【図１４】制御装置２０の動作の一例を示すフローチャートである。
【図１５】構成管理装置４０の動作の一例を示すフローチャートである。
【図１６】構成管理装置４０の動作の一例を示すフローチャートである。
【図１７】第１の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図１８】第１の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図１９】第１の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図２０】第１の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図２１】第２の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図２２】制御装置２０ａの動作の一例を示すフローチャートである。
【図２３】構成管理装置４０の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
初めに、図１を用いて一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
【００１９】
上述のように、スイッチと稼働系の通信ノードの間に接続障害が生じた場合であっても、稼働を継続する可用性の高い通信システムが望まれる。
【００２０】
そこで、一例として図１に示す通信システムを提供する。図１に示す通信システムは、スイッチ１００−１及び１００−２と、制御装置１０１と、管理装置１０２と、を含んで構成される。通信ノード１０３と接続されるスイッチ１００−１と、１００−２は、パケットを処理するための処理規則に従い、パケットを処理する。制御装置１０１は、スイッチ１００−１及び１００−２に処理規則を設定する。管理装置１０２は、スイッチ１００−１及び１００−２に接続され、稼働系の通信ノード１０４と待機系の通信ノード１０５からなる冗長化システムを管理する。制御装置１０１は、スイッチ１００−１と稼働系の通信ノード１０４の間の接続障害により、通信ノード１０３と稼働系の通信ノード１０４間の第１のパケット転送経路が不存在となる場合に、第１のパケット転送経路に関連する処理規則を、スイッチ１００−１及び１００−２から削除すると共に、第１のパケット転送経路の不存在を管理装置１０２に通知する。管理装置１０２は、制御装置１０１からの通知に応じて、冗長化システムの稼働系と待機系の通信ノードを入れ替える。
【００２１】
制御装置１０１は、スイッチ１００−１と稼働系の通信ノード１０４の間に生じた接続障害を、例えば、スイッチ１００−１におけるポートの状態変化等により認識する。制御装置１０１は、その接続障害に起因し、通信ノード１０３と稼働系の通信ノード１０４間の第１のパケット転送経路が消滅した場合には、第１のパケット転送経路を実現する処理規則をスイッチ１００−１及び１００−２から削除する。さらに、制御装置１０１は、第１のパケット転送経路の不存在を、管理装置１０２に通知する。通知を受信した管理装置１０２は、稼働系の通信ノード１０４を待機系の通信ノードとして動作させ、待機系の通信ノード１０５を稼働系の通信ノードとして動作させる。その結果、稼働系の通信ノード１０４には障害が発生しておらず、管理装置１０２は、稼働系の通信ノード１０４を介して、通信システムの障害を認識できない状況であっても、制御装置１０１を介して通信システムの障害を認識できる。管理装置１０２は、スイッチ１００−１と稼働系の通信ノード１０４の間の接続障害を認識すれば、待機系の通信ノード１０５を稼働系の通信ノードとして動作させることができる。
【００２２】
また、既に設定されていた第１のパケット転送経路を実現する処理規則は削除されるため、例えば、通信ノード１０３から冗長化システムに向けてパケットが送信された場合、スイッチ１００−１は新規パケットを受信したと判断し、制御装置１０１に処理規則の設定を要求する。要求を受けた制御装置１０１は、通信ノード１０３から新たな稼働系の通信ノードへのパケット転送経路を実現する処理規則を、スイッチ１００−１及び１００−２に設定する。その結果、通信ノード１０３から冗長化システムに向けたパケット転送経路が確保され、通信システムの運用を継続できる。即ち、通信システムに生じた障害が回復され、通信システムの可用性が高まる。
【００２３】
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。
【００２４】
［第１の実施形態］
第１の実施形態について、図面を用いてより詳細に説明する。
【００２５】
図２は、第１の実施形態に係る通信システムの一例を示す図である。図２を参照すると、ネットワーク間の接続を実現するスイッチ１０−１〜１０−３と、スイッチ１０−１〜１０−３を含むネットワークを制御する制御装置２０と、スイッチ１０−１〜１０−３のそれぞれに接続された通信ノード３０−１〜３０−３と、構成管理装置４０と、を含む構成が示されている。
【００２６】
例えば、制御装置２０はオープンフローコントローラに相当し、スイッチ１０−１〜１０−３はオープンフロースイッチに相当する。制御装置２０と、スイッチ１０−１〜１０−３は、それぞれ、セキュアチャネルにより接続されている。また、スイッチ１０−１〜１０−３の間の回線は、冗長化されている。
【００２７】
なお、以降の説明において、スイッチ１０−１〜１０−３を特に区別する必要のないときは「スイッチ１０」と表記する。同様に、通信ノード３０−１〜３０−３を特に区別する必要のないときは「通信ノード３０」と表記する。また、図２に示す通信システムは例示であって、スイッチや通信ノードの個数及びこれらの接続は、図２の構成に限定されない。
【００２８】
通信ノード３０−１〜３０−３は、サーバ等の計算機である。通信ノード３０−１〜３０−３のうち、少なくとも２以上の通信ノードにより冗長化システムを構成する。図２に示す通信システムにおいては、通信ノード３０−１及び３０−３が冗長化システムを構成する。また、冗長化システムを構成する通信ノード３０のうち、稼働系の通信ノードは、構成管理装置４０に対して、自身は稼働中であることを示すメッセージを定期的に送信する（以下、当該メッセージをハートビート（Ｈｅａｒｔ＿Ｂｅａｔ）メッセージと表記する）。構成管理装置４０は、ハートビートメッセージを受信することで、稼働系の通信ノードが正常に動作していることを確認する。換言するならば、構成管理装置４０は、ハートビートメッセージを受信できない場合に、稼働系の通信ノードに障害が生じていると認識する。
【００２９】
また、稼働系の通信ノードは、自らに障害が生じていると認識した場合には、その旨を構成管理装置４０に通知してもよい。その結果、稼働系の通信ノードは、自らの障害を構成管理装置４０に対して能動的に伝達でき、稼働系と待機系の通信ノードの入れ替えを早期に実現できる。本実施形態に係る通信ノード３０は、自らの障害を検出した場合には、構成管理装置４０に対してその旨を通知する。なお、稼働系の通信ノードが、自らに障害が生じたことを構成管理装置４０に通知する際に使用するメッセージを、障害通知（Ｆａｉｌｕｒｅ＿Ｎｏｔｉｆｉｃａｔｉｏｎ）メッセージと表記し、以降の説明を行う。例えば、通信ノード３０は、自身に含まれる機能モジュールが正常動作しているか否かを判定し、機能モジュールが正常に動作していないと判定した場合には、障害通知メッセージを構成管理装置４０に送信する。なお、通信ノード３０が、機能モジュールの動作を確認する方法はどのようなものでもよい。例えば、機能モジュールが正常動作している場合には、内部レジスタのフラグを定期的に反転させ、当該レジスタのフラグが、所定の期間、変化しない場合に、当該機能モジュールに障害が生じていると判定してもよい。
【００３０】
冗長化システムを構成する通信ノード３０は、構成管理装置４０の指示に従い、稼働系の通信ノードから待機系の通信ノード（あるいは、その逆）に入れ替わる。より具体的には、構成管理装置４０が送信するサービスストップ（Ｓｅｒｖｉｃｅ＿Ｓｔｏｐ）メッセージを受信した稼働系の通信ノード３０は待機系の通信ノードへと動作モードを切り替える。また、構成管理装置４０が送信するサービススタート（Ｓｅｒｖｉｃｅ＿Ｓｔａｒｔ）メッセージを受信した待機系の通信ノード３０は稼働系の通信ノードへと動作モードを切り替える。なお、構成管理装置４０が、サービスストップメッセージ及びサービススタートメッセージを送信する条件等の詳細は後述する。
【００３１】
構成管理装置４０は、クラスタ化され、冗長化システムを構成する通信ノード群を管理し、制御する装置である。図２において、通信ノード３０−１及び３０−３により冗長化システムが構成され、構成管理装置４０はこれらの通信ノード３０を管理し、制御する。
【００３２】
スイッチ１０は、パケットを処理するための処理規則に従い、パケットを処理する。図３は、スイッチ１０の内部構成の一例を示す図である。スイッチ１０は、通信部１１と、テーブル管理部１２と、テーブルデータベース（テーブルＤＢ）１３と、転送処理部１４と、接続監視部１５と、を含んで構成されている。
【００３３】
通信部１１は、スイッチ１０に処理規則（フローエントリ）を設定する制御装置２０との通信を実現する手段である。本実施形態では、通信部１１は、非特許文献２のオープンフロープロトコルを用いて制御装置２０と通信するものとする。但し、通信部１１と制御装置２０との通信プロトコルは、オープンフロープロトコルに限定されるものではない。
【００３４】
テーブル管理部１２は、テーブルＤＢ１３に保持されているフローテーブルを管理する手段である。より具体的には、テーブル管理部１２は、制御装置２０から指示された処理規則をテーブルＤＢ１３に登録し、転送処理部１４から新規パケットを受信したことが通知されると、制御装置２０に処理規則の設定を要求する。
【００３５】
テーブルＤＢ１３は、転送処理部１４が受信パケットの処理を行う際に参照するフローテーブルを１つ以上格納可能なデータベースによって構成される。
【００３６】
転送処理部１４は、テーブル検索部１４１と、アクション実行部１４２と、を含んで構成される。テーブル検索部１４１は、テーブルＤＢ１３に格納されたフローテーブルから、受信パケットに適合するマッチフィールドを持つエントリを検索する手段である。アクション実行部１４２は、テーブル検索部１４１にて検索されたエントリのインストラクションフィールドに示す処理内容に従ってパケット処理を行う手段である。
【００３７】
転送処理部１４は、受信パケットに適合するマッチフィールドを持つエントリが見つからなかった場合は、その旨をテーブル管理部１２に通知する。さらに、転送処理部１４は、パケット処理に応じて、テーブルＤＢ１３に登録されている統計情報を更新する。
【００３８】
接続監視部１５は、スイッチ１０が備えるポートの接続状態を監視する。より具体的には、接続監視部１５は、スイッチ１０のポートに通信機器（具体的には通信ノード３０、他のスイッチ１０）が接続され、当該通信機器との接続が活性化することを検出する。あるいは、接続監視部１５は、自身のポートに接続された通信機器が取り除かれ、当該通信機器との接続が非活性化することを検出する。このように、接続監視部１５は、スイッチ１０が備えるポートの状態変化を検出する。
【００３９】
接続監視部１５は、ポートの状態変化を検出した場合に、制御装置２０に対して、ポートステータス（Ｐｏｒｔ＿Ｓｔａｔｕｓ）メッセージを、通信部１１を介して送信する。ポートステータスメッセージは、スイッチ１０が備えるポートの状態変化（他の通信機器とのリンク確立又はリンク切断）を制御装置２０に通知するメッセージである。なお、本実施形態に係るスイッチ１０は、通信ノード３０と接続するポートの状態変化と、他のスイッチ１０と接続するポートの状態変化と、をそれぞれ検出し、検出結果をポートステータスメッセージとして制御装置２０に送信する。つまり、スイッチ１０が備えるポートでのリンク確立（リンクアップ）を示すポートステータスメッセージと、スイッチ１０が備えるポートでのリンク切断（リンクダウン）を示すポートステータスメッセージと、がスイッチ１０から制御装置２０に送信される。即ち、ポートステータスメッセージは、スイッチ１０と、通信ノード３０又は他のスイッチ１０と、の間の接続障害の発生を制御装置２０に通知するためのメッセージである。
【００４０】
図４は、スイッチ１０に設定する処理規則の一例を示す図である。図４を参照すると、受信パケットのパケットヘッダと照合するルールを格納するマッチフィールド（Ｍａｔｃｈ  Ｆｉｅｌｄ）と、ルールに適合するパケット等の統計情報を格納するフロー統計情報フィールド（Ｃｏｕｎｔｅｒｓ）と、ルールに適合するパケットに適用する処理内容（Ａｃｔｉｏｎ）を格納するインストラクションフィールド（Ｉｎｓｔｒｕｃｔｉｏｎｓ）と、を対応付けたエントリ（処理規則）が示されている。なお、マッチフィールドには、入力ポートや送信元ＭＡＣアドレス等に関するルールを格納する複数のカラムが含まれる。また、受信パケットのパケットヘッダと照合するルールとして、マッチフィールドの条件にワイルドカードを設定してもよい。
【００４１】
図５は、インストラクションフィールドに設定可能な処理内容とその内容の一例の図である。図５を参照すると、例えば、ＯＵＴＰＵＴは、受信パケットを指定ポート（インタフェース）に出力するアクションであることが分かる。また、ＳＥＴ＿ＶＬＡＮ＿ＶＩＤからＳＥＴ＿ＴＰ＿ＤＳＴは、パケットヘッダのフィールドを修正するアクションである。これらを組み合わせて、例えば、ある送信元から宛先に送信されるパケットのＶＬＡＮ  ＩＤを書き換えた上で、指定ポートから出力できる。
【００４２】
図６は、制御装置２０の内部構成の一例を示す図である。制御装置２０は、トポロジ管理部２１と、トポロジデータベース（トポロジＤＢ）２２と、制御メッセージ処理部２３と、経路・アクション計算部２４と、パケット転送経路データベース（パケット転送経路ＤＢ）２５と、処理規則管理部２６と、処理規則データベース（処理規則ＤＢ）２７と、接続変更処理部２８と、スイッチ１０及び構成管理装置４０との通信を行うノード通信部２９と、を含んで構成される。
【００４３】
トポロジ管理部２１は、制御メッセージ処理部２３及びノード通信部２９を介して、制御装置２０が制御対象とするスイッチ１０の接続情報（スイッチ１０と通信ノード３０の接続に関する情報、スイッチ１０同士の接続に関する情報）を集約し、ネットワークのトポロジを管理する。より具体的には、トポロジ管理部２１は、スイッチ１０が送信するポートステータスメッセージから得られるリンク確立及びリンク切断に関する情報を集約し、ネットワークのトポロジを把握する。なお、ネットワークの運用開始の際には、ネットワーク管理者がネットワークのトポロジを予め制御装置２０に入力してもよい。
【００４４】
トポロジＤＢ２２は、ネットワークのトポロジを記憶するデータベースである。制御装置２０が制御対象とするネットワークのトポロジは、スイッチ１０同士の接続と、スイッチ１０と通信ノード３０との接続と、から成り立つため、トポロジＤＢ２２はこれらの接続に関する情報を記憶する。
【００４５】
図７は、トポロジＤＢ２２のエントリの一例を示す図である。図７（ａ）は、スイッチ１０同士の接続に関するエントリである。図７（ａ）を参照すると、スイッチ１０同士の接続は、それぞれのスイッチ１０を識別するＤＰＩＤ（ＤａｔａＰａｔｈ  ＩＤ）と、ＤＰＩＤに対応したポート番号の組により規定される。図７（ｂ）は、スイッチ１０と通信ノード３０の接続に関するエントリである。図７（ｂ）を参照すると、スイッチ１０のＤＰＩＤとそのポート番号、及び、当該ポートに接続される通信ノード３０が備えるＮＩＣ（Network Interface Card）のＭＡＣアドレスの対応付けにより、スイッチ１０と通信ノード３０の接続が規定される。なお、以降の説明において、通信機器（例えば、スイッチ１０や通信ノード３０）のＭＡＣアドレスと表記した場合には、当該通信機器が備えるＮＩＣのＭＡＣアドレスを意味するものとする。
【００４６】
制御メッセージ処理部２３は、スイッチ１０や構成管理装置４０から受信したメッセージを解析して、制御装置２０内の該当する処理手段に引き渡す。
【００４７】
経路・アクション計算部２４は、トポロジＤＢ２２が記憶するネットワークのトポロジに基づいて、フローごとのパケット転送経路を計算する。経路・アクション計算部２４は、計算したパケット転送経路をパケット転送経路ＤＢ２５に登録する。経路・アクション計算部２４は、スイッチ１０から処理規則の設定を要求された場合に、パケット転送経路を計算する。なお、経路・アクション計算部２４は、要求された処理規則を実現するパケット転送経路を計算できない場合には、その旨を構成管理装置４０に通知する。その際に、使用するメッセージを、パスディセーブル（Ｐａｔｈ＿Ｄｉｓａｂｌｅ）メッセージと表記する。さらに、経路・アクション計算部２４は、接続変更処理部２８からの指示に従い、パケット転送経路の計算を行うこともある。
【００４８】
図８は、パケット転送経路ＤＢ２５のエントリの一例を示す図である。なお、パケット転送経路ＤＢ２５のエントリは、フローごとのパケット転送経路に対応して存在する。パケット転送経路ＤＢ２５のエントリは、ＩＮ情報フィールド、ＯＵＴ情報フィールド及びリンク情報フィールドから構成される。ＩＮ情報フィールドは、パケットを最初に入力するポートを格納する。具体的には、ＩＮ情報フィールドには、最初にパケットを受け付けるスイッチ１０のＤＰＩＤと、当該スイッチ１０のポート番号と、が格納される。ＯＵＴ情報フィールドは、最後にパケットを出力するポートを格納する。具体的には、ＯＵＴ情報フィールドには、パケットを出力するスイッチ１０のＤＰＩＤと、当該スイッチ１０のポート番号と、が格納される。リンク情報フィールドは、通過するリンクに関する情報を格納する。なお、通過するリンクが複数存在する場合には、リンク情報フィールドもまた複数存在する。リンク情報フィールドには、入力側のスイッチ１０のＤＰＩＤとそのポート番号、出力側のスイッチ１０のＤＰＩＤとそのポート番号、の組が格納される。このように、制御装置２０は、パケット転送経路に含まれる、始点のスイッチ、中間のスイッチ及び終点のスイッチに関する情報を記憶する。
【００４９】
処理規則管理部２６は、スイッチ１０に設定する処理規則を管理する。処理規則管理部２６は、経路・アクション計算部２４にて計算されたパケット転送経路に基づき、スイッチ１０に設定する処理規則を生成し、生成した処理規則を処理規則ＤＢ２７に登録する。また、処理規則管理部２６は、生成した処理規則を、制御メッセージ処理部２３及びノード通信部２９を介してスイッチ１０に設定する。さらに、処理規則管理部２６は、接続変更処理部２８からの指示に従い、処理規則ＤＢ２７のエントリを変更（エントリの削除及び追加を含む）する。さらにまた、処理規則管理部２６は、接続変更処理部２８からの指示に従い、スイッチ１０に既に設定した処理規則を削除し、又は、スイッチ１０に新たな処理規則を設定する。
【００５０】
接続変更処理部２８は、スイッチ１０におけるポートの状態変更を示すポートステータスメッセージを、制御メッセージ処理部２３及びノード通信部２９を介して受信する。接続変更処理部２８は、受信したポートステータスメッセージに基づいて、制御装置２０内部の状態変更を行う。より具体的には、ポートステータスメッセージの受信は、制御装置２０が制御対象とするネットワークのトポロジが変化したことを意味するので、トポロジの変化の影響を受けるパケット転送経路に関する処理を行う。より詳細には、受信したポートステータスメッセージがリンク切断を通知する場合には、リンク切断の影響を受けるパケット転送経路が存在する可能性がある（パケットを転送できないパケット転送経路が存在する可能性がある）。この場合、そのようなパケット転送経路に関連する処理規則を削除する。接続変更処理部２８は、処理規則を削除する必要がある場合に、処理規則管理部２６に対して、処理規則ＤＢ２７のエントリを削除する指示と、スイッチ１０に既に設定されている処理規則を削除させる指示と、を行う。
【００５１】
さらに、このようなパケット転送経路が、構成管理装置４０の管理対象である通信ノード３０に関連する場合がある。そこで、接続変更処理部２８は、リンク切断の影響を受けるパケット転送経路であって、通信ノード３０が使用するパケット転送経路が存在するのであれば、その旨を構成管理装置４０に通知する。換言するならば、接続変更処理部２８は、通信ノード３０と冗長化システムを構成する稼働系の通信ノード３０の間のパケット転送経路であって、スイッチ１０に生じたリンク切断の影響により消滅するパケット転送経路の存在を（稼働系の通信ノード３０へのパケット転送経路の不存在を）判定し、消滅するパケット転送経路が存在する旨を構成管理装置４０に通知する。なお、接続変更処理部２８が、制御メッセージ処理部２３及びノード通信部２９を介して、リンク切断の影響により消滅するパケット転送経路を構成管理装置４０に通知する際に使用するメッセージは、上述のパスディセーブルメッセージである。なお、消滅するパケット転送経路が存在する場合には、接続変更処理部２８は、このようなパケット転送経路をパケット転送経路ＤＢ２５から削除する。
【００５２】
また、接続変更処理部２８は、構成管理装置４０から、後述するホストディセーブル（Ｈｏｓｔ＿Ｄｉｓａｂｌｅ）メッセージを、制御メッセージ処理部２３及びノード通信部２９を介して受信する。ホストディセーブルメッセージは、構成管理装置４０が管理する冗長化システム（クラスタ化された通信ノード群）に含まれる稼働系の通信ノード３０が使用不能となった旨を通知するメッセージである。従って、使用不能となった通信ノード３０のパケットの転送のために用意されたパケット転送経路が存在する可能性がある。このような場合も、接続変更処理部２８は、処理規則管理部２６に、使用不能となった通信ノードに関連するパケット転送経路を実現する処理規則を削除させる。
【００５３】
構成管理装置４０は、スイッチ１０に接続され、稼働系の通信ノード３０と待機系の通信ノード３０により構成される冗長化システム（クラスタ化された通信ノード群）を管理する装置である。例えば、図２に示す通信システムにおいては、構成管理装置４０は、通信ノード３０−１及び３０−３を管理し、制御する。
【００５４】
図９は、構成管理装置４０の内部構成の一例を示す図である。構成管理装置４０は、通信ノード管理データベース（通信ノード管理ＤＢ）４１と、障害処理部４２と、制御装置２０及び通信ノード３０との通信を行う通信部４３と、を含んで構成される。
【００５５】
通信ノード管理ＤＢ４１は、クラスタ化された通信ノード群（例えば、通信ノード３０−１及び３０−３）に関する情報を記憶する。
【００５６】
図１０は、通信ノード管理ＤＢ４１のエントリの一例を示す図である。通信ノード管理ＤＢ４１のエントリは、稼働系通信ノードフィールドと、通信ノード情報フィールドと、から構成されている。稼働系通信ノードフィールドは、クラスタ化された通信ノード群における稼働系の通信ノード３０を識別する情報を格納するフィールドである。稼働系通信ノードフィールドには、稼働系の通信ノード３０のＭＡＣアドレスや、通信ノード情報フィールドに使用するインデックスが格納される。
【００５７】
通信ノード情報フィールドは、クラスタ化された通信ノード群に含まれる個々の通信ノード３０に関する情報を格納するフィールドである。具体的には、通信ノード情報フィールドは、個々の通信ノード３０のＭＡＣアドレスと、その通信ノード３０の死活状態（通信ノード３０が使用可能又は使用不能）を示す死活フラグと、を格納する。なお、図１０では、稼働系の通信ノード３０は１つであることが前提であるが、稼働系の通信ノード３０が２以上であってもよい。稼働系の通信ノード３０が複数存在すれば、クラスタ化された通信ノード群により可用性が高まるだけでなく、負荷分散も実現できる。
【００５８】
障害処理部４２は、冗長化システムを構成する通信ノード３０の状態、又は、制御装置２０からの通知に基づいて、通信ノード３０を制御する。より具体的には、障害処理部４２は、稼働系の通信ノード３０が送信するハートビートメッセージを所定の期間内に受信できなかった場合、又は、稼働系の通信ノード３０から障害通知メッセージを受信した場合には、冗長化システムの稼働系の通信ノード３０と待機系の通信ノード３０とを入れ替える。その際、障害処理部４２は、通信部４３を介して、稼働系の通信ノード３０に対してはサービスストップメッセージを、待機系の通信ノード３０に対してはサービススタートメッセージを、送信する。あるいは、制御装置２０からパスディセーブルメッセージを受信した場合に、障害処理部４２は、サービスストップメッセージ及びサービススタートメッセージを送信することで、稼働系の通信ノード３０と待機系の通信ノード３０を入れ替える。
【００５９】
さらに、障害処理部４２は、稼働系の通信ノード３０が送信するハートビートメッセージを所定の期間内に受信できなかった場合、又は、稼働系の通信ノード３０から障害通知メッセージを受信した場合には、ホストディセーブルメッセージを制御装置２０に送信することで、使用不能となった通信ノード３０の存在を制御装置２０に通知する。即ち、構成管理装置４０は、稼働系の通信ノード３０が定期的に送信するハートビートメッセージを所定の期間内に受信できない場合に、制御装置２０に、稼働系の通信ノード３０の使用不能を通知する。あるいは、構成管理装置４０は、稼働系の通信ノード３０に生じた障害を認識した場合に、制御装置２０に、稼働系の通信ノード３０の使用不能を通知する。
【００６０】
なお、図３、図６、図９に示したスイッチ１０、制御装置２０、構成管理装置４０の各部（処理手段）は、これらの装置を構成するコンピュータに、そのハードウェアを用いて、後述する各処理を実行させるコンピュータプログラムにより実現することもできる。
【００６１】
次に、スイッチ１０、制御装置２０及び構成管理装置４０の動作について説明する。
【００６２】
図１１は、スイッチ１０の動作の一例を示すフローチャートである。図１１は、スイッチ１０がパケットを受け取った際の動作例を示す。
【００６３】
スイッチ１０の転送処理部１４は、テーブルＤＢ１３に格納されている処理規則のマッチフィールドと受信パケットのパケットヘッダを比較し、受信パケットのパケットヘッダに一致する処理規則が存在するか否かを検索する（ステップＳ１０１、Ｓ１０２）。
【００６４】
受信パケットのパケットヘッダに一致するマッチフィールドを持つ処理規則が存在する場合（ステップＳ１０２、Ｙｅｓ分岐）には、転送処理部１４は、ステップＳ１０１で検索した処理規則のインストラクションフィールドに指定されている処理（Ａｃｔｉｏｎ）を受信パケットに対して実行する（ステップＳ１０３）。
【００６５】
一方、受信パケットのパケットヘッダに一致するマッチフィールドを持つ処理規則が存在しない場合（ステップＳ１０２、Ｎｏ分岐）には、受信パケットを制御装置２０に転送する（ステップＳ１０４）。
【００６６】
なお、図１１のフローチャートには示されていないが、スイッチ１０は、制御装置２０から、ＦｌｏｗＭｏｄメッセージを受け取ることで、テーブルＤＢ１３のエントリの追加（ＡＤＤ）又は削除（ＤＥＬ）を行う。さらに、スイッチ１０は、自身のポートに通信機器が接続され、当該通信機器との接続が活性化された場合や、通信機器との接続が切断され、当該通信機器との接続が非活性化された場合に、制御装置２０に対して、ポートステータスメッセージを送信する。
【００６７】
図１２は、制御装置２０の動作の一例を示すフローチャートである。図１２は、スイッチ１０から受信パケットが転送された場合における制御装置２０の動作例を示す。
【００６８】
ステップＳ２０１において、経路・アクション計算部２４が、トポロジＤＢ２２が記憶するネットワークのトポロジを用いて、パケットの発信元の通信ノード３０と宛先の通信ノード３０間のパケット転送経路の計算を試みる。
【００６９】
経路・アクション計算部２４は、パケット転送経路の計算が可能か否かを判定（ステップＳ２０２）し、パケット転送経路が存在する場合（ステップＳ２０２、Ｙｅｓ分岐）には、ステップＳ２０３〜Ｓ２０６に係る処理が実行される。一方、パケット転送経路が存在しない場合（ステップＳ２０２、Ｎｏ分岐）には、ステップＳ２０７及びＳ２０８に係る処理が実行される。
【００７０】
ステップＳ２０３において、処理規則管理部２６が、経路・アクション計算部２４が計算したパケット転送経路に基づいて、スイッチ１０に設定する処理規則を生成する。例えば、処理規則管理部２６は、スイッチ１０から転送された受信パケットのパケットヘッダを用いてマッチングフィールドを計算し、インストラクションフィールドに格納する処理として、処理規則を設定しようとするスイッチ１０の次のスイッチ１０、又は、宛先の通信ノード３０に接続されたスイッチ１０のポートにパケットを出力するＯＵＴＰＵＴを指定する。
【００７１】
経路・アクション計算部２４は、ステップＳ２０１で計算したパケット転送経路（入出力ポートに関する情報、使用するリンクに関する情報；図８参照）を、パケット転送経路ＤＢ２５に登録する（ステップＳ２０４）。
【００７２】
ステップＳ２０５において、処理規則管理部２６は、ステップＳ２０３で生成した処理規則を、制御メッセージ処理部２３及びノード通信部２９を介して、対応するスイッチ１０に設定する。
【００７３】
ステップＳ２０６において、処理規則管理部２６は、宛先の通信ノード３０に最も近接するスイッチ１０に対し、宛先の通信ノード３０にパケットを転送するように指示（パケットアウトを指示）すると共に、転送すべきパケットを当該通信ノード３０に送信する。
【００７４】
ステップＳ２０７において、経路・アクション計算部２４は、構成管理装置４０に対してパケット転送経路が計算できない旨を通知する。なお、制御装置２０が、構成管理装置４０に対して送信するメッセージは、上述のパスディセーブルメッセージである。制御装置２０が、パスディセーブルメッセージを送信する際には、送信元の通信ノード３０と宛先の通信ノード３０の間に形成できないパケット転送経路の当該発信元の通信ノード３０と宛先の通信ノード３０に関する情報も合わせて通知する。より具体的には、制御装置２０は、構成管理装置４０に対し、形成できないパケット転送経路における送信元の通信ノード３０と宛先の通信ノード３０のＭＡＣアドレスやＩＰアドレスを送信する。
【００７５】
その後、経路・アクション計算部２４は、スイッチ１０から転送された受信パケットを廃棄する（ステップＳ２０８）。
【００７６】
図１３は、制御装置２０の動作の一例を示すフローチャートである。図１３は、スイッチ１０からポートステータスメッセージが送信された場合における制御装置２０の動作例を示す。
【００７７】
ステップＳ２１１において、接続変更処理部２８は、ポートステータスメッセージがリンク確立を示すメッセージか否かを判定する。
【００７８】
リンク確立を示すメッセージの場合（ステップＳ２１１、Ｙｅｓ分岐）には、接続変更処理部２８は、受信したポートステータスメッセージに基づき、スイッチ１０に接続された通信機器（他のスイッチ１０や通信ノード３０）を確認（ステップＳ２１２）する。なお、スイッチ１０に接続された通信機器を確認する手法としては、接続先の通信機器がスイッチやルータであればＬＬＤＰ（Link Layer Discovery Protocol）が使用できる。また、接続先の通信機器がサーバ等の計算機であれば、これらの通信機器から送信されたフレームのＭＡＣアドレスを取得することで接続された通信機器が確認できる。
【００７９】
さらに、接続変更処理部２８は、スイッチ１０に接続された通信機器に関する情報（ＤＰＩＤ、ポート番号、ＭＡＣアドレス；図７参照）をトポロジＤＢ２２に登録する（ステップＳ２１３）。
【００８０】
一方、ポートステータスメッセージがリンク確立に関するメッセージではない場合（即ち、リンク切断に係るメッセージの場合；ステップＳ２１１、Ｎｏ分岐）には、ステップＳ２１４〜Ｓ２２３に係る処理が実行される。
【００８１】
ステップＳ２１４において、接続変更処理部２８は、ポートステータスメッセージを送信したスイッチ１０のポートであって、リンク切断が通知されたポートに関連するエントリを、トポロジＤＢ２２から削除する。即ち、接続変更処理部２８は、ポートステータスメッセージに基づいて、トポロジＤＢ２２を更新する。
【００８２】
次に、接続変更処理部２８は、パケット転送経路ＤＢ２５を検索（ステップＳ２１５）し、ポートステータスメッセージを送信したスイッチ１０のリンク切断が通知されたポートに関連するパケット転送経路が存在するか否かを判定する（ステップＳ２１６）。より具体的には、接続変更処理部２８は、図８に示すエントリにおいて、ＩＮ情報、ＯＵＴ情報及びリンク情報のうち少なくとも１以上のフィールドに、リンク切断が通知されたポートのポート番号が存在するか否かを判定する。
【００８３】
関連するパケット転送経路が存在しなければ（ステップＳ２１６、Ｎｏ分岐）、処理を終了する。関連するパケット転送経路が存在すれば（ステップＳ２１６、Ｙｅｓ分岐）、ステップＳ２１７以降の処理が実行される。より具体的には、ステップＳ２１８以降の処理において、リンク切断が通知されたポートを含むパケット転送経路を実現する処理規則を、スイッチ１０のテーブルＤＢ１３及び処理規則ＤＢ２７から削除する削除処理を実行する。
【００８４】
ステップＳ２１７において、接続変更処理部２８は、削除すべきパケット転送経路であって、未だ削除処理がなされていないパケット転送経路（以下、未処理転送経路と表記する）が存在するか否かを判定する。
【００８５】
未処理転送経路が存在しなければ（ステップＳ２１７、Ｎｏ分岐）、処理を終了する。未処理転送経路が存在すれば（ステップＳ２１７、Ｙｅｓ分岐）、ステップＳ２１５のパケット転送経路ＤＢ２５の検索により得られたパケット転送経路を、削除処理の対象に設定する（ステップＳ２１８）。
【００８６】
ステップＳ２１９において、接続変更処理部２８は、処理規則管理部２６に対し、削除対象のパケット転送経路を実現するスイッチ１０であって、パケット転送経路の入力側のスイッチ１０のテーブルＤＢ１３から処理規則を削除する指示を行う。指示を受けた処理規則管理部２６は、制御メッセージ処理部２３及びノード通信部２９を介して、ＦｌｏｗＭｏｄ（ＤＬＬ）メッセージをスイッチ１０に送信することで、処理規則を削除する。より具体的には、マッチングフィールドにおける送信元ＭＡＣアドレスにトポロジＤＢ２２から検索したＩＮ情報フィールドに格納するＭＡＣアドレスを、宛先ＭＡＣアドレスにＯＵＴ情報フィールドに格納するＭＡＣアドレスを、他のカラムにはワイルドカードを、それぞれ指定し、ＦｌｏｗＭｏｄ（ＤＬＬ）メッセージを用いて処理規則を削除する。
【００８７】
さらに、ステップＳ２２０において、接続変更処理部２８は、未処理転送経路の送信元のスイッチ１０（ＩＮ情報フィールドに格納するスイッチ）と、宛先のスイッチ１０（ＯＵＴ情報フィールドに格納するスイッチ）を記憶部（図示せず）に記憶すると共に、未処理転送経路をパケット転送経路ＤＢ２５から削除する。
【００８８】
ステップＳ２２１において、経路・アクション計算部２４は、前ステップで記憶した送信元のスイッチ１０と宛先のスイッチ１０間のパケット転送経路の計算を試みる。
【００８９】
経路・アクション計算部２４は、パケット転送経路の計算が可能か否かを判定（ステップＳ２２２）し、パケット転送経路が存在する場合（ステップＳ２２２、Ｙｅｓ分岐）には、ステップＳ２１７に戻り処理を継続する。一方、パケット転送経路が存在しない場合（ステップＳ２２２、Ｎｏ分岐）には、ステップＳ２２３に係る処理が実行される。
【００９０】
ステップＳ２２３においては、接続変更処理部２８は、ステップＳ２２０で記憶した送信元のスイッチ１０と宛先のスイッチ１０の間には、パケット転送経路が存在しない旨を、構成管理装置４０に通知する（パスディセーブルメッセージを送信する）。その際、接続変更処理部２８は、トポロジＤＢ２２を検索し、ステップＳ２２０で記憶した送信元のスイッチ１０と宛先のスイッチ１０のＭＡＣアドレスを取得し、取得したＭＡＣアドレスも併せて構成管理装置４０に通知する。
【００９１】
図１４は、制御装置２０の動作の一例を示すフローチャートである。図１４は、構成管理装置４０から通信ノード３０の使用不能が通知された場合における制御装置２０の動作例を示す。なお、この場合には、構成管理装置４０から制御装置２０に対して、ホストディセーブルメッセージが送信される。
【００９２】
ホストディセーブルメッセージを受信した制御装置２０は、ステップＳ２３１において、接続変更処理部２８が、トポロジＤＢ２２を検索し、使用不能が通知された通信ノード３０に接続されているスイッチ１０及びそのポートを確認する。
【００９３】
ステップＳ２３２において、接続変更処理部２８は、パケット転送経路ＤＢ２５を検索し、前ステップで確認したスイッチ１０及びそのポートに関連するパケット転送経路の存在を確認する。
【００９４】
関連するパケット転送経路が存在しなければ（ステップＳ２３３、Ｎｏ分岐）、処理を終了する。関連するパケット転送経路が存在すれば（ステップＳ２３３、Ｙｅｓ分岐）、ステップＳ２３４以降の処理を実行する。より具体的には、ステップＳ２３４以降の処理において、使用不能が通知された通信ノード３０に接続されているスイッチ１０を含むパケット転送経路を実現する処理規則を、スイッチ１０のテーブルＤＢ１３及び処理規則ＤＢ２７から削除する削除処理を実行する。
【００９５】
ステップＳ２３４において、接続変更処理部２８は、削除すべきパケット転送経路であって、未だ削除処理がなされていないパケット転送経路（未処理転送経路）が存在するか否かを判定する。
【００９６】
未処理転送経路が存在しなければ（ステップＳ２３４、Ｎｏ分岐）、処理を終了する。未処理転送経路が存在すれば（ステップＳ２３４、Ｙｅｓ分岐）、ステップＳ２３２のパケット転送経路ＤＢ２５の検索により得られたパケット転送経路を、削除処理の対象に設定する（ステップＳ２３５）。
【００９７】
ステップＳ２３６において、接続変更処理部２８は、処理規則管理部２６に対し、削除対象のパケット転送経路を実現するスイッチ１０であって、パケット転送経路の入力側のスイッチ１０のテーブルＤＢ１３から処理規則を削除する指示を行う。指示を受けた処理規則管理部２６は、制御メッセージ処理部２３及びノード通信部２９を介して、ＦｌｏｗＭｏｄ（ＤＬＬ）メッセージをスイッチ１０に送信することで、処理規則を削除する。より具体的には、マッチングフィールドにおける送信元ＭＡＣアドレスにトポロジＤＢ２２から検索したＩＮ情報フィールドに格納するＭＡＣアドレスを、宛先ＭＡＣアドレスにＯＵＴ情報フィールドに格納するＭＡＣアドレスを、他のカラムにはワイルドカードを、それぞれ指定し、ＦｌｏｗＭｏｄ（ＤＬＬ）メッセージを用いて処理規則を削除する。
【００９８】
さらに、ステップＳ２３７において、接続変更処理部２８は、未処理転送経路をパケット転送経路ＤＢ２５から削除する。その後、ステップＳ２３４に戻り、処理を継続する。
【００９９】
図１５は、構成管理装置４０の動作の一例を示すフローチャートである。図１５は、稼働系の通信ノード３０に障害が生じた場合における構成管理装置４０の動作例を示す。
【０１００】
障害処理部４２は、稼働系の通信ノード３０から定期的に送信されてくるハートビートメッセージのタイムアウトが生じているか、又は、稼働系の通信ノード３０からの障害通知メッセージを受信したか確認する（ステップＳ４０１）。即ち、本ステップにおいて、障害処理部４２は、稼働系の通信ノード３０の状態を確認する。
【０１０１】
稼働系の通信ノード３０からの障害通知メッセージを受信した場合（ステップＳ４０２、Ｙｅｓ分岐）には、障害処理部４２は、制御装置２０に対して、稼働系の通信ノード３０は使用不能である旨を通知する（ステップＳ４０５）。より具体的には、障害処理部４２は、通信ノード管理ＤＢ４１のエントリ（稼働系通信ノードフィールド及び対応する通信ノード情報フィールド）を参照し、動作を停止させる稼働系の通信ノード３０のＭＡＣアドレスを取得し、取得したＭＡＣアドレスを添えて当該通信ノード３０は使用不能である旨を制御装置２０に通知する（ホストディセーブルメッセージを送信する）。また、障害処理部４２は、本ステップにおいて、稼働系の通信ノード３０に動作の停止を指示する（サービスストップメッセージを送信する）。
【０１０２】
このように、構成管理装置４０から制御装置２０に対して、使用不能の通信ノード３０を通知することで、稼働系の通信ノード３０に生じた障害に起因して稼働系の通信ノード３０を正常に停止できない場合であっても、不要なパケット転送経路が削除できる。
【０１０３】
一方、所定の期間内にハートビートメッセージを受信できない（後述するタイマがタイムアウト；ステップＳ４０３、Ｙｅｓ分岐）場合には、動作を停止させる稼動系の通信ノード３０及び死活フラグに使用不能が設定されている通信ノード３０を除外した通信ノード群から、新たな稼動系の通信ノード３０を選択する（ステップＳ４０６）。また、動作を停止させる稼動系の通信ノード３０に対応する死活フラグに使用不能を設定し、稼動系の通信ノード３０として選択された通信ノード３０を、通信ノード管理ＤＢ４１の稼働系通信ノードフィールドに格納する。
【０１０４】
さらに、前ステップにおいて稼動系の通信ノード３０として選択された通信ノード３０に対して、稼動系として動作する旨を指示（サービススタートメッセージを送信；ステップＳ４０７）し、指示を受けた通信ノード３０が稼動系として動作するまで待機する（ステップＳ４０８）。
【０１０５】
ステップＳ４０４では、障害処理部４２は、予め定めた時間のタイマを設定し、ステップＳ４０１に処理を戻す。
【０１０６】
図１６は、構成管理装置４０の動作の一例を示すフローチャートである。図１６は、制御装置２０からパケット転送経路の不存在を通知された構成管理装置４０の動作例を示す。
【０１０７】
ステップＳ４１１において、障害処理部４２は、制御装置２０からパスディセーブルメッセージと共に通知されたＭＡＣアドレスを持つ通信ノード３０を含むエントリを、通信ノード管理ＤＢ４１において検索する。このようなエントリが存在する場合（ステップＳ４１２、Ｙｅｓ分岐）に、ステップＳ４１３〜Ｓ４１５に係る処理が実行される。一方、このようなエントリが存在しない場合（ステップＳ４１２、Ｎｏ分岐）は、処理を終了する。
【０１０８】
ステップＳ４１３において、障害処理部４２は、検索したエントリに含まれる通信ノード３０であって、稼働系の通信ノード３０に対して、動作の停止を指示する（サービスストップメッセージを送信する）。
【０１０９】
ステップＳ４１４において、障害処理部４２は、動作を停止させる稼動系の通信ノード３０及び死活フラグに使用不能と設定されている通信ノード３０を除外した通信ノード群から、新たな稼動系の通信ノード３０を選択する。また、動作を停止させる稼動系の通信ノード３０に対応する死活フラグに使用不能を設定し、稼動系の通信ノード３０として選択された通信ノード３０を、通信ノード管理ＤＢ４１の稼働系通信ノードフィールドに格納する。
【０１１０】
ステップＳ４１５において、障害処理部４２は、前ステップにおいて選択された通信ノード３０に対して、稼働系の通信ノード３０として動作するように指示する（サービススタートメッセージを送信する）し、指示を受けた通信ノード３０が稼動系として動作するまで待機する（ステップＳ４１６）。
【０１１１】
なお、制御装置２０は、パスディセーブルメッセージを送信する際に、２つのスイッチ１０（パケット転送経路の入力側と出力側のスイッチ１０）のＭＡＣアドレスを通知する。その際に、２つのＭＡＣアドレスが共に、通信ノード管理ＤＢ４１のエントリに含まれる場合には、２つの対応が考えられる。第１に、双方の通信ノード３０を停止させる方法である。第２に、一方の通信ノード３０に限り停止させる方法である。第２の方法を採用する場合は、乱数や優先度に基づいて停止させる通信ノード３０を定めることができる。
【０１１２】
図１７〜図２０は、本実施形態に係る通信システムの動作の一例を示すシーケンス図である。図１７〜図２０において、通信ノード３０−１及び３０−３がクラスタ化され、冗長化システムを構成する。また、通信ノード３０−１が稼働系の通信ノードとする。
【０１１３】
図１７は、パケット転送経路がスイッチ１０に設定されていない状態で、通信ノード３０−２から通信ノード３０−１に向けてパケットを送信する場合の動作例を示す。
【０１１４】
図１７を参照すると、初めに、通信ノード３０−２は、スイッチ１０−２に向けてパケット（図１７のＭｅｓｓａｇｅ１）を送信する。通信ノード３０−２からパケットを受信したスイッチ１０−２は、当該パケットを添えて制御装置２０に処理規則の設定を要求する。制御装置２０の経路・アクション計算部２４は、パケットヘッダ及びトポロジＤＢ２２が記憶するネットワークのトポロジを参照し、パケット転送経路を計算する。その後、処理規則管理部２６は、計算されたパケット転送経路に応じてスイッチ１０に設定する処理規則を生成する。処理規則管理部２６は、生成した処理規則を、制御メッセージ処理部２３及びノード通信部２９を介してスイッチ１０に設定する。より詳細には、スイッチ１０−１及び１０−２が備えるテーブルＤＢ１３に新たなエントリを追加する（図１７のＦｌｏｗＭｏｄ（ＡＤＤ）メッセージを送信する）。
【０１１５】
制御装置２０は、処理規則をスイッチ１０−１及び１０−２に設定した後、スイッチ１０−１にパケット（Ｍｅｓｓａｇｅ１）を転送する。スイッチ１０−１は、受信したパケットを通信ノード３０−１に転送する。その後、通信ノード３０−２から通信ノード３０−１に向けられたパケット（Ｍｅｓｓａｇｅ２）は、スイッチ１０−１及び１０−２に設定された処理規則に従い処理され、通信ノード３０−１に転送される。
【０１１６】
図１８は、通信ノード３０−２から通信ノード３０−１へのパケット転送経路がスイッチ１０に設定されている状態で、スイッチ１０−１及び１０−２の間のリンクが切断となった場合の動作例を示す。
【０１１７】
図１８を参照すると、リンク切断が判明した際に、スイッチ１０−１及び１０−２から制御装置２０に向けてポートステータスメッセージが送信される。
【０１１８】
制御装置２０の接続変更処理部２８は、ポートステータスメッセージを受信すると、リンク切断が通知されたポートに関連する処理規則をスイッチ１０−２から削除する（図１８のＦｌｏｗＭｏｄ（ＤＬＬ）メッセージを送信する）。
【０１１９】
なお、スイッチ１０からエントリが削除された後の通信システムの動作は、図１７に示す動作例と一致するため、説明を省略する。
【０１２０】
図１９は、図１８における状況に加えて、スイッチ１０−１及び１０−２間のリンクがさらに切断（リンク切断；スイッチ１０−１及び１０−２間の冗長経路も消滅）となった場合の動作例を示す。なお、このような場合には、稼働系の通信ノード３０を、通信ノード１０−１から通信ノード１０−３に変更する必要がある。
【０１２１】
スイッチ１０−１及び１０−２にリンク切断が生じると、これらのスイッチ１０から制御装置２０にポートステータスメッセージが送信される。制御装置２０の接続変更処理部２８は、ポートステータスメッセージを受け付けると、リンク切断が通知されたポートに関連する処理規則をスイッチ１０−１及び１０−２から削除する（図１９のＦｌｏｗＭｏｄ（ＤＬＬ）メッセージを送信する）。
【０１２２】
さらに、接続変更処理部２８は、構成管理装置４０に対して、スイッチ１０−１及び１０−２間のパケット転送経路の不存在を通知する（図１９のパスディセーブルメッセージを送信する）。パスディセーブルメッセージを受信した構成管理装置４０は、稼働系の通信ノード３０を、通信ノード３０−１から通信ノード３０−３に入れ替える。より詳細には、構成管理装置４０は、通信ノード３０−１に対してサービスストップメッセージを送信する。一方、構成管理装置４０は、通信ノード３０−３に対してサービススタートメッセージを送信する。
【０１２３】
サービスストップメッセージを受信した通信ノード３０−１は、スイッチ１０−１と接続されたポートを非活性状態とする。ポートの非活性化を検出したスイッチ１０−１は、リンク切断を示すポートステータスメッセージを制御装置２０に送信する。サービススタートメッセージを受信した通信ノード３０−３は、スイッチ１０−３と接続されたポートを活性状態とする。ポートの活性化を検出したスイッチ１０−３は、リンク確立を示すポートステータスメッセージを制御装置２０に送信する。
【０１２４】
また、通信ノード３０−３は、待機系から稼働系に遷移する際、スイッチ１０−３と接続されたポートを活性化すると共に、ＧｒａｔｕｉｔｏｕｓＡＲＰ（Address Resolution Protocol）に係るパケットをブロードキャストしてもよい。ブロードキャストされたＧｒａｔｕｉｔｏｕｓＡＲＰに係るパケットは、スイッチ１０−３及び制御装置２０を介して、スイッチ１０−２及び通信ノード３０−２に転送される。
【０１２５】
ＧｒａｔｕｉｔｏｕｓＡＲＰに係るパケットを受信すると、各通信機器（スイッチ１０−３や制御装置２０等）は、自身のＡＲＰテーブルを更新する（ＩＰアドレスとＭＡＣアドレスの対応関係を更新する）。なお、スイッチ１０−３と通信ノード３０−３の接続ポートが既に活性化状態にあれば、スイッチ１０−３から制御装置２０に向けたポートステータスメッセージの送信は不要である。さらに、通信ノード３０−３が、ＧｒａｔｕｉｔｏｕｓＡＲＰに係るパケットをブローキャストしない場合には、通信ノード３０−２から通信ノード３０−３に向けた通信を開始する際のＡＲＰにより、ＩＰアドレスとＭＡＣアドレスの対応関係が更新される。
【０１２６】
なお、通信ノード３０−３が稼働系として動作を開始した後の通信システムの動作は、図１７に示す動作例と一致するため、説明を省略する。
【０１２７】
図２０は、通信ノード３０−２から通信ノード３０−１へのパケット転送経路が設定されており、且つ、通信ノード３０−１が稼働系の通信ノードである場合において、通信ノード３０−１に障害が生じたことにより、稼働系の通信ノードが通信ノード３０−３に入れ替わる場合の動作例を示す。このような場合には、構成管理装置４０が、制御装置２０にホストディセーブルメッセージを送信する。
【０１２８】
ホストディセーブルメッセージを受信した制御装置２０は、スイッチ１０−１及び１０−２が備えるテーブルＤＢ１３のエントリを削除する（図２０のＦｌｏｗＭｏｄ（ＤＬＬ）メッセージを送信する）。
【０１２９】
なお、その後の通信システムの動作は、図１７に示す動作例と一致するため、説明を省略する。
【０１３０】
以上のように、本実施形態に係る制御装置２０は、スイッチ１０と稼働系の通信ノード３０の間に生じた接続障害に起因するパケット転送経路の消滅を、構成管理装置４０に通知する。通知を受け取った構成管理装置４０は、稼働系の通信ノード３０を待機系の通信ノードとして動作させ、待機系の通信ノード３０を稼働系の通信ノードとして動作させる。その結果、稼働系の通信ノード３０には障害が発生しておらず、構成管理装置４０は、通信システムの障害を認識できない状況であっても、制御装置２０を介して通信システムの障害を認識できる。構成管理装置４０は、スイッチ１０と稼働系の通信ノード３０の間の接続障害を認識すれば、待機系の通信ノード３０を稼働系の通信ノードとして動作させる。その結果、通信システムに生じた障害が回復され、通信システムの可用性が高まる。
【０１３１】
［第２の実施形態］
続いて、第２の実施形態について図面を参照して詳細に説明する。
【０１３２】
本実施形態に係る通信システムは、スイッチ１０間のリンクが存在しない場合、パケット転送経路を再計算し、再計算したパケット転送経路に基づいて、スイッチ１０に処理規則を設定する。なお、本実施形態に係る通信システムに含まれる通信ノード、スイッチ及び構成管理装置は、第１の実施形態において説明した内容と相違する点は存在しないため、さらなる説明を省略する。また、本実施形態に係る制御装置２０ａと制御装置２０は、経路・アクション計算部２４及び処理規則管理部２６の機能が異なるが、他の機能は同一であるため、制御装置２０ａに関する図６に相当する説明を省略する。
【０１３３】
初めに、本実施形態に係る通信システムの動作について説明する。その際、図２に示す通信システムにおいて、通信ノード３０−２から通信ノード３０−１へのパケット転送経路が設定されている状態で、スイッチ１０−１及び１０−２間のリンクのうち、パケット転送経路が使用するリンクが切断された場合の動作について説明する。
【０１３４】
図２１は、本実施形態に係る通信システムの動作の一例を示すシーケンス図である。図２１は、スイッチ１０−１及び１０−２間のリンクのうち、パケット転送経路が使用するリンクが切断された場合の動作例を示す。
【０１３５】
図１８と図２１に示すシーケンス図の相違点は、制御装置２０ａが、スイッチ１０−２に設定されている処理規則を削除（ＦｌｏｗＭｏｄ（ＤＬＬ）メッセージを送信）した後、スイッチ１０−２に新たな処理規則を設定（ＦｌｏｗＭｏｄ（ＡＤＤ）メッセージを送信）する点である。即ち、制御装置２０ａは、スイッチ１０−１及び１０−２の間のリンクの切断が判明した際に、パケット転送経路を再計算し、再計算したパケット転送経路に基づいて処理規則をスイッチ１０に設定する。
【０１３６】
次に、制御装置２０ａの動作について説明する。
【０１３７】
図２２は、制御装置２０ａの動作の一例を示すフローチャートである。図２２は、スイッチ１０からポートステータスメッセージが送信された場合における制御装置２０ａの動作例を示す。図１３と図２２に示すフローチャートにおいて、ステップＳ２１１〜Ｓ２２３に係る処理は同一のため、さらなる説明を省略する。
【０１３８】
図２２に示すフローチャートでは、ステップＳ２２４〜Ｓ２２６に係る処理が追加されている。
【０１３９】
ステップＳ２２１においてパケット転送経路の計算を試みた際に、パケット転送経路が存在する（ステップＳ２２２、Ｙｅｓ分岐）場合に、処理規則管理部２６は、ステップＳ２２１にて再計算されたパケット転送経路に基づいて、スイッチ１０に設定する処理規則を生成する。その後、処理規則管理部２６は、生成した処理規則を処理規則ＤＢ２７に登録（ステップＳ２２５）し、スイッチ１０に処理規則を設定する（ステップＳ２２６）。なお、処理規則の生成に代えて、予め処理規則ＤＢ２７にエントリを登録しておき、登録された処理規則から、適合する処理規則を選択してスイッチ１０に設定してもよい。あるいは、スイッチ１０から処理規則を削除する前に、スイッチからの削除が予定される処理規則を取得し、取得した処理規則の一部（例えば、マッチングフィールド）を流用してもよい。
【０１４０】
このように、本実施形態に係る制御装置２０ａは、再計算されたパケット転送経路に基づいて、スイッチ１０に処理規則を設定する。その結果、ネットワークを継続して運用でき、通信システムの信頼性及び可用性が向上する。
【０１４１】
なお、以上説明した第１及び第２実施形態は単なる例示に過ぎず、様々な変形を施すことができる。例えば、図２３に示すように、構成管理装置４０は、稼働系の通信ノード３０が送信するハートビートメッセージを所定の期間内に受信できなかった場合にも、制御装置２０に通信ノード３０の使用不能を通知することが考えられる。その結果、稼働系の通信ノード３０と接続するスイッチ１０のポートがリンク切断とならない場合であっても、制御装置２０のトポロジＤＢ２２から正常動作していない通信ノード３０を削除できる。即ち、構成管理装置４０とだけ通信できず、且つ、稼働系の通信ノード３０自身は稼働している状態であっても、他の装置との接続を断つことができ、障害の生じている稼働系の通信ノード３０が、ネットワーク上に存在することが防止できる。
【０１４２】
また、構成管理装置４０の機能を制御装置２０に組み込むこと、あるいは、制御装置２０の機能を構成管理装置４０に組み込むことができる。即ち、制御装置２０と構成管理装置４０を同一の通信機器で実現できる。あるいは、スイッチ１０や通信ノード３０は、仮想マシン（Virtual Machine）であってもよい。さらに、通信システムには、仮想マシンと物理マシンのスイッチ１０や通信ノード３０が、混在していてもよい。さらにまた、第１及び第２の実施形態において、制御装置２０が制御対象とするスイッチ１０は複数存在する前提で説明したが、スイッチ１０は１つであってもよい。
【０１４３】
第１及び第２の実施形態に係る通信システムは、ユーザから高い信頼性及び可用性が求められる、通信ノード３０をサーバとして用いて構成されるデータセンターに好適に利用できる。
【０１４４】
最後に、好ましい形態を要約する。
【０１４５】
［形態１］
上述の第１の視点に係る通信システムのとおりである。
［形態２］
前記制御装置は、前記スイッチのポートであって、前記稼働系の通信ノードと接続する第１のポートの状態変化に応じて、前記第１のパケット転送経路が存在するか否かを判定する形態１の通信システム。
［形態３］
前記制御装置は、前記スイッチのポートであって、他のスイッチと接続する第２のポートの状態変化に応じて、前記第１のパケット転送経路が存在するか否かを判定する形態１又は２の通信システム。
［形態４］
前記制御装置は、パケット転送経路に含まれる、始点のスイッチ、中間のスイッチ及び終点のスイッチに関する情報に基づいて、前記第１のパケット転送経路が存在するか否かを判定する形態１乃至３のいずれか一に記載の通信システム。
［形態５］
前記制御装置は、前記第１のパケット転送経路が不存在となる場合に、前記通信ノードと前記待機系の通信ノード間の第２のパケット転送経路を計算し、前記計算された第２のパケット転送経路を実現する処理規則を、前記スイッチに設定する形態１乃至４のいずれか一に記載の通信システム。
［形態６］
前記管理装置は、前記稼働系の通信ノードに生じた障害を認識した場合に、前記制御装置に、前記稼働系の通信ノードの使用不能を通知する形態１乃至５のいずれか一に記載の通信システム。
［形態７］
前記制御装置は、前記使用不能が通知された稼働系の通信ノードに関連する処理規則を、前記スイッチから削除する形態６の通信システム。
［形態８］
通信ノードと接続され、パケットを処理するための処理規則に従いパケットを処理するスイッチと、前記スイッチに接続され、冗長化システムを構成する稼働系の通信ノードと、の間の接続障害により前記通信ノードと前記稼働系の通信ノード間のパケット転送経路が存在するか否かを判定する工程と、前記パケット転送経路が不存在の場合に、前記パケット転送経路を実現する処理規則を、スイッチから削除する工程と、前記パケット転送経路が不存在の場合に、前記冗長化システムの稼働系と待機系の通信ノードを入れ替える工程と、を含む通信方法。
なお、本方法は、スイッチ及び冗長化システムという、特定の機械に結びつけられている。
［形態９］
上述の第２の視点に係る制御装置のとおりである。
［形態１０］
上述の第３の視点に係る制御装置の制御方法のとおりである。
［形態１１］
上述の第４の視点に係るプログラムのとおりである。
［形態１２］
スイッチを介して通信ノードと接続される、稼働系の通信ノードと待機系の通信ノードからなる冗長化システムを管理する管理装置であって、前記スイッチを制御する制御装置から、前記通信ノードと前記稼働系の通信ノード間のパケット転送経路が不存在となる通知を受信した場合に、前記冗長化システムの稼働系と待機系の通信ノードを入れ替える管理装置。
［形態１３］
スイッチを介して通信ノードと接続される、稼働系の通信ノードと待機系の通信ノードからなる冗長化システムを管理する管理装置の制御方法であって、前記スイッチを制御する制御装置からの通知を受信する工程と、前記制御装置が、前記通信ノードと前記稼働系の通信ノード間のパケット転送経路の不存在を通知する場合に、前記冗長化システムの稼働系と待機系の通信ノードを入れ替える工程と、を含む管理装置の制御方法。
なお、本方法は、冗長化システムを管理する管理装置という、特定の機械に結びつけられている。
［形態１４］
スイッチを介して通信ノードと接続される、稼働系の通信ノードと待機系の通信ノードからなる冗長化システムを管理する管理装置を制御するコンピュータに実行させるプログラムであって、前記スイッチを制御する制御装置からの通知を受信する処理と、前記制御装置が、前記通信ノードと前記稼働系の通信ノード間の第１のパケット転送経路の不存在を通知する場合に、前記冗長化システムの稼働系と待機系の通信ノードを入れ替える処理と、を実行させるプログラム。
なお、第８の形態〜第１４の形態は、第１の形態と同様に、第２の形態〜第７の形態に展開することが可能である。
【０１４６】
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【０１４７】
１０、１０−１〜１０−３、１００−１、１００−２  スイッチ
１１、４３  通信部
１２  テーブル管理部
１３  テーブルデータベース（テーブルＤＢ）
１４  転送処理部
１５  接続監視部
２０、２０ａ、１０１  制御装置
２１  トポロジ管理部
２２  トポロジデータベース（トポロジＤＢ）
２３  制御メッセージ処理部
２４  経路・アクション計算部
２５  パケット転送経路データベース（パケット転送経路ＤＢ）
２６  処理規則管理部
２７  処理規則データベース（処理規則ＤＢ）
２８  接続変更処理部
２９  ノード通信部
３０、３０−１〜３０−３、１０３  通信ノード
４０  構成管理装置
４１  通信ノード管理データベース（通信ノード管理ＤＢ）
４２  障害処理部
１０２  管理装置
１０４  稼働系の通信ノード
１０５  待機系の通信ノード
１４１  テーブル検索部
１４２  アクション実行部
【図１】
2014168157.tif 000003
【図２】
2014168157.tif 000004
【図３】
2014168157.tif 000005
【図４】
2014168157.tif 000006
【図５】
2014168157.tif 000007
【図６】
2014168157.tif 000008
【図７】
2014168157.tif 000009
【図８】
2014168157.tif 000010
【図９】
2014168157.tif 000011
【図１０】
2014168157.tif 000012
【図１１】
2014168157.tif 000013
【図１２】
2014168157.tif 000014
【図１３】
2014168157.tif 000015
【図１４】
2014168157.tif 000016
【図１５】
2014168157.tif 000017
【図１６】
2014168157.tif 000018
【図１７】
2014168157.tif 000019
【図１８】
2014168157.tif 000020
【図１９】
2014168157.tif 000021
【図２０】
2014168157.tif 000022
【図２１】
2014168157.tif 000023
【図２２】
2014168157.tif 000024
【図２３】
2014168157.tif 000025