(57)【特許請求の範囲】
【請求項１】
ネットワークと、仮想アドレスによって群が特定され且つ各々固有のアドレスが設定された複数の負荷分散サーバとが接続された中継装置と、
それぞれ、前記中継装置に接続される複数のサーバロードバランサとを備え、
前記中継装置が、
前記ネットワークを介して受信した第一のパケットに仮想アドレスが設定されているか否かを判別する手段と、
前記仮想アドレスが前記第一のパケットに設定されている場合、前記第一のパケットを前記複数のサーバロードバランサのいずれかに転送する手段と、
前記サーバロードバランサから受信した第二のパケットを、前記第二のパケットに設定されたアドレスに対応する負荷分散サーバに転送する手段とを有し、
前記サーバロードバランサが、
前記中継装置から受信した第一のパケットに設定された仮想アドレスに対応する負荷分散サーバを選択する手段と、
前記第一のパケットに設定された仮想アドレスを、前記選択された負荷分散サーバを特定するアドレスに置き換えた第二のパケットを生成する手段と、
前記第二のパケットを前記中継装置に転送する手段とを有する
ことを特徴とする、負荷分散システム。
【請求項２】
前記サーバロードバランサに設けられた前記生成手段は、更に、前記第一のパケットに設定された送信元アドレスを、自身を特定するアドレスに置き換えるように動作することを特徴とする、請求項１に記載の負荷分散システム。
【請求項３】
ネットワークと、仮想アドレスによって群が特定され且つ各々固有のアドレスが設定された複数の負荷分散サーバとが接続された中継装置と、
それぞれ、前記中継装置に接続される複数のサーバロードバランサとを備えたシステムにおける負荷分散方法において、
前記ネットワークから受信した第一のパケットに仮想アドレスが設定されているか否かを判別するステップと、
前記第一のパケットに前記仮想アドレスが設定されている場合、前記第一のパケットを前記中継装置から前記複数のサーバロードバランサのいずれかに転送するステップと、
前記中継装置から転送された第一のパケットに設定された仮想アドレスに対応する負荷分散サーバを選択するステップと、
前記第一のパケットに設定された仮想アドレスを前記選択された負荷分散サーバを特定するアドレスに置き換えた、第二のパケットを生成するステップと、
前記第二のパケットを前記サーバロードバランサから前記中継装置に転送するステップと、
前記第二のパケットを、前記中継装置から前記第二のパケットに設定されたアドレスに対応する負荷分散サーバに転送するステップと、
を備えることを特徴とする、負荷分散方法。
【請求項４】
前記生成ステップは、更に、前記第一のパケットに設定された送信元アドレスを、自身を特定するアドレスに置き換えるステップを有することを特徴とする、請求項３に記載の負荷分散方法。
【請求項５】
ネットワークと、仮想アドレスによって群が特定され且つ各々固有のアドレスが設定された複数の負荷分散サーバとが接続された中継装置と、
それぞれ、前記中継装置に接続される複数のサーバロードバランサとを備え、
前記中継装置が、
前記負荷分散サーバから返信された宛先アドレスと送信元アドレスとが設定された第三のパケットを受信する手段と、
前記第三のパケットに設定された宛先アドレスに対応するサーバロードバランサに、前記第三のパケットを転送する手段と、
前記サーバロードバランサから受信した第四のパケットを、前記第四のパケットに設定されたアドレスに応じて前記ネットワークに送出する手段とを有し、
前記サーバロードバランサが、
前記中継装置から受信した第三のパケットに設定された前記宛先アドレスを、前記ネットワークに接続された装置のアドレスに置き換えた第四のパケットを生成する手段と、
前記第四のパケットを前記中継装置に転送する手段とを有する
ことを特徴とする、負荷分散システム。
【請求項６】
前記サーバロードバランサに設けられた前記生成手段が、更に、前記第三のパケットに設定された送信元アドレスを、当該セッションにおける仮想アドレスに置き換えるように動作することを特徴とする、請求項５に記載の負荷分散システム。
【請求項７】
ネットワークと、仮想アドレスによって群が特定され且つ各々固有のアドレスが設定された複数の負荷分散サーバとが接続された中継装置と、
それぞれ、前記中継装置に接続される複数のサーバロードバランサとを備えたシステムにおける負荷分散方法において、
前記負荷分散サーバから返信された宛先アドレスと送信元アドレスとが設定された第三のパケットを受信するステップと、
前記中継装置から、前記第三のパケットに設定された宛先アドレスに対応するサーバロードバランサに、前記第三のパケットを転送するステップと、
前記第三のパケットに設定された前記宛先アドレスを、前記ネットワークに接続された装置のアドレスに置き換えた第四のパケットを生成するステップと、
前記第四のパケットを、前記サーバロードバランサから前記中継装置に転送するステップと、
前記中継装置が受信した前記第四のパケットに設定されたアドレスに応じて、前記第四のパケットを前記ネットワークに送出するステップと、
を備えることを特徴とする、負荷分散方法。
【請求項８】
前記生成ステップが、更に、前記第三のパケットに設定された送信元アドレスを、当該セッションにおける仮想アドレスに置き換えるステップを有することを特徴とする、請求項７に記載の負荷分散方法。
【請求項９】
中継装置と、前記中継装置と第１及び第２のリンクを介して接続されたサーバロードバランサとを有するサーバ負荷分散システムにおいて；
前記中継装置は、
予め定めされた仮想ＩＰアドレス宛の第一転送対象パケットの受信を識別する手段と、
前記識別された仮想ＩＰアドレス宛の前記第一転送対象パケットを前記サーバロードバランサに転送するために、前記第１及び第２のリンクの一方を選択する手段と、
前記サーバロードバランサから前記第１及び第２のリンクの他方を通して受信した第二転送対象パケットを、前記第二転送対象パケットに示されたＩＰアドレスを有する負荷分散対象サーバに転送させ、前記第二転送対象パケットが転送された負荷分散対象サーバから返送された転送対象パケットをサーバロードバランサに前記第１及び第２のリンクの他方を通して転送させる手段とを有し；
前記サーバロードバランサは、
各々少なくとも前記第１及び第２のリンクを収容し、
前記第１及び第２のリンクの一方を通して受信した前記第一転送対象パケットに含まれた仮想ＩＰアドレスに基づいて群特定され、かつ各々固有のＩＰアドレスを割り当てられた負荷分散対象サーバを選択する手段と、
前記第一転送対象パケットの仮想ＩＰアドレスを前記選択された負荷分散対象サーバ固有のＩＰアドレスに書き換え、かつ前記第一転送対象パケットの送信元ＩＰアドレスを前記第１及び第２のリンクの他方を特定するＩＰアドレスに書き換える手段とを有する；
ことを特徴とするサーバ負荷分散システム。
【請求項１０】
前記中継装置の前記選択手段は、
前記第一転送対象パケットに含まれている送信元ＩＰアドレスに一方向関数をかけて生成した疑似乱数に基づいて、前記サーバロードバランサに前記第一転送対象パケットを転送するための前記第１及び第２のリンクの一方を選択することを特徴とする、請求項９記載のサーバ負荷分散システム。
【請求項１１】
前記サーバロードバランサは、
前記第二転送対象パケットを前記第１及び第２のリンクの他方を通して受信した場合、前記第二転送対象パケットの送信元ＩＰアドレスを、負荷分散対象サーバ固有のＩＰアドレスから前記仮想ＩＰアドレスに書き換え、かつ前記第二転送対象パケットの宛先アドレスを、前記第１及び第２のリンクの他方を特定するＩＰアドレスから前記第一転送対象パケットに含まれていた前記送信元ＩＰアドレスに書き換え、前記第１及び第２のリンクの一方を通して前記中継装置に転送させる手段を更に有する、請求項９記載のサーバ負荷分散システム。
【請求項１２】
ネットワークと、仮想アドレスによって群が特定され且つ各々固有のアドレスが設定された複数の負荷分散サーバと、複数のサーバロードバランサとに接続された中継装置において、
前記ネットワークを介して受信した第一のパケットに仮想アドレスが設定されているか否かを判別する手段と、
前記仮想アドレスが前記第一のパケットに設定されている場合、前記第一のパケットを前記複数のサーバロードバランサのいずれかに転送する手段と、
前記サーバロードバランサから受信した第二のパケットを、前記第二のパケットに設定
されたアドレスに対応する負荷分散サーバに転送する手段と、
前記負荷分散サーバから返信された宛先アドレスと送信元アドレスとが設定された第三のパケットを受信する手段と、
前記第三のパケットに設定された宛先アドレスに対応するサーバロードバランサに、前記第三のパケットを転送する手段と、
前記サーバロードバランサから受信した第四のパケットを、前記第四のパケットに設定されたアドレスに応じて前記ネットワークに送出する手段と、
を備えることを特徴とする中継装置。
【請求項１３】
中継装置に接続され、前記中継装置から受信したパケットを転送すべき負荷分散サーバを選択するロードバランサにおいて、
前記中継装置から受信した第一のパケットに設定された仮想アドレスに対応する負荷分散サーバを選択する手段と、
前記第一のパケットに設定された送信先アドレスを、前記選択された負荷分散サーバを特定するアドレスに置き換えた第二のパケットを生成する手段と、
前記第二のパケットを前記中継装置に転送し、前記中継装置から選択された負荷分散ササーバに前記第二のパケットを転送させる手段と、
前記中継装置から受信した第三のパケットに設定された宛先アドレスを、前記第一のパケットの送信元となる装置のアドレスに置き換えた第四のパケットを生成する手段と、
前記第四のパケットを前記中継装置に転送する手段と、
を備えることを特徴とするロードバランサ。
【請求項１４】
前記第二のパケットを生成する手段は、更に、前記第一のパケットに設定された送信元アドレスを、自己を示すアドレスに置き換えることを特徴とする、請求項１３に記載のロードバランサ。
【請求項１５】
前記第四のパケットを生成する手段は、更に、前記第三のパケットに設定された送信元アドレスを、前記仮想アドレスに置き換えることを特徴とする、請求項１３に記載のロードバランサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はインターネットまたはイントラネットなどのＩＰ（Internet Protocol）ネットワークを通したサーバ・クライアント間通信をサーバへの負荷分散を維持して行わせるサーバ負荷分散システムに関する。
【０００２】
【従来の技術】
従来の負荷分散手法としては、マルチリンクＰＰＰ（Point-to-Point Protocol）及びマルチコストイコールパスなどがある。
【０００３】
マルチリンクＰＰＰは、ＩＳＤＮ等で使用され、回線速度が遅い場合に、隣接システム間に複数のリンク（物理回線）を設け、これらのリンクに負荷分散させる手法である（ＲＦＣ１９９０参照）。例えば、マルチリンクＰＰＰによると、ＩＳＤＮのＢチャネル（６４Ｋｂｐｓ）を２つ使って１２８Ｋｂｐｓの帯域幅（伝送速度）の通信を提供可能である。
【０００４】
また、マルチコストイコールパスは、ルーティングプロトコルを使用する動的ルーティングにおいて、宛先までのコストが最小になるパスを複数残し、その中で負荷分散する手法である。このマルチコストイコールパスは、ＲＦＣ１２４７規定のＯＳＰＦ（Open Shortest Path First）でこのような使い方ができるようになっている。
【０００５】
これらの負荷分散手法はパケットをパケット毎にどのリンクに通してもよい場合に有効である。
【０００６】
一方、従来の負荷分散手法として、少なくとも１つのサーバロードバランサ（サーバロードシェア装置）を利用して複数のサーバに負荷を分散させる形態がある。サーバロードバランサ利用のサーバ負荷分散においては、セッションが切れないようにするために、同じセッションに属するパケットは同一リンクで転送しなければならない制約がある。
【０００７】
１つのサーバロードバランサ利用の従来の第１のサーバ負荷分散システムの一例を示す図１を参照すると、このサーバロードバランサによるサーバロードバランス機能には、ＯＳＩ参照モデルのトランスポート層以上のプロトコルの種別による負荷分散（Ｌ４ロードバランス機能）と、ＯＳＩ参照モデルのアプリケーション層の情報（Ｌ７情報）による負荷分散（Ｌ７ロードバランス機能）とがある。
【０００８】
つまり、Ｌ４ロードバランス機能では、クライアント端末から送信されＩＰネットワーク（インターネットまたはイントラネット）及びＬ３スイッチを通して受信した転送対象パケットが、電子メール（ＰＯＰ：Post Office ProtocolまたはＳＭＴＰ：Simple Mail Transfer Protocol）であるか、ファイル転送（ＦＴＰ：File Transfer Protocol）であるか、Ｗｅｂページ参照（ＨＴＴＰ：Hyper Text Transfer Protocol）であるかなどをＬ４プロトコルの種類により、つまりＴＣＰ（Transmission Contorol Protocol）またはＵＤＰ（User Datagram Protocol）のポート番号により識別して、負荷分散対象の複数のサーバのいずれかに振り分けを行う。
【０００９】
また、Ｌ７ロードバランス機能では、レスポンスタイムまたはＵＲＬ（Uniform Resource Locator）などのＬ７情報により、負荷分散対象の複数のサーバのいずれかに転送対象パケットの振り分けを行う。
【００１０】
ここで、ネットワーク中継機器としてのＬ３スイッチは、ＯＳＩ参照モデルのネットワーク層レベルでネットワークの相互接続を行うスイッチまたはルータである。
【００１１】
上述した１つのサーバロードバランサ利用の第１のサーバ負荷分散システムにおいては、セッションが切れないように維持するための制約から、複数のサーバロードバランサを配置することができない。したがって、サーバ・クライアント間通信で多くのパケットが流れる場合、このサーバロードバランサが処理速度のボトルネックになることを免れない。
【００１２】
図２は複数のサーバロードバランサ利用の第２のサーバ負荷分散システムの一例を示す。
【００１３】
この第２のサーバ負荷分散システムにおいては、複数のサーバロードバランサ（ａ，ｂ）を設けることを可能にするために、Ｌ４スイッチをこれらのサーバロードバランサの前段に配置している。
【００１４】
ネットワーク中継機器としてのＬ４スイッチは、ＯＳＩ参照モデルのトランスポート層（Ｌ４）からアプリケーション層（Ｌ７）までの異種プロトコル変換を行いながら、ネットワークの差を吸収してネットワークの相互接続を行うスイッチまたはゲートウェイである。
【００１５】
したがって、このＬ４スイッチにおいては、複数のサーバロードバランサにＬ４ロードバランス機能によりパケットの振り分けを行う。この例では、Ｌ４スイッチは、転送パケットのプロトコルがＦＴＰであるときはサーバロードバランサ（ａ）に、またＨＴＴＰであるときはサーバロードバランサ（ｂ）にそれぞれ振り分ける。
【００１６】
各サーバロードバランサは、Ｌ３スイッチを通して、Ｌ７ロードバランス機能により負荷分散対象の複数のサーバのいずれかに転送対象パケットを振り分けることが可能である。
【００１７】
【発明が解決しようとする課題】
上述した第２のサーバ負荷分散システムにおいては、複数のサーバロードバランサを配置することができるので、各サーバロードバランサが処理速度のボトルネックになることを基本的には軽減できる。しかし、サーバ・クライアント間通信のパケットにプロトコルによる偏りがある場合、やはり対応のサーバロードバランサが処理速度のボトルネックになることを回避できない。
【００１８】
本発明の課題は、複数のサーバロードバランサの各々がサーバ・クライアント間通信のパケットの処理速度のボトルネックになることを回避可能な手法を提供することにある。
【００１９】
本発明の他の課題は、サーバ・クライアント間通信のパケットにプロトコルによる偏りが生じた場合でも、複数の負荷分散対象サーバにパケットを均等に振り分けることが可能な手法を提供することにある。
【００２０】
【課題を解決するための手段】
上記課題を解決するために、本発明の第１のサーバ負荷分散システムは、各々少なくとも第１及び第２のリンクを収容し；
予め定められた仮想ＩＰアドレス宛の転送対象パケットを前記第１及び第２のリンクの一方を通して受信した場合、この仮想ＩＰアドレスに基づいて群特定され、かつ各々固有のＩＰアドレスを割り当てられた複数の負荷分散対象サーバのいずれかを選択する手段と；
前記受信された仮想ＩＰアドレス宛の転送対象パケットの前記仮想ＩＰアドレスを前記選択された負荷分散対象サーバの前記固有のＩＰアドレスに書き換え、かつ前記受信された仮想ＩＰアドレス宛の転送対象パケットの送信元ＩＰアドレスを前記第１及び第２のリンクの他方を特定可能なＩＰアドレスに書き換える手段と；
をそれぞれ有する複数のサーバロードバランサと；
前記第１及び第２のリンクを介して前記複数のサーバロードバランサのそれぞれに接続され；
前記仮想ＩＰアドレス宛の転送対象パケットの受信を識別する手段と；
前記識別された仮想ＩＰアドレス宛の転送対象パケットを前記複数のサーバロードバランサのいずれかに転送するための前記第１及び第２のリンクの一方を選択する手段と；
前記複数のサーバロードバランサのいずれかから前記第１及び第２のリンクの他方を通して受信した転送対象パケットを前記選択された負荷分散対象サーバに転送させ、前記選択された負荷分散対象サーバから返送された転送対象パケットを前記複数のサーバロードバランサのいずれかに前記第１及び第２のリンクの他方を通して転送させる手段と；
を有する中継装置とを備える。
【００２１】
本発明の第２のサーバ負荷分散システムにおいては、前記中継装置の前記選択手段は、
前記識別された仮想ＩＰアドレス宛の転送対象パケットに含まれている送信元ＩＰアドレスの値に一方向関数をかけて生成した疑似乱数に基づいて、前記複数のサーバロードバランサのいずれかに転送するための前記第１及び第２のリンクの一方を選択する。
【００２２】
本発明の第３のサーバ負荷分散システムにおいては、前記サーバロードバランサの各々は、
前記選択した負荷分散対象サーバから返送された転送対象パケットを前記中継装置及び前記第１及び第２のリンクの他方を通して受信した場合、前記受信した転送対象パケットに含まれている前記選択した負荷分散対象サーバの前記固有のＩＰアドレスを前記仮想ＩＰアドレスに送信元ＩＰアドレスとして書き換え、かつ前記受信した転送対象パケットに含まれている前記第１及び第２のリンクの他方を特定可能なＩＰアドレスを前記仮想ＩＰアドレス宛の転送対象パケットに含まれていた前記送信元ＩＰアドレスに宛先ＩＰアドレスとして書き換え、前記第１及び第２のリンクの一方を通して前記中継装置に転送させる手段を更に有する。
【００２３】
本発明の第４のサーバ負荷分散システムにおいては、前記中継装置は、
前記複数のサーバロードバランサのそれぞれに収容されている前記第１及び第２のリンクをグループ化し、各グループの前記第１及び第２のリンクに定期的に監視用パケットをそれぞれ送信し、応答のないリンクを含むグループに属する前記第１及び第２のリンクを障害として選択対象外に設定する手段を更に有する。
【００２４】
本発明のサーバ負荷分散装置は、複数のサーバへ負荷分散を行うサーバロードバランサ機能を複数有し、クライアント端末から受信したパケットの送信元識別情報に基づいて、処理を行わせる１つのサーバロードバランサ機能を特定する。
【００２５】
【発明の実施の形態】
次に、本発明の一実施の形態について図面を参照して説明する。
【００２６】
〔サーバ負荷分散システムの構成〕
図３及び図４は、本発明の一実施の形態におけるサーバ負荷分散システム１の構成を行きパケット及び帰り（戻り）パケットの流れとともに示している。
【００２７】
図３及び図４を併せ参照すると、このサーバ負荷分散システム１は、インターネットまたはイントラネットなどのＩＰネットワーク２に接続されたパーソナルコンピータなどの複数のクライアント端末３（ここでは、代表で１つを示す）と、ＩＰネットワーク２に接続されたルータ４と、ルータ４に接続された複数のサーバロードバランサ（ＳＬＢ＃１，＃２〜＃Ｎ）５と、ルータ４にＬＡＮ（Local Area Network）６を通して接続された負荷分散対象サーバ群としての複数のサーバ（＃１，＃２，＃３）７とを備えている。
【００２８】
ネットワーク中継機器としてのルータ４は、ＯＳＩ参照モデルのネットワーク層（Ｌ３）レベルでネットワークの相互接続を行うＬ３スイッチに代替可能である。
【００２９】
また、ルータ４は、ＯＳＩ参照モデルのトランスポート層（Ｌ４）からアプリケーション層（Ｌ７）までの異種プロトコル変換を行いながら、ネットワークの差を吸収してネットワークの相互接続を行うネットワーク中継機器としてのＬ４スイッチに代替可能である。
【００３０】
ＬＡＮ６は、ＯＳＩ参照モデルのデータリンク層（Ｌ２）レベルでネットワークの相互接続を行うＬ２スイッチで代替可能である。
【００３１】
各サーバロードバランサ５はルータ４と複数（２つ以上）の物理リンクによって接続されている。この発明の実施のためには、複数（２つ以上）のサーバロードバランサ５を設けることが必要である。
【００３２】
負荷分散対象サーバ群の各サーバ（負荷分散対象サーバと記載することもある）７は、サーバロードバランサ５に予め登録されている仮想ＩＰアドレス「ＩｐＡ．１」に基づいて群特定され、かつ固有のＩＰアドレスを割り当てられている。また、各サーバ７は電子メール、ファイル転送、及びＷｅｂページ参照などの少なくとも１つに関するデータを保存している。
【００３３】
なお、このサーバ負荷分散システム１における行きパケット及び帰りパケットの流れの処理については、後に詳述する。
【００３４】
〔ルータ〕
図３及び図４に示すサーバ負荷分散システム１において、負荷分散中継装置として機能するルータ４は、図５に示す詳細構成を採る。
【００３５】
ルータ４は、図５に示すように、ルーティング処理部４１、パケット転送部４３、パケット受信部４４、パケット判別部４５、障害検出・復旧検出部４６、及びリンク選択処理部４７から構成されている。ルーティング処理部４１はルーティングテーブル４２を有する。リンク選択処理部４７はテーブル４８を有する。
【００３６】
ルーティング処理部４１は、パケットの通常の中継処理を司り、パケット判別部４５からパケットを受信した場合（図５中の符号ｅ）、宛先（ＩＰアドレス）と転送インタフェース（ルータ４のポート番号）との組合せが保持されているルーティングテーブル４２を参照して、その受信パケットを転送するインタフェースを選択し、パケット転送部４３にパケット転送の指示を出す（ｆ）。
【００３７】
パケット転送部４３は、ルーティング処理部４１からの指示に応答して、パケットの転送処理を行う（ｇ）。パケット受信部４４はパケットの受信処理を行う（ａ）。パケット判別部４５は、予め設定されている仮想ＩＰアドレス「ＩｐＡ．１」宛のパケットをパケット受信部４４を通して受信した場合、そのパケットをリンク選択処理部４７に渡し（ｂ，ｃ）、そうでない場合には、ルーティング処理部４１へ渡す処理を行う（ｂ，ｅ）。
【００３８】
リンク選択処理部４７は、パケット判別部４５から渡された仮想ＩＰアドレス宛のパケットを転送する対象のサーバロードバランサ５をテーブル４８の中から選択し、パケット転送部４３にパケットの転送指示を出す（ｄ）。このテーブル４８には、複数のサーバロードバランサ５と複数のリンクとの対応関係が予め設定されている。
【００３９】
障害検出・復旧検出部４６は、各サーバロードバランサ５へのリンクが正常に機能しているかを確認するため、各サーバロードバランサ５に定期的にＩＣＭＰ−ＥＣＨＯ要求メッセージを送信し、その応答としてのＩＣＭＰ−ＥＣＨＯ応答メッセージを監視する（ｈ，ｇ，ａ，ｉ）。この監視結果はテーブル４８に反映される（ｊ）。
【００４０】
障害検出・復旧検出部４６は、同じサーバロードバランサ５に接続している複数のリンクをグループ化しておき、そのグループ内のうち一つでも一定時間内に応答のないものがある場合には、そのグループに属する全てのリンクが障害と判断する。障害検出・復旧検出部４６は、そのグループ内の全てについて正常に応答が返ってきた場合には、正常と見なす。
【００４１】
図６はルータ４におけるパケット中継処理手順の概要を示す。上記構成を採るルータ４がパケット受信部４４でパケットを受信すると（図６中の手順Ｓ６０）、受信したパケットをパケット判別部４５により識別する。
【００４２】
その受信パケットが予め設定されている仮想ＩＰアドレス宛のパケットである場合には、リンク選択処理部４７によりどのリンク上にパケットを転送するかを特定アルゴリズム（ここでは、後に詳述するように、送信元ＩＰアドレスにハッシュ（ハッシュ関数）をかけ、１つのリンクを選択する方法）に基づいて決定する（Ｓ６１，Ｓ６２）。
【００４３】
この場合、リンク選択処理部４７はテーブル４８を参照し、障害のないリンクのみをリンク選択対象とする。受信パケットが予め設定されている仮想ＩＰアドレス宛のパケットでない場合は、ルーティング処理部４１が通常のルーティング処理（パケット中継処理）を行う（Ｓ６１，Ｓ６３）。
【００４４】
パケット転送部４３は上記特定アルゴリズムに基づいて決定されたリンク上にパケットを転送する。受信パケットが仮想ＩＰアドレス宛てのパケットである場合、このパケットは、決定リンク対応のサーバロードバランサ５に転送されて、負荷分散対象になる。
【００４５】
次に、図７を参照し、リンク選択処理部４７において、送信元ＩＰアドレスにハッシュ関数をかけてリンクを選択する方法（上記特定アルゴリズム）について説明する。
【００４６】
リンク選択処理部４７は、パケット判別部４５から転送されたパケットの送信元ＩＰアドレスの値、例えば「１０．１０．１０．１＝１０１０１００１」に不可逆な一方向関数であるハッシュ関数ｆ（ｘ）をかける。
【００４７】
ハッシュ関数は入力された原文（平文）から固定長の疑似乱数（ハッシュ値）を生成する演算手法であるので、リンク選択処理部４７は、この演算結果として、例えばハッシュ値「１」を得ることができる。
【００４８】
リンク選択処理部４７はこのハッシュ値「１」を利用して１つのリンクを選択する。この場合、リンク番号「１」のリンクが選択される。なお、リンク選択に利用するハッシュ値は選択対象リンクの総数以下に予め設定しておく。また、送信元ＩＰアドレス及びポート番号（ＴＣＰポート番号）の双方をキー情報とし、このキー情報にハッシュ関数をかけてリンクを選択してもよい。
【００４９】
〔サーバロードバランサ〕
図３及び図４に示すサーバ負荷分散システム１において、各サーバロードバランサ５は、図８及び図９に示す詳細構成を採る。
【００５０】
サーバロードバランサ５は、図８及び図９に示すように、サーバロードバランシング処理部５１、パケット受信部５５、パケット送信部５６、及び障害・復旧通知処理部５７から構成されている。サーバロードバランシング処理部５１は、宛先サーバ選択処理部５２及びアドレス書換え部５３を有する。アドレス書換え部５３はセッション・テーブル５４を有する。
【００５１】
サーバロードバランシング処理部５１は、パケット受信部５５が対応のリンクを通して受信したパケットを渡された場合（図８中の符号ａ，ｂ）、宛先サーバ選択処理部５２により宛先サーバ７を決定させ、アドレス書換え部５３により転送対象パケットの宛先ＩＰアドレスを書き換えさせる（ｃ）。
【００５２】
宛先サーバ選択処理部５２による宛先サーバ７の決定方法には、（１）ＯＳＩ参照モデルのトランスポート層以上のプロトコル（ＰＯＰ，ＳＭＴＰ，ＦＴＰ，ＨＴＴＰなど）の種別による負荷分散（Ｌ４ロードバランス）と、（２）ＯＳＩ参照モデルのアプリケーション層の情報（レスポンスタイムまたはＵＲＬなどのＬ７情報）による負荷分散（Ｌ７ロードバランス）とが基本的にある。
【００５３】
また、宛先サーバ選択処理部５２は、宛先サーバ７の決定方法として、複数のサーバ７の負荷を計測し、負荷の少ない１つを選択する方法及びクライアント端末３のＩＰアドレスに応じて複数のサーバ７の１つを選択する方法の他に、ラウンドロビン、最小コネクション数、静的重み付けなどの手法を採用することが可能である。
【００５４】
アドレス書換え部５３は、更に、転送対象パケットの送信元ＩＰアドレスをサーバロードバランサ５のＩＰアドレスに書き換える（ｃ）。また、アドレス書換え部５３はセッション・テーブル５４に書き換え前の元の情報と書き換え後の情報との対応付けを行う（ｃ）。
【００５５】
パケット受信部５５はパケットの受信処理を行い（ａ，ｂ，ｆ）、パケット送信部４６はパケットの転送処理を行う（ｄ，ｇ，ｅ）。障害・復旧通知処理部５７は、パケット受信部５５よりリンク障害監視のためのパケット（ＩＣＭＰ−ＥＣＨＯ要求メッセージ）を受信し、障害がない場合にパケット送信部５６を通して応答（ＩＣＭＰ−ＥＣＨＯ応答メッセージ）を返す。なお、障害の場合は応答を返さない（ａ，ｆ，ｇ，ｅ）。
【００５６】
図１０は各サーバロードバランサ５における処理手順の概要を示す。サーバロードバランサ５は、ルータ４から転送対象パケットを受信した場合（図１０中の手順Ｓ１００）、サーバロードバランシング処理部５１によりそのパケットの宛先ＩＰアドレスが仮想ＩＰアドレスか否かを識別する（Ｓ１０１）。
【００５７】
仮想ＩＰアドレスである場合、サーバロードバランシング処理部５１は行きのパケットに対するサーバロードバランシング処理を行う（Ｓ１０２，Ｓ１０３）。
【００５８】
行きのパケットに対するサーバロードバランシング処理には、（１）宛先サーバ選択処理部５２により、そのパケットの宛先、つまり負荷分散対象サーバ７のＩＰアドレス及び負荷分散対象サーバ７のポート番号を決定する処理（Ｓ１０２）と、（２）アドレス書換え部５３により、転送対象パケットの宛先ＩＰアドレスを決定済サーバ７のＩＰアドレスに書き換えるとともにポート番号を決定値に書き換える処理（Ｓ１０３）と、（３）アドレス書換え部５３により、転送対象パケットの送信元ＩＰアドレスをそのパケットを転送するサーバロードバランサ５のＩＰアドレスに書き換える処理（Ｓ１０３）などがある。
【００５９】
サーバロードバランシング処理部５１は、これらの処理結果の対応関係（書き換え前の情報と書き換え後の情報との対応関係）をセッション・テーブル５４に保持する。なお、受信した転送対象パケットが既にセッション・テーブル５４に登録されている場合は、登録されている宛先サーバ７のＩＰアドレス及び宛先サーバ７のポート番号を使用するように決定する。
【００６０】
サーバロードバランシング処理部５１におけるサーバロードバランシング処理の後、パケット送信部５５は転送対象パケットを対応の残りのリンクを通してルータ４に送信する（Ｓ１０４）。
【００６１】
上記Ｓ１０１において、仮想ＩＰアドレスでない場合、サーバロードバランシング処理部５１は、受信した転送対象パケットの宛先ＩＰアドレスがサーバロードバランサ５宛であるか否かを識別する（Ｓ１０５）。
【００６２】
宛先ＩＰアドレスがサーバロードバランサ５宛である場合、サーバロードバランシング処理部５１は負荷分散対象サーバ７からの帰り（戻り）のパケットに対する変換処理を行う（Ｓ１０６）。
【００６３】
なお、宛先ＩＰアドレスがサーバロードバランサ５宛でない場合、転送対象パケットはリンク障害監視用パケットであるので、サーバロードバランシング処理部５１は何も処理を行わない。
【００６４】
帰りのパケットに対する変換処理には、（１）宛先サーバ選択処理部５２が、アドレス書換え部５３の有するセッション・テーブル５４を参照し、転送対象パケットの送信元ポート番号（セッション・テーブル５４においては、宛先ポート番号として記録されている）に基づいてセッションを識別する処理と、（２）アドレス書換え部５３が、セッション・テーブル５４を参照し、転送対象パケットの宛先ＩＰアドレス及び送信元ＩＰアドレスを書き換える処理とがある。
【００６５】
サーバロードバランシング処理部５１における変換処理の後、パケット送信部５６は転送対象パケットを対応の残りのリンクを通してルータ４に送信する（Ｓ１０７）。
【００６６】
ルータ４の障害検出・復旧検出部４６からリンク障害監視用パケットがサーバロードバランサ５に送信された場合、サーバロードバランサ５においては、障害・復旧通知処理部５７がパケット受信部５５を通してこのリンク障害監視用パケットを受信し、正常であるときは（ＩＣＭＰ−ＥＣＨＯ要求メッセージを受信したときは）パケット送信部５６を通して応答（ＩＣＭＰ−ＥＣＨＯ応答メッセージ）を返す。
【００６７】
〔サーバ負荷分散システムの動作〕
次に、上述したサーバ負荷分散システム１の各種動作例について説明する。
【００６８】
［１］行きパケットの処理
先ず、図３及び図１１を併せ参照して、サーバ負荷分散システム１におけるクライアント端末３から負荷分散対象サーバ７への行きパケットの処理について説明する。
【００６９】
ＩＰネットワーク２に接続されるクライアント端末３は、負荷分散対象サーバ７にアクセスする場合、仮想ＩＰアドレス（ここでは、ＩｐＡ．１）を示すパケット（第１のパケット）を送出する。
【００７０】
この第１のパケット（ＴＣＰ要求メッセージ）は、ヘッダ部及びデータ部を有し、ヘッダ部には送信元ＩＰアドレスＩＰ−ＳＡ「ＩｐＣ．１」、宛先ＩＰアドレスＩＰ−ＤＡ「ＩｐＡ．１」、送信元ＭＡＣアドレスＭＡＣ−ＳＡ「Ｍ１６」、及び宛先ＭＡＣアドレスＭＡＣ−ＤＡ「Ｍ１」を含んでいる。
【００７１】
この第１のパケットにおける宛先ＭＡＣアドレスＭＡＣ−ＤＡ「Ｍ１」は、クライアント端末３とルータ４とがＡＲＰ（Address Resolution Protocol）要求メッセージ及びＡＲＰ応答メッセージを送受信することにより求められる。
【００７２】
つまり、ＡＲＰはＩＰアドレスをＭＡＣアドレスに自動変換するプロトコルであり、クライアント端末３が相手のＩＰアドレスを指定したＡＲＰ要求メッセージをルータ４にブロードキャストすると、指定されたＩＰアドレスに対応するルータ４はＭＡＣアドレスとＩＰアドレスとを組にしたＡＲＰ応答メッセージをクライアント端末３に返送する。
【００７３】
ルータ４は、宛先ＩＰアドレスＩＰ−ＤＡが予め設定（事前設定）された仮想ＩＰアドレス「ＩｐＡ．１」を示す第１のパケットを受信した場合、正常に動作可能な複数の対象リンクの中からどれか１つを選択し、選択リンクを通してサーバロードバランサ（ＳＬＢ＃１）５に第２のパケットを転送する。
【００７４】
この第２のパケット（ＴＣＰ要求メッセージ）は、ヘッダ部及びデータ部を有し、ヘッダ部には送信元ＩＰアドレスＩＰ−ＳＡ「ＩｐＣ．１」、宛先ＩＰアドレスＩＰ−ＤＡ「ＩｐＡ．１」、送信元ＭＡＣアドレスＭＡＣ−ＳＡ「Ｍ２」、及び宛先ＭＡＣアドレスＭＡＣ−ＤＡ「Ｍ１２」を含んでいる。
【００７５】
この第２のパケットにおける宛先ＭＡＣアドレスＭＡＣ−ＤＡ「Ｍ１２」は、ルータ４とサーバロードバランサ（＃１）５とがＡＲＰ要求メッセージ及びＡＲＰ応答メッセージを送受信することにより求められる。
【００７６】
対象リンクとなり得るリンクは事前設定しておき、サーバロードバランサ５のＩＰアドレスに基づいて識別される。
【００７７】
ルータ４おけるリンク選択は、上述したように、受信した転送対象の第１のパケットの送信元ＩＰアドレスＩＰ−ＳＡ「ＩｐＣ．１」にハッシュ関数をかけることで実現する。
【００７８】
サーバロードバランサ（＃１）５は、選択された自己収容のリンクの１つを通して、宛先ＩＰアドレスＩＰ−ＤＡが仮想ＩＰアドレスを示す第２のパケットを受信した場合、実際にパケットを処理すべき負荷分散対象サーバ７を決定するとともに、セッション識別のために負荷分散対象サーバ７のポート番号を決定する。
【００７９】
次に、サーバロードバランサ５は、（１）受信した第２のパケットの宛先ＩＰアドレスＩＰ−ＤＡ「ＩｐＡ．１」を決定済負荷分散対象サーバ７のＩＰアドレス「ＩｐＢ．３」に、（２）第２のパケットの宛先ポート番号値「１０」を決定済ポート番号値「１」に、（３）第２のパケットの送信元ＩＰアドレスＩＰ−ＳＡ「ＩｐＣ．１」を自装置のＩＰアドレス、つまり実際にパケットを送信するリンクを収容するサーバロードバランサ５対応のＩＰアドレス「ＩｐＨ．１」に、（４）第２のパケットの宛先ＭＡＣアドレスＭＡＣ−ＤＡ「Ｍ１２」をルータ４のＭＡＣアドレス「Ｍ３」に、かつ（５）第２のパケットの送信元ＭＡＣアドレスＭＡＣ−ＳＡ「Ｍ２」を自装置のＭＡＣアドレス「Ｍ１３」にそれぞれ変換したヘッダ部を、受信した第２のパケットのデータ部に付加した第３のパケットをルータ４に送信する。
【００８０】
ここで、ルータ４のＭＡＣアドレス「Ｍ３」は、負荷分散対象サーバ７のＩＰアドレスとＭＡＣアドレスとの対応関係を予め設定しているポリシーテーブル（図示省略）に基づいて求める。
【００８１】
この第３のパケット（ＴＣＰ要求メッセージ）は、ヘッダ部及びデータ部を有し、ヘッダ部には送信元ＩＰアドレスＩＰ−ＳＡ「ＩｐＨ．１」、宛先ＩＰアドレスＩＰ−ＤＡ「ＩｐＢ．３」、送信元ＭＡＣアドレスＭＡＣ−ＳＡ「Ｍ１３」、及び宛先ＭＡＣアドレスＭＡＣ−ＤＡ「Ｍ３」を含んでいる。
【００８２】
さらに、サーバロードバランサ５においては、変換前後のＩＰアドレス及び宛先ポート番号をセッション・テーブル５４（図９中の符号５４０参照）に記録する。
【００８３】
ルータ４は、サーバロードバランサ５からリンクを通して受信した第３のパケットの宛先ＩＰアドレスＩＰ−ＤＡにより宛先を決定し、ヘッダ部の送信元ＭＡＣアドレスＭＡＣ−ＳＡ及び宛先ＭＡＣアドレスＭＡＣ−ＤＡを変換して、負荷分散対象サーバ（＃１）７に第４のパケットとして中継（転送）する。
【００８４】
この第４のパケット（ＴＣＰ要求メッセージ）は、ヘッダ部及びデータ部を有し、ヘッダ部には送信元ＩＰアドレスＩＰ−ＳＡ「ＩｐＨ．１」、宛先ＩＰアドレスＩＰ−ＤＡ「ＩｐＢ．３」、送信元ＭＡＣアドレスＭＡＣ−ＳＡ「Ｍ８」、及び宛先ＭＡＣアドレスＭＡＣ−ＤＡ「Ｍ１１」を含んでいる。
【００８５】
この第４のパケットにおける宛先ＭＡＣアドレスＭＡＣ−ＤＡ「Ｍ１１」は、ルータ４と負荷分散対象サーバ（＃１）７とがＡＲＰ要求メッセージ及びＡＲＰ応答メッセージを送受信することにより求められる。
【００８６】
指定された負荷分散対象サーバ（＃１）７は、ルータ４から送信された第４のパケットをＬＡＮ６を介して受信して所定の処理を施した後、クライアント端末３への応答パケットを作成する。
【００８７】
［２］帰り（戻り）パケットの処理
次に、図４及び図１２を併せ参照して、サーバ負荷分散システム１における負荷分散対象サーバ（＃１）７からクライアント端末３への帰り（戻り）パケットの処理について説明する。
【００８８】
負荷分散対象サーバ（＃１）７は、作成したクライアント端末３宛（厳密には、サーバロードバランサ（ＳＬＢ＃１）５宛）の応答パケットをＬＡＮ６を通して第５のパケットとしてルータ４に送信する。
【００８９】
この第５のパケット（ＴＣＰ応答メッセージ）は、ヘッダ部及びデータ部を有し、ヘッダ部には送信元ＩＰアドレスＩＰ−ＳＡ「ＩｐＢ．３」、宛先ＩＰアドレスＩＰ−ＤＡ「ＩｐＨ．１」、送信元ＭＡＣアドレスＭＡＣ−ＳＡ「Ｍ１１」、及び宛先ＭＡＣアドレスＭＡＣ−ＤＡ「Ｍ８」を含んでいる。
【００９０】
この第５のパケットにおける宛先ＭＡＣアドレスＭＡＣ−ＤＡ「Ｍ８」は、ルータ４と負荷分散対象サーバ（＃１）７とがＡＲＰ要求メッセージ及びＡＲＰ応答メッセージを送受信することにより求められる。
【００９１】
ルータ４は、負荷分散対象サーバ７からＬＡＮ６を介して第５のパケットを受信した場合、宛先ＩＰアドレスＩＰ−ＤＡに基づいてリンクを決定し、ヘッダ部の送信元ＭＡＣアドレスＭＡＣ−ＳＡ及び宛先ＭＡＣアドレスＭＡＣ−ＤＡを変換して、サーバロードバランサ５に第６のパケットとして中継する。
【００９２】
この第６のパケット（ＴＣＰ応答メッセージ）は、ヘッダ部及びデータ部を有し、ヘッダ部には送信元ＩＰアドレスＩＰ−ＳＡ「ＩｐＢ．３」、宛先ＩＰアドレスＩＰ−ＤＡ「ＩｐＨ．１」、送信元ＭＡＣアドレスＭＡＣ−ＳＡ「Ｍ３」、及び宛先ＭＡＣアドレスＭＡＣ−ＤＡ「Ｍ１３」を含んでいる。
【００９３】
この第６のパケットにおける宛先ＭＡＣアドレスＭＡＣ−ＤＡ「Ｍ１３」は、ルータ４とサーバロードバランサ（＃１）５とがＡＲＰ要求メッセージ及びＡＲＰ応答メッセージを送受信することにより求められる。
【００９４】
この場合、宛先ＩＰアドレスＩＰ−ＤＡはサーバロードバランサ（＃１）５のＩＰアドレスを示しているため、対応のリンクに第６のパケットが転送される。
【００９５】
サーバロードバランサ（＃１）５は、帰りパケットとして第６のパケットを受信した場合、セッション・テーブル５４（図９中の符号５４０参照）をチェックし、（１）宛先ＩＰアドレスＩＰ−ＤＡをそのセッションのクライアント端末３のＩＰアドレス「ＩｐＣ．１」に、（２）送信元ＩＰアドレスＩＰ−ＳＡをそのセッションの仮想ＩＰアドレス「ＩｐＡ．１」に、かつ（３）宛先ポート番号値「１」をポート番号値「１０」にそれぞれ変換する。
【００９６】
また、サーバロードバランサ５は、（４）受信した第６のパケットの宛先ＭＡＣアドレスＭＡＣ−ＤＡ「Ｍ１３」をルータ４のＭＡＣアドレス「Ｍ２」に、かつ（５）第６のパケットの送信元ＭＡＣアドレスＭＡＣ−ＳＡ「Ｍ３」を自装置のＭＡＣアドレス「Ｍ１２」にそれぞれ変換する。
【００９７】
ここで、ルータ４のＭＡＣアドレス「Ｍ２」は、ルータ４のＩＰアドレスとＭＡＣアドレスとの対応関係を予め設定しているポリシーテーブルに基づいて求める。
【００９８】
そして、サーバロードバランサ５は変換したヘッダ部を第６のパケットのデータ部に付加した第７のパケットをルータ４に送信する。
【００９９】
この第７のパケット（ＴＣＰ応答メッセージ）は、ヘッダ部及びデータ部を有し、ヘッダ部には送信元ＩＰアドレスＩＰ−ＳＡ「ＩｐＡ．１」、宛先ＩＰアドレスＩＰ−ＤＡ「ＩｐＣ．３」、送信元ＭＡＣアドレスＭＡＣ−ＳＡ「Ｍ１２」、及び宛先ＭＡＣアドレスＭＡＣ−ＤＡ「Ｍ２」を含んでいる。
【０１００】
ルータ４は、受信した第７のパケットの宛先ＩＰアドレスＩＰ−ＤＡ「ＩｐＣ．１」に基づいて宛先を決定し、宛先ＭＡＣアドレスＭＡＣ−ＤＡ及び送信元ＭＡＣアドレスＭＡＣ−ＳＡを変換した第８のパケットをＩＰネットワーク２に送信する。
【０１０１】
この第８のパケット（ＴＣＰ応答メッセージ）は、ヘッダ部及びデータ部を有し、ヘッダ部には送信元ＩＰアドレスＩＰ−ＳＡ「ＩｐＡ．１」、宛先ＩＰアドレスＩＰ−ＤＡ「ＩｐＣ．３」、送信元ＭＡＣアドレスＭＡＣ−ＳＡ「Ｍ１」、及び宛先ＭＡＣアドレスＭＡＣ−ＤＡ「Ｍ１６」を含んでいる。
【０１０２】
この第８のパケットにおける宛先ＭＡＣアドレスＭＡＣ−ＤＡ「Ｍ１６」は、クライアント端末３とルータ４とがＡＲＰ要求メッセージ及びＡＲＰ応答メッセージを送受信することにより求められる。
【０１０３】
クライアント端末３は、ＩＰネットワーク２を通して、負荷分散対象サーバ（＃１）７から返送された応答パケット対応の第８のパケットを受信する。
【０１０４】
［３］ルータにおける障害検出・障害復旧処理
次に、図１３を参照して、ルータ４における障害検出・障害復旧処理について説明する。
【０１０５】
〈障害検出処理〉
ルータ４は、全てのサーバロードバランサ（ＳＬＢ＃１〜＃Ｎ）５に収容される各リンク（ＩＰアドレス毎に存在）に、ＲＦＣ７９２規定のＩＣＭＰ（Internet Control Message Protocol）に則って、定期的に疎通確認のためのＩＣＭＰ−ＥＣＨＯ要求メッセージ（パケット）を送信し、その応答としてのＩＣＭＰ−ＥＣＨＯ応答メッセージを確認する。
【０１０６】
ルータ４は、応答のないリンクが１つでも存在するサーバロードバランサ５は障害と見なす。障害を検出した場合、ルータ４は障害を検出したサーバロードバランサ５への全てのリンクを負荷分散対象リンクから外す縮退処理を実行する。
【０１０７】
図１３に示す例では、サーバロードバランサ（＃１）５に収容されているリンク（＃１，＃２）の内のリンク（＃２）から所定時間内にＩＣＭＰ−ＥＣＨＯ応答メッセージが返送されないので、ルータ４は、リンク（＃１，＃２）が属しているリンクを負荷分散対象リンクから外す。負荷分散対象リンクから外されたリンクは、図５に示すリンク選択処理部４７の有するテーブル４８で管理される。
【０１０８】
なお、各サーバロードバランサ５のＩＰアドレスの値は、テーブル４８に事前設定されている。どのリンクがどのサーバロードバランサ５に存在しているかについては、テーブル４８に事前設定されている。
【０１０９】
〈障害復旧処理〉
ルータ４は、上述した障害検出処理と同様に、全てのサーバロードバランサ５の各リンクに、定期的に疎通確認のためのＩＣＭＰ−ＥＣＨＯ要求メッセージを送信し、その応答としてのＩＣＭＰ−ＥＣＨＯ応答メッセージを確認する。
【０１１０】
ルータ４は、上述した障害検出処理において負荷分散対象リンクから外したリンクを収容するサーバロードバランサ５の全てのリンク上で正しく応答としてのＩＣＭＰ−ＥＣＨＯ応答メッセージが返ってきた場合、そのサーバロードバランサ５及びリンクが復旧したと見なし、負荷分散対象リンクに追加する切り戻し処理を実行する。
【０１１１】
この切り戻し処理においては、復旧を検出した直後または管理者からの手動によるコマンド投入を契機にして、復旧を検出したリンクを負荷分散対象リンクとしてテーブル４８に追加する。
【０１１２】
［４］ルータにおける縮退時・復旧時のリンク選択処理
次に、図１４を参照して、ルータ４における縮退時・復旧時のリンク選択処理（リンク選択アルゴリズム）について説明する。なお、ここでのリンク選択処理においては、３つのサーバロードバランサ（ＳＬＢ＃１，＃２，＃３）５が存在する場合を前提とする。
【０１１３】
正常時には、ルータ４は、第１のサーバロードバランサ（＃１）５上にセッションＳ１及びＳ４を、第２のサーバロードバランサ（＃２）５上にセッションＳ２及びＳ５を、かつ第３のサーバロードバランサ（＃３）５上にセッションＳ３，Ｓ６及びＳ７を振り分けている、つまりリンクを選択している状態とする。
【０１１４】
なお、１つのセッションは行き及び帰りのパケット転送のために、２つの物理リンクを使用する。同じサーバロードバランサ５における複数のセッションは同一のリンクに多重可能である。
【０１１５】
ルータ４は、この状態で第１のサーバロードバランサ（＃１）５に収容されるリンクに障害が発生したことを上述した障害検出処理により検出した場合、障害発生の第１のサーバロードバランサ（＃１）５上にあるセッションＳ１及びＳ４のみを他の正常なサーバロードバランサ（＃２，＃３）５上に振り分ける。
【０１１６】
つまり、正常なサーバロードバランサ（＃２，＃３）５上にあるセッションはそのままとする。この結果、例えば、第２のサーバロードバランサ（＃２）５上にセッションＳ２，Ｓ５及びＳ１が、かつ第３のサーバロードバランサ（＃３）５上にセッションＳ３，Ｓ６，Ｓ７及びＳ４が振り分けられる。
【０１１７】
このようなリンク選択の縮退処理は、現存のセッションを継続させるために必要である。つまり、今まで第２のサーバロードバランサ（＃２）５を通してサーバロードバランシング処理されていたのに、途中から別の第３のサーバロードバランサ（＃３）５を通して処理するようになると、第３のサーバロードバランサ（＃３）５はこのセッションを新しいセッションとして認識し、第３のサーバロードバランサ（＃３）５のアルゴリズムで宛先サーバ及びポート番号を決めてしまうので、今までとは異なるサーバに振り分ける可能性がある。
【０１１８】
この結果、上位アプリケーョン（アプリケーションソフトウェア）で異常となり、セッションが切断されてしまう。リンク選択の縮退処理により、セッションの切断を極力回避可能である。
【０１１９】
ルータ４は、上述した障害復旧処理により、第１のサーバロードバランサ（＃１）５に収容のリンクの障害復旧を検出した場合、正常時のリンク選択状態に戻すように処理する。
【０１２０】
〔変形例〕
上述した一実施の形態のサーバ負荷分散システム１においては、各々が図８に示す構成を採る複数のサーバロードバランサ（＃１〜＃Ｎ）５を個別に設けた。しかし、実際にサーバロードバランサ５を構成する場合、例えば各サーバロードバランサ５の機能を複数枚のＮＩＣ（Network Interface Card）の個々に実装し、同一の装置筐体内に複数枚のＮＩＣを収容することが可能である。また、ルータ４の機能を個別のカードに実装し、サーバロードバランサ５の機能を実装した複数枚のＮＩＣとともに同一の装置筐体内に収容することが可能である。
【０１２１】
上述した一実施の形態における各処理はコンピュータで実行可能なプログラムとして提供され、ＣＤ−ＲＯＭやフロッピーディスクなどの記録媒体、さらには通信回線を経て提供可能である。
【０１２２】
〔その他〕
（付記１）  各々少なくとも第１及び第２のリンクを収容し；
予め定められた仮想ＩＰアドレス宛の転送対象パケットを前記第１及び第２のリンクの一方を通して受信した場合、この仮想ＩＰアドレスに基づいて群特定され、かつ各々固有のＩＰアドレスを割り当てられた複数の負荷分散対象サーバのいずれかを選択する手段と；
前記受信された仮想ＩＰアドレス宛の転送対象パケットの前記仮想ＩＰアドレスを前記選択された負荷分散対象サーバの前記固有のＩＰアドレスに書き換え、かつ前記受信された仮想ＩＰアドレス宛の転送対象パケットの送信元ＩＰアドレスを前記第１及び第２のリンクの他方を特定可能なＩＰアドレスに書き換える手段と；
をそれぞれ有する複数のサーバロードバランサと；
前記第１及び第２のリンクを介して前記複数のサーバロードバランサのそれぞれに接続され；
前記仮想ＩＰアドレス宛の転送対象パケットの受信を識別する手段と；
前記識別された仮想ＩＰアドレス宛の転送対象パケットを前記複数のサーバロードバランサのいずれかに転送するための前記第１及び第２のリンクの一方を選択する手段と；
前記複数のサーバロードバランサのいずれかから前記第１及び第２のリンクの他方を通して受信した転送対象パケットを前記選択された負荷分散対象サーバに転送させ、前記選択された負荷分散対象サーバから返送された転送対象パケットを前記複数のサーバロードバランサのいずれかに前記第１及び第２のリンクの他方を通して転送させる手段と；
を有する中継装置と；
を備えるサーバ負荷分散システム。
【０１２３】
（付記２）  前記中継装置の前記選択手段は、
前記識別された仮想ＩＰアドレス宛の転送対象パケットに含まれている送信元ＩＰアドレスの値に一方向関数をかけて生成した疑似乱数に基づいて、前記複数のサーバロードバランサのいずれかに転送するための前記第１及び第２のリンクの一方を選択する
付記１記載のサーバ負荷分散システム。
【０１２４】
（付記３）  前記サーバロードバランサの各々は、
前記選択した負荷分散対象サーバから返送された転送対象パケットを前記中継装置及び前記第１及び第２のリンクの他方を通して受信した場合、前記受信した転送対象パケットに含まれている前記選択した負荷分散対象サーバの前記固有のＩＰアドレスを前記仮想ＩＰアドレスに送信元ＩＰアドレスとして書き換え、かつ前記受信した転送対象パケットに含まれている前記第１及び第２のリンクの他方を特定可能なＩＰアドレスを前記仮想ＩＰアドレス宛の転送対象パケットに含まれていた前記送信元ＩＰアドレスに宛先ＩＰアドレスとして書き換え、前記第１及び第２のリンクの一方を通して前記中継装置に転送させる手段を更に有する
付記１記載のサーバ負荷分散システム。
【０１２５】
（付記４）  前記中継装置は、
前記複数のサーバロードバランサのそれぞれに収容されている前記第１及び第２のリンクをグループ化し、各グループの前記第１及び第２のリンクに定期的に監視用パケットをそれぞれ送信し、応答のないリンクを含むグループに属する前記第１及び第２のリンクを障害として選択対象外に設定する手段を更に有する
付記１記載のサーバ負荷分散システム。
【０１２６】
（付記５）  前記中継装置は、
前記複数のサーバロードバランサのそれぞれに収容されている前記第１及び第２のリンクの障害検出時、正常な前記第１及び第２のリンクを収容している正常サーバロードバランサに振り分けている転送対象パケットはその振り分け状態を維持し、障害の前記第１及び第２のリンクを収容している障害サーバロードバランサに振り分けていた転送対象パケットのみを前記正常サーバロードバランサに振り分け状態を変更する手段を更に有する
付記４記載のサーバ負荷分散システム。
【０１２７】
（付記６）  少なくとも第１及び第２のリンクをそれぞれ収容する複数のサーバロードバランサの各々において；
予め定められた仮想ＩＰアドレス宛の転送対象パケットを前記第１及び第２のリンクの一方を通して受信した場合、この仮想ＩＰアドレスに基づいて群特定され、かつ各々固有のＩＰアドレスを割り当てられた複数の負荷分散対象サーバのいずれかを選択するステップと；
前記受信された仮想ＩＰアドレス宛の転送対象パケットの前記仮想ＩＰアドレスを前記選択された負荷分散対象サーバの前記固有のＩＰアドレスに書き換え、かつ前記受信された仮想ＩＰアドレス宛の転送対象パケットの送信元ＩＰアドレスを前記第１及び第２のリンクの他方を特定可能なＩＰアドレスに書き換えるステップとを有し；
前記第１及び第２のリンクを介して前記複数のサーバロードバランサのそれぞれに接続される中継装置において；
前記仮想ＩＰアドレス宛の転送対象パケットの受信を識別するステップと；
前記識別された仮想ＩＰアドレス宛の転送対象パケットを前記複数のサーバロードバランサのいずれかに転送するための前記第１及び第２のリンクの一方を選択するステップと；
前記複数のサーバロードバランサのいずれかから前記第１及び第２のリンクの他方を通して受信した転送対象パケットを前記選択された負荷分散対象サーバに転送させ、前記選択された負荷分散対象サーバから返送された転送対象パケットを前記複数のサーバロードバランサのいずれかに前記第１及び第２のリンクの他方を通して転送させるステップとを有する；
サーバ負荷分散方法。
【０１２８】
（付記７）  前記中継装置において、
前記識別された仮想ＩＰアドレス宛の転送対象パケットに含まれている送信元ＩＰアドレスの値に一方向関数をかけて生成した疑似乱数に基づいて、前記複数のサーバロードバランサのいずれかに転送するための前記第１及び第２のリンクの一方を選択するステップを更に有する
付記６記載のサーバ負荷分散方法。
【０１２９】
（付記８）  前記サーバロードバランサの各々において、
前記選択した負荷分散対象サーバから返送された転送対象パケットを前記中継装置及び前記第１及び第２のリンクの他方を通して受信した場合、前記受信した転送対象パケットに含まれている前記選択した負荷分散対象サーバの前記固有のＩＰアドレスを前記仮想ＩＰアドレスに送信元ＩＰアドレスとして書き換え、かつ前記受信した転送対象パケットに含まれている前記第１及び第２のリンクの他方を特定可能なＩＰアドレスを前記仮想ＩＰアドレス宛の転送対象パケットに含まれていた前記送信元ＩＰアドレスに宛先ＩＰアドレスとして書き換え、前記第１及び第２のリンクの一方を通して前記中継装置に転送させるステップを更に有する
付記６記載のサーバ負荷分散方法。
【０１３０】
（付記９）  前記中継装置において、
前記複数のサーバロードバランサのそれぞれに収容されている前記第１及び第２のリンクをグループ化し、各グループの前記第１及び第２のリンクに定期的に監視用パケットをそれぞれ送信し、応答のないリンクを含むグループに属する前記第１及び第２のリンクを障害として選択対象外に設定するステップを更に有する
付記６記載のサーバ負荷分散方法。
【０１３１】
（付記１０）  前記中継装置において、
前記複数のサーバロードバランサのそれぞれに収容されている前記第１及び第２のリンクの障害検出時、正常な前記第１及び第２のリンクを収容している正常サーバロードバランサに振り分けている転送対象パケットはその振り分け状態を維持し、障害の前記第１及び第２のリンクを収容している障害サーバロードバランサに振り分けていた転送対象パケットのみを前記正常サーバロードバランサに振り分け状態を変更するステップを更に有する
付記９記載のサーバ負荷分散方法。
【０１３２】
（付記１１）  複数のサーバへ負荷分散を行うサーバロードバランサ機能を複数有し、クライアント端末から受信したパケットの送信元識別情報に基づいて、処理を行わせる１つのサーバロードバランサ機能を特定する
サーバ負荷分散装置。
【０１３３】
【発明の効果】
以上説明したように、本発明によれば、複数のサーバロードバランサの各々がサーバ・クライアント間通信のパケットの処理速度のボトルネックになることを回避し、サーバ・クライアント間での高速通信を可能にする。
【０１３４】
また、本発明によれば、サーバ・クライアント間通信のパケットにプロトコル（例えば、ＦＴＰ，ＰＯＰ，ＳＭＴＰ，ＨＴＴＰなど）による偏りが生じた場合でも、複数の負荷分散対象サーバにパケットを均等に振り分けることができる。
【０１３５】
したがって、今後、急拡大するＷｅｂ通信に有効である。
【０１３６】
また、本発明によれば、行き及び帰りの転送対象パケットが同一のサーバロードバランサを通過することを可能にする。
【０１３７】
また、本発明によれば、中継装置と各サーバロードバランサとの間に複数リンクを設けた場合、行きの転送対象パケットが通るリンクと、帰りの転送対象パケットが通るリンクとのどちらが障害になっても正しく通信できなくなるので、これを確実に検出することができる。
【０１３８】
さらに、本発明によれば、サーバロードバランサまたはリンクの障害発生時に、現存するセッションを可能な限り継続することができる。
【図面の簡単な説明】
【図１】  １つのサーバロードバランサ利用の従来のサーバ負荷分散システムの一例を示すブロック図。
【図２】  複数のサーバロードバランサ利用の従来のサーバ負荷分散システムの一例を示すブロック図。
【図３】  本発明の一実施の形態におけるサーバ負荷分散システムの構成を行きパケットの流れとともに示すブロック図。
【図４】  本発明の一実施の形態におけるサーバ負荷分散システムの構成を帰り（戻り）パケットの流れとともに示すブロック図。
【図５】  図３及び図４におけるルータの詳細構成を示すブロック図。
【図６】  ルータにおけるパケット中継処理の概要を示すフローチャート。
【図７】  送信元ＩＰアドレスにハッシュ関数をかけてリンクを選択する方法を説明するための図。
【図８】  図３及び図４におけるサーバロードバランサの詳細構成を示すブロック図。
【図９】  サーバロードバランサのセッション・テーブルの構成例を示す図。
【図１０】  サーバロードバランサにおける処理手順の概要を示すフローチャート。
【図１１】  図３に示すサーバ負荷分散システムにおける行きパケット処理を説明するための図。
【図１２】  図４に示すサーバ負荷分散システムにおける帰りパケット処理を説明するための図。
【図１３】  ルータにおける障害検出・障害復旧処理を説明するための図。
【図１４】  ルータにおける縮退時・復旧時のリンク選択処理を説明するための図。
【符号の説明】
１    サーバ負荷分散システム
２    ＩＰネットワーク
３    クライアント端末
４    ルータ
５    サーバロードバランサ（ＳＬＢ）
６    ＬＡＮ
７    負荷分散対象サーバ
４１    ルーティング処理部
４２    ルーティングテーブル
４３    パケット転送部
４４    パケット受信部
４５    パケット判別部
４６    障害検出・復旧検出部
４７    リンク選択処理部
４８    テーブル
５１    サーバロードバランシング処理部
５２    宛先サーバ選択処理部
５３    アドレス書換え部
５４    セッション・テーブル
５５    パケット受信部
５６    パケット送信部
５７    障害・復旧通知処理部
【図１】
0003898498.tif 000002
【図２】
0003898498.tif 000003
【図３】
0003898498.tif 000004
【図４】
0003898498.tif 000005
【図５】
0003898498.tif 000006
【図６】
0003898498.tif 000007
【図７】
0003898498.tif 000008
【図８】
0003898498.tif 000009
【図９】
0003898498.tif 000010
【図１０】
0003898498.tif 000011
【図１１】
0003898498.tif 000012
【図１２】
0003898498.tif 000013
【図１３】
0003898498.tif 000014
【図１４】
0003898498.tif 000015