(57)【要約】【課題】クライアント・サーバ間の全通信データが負荷分散装置に集中することを防ぎ、且つ負荷分散装置上でのＩＰアドレス変換を不用とする。【解決手段】負荷分散装置１６は実サーバ１２-1乃至１２-3とネットワークアドレスが同一のセグメントに存在し、クライアント１１からの仮想アドレスを宛先ＩＰアドレスとする仮想サーバ宛ての通信データを代理で受信する。負荷分散装置１６はこの通信データを転送すべき実サーバ、例えば実サーバ１２-1を選択し、当該通信データを実サーバ１２-1の物理アドレス宛てに転送する。実サーバ１２-1は仮想サーバ宛ての通信データを受信すると、宛先ＩＰアドレスを仮想アドレスから自身のＩＰアドレスに変換する。実サーバ１２-1は、クライアント１１のＩＰアドレス宛ての通信データの送信時には、当該通信データの送信元ＩＰアドレスを当該自身のＩＰアドレスから仮想アドレスに変換する。【選択図】      図１
2006277570.tif 000002
【特許請求の範囲】
【請求項１】
複数のクライアントにサービスを提供する複数の実サーバと、
前記複数の実サーバとネットワークアドレスが同一のセグメントに存在し、前記複数のクライアントの各々からのサービス要求を前記複数の実サーバに割り振る負荷分散装置であって、前記複数のクライアントの各々からのサービス要求を代理で受信するための仮想サーバのＩＰアドレスを仮想アドレスとして持つ負荷分散装置とを具備し、
前記負荷分散装置は、
通信データを受信する負荷分散装置側受信手段であって、前記クライアントからの前記仮想アドレスを宛先ＩＰアドレスとする仮想サーバ宛ての通信データを代理で受信する負荷分散装置側受信手段と、
通信データを送信する負荷分散装置側送信手段と、
前記複数の実サーバの中から、前記負荷分散装置側受信手段によって代理で受信された前記仮想サーバ宛ての通信データを転送すべき実サーバを選択する負荷分散処理手段と、
前記負荷分散装置側受信手段によって代理で受信された前記仮想サーバ宛ての通信データを前記負荷分散処理手段によって選択された実サーバの物理アドレス宛てに前記負荷分散装置側送信手段によって転送させる転送処理手段とを有し、
前記複数の実サーバの各々は、
前記負荷分散装置によって前記仮想サーバ宛ての通信データが転送された場合に、当該仮想サーバ宛ての通信データを受信するサーバ側受信手段と、
前記サーバ側受信手段によって受信された前記仮想サーバ宛ての通信データの送信元のＩＰアドレスを記憶する記憶手段と、
前記サーバ側受信手段によって受信された前記仮想サーバ宛ての通信データを当該実サーバ宛ての通信データとして処理可能とするために、当該通信データの宛先ＩＰアドレスを前記仮想アドレスから当該実サーバ自身のＩＰアドレスに変換するアドレス変換処理手段であって、前記記憶手段により記憶されたＩＰアドレス宛ての通信データの送信時には、当該通信データの送信元ＩＰアドレスを当該実サーバ自身のＩＰアドレスから前記仮想アドレスに変換するアドレス変換処理手段と、
通信データを送信するサーバ側送信手段であって、前記アドレス変換処理手段によって前記送信元ＩＰアドレスが前記仮想アドレスに変換された通信データを前記記憶手段により記憶されたＩＰアドレスのクライアントに直接送信するサーバ側送信手段とを有する
ことを特徴とする負荷分散システム。
【請求項２】
前記実サーバの前記アドレス変換処理手段は、前記クライアントの物理アドレスを取得するための当該クライアントのＩＰアドレスを宛先ＩＰアドレスとし、当該実サーバのＩＰアドレスを送信元ＩＰアドレスとするアドレス解決プロトコル要求の送信時には、当該アドレス解決プロトコル要求の前記送信元ＩＰアドレスを前記仮想アドレスに変換しないことを特徴とする請求項１記載の負荷分散システム。
【請求項３】
前記負荷分散装置は、前記複数の実サーバの物理アドレスを含むエントリデータを格納する負荷分散装置側登録テーブルを更に有し、
前記負荷分散装置の前記負荷分散処理手段は、前記負荷分散装置側受信手段によって代理で受信された前記仮想サーバ宛ての通信データを転送すべき実サーバの物理アドレスを、前記負荷分散装置側登録テーブルに格納されている物理アドレスの中から選択する
ことを特徴とする請求項１記載の負荷分散システム。
【請求項４】
前記負荷分散装置の前記負荷分散装置側受信手段は、前記負荷分散装置のＩＰアドレスを宛先ＩＰアドレスとする通信データをも受信し、
前記負荷分散装置の前記転送処理手段は、前記負荷分散装置側受信手段によって通信データが受信された場合、当該通信データの宛先ＩＰアドレスが前記仮想アドレスと一致するか判定する手段と、前記受信された通信データの宛先ＩＰアドレスが前記仮想アドレスと一致しない場合、当該通信データをインターネットプロトコル層及び上位のプロトコル層に受け渡す手段と、前記受信された通信データの宛先ＩＰアドレスが前記仮想アドレスと一致する場合、当該通信データを前記負荷分散処理手段に渡して当該負荷分散処理手段により転送先の物理アドレスを選択させる手段と、前記通信データを転送すべき実サーバの物理アドレスが前記負荷分散処理手段によって選択できなかった場合、前記通信データを破棄する手段とを含むことを特徴とする請求項３記載の負荷分散装置。
【請求項５】
前記仮想アドレスを宛先ＩＰアドレスとする前記仮想サーバ宛てのサービス要求を割り振る対象となる前記複数の実サーバの集合とは別に、前記仮想アドレスとは異なる仮想アドレスを宛先ＩＰアドレスとする別の仮想サーバ宛てのサービス要求を割り振る対象となる複数の実サーバの集合を少なくとも１つ有しており、
前記負荷分散装置側登録テーブルは、前記仮想アドレス毎に、当該仮想アドレスを宛先ＩＰアドレスとする仮想サーバ宛てのサービス要求を割り振る対象となる前記複数の実サーバの物理アドレスを含むエントリデータを当該仮想アドレスに対応付けて格納し、
前記負荷分散装置の前記負荷分散処理手段は、前記第１の受信手段によって代理で受信された前記仮想サーバ宛ての通信データを転送すべき実サーバの物理アドレスを、当該通信データの宛先ＩＰアドレスに一致する仮想アドレスに対応付けて前記負荷分散装置側登録テーブルに格納されている物理アドレスの中から選択する
ことを特徴とする請求項４記載の負荷分散システム。
【請求項６】
前記負荷分散装置は、前記負荷分散処理手段によって選択された実サーバの物理アドレス宛てに転送される前記仮想サーバ宛ての通信データの送信元のＩＰアドレスと当該通信データの転送先の実サーバの物理アドレスと有効期限のデータとを含むエントリデータを前記仮想アドレス毎に格納する負荷分散装置側セッション管理テーブルを更に有し、
前記負荷分散装置の前記負荷分散処理手段は、前記負荷分散装置の前記転送処理手段から前記宛先ＩＰアドレスが前記仮想アドレスと一致する通信データが受け渡された場合、当該仮想アドレスに対応して前記負荷分散装置側セッション管理テーブルに登録されているエントリデータの集合の中に、当該通信データの送信元ＩＰアドレスを含むエントリデータが存在するかを判定する手段と、前記通信データの送信元ＩＰアドレスを含むエントリデータが前記負荷分散装置側セッション管理テーブルに存在しない第１の場合、前記通信データを転送すべき実サーバの物理アドレスを、当該通信データの宛先ＩＰアドレスに一致する仮想アドレスに対応付けて前記負荷分散装置側登録テーブルに格納されている物理アドレスの中から選択する手段と、前記第１の場合。前記通信データの送信元ＩＰアドレスと前記選択された物理アドレスと所定の有効期限とを含むエントリデータを当該通信データの宛先ＩＰアドレスに一致する仮想アドレスに対応付けて前記負荷分散装置側セッション管理テーブルに追加登録することでセッションの開始とする手段と、前記通信データの送信元ＩＰアドレスを含むエントリデータが前記負荷分散装置側セッション管理テーブルに存在する第２の場合、当該エントリデータに含まれている物理アドレスを前記通信データを転送すべき実サーバの物理アドレスとして選択する手段と、前記第２の場合、セッションが保持されているものとして当該エントリデータに含まれている有効期限の値を前記所定の有効期限の値に戻す手段と、前記第２の場合で且つ前記通信データがセッション終了を意味するデータである場合、前記負荷分散装置側セッション管理テーブル上の該当するエントリデータを削除する手段とを含むことを特徴とする請求項５記載の負荷分散システム。
【請求項７】
前記負荷分散装置は、前記負荷分散処理手段によって選択された実サーバの物理アドレス宛てに転送される前記仮想サーバ宛ての通信データの送信元のＩＰアドレスと当該通信データの転送先の実サーバの物理アドレスと有効期限のデータとを含むエントリデータを格納する負荷分散装置側セッション管理テーブルを更に有し、
前記負荷分散装置の前記負荷分散処理手段は、前記負荷分散装置の前記転送処理手段から前記宛先ＩＰアドレスが前記仮想アドレスと一致する通信データが受け渡された場合、当該通信データの送信元ＩＰアドレスを含むエントリデータが前記セッション管理テーブルに存在するかを判定する手段と、前記通信データの送信元ＩＰアドレスを含むエントリデータが前記負荷分散装置側セッション管理テーブルに存在しない第１の場合、前記通信データを転送すべき実サーバの物理アドレスを、前記負荷分散装置側登録テーブルに格納されている物理アドレスの中から選択する手段と、前記第１の場合、前記通信データの送信元ＩＰアドレスと前記選択された物理アドレスと所定の有効期限とを含むエントリデータを前記負荷分散装置側セッション管理テーブルに追加登録することでセッションの開始とする手段と、前記通信データの送信元ＩＰアドレスを含むエントリデータが前記負荷分散装置側セッション管理テーブルに存在する第２の場合、当該エントリデータに含まれている物理アドレスを前記通信データを転送すべき実サーバの物理アドレスとして選択する手段と、前記第２の場合、セッションが保持されているものとして前記負荷分散装置側セッション管理テーブル上の該当する前記エントリデータに含まれている有効期限の値を前記所定の有効期限の値に戻す手段と、前記第２の場合で且つ前記通信データがセッション終了を意味するデータである場合、前記負荷分散装置側セッション管理テーブル上の該当する前記エントリデータを削除する手段とを含むことを特徴とする請求項４記載の負荷分散システム。
【請求項８】
前記複数の実サーバの各々は、
前記負荷分散装置の物理アドレスと前記仮想アドレスとを含むエントリデータを格納するサーバ側登録テーブルと、
前記負荷分散装置によって当該実サーバに転送された前記仮想サーバ宛ての通信データの宛先ＩＰアドレスと有効期限のデータとを含むエントリデータを格納するサーバ側セッション管理テーブルと、
ＴＣＰ／ＩＰ通信におけるデータリンク層の処理を行うデータリンク層処理手段と、
前記ＴＣＰ／ＩＰ通信におけるＩＰ層の処理を行うＩＰ層処理手段と、
前記サーバ側受信手段を含み、前記データリンク層処理手段から前記ＩＰ層処理手段に送るべき通信データを当該ＩＰ層処理手段に代わり受信する第１の受信手段と、
前記サーバ側送信手段を含み、前記ＩＰ層処理手段から前記データリンク層処理手段に送るべき通信データを当該データリンク層処理手段に代わり受信する第２の受信手段とを更に有し、
前記アドレス変換処理手段は、前記サーバ側受信手段によって受信された通信データの宛先物理アドレスが前記サーバ側登録テーブルに登録されている前記負荷分散装置の物理アドレスで且つ当該通信データの宛先ＩＰアドレスが仮想アドレスの場合、当該通信データの宛先ＩＰアドレスを当該実サーバ自身のＩＰアドレスに書き換えて前記第１の受信手段により前記ＩＰ層処理手段に送らせ、それ以外の場合、前記通信データをそのまま前記第１の受信手段により前記ＩＰ層処理手段に送らせる手段と、前記通信データの宛先ＩＰアドレスが仮想アドレスの場合、前記サーバ側セッション管理テーブルに前記通信データの送信元ＩＰアドレスを含むエントリデータが存在するかを判定する手段と、前記送信元ＩＰアドレスを含むエントリデータが存在しない場合、前記通信データの送信元ＩＰアドレスと所定の有効期限とを含むエントリデータを前記サーバ側セッション管理テーブルに追加登録することでセッションの開始とする手段と、前記送信元ＩＰアドレスを含むエントリデータが存在する場合、セッションが保持されているものとして当該エントリデータに含まれている有効期限の値を前記所定の有効期限の値に戻す手段と、前記第２の受信手段によって受信された通信データの宛先ＩＰアドレスを含むエントリデータが前記サーバ側セッション管理テーブルに存在するかを判定する手段と、前記宛先ＩＰアドレスを含むエントリデータが存在する場合、前記通信データの送信元ＩＰアドレスを前記仮想アドレスに書き換えて前記第２の受信手段により前記データリンク層処理手段に送らせる手段と、前記宛先ＩＰアドレスを含むエントリデータが存在しない場合、前記通信データをそのまま前記第２の受信手段により前記データリンク層処理手段に送らせる手段とを含む、
ことを特徴とする請求項７記載の負荷分散システム。
【請求項９】
前記負荷分散装置は、
前記実サーバと互いに物理アドレス及びＩＰアドレスの対を交換するため、前記実サーバを前記負荷分散装置による前記仮想サーバ宛ての通信データの振り分けの対象として登録することを要求するための登録要求であって、宛先のＩＰアドレス及び物理アドレスとしてそれぞれ前記仮想アドレス及び前記負荷分散装置の物理アドレスを含み、送信元のＩＰアドレス及び物理アドレスとしてそれぞれ前記実サーバのＩＰアドレス及び物理アドレスを含む登録要求が送られた場合、当該登録要求の送信元の物理アドレスを含むエントリデータを前記負荷分散装置側登録テーブルに追加登録すると共に、当該登録の結果を前記登録要求の送信元の前記サーバに通知するためのＩＰパケットを含む登録応答を前記負荷分散装置側送信手段により送信させる登録処理手段を更に有し、
前記実サーバは、前記負荷分散装置と互いに物理アドレス及びＩＰアドレスの対を交換するため、前記登録要求を前記サーバ側送信手段により送信させ、前記登録要求に応じて前記負荷分散装置から前記登録応答が返された場合、前記サーバ側登録テーブルに前記負荷分散装置の物理アドレスを含むエントリデータを登録する登録処理手段を更に有する
ことを特徴とする請求項８記載の負荷分散システム。
【請求項１０】
前記実サーバから送られる前記登録要求は登録の有効期限のデータを含み、
前記負荷分散装置の前記登録処理手段は、前記実サーバから前記登録要求が送られた場合、当該登録要求に含まれている前記有効期限のデータの示す値が正当であるならば、当該登録要求の送信元の前記実サーバの物理アドレスと前記有効期限の値とを含むエントリデータを前記負荷分散装置側登録テーブルに追加登録し、当該登録要求の送信元の前記実サーバの物理アドレスを含むエントリデータが既に登録済みであれば当該エントリデータ中の有効期限の値を当該登録要求に含まれている前記有効期限のデータの示す値に変更する手段と、前記登録要求に含まれている前記有効期限のデータの示す値が正当でないならば、前記負荷分散装置側登録テーブルへの前記エントリデータの登録を控え、当該登録要求の送信元の前記実サーバの物理アドレスを含むエントリデータが既に登録済みであれば当該エントリデータを前記負荷分散装置側登録テーブルから削除する手段と、前記負荷分散装置側送信手段により送信させる前記登録応答として、前記負荷分散装置側登録テーブルへの登録の成功または失敗を表す登録結果のデータを含む前記登録応答を生成する手段とを含み、
前記実サーバの前記登録処理手段は、前記有効期限のデータを含む前記登録要求を前記サーバ側送信手段により送信させる手段と、前記登録要求に応じて前記負荷分散装置から前記登録結果のデータを含む前記登録応答が返された場合、当該登録応答の送信元の前記負荷分散装置の物理アドレスと前記登録要求に含まれている前記有効期限の値とを含むエントリデータを前記サーバ側登録テーブルに追加登録し、当該登録応答の送信元の前記負荷分散装置の物理アドレスを含むエントリデータが既に登録済みであれば当該エントリデータ中の有効期限の値を前記登録要求に含まれている前記有効期限の値に変更する手段と、前記登録応答に含まれている前記登録結果のデータにより登録失敗が示されている場合、前記登録要求に含まれている有効期限より短い値に変更された新たな登録要求を前記サーバ側送信手段により再度送信させる手段とを含む
ことを特徴とする請求項９記載の負荷分散システム。
【請求項１１】
前記負荷分散装置の前記登録処理手段は、前記負荷分散装置側登録テーブルを定期的に監視して、その都度当該負荷分散装置側登録テーブルに登録されている前記エントリデータの有効期限の値を減らし、当該有効期限が切れたデータを当該負荷分散装置側登録テーブルから削除する手段を含み、
前記負荷分散装置の前記負荷分散処理手段は、前記負荷分散装置側セッション管理テーブルを定期的に監視して、その都度当該負荷分散装置側セッション管理テーブルに登録されている前記エントリデータの有効期限の値を減らし、当該有効期限が切れたデータを当該負荷分散装置側セッション管理テーブルから削除する手段を含む
ことを特徴とする請求項１０記載の負荷分散システム。
【請求項１２】
前記実サーバの前記登録処理手段は、前記サーバ側登録テーブルを定期的に監視して、その都度当該サーバ側登録テーブルに登録されている前記エントリデータの有効期限の値を減らし、当該有効期限が切れたデータを当該サーバ側登録テーブルから削除する手段を含み、
前記実サーバの前記アドレス変換処理手段は、前記サーバ側セッション管理テーブルを定期的に監視して、その都度当該サーバ側セッション管理テーブルに登録されている前記エントリデータの有効期限の値を減らし、当該有効期限が切れたデータを当該サーバ側セッション管理テーブルから削除する手段を含む
ことを特徴とする請求項１０記載の負荷分散システム。
【請求項１３】
前記負荷分散装置の前記登録処理手段は、前記実サーバから登録解除を示す登録要求として登録解除要求が送られた場合、当該登録解除要求の送信元の前記実サーバの物理アドレスを含むエントリデータを前記負荷分散装置側登録テーブルから削除する手段を含み、
前記登録応答を生成する手段は、前記登録解除要求に対する前記登録応答として、登録解除成功を表す登録結果のデータを含む登録応答を生成し、
前記実サーバの前記登録処理手段は、前記登録解除要求を前記サーバ側送信手段により送信させる手段と、前記登録解除要求に応じて前記負荷分散装置から前記登録解除成功を表す登録結果のデータを含む前記登録応答が返された場合、当該登録応答の送信元の前記負荷分散装置の物理アドレスを含むエントリデータを前記サーバ側登録テーブルから削除する手段とを含む
ことを特徴とする請求項１０記載の負荷分散システム。
【請求項１４】
複数のクライアントにサービスを提供する複数の実サーバとネットワークアドレスが同一のセグメントに存在し、前記複数のクライアントの各々からのサービス要求を前記複数の実サーバに割り振る負荷分散装置であって、
前記複数のクライアントの各々からのサービス要求を代理で受信するための仮想サーバのＩＰアドレスを仮想アドレスとして持つことにより、前記クライアントからの前記仮想アドレスを宛先ＩＰアドレスとする仮想サーバ宛ての通信データを代理で受信する受信手段と、
通信データを送信する送信手段と、
前記複数の実サーバの中から、前記負荷分散装置側受信手段によって代理で受信された前記仮想サーバ宛ての通信データを転送すべき実サーバを選択する負荷分散処理手段と、
前記受信手段によって代理で受信された前記仮想サーバ宛ての通信データを前記負荷分散処理手段によって選択された実サーバの物理アドレス宛てに前記送信手段によって転送させることで、前記仮想サーバ宛ての通信データの宛先ＩＰアドレスを当該通信データの転送先の前記実サーバ側で当該実サーバのＩＰアドレスに変換させる転送処理手段と
を具備することを特徴とする負荷分散装置。
【請求項１５】
複数のクライアントの各々からのサービス要求を代理で受信するための仮想サーバのＩＰアドレスを仮想アドレスとして持つ負荷分散装置によって割り振られた前記複数のクライアントの各々からのサービス要求に応じて当該クライアントにサービスを提供する、前記負荷分散装置とネットワークアドレスが同一のセグメントに存在する実サーバであって、
前記クライアントからの前記仮想アドレスを宛先ＩＰアドレスとする仮想サーバ宛ての通信データが前記負荷分散装置で代理で受信されて、当該負荷分散装置による振り分けで当該仮想サーバ宛ての通信データが自身の物理アドレス宛てに送信された場合に、当該通信データを受信する受信手段と、
前記サーバ側受信手段によって受信された前記仮想サーバ宛ての通信データの送信元のＩＰアドレスを記憶する記憶手段と、
前記受信手段によって受信された前記仮想サーバ宛ての通信データを当該実サーバ宛ての通信データとして処理可能とするために、当該通信データの宛先ＩＰアドレスを前記仮想アドレスから当該実サーバ自身のＩＰアドレスに変換するアドレス変換処理手段であって、前記記憶手段により記憶されたＩＰアドレス宛ての通信データの送信時には、当該通信データの送信元ＩＰアドレスを当該実サーバ自身のＩＰアドレスから前記仮想アドレスに変換するアドレス変換処理手段と、
通信データを送信する送信手段であって、前記アドレス変換処理手段によって前記送信元ＩＰアドレスが前記仮想アドレスに変換された通信データを前記記憶手段により記憶されたＩＰアドレスのクライアントに直接送信する送信手段と
を具備することを特徴とする実サーバ。
【請求項１６】
前記アドレス変換処理手段は、前記クライアントの物理アドレスを取得するための当該クライアントのＩＰアドレスを宛先ＩＰアドレスとし、当該実サーバのＩＰアドレスを送信元ＩＰアドレスとするアドレス解決プロトコル要求の送信時には、当該アドレス解決プロトコル要求の前記送信元ＩＰアドレスを前記仮想アドレスに変換しないことを特徴とする請求項１５記載の実サーバ。
【請求項１７】
前記負荷分散装置の物理アドレスと前記仮想アドレスとを含むエントリデータを格納する登録テーブルと、
前記負荷分散装置によって当該実サーバに転送された前記仮想サーバ宛ての通信データの宛先ＩＰアドレスと有効期限のデータとを含むエントリデータを格納するセッション管理テーブルと、
ＴＣＰ／ＩＰ通信におけるデータリンク層の処理を行うデータリンク層処理手段と、
前記ＴＣＰ／ＩＰ通信におけるＩＰ層の処理を行うＩＰ層処理手段と、
前記受信手段を含み、前記データリンク層処理手段から前記ＩＰ層処理手段に送るべき通信データを当該ＩＰ層処理手段に代わり受信する第１の受信手段と、
前記送信手段を含み、前記ＩＰ層処理手段から前記データリンク層処理手段に送るべき通信データを当該データリンク層処理手段に代わり受信する第２の受信手段とを更に具備し、
前記アドレス変換処理手段は、前記受信手段によって受信された通信データの宛先物理アドレスが前記登録テーブルに登録されている前記負荷分散装置の物理アドレスで且つ当該通信データの宛先ＩＰアドレスが仮想アドレスの場合、当該通信データの宛先ＩＰアドレスを当該実サーバ自身のＩＰアドレスに書き換えて前記第１の受信手段により前記ＩＰ層処理手段に送らせ、それ以外の場合、前記通信データをそのまま前記第１の受信手段により前記ＩＰ層処理手段に送らせる手段と、前記通信データの宛先ＩＰアドレスが仮想アドレスの場合、前記セッション管理テーブルに前記通信データの送信元ＩＰアドレスを含むエントリデータが存在するかを判定する手段と、前記送信元ＩＰアドレスを含むエントリデータが存在しない場合、前記通信データの送信元ＩＰアドレスと所定の有効期限とを含むエントリデータを前記セッション管理テーブルに追加登録することでセッションの開始とする手段と、前記送信元ＩＰアドレスを含むエントリデータが存在する場合、セッションが保持されているものとして当該エントリデータに含まれている有効期限の値を前記所定の有効期限の値に戻す手段と、前記第２の受信手段によって受信された通信データの宛先ＩＰアドレスを含むエントリデータが前記セッション管理テーブルに存在するかを判定する手段と、前記宛先ＩＰアドレスを含むエントリデータが存在する場合、前記通信データの送信元ＩＰアドレスを前記仮想アドレスに書き換えて前記第２の受信手段により前記データリンク層処理手段に送らせる手段と、前記宛先ＩＰアドレスを含むエントリデータが存在しない場合、前記通信データをそのまま前記第２の受信手段により前記データリンク層処理手段に送らせる手段とを含む、
ことを特徴とする請求項１６記載の負荷分散システム。
【請求項１８】
複数のクライアントにサービスを提供する複数の実サーバと、前記複数の実サーバとネットワークアドレスが同一のセグメントに存在し、且つ前記複数のクライアントの各々からのサービス要求を代理で受信するための仮想サーバのＩＰアドレスを仮想アドレスとして持ち、前記複数のクライアントの各々からのサービス要求を前記複数の実サーバに割り振る負荷分散装置とから構成される負荷分散システムに適用される負荷分散方法であって、
前記クライアントからの前記仮想アドレスを宛先ＩＰアドレスとする仮想サーバ宛ての通信データを前記負荷分散装置が代理で受信するステップと、
前記代理で受信された前記仮想サーバ宛ての通信データを前記負荷分散装置によって転送すべき実サーバを、前記複数の実サーバの中から選択するステップと、
前記代理で受信された前記仮想サーバ宛ての通信データを前記選択された実サーバの物理アドレス宛てに前記負荷分散装置が転送するステップと、
前記選択された実サーバの物理アドレス宛てに前記負荷分散装置によって転送された前記仮想サーバ宛ての通信データを当該実サーバが受信するステップと、
前記実サーバで受信された前記仮想サーバ宛ての通信データの送信元のＩＰアドレスを当該実サーバが記憶するステップと、
前記実サーバで受信された前記仮想サーバ宛ての通信データを当該実サーバ宛ての通信データとして処理可能とするために、当該通信データの送信元ＩＰアドレスを前記仮想アドレスから当該実サーバ自身のＩＰアドレスに変換するステップと、
前記記憶されたＩＰアドレス宛ての通信データの送信時には、当該通信データの送信元ＩＰアドレスを当該実サーバ自身のＩＰアドレスから前記仮想アドレスに変換するステップと、
前記送信元ＩＰアドレスが前記仮想アドレスに変換された通信データを前記記憶されたＩＰアドレスのクライアントに直接送信するステップと
を具備することを特徴とする負荷分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントからの要求を負荷分散装置で受けて当該要求を複数のサーバのいずれかに振り分けるのに好適な負荷分散システム、負荷分散装置、実サーバ及び負荷分散方法に関する。
【背景技術】
【０００２】
クライアント・サーバシステムでは、サーバ（サーバ計算機）の負荷がボトルネックになることが多いため、サーバ数を増強し、負荷を分散する方法が取られる。このシステムでは、複数台存在するサーバのうち、ある特定のサーバが過負荷とならないように、クライアント（クライアント計算機）からの要求を振り分ける機能を提供する負荷分散装置が使用される（例えば、特許文献１参照）。
【０００３】
負荷分散装置を使用したクライアント・サーバシステムにおけるクライアントからサーバへの通信データの流れは次の通りとなる。まずクライアントは、負荷分散装置上の仮想サーバのアドレスに対し通信データを送信する。このため、負荷分散装置は、実際にクライアントに対しサービスを提供するサーバ（以下、実サーバと称する）に代わりクライアントからの通信データを受信する。負荷分散装置は、受信した通信データの宛先ＩＰ（Internet Protocol）アドレスを実サーバのアドレスに変換し、負荷分散のアルゴリズムに基づき実サーバに分散して配信する。
【０００４】
一方、上記システムにおける実サーバからクライアントへの通信データの流れは次の通りとなる。実サーバは、デフォルトゲートウェイを負荷分散装置自身のアドレス（仮想サーバのアドレスとは別のアドレス）に設定することで、クライアントへ送信する通信データが負荷分散装置を通過するようにする。負荷分散装置は、実サーバから送られたクライアント宛てパケットに対し、送信元アドレスを仮想サーバのアドレスに変換して、クライアントに送信する。
【０００５】
このように、クライアントに対し負荷分散装置上の仮想サーバのアドレスと通信しているように見せることで、負荷分散装置は、実サーバに対する要求を受信し、負荷分散を行う。
【特許文献１】特開平９−２１８８４２号公報（請求項１及び２、段落００２８及び００２９）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記した従来技術では、負荷分散装置に送受信の全パケットが集中する。このため、通信負荷が大きくなる可能性がある。また負荷分散装置は、送受信の全パケットに対しＩＰアドレス変換を行うため、処理の負荷が大きくなる可能性がある。
【０００７】
本発明は上記事情を考慮してなされたものでその目的は、クライアント・サーバ間の全通信データが負荷分散装置に集中することを防ぎ、且つ負荷分散装置上でのＩＰアドレス変換を不用にできる負荷分散システム、負荷分散装置、実サーバ及び負荷分散方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の１つの観点によれば、複数のクライアントにサービスを提供する複数の実サーバと、上記複数の実サーバとネットワークアドレスが同一のセグメントに存在し、上記複数のクライアントの各々からのサービス要求を上記複数の実サーバに割り振る負荷分散装置であって、上記複数のクライアントの各々からのサービス要求を代理で受信するための仮想サーバのＩＰアドレスを仮想アドレスとして持つ負荷分散装置とを具備する負荷分散システムが提供される。上記負荷分散装置は、通信データを受信する負荷分散装置側受信手段であって、上記クライアントからの上記仮想アドレスを宛先ＩＰアドレスとする仮想サーバ宛ての通信データを代理で受信する負荷分散装置側受信手段と、通信データを送信する負荷分散装置側送信手段と、上記複数の実サーバの中から、上記負荷分散装置側受信手段によって代理で受信された上記仮想サーバ宛ての通信データを転送すべき実サーバを選択する負荷分散処理手段と、上記負荷分散装置側受信手段によって代理で受信された上記仮想サーバ宛ての通信データを上記負荷分散処理手段によって選択された実サーバの物理アドレス宛てに上記負荷分散装置側送信手段によって転送させる転送処理手段とを有する。上記複数の実サーバの各々は、上記負荷分散装置によって上記仮想サーバ宛ての通信データが転送された場合に、当該仮想サーバ宛ての通信データを受信するサーバ側受信手段と、上記サーバ側受信手段によって受信された上記仮想サーバ宛ての通信データの送信元のＩＰアドレスを記憶する記憶手段と、上記サーバ側受信手段によって受信された上記仮想サーバ宛ての通信データを当該実サーバ宛ての通信データとして処理可能とするために、当該通信データの宛先ＩＰアドレスを上記仮想アドレスから当該実サーバ自身のＩＰアドレスに変換するアドレス変換処理手段であって、上記記憶手段により記憶されたＩＰアドレス宛ての通信データの送信時には、当該通信データの送信元ＩＰアドレスを当該実サーバ自身のＩＰアドレスから上記仮想アドレスに変換するアドレス変換処理手段と、通信データを送信するサーバ側送信手段であって、上記アドレス変換処理手段によって上記送信元ＩＰアドレスが上記仮想アドレスに変換された通信データを上記記憶手段により記憶されたＩＰアドレスのクライアントに直接送信するサーバ側送信手段とを有する。
【０００９】
このような構成においては、クライアントからの仮想サーバ宛ての通信データ（通信パケット）のみが負荷分散装置により複数の実サーバのうちのいずれかの実サーバに転送される。一方、実サーバが送信するクライアント宛ての通信データは送信元ＩＰアドレスに仮想アドレスを用いながら、負荷分散装置と関係なく、直接宛先のクライアントに送信される。このため、通信負荷を減らすことができる。また負荷分散装置では、クライアントからの仮想サーバ宛ての通信データを実サーバに中継しながら、従来技術とは異なってＩＰアドレスの変換を必要としないため、アドレス変換の処理負荷が発生しないで済む。
【００１０】
ここで、上記実サーバのアドレス変換処理手段が、クライアントの物理アドレスを取得するための当該クライアントのＩＰアドレスを宛先ＩＰアドレスとし、当該実サーバのＩＰアドレスを送信元ＩＰアドレスとするアドレス解決プロトコル要求（ＡＲＰ要求）の送信時に、当該アドレス解決プロトコル要求の送信元ＩＰアドレスを上記仮想アドレスに変換しない構成とすると良い。このようにすると、クライアントまたはルータ上に作成される、仮想アドレスと負荷分散装置の物理アドレスとを含むアドレス解決プロトコルテーブル（ＡＲＰテーブル）のエントリデータが、実サーバからのクライアントに対するアドレス解決プロトコル要求によって、仮想アドレスと当該実サーバの物理アドレスとを含むエントリデータに書き換えられることが防止される。
【００１１】
また、上記負荷分散装置に、上記複数の実サーバの物理アドレスを含むエントリデータを格納する負荷分散装置側登録テーブルを持たせ、上記負荷分散装置側受信手段によって代理で受信された仮想サーバ宛ての通信データを転送すべき実サーバの物理アドレスを、上記負荷分散装置の負荷分散処理手段が上記負荷分散装置側登録テーブルに格納されている物理アドレスの中から選択する構成とするならば、複数のサーバに対して効率的に負荷分散が行える。
【００１２】
また、上記負荷分散装置の上記見負荷分散装置側受信手段が、上記負荷分散装置のＩＰアドレスを宛先ＩＰアドレスとする通信データをも受信する構成とする一方、上記負荷分散装置の上記転送処理手段に以下の各手段、即ち、上記負荷分散装置側受信手段によって通信データが受信された場合、当該通信データの宛先ＩＰアドレスが仮想アドレスと一致するか判定する手段と、上記受信された通信データの宛先ＩＰアドレスが仮想アドレスと一致しない場合、当該通信データをインターネットプロトコル層及び上位のプロトコル層に受け渡す手段と、上記受信された通信データの宛先ＩＰアドレスが仮想アドレスと一致する場合、当該通信データを上記負荷分散処理手段に渡して当該負荷分散処理手段により転送先の物理アドレスを選択させる手段と、上記通信データを転送すべき実サーバの物理アドレスが上記負荷分散処理手段によって選択できなかった場合、上記通信データを破棄する手段とを持たせると良い。  
このような構成においては、負荷分散装置が自身のＩＰアドレスで通常の通信を行うこともできる。
【００１３】
また、上記複数の実サーバの各々に、上記負荷分散装置の物理アドレスと仮想アドレスとを含むエントリデータを格納するサーバ側登録テーブルと、上記負荷分散装置によって当該実サーバに転送された仮想サーバ宛ての通信データの宛先ＩＰアドレスと有効期限のデータとを含むエントリデータを格納するサーバ側セッション管理テーブルと、ＴＣＰ／ＩＰ通信におけるデータリンク層の処理を行うデータリンク層処理手段と、ＴＣＰ／ＩＰ通信におけるＩＰ層の処理を行うＩＰ層処理手段とに加えて、上記サーバ側受信手段を含み、上記データリンク層処理手段から上記ＩＰ層処理手段に送るべき通信データを当該ＩＰ層処理手段に代わり受信する第１の受信手段と、上記サーバ側送信手段を含み、上記ＩＰ層処理手段から上記データリンク層処理手段に送るべき通信データを当該データリンク層処理手段に代わり受信する第２の受信手段とを持たせると良い。ここでは更に、上記アドレス変換処理手段に以下の各手段、即ち、上記サーバ側受信手段によって受信された通信データの宛先物理アドレスが上記サーバ側登録テーブルに登録されている上記負荷分散装置の物理アドレスで且つ当該通信データの宛先ＩＰアドレスが仮想アドレスの場合、当該通信データの宛先ＩＰアドレスを当該実サーバ自身のＩＰアドレスに書き換えて上記第１の受信手段により上記ＩＰ層処理手段に送らせ、それ以外の場合、上記通信データをそのまま上記第１の受信手段により上記ＩＰ層処理手段に送らせる手段と、上記通信データの宛先ＩＰアドレスが仮想アドレスの場合、上記サーバ側セッション管理テーブルに上記通信データの送信元ＩＰアドレスを含むエントリデータが存在するかを判定する手段と、上記送信元ＩＰアドレスを含むエントリデータが存在しない場合、上記通信データの送信元ＩＰアドレスと所定の有効期限とを含むエントリデータを上記サーバ側セッション管理テーブルに追加登録することでセッションの開始とする手段と、上記送信元ＩＰアドレスを含むエントリデータが存在する場合、セッションが保持されているものとして当該エントリデータに含まれている有効期限の値を上記所定の有効期限の値に戻す手段と、上記第２の受信手段によって受信された通信データの宛先ＩＰアドレスを含むエントリデータが上記サーバ側セッション管理テーブルに存在するかを判定する手段と、上記宛先ＩＰアドレスを含むエントリデータが存在する場合、上記通信データの送信元ＩＰアドレスを仮想アドレスに書き換えて上記第２の受信手段により上記データリンク層処理手段に送らせる手段と、上記宛先ＩＰアドレスを含むエントリデータが存在しない場合、上記通信データをそのまま前記第２の受信手段により上記データリンク層処理手段に送らせる手段とを持たせると良い。
【００１４】
このような構成のサーバは、ＴＣＰ／ＩＰ通信機能を標準的に有する通常のサーバに、特別のプログラムを実行させることにより簡単に実現でき、サーバ自体を専用装置とする必要がない。
【発明の効果】
【００１５】
本発明によれば、クライアントからの仮想サーバ宛ての通信データをＩＰアドレスの変換を必要とすることなく負荷分散装置によって複数の実サーバのうちのいずれかの実サーバに転送でき、しかも実サーバが送信するクライアント宛ての通信データは負荷分散装置と関係なく、直接宛先のクライアントに送信できる。即ち本発明によれば、クライアント・サーバ間の全通信データが負荷分散装置に集中することを防ぎ、且つ負荷分散装置上でのＩＰアドレス変換を不用にできる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係る負荷分散システムの基本構成と動作原理を説明するための図である。図１において、クライアント１１と当該クライアント１１を含む複数のクライアントにサービスを提供する複数の実サーバ、例えば実サーバ１２-1，１２-2及び１２-3とは、ネットワークアドレスが異なる２つのネットワーク１３及び１４を介して接続されている。クライアント１１はネットワーク１３に接続され、実サーバ１２-1乃至１２-3はネットワーク１４に接続されている。図１では作図の都合上、１台のクライアント１１がネットワーク１３に接続されているが、一般には多数のクライアントがネットワーク１３に接続されている。
【００１７】
ネットワーク１３及び１４はルータ１５により接続されている。ルータ１５は、この異なるネットワークアドレスのネットワーク１３及び１４間を接続するためのルーティング機能を有する。なお、ネットワーク１３及び１４のネットワークアドレスが同一であるならばルータ１５を必要としない。
【００１８】
ネットワーク１４には負荷分散装置１６が接続されている。つまり負荷分散装置１６は、実サーバ１２-1乃至１２-3とネットワークアドレスが同一のセグメント上に存在する。負荷分散装置１６は、仮想サーバのＩＰアドレス（以下、仮想アドレスと称する）“192.168.10.10”を持つ。負荷分散装置１６はまた、当該負荷分散装置１６自身のＩＰアドレスも持つ。一方、実サーバ１２-1，１２-2及び１２-3は、それぞれＩＰアドレス“192.168.10.11”，“192.168.10.12”及び“192.168.10.13”を持つ。
【００１９】
クライアント１１からの実サーバへのサービス要求は、負荷分散装置１６が持つ仮想アドレス（仮想サーバのＩＰアドレス）、つまり仮想サーバに対して行われる。そのため負荷分散装置１６は、実サーバ１２-1乃至１２-3の物理アドレスとしてのＭＡＣ（Media Access Control）アドレスの一覧を保持する。一方、実サーバ１２-1乃至１２-3は、負荷分散装置１６のＭＡＣアドレスと仮想アドレスとを保持する。
【００２０】
クライアント１１は、実サーバにサービスを要求しようとした場合、図１（ａ）に示すように、宛先ＩＰアドレスとして仮想アドレス“192.168.10.10”を用いた仮想サーバ宛ての通信データ（通信パケット）を送信する（ステップＳ１）。この通信データの宛先ＭＡＣアドレスには負荷分散装置１６のＭＡＣアドレスが用いられる。
【００２１】
負荷分散装置１６は、仮想アドレス“192.168.10.10”を用いることで実サーバにサービスを要求するクライアント１１からの通信データ（仮想サーバ宛ての通信データ）を、実サーバに代わって受信する。負荷分散装置１６は、実サーバに代わって受信した通信データの転送先（つまり負荷分散対象）を、負荷分散のアルゴリズムに従って実サーバ１２-1乃至１２-3の中から選択（決定）する。負荷分散装置１６は、実サーバに変わって受信した通信データを、選択された転送先の実サーバ、例えば実サーバ１２-1のＭＡＣアドレスに転送する（ステップＳ２）。負荷分散のアルゴリズムに関しては、従来から種々知られており、且つ本発明に直接関係しないため説明を省略する。
【００２２】
実サーバ１２-1は、負荷分散装置１６から転送された通信データ（通信パケット）を受信すると、当該通信データの宛先ＩＰアドレスを仮想アドレス“192.168.10.10”から当該実サーバ１２-1自身のアドレス“192.168.10.11”に変換して当該通信データを処理する。また実サーバ１２-1は、負荷分散装置１６から転送された通信データの送信元ＩＰアドレス、即ちクライアント１１のＩＰアドレスを保持（記録）しておく。
【００２３】
実サーバ１２-1は、クライアント１１に対するサービス提供のために当該クライアント１１に通信データを送信する場合、当該通信データの送信元ＩＰアドレスを当該実サーバ１２-1自身のＩＰアドレスから仮想アドレスに変換する。そして実サーバ１２-1は、送信元ＩＰアドレスが仮想アドレスに変換された通信データを、図１（ｂ）に示すようにクライアント１１に対して直接送信する（ステップＳ１１）。この通信データの宛先ＭＡＣアドレス及び宛先ＩＰアドレスには、クライアント１１のＭＡＣアドレス及びＩＰアドレスが用いられる。ここで、クライアント１１のＭＡＣアドレスを取得するためのＡＲＰ（Address Resolution Protocol;アドレス解決プロトコル）要求によるアドレス解決は、仮想アドレスではなくて実サーバ１２-1自身のＩＰアドレスで行われる。この実サーバ１２-1自身のＩＰアドレスで行われるアドレス解決は、以下に述べるように、クライアント（セグメントが異なる場合はルータ）のＡＲＰテーブル上に作成されたデータが書き換えられるのを防止するためである。なお、通信データの転送先として、実サーバ１２-1以外のサーバ、つまり実サーバ１２-2または１２-3が選択された場合も、同様の動作が行われる。
【００２４】
次に、ＡＲＰ要求によるアドレス解決について図２を参照して説明する。実サーバ１２-1乃至１２-3のうちの例えば実サーバ１２-1がクライアント１１に対し通信データ（通信パケット）を送信するために、当該クライアント１１のＭＡＣアドレスを取得する必要があるものとする。この場合、実サーバ１２-1は、自身のＩＰアドレス“192.168.10.11”を送信元ＩＰアドレスとし、クライアント１１のＩＰアドレスをターゲットＩＰアドレスとして使用して、クライアント１１に対するＡＲＰ要求（ＡＲＰ要求パケット）を送信する（ステップＳ２１）。クライアント１１は、この実サーバ１２-1からのＡＲＰ要求に対して、自身のＭＡＣアドレスを通知するためのＡＲＰ応答（ＡＲＰ応答パケット）を当該実サーバ１２-1に返す（ステップＳ２２）、これにより実サーバ１２-1はクライアント１１のＭＡＣアドレスを取得する。そこで実サーバ１２-1は、ＡＲＰ応答のデータに基づき、クライアント１１宛ての通信データを、自身のＩＰアドレスではなくて仮想アドレス（負荷分散装置１６上の仮想サーバのＩＰアドレス）“192.168.10.11”を送信元ＩＰアドレスとして送信する（ステップＳ２３）。
【００２５】
上記したように、実サーバ１２-1からクライアント１１に対するＡＲＰ要求の送信に、実サーバ１２-1からクライアント１１に対する通信データ送信と異なって、送信元ＩＰアドレスとして仮想アドレスではなくて実サーバ１２-1自身のＩＰアドレスを用いるのは、次の理由による。即ち、クライアント１１のＡＲＰテーブル（ネットワーク１３及びネットワーク１４のネットワークアドレスが同一、つまりセグメントが同一の場合）またはルータ１５のＡＲＰテーブル（ネットワーク１３及びネットワーク１４のネットワークアドレスが異なる、つまりセグメントが異なる場合）に作成されたデータが、書き換えられないようにするためである。
【００２６】
仮に、実サーバ１２-1から仮想アドレス“192.168.10.10”でＡＲＰ要求が送信されるならば、図３に示すように、負荷分散装置１６のＭＡＣアドレスで作成されたＡＲＰテーブル１１０のデータ（負荷分散装置１６のＭＡＣアドレスと仮想アドレスとを含むデータのＭＡＣアドレス）が、実サーバ１２-1のＭＡＣアドレスに書き換わる。この場合、次に送信される仮想サーバ（仮想アドレス）宛ての通信データは、このＡＲＰテーブル１１０のデータに基づき、負荷分散装置１６ではなくて実サーバ１２-1のＭＡＣアドレスに送信されてしまう。本実施形態では、（実サーバにサービスを要求するための）仮想アドレス宛て通信データは全て負荷分散装置１６を中継させる必要があるため問題である。
【００２７】
そこで本実施形態では、実サーバ１２-1はクライアント１１に通信データを送信する場合と異なって、上述のようにＡＲＰ要求の送信元ＩＰアドレスに仮想アドレス“192.168.10.10”ではなくて実サーバ１２-1自身のＩＰアドレス“192.168.10.11”を使用する。この場合、クライアント１１またはルータ１５のＡＲＰテーブル１１０には、図４に示すように実サーバ１２-1のＩＰアドレス“192.168.10.11”を含むエントリデータが追加登録される。このため、負荷分散装置１６のＭＡＣアドレスで作成されたデータ（負荷分散装置１６のＭＡＣアドレスと仮想アドレスとを含むデータ）は書き換えられない。この場合、次に送信される仮想アドレス宛ての通信データは、このＡＲＰテーブル１１０のデータに基づき、負荷分散装置１６のＭＡＣアドレスに送信される。
【００２８】
上述したように本実施形態では、クライアント１１が送信する通信データ（通信パケット）のみ負荷分散装置１６を通過する。これに対して、実サーバ１２-1乃至１２-3が送信する通信データは負荷分散装置１６を通過しない。このため、従来の負荷分散装置の問題である負荷分散装置上の通信負荷を減らすことができる。
【００２９】
また本実施形態では、ＩＰアドレスの変換が実サーバ上で行われ、負荷分散装置１６におけるＩＰアドレスの変換が発生しない。これにより、既存の負荷分散装置の問題であるＩＰアドレス変換による処理の負荷を発生しないようにすることができる。
【００３０】
次に、図１のシステムにおける上述の動作を整理して、図５のシーケンスチャートを参照して説明する。なお、以下の説明では説明を簡略化するために、ネットワーク１３及びネットワーク１４が同一ネットワークアドレスであり、クライアント１１は実サーバ１２-1乃至１２-3及び負荷分散装置１６と同一セグメントに存在するものとする。
【００３１】
まずクライアント１１は、実サーバにサービスを要求するための仮想アドレス“192.168.10.10”宛ての通信データ（仮想サーバ宛ての通信データ）を送信するため、仮想アドレス“192.168.10.10”に対するＡＲＰ要求によるアドレス解決を行う。即ちクライアント１１は、仮想アドレス“192.168.10.10”に対するＡＲＰ要求（ＡＲＰ要求パケット）を送信する（ステップＳ３１）。負荷分散装置１６は、クライアント１１からの仮想アドレス“192.168.10.10”に対するＡＲＰ要求に応じて、当該負荷分散装置１６のＭＡＣアドレスを当該クライアント１１に通知するためのＡＲＰ応答（ＡＲＰ応答パケット）を返す（ステップＳ３２）。これによりクライアント１１は、仮想アドレス“192.168.10.10”宛ての通信データを送信すべきＭＡＣアドレス（ここでは負荷分散装置１６のＭＡＣアドレス）を取得する。この結果、クライアント１１のＡＲＰテーブル１１０には、仮想アドレス“192.168.10.10”に対応付けて負荷分散装置１６のＭＡＣアドレスが登録される。
【００３２】
クライアント１１はアドレス解決の結果、仮想アドレス“192.168.10.10”宛ての通信データを送信すべきＭＡＣアドレスを取得すると、当該仮想アドレス“192.168.10.10”宛ての通信データを負荷分散装置１６のＭＡＣアドレスに送信する（ステップＳ３３）。
【００３３】
負荷分散装置１６は、クライアント１１からの仮想アドレス“192.168.10.10”宛ての通信データを受信する。すると負荷分散装置１６は、予め登録されている実サーバ１２-1乃至１２-3の各々のＭＡＣアドレスから負荷分散のアルゴリズムに基づき通信データを転送すべき実サーバを決定する。ここでは、実サーバ１２-1が通信データを転送すべき実サーバとして決定されたものとする。この場合、負荷分散装置１６は、受信した通信データを自身が決定した実サーバ１２-1のＭＡＣアドレス宛てに転送する（ステップＳ３４）。
【００３４】
すると実サーバ１２-1は、負荷分散装置１６によって転送されたクライアント１１からの通信データ（通信パケット）を受信する。実サーバ１２-1が通信データをクライアント１１に送信するためには、ＡＲＰ要求により当該クライアント１１のＭＡＣアドレスを取得する必要がある。しかし、このＡＲＰ要求により、ステップＳ３２で作成された、クライアント１１のＡＲＰテーブル１１０上のデータ（仮想アドレス“192.168.10.10”に対応付けられた負荷分散装置１６のＭＡＣアドレス）が書き換えられないようにしなければならない。そこで実サーバ１２-1は、クライアント１１からの通信データの宛先ＩＰアドレスである仮想アドレス“192.168.10.10”ではなくて、当該実サーバ１２-1自身のＩＰアドレス“192.168.10.11”を送信元ＩＰアドレスとするＡＲＰ要求（ＡＲＰ要求パケット）を送信する（ステップＳ３５）。このＡＲＰ要求のターゲットＩＰアドレスには、負荷分散装置１６によって転送された通信データの送信元ＩＰアドレス、つまりクライアント１１のＩＰアドレスが用いられる。
【００３５】
クライアント１１は、実サーバ１２-1からのＡＲＰ要求に対して、自身のＭＡＣアドレスを通知するためのＡＲＰ応答（ＡＲＰ応答パケット）を当該実サーバ１２-1に返す（ステップＳ３６）。この際、クライアント１１のＡＲＰテーブル１１０には、実サーバ１２-1のＩＰアドレス“192.168.10.1１”に対応付けて当該実サーバ１２-1のＭＡＣアドレスが登録される。したがって、仮想アドレス“192.168.10.10”に対応付けてＡＲＰテーブル１１０に登録されている負荷分散装置１６のＭＡＣアドレスが実サーバ１２-1のＭＡＣアドレスに書き換えられることはない。
【００３６】
実サーバ１２-1はクライアント１１からのＡＲＰ応答（ＡＲＰ応答パケット）により当該クライアント１１のＭＡＣアドレスを取得する。そこで実サーバ１２-1は、送信元ＩＰアドレスが当該実サーバ１２-1自身のＩＰアドレスから仮想アドレス“192.168.10.10”に変換された通信データをクライアント１１に対して直接送信する（ステップＳ３７）。この通信データの宛先ＭＡＣアドレス及び宛先ＩＰアドレスには、前述したようにクライアント１１のＭＡＣアドレス及びＩＰアドレスが用いられる。
【００３７】
クライアント１１のＡＲＰテーブル１１０にデータが作成された後は、当該クライアント１１が実サーバにサービスを要求するための仮想アドレス宛ての通信データを、当該ＡＲＰテーブル１１０のデータに基づいて送信する。ここでは、ステップＳ３５での実サーバ１２-1からのＡＲＰ要求に応じてＡＲＰテーブル１１０のデータ（負荷分散装置１６のＭＡＣアドレスで作成されたデータ）が書き換えられないため、クライアント１１は仮想アドレス宛ての通信データを負荷分散装置１６のＭＡＣアドレスに送信する（ステップＳ３８）。負荷分散装置１６は、クライアント１１からの仮想アドレス宛ての通信データを受信すると、負荷分散のアルゴリズムに基づき当該通信データを転送すべき実サーバ（のＭＡＣアドレス）を決定する。負荷分散装置１６は、クライアント１１からの仮想アドレス宛ての通信データを、決定された実サーバ、例えば実サーバ１２-1のＭＡＣアドレスに転送する（ステップＳ３９）。
【００３８】
次に実サーバ１２-i（ｉ＝１，２，３）が、負荷分散装置１６上にＭＡＣアドレスを登録するための方法について、図６のシーケンスチャートを参照して説明する。ここでは、負荷分散装置１６及び実サーバ１２-iには、手動で仮想アドレスが設定されるものとする。実サーバ１２-iは、負荷分散装置１６によりクライアント１１からのサービス要求を振り分けてもらうため、以下に述べる手順でＭＡＣアドレスを登録するための処理を行う。
【００３９】
まず実サーバ１２-iは、仮想アドレスに対するＡＲＰ要求（ＡＲＰ要求パケット）によるアドレス解決を行う（ステップＳ４１，Ｓ４２）。これにより実サーバ１２-iは、仮想アドレスを持つ負荷分散装置１６のＭＡＣアドレスを取得する。
【００４０】
次に実サーバ１２-iは、ＡＲＰ要求に対するＡＲＰ応答（ＡＲＰ応答パケット）の送信元のＩＰアドレス（つまり仮想アドレス）及びＭＡＣアドレスを宛先のＩＰアドレス及びＭＡＣアドレスとするパケット転送の登録要求（登録要求パケット）を送信する（ステップＳ４３）。この登録要求は、ＩＰ層以上のパケットを使用する必要があると共に、有効期限の情報を含んでいる必要がある。ここで有効期限の値が０の登録要求（後述する登録解除要求）は、実サーバ１２-iが明示的にパケットの転送の停止を要請する場合に使用されるものとする。このような場合としては、実サーバ１２-iにて自身の障害を検知した場合が相当する。
【００４１】
負荷分散装置１６は、実サーバ１２-iからの登録要求を受信した後、要求データが正当かどうかを判別する。負荷分散装置１６は、要求データが正当な場合、登録成功として登録要求元の実サーバ１２-iを負荷分散対象として新規登録、または登録の更新（既に登録済みの場合）を行う。その後、負荷分散装置１６は登録要求のＩＰアドレス及びＭＡＣアドレスの送信元アドレスに対して、負荷分散のためのパケット転送の開始を示す登録応答（登録応答パケット）を送信する（ステップＳ４４）。この登録応答は、ＩＰ層以上のパケットを使用する必要があると共に、登録成功または失敗を意味する情報を含んでいる必要がある。実サーバ１２-iは登録応答を受信すると、以後定期的に登録要求を負荷分散装置１６に送信する。
【００４２】
図７は、登録要求パケット７１及び登録応答パケット７２のデータフォーマットを示す。登録要求パケット７１のデータリンク層ヘッダの宛先ＭＡＣアドレスには負荷分散装置１６のＭＡＣアドレスが、ＩＰヘッダの宛先ＩＰアドレスには仮想アドレスが、それぞれ用いられる。また、登録要求パケット７１のデータリンク層ヘッダの送信元ＭＡＣアドレスには実サーバ１２-iのＭＡＣアドレスが、ＩＰヘッダの送信元ＩＰアドレスには実サーバ１２-iのＩＰアドレスが、それぞれ用いられる。登録要求パケット７１（の後述するＩＰペイロード）には、有効期限（の値）を含む登録要求データが設定される。
【００４３】
負荷分散装置１６は、実サーバ１２-iから有効期限の値が０以外の登録要求パケット７１を受信した場合、登録テーブル（後述する登録テーブルＴＢＬ１）に当該実サーバ１２-iのデータ、即ち当該実サーバ１２-iのＭＡＣアドレスと有効期限とを含むエントリデータを追加登録する。このようにして登録された実サーバ１２-iは、負荷分散装置１６による負荷分散対象となり得るサーバの１台として扱われる。
【００４４】
負荷分散装置１６は、実サーバ１２-iから有効期限の値が０の登録要求パケットを受信した場合には、当該登録要求パケットで指定されるデータを上記登録から削除して、当該実サーバ１２-iを負荷分散の対象から外す。同様に負荷分散装置１６は、実サーバ１２-iからの登録要求パケット内の有効期限を超過すると、当該登録要求パケットで指定されるデータを上記アドレス情報のテーブルから削除して、当該実サーバ１２-iを負荷分散の対象から外す。
【００４５】
実サーバ１２-iは、登録応答パケットを受信して登録成功であることが確認できた場合、登録テーブル（後述する登録テーブルＴＢＬ３）に仮想アドレスと負荷分散装置１６のＭＡＣアドレスと有効期限の値とを含むエントリデータ（アドレス情報）を追加登録する。そして実サーバ１２-iは、負荷分散装置１６を中継した通信を開始する。また実サーバ１２-iは、それ以降、登録の有効期限以内の間隔で定期的に登録要求を負荷分散装置１６に送信することにより、登録を維持する。
【００４６】
図８は負荷分散装置１６の構成を示すブロック図である。負荷分散装置１６は、ネットワークＩＦ（ネットワークインタフェース）１６１と、データリンク層処理部１６２と、ＩＰ層処理部１６３と、トランスポート層処理部１６４と、登録テーブルＴＢＬ１と、セッション管理テーブルＴＢＬ２とを含む。負荷分散装置１６はまた、登録処理部１６５と、ＡＲＰ処理部１６６と、パケット転送処理部１６７と、負荷分散処理部１６８とを含む。
【００４７】
ネットワークＩＦ１６１は、負荷分散装置１６が接続されているネットワーク１４とのインタフェースをなす。ネットワークＩＦ１６１は、ＩＦ入力部１６１ａと、ＩＦ出力部１６１ｂとを有する。データリンク層処理部１６２は、データリンク入力部１６２ａと、データリンク出力部１６２ｂとを有する。ＩＰ層処理部１６３は、ＩＰ入力部１６３ａと、ＩＰ出力部１６３ｂとを有する。
【００４８】
次に、負荷分散装置１６内の各部の動作を順次説明する。ネットワークＩＦ１６１内のＩＦ入力部１６１ａは、ネットワーク１４を介して入力された通信データ（通信パケット）を全てデータリンク層処理部１６２内のデータリンク入力部１６２ａに送る。ネットワークＩＦ１６１内のＩＦ出力部１６１ｂは、データリンク層処理部１６２内のデータリンク出力部１６２ｂから出力された通信パケットをネットワーク１４へ送信する。
【００４９】
ここで、負荷分散装置１６内のデータリンク入力部１６２ａの動作について、図９のフローチャート及び図１０のデータフォーマットを参照して説明する。まず、ＩＦ入力部１６１ａからデータリンク入力部１６２ａには、図１０（ａ）に示す通信パケット１０１が入力される。パケット１０１は、データリンク層ヘッダと、ＩＰヘッダと、ＩＰペイロードとを含む。ＩＰヘッダとＩＰペイロードとから構成されるデータをＩＰパケットと呼ぶ。データリンク入力部１６２ａは、ＩＦ入力部１６１ａによって入力された通信パケット１０１を受信すると、当該パケット（入力パケット）１０１を、そのまま図１０（ｂ）に示すパケット１０２としてパケット転送処理部１６７に送る（ステップＳ５１）。
【００５０】
次に、負荷分散装置１６内のデータリンク出力部１６２ｂの動作について、図１１のフローチャート及び図１２のデータフォーマットを参照して説明する。まずデータリンク出力部１６２ｂは、ＩＰ出力部１６３ｂ、登録処理部１６５、ＡＲＰ処理部１６６またはパケット転送処理部１６７から、図１２に示すＭＡＣアドレス１１１とＩＰパケッ１１２とを受け取る。このＭＡＣアドレス１１１には、送信先ＭＡＣアドレスが用いられる。データリンク出力部１６２ｂは、ＭＡＣアドレス１１１とＩＰパケット１１２とから、データリンク層での通信に用いられる図１２に示す通信パケット１１３を生成する（ステップＳ６１）。このパケット１１３は、データリンク層ヘッダと、上記ＩＰパケット１１２とから構成される。データリンク層ヘッダは、宛先ＭＡＣアドレスと、送信元ＭＡＣアドレスとを含む。宛先ＭＡＣアドレスには、ＭＡＣアドレス１１１が用いられる。データリンク出力部１６２ｂは生成された通信パケット１１３をＩＦ出力部１６１ｂに送る（ステップＳ６２）。
【００５１】
次に、負荷分散装置１６内の登録処理部１６５の登録要求入力時の動作について、図１３のフローチャート、図１４の登録テーブルＴＢＬ１のデータ構造例及び図１５のデータフォーマットを参照して説明する。
【００５２】
登録処理部１６５は、パケット転送処理部１６７から（図７に示す登録要求パケット７１に相当する）図１５に示す登録要求パケット１５１が入力された場合、当該パケット１５１の処理の過程で登録テーブルＴＢＬ１を対象とするエントリデータの追加／削除を行う。
【００５３】
ここで登録テーブルＴＢＬ１に登録されるエントリデータは、図１４に示すように、負荷分散装置１６上で負荷分散の対象として予め登録しておく仮想サーバの仮想アドレス毎に管理される。ここでは負荷分散装置１６は、図１の場合と異なり、仮想アドレス“192.168.10.10”に加えて、もう１つの仮想アドレス“192.168.10.110”を持っているものとする。このことは、２つの仮想アドレスの各々に対応する仮想サーバ毎に、負荷分散が行えることを意味する。
【００５４】
さて、仮想アドレスに対応付けて管理される登録テーブルＴＢＬ１のエントリデータは、実サーバ１２-iのＭＡＣアドレス及び有効期限のデータを含む。このことは、登録テーブルＴＢＬ１のエントリデータが、仮想アドレスと実サーバ１２-iのアドレスと有効期限のデータとを含むことと等価である。この有効期限は、負荷分散装置１６による負荷分散の対象である実サーバにパケットを転送する期間を意味し、有効期限が超過すると当該有効期限を含むエントリデータ中のＭＡＣアドレスの実サーバに対するパケットの転送が停止される。
【００５５】
図１４の登録テーブルＴＢＬ１の例では、仮想アドレス“192.168.10.10”に対応付けて３台の実サーバが負荷分散対象として登録されると共に、仮想アドレス“192.168.10.110”に対応付けて２台の実サーバが負荷分散対象として登録されている。このことは、図１６を用いて後述するように、仮想アドレスを“192.168.10.10”とする実サーバ群（実サーバ集合）＃１と、仮想アドレスを“192.168.10.110”とする実サーバ群（実サーバ集合）＃２とを、負荷分散装置１６が扱うことを意味している。
【００５６】
登録処理部１６５は、パケット転送処理部１６７から図１５に示す登録要求パケット１５１が入力された場合、当該パケット１５１の宛先ＩＰアドレスが登録テーブルＴＢＬ１に登録されている仮想アドレスと一致するかを判定する（ステップＳ７１）。もし、入力された登録要求パケット１５１の宛先ＩＰアドレスに一致する仮想アドレスが存在しない場合、登録処理部１６５は処理を終了する。
【００５７】
これに対し、入力された登録要求パケット１５１の宛先ＩＰアドレスに一致する仮想アドレスが存在する場合（ステップＳ７１）、登録処理部１６５は登録要求パケット１５１の示す登録要求が正当であるかを判定する（ステップＳ７２）。登録要求が正当でない登録要求パケット１５１の例としては、予め定められた上限値（有効期限の最大値）を超える有効期限の値を含むものが挙げられる。もし、登録要求が正当である場合、登録処理部１６５は、登録要求パケット１５１中の登録要求データに含まれている有効期限の値が０であるかを判定する（ステップＳ７３）。
【００５８】
有効期限の値が有効期限の最大値を超えずに且つ０以外の場合、登録処理部１６５は登録成功を判定する。この場合、登録処理部１６５は、登録要求パケット１５１に設定されている送信元ＭＡＣアドレス及び当該有効期限の値を含むエントリデータを、当該登録要求パケット１５１の宛先ＩＰアドレスに一致する仮想アドレスに対応付けて、登録テーブルＴＢＬ１に追加登録する（ステップＳ７４）。但し、登録要求パケット１５１に設定されている送信元ＭＡＣアドレスに一致するＭＡＣアドレスを含むエントリデータが、当該登録要求パケット１５１の宛先ＩＰアドレスに一致する仮想アドレスに対応付けて既に登録テーブルＴＢＬ１に登録されている場合、上記ステップＳ７４では、当該エントリデータの有効期限の値を、当該登録要求パケット１５１中の登録要求データに含まれている有効期限の値に変更（更新）する処理が行われる。
【００５９】
一方、登録要求が正当でないか（ステップＳ７２）、或いは有効期限の値が０の場合（ステップＳ７３）、登録処理部１６５は、登録要求パケット１５１に設定されている送信元ＭＡＣアドレスに一致するＭＡＣアドレスを含むエントリデータが、当該登録要求パケット１５１の宛先ＩＰアドレスに一致する仮想アドレスに対応付けて登録テーブルＴＢＬ１に登録されているかチェックし、登録されているならば当該エントリデータを登録テーブルＴＢＬ１から削除する（ステップＳ７５）。このことは、有効期限の値が０の登録要求パケット１５１が登録解除を要求するパケット（登録解除要求パケット）として用いられることを意味する。したがって実サーバ１２-iは自身の障害が発生した場合に、この登録解除要求パケットを負荷分散装置１６に送信して当該実サーバ１２-iの障害を通知することで、クライアント１１からの通信データが負荷分散装置１６によって当該実サーバ１２-iに転送されるのを防止できる。なお、登録要求パケット１５１に設定されている送信元ＭＡＣアドレスに一致するＭＡＣアドレスを含むエントリデータが（当該登録要求パケット１５１の宛先ＩＰアドレスに一致する仮想アドレスに対応付けて）登録テーブルＴＢＬ１に登録されていない場合、ステップＳ７５では何も行われない。
【００６０】
登録処理部１６５は、ステップＳ７４またたはＳ７５を実行すると、登録要求パケット１５１の送信元ＩＰアドレス（実サーバ１２-iのＩＰアドレス）を使用して、（図７に示す登録応答パケット７２のＩＰパケットに相当する）図１５に示す登録応答パケット（ＩＰパケット）１５３を生成する（ステップＳ７６）。この登録応答パケット１５３のＩＰペイロードには、登録結果のデータを含む登録応答データが設定される。ここで、登録失敗の場合には、登録結果のデータとして有効期限に問題があることを示すデータが用いられる。これに対し、登録成功の場合には、登録結果のデータとして登録成功を示すデータが用いられる。また、有効期限の値が０の登録要求パケット１５１に対応する登録応答パケット１５３では、登録結果のデータとして登録解除成功を示すデータが用いられる。
【００６１】
登録応答パケット１５３の宛先ＩＰアドレスには、登録要求パケット１５１の送信元ＩＰアドレス（実サーバ１２-iのＩＰアドレス）が用いられ、当該登録応答パケット１５３の送信元ＩＰアドレスには仮想アドレスが用いられる。登録処理部１６５は、生成された登録応答パケット１５３を、登録要求パケット１５１の送信元に送信するため、当該登録応答パケット１５３と、図１５に示す登録要求パケット１５１のデータリンク層ヘッダに含まれている送信元ＭＡＣアドレス１５２、つまり登録要求パケット１５１の送信元ＭＡＣアドレス１５２とを、データリンク出力部１６２ｂに送る（ステップＳ７７）。
【００６２】
上記したように、図１４の登録テーブルＴＢＬ１の例では、負荷分散装置１６の持つ仮想アドレスとして、“192.168.10.11”（仮想アドレス１）の他に“192.168.10.110”（仮想アドレス２）も存在する。その理由について、図１６を参照して説明する。
【００６３】
本実施形態では、負荷分散装置１６による負荷分散の対象となる実サーバ群（実サーバの集合）として、図１中の実サーバ１２-1乃至１２-3を含む実サーバ群＃１の他に、図１６に示すように実サーバ群＃２も存在するものとする。実サーバ群＃２は、実サーバ１２-5及び１２-6を含む。負荷分散装置１６は、実サーバ群＃１に属する実サーバ１２-1乃至１２-3に対応する仮想サーバの仮想アドレス１“192.168.10.11と、実サーバ群＃２に属する実サーバ１２-5及び１２-6に対応する仮想サーバの仮想アドレス２“192.168.10.110とを持つ。
【００６４】
図１６の例では、クライアント１１から仮想アドレス“192.168.10.11”宛ての通信パケット（通信データ）が矢印Ａ１で示されるように送信された場合、負荷分散装置１６は当該通信データを実サーバ群＃１に属するいずれかの実サーバに転送する。これに対して、クライアント１１から仮想アドレス“192.168.10.110”宛ての通信パケット（通信データ）が矢印Ａ２で示されるように送信された場合には、負荷分散装置１６は当該通信データを実サーバ群＃２に属するいずれかの実サーバに転送する。このように、実サーバ群毎に、その実サーバ群に属する全ての実サーバに共通の仮想アドレスが設定されることで、負荷分散装置１６は各実サーバ群をそれぞれ異なる負荷分散の対象として扱うことができる。
【００６５】
登録処理部１６５は、定期的に登録テーブルＴＢＬ１を監視し、有効期限が０となっているエントリデータを当該登録テーブルＴＢＬ１から削除する。この登録処理部１６５による登録テーブルＴＢＬ１の定期監視処理について図１７のフローチャートを参照して説明する。ここでは、登録テーブルＴＢＬ１に登録されるエントリデータの有効期限の単位に秒が用いられ、当該テーブルＴＢＬ１の監視が１秒毎に実行されるものとする。
【００６６】
登録処理部１６５は登録テーブルＴＢＬ１からエントリデータ（アドレス情報）を１つ取り出す（ステップＳ８１）。登録処理部１６５は取り出されたデータに含まれている有効期限の値が０であるかを判定する（ステップＳ８２）。
【００６７】
もし、有効期限の値が０（０秒）の場合、登録処理部１６５は登録テーブルＴＢＬ１から該当するデータを削除する（ステップＳ８３）。これに対し、有効期限の値が０でない場合、登録処理部１６５は登録テーブルＴＢＬ１の該当するデータに含まれている有効期限の値を１（１秒）減らす（ステップＳ８４）。  
登録処理部１６５は、上述の処理を、登録テーブルＴＢＬ１の全エントリデータに対して行い（ステップＳ８５）、処理を終了する。
【００６８】
さて実サーバ１２-iは、登録要求パケットに対して負荷分散装置１６から返される登録応答パケットから登録成功が確認できた場合、前記したように登録の有効期限以内の間隔で定期的に登録要求パケットを負荷分散装置１６に送信する。これにより実サーバ１２-iは、登録テーブルＴＢＬ１から当該実サーバ１２-iのＭＡＣアドレスを含むデータが削除されるのを防ぎ、当該実サーバ１２-iの登録を維持することができる。もし、実サーバ１２-iに障害が発生して、登録要求パケットを定期的に送信することができなくなると、当該実サーバ１２-iのＭＡＣアドレスを含むデータの登録有効期限が切れるため、負荷分散装置１６の登録処理部１６５は登録テーブルＴＢＬ１から当該データを削除する（ステップＳ８３）。つまり負荷分散装置１６は、障害が発生したために登録要求を定期的に送信できなくなった実サーバ１２-iを検知できる。これにより、障害の発生した実サーバ１２-iにクライアント１１からの通信データを転送することが防止できる。
【００６９】
次に、負荷分散装置１６内のＡＲＰ処理部１６６の動作について、図１８のフローチャート及び図１９のデータフォーマットを参照して説明する。ＡＲＰ処理部１６６はパケット転送処理部１６７からパケットを受信した場合、当該パケットがＡＲＰ要求パケットであるかを判定する（ステップＳ９１）。パケット転送処理部１６７から受信したパケット（受信パケット）がＡＲＰ要求パケットでない場合、ＡＲＰ処理部１６６は当該受信パケットをＩＰ入力部１６３ａに送り、通常のＴＣＰ／ＩＰ通信データとして処理させる（ステップＳ９２）。
【００７０】
これに対し、パケット転送処理部１６７からの受信パケットが、実サーバ１２-iからの図１９に示すＡＲＰ要求パケット１９１の場合、ＡＲＰ処理部１６６は登録テーブルＴＢＬ１をチェックして、当該ＡＲＰ要求パケット１９１のターゲットＩＰアドレスと一致する仮想アドレスが存在するかを判定する（ステップＳ９３）。もし、ＡＲＰ要求パケット１９１のターゲットＩＰアドレスが仮想アドレスと一致しない場合、ＡＲＰ処理部１６６は当該ＡＲＰ要求パケット１９１をＩＰ入力部１６３ａに送り、通常のＴＣＰ／ＩＰ通信データとして処理させる（ステップＳ９２）。
【００７１】
一方、ＡＲＰ要求パケット１９１のターゲットＩＰアドレスに一致する仮想アドレスが登録テーブルＴＢＬ１に存在する場合（ステップＳ９３）、ＡＲＰ処理部１６６はＡＲＰ要求パケット１９１に対する図１９に示すＡＲＰ応答パケット１９３を作成する（ステップＳ９４）。このＡＲＰ応答パケット１９３には、送信元ＭＡＣアドレスに負荷分散装置１６のＭＡＣアドレスが設定され、送信元ＩＰアドレスに登録テーブルＴＢＬ１で一致が判定された仮想アドレスが設定される。また、ターゲットＭＡＣアドレス及びターゲットＩＰアドレスには、それぞれＡＲＰ要求パケット１９１の送信元ＭＡＣアドレス（実サーバ１２-iのＭＡＣアドレス）及び送信元ＩＰアドレス（実サーバ１２-iのＩＰアドレス）が設定される。
【００７２】
ＡＲＰ処理部１６６はＡＲＰ応答パケット１９３を作成すると、当該ＡＲＰ応答パケット１９３を、ＡＲＰ要求パケット１９１の送信元に送信するため、当該ＡＲＰ応答パケット１９３と、ＡＲＰ要求パケット１９１の送信元ＭＡＣアドレス１９２とを、データリンク出力部１６２ｂに送る（ステップＳ９５）。
【００７３】
次に、負荷分散装置１６内のパケット転送処理部１６７の動作について、図２０のフローチャート及び図２１のデータフォーマットを参照して説明する。まず、データリンク入力部１６２ａからパケット転送処理部１６７に入力される通信パケット（データリンク層パケット）は、データフォーマット上、図２１（ａ）に示すパケット２１１と図２１（ｂ）に示すパケット２１２とに大別される。パケット２１１は、データリンク層ヘッダとＩＰパケットとを含む。ＩＰパケットは、ＩＰヘッダ及びＩＰペイロードから構成される。
【００７４】
一方、パケット２１２は、データリンク層ヘッダと、ＡＲＰ要求／応答（ＡＲＰ要求またはＡＲＰ応答）のデータとを含むＡＲＰパケット（ＡＲＰ要求／応答パケット）である。パケット２１１及び２１２のデータリンク層ヘッダは、いずれも宛先ＭＡＣアドレス及び送信元ＭＡＣアドレスを含む。
【００７５】
パケット転送処理部１６７は、データリンク入力部１６２ａによって入力された通信パケットを受信すると、当該パケット（入力パケット）が図２０（ｂ）に示すフォーマットのＡＲＰパケット２１２であるかを判別する（ステップＳ１０１）。もし、入力パケットがＡＲＰパケット２１２であるならば、パケット転送処理部１６７は、当該ＡＲＰパケット２１２からデータリンク層ヘッダを除いた部分（ＡＲＰ要求／応答）を、図２１（ｃ）に示すＡＲＰパケット２１３としてＡＲＰ処理部１６６に送る（ステップＳ１０２）。
【００７６】
これに対し、入力パケットがＡＲＰパケット２１２でないならば、つまり図２０（ａ）に示すフォーマットのパケット２１１であるならば（ステップＳ１０１）、パケット転送処理部１６７は当該入力パケット（パケット２１１）が（図１５の登録要求パケット１５１に相当する）登録要求パケットであるかを判定する（ステップＳ１０３）。もし、入力パケット（パケット２１１）が登録要求パケットの場合、パケット転送処理部１６７は当該入力パケット（パケット２１１）を図２１（ｄ）に示す登録要求パケット２１４としてそのまま登録処理部１６５に送る（ステップＳ１０４）。
【００７７】
一方、入力パケット（パケット２１１）が登録要求パケットではない場合、パケット転送処理部１６７は、転送先（負荷分散先）の実サーバ１２-iのＭＡＣアドレスを取得するために、当該入力パケット（パケット２１１）からデータリンク層ヘッダを除いた部分を、図２０（ｅ）に示すＩＰパケット２１５として負荷分散処理部１６８に送る（ステップＳ１０５）。
【００７８】
パケット転送処理部１６７は、負荷分散処理部１６８から転送先のＭＡＣアドレスを図２１（ｆ）に示すＭＡＣアドレス２１６として取得できた場合（ステップＳ１０６）、負荷分散処理部１６８に送った図２１（ｅ）に示すＩＰパケット２１５を図２１（ｆ）に示すＩＰパケット２１７として、取得されたＭＡＣアドレス２１６と共にデータリンク出力部１６２ｂに送る（ステップＳ１０７）。これに対し、転送先のＭＡＣアドレスの取得に失敗した場合、パケット転送処理部１６７は負荷分散処理部１６８に送った図２１（ｅ）に示すＩＰパケット２１５を図２１（ｇ）に示すＩＰパケット２１８としてＩＰ入力部１６３ａ送り、通常のＴＣＰ／ＩＰ通信データとして処理させる（ステップＳ１０８）。
【００７９】
次に、負荷分散装置１６内の負荷分散処理部１６８の動作について、図２２のフローチャート及び図２３のセッション管理テーブルＴＢＬ２のデータ構造例を参照して説明する。負荷分散処理部１６８は、パケット転送処理部１６７から図２１（ｅ）のＩＰパケット２１５が送られると登録テーブルＴＢＬ１をチェックして、当該ＩＰパケット２１５の宛先ＩＰアドレスと一致する仮想アドレスが存在するかを判定する（ステップＳ１１１）。
【００８０】
もし、パケット転送処理部１６７から送られたＩＰパケット２１５の宛先ＩＰアドレスに一致する仮想アドレスが登録テーブルＴＢＬ１に存在しない場合、負荷分散処理部１６８は当該ＩＰパケット２１５が負荷分散対象となるパケットではないと判定する。この場合、負荷分散処理部１６８はパケット転送処理部１６７にエラーを返して処理を終了する（ステップＳ１１２）。パケット転送処理部１６７は、負荷分散処理部１６８からエラー応答を受け取ると、ＩＰパケット２１５を通常のＴＣＰ／ＩＰ通信データとして処理させるために、前述したように当該ＩＰパケット２１５をＩＰ入力部１６３ａに送る（図２０ステップＳ１０６，Ｓ１０８）。
【００８１】
これに対し、パケット転送処理部１６７から送られたＩＰパケット２１５の宛先ＩＰアドレスに一致する仮想アドレスが登録テーブルＴＢＬ１に存在する場合（ステップＳ１１１）、負荷分散処理部１６８は、当該ＩＰパケット２１５を転送すべき実サーバ１２-iのＭＡＣアドレスを取得するため、セッション管理テーブルＴＢＬ２をチェックする（ステップＳ１１３）。
【００８２】
セッション管理テーブルＴＢＬ２はセッション管理のために用意される。セッション管理テーブルＴＢＬ２のエントリデータ（エントリの集合）は、図２３に示すように仮想アドレス別に用意され（つまり仮想アドレスに対応付けて用意され）、クライアントのＩＰアドレス、実サーバのＭＡＣアドレス及び有効期限の値を持つものとする。
【００８３】
セッション管理とは、コネクション型通信の場合、セッションが切れるまでの間同一のサーバに通信データを転送する必要があるため、当該セッションを保持しておく有効期限を設けて管理することを指す。有効期限の間に、クライアントからパケットの送信が無ければ、負荷分散処理部１６８はセッションが切れたと判断し、セッション管理テーブルＴＢＬ２から該当するエントリデータを削除する。またパケット転送処理部１６７から送られるＩＰパケット２１５が、ＴＣＰのＦＩＮパケットのように、明示的にセッション（コネクション）を停止（切断）するパケットの場合にも、負荷分散処理部１６８はセッションが切れたと判断して、セッション管理テーブルＴＢＬ２から該当するエントリデータを削除する。
【００８４】
さて、上記ステップＳ１１３において負荷分散処理部１６８は、セッション管理テーブルＴＢＬ２のうち、パケット転送処理部１６７から送られるＩＰパケット２１５の宛先ＩＰアドレスと一致する仮想アドレスに対応付けられたエントリの集合から、当該ＩＰパケット２１５の送信元ＩＰアドレスがクライアントのＩＰアドレスと一致するエントリのデータを検索する。
【００８５】
もし、セッション管理テーブルＴＢＬ２に該当するエントリのデータが存在する場合（ステップＳ１１３）、負荷分散処理部１６８は、パケット転送処理部１６７に転送先のＭＡＣアドレスを通知するため、当該エントリのデータからＩＰパケット２１５の送信元ＩＰアドレスと対をなす実サーバ１２-iのＭＡＣアドレスを取得（選択）する（ステップＳ１１４）。次に負荷分散処理部１６８は、ＩＰパケット２１５がＴＣＰのＦＩＮパケットであるかを判定する（ステップＳ１１５）。
【００８６】
もし、ＩＰパケット２１５がＦＩＮパケットである場合、負荷分散処理部１６８はセッション管理テーブルＴＢＬ２から該当するエントリのデータを削除する（ステップＳ１１６）。これに対し、ＩＰパケット２１５がＦＩＮパケットでない場合、負荷分散処理部１６８はセッション管理テーブルＴＢＬ２の該当するエントリのデータに含まれている有効期限の値を初期値に設定する（ステップＳ１１７）。この初期値は必ずしも固定値である必要はなく、負荷分散装置１６で変更可能なパラメータとしても良い。例えば、負荷分散装置１６の管理者が環境に合わせて手動にて初期値（例えば３分）を設定する構成であっても構わない。またこの初期値は、後述するセッション管理テーブル登録時に使用しても良い。
【００８７】
一方、セッション管理テーブルＴＢＬ２に該当するエントリのデータが存在しない場合（ステップＳ１１３）、負荷分散処理部１６８は、登録テーブルＴＢＬ１（図１４参照）上でＩＰパケット２１５の宛先ＩＰアドレス（例えば“192.168.10.10”）と一致する仮想アドレスに対応付けられたエントリの集合から、当該ＩＰパケット２１５を転送すべき実サーバ１２-iに関するエントリのデータを選択（決定）する（ステップＳ１１８）。つまり負荷分散処理部１６８は、ＩＰパケット２１５を転送すべき実サーバ１２-iを決定する。どの実サーバが最適な転送先（負荷分散先）であるかを決定する方法は、本発明とは直接関係しないが、従来から種々知られている。例えば、クライアントとの間でセッションを張っている数の最も少ないサーバを選択する方法が知られている。この方法を適用した場合、実サーバのＭＡＣアドレス毎の登録テーブルＴＢＬ１のデータ数を計算すれば、転送先として最適な実サーバを決定できる。
【００８８】
負荷分散処理部１６８は転送先の実サーバ１２-iを決定すると、登録テーブルＴＢＬ１の該当するエントリのデータから当該実サーバ１２-iのＭＡＣアドレスを取得する（ステップＳ１１９）。そして負荷分散処理部１６８は、この実サーバ１２-iのＭＡＣアドレス、ＩＰパケット２１５の送信元ＩＰアドレス（クライアントのＩＰアドレス）及びセッションを保持する有効期限を含むエントリデータを、当該ＩＰパケット２１５の宛先ＩＰアドレスと一致する仮想アドレスに対応付けて、セッション管理テーブルＴＢＬ２に追加登録する（ステップＳ１２０）。これにより、ＩＰパケット２１５の送信元と実サーバ１２-iとのセッションが開始されることになる。ここでセッション管理テーブルＴＢＬ２に登録される有効期限は、負荷分散装置１６で変更可能なパラメータとし、負荷分散装置１６の管理者が環境に合わせて手動にて設定されるものとする。この有効期限の値が、上記ステップＳ１１７で設定される初期値と同一であっても構わない。
【００８９】
負荷分散処理部１６８はステップＳ１１６，Ｓ１１７またはＳ１２０の後、ＭＡＣアドレスをパケット転送処理部１６７に送って処理を終了する。ここで、負荷分散処理部１６８からパケット転送処理部１６７に送られるＭＡＣアドレスは、ＩＰパケット２１５の送信元ＩＰアドレスがセッション管理テーブルＴＢＬ２に存在する場合（ステップＳ１１３のＹＥＳの場合）には、当該セッション管理テーブルＴＢＬ２から取得されたＭＡＣアドレスである。これに対し、ＩＰパケット２１５の送信元ＩＰアドレスがセッション管理テーブルＴＢＬ２に存在しない場合（ステップＳ１１３のＮＯの場合）には、負荷分散処理部１６８からパケット転送処理部１６７に送られるＭＡＣアドレスは、登録テーブルＴＢＬ１上から転送先として決定された実サーバ１２-iのＭＡＣアドレスである。
【００９０】
このように本実施形態では、負荷分散装置１６においてセッション管理テーブルＴＢＬ２を用いることにより、レイヤ４のセッション管理が可能となる。特に本実施形態では、セッション管理テーブルＴＢＬ２に登録されるエントリデータが、固有の仮想アドレスに対応付けられる実サーバ群（実サーバの集合）毎に管理されるため、負荷分散装置１６において複数の実サーバ群に対し負荷分散及びレイヤ４のセッション管理が可能となる。
【００９１】
負荷分散処理部１６８は、定期的にセッション管理テーブルＴＢＬ２を監視し、有効期限が０となっていエントリデータを当該セッション管理テーブルＴＢＬ２から削除する。この負荷分散処理部１６８によるセッション管理テーブルＴＢＬ２の定期監視処理について図２４のフローチャートを参照して説明する。ここでは、セッション管理テーブルＴＢＬ２に登録されるエントリデータの有効期限の単位に秒が用いられ、当該テーブルＴＢＬ２の監視が１秒毎に実行されるものとする。
【００９２】
負荷分散処理部１６８はセッション管理テーブルＴＢＬ２からエントリデータを１つ取り出す（ステップＳ１３１）。負荷分散処理部１６８は取り出されたデータに含まれている有効期限の値が０であるかを判定する（ステップＳ１３２）。
【００９３】
もし、有効期限の値が０（０秒）の場合、負荷分散処理部１６８はセッション管理テーブルＴＢＬ２から該当するデータを削除する（ステップＳ１３３）。これに対し、有効期限の値が０でない場合、負荷分散処理部１６８はセッション管理テーブルＴＢＬ２の該当するデータに含まれている有効期限の値を１（１秒）減らす（ステップＳ１３４）。  
負荷分散処理部１６８は、上述の処理を、セッション管理テーブルＴＢＬ２の全エントリデータに対して行い（ステップＳ１３５）、処理を終了する。
【００９４】
さて、ＩＰ層処理部１６３内のＩＰ入力部１６３ａ及びＩＰ出力部１６３ｂと、上位プロトコル層の処理部であるトランスポート層処理部１６４とは、入力されたデータを通常のＴＣＰ／ＩＰ通信データとして処理する。これにより、負荷分散装置１６のＩＰアドレスを使用した通常の通信が可能となる。
【００９５】
図２５は実サーバ１２-iの構成を示すブロック図である。実サーバ１２-iは、ネットワークＩＦ（ネットワークインタフェース）１２１と、データリンク層処理部１２２と、ＩＰ層処理部１２３と、トランスポート層処理部１２４とを含む。また実サーバ１２-iは、専用装置１２０と当該専用装置１２０によってアクセスされる登録テーブルＴＢＬ３及びセッション管理テーブルＴＢＬ４とを含む。専用装置１２０は、実サーバ１２-iのデータリンク層処理部１２２とＩＰ層処理部１２３との中間に存在する。本実施形態における専用装置１２０は、当該実サーバ１２-i上の通信を制御する専用のソフトウェアを、実サーバ１２-i（のＣＰＵ）が読み取って実行することにより実現されるものとする。これにより、実サーバ１２-i自体を専用装置としなくて済む。この専用装置１２０の存在により、従来の実サーバが有するデータリンク層処理部１２２及びＩＰ層処理部１２３の間のパス、即ちデータリンク入力部１２２ａ及びＩＰ入力部１２３ａの間のパスと、ＩＰ出力部１２３ｂ及びデータリンク出力部１２２ｂの間のパスは存在しない。
【００９６】
ネットワークＩＦ１２１は、実サーバ１２-iが接続されているネットワーク１４とのインタフェースをなす。ネットワークＩＦ１２１は、ＩＦ入力部１２１ａと、ＩＦ出力部１２１ｂとを有する。データリンク層処理部１２２は、データリンク入力部１２２ａと、データリンク出力部１２２ｂとを有する。ＩＰ層処理部１２３は、ＩＰ入力部１２３ａと、ＩＰ出力部１２３ｂとを有する。
【００９７】
専用装置１２０は、データリンク層処理部１２２（オリジナルのデータリンク層処理部１２２）に相当するデータリンク層処理部１２５とＩＰ層処理部１２３（オリジナルのＩＰ層処理部１２３）に相当するＩＰ層処理部１２６とから構成される。データリンク層処理部１２５は、データリンク入力部１２５ａと、データリンク出力部１２５ｂとを含む。ＩＰ層処理部１２６は、ＩＰ入力部１２６ａと、ＩＰ出力部１２６ｂと、登録処理部１２６ｃと、アドレス変換処理部１２６ｄとを含む。
【００９８】
次に、実サーバ１２-iの専用装置１２０を中心とする動作について説明する。専用装置１２０は、実サーバ１２-i上のオリジナルのデータリンク層処理部１２２から、オリジナルのＩＰ層処理部１２３に代わって通信パケット（データリンク層ヘッダを含むデータリンク層パケット）を受信して、当該専用装置１２０内部でデータ処理を行い、実サーバ１２-iのオリジナルのＩＰ層処理部１２３にＩＰパケットを送る。また専用装置１２０は、実サーバ１２-iのオリジナルのＩＰ層処理部１２３から、オリジナルのデータリンク層処理部１２２に代わってＩＰパケットまたはＡＲＰ要求パケットを受信して、当該専用装置１２０内部でデータ処理を行い、実サーバ１２-iのオリジナルのデータリンク層処理部１２２にデータリンク層パケットを送る。
【００９９】
次に、専用装置１２０内の各部の動作を順次説明する。  
まず、専用装置１２０内のデータリンク入力部１２５ａの動作について、図２６のフローチャート及び図２７のデータフォーマットを参照して説明する。データリンク入力部１２５ａは、実サーバ１２-iのオリジナルのデータリンク層処理部１２２（のデータリンク入力部１２２ａ）から、図２７（ａ）に示すフォーマットの通信パケット（データリンク層パケット）２７１を受け取る。
【０１００】
するとデータリンク入力部１２５ａは、パケット２７１が、（図７（ｂ）に示す登録応答パケット７２に相当する）登録応答パケットであるかを判定する（ステップＳ１４１）。もし、パケット２７１が登録応答パケットであるならば、データリンク入力部１２５ａは当該パケット２７１を、そのまま図２７（ｃ）に示す登録応答パケット２７３として登録処理部１２６ｃに送る（ステップＳ１４２）。これに対し、パケット２７１が登録応答パケットでないならば、データリンク入力部１２５ａは当該パケット２７１を、そのまま図２７（ｂ）に示すパケット２７２としてアドレス変換処理部１２６ｄに送る（ステップＳ１４３）。
【０１０１】
次に、専用装置１２０内のデータリンク出力部１２５ｂの動作について、図２８のフローチャート及び図２９のデータフォーマットを参照して説明する。データリンク出力部１２５ｂは、登録処理部１２６ｃまたはアドレス変換処理部１２６ｄから、図２９（ａ）に示す送信先ＭＡＣアドレス２９１とＩＰパケット２９２とを受け取る。データリンク出力部１２５ｂは、この送信先ＭＡＣアドレス２９１とＩＰパケット２９２とを、それぞれ図２９（ｂ）に示す送信先ＭＡＣアドレス２９３とＩＰパケット２９４として、オリジナルのデータリンク層処理部１２２（のデータリンク出力部１２２ｂ）に送る（ステップＳ１５１）。
【０１０２】
次に専用装置１２０内の登録処理部１２６ｃの動作について説明する。登録処理部１２６ｃは、主として以下の処理Ａ１乃至Ａ３を行う。  
（１）まず登録処理部１２６ｃは、負荷分散装置１６への実サーバ１２-iの登録を開始するため、専用装置１２０の起動時及び実サーバ１２-iの管理者の操作により、登録要求（登録要求パケット）を生成してオリジナルのＩＰ層処理部１２３に送信する（処理Ａ１）。
【０１０３】
（２）また登録処理部１２６ｃは、データリンク入力部１２５ａから登録応答（登録応答パケット）を受信した場合に、登録テーブルＴＢＬ３にエントリデータを登録する（処理Ａ２）。
【０１０４】
（３）また登録処理部１２６ｃは、登録テーブルＴＢＬ３を定期的に監視し、有効期限がある値以下（但し０より大）になった場合に登録要求を送信し、有効期限が０となった場合に当該登録テーブルＴＢＬ３から該当するデータを削除する（処理Ａ３）。
【０１０５】
次に、登録処理部１２６ｃによる上記処理Ａ１の詳細について、図３０のフローチャート及び図３１のデータフォーマットを参照して説明する。登録処理部１２６ｃは専用装置１２０の起動時に、負荷分散装置１６への実サーバ１２-iの登録を開始するため、図３１に示す登録要求パケット３１１を生成する（ステップＳ１６１）。
【０１０６】
登録要求パケット３１１の宛先ＩＰアドレスには仮想アドレスが用いられ、送信元ＩＰアドレスには実サーバ１２-i自身のＩＰアドレスが用いられる。登録要求パケット３１１のＩＰペイロードには、パケット転送の登録の有効期限を示すデータを含む登録要求データが設定される。この登録の有効期限を、実サーバ１２-iの管理者が自身で判断して専用装置１２０に設定可能な構成とすることも可能である。
【０１０７】
登録処理部１２６ｃは、生成された登録要求パケット３１１をオリジナルのトランスポート層処理部１２４（のＩＰ出力部１２３ｂ）に送り、実サーバ１２-iの通常のＴＣＰ／ＩＰ通信における送信データとして処理させる（ステップＳ１６２）。  
以上の処理は、上述した専用装置１２０の起動時だけでなく、実サーバ１２-iの管理者が負荷分散装置１６への登録が必要と判断した場合に特別の操作を行うことによっても実行される。
【０１０８】
次に、登録処理部１２６ｃによる上記処理Ａ２の詳細について、図３２のフローチャート及び図３３のデータフォーマットを参照して説明する。この処理Ａ２は、登録処理部１２６ｃがデータリンク入力部１２５ａから（図７（ｂ）に示す登録応答パケット７２に相当する）図３３に示す登録応答パケット３３１を受信した場合に実行される。この登録応答パケット３３１の送信元のＭＡＣアドレス及びＩＰアドレスには、それぞれ負荷分散装置１６のＭＡＣアドレス及び仮想サーバの仮想アドレスが用いられ、宛先のＭＡＣアドレス及びＩＰアドレスには、それぞれ実サーバ１２-iのＭＡＣアドレス及びＩＰアドレスが用いられている。また、登録応答パケット３３１のＩＰペイロードには、登録結果のデータを含む登録応答データが設定されている。
【０１０９】
登録処理部１２６ｃは、データリンク入力部１２５ａから登録応答パケット３３１を受信すると、当該パケット３３１の登録応答データに含まれている登録結果から登録成功かを判定する（ステップＳ１７１）。もし、登録成功の場合、登録処理部１２６ｃは、登録応答パケット３３１の送信元ＭＡＣアドレス（負荷分散装置１６のＭＡＣアドレス）と送信元ＩＰアドレス（仮想アドレス）と有効期限とを含むエントリデータを登録テーブルＴＢＬ３に追加登録する（ステップＳ１７２）。ここで、有効期限には、上記ステップＳ１６１で登録要求パケット３１１を送信した際に当該パケット３１１に設定された値が用いられる。なお、登録解除成功の場合、登録処理部１２６ｃは上記ステップＳ１７２において、登録応答パケット３３１の送信元ＭＡＣアドレスと送信元ＩＰアドレスとを含むエントリデータを登録テーブルＴＢＬ３から削除する。
【０１１０】
このように本実施形態においては、実サーバ１２-iから送信される仮想アドレスを宛先ＩＰアドレスとする登録要求パケットに対する負荷分散装置１６内の登録処理部１６５による前記ステップＳ７４の処理と、当該登録要求パケットに応じて負荷分散装置１６から当該登録要求パケットの送信元（実サーバ１２-i）に返される登録応答パケットに対する専用装置１２０内の登録処理部１２６ｃによる上記ステップＳ１７２の処理とにより、実サーバ１２-i及び負荷分散装置１６のＭＡＣアドレスを自動的に交換することができる。
【０１１１】
一方、登録失敗の場合で（ステップＳ１７１）、その登録失敗の要因が有効期限にある場合、即ち登録応答パケット３３１の登録応答データに含まれている登録結果が有効期限に問題があることを示している場合（ステップＳ１７３）、登録処理部１２６ｃは前回送信した登録要求パケットよりも有効期限が短く設定された図３３に示す新たな登録要求パケット３３３を生成する（ステップＳ１７４）。ここで、有効期限を短くするのに、必ず毎回ある一定の値を差し引く引く処理を行っても、前回送信した有効期限の値の一定の割り合いの時間を差し引く処理を行っても構わない。
【０１１２】
登録処理部１２６ｃは、新たな登録要求パケット３３３を生成すると（ステップＳ１７４）、受信パケット（登録応答パケット３３１）の送信元ＭＡＣアドレス（負荷分散装置１６のＭＡＣアドレス）３３２と当該登録要求パケット３３３とを、データリンク出力部１２５ｂに送る（ステップＳ１７５）。この登録要求パケット３３３が負荷分散装置１６で受信されることにより、登録テーブルＴＢＬ１の該当するエントリのデータに設定されている有効期限の値を、当該登録要求パケット３３３中に設定されている値に更新することができる。また、登録失敗が、有効期限以外の理由の場合（ステップＳ１７３）、登録処理部１２６ｃは受信パケットを破棄して処理を終了する（ステップＳ１７６）。
【０１１３】
次に、登録処理部１２６ｃによる上記処理Ａ３の詳細について、図３４のフローチャート及び図３５の登録テーブルＴＢＬ３のデータと登録処理部１２６ｃからの出力データとの関係を示す図を参照して説明する。ここでは、登録テーブルＴＢＬ３に登録されるエントリデータの有効期限の単位に秒が用いられ、当該テーブルＴＢＬ３の監視が１秒毎に実行されるものとする。
【０１１４】
登録処理部１２６ｃは登録テーブルＴＢＬ３からエントリデータを１つ取り出す（ステップＳ１８１）。登録処理部１２６ｃは取り出されたデータに含まれている有効期限の値が０であるかを判定する（ステップＳ１８２）。
【０１１５】
もし、有効期限の値が０（０秒）の場合、登録処理部１２６ｃは登録テーブルＴＢＬ３から該当するデータを削除する（ステップＳ１８３）。これに対し、有効期限の値が０でない場合、登録処理部１６６は有効期限の値がある一定の閾値、例えば１０（１０秒）以下であるかを判定する（ステップＳ１８４）。
【０１１６】
もし、有効期限の値が０よりは大きいものの１０以下であるならば、登録処理部１２６ｃは近い将来有効期限が到来して該当するエントリのデータが削除されるのを防止するために、新たな登録要求パケットを生成する（ステップＳ１８５）。これにより、図３５の登録テーブルＴＢＬ３の例のように有効期限の値が９の場合であれば、登録要求パケット３５２が生成される。この登録要求パケット３５２の宛先ＩＰアドレスには、登録テーブルＴＢＬ３中の該当するエントリのデータに含まれている仮想アドレス（ここでは“192.168.10.10”）が用いられる。なお、新たな登録要求パケットを送信する条件となる有効期限の閾値は１０秒に限らない。例えば、この閾値を有効期限の初期値の１／２としても構わない。
【０１１７】
登録処理部１２６ｃは、登録テーブルＴＢＬ３中の該当するエントリのデータに含まれている負荷分散装置１６のＭＡＣアドレス３５１と生成された登録要求パケット３５２とをデータリンク出力部１２５ｂに送る（ステップＳ１８６）。この登録要求パケット３５２が負荷分散装置１６で受信されることにより、登録テーブルＴＢＬ１の該当するエントリのデータに設定されている有効期限の値を、当該登録要求パケット３５２中に設定されている値に更新することができる。
【０１１８】
登録処理部１２６ｃは上記ステップＳ１８６を実行すると、登録テーブルＴＢＬ３の該当するデータに含まれている有効期限の値を１（１秒）減らす（ステップＳ１８７）。一方、有効期限の値が１０よりも大きい場合には（ステップＳ１８４）、登録処理部１２６ｃは上記ステップＳ１８５及びＳ１８６をスキップして、上記ステップＳ１８７を実行する。
【０１１９】
次に、専用装置１２０内のアドレス変換処理部１２６ｄの動作について説明する。アドレス変換処理部１２６ｄは、主として以下の処理Ｂ１乃至Ｂ３を行う。  
（１）まずアドレス変換処理部１２６ｄは、データリンク入力部１２５ａからデータリンク層ヘッダを含む通信パケット（データリンク層パケット）を受け取った場合、当該パケットが負荷分散装置１６から転送されたデータであれば、セッション管理テーブルＴＢＬ４に送信元ＩＰアドレスを登録し、宛先ＩＰアドレスを仮想アドレスから自身のＩＰアドレスへ変換して、ＩＰ入力部１２６ａにＩＰパケットを渡す（処理Ａ１）。
【０１２０】
（２）またアドレス変換処理部１２６ｄは、ＩＰ出力部１２６ｂからＩＰパケットと宛先ＭＡＣアドレスとを受け取った場合、当該ＩＰパケットの宛先ＩＰアドレスがセッション管理テーブルＴＢＬ４に登録されているならば、送信元アドレスを自身のＩＰアドレスから仮想アドレスへ変換してデータリンク出力部１２５ｂに渡す（処理Ｂ２）。
【０１２１】
（３）またアドレス変換処理部１２６ｄは、セッション管理テーブルＴＢＬ４を定期的に監視し、有効期限が０となった場合に当該登録テーブルＴＢＬ４から該当するデータを削除する（処理Ｂ３）。
【０１２２】
次に、アドレス変換処理部１２６ｄによる上記処理Ｂ１の詳細について、図３６のフローチャート及び図３７のセッション管理テーブルＴＢＬ４のデータ構造例を参照して説明する。今、アドレス変換処理部１２６ｄが、データリンク入力部１２５ａから図２７（ｂ）の通信パケット（データリンク層パケット）２７２に相当する通信パケットを受け取ったものとする。この場合、アドレス変換処理部１２６ｄは登録テーブルＴＢＬ１をチェックし、データリンク入力部１２５ａから受け取った通信パケットの送信元ＭＡＣアドレスが負荷分散装置１６のＭＡＣアドレスと一致するかを判定する（ステップＳ１９１）。
【０１２３】
もし、データリンク入力部１２５ａから受け取った通信パケットの送信元ＭＡＣアドレスが負荷分散装置１６のＭＡＣアドレスと一致しない場合、アドレス変換処理部１２６ｄは、当該通信パケットは負荷分散装置１６によって転送されたクライアントからのデータではないと判断する。そこでデータリンク入力部１２５ａは、データリンク入力部１２５ａから受け取った通信パケットからデータリンク層ヘッダを取り除き、残りのＩＰパケットをＩＰ入力部１２６ａに送信して、通常のＴＣＰ／ＩＰ通信データとして処理させる（ステップＳ１９２）。
【０１２４】
一方、データリンク入力部１２５ａから受け取った通信パケットの送信元ＭＡＣアドレスが負荷分散装置１６のＭＡＣアドレスと一致する場合、アドレス変換処理部１２６ｄは、当該通信パケットの宛先ＩＰアドレスが仮想アドレスと一致するかを判定する（ステップＳ１９３）。もし、一致しない場合、アドレス変換処理部１２６ｄはクライアントとは関係ない通信パケットが負荷分散装置１６から転送されているとして、当該通信パケットを破棄する（ステップＳ１９４）。
【０１２５】
これに対し、データリンク入力部１２５ａから受け取った通信パケットの宛先ＩＰアドレスが仮想アドレスと一致する場合（ステップＳ１９３）、アドレス変換処理部１２６ｄは当該通信パケットが負荷分散装置１６によって転送されたクライアントからのパケットであると判断する。この場合、アドレス変換処理部１２６ｄは、データリンク入力部１２５ａから受け取った通信パケットの宛先ＩＰアドレスを仮想アドレスから実サーバ１２-iのＩＰアドレスに書き換える（ステップＳ１９５）。
【０１２６】
そしてアドレス変換処理部１２６ｄは、データリンク入力部１２５ａから受け取った通信パケットの送信元ＩＰアドレス（クライアントのＩＰアドレス）を含むエントリデータが、セッション管理テーブルＴＢＬ４に存在するかを判定する（ステップＳ１９６）。本実施形態において、セッション管理テーブルＴＢＬ４は、負荷分散装置１６内のセッション管理テーブルＴＢＬ２と同様に、セッション管理のために用意される。セッション管理テーブルＴＢＬ４のエントリデータは、図３７に示すように、クライアントのＩＰアドレスと有効期限のデータとを含む。セッション管理とは、前述したようにコネクション型通信の場合、セッションが切れるまでの間同一のサーバに通信データを転送する必要があるため、当該セッションを保持しておく有効期限を設けて管理することを指す。
【０１２７】
もし、データリンク入力部１２５ａから受け取った通信パケットの送信元ＩＰアドレスがセッション管理テーブルＴＢＬ４に存在する場合（ステップＳ１９６）、アドレス変換処理部１２６ｄは当該パケットがＴＣＰのＦＩＮパケットであるかを判定する（ステップＳ１９８）。もし、ＦＩＮパケットである場合、つまりデータリンク入力部１２５ａから受け取った通信パケットが明示的にセッションを停止するパケットの場合、アドレス変換処理部１２６ｄはセッションが切れたと判断して、セッション管理テーブルＴＢＬ４から該当するエントリのデータ（通信パケットの送信元ＩＰアドレスを含むエントリのデータ）を削除する（ステップＳ１９８）。これに対し、データリンク入力部１２５ａから受け取った通信パケットがＦＩＮパケットでない場合、アドレス変換処理部１２６ｄは、セッション管理テーブルＴＢＬ４の該当するエントリのデータに含まれている有効期限の値を初期値に設定する（ステップＳ１９９）。この初期値は必ずしも固定値である必要はなく、専用装置１２０上で変更可能なパラメータとしても良い。例えば、専用装置１２０を含む実サーバ１２-iの管理者が環境に合わせて手動にて初期値（例えば３分）を設定する構成であっても構わない。
【０１２８】
一方、データリンク入力部１２５ａから受け取った通信パケットの送信元ＩＰアドレスがセッション管理テーブルＴＢＬ４に存在しない場合（ステップＳ１９６）、アドレス変換処理部１２６ｄは当該送信元ＩＰアドレス及びセッションを保持する有効期限のデータを含むエントリデータをセッション管理テーブルＴＢＬ４に追加登録する（ステップＳ２００）。ここでセッション管理テーブルＴＢＬ４に登録される有効期限は、専用装置１２０上で変更可能なパラメータとし、当該専用装置１２０を含む実サーバ１２-iの管理者が環境に合わせて手動にて設定されるものとする。この有効期限の値が、上記ステップＳ１９９で設定される初期値と同一であっても構わない。
【０１２９】
アドレス変換処理部１２６ｄは上記ステップＳ１９８，Ｓ１９９またはＳ２００を実行すると、即ちセッション管理テーブルＴＢＬ４に対する処理を実行すると、上記ステップＳ１９５で送信元ＩＰアドレスが仮想アドレスから実サーバ１２-iのＩＰアドレスに書き換えられた通信パケットからデータリンク層ヘッダを取り除き、残りのＩＰパケットをＩＰ入力部１２６ａに送信して、通常のＴＣＰ／ＩＰ通信データとして処理させる（ステップＳ１９２）。
【０１３０】
次に、アドレス変換処理部１２６ｄによる上記処理Ｂ２の詳細について、図３８のフローチャート及び図３９のデータフォーマットを参照して説明する。今、アドレス変換処理部１２６ｄが、ＩＰ出力部１２６ｂから、図３９（ａ）に示すＩＰパケット３９２と宛先ＭＡＣアドレス３９１とを受け取ったものとする。本実施形態では、ＩＰパケット３９２のＩＰヘッダには、宛先ＩＰアドレスとしてクライアント（例えばクライアント１１）のＩＰアドレスが設定されると共に、送信元ＩＰアドレスとして実サーバ１２-iのＩＰアドレスが設定されているものとする。
【０１３１】
アドレス変換処理部１２６ｄはＩＰ出力部１２６ｂからＩＰパケット３９２を受け取ると、セッション管理テーブルＴＢＬ４をチェックし、当該パケット３９２の宛先ＩＰアドレスがセッション管理テーブルＴＢＬ４に存在するかを判定する（ステップＳ２０１）。
【０１３２】
もし、ＩＰ出力部１２６ｂから受け取ったパケット３９２の宛先ＩＰアドレスがセッション管理テーブルＴＢＬ４に存在する場合、アドレス変換処理部１２６ｄは当該通信パケットは負荷分散装置１６によって転送されたクライアントからの通信パケット（サービス要求）に対して当該クライアントに直接送信すべきデータであると判断する。この場合、アドレス変換処理部１２６ｄは、ＩＰ出力部１２６ｂから受け取ったＩＰパケット３９２の宛先ＩＰアドレスを実サーバ１２-iのＩＰアドレスから仮想アドレスに書き換える（ステップＳ２０２）。そしてアドレス変換処理部１２６ｄは、宛先ＩＰアドレスが仮想アドレスに書き換えられたＩＰパケット３９２及びＩＰ出力部１２６ｂから受け取った宛先ＭＡＣアドレス３９１を、それぞれ図３９（ｂ）に示すＩＰパケット３９４及び宛先ＭＡＣアドレス３９３としてデータリンク出力部１２５ｂに送る（ステップＳ２０３）。
【０１３３】
これに対し、ＩＰ出力部１２６ｂから受け取ったパケット３９２の宛先ＩＰアドレスがセッション管理テーブルＴＢＬ４に存在しない場合（ステップＳ２０１）、アドレス変換処理部１２６ｄは当該通信パケットは、クライアントに直接送信すべきデータとは無関係であると判断する。この場合、アドレス変換処理部１２６ｄは、ＩＰ出力部１２６ｂから受け取ったパケット３９２及び宛先ＭＡＣアドレス３９１をそのままデータリンク出力部１２５ｂに送る（ステップＳ２０２）。これにより、クライアントの物理アドレスを取得するためのＡＲＰ要求パケット、即ち当該クライアントのＩＰアドレスを宛先ＩＰアドレスとし、実サーバ１２-i自身のＩＰアドレスを送信元ＩＰアドレスとするＡＲＰ要求パケットは、送信元ＩＰアドレスが仮想アドレスに書き換えられることなく送信される。
【０１３４】
次に、アドレス変換処理部１２６ｄによる上記処理Ｂ３、つまりセッション管理テーブルＴＢＬ４の定期監視処理の詳細について、図２４のフローチャートを援用して説明する。ここで図２４のフローチャートを援用する理由は、本実施形態で適用される処理Ｂ３が、負荷分散装置１６内の負荷分散処理部１６８によるセッション管理テーブルＴＢＬ２の定期監視処理と同一手順で実行されるためである。ここでは、セッション管理テーブルＴＢＬ４に登録されるエントリデータの有効期限の単位に秒が用いられ、当該テーブルＴＢＬ４の監視が１秒毎に実行されるものとする。
【０１３５】
アドレス変換処理部１２６ｄはセッション管理テーブルＴＢＬ４からエントリデータを１つ取り出す（ステップＳ１３１）。アドレス変換処理部１２６ｄは取り出されたデータに含まれている有効期限の値が０であるかを判定する（ステップＳ１３２）。
【０１３６】
もし、有効期限の値が０（０秒）の場合、アドレス変換処理部１２６ｄはセッションが切れたと判断して、セッション管理テーブルＴＢＬ４から該当するデータを削除する（ステップＳ１３３）。これに対し、有効期限の値が０でない場合、アドレス変換処理部１２６ｄはセッション管理テーブルＴＢＬ４の該当するデータに含まれている有効期限の値を１（１秒）減らす（ステップＳ１３４）。  
アドレス変換処理部１２６ｄは、上述の処理を、セッション管理テーブルＴＢＬ４の全エントリデータに対して行い（ステップＳ１３５）、処理を終了する。
【０１３７】
以上の処理により、有効期限の間にクライアントからパケットの送信が無ければ、セッション管理テーブルＴＢＬ４の該当するエントリデータに含まれている有効期限の値が０となって、当該データはセッション管理テーブルＴＢＬ４から削除される。
【０１３８】
次に専用装置１２０内のＩＰ入力部１２６ａの動作について、図４０のフローチャート及び図４１のデータフォーマットを参照して説明する。ＩＰ入力部１２６ａには、アドレス変換処理部１２６ｄから図４１（ａ）に示すフォーマットのＩＰパケット４１１が送られる。今、ＩＰ入力部１２６ａが、アドレス変換処理部１２６ｄから送られたＩＰパケット４１１を受け取ったものとする。
【０１３９】
するとＩＰ入力部１２６ａはアドレス変換処理部１２６ｄから受け取ったＩＰパケット４１１を通常のＴＣＰ／ＩＰ通信データとして実サーバ１２-iのオリジナルのＩＰ層処理部１２３（更には上位層であるトランスポート層処理部１２４）で処理させるために、当該ＩＰパケット４１１をそのまま図４１（ｂ）に示すＩＰパケット４１２として当該ＩＰ層処理部１２３のＩＰ入力部１２３ａに送り、処理を終了する（ステップＳ２１１）。
【０１４０】
次に専用装置１２０内のＩＰ出力部１２６ｂの動作について、図４２のフローチャート及び図４３のデータフォーマットを参照して説明する。ＩＰ出力部１２６ｂには、実サーバ１２-iのオリジナルのＩＰ層処理部１２３のＩＰ出力部１２３ｂから、図４３（ａ）に示すＩＰパケット４３２及び宛先ＭＡＣアドレス４３１が送られる。ＩＰ出力部１２６ｂは、ＩＰ出力部１２３ｂから送られたＩＰパケット４３２及び宛先ＭＡＣアドレス４３１を受け取ると、当該ＩＰパケット４３２及び宛先ＭＡＣアドレス４３１をそのまま図４３（ｂ）に示すＩＰパケット４３４及び宛先ＭＡＣアドレス４３３として、アドレス変換処理部１２６ｄに送り、処理を終了する（ステップＳ２２１）。
【０１４１】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【０１４２】
【図１】本発明の一実施形態に係る負荷分散システムの基本構成と動作原理を説明するための図。
【図２】同実施形態における実サーバ１２-1からクライアント１１に対するＡＲＰ要求によるアドレス解決について説明するための図。
【図３】ＡＲＰ要求により負荷分散装置１６のＭＡＣアドレスで作成されたＡＲＰテーブル１１０のデータが、実サーバ１２-1のＭＡＣアドレスに書き換えられる例を示す図。
【図４】ＡＲＰ要求により負荷分散装置１６のＭＡＣアドレスで作成されたＡＲＰテーブル１１０のデータが、実サーバ１２-1のＭＡＣアドレスに書き換えられない例を示す図。
【図５】図１のシステムの動作を整理して示すシーケンスチャート。
【図６】実サーバ１２-i（ｉ＝１，２，３）が、負荷分散装置１６上にＭＡＣアドレスを登録するための方法を説明するためのシーケンスチャート。
【図７】登録要求パケット７１及び登録応答パケット７２のデータフォーマットを示す図。
【図８】負荷分散装置１６の構成を示すブロック図。
【図９】負荷分散装置１６内のデータリンク入力部１６２ａの動作を説明するためのフローチャート。
【図１０】データリンク入力部１６２ａに入力されるデータ及び当該データリンク入力部１６２ａから出力されるデータのフォーマットを示す図。
【図１１】負荷分散装置１６内のデータリンク出力部１６２ｂの動作を説明するためのフローチャート。
【図１２】データリンク出力部１６２ｂに入力されるデータ及び当該データリンク出力部１６２ｂから出力されるデータのフォーマットを示す図。
【図１３】負荷分散装置１６内の登録処理部１６５の登録要求入力時の動作を説明するためのフローチャート。
【図１４】登録テーブルＴＢＬ１のデータ構造例を示す図。
【図１５】登録処理部１６５に入力されるデータ及び当該登録処理部１５６から出力されるデータのフォーマットを示す図。
【図１６】負荷分散装置１６による負荷分散の対象となる実サーバ群が２組存在する場合の、通信データの宛先ＩＰアドレスと負荷分散装置１６の動作との関係を説明するための図。
【図１７】登録処理部１６５による登録テーブルＴＢＬ１の定期監視処理を説明するためのフローチャート。
【図１８】負荷分散装置１６内のＡＲＰ処理部１６６の動作を説明するためのフローチャート。
【図１９】ＡＲＰ処理部１６６に入力されるデータ及び当該ＡＲＰ処理部１６６から出力されるデータのフォーマットを示す図。
【図２０】負荷分散装置１６内のパケット転送処理部１６７の動作を説明するためのフローチャート。
【図２１】パケット転送処理部１６７に入力されるデータ及び当該パケット転送処理部１６７から出力されるデータのフォーマットを示す図。
【図２２】負荷分散装置１６内の負荷分散処理部１６８の動作を説明するためのフローチャート。
【図２３】セッション管理テーブルＴＢＬ２のデータ構造例を示す図。
【図２４】負荷分散処理部１６８によるセッション管理テーブルＴＢＬ２の定期監視処理を説明するためのフローチャート。
【図２５】実サーバ１２-iの構成を示すブロック図。
【図２６】専用装置１２０内のデータリンク入力部１２５ａの動作を説明するためのフローチャート。
【図２７】データリンク入力部１２５ａに入力されるデータ及び当該データリンク入力部１２５ａから出力されるデータのフォーマットを示す図。
【図２８】専用装置１２０内のデータリンク出力部１２５ｂの動作を説明するためのフローチャート。
【図２９】データリンク出力部１２５ｂに入力されるデータ及び当該データリンク出力部１２５ｂから出力されるデータのフォーマットを示す図。
【図３０】専用装置１２０内の登録処理部１２６ｃによる処理Ａ１を説明するためのフローチャート。
【図３１】処理Ａ１で登録処理部１２６ｃから出力されるデータのフォーマットを示す図。
【図３２】登録処理部１２６ｃによる処理Ａ２を説明するためのフローチャート。
【図３３】処理Ａ２で登録処理部１２６ｃに入力されるデータ及び当該登録処理部１２６ｃから出力されるデータのフォーマットを示す図。
【図３４】登録処理部１２６ｃによる処理Ａ３を説明するためのフローチャート。
【図３５】処理Ａ３における登録テーブルＴＢＬ３のデータと登録処理部１２６ｃからの出力データとの関係を示す図。
【図３６】専用装置１２０内のアドレス変換処理部１２６ｄによる処理Ｂ１を説明するためのフローチャート。
【図３７】セッション管理テーブルＴＢＬ４のデータ構造例を示す図。
【図３８】アドレス変換処理部１２６ｄによる処理Ｂ２を説明するためのフローチャート。
【図３９】処理Ｂ２でアドレス変換処理部１２６ｄに入力されるデータ及び当該アドレス変換処理部１２６ｄから出力されるデータのフォーマットを示す図。
【図４０】専用装置１２０内のＩＰ入力部１２６ａの動作を説明するためのフローチャート。
【図４１】ＩＰ入力部１２６ａに入力されるデータ及び当該ＩＰ入力部１２６ａから出力されるデータのフォーマットを示す図。
【図４２】専用装置１２０内のＩＰ出力部１２６ｂの動作を説明するためのフローチャート。
【図４３】ＩＰ出力部１２６ｂに入力されるデータ及び当該ＩＰ出力部１２６ｂから出力されるデータのフォーマットを示す図。
【符号の説明】
【０１４３】
１１…クライアント、１２-1〜１２-3，１２-5，１２-6，１２-i…実サーバ、１３，１４…ネットワーク、１６…負荷分散装置、１２１，１６１…ネットワークＩＦ、１２２，１２５，１６２…データリンク層処理部、１２２ａ…ＩＰ入力部、１２２ｂ…データリンク出力部、１２３，１２６，１６３…ＩＰ層処理部、１２３ａ，１６３ａ…ＩＰ入力部、１２３ｂ…ＩＰ出力部、１２４，１６４…トランスポート層処理部、１２５ａ…データリンク入力部（サーバ側受信手段、第１の受信手段）、１２５ｂ…データリンク出力部（サーバ側送信手段、第２の受信手段）、１２６ａ…ＩＰ入力部（第１の受信手段）、１２６ｂ…ＩＰ出力部（第２の受信手段）、１２６ｃ，１６５…登録処理部、１２６ｄ…アドレス変換処理部、１６２ａ…データリンク入力部（負荷分散装置側受信手段）、１６２ｂ…データリンク出力部（負荷分散装置側送信手段）、１６３ｂ…ＩＰ出力部、１６６…ＡＲＰ処理部、１６７…パケット転送処理部、１６８…負荷分散処理部、ＴＢＬ１，ＴＢＬ３…登録テーブル、ＴＢＬ２，ＴＢＬ４…セッション管理テーブル。
【図１】
2006277570.tif 000003
【図２】
2006277570.tif 000004
【図３】
2006277570.tif 000005
【図４】
2006277570.tif 000006
【図５】
2006277570.tif 000007
【図６】
2006277570.tif 000008
【図７】
2006277570.tif 000009
【図８】
2006277570.tif 000010
【図９】
2006277570.tif 000011
【図１０】
2006277570.tif 000012
【図１１】
2006277570.tif 000013
【図１２】
2006277570.tif 000014
【図１３】
2006277570.tif 000015
【図１４】
2006277570.tif 000016
【図１５】
2006277570.tif 000017
【図１６】
2006277570.tif 000018
【図１７】
2006277570.tif 000019
【図１８】
2006277570.tif 000020
【図１９】
2006277570.tif 000021
【図２０】
2006277570.tif 000022
【図２１】
2006277570.tif 000023
【図２２】
2006277570.tif 000024
【図２３】
2006277570.tif 000025
【図２４】
2006277570.tif 000026
【図２５】
2006277570.tif 000027
【図２６】
2006277570.tif 000028
【図２７】
2006277570.tif 000029
【図２８】
2006277570.tif 000030
【図２９】
2006277570.tif 000031
【図３０】
2006277570.tif 000032
【図３１】
2006277570.tif 000033
【図３２】
2006277570.tif 000034
【図３３】
2006277570.tif 000035
【図３４】
2006277570.tif 000036
【図３５】
2006277570.tif 000037
【図３６】
2006277570.tif 000038
【図３７】
2006277570.tif 000039
【図３８】
2006277570.tif 000040
【図３９】
2006277570.tif 000041
【図４０】
2006277570.tif 000042
【図４１】
2006277570.tif 000043
【図４２】
2006277570.tif 000044
【図４３】
2006277570.tif 000045