(57)【要約】【課題】ネットワークに配置されたノードによりパケットを転送して通信を実現する通信システムにおいて、各ノードに、一貫した処理規則を設定・保持させる。【解決手段】通信システムは、パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するパケット処理部を備える複数のノードと、任意のノードから処理規則の設定要求に応じて、パケット転送経路を計算し、前記パケット転送経路上のノードに対し、前記パケット転送経路を実現する処理規則を設定するとともに、前記各処理規則を互いに関連付けて記録する制御装置と、を含む。前記制御装置は、前記パケット転送経路上のノードに対し、前記処理規則の設定状況を問い合わせるとともに、少なくとも１つのノードに設定した処理規則に異常が検出された場合、その他のノードに設定した関連する処理規則のロールバック動作を行う。【選択図】図１
2013545321.tif 000002
【特許請求の範囲】
【請求項１】
パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するパケット処理部を備える複数のノードと、
任意のノードから処理規則の設定要求に応じて、パケット転送経路を計算し、前記パケット転送経路上のノードに対し、前記パケット転送経路を実現する処理規則を設定するとともに、前記各処理規則を互いに関連付けて記録する制御装置と、を含み、
前記制御装置は、前記パケット転送経路上のノードに対し、前記処理規則の設定状況を問い合わせるとともに、少なくとも１つのノードに設定した処理規則に異常が検出された場合、その他のノードに設定した関連する処理規則のロールバック動作を行うこと、
を特徴とする通信システム。
【請求項２】
前記制御装置は、前記ノードに設定した処理規則に付与したフロー識別子と、前記互いに関連付けられた処理規則に共通して付与したトランザクション識別子とが、前記ノードからの応答に含まれているか否かにより、個々の処理規則が設定されているか否かと、前記互いに関連付けられた処理規則が設定されているか否かを判別する請求項１の通信システム。
【請求項３】
前記制御装置が冗長化されており、
前記制御装置のうちのスタンバイ系として待機している制御装置に、前記設定した処理規則をバックアップさせる請求項１または２の通信システム。
【請求項４】
前記スタンバイ系として待機している制御装置は、アクティブ状態に切り替わった際に、前記バックアップした処理規則と前記ノードから受信した処理規則との設定状況に基づいて、前記ノードへの処理規則の設定継続またはロールバック動作を行う請求項３の通信システム。
【請求項５】
前記制御装置は、任意のノードから処理規則の設定要求に応じて、パケット転送経路を計算し、前記パケット転送経路を実現する処理規則を作成する経路制御装置と、
前記パケット転送経路上のノードのうち、自装置が属するクラスタに属するノードに対し、前記処理規則を設定する、複数の処理規則設定装置とを含んで構成されている請求項１から４いずれか一の通信システム。
【請求項６】
前記ノードは、当該処理規則と互いに関連付けられた処理規則に共通して付与されたトランザクション識別子と、更新前の処理規則とを対応付けて保持しており、
少なくとも１つのノードに設定した処理規則に異常が検出された場合、前記処理規則設定装置は、他のクラスタに属する処理規則設定装置から、設定済みの処理規則を受信し、前記処理規則に含まれるトランザクション識別子に基づいて、前記ノードにロールバックを指示する請求項５の通信システム。
【請求項７】
前記経路制御装置は、前記互いに関連付けられた処理規則の設定に成功した場合、前記各処理規則設定装置に対し、コミットを要求し、前記各処理規則設定装置からのコミット応答が揃わない場合、ロールバック動作を行う請求項５または６の通信システム。
【請求項８】
パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するパケット処理部を備える複数のノードと、に接続され、
任意のノードから処理規則の設定要求に応じて、パケット転送経路を計算し、前記パケット転送経路上のノードに対し、前記パケット転送経路を実現する処理規則を設定するとともに、前記各処理規則を互いに関連付けて記録し、
さらに、前記パケット転送経路上のノードに対し、前記処理規則の設定状況を問い合わせ、少なくとも１つのノードに設定した処理規則に異常が検出された場合、その他のノードに設定した関連する処理規則のロールバック動作を行うこと、
を特徴とする制御装置。
【請求項９】
前記ノードに設定した処理規則に付与したフロー識別子と、前記互いに関連付けられた処理規則に共通して付与したトランザクション識別子とが、前記ノードからの応答に含まれているか否かにより、個々の処理規則が設定されているか否かと、前記互いに関連付けられた処理規則が設定されているか否かを判別する請求項８の制御装置。
【請求項１０】
スタンバイ系として待機している制御装置と接続され、前記スタンバイ系として待機している制御装置に、前記設定した処理規則をバックアップさせる請求項８または９の制御装置。
【請求項１１】
前記スタンバイ系として待機している制御装置は、アクティブ状態に切り替わった際に、前記バックアップした処理規則と前記ノードから受信した処理規則の設定状況に基づいて、前記ノードへの処理規則の設定継続またはロールバック動作を行う請求項１０の制御装置。
【請求項１２】
任意のノードから処理規則の設定要求に応じて、パケット転送経路を計算し、前記パケット転送経路を実現する処理規則を作成する経路制御装置と、
前記パケット転送経路上のノードのうち、自装置が属するクラスタに属するノードに対し、前記処理規則を設定する、複数の処理規則設定装置と、を含んで構成されている請求項８から１１いずれか一の制御装置。
【請求項１３】
前記ノードは、当該処理規則と互いに関連付けられた処理規則に共通して付与されたトランザクション識別子と、更新前の処理規則とを対応付けて保持しており、
少なくとも１つのノードに設定した処理規則に異常が検出された場合、他のクラスタに属する処理規則設定装置から、設定済みの処理規則を受信し、前記処理規則に含まれるトランザクション識別子に基づいて、前記ノードにロールバックを指示する請求項１２の制御装置。
【請求項１４】
前記互いに関連付けられた処理規則の設定に成功した場合、前記各処理規則設定装置に対し、コミットを要求し、前記各処理規則設定装置からのコミット応答が揃わない場合、ロールバック動作を行う請求項１２または１３の制御装置。
【請求項１５】
パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するパケット処理部を備え、
請求項８から１４いずれか一の制御装置からの問い合わせに応じて、前記処理規則に付与されたフロー識別子と、前記処理規則と関連付けられた処理規則に共通して付与されたトランザクション識別子と、を応答するノード。
【請求項１６】
さらに、当該処理規則と互いに関連付けられた処理規則に共通して付与されたトランザクション識別子と、更新前の処理規則とを対応付けて保持しており、
トランザクション識別子に基づいたロールバック動作を行う請求項１５のノード。
【請求項１７】
パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するパケット処理部を備える複数のノードと、接続された制御装置が、
前記ノードからの処理規則の設定要求に応じて、パケット転送経路を計算し、前記パケット転送経路上のノードに対し、前記パケット転送経路を実現する処理規則を設定するとともに、前記各処理規則を互いに関連付けて記録するステップと、
前記パケット転送経路上のノードに対し、前記処理規則の設定状況を問い合わせ、少なくとも１つのノードに設定した処理規則に異常が検出された場合、その他のノードに設定した関連する処理規則のロールバック動作を行うステップと、を含むこと、
を特徴とする処理規則の設定方法。
【請求項１８】
パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するパケット処理部を備える複数のノードと、接続された制御装置を構成するコンピュータに実行させるプログラムであって、
前記ノードからの処理規則の設定要求に応じて、パケット転送経路を計算し、前記パケット転送経路上のノードに対し、前記パケット転送経路を実現する処理規則を設定するとともに、前記各処理規則を互いに関連付けて記録する処理と、
前記パケット転送経路上のノードに対し、前記処理規則の設定状況を問い合わせ、少なくとも１つのノードに設定した処理規則に異常が検出された場合、その他のノードに設定した関連する処理規則のロールバック動作を行う処理と、
を前記コンピュータに実行させるプログラム。
【請求項１９】
パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するパケット処理部を備えるノードを構成するコンピュータに実行させるプログラムであって、
請求項８から１４いずれか一の制御装置からの問い合わせに応じて、前記処理規則に付与されたフロー識別子と、前記処理規則と関連付けられた処理規則に共通して付与されたトランザクション識別子と、を応答する処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願についての記載）
本発明は、日本国特許出願：特願２０１０−２３２７９２号（２０１０年１０月１５日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、通信システム、制御装置、ノード、処理規則の設定方法およびプログラムに関し、特に、ネットワークに配置されたノードによりパケットを転送して通信を実現する通信システム、ノード、制御装置、通信方法およびプログラムに関する。
【背景技術】
【０００２】
非特許文献１、２に示すとおり、近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。転送ノードとして機能するオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合する照合規則（マッチングルール）と、処理内容を定義したアクション（Ａｃｔｉｏｎｓ）と、フロー統計情報（Ｓｔａｔｓ）との組が定義される（図３８参照）。
【０００３】
図３８に、非特許文献２に定義されているアクション名とアクションの内容を例示する。ＯＵＴＰＵＴは、パケットを指定ポート（インタフェース）に出力するアクションである。ＳＥＴ＿ＶＬＡＮ＿ＶＩＤからＳＥＴ＿ＴＰ＿ＤＳＴは、パケットヘッダのフィールドを修正するアクションである。
【０００４】
例えば、オープンフロースイッチは、最初のパケット（ｆｉｒｓｔ  ｐａｃｋｅｔ）を受信すると、フローテーブルから、受信パケットのヘッダ情報に適合する照合規則（ＦｌｏｗＫｅｙ）を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、受信パケットに対して、当該エントリのアクションフィールドに記述された処理内容を実施する。一方、前記検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対して受信パケットを転送し、受信パケットの送信元・送信先に基づいたパケットの経路の決定を依頼し、これを実現するフローエントリを受け取ってフローテーブルを更新する。
【０００５】
非特許文献３は、転送要素と、制御要素とを分離するプロトコル（ＦｏｒＣＥＳ）の仕様書である。同文献の４．３．１．２．２．Ｔｒａｎｓａｃｔｉｏｎ  Ｐｒｏｔｏｃｏｌの項には、転送要素または転送要素間の複数のメッセージのトランザクション管理に、２相コミットメント制御を用いることが記載されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Nick McKeownほか７名、"OpenFlow: Enabling Innovation in Campus Networks"、［online］、［平成22年9月21日検索］、インターネット〈URL：http://www.openflowswitch.org//documents/openflow-wp-latest.pdf〉
【非特許文献２】"OpenFlow Switch Specification" Version 1.0.0. (Wire Protocol 0x01) ［平成22年9月21日検索］、インターネット〈URL：http://www.openflowswitch.org/documents/openflow-spec-v1.0.0.pdf〉
【非特許文献３】"RFC5810 - Forwarding and Control Element Separation (ForCES) Protocol Specification"、［平成22年9月21日検索］、インターネット〈URL：http://www.faqs.org/rfcs/rfc5810.html〉
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記受信パケットの経路の決定依頼を受けたオープンフローコントローラ（以下、非特許文献２、３のオープンフローコントローラを含めて「制御装置」という。）が、受信パケットおよび同一フローに属する後続パケットを転送させるには、転送経路上にあるすべてのオープンフロースイッチ（以下、非特許文献２、３のオープンフロースイッチを含めて「ノード」という。）に、一貫したフローエントリ（以下、非特許文献２、３のオープンフロースイッチのフローテーブルに格納されるフローエントリを含めて「処理規則」という。）を設定する必要がある。また、転送経路上の一部のノードに適正な処理規則が設定できていない場合には、パケット廃棄だけでは無く、パケットがループ状に転送されてしまうような事態も発生しうるため、これを検出して早急に対処する必要がある。
【０００８】
さらに、処理規則の設定後、ノードの障害等によって処理規則の一部が消失してしまうことも考えられ、この場合も、フローエントリの一貫性が損なわれてしまう可能性がある。
【０００９】
しかしながら、非特許文献２のオープンフローの仕様は、上記適正な処理規則が設定されていないノードがあったとしても、当該ノードが後続パケットを受信したときに制御装置に対し処理規則の再設定を依頼することで一貫性を回復する構成となっており、処理規則の一貫性の欠落を早急に検出し、対策を講ずるような仕組みは備えられていない。
【００１０】
本発明は、上記した事情に鑑みてなされたものであって、その目的とするところは、ノードに、一貫した処理規則を設定し保持させることのできる通信システム、制御装置、ノード、処理規則の設定方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の第１の視点によれば、パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するパケット処理部を備える複数のノードと、任意のノードから処理規則の設定要求に応じて、パケット転送経路を計算し、前記パケット転送経路上のノードに対し、前記パケット転送経路を実現する処理規則を設定するとともに、前記各処理規則を互いに関連付けて記録する制御装置と、を含み、前記制御装置は、前記パケット転送経路上のノードに対し、前記処理規則の設定状況を問い合わせるとともに、少なくとも１つのノードに設定した処理規則に異常が検出された場合、その他のノードに設定した関連する処理規則のロールバック動作を行う通信システムが提供される。
【００１２】
本発明の第２の視点によれば、パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するパケット処理部を備える複数のノードと、接続され、任意のノードから処理規則の設定要求に応じて、パケット転送経路を計算し、前記パケット転送経路上のノードに対し、前記パケット転送経路を実現する処理規則を設定するとともに、前記各処理規則を互いに関連付けて記録し、さらに、前記パケット転送経路上のノードに対し、前記処理規則の設定状況を問い合わせ、少なくとも１つのノードに設定した処理規則に異常が検出された場合、その他のノードに設定した関連する処理規則のロールバック動作を行う制御装置が提供される。
【００１３】
本発明の第３の視点によれば、パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するパケット処理部を備え、請求項８から１４いずれか一の制御装置からの問い合わせに応じて、前記処理規則に付与されたフロー識別子と、前記処理規則と関連付けられた処理規則に共通して付与されたトランザクション識別子と、を応答するノードが提供される。
【００１４】
本発明の第４の視点によれば、パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するパケット処理部を備える複数のノードと、接続された制御装置が、前記ノードからの処理規則の設定要求に応じて、パケット転送経路を計算し、前記パケット転送経路上のノードに対し、前記パケット転送経路を実現する処理規則を設定するとともに、前記各処理規則を互いに関連付けて記録するステップと、前記パケット転送経路上のノードに対し、前記処理規則の設定状況を問い合わせ、少なくとも１つのノードに設定した処理規則に異常が検出された場合、その他のノードに設定した関連する処理規則のロールバック動作を行うステップと、を含む処理規則の設定方法が提供される。本方法は、ノードおよびこれらノードを制御する制御装置という、特定の機械に結びつけられている。
【００１５】
本発明の第５の視点によれば、上記した制御装置またはノードを構成するコンピュータに実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１６】
本発明によれば、ノードに、一貫した処理規則を設定し保持させることが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明の概要を説明するための図である。
【図２】本発明の第１の実施形態の構成を表わした図である。
【図３】本発明の第１の実施形態のノードの構成を表わしたブロック図である。
【図４】本発明の第１の実施形態のノートのフローテーブルとイベントバッファの関係を説明するための図である。
【図５】本発明の第１の実施形態のノードのフローテーブルを説明するための図である。
【図６】本発明の第１の実施形態の処理規則設定装置の構成を表わしたブロック図である。
【図７】本発明の第１の実施形態の処理規則設定装置のフロー設定ログを説明するための図である。
【図８】本発明の第１の実施形態の経路制御装置の構成を表わしたブロック図である。
【図９】本発明の第１の実施形態の経路制御装置のトランザクションログを説明するための図である。
【図１０】本発明の第１の実施形態の動作例を説明するための図である。
【図１１】図１０の続図である。
【図１２】図１１の続図である。
【図１３】図１２の続図である。
【図１４】本発明の第２の実施形態の構成を表わした図である。
【図１５】本発明の第２の実施形態のノードの構成を表わしたブロック図である。
【図１６】本発明の第２の実施形態の動作例を説明するための図である。
【図１７】図１３の続図である。
【図１８】本発明の第３の実施形態の動作（正常更新）を表したシーケンス図である。
【図１９】本発明の第３の実施形態の動作（ノードの更新異常）を表したシーケンス図である。
【図２０】本発明の第３の実施形態の動作（トランザクション終了後の処理規則設定装置異常）を表したシーケンス図である。
【図２１】本発明の第３の実施形態の動作（ノードの更新異常とトランザクション終了後の処理規則設定装置異常）を表したシーケンス図である。
【図２２】本発明の第３の実施形態の動作（コミット応答受信前の処理規則設定装置異常）を表したシーケンス図である。
【図２３】本発明の第３の実施形態の動作（ノードの更新異常とコミット応答受信前の処理規則設定装置異常）を表したシーケンス図である。
【図２４】本発明の第３の実施形態の動作（ノードの更新異常とロールバック完了通知受信前の処理規則設定装置異常）を表したシーケンス図である。
【図２５】本発明の第３の実施形態の動作（コミット要求送信前の処理規則設定装置異常）を表したシーケンス図である。
【図２６】本発明の第３の実施形態の動作（ノードの更新異常とロールバック指示送信前の処理規則設定装置異常）を表したシーケンス図である。
【図２７】本発明の第３の実施形態の動作（処理規則設定応答受信前の処理規則設定装置異常）を表したシーケンス図である。
【図２８】本発明の第３の実施形態の動作（ノードの更新異常と処理規則設定応答受信前の処理規則設定装置異常）を表したシーケンス図である。
【図２９】本発明の第３の実施形態の動作（処理規則設定結果受信前の処理規則設定装置異常）を表したシーケンス図である。
【図３０】本発明の第３の実施形態の動作（ノードの更新異常と処理規則設定結果受信前の処理規則設定装置異常）を表したシーケンス図である。
【図３１】本発明の第３の実施形態の動作（処理規則設定前の処理規則設定装置異常）を表したシーケンス図である。
【図３２】本発明の第３の実施形態の動作（ノードの更新異常と処理規則設定前の処理規則設定装置異常）を表したシーケンス図である。
【図３３】本発明の第３の実施形態の動作（処理規則記録完了通知受信前の処理規則設定装置異常）を表したシーケンス図である。
【図３４】本発明の第３の実施形態の動作（ノードの更新異常と処理規則記録完了通知受信前の処理規則設定装置異常）を表したシーケンス図である。
【図３５】本発明の第３の実施形態の動作（処理規則記録要求前の処理規則設定装置異常）を表したシーケンス図である。
【図３６】本発明の第３の実施形態の動作（ノードの更新異常と処理規則記録要求前の処理規則設定装置異常）を表したシーケンス図である。
【図３７】本発明の第４の実施形態の動作（正常更新）を表したシーケンス図である。
【図３８】非特許文献２記載のフローエントリの構成を表した図である。
【発明を実施するための形態】
【００１８】
はじめに、本発明の概要について説明する。本発明は、図１に示すように、パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信パケットを処理するパケット処理部を備える複数のノード１０と、任意のノードから処理規則の設定要求に応じて、パケット転送経路を計算し、前記パケット転送経路上のノードに対し、前記パケット転送経路を実現する処理規則を設定するとともに、前記各処理規則を互いに関連付けて記録する（処理規則設定ログ２１参照）制御装置２０と、により実現できる。前記制御装置は、前記パケット転送経路上のノードに対し、前記処理規則の設定状況（設定済み処理規則１１参照）を問い合わせるとともに、少なくとも１つのノードに設定した処理規則に異常が検出された場合、その他のノードに設定した関連する処理規則のロールバック動作を行う。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００１９】
例えば、制御装置２０が図１のホスト（Ａ）、ホスト（Ｂ）間の通信経路として、図１の２つのノード＃１、ノード＃２を経由するパケット転送経路を計算したものとする。この場合、制御装置２０は、ノード＃１にホスト（Ａ）から受信したパケットをノード＃２が接続されたポートから出力する処理規則と、ノード＃２にノード＃１から受信したパケットをホスト（Ｂ）が接続されたポートから出力する処理規則と、を設定する（ＦｌｏｗＭｏｄ（Ａｄｄ））。また、制御装置２０は、前記設定した各処理規則の設定履歴（ログ）を記録する。
【００２０】
前記処理規則の設定後、制御装置２０は、ノード＃１、ノード＃２に、前記処理規則の設定状況を問い合わせる。なお、前記問い合わせの方法としては、非特許文献２に規定されているＢａｒｒｉｅｒメッセージ（Ｒｅｑｕｅｓｔ／Ｒｅｐｌｙ）や統計情報要求メッセージ（Ｓｔａｔｓ  Ｒｅｑｕｅｓｔ／Ｒｅｐｌｙ）を用いることができる。
【００２１】
前記問い合わせの結果、１つのノードに設定した処理規則に異常が認められた場合（例えば、図１のノード＃２）、制御装置２０は、処理規則設定ログ２１を参照して、その他のノードに設定した処理規則のロールバック動作を行う（Ｒｏｌｌ  Ｂａｃｋ）。具体的には、制御装置２０は、図１のノード＃２において設定失敗に終わった処理規則と同一のフロー（即ち、後記するトランザクションＩＤが同一である。）に属する処理規則が設定されているノード＃１の処理規則を削除ないし更新（元に戻す）する動作を行う。
【００２２】
例えば、ホスト（Ａ）から送信されたパケットがノード＃１を経由してノード＃２に転送された場合、ノード＃２に、該当パケットと適合する照合規則を持つ処理規則が設定されていない場合には、制御装置２０に対する処理規則の設定要求が行われるが、ノード＃２に、別のフローに属するが該当パケットにも適合する照合規則がある場合、当該処理規則に従った処理が行われ、例えば、図示しない他のノードへの転送やヘッダ書き換えが行われてしまう。
【００２３】
本発明によれば、上記のとおり設定履歴を用いたロールバック動作が行われるため、上記のような意図しないパケット処理が行われることを防ぐことが可能になる。
【００２４】
なお、図１の例では、制御装置２０が設定履歴を記録するものとしているが、制御装置２０が別のジャーナルサーバやバックアップ系の制御装置に設定履歴を記録するものとすることもできる。以下の実施形態では、通信システム全体の可用性を高めるために、制御装置２０の機能を分散、クラスタ化するとともに、それぞれのクラスタを冗長構成とした例を挙げて説明する。
【００２５】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図２は、本発明の第１の実施形態の構成を表わした図である。図２を参照すると、複数のノード１０と、第１クラスタまたは第２クラスタに属し、それぞれ現用系と予備系を構成する処理規則設定装置２０ａ〜２０ｄと、経路制御装置３０と、システム管理装置４０とが示されている。なお、図２において一点鎖線で囲んだ要素（符号２０）が、上述した制御装置２０Ａに相当する。
【００２６】
第１クラスタ処理規則設定装置２０ａ、２０ｂ（第２クラスタ処理規則設定装置２０ｃ、２０ｄ）は、配下のノード１０に処理規則を設定する装置である。図２の例では、第１クラスタ処理規則設定装置２０ａがアクティブ状態で動作し、第１クラスタ処理規則設定装置２０ｂはスタンバイ状態にあるものとする。同様に、第２クラスタにおいては、第２クラスタ処理規則設定装置２０ｃがアクティブ状態で動作し、第２クラスタ処理規則設定装置２０ｄはスタンバイ状態にあるものとする。
【００２７】
経路制御装置３０は、処理規則設定装置２０ａ〜２０ｄのうち、アクティブ状態にある処理規則設定装置（ここでは、第１クラスタ処理規則設定装置２０ａ、第２クラスタ処理規則設定装置２０ｃ）から転送された処理規則作成依頼に基づいて、パケット転送経路の計算と、対応する処理規則を作成し、各アクティブ状態にある処理規則設定装置に対し、前記作成した処理規則の設定を指示する。また、経路制御装置３０は、上記した各アクティブ状態にある処理規則設定装置に対し、処理規則が正しく設定されたか否かを問い合わせ、自装置内に保持するトランザクションログにその結果を記録し、必要ならロールバック動作を行う。
【００２８】
システム管理装置４０は、処理規則設定装置２０ａ〜２０ｄの動作状態を確認し、その結果に基づいて、現用系と予備系の切替動作を行う装置である。
【００２９】
続いて、上記した通信システムを構成する各装置について図面を参照して詳細に説明する。
【００３０】
［ノード］
図３は、本発明の第１の実施形態のノードの構成を表わしたブロック図である。図３を参照すると、フローテーブル設定部１２と、イベントバッファ１３と、ジャーナル送信部１４と、フローテーブル１５と、パケット処理部１６と、パケット送信部１７と、パケット受信部１８とを備えた構成が示されている。
【００３１】
フローテーブル設定部１２は、処理規則設定装置２０ａ〜２０ｄからの指示に従いフローテーブル１５に処理規則を設定（追加）またはフローテーブルに登録されている処理規則の変更（書換）や削除を行う。
【００３２】
イベントバッファ１３は、図４に示すように、フローテーブル設定部１２が変更等を行ったエントリのフローテーブル内の位置を示すポインタをＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）方式で格納するバッファである。なお、図４の例では、フローテーブル内の位置を示すポインタを格納するものとしているが、例えば、フローエントリの内容そのものをバッファするような構成も採用可能である。
【００３３】
ジャーナル送信部１４は、処理規則設定装置２０ａ〜２０ｄからの処理規則の設定状況に関する問い合わせに対して、イベントバッファ１３が示す位置の処理規則を読み出して、当該処理規則のフローＩＤとトランザクションＩＤを含むジャーナルデータを送信する。なお、処理規則設定装置２０ａ〜２０ｄからの前記問い合わせがＢａｒｒｉｅｒメッセージ（Ｂａｒｒｉｅｒ  Ｒｅｑｕｅｓｔ）を用いる場合、応答として非特許文献２のＢａｒｒｉｅｒメッセージ（Ｂａｒｒｉｅｒ  Ｒｅｐｌｙ）を用いることができる。ここで、Ｂａｒｒｉｅｒメッセージとは、当該ノードがＢａｒｒｉｅｒメッセージ（Ｂａｒｒｉｅｒ  Ｒｅｑｕｅｓｔ）を受信する前に実行した処理内容を応答させるメッセージである。その他、処理規則に関する統計情報（Ｓｔａｔｓ）を問い合わせるＳｔａｔｓ  Ｒｅｑｕｅｓｔ／Ｒｅｐｌｙを用いて、各ノードにエントリが正しく設定されているどうかを確かめてもよい。
【００３４】
フローテーブル１５は、図５に示すように、照合規則（Ｒｕｌｅ）と、当該照合規則に適合するパケットに対して行う処理内容（Ａｃｔｉｏｎｓ）と、統計情報（Ｓｔａｔｓ）と、当該ノード内で処理規則を一意に特定するための識別子であるフローＩＤ（Ｆｌｏｗ  ＩＤ；非特許文献２の「ｆｌｏｗ  ｃｏｏｋｉｅ」に相当。）と、同一のフローに属する処理規則に対し、処理規則設定装置２０ａ〜２０ｄ間で一意となるように設定された識別子であるトランザクションＩＤ（Ｔｒａｎｓａｃｔｉｏｎ  ＩＤ、非特許文献２の「ｘｉｄ」に相当。）と、を一エントリとしたテーブルである。図３８に示した非特許文献２のオープンフロースイッチに保持されるフローエントリに、フローＩＤとトランザクションＩＤを追加した構成となっている。上記のように、フローＩＤとトランザクションＩＤが含まれたフローエントリを返すことによって、処理規則設定装置２０ａ〜２０ｄが自身が設置した処理規則が正しく設定されているか否か、トランザクションＩＤを共通にする一連の処理規則がそれぞれ正しく設定されたか否かを判別することができる。
【００３５】
パケット処理部１６は、フローテーブル１５から、パケット受信部１８で受信されたパケットに適合する照合規則を持つ処理規則を検索し、当該処理規則に記述された処理内容（Ａｃｔｉｏｎｓ）を実行する。また、フローテーブル１５に、パケット受信部１８で受信されたパケットに適合する照合規則が見つからない場合、当該パケット（未知パケット）を処理規則設定装置２０ａ〜２０ｄ側に送信し、処理規則の設定を依頼する。
【００３６】
また、前記処理規則に記述された処理内容（Ａｃｔｉｏｎｓ）がパケット転送（Ｏｕｔｐｕｔ）であった場合、パケット送信部１７が、前記処理内容（Ａｃｔｉｏｎｓ）にて指定されたポートから次ホップへパケットを出力する。
【００３７】
なお、上記のようなノード１０は、非特許文献２のオープンフロースイッチをベースに、イベントバッファ１３およびジャーナル送信部１４を追加した構成にて実現することも可能である。
【００３８】
［処理規則設定装置］
図６は、処理規則設定装置２０ａの構成を表わしたブロック図である。図６を参照すると、要求受諾部２２と、クラスタ管理部２３と、処理規則設定部２４と、ジャーナル確認部２５と、ジャーナル取得部２６と、処理規則設定ログ記憶部２７と、を備えた構成が示されている。なお、処理規則設定装置２０ｂ〜２０ｄも同等の構成であるので、説明は省略する。
【００３９】
要求受諾部２２は、経路制御装置３０やシステム管理装置４０からの各種要求を受け取り、当該要求内容に応じ、他の処理部に転送する。
【００４０】
クラスタ管理部２３は、同一クラスタに属する処理規則設定装置との状態同期のための通信を行う。具体的には、処理規則設定装置２０ａが、アクティブ系で動作している場合、処理規則設定部２４からノード１０に設定を要求した処理規則を、スタンバイ系の処理規則設定装置（例えば、処理規則設定装置２０ｂ）に送信し、記録（バックアップ）させる処理が行われる。また、処理規則設定装置２０ａが、スタンバイ系で動作している場合、アクティブ系の処理規則設定装置（例えば、処理規則設定装置２０ｂ）から受信した処理規則を処理規則設定ログ記憶部２７に記録する処理を行う。
【００４１】
処理規則設定部２４は、経路制御装置３０から受信した処理規則の設定要求やロールバック指示を、該当するノード１０に転送するとともに、その内容を処理規則設定ログ記憶部２７に登録する。
【００４２】
ジャーナル取得部２６は、ノード１０に対し、処理規則の設定状況を問い合わせ、ノード１０のイベントバッファ１３のポインタが示す位置の処理規則に含まれるフローＩＤとトランザクションＩＤを含むジャーナルデータを取得する。
【００４３】
ジャーナル確認部２５は、ジャーナル取得部２６にて取得されたフローＩＤとトランザクションＩＤを含むジャーナルデータと、処理規則設定ログ記憶部２７に記憶された処理規則の設定履歴とを照合し、処理規則設定部２４より設定した処理規則がノード１０に正しく設定されている否かを確認する。また、ジャーナル確認部２５は、経路制御装置３０に対し、前記確認の結果を送信する。
【００４４】
処理規則設定装置２０ａが、アクティブ系で動作している場合、処理規則設定ログ記憶部２７には、処理規則設定部２４より設定された処理規則が順次登録される。また、処理規則設定装置２０ａが、スタンバイ系で動作している場合、クラスタ管理部２３経由で受信した他の処理規則設定装置２０ｂから受信した処理規則が登録される。即ち、アクティブ系の処理規則設定装置２０ａとスタンバイ系の処理規則設定装置２０ｂの各処理規則設定ログ記憶部２７の内容は、同期した状態、かつ、各ノードのフローテーブル１５に登録された内容を集約した状態に保持される。
【００４５】
図７は、処理規則設定ログ記憶部２７に記録される処理規則設定ログの例である。図７の例では、処理規則の設定対象のノード（ノードＩＤ）と、フローＩＤと、処理規則と、ロールバックを行ったか否かを示す状態フラグ（Ｓｔａｔｕｓ）とが保持される。
【００４６】
［経路制御装置］
図８は、経路制御装置３０の構成を表わしたブロック図である。図８を参照すると、主処理部３１と、処理規則設定部３２と、トランザクション確認部３３と、トランザクションログ記憶部３４と、を備えた構成が示されている。
【００４７】
主処理部３１は、ネットワークトポロジを参照して、処理規則の設定要求から受信したパケットを転送するパケット転送経路を計算し、前記パケット転送経路上のノードに設定すべき処理規則を作成する。
【００４８】
処理規則設定部３２は、前記パケット転送経路上のノードに対応する処理規則設定装置に、主処理部３１が作成した処理規則の設定を依頼する。
【００４９】
トランザクション確認部３３は、各処理規則設定装置から、各処理規則設定装置が設定した処理規則がノード１０に正しく設定されている否かの確認結果に基づいて、トランザクションログを更新する。前記更新の結果、あるトランザクションＩＤを持つ処理規則の設定異常が確認された場合、トランザクション確認部３３は、主処理部３１を介して、当該トランザクションＩＤを持つ処理規則が設定されたノードを管轄する処理規則設定装置にロールバックを指示する。
【００５０】
なお、図６、８に示した処理規則設定装置２０ａ〜２０ｄおよび経路制御装置３０の各部（処理手段）は、これらの装置を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。また、図６、８に示した構成は、両者の機能分散の一例であり、処理規則設定装置２０ａ〜２０ｄおよび経路制御装置３０の各部（処理手段）を統合したり、一方の処理手段を他方に具備させることも可能である。
【００５１】
図９は、トランザクションログの構成例であり、図９の例では、トランザクションＩＤと、当該トランザクションＩＤの状態（Ｓｔａｔｕｓ）を記録する構成となっている。トランザクションＩＤの状態（Ｓｔａｔｕｓ）フィールドには、例えば、処理規則の設定を要求した段階であれば、「ｓｅｎｄ  ｒｅｑｕｅｓｔ」とのＳｔａｔｕｓ情報が、各ノードから受信した処理規則の設定結果に応じて（ｓｕｃｃｅｓｓ／ｆａｉｌ）といった情報が書き込まれる。
【００５２】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図１０〜図１３は、本発明の第１の実施形態の動作例を説明するための図である。以下の説明では、あるホストからあるホストへのパケットが経路制御装置３０に入力され、経路制御装置３０が適当なパケット転送経路を計算し、このパケット転送経路を実現する処理規則の作成が済んでいるものとして説明する。
【００５３】
まず、図１０を参照すると、経路制御装置３０が、アクティブ状態で動作する処理規則設定装置２０ａ、２０ｃに対し、処理規則の設定を要求する（図１０の（１））。
【００５４】
前記処理規則の設定要求を受けたアクティブ状態で動作する処理規則設定装置２０ａ、２０ｃは、それぞれ、スタンバイ系で待機する処理規則設定装置２０ｂ、２０ｄに処理規則の記録を要求する（図１０の（２））。
【００５５】
スタンバイ系で待機する処理規則設定装置２０ｂ、２０ｄから、処理規則の記録完了通知を受け取ると（図１０の（３））、処理規則設定装置２０ａ、２０ｃは、それぞれ指定されたノード１０に処理規則を設定する（図１０の（４））。ここでは、ノード１０のフローテーブル１５に、新しい処理規則が追加登録されたものとする。
【００５６】
処理規則設定装置２０ａ、２０ｃからの処理規則の設定状況の問い合わせに応じて、前記処理規則の設定を受けたノード１０が、処理規則の設定状況としてフローＩＤと、トランザクションＩＤとを応答する（図１０の（５））。
【００５７】
ここで、処理規則設定装置２０ａに障害が発生し、システム管理装置４０がこれを検知したものとする。この場合、処理規則設定装置２０ｃからは、正常なフローＩＤと、トランザクションＩＤとが返されるが、処理規則設定装置２０ａからは、応答はなされない（図１１の（７）、（７’）。
【００５８】
経路制御装置３０は、処理規則設定装置２０ａからの応答がない（タイムアウト成立）ことから、該当トランザクションＩＤを持つ一連の処理規則の設定に失敗したと判定し、処理規則設定装置２０ｃに対して、トランザクションＩＤを指定してロールバックを指示する（図１１の（８））。
【００５９】
前記処理規則のロールバックの指示を受けた処理規則設定装置２０ｃは、スタンバイ系で待機する処理規則設定装置２０ｄにロールバック内容の記録を要求する（図１１の（９））。
【００６０】
スタンバイ系で待機する処理規則設定装置２０ｄから、ロールバック内容の記録完了通知を受け取ると（図１１の（１０））、処理規則設定装置２０ｃは、指定されたトランザクションＩＤが設定されたノード１０にロールバックを指示する（図１１の（１１））。ここでは、ノード１０のフローテーブル１５から、該当するトランザクションＩＤを持つ処理規則を削除する処理が行われる。なお、図１０の（４）で処理規則の書換えが行われている場合には、処理規則設定装置２０ｃは、処理規則設定ログを参照し、該当するトランザクションＩＤを持つ処理規則を書き戻す処理を実行させる。
【００６１】
処理規則設定装置２０ｃからのロールバックの処理状況の問い合わせに応じて、前記ロールバックの指示を受けたノード１０が、ロールバック完了通知としてフローＩＤと、トランザクションＩＤとを応答する（図１１の（１２））。
【００６２】
処理規則設定装置２０ｃは、ロールバック完了通知にて、ロールバックが正しく行われたことを確認すると、経路制御装置３０に対して、ロールバックの完了通知を送信する（図１１の（１３））。
【００６３】
この時点で、第２クラスタ側の、一貫性が保証されていない処理規則が削除されたことになる。
【００６４】
その後、システム管理装置４０が、処理規則設定装置２０ａに代わり、処理規則設定装置２０ｂをアクティブ化すると（図１２の（１４））、処理規則設定装置２０ｂは、処理規則の設定状況の問い合わせに対し応答の無かったノード１０に対し、フローＩＤと、トランザクションＩＤとを含むジャーナルデータの送信を要求する（図１２の（１５））。
【００６５】
ジャーナルデータの送信要求を受けたノード１０が、フローテーブルの設定状況としてフローＩＤと、トランザクションＩＤとを含むジャーナルデータを応答すると（図１２の（１６））、処理規則設定装置２０ｂは、図１０の（２）で記録していた処理規則設定ログ２７と照合する。ここでは、図１０の（４）で正しく処理規則が設定されていたため、処理規則設定装置２０ｂは、経路制御装置３０に対し、トランザクション全体の観点でロールバックすべきか否かの確認を要求する（図１２の（１７））。
【００６６】
前記ロールバックすべきか否かの確認要求を受けた経路制御装置３０は、トランザクションログ３４を参照し、トランザクション全体の観点でロールバックすべきか否かを確認する。ここでは、図１１の（８）、（１１）で説明したように、すでに処理規則設定装置２０ｃに対して、ロールバックを指示しているため、経路制御装置３０は、処理規則設定装置２０ｂにロールバックを指示する（図１３の（１８））。
【００６７】
前記ロールバックの指示を受けた処理規則設定装置２０ｂは、指定されたノード１０にロールバックを指示する（図１３の（１９））。ここでは、ノード１０のフローテーブル１５から、図１０の（４）で登録した処理規則を削除する処理が行われる。
【００６８】
処理規則設定装置２０ｂからのロールバックの処理状況の問い合わせに応じて、前記ロールバックの指示を受けたノード１０が、ロールバック完了通知としてフローＩＤと、トランザクションＩＤとを応答する（図１３の（２０））。
【００６９】
処理規則設定装置２０ｂは、ロールバック完了通知にて、ロールバックが正しく行われたことを確認すると、経路制御装置３０に対して、ロールバックの完了通知を送信する（図１３の（２１））。
【００７０】
上記一連の処理が完了した段階で、処理規則設定装置２０ｂは、システム管理装置４０に対し、アクティブ化完了を通知する（図１３の（２２））。
【００７１】
以上の段階で、第１クラスタ側の、一貫性が保証されていない処理規則も削除されたことになる。経路制御装置３０は、必要に応じて、処理規則設定装置２０ｂ、２０ｃに対し、再度、処理規則設定要求を行うことで、意図したノードに意図した処理規則を設定することができる。
【００７２】
また、本実施形態の構成は、上記処理規則の設定の一貫性を確保するだけでなく、制御装置が、処理規則設定装置と、経路制御装置とに機能分散され、かつ、個々の処理規則設定装置がクラスタ化、冗長化されている。このため、個々の処理規則設定装置の負荷が分散されている。さらに、ある処理規則設定装置に障害が生じても、スタンバイ系に切り替えてサービスを継続できるため、高度の可用性が実現されているものである。
【００７３】
［第２の実施形態］
上記した第１の実施形態では、処理規則設定装置側の処理規則設定ログ２７を参照してロールバックを行うものとして説明したが、ノード１０に処理規則設定ログを持たせることにより、ノード側でロールバックを行う構成も実現できる。
【００７４】
以下、ノード側でロールバックを行うようにした本発明の第２の実施形態について説明する。また、以下の説明においては、第１の実施形態と共通する事項は説明を省略し、その相違点を中心に説明を加える。
【００７５】
図１４は、本発明の第２の実施形態の構成を表わした図である。第１の実施形態との相違点は、異なるクラスタに属する処理規則設定装置が相互に接続され、それぞれ処理規則の設定ログを取得できるようになっている点である。なお、図１４において一点鎖線で囲んだ要素（符号２０Ｂ）が、上述した制御装置２０Ａに相当する。
【００７６】
図１５は、本発明の第２の実施形態のノードの構成を表わしたブロック図である。図３に表わした第１の実施形態のノード１０との相違点は、イベントバッファ１３Ａにフローテーブルのポインタではなく、ポインタとともに書換え前の処理規則がバッファされている点である。
【００７７】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図１６〜図１７は、本発明の第２の実施形態の動作例を説明するための図である。処理規則設定要求に対し、第１クラスタの処理規則設定装置２０ａからの処理規則設定応答が無く、システム管理装置４０が処理規則設定装置２０ｂをアクティブ化するまでの動作は、第１の実施形態と同様であるので説明を省略する。
【００７８】
図１６の（１４）でアクティブ化された処理規則設定装置２０ｂは、処理規則の設定状況の問い合わせに対し応答の無かったノード１０Ａに対し、ジャーナルデータの送信を要求する（図１６の（１５））。
【００７９】
ジャーナルデータの送信要求を受けたノード１０Ａが、フローＩＤと、トランザクションＩＤとを含むジャーナルデータを応答すると（図１６の（１６））、処理規則設定装置２０ｂは、図１０の（２）で記録していた処理規則設定ログ２７と照合する。ここでは、図１０の（４）で処理規則が正しく設定されていたため、処理規則設定装置２０ｂは、第２クラスタの処理規則設定装置２０ｃに対し、処理規則設定装置２０ｃの処理規則設定ログ２７の送信を要求する（図１６の（１７Ａ））。
【００８０】
処理規則設定装置２０ｃから処理規則設定ログ２７を受信すると（図１７の（１８Ａ））、処理規則設定装置２０ｂは、処理規則設定装置２０ｃの処理規則設定ログ２７と、図１６の（１６）で受信したノード１０Ａのジャーナルデータとを照合する。
【００８１】
ここでは、図１１の（８）、（１１）で説明したように、すでに処理規則設定装置２０ｃに対して、ロールバックを指示しているため、処理規則設定装置２０ｃの処理規則設定ログ２７よりも、図１６の（１６）で受信したノード１０Ａのジャーナルデータの方が進んだ状態となっている。そこで、処理規則設定装置２０ｂは、ノード１０Ａに、トランザクションＩＤを指定してロールバックを指示する（図１７の（１９Ａ））。
【００８２】
ノード１０Ａは、前記処理規則設定ログを用いてロールバックを実施し、処理規則設定装置２０ｂからのロールバックの処理状況の問い合わせに応じて、ロールバック完了通知としてフローＩＤと、トランザクションＩＤとを応答する（図１７の（２０Ａ））。
【００８３】
処理規則設定装置２０ｂは、ロールバック完了通知にて、ロールバックが正しく行われたことを確認すると、システム管理装置４０に対して、アクティブ化の完了通知を送信する（図１７の（２１Ａ））。
【００８４】
以上の段階で、本実施形態においても、第１クラスタ側の、一貫性が保証されていない処理規則の削除が完了したことになる。経路制御装置３０は、必要に応じて、処理規則設定装置２０ｂ、２０ｃに対し、再度、処理規則設定要求を行うことで、意図したノードに意図した処理規則を設定することができる。
【００８５】
以上のように、本実施ノード１０Ａに処理規則設定ログを持たせることにより、ノード側で、過去の処理規則の設定内容を保持しておく構成でも、適切な内容のロールバックを行うことが可能である。
【００８６】
［第３の実施形態］
続いて、上記経路制御装置３０と、処理規則設定装置２０ａ〜２０ｄ間で、コミット要求／コミット応答を行うようにした第３の実施形態について説明する。本発明の第３の実施形態は、上記第１、２の実施形態と同等の構成にて実現可能であるので、以下、図１８〜図３６のシーケンス図を用いて、その動作を詳細に説明する。
【００８７】
（１．正常終了）
はじめに、図１８を参照して、第１クラスタと第２クラスタのノード１０に正常に処理規則が設定された場合の一連の流れについて説明する。
【００８８】
ノード１０から未知のパケットが転送されると（図１８のステップＳ０００）、経路制御装置３０は、当該パケットの転送経路を計算し、当該パケット転送経路を実現する処理規則を作成する。経路制御装置３０は、アクティブ系（ＡＣＴ）として動作している処理規則設定装置２０ａ、２０ｃに作成した処理規則の設定を要求する（図１８のステップＳ００１）。
【００８９】
処理規則の設定要求を受けた処理規則設定装置２０ａ、２０ｃは、それぞれのスタンバイ系（ＳＢＹ）の処理規則設定装置２０ｂ、２０ｄに対し、処理規則の記録を要求する（図１８のステップＳ００２）。
【００９０】
処理規則設定装置２０ｂ、２０ｄから、それぞれ処理規則の記録完了通知を受け取ると（図１８のステップＳ００３）、処理規則設定装置２０ａ、２０ｃは、それぞれ経路制御装置３０から指示されたノードに、処理規則を設定する（図１８のステップＳ００４）。
【００９１】
処理規則設定装置２０ａ、２０ｃは、それぞれ経路制御装置３０から指示されたノードに対し、処理規則の設定状況を問い合わせ、その結果を受信する（図１８のステップＳ００５）。
【００９２】
次に、処理規則設定装置２０ａ、２０ｃは、経路制御装置３０に対して、処理規則の設定状況を送信する（図１８のステップＳ００６）。ここでは各ノードに正常に処理規則が設定されているので、経路制御装置３０は、処理規則設定装置２０ａ、２０ｃに対し、コミットを要求する（図１８のステップＳ００７）。
【００９３】
処理規則設定装置２０ａ、２０ｃからコミットＯＫを受信すると、経路制御装置３０は、一連の処理規則の設定が正しく行われたものとしてトランザクションを終了する。
【００９４】
（２．ノード異常によるロールバック動作）
続いて、図１９を参照して、ノード１０からの処理規則の設定状況に異常があった場合のロールバック動作について説明する。図１９のステップＳ０００〜Ｓ００６までの動作は上記図１８のステップＳ０００〜Ｓ００６の動作と同様であるので、説明を省略する。
【００９５】
図１９の例では、ステップＳ１０５において、第２クラスタのノード１０から応答された処理規則設定状況が、処理規則設定装置２０ｃ側で把握している処理規則設定状況と一致していないものとなっている（以下、図１９を含む各図では、このようなケースを処理規則設定状況（ＮＧ）と表わしている。）。
【００９６】
処理規則設定状況を受けとった処理規則設定装置２０ｃは、経路制御装置３０に対し、処理規則設定状況として、第２クラスタのノード１０から受け取ったフローＩＤと、トランザクションＩＤとを送信する（図１９のＳ１０６）。
【００９７】
経路制御装置３０は、処理規則設定装置２０ａからは、正しいフローＩＤと、トランザクションＩＤと受信するが（図１９のＳ００５）、処理規則設定装置２０ｃからは、間違ったフローＩＤと、トランザクションＩＤと受信するため（図１９のＳ１０６）、該当トランザクションＩＤを持つ一連の処理規則の設定に失敗したと判定し、処理規則設定装置２０ａ、２０ｃに対して、トランザクションＩＤを指定してロールバックを指示する（図１０９のＳ１０７）。
【００９８】
その後は、処理規則の設定時と同様に、スタンバイ系の処理規則設定装置２０ｂ、２０ｄへの記録・完了（図１９のＳ１０８、Ｓ１０９）の後、各ノード１０へのロールバックの指示が行われる（図１９のＳ１１０）。最終的に、処理規則設定装置２０ａ、２０ｃからロークバックの完了通知を受けとった段階で、経路制御装置３０は、一連の処理規則のロールバックが正しく行われたものとしてトランザクションを終了する。
【００９９】
以上のように、本実施形態では、ノード１０において処理規則の設定不具合があった場合においても、他のクラスタの処理規則設定装置２０ａから送られた内容に基づいて正しくロールバック処理を行うことが可能になる。
【０１００】
（３−１．トランザクション終了後の処理規則設定装置の切替）
続いて、図２０を参照して、図１８に示すように正常に一連の処理が完了した後に処理規則設定装置２０ａに異常が発生するなどして、システム管理装置４０が、スタンバイ系の処理規則設定装置をアクティブ化した場合の後続する動作について説明する。図２０のステップＳ０００〜Ｓ００８までの動作は上記図１８のステップＳ０００〜Ｓ００８の動作と同様であるので、説明を省略する。
【０１０１】
その後、システム管理装置４０が、スタンバイ系で待機していた処理規則設定装置２０ｂをアクティブ化すると（図２０のＳ２０１）、処理規則設定装置２０ｂは、ノード１０に対してフローＩＤとトランザクションＩＤとを含んだジャーナルデータの送信を要求する（図２０の２０２）。
【０１０２】
ノード１０からジャーナルデータを受信すると（図２０のＳ２０３）、処理規則設定装置２０ｂは、自装置内の処理規則設定ログ記憶部２７に記憶された処理規則の設定履歴と照合し、その照合結果を経路制御装置３０に送信する（図２０のＳ２０４）。
【０１０３】
経路制御装置３０は、トランザクションログ３４を参照し、前記照合結果により確認されたトランザクションが正常に終了していることを確認した上で、処理規則設定装置２０ｂに肯定応答（トランザクションログとの照合ＯＫ）を応答する（図２０のＳ２０５）。
【０１０４】
上記肯定応答（トランザクションログとの照合ＯＫ）を受信した処理規則設定装置２０ｂは、システム管理装置４０に対し、アクティブ化が完了したことを通知する（図２０のＳ２０６）。
【０１０５】
（３−２．ノード異常によるロールバック完了後の処理規則設定装置の切替）
続いて、ノード１０からの処理規則の設定状況の異常によるロールバックの完了後に、システム管理装置４０が、スタンバイ系の処理規則設定装置をアクティブ化した場合の後続する動作について説明する。図２１のステップＳ０００〜Ｓ１１２までの動作は上記図１９のステップＳ０００〜Ｓ１１２の動作と同様であるので、説明を省略する。
【０１０６】
また、以降の動作も図２０のステップＳ２０１〜Ｓ２０５と同様であるが、トランザクションログ３４の参照の結果、処理規則設定装置２０ｃにてロールバックが完了しているため、経路制御装置３０は、処理規則設定装置２０ｂにもロールバックを指示する（図２１のＳ２０７）。
【０１０７】
処理規則設定装置２０ｂからロールバックの完了通知を受け取った段階で（図２１のＳ２０８）、経路制御装置３０は、システム管理装置４０に対し、アクティブ化が完了したことを通知する（図２０のＳ２０６）。
【０１０８】
以上のように、アクティブ化された処理規則設定装置が、ノードに設定されている処理規則が自装置で把握している処理規則と同期しているかどうかを確認し、さらに、トランザクションログとの照合を行っているため、システム管理装置４０により処理規則設定装置の切替が行われた場合であっても、各ノードに設定された処理規則の一貫性が損なわれることはない。
【０１０９】
（４．処理規則設定完了前またはロールバック完了前における処理規則設定装置の異常）
続いて、処理規則設定要求〜コミットＯＫ（ロールバック完了）の過程においてアクティブ系の処理規則設定装置に故障が発生した場合の動作について、故障発生タイミング毎に分説する。
【０１１０】
図２２は、処理規則の正常設定後のコミット要求に対し、一方の処理規則設定装置２０ａからコミットＯＫが送信されなかった場合の動作を表したシーケンス図である。この場合、第１の実施形態で図１１を用いて説明した場合と同様に、経路制御装置３０は、コミットＯＫが送られてきた方の処理規則設定装置２０ｃに対しロールバックを指示することになる。具体的な動作は、図１９のステップＳ１０８〜Ｓ１１１と同様である。以降は図２０で説明したように、システム管理装置４０による処理規則設定装置の切替とジャーナルデータの取得・照合が行われる。ここでは、すでに処理規則設定装置２０ｃに対しロールバックを指示済みであるので、経路制御装置３０は、アクティブ化された処理規則設定装置２０ｂにもロールバックを指示することになる。
【０１１１】
図２３は、ノード１０からの処理規則の設定状況に異常があり、ロールバック動作を行った後、一方の処理規則設定装置２０ａからロールバック完了通知が送信されなかった場合の動作を表したシーケンス図である。この場合、図２２と同様に、システム管理装置４０による処理規則設定装置の切替とジャーナルデータの取得・照合が行われるが、ノード１０におけるロールバック処理は正常に完了しているので、そのままアクティブ化完了となる。
【０１１２】
図２４は、ノード１０からの処理規則の設定状況に異常があり、ロールバック動作を行った後、一方の処理規則設定装置２０ａがノード１０からロールバック完了通知を受信する前に故障してしまった場合の動作を表したシーケンス図である。この場合、図２２と同様に、システム管理装置４０による処理規則設定装置の切替とジャーナルデータの取得・照合が行われるが、ノード１０におけるロールバック処理は正常に完了しているので、そのままアクティブ化完了となる。
【０１１３】
図２５は、図２２と同様に、処理規則の正常設定後のコミット要求に対し、一方の処理規則設定装置２０ａからコミットＯＫが送信されなかった場合の動作を表したシーケンス図である（図２２との相違は、第１クラスタの処理規則設定装置がコミット要求受信前に故障している点である。）。全体としての動作は図２２と同様であるので説明は省略する。
【０１１４】
図２６は、ノード１０からの処理規則の設定状況に異常があり、ロールバック指示を行う前に、一方の処理規則設定装置２０ａが故障してしまった場合の動作を表したシーケンス図である。この場合、図２２、図２５と同様に、システム管理装置４０による処理規則設定装置の切替とジャーナルデータの取得・照合が行われるが、すでに処理規則設定装置２０ｃに対しロールバックを指示済みであるので、経路制御装置３０は、アクティブ化された処理規則設定装置２０ｂにもロールバックを指示することになる。
【０１１５】
図２７は、処理規則が正常に設定されたものの、一方の処理規則設定装置２０ａから処理規則設定成功通知が送信されなかった場合の動作を表したシーケンス図である。全体としての動作は図２２、図２５と同様であるので説明は省略する。
【０１１６】
図２８は、ノード１０からの処理規則の設定状況に異常があり、一方の処理規則設定装置２０ｃからはその旨の応答（処理規則設定状況（ＮＧ））を受信したが、他方の処理規則設定装置２０ａからは何ら応答が無かった場合の動作を表したシーケンス図である。この場合、図２６と同様に、システム管理装置４０による処理規則設定装置の切替とジャーナルデータの取得・照合が行われるが、すでに処理規則設定装置２０ｃに対しロールバックを指示済みであるので、経路制御装置３０は、アクティブ化された処理規則設定装置２０ｂにもロールバックを指示することになる。
【０１１７】
図２９は、処理規則が正常に設定されたものの、一方の処理規則設定装置２０ａが処理規則設定状況を受信できなかった場合の動作を表したシーケンス図である。この場合も、全体としての動作は図２７と同様であるので説明は省略する。
【０１１８】
図３０は、ノード１０からの処理規則の設定状況に異常があり、一方の処理規則設定装置２０ｃからはその旨の応答（処理規則設定状況（ＮＧ））を受信したが、他方の処理規則設定装置２０ａが処理規則設定状況を受信できず、何ら応答が無かった場合の動作を表したシーケンス図である。この場合、図２８と同様に、システム管理装置４０による処理規則設定装置の切替とジャーナルデータの取得・照合が行われるが、すでに処理規則設定装置２０ｃに対しロールバックを指示済みであるので、経路制御装置３０は、アクティブ化された処理規則設定装置２０ｂにもロールバックを指示することになる。
【０１１９】
図３１は、一方の処理規則設定装置２０ｃからは処理規則が正常に設定された旨の応答（処理規則設定状況（ＯＫ））を受信したが、他方の処理規則設定装置２０ａは処理規則の設定前に故障してしまい、何ら応答が無かった場合の動作を表したシーケンス図である。この場合、経路制御装置３０は、図２９と同様に、処理規則設定装置２０ｃに対しロールバックを指示する。また、システム管理装置４０による処理規則設定装置の切替とジャーナルデータの取得・照合が行われるが、その結果、第１クラスタのノードの処理規則の設定状況はすでにロールバックした状態にあることが判明するので、そのままアクティブ化完了通知を送信することになる。
【０１２０】
図３２は、ノード１０からの処理規則の設定状況に異常があり、一方の処理規則設定装置２０ｃからはその旨の応答（処理規則設定状況（ＮＧ））を受信したが、他方の処理規則設定装置２０ａは処理規則の設定前に故障してしまい、何ら応答が無かった場合の動作を表したシーケンス図である。この場合、図３１と同様に、処理規則設定装置２０ｃに対しロールバックを指示する。また、システム管理装置４０による処理規則設定装置の切替とジャーナルデータの取得・照合が行われるが、その結果、第１クラスタのノードの処理規則の設定状況はすでにロールバックした状態にあることが判明するので、そのままアクティブ化完了通知を送信することになる。
【０１２１】
図３３は、一方の処理規則設定装置２０ｃからは処理規則が正常に設定された旨の応答（処理規則設定状況（ＯＫ））を受信したが、他方の処理規則設定装置２０ａは処理規則の記録完了通知の受信前に故障してしまい、何ら応答が無かった場合の動作を表したシーケンス図である。この場合、経路制御装置３０は、図２９と同様に、処理規則設定装置２０ｃに対しロールバックを指示する。また、システム管理装置４０による処理規則設定装置の切替とジャーナルデータの取得・照合が行われるが、その結果、第１クラスタのノードの処理規則の設定状況はすでにロールバックした状態にあることが判明するので、そのままアクティブ化完了通知を送信することになる。
【０１２２】
図３４は、ノード１０からの処理規則の設定状況に異常があり、一方の処理規則設定装置２０ｃからはその旨の応答（処理規則設定状況（ＮＧ））を受信したが、他方の処理規則設定装置２０ａは処理規則の記録完了通知の受信前に故障してしまい、何ら応答が無かった場合の動作を表したシーケンス図である。この場合、図３３と同様に、処理規則設定装置２０ｃに対しロールバックを指示する。また、システム管理装置４０による処理規則設定装置の切替とジャーナルデータの取得・照合が行われるが、その結果、第１クラスタのノードの処理規則の設定状況はすでにロールバックした状態にあることが判明するので、そのままアクティブ化完了通知を送信することになる。
【０１２３】
図３５は、一方の処理規則設定装置２０ｃからは処理規則が正常に設定された旨の応答（処理規則設定状況（ＯＫ））を受信したが、他方の処理規則設定装置２０ａは処理規則の記録前に故障してしまい、何ら応答が無かった場合の動作を表したシーケンス図である。この場合、経路制御装置３０は、図２９と同様に、処理規則設定装置２０ｃに対しロールバックを指示する。また、システム管理装置４０による処理規則設定装置の切替とジャーナルデータの取得・照合が行われるが、その結果、第１クラスタのノードの処理規則の設定状況はすでにロールバックした状態にあることが判明するので、そのままアクティブ化完了通知を送信することになる。
【０１２４】
図３６は、ノード１０からの処理規則の設定状況に異常があり、一方の処理規則設定装置２０ｃからはその旨の応答（処理規則設定状況（ＮＧ））を受信したが、他方の処理規則設定装置２０ａは処理規則の記録前に故障してしまい、何ら応答が無かった場合の動作を表したシーケンス図である。この場合、図３３と同様に、処理規則設定装置２０ｃに対しロールバックを指示する。また、システム管理装置４０による処理規則設定装置の切替とジャーナルデータの取得・照合が行われるが、その結果、第１クラスタのノードの処理規則の設定状況はすでにロールバックした状態にあることが判明するので、そのままアクティブ化完了通知を送信することになる。
【０１２５】
以上の説明から明らかなように、如何なるタイミングで処理規則設定装置が故障しても、スタンバイ系の処理規則設定装置に切り替わり、ノードのジャーナルデータと照合して、ロールバックの要否を判定するため、処理規則の設定状況の一貫性を保持することができる。
【０１２６】
以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した第３の実施形態では、アクティブ系で動作している処理規則設定装置を対象にコミットを行うものとして説明したが、図３７に示すように、スタンバイ系で待機している処理規則設定装置も対象にコミットを行うものとしてもよい（第４の実施形態）。
【０１２７】
また、上記した各実施形態では、１の経路制御装置と、２つのクラスタにそれぞれ２つの処理規則設定装置を配置した構成を挙げて説明したが、該構成は、本発明の一実施形態を簡単に説明するためのものである。本発明を適用する通信システムに求められる要求仕様に応じて、経路制御装置や処理規則設定装置の数を適宜変更できることはもちろんである。
なお、上記の非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲（クレーム）の枠内において、種々の開示要素の多様な組み合せないし選択が可能である。
【０１２８】
最後に、本発明の好ましい形態を要約する。
［第１の形態］
（上記第１の視点による通信システム参照）
［第２の形態］
第１の形態の通信システムにおいて、
前記制御装置は、前記ノードに設定した処理規則に付与したフロー識別子と、前記互いに関連付けられた処理規則に共通して付与したトランザクション識別子とが、前記ノードからの応答に含まれているか否かにより、個々の処理規則が設定されているか否かと、前記互いに関連付けられた処理規則が設定されているか否かを判別する通信システム。
［第３の形態］
第１または第２の形態の通信システムにおいて、
前記制御装置が冗長化されており、
前記制御装置のうちのスタンバイ系として待機している制御装置に、前記設定した処理規則をバックアップさせる通信システム。
［第４の形態］
第３の形態の通信システムにおいて、
前記スタンバイ系として待機している制御装置は、アクティブ状態に切り替わった際に、前記バックアップした処理規則と前記ノードから受信した処理規則との設定状況に基づいて、前記ノードへの処理規則の設定継続またはロールバック動作を行う通信システム。
［第５の形態］
第１から第４いずれか一の形態の通信システムにおいて、
前記制御装置は、任意のノードから処理規則の設定要求に応じて、パケット転送経路を計算し、前記パケット転送経路を実現する処理規則を作成する経路制御装置と、
前記パケット転送経路上のノードのうち、自装置が属するクラスタに属するノードに対し、前記処理規則を設定する、複数の処理規則設定装置とを含んで構成されている通信システム。
［第６の形態］
第５の形態の通信システムにおいて、
前記ノードは、当該処理規則と互いに関連付けられた処理規則に共通して付与されたトランザクション識別子と、更新前の処理規則とを対応付けて保持しており、
少なくとも１つのノードに設定した処理規則に異常が検出された場合、前記処理規則設定装置は、他のクラスタに属する処理規則設定装置から、設定済みの処理規則を受信し、前記処理規則に含まれるトランザクション識別子に基づいてロールバック動作を行う通信システム。
［第７の形態］
第５または第６の形態の通信システムにおいて、
前記経路制御装置は、前記互いに関連付けられた処理規則の設定に成功した場合、前記各処理規則設定装置に対し、コミットを要求し、前記各処理規則設定装置からのコミット応答が揃わない場合、ロールバック動作を行う通信システム。
［第８の形態］
（上記第２の視点による制御装置参照）
［第９の形態］
第８の形態の制御装置において、
前記ノードに設定した処理規則に付与したフロー識別子と、前記互いに関連付けられた処理規則に共通して付与したトランザクション識別子とが、前記ノードからの応答に含まれているか否かにより、個々の処理規則が設定されているか否かと、前記互いに関連付けられた処理規則が設定されているか否かを判別する制御装置。
［第１０の形態］
第８または第９の形態の制御装置において、
スタンバイ系として待機している制御装置と接続され、前記スタンバイ系として待機している制御装置に、前記設定した処理規則をバックアップさせる制御装置。
［第１１の形態］
第１０の形態の制御装置において、
前記スタンバイ系として待機している制御装置は、アクティブ状態に切り替わった際に、前記バックアップした処理規則と前記ノードから受信した処理規則の設定状況に基づいて、前記ノードへの処理規則の設定継続またはロールバック動作を行う制御装置。
［第１２の形態］
第８から第１１いずれか一の形態の制御装置において、
任意のノードから処理規則の設定要求に応じて、パケット転送経路を計算し、前記パケット転送経路を実現する処理規則を作成する経路制御装置と、
前記パケット転送経路上のノードのうち、自装置が属するクラスタに属するノードに対し、前記処理規則を設定する、複数の処理規則設定装置と、を含んで構成されている制御装置。
［第１３の形態］
第１２の形態の制御装置において、
前記ノードは、当該処理規則と互いに関連付けられた処理規則に共通して付与されたトランザクション識別子と、更新前の処理規則とを対応付けて保持しており、
少なくとも１つのノードに設定した処理規則に異常が検出された場合、他のクラスタに属する処理規則設定装置から、設定済みの処理規則を受信し、前記処理規則に含まれるトランザクション識別子に基づいて、前記ノードにロールバックを指示する制御装置。
［第１４の形態］
第１２または第１３の形態の制御装置において、
前記互いに関連付けられた処理規則の設定に成功した場合、前記各処理規則設定装置に対し、コミットを要求し、前記各処理規則設定装置からのコミット応答が揃わない場合、ロールバック動作を行う制御装置。
［第１５の形態］
（上記第３の視点によるノード参照）
［第１６の形態］
第１５の形態のノードにおいて、
さらに、当該処理規則と互いに関連付けられた処理規則に共通して付与されたトランザクション識別子と、更新前の処理規則とを対応付けて保持しており、
トランザクション識別子に基づいたロールバック動作を行うノード。
［第１７の形態］
（上記第４の視点による処理規則の設定方法参照）
［第１８の形態］
（上記第５の視点による制御装置用プログラム参照）
［第１９の形態］
（上記第５の視点によるノード用プログラム参照）
【符号の説明】
【０１２９】
１０  ノード
１１  設定済み処理規則
１２  フローテーブル設定部
１３、１３Ａ  イベントバッファ
１４  ジャーナル送信部
１５  フローテーブル
１６  パケット処理部
１７  パケット送信部
１８  パケット受信部
２０、２０Ａ、２０Ｂ  制御装置
２０ａ  第１クラスタ処理規則設定装置
２０ｂ  第１クラスタ処理規則設定装置
２０ｃ  第２クラスタ処理規則設定装置
２０ｄ  第２クラスタ処理規則設定装置
２１  処理規則設定ログ
２２  要求受諾部
２３  クラスタ管理部
２４  処理規則設定部
２５  ジャーナル確認部
２６  ジャーナル取得部
２７  処理規則設定ログ記憶部
３０  経路制御装置
３１  主処理部
３２  処理規則設定部
３３  トランザクション確認部
３４  トランザクションログ記憶部
４０  システム管理装置
【図１】
2013545321.tif 000003
【図２】
2013545321.tif 000004
【図３】
2013545321.tif 000005
【図４】
2013545321.tif 000006
【図５】
2013545321.tif 000007
【図６】
2013545321.tif 000008
【図７】
2013545321.tif 000009
【図８】
2013545321.tif 000010
【図９】
2013545321.tif 000011
【図１０】
2013545321.tif 000012
【図１１】
2013545321.tif 000013
【図１２】
2013545321.tif 000014
【図１３】
2013545321.tif 000015
【図１４】
2013545321.tif 000016
【図１５】
2013545321.tif 000017
【図１６】
2013545321.tif 000018
【図１７】
2013545321.tif 000019
【図１８】
2013545321.tif 000020
【図１９】
2013545321.tif 000021
【図２０】
2013545321.tif 000022
【図２１】
2013545321.tif 000023
【図２２】
2013545321.tif 000024
【図２３】
2013545321.tif 000025
【図２４】
2013545321.tif 000026
【図２５】
2013545321.tif 000027
【図２６】
2013545321.tif 000028
【図２７】
2013545321.tif 000029
【図２８】
2013545321.tif 000030
【図２９】
2013545321.tif 000031
【図３０】
2013545321.tif 000032
【図３１】
2013545321.tif 000033
【図３２】
2013545321.tif 000034
【図３３】
2013545321.tif 000035
【図３４】
2013545321.tif 000036
【図３５】
2013545321.tif 000037
【図３６】
2013545321.tif 000038
【図３７】
2013545321.tif 000039
【図３８】
2013545321.tif 000040
【国際調査報告】
2013545321.tif 000041