説明

ゲートウェイシステム、ゲートウェイ装置、負荷分散方法

【課題】 負荷分散装置を用いて構成する際に生じるコストを低減し、サーバ追加削除時のシステム再構成に必要な管理コストを削減する。
【解決手段】 第一のパケット中継装置と、複数のゲートウェイ装置とから構成されるゲートウェイシステムにおいて、前記第一のパケット中継装置は、パケットの転送先となる前記ゲートウェイ装置を該パケットの宛先情報に基づいて決定し、前記ゲートウェイ装置は、パケットの送信元情報に基づいて該パケットの処理を担当するゲートウェイ装置を判定し、該パケットの処理を担当するゲートウェイ装置が他のゲートウェイ装置である場合には、該パケットを該他のゲートウェイ装置に転送する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、大規模なゲートウェイやサーバシステムにおける分散構成方式に関するものである。
【背景技術】
【0002】
インターネット上でサービスを提供するサーバシステムや、ユーザ端末とサービス提供者を仲介して付加価値を提供するゲートウェイシステムは、ネットワークの普及と高速化に伴い非常に高い負荷にさらされるようになってきている。このようなシステムでは負荷の増大に対応する方法として、大きく分けて2つの方法が使われている。第一に、各構成要素の性能を向上させることによる方法で、スケールアップ型の性能拡張と呼ばれる。第二の方法は、構成要素の数を増やすことによる方法で、スケールアウト型の性能拡張と呼ばれる。一般的に後者の方法は前者の方法と比べてシステム構成が複雑になる傾向がある反面、負荷の変動に対しての追従が容易である。このため、現在のサーバシステムおよびゲートウェイシステムは、スケールアウト型のシステム構成をとることが多い。
【0003】
スケールアウト型のシステムでは、均質な構成要素を多数並べ、そこに負荷を均一に分散させることが重要な技術となる。これを実現するために負荷分散装置と呼ばれる、分散機能に特化した装置を用いることが多い。負荷分散装置は、サービスを行う対象の前段に配置される。そして、ユーザ端末からの要求を少数の負荷分散装置でいったん受信し、要求に含まれる各種の情報を用いて配下に存在するサーバあるいはゲートウェイにその要求を転送する。
【0004】
負荷分散装置が均等な負荷分散を行うためには、単純にパケット単位でランダムに振り分け先を決定する方法では不十分であり、ユーザ端末からの要求に含まれる情報を適切に利用する必要がある。たとえば、IPアドレス、ポート番号、HTTPリクエストに含まれるURL、クッキー情報などを用いて、振り分け先を決定することができる。たとえば、パケットに含まれるユーザ端末側のIPアドレスをもとに担当するサーバ類を決定することで、特定のユーザ端末が関わる通信は常に同じサーバに分配されることになる。この時、高いレイヤの情報(たとえば、HTTPのURL)を用いることによって、アプリケーションに特化したより詳細な負荷分散を行うことが可能となるが、負荷分散装置での処理が複雑化することにつながるため、負荷分散装置自体の処理性能は低下する傾向がある。少数の負荷分散装置を用いて負荷分散を行う場合、負荷分散装置自体の性能が低いと、負荷分散装置がシステム全体のボトルネックとなる場合があるため、これは避けなければならない。また、複雑な処理を行うためには装置内に多くの情報を保持する必要があり、装置の障害の際に処理の引継ぎを行うことが困難になる。
【0005】
特許文献1では、負荷分散装置の前段の中継装置において、ユーザ端末側のIPアドレスのハッシュ値をもとに負荷分散装置の転送先インタフェースを決定し、負荷分散装置でさらに目的のサーバ群に対して処理を分散させるという構成をとっている。これにより、単純な振り分けルールによって一次分散を行い、負荷分散装置群にてさらに二次分散を行うことになり、負荷分散装置を多数置くことを可能とし、前述した負荷分散装置によるボトルネック問題を解決している。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2003−174473号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、特許文献1による分散方式では、前段の中継装置に、市販されている安価な中継装置には搭載されていない機能を必要としており、仮に特許文献1の方式を実現するためには、ハードウェアなどで実現した高速なパケット処理機能をもった装置を独自に作成する必要があり、負荷分散システム全体のコストを押し上げる原因となる。また、スケールアウト型の性能向上を実現するために必須の要件となる負荷分散対象サーバまたはゲートウェイの増減に対する管理コストの低減を実現できていない。
【0008】
すなわち、サーバの増減時に多数の構成要素に対して変更が必要であることに加え、増減時に処理中であるセッションの引継ぎ処理を実現することができないため、サーバの増減を行うにはシステムの停止が必要となり、柔軟な追加削除を行うことが事実上不可能となる。また、ルータから負荷分散装置、負荷分散装置からサーバという2段階の転送が常に必要となり、各構成要素にかかる負荷が増大する。
【0009】
従って、複雑な負荷分散装置を利用すると、システム全体のコストパフォーマンスが悪化し、負荷分散装置がボトルネック・単一障害点となる。
【課題を解決するための手段】
【0010】
本発明におけるゲートウェイシステムは、第一のパケット中継装置と、複数のゲートウェイ装置とから構成され、前記第一のパケット中継装置は、ネットワークを介して受信したパケットの転送先となる前記ゲートウェイ装置を該パケットの宛先情報に基づいて決定するパケット処理部と、該パケット処理部により転送先として決定された前記ゲートウェイ装置にネットワークを介して前記パケットを転送するパケット送受信部と、を有し、前記ゲートウェイ装置は、
ネットワークを介して受信したパケットの送信元情報に基づいて該パケットの処理を担当するゲートウェイ装置を判定するパケット処理部と、該パケットの処理を担当するゲートウェイ装置が他のゲートウェイ装置である判定された場合には、該パケットを該他のゲートウェイ装置に転送するパケット送受信部と、を有する。
【0011】
また、本発明におけるゲートウェイ装置は、複数のゲートウェイ装置とネットワークを介して互いに接続され、パケットの送信元情報とパケットの処理を担当するゲートウェイ装置を識別する情報との対応を示すパケット処理担当情報と、ネットワークを介して受信したパケットの処理を担当するゲートウェイ装置を前記パケット処理担当情報に基づいて判定するパケット処理部と、該パケットの処理を担当するゲートウェイ装置が他のゲートウェイ装置であると判定された場合には、該パケットを該他のゲートウェイ装置に転送するパケット送受信部と、を有する。
【0012】
更に、本発明における負荷分散方法は、パケット中継装置と、複数のゲートウェイ装置とからなるゲートウェイシステムにおいて、パケット中継装置において、ネットワークを介して受信するパケットを該パケットの宛先情報に基づいて決定されたゲートウェイ装置に転送し、前記ゲートウェイ装置において、前記パケットの送信元情報に基づいて、該パケットの処理を担当するゲートウェイ装置を判定し、該パケットの処理を担当するゲートウェイ装置が他のゲートウェイ装置である判定された場合には、該パケットを該他のゲートウェイ装置に転送する。
【発明の効果】
【0013】
本発明では、複雑な負荷分散装置を用いずに負荷分散を実現することができる。その結果、システム全体のコストパフォーマンスを向上することができ、単一障害点の解消にかかるコストを低減することが可能になる。
【図面の簡単な説明】
【0014】
【図1】システム全体の構成図
【図2】ユーザ端末側パケット中継装置の構成図
【図3】ゲートウェイ装置の構成図
【図4】ゲートウェイ装置におけるパケット受信時の処理フローチャート
【図5】ゲートウェイ管理サーバが格納するテーブル
【図6】サービス提供装置IPブロックテーブルの計算処理フローチャート
【図7】システム全体の初期化およびパケット転送のシーケンス図
【図8】ゲートウェイ装置追加時および仕掛中セッションに対するパケット転送のシーケンス図
【図9】ゲートウェイ管理サーバを置かない場合のゲートウェイ装置削除時のシーケンス図
【図10】ユーザ端末管理サーバの構成図
【図11】ゲートウェイ管理サーバの構成図
【図12】サービス提供装置IPブロックテーブルの生成手順を示す図
【発明を実施するための形態】
【実施例1】
【0015】
本発明を実施するための第一の実施の形態を以下に示す。第一の実施の形態では、ゲートウェイ管理サーバ107による集中管理的なゲートウェイシステムへの適用方法を示す。
【0016】
図1は、実施例1のシステム全体構成図を示す。
【0017】
本システムは、ユーザ端末101がサービス提供装置106と通信してサービスを受けるシステムにおいて、その仲介をゲートウェイ装置104が行うことで付加価値を提供するものである。たとえば、ユーザ端末装置101としてインターネットアクセス可能な携帯電話、サービス提供装置106としてインターネット上のWebサーバ、ゲートウェイ装置104として通信キャリアのファイアウォールが相当する。
【0018】
ユーザ端末101は、ネットワーク102-1を介してユーザ端末側パケット中継装置103と接続している。ユーザ端末側パケット中継装置103はネットワーク102-2を介してゲートウェイ装置104と接続している。ゲートウェイ装置104はネットワーク102-3を介してサービス提供装置側パケット中継装置105と接続している。サービス提供装置側パケット中継装置105は、ネットワーク102-4を介してサービス提供装置106と接続している。また、ゲートウェイ管理装置107はネットワーク102-3を介してゲートウェイ装置104、サービス提供装置側パケット中継装置105と接続しており、また間接的にユーザ端末側パケット中継装置とも接続している。なお、ゲートウェイ管理サーバ107は、ユーザ端末側パケット中継装置103、ゲートウェイ装置104、サービス提供装置側パケット中継装置105、およびユーザ端末管理サーバ108と論理的に通信できればどのような形でネットワーク102群に接続されていてもよい。ユーザ端末管理サーバ108は、ネットワーク102-1を介してユーザ端末101と接続している。
【0019】
図2は、ユーザ端末側パケット中継装置103の構成図である。ユーザ端末側パケット中継装置103は、ネットワークI/F 201を介してネットワーク102-nと接続しており、各ネットワーク102との間でパケットの送受信を行う。パケット処理部202では、ネットワークI/F 201で受信したパケットを解析し、メモリ内にあるパケット転送先選択テーブル203を探索して次に転送すべき装置を決め、適切なネットワーク102へ受信したパケットを送出する。ユーザ端末側パケット中継装置103がパケット処理部202にて受信したパケットを解析した結果、当該パケットが自宛のパケットであった場合、それは管理コマンド処理部204にて処理される。管理コマンド処理部204では、ゲートウェイ管理サーバ107やゲートウェイ装置104からの管理コマンドを受け取り、パケット転送先選択テーブル203の更新処理などを行う。
【0020】
サービス提供装置側のパケット中継装置105は、これと同様の構成をもつ。差異は、接続先ネットワークが異なる点などである。
【0021】
図3は、ゲートウェイ装置104の構成図を示す。ゲートウェイ装置104は、ネットワークI/F 301、パケット処理部302、管理コマンド処理部303、セッション処理部304、ユーザ端末-ゲートウェイ装置対応テーブル305、セッション引継ぎテーブル306、処理中セッションテーブル307からなる。ゲートウェイ装置104がネットワークI/F301を介してパケットを受信すると、パケット処理部302がパケットを解析する。その結果、当該パケットが自宛であった場合は管理コマンド処理部303に転送され、そうでない場合はメモリ中のテーブル群を検索して処理すべき内容を決定する。自ゲートウェイで処理すべきパケットであった場合はセッション処理部304にて処理を行い、他ゲートウェイに転送すべき処理であった場合はネットワークI/Fを経由して他のゲートウェイにパケットを転送する。
【0022】
図4はゲートウェイ装置104でのパケット受信処理フローチャートを示す。ネットワークI/F 301で受信されたパケット(S401)はパケット処理部302に転送され、図4のフローチャートにしたがって処理を行う。まず、パケットを解析し、自宛のものかどうかを調べる(S402)。自宛であった場合、このパケットは管理コマンド処理部303が処理すべきものであるため、パケットを管理コマンド処理部303へ転送する(S403)。それ以外の場合、すなわちサービス提供装置106あるいはユーザ端末101宛であった場合は、当該ゲートウェイ装置104で処理中のセッションであるかを調べるために、セッション情報(TCPであれば、対向装置のIPアドレスおよびポート番号で一意に決定)をキーとして処理中セッションテーブル307を探索する(S404)。
【0023】
探索した結果、エントリが存在した場合には当該パケットは自ゲートウェイで処理すべきであるので、当該パケットをセッション処理部へ転送する(S405)。処理中でない場合は、パケットの処理を担当するゲートウェイ装置を確定する必要があるため、ユーザ端末101からサービス提供装置106に向かうパケットであれば送信元アドレス、サービス提供装置106からユーザ端末101に向かうパケットであれば宛先アドレスをキーとして、ユーザ端末-ゲートウェイ装置対応テーブル305を探索する(S406)。
【0024】
探索の結果、当該パケットは他のゲートウェイ装置が担当していることが分かった場合、当該パケットを他のゲートウェイに転送する(S407)。自ゲートウェイが担当するパケットであった場合、まずこのパケットがセッション開始を示すパケット(TCPであれば、SYNフラグが立っているパケットであるかで判別可能)であるかどうかを調べる(S408)。セッション開始パケットであった場合、当該パケットをセッション処理部へ転送する(S405)。セッション開始のパケットでもなく当該ゲートウェイ装置で処理中でない場合は、パケットに含まれるユーザ端末側アドレスをキーとしてセッション引継ぎテーブル306を探索し(S409)、以前に当該パケットを担当していた可能性がある旧ゲートウェイを割り出し、旧ゲートウェイにパケットを転送する(S410)。セッション引継ぎテーブル306にエントリがないパケットの場合は、エラーパケットであると認識し当該パケットを廃棄する(S411)。
【0025】
セッション処理部304において、SYNパケットを受け取りセッション処理を開始した場合は、処理中セッションテーブル307に当該セッションの情報を追記し、逆にセッションが終了した場合は処理中セッションテーブル307からエントリを削除する。
図10にユーザ端末管理サーバ108の構成図を示す。ユーザ端末管理サーバ108は、ネットワーク102-1とネットワークI/F1001を介して接続され、ネットワーク102-1との間で送受信されるパケットはパケット処理部1002で処理される。パケット処理部1002には、各端末がネットワーク102-1に接続する際に、他の端末と重複しないIPアドレスを割り当てる機能を持つ。ユーザ端末アドレス管理テーブル1003は、割り当て範囲のIPアドレスの各々に対して、そのアドレスが割り当て済みか、どの端末に割り当てられているか、割り当ての有効期限はいつか、という情報を管理する。ユーザ端末管理サーバ108は、ユーザ端末101からのネットワーク接続要求をネットワークI/F1001で受信すると、パケット処理部1002においてユーザ端末アドレス管理テーブル1003を参照し、未割当のIPアドレスが存在し、要求に含まれる端末IDにすでにアドレスが割り当てられていない場合は当該端末にアドレスを付与してテーブルを更新する。
図11にゲートウェイ管理サーバ107の構成図を示す。ゲートウェイ管理サーバ107は、ネットワーク102-3とネットワークI/F1101を介して接続され、ネットワーク102-3との間で送受信されるパケットはパケット処理部1102で処理される。ゲートウェイ管理サーバ107は、ゲートウェイ装置104、ユーザ端末側パケット中継装置103、サービス提供装置側パケット中継装置に対して、各装置が持つべきテーブルを管理・配信する機能をもつ。
【0026】
ゲートウェイ装置104内のユーザ端末-ゲートウェイ装置対応テーブル305と、ユーザ端末側パケット中継装置103およびサービス提供装置側パケット中継装置105内にあるパケット転送先選択テーブルはゲートウェイ管理サーバにて生成したのちに各装置に配布される。各テーブルの生成方法について以下で述べる。
【0027】
図5にゲートウェイ管理サーバ107が有するテーブル群とテーブルの生成方法の模式図を示す。ユーザ端末IPブロックテーブル501は、ネットワーク管理者が定めたユーザ端末用IPアドレス空間の分割の仕方を定めるものである。この各IPブロックをもとに、ユーザからの要求が各ゲートウェイ装置に分散される。担当ゲートウェイ装置テーブル502は、ネットワーク管理者が管理している各ゲートウェイ装置のIPアドレスを記憶するためのテーブルである。サービス提供装置IPブロックテーブルは、サービス提供装置側に割り当てられるIPアドレス空間の分割の仕方を定めるものである。ユーザ端末IPブロックテーブルと同様に、この各IPブロックをもとに、ユーザからの要求が各ゲートウェイ装置に分散される。ユーザ端末IPブロック-ゲートウェイ装置対応テーブル504およびサービス提供装置IPブロック-ゲートウェイ装置対応テーブル505は、どのIPブロックがどのゲートウェイ装置に割り当てられるかを示すものである。
ユーザ端末101群を均等にゲートウェイ装置104に割り当てるためには、ユーザ端末管理サーバ108に対しユーザ端末からアドレス取得要求があるごとに、特定の範囲のIPアドレスから一様乱数を用いて抽出したアドレスを返答するなどし、ユーザ端末101に割り当てられるアドレスを一様に分散させる方法がある。このような状態で、当該範囲のIPアドレスを均等に分割し、それをユーザ端末IPブロックテーブル501の各エントリとすれば、各エントリにはほぼ等確率でユーザ端末101からのパケットが対応することになる。
【0028】
サービス提供装置106のアドレス割り当てがゲートウェイ管理者によって行うことが可能な場合は、ユーザ端末IPブロックテーブル501と同様に、サービス提供装置に割り振られるIPアドレス範囲を均等に分割してサービス提供装置IPブロックテーブル503を生成すればよい。
【0029】
サービス提供装置106のアドレス割り当てがゲートウェイ管理者の管理下にない場合において均等に負荷を分散させるためには、以下の方法をとる。まず、何らかの方法で各IPアドレス、もしくはIPアドレス範囲へのパケットがゲートウェイ装置106を通過する確率を取得する。たとえば、ユーザ端末とサービス提供装置の間に存在するルータにおいてパケットの統計情報を取得することや、各サービス提供装置のアクセスログを用いて確率を取得することが可能である。ここでは、IPアドレス上位16ビットであらわされるIPプレフィックスごとの統計情報がすでに取得済みであるという状態で、サービス提供装置IPブロックテーブル503を生成する手順を述べる。
【0030】
図12に、本手順の概略を示す。ここでは3bitのビット列に単純化した図としている。本図面上では、上への分岐が0,下への分岐が1をあらわしている。たとえば1.の図では000の出現頻度が2、001の出現頻度が7であることを示している。2.では各ノードの子の出現頻度の和をそのノードの頻度として計算している。たとえば、00というプレフィックスの出現頻度は、000と001の出現頻度の和となるので、2+7で出現頻度9となる。そして、出現頻度の値が最小となるノードをリーフとして集約していき、必要なプレフィックスの個数になるまで続ける。必要な個数になった時点で、その結果をもとにサービス提供装置IPブロックテーブルを生成する。
【0031】
図6にサービス提供装置IPブロックテーブル503の生成手順の詳細を示す。まず、2^16個のリーフをもつ完全二分木を作成する。これは深さ16の木となる。木の各ノードの右の分岐する方向を1、左に分岐する方法を0という形で値を割り付けると、木のルートからリーフに到達するまでの経路は16bitの2進数で表現することが可能となる。この16bitの2進数をIPプレフィックスに対応させ、各リーフに対応するIPプレフィックスの出現頻度を記録する。そして、全リーフの中から兄弟となるリーフ2つの頻度の和が最小となる組を探索し、当該リーフを削除して、その兄弟の親のノードを、兄弟の頻度の和を値として持つ新たなリーフとする。この操作を、リーフの数が必要なアドレスブロック数に達するまで繰り返す。そして、残ったリーフがあらわすIPプレフィックスをサービス提供装置IPブロックテーブル503のエントリとする。これにより、各エントリにほぼ等確率でユーザ端末101からのパケットが対応することになる。
【0032】
反対に、何らかの目的で均等な割り当てを必要としない場合も考えられる。たとえば、特定のユーザをあらかじめ定められたゲートウェイ装置で処理することにより、そのユーザに対して特殊なサービスを提供する場合などである。このような場合は、ユーザ端末管理サーバ108は特定のユーザからのアドレス取得要求に対し、あらかじめ定められたIPブロックからアドレスを割り当てる。そして、そのIPブロックに対応するゲートウェイ装置104を固定することにより、特定のユーザを担当するゲートウェイを固定することが可能となる。
【0033】
ここまでに生成したテーブルを用いて、ユーザ端末IPブロックテーブル501の1つ以上のエントリに対して1つのゲートウェイ装置104を割り当てることで、ユーザ端末IPブロック-ゲートウェイ対応テーブル504を生成することができる。また、サービス提供装置IPブロックテーブルの1つ以上のエントリに対して1つのゲートウェイ装置104を割り当てることで、サービス提供装置IPブロック-ゲートウェイ対応テーブル505を生成することができる。
【0034】
ゲートウェイ管理サーバ107からゲートウェイ装置104に対し、ユーザ端末IPブロック-ゲートウェイ対応テーブル504を送信することで、ゲートウェイ装置104のもつユーザ端末-ゲートウェイ装置対応テーブル305の初期値が決定できる。また、ゲートウェイ管理サーバ107からサービス提供装置側パケット中継装置105にユーザ端末IPブロック-ゲートウェイ対応テーブル504を送信することで、サービス提供装置側パケット中継装置105がもつパケット転送先テーブル203の初期値が決定できる。同様に、ゲートウェイ管理サーバ107からユーザ端末側パケット中継装置103に対し、サービス提供装置IPブロック-ゲートウェイ対応テーブル505を送信することで、ユーザ端末側パケット中継装置103のパケット転送先選択テーブル203の初期値が決定できる。
【0035】
図7にテーブル類の初期設定情報配布とユーザ端末101からサービス提供装置106に対してのパケットの流れを示す。ここでは、後半のパケットの流れについて順に説明する。ユーザ端末101からサービス提供装置106へ向かってパケットが送信されると、そのパケットは最初にユーザ端末側パケット中継装置103に到達する。ユーザ端末側パケット中継装置103では、パケット転送先選択テーブル203に基づいて次に転送すべき装置を選択する(S701)。ここでは、ゲートウェイ装置104-2が選択されたものとする。すると、ユーザ端末側パケット中継装置103は当該パケットをゲートウェイ装置104-2に対して送信する。ゲートウェイ装置104-2が当該パケットを受信すると、図4で示したフローにしたがってパケットの処理を行う(S702)。ここでは、当該パケットはゲートウェイ装置104-2の処理中セッションでなく、かつ他ゲートウェイであるゲートウェイ装置104-1が担当であったとしている。このため、当該パケットはゲートウェイ装置104-1に転送される。当該パケットを受信したゲートウェイ装置104-1は、図4のフローにしたがってパケットを処理し、本来のゲートウェイ処理をセッション処理部で行う(S703)。当該パケットがセッションの開始を示すものであった場合は、この時点で処理中セッションテーブル307に対してセッション情報を登録し、またセッションの終了を示すものであった場合は処理中セッションテーブル307に登録済みの当該セッションのエントリを削除する。セッション処理部304で処理が終わったパケットは、サービス提供装置側パケット中継装置105を経由してサービス提供装置106に送信される。
【0036】
サービス提供装置106から送信されるユーザ端末101への返答パケットは、まずサービス提供装置側パケット中継装置105に到達する。サービス提供装置側パケット中継装置105では、パケット転送先選択テーブル203に基づいてゲートウェイ装置104-1を選択したものとする(S704)。返答パケットは選択されたゲートウェイ装置104-1に転送され、ゲートウェイ装置104-1は、図4のフローにしたがって、セッション処理部304にてパケットを処理する(S705)。セッション処理部304で処理が終わったパケットは、ユーザ端末側パケット中継装置103を経由してユーザ端末101に送信される。
【0037】
サービス提供装置側パケット中継装置105での転送先決定は、宛先アドレスであるユーザ端末101のIPアドレスに基づいて行われるため、1回の転送で必ず担当のゲートウェイ装置104にパケットが転送される。一般的なアプリケーションでは、ユーザ端末101からサービス提供装置106に向かうデータ量に比べ、サービス提供装置106からユーザ端末101に向かうデータ量のほうが圧倒的に大きいため、サービス提供装置106からのパケットに対するゲートウェイ装置104間の転送数が少ないのは処理コストの低減に大きな効果がある。
【0038】
次に、ゲートウェイ装置104を追加する場合の処理内容について述べる。図8にゲートウェイ装置104追加時のシーケンス例を示す。ゲートウェイ装置104を追加する際には、ゲートウェイ装置104をネットワークを介してユーザ端末側パケット中継装置103とサービス提供装置側パケット中継装置105との間に接続したのち、ゲートウェイ管理サーバ107に対して当該ゲートウェイ装置104の追加コマンドを入力する(S801)。コマンドを受け付けたゲートウェイ管理サーバ107は、再度各種テーブル群を生成し(S802、S803)、ユーザ端末IPブロック−ゲートウェイ対応テーブル504の旧版と新版の差分を計算する(S804)。サーバ追加の際には、ユーザ端末IPブロックおよびサービス提供装置IPブロックから適当な数のエントリを選択し、そのエントリを新たに追加するゲートウェイ装置104の担当範囲とすることで担当の変更を行う。このとき、他のゲートウェイ装置104が担当しているエントリ数とほぼ同数のエントリの担当変更を行うことにより、変更後の振り分けルールにおいても均等な振り分けが行われることが保障される。
【0039】
ユーザ端末側パケット中継装置103に対してはサービス提供装置IPブロック−ゲートウェイ対応テーブル505が配布され、サービス提供装置側パケット中継装置105にはユーザ端末IPブロック−ゲートウェイ対応テーブル504が配布され、各パケット中継装置103、105において、パケット転送先選択テーブル203として管理される。各ゲートウェイ装置104に対しては、ユーザ端末IPブロック−ゲートウェイ対応テーブル504とともに、当該テーブルの旧版と新版の差分を送信する。この情報を受け取った各ゲートウェイ装置104は、ユーザ端末-ゲートウェイ装置対応テーブル305を更新するとともに、差分をもとにセッション引継ぎテーブル306にエントリを追加する(S805)。このエントリは、あるユーザ端末IPブロックがどのゲートウェイ装置104担当からどのゲートウェイ装置104担当に変わったかを示すものである。
【0040】
また、各ゲートウェイ装置104は、処理中セッションテーブル307の中で担当が変更になったセッションのエントリ中の仕掛中セッション欄にマークをつける。このマークは不要になったセッション引継ぎテーブル306のエントリを消去するために必要である。すなわち、仕掛中セッションがなくなった時点で、従来の担当ゲートウェイ装置にパケットを転送する必要がなくなるので、セッション引継ぎテーブル306の当該エントリを削除する必要がある。これは、各ゲートウェイ装置104での処理中セッションテーブル307で仕掛中セッションマークがすべてなくなった時点で、各ゲートウェイ装置104がゲートウェイ管理サーバ107にその旨を伝え、管理サーバが当該ゲートウェイ装置104を旧担当としているセッション引継ぎテーブル306のエントリを削除する命令を全ゲートウェイ装置104に送信することによって行われる(S806)。
【0041】
図8の下半分に、ゲートウェイ装置104が追加された際のパケットの流れを示す。ここでは、ゲートウェイ装置104-2を追加したことにより、ゲートウェイ装置104-1で仕掛中であるセッションの担当ゲートウェイ装置104がゲートウェイ装置104-2に変更された場合の例を示す。
【0042】
パケットがユーザ端末側パケット中継装置103のパケット転送先選択テーブルに基づいてゲートウェイ装置104-3に転送され(S807)、ゲートウェイ装置104-3のユーザ端末-ゲートウェイ装置対応テーブルに基づいてゲートウェイ装置104-2に転送された場合(S808)、図4のフローチャートにしたがって当該ゲートウェイで処理中のセッションであるかどうかを調べる。ここでは、処理中でなくかつセッションの開始パケットでもないため、セッション引継ぎテーブルをもとに旧担当ゲートウェイ装置104-1に転送される(S809)。そして、ゲートウェイ装置104-1においてセッション処理を継続する(S810)。このように、セッション引継ぎテーブル306と処理中セッションテーブル307を用いることによって、セッションの処理中に担当ゲートウェイ装置104が変更になった場合であっても正しく処理が継続できることがわかる。
【0043】
ゲートウェイ装置104を削除する場合も、追加と同様の処理が行われる。ただし、削除対象のゲートウェイ装置104を停止するのは、削除対象のゲートウェイ装置内のすべての仕掛中セッションが終了するのを待ってからになる。
【0044】
このように、仕掛中セッションの処理を、担当変更前のゲートウェイ装置104で行うようにすることで、仕掛中セッション自体をゲートウェイで移動させる必要がなくなり、ゲートウェイの追加・削除時のセッション情報移動コストがなくなることに加え、より上位層のセッション情報を負荷分散システム側で管理する必要がなくなり、アプリケーション非依存な負荷分散システムが構築可能となる。
【0045】
また、特定のゲートウェイ装置104に処理が一時的に集中した場合などに、負荷分散の均等性が崩れる可能性がある。この時は、特定のゲートウェイ装置104が担当するIPブロックの数を減らすことで、当該ゲートウェイ装置104に到達するセッションが減少させることができる。これを実現するために、本実施例では一つのゲートウェイ装置に対して複数のIPブロックを担当させることを許している。このため、ゲートウェイ装置104に対するIPブロックの割り当ての増減は、ゲートウェイ装置104の追加・削除と同様テーブルの変更として表現できるため、ここまでに述べた手順によって負荷の偏りの均等化も対応可能である。
【0046】
以上、本実施例における発明によると、一般的なルータが持つ基本機能と、負荷分散対象がもつ機能を組み合わせて一つの負荷分散機能を実現することにより、安価で高速なハードウェアによる振り分けと、柔軟で複雑なソフトウェア解析による振り分けを併用可能とし、スケーラブルな性能拡張を実現可能となる。また、ルータが持つ冗長化機能を活用することにより、一次振り分けを行う部分を冗長化することは高度な負荷分散装置と比べて容易であり、結果として単一障害点の解消にかかるコストが低減可能となる。
【実施例2】
【0047】
本実施例では、ゲートウェイ管理サーバ107を用いずに負荷分散を実現する例について述べる。
【0048】
これを実現するためには、実施例1においてゲートウェイ管理サーバ107内に持つとしていたテーブル類をすべてのゲートウェイ装置104に置くこと、およびゲートウェイ管理サーバ107を介した通信(セッション引継ぎテーブル306の消去命令など)がゲートウェイ装置104間の直接通信とすればよい。
【0049】
実施例2のシステム全体構成は、図1に示す実施例2の構成からゲートウェイ管理サーバ107を取り除いたものとなる。また、各ゲートウェイ装置104は、図3に示された構成に加え、図5に示すテーブル群をもつ。
【0050】
実施例1では、ゲートウェイ管理サーバ107において生成したテーブルを各ゲートウェイ装置104に配布する方式をとっていたが、本実施例では、管理者によって各ゲートウェイ装置にユーザ端末IPブロックテーブル501、担当GWテーブル502、サービス提供装置IPブロックテーブル503を登録することになる。ただし、後述するゲートウェイ装置104の追加手順において、追加したゲートウェイ装置104にはこれらのテーブルがコピーされるので、初期状態で1台のゲートウェイ装置104に対して設定を行い、他のゲートウェイ装置104を順次追加するという手順を踏むことで、管理者によって大量のゲートウェイ装置104にテーブル情報をコピーすることはなくなる。
【0051】
いったんテーブル類が設定されたのち、ゲートウェイ装置104の追加削除を行わない状態では、実施例1とまったく同じ動作を行う。すなわち、各ゲートウェイ装置は図4に示されるフローチャートにしたがってパケット処理を行い、パケットの流れは図7に示すシーケンス図となる。
【0052】
ゲートウェイ装置104の追加削除においては、実施例1とは以下に示す差異がある。ここでは、図9を参照し、ゲートウェイ装置104の削除の場合の手順について述べる。まず、削除する対象のゲートウェイ装置104を決定し、そのゲートウェイ装置104に対して削除コマンドを入力する(S901)。図9ではゲートウェイ装置104-1を削除する例を示している。ゲートウェイ装置104-1は、本ゲートウェイ装置104-1を削除する通知を他のすべてのゲートウェイに送信する。そして削除対象のゲートウェイ装置104-1と通知を受けたゲートウェイ装置104-2,104-3は、それぞれがもつサービス提供装置IPブロック-ゲートウェイ対応テーブル505の作成(S902)、およびユーザ端末IPブロック-ゲートウェイ対応テーブル504の作成(S903)と差分の計算を行う(S904)。そして、各ゲートウェイ装置はその差分をもとにセッション引継ぎテーブル306を作成する(S905)。また、処理中セッションテーブル307の中で担当が変更となるセッションのエントリに仕掛中セッションのマークをつける。ユーザ端末側パケット中継装置103とサービス提供装置側パケット中継装置105に対してのテーブル配布は、任意のゲートウェイ装置104が行ってよいが、ここでは削除対象のゲートウェイ装置104-1が配布するものとする。
【0053】
各ゲートウェイ装置104内の処理中セッションテーブル307内に、仕掛中セッションのマークが存在しなくなった時点で、各ゲートウェイ装置104は全ゲートウェイ装置104に対して、当該ゲートウェイ装置104が旧装置となっているエントリの消去命令を送信する(S906)。削除対象ゲートウェイ装置104-1は、すべての仕掛中セッションがなくなった時点で、ゲートウェイを物理的にシステムから削除可能となる(S907)。
【0054】
本手順において、ゲートウェイ装置104を削除した時の新たな担当ゲートウェイ装置決定方法としては2種類の方法がある。第一の方法は、乱数などの非決定論的な計算を用いて、削除対象装置が担当していたIPブロックを、他のゲートウェイ装置に分配する方法である。この方法では、ゲートウェイ装置104の削除通知の中に、担当ゲートウェイ装置テーブル502の全体もしくは差分を含ませることで全ゲートウェイに新たな担当ゲートウェイ装置割り当てを配布する。第二の方法は、ハッシュ値など決定論的な計算によって各ゲートウェイ装置104がそれぞれ新たなゲートウェイ装置割り当てを計算するものである。この方法では、ゲートウェイ装置104の削除通知として削除対象のゲートウェイ装置104のみを伝達すればよいが、各ゲートウェイ装置で計算を行うコストがかかる。
【0055】
本実施例のように、ゲートウェイ管理サーバ104を用いないことにより、システム上の単一障害点を除去することが可能となり、システム全体の可用性が向上する。
【符号の説明】
【0056】
101 ユーザ端末
102 ネットワーク
103 ユーザ端末側パケット中継装置
104 ゲートウェイ装置
105 サービス提供装置側パケット中継装置
106 サービス提供装置
107 ゲートウェイ管理サーバ
108 ユーザ端末管理サーバ
201 パケット中継装置のネットワークI/F
202 パケット中継装置のパケット処理部
203 パケット転送先選択テーブル
301 ゲートウェイ装置のネットワークI/F
302 ゲートウェイ装置のパケット処理部
303 ゲートウェイ装置の管理コマンド処理部
304 セッション処理部
305 ユーザ端末-ゲートウェイ装置対応テーブル
306 セッション引継ぎテーブル
307 処理中セッションテーブル
501 ユーザ端末IPブロックテーブル
502 担当ゲートウェイ装置テーブル
503 サービス提供装置IPブロックテーブル
504 ユーザ端末IPブロック-ゲートウェイ装置対応テーブル
505 サービス提供装置IPブロック-ゲートウェイ装置対応テーブル

