説明

アクセス中継方法及び装置

【課題】
複数のサーバに分散配置されたデータグリッド型のデータへアクセスする際、サーバ間のリクエスト転送が行われることによってクライアントからの通信アクセス速度が低下する。
【解決手段】
サーバサイドで分散されているデータの分散ルールをサーバよりも前段に配される中継装置が持ち、その中継装置が通信データを解析して最終的にアクセスされるサーバを特定し、IPレイヤのパケットオプションに特定したサーバ識別情報を付加することにより、途中の中継装置のIPレイヤより上位のルーティング処理を省く。その結果、後段の中継装置の転送処理高速化、及び管理者の意図したネットワーク経路によるアクセスを可能とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、WWW(World Wide Web)やメールシステム、データセンタ等、サーバ装置と端末間でデータを通信するネットワークシステムにおいて、サーバ装置、または端末とサーバ装置との間の通信経路上に設置される複数の中継装置に関する。
【背景技術】
【0002】
クライアント端末は、LAN(Local Area Network)やWAN(Wide Area Network)に接続されるサーバ装置へスイッチやファイアウォール、ゲートウェイ等の中継装置を多数介してアクセスする。特に、携帯電話端末等のクライアントがサーバにアクセスする形態では、非常に多くの端末が中継装置を介してサーバへアクセスされることになる。有線ネットワーク網や無線ネットワーク網に接続される端末の普及、昨今の携帯電話端末の高機能化、無線通信網の高速化、そして動画や音楽といったコンテンツの大容量化が浸透してきたことにより、WWW等のサーバ装置とクライアント端末間でやり取りされるデータ量が増大している。また、有線ネットワーク網や無線ネットワーク網の通信帯域の大容量化に伴うデータ通信時間の短縮や、コンテンツサイズの増大により、通信量が増加している。
【0003】
このような背景の下、キャリアやデータセンタシステム内のスイッチやファイアウォール、ゲートウェイ等の中継装置を通過する通信量は膨大なものとなり、その流れは増加の一途を辿っている。この通信量増加に伴い、中継装置やサーバの処理能力増強が急務である。能力増強対策として、ハードウエア性能向上を図る手法と、リクエストを分散処理する手法が挙げられる。
【0004】
一般に、前者はスケールアップと呼ばれ、後者はスケールアウトと呼ばれている。スケールアップによる対処では、単一障害点によるサービス停止、ハードウエア更新時のサービス停止などの問題点がある。大規模なシステムを有するキャリアやデータセンタ運用業者は、サービスを停止させず、通信量の増加に対応できるスケールアウト型の能力増強を図ることが多い。
【0005】
一方で、サーバにはクライアントからのアクセス要求に対する高速化応答のため、ハードディスクに格納されているデータを読み出して応答するのではなく、半導体メモリの高速アクセス性能を活用し、半導体メモリ上にデータを保持して応答するデータグリッドの仕組みがある。このデータグリッドの仕組みを利用した複数のサーバから構成されるシステムでは、システム信頼性確保のためスケーラビリティの高いプロトコルによりサーバ間でデータの複製及びデータ管理等が行われている。このようなシステムでは、どのサーバへリクエストを発行しても、データを保持するサーバへリクエストが転送されるため、目的のデータへアクセス可能である。
【0006】
このようなシステムでは、データへアクセスする側はどこにデータが配置されているのか意識しなくてよい利点がある。一方で、データが配置されているサーバ間でリクエストの転送が発生し、システムの応答が遅くなる場合があり得る。
【0007】
また、大規模なシステムになればなるほど、複数の中継装置等を介することも多くなる。中継装置の種別によっては高位レイヤまで解析を実施する場合もあり、通信データの転送処理(クライアント端末からみたときのレイテンシ)に時間がかかることもあり得る。
【0008】
この問題を解決する技術が、特許文献1に開示されている。特許文献1の技術では、複数の中継装置を介した通信において、前段のスイッチと後段のスイッチがある場合に、前段のスイッチが後段のスイッチでルーティングを行う際に検索テーブルの検索速度向上を図ることにより高速化を実現する技術内容である。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2010−183421号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかし、前段及び後段のスイッチにおいて共に上位レイヤまで解析が必須であり解析処理に時間がかかるため、転送速度の向上にはつながりにくいという以下のような問題があると考えられる。
【0011】
(1)全てのスイッチにおいて、L3ヘッダ情報の解析を実施しているため、解析負荷が大きく、パケット転送に時間がかかると考えられる。
【0012】
(2)後段のスイッチでは、転送先の状況を把握せずにルーティングしてしまうため、転送先サーバが処理するデータを保持していないサーバである場合があり、サーバ間で転送処理などの余計なステップが発生することを防止できない。
【0013】
本発明の目的は、前段の中継装置における解析情報を用いて、メッセージを後段の中継装置が適切なサーバへルーティングでき、かつ、後段の中継装置の転送処理を高速化できるアクセス中継方法を提供することにある。
【課題を解決するための手段】
【0014】
本発明は、上記目的を達成するため、サーバサイドで分散されているデータの分散ルールをサーバよりも前段に配される中継装置が持ち、その中継装置が通信データを解析して最終的にアクセスされるサーバを特定し、IPレイヤのパケットオプションに特定したサーバ識別情報を付加することにより、途中の中継装置のIPレイヤより上位のルーティング処理を省く。
【発明の効果】
【0015】
複数のサーバの中からアクセス対象のデータを保持するサーバへ直接通信することにより、レイテンシを短くすることが可能になる。また、ルールの与え方によって、複数の中継装置で接続される構成の場合、意図するネットワーク経路で通信を実現することが可能になる。
【図面の簡単な説明】
【0016】
【図1】コンピュータシステムの構成例を示す図である。
【図2】ファイアウォール装置の構成例を示す図である。
【図3】中継装置の構成例を示す図である。
【図4】スイッチの構成例を示す図である。
【図5】サーバ装置の構成例を示す図である。
【図6】中継装置やスイッチ、サーバ装置が保持する分散ルールを登録するテーブルの一例を示す図である。
【図7】ファイアウォール装置が保持するクライアント端末の端末識別情報を登録するテーブルの一例を示す図である。
【図8】スイッチが保持する振分け先中継装置のIPアドレスを登録するテーブルの一例を示す図である。
【図9】スイッチが保持する振分け先サーバ装置のIPアドレスを登録するテーブルの一例を示す図である。
【図10】スイッチが保持する振分け先サーバ装置又は中継装置へのルーティングを実行する際に用いるルーティングテーブルの一例を示す図である。
【図11】IPデータグラムのヘッダフォーマットの一例を示す図である。
【図12】ファイアウォール装置において実行される後段の装置へリクエストを転送する際の処理内容の一例を示すフローチャートである。
【図13】スイッチにおいて実行される後段の装置へリクエストを転送する際の処理内容の一例を示すフローチャートである。
【図14】サーバ装置において実行されるファイアウォール装置又は中継装置又はスイッチへ分散ルールを管理ネットワーク経由で送信する処理内容の一例を示すフローチャートである。
【図15】ファイアウォール装置又は中継装置又はスイッチにおいて実行されるサーバ装置から分散ルールを管理ネットワーク経由で受信する処理内容の一例を示すフローチャートである。
【図16】中継装置において実行される後段のスイッチへリクエストを転送する処理内容の一例を示すフローチャートである。
【図17】中継装置の構成例を示す図である。
【図18】中継装置が保持するメールデータを識別するためのユーザ情報を登録するテーブルの一例を示す図である。
【図19】中継装置において実行されるメールデータを転送する処理内容の一例を示すフローチャートである。
【図20】中継装置が保持する振分け先サーバ装置のIPアドレスを登録するテーブルの一例を示す図である。
【図21】中継装置又はスイッチにおいて実行される経路履歴情報をIPデータグラムのヘッダへ追加する処理内容の一例を示すフローチャートである。
【図22A】IPデータグラムの例である。
【図22B】HTTPメッセージの例である。
【発明を実施するための形態】
【0017】
以下に、図面を参照しながら本発明の実施形態について説明する。なおこれにより本発明が限定されるものではない。
【実施例1】
【0018】
本実施形態のコンピュータシステムは、ネットワークで接続された、クライアント端末、ファイアウォール装置、中継装置、スイッチとサーバ装置を含んで構成される。
【0019】
図1は、コンピュータシステムの構成例を示す。1台以上のファイアウォール装置(以下、FWという)101はネットワーク120を介してクライアント端末(以下、クライアントという)100と接続される。またFWは、ネットワーク121を介してスイッチ(L4SW)102と接続される。スイッチ102は、ネットワーク122を介して複数の中継装置103と接続される。
【0020】
中継装置103は、ネットワーク123を介してスイッチ(L4SW)104と接続される(以下、スイッチ102とスイッチ104を区別するため、前者を前段のスイッチ、後者を後段のスイッチという)。後段のスイッチ104は、ネットワーク124を介してサーバ装置105(以下、サーバ)と接続される。FW101、前段のスイッチ102、中継装置103、後段のスイッチ104、及びサーバ105は、ネットワーク208により相互接続される。
【0021】
本実施例では、FW101と前段のスイッチ102と中継装置103と後段のスイッチ104とサーバ105がそれぞれ別々のネットワークにより接続される形態を示しているが、同一のネットワークに接続される形態であってもかまわない。
【0022】
(各装置の構成)
図2は、FWの構成例を示す図である。FW101は、1つ以上のCPU201と、1つ以上のネットワークインタフェース(NW I/F)202〜204と、入出力装置205と、メモリ207が内部バス等の通信路205を介して相互に接続されるコンピュータ上に実現される。NW I/F202は、ネットワーク120を介してクライアント100と接続する。NW I/F203は、ネットワーク121を介して前段のスイッチ102と接続される。NW I/F205は、ネットワーク208を介してサーバ105と相互に接続する。
【0023】
メモリ207には、CPU201によって実行されるHTTP解析処理210、中継処理211、パケットオプション付加処理212のプログラムと、分散ルール213、端末識別情報214、FW設定情報215が格納される。HTTP解析処理210は、クライアント100からHTTPリクエストを受信した場合の解析を実行する。中継処理211は、FW設定情報215に基づきクライアント100からのリクエスト受信可否を決定し、受信可の時にHTTP解析処理210による処理を経て中継装置103へリクエストを転送する処理を実行する。
【0024】
図3は、中継装置の構成例を示す図である。中継装置103は、1つ以上のCPU301と、1つ以上のNW I/F302〜304と、入出力装置305と、メモリ307が内部バス等の通信路306を介して相互に接続されるコンピュータ上に実現される。
【0025】
NW I/F302は、ネットワーク122を介して前段のスイッチ102と接続される。NW I/F303は、ネットワーク123を介して後段のスイッチ104と接続される。NW I/F304は、ネットワーク208を介してサーバ105と相互に接続する。
【0026】
メモリ307には、CPU301によって実行されるHTTP解析処理310、中継処理311のプログラムと、L2パケットオプション処理312、分散ルール313、振分け先サーバ情報314が格納される。HTTP解析処理310は、クライアント100からのHTTPリクエストを受信した場合の解析を実行する。中継処理311は、クライアント100とサーバ105間の通信をHTTP解析処理310の解析結果に基づき中継処理を実行する。
【0027】
図4は、前段のスイッチの構成例を示す図である。前段のスイッチ102は、1つ以上のCPU401と、1つ以上のNW I/F402〜403と、入出力装置404と、メモリ406が内部バス等の通信路405を介して相互に接続されるコンピュータ上に実現される。NW I/F402aは、ネットワーク121を介してFW101と接続される。NW I/F402bは、ネットワーク122を介して中継装置103と接続される。NW I/F205は、ネットワーク208を介してサーバ105と相互に接続する。
【0028】
メモリ406には、CPU401によって実行されるL2/L3解析処理410、ルーティング処理411、L2パケットオプション処理413のプログラムと、ルーティングテーブル412、分散ルール414、振分け先サーバ情報415が格納される。L2/L3解析処理410は、NW I/F402a又は402b経由で受信したパケットをL2又はL3レイヤで解析を実行する。ルーティング処理411は、L2/L3解析処理410によって解析された結果を基に、ルーティングテーブル412のルールに則りパケット中継処理を実行する。
【0029】
前段のスイッチ102と後段のスイッチ104は同様の構成である。そのため、後段のスイッチ104の構成例を説明する図は省略する。
【0030】
図5は、サーバの構成例を示す図である。サーバ105は、1つ以上のCPU501と、1つ以上のNW I/F502〜503と、入出力装置504と、メモリ506が内部バス等の通信路505を介して相互に接続されるコンピュータ上に実現される。
【0031】
NW I/F502は、ネットワーク124を介して中継装置103に接続される。NW I/F503は、ネットワーク208を介してFW101と前段のスイッチ102と、中継装置103と後段のスイッチ104と相互に接続するメモリ506には、CPU501によって実行されるサーバ処理510のプログラムと、分散ルール511が格納される。
【0032】
サーバ処理510は、本実施例におけるWWWサーバ等のプログラムである。サーバデータ512は、サーバ105がクライアントからの要求に応じて提供するデータである。
【0033】
(各テーブルの構成)
図6には、FW101、中継装置103、前段のスイッチ102、後段のスイッチ104及びサーバ105に具備された分散ルールの情報を示す。図7には、FW101に具備された端末識別情報を示す。図8は、前段のスイッチ102に具備された振分け先サーバ情報を示す。図9は、後段スイッチ104に具備された振分け先サーバ情報を示す。図20は、中継装置103に具備された振分け先サーバ情報を示す。図10は、前段のスイッチ102に具備されたルーティングテーブルを示す。図11は、IPデータグラムヘッダフォーマットを示す。以降、各図について説明する。
【0034】
図6は、FW101、中継装置103、前段のスイッチ102、後段のスイッチ104及びサーバ105に具備された分散ルール600の一例を示したものである。なお、分散ルール600は、図2に示した分散ルール213、図3に示した分散ルール313、図4に示した分散ルール及び図5に示した分散ルール511と同様のものである。
【0035】
例えば、分散ルール600は、サーバ105が具備する分散ルール511を、FW101、前段のスイッチ102、後段のスイッチ104及び中継装置103へ送信し、FW101のメモリ207、中継装置103のメモリ307、前段及び後段のスイッチ102、104のメモリ406へ記憶するものである。FW101及び中継装置103は、分散ルールを用いてクライアント100から受信したリクエストがどこのサーバ105に分散されているのか把握し、リクエスト転送の際に意図したサーバ105又は意図した中継装置103(意図したネットワーク)へリクエストを転送する。
【0036】
分散ルール600の区分欄601には、分散ルール適用先ノードの区分情報が格納される。分散ルール欄602には、区分欄601に格納される適用先当該ノード間でデータがどのように分散されているのかが決められたルール情報が格納される。階層欄603には、当該ノードがコンピュータシステムの中でどの階層に位置するかを示した階層情報が格納される。サーバ105と中継装置103が各装置間の分散ルール600として持つ情報は、事前に管理者が入力する。
【0037】
図7は、FW101に具備された端末識別情報の一例を示したものである。端末識別情報214は、FW101においてHTTP解析処理210がHTTPリクエストを解析した際にHTTPヘッダフィールドのUserAgentヘッダと比較して、クライアント100の端末種別を認識するために用いる。
【0038】
端末識別情報214のFW101は、端末識別情報214とクライアント100の端末種別が等しい場合、リクエストを転送する時にIPデータグラム(以降、IPパケットともいう)のヘッダへ分散ルールを付加する。端末識別情報欄701には、クライアント100の端末を識別するための情報が格納される。
【0039】
図8は、前段のスイッチ102に具備された振分け先サーバ情報415aの一例を示したものである。振分け先サーバ情報415aは、前段のスイッチ102においてFW101から受信したIPパケットのヘッダ(以降、IPヘッダともいう)オプションに指定情報が付加されている場合において、IPヘッダオプションに付加されている識別子と比較して転送先アドレスを決定するために用いる。振分けサーバ情報415aの識別子欄801には、分散ルール適用して得られる識別子が格納される。アドレス欄802には、当該識別子801により識別される中継装置103のアドレスが格納される。
【0040】
図9は、後段スイッチ104に具備された振分け先サーバ情報415bの一例を示したものである。前段のスイッチ102と後段のスイッチ104の構成は同じである。しかし、前段のスイッチ102がFW101と中継装置103との間に位置するのに対し、後段のスイッチ104は中継装置103とサーバ105との間に位置する。そのため、振分けサーバ情報415aの設定内容とは異なる。振分け先サーバ情報415bの各欄の説明は図8と同様である。
【0041】
図20は、中継装置103に具備された振分け先サーバ情報415cの一例を示したものである。振分け先サーバ情報415cの各欄の説明は図8と同様である。
【0042】
図10は、前段のスイッチ102に具備されたルーティングテーブルの一例を示したものである。ルーティングテーブル412は、前段のスイッチ102のルーティング処理411がパケットを転送する際に参照する情報である。ルーティングテーブル412には、受信パケットのDestinationアドレスを参照して、どのネットワークインタフェースへ転送するのかを定めたルールが記載される。
【0043】
ルーティングテーブル412のdest.IP欄1001には制御対象アドレスを格納する。netmask欄1002には、dest.IP欄1001記載のアドレスのネットマスク値を格納する。interface欄1003には、該当パケットの送出先NW I/Fのアドレスを格納する。gateway欄1004には、送出パケットのゲートウェイアドレスを格納する。Metric欄1005には、メトリック値を格納する。後段のスイッチ104にも図10と同様のテーブルがある。
【0044】
図22Aは、IPデータグラムの構成例を示したものである。IPデータグラム2211は、IPヘッダ1100とTCPセグメント2212から構成される。TCPセグメント2212は、TCPヘッダ1101とHTTPメッセージ1102から構成される。また、IPヘッダ1100の一部には、IPヘッダオプション2210が含まれる。
【0045】
図22Bは、HTTPメッセージ1102の構成例を示したものである。HTTPメッセージ1102は、リクエスト行2221、HTTPヘッダ2222、HTTPボディ2223から構成される。ただし、HTTPメッセージ1102では、HTTPヘッダ2222及びHTTPボディ2223は必須ではなく、リクエスト行2221のみで構成される場合もありうる。
【0046】
リクエスト行2221は、クライアント100が要求するメソッドとリソース、及びHTTPのバージョン2224から構成される。HTTPヘッダ2222は、1つ以上のフィールドから構成される。本例では、Acceptヘッダ2225、Accept−Languageヘッダ2226、User−Agentヘッダ1103の3つのフィールドで構成されるHTTPヘッダ2222を示している。
【0047】
Acceptヘッダ2225は、クライアント100が受け付けることができるコンテンツタイプを指定できる。Accept−Languageヘッダ2226は、サーバ105が応答するメッセージの言語を指定できる。User−Agentヘッダ1103は、クライアント100のHTTP実装ソフトウエア名を指定できる。
【0048】
図11は、FW101や中継装置103が転送パケットのIPパケットヘッダに転送先の識別子を付加する場合のIPデータグラムヘッダ(以下ではIPヘッダと略記)1100のフォーマットの一例を示したものである。図11のテーブルの上部に記載の目盛りはビットの番号を示し、各行は32ビットからなる。
【0049】
Ver.1105は、IPのバージョンを示すものである。ヘッダ長1106は、IPヘッダの長さを4オクテット(32ビット)単位として示すものである。サービスタイプ1107は、データの優先度等で表されるサービスの質を示し、アプリケーションやユーザにより指定される。
【0050】
パケット長1108は、IPヘッダ1100とそのあとに続くデータ部を含む全長をオクテット単位で示すものである。識別子1109は、細分化された複数のIPデータグラム1100のそれぞれを再編成時に識別するための識別子である。フラグ1110とフラグメントオフセット1111は、IPデータグラムの細分化を制御するためのフラグと、フラグメントの最初の位置を8オクテット単位とするオフセット値で示すものである。
【0051】
TTL(Time To Live)1112は、IPデータグラム1100がネットワーク内に存在できる最大時間を示すものである。プロトコル1113は、IPの上位プロトコルを識別するための情報を示すものである。ヘッダチェックサム1114は、IPヘッダの正確さを保証するチェックサムを示すものである。UserAgentヘッダ1103に含まれる送信元IPアドレス1115は、IPデータグラム1100の送信元アドレスを示すものであり、宛先IPアドレス1116は、IPデータグラム1100の送信先アドレスを示すものである。
【0052】
図11の6−9行に示すIPヘッダオプション(又はオプション部と略記)2210の詳細を説明する。
【0053】
転送先識別情報1117a〜cは、FW101や中継装置103がIPデータグラムに付加する転送先の識別子を示すものであり、可変長である。図11では、3つの転送先が格納されている。
【0054】
オプションフラグ1118は、FW101や中継装置103がIPデータグラム1100のヘッダに付加した転送先識別子を区別するためのフラグを示すものである。パティング1119、1122は、IPデータグラムのヘッダが32ビット境界で終わるよう調整するためのデータを示すものである。
【0055】
経路履歴情報1120a〜cは、クライアント100からのリクエストがサーバ105へ届くまでの間に中継装置103や前段のスイッチ102等を経由したか示す識別子を示すものであり、可変長である。図11では、3つの経路履歴情報が格納されている。ADDフラグ1121は、経路履歴情報の追加が発生した旨のフラグを示すものである。
【0056】
(各処理の説明)
本実施例における処理の概要を説明する。予め、サーバ105から、FW101、前段のスイッチ102、中継装置103及び後段のスイッチ104に、図6に示す分散ルール600が送信され(図14)、送信された分散ルール600がそれぞれのメモリに格納される(図15)。
【0057】
クライアント100からのリクエストを受信したFW101が転送処理を行い(図12)、FW101からのリクエストを受信した前段のスイッチ102が転送処理を行い(図13)、前段のスイッチ102からのリクエストを受信した中継装置103が転送処理を行い(図16)、中継装置103からのリクエストを受信した後段のスイッチ104がサーバ105への転送処理を行う(図13)。前段のスイッチ102、中継装置103及び後段のスイッチ104のそれぞれでは、経路履歴情報がIPデータグラムのヘッダへ追加される(図21)。
【0058】
図12は、FW101の中継処理211、HTTP解析処理210及びパケットオプション付加処理212がクライアント100からリクエストを受信した際の転送処理の一例を示したフローチャートである。中継処理211は、クライアント100からリクエストを受信する。その後に、図11のIPヘッダ1100の解析処理を実行する(ステップ121)。中継処理211は、TCPヘッダ1101の解析処理を実行する(ステップ122)。HTTP解析処理210は、ステップ122の後にHTTPヘッダ1102の解析処理を実行する(ステップ123)。
【0059】
HTTP解析処理210は、HTTPヘッダフィールド1102のUserAgentヘッダ1103の有無を確認する。HTTPヘッダフィールド1102のUserAgentヘッダ1103が存在する場合はステップ125の処理を実行する。一方、HTTPヘッダフィールド1102のUserAgentヘッダ1103が存在しない場合には、ステップ128の処理を実行する(ステップ124)。
【0060】
ステップ124において、HTTPヘッダフィールド1102のUserAgentヘッダ1103が存在する場合、FW101のHTTP解析処理210は、端末識別情報214の端末識別情報欄701に登録されている情報とUserAgentヘッダの情報1103を突き合わせ、一致するか否かを確認する。一致する場合は、ステップ126の処理を実行する。一致しない場合は、ステップ128の処理を実行する(ステップ125)。
【0061】
ステップ125において、HTTPヘッダフィールドのUserAgentヘッダ1103の情報と端末識別情報214の端末識別情報欄701に登録されている情報が一致した場合、パケットオプション付加処理212は、UserAgentヘッダ1103の情報を、分散ルール213の該当区分欄601の当該分散ルール欄602に登録されるルールに当てはめて、オプション識別子の算出を行う(ステップ126)。
【0062】
例えば、分散ルール欄602に示されるルールはハッシュ関数であり、UserAgentヘッダ1103の情報をハッシュ関数に当てはめた場合のハッシュ値がオプション識別子となる。また、階層欄603に示される情報は、FW101からネットワークの接続を辿った際の装置の階層数である。
【0063】
次に、パケットオプション付加処理212は、ステップ126において算出した転送先識別情報1117を階層順に(階層欄603記載の情報の小さい順に)IPヘッダ1100のオプション部2210へ格納する。そして、同じくIPヘッダのオプションフラグ1118にも情報を格納する(ステップ127)。中継処理211は、IPパケットを前段のスイッチ102へ転送して処理を終了する(ステップ128)。
【0064】
図13は、前段のスイッチ102のルーティング処理411及びL2/L3解析処理及びL2パケットオプション処理がFW101からリクエストを受信した際の転送処理の一例を示したフローチャートである。
【0065】
L2/L3解析処理410は、FW101からリクエストを転送された場合、IPヘッダの解析を実行する(ステップ131)。次に、L2/L3解析処理410は、IPヘッダオプション2210が存在するか確認し、存在するならばステップ133の処理を実行する。一方、IPヘッダオプション2210が存在しない場合、ステップ138の処理を実行する(ステップ132)。ステップ132においてIPヘッダオプション2210が存在した場合、L2パケットオプション処理413は、IPヘッダオプション2210を取得する(ステップ133)。
【0066】
次に、L2パケットオプション処理413は、IPヘッダオプションのオプションフラグ1118の情報が指定フラグと一致するか確認する。ここでフラグが一致する場合、ステップ135の処理を実行し、一致しない場合ステップ138の処理を実行する(ステップ134)。
【0067】
ステップ134においてオプションフラグ1118の情報が指定フラグと一致する場合、L2パケットオプション処理413は、IPヘッダオプション2210の最初に位置する転送先識別情報1117aを取得し、転送先識別情報1117aをキーとして振分け先サーバ情報415を検索し、振分け先サーバ情報415の識別子欄801に一致するアドレス802を取得する(ステップ135)。
【0068】
L2パケットオプション処理413は、ステップ135で取得したアドレスを宛先アドレス1116としてIPパケットを生成する。また、この際ステップ135で参照したIPヘッダオプション2210の転送先識別情報1117aを削除する(ステップ136)。
【0069】
次に、L2パケットオプション処理413は、図21に示すフローチャートを実行し、経路履歴情報1120aをIPヘッダオプション2210に追加する(ステップ1300)。ステップ1300の「NF1」は「経路履歴情報の追加」を意味する。後述の図16及び19も同様である。ルーティング処理411は、ステップ136で生成したIPパケット1100を、宛先アドレスの中継装置103へ転送して処理を終了する(ステップ137)。
【0070】
ステップ132においてIPヘッダオプション2210が存在しない場合、又はステップ134においてオプションフラグ1118の情報が指定フラグと一致しない場合、ルーティング処理411は、TCPヘッダ1101の解析を実施する(ステップ138)。次に、ルーティング処理411は、ルーティングテーブル412の内容に沿って受信リクエストが該当するdest IP欄1001の当該interface欄1003に示されるNW I/Fへパケットを転送するためにIPパケット1100を生成する(ステップ139)。
【0071】
また、図13に記載のフローチャートは、前段のスイッチ102のフローであるが、後段のスイッチ104においても転送先が中継装置103からサーバ105へ変わり、図8に記載の振分けサーバ情報415aの代わりに、図9に記載の振分けサーバ情報415bを用いる点を除き同様のフローとなる。
【0072】
図21は、中継装置103又は前段のスイッチ102又は後段のスイッチ104が経路履歴情報をIPデータグラムのヘッダへ追加する処理の一例を示したフローチャートである。中継装置103又は前段のスイッチ102又は後段のスイッチ104共に同様の処理であるため、ここでは中継装置103のL2パケットオプション処理312が実行する処理の流れを説明する。
【0073】
中継装置103のL2パケットオプション処理312は、管理者からの履歴取得指示が有るか否かを判断する。指示がある場合はステップ2102を実行し、指示がない場合は処理を終了する(ステップ2101)。ステップ2101において指示があると判断した場合、L2パケットオプション処理312は、自ノード識別子を経路履歴情報1120aとしてIPパケットオプション2210に追記する。
【0074】
例えば、自ノード識別子は自ノードのIPアドレスを一定数値でマスクした値である(ステップ2102)。次に、L2パケットオプション処理312は、IPヘッダオプション2210のADDフラグ1121を更新し、処理を終了する。例えばADDフラグ1121をインクリメントさせる(ステップ2103)。
【0075】
図14は、分散ルール600を持つサーバ105が、前段のスイッチ102、後段のスイッチ104、中継装置103及びFW101へ分散ルールを送信する処理の一例を示したフローチャートである。ここでは、サーバ105が、分散ルールをFW101及び中継装置103へ送信する処理の一例を示したフローチャートのみを取り上げる。サーバ105のサーバ処理510は、分散ルール511をNW I/F503に接続されるネットワーク208経由でFW101及び中継装置103へ送信する(ステップ141)。
【0076】
図15は、FW101、中継装置103、前段のスイッチ102、及び後段のスイッチ104が、サーバ105から分散ルール600を受信する処理の一例を示したフローチャートである。どの装置でも同様の受信処理のため、ここではFW101の受信フローチャートのみを取り上げる。
【0077】
FW101のパケットオプション付加処理212は、NW I/F205経由で分散ルールをサーバ105から受信する(ステップ151)。次に、パケットオプション付加処理212は、メモリ207の分散ルール213へ受信情報を登録して処理を終了する(ステップ152)。
【0078】
図16は、中継装置103の中継処理311及びHTTP解析処理310及びL2パケットオプション処理312が、前段のスイッチ102からリクエストを受信した際の転送処理の一例を示したフローチャートである。
【0079】
中継装置103のL2パケットオプション処理312は、前段のスイッチ102からリクエストを転送された場合、IPヘッダ1100の解析を実行する(ステップ160)。次に、L2パケットオプション処理312は、IPヘッダオプション2210が存在するか確認し、存在するならばステップ166の処理を実行する。一方、IPヘッダオプション2210が存在しない場合、ステップ162の処理を実行する(ステップ161)。ステップ161においてIPヘッダオプション2210が存在する場合、L2パケットオプション処理312は、IPヘッダオプション2210を取得する(ステップ166)。
【0080】
次に、L2パケットオプション処理312は、IPヘッダオプション2210のオプションフラグ1118の情報が指定フラグと一致するか確認し(ステップ167)、オプションフラグ1118の情報が指定フラグと一致するならば、フラグFLGに「1」をセットする(ステップ167a)。
【0081】
次に、中継処理311は、TCPヘッダ1101の解析を実行する(ステップ162)。ステップ162の後にHTTP解析処理310は、HTTPヘッダ1102の解析を実行する(ステップ163)。そして、中継処理311は、ステップ163の結果を受けて中継のための事前処理を実行する(ステップ164)。
【0082】
上記のステップ167において、フラグFLGに「1」がセットされていた場合(ステップ167b)、L2パケットオプション処理312は、IPヘッダオプション2210の転送先識別情報1117を取得し、転送先識別情報1117をキーとして振分け先サーバ情報314を検索し、振分け先サーバ情報415cの識別子欄2001に一致するアドレス2002を取得する(ステップ168)。
【0083】
L2パケットオプション処理312は、ステップ168で取得したアドレスを宛先アドレス1116としてIPパケット1100を生成する。また、この際、ステップ168で参照したIPヘッダオプション2210の転送先識別情報1117を削除する(ステップ169)。ステップ161においてIPヘッダオプション2210がない場合又はステップ167においてオプションフラグ1118が一致しなかった場合、ステップ164の処理後に、L2パケットオプション処理312は、図21に示すフローチャートを実行し、経路履歴情報1120bをIPヘッダオプション2210に追加する。
【0084】
また、ステップ169実行後の場合も、L2パケットオプション処理312は、同様に、図21に示すフローチャートを実行し、経路履歴情報1120bをIPヘッダオプション2210に追加する(ステップ1300)。そして中継処理311は、後段のスイッチ104へリクエストを転送して処理を終了する(ステップ165)。
【0085】
本実施例で示す方法では、FW101が、中継装置103及びサーバ105の分散ルールに基づき、IPパケットのオプションに振分け先の中継装置103及びサーバ105の識別情報を付与することによって、ネットワーク経路途中に存在する前段のスイッチ102及び後段のスイッチ104において、IPレイヤでのルーティングを可能にしている。
【0086】
また、クライアント100がサーバ105へアクセスする際に、中継装置103や前段のスイッチ102等において転送処理を実行したノードの識別子を経路履歴情報2210としてIPパケット1100のオプション2210に追記することによって、クライアント100からサーバ105に至るネットワーク経路を把握することが可能である。
【0087】
本実施例では、FW101が中継装置103及びサーバ105へのルーティングを実行する実施形態であるが、中継装置103がFW101と同様のルーティングを実施する形態もありうる。また、中継装置103の後段に位置する、後段のスイッチ104を分散させない図1のようなコンピュータシステム構成の場合、中継装置103の中継処理フローチャート(図16)において、IPヘッダオプション2210の有無にかかわらず、パケットを通常転送する実施形態もありうる。
【0088】
本実施例では、HTTPリクエストのUserAgenetヘッダ1103に基づく処理が特定の中継装置103及びサーバ105で実行される場合の実施形態について述べたが、管理者による直接の分散ルール600の指定により、クライアント100のリクエストを管理者の意図したネットワーク経路でサーバ105へ届けることが可能である。
【実施例2】
【0089】
半導体メモリ上にデータを保持して応答する仕組みを利用した複数のサーバから構成されるシステムの例として、メールボックスサーバがある。例えば、メールボックスの各ユーザデータがこのシステム上のメモリに分散格納され、応答性能を向上させている。
【0090】
このようなシステムの場合、メールボックスサーバの前段に位置する中継装置は、メールボックスサーバへデータを格納する際に、データが複数のメールボックスサーバの中でどこに格納されているのか把握する必要なしに、データをメールボックスサーバへ送信する。これは、メールボックスサーバ同士で、リクエストを適切なサーバ(ユーザデータを保持するサーバ)へ転送する機能があるためである。
【0091】
実施例2では、このようなシステムにおいて、メールボックスサーバ内の転送をせずに、適切なサーバへリクエストをルーティングする方法について示す。上記システムの構成は実施例1に示した構成(図1)と同様であり、メールボックスサーバがサーバ105に相当する。メールボックスサーバでは、リクエストを受信後当該ユーザのメールボックスデータへ格納する処理を実行する。以降の説明では、実施例1との相違点のみを中心に説明する。
【0092】
図17は、図3に示した中継装置103の構成例におけるHTTP解析処理310及び振分け先サーバ情報314の代わりに、新たにSMTP解析処理320及びユーザ情報321を追加した構成例を示す図である。SMTP解析処理320は、Simple Mail Transfer Protocol(SMTP)のリクエスト(電子メールを転送するためのリクエスト)を解析するプログラムである。
【0093】
図22AにはHTTPメッセージのIPデータグラム構造を示しているが、SMTPメッセージも同様である。SMTPメッセージは、SMTPヘッダとSMTPボディから構成される。ユーザ情報321は、制御対象とするユーザ情報を格納する。
【0094】
図18は、中継装置103に具備されたユーザ情報の一例を示したものである。ユーザ情報321のユーザ情報欄1801には、ルーティング制御対象のユーザIDを格納する。
【0095】
図19は、中継装置103のSMTP解析処理320、中継処理311及びL2パケットオプション処理312がメールリクエスト受信した際の処理の一例を示したフローチャートである。
【0096】
中継装置103の中継処理311は、クライアント100から受信したリクエストのIPヘッダ1100の解析処理を実行する(ステップ190)。次に、中継処理311は、受信したリクエストのTCPヘッダ1101の解析処理を実行する(ステップ191)。SMTP解析処理320は、受信したリクエストのSMTPヘッダの解析処理を実行する(ステップ192)。
【0097】
次に、SMTP解析処理320は、差出人(例えばSenderタグ)の情報とユーザ情報321のユーザ情報欄1801に記載されているユーザIDを比較する。双方が一致する場合、ステップ194を実行し、一致しない場合ステップ1300を実行する(ステップ193)。ステップ193において、ユーザIDを差出人の情報が一致した場合、L2パケットオプション処理312は、分散ルール313の該当区分601に相当する分散ルール602を参照し、そのルール従って転送先識別情報1117を算出する(ステップ194)。
【0098】
次に、L2パケットオプション処理312は、ステップ194で算出した転送先識別情報1117をIPヘッダオプション部2210へ格納する。そして、同じく、IPヘッダ1100のオプションフラグ1118にも情報を格納する(ステップ195)。
【0099】
次に、L2パケットオプション処理312は、図21に示すフローチャートを実行し、経路履歴情報1120aをIPヘッダオプション2210に追加する(ステップ1300)。中継処理311は、IPパケット1100を前段のスイッチ102へ転送して処理を終了する(ステップ196)。
【0100】
本実施例では、メールデータの格納処理が特定のメールボックスサーバで実行される場合に、上記ルーティングによって余分な経路を辿ることなく、当該ユーザのメールボックスデータが保持されているメールボックスサーバへリクエストが到達可能である。
【符号の説明】
【0101】
100:クライアント、101:FW、102:前段のスイッチ、103:中継装置、104:後段のスイッチ、105:サーバ、600:分散ルール、214:端末識別情報、415:振分け先サーバ情報、412:ルーティングテーブル

