説明

負荷分散システム、負荷分散装置、実サーバ及び負荷分散方法

【課題】クライアント・サーバ間の全通信データが負荷分散装置に集中することを防ぎ、且つ負荷分散装置上でのIPアドレス変換を不用とする。
【解決手段】負荷分散装置16は実サーバ12-1乃至12-3とネットワークアドレスが同一のセグメントに存在し、クライアント11からの実サーバ12-1乃至12-3に共通の第1のIPアドレスを宛先IPアドレスとする実サーバ宛ての通信データを代理で受信する。負荷分散装置16はこの通信データを転送すべき実サーバを選択し、当該通信データを、選択された実サーバの物理アドレス宛てに転送する。実サーバ12-1乃至12-3は当該サーバに共通の第2のIPアドレスでクライアント11の物理アドレスを取得するためのアドレス解決を行う。実サーバ12-1乃至12-3はこの物理アドレスに対し上記第1のIPアドレスを送信元IPアドレスとする通信データを送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クライアントからの要求を負荷分散装置で受けて当該要求を複数のサーバのいずれかに振り分けるのに好適な負荷分散システム、負荷分散装置、実サーバ及び負荷分散方法に関する。
【背景技術】
【0002】
クライアント・サーバシステムでは、サーバ(サーバ計算機)の負荷がボトルネックになることが多いため、サーバ数を増強し、負荷を分散する方法が取られる。このシステムでは、複数台存在するサーバのうち、ある特定のサーバが過負荷とならないように、クライアント(クライアント計算機)からの要求を振り分ける機能を提供する負荷分散装置が使用される(例えば、特許文献1参照)。
【0003】
負荷分散装置を使用したクライアント・サーバシステムにおけるクライアントからサーバへの通信データの流れは次の通りとなる。まずクライアントは、負荷分散装置上の仮想サーバのアドレスに対し通信データを送信する。このため、負荷分散装置は、実際にクライアントに対しサービスを提供するサーバ(以下、実サーバと称する)に代わりクライアントからの通信データを受信する。負荷分散装置は、受信した通信データの宛先IP(Internet Protocol)アドレスを実サーバのアドレスに変換し、負荷分散のアルゴリズムに基づき実サーバに分散して配信する。
【0004】
一方、上記システムにおける実サーバからクライアントへの通信データの流れは次の通りとなる。実サーバは、デフォルトゲートウェイを負荷分散装置自身のアドレス(仮想サーバのアドレスとは別のアドレス)に設定することで、クライアントへ送信する通信データが負荷分散装置を通過するようにする。負荷分散装置は、実サーバから送られたクライアント宛てパケットに対し、送信元アドレスを仮想サーバのアドレスに変換して、クライアントに送信する。
【0005】
このように、クライアントに対し負荷分散装置上の仮想サーバのアドレスと通信しているように見せることで、負荷分散装置は、実サーバに対する要求を受信し、負荷分散を行う。
【特許文献1】特開平9−218842号公報(請求項1及び2、段落0028及び0029)
【発明の開示】
【発明が解決しようとする課題】
【0006】
上記した従来技術では、負荷分散装置に送受信の全パケットが集中する。このため、通信負荷が大きくなる可能性がある。また負荷分散装置は、送受信の全パケットに対しIPアドレス変換を行うため、処理の負荷が大きくなる可能性がある。
【0007】
本発明は上記事情を考慮してなされたものでその目的は、クライアント・サーバ間の全通信データが負荷分散装置に集中することを防ぎ、且つ負荷分散装置上でのIPアドレス変換を不用にできる負荷分散システム、負荷分散装置、実サーバ及び負荷分散方法を提供することにある。
【課題を解決するための手段】
【0008】
本発明の1つの観点によれば、複数のクライアントにサービスを提供する複数の実サーバであって、当該複数の実サーバに共通の第1のIPアドレスを持つ複数の実サーバと、上記複数の実サーバとネットワークアドレスが同一のセグメントに存在し、上記複数のクライアントの各々からのサービス要求を上記複数の実サーバに割り振る負荷分散装置とを具備する負荷分散システムが提供される。上記負荷分散装置は、通信データを受信する受信手段であって、上記クライアントからの上記第1のIPアドレスを宛先IPアドレスとする実サーバ宛ての通信データを代理で受信する受信手段と、通信データを送信する第1の送信手段と、上記複数の実サーバの中から、上記受信手段によって代理で受信された通信データを転送すべき実サーバを選択する負荷分散処理手段と、上記受信手段によって代理で受信された通信データを上記負荷分散処理手段によって選択された実サーバの物理アドレス宛てに上記第1の送信手段によって転送させる転送処理手段とを有する。上記複数の実サーバの各々は、上記第1のIPアドレスとは異なるアドレス解決プロトコル要求送信用の第2のIPアドレスで上記クライアントの物理アドレスを取得するためのアドレス解決を行うアドレス解決プロトコル処理手段と、上記アドレス解決プロトコル処理手段による上記アドレス解決により決定された物理アドレスに対し上記第1のIPアドレスを送信元IPアドレスとする通信データを送信する第2の送信手段とを有する。
【0009】
このような構成においては、クライアントからの実サーバ宛ての通信データ(通信パケット)のみが負荷分散装置により複数の実サーバのうちのいずれかの実サーバに転送される。一方、実サーバが送信するクライアント宛ての通信データは負荷分散装置と関係なく、直接宛先のクライアントに送信される。このため、通信負荷を減らすことができる。また負荷分散装置では、クライアントからの実サーバ宛ての通信データを中継しながら、従来技術とは異なってIPアドレスの変換を必要としないため、アドレス変換の処理負荷が発生しないで済む。
【0010】
また実サーバは、上記第1のIPアドレスとは異なるアドレス解決プロトコル要求送信用の第2のIPアドレスで上記クライアントの物理アドレスを取得するためのアドレス解決を行う。これにより、負荷分散装置の代理アドレス解決プロトコルによって、クライアントまたはルータでアドレス解決プロトコルテーブル(ARPテーブル)に生成される、第1のIPアドレスと負荷分散装置の物理アドレスとを含むエントリデータが、第1のIPアドレスと実サーバの物理アドレスとを含むエントリデータに書き換えられることが防止される。
【0011】
ここで、上記負荷分散装置に、上記クライアントからの第1のIPアドレスに対するアドレス解決プロトコル要求に対して上記負荷分散装置の物理アドレスを含む代理アドレス解決プロトコル応答を返す代理アドレス解決プロトコル処理手段を追加し、上記負荷分散装置の上記受信手段が、上記代理アドレス解決プロトコル応答により上記クライアントに返された上記負荷分散装置の物理アドレス宛てに当該クライアントから上記第1のIPアドレスで通信データが送信された場合に、当該通信データを受信するようにすると良い。特に、上記サーバのアドレス解決プロトコル処理手段が、上記クライアントからの第1のIPアドレスに対するアドレス解決プロトコル要求に対して応答しないようにするならば、なお良い。
【0012】
このような構成においては、クライアントからの第1のIPアドレスに対するアドレス解決プロトコル要求に対して、負荷分散装置だけが、当該負荷分散装置の物理アドレスを通知することができる。これにより負荷分散装置は、クライアントからの第1のIPアドレスを用いた実サーバ宛ての通信データを代理で受信できる。
【0013】
また、上記負荷分散装置に、サービス要求を割り振る対象となる上記複数の実サーバの物理アドレスと上記第1のIPアドレスとを含むエントリデータを格納する負荷分散装置側登録テーブルを追加し、上記負荷分散装置の負荷分散処理手段が、上記負荷分散装置側登録テーブルから、上記受信手段によって受信された通信データの宛先IPアドレスと一致するIPアドレスを含むエントリデータを抽出し、当該抽出されたエントリデータに含まれている物理アドレスの中から通信データを転送すべき実サーバの物理アドレスを選択する構成とするならば、複数のサーバに対して効率的に負荷分散が行える。
【0014】
また、上記負荷分散装置の上記受信手段が、上記負荷分散装置のIPアドレスを宛先IPアドレスとする通信データをも受信する構成とする一方、上記負荷分散装置の上記転送処理手段に以下の各手段、即ち、上記受信手段によって通信データが受信された場合、当該通信データの宛先IPアドレスが上記負荷分散装置自身のIPアドレスと一致するか判定する手段と、上記負荷分散装置自身のIPアドレスと一致する場合、上記通信データをインターネットプロトコル層及び上位のプロトコル層に受け渡す手段と、上記負荷分散装置自身のIPアドレスと一致しない場合、上記通信データを上記負荷分散処理手段に渡して当該負荷分散処理手段により転送先の物理アドレスを選択させる手段と、上記通信データを転送すべき実サーバの物理アドレスが上記負荷分散処理手段によって選択できなかった場合、上記通信データを破棄する手段とを持たせると良い。
このような構成においては、負荷分散装置が自身のIPアドレスで通常の通信を行うこともできる。
【0015】
また、上記複数の実サーバの各々に、上記負荷分散装置の物理アドレスを含むエントリデータを格納するサーバ側登録テーブルと、TCP/IP通信におけるデータリンク層の処理を行うデータリンク層処理手段と、上記TCP/IP通信におけるIP層の処理を行うIP層処理手段とに加えて、上記データリンク層処理手段から上記IP層処理手段に送るべき通信データを当該IP層処理手段に代わり受信する第1の受信手段であって、受信された通信データがIPパケットの場合、上記サーバ側登録テーブルに登録されている物理アドレスを送信元アドレスとするパケットのみを上記IP層処理手段に送る第1の受信手段と、上記第2の送信手段を含み、上記IP層処理手段から上記データリンク層処理手段に送るべき通信データを上記データリンク層処理手段に代わり受信する第2の受信手段であって、受信された通信データがIPパケットの場合、当該IPパケットをそのまま上記データリンク層処理手段に送る第2の受信手段とを持たせると良い。ここでは更に、上記実サーバの上記アドレス解決プロトコル処理手段に以下の各手段、即ち、上記第1の受信手段によって受信された通信データがターゲットIPアドレス及びターゲット物理アドレスを含むアドレス解決プロトコル応答パケットであって、上記ターゲットIPアドレスが上記第2のIPアドレスで、且つターゲット物理アドレスが上記実サーバの物理アドレスである場合に、上記ターゲットIPアドレスを上記第1のIPアドレスに変換する手段と、上記ターゲットIPアドレスが上記第1のIPアドレスに変換されたアドレス解決プロトコル応答パケットを上記IP層処理手段に送る手段と、上記ターゲットIPアドレスが上記第2のIPアドレスでないか、或いは上記ターゲット物理アドレスが上記実サーバの物理アドレスでない場合に、上記アドレス解決プロトコル応答パケットを破棄する手段と、上記第2の受信手段によって受信された通信データがターゲットIPアドレス及びターゲット物理アドレスを含むアドレス解決プロトコル要求パケットであって、上記ターゲットIPアドレスが上記第1のIPアドレスで、且つターゲット物理アドレスが上記実サーバの物理アドレスである場合に、送信元IPアドレスを上記第2のIPアドレスに変換する手段と、上記ターゲットIPアドレスが上記第2のIPアドレスに変換されたアドレス解決プロトコル要求パケットを上記データリンク層処理手段に送る手段と、上記ターゲットIPアドレスが上記第1のIPアドレスでないか、或いは上記ターゲット物理アドレスが上記実サーバの物理アドレスでない場合に、上記アドレス解決プロトコル要求パケットを破棄する手段とを持たせると良い。
【0016】
このような構成のサーバは、TCP/IP通信機能を標準的に有する通常のサーバに、特別のプログラムを実行させることにより簡単に実現でき、サーバ自体を専用装置とする必要がない。
【発明の効果】
【0017】
本発明によれば、クライアントからの実サーバ宛ての通信データをIPアドレスの変換を必要とすることなく負荷分散装置によって複数の実サーバのうちのいずれかの実サーバに転送でき、しかも実サーバが送信するクライアント宛ての通信データは負荷分散装置と関係なく、直接宛先のクライアントに送信できる。即ち本発明によれば、クライアント・サーバ間の全通信データが負荷分散装置に集中することを防ぎ、且つ負荷分散装置上でのIPアドレス変換を不用にできる。
【発明を実施するための最良の形態】
【0018】
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係る負荷分散システムの基本構成と動作原理を説明するための図である。図1において、クライアント11と当該クライアント11を含む複数のクライアントにサービスを提供する複数の実サーバ、例えば実サーバ12-1,12-2及び12-3とは、ネットワークアドレスが異なる2つのネットワーク13及び14を介して接続されている。クライアント11はネットワーク13に接続され、実サーバ12-1乃至12-3はネットワーク14に接続されている。図1では作図の都合上、1台のクライアント11がネットワーク13に接続されているが、一般には多数のクライアントがネットワーク13に接続されている。
【0019】
ネットワーク13及び14はルータ15により接続されている。ルータ15は、この異なるネットワークアドレスのネットワーク13及び14間を接続するためのルーティング機能を有する。なお、ネットワーク13及び14のネットワークアドレスが同一であるならばルータ15を必要としない。
【0020】
ネットワーク14には負荷分散装置16が接続されている。つまり負荷分散装置16は、ネットワークアドレスが同一のセグメント上に存在する。負荷分散装置16は、実サーバ12-1乃至12-3と異なるIPアドレス“192.168.10.10”を持つ。これに対して実サーバ12-1乃至12-3は、負荷分散装置16のIPアドレスとは異なるものの、全サーバに共通のIPアドレス“192.168.10.11”を持つ。
【0021】
負荷分散装置16は、クライアント11から宛先IPアドレス“192.168.10.11”を用いた実サーバ宛ての通信データ(通信パケット)が送信されると(ステップS1)、当該実サーバ宛ての通信パケットを代理で受信する。負荷分散装置16は、代理で受信したパケットを、負荷分散のアルゴリズムに従い、実サーバ12-1乃至12-3のいずれかの実サーバに対して転送する(ステップS2)。
【0022】
負荷分散装置16による負荷分散対象となる実サーバ12-1乃至12-3は、それぞれ専用装置120-1乃至120-3を含む。実サーバ12-1乃至12-3の専用装置120-1乃至120-3は、当該実サーバの全てに共通のIPアドレス“192.168.10.11”を設定し、負荷分散装置16から転送されるパケットのみを処理する。専用装置120-1乃至120-3は更に、実サーバ12-1乃至12-3が送信するパケットを負荷分散装置16を中継させずに、直接送信する(ステップS3)。
【0023】
図1の負荷分散システムでは、クライアント11が送信するパケットのみ負荷分散装置16を通過する。これに対して、実サーバ12-i(i=1,2,3)が送信するパケットは負荷分散装置16を通過しない。このため、従来の負荷分散装置の問題である負荷分散装置上の通信負荷を減らすことができる。
【0024】
また図1の負荷分散システムでは、クライアント11は実サーバ12-iのIPアドレス宛に直接送信する。このため、負荷分散装置16におけるIPアドレスの変換が発生しない。これにより、既存の負荷分散装置の問題であるIPアドレス変換による処理の負荷を発生しないようにすることができる。
【0025】
次に、図1のシステムにおいて、クライアント11から負荷分散装置16を中継して実サーバ12-iに通信パケット(通信データ)を送信する方法について、図2(a)のデータ流れ図を参照して説明する。
【0026】
負荷分散装置16は、予め実サーバ12-1乃至12-3に共通のIPアドレス“192.168.10.11”と当該実サーバ12-1乃至12-3のMAC(Media Access Control)アドレス(つまり物理アドレス)との組み合せを知っているものとする。
【0027】
今、クライアント11から実サーバ12-1乃至12-3に共通のIPアドレス“192.168.10.11”に対するARP(Address Resolution Protocol;アドレス解決プロトコル)要求が送信されたものとする(ステップS11)。負荷分散装置16は、実サーバ宛てのパケット(IPアドレスが192.168.10.11のパケット)を代理で受信するため、実サーバのIPアドレスに対するARP要求に対し、代理ARPで応答する(ステップS12)。これにより負荷分散装置16は、クライアント11から実サーバ宛ての通信パケット(IPアドレスが192.168.10.11のパケット)が送信された場合(ステップS13)、当該実サーバ宛てのパケットを受信する。
【0028】
負荷分散装置16は、受信した実サーバ宛てのパケット(例えばサービス要求のためのパケット)を、負荷分散のアルゴリズムに基づき、実サーバ12-1乃至12-3のうち負荷分散対象として決定された実サーバのMACアドレス宛てに転送する(ステップS14)。負荷分散のアルゴリズムに関しては、従来から種々知られており、且つ本発明に直接関係しないため説明を省略する。
【0029】
実サーバ12-i上の専用装置120-iは、当該実サーバ12-iの通信を管理・制御する機能を持ち、予め負荷分散装置16のIPアドレス“192.168.10.10”と当該負荷分散装置16のMACアドレスを知っているものとする。
【0030】
実サーバ12-i上の専用装置120-iは、自身のIPアドレス“192.168.10.11”に対するARP要求と自身のアドレスのARP応答を破棄する機能を持つ。この機能により、実サーバ12-iはARP要求に応答しないため、クライアント11からの実サーバ宛てのパケットは、負荷分散装置16で受信される。また本実施形態では、全ての実サーバ12-i(i=1,2,3)が共通のIPアドレス“192.168.10.11”を設定するが、上記の破棄機能により、詳細を後述するように実サーバ間でIPアドレス競合が起こることを防ぐことができる。
【0031】
実サーバ12-i上の専用装置120-iは、負荷分散装置16から転送された自身宛てのパケットを受信する。もし、受信パケットの送信元のMACアドレスが負荷分散装置16を示していれば、専用装置120-iは、実サーバ12-iのOSに受信パケットを渡す。これら対し、送信元のMACアドレスが負荷分散装置16以外の場合、専用装置120-iは受信パケットを破棄する。
【0032】
次に負荷分散装置16を中継せずに、実サーバ12-i(例えば実サーバ12-1)からクライアント11に通信パケット(通信データ)を送信する方法について、図2(b)のデータ流れ図を参照して説明する。
【0033】
まず、実サーバ12-i上の専用装置120-iには、ARP要求送信用のIPアドレス“192.168.10.12”が予め設定されているものとする。実サーバ12-i上の専用装置120-iは、クライアント11に対し通信パケットを送信する場合、上記のIPアドレス“192.168.10.12”を使用してクライアント11に対するARP要求を送信する(ステップS21)。実サーバ12-i上の専用装置120-iは、このARP要求に対するクライアント11からのARP応答を受信する(ステップS22)、専用装置120-iは、ARP応答のデータに基づき、クライアント11宛ての通信パケットを、実サーバ12-1乃至12-3に共通の通信パケット送受信用のIPアドレス“192.168.10.11”を送信元IPアドレスとして送信する(ステップS23)。
【0034】
このように、実サーバ12-iが通信パケット送受信用のIPアドレスとARP要求用のIPアドレスとを切り替えて使用するのは、負荷分散装置16の代理ARPによりクライアント11のARPテーブル(ネットワーク13及びネットワーク14のネットワークアドレス、つまりセグメントが同一の場合)またはルータ15のARPテーブル(ネットワーク13及びネットワーク14のネットワークアドレス、つまりセグメントが異なる場合)に作成されたデータが、書き換えられないようにするためである。
【0035】
もし、実サーバ12-iのIPアドレス“192.168.10.11”でARP要求が送信されるならば、図3に示すように、代理ARPより負荷分散装置16のMACアドレスで作成されたARPテーブル110のデータが、実サーバ12-iのMACアドレスに書き換わる。この場合、次に送信される実サーバ宛てのパケットは、このARPテーブル110のデータに基づき、実サーバ12-iのMACアドレスに送信されてしまう。本実施形態では、実サーバ宛てパケットは全て負荷分散装置16を中継させる必要があるため問題である。
【0036】
そこで本実施形態では、上述のように、実サーバ12-i(上の専用装置120-i)は、ARP要求送信用のIPアドレス“192.168.10.12”を送信元IPアドレスとしてクライアント11に対してARP要求を送信する。この場合、クライアント11またはルータ15のARPテーブル110には、図4に示すようにARP要求送信用のIPアドレス“192.168.10.12”を含むエントリデータが追加登録される。このため、代理ARPにより負荷分散装置16のMACアドレスで作成されたデータは書き換えられない。この場合、次に送信される実サーバ宛てのパケットは、このARPテーブル110のデータに基づき、負荷分散装置16のMACアドレスに送信される。
【0037】
図1のシステムにおける上述の動作を整理して、図5のシーケンスチャートを参照して説明する。図5において、クライアント11は、実サーバ12-1乃至12-3に共通のIPアドレス“192.168.10.11”に対するARP要求を送信する(ステップS31)。
【0038】
実サーバ12-i(上の専用装置120-i)は、負荷分散装置16を中継して通信を行うため、自身宛ての全てのARP要求に対し応答を停止する。代わりに負荷分散装置16が、クライアント11からのARP要求を受信すると代理ARP応答手段として機能し、当該ARP要求に対する応答を代理ARPによりクライアント11に返す(ステップS32)。これにより負荷分散装置16からクライアント11に対し、実サーバ12-iのMACアドレスではなくて、負荷分散装置16自身のMACアドレスが通知される。この結果、クライアント11またはルータ15のARPテーブル110には、実サーバ12-1乃至12-3に共通のIPアドレス“192.168.10.11”に対応付けて負荷分散装置16のMACアドレスが登録される。よって、クライアント11からの実サーバ宛ての通信データ(通信パケット)は負荷分散装置16のMACアドレスに送られることになり、負荷分散装置16が受信する(ステップS33)。
【0039】
負荷分散装置16は、実サーバ宛ての通信データを受信すると、予め登録されている実サーバ12-1乃至12-3の各々のMACアドレスから負荷分散のアルゴリズムに基づき通信データを転送すべき実サーバ12-iを決定し、受信した通信データを当該決定された実サーバ12-iのMACアドレス宛てに転送する(ステップS34)。
【0040】
すると実サーバ12-i上の専用装置120-iは、クライアント11からの通信データ(通信パケット)を受信する。実サーバ12-iが通信データを送信する場合、送信元IPアドレスとして通信用のIPアドレス“192.168.10.11”が用いられる。実サーバ12-iが通信データをクライアント11に送信するためには、ARP要求により当該クライアント11のMACアドレスを取得する必要がある。しかし、このARP要求により、ステップS32で作成された、クライアント11またはルータ15のARPテーブル110上のデータ(IPアドレス“192.168.10.11”に対応付けられたMACアドレス)が書き換えられないようにしなければならない。そこで実サーバ12-i上の専用装置120-iは、通信用のIPアドレス“192.168.10.11に代えてARP送信用のIPアドレス“192.168.10.12”を使用して、クライアント11に対するARP要求を送信する(ステップS35)。するとクライアント11は、ARP要求に対するARP応答を実サーバ12-iに返す(ステップS36)。
【0041】
実サーバ12-i上の専用装置120-iは、クライアント11からのARP応答(ステップS36)を基に、通信用のIPアドレス“192.168.10.11”を送信元IPアドレスとして使用して、当該クライアント宛ての通信データを送信する(ステップS37)。
【0042】
クライアント11は、当該クライアント11またはルータ15のARPテーブル110にデータが作成された後、通信データ(通信パケット)を送信する場合、当該ARPテーブル110のデータに基づき実サーバ宛ての通信パケットを送信する(ステップS38)。この際、実サーバ12-iからのARP要求に応じて(ステップS35)、ARPテーブル110上のデータが書き換えられることはないため、クライアント11からの実サーバ宛ての通信パケットは負荷分散装置16で受信される。
【0043】
負荷分散装置16は、負荷分散のアルゴリズムに基づき、実サーバ12-1乃至12-3の中から受信された通信パケットを転送すべき実サーバを決め、当該受信された通信パケットを、決定された実サーバの予め登録されているMACアドレスに転送する(ステップS39)。
【0044】
次に負荷分散装置16上に、実サーバのIPアドレスとMACアドレスとの対を含むエントリデータ(アドレス情報)を保持するテーブルを自動で作成する方法について、図6のシーケンスチャートを参照して説明する。
【0045】
実サーバ12-i上の専用装置120-iは、負荷分散装置16のMACアドレスを取得するため、ブロードキャストまたはマルチキャストでパケット転送要請(パケット転送要請パケット)を送信する(ステップS41)。このパケット転送要請は、IP層以上のパケットを使用し、少なくともパケット転送要請であると識別できるデータであればどんな形式で良く、ブロードキャストまたは、マルチキャストで送信される。1例として、パケット転送要請がICMP(Internet Control Message Protocol(インターネットコントロールメッセージプロトコル))のルータ請願(Router Solicitation)パケットでも構わない。
【0046】
負荷分散装置16は、パケット転送要請を受信した場合、受信したパケットのIPアドレス及びMACアドレスの送信元アドレスに対してパケット転送広告(パケット転送広告パケット)を送信する(ステップS42)。このパケット転送広告は、IP層以上のパケットを使用し、少なくともパケット転送広告であると識別できるデータであればどんな形式でも良く、パケット転送要請の送信元アドレスを使用して送信される。パケット転送広告の1例として、ICPMのルータ広告(Router Advertisement)パケットでも構わない。
【0047】
実サーバ12-i上の専用装置120-iは、パケット転送広告を受信した場合、受信したパケットのIPアドレス及びMACアドレスの送信元アドレスに対して、パケット転送の登録要求(登録要求パケット)を送信する(ステップS43)。この登録要求は、IP層以上のパケットを使用する必要があると共に、有効期限の情報を含んでいる必要がある。ここで有効期限の値が0の登録要求(後述する登録解除要求)は、実サーバ12-i上の専用装置120-iが明示的にパケットの転送の停止を要請する場合に使用されるものとする。このような場合としては、実サーバ12-i上の専用装置120-iが当該実サーバ12-i上で障害を検知した場合が相当する。
【0048】
負荷分散装置16は、実サーバ12-i上の専用装置120-iからの登録要求を受信した後、要求データが正当かどうかを判別する。負荷分散装置16は、要求データが正当な場合、登録成功として登録要求元の実サーバ12-iを負荷分散対象として新規登録、または登録の更新(既に登録済みの場合)を行う。その後、負荷分散装置16は登録要求のIPアドレス及びMACアドレスの送信元アドレスに対して、負荷分散のためのパケット転送の開始を示す登録応答(登録応答パケット)を送信する(ステップS44)。この登録応答は、IP層以上のパケットを使用する必要があると共に、登録成功または失敗を意味する情報を含んでいる必要がある。実サーバ12-i上の専用装置120-iは登録応答を受信すると、以後定期的に登録要求を負荷分散装置16に送信する。
【0049】
図7は、パケット転送要請パケット71、パケット転送広告パケット72、登録要求パケット73及び登録応答パケット74の間のアドレスの流れを示す。図7中の矢印は、前のパケット中のアドレスをコピーすることにより次のパケットが生成されることを示す。
【0050】
例えば、パケット転送広告パケット72のデータリンク層ヘッダの宛先MACアドレスには、パケット転送要請パケット71のデータリンク層ヘッダの送信元MACアドレス(実サーバ12-iのMACアドレス)が用いられる。同様に、パケット転送広告パケット72のIPヘッダの宛先IPアドレスには、パケット転送要請パケット71のIPヘッダの送信元IPアドレス(実サーバ12-iの通信パケット送受信用のIPアドレス)が用いられる。また、パケット転送広告パケット72の送信元MACアドレス及び送信元IPアドレスには、負荷分散装置16のMACアドレス及びIPアドレスが用いられる。
【0051】
また、登録要求パケット73のデータリンク層ヘッダの宛先MACアドレスには、パケット転送広告パケット72のデータリンク層ヘッダの送信元MACアドレス(負荷分散装置16のMACアドレス)が用いられる。同様に、登録要求パケット73のIPヘッダの宛先IPアドレスには、パケット転送広告パケット72のIPヘッダの送信元IPアドレス(負荷分散装置16のIPアドレス)が用いられる。また、登録要求パケット73の送信元MACアドレス及びIPアドレスには、実サーバ12-iのMACアドレス及びIPアドレスが用いられる。
【0052】
また、登録応答パケット74のデータリンク層ヘッダの宛先MACアドレスには、登録要求パケット73のデータリンク層ヘッダの送信元MACアドレス(実サーバ12-iのMACアドレス)が用いられる。同様に、登録応答パケット74のIPヘッダの宛先IPアドレスには、登録要求パケット73のIPヘッダの送信元IPアドレス(実サーバ12-iのIPアドレス)が用いられる。また、登録応答パケット74の送信元MACアドレス及び送信元IPアドレスには、負荷分散装置16のMACアドレス及びIPアドレスが用いられる。
【0053】
負荷分散装置16は、専用装置120-iから有効期限の値が0以外の登録要求パケットを受信した場合、IPアドレスとMACアドレスとの対を含むアドレス情報のテーブルにデータを追加登録する。このようにして登録された実サーバは、負荷分散装置16による負荷分散対象となり得るサーバの1台として扱われる。
【0054】
負荷分散装置16は、登録要求パケット内の有効期限を超過すると、当該登録要求パケットで指定されるデータを上記アドレス情報のテーブルから削除して、負荷分散の対象から外す。
【0055】
また負荷分散装置16は、有効期限の値が0の登録要求パケットを受信した場合には、当該登録要求パケットで指定されるデータを上記アドレス情報のテーブルから削除して、負荷分散の対象から外す。
【0056】
実サーバ12-i上の専用装置120-iは、登録応答パケットを受信して登録成功であることが確認できた場合、負荷分散装置16を中継した通信を開始する。また実サーバ12-i上の専用装置120-iは、それ以降、登録の有効期限以内の間隔で定期的に登録要求を負荷分散装置16に送信することにより、登録を維持する。
【0057】
通常の通信では、アドレスによるARP要求/応答を使用してIPアドレスとMACアドレスの対を取得するのが一般的である。しかし本実施形態では、実サーバ12-iは通信パケット送受信用のIPアドレスによるARP要求/応答の送信は停止させられる。このため、最初から手動で登録しない限り、負荷分散装置16は実サーバ12-iのMACアドレスを知ることができない。また同様に、実サーバ12-iは負荷分散装置16のMACアドレスを知ることができない。ところが本実施形態では、図6及び図7に示す手順により、実サーバ12-iはARP要求/応答を使用しなくても、負荷分散装置16にMACアドレスとIPアドレスを知らせることができる。また実サーバ12-i自身も負荷分散装置16のMACアドレスとIPアドレスを取得することができる。
【0058】
図8は負荷分散装置16の構成を示すブロック図である。負荷分散装置16は、ネットワークIF(ネットワークインタフェース)161と、データリンク層処理部162と、IP層処理部163と、トランスポート層処理部164と、登録テーブルTBL1と、セッション管理テーブルTBL2とを含む。負荷分散装置16はまた、パケット転送広告処理部165と、登録処理部166と、代理ARP処理部167と、パケット転送処理部168と、負荷分散処理部169とを含む。
【0059】
ネットワークIF161は、負荷分散装置16が接続されているネットワーク14とのインタフェースをなす。ネットワークIF161は、IF入力部161aと、IF出力部161bとを有する。データリンク層処理部162は、データリンク入力部162aと、データリンク出力部162bとを有する。IP層処理部163は、IP入力部163aと、IP出力部163bとを有する。
【0060】
次に、負荷分散装置16内の各部の動作を順次説明する。ネットワークIF161内のIF入力部161aは、ネットワーク14を介して入力された通信データ(通信パケット)を全てデータリンク層処理部162内のデータリンク入力部162aに送る。ネットワークIF161内のIF出力部161bは、データリンク層処理部162内のデータリンク出力部162bから出力された通信パケットをネットワーク14へ送信する。
【0061】
ここで、負荷分散装置16内のデータリンク入力部162aの動作について、図9のフローチャート及び図10のデータフォーマットを参照して説明する。まず、IF入力部161aからデータリンク入力部162aに入力される通信パケット(データリンク層パケット)は、データフォーマット上、図10(a)に示すパケット101と図10(b)に示すパケット102とに大別される。パケット101は、データリンク層ヘッダと、IPヘッダと、IPペイロードとを含む。IPヘッダとIPペイロードとから構成されるデータをIPパケットと呼ぶ。一方、パケット102は、データリンク層ヘッダと、ARP要求/応答(ARP要求またはARP応答)のデータとを含むARPパケット(ARP要求/応答パケット)である。パケット101及び102のデータリンク層ヘッダは、いずれも宛先MACアドレス及び送信元MACアドレスを含む。
【0062】
データリンク入力部162aは、IF入力部161aによって入力された通信パケットを受信すると、当該パケット(入力パケット)が図10(b)に示すフォーマットのARPパケット102であるかを判別する(ステップS51)。もし、入力パケットがARPパケット102であるならば、データリンク入力部162aは、当該ARPパケット102からデータリンク層ヘッダを除いた部分(ARP要求/応答)を、図10(c)に示すARPパケット103として代理ARP処理部167に送る(ステップS52)。
【0063】
一方、入力パケットがARPパケット102でないならば(ステップS51)、つまり図10(a)に示すフォーマットのパケット101であるならば、データリンク入力部162aは当該パケット101が、(図7に示すパケット転送要請パケット71に相当する)パケット転送要請パケットであるかを判定する(ステップS53)。もし、パケット101がパケット転送要請パケットであるならば、データリンク入力部162aは当該パケット101を、そのまま図10(d)に示すパケット転送要請パケット104としてパケット転送広告処理部165に送る(ステップS54)。パケット転送要請パケット104のIPペイロードは、パケット転送要請データを含む。
【0064】
また、パケット101がパケット転送要請パケットでもないならば(ステップS53)、データリンク入力部162aは当該パケット101が、(図7に示す登録要求パケット73に相当する)登録要求パケットであるかを判定する(ステップS55)。もし、パケット101が登録要求パケットであるならば、データリンク入力部162aは当該パケット101を、そのまま図10(e)に示す登録要求パケット105として登録処理部166に送る(ステップS56)。登録要求パケット105のIPペイロードには、有効期限(の値)を含む登録要求データが設定される。
【0065】
これに対し、パケット101が登録要求パケットでもないならば(ステップS55)、データリンク入力部162aは当該パケット101からデータリンク層ヘッダを除いた部分を、図10(f)に示すIPパケット106としてパケット転送処理部168に送る(ステップS57)。
【0066】
次に、負荷分散装置16内のデータリンク出力部162bの動作について、図11のフローチャート及び図12のデータフォーマットを参照して説明する。まずデータリンク出力部162bは、IP出力部163b、パケット転送広告処理部165、登録処理部166、代理ARP処理部167またはパケット転送処理部168から、図12に示すMACアドレス111とIPパケッ112とを受け取る。このMACアドレス111には、送信先MACアドレスが用いられる。データリンク出力部162bは、MACアドレス111とIPパケット112とから、データリンク層での通信に用いられる図12に示す通信パケット113を生成する(ステップS61)。このパケット113は、データリンク層ヘッダと、上記IPパケット112とから構成される。データリンク層ヘッダは、宛先MACアドレスと、送信元MACアドレスとを含む。データリンク出力部162bは生成された通信パケットをIF出力部161bに送る(ステップS62)。
【0067】
次に負荷分散装置16内のパケット転送広告処理部165の動作について、図13のフローチャート及び図14のデータフォーマットを参照して説明する。パケット転送広告処理部165は、データリンク入力部162aから、図14に示すデータリンク層ヘッダを含むパケット転送要請パケット141を受信する。パケット転送広告処理部165は、受信されたパケット転送要請パケット141の送信元IPアドレス(実サーバ12-iのIPアドレス)を使用して、(図7に示すパケット転送広告パケット72に相当する)図14に示すパケット転送広告パケット143を生成する(ステップS71)。このパケット転送広告パケット143の宛先IPアドレスには、パケット転送要請パケット141の送信元IPアドレスが用いられ、当該パケット転送広告パケット143の送信元IPアドレスには負荷分散装置16のIPアドレスが用いられる。パケット転送広告処理部165は、生成されたパケット転送広告パケット143を、パケット転送要請パケット141の送信元に送信するため、当該パケット転送広告パケット143と、パケット転送要請パケット141のデータリンク層ヘッダに含まれている送信元MACアドレス(実サーバ12-iのMACアドレス)とを、データリンク出力部162bに送る(ステップS72)。
【0068】
次に、負荷分散装置16内の登録処理部166の登録要求入力時の動作について、図15のフローチャート、図16の登録テーブルTBL1のデータ構造例及び図17のデータフォーマットを参照して説明する。登録処理部166は、データリンク入力部162aから(図7に示す登録要求パケット73または図10に示す登録要求パケット105に相当する)図17に示す登録要求パケット171が入力された場合、当該登録要求パケット171の示す登録要求が正当であるかを判定する(ステップS81)。登録要求が正当でない場合、登録処理部166は登録失敗を判定し、登録要求パケット171に設定されている送信元MACアドレスと送信元IPアドレスとの対を含むアドレス情報を登録テーブルTBL1から削除する(ステップS82)。登録要求が正当でない登録要求パケット171の例としては、予め定められた上限値(有効期限の最大値)を超える有効期限の値を含むものが挙げられる。なお、登録要求パケット171に設定されている送信元MACアドレスと送信元IPアドレスとに一致するMACアドレスとIPアドレスとを含むアドレス情報が登録テーブルTBL1に登録されていない場合、ステップS82では何も行われない。
【0069】
一方、登録要求パケット171の示す当該登録要求が正当である場合、登録処理部166は、登録要求パケット171中の登録要求データに含まれている有効期限の値が0であるかを判定する(ステップS83)。もし、有効期限の値が0であるならば、登録処理部166は、登録要求パケット171に設定されている送信元MACアドレス(実サーバ12-iのMACアドレス)と送信元IPアドレス(実サーバ12-iの通信パケット送受信用のIPアドレス、つまり実サーバ12-1乃至12-3に共通の通信パケット送受信用のIPアドレス)との対を含むアドレス情報を登録テーブルTBL1から削除する(ステップS82)。このことは、有効期限の値が0の登録要求パケット171が登録解除を要求するパケット(登録解除要求パケット)として用いられることを意味する。したがって実サーバ12-iは自身の障害が発生した場合に、この登録解除要求パケットを負荷分散装置16に送信して当該実サーバ12-iの障害を通知することで、クライアント11からの通信データが負荷分散装置16によって当該実サーバ12-iに転送されるのを防止できる。
【0070】
これに対して有効期限の値が0でないならば、登録処理部166は登録成功を判定し、登録要求パケット171に設定されている送信元MACアドレスと送信元IPアドレスとの対を含むアドレス情報を登録テーブルTBL1に追加登録する(ステップS84)。このアドレス情報は、登録要求パケット171の登録要求データ(IPペイロード)に含まれている有効期限のデータを含む。このように登録テーブルTBL1のエントリのデータは、MACアドレス、IPアドレス及び有効期限の項目を含む(図16参照)。有効期限は、負荷分散装置16による負荷分散の対象である実サーバにパケットを転送する期間を意味し、有効期限が超過すると当該有効期限を含むアドレス情報中のMACアドレスの実サーバに対するパケットの転送が停止される。なお、登録要求パケット171に設定されている送信元MACアドレスと送信元IPアドレスとに一致するMACアドレスとIPアドレスとを含むアドレス情報が既に登録テーブルTBL1に登録されている場合には、上記ステップS84では、当該アドレス情報の有効期限の値を、登録要求パケット171中の登録要求データに含まれている有効期限の値に変更(更新)する処理が行われる。
【0071】
登録処理部166は、ステップS82またはS84を実行すると、登録要求パケット171の送信元IPアドレス(実サーバ12-iのアドレス)を使用して、(図7に示す登録応答パケット74のIPパケットに相当する)図17に示す登録応答パケット(IPパケット)173を生成する(ステップS85)。この登録応答パケット173のIPペイロードには、登録結果のデータを含む登録応答データが設定される。ここで、登録失敗の場合には、登録結果のデータとして有効期限に問題があることを示すデータが用いられる。これに対し、登録成功の場合には、登録結果のデータとして登録成功を示すデータが用いられる。また、有効期限の値が0の登録要求パケット171に対応する登録応答パケット173では、登録結果のデータとして登録解除成功を示すデータが用いられる。
【0072】
登録応答パケット173の宛先IPアドレスには、登録要求パケット171の送信元IPアドレス(実サーバ12-iのIPアドレス)が用いられ、当該登録応答パケット173の送信元IPアドレスには負荷分散装置16のIPアドレスが用いられる。登録処理部166は、生成された登録応答パケット173を、登録要求パケット171の送信元に送信するため、当該登録応答パケット173と、図17に示す登録要求パケット171のデータリンク層ヘッダに含まれている送信元MACアドレス172、つまり登録要求パケット171の送信元MACアドレス172とを、データリンク出力部162bに送る(ステップS86)。
【0073】
図16の登録テーブルTBL1の例では、実サーバのIPアドレスとして、既に述べられている“192.168.10.11”の他に“192.168.10.110”も存在する。その理由について、図18を参照して説明する。
【0074】
本実施形態では、負荷分散装置16による負荷分散の対象となる実サーバ群(実サーバの集合)として、図1中の実サーバ12-1乃至12-3を含む実サーバ群#1の他に、図18に示すように実サーバ群#2も存在するものとする。但し、図18では作図の都合上、実サーバ12-3は省略されている。実サーバ群#2は、実サーバ12-5及び12-6を含む。実サーバ群#1に属する実サーバ12-1及び12-2等は、それぞれ共通の通信パケット送受信用のIPアドレス“192.168.10.11”を持つ。一方、実サーバ群#2に属する実サーバ12-5及び12-6等は、それぞれ共通の通信パケット送受信用のIPアドレス“192.168.10.110”を持つ。
【0075】
図18の例では、クライアント11からIPアドレス“192.168.10.11”宛ての通信パケット(通信データ)が矢印181で示されるように送信された場合、負荷分散装置16は当該通信データを実サーバ群#1に属するいずれかの実サーバに転送する。これに対して、クライアント11からIPアドレス“192.168.10.110”宛ての通信パケット(通信データ)が矢印182で示されるように送信された場合には、負荷分散装置16は当該通信データを実サーバ群#2に属するいずれかの実サーバに転送する。このように、実サーバ群毎に、その実サーバ群に属する全ての実サーバに共通の固有のIPアドレスが設定されることで、負荷分散装置16は各実サーバ群をそれぞれ負荷分散の対象として扱うことができる。
【0076】
登録処理部166は、定期的に登録テーブルTBL1を監視し、有効期限が0となっているエントリデータ(アドレス情報)を当該登録テーブルTBL1から削除する。この登録処理部166による登録テーブルTBL1の定期監視処理について図19のフローチャートを参照して説明する。ここでは、登録テーブルTBL1に登録されるエントリデータの有効期限の単位に秒が用いられ、当該テーブルTBL1の監視が1秒毎に実行されるものとする。
【0077】
登録処理部166は登録テーブルTBL1からエントリデータ(アドレス情報)を1つ取り出す(ステップS91)。登録処理部166は取り出されたデータに含まれている有効期限の値が0であるかを判定する(ステップS92)。
【0078】
もし、有効期限の値が0(0秒)の場合、登録処理部166は登録テーブルTBL1から該当するデータを削除する(ステップS93)。これに対し、有効期限の値が0でない場合、登録処理部166は登録テーブルTBL1の該当するデータに含まれている有効期限の値を1(1秒)減らす(ステップS94)。
登録処理部166は、上述の処理を、登録テーブルTBL1の全エントリデータに対して行い(ステップS95)、処理を終了する。
【0079】
さて実サーバ12-iは、登録要求パケットに対して負荷分散装置16から返される登録応答パケットから登録成功が確認できた場合、前記したように登録の有効期限以内の間隔で定期的に登録要求パケットを負荷分散装置16に送信する。これにより実サーバ12-iは、登録テーブルTBL1から当該実サーバ12-iのMACアドレスとIPアドレスとを含むデータが削除されるのを防ぎ、当該実サーバ12-iの登録を維持することができる。もし、実サーバ12-iに障害が発生して、登録要求パケットを定期的に送信することができなくなると、当該実サーバ12-iのMACアドレスとIPアドレスとを含むデータの登録有効期限が切れるため、負荷分散装置16の登録処理部166は登録テーブルTBL1から当該データを削除する(ステップS93)。つまり負荷分散装置16は、障害が発生したために登録要求を定期的に送信できなくなった実サーバ12-iを検知できる。これにより、障害の発生した実サーバ12-iにクライアント11からの通信データを転送することが防止できる。
【0080】
次に、負荷分散装置16内の代理ARP処理部167の動作について、図20のフローチャート及び図21のデータフォーマットを参照して説明する。代理ARP処理部167はデータリンク入力部162aから(図10に示すARPパケット103に相当する)ARPパケットを受信した場合、当該ARPパケットがARP応答パケットであるかを判定する(ステップS101)。もし、ARP応答パケットの場合、代理ARP処理部167は当該ARP応答パケットをIP入力部163aに送り、通常のTCP/IP通信データとして処理させる(ステップS102)。
【0081】
これに対し、ARPパケットがARP応答パケットでない場合、つまり図21に示すARP要求パケット211の場合、代理ARP処理部167は、当該ARP要求パケット211が、負荷分散装置16のIPアドレスに対するARP要求を示しているかを判定する(ステップS103)。このステップS103の判定は、ARP要求パケット211のターゲットIPアドレスが負荷分散装置16のアドレスと一致するかを判定することにより行われる。
【0082】
もし、ARP要求パケット211のターゲットIPアドレスが負荷分散装置16のアドレスと一致しているならば、代理ARP処理部167は当該ARP要求パケット211をそのままIP入力部163aに送り、通常のTCP/IP通信データとして処理させる(ステップS102)。
【0083】
一方、ARP要求パケット211のターゲットIPアドレスが負荷分散装置16のアドレスと一致していない場合、代理ARP処理部167は実サーバ12-iのIPアドレス(通信パケットの送受信用のIPアドレス、例えば“192.168.10.11”)に対するARP要求であるかを判定するために、登録テーブルTBL1上のIPアドレスをチェックする(ステップS104)。このステップS104において、代理ARP処理部167は、ARP要求パケット211のターゲットIPアドレスと一致するIPアドレスを含むデータを登録テーブルTBL1から探す。
【0084】
もし、ARP要求パケット211のターゲットIPアドレスと一致するIPアドレスを含むデータが存在する場合(ステップS105)、代理ARP処理部167はARP要求パケット211に対する図21に示すARP応答パケット213を作成する(ステップS106)。このARP応答パケット213には、送信元MACアドレスに負荷分散装置16のMACアドレスが設定され、送信元IPアドレスに登録テーブルTBL1で一致が判定されたIPアドレスが設定される。また、ターゲットMACアドレス及びターゲットIPアドレスには、それぞれARP要求パケット211の送信元MACアドレス及び送信元IPアドレスが設定される。
【0085】
代理ARP処理部167はARP応答パケット213を作成すると、当該ARP応答パケット213を、ARP要求パケット211の送信元に送信するため、当該ARP応答パケット213と、ARP要求パケット211の送信元MACアドレス212とを、データリンク出力部162bに送る(ステップS107)。
【0086】
一方、ARP要求パケット211のターゲットIPアドレスと一致するIPアドレスを含むデータが存在しない場合(ステップS105)、代理ARP処理部167はARP要求パケット211を破棄して処理を終了する(ステップS108)。
【0087】
次に、負荷分散装置16内のパケット転送処理部168の動作について、図22のフローチャート及び図23のデータフォーマットを参照して説明する。パケット転送処理部168はデータリンク入力部162aから(図10のIPパケット106に相当する)図23(a)に示すIPパケット231を受信した場合、当該パケット231の宛先IPアドレスをチェックし、負荷分散装置16宛てのパケットであるか否か(つまり実サーバに転送するパケットであるか)を判定する(ステップS111)。
【0088】
もし、IPパケット231が負荷分散装置16宛てであった場合、パケット転送処理部168は当該IPパケット231をそのままIP入力部163a送り、通常のTCP/IP通信データとして処理させる(ステップS112)。
【0089】
一方、IPパケット231が負荷分散装置16宛てではなくて、実サーバに転送するパケットである場合(ステップS111)、パケット転送処理部168は転送先(負荷分散先)の実サーバ12-iのMACアドレスを取得するために、当該IPパケット231を図23(b)に示すIPパケット232として負荷分散処理部169に送る(ステップS113)。
【0090】
パケット転送処理部168は、負荷分散処理部169から転送先のMACアドレスを図23に示すMACアドレス233として取得できた場合(ステップS114)、IPパケット231を図23(c)に示すIPパケット234として、取得されたMACアドレス233と共にデータリンク出力部162bに送る(ステップS115)。これに対し、転送先のMACアドレスの取得に失敗した場合、パケット転送処理部168はIPパケット231を破棄して処理を終了する(ステップS116)。
【0091】
このように本実施形態においては、負荷分散装置16をクライアント11からの実サーバ12-i宛ての通信データの中継だけでなく(ステップS115)、自身のアドレスで通常の通信を行わせることもできる(ステップS112)。
【0092】
次に、負荷分散装置16内の負荷分散処理部169の動作について、図24のフローチャート及び図25のセッション管理テーブルTBL2のデータ構造例を参照して説明する。負荷分散処理部169は、パケット転送処理部168から図23(b)のIPパケット232が送られると、当該IPパケット232の宛先IPアドレス(を含むアドレス情報)が登録テーブルTBL1上に存在するかをチェックすることにより、当該IPパケット232が負荷分散の対象となるパケットかを判定する(ステップS121)。
【0093】
もし、IPパケット232の宛先アドレスが登録テーブルTBL1上に存在しない場合、パケット転送処理部168は当該IPパケット232が実サーバに転送されないようにするため、パケット転送処理部168にエラーを返して処理を終了する(ステップS122)。
【0094】
一方、IPパケット232の宛先アドレスが登録テーブルTBL1上に存在する場合(ステップS121)、負荷分散処理部169は当該IPパケット232の転送先となる実サーバ12-iのMACアドレスを取得するため、セッション管理テーブルTBL2をチェックする(ステップS123)。
【0095】
セッション管理テーブルTBL2はセッション管理のために用意される。セッション管理テーブルTBL2のエントリデータ(エントリの集合)は、図25に示すように、実サーバ(実サーバ群)の通信パケット送受信用のIPアドレス別に用意され、クライアントのアドレス、実サーバのMACアドレス及び有効期限の値を持つものとする。
【0096】
セッション管理とは、コネクション型通信の場合、セッションが切れるまでの間同一のサーバに通信データを転送する必要があるため、当該セッションを保持しておく有効期限を設けて管理することを指す。有効期限の間に、クライアントからパケットの送信が無ければ、負荷分散処理部169はセッションが切れたと判断し、セッション管理テーブルTBL2から該当するエントリデータを削除する。またパケット転送処理部168から送られるIPパケット232が、TCPのFINパケットのように、明示的にセッション(コネクション)を停止(切断)するパケットの場合にも、負荷分散処理部169はセッションが切れたと判断して、セッション管理テーブルTBL2から該当するエントリデータを削除する。
【0097】
さて、上記ステップS123において、負荷分散処理部169は、セッション管理テーブルTBL2のうち、パケット転送処理部168から送られるIPパケット232の宛先アドレスに該当するエントリの集合から、当該IPパケット232の送信元IPアドレスがクライアントのIPアドレスと一致するエントリのデータ(アドレス情報)を検索する。
【0098】
もし、セッション管理テーブルTBL2に該当するエントリのデータ(アドレス情報)が存在する場合(ステップS123)、負荷分散処理部169は、パケット転送処理部168に転送先のMACアドレスを通知するため、当該エントリのデータからIPパケット232の送信元IPアドレスと対をなす実サーバ12-iのMACアドレスを取得する(ステップS124)。次に負荷分散処理部169は、IPパケット232がTCPのFINパケットであるかを判定する(ステップS125)。
【0099】
もし、IPパケット232がFINパケットである場合、負荷分散処理部169はセッション管理テーブルTBL2から該当するエントリのデータを削除する(ステップS126)。これに対し、IPパケット232がFINパケットでない場合、負荷分散処理部169はセッション管理テーブルTBL2の該当するエントリのデータに含まれている有効期限の値を初期値に設定する(ステップS127)。この初期値は必ずしも固定値である必要はなく、負荷分散装置16で変更可能なパラメータとしても良い。例えば、負荷分散装置16の管理者が環境に合わせて手動にて初期値を設定する構成であっても構わない。またこの初期値は、後述するセッション管理テーブル登録時に使用しても良い。
【0100】
一方、セッション管理テーブルTBL2に該当するエントリのデータが存在しない場合(ステップS123)、負荷分散処理部169は、登録テーブルTBL1(図16参照)上でIPパケット232の宛先IPアドレス(例えば“192.168.10.11”)と一致するIPアドレスを含むエントリのデータの中から、当該IPパケット232を転送すべき実サーバ12-iに関するエントリのデータを選択(決定)する(ステップS128)。どの実サーバが最適な転送先(負荷分散先)であるかを決定する方法は、本発明とは直接関係しないが、従来から種々知られている。例えば、クライアントとの間でセッションを張っている数の最も少ないサーバを選択する方法が知られている。この方法を適用した場合、実サーバのMACアドレス毎の登録テーブルTBL1のデータ数を計算すれば、転送先として最適な実サーバを決定できる。
【0101】
負荷分散処理部169は転送先の実サーバ12-iを選択(決定)すると、当該実サーバ12-iのIPアドレスを含む登録テーブルTBL1のエントリのデータから当該実サーバ12-iのMACアドレスを取得する(ステップS129)。そして負荷分散処理部169は、この実サーバ12-iのMACアドレス、IPパケット232の送信元IPアドレス(クライアントのIPアドレス)及びセッションを保持する有効期限を含むエントリデータをセッション管理テーブルTBL2に追加登録する(ステップS130)。これにより、IPパケット232の送信元と実サーバ12-iとのセッションが開始されることになる。ここでセッション管理テーブルTBL2に登録される有効期限は、負荷分散装置16で変更可能なパラメータとし、負荷分散装置16の管理者が環境に合わせて手動にて設定されるものとする。この有効期限の値が、上記ステップS127で設定される初期値と同一であっても構わない。
【0102】
負荷分散処理部169はステップS126,S127またはS130の後、MACアドレスをパケット転送処理部168に送って処理を終了する(ステップS131)。ここで、負荷分散処理部169からパケット転送処理部168に送られるMACアドレスは、IPパケット232の送信元IPアドレスがセッション管理テーブルTBL2に存在する場合(ステップS123のYESの場合)には、当該セッション管理テーブルTBL2から取得されたMACアドレスである。これに対し、IPパケット232の送信元IPアドレスがセッション管理テーブルTBL2に存在しない場合(ステップS123のNOの場合)には、負荷分散処理部169からパケット転送処理部168に送られるMACアドレスは、登録テーブルTBL1上から転送先として決定された実サーバ12-iのMACアドレスである。
【0103】
このように本実施形態では、負荷分散装置16においてセッション管理テーブルTBL2を用いることにより、レイヤ4のセッション管理が可能となる。特に本実施形態では、セッション管理テーブルTBL2に登録されるエントリデータが実サーバ群(実サーバの集合)毎に管理されるため、負荷分散装置16において複数の実サーバ群に対し負荷分散及びレイヤ4のセッション管理が可能となる。
【0104】
負荷分散処理部169は、定期的にセッション管理テーブルTBL2を監視し、有効期限が0となっていエントリデータを当該セッション管理テーブルTBL2から削除する。この負荷分散処理部169によるセッション管理テーブルTBL2の定期監視処理について図26のフローチャートを参照して説明する。ここでは、セッション管理テーブルTBL2に登録されるエントリデータの有効期限の単位に秒が用いられ、当該テーブルTBL2の監視が1秒毎に実行されるものとする。
【0105】
負荷分散処理部169はセッション管理テーブルTBL2からエントリデータ(アドレス情報)を1つ取り出す(ステップS141)。負荷分散処理部169は取り出されたデータに含まれている有効期限の値が0であるかを判定する(ステップS142)。
【0106】
もし、有効期限の値が0(0秒)の場合、負荷分散処理部169はセッション管理テーブルTBL2から該当するデータを削除する(ステップS143)。これに対し、有効期限の値が0でない場合、負荷分散処理部169はセッション管理テーブルTBL2の該当するデータに含まれている有効期限の値を1(1秒)減らす(ステップS144)。
負荷分散処理部169は、上述の処理を、セッション管理テーブルTBL2の全エントリデータに対して行い(ステップS145)、処理を終了する。
【0107】
さて、IP層処理部163内のIP入力部163a及びIP出力部163bと、上位プロトコル層の処理部であるトランスポート層処理部164とは、入力されたデータを通常のTCP/IP通信データとして処理する。これにより、負荷分散装置16のIPアドレスを使用した通常の通信が可能となる。
【0108】
図27は実サーバ12-iの構成を示すブロック図である。実サーバ12-iは、ネットワークIF(ネットワークインタフェース)121と、データリンク層処理部122と、IP層処理部123と、トランスポート層処理部124とを含む。また実サーバ12-iは、専用装置120-iと当該専用装置120-iによってアクセスされる登録テーブルTBL3とを含む。専用装置120-iは、実サーバ12-iのデータリンク層処理部122とIP層処理部123との中間に存在する。本実施形態における専用装置120-iは、当該実サーバ12-i上の通信を制御する専用のソフトウェアを、実サーバ12-i(のCPU)が読み取って実行することにより実現されるものとする。これにより、実サーバ12-i自体を専用装置としなくて済む。この専用装置120-iの存在により、従来の実サーバが有するデータリンク層処理部122及びIP層処理部123の間のパス、即ちデータリンク入力部122a及びIP入力部123aの間のパスと、IP出力部123b及びデータリンク出力部122bの間のパスは存在しない。
【0109】
ネットワークIF121は、実サーバ12-iが接続されているネットワーク14とのインタフェースをなす。ネットワークIF121は、IF入力部121aと、IF出力部121bとを有する。データリンク層処理部122は、データリンク入力部122aと、データリンク出力部122bとを有する。IP層処理部123は、IP入力部123aと、IP出力部123bとを有する。
【0110】
専用装置120-iは、データリンク層処理部122(オリジナルのデータリンク層処理部122)に相当するデータリンク層処理部125とIP層処理部123(オリジナルのIP層処理部123)に相当するIP層処理部126とから構成される。データリンク層処理部125は、データリンク入力部125aと、データリンク出力部125bとを含む。IP層処理部126は、IP入力部126aと、IP出力部126bと、登録処理部126cと、ARP処理部126dとを含む。
【0111】
次に、実サーバ12-iの専用装置120-iを中心とする動作について説明する。専用装置120-iは、実サーバ12-i上のオリジナルのデータリンク層処理部122から通信パケット(データリンク層ヘッダを含むデータリンク層パケット)を受信して、当該専用装置120-i内部でデータ処理を行い、実サーバ12-iのオリジナルのIP層処理部123にIPパケットを送る。また専用装置120-iは、実サーバ12-iのオリジナルのIP層処理部123から、IPパケットまたはARP要求パケットを受信して、当該専用装置120-i内部でデータ処理を行い、実サーバ12-iのオリジナルのデータリンク層処理部122にデータリンク層パケットを送る。
【0112】
次に、専用装置120-i内の各部の動作を順次説明する。
まず、専用装置120-i内のデータリンク入力部125aの動作について、図28のフローチャート、図29のデータフォーマット及び図30の登録テーブルTBL3のデータ構造例を参照して説明する。
【0113】
データリンク入力部125aは、実サーバ12-iのオリジナルのデータリンク層処理部122(のデータリンク入力部122a)から通信パケット(データリンク層パケット)を受け取る。データリンク入力部125aに入力される通信パケット(データリンク層パケット)は、データフォーマット上、図29(a)に示すパケット291と図29(b)に示すパケット292とに大別される。パケット291は、データリンク層ヘッダと、IPヘッダと、IPペイロードとを含む。IPヘッダとIPペイロードとから構成されるデータをIPパケットと呼ぶ。一方、パケット292は、データリンク層ヘッダと、ARP要求/応答(ARP要求またはARP応答)のデータとを含むARPパケット(ARP要求/応答パケット)である。パケット291及び292のデータリンク層ヘッダは、いずれも宛先MACアドレス及び送信元MACアドレスを含む。
【0114】
データリンク入力部125aは、データリンク入力部122aによって入力された通信パケット(入力パケット)を受信すると、当該パケットが図29(b)に示すフォーマットのARPパケット292であるかを判別する(ステップS151)。もし、入力パケットがARPパケット292であるならば、データリンク入力部125aは、当該ARPパケット292からデータリンク層ヘッダを除いた部分(ARP要求/応答)を、図29(c)に示すARPパケット293としてARP処理部126dに送る(ステップS152)。
【0115】
一方、入力パケットがARPパケット292でないならば(ステップS151)、つまり図29(a)に示すフォーマットのパケット291であるならば、データリンク入力部125aは当該パケット291が、(図7に示すパケット転送広告パケット72に相当する)パケット転送広告パケットであるかを判定する(ステップS153)。もし、パケット291がパケット転送広告パケットであるならば、データリンク入力部125aは当該パケット291を、そのまま図29(d)に示すパケット転送広告パケット294として登録処理部126cに送る(ステップS154)。パケット転送広告パケット294のIPペイロードは、パケット転送広告データを含む。
【0116】
これに対し、パケット291がパケット転送広告パケットでないならば(ステップS153)、データリンク入力部125aは当該パケット291が登録応答パケットであるかを判定する(ステップS155)。もし、パケット291が登録応答パケットであるならば、データリンク入力部125aは当該パケット291を、そのまま図29(e)に示す登録応答パケット295として登録処理部126cに送る(ステップS154)。
【0117】
一方、パケット291が登録応答パケットでもないならば(ステップS155)、データリンク入力部125aは登録テーブルTBL3上のデータをチェックし、当該パケット291中の送信元MACドレスが、登録テーブルTBL3上に存在するかを判定する(ステップS156)。登録テーブルTBL3のエントリのデータは、図30に示すように、IPアドレス、MACアドレス及び有効期限の項目を含む。登録テーブルTBL3は、負荷分散装置16への登録に成功しているかを示すのに用いられる。登録に成功している場合、IPアドレス、MACアドレス及び有効期限を含むエントリデータが登録テーブルTBL3に設定される。
【0118】
もし、パケット291中の送信元MACドレスが、登録テーブルTBL3上に存在する場合、データリンク入力部125aは当該パケット291からデータリンク層ヘッダを除いた部分、つまりIPパケットを抽出して、図29(f)に示すIPパケット296としてIP入力部123aに送る(ステップS157)。これに対し、パケット291中の送信元MACドレスが、登録テーブルTBL3上に存在しない場合(ステップS156)、データリンク入力部125aは当該パケット291を破棄する(ステップS158)。
【0119】
次に、専用装置120-i内のデータリンク出力部125bの動作について、図31のフローチャート及び図32のデータフォーマットを参照して説明する。データリンク出力部125bは、IP出力部126b、登録処理部126cまたはARP処理部126dから、送信先のMACアドレスとIPパケットとを受け取り、オリジナルのデータリンク層処理部122(のデータリンク出力部122b)に、当該MACアドレスとIPパケットとを送る(ステップS161)。ここで、IP出力部126b及び登録処理部126cからデータリンク出力部125bへは、図32(a)に示す送信先のMACアドレス321とIPパケット322とが送られる。この場合、データリンク出力部125bは、送信先のMACアドレス321とIPパケット322とを、それぞれ図32(c)に示す送信先のMACアドレス325とIPパケット326としてデータリンク層処理部122に送る。一方、ARP処理部126dからデータリンク出力部125bへは、図32(b)に示す送信先のMACアドレス323とARPパケット324とが送られる。この場合、データリンク出力部125bは、送信先のMACアドレス323とARPパケット324とを、それぞれ図32(d)に示す送信先のMACアドレス327とARPパケット328としてデータリンク層処理部122に送る。
【0120】
次に専用装置120-i内の登録処理部126cの動作について説明する。登録処理部126cは、主として以下の第1乃至第3の処理を行う。
(1)まず登録処理部126cは、負荷分散装置16への実サーバ12-iの登録を開始するため、専用装置120-iの起動時及び実サーバ12-iの管理者の操作により、パケット転送要請パケットを生成してデータリンク出力部125bに送信する(第1の処理)。
【0121】
(2)また登録処理部126cは、データリンク入力部125aからデータを受け取り、当該データがパケット転送広告の場合に、登録要求パケットを生成してデータリンク出力部125bに送信する。登録処理部126cは、この登録要求パケットに対する登録応答(登録応答パケット)を受信した場合に、登録テーブルTBL3にエントリデータを登録する(第2の処理)。
【0122】
(3)また登録処理部126cは、登録テーブルTBL3を定期的に監視し、有効期限がある値以下(但し0より大)になった場合に登録要求パケットを送信し、有効期限が0となった場合に当該登録テーブルTBL3から該当するデータを削除する(第3の処理)。
【0123】
次に、登録処理部126cによる上記第1の処理の詳細について、図33のフローチャート及び図34のデータフォーマットを参照して説明する。登録処理部126cは専用装置120-iの起動時に、負荷分散装置16への実サーバ12-iの登録を開始するため、図34に示すパケット転送要請パケット342を生成する(ステップS171)。このパケット転送要請パケット342のIPヘッダは、ブロードキャストまたはマルチキャストの宛先IPアドレスと送信元IPアドレスとを含む。この送信元IPアドレスには、専用装置120-iが置かれている実サーバ12-iの通信パケット送受信用のIPアドレスが用いられる。登録処理部126cは、生成されたパケット転送要請パケット342とブロードキャストのMACアドレス341とをデータリンク出力部125bに送る(ステップS172)。この処理は、上述した専用装置120-iの起動時だけでなく、実サーバ12-iの管理者が負荷分散装置16への登録が必要と判断した場合に特別の操作を行うことによっても実行される。
【0124】
次に、登録処理部126cによる上記第2の処理の詳細について、図35のフローチャート並びに図36及び図37のデータフォーマットを参照して説明する。この処理は、登録処理部126cがデータリンク入力部125aから通信パケットを受信した場合に実行される。
【0125】
登録処理部126cは、データリンク入力部125aから通信パケットを受信すると、当該パケットが(図29(d)の転送広告パケット294に相当する)図36に示すパケット転送広告パケット361であるか判定する(ステップS181)。もし、受信パケットがパケット転送広告パケット361である場合、登録処理部126cは当該パケット転送広告パケット361の送信元IPアドレス(負荷分散装置16のIPアドレス)を宛先IPアドレスに使用して、図36に示す登録要求パケット363を生成する(ステップS182)。この登録要求パケット363は、パケット転送の登録の有効期限の値を含む。この登録の有効期限の値を、実サーバ12-iの管理者が自身で判断して専用装置120-iに設定可能な構成とすることも可能である。
【0126】
登録処理部126cは登録要求パケット363を生成すると、受信パケット(パケット転送広告パケット361)の送信元MACアドレス(負荷分散装置16のMACアドレス)362と当該登録要求パケット363とを、データリンク出力部125bに送る(ステップS183)。
【0127】
一方、受信パケットがパケット転送広告パケット以外の場合、登録処理部126cは当該受信パケットが、(図29(e)の登録応答パケット295に相当する)図37に示す登録応答パケット371であるか判定する(ステップS184)。もし、受信パケットが登録応答パケット371以外の場合、登録処理部126cは当該受信パケットを破棄して処理を終了する(ステップS185)。
【0128】
これに対し、受信パケットが登録応答パケット371である場合、登録処理部126cは、当該登録応答パケット371の登録応答データに含まれている登録結果から登録成功かを判定する(ステップS186)。もし、登録成功の場合、登録処理部126cは、登録応答パケット371の送信元MACアドレス(負荷分散装置16のMACアドレス)と送信元IPアドレス(負荷分散装置16のIPアドレス)と有効期限とを含むエントリデータを登録テーブルTBL3に追加登録する(ステップS187)。ここで、有効期限には、上記ステップS183で登録要求パケット363を送信した際に当該パケット363に設定された値が用いられる。なお、登録解除成功の場合、登録処理部126cは上記ステップS187において、登録応答パケット371の送信元MACアドレスと送信元IPアドレスとを含むエントリデータを登録テーブルTBL3から削除する。
【0129】
一方、登録失敗の場合で(ステップS186)、その登録失敗の要因が有効期限にある場合、即ち登録応答パケット371の登録応答データに含まれている登録結果が有効期限に問題があることを示している場合(ステップS188)、登録処理部126cは前回送信した登録要求パケットよりも有効期限が短く設定された図37に示す新たな登録要求パケット373を生成する(ステップS189)。ここで、有効期限を短くするのに、必ず毎回ある一定の値を差し引く引く処理を行っても、前回送信した有効期限の値の一定の割り合いの時間を差し引く処理を行っても構わない。
【0130】
登録処理部126cは、新たな登録要求パケット373を生成すると(ステップS189)、受信パケット(登録応答パケット371)の送信元MACアドレス(負荷分散装置16のMACアドレス)372と当該登録要求パケット373とを、データリンク出力部125bに送る(ステップS190)。また、登録失敗が、有効期限以外の理由の場合(ステップS188)、登録処理部126cは受信パケットを破棄して処理を終了する(ステップS185)。
【0131】
次に、登録処理部126cによる上記第3の処理の詳細について、図38のフローチャート及び図39の登録テーブルTBL3のデータと登録処理部126cからの出力データとの関係を示す図を参照して説明する。ここでは、登録テーブルTBL3に登録されるエントリデータの有効期限の単位に秒が用いられ、当該テーブルTBL3の監視が1秒毎に実行されるものとする。
【0132】
登録処理部126cは登録テーブルTBL3からエントリデータ(アドレス情報)を1つ取り出す(ステップS191)。登録処理部126cは取り出されたデータに含まれている有効期限の値が0であるかを判定する(ステップS192)。
【0133】
もし、有効期限の値が0(0秒)の場合、登録処理部126cは登録テーブルTBL3から該当するデータを削除する(ステップS193)。これに対し、有効期限の値が0でない場合、登録処理部166は有効期限の値がある一定の閾値、例えば10(10秒)以下であるかを判定する(ステップS194)。
【0134】
もし、有効期限の値が0よりは大きいものの10以下であるならば、登録処理部126cは近い将来有効期限が到来して該当するエントリのデータが削除されるのを防止するために、新たな登録要求パケットを生成する(ステップS195)。これにより、図39の登録テーブルTBL3の例のように有効期限の値が9の場合であれば、登録要求パケット392が生成される。この登録要求パケット392の宛先IPアドレスには、登録テーブルTBL3中の該当するエントリのデータに含まれている負荷分散装置16のIPアドレスが用いられる。なお、新たな登録要求パケットを送信する条件となる有効期限の閾値は10秒に限らない。例えば、この閾値を有効期限の初期値の1/2としても構わない。
【0135】
登録処理部126cは、登録テーブルTBL3中の該当するエントリのデータに含まれている負荷分散装置16のMACアドレス391と生成された登録要求パケット392とをデータリンク出力部125bに送る(ステップS196)。この登録要求パケット392が負荷分散装置16で受信されることにより、登録テーブルTBL1の該当するエントリのデータに設定されている有効期限の値を、当該登録要求パケット392中に設定されている値に更新することができる。
【0136】
登録処理部126cは上記ステップS196を実行すると、登録テーブルTBL3の該当するデータに含まれている有効期限の値を1(1秒)減らす(ステップS197)。一方、有効期限の値が10よりも大きい場合には(ステップS194)、登録処理部126cは上記ステップS195及びS196をスキップして、上記ステップS197を実行する。
【0137】
次に、専用装置120-i内のARP処理部126dの動作について図40のフローチャート並びに図41及び図42のデータフォーマットを参照して説明する。ARP処理部126dには、IP出力部126bまたはデータリンク入力部125aから、ARPパケット(ARP要求パケットまたはARP応答パケット)が送られる。ARP処理部126dはARPパケットを受信すると、当該ARPパケットが図41に示すARP要求パケット411であるか或いは図42に示すARP応答パケット421であるかを判定する(ステップS201)。
【0138】
受信ARPパケットがARP要求パケット411である場合、当該ARP要求パケット411の送信元のMACアドレスとIPアドレスとが、実サーバ12-iのMACアドレスとIPアドレス(通信パケット送受信用のIPアドレス“192.168.10.11”)と一致するか判定する(ステップS202)。
【0139】
もし、MACアドレスとIPアドレスの各々が一致する場合、受信ARPパケットがIP出力部126bから送られてきたARP要求パケット411であることから、ARP処理部126dは当該ARP要求パケット411の送信元IPアドレスを通信パケット送受信用のIPアドレス“192.168.10.11”からARP送信用のIPアドレス“192.168.10.12”に書き換えることで、ARP要求パケット411を図41に示すARP要求パケット413に変換する(ステップS204)。ARP処理部126dは、このIPアドレスが書き換えられたARP要求パケット413とMACアドレス412とをデータリンク出力部125bに送る(ステップS204)。このMACアドレス412には、ARP要求であるためブロードキャストアドレスが用いられる。
【0140】
これに対し、受信ARP要求パケット411の送信元のMACアドレスが実サーバ12-iのMACアドレスと一致しないか、或いは受信ARP要求パケット411の送信元のIPアドレスが実サーバ12-iのIPアドレスと一致しない場合(ステップS202)、ARP処理部126dは当該ARP要求パケット411を破棄して処理を終了する(ステップS205)。
【0141】
一方、受信ARPパケットがARP応答パケット421である場合(ステップS201)、当該ARP応答パケット421中のターゲットMACアドレス及びターゲットIPアドレスが、それぞれ実サーバ12-iのMACアドレス及びARP送信用のIPアドレス“192.168.10.12”と一致するか判定する(ステップS206)。もし、MACアドレス及びIPアドレスの各々が一致する場合、受信ARPパケットがデータリンク入力部125aから送られてきたARP応答パケット421であることから、ARP処理部126dは当該ARP応答パケット421のターゲットIPアドレスをARP送信用のIPアドレス“192.168.10.12”から通信パケット送受信用のIPアドレス“192.168.10.11”に書き換えることで、ARP応答パケット421を図42に示すARP応答パケット422に変換する(ステップS207)。ARP処理部126dは、このIPアドレスが書き換えられたARP応答パケット422をIP入力部126aに送る(ステップS208)。
【0142】
これに対し、受信ARP応答パケット421中のターゲットMACアドレスが実サーバ12-iのMACアドレスと一致しないか、或いは受信ARP応答パケット421中のターゲットIPアドレスが実サーバ12-iのARP送信用のIPアドレスと一致しない場合(ステップS206)、ARP処理部126dは当該ARP応答パケット421を破棄して処理を終了する(ステップS209)。
【0143】
次に専用装置120-i内のIP入力部126aの動作について、図43のフローチャート及び図44のデータフォーマットを参照して説明する。IP入力部126aには、IP入力部126aまたはARP処理部126dから、それぞれ図44(a)に示すIPパケット441または(図42のARP応答パケット422に相当する)図44(b)に示すARP応答パケット442が送られる。
【0144】
IP入力部126aは、IP入力部126aまたはARP処理部126dから送られたIPパケット441またはARP応答パケット442を受信すると、当該IPパケット441またはARP応答パケット442を、それぞれ図44(c)に示すIPパケット443または図44(d)に示すARP応答パケット444として、実サーバ12-i上のオリジナルのIP層処理部123(のIP入力部123a)に送り処理を終了する(ステップS211)。
【0145】
次に専用装置120-i内のIP出力部126bの動作について、図45のフローチャート及び図46のデータフォーマットを参照して説明する。IP出力部126bには、実サーバ12-i上のオリジナルのIP層処理部123(のIP出力部123b)から、図46(a)に示すIPパケット462と送信先のMACアドレス461、または図46(b)に示すARP要求パケット464と送信先のMACアドレス462が送られる。
【0146】
IP出力部126bは、IP層処理部123から送られた通信パケットを受信すると、当該受信パケットがARPパケット(ARP要求パケット)であるか判定する(ステップS221)。
【0147】
もし、受信パケットが図46(b)に示すARPパケット(ARP要求パケット)464である場合、IP出力部126bは当該ARPパケット(ARP要求パケット)464を図46(c)に示すARPパケット(ARP要求パケット)465としてARP処理部126dに送って処理を終了する(ステップS222)。
【0148】
これに対し、受信パケットがARPパケットでない場合、即ち図46(a)に示すIPパケット462である場合、IP出力部126bは、IP層処理部123から受け取ったMACアドレス461及び当該IPパケット462を、それぞれ図46(d)に示すMACアドレス466及びIPパケット467としてデータリンク出力部125bに送って処理を終了する(ステップS223)。
【0149】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【0150】
【図1】本発明の一実施形態に係る負荷分散システムの基本構成と動作原理を説明するための図。
【図2】図1のシステムにおいて、クライアント11から負荷分散装置16を中継して実サーバ12-iに通信パケットを送信する方法と、負荷分散装置16を中継せずに、実サーバ12-i(=12-1)からクライアント11に通信パケットを送信する方法を説明するための図。
【図3】代理ARPにより負荷分散装置16のMACアドレスで作成されたARPテーブル110のデータが、実サーバ12-iのMACアドレスに書き換えられる例を示す図。
【図4】代理ARPにより負荷分散装置16のMACアドレスで作成されたARPテーブル110のデータが、実サーバ12-iのMACアドレスに書き換えられない例を示す図。
【図5】図1のシステムの動作を整理して示すシーケンスチャート。
【図6】負荷分散装置16上に、実サーバのIPアドレスとMACアドレスとの対を含むアドレス情報を保持するテーブルを自動で作成する方法を説明するためのシーケンスチャート。
【図7】パケット転送要請パケット71、パケット転送広告パケット72、登録要求パケット73及び登録応答パケット74の間のアドレスの流れを示す図。
【図8】負荷分散装置16の構成を示すブロック図。
【図9】負荷分散装置16内のデータリンク入力部162aの動作を説明するためのフローチャート。
【図10】データリンク入力部162aに入力されるデータ及び当該データリンク入力部162aから出力されるデータのフォーマットを示す図。
【図11】負荷分散装置16内のデータリンク出力部162bの動作を説明するためのフローチャート。
【図12】データリンク出力部162bに入力されるデータ及び当該データリンク出力部162bから出力されるデータのフォーマットを示す図。
【図13】負荷分散装置16内のパケット転送広告処理部165の動作を説明するためのフローチャート。
【図14】パケット転送広告処理部165に入力されるデータ及び当該パケット転送広告処理部165から出力されるデータのフォーマットを示す図。
【図15】負荷分散装置16内の登録処理部166の登録要求入力時の動作を説明するためのフローチャート。
【図16】登録テーブルTBL1のデータ構造例を示す図。
【図17】登録処理部166に入力されるデータ及び当該登録処理部166から出力されるデータのフォーマットを示す図。
【図18】負荷分散装置16による負荷分散の対象となる実サーバ群が2組存在する場合の、通信データの宛先IPアドレスと負荷分散装置16の動作との関係を説明するための図。
【図19】登録処理部166による登録テーブルTBL1の定期監視処理を説明するためのフローチャート。
【図20】負荷分散装置16内の代理ARP処理部167の動作を説明するためのフローチャート。
【図21】代理ARP処理部167に入力されるデータ及び当該代理ARP処理部167から出力されるデータのフォーマットを示す図。
【図22】負荷分散装置16内のパケット転送処理部168の動作を説明するためのフローチャート。
【図23】パケット転送処理部168に入力されるデータ及び当該パケット転送処理部168から出力されるデータのフォーマットを示す図。
【図24】負荷分散装置16内の負荷分散処理部169の動作を説明するためのフローチャート。
【図25】セッション管理テーブルTBL2のデータ構造例を示す図。
【図26】負荷分散処理部169によるセッション管理テーブルTBL2の定期監視処理を説明するためのフローチャート。
【図27】実サーバ12-iの構成を示すブロック図。
【図28】専用装置120-i内のデータリンク入力部125aの動作を説明するためのフローチャート。
【図29】データリンク入力部125aに入力されるデータ及び当該データリンク入力部125aから出力されるデータのフォーマットを示す図。
【図30】登録テーブルTBL3のデータ構造例を示す図。
【図31】専用装置120-i内のデータリンク出力部125bの動作を説明するためのフローチャート。
【図32】データリンク出力部125bに入力されるデータ及び当該データリンク出力部125bから出力されるデータのフォーマットを示す図。
【図33】登録処理部126cによる第1の処理を説明するためのフローチャート。
【図34】登録処理部126cに入力されるデータ及び当該登録処理部126cから出力されるデータのフォーマットを示す図。
【図35】登録処理部126cによる第2の処理を説明するためのフローチャート。
【図36】登録処理部126cによるパケット転送広告受信時の入出力データのフォーマットを示す図。
【図37】登録処理部126cによる登録応答受信時の入出力データのフォーマットを示す図。
【図38】登録処理部126cによる第3の処理を説明するためのフローチャート。
【図39】登録テーブルTBL3のデータと登録処理部126cからの出力データとの関係を示す図。
【図40】専用装置120-i内のARP処理部126dの動作を説明するためのフローチャート。
【図41】ARP処理部126dに入力されるデータがARP要求パケットである場合の、当該ARP要求パケットと当該ARP処理部126dから出力されるデータとの関係を示す図。
【図42】ARP処理部126dに入力されるデータがARP応答パケットである場合の、当該ARP応答パケットと当該ARP処理部126dから出力されるデータとの関係を示す図。
【図43】専用装置120-i内のIP入力部126aの動作を説明するためのフローチャート。
【図44】IP入力部126aに入力されるデータ及び当該IP入力部126aから出力されるデータのフォーマットを示す図。
【図45】専用装置120-i内のIP出力部126bの動作を説明するためのフローチャート。
【図46】IP出力部126bに入力されるデータ及び当該IP出力部126bから出力されるデータのフォーマットを示す図。
【符号の説明】
【0151】
11…クライアント、12-1〜12-3,12-5,12-6,12-i…実サーバ、13,14…ネットワーク、16…負荷分散装置、121,161…ネットワークIF、122,125,162…データリンク層処理部、122a…IP入力部、122b…データリンク出力部、123,126,163…IP層処理部、123a,126a,163a…IP入力部、123b…IP出力部、124,164…トランスポート層処理部、125a…データリンク入力部(受信手段、第1の受信手段)、125b…データリンク出力部(送信手段、第2の送信手段)、126b…IP出力部(第2の受信手段)、126c,166…登録処理部、126d…ARP処理部、162a…データリンク入力部(受信手段)、162b…データリンク出力部(送信手段、第1の送信手段)、163b…IP出力部、165…パケット転送広告処理部、167…代理ARP処理部、168…パケット転送処理部、169…負荷分散処理部、TBL1,TBL3…登録テーブル、TBL2…セッション管理テーブル。