【特許請求の範囲】
【請求項1】
第一のパケット中継装置と、複数のゲートウェイ装置とからなるゲートウェイシステムにおいて、
前記第一のパケット中継装置は、
ネットワークを介して受信したパケットの転送先となる前記ゲートウェイ装置を該パケットの宛先情報に基づいて決定するパケット処理部と、該パケット処理部により転送先として決定された前記ゲートウェイ装置にネットワークを介して前記パケットを転送するパケット送受信部と、を有し、
前記ゲートウェイ装置は、
ネットワークを介して受信したパケットの送信元情報に基づいて該パケットの処理を担当するゲートウェイ装置を判定するパケット処理部と、該パケットの処理を担当するゲートウェイ装置が他のゲートウェイ装置である判定された場合には、該パケットを該他のゲートウェイ装置に転送するパケット送受信部と、を有することを特徴とするゲートウェイシステム。
【請求項2】
請求項1に記載のゲートウェイシステムであって、
第二のパケット中継装置を有し、
前記ゲートウェイ装置のパケット処理部は、
前記第二のパケット処理装置からネットワークを介して転送されたパケットの処理を担当するゲートウェイ装置を、該パケットの宛先情報に基づいて判定することを特徴とするゲートウェイシステム。
【請求項3】
請求項2に記載のゲートウェイシステムであって、
前記第一のパケット処理装置は、ユーザ端末から受信するパケットを前記ゲートウェイ装置に転送し、
前記第二のパケット処理装置は、サーバから受信する前記ユーザ端末から送信されたパケットに対する返答パケットを前記ゲートウェイに転送することを特徴とするゲートウェイシステム。
【請求項4】
請求項1に記載のゲートウェイシステムであって、
前記第一のパケット中継装置は、
パケットの宛先情報とパケットの転送先となるゲートウェイ装置を識別する情報との対応を示すパケット転送先情報を有し、前記パケット処理装置のパケット処理部は前記パケット転送先情報に基づいてパケットの転送先を決定し、
前記ゲートウェイ装置は、
パケットの送信元情報とパケットの処理を担当するゲートウェイ装置を識別する情報との対応を示すパケット処理担当情報を有し、前記ゲートウェイ装置のパケット処理部は前記パケット処理担当情報に基づいてパケットの処理を担当するゲートウェイ装置を決定することを特徴とするゲートウェイシステム。
【請求項5】
請求項1に記載のゲートウェイシステムであって、
前記ゲートウェイ装置のパケット処理部は、
受信したパケットが自ゲートウェイ装置で処理中のセッションに関連するパケットか否かを該パケットに含まれるセッション情報に基づいて判定し、自ゲートウェイ装置で処理中のセッションに関連するパケットではないと判定された場合に、該パケットの送信元情報に基づいて該パケットの処理を担当するゲートウェイ装置を決定することを特徴とするゲートウェイシステム。
【請求項6】
請求項1に記載のゲートウェイシステムであって、
前記ゲートウェイ装置は、
パケットの送信元情報毎にパケットの処理を担当するゲートウェイ装置が変更されたことを示す情報を含むゲートウェイ装置引継ぎ情報を有し、
前記ゲートウェイ装置のパケット処理部は、
受信したパケットの送信元情報に基づいて、該パケットの処理を担当するゲートウェイ装置が自ゲートウェイ装置であると判定した場合、該パケットがセッションの開始を示すパケットか否かを判定し、
該パケットがセッションの開始を示すパケットではいないと判定した場合、前記ゲートウェイ装置引継ぎ情報に基づいて、該パケットの転送先となるゲートウェイ装置を決定することを特徴とするゲートウェイシステム。
【請求項7】
請求項1に記載のゲートウェイシステムであって、
複数のゲートウェイ装置とネットワークを介して接続される管理サーバを有し、
該管理サーバは、
パケットの送信元情報とパケットの処理を担当するゲートウェイ装置を識別する情報との対応を示すパケット処理担当情報と、該パケット処理担当情報を前記ゲートウェイ装置に送信する送受信部と、を有し、
前記ゲートウェイ装置のパケット処理部は、
前記管理サーバから受信する前記パケット処理担当情報に基づいてパケットの処理を担当するゲートウェイ装置を決定することを特徴とするゲートウェイシステム。
【請求項8】
請求項7に記載のゲートウェイシステムであって、
前記管理サーバの送受信部は、
パケットの送信元情報毎のパケットの処理を担当するゲートウェイ装置が変更されたことを示す情報を含むゲートウェイ装置引継ぎ情報を送信し、
前記ゲートウェイ装置のパケット処理部は、
受信したパケットの送信元情報に基づいて、該パケットの処理を担当するゲートウェイ装置が自ゲートウェイ装置であると判定した場合、該パケットがセッションの開始を示すパケットか否かを判定し、
該パケットがセッションの開始を示すパケットではいないと判定した場合、前記ゲートウェイ装置引継ぎ情報に基づいて、該パケットの転送先となるゲートウェイ装置を決定することを特徴とするゲートウェイシステム。
【請求項9】
複数のゲートウェイ装置とネットワークを介して互いに接続されるゲートウェイ装置において、
パケットの送信元情報とパケットの処理を担当するゲートウェイ装置を識別する情報との対応を示すパケット処理担当情報と、
ネットワークを介して受信したパケットの処理を担当するゲートウェイ装置を前記パケット処理担当情報に基づいて判定するパケット処理部と、
該パケットの処理を担当するゲートウェイ装置が他のゲートウェイ装置であると判定された場合には、該パケットを該他のゲートウェイ装置に転送するパケット送受信部と、を有することを特徴とするゲートウェイ装置。
【請求項10】
請求項9に記載のゲートウェイ装置であって、
前記パケット処理部は、
受信したパケットが自ゲートウェイ装置で処理中のセッションに関連するパケットか否かを該パケットに含まれるセッション情報に基づいて判定し、自ゲートウェイ装置で処理中のセッションに関連するパケットではないと判定された場合に、該パケットの送信元情報に基づいて該パケットの処理を担当するゲートウェイ装置を決定することを特徴とするゲートウェイ装置。
【請求項11】
請求項9に記載のゲートウェイ装置であって、
パケットの送信元情報毎にパケットの処理を担当するゲートウェイ装置が変更されたことを示す情報を含むゲートウェイ装置引継ぎ情報を有し、
前記パケット処理部は、
受信したパケットの送信元情報に基づいて、該パケットの処理を担当するゲートウェイ装置が自ゲートウェイ装置であると判定した場合、該パケットがセッションの開始を示すパケットか否かを判定し、
該パケットがセッションの開始を示すパケットではいないと判定した場合、前記ゲートウェイ装置引継ぎ情報に基づいて、該パケットの転送先となるゲートウェイ装置を決定することを特徴とするゲートウェイ装置。
【請求項12】
請求項9に記載のゲートウェイ装置であって、
第一のパケット中継装置と、第二のパケット中継装置とにネットワークを介して接続され、
前記パケット処理部は、
前記第一のパケット中継装置から受信するパケットの送信元情報と一致する送信元情報を前記パケット処理担当情報から検索し、前記検索された送信元情報に対応するゲートウェイ装置を前記パケットの処理を担当するゲートウェイとして決定し、
前記第二のパケット中継装置から受信するパケットの宛先情報と一致する送信元情報を前記パケット処理担当情報から検索し、前記検索された送信元情報に対応するゲートウェイ装置を前記パケットの処理を担当するゲートウェイとして決定することを特徴とするゲートウェイ装置。
【請求項13】
パケット中継装置と、複数のゲートウェイ装置とからなるゲートウェイシステムにおける負荷分散方法において、
パケット中継装置において、ネットワークを介して受信するパケットを該パケットの宛先情報に基づいて決定されたゲートウェイ装置に転送し、
前記ゲートウェイ装置において、前記パケットの送信元情報に基づいて、該パケットの処理を担当するゲートウェイ装置を判定し、該パケットの処理を担当するゲートウェイ装置が他のゲートウェイ装置である判定された場合には、該パケットを該他のゲートウェイ装置に転送することを特徴とする負荷分散方法。
【請求項14】
請求項13に記載の負荷分散方法であって、
前記ゲートウェイ装置において、
ネットワークを介して受信したパケットが自ゲートウェイ装置で処理中のセッションに関連するパケットか否かを該パケットに含まれるセッション情報に基づいて判定し、
自ゲートウェイ装置で処理中のセッションに関連するパケットではないと判定された場合に、該パケットの送信元情報に基づいて該パケットの処理を担当するゲートウェイ装置を決定することを特徴とする負荷分散方法。
【請求項15】
請求項13に記載の負荷分散方法であって、
前記ゲートウェイ装置において、
ネットワークを介して受信したパケットの送信元情報に基づいて、該パケットの処理を担当するゲートウェイ装置が自ゲートウェイ装置であると判定された場合に、該パケットがセッションの開始を示すパケットか否かを判定し、
該パケットがセッションの開始を示すパケットではいないと判定された場合に、該パケットの送信元情報に基づいて、該パケットの転送先となるゲートウェイ装置を決定することを特徴とする負荷分散方法。
【請求項16】
請求項15に記載の負荷分散方法であって、
前記転送先となるゲートウェイ装置は、前記パケットに関連するセッションの処理を行っているゲートウェイ装置であることを特徴とする負荷分散方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2012−134780(P2012−134780A)
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願番号】特願2010−285288(P2010−285288)
【出願日】平成22年12月22日(2010.12.22)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】