JP4044855B2 - Session filtering method and load balancing apparatus - Google Patents
Session filtering method and load balancing apparatus Download PDFInfo
- Publication number
- JP4044855B2 JP4044855B2 JP2003038860A JP2003038860A JP4044855B2 JP 4044855 B2 JP4044855 B2 JP 4044855B2 JP 2003038860 A JP2003038860 A JP 2003038860A JP 2003038860 A JP2003038860 A JP 2003038860A JP 4044855 B2 JP4044855 B2 JP 4044855B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- server
- sessions
- upper limit
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Description
【0001】
【発明の属する技術分野】
本発明はインターネット、IP (Internet Protocol)・VPN (Virtual Private Network)、広域インサーネット等のIPネットワーク上において、クライアントからサーバに対する接続要求を複数のサーバに振り分けることでサーバの負荷を分散するサーバ負荷分散技術に関する。
【0002】
【従来の技術】
従来のサーバ負荷分散技術としては、アウトチャネル方式とインチャネル方式の2つの方式が存在している。
【0003】
アウトチャネル方式は、クライアントがサーバのIPアドレスを解決するためにDNS (Domain Name System)にドメイン名からIPアドレスへのアドレス解決の問い合せを行った時点で、DNSが予め設定された当該ドメインに対応する複数のサーバのIPアドレスからいずれか1つのIPアドレスを応答することによりサーバの負荷を分散する方式である(非特許文献1)。
【0004】
インチャネル方式は、DNSで解決されるIPアドレスとしてネットワーク内に設置したロードバランサが保持するIPアドレス(仮想IPアドレス:以後VIPと記載)を応答することを前提とし、VIPアドレス宛の新規セッション確立要求を受信したロードバランサが、当該パケットの宛先IPアドレス、送信元IPアドレス、宛先Port番号、送信元Port番号、宛先MAC (Media Access Control)アドレス、送信元MACアドレスなどのヘッダ情報の各フィールドを、当該VIPと予め関連付けられた同一のコンテンツを保持する複数のサーバから選択した1台のサーバに転送するのに適した値に書き換えサーバへ転送し、新規セッション確立要求を受信する毎に転送先サーバを選択することによりサーバの負荷を分散させる方式である(特許文献1、特許文献2、非特許文献1)。
【0005】
また、インチャネル方式の負荷分散では、サーバからクライアント宛に送信される応答のデータがVIPを保持しているサーバからの応答であるようにクライアントに見せるために、パケットのヘッダ情報の変換を行いクライアントへ転送する。
【0006】
転送先のサーバを選択するアルゴリズムとしては、Round Robin, Least connction, Weihted Round Robin)等の方式がある。
【0007】
【特許文献1】
特開2001―236293号公報
【特許文献2】
特開2001―155736号公報
【非特許文献1】
トニー・ブルーク著「サーバ負荷分散技術」pp.3〜pp.34、オライリー・ジャパン発行、2001年12月13日発行、ISBN4-87311-065-3
【0008】
【発明が解決しようとする課題】
インチャネル方式の負荷分散を実装したロードバランサを複数のユーザで共用し、ユーザ毎に個別のサーバを設置してインターネット向けにサイトを運営しているような状況下において、特定のユーザが管理するサーバに対してトラフィックが集中した際には、ロードバランサが管理するクライアントとサーバ間のセッション情報が、当該セッション情報で全て消費し尽くしてしまい、その他のユーザが設置したサーバに対するトラフィックをロードバランサが受信した際に、コネクション情報を保持できずデータが廃棄されてしまうという問題がある。
【0009】
また、インチャネル方式の負荷分散を実装したロードバランサを、インターネット、IP-VPN、広域イーサ網などを経由して複数のユーザで供用しているような状況下において、特定のユーザ拠点からのトラフィックが集中した場合には、当該セッション情報によりロードバランサのセッション管理エントリが消費し尽くされてしまい、他の拠点に属するユーザからのトラフィックをロードバランサが受信した際にコネクション情報を保持できず、ユーザ拠点間の公平性が確保されないという問題がある。
【0010】
また、1台のサーバを複数のユーザで共用してシステムを構築するような状況(同一サーバ上で複数のユーザにASPサービスを提供するような状況)においては、特定のASPサービス提供者が提供するアプリケーションサービスとエンドユーザとの間のセッション情報によってロードバランサが保持可能なセッションエントリが消費し尽くされてしまい、その他のASPサービス事業者がサービス提供不能になるという問題がある。
【0011】
その他の問題として、短時間でエンドユーザからサーバに対してトラフィックが集中した際には、当該のトラフィックを処理するサーバの負荷が極めて高くなり、サーバがダウンししてしまうという問題があった。
【0012】
本発明の目的は、複数のユーザでロードバランサが共用した際にも、特定のユーザのトラフィック、特定のサーバ宛のセッション確立要求、特定のユーザ拠点からのセッション確立要求、特定のASPサービス事業者の提供するサービス宛のセッション確立要求等がシステムのセッション管理エントリを消費し尽くすことを防止し、様々なレベルでユーザ間の干渉を防止し、ユーザ間およびサービス間の公平性を確保し、サーバを共用する場合においても共用しているユーザ間の干渉を防止することができ、また、サーバ、および対抗装置の負荷をユーザ毎に適正に制御することができるセッションフィルタリング方法および負荷分散装置を提供することにある。
【0013】
【課題を解決するための手段】
エンドユーザ端末からのリクエストを複数のサーバのうちいずれかを選択して、転送する負荷分散機能を備えた本発明の装置は、ユーザ単位で最大接続可能セッション数と単位時間あたりに接続可能なセッション数を管理する手段と、ユーザ拠点(NWアドレス)単位で最大接続可能セッション数と単位時間あたりに接続可能なセッション数を管理する手段と、サーバグループ単位で最大接続可能セッション数と単位時間あたりに接続可能なセッション数を管理する手段と、サーバ単位で最大接続可能セッション数と単位時間あたりに接続可能なセッション数を管理する手段と、VIP単位で最大接続可能セッション数と単位時間あたりに接続可能なセッション数を管理する手段と、上記のいずれの単位の組み合わせにおいても階層的に最大接続可能セッション数と単位時間あたりに接続可能なセッション数を管理する手段を有する。
【0014】
エンドユーザ端末からサーバに対するセッション確立要求、すなわちVIP宛のセッション確立要求を受信した際に、上記に示したユーザ単位、ユーザ拠点(NWアドレス)単位、サーバグループ単位、VIP単位の階層的な組み合わせにおいて、当該アクセス要求が、最大接続可能セッション数の上限値未満かつ単位時間あたりに接続可能なセッション数未満である場合には、当該セッション確立要求を許可してサーバに転送し、いずれかの1つの単位においてセッション数が上限値以上となっている場合には当該セッション確立要求の廃棄を行う。
【0015】
また、エンドユーザ端末からサーバに対するセッション確立要求、すなわちVIP宛のセッション確立要求を受信した際に、特定のサーバにおいて最大接続可能セッション数の上限値以上かつ単位時間あたりに接続可能なセッション数の上限値以上である場合には、当該セッション確立要求の当該サーバへの転送を禁止し、同一コンテンツを提供可能なその他のサーバへの転送を試み、同一コンテンツを提供可能なその他のサーバ全てにおいても最大接続可能セッション数の上限値以上かつ単位時間あたりに接続可能なセッション数の上限値以上である場合には、当該のセッション確立要求を廃棄する。
【0016】
また、ユーザ単位、ユーザ拠点(NWアドレス)単位、サーバグループ単位、VIP単位、サーバ単位のいくつかもしくはそれら全てを階層的に組み合わせ、最大接続可能セッション数および単位時間あたりに接続可能なセッション数を管理する。
【0017】
階層的な組み合わせとしてサーバ単位の管理を含めている状況においてサーバ単位のセッション数制限に該当したセッション確立要求は先述の通り、当該サーバへはセッション確立要求を転送せず、同一コンテンツを提供可能なその他のサーバへの転送を試み、同一コンテンツを提供可能なその他のサーバ全てにおいても最大接続可能セッション数もしくは単位時間あたりに接続可能なセッション数が上限値以上である場合には、当該のセッション確立要求を廃棄する。
【0018】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して説明する。
【0019】
図1は本発明の一実施形態の負荷分散装置の構成図である。本実施形態の負荷分散装置はユーザ識別部100と新規接続可能セッション数比較部200と接続可能最大セッション数比較部300と負荷分散処理部400で構成されている。
【0020】
また、新規接続可能セッション数比較部200はユーザ単位新規接続可能上限値管理テーブル201とユーザ単位新規接続数カウンタ202とネットワークアドレス単位新規接続可能上限値管理テーブル203とネットワークアドレス単位新規接続数カウンタ204とサーバグループ単位新規接続可能上限値管理テーブル205とサーバグループ単位新規接続数カウンタ206とサーバ単位新規接続上限値管理テーブル207とサーバ単位新規接続数カウンタ208とVIP単位新規接続可能上限値管理テーブル209とVIP単位新規接続数カウンタ210とネットワークアドレス&サーバグループ単位新規接続可能上限値管理テーブル211とネットワークアドレス&サーバグループ単位新規接続数カウンタ212とネットワークアドレス&サーバ単位新規接続可能上限値管理テーブル213とネットワークアドレス&サーバ単位新規接続数カウンタ214と比較演算部215で構成される。
【0021】
接続可能最大セッション数管理部300はユーザ単位接続可能上限値管理テーブル301とユーザ単位接続数カウンタ302とネットワークアドレス単位接続可能上限値管理テーブル303とネットワークアドレス単位接続数カウンタ304とサーバグループ単位接続可能上限値管理テーブル305とサーバグループ単位接続数カウンタ306とサーバ単位接続可能上限値管理テーブル307とサーバ単位接続数カウンタ308とVIP単位接続可能上限値管理テーブル309とVIP単位接続カウンタ310とネットワークアドレス&サーバグループ単位接続可能上限値管理テーブル311とネットワークアドレス&サーバグループ単位接続数カウンタ312とネットワークアドレス&サーバ単位接続可能上限値管理テーブル313とネットワークアドレス&サーバ単位接続数カウンタ314と比較演算部315で構成される。
【0022】
クライアント端末からVIP宛の新規セッション確立要求(TCP:SYN等)を受信した際に、ユーザ識別部100はトラフィックのヘッダ情報から当該トラフィックがどのユーザに属するものであるかを確認し、システム内部処理用の内部識別子への変換を行う。ユーザの識別情報としてエンドユーザ端末の属するNWアドレスおよびエンドユーザ端末のIPアドレスの集合として定義されるユーザグループ、エンドユーザ端末からのトラフィックのレイヤ2の識別子であるEthernet におけるVLAN-ID, ATM (Asynchronous Transfer Mode)におけるVCI/VPI, MPLSにおけるシムヘッダ等を参照し、予め定義した内部識別子とのマッピングを行う。システム内部においては、上記のシステム固有の内部識別子を用いずEthernetにおけるVLAN-ID, ATMにおけるVCI/VPI, MPLSにおけるシムヘッダ等をそのまま内部識別子として用いることも可能である。
【0023】
ユーザ識別部100において内部識別子を付与された新規セッション確立要求(TCP:SYN等)は、新規接続可能セッション数比較部200において当該接続要求が受理可能であるかを比較・確認する処理が施される。
【0024】
新規接続可能セッション数比較部200は、内部識別子を付与されたユーザ単位、当該データを送信したクライアント端末が所属するNWアドレス単位、当該データの転送先サーバの集合であるサーバグループ単位、当該データを処理するサーバ単位、当該データの宛先VIP単位、当該データを送信したクライアント端末が所属するNWアドレスと当該データを処理するサーバの集合であるサーバグループとの階層的な単位、当該データを送信したクライアント端末が所属するNWアドレスと当該データを処理するサーバとの階層的な単位、それぞれもしくはそれらいくつかの組み合わせにおいて単位時間(可変)あたりに処理した新規の接続要求数を予め設定された上限値と比較することにより、当該新規接続要求が転送処理可能であるかを判断する。
【0025】
上記のそれぞれの単位において転送処理が可能であるかの比較対象となるセッション数の上限値はユーザ単位新規接続可能上限値管理テーブル201、ネットワークアドレス単位新規接続可能上限値管理テーブル203、サーバグループ単位新規接続可能上限値管理テーブル205、サーバ単位新規接続可能上限値管理テーブル207、VIP単位新規接続可能上限値管理テーブル209、ネットワークアドレス&サーバグループ単位新規接続可能上限値管理テーブル211、ネットワークアドレス&サーバ単位新規接続可能上限値管理テーブル213に予め設定されている。
【0026】
上記それぞれの単位において、単位時間あたりに処理した新規の接続要求の数はユーザ単位新規接続数カウンタ202、ネットワークアドレス単位新規接続数カウンタ204、サーバグループ単位新規接続数カウンタ206、サーバ単位新規接続数カウンタ208、VIP単位新規接続数カウンタ210、ネットワークアドレス&サーバグループ単位新規接続数カウンタ212、ネットワークアドレス&サーバ単位新規接続数カウンタ214で保持するが、当該カウンタの値は、クライアントから受信した新規セッション確立要求の中で転送を許可する毎にインクリメントされ、単位時間毎に0クリアされる。
【0027】
比較演算部215では、ユーザ単位新規接続可能上限値管理テーブル201の値とユーザ単位新規接続数カウンタ202の値を比較し、ネットワークアドレス単位新規接続可能上限値管理テーブル203とネットワークアドレス単位新規接続数カウンタ204の値を比較し、サーバグループ単位新規接続可能上限値管理テーブル205の値とサーバグループ単位新規接続数カウンタ206の値を比較し、サーバ単位新規接続可能上限値管理テーブル207の値とサーバ単位新規接続数カウンタ208の値を比較し、VIP単位新規接続可能上限値管理テーブル209の値とVIP単位新規接続数カウンタ210の値を比較し、ネットワークアドレス&サーバグループ単位新規接続可能上限値管理テーブル211の値とネットワークアドレス&サーバグループ単位新規接続数カウンタ212の値を比較し、ネットワーク&サーバ単位新規接続可能上限値管理テーブル213の値とネットワークアドレス&サーバ単位新規接続数カウンタ214の値を比較し、当該システムで利用している全ての比較においてカウンタ値がテーブルに設定されている上限値未満である場合に、当該新規セッション確立要求(TCP:SYN等)の転送を許可し、接続可能最大セッション数比較部300に処理を引き渡すが、いずれか1つの比較においても、カウンタ値が上限値以上となってしまった場合には、当該接続要求を廃棄する。
【0028】
また、比較演算部215では、サーバ単位新規接続可能上限値管理テーブル207の値とサーバ単位新規接続数カウンタ208の値を比較し、ネットワークアドレス&サーバ単位新規接続可能上限値管理テーブル213の値とネットワークアドレス&サーバ単位新規接続数カウンタ214の値の比較も行うが、当該システムで利用している上記の比較においてカウンタ値がテーブルに設定されている上限値未満である場合に、当該新規セッション確立要求(TCP:SYN等)の転送を許可し、接続可能最大セッション数比較部300に処理を引き渡すが、いずれか1つの比較においても、カウンタ値が上限値以上になってしまった場合には、当該サーバでは接続要求を処理不能であるために、当該サーバが属するサーバグループに属する別のサーバを転送先の候補として上限値とカウンタ値の比較を行う。
【0029】
接続可能最大セクション数比較部300は、内部識別子を付与されたユーザ単位、当該データを送信したクライアント端末が所属するNWアドレス単位、当該データの転送先サーバの集合であるサーバグループ単位、当該データを処理するサーバ単位、当該データの宛先VIP単位、当該データを送信したクライアント端末が所属するNWアドレスと当該データを処理するサーバの集合であるサーバグループとの階層的な単位、当該データを送信したクライアント端末が所属するNWアドレスと当該データを処理するサーバとの階層的な単位、それぞれもしくはそれらいくつかの組み合わせにおいて、同時に接続可能なコネクション数の上限値と新規の接続要求を受信した時点で確立しているコネクション数を比較することにより、当該新規接続要求が転送処理可能であるかを判断する。
【0030】
上記それぞれの単位において転送処理が可能であるかの比較対象となるセッション数の上限値はユーザ単位接続可能上限値管理テーブル301、ネットワークアドレス単位接続可能上限値管理テーブル303、サーバグループ単位接続可能上限値管理テーブル305、サーバ単位接続可能上限値管理テーブル307、VIP単位接続可能上限値管理テーブル309、ネットワークアドレス&サーバグループ単位接続可能上限値管理テーブル311、ネットワークアドレス&サーバ単位接続上限値管理テーブル313に予め設定する。
【0031】
上記それぞれの単位において、現在確立しているコネクションの数は、ユーザ単位接続数カウンタ302、ネットワークアドレス端子接続数カウンタ304、サーバグループ単位接続カウンタ306、サーバ単位接続数カウンタ308、VIP単位接続数カウンタ310、ネットワークアドレス&サーバグループ単位接続数カウンタ312、ネットワークアドレス&サーバ単位接続数カウンタ314で保持する。
【0032】
当該カウンタの値は、クライアントから受信した新規セッション確立要求(TCP:SYN等)をサーバに転送した後にサーバからコネクション確立応答があった時点でインクリメントする。
【0033】
クライアント・サーバの双方から既に確立しているセッションの閉鎖要求(TCP:FIN等)を受信した際には、当該コネクションの情報のエージング処理を開始し、エージングタイマーが0になった時点でコネクション情報の削除と、カウンタ値のデクリメントを行う。
【0034】
また、クライアントもしくはサーバからコネクションから、既に確立しているコネクションの緊急のコネクション閉鎖要求(TCP:RST等)を受信した際には、当該コネクションのエントリを即座に開放すると共に、カウンタ値のデクリメントを行う。
【0035】
比較演算部315では、ユーザ単位接続可能上限値管理テーブル301の値とユーザ単位接続カウンタ302の値を比較し、ネットワークアドレス単位接続可能上限値管理テーブル303の値とネットワークアドレス単位接続数カウンタ304の値を比較し、サーバグループ単位接続可能上限値管理テーブル305の値とサーバグループ単位接続数カウンタ306の値を比較し、サーバ単位接続可能上限値管理テーブル307の値とサーバ単位接続数カウンタ308の値を比較し、VIP単位接続可能上限値管理テーブル309の値とVIP単位接続数カウンタ310の値を比較し、ネットワークアドレス&サーバグループ単位接続可能上限値管理テーブル311の値とネットワークアドレス&サーバグループ単位接続数カウンタ312の値を比較し、ネットワークアドレス&サーバ単位接続可能上限値管理テーブル313の値とネットワークアドレス&サーバ単位接続数カウンタ314の値を比較し、当該システムで利用している全ての比較においてカウンタ値がテーブルに設定されている上限値未満である場合に、当該TCPコネクション接続要求の転送を許可し負荷分散処理部400に処理を引き渡すが、いずれか1つの比較においても、カウンタ値が上限値以上となってしまった場合には当該接続要求を廃棄する。ただし、サーバ単位での確認およびネットワークアドレス&サーバ単位での確認においては、当該サーバが属するサーバグループの他のサーバで処理可能な場合には当該接続処理不能サーバへの振り分けを禁止するだけであり、当該サーバの属するサーバグループの他のサーバへの転送可能性を探るために、上限値と現状接続数の比較を行いその他のサーバに設定されたカウンタの値が上限値未満であれば転送処理を行う。
【0036】
負荷分散処理部400では、当該宛先IPアドレス、宛先MACアドレス、送信元MACアドレスなどの各種ヘッダ情報を転送先のサーバに合わせて設定し、データを転送する。
【0037】
なお、上記で示したカウンタを全て同時に用いる必要はなくそれぞれ独立して利用の可否を決められることはもちろんである。また、カウンタの上記の内容に因らずカウンタの検索順序を自由に変更可能であることはもちろんである。
【0038】
さらに、カウンタの上限値をカウンタ毎にそれぞれ独立して設定できることはもちろんであり、かつカウンタの上限値を利用帯域に比例して配分可能であることももちろんである。
【0039】
なお、本発明は専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するものであってもよい。コンピュータ読み取り可能な記録媒体とは、フロッピーディスク、光磁気ディスク、CD―ROM等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータ読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間の間、動的にプログラムを保持するもの(伝送媒体もしくは伝送波)、その場合のサーバとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含む。
【0040】
【発明の効果】
以上説明したように、本発明によれば下記の効果がある。複数のユーザでロードバランサを共用した際にも、特定のユーザのトラフィック、特定のサーバ宛のセッション確立要求、特定のユーザ拠点からのセッション確立要求、特定のASPサービス事業者の提供するサービス宛のセッション確立要求等がシステムのセッション管理エントリを消費し尽くすことを防止し、様々なレベルでユーザ間の干渉を防止し、ユーザ間およびサービス間の公平性を確保することができる。サーバを共用する場合においても共用しているユーザ間の干渉を防止することができる。また、単位時間あたりに処理可能なセッション数を制限することにより本発明の装置と接続されたサーバおよび対抗装置の負荷をユーザ毎に適正に制御することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態の負荷分散装置の構成図である。
【図2】新規接続可能セッション数管理部の構成図である。
【図3】接続可能最大セッション数管理部の構成図である。
【符号の説明】
100 ユーザ識別部
200 新規接続可能セッション数比較部
300 接続可能最大セッション数比較部
400 負荷分散処理部
201 ユーザ単位新規接続可能上限値管理テーブル
202 ユーザ単位新規接続数カウンタ
203 ネットワークアドレス単位新規接続可能上限値管理テーブル
204 ネットワークアドレス単位新規接続数カウンタ
205 サーバグループ単位新規接続可能上限値管理テーブル
206 サーバグループ単位新規接続数カウンタ
207 サーバグループ単位新規接続可能上限値管理テーブル
208 サーバ単位新規接続数カウンタ
209 VIP単位新規接続可能上限値管理テーブル
210 VIP単位新規接続数カウンタ
211 ネットワークアドレス&サーバグループ単位新規接続可能上限値管理テーブル
212 ネットワークアドレス&サーバグループ単位新規接続数カウンタ
213 ネットワークアドレス&サーバ単位新規接続可能上限値管理テーブル
214 ネットワークアドレス&サーバ単位新規接続数カウンタ
215 比較演算部
301 ユーザ単位接続可能上限値管理テーブル
302 ユーザ単位接続数カウンタ
303 ネットワークアドレス単位接続可能上限値管理テーブル
304 ネットワークアドレス単位接続数カウンタ
305 サーバグループ単位接続可能上限値管理テーブル
306 サーバグループ単位接続数カウンタ
307 サーバ単位接続可能上限値管理テーブル
308 サーバ単位接続数カウンタ
309 VIP単位接続可能上限値管理テーブル
310 VIP単位接続数カウンタ
311 ネットワークアドレス&サーバグループ単位接続可能上限値管理テーブル
312 ネットワークアドレス&サーバグループ単位接続数カウンタ
313 ネットワークアドレス&サーバグループ単位接続可能上限値管理テーブル
314 ネットワークアドレス&サーバ単位接続数カウンタ
315 比較演算部[0001]
BACKGROUND OF THE INVENTION
The present invention is a server load that distributes a server load by distributing connection requests from a client to a server over a plurality of servers on an IP network such as the Internet, IP (Internet Protocol) / VPN (Virtual Private Network), and wide area Internet. Regarding distributed technology.
[0002]
[Prior art]
As conventional server load distribution techniques, there are two methods, an out-channel method and an in-channel method.
[0003]
The out-channel method supports DNS (Domain Name System) address resolution from a domain name to an IP address in order to resolve the server's IP address. The server load is distributed by responding to any one IP address from a plurality of server IP addresses (Non-Patent Document 1).
[0004]
The in-channel method establishes a new session addressed to a VIP address on the assumption that the IP address (virtual IP address: hereinafter referred to as VIP) held by the load balancer installed in the network is returned as an IP address resolved by DNS. The load balancer that received the request displays the header information fields such as the destination IP address, source IP address, destination port number, source port number, destination MAC (Media Access Control) address, and source MAC address of the packet. Each time a new session establishment request is received, the transfer destination is rewritten to a value suitable for transfer to a single server selected from a plurality of servers holding the same content previously associated with the VIP. This is a method of distributing the server load by selecting a server (Patent Document 1, Patent Document 2, Non-Patent Document 1).
[0005]
In the in-channel load distribution, packet header information is converted so that the response data sent from the server to the client appears to be the response from the server holding the VIP. Transfer to client.
[0006]
As an algorithm for selecting a destination server, there are methods such as Round Robin, Least connction, Weihted Round Robin).
[0007]
[Patent Document 1]
JP 2001-236293 A [Patent Document 2]
JP 2001-155736 A [Non-Patent Document 1]
"Server load balancing technology" by Tony Bruk, pp.3 to 34, published by O'Reilly Japan, published on December 13, 2001, ISBN4-87311-065-3
[0008]
[Problems to be solved by the invention]
A specific user manages a load balancer that implements in-channel load balancing among multiple users, and installs a separate server for each user and operates a site for the Internet. When traffic is concentrated on the server, the session information between the client and the server managed by the load balancer is completely consumed by the session information, and the load balancer handles the traffic for the server installed by other users. When receiving, there is a problem that connection information cannot be held and data is discarded.
[0009]
In addition, traffic from a specific user base in a situation where a load balancer that implements in-channel load balancing is used by multiple users via the Internet, IP-VPN, wide area Ethernet, etc. When the load balancer concentrates, the session management entry of the load balancer is consumed up by the session information, and when the load balancer receives traffic from a user belonging to another base, the connection information cannot be held and the user There is a problem that fairness between bases is not ensured.
[0010]
Also provided by a specific ASP service provider in situations where a single server is shared by multiple users to build a system (providing ASP services to multiple users on the same server) Session information between the application service and the end user to be consumed consumes session entries that can be held by the load balancer, and other ASP service providers cannot provide the service.
[0011]
As another problem, when traffic is concentrated on a server from an end user in a short time, there is a problem that the load on the server that processes the traffic becomes extremely high and the server goes down.
[0012]
It is an object of the present invention to provide traffic for a specific user, a request for establishing a session addressed to a specific server, a request for establishing a session from a specific user base, a specific ASP service provider even when a load balancer is shared by a plurality of users. Prevents session establishment requests addressed to services provided by the system from consuming system session management entries, prevents interference between users at various levels, ensures fairness between users and services, and server Provided is a session filtering method and a load balancer that can prevent interference between users who share the same, and can control the load of the server and the countermeasure device appropriately for each user There is to do.
[0013]
[Means for Solving the Problems]
The apparatus of the present invention having a load distribution function for selecting and transferring a request from an end user terminal from among a plurality of servers is the maximum number of connectable sessions per user and sessions connectable per unit time. A means to manage the number, a means to manage the maximum number of sessions that can be connected per user base (NW address) and the number of sessions that can be connected per unit time, and a maximum number of sessions that can be connected per server group and per unit time A means to manage the number of connectable sessions, a means to manage the maximum number of connectable sessions per server and the number of connectable sessions per unit time, and a maximum connectable session per VIP and connectable per unit time The maximum number of connections possible in any combination of the above units and means for managing the number of sessions And means for managing the number of connectable sessions per number of sessions and the unit time.
[0014]
When receiving a session establishment request from the end user terminal to the server, that is, a session establishment request addressed to the VIP, in the hierarchical combination of the above-mentioned user unit, user base (NW address) unit, server group unit, VIP unit When the access request is less than the upper limit value of the maximum connectable sessions and less than the number of sessions connectable per unit time, the session establishment request is permitted and transferred to the server. If the number of sessions in the unit exceeds the upper limit, the session establishment request is discarded.
[0015]
In addition, when receiving a session establishment request from an end user terminal to a server, that is, a session establishment request addressed to a VIP, the upper limit of the maximum number of sessions that can be connected to a specific server and the maximum number of sessions that can be connected per unit time If the value is greater than or equal to the value, the transfer of the session establishment request to the server is prohibited, the transfer to other servers that can provide the same content is attempted, and the maximum of all other servers that can provide the same content. If the upper limit value of the number of connectable sessions and the upper limit value of the number of sessions connectable per unit time are exceeded, the session establishment request is discarded.
[0016]
In addition, some or all of user units, user bases (NW address) units, server group units, VIP units, and server units are combined hierarchically, and the maximum number of sessions that can be connected and the number of sessions that can be connected per unit time. to manage.
[0017]
In situations where server-level management is included as a hierarchical combination, a session establishment request that corresponds to the limit on the number of sessions per server can be provided to the server without forwarding the session establishment request as described above. Attempts to transfer to another server, and if the maximum number of connectable sessions or the number of sessions connectable per unit time is greater than or equal to the upper limit on all other servers that can provide the same content, establish the session Discard the request.
[0018]
DETAILED DESCRIPTION OF THE INVENTION
Next, embodiments of the present invention will be described with reference to the drawings.
[0019]
FIG. 1 is a configuration diagram of a load distribution apparatus according to an embodiment of the present invention. The load distribution apparatus according to this embodiment includes a
[0020]
Also, the new connectable session
[0021]
The maximum connectable session
[0022]
When a new session establishment request (TCP: SYN, etc.) addressed to the VIP is received from the client terminal, the
[0023]
A new session establishment request (TCP: SYN, etc.) given an internal identifier in the
[0024]
The new connectable session
[0025]
The upper limit value of the number of sessions to be compared as to whether transfer processing is possible in each of the above units is the user unit new connectable upper limit management table 201, the network address unit new connectable upper limit management table 203, and the server group unit. New connection possible upper limit management table 205, server unit new connection possible upper limit management table 207, VIP unit new connection possible upper limit management table 209, network address & server group unit new connection upper limit management table 211, network address & server A unit new connectable upper limit management table 213 is preset.
[0026]
In each of the above units, the number of new connection requests processed per unit time is the user unit new
[0027]
The
[0028]
Further, the
[0029]
The connectable maximum section
[0030]
The upper limit value of the number of sessions to be compared to determine whether transfer processing is possible in each of the above units is the user unit connectable upper limit value management table 301, the network address unit connectable upper limit value management table 303, and the server group unit connectable upper limit. Value management table 305, server unit connectable upper limit value management table 307, VIP unit connectable upper limit value management table 309, network address & server group unit connectable upper limit value management table 311, network address & server unit connectable upper limit value management table 313 Is set in advance.
[0031]
In each of the above units, the number of connections currently established includes the user unit
[0032]
The value of the counter is incremented when a connection establishment response is received from the server after a new session establishment request (TCP: SYN, etc.) received from the client is transferred to the server.
[0033]
When a request for closing a session (TCP: FIN, etc.) already established from both the client and server is received, the connection information is started when the aging timer reaches 0. Is deleted and the counter value is decremented.
[0034]
When an urgent connection close request (TCP: RST, etc.) of an already established connection is received from a connection from a client or server, the entry for the connection is immediately released and the counter value is decremented. Do.
[0035]
The comparison operation unit 315 compares the value in the user unit connectable upper limit management table 301 with the value in the user
[0036]
The load
[0037]
Of course, it is not necessary to use all the counters shown above at the same time, and it is of course possible to determine whether or not they can be used independently. Of course, the counter search order can be freely changed regardless of the above-described contents of the counter.
[0038]
Furthermore, it is a matter of course that the upper limit value of the counter can be set independently for each counter, and the upper limit value of the counter can be distributed in proportion to the use band.
[0039]
In addition to what is implemented by dedicated hardware, the present invention records a program for realizing the function on a computer-readable recording medium, and the program recorded on the recording medium is stored in a computer system. It may be read and executed. The computer-readable recording medium refers to a recording medium such as a floppy disk, a magneto-optical disk, a CD-ROM, or a storage device such as a hard disk device built in the computer system. Furthermore, a computer-readable recording medium is a server that dynamically holds a program (transmission medium or transmission wave) for a short period of time, as in the case of transmitting a program via the Internet, and a server in that case. Some of them hold programs for a certain period of time, such as volatile memory inside computer systems.
[0040]
【The invention's effect】
As described above, the present invention has the following effects. Even when a load balancer is shared by multiple users, the traffic of a specific user, a request for establishing a session addressed to a specific server, a request for establishing a session from a specific user base, a service addressed by a specific ASP service provider A session establishment request or the like can be prevented from consuming the session management entry of the system, interference between users can be prevented at various levels, and fairness between users and services can be ensured. Even when a server is shared, it is possible to prevent interference between shared users. Further, by limiting the number of sessions that can be processed per unit time, it is possible to appropriately control the load of the server and the counter device connected to the device of the present invention for each user.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of a load distribution apparatus according to an embodiment of the present invention.
FIG. 2 is a configuration diagram of a newly connectable session number management unit.
FIG. 3 is a configuration diagram of a connectable maximum session number management unit;
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 100 User identification part 200 New connection possible session number comparison part 300 Maximum connectable session number comparison part 400 Load distribution processing part 201 User unit new connection upper limit management table 202 User unit new connection number counter 203 Network address unit new connection upper limit Value management table 204 New connection count counter for network address unit 205 Upper limit value for new connection possible for server group unit 206 New connection number counter for server group unit 207 New upper limit for server group connectable value management table 208 New connection count counter for server unit 209 VIP Unit new connectable upper limit management table 210 VIP unit new connection count counter 211 Network address & server group unit new connectable upper limit management table 212 Network address & Server Group Unit New Connection Number Counter 213 Network Address & Server Unit New Connection Maximum Value Management Table 214 Network Address & Server Unit New Connection Number Counter 215 Comparison Operation Unit 301 User Unit Connection Maximum Value Management Table 302 User Unit Connection Number Counter 303 Network address unit connectable upper limit management table 304 Network address unit connectable upper limit management table 305 Server group unit connectable upper limit management table 306 Server group unit connectable upper limit counter 307 Server unit connectable upper limit management table 308 Server unit connectable number counter 309 VIP unit connectable upper limit management table 310 VIP unit connection number counter 311 Network address & server group unit connectable upper limit management table 312 Work Address & server group level connections counter 313 network address and server group unit connectable upper limit management table 314 the network address and the server unit connected counter 315 comparing unit
Claims (4)
エンドユーザ端末からの新規セッション確立要求を受信した際に前記各単位について、単位時間あたり接続可能なセッション数の上限値と単位時間において確立した接続セッション数の比較を行い、前記各単位の全ての比較において、単位時間に確立したセッション数が前記上限値未満である場合には当該新規セッション確立要求の転送を許可し、前記各単位の少なくとも1つの比較において、単位時間に確立したセッション数が上限値以上の場合には当該セッション確立要求を廃棄する手段を有する負荷分散装置。A user group defined as a set of an NW address to which the end user terminal belongs and an IP address of the end user terminal, a VLAN-ID in Ethernet that is a layer 2 identifier of traffic from the end user terminal, a VPI / VCI value in ATM, And a user unit identified by a shim header in MPLS , a virtual IP address unit indicating a data destination , a server group unit which is a set of servers to which the data is transferred, a client terminal that has transmitted the server and the server group and the data means for managing each belong NW address hierarchical unit of the number of sessions established per limit unit time the number of connectable session per unit time in each unit,
End For each of the unit upon receiving a new session establishment request from the user terminal, it performs a comparison of the number of connection session established at the upper limit value and the unit of time connectable number of sessions per unit time, the all the unit In the comparison, if the number of sessions established per unit time is less than the upper limit value, the transfer of the new session establishment request is permitted, and in at least one comparison of each unit, the number of sessions established per unit time is A load balancer comprising means for discarding the session establishment request when the upper limit value is exceeded.
エンドユーザ端末からの新規セッション確立要求を受信した際に前記各単位について、最大接続可能なセッション数と現状の接続セッション数の比較を行い、前記各単位の全ての比較において、現状の接続セッション数が前記上限値未満である場合には当該新規セッション確立要求の転送を許可し、前記各単位の少なくとも1つの比較において、現状の接続セッション数が前記上限値以上の場合には当該のセッション確立要求を廃棄する手段を有する負荷分散装置。A user group defined as a set of an NW address to which the end user terminal belongs and an IP address of the end user terminal, a VLAN-ID in Ethernet that is a layer 2 identifier of traffic from the end user terminal, a VPI / VCI value in ATM, And a user unit identified by a shim header in MPLS , a virtual IP address unit indicating a data destination , a server group unit which is a set of servers to which the data is transferred, a client terminal that has transmitted the server and the server group and the data It means for managing an upper limit value of the maximum connectable number of sessions and the number of connection sessions current of each unit of the hierarchical units of NW address belongs,
When a new session establishment request is received from an end user terminal , the maximum number of sessions that can be connected is compared with the number of current connection sessions for each unit, and the number of current connection sessions in all comparisons of each unit. Transfer of the new session establishment request is permitted when the number of connection sessions is equal to or greater than the upper limit in the comparison of at least one of the units. Load balancer having means for disposing of
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003038860A JP4044855B2 (en) | 2003-02-17 | 2003-02-17 | Session filtering method and load balancing apparatus |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003038860A JP4044855B2 (en) | 2003-02-17 | 2003-02-17 | Session filtering method and load balancing apparatus |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2004246833A JP2004246833A (en) | 2004-09-02 |
| JP4044855B2 true JP4044855B2 (en) | 2008-02-06 |
Family
ID=33023264
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003038860A Expired - Lifetime JP4044855B2 (en) | 2003-02-17 | 2003-02-17 | Session filtering method and load balancing apparatus |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4044855B2 (en) |
Families Citing this family (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE602006003901D1 (en) | 2006-08-24 | 2009-01-08 | Research In Motion Ltd | System for determining the maximum number of established IP connections and a corresponding method |
| US8315162B2 (en) | 2006-08-24 | 2012-11-20 | Research In Motion Limited | System and method for determining that a maximum number of IP sessions have been established |
| EP1912386B1 (en) * | 2006-10-13 | 2013-07-31 | Research In Motion Limited | System and method for managing IP sessions based on how many IP sessions are supported |
| US8687586B2 (en) | 2006-10-13 | 2014-04-01 | Blackberry Limited | System and method for managing IP sessions based on how many IP sessions are supported |
| CN101212483B (en) * | 2006-12-31 | 2012-04-25 | 华为技术有限公司 | A method and system for controlling the number of user sessions |
| US8611946B2 (en) | 2007-01-25 | 2013-12-17 | Blackberry Limited | Methods and systems for configuring multi-mode mobile stations |
| JP4585552B2 (en) * | 2007-08-06 | 2010-11-24 | 日本電信電話株式会社 | Load balancing system |
| JP5203919B2 (en) * | 2008-12-26 | 2013-06-05 | 株式会社野村総合研究所 | Server system |
| JP5268785B2 (en) * | 2009-06-03 | 2013-08-21 | 株式会社野村総合研究所 | Login restriction method for Web server system |
| JPWO2011104999A1 (en) * | 2010-02-23 | 2013-06-17 | 日本電気株式会社 | Service providing system, computer program thereof, and data processing method |
| JP5458030B2 (en) * | 2011-01-20 | 2014-04-02 | 日本電信電話株式会社 | Parallel count processing device, communication device, parallel count processing method, and program |
| CN113766013B (en) * | 2021-08-20 | 2023-08-18 | 苏州浪潮智能科技有限公司 | A session creation method, device, equipment and storage medium |
-
2003
- 2003-02-17 JP JP2003038860A patent/JP4044855B2/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JP2004246833A (en) | 2004-09-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6718387B1 (en) | Reallocating address spaces of a plurality of servers using a load balancing policy and a multicast channel | |
| US6154839A (en) | Translating packet addresses based upon a user identifier | |
| US7016956B2 (en) | Directory-enabled intelligent broadband service switch | |
| JP4727126B2 (en) | Providing secure network access for short-range wireless computing devices | |
| US8554929B1 (en) | Connection rate limiting for server load balancing and transparent cache switching | |
| US7707295B1 (en) | Connection rate limiting | |
| JP4044855B2 (en) | Session filtering method and load balancing apparatus | |
| EP3119047B1 (en) | Load balancing method, apparatus and system | |
| US7725707B2 (en) | Server, VPN client, VPN system, and software | |
| US20040004941A1 (en) | Apparatus and method for managing a provider network | |
| US20020138552A1 (en) | Method and system for optimizing private network file transfers in a public peer-to-peer network | |
| US20060235972A1 (en) | System, network device, method, and computer program product for active load balancing using clustered nodes as authoritative domain name servers | |
| US20150058967A1 (en) | Remote Access Manager for Virtual Computing Services | |
| US20030131061A1 (en) | Transparent proxy server for instant messaging system and methods | |
| US20080072285A1 (en) | Method and system for tracking a user in a network | |
| EP2529518A1 (en) | Stateless forwarding of load balanced packets | |
| AU3572999A (en) | Establishing connectivity in networks | |
| EP1417817A1 (en) | Load balancing for a server farm | |
| US20050226257A1 (en) | Virtual local area network | |
| CN102143136B (en) | Method for accessing service wholesale network, equipment, server and system | |
| US20080155678A1 (en) | Computer system for controlling communication to/from terminal | |
| WO2011140910A1 (en) | Service process unit and method, and service control gateway and load equalization method | |
| US20040030765A1 (en) | Local network natification | |
| JP2003051825A (en) | Network connection device and network connection control method | |
| US8874743B1 (en) | Systems and methods for implementing dynamic subscriber interfaces |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050125 |
|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050614 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070228 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070427 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071107 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071116 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 4044855 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101122 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101122 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111122 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111122 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121122 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121122 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131122 Year of fee payment: 6 |
|
| S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| EXPY | Cancellation because of completion of term |