【特許請求の範囲】
【請求項1】
複数のクライアントにサービスを提供する複数の実サーバであって、当該複数の実サーバに共通の第1のIPアドレスを持つ複数の実サーバと、
前記複数の実サーバとネットワークアドレスが同一のセグメントに存在し、前記複数のクライアントの各々からのサービス要求を前記複数の実サーバに割り振る負荷分散装置とを具備し、
前記負荷分散装置は、
通信データを受信する受信手段であって、前記クライアントからの前記第1のIPアドレスを宛先IPアドレスとする実サーバ宛ての通信データを代理で受信する受信手段と、
通信データを送信する第1の送信手段と、
前記複数の実サーバの中から、前記受信手段によって代理で受信された通信データを転送すべき実サーバを選択する負荷分散処理手段と、
前記受信手段によって代理で受信された通信データを前記負荷分散処理手段によって選択された実サーバの物理アドレス宛てに前記第1の送信手段によって転送させる転送処理手段とを有し、
前記複数の実サーバの各々は、
前記第1のIPアドレスとは異なるアドレス解決プロトコル要求送信用の第2のIPアドレスで前記クライアントの物理アドレスを取得するためのアドレス解決を行うアドレス解決プロトコル処理手段と、
前記アドレス解決プロトコル処理手段による前記アドレス解決により決定された物理アドレスに対し前記第1のIPアドレスを送信元IPアドレスとする通信データを送信する第2の送信手段とを有する
ことを特徴とする負荷分散システム。
【請求項2】
前記負荷分散装置は、前記クライアントからの前記第1のIPアドレスに対するアドレス解決プロトコル要求に対して前記負荷分散装置の物理アドレスを含む代理アドレス解決プロトコル応答を返す代理アドレス解決プロトコル処理手段を更に有し、
前記負荷分散装置の前記受信手段は、前記代理アドレス解決プロトコル応答により前記クライアントに返された前記負荷分散装置の物理アドレス宛てに当該クライアントから前記第1のIPアドレスで通信データが送信された場合に、当該通信データを受信する
ことを特徴とする請求項1記載の負荷分散システム。
【請求項3】
前記実サーバの前記アドレス解決プロトコル処理手段は、前記クライアントからの前記第1のIPアドレスに対するアドレス解決プロトコル要求に対して応答しないことを特徴とする請求項1記載の負荷分散システム。
【請求項4】
前記負荷分散装置は、サービス要求を割り振る対象となる前記複数の実サーバの物理アドレスと前記第1のIPアドレスとを含むエントリデータを格納する負荷分散装置側登録テーブルを更に有し、
前記負荷分散装置の前記負荷分散処理手段は、前記負荷分散装置側登録テーブルから、前記受信手段によって受信された通信データの前記宛先IPアドレスと一致するIPアドレスを含むエントリデータを抽出し、当該抽出されたエントリデータに含まれている物理アドレスの中から前記通信データを転送すべき実サーバの物理アドレスを選択することを特徴とする請求項1記載の負荷分散システム。
【請求項5】
前記負荷分散装置の前記受信手段は、前記負荷分散装置のIPアドレスを宛先IPアドレスとする通信データをも受信し、
前記負荷分散装置の前記転送処理手段は、前記受信手段によって通信データが受信された場合、当該通信データの宛先IPアドレスが前記負荷分散装置自身のIPアドレスと一致するか判定する手段と、前記負荷分散装置自身のIPアドレスと一致する場合、前記通信データをインターネットプロトコル層及び上位のプロトコル層に受け渡す手段と、前記負荷分散装置自身のIPアドレスと一致しない場合、前記通信データを前記負荷分散処理手段に渡して当該負荷分散処理手段により転送先の物理アドレスを選択させる手段と、前記通信データを転送すべき実サーバの物理アドレスが前記負荷分散処理手段によって選択できなかった場合、前記通信データを破棄する手段とを含むことを特徴とする請求項4記載の負荷分散装置。
【請求項6】
前記負荷分散装置は、前記第1のIPアドレスを宛先IPアドレスとする実サーバ宛ての通信データの送信元のIPアドレスと当該通信データの転送先の実サーバの物理アドレスと有効期限のデータとを含むエントリデータが登録されるセッション管理テーブルを更に有し、
前記負荷分散装置の前記負荷分散処理手段は、前記負荷分散装置の前記転送処理手段から前記実サーバ宛ての通信データが受け渡された場合、当該通信データの送信元IPアドレスを含むエントリデータが前記セッション管理テーブルに存在するかを判定する手段と、前記通信データの送信元IPアドレスを含むエントリデータが前記セッション管理テーブルに存在しないならば、当該通信データの送信元IPアドレスと所定の有効期限を含むエントリデータを前記セッション管理テーブルに追加登録することでセッションの開始とする手段と、前記通信データの送信元IPアドレスを含むエントリデータが前記セッション管理テーブルに存在するならば、セッションが保持されているものとして当該エントリデータに含まれている有効期限の値を前記所定の有効期限の値に戻す手段と、前記通信データがセッション終了を意味するデータである場合、前記セッション管理テーブル上の該当するエントリデータを削除する手段とを含むことを特徴とする請求項5記載の負荷分散システム。
【請求項7】
前記負荷分散装置の前記負荷分散処理手段は、前記セッション管理テーブルを定期的に監視して、その都度当該セッション管理テーブルに登録されている前記エントリデータの有効期限の値を減らし、当該有効期限が切れたデータを当該セッション管理テーブルから削除する手段を含むことを特徴とする請求項6記載の負荷分散システム。
【請求項8】
前記第1のIPアドレスを持つ複数の実サーバの集合とは別に、前記第1のIPアドレスとは異なる第1のIPアドレスを共通に持つ複数の実サーバの集合を少なくとも1つ有しており、
前記セッション管理テーブルのエントリデータは、前記実サーバの集合毎に、当該集合に固有の前記第1のIPアドレスに関連付けられており、
前記負荷分散装置の前記負荷分散処理手段は、前記負荷分散装置の前記転送処理手段から前記実サーバ宛ての通信データが受け渡された場合、当該通信データの宛先IPアドレスに基づいて、前記負荷分散処理手段の前記判定する手段による判定のために参照すべき前記セッション管理テーブル内のエントリデータの集合を特定する
ことを特徴とする請求項6記載の負荷分散システム。
【請求項9】
前記複数の実サーバの各々は、
前記負荷分散装置の物理アドレスを含むエントリデータを格納するサーバ側登録テーブルと、
TCP/IP通信におけるデータリンク層の処理を行うデータリンク層処理手段と、
前記TCP/IP通信におけるIP層の処理を行うIP層処理手段と、
前記データリンク層処理手段から前記IP層処理手段に送るべき通信データを当該IP層処理手段に代わり受信する第1の受信手段であって、受信された通信データがIPパケットの場合、前記サーバ側登録テーブルに登録されている物理アドレスを送信元アドレスとするパケットのみを前記IP層処理手段に送る第1の受信手段と、
前記第2の送信手段を含み、前記IP層処理手段から前記データリンク層処理手段に送るべき通信データを前記データリンク層処理手段に代わり受信する第2の受信手段であって、受信された通信データがIPパケットの場合、当該IPパケットをそのまま前記データリンク層処理手段に送る第2の受信手段とを更に有し、
前記実サーバの前記アドレス解決プロトコル処理手段は、前記第1の受信手段によって受信された通信データがターゲットIPアドレス及びターゲット物理アドレスを含むアドレス解決プロトコル応答パケットであって、前記ターゲットIPアドレスが前記第2のIPアドレスで、且つターゲット物理アドレスが前記実サーバの物理アドレスである場合に、前記ターゲットIPアドレスを前記第1のIPアドレスに変換する手段と、前記ターゲットIPアドレスが前記第1のIPアドレスに変換された前記アドレス解決プロトコル応答パケットを前記IP層処理手段に送る手段と、前記ターゲットIPアドレスが前記第2のIPアドレスでないか、或いは前記ターゲット物理アドレスが前記実サーバの物理アドレスでない場合に、前記アドレス解決プロトコル応答パケットを破棄する手段と、前記第2の受信手段によって受信された通信データがターゲットIPアドレス及びターゲット物理アドレスを含むアドレス解決プロトコル要求パケットであって、前記ターゲットIPアドレスが前記第1のIPアドレスで、且つターゲット物理アドレスが前記実サーバの物理アドレスである場合に、送信元IPアドレスを前記第2のIPアドレスに変換する手段と、前記ターゲットIPアドレスが前記第2のIPアドレスに変換された前記アドレス解決プロトコル要求パケットを前記データリンク層処理手段に送る手段と、前記ターゲットIPアドレスが前記第1のIPアドレスでないか、或いは前記ターゲット物理アドレスが前記実サーバの物理アドレスでない場合に、前記アドレス解決プロトコル要求パケットを破棄する手段とを含む
ことを特徴とする請求項4記載の負荷分散システム。
【請求項10】
前記負荷分散装置は、
前記実サーバと互いに物理アドレス及びIPアドレスの対を交換するため、ブロードキャストもしくはマルチキャストのIPパケットを含むパケット転送要請が送られた場合、前記パケット転送要請の送信元アドレスに対してIPパケットを含むパケット転送広告を前記第1の送信手段により送信させるパケット転送広告処理手段と、
前記パケット転送広告に応じて前記パケット転送要請の送信元の前記実サーバから登録要求が送られた場合、当該登録要求の送信元の前記実サーバの物理アドレスとIPアドレスとを含むエントリデータを前記負荷分散装置側登録テーブルに追加登録すると共に、当該登録の結果を前記パケット転送要請の送信元の前記サーバに通知するためのIPパケットを含む登録応答を前記第1の送信手段により送信させる登録処理手段とを更に有し、
前記実サーバは、前記負荷分散装置と互いに物理アドレス及びIPアドレスの対を交換するため、ブロードキャストもしくはマルチキャストのIPパケットを含む前記パケット転送要請を前記第2の送信手段により送信させると共に、前記パケット転送要請に応じて前記負荷分散装置から前記パケット転送広告が送られた場合、前記パケット転送広告の送信元IPアドレスを宛先IPアドレスとするIPパケットを含む前記登録要求を前記第2の送信手段により送信させ、前記登録要求に応じて前記負荷分散装置から前記登録応答が送られた場合、前記サーバ側登録テーブルに前記負荷分散装置の物理アドレスを含むエントリデータを登録する登録処理手段を更に有する
ことを特徴とする請求項9記載の負荷分散システム。
【請求項11】
前記実サーバから送られる前記登録要求は登録の有効期限のデータを含み、
前記負荷分散装置の前記登録処理手段は、前記実サーバから前記登録要求が送られた場合、当該登録要求に含まれている前記有効期限のデータの示す値が正当であるならば、当該登録要求の送信元の前記実サーバの物理アドレスとIPアドレスと前記有効期限の値とを含むエントリデータを前記負荷分散装置側登録テーブルに追加登録し、当該登録要求の送信元の前記実サーバの物理アドレスとIPアドレスとを含むエントリデータが既に登録済みであれば当該エントリデータ中の有効期限の値を当該登録要求に含まれている前記有効期限のデータの示す値に変更する手段と、前記登録要求に含まれている前記有効期限のデータの示す値が正当でないならば、前記負荷分散装置側登録テーブルへの前記ユーザデータの登録を控え、当該登録要求の送信元の前記実サーバの物理アドレスとIPアドレスとを含むエントリデータが既に登録済みであれば当該エントリデータを前記負荷分散装置側登録テーブルから削除する手段と、前記第1の送信手段により送信させる前記登録応答として、前記負荷分散装置側登録テーブルへの登録の成功または失敗を表す登録結果のデータを含む前記登録応答を生成する手段とを含み、
前記実サーバの前記登録処理手段は、前記パケット転送要請に応じて前記負荷分散装置から前記パケット転送広告が送られた場合、前記有効期限のデータを含む前記登録要求を前記第2の送信手段により送信させる手段と、前記登録要求に応じて前記負荷分散装置から前記登録結果のデータを含む前記登録応答が送られた場合、当該登録応答の送信元の前記負荷分散装置の物理アドレスとIPアドレスと前記登録要求に含まれている前記有効期限の値とを含むエントリデータを前記サーバ側登録テーブルに追加登録し、当該登録応答の送信元の前記負荷分散装置の物理アドレスとIPアドレスとを含むエントリデータが既に登録済みであれば当該エントリデータ中の有効期限の値を前記登録要求に含まれている前記有効期限の値に変更する手段と、前記登録応答に含まれている前記登録結果のデータにより登録失敗が示されている場合、前記登録要求に含まれている有効期限より短い値に変更された新たな登録要求を前記第2の送信手段により再度送信させる手段とを含む
ことを特徴とする請求項10記載の負荷分散システム。
【請求項12】
前記負荷分散装置の前記登録処理手段は、前記負荷分散装置側登録テーブルを定期的に監視して、その都度当該負荷分散装置側登録テーブルに登録されている前記エントリデータの有効期限の値を減らし、当該有効期限が切れたデータを当該負荷分散装置側登録テーブルから削除する手段を含むことを特徴とする請求項11記載の負荷分散システム。
【請求項13】
前記実サーバの前記登録処理手段は、前記サーバ側登録テーブルを定期的に監視して、その都度当該サーバ側登録テーブルに登録されている前記エントリデータの有効期限の値を減らし、当該有効期限が切れたデータを当該サーバ側登録テーブルから削除する手段を含むことを特徴とする請求項11記載の負荷分散システム。
【請求項14】
前記負荷分散装置の前記登録処理手段は、前記実サーバから登録解除を示す登録要求として登録解除要求が送られた場合、当該登録解除要求の送信元の前記実サーバの物理アドレスとIPアドレスとを含むエントリデータを前記負荷分散装置側登録テーブルから削除する手段を含み、
前記登録応答を生成する手段は、前記登録解除要求に対する前記登録応答として、登録解除成功を表す登録結果のデータを含む登録応答を生成し、
前記実サーバの前記登録処理手段は、前記登録解除要求を前記第2の送信手段により送信させる手段と、前記登録解除要求に応じて前記負荷分散装置から前記登録解除成功を表す登録結果のデータを含む前記登録応答が送られた場合、当該登録応答の送信元の前記負荷分散装置の物理アドレスとIPアドレスとを含むエントリデータを前記サーバ側登録テーブルから削除する手段とを含む
ことを特徴とする請求項11記載の負荷分散システム。
【請求項15】
複数のクライアントにサービスを提供する複数の実サーバとネットワークアドレスが同一のセグメントに存在し、前記複数のクライアントの各々からのサービス要求を前記複数の実サーバに割り振る負荷分散装置であって、
前記クライアントからの前記第1のIPアドレスに対するアドレス解決プロトコル要求に対して前記負荷分散装置の物理アドレスを含む代理アドレス解決プロトコル応答を返す代理アドレス解決プロトコル処理手段と、
通信データを受信する受信手段であって、前記代理アドレス解決プロトコル応答により前記クライアントに返された前記負荷分散装置の物理アドレス宛てに当該クライアントから前記第1のIPアドレスで通信データが送信された場合に、当該通信データを代理で受信する受信手段と、
通信データを送信する送信手段と、
前記複数の実サーバの中から、前記受信手段によって代理で受信された通信データを転送すべき実サーバを選択する負荷分散処理手段と、
前記受信手段によって代理で受信された通信データを前記負荷分散処理手段によって選択された実サーバの物理アドレス宛てに前記送信手段によって転送させる転送処理手段と
を具備することを特徴とする負荷分散装置。
【請求項16】
負荷分散装置によって割り振られた複数のクライアントの各々からのサービス要求に応じて当該クライアントにサービスを提供する、前記負荷分散装置とネットワークアドレスが同一のセグメントに存在し、且つ共通の第1のIPアドレスを持つ複数の実サーバの集合に属する実サーバであって、
前記クライアントからの前記第1のIPアドレスを宛先IPアドレスとする実サーバ宛ての通信データが前記負荷分散装置で代理で受信されて、当該負荷分散装置による振り分けで当該代理で受信された通信データが自身の物理アドレス宛てに送信された場合に、当該通信データを受信する受信手段と、
前記第1のIPアドレスとは異なるアドレス解決プロトコル要求送信用の第2のIPアドレスで前記クライアントの物理アドレスを取得するためのアドレス解決を行うアドレス解決プロトコル処理手段と、
前記アドレス解決プロトコル処理手段による前記アドレス解決により決定された物理アドレスに対し前記第1のIPアドレスを送信元IPアドレスとする通信データを送信する送信手段と
を具備することを特徴とする実サーバ。
【請求項17】
前記負荷分散装置の物理アドレスを含むエントリデータを格納するサーバ側登録テーブルと、
TCP/IP通信におけるデータリンク層の処理を行うデータリンク層処理手段と、
前記TCP/IP通信におけるIP層の処理を行うIP層処理手段と、
前記受信手段を含み、前記データリンク層処理手段から前記IP層処理手段に送るべき通信データを当該IP層処理手段に代わり受信する第1の受信手段であって、受信された通信データがIPパケットの場合、前記サーバ側登録テーブルに登録されている物理アドレスを送信元アドレスとするパケットのみを前記IP層処理手段に送る第1の受信手段と、
前記IP層処理手段から前記データリンク層処理手段に送るべき通信データを前記データリンク層処理手段に代わり受信する第2の受信手段であって、受信された通信データがIPパケットの場合、当該IPパケットをそのまま前記データリンク層処理手段に送る第2の受信手段とを更に具備し、
前記アドレス解決プロトコル処理手段は、前記第1の受信手段によって受信された通信データがターゲットIPアドレス及びターゲット物理アドレスを含むアドレス解決プロトコル応答パケットであって、前記ターゲットIPアドレスが前記第2のIPアドレスで、且つターゲット物理アドレスが前記実サーバの物理アドレスである場合に、前記ターゲットIPアドレスを前記第1のIPアドレスに変換する手段と、前記ターゲットIPアドレスが前記第1のIPアドレスに変換された前記アドレス解決プロトコル応答パケットを前記IP層処理手段に送る手段と、前記ターゲットIPアドレスが前記第2のIPアドレスでないか、或いは前記ターゲット物理アドレスが前記実サーバの物理アドレスでない場合に、前記アドレス解決プロトコル応答パケットを破棄する手段と、前記第2の受信手段によって受信された通信データがターゲットIPアドレス及びターゲット物理アドレスを含むアドレス解決プロトコル要求パケットであって、前記ターゲットIPアドレスが前記第1のIPアドレスで、且つターゲット物理アドレスが前記実サーバの物理アドレスである場合に、送信元IPアドレスを前記第2のIPアドレスに変換する手段と、前記ターゲットIPアドレスが前記第2のIPアドレスに変換された前記アドレス解決プロトコル要求パケットを前記データリンク層処理手段に送る手段と、前記ターゲットIPアドレスが前記第1のIPアドレスでないか、或いは前記ターゲット物理アドレスが前記実サーバの物理アドレスでない場合に、前記アドレス解決プロトコル要求パケットを破棄する手段とを含む
ことを特徴とする請求項16記載の実サーバ。
【請求項18】
複数のクライアントにサービスを提供する複数の実サーバであって、当該複数の実サーバに共通の第1のIPアドレスを持つ複数の実サーバと、前記複数の実サーバとネットワークアドレスが同一のセグメントに存在し、前記複数のクライアントの各々からのサービス要求を前記複数の実サーバに割り振る負荷分散装置とから構成される負荷分散システムに適用される負荷分散方法であって、
前記クライアントからの前記第1のIPアドレスを宛先IPアドレスとする実サーバ宛ての通信データを前記負荷分散装置が代理で受信するステップと、
前記代理で受信された通信データを転送すべき実サーバを、前記複数の実サーバの中から選択するステップと、
前記代理で受信された通信データを前記選択された実サーバの物理アドレス宛てに前記負荷分散装置が転送するステップと、
前記実サーバが、前記第1のIPアドレスとは異なるアドレス解決プロトコル要求送信用の第2のIPアドレスで前記クライアントの物理アドレスを取得するためのアドレス解決を行うステップと、
前記アドレス解決により決定された物理アドレスに対し前記第1のIPアドレスを送信元IPアドレスとする通信データを前記実サーバが送信するステップと
を具備することを特徴とする負荷分散方法。
【請求項19】
前記クライアントからの前記第1のIPアドレスに対するアドレス解決プロトコル要求に対して前記負荷分散装置が当該負荷分散装置の物理アドレスを含む代理アドレス解決プロトコル応答を返すステップと、
前記クライアントからの前記第1のIPアドレスに対するアドレス解決プロトコル要求に対して前記複数のサーバの各々が応答しないステップと
を更に具備することを特徴とする請求項18記載の負荷分散方法。

【図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

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate

【図44】
image rotate

【図45】
image rotate

【図46】
image rotate


【公開番号】特開2006−277569(P2006−277569A)
【公開日】平成18年10月12日(2006.10.12)
【国際特許分類】
【出願番号】特願2005−98687(P2005−98687)
【出願日】平成17年3月30日(2005.3.30)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】