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