【特許請求の範囲】
【請求項1】
クライアントとサーバが中継装置を介して相互接続されるネットワークシステムにおいて、スイッチやゲートウェイやファイアウォールのいずれかである前段の前記中継装置の後段に配される前記中継装置が、前記クライアントからのリクエストを前記サーバへルーティングする際のアクセス中継方法であって、
前段の前記中継装置が上位レイヤの解析情報と後段の前記中継装置や前記サーバに配されるデータの分散ルールを元にしてルーティング先を特定し、
IPレイヤのパケットオプションにルーティング先の情報を付与することによって、
後段の前記中継装置がIPレイヤのオプションの解析で情報を参照することで的確な転送先へルーティングすることを特徴とするアクセス中継方法。
【請求項2】
請求項1のアクセス中継方法において、
前記クライアントから前記サーバに至る間の前記中継装置や前記スイッチのいずれかである各ノードが、前記リクエストを転送処理する際に、IPレイヤのパケットオプションに自ノードの識別子を付与することによって、前記サーバや前記中継装置において前記リクエストが辿ったネットワーク経路を取得することを特徴とするアクセス中継方法。
【請求項3】
請求項1または2に記載のアクセス中継方法において、
前記中継装置が、前記クライアントからの前記リクエストを管理者が指示した前記サーバへルーティングすることを特徴とするアクセス中継方法。
【請求項4】
請求項1または2に記載のアクセス中継方法において、
前記中継装置が、前記クライアントからの前記リクエストを管理者が指示したネットワーク経路へルーティングすることを特徴とするアクセス中継方法。
【請求項5】
請求項1または2に記載のアクセス中継方法において、
前記中継装置が、前記クライアントからの前記リクエストを前記サーバへ転送する際に、前記サーバ間のリクエスト転送を防止するために、前記サーバのデータ配置情報を利用してルーティングを行うことを特徴とするアクセス中継方法。
【請求項6】
クライアントとサーバがアクセス中継装置を介して相互接続されるネットワークシステムにおいて、スイッチやゲートウェイやファイアウォールのいずれかである前段の前記アクセス中継装置の後段に配され、前記クライアントからのリクエストを前記サーバへルーティングするアクセス中継装置は、
上位レイヤの解析情報と前記サーバから配されるデータの分散ルールを元にしてルーティング先を特定する手段、
IPレイヤのパケットオプションに前記特定されたルーティング先の情報を付与する手段、
前段の中継装置から受け取ったルーティング先の情報に基づいて、IPレイヤのオプションの解析で情報を参照することで所望の転送先へルーティングする手段を有することを特徴とするアクセス中継装置。
【請求項7】
請求項6のアクセス中継装置において、
前記クライアントから前記サーバに至る間の前記アクセス中継装置や前記スイッチのいずれかである各ノードが、前記リクエストを転送処理する際に、IPレイヤのパケットオプションに自ノードの識別子を付与することによって、前記サーバや前記中継装置において前記リクエストが辿ったネットワーク経路を取得する手段を有することを特徴とするアクセス中継装置。
【請求項8】
請求項6または7に記載のアクセス中継装置において、
前記アクセス中継装置が、前記クライアントからの前記リクエストを管理者が指示した前記サーバへルーティングすることを特徴とするアクセス中継装置。
【請求項9】
請求項6または7に記載のアクセス中継装置において、
前記アクセス中継装置が、前記クライアントからの前記リクエストを管理者が指示したネットワーク経路へルーティングすることを特徴とするアクセス中継装置。
【請求項10】
請求項6または7に記載のアクセス中継装置において、
前記アクセス中継装置が、前記クライアントからの前記リクエストを前記サーバへ転送する際に前記サーバのデータ配置情報を利用してルーティングを行うことを特徴とするアクセス中継装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22A】
image rotate

【図22B】
image rotate


【公開番号】特開2013−90079(P2013−90079A)
【公開日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願番号】特願2011−227724(P2011−227724)
【出願日】平成23年10月17日(2011.10.17)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】