(57)【特許請求の範囲】
【請求項１】
パケットを転送するルータとして動作するルータクラスタ装置群を含む通信処理システムであって、
前記パケットを処理するパケット処理装置と、
前記ルータクラスタ装置群の負荷分散を制御する複数の負荷分散制御装置を備え、
前記複数の負荷分散制御装置を前記パケット処理装置と分離して設置し、
前記複数の負荷分散制御装置の何れかが故障した時にその故障した装置の制御処理を他の負荷分散制御装置が引き継ぐように制御し、
前記負荷分散制御装置が、通過するパケットの処理を前記パケットの通過によらず予め割り当てられた所定の分割規則によって各前記パケット処理装置に分散させる制御を行う。
【請求項２】
パケットを転送するルータとして動作するルータクラスタ装置群を含む通信処理システムであって、
前記パケットを処理するパケット処理装置と、
前記パケット処理装置群の負荷分散を制御する複数の負荷分散制御装置を備え、
前記パケット処理装置は、
処理対象パケットが伝送されるデータリンクデバイスに各々が接続し、全装置に同報される処理対象パケットを各装置自身が取捨して分散処理を行う構成をとり、前記複数の負荷分散制御装置を前記パケット処理装置と分離して設置し、前記複数の負荷分散制御装置の何れかが故障した時にその故障した装置の制御処理を他の負荷分散制御装置が引き継ぐように制御し、
前記負荷分散制御装置が、通過するパケットの処理を前記パケットの通過によらず予め割り当てられた所定の分割規則によって各前記パケット処理装置に分散させる制御を行う。
【請求項３】
請求項１又は請求項２の通信システムであって、
前記複数の負荷分散制御装置間で、前記故障の通知及びその故障による前記制御処理の引き継ぎのための処理を行う。
【請求項４】
請求項１又は請求項２の通信処理システムであって、
前記負荷分散制御装置が、通過するパケットの処理を前記パケットの通過によらず静的に決まる分割規則によって各前記パケット処理装置に分散させる制御を行い、
前記複数の負荷分散制御装置間で、前記故障の通知及びその故障による前記制御処理の引き継ぎのための処理を行う。
【請求項５】
請求項１又は請求項２の通信処理システムであって、
前記複数の負荷分散制御装置において、現用として動作する負荷分散制御装置の前記制御処理の情報を、予備用として動作する負荷分散制御装置各々に保持することにより、前記負荷分散制御装置を冗長化する処理を行う。
【請求項６】
請求項１又は請求項２の通信処理システムであって、
前記パケットは、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットである。
【請求項７】
パケットを転送するルータとして動作するルータクラスタ装置群を含む通信システムにおけるパケット処理負荷分散方法であって、
パケットを処理するパケット処理装置と分離して設置した複数の負荷分散制御装置に、パケットを転送するルータとして動作するルータクラスタ装置群の負荷分散を制御するステップを有し、
前記複数の負荷分散制御装置の何れかが故障した時にその故障した装置の制御処理を他の負荷分散制御装置に引き継がせるステップを有し、
前記負荷分散制御装置において、通過するパケットの処理を前記パケットの通過によらず予め割り当てられた所定の分割規則によって各パケット処理装置に分散させるステップを有する。
【請求項８】
パケットを転送するルータとして動作するルータクラスタ装置群を含む通信処理システムにおけるパケット処理負荷分散方法であって、
複数の負荷分散制御装置において、前記パケットを処理するパケット処理装置群の負荷分散を制御するステップを有し、
前記パケット処理装置において、
処理対象パケットが伝送されるデータリンクデバイスに各々が接続し、全装置に同報される処理対象パケットを各装置自身が取捨して分散処理を行う構成をとり、前記複数の負荷分散制御装置を前記パケット処理装置と分離して設置し、前記複数の負荷分散制御装置の何れかが故障した時にその故障した装置の制御処理を他の負荷分散制御装置に引き継がせるステップを有し、
前記負荷分散制御装置において、通過するパケットの処理を前記パケットの通過によらず予め割り当てられた所定の分割規則によって各パケット処理装置に分散させるステップを有する。
【請求項９】
請求項７又は請求項８のパケット処理負荷分散方法であって、
前記複数の負荷分散制御装置間で、前記故障の通知及びその故障による前記制御処理の引き継ぎを行うステップを有する。
【請求項１０】
請求項７又は請求項８のパケット処理負荷分散方法であって、
前記負荷分散制御装置において、通過するパケットの処理を前記パケットの通過によらず静的に決まる分割規則によって各パケット処理装置に分散させるステップを有し、
前記複数の負荷分散制御装置間で前記故障の通知及びその故障による前記制御処理の引き継ぎを行うステップを有する。
【請求項１１】
請求項７又は請求項８のパケット処理負荷分散方法であって、
前記複数の負荷分散制御装置において、現用として動作する負荷分散制御装置の前記制御処理の情報を予備用として動作する負荷分散制御装置各々に保持することにより、前記負荷分散制御装置を冗長化するステップを有する。
【請求項１２】
請求項７又は請求項８のパケット処理負荷分散方法であって、
前記パケットは、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットである。
【請求項１３】
パケットを転送するルータとして動作するルータクラスタ装置群を含む通信システムにおける負荷分散制御プログラムであって、下記機能を有する。
パケットを処理するパケット処理装置と分離して設置した複数の負荷分散制御装置に、パケットを転送するルータとして動作するルータクラスタ装置群の負荷分散を制御する機能を実行させ、
前記複数の負荷分散制御装置の何れかが故障した時にその故障した装置の制御処理を他の負荷分散制御装置に引き継がせる機能を実行させ、
前記負荷分散制御装置において、通過するパケットの処理を前記パケットの通過によらず予め割り当てられた所定の分割規則によって各パケット処理装置に分散させる機能を実行させる。
【請求項１４】
パケットを転送するルータとして動作するルータクラスタ装置群を含む通信処理システムにおける負荷分散制御プログラムであって、下記機能を有する。
複数の負荷分散制御装置において、
前記パケットを処理するパケット処理装置群の負荷分散を制御する機能を実行させ、
前記パケット処理装置において、
処理対象パケットが伝送されるデータリンクデバイスに各々が接続し、全装置に同報される処理対象パケットを各装置自身が取捨して分散処理を行う構成をとり、前記複数の負荷分散制御装置を前記パケット処理装置と分離して設置し、前記複数の負荷分散制御装置の何れかが故障した時にその故障した装置の制御処理を他の負荷分散制御装置に引き継がせる機能を実行させ、
前記負荷分散制御装置において、通過するパケットの処理を前記パケットの通過によらず予め割り当てられた所定の分割規則によって各パケット処理装置に分散させる機能を実行させる。
【請求項１５】
請求項１３又は請求項１４の負荷分散制御プログラムであって、
前記複数の負荷分散制御装置間で、前記故障の通知及びその故障による前記制御処理の引き継ぎを行う機能を実行させる。
【発明の詳細な説明】
【技術分野】  本発明は、通信処理システム、パケット処理負荷分散装置及びそれに用いるパケット処理負荷分散方法に関し、特にＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットの処理負荷分散方法に関する。
【背景技術】  ＩＰ網に設置されるルータ装置には、ＩＰの上位層の情報を参照して処理を行う装置がある。例えば、この種の装置としては、不正アクセス遮断等に用いられるファイアウォール装置やＩＰｓｅｃ（ＩＰ  ｓｅｃｕｒｉｔｙ  ｐｒｏｔｏｃｏｌ）トンネルを終端するＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）ゲートウエイ装置等を挙げることができる。
これらの装置では、通過するパケットが属する上位層のセッションを識別し、それぞれのセッションの状態に応じてパケットを処理する必要がある。これらの装置は、パケットが通過するたびに、セッションの識別と状態の参照・更新を行うため、処理にかかる計算量が大きく、装置を複数台用意して負荷を分散させる技術が開発されてきている。ここで、セッションとはＩＰの上位層によって提供される仮想通信路を指し、例えば、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）のコネクション、ＩＰｓｅｃのＳｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ等が含まれる。
従来のシステムの分散方式としては、以下に述べるような２種類の方式がある。第１の方式は、図８に示すような方式であり、複数のパケット処理装置［ルータ装置（＃１〜＃ｎ）４−１〜４−ｎ］の手前に、パケットを振り分ける装置（パケット振り分け装置５）を設置し、この装置で、いずれかのパケット処理装置へパケットを振り分けることで、負荷の分散を行うものである。
図８において、ルータ装置（＃１〜＃ｎ）４−１〜４−ｎはセッション状態４１ａ−１〜４１ａ−ｎ（セッション状態４１ａ−２〜４１ａ−ｎは図示せず）を保持するセッション処理機能４１−１〜４１−ｎ（セッション処理機能４１−２〜４１−ｎは図示せず）を備えており、パケット振り分け装置５は負荷分散規則５１を備えている。
この第１の方式では、パケットを振り分ける装置に処理が集中し、またこの装置の故障によってシステム全体が麻痺するという問題がある。これを解決すために、以下に述べる第２の方式が提案されている。
すなわち、第２の方式は、図９に示すような方式であり、この第２の方式では、データリンク層プロトコルでのマルチキャストによって、全てのパケット処理装置（マスタルータ装置７及びルータ装置６−１〜６−ｎ）にパケットが到達する。各パケット処理装置にはパケット分散フィルタ［トラフィック分散フィルタ７３及びトラフィック分散フィルタ６３−１〜６３−ｎ（トラフィック分散フィルタ６３−２〜６３−ｎは図示せず）］がある。
図９において、マスタルータ装置７は他の装置のセッション状態（現用）７１と、セッション状態７２ａを保持するセッション処理機能７２とを備えており、ルータ装置６−１〜６−ｎは他の装置のセッション状態（予備）６１−１〜６１−ｎ［他の装置のセッション状態（予備）６１−２〜６１−ｎは図示せず］と、セッション状態６２ａ−１〜６２ａ−ｎ（セッション状態６２ａ−２〜６２ａ−ｎは図示せず）を保持するセッション処理機能６２−１〜６２−ｎ（セッション処理機能６２−２〜６２−ｎは図示せず）とを備えている。また、マスタルータ装置７及びルータ装置６−１〜６−ｎは隣接ノードとのデータリンク２００を介して隣接ノード（送信側）８に接続されている。
パケット分散フィルタはデータリンク上でマルチキャストされたＩＰパケットを、負荷分散規則によって通過または破棄させている。負荷分散規則は、（１）同一内容のパケットはいずれかひとつの装置で処理される、（２）パケットは必ずいずれかの装置のフィルタを通過するという条件を満たすように、各装置に設定されている。
第２の方式における負荷分散の手順においては、以下のような動作が実行される。
（１）マスタ装置は、負荷分散規則を他の装置に設定する。
（２）マスタ装置は、他の装置にどのような負荷分散フィルタが設定されているかを把握しており、負荷が均等に分散されるように規則を設定する。
（３）マスタ装置は、負荷分散規則に当てはまらないパケットを処理するような負荷分散フィルタを自身に設定している。
（４）マスタ装置が処理したパケットのセッション情報から新たな負荷分散規則を作成して他の装置に規則を設定する。
（５）マスタ装置が故障すると、他の装置がマスタ装置として振る舞うように動作する。
図９において、各装置にはセッション処理機能がある。セッション処理機能は、内部のセッション処理規則とセッション状態とを参照し、パケット分散フィルタを通過してきたパケットを処理し、そのパケットを破棄または転送させている。
マスタルータ装置７は、各装置にセッション処理規則を設定する。また、マスタルータ装置７を含む各装置は、互いにセッション状態を交換し合っており、一定時間毎に、前回の交換との差分があれば交換が行われる。
マスタルータ装置７を含む各装置は、他の装置のセッション処理規則とある時点での各装置のセッション状態とを保持している。このため、マスタルータ装置７以外のいずれかの装置が故障すると、マスタルータ装置７は代替する装置を決定し、故障した装置に設定されていたセッション処理規則とセッション状態とを該当装置に引き継がせる。また、マスタルータ装置７が故障すると、マスタルータ装置の機能を他の装置が引き継ぐ。これによって、任意の装置の故障に対する自動復旧が可能になる。（文献  特公表２００３−５１８３３８号公報、特公表２００３−５１７２２１号公報）
しかしながら、上述した従来の負荷分散方法では、マスタ装置の故障に備えるため、他の装置はマスタ装置として動作するために必要な情報を保持する必要がある。
マスタ装置は他の装置に割り当てるセッションの内容をすべて保持する必要があるため、全ての装置が、他のすべての装置に割り当てられたセッションの情報を保持する必要がある。このため、従来の負荷分散方法では、クラスタシステムが処理するセッション数が増加すると、システム内の装置数によらず、各装置が保持すべき状態の量が増加するという問題がある。
また、従来の負荷分散方法では、上記の状態を各装置で同期させるため、マスタ装置が新規にセッションを他の装置へ割り当てる時、全ての装置の状態の更新が行われる。そのため、従来の負荷分散方法では、マスタ装置の故障時のｆａｉｌｏｖｅｒ（他の装置がマスタ装置の制御処理を引き継ぐ）時間を短縮するために、状態の同期間隔を短くすると、状態の更新のための通信のオーバヘッドが増大するという問題がある。
そこで、本発明の目的は上記の問題点を解消し、システム内の各装置が保持すべき状態の量や状態の更新のための通信のオーバヘッドを増大させることなく、パケット処理の負荷分散を図ることができる通信処理システム、パケット処理負荷分散装置及びそれに用いるパケット処理負荷分散方法を提供することにある。
【発明の開示】
本発明による通信処理システムは、パケットを転送するルータとして動作するルータクラスタ装置群の負荷分散を制御する複数の負荷分散制御装置を備え、
前記複数の負荷分散制御装置を前記パケットを処理するパケット処理装置と分離して設置し、
前記複数の負荷分散制御装置のうちの１台が故障した時にその故障した装置の制御処理を他の負荷分散制御装置が引き継いでいる。
本発明によるパケット処理負荷分散装置は、パケットを転送するルータとして動作するルータクラスタ装置群の負荷分散を制御する機能を備え、
前記パケットを処理するパケット処理装置と分離して設置され、前記パケット処理装置に対する制御処理を実行する現用装置が故障した時にその故障した現用装置の制御処理を引き継いでいる。
本発明によるパケット処理負荷分散方法は、パケットを処理するパケット処理装置と分離して設置した複数の負荷分散制御装置側に、パケットを転送するルータとして動作するルータクラスタ装置群の負荷分散を制御するステップを備え、
前記複数の負荷分散制御装置のうちの１台が故障した時にその故障した装置の制御処理を他の負荷分散制御装置に引き継がせている。
すなわち、本発明のパケット処理負荷分散方法は、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットを転送するルータとして動作するルータクラスタ装置群の負荷分散を制御する装置であり、複数台の制御装置をパケット処理装置と分離して設置し、制御装置の１台が故障しても他の装置が制御処理を引き継ぐこと（ｆａｉｌｏｖｅｒ）で、故障時にＩＰルータの機能及び負荷分散機能の停止を防いでいる。
また、本発明のパケット処理負荷分散方法では、通過するパケットの処理を、パケットの通過によらず静的に決まる分割規則によって各装置に分散させることで、負荷分散制御のコストを低く抑えている。
さらに、本発明のパケット処理負荷分散方法では、制御装置の故障とｆａｉｌｏｖｅｒによるクラスタシステムの処理とを制御装置間のみで行うことで、ルータクラスタが制御装置のｆａｉｌｏｖｅｒ処理に巻き込まれない。
ここで、ＩＰルータクラスタは、
（Ａ）他の隣接ＩＰノードに対しては、ＩＰパケットを転送する１台のルータとして動作する。
（Ｂ）複数台のルータがパケットの転送処理を分担して行うことで、全体の性能を高める。
（Ｃ）ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）等の上位層ヘッダ情報を用いて、パケットが属するセッションを検出し、そのセッションの状態を記録更新するとともに、セッション状態に応じて所定の処理を行うというような機能を持つ。尚、セッションとはＩＰの上位層によって提供される仮想通信路を指し、例えば、ＴＣＰのコネクション、ＩＰｓｅｃ（ＩＰ  ｓｅｃｕｒｉｔｙ  ｐｒｏｔｏｃｏｌ）のＳｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ等が含まれる。
これによって、本発明のパケット処理負荷分散方法では、予備のマネージャが現用マネージャと同様の情報を保持することで、マネージャの冗長化を行っている。また、マネージャはクラスタメンバと分離して設置されているので、マネージャの故障によって、クラスタメンバの処理が停止したり、クラスタメンバが余分な制御信号を処理したりする必要がないため、マネージャの故障によるクラスタメンバへの影響が小さくなる。
また、本発明のパケット処理負荷分散方法では、各クラスタメンバへトラフィックの分割規則を予め割り当てておき、クラスタメンバの変更時以外は、セッション情報の交換が不要であるため、負荷分散のための制御情報の通信のオーバヘッドが小さくなる。
さらに、本発明のパケット処理負荷分散方法では、死活監視のための広告を頻繁に送信する場合、マネージャと各クラスタメンバとを制御信号専用のデータリンクで接続してもよい。
よって、本発明のパケット処理負荷分散方法では、システム内の各装置が保持すべき状態の量や状態の更新のための通信のオーバヘッドを増大させることなく、パケット処理の負荷分散を図ることが可能となる。
【図面の簡単な説明】  図１は、本発明の一実施例による通信処理システムの構成を示すブロック図である。
図２は、図１の負荷分散マネージャの構成を示すブロック図である。
図３は、図１のクラスタメンバの構成を示すブロック図である。
図４は、図１の負荷分散マネージャ間の死活監視・ｆａｉｌｏｖｅｒ手順を示すフローチャートである。
図５は、図１の負荷分散マネージャによるクラスタメンバの負荷分散制御手順を示すフローチャートである。
図６は、図１のクラスタメンバのパケット処理手順を示すフローチャートである。
図７は、図１のクラスタメンバの死活監視・ｆａｉｌｏｖｅｒ手順を示すフローチャートである。
図８は、従来例による通信処理システムの構成例を示すブロック図である。
図９は、従来例による通信処理システムの他の構成例を示すブロック図である。
【発明を実施するための最良の形態】  次に、本発明の実施例について図面を参照して説明する。図１は本発明の一実施例による通信処理システムの構成を示すブロック図である。図１において、本発明の一実施例による通信処理システムは、負荷分散マネージャ１−１〜１−ｋと、クラスタメンバ２−１〜２−ｎと、隣接ノード（送信側）３とからなっており、これらの装置を隣接ノードとのデータリンク１００を介して接続するＩＰクラスタシステムである。
つまり、クラスタメンバ２−１〜２−ｎは、それぞれ隣接ノード（送信側）３と同一のデータリンク（隣接ノードとのデータリンク１００）に接続されている。負荷分散マネージャ１−１〜１−ｋは、いずれかの隣接ノード（送信側）３とのデータリンク（隣接ノードとのデータリンク１００）上に接続されている。
クラスタメンバ２−１〜２−ｎ各々はセッション状態テーブル２１ａ−１〜２１ａ−ｎ（セッション状態テーブル２１ａ−２〜２１ａ−ｎは図示せず）を保持するセッション処理機能２１−１〜２１−ｎ（セッション処理機能２１−２〜２１−ｎは図示せず）と、トラフィック分散フィルタ（主処理）２２−１〜２２−ｎ［トラフィック分散フィルタ（主処理）２２−２〜２２−ｎは図示せず］と、トラフィック分散フィルタ（副処理）２３−１〜２３−ｎ［トラフィック分散フィルタ（副処理）２３−２〜２３−ｎは図示せず］とを備えている。
負荷分散マネージャ１−１〜１−ｋは、負荷分散規則（「メンバ＃１のマスタ処理の範囲、バックアップ処理の範囲」，・・・，「メンバ＃ｎのマスタ処理の範囲、バックアップ処理の範囲」）１１−１と、マネージャリスト（マネージャ＃１，・・・，マネージャ＃ｋ）１２−１とを備えている。
負荷分散マネージャ１−１〜１−ｋはクラスタメンバ２−１〜２−ｎ各々へ、トラフィック処理を所定の規則で分割するようにフィルタ規則を割り当てる。クラスタメンバ２−１〜２−ｎ各々はその割り当て規則にしたがって、隣接ノード３が隣接ノードとのデータリンク１００上でマルチキャストしたパケットを取得する。
クラスタメンバ２−１〜２−ｎ各々は取得したパケットのセッションを検出し、状態の記録更新及びファイアウォールパケットフィルタの適用等、所定の処理を行う。ここで、セッションとはＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）の上位層によって提供される仮想通信路を指し、例えば、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）のコネクション、ＩＰｓｅｃ（ＩＰ  ｓｅｃｕｒｉｔｙ  ｐｒｏｔｏｃｏｌ）のＳｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ等が含まれる。
負荷分散マネージャ１−１〜１−ｋは複数台設置することができる。それらの負荷分散マネージャ１−１〜１−ｋのうちの１台が現用として動作し、他は予備として動作する。現用の負荷分散マネージャはクラスタ内のメンバリストを基に各クラスタメンバ２−１〜２−ｎのトラフィックの処理範囲を割り当てて処理を指示する。
予備の負荷分散マネージャは現用の負荷分散マネージャの死活を監視し、現用の負荷分散マネージャが故障した時に、それらの予備の負荷分散マネージャのうちの１台が現用の負荷分散マネージャとなる。これによって、クラスタメンバ２−１〜２−ｎ各々は負荷分散マネージャ１−１〜１−ｋの故障や冗長構成を意識することなく、処理を行うことができる。
図２は図１の負荷分散マネージャ１−ｉ（０＜ｉ≦ｋ）の構成を示すブロック図である。図２において、負荷分散マネージャ１−ｉは負荷分散制御機能１３−ｉと、マネージャ死活監視機能１５−ｉと、負荷分散規則設定部１６−ｉと、広告送受信部１７−ｉと、マネージャ個別情報１８−ｉと、ネットワークインタフェース部１９−ｉとから構成されている。
尚、負荷分散制御機能１３−ｉは負荷分散規則１１−ｉと、メンバ死活監視機能１４−ｉとを含み、マネージャ死活監視機能１５−ｉはマネージャリスト１２−ｉを含んでいる。尚、メンバ死活監視機能１４−ｉはクラスタメンバ２−１〜２−ｎ（メンバ＃１〜＃ｎ）毎の広告受信経過時間（ｔ１〜ｔｎ）と死活情報とからなり、マネージャリスト１２−ｉは負荷分散マネージャ１−１〜１−ｋ（マネージャ＃１〜＃ｎ）毎の有効期間（ｕ１〜ｕｋ）と優先度（ｐ＿１〜ｐ＿ｋ）とからなる。
また、負荷分散マネージャ１−１〜１−ｋの個別パラメータとしては、「マネージャ識別子：クラスタ内で唯一になるように設定される」と、「優先度：全順序がつくように設定される」と、「マネージャ広告の有効期間」とが設定されている。
広告送受信部１７−ｉはメンバ死活監視機能１４−ｉ及びマネージャ死活監視機能１５−ｉに接続され、自装置の活性を通知するための広告を送信するとともに、クラスタメンバ２−１〜２−ｎ及び他の負荷分散マネージャが送信する広告信号を受信してその情報をメンバ死活監視機能１４−ｉ及びマネージャ死活監視機能１５−ｉに伝達する。メンバ死活監視機能１４−ｉ及びマネージャ死活監視機能１５−ｉは広告信号から、その送信元である装置の死活状態を管理する。
負荷分散規則１１−ｉはクラスタメンバ２−１〜２−ｎ各々が処理すべきトラフィックの分割規則と、現在の分割の状態とを管理する。また、負荷分散規則１１−ｉは主負荷分散規則（ｍｆ＿１〜ｍｆ＿ｎ）と、副負荷分散規則（ｂｆ＿１〜ｂｆ＿ｎ）とからなる。負荷分散規則設定部１６−ｉは負荷分散規則１１−ｉに接続され、負荷分散規則１１−ｉが定めたトラフィック割り当てを各ルータ装置（図示せず）へ通知する。
広告送受信部１７−ｉ及び負荷分散規則設定部１６−ｉはそれぞれネットワークインタフェース部１９−ｉを介して隣接ノードとのデータリンク１００に接続される。マネージャ個別情報１８−ｉには負荷分散マネージャ１−ｉの識別子、優先度、有効期間等の個別情報が格納されている。
図３は図１のクラスタメンバ２−ｊ（０＜ｊ≦ｎ）の構成を示すブロック図である。図３において、クラスタメンバ２−ｊはセッション処理機能２１−ｊと、セッション状態テーブル２１ａ−ｊと、負荷分散フィルタ２２−ｊ＆２３−ｊと、広告送受信部２４−ｊと、メンバ個別情報２５−ｊと、死活管理機能２６−ｊと、パケット転送機能２７−ｊと、ネットワークインタフェース（＃１〜＃ｍ）２８１−ｊ〜２８ｍ−ｊとから構成されている。
また、各クラスタメンバ２−ｊの個別パラメータとしては、「メンバ識別子：クラスタ内で唯一になるように設定される」と、「メンバ広告の有効期間」とが設定されている。
ネットワークインタフェース（＃１〜＃ｍ）２８１−ｊ〜２８ｍ−ｊは、各ルータと隣接ノードとを繋ぐデータリンク（隣接ノードとのデータリンク１００）に接続される。本実施例では、データリンクがマルチキャストまたはブロードキャストをサポートする必要がある。
負荷分散フィルタ２２−ｊ＆２３−ｊは主処理規則（ｍｆ＿ｊ）と副処理規則（ｂｆ＿ｊ）とを持ち、データリンクから受信したパケットのうち、自装置が処理すべきものを振り分ける。
セッション処理機能２１−ｊは各パケットが属するセッションに応じた処理を行う。セッション状態テーブル２１ａ−ｊは各パケットが属するセッションの状態を保持する。ここで、セッションとはＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）の上位層によって提供される仮想通信路を指し、例えば、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）のコネクション、ＩＰｓｅｃ（ＩＰ  ｓｅｃｕｒｉｔｙ  ｐｒｏｔｏｃｏｌ）のＳＡ（Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ）等が含まれる。
セッション状態テーブル２１ａ−ｊは、これらのセッション毎に保持される固有の情報を指し、ＴＣＰのコネクションの場合には、「コネクションの状態」、「シーケンス番号」、「応答番号」等を含む。ＩＰｓｅｃ  ＳＡの場合には、ＲＦＣ（Ｒｅｑｕｅｓｔ  Ｆｏｒ  Ｃｏｍｍｅｎｔｓ）２４０１で定められるＳＡのパラメータを含む。
パケット転送機能２７−ｊは、予め設定された経路情報をパケットの宛先をキーとして検索し、パケットの送出方路を決定して次ホップノードへ転送する機能である。
死活管理機能２６−ｊは、自装置の情報を他のクラスタメンバと負荷分散マネージャとに通知し、また、他のクラスタメンバの故障を検知するための機能であり、広告メッセージの送信及び受信機能と死活監視タイマとから構成されている。
図４は図１の負荷分散マネージャ１−１〜１−ｋ間の死活監視・ｆａｉｌｏｖｅｒ手順を示すフローチャートであり、図５は図１の負荷分散マネージャ１−１〜１−ｋによるクラスタメンバ２−１〜２−ｎの負荷分散制御手順を示すフローチャートであり、図６は図１のクラスタメンバ２−１〜２−ｎのパケット処理手順を示すフローチャートであり、図７は図１のクラスタメンバ２−１〜２−ｎの死活監視・ｆａｉｌｏｖｅｒ手順を示すフローチャートである。これら図１〜図７を参照して本発明の一実施例による通信処理システムの動作について説明する。以下、図２に示す負荷分散マネージャ１−ｉ及び図３に示すクラスタメンバ２−ｊを用いて説明する。
各負荷分散マネージャ１−ｉは、後述するマネージャ広告を受信することで、クラスタ内に存在する他の負荷分散マネージャの識別子や情報を取得し、負荷分散マネージャ１−ｉの冗長構成の制御を行う。負荷分散マネージャ１−ｉの冗長制御は、負荷分散マネージャ１−ｉのマネージャ死活監視機能１５−ｉによって行われる。
マネージャ監視機能１５−ｉは、所定のインタフェース上で、所定の宛先あてに、識別子，優先度，有効期間を含むマネージャ広告を送信する。マネージャ広告は全ての負荷分散マネージャ１−ｉが受信するよう設定されている。
各負荷分散マネージャ１−ｉは、受信したマネージャ広告を基にマネージャリスト１２−ｉを作成する。マネージャリスト１２−ｉの各要素は、広告に含まれる有効期間が経過し、かつ新規の広告を受信しなければ一覧から消去される。
マネージャリスト１２−ｉに含まれるマネージャのうち、自装置の優先度が最大であるようなマネージャの状態が「現用」に設定される。他のマネージャは自装置の状態を「予備」に設定する。
現用マネージャは、後述する手順でクラスタメンバ２−ｊの負荷分散制御を行う。クラスタメンバ２−ｊの故障等によって、処理範囲の割り当てが更新された場合には、他のマネージャに対して更新された割り当て内容を通知する。予備マネージャは、現用マネージャから分散処理の割り当てを受信して保持する。
予備マネージャは、図４に示す手順によって現用マネージャの死活を監視する。マネージャ広告の有効期間が切れ、マネージャ一覧から現用マネージャの要素が削除された時には、一覧に登録された予備マネージャの中で、自装置の優先度が最大であるような予備マネージャが現用マネージャとして振る舞うようになる。
すなわち、予備マネージャはパケットの宛先から経路情報Ｂを検索し（図４ステップＳ１）、自ノードが受信処理対象でなければ（図４ステップＳ２）、そのパケットを破棄する（図４ステップＳ３）。
予備マネージャは自ノードが受信処理対象であれば（図４ステップＳ２）、そのパケットがマネージャ広告メッセージかを判定する（図４ステップＳ４）。予備マネージャはそのパケットがマネージャ広告メッセージでなければ、そのパケットを他のプロトコルの受信処理に回す（図４ステップＳ５）。
予備マネージャはそのパケットがマネージャ広告メッセージで、自装置が予備モードで動作中であれば（図４ステップＳ６）、現用マネージャの死活監視タイマＡをリセットする（図４ステップＳ７）。
一方、予備マネージャは死活監視タイマＡの状態を監視しており（図４ステップＳ１１）、死活監視タイマＡがタイムアウトすると（図４ステップＳ１２）、自装置が予備マネージャで最高優先度であれば（図４ステップＳ１３）、予備マネージャから現用マネージャへ処理を切替え（図４ステップＳ１４）、マネージャリストＣを更新する（図４ステップＳ１５）。
各クラスタメンバ２−ｊは負荷分散マネージャ１−ｉ及び他のクラスタメンバへ自装置の活性を広告の送信によって伝達する。この広告は所定のインタフェース上で、所定の宛先あてに送信される。また、この広告にはクラスタメンバの識別子、広告の有効期間が含まれる。さらに、この広告は各クラスタメンバ及び現用マネージャによって受信される。
現用マネージャは上記のクラスタメンバ広告を受信することで、クラスタ内に存在するクラスタメンバの識別子を取得し、トラフィック分散の制御を行う。負荷分散制御機能１３−ｉは同一データリンクに接続されたクラスタメンバのリストを含む。
クラスタメンバのリストの各要素は、リストの中での位置を示す番号、識別子、有効期限、該当する要素に対応するフィルタ規則を計算するための情報を含む。また、クラスタメンバのリストは広告に含まれるメンバの識別子の番号順に並べるように構成する。
現用マネージャは作成したクラスタメンバのリストに含まれるメンバ数と、リスト中での各メンバの位置とから各クラスタメンバが主処理すべきトラフィックの範囲を計算する。
ここで、各処理範囲が次の条件を満たすような計算規則が、予め設定されているものとする。すなわち、主処理範囲は、ルータクラスタが処理すべき全トラフィックの一部分であり、各範囲は相互に重複しないものとする。トラフィックの全体をＴ，空集合をφとすると、各クラスタメンバｊ（０＜ｊ≦ｎ）が主処理を受け持つトラフィックの範囲は、
ｍｆ＿１∪ｍｆ＿２∪  ．．．  ∪ｍｆ＿ｎ＝Ｔ
ｍｆ＿１∩ｍｆ＿２∩  ．．．  ∩ｍｆ＿ｎ＝φ
となる。
また、各クラスタメンバｊ（０＜ｊ≦ｎ）は主処理と別に、副処理の範囲ｂｆ＿ｊを、
ｂｆ＿１∪ｂｆ＿２∪  ．．．  ∪ｂｆ＿ｎ＝Ｔ
ｍｆ＿ｊ∩ｂｆ＿ｊ＝φ
という条件を満たすように計算する。但し、０＜ｊ≦ｎである。各クラスタメンバｊ（０＜ｊ≦ｎ）は上記のｍｆ＿ｊ，ｂｆ＿ｐ＿ｊを処理するように指示を行う通知を各クラスタメンバへ送信する。
また、各クラスタメンバｊ（０＜ｊ≦ｎ）は上記の副処理の範囲の割り当てに加えて、同範囲の主処理を受け持つクラスタメンバの識別子もその指示に含める。すなわち、
ｍａｓｔｅｒ（ｂｆ＿ｊ）＝１
となるような１＿ｐを計算して記録しておく。
現用マネージャはルータクラスタ内のメンバ数が増減した時の負荷の再分散を行う。図２の負荷分散制御機能１３−ｉにあるように、上記の手順によって作成されるクラスタメンバのリストの要素には、所定の有効期限を設ける。
図５に示すように、トラフィック分散制御機能は、予め定めた送受信手順によって受信した広告に含まれる識別子から、上記の手順にしたがって一覧を更新する。同時に、該当要素の監視タイマを所定の有効期限にリセットする。
該当する要素が含むクラスタメンバの識別子と同一の識別子を含む広告が、前回受信した時から有効期限の間に再度受信できなければ、監視タイマのタイムアウトによって、その要素をクラスタメンバのリストから削除する。
すなわち、現用マネージャは、パケットの宛先から経路情報Ｂを検索し（図５ステップＳ２１）、自ノードが受信処理対象でなければ（図５ステップＳ２２）、そのパケットを破棄する（図５ステップＳ２３）。
現用マネージャは、自ノードが受信処理対象であれば（図５ステップＳ２２）、そのパケットがメンバ広告メッセージかどうかを判定する（図５ステップＳ２４）。現用マネージャは、メンバ広告メッセージでなければ、そのパケットを他のプロトコルの受信処理に回す（図５ステップＳ２５）。現用マネージャは、そのパケットがメンバ広告メッセージであれば、メンバリストＤを更新する（図５ステップＳ２６）。
続いて、現用マネージャは、死活監視タイマＡをリセットし（図５ステップＳ２７）、死活監視タイマＡの状態を監視する処理に移る（図５ステップＳ２８）。現用マネージャは、死活監視タイマＡがタイムアウトすると（図５ステップＳ２９）、メンバリストＤから該当メンバを削除し、処理範囲の再割り当てを実施する（図５ステップＳ３０）。
現用マネージャはこの手順によって、クラスタメンバのリストから要素が消滅した場合、あるいは新規のクラスタメンバが追加される場合等、クラスタメンバのリストの要素が変化し、いずれかのクラスタメンバが処理すべきトラフィックの範囲が変化すると、処理範囲の再割り当ての指示を各クラスタメンバへ送信する。
あるクラスタメンバにおいて、この手順によるトラフィック処理割り当ての変更によって、そのメンバ自身がセッション状態を保持しているトラフィックがフィルタの範囲から外れる場合には、セッション状態を保持する範囲のトラフィックを受信するようフィルタを設定する。但し、その範囲のトラフィックにおいて、新規に確立されるセッションのトラフィックについては受け付けない。
また、そのクラスタメンバは該当するセッションの情報と状態とを現用マネージャに報告する。現用マネージャはそのセッションを含む範囲のトラフィックの範囲を割り当てているルータ装置に該当するセッション状態をコピーする。
近隣ノード３からルータクラスタを次ホップとして送付されるＩＰパケットの処理について、図６を用いて説明する。ルータクラスタ用ＩＰアドレスを次ホップとするパケットは、データリンク上で所定のマルチキャストアドレスにあてて送信される。
マルチキャストされたパケットは全部のクラスタメンバが受け取るように設定されている。所定のマルチキャストアドレス以外のデータリンクアドレスを宛先として受信したパケットは、経路情報を参照して別途処理が行われる。
クラスタメンバは、マルチキャストされたパケットを上記の現用マネージャによって設定された負荷分散フィルタ２２−ｊ＆２３−ｊにかける。そのバケットは負荷分散フィルタ２２−ｊ＆２３−ｊにおいて、主処理フィルタまたは副処理フィルタのいずれかによって、パケットの通過が許可されたルータのみ、セッション処理機能２１−ｊに回される。その他のパケットは破棄される。
負荷分散フィルタ２２−ｊ＆２３−ｊを通過したパケットは、そのヘッダ情報に基づいて、セッション状態テーブル２１ａ−ｊを参照し、該当するセッションを識別する。セッションを識別できないパケットは、ディフォルトの処理規則にしたがって処理される。
セッションが識別されたパケットは、セッションの状態を参照し、該当する状態と所定の処理規則とに基づいて、パケット処理とセッションの状態の更新とが行われる。
セッション処理によって破棄されないパケットのうち、トラフィック分散フィルタ（主処理）２２−ｊを通過したパケットはパケット転送機能２７−ｊに回される。また、トラフィック分散フィルタ（副処理）２３−ｊを通過したパケットは転送されずに破棄される。
パケット転送機能２７−ｊでは、経路情報ｃを検索し、自メンバ宛のパケットを受信処理に回し、それ以外のパケットを経路情報ｃによって決定された送出側のインタフェースから送出される。
すなわち、クラスタメンバ２−ｊはデータリンク上でクラスタ宛に送信されたパケットであれば（図６ステップＳ４１）、負荷分散フィルタ規則ａのうちの負荷分散主処理フィルタ規則を適用する（図６ステップＳ４２）。また、クラスタメンバ２−ｊはデータリンク上でクラスタ宛に送信されたパケットでなければ（図６ステップＳ４１）、パケットの宛先から経路情報ｃを検索し（図６ステップＳ５１）、経路情報ｃによって決定された送出側のインタフェースから送出する。
クラスタメンバ２−ｊは負荷分散主処理フィルタ規則を適用することで、そのパケットが通過可能でなければ（図６ステップＳ４３）、負荷分散副処理フィルタ規則を適用する（図６ステップＳ４４）。その際、クラスタメンバ２−ｊは負荷分散副処理フィルタ規則を適用することで、そのパケットが通過可能でなければ（図６ステップＳ４５）、そのパケットを破棄する（図６ステップＳ４６）。
クラスタメンバ２−ｊは負荷分散主処理フィルタ規則を適用することで、そのパケットが通過可能となれば（図６ステップＳ４３）、あるいは負荷分散副処理フィルタ規則を適用することで、そのパケットが通過可能となれば（図６ステップＳ４５）、そのパケットのヘッダ情報からセッション状態を検索する（図６ステップＳ４７）。
クラスタメンバ２−ｊは検索結果に基づいてパケットを処理し、セッション状態テーブルｂを更新する（図６ステップＳ４８）。クラスタメンバ２−ｊはそのパケットが主処理フィルタ規則によって通過したのでなければ（図６ステップＳ４９）、そのパケットを破棄する（図６ステップＳ５０）。
クラスタメンバ２−ｊはそのパケットが主処理フィルタ規則によって通過したのであれば（図６ステップＳ４９）、パケットの宛先から経路情報ｃを検索し（図６ステップＳ５１）、経路情報ｃによって決定された送出側のインタフェースから送出する。
各クラスタメンバは、図７に示すようにして、主処理メンバ故障時のｆａｉｌｏｖｅｒ処理を行う。図７に示すように、クラスタメンバ２−ｊの死活監視機能２６−ｊは、予め定めた送受信手順によって受信した広告に含まれる識別子が、負荷分散マネージャ１−ｉにて割り当てられた自装置が副処理を担当している範囲について、主処理を行っているクラスタメンバの識別子と等しい場合、該当するクラスタメンバの死活監視タイマをリセットする。
上記の広告が受信されなくなってから所定の時間が経過すると、死活監視タイマがタイムアウトするので、これを契機として、死活監視機能２６−ｊは該当する広告の送信元であるクラスタメンバが故障したものとみなし、自装置のトラフィック分散フィルタの副処理規則を主処理規則に変更する。
副処理を行うクラスタメンバは、主処理を行うクラスタメンバと同一のセッション状態をノード内に保持することができる。このため、主処理ノードが故障した時点から副処理ノードが主処理ノードとして振る舞えば、主処理ノードの切り替えによるクラスタ外部への影響がない。
ｆａｉｌｏｖｅｒ処理によって、副処理担当のクラスタメンバが主処理を行うようになると、該当範囲を副処理するクラスタメンバがいなくなり、副処理範囲に欠損ができる。欠損した副処理範囲を埋めるよう、負荷分散マネージャは分散処理規則を設定し直す。ｆａｉｌｏｖｅｒ処理後に、上記の動作をただちに実行できるよう、ｆａｉｌｏｖｅｒ処理を行ったクラスタメンバは、切替え後の負荷分散フィルタの内容を現用マネージャに報告する。
すなわち、クラスタメンバは、パケットの宛先から経路情報ｃを検索し（図７ステップＳ６１）、自ノードが受信処理対象でなければ（図７ステップＳ６２）、そのパケットを送出処理に回す（図７ステップＳ６３）。
また、クラスタメンバは、自ノードが受信処理対象で（図７ステップＳ６２）、メンバ広告メッセージでなければ（図７ステップＳ６４）、そのパケットを他のプロトコルの受信処理に回す（図７ステップＳ６５）。
クラスタメンバは、メンバ広告メッセージであり（図７ステップＳ６４）、自ルータが副処理中の主処理メンバから発信されたものでなければ（図７ステップＳ６６）、そのパケットを破棄する（図７ステップＳ６７）。クラスタメンバは、そのパケットが、自ルータが副処理中の主処理メンバから発信されたものであれば（図７ステップＳ６６）、死活監視タイマｄをリセットする（図７ステップＳ６８）。
また、クラスタメンバは、死活監視タイマｄの状態を監視し（図７ステップＳ７１）、死活監視タイマｄがタイムアウトすると（図７ステップＳ７２）、負荷分散フィルタ規則ａにおいて副処理フィルタ規則を主処理フィルタ規則に変更し（図７ステップＳ７３）、マネージャ側にｆａｉｌｏｖｅｒ報告を送信する（図７ステップＳ７４）。
現用マネージャはｆａｉｌｏｖｅｒ報告を受信後、所定の手順によって副処理範囲を埋めるように負荷分散規則を設定し直す。但し、報告受信時に現用マネージャがすでに主処理メンバの故障を検知している場合、負荷の再分散によって該当する欠損範囲が埋められるはずであるから、この副処理範囲を埋めるような処理は行われない。
このように、本実施例では、予備マネージャが現用マネージャと同様の情報を保持することで冗長化を行っており、負荷分散マネージャ１−１〜１−ｋがクラスタメンバ２−１〜２−ｎと分離され、負荷分散マネージャの故障によってクラスタメンバ２−１〜２−ｎの処理が停止したり、クラスタメンバ２−１〜２−ｎが余分な制御信号を処理したりする必要がなくなるので、負荷分散マネージャの故障によるクラスタメンバ２−１〜２−ｎへの影響を小さくすることができる。
また、本実施例では、各クラスタメンバ２−１〜２−ｎへトラフィックの分割規則を予め割り当てておき、クラスタメンバ２−１〜２−ｎの変更時以外はセッション情報の交換が不要となるため、負荷分散のための制御情報の通信のオーバヘッドを小さくすることができる。
尚、本実施例では、死活監視のための広告を頻繁に送信する場合、負荷分散マネージャ１−１〜１−ｋと各クラスタメンバ２−１〜２−ｎとを制御信号専用のデータリンクで接続してもよい。
なお、上記実施例による負荷分散マネージャの各機能については、ハードウェア的に実現することは勿論として、これらの構成要素が実行する機能をソフトウェア的に実現することも可能である。その場合、負荷分散マネージャを実現するコンピュータ装置上で、上述した制御機能を提供するコンピュータプログラム（負荷分散制御プログラム）を実行する。
本発明による通信処理システム、パケット処理負荷分散装置は、以上に述べたような構成及び動作とすることで、システム内の各装置が保持すべき状態の量や状態の更新のための通信のオーバヘッドを増大させることなく、パケット処理の負荷分散を図ることができるという効果が得られる。
【図１】
0004650414.tif 000002
【図２】
0004650414.tif 000003
【図３】
0004650414.tif 000004
【図４】
0004650414.tif 000005
【図５】
0004650414.tif 000006
【図６】
0004650414.tif 000007
【図７】
0004650414.tif 000008
【図８】
0004650414.tif 000009
【図９】
0004650414.tif 000010