JP2004227534A - Server system, and error shielding method for mediating apparatus and client type server system - Google Patents

Server system, and error shielding method for mediating apparatus and client type server system Download PDF

Info

Publication number
JP2004227534A
JP2004227534A JP2003045142A JP2003045142A JP2004227534A JP 2004227534 A JP2004227534 A JP 2004227534A JP 2003045142 A JP2003045142 A JP 2003045142A JP 2003045142 A JP2003045142 A JP 2003045142A JP 2004227534 A JP2004227534 A JP 2004227534A
Authority
JP
Japan
Prior art keywords
server
client
request
virtual
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.)
Granted
Application number
JP2003045142A
Other languages
Japanese (ja)
Other versions
JP4167089B2 (en
Inventor
Takeshi Mishima
健 三島
Takeshi Akaike
武志 赤池
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2003045142A priority Critical patent/JP4167089B2/en
Publication of JP2004227534A publication Critical patent/JP2004227534A/en
Application granted granted Critical
Publication of JP4167089B2 publication Critical patent/JP4167089B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Hardware Redundancy (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a highly-reliable server system and mediating apparatus, which is suitable for continuous operation and can be inexpensively structured, and an error shielding method. <P>SOLUTION: In a server-side system in a client server type system, a request from a client is transferred to a server and a plurality of mediating apparatuses provided with a transfer means for transferring an appropriate response among responses to the request received from the server to the requester client. In addition, the server-side system can be accessed as a single server from the client, and an virtual address is predetermined so as to be accessed as a single router from the server. The mediating apparatuses have a control means for controlling so as to allow the transfer means to transfer requests and their responses to the virtual addresses. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、障害などによるサービスの停止が許されないECサーバ、Webサーバ、認証サーバなどのインターネットビジネス用システムや通信網のノードシステムなどのサーバシステムに関する。
【0002】
【従来の技術】
この種のサーバシステムは、クライアントに対して常にサービスを適切に提供する必要がある。すなわち、サーバシステムの「誤り」を隠蔽し、「障害(failure)」の発生を防止する必要がある。ここで「障害」とはシステムの機能損失を意味する。「障害」の発生要因の具体例としては、例えば、ハードウェアにおけるバグや故障、ソフトウェアにおけるバグなどが挙げられる。そして、これら「障害」の原因を「フォールト」と呼ぶ。仮に、システムに「フォールト」が存在していても、そのことが直ちに「障害」を引き起こすとは限らず潜在することもある。「フォールト」が原因で異常が表面化することを「誤り(error)」という。そして、「誤り」が発生したシステムが正常な状態から逸脱すると「障害」が発生する。なお、「誤り」はバグや故障などの狭義の「フォールト」のみが原因ではなく、例えば、間欠故障やオペレータの設定ミスや操作ミスなども「誤り」の原因となる。
【0003】
この「誤り」を隠蔽することができる高信頼性サーバシステムの一例として、「サーバシステム、仲介装置、クライアントサーバ型システムにおける誤り隠蔽方法」(特願2001−256511号)が提案されている。この高信頼性サーバシステムの一例について、図19を参照し説明する。なお、ここではクライアントに対してWebサービスを提供するシステムについて例示する。
【0004】
この高信頼性サーバシステム1010は、図19に示すように、クライアント1041の要求を受け取り、該要求に対する応答をする高信頼性サーバ1020と、高信頼性サーバ1020とクライアント1041との間に介在する仲介装置1030とを備えている。
【0005】
高信頼性サーバ1020は、一つ以上のサーバで構成されている。図19の例では、高信頼性サーバ1020は、3つのサーバ1021、1022、1023で構成される。仲介装置からそれぞれのサーバへ送信された同じ要求に対して、各サーバは正常に稼働していれば同じ応答を返す。
【0006】
仲介装置1030は、ネットワーク1050を介してクライアント1041からの要求を受け取り、後述する適切なタイミングで高信頼性サーバ1020へ転送し、高信頼性サーバからの応答の正当性をチェックして正しい応答をクライアント1041へ返す制御部1031と、高信頼性サーバ1020の各サーバ1021、1022、1023の状態を管理するサーバ管理表1032とを備えている。制御部1031は、サーバ管理表1032に対してどのサーバが正常であるか、又は障害があるかを登録し、このサーバ管理表1032を参照して、どのサーバにクライアント1041からの要求を処理させるかを判断する。サーバ管理表1032は、サーバを識別するためのサーバID、サーバのIPアドレス、サーバの稼働情報から構成される。
【0007】
クライアント1041は、Webブラウザを用いて、ネットワーク1050を経由して高信頼性サーバ1020にWebページを要求する。
【0008】
次に、仲介装置1030の動作について説明する。クライアント1041は、高信頼性サーバシステム1010へWebページ要求メッセージ1110を送信する。制御部1031はこの要求メッセージ1110を受け取り、サーバ管理表1032を見て、正常なサーバへ転送する。図19の例では、サーバ1021、1022、1023が正常であるため、制御部1031は要求メッセージ1110のコピー1111、1112、1113を作り、それぞれをサーバ1021、1022、1023へ転送する。
【0009】
サーバ1021は、要求メッセージ1111を受け取り、応答1121を制御部1031へ返す。同様に、サーバ1022は応答1122を、サーバ1023は応答1123を制御部1031へ返す。制御部1031は、応答1121、1122、1123で多数決を行い、多数派の応答を正常と判断しクライアント1041へ応答1120を返す。
【0010】
もし、多数決の結果、全部が一致せず不一致の応答があった場合、その応答を返したサーバは障害であると制御部1031は判断し、サーバ管理表1032の稼働状態情報を「正常」から「障害」へ変更する。以後、制御部1031は障害となったサーバへ、クライアントからの要求を転送しない。
【0011】
上記のようなシステムの他に、2つの計算機が平行して同じ処理を行う二重系システム(例えば、特許文献1参照)、オンライン側及びスタンバイ側とに分かれた2系の制御コンピュータ間において、タスク同期をとる制御システム(例えば、特許文献2参照)等が従来技術として知られている。
【0012】
【特許文献1】
特開昭52−60540号公報
【特許文献2】
特開平1−303562号公報
【0013】
【発明が解決しようとする課題】
上述のように、従来の高信頼性サーバシステムでは、クライアントからの要求を受け取った制御部は、複数のサーバへ該要求を転送し、該要求に対するサーバからの応答を受け取り多数決を実行するという方式を採用してきた。従って、もしあるサーバが障害となり誤った応答を制御部へ返したとしても、多数決によってその誤りを隠蔽することができた。
【0014】
しかし、制御部自体が障害となった場合には、システム全体がダウンしてしまうという問題点があった。また、この問題を避けるために制御部を単に複数並べることも考えられるが、この場合には、クライアントやサーバからは複数の制御部が見えてしまう。このため、制御部が障害のたびに、クライアントとサーバ側で手動で設定を変更する必要が生じたり、又は、手動での設定を避ける場合には自動化するためにクライアントとサーバの双方に改造する必要が生じるという問題があった。
【0015】
本発明は、上記事情に鑑みてなされたものであり、その目的とするところは、信頼性が高く連続運転に適しかつ安価に構築可能なサーバシステム及び仲介装置並びに誤り隠蔽方法を提供することにある。
【0016】
【課題を解決するための手段】
上記目的を達成するために、本願発明は、クライアントサーバ型システムにおけるサーバ側のシステムにおいて、クライアントからの要求をサーバに転送するとともに、サーバから受信した前記要求に対する応答のうち正当なものを要求元のクライアントに転送する転送手段を備えた仲介装置を複数設けるとともに、クライアントからは単一のサーバとして見せるとともに、サーバからは単一のルータとして見せる仮想アドレスを予め決定し、前記仲介装置は、前記仮想アドレス宛の要求及び応答を前記転送手段が転送できるように制御する制御手段とを備えたことを特徴とするサーバシステムをもって解決手段とする。
【0017】
本発明によれば、クライアント・サーバ間の要求及び応答を転送している一の仲介装置が障害となっても、他の正常な仲介装置によって転送を継続できるので、システム全体のダウンを防ぎ、より高信頼なクライアントサーバ型システムを構築できる。また、仮想アドレスをあらかじめ決めておき、どの仲介装置もこれらの仮想アドレス宛の要求と応答を処理できるようにしている。これにより、どの仲介装置が障害等によりダウンしても、サーバやクライアントは何の変更も必要ない。すなわち、既存のサーバやクライアントを無改造で利用できるので、信頼性の高いクライアントサーバ型システムを低コストで構築することができる。
【0018】
【発明の実施の形態】
本発明の第一の実施形態に係る高信頼性サーバシステムについて図面を参照しながら説明する。図1は本実施形態に係る高信頼性サーバシステムの全体構成を説明するブロック図である。なお、本実施形態では、認証サービスを提供するシステム、すなわちサーバがRADIUSサーバであるシステムについて例示する。また、サーバが稼働しているパソコンや仲介装置では、OSとしてLinux(登録商標)が稼働しているシステムを例示する。
【0019】
この高信頼性サーバシステム10は、図1に示すように、クライアント70からの要求に対して応答を返す高信頼性サーバ20と、高信頼性サーバ20とクライアント70との間に介在する仲介装置30とを備えている。図1の例では、仲介装置30として2つの仲介装置30a及び30bとを備えている。なお、以下の説明において、複数の仲介装置30及びその構成要素の各々を個別に表す場合は、仲介装置30aや仲介装置30bなどのように、符号「a」「b」を付して表すものとする。
【0020】
このシステムにおいて、各装置間の通信プロトコル体系は不問である。本実施形態ではTCP/IPプロトコルスイートを用いた。なお、TCP/IPプロトコルスイートは、TCP及びIPを狭義に表すものではなく、UDPやARPなどを含む広義のプロトコル体系を意味する。
【0021】
高信頼性サーバ20は、一つ以上のサーバで構成される。図1の例では、高信頼性サーバ20は、3つのサーバ21、22、23で構成される。仲介装置からそれぞれのサーバへ送信された同じ要求に対して、各サーバは正常に稼働していれば同じ応答をする。サーバ21、22、23は、コンピュータ上などで動作するソフトウェアで実装しても良いし、ハードウェアで実装しても良い。すなわち、高信頼性サーバ20は、複数のハードウェアによって実現しても良いし、一台のハードウェア上に複数のサーバを実装することによって実現しても良い。図1の例では、サーバ21、22、23はそれぞれコンピュータ91、92、93上で動作しているソフトウェアである。コンピュータ91、92、93はそれぞれIPアドレス172.16.3.3、172.16.3.4、172.16.3.5が割り当てられている。また、コンピュータ91、92、93はそれぞれMACアドレスcc:cc:cc:cc:cc:03、cc:cc:cc:cc:cc:04、cc:cc:cc:cc:cc:05を有している。
【0022】
クライアント70は、高信頼性サーバシステム10によりサービスの提供を受ける装置である。本実施形態では、クライアント70としてRAS(Remote Access Server)などのNAS(Netwark Access Server)であるものを例示する。また、本実施形態では、クライアント70には、IPアドレスとして192.168.3.200が割り当てられている。また、MACアドレス、dd:dd:dd:dd:dd:00を有している。
【0023】
仲介装置30は、サーバ21、22、23側ネットワーク(以下、内郡ネットワークという)81に接続するNIC(Network Interface Card)31と、クライアント側ネットワーク(以下、外部ネットワークという)82と接続するNIC32とを備えている。また、仲介装置30は、NIC31を介して内部ネットワーク81からパケットを受信する内部ネットワーク側パケット受信部33と、NIC31を介して内部ネットワーク81へパケットを送信する内部ネットワーク側パケット送信部34と、NIC32を介して外部ネットワーク82からパケットを受信する外部ネットワーク側パケット受信部35と、NIC32を介して外部ネットワーク82へパケットを送信する外部ネットワーク側パケット送信部36とを備えている。さらに、仲介装置30は、内部ネットワーク側パケット受信部33及び外部ネットワーク側パケット受信部35から受信したパケットに対して後述する処理を行い、内部ネットワーク側パケット送信部34及び外部ネットワーク側パケット送信部36を用いてパケットを送信するパケット制御部40を備えている。
【0024】
各仲介装置30は、NIC31を介して、サーバ21、22、23が動作しているコンピュータ91、92、93に接続されている内部ネットワーク81と接続している。図1の例では、コンピュータ91、92、93とNIC32はリピータハブ83に接続されている。また、各仲介装置30は、NIC32を介して、クライアント70が接続されている外部ネットワーク82に接続されている。図1の例では、クライアント70とNIC32はリピータハブ84に接続されている。
【0025】
外部ネットワーク82と接続するNIC32及び内部ネットワーク81と接続するNIC31には、仲介装置30ごとに異なるIPアドレスが割り当てられ、また、それぞれが異なるMACアドレス(ハードウェアアドレス)を有している。図1の例では、仲介装置30aのNIC32aには、IPアドレスとして192.168.3.1が割り当てられており、MACアドレスはaa:aa:aa:aa:aa:01である。仲介装置30bのNIC32bには、IPアドレスとして192.168.3.2が割り当てられており、MACアドレスはaa:aa:aa:aa:aa:02である。また、図1の例では、仲介装置30aのNIC31aには、IPアドレスとして172.16.3.1が割り当てられており、MACアドレスはbb:bb:bb:bb:bb:01である。仲介装置30bのNIC31bには、IPアドレスとして172.168.3.2が割り当てられており、MACアドレスはbb:bb:bb:bb:bb:02である。
【0026】
次に、仮想サーバと仮想ルータについて説明する。本願発明の目的である、クライアントやサーバを無改造で利用しつつ、さらなる高信頼化を提供することを実現するためには、以下の二つの条件を満たす必要がある。
【0027】
(1)もし、高信頼性サーバシステム10の内部で障害が発生したとしても、クライアント70にはその障害は隠蔽される。つまり、クライアント70は、その障害によって動作や設定を変更する必要はなく、障害前と変わらずに高信頼性サーバシステム10からサービスを受けることができる。
【0028】
(2)もし、複数の仲介装置30のうち何れかで障害が発生したとしても、各サーバ21、22、23にはその障害は隠蔽される。つまり、各サーバ21、22、23は、その障害によって動作や設定を変更する必要はなく、障害前と変わらずにクライアント70と通信することができる。
【0029】
本願発明では、上記条件(1)を実現するために「仮想サーバ」を定義し、上記条件(2)を実現するために「仮想ルータ」を定義する。
【0030】
仮想サーバとは、高信頼性サーバシステムの内部構成を隠蔽し、クライアントから見て仮想的に一つのサーバに見えるサーバのことである。例えば、図1に例示した高信頼性サーバシステム10の場合、図2に示すように、クライアント70から見て仮想IPアドレス192.168.3.100、仮想MACアドレスaa:aa:aa:aa:aa:00を持った仮想サーバ11のことである。
【0031】
ここで、仮想IPアドレスとは、仮想サーバ11に割り当てられたIPアドレスであり、クライアント70はこのIPアドレス宛に要求パケットを送信する。仮想MACアドレスとは、仮想サーバ11に割り当てられたMACアドレスであり、仮想サーバ11が接続されているネットワーク、つまり、高信頼性サーバシステム10が接続されている外部ネットワーク82に接続されている通信機器が仮想サーバ11と通信を行う場合に使われるMACアドレスである。つまり、仮想MACアドレスとは、外部ネットワーク82に接続されている通信機器が仮想IPアドレスに対するアドレス解決要求(ARP要求パケットを送信する)を行った際に得られる(ARP応答パケットに含まれる)MACアドレスのことである。仮想IPアドレスと仮想MACアドレスは、外部ネットワーク82に接続されている通信機器が持っているIPアドレス及びMACアドレスと重複しないように選択する必要がある。ここで注意すべき点は、仮想IPアドレス及び仮想MACアドレスを持った通信機器は実際には存在しないことである。従って、ARP要求に対するARP応答は、通常は仮想IPアドレス及び仮想MACアドレスを持った通信機器のLinuxカーネルで実行されるが、仮想IPアドレス及び仮想MACアドレスを持った通信機器が存在しないため、アドレス解決されないという問題が生じる。この問題を解決するために、仲介装置30は疑似ARP応答部を持っており、アドレス解決を実現する(詳細は後述する)。
【0032】
このような構成により、一つ以上の仲介装置が正常でありかつ一つ以上のサーバが正常であれば、仮想サーバ11は正常に機能する。従って、仮想サーバ11の実現により、高信頼性サーバシステム10の内部で障害があろうと無かろうと、クライアント70はIPアドレス192.168.3.100の仮想サーバ11と通信することだけを行なえば良い。つまり、上記条件(1)を満足することができる。
【0033】
仮想ルータとは、仲介装置の冗長化構成を隠蔽し、サーバから見て仮想的な一つのルータに見えるルータのことである。例えば、図1の高信頼性サーバシステム10の場合、図3に示すように、サーバ21、22、23から見て、内部ネットワーク81側に仮想IPアドレス172.16.3.100、仮想MACアドレスbb:bb:bb:bb:bb:00を持っている仮想ルータ37のことである。
【0034】
ここで、仮想IPアドレスとは、仮想ルータ37に割り当てられたIPアドレスである。内部ネットワーク81に接続されている通信機器は、外部ネットワーク82へパケットを転送する際の、ルータのIPアドレスとして認識する。一方、仮想MACアドレスとは、仮想ルータ37に割り当てられたMACアドレスであり、内部ネットワーク81に接続されている通信機器が、仮想ルータ37と通信を行う場合に使われるMACアドレスである。つまり、仮想MACアドレスとは、内部ネットワーク81に接続されている通信機器が、仮想IPアドレスに対するアドレス解決要求(つまり、ARP要求パケットを送信する)を行った際に得られる(ARP応答パケットに含まれる)MACアドレスのことである。仮想IPアドレスと仮想MACアドレスは、内部ネットワーク81に接続されている通信機器の有するIPアドレス及びMACアドレスと重複しないように選択する必要がある。ここで注意すべき点は、仮想IPアドレス及び仮想MACアドレスを持った通信機器は実際には存在しないことである。従って、ARP要求に対するARP応答は、通常は仮想IPアドレス及び仮想MACアドレスを持った通信機器のLinuxカーネルで実行されるが、仮想IPアドレス及び仮想MACアドレスを持った通信機器が存在しないため、アドレス解決されないという問題が生じる。この問題を解決するために、仲介装置30は疑似ARP応答部を持っており、アドレス解決を実現する(詳細は後述する)。
【0035】
このような構成により、一つ以上の仲介装置30が正常であれば、仮想ルータ37は正常に機能する。従って、仮想ルータ37の実現により、各仲介装置30で障害があろうと無かろうと、内部ネットワーク81に接続されている通信機器(図1の例の場合、サーバ21、22、23)はIPアドレス172.16.3.100の仮想ルータ37と通信することだけを行えば良い。つまり、上記条件(2)を満足することができる。
【0036】
次に、仮想サーバ/仮想ルータを実現するための詳細について説明する。なお、仮想サーバはクライアントから見えるものであり、仮想ルータはサーバから見えるものであるが、以下に説明する方法により仮想サーバ、仮想ルータともに実現することができる。
【0037】
まず始めに、パケット制御部40の詳細な構成について図4を参照して説明する。図4に示すように、パケット制御部40は、高信頼性サーバ20の全てのサーバ(図1の例の場合、サーバ21、22、23)の状態を管理するサーバ管理表42と、内部ネットワークにおいて、仮想ルータのIPアドレス解決要求に対して応答を返す内部ネットワーク側擬似ARP応答部43と、外部ネットワークにおいて、仮想サーバのIPアドレス解決要求に対して応答を返す外部ネットワーク側擬似ARP応答部44と、クライアント70からの要求を受け取り高信頼性サーバ20へ該要求を転送し、高信頼性サーバ20からの応答の正当性をチェックして正しい応答をクライアント70へ返すサーバ制御部41とを備えている。
【0038】
サーバ制御部41は、サーバ管理表42に対してどのサーバが正常であるか、又は障害があるかを登録し、このサーバ管理表42を参照して、どのサーバにクライアント70からの要求を処理させるかを判断する。
【0039】
図5に、サーバ管理表42の一例を示す。図5に示すように、サーバ管理表42は、各サーバを識別するためのサーバID、サーバが動作しているコンピュータのIPアドレス、サーバの稼働状態から構成されている。図5の例では、各サーバの状態が正常である場合を示している。
【0040】
サーバ制御部41は、各サーバからの応答パケットからサーバの障害を検出した場合、サーバ管理表42内の該当するサーバの稼働状態を「正常」から「障害」に変更する。例として、サーバ23が障害状態になった場合のサーバ管理表42を図6に示す。
【0041】
一方、サーバ制御部41は、障害状態となっているサーバが正常となったことを検出した場合、サーバ管理表42の稼働状態を「障害」から「正常」に変更する。例えば、サーバ23が障害から復旧した場合、サーバ制御部41はサーバ管理表42を図6に示すものから図5に示すものへと変更する。サーバが正常になったことを認識する方法としては、例えば、サーバ制御部41がサーバにパケットを投げてその応答から判断する方法や、コンピュータが立ち上がった時にサーバ制御部41へサーバが立ち上がったことを通知するソフトウェアをコンピュータ上で動作させる方法などが挙げられる。
【0042】
次に、内部ネットワーク側でのパケット送受信処理について説明する。内部ネットワークで行われる通信は、サーバ21、22、23と仮想ルータ37との間の通信である。なお、図1の例では、コンピュータ91、92、93は、デフォルトゲートウェイを仮想ルータ37に設定している。
【0043】
まず、通信に先立って、コンピュータ91、92、93は仮想IPアドレス172.16.3.100に対するMACアドレスを知る必要があるため、コンピュータ91、92、93はARP要求パケットをブロードキャストする。前述のように、実際には、仮想IPアドレス172.16.3.100を持った通信機器は存在しないため、通常はアドレス解決されず、コンピュータ91、92、93は通信を行えないという問題が発生する。この問題を避けるために、内部ネットワーク側パケット受信部33は、NIC31をpromiscuous mode(NICに到着する全てのパケットを受信するモード)に設定することでリピータハブ83に到着する全てのパケットをraw socketで受信できるようにし、受信したパケットのうち仮想IPアドレス172.16.3.100のARP要求パケットを内部ネットワーク側擬似ARP応答部43へ渡す。同じネットワークに接続されている機器のMACアドレスと重複しないようにあらかじめ選んだ仮想MACアドレスを疑似ARP応答部43は返送する。全ての疑似ARP応答部43は同じ仮想MACアドレスを返すように設定しておかなければならない。この例では、疑似ARP応答部43aと43bは、仲介装置30、コンピュータ91、92、93のMACアドレスと重複しないbb:bb:bb:bb:bb:00を含んだARP応答パケットを返す。複数の仲介装置が正常稼働している場合は、複数のARP応答パケットがコンピュータ91、92、93それぞれへ返されるが、同じ内容のパケットなので問題ない。このようにして、仮想IPアドレスに対するアドレス解決が実現され、コンピュータ91、92、93は仮想ルータ37宛にパケット送信可能となる。
【0044】
なお、上記NICをpromiscuous modeに設定し、フィルタ(必要なパケットだけraw socketで受信する)を行うには、カーネルが提供しているTCP/IPスタックを使わずに、データリンク層からアプリケーション層へパケットを取り込むライブラリlibpcap(ftp://ftp.ee.lbl.gov/libpcap.tar.Z)を使うのが便利である。
【0045】
次に、内部ネットワーク81における仲介装置30の応答パケット受信処理について説明する。図7に内部ネットワーク81を経由して仮想ルータ37へやってくるパケットフォーマットを例示する。図7の例では、コンピュータ91から仮想ルータ37へ送信されたパケットのフォーマットである。
【0046】
図7に示すように、該パケットの送信先MACアドレスは仲介装置30aのものでも仲介装置30bのものでもない。さらに、宛先IPアドレスも仲介装置30aのものでも仲介装置30bのものでもない。そこで、上記のごとく内部ネットワーク側パケット受信部33は、libpcapを使いパケットを受信する。宛先IPアドレスがクライアント70の場合、サーバ制御部41へ渡す。なお、この動作は内部ネットワーク側パケット受信部33aも内部ネットワーク側パケット受信部33bも並行して同時に行う。
【0047】
次に、内部ネットワーク81における仲介装置30の要求パケット送信処理について説明する。図8に仮想ルータ37から内部ネットワーク81を経由してサーバへ送信されるパケットのフォーマットを例示する。図8の例では、仲介装置30(仲介装置30aと仲介装置30bともに)からコンピュータ91へ送信されるパケットのフォーマットである。
【0048】
図8に示すように、該パケットの送信元IPアドレスは、仲介装置30aでも仲介装置30bでもなく、クライアント70である。これは、サーバ21に対して仲介装置30を単なるルータに見せるためである。また、送信元MACアドレスも仲介装置30aでも仲介装置30bでもない。従って、該パケットは、カーネルが提供している標準のTCP/IPスタックを利用して通常のsocketを使って送信することができない。そこで、内部ネットワーク側パケット送信部34がイーサネットヘッダ、IPヘッダ、UDPヘッダを作成しraw socketを使ってサーバ21へ送信する。
【0049】
複数の仲介装置が正常稼働している場合、サーバは正常稼働している仲介装置の数の、図8に示すパケットを受信することになる。全てのパケットは全く同じであるため、最初の一つだけを処理し残りのパケットはサーバで捨てる必要がある。例えば、RADIUSのようにUDPを使ったアプリケーションの場合、重複して複数の同じパケットを受信する可能性があるため、二つ目以降の重複パケットを捨てる機能は通常は元々持っている。従って、既に上記不必要なパケットを捨てる機能は実装済みであり、本発明のためにサーバを改造する必要はない。
【0050】
次に、外部ネットワーク側でのパケット送受信処理について説明する。外部ネットワーク82で行われる通信は、クライアント70と仮想サーバ11間の通信である。
【0051】
まず、通信に先立って、クライアント70は仮想IPアドレス192.168.3.100に対するMACアドレスを知る必要があるため、クライアント70は、ARP要求パケットをブロードキャストする。前述のように、実際には、仮想IPアドレス192.168.3.100を持った通信機器は存在しないため、通常はアドレス解決されず、クライアント70は通信を行えないという問題が発生する。この問題を避けるために、外部ネットワーク側パケット受信部35はNIC32をpromiscuous mode(NICに到着する全てのパケットを受信するモード)に設定することでリピータハブ84に到着する全てのパケットをrawsocketで受信できるようにし、受信したパケットのうち仮想IPアドレス192.168.3.100のARP要求パケットを、外部ネットワーク側擬似ARP応答部44へ渡す。同じネットワークに接続されている機器のMACアドレスと重複しないようにあらかじめ選んだ仮想MACアドレスを擬似ARP応答部44は返送する。全ての疑似ARP応答部44は同じ仮想MACアドレスを返すように設定しておかなければならない。この例では、疑似ARP応答部44aと44bは、仲介装置30、クライアント70のMACアドレスと重複しないaa:aa:aa:aa:aa:00を含んだARP応答パケットを返す。複数の仲介装置が正常稼動している場合は、複数のARP応答パケットがクライアント70へ返されるが、同じ内容のパケットなので問題ない。このようにして、仮想IPアドレスに対するアドレス解決が実現され、クライアント70は仮想サーバ11宛にパケット送信可能となる。
【0052】
なお、上記NICをpromiscuous modeに設定し、フィルタ(必要なパケットだけraw socketで受信する)を行うには、カーネルが提供しているTCP/IPスタックを使わずに、データリンク層からアプリケーション層へパケットを取り込むライブラリlibpcap(ftp://ftp.ee.lbl.gov/libpcap.tar.Z)を使うのが便利である。
【0053】
次に、外部ネットワーク82における仲介装置30の要求パケット受信処理について説明する。図9に外部ネットワーク82を経由して仮想サーバ11へやってくるパケットフォーマットを例示する。図9の例では、クライアント70から仮想サーバ11へ送信されたパケットのフォーマットである。
【0054】
図9に示すように、該パケットの送信先MACアドレスは仲介装置30aのものでも仲介装置30bのものでもない。そこで、上記のごとく外部ネットワーク側パケット受信部35はlibpcapを使いパケットを受信する。宛先IPアドレスが仮想サーバ11の場合、サーバ制御部41へ渡す。なお、この動作は外部ネットワーク側パケット受信部35aも外部ネットワーク側パケット受信部35bも並行して同時に行う。
【0055】
次に、外部ネットワーク82における仲介装置30の応答パケット送信処理について説明する。図10に仮想サーバ30から外部ネットワーク82を経由してクライアント70へ送信されるパケットのフォーマットを例示する。図10の例では、仲介装置30(仲介装置30aと伸介装置30bともに)からクライアント70へ送信されるパケットのフォーマットである。
【0056】
図10に示すように、送信元MACアドレスも仲介装置30aでも仲介装置30bでもない。従って、該パケットは、カーネルが提供している標準のTCP/IPスタックを利用して通常のsocketを使って送信することができない。そこで、外部ネットワーク側パケット送信部36がイーサネットヘッダ、IPへッダ、UDPヘッダを作成しraw socketを使ってクライアント70へ送信する。
【0057】
複数の仲介装置が正常稼働している場合、クライアントは正常稼働している仲介装置の数の、図10に示すパケットを受信することになる。全てのパケットは全く同じであるため、最初の一つだけを処理し、残りのパケットはクライアントで捨てる必要がある。例えば、RADIUSのようにUDPを使ったアプリケーションの場合、重複して複数の同じパケットを受信する可能性があるため、二つ目以降の重複パケットを捨てる機能は通常は元々持っている。従って、既に上記不必要なパケットを捨てる機能は実装済みであり、本発明のためにクライアントを改造する必要はない。
【0058】
次に、サーバ制御部41の動作について図面を参照して説明する。なお、例として取り上げる高信頼性サーバシステムの構成と各装置は、図1に示したような状態であるとする。図11はサーバ制御部41の動作を説明するフローチャートである。また、図12及び図13は、高信頼性サーバシステム10の動作を説明する図である。
【0059】
サーバ制御部41は、クライアント70からの要求パケットを外部ネットワーク側パケット受信部35が受信したかどうかをチェックし(ステップSA1)、要求パケットが無かった場合、再び要求パケット受信をチェックする。要求パケットがあった場合、サーバ管理表42で稼働状態が「正常」となっているサーバへ内部ネットワーク側パケット送信部34を用いて該要求パケットを送信する(ステップSA2)。以上の処理によりクライアントからの要求の流れを図12の太線矢印で示す。
【0060】
次に、タイマを設定して各サーバからの応答パケットをチェックする(ステップSA3)。タイムアウトではない場合、サーバからの応答パケットを内部ネットワーク側パケット受信部33が受信したかどうかをチェックする(ステップSA4)。サーバからの応答パケットを受信しなかった場合、再びタイムアウトのチェックを行う(ステップSA3)。サーバからの応答パケットを受信した場合、前記要求パケットの宛先サーバの全てから応答パケットを受信したかどうかをチェックする(ステップSA5)。全ての応答パケットが揃ってない場合、再びタイムアウトのチェックを行う(ステップSA3)。
【0061】
全ての応答パケットが揃った場合、障害になったサーバがあるかどうかをチェックする(ステップSA6)。障害になったサーバがあるかどうかを判断する方法としては、例えば、複数の応答で多数決を行う方法や、応答に含まれるデータの正当性をチェックする方法などが挙げられる。後者のデータ正当性のチェックの方法としては、例えば、有り得ないコードが含まれている場合には、障害と判断する、有るはずのコードが含まれていない場合には、障害と判断する、などが挙げられる。障害になったサーバがある場合、サーバ管理表42に、該当するサーバの稼働状態を「障害」と登録する(ステップSA7)。その後に、正常な応答パケットを外部ネットワーク側パケット送信部36を用いてクライアント70へ送信する(ステップSA8)。
【0062】
前記ステップSA6において障害になったサーバがない場合、正常な応答パケットを外部ネットワーク側パケット送信部36を用いてクライアント70へ送信する(ステップSA8)。
【0063】
また、前記ステップSA3においてタイムアウトになった場合、すなわち応答パケットを返さないサーバが存在する場合、当該サーバは障害であると判断し、サーバ管理表42に、該当するサーバの稼働状態を「障害」と登録し(ステップSA9)、他に障害になったサーバがあるかどうかをチェックする(ステップSA6)。そして、正常な応答パケットを外部ネットワーク側パケット送信部36を用いてクライアント70へ送信する(ステップSA8)。
【0064】
応答パケットをクライアント70へ送信した(ステップSA8)後は、再びクライアント70からの要求をチェックする(ステップSA1)。以上の処理によるサーバからクライアント70への応答パケットの流れを図13の太線矢印で示す。また、サーバ23が障害となった場合のサーバ管理表42は、前述したように図6に示すようなものとなる。
【0065】
以上のような処理により、高信頼性サーバ20を構成する各サーバ21、22、23のうち「障害」となったサーバへは、クライアント70からの要求パケットは転送されず、高信頼性サーバシステム10から切り離されたことになる。
【0066】
仲介装置30a、30bは、お互いを意識せずに、独立に動作する、そのため、もし、どちらかの仲介装置が障害となったとしても、もう一方の仲介装置に影響を与えない。例えば、仲介装置30aが障害となってダウンした場合、仲介装置30aの生死を知ることなく、仲介装置30bは上述の仮想サーバ、仮想ルータの動作を継続する。
【0067】
同じように、仲介装置が障害から復旧したとしても、もう一方の仲介装置に影響を与えない。例えば、障害でダウンしていた仲介装置30aが復旧して上述の仮想サーバ、仮想ルータの動作を開始したとしても、仲介装置30aの生死を知ることなく仲介装置30bは上述の仮想サーバ、仮想ルータの動作を継続する。
【0068】
上記のように仲介装置30aと30bが同じ処理を並行して独立に実行するためには、仲介装置30aと30bに全く同じパケットが送られなければならないという条件を満たすしくみが必要である。しかし、クライアント70は仮想サーバ11宛に一つのパケットのみ、サーバ21、22、23は仮想ルータ37宛に一つのパケットのみしか送信しないため、通常では上記条件を満たせない。本実施例ではリピータハブ83、84とpromiscuous modeにしたNIC31、32を組み合わせることで上記条件を満たしている。つまり、リピータハブは全てのポートに全てのパケットを送信するという特徴と、promiscuous modeにしたNICはポートに到達した全てのパケットを受信するという特徴とを組み合わせて上記条件を実現している。
【0069】
よって、本実施例では、リピータハブの代わりに、例えば、単純にスイッチングハブに置き換えることはできない。まし、リピータハブを使用できない場合は、別途、パケットをコピーし全ての仲介装置へ転送する手段が必要となる。
【0070】
本発明の第二の実施形態に係る高信頼性サーバシステムについて図面を参照して説明する。図14は、第二の実施形態に係る高信頼性サーバシステムの全体構成を説明するブロック図である。
【0071】
本実施形態が第一の実施形態と異なる点は、3つの仲介装置30を備えている点にある。しかし、仲介装置30はお互いを意識せずに動作するので、2つであろうと3つであろうと、あるいはそれ以上であろうと動作は変わらない。
【0072】
異なる点は、サーバが受け取るパケットの数とクライアントが受け取るパケットの数である。第一の実施形態では、仲介装置30は2つだったので、最大で2つの同じパケットを受信するので、2つ目は破棄する必要があった。第二の実施形態では、仲介装置30は3つなので、最大3つの同じパケットを受信することになる。従って、サーバ及びクライアントは2つ目、3つ目のパケットを破棄する必要がある。
【0073】
本発明の第三の実施形態に係る高信頼性サーバシステムについて図面を参照して説明する。図15は第三の実施形態に係るパケット制御部45を説明するブロック図である。
【0074】
本実施形態が第一及び第二の実施形態と異なる点は、パケット制御部にサーバ管理表修正部46を備えている点にある。これに伴い、以下の動作が追加される。
【0075】
サーバ管理表修正部46の動作について、図16を参照して説明する。図16は、サーバ管理表修正部46の動作を説明するフローである。
【0076】
まず、サーバ管理表修正部46は自分自身が管理するサーバ管理表42の内容を外部ネットワーク側パケット送信部36を使って仮想サーバ11宛に送信する(ステップSB1)。次に、サーバ管理表修正部46は外部ネットワーク側パケット受信部35を使って転送されてきたサーバ管理表42を受信する(ステップSB2)。こうして受信したサーバ管理表42の情報を比較し、同じかどうかを判定する(ステップSB3)。
【0077】
同じであった場合(ステップSB3のYES)、何もせず一定期間スリープした後(ステップSB5)、再び自分自身が管理するサーバ管理表42の内容を外部ネットワーク側パケット送信部36を使って仮想サーバ11宛に送信する(ステップSB1)。
【0078】
同じでなかった場合(ステップSB3のNO)、何らかのアルゴリズムで自分自身が管理するサーバ管理表42を修正する(ステップSB4)。例えば、「正常」と「障害」というように稼働状態が異なる場合、「障害」が正しい状態と判断し「正常」から「障害」へ修正する。または、多数決で決定しても良い。「障害」に変更されたサーバは、システムから切り離され、以後、クライアントからの要求を転送しない。修正後、一定期間スリープした後(ステップSB5)、再び自分自身が管理するサーバ管理表42の内容を外部ネットワーク側パケット送信部36を使って仮想サーバ11宛に送信する(ステップSB1)。
【0079】
このようにして、互いに独立に動作している仲介装置30間で、何らかの原因で状態が不一致になった場合、サーバ管理表42を修正することができる。
【0080】
本発明の第四の実施形態に係る高信頼性サーバシステムについて図面を参照して説明する。図17は第四の実施形態に係る高信頼性サーバシステム100の全体構成を説明するブロック図、図18は第四の実施形態に係るパケット制御部400を説明するブロック図である。
【0081】
本実施形態が第一の実施形態と異なる点は、内部ネットワーク81が存在せず、高信頼性サーバ20と仲介装置300ともに同一のネットワーク820に接続されていることである。
【0082】
これに伴い、仲介装置300は内部ネットワーク側パケット受信部33と外部ネットワーク側パケット受信部35を合わせ持ったパケット受信部350を備え、内部ネットワーク側パケット送信部34と外部ネットワーク側パケット送信部36を合わせ持ったパケット送信部360を備える。また、パケット制御部400は、内部ネットワーク側疑似ARP応答部43と外部ネットワーク側疑似ARP応答部44を合わせ持った疑似ARP応答部440を備える。
【0083】
上記のごとく、内部ネットワーク81を無くすことで高信頼性サーバシステムの構成ブロック図は変わるが、ネットワーク820を論理的に外部ネットワーク82と内部ネットワーク81に分けて考えれば、第一の実施形態と同じである。
【0084】
なお、各サーバは同じ応答を返すならば同じ実装である必要はない。すなわち、バージョン、仕様、プログラム言語、コンパイラの種類、コンパイラオプション、ハードウェアかソフトウェアか、などが異なっていても良い。さらに、サーバは一つの部品で構成されていても複数の部品で構成されていても良い。
【0085】
また、上記実施形態では、パケット送受信部、制御部、サーバ管理表、擬似ARP応答部、サーバ管理表修正部を一つの仲介装置に実装し、サーバは別の装置で実装しているが、高信頼性サーバシステムの各構成要素の物理的位置関係は任意である。すなわち、例えば、各構成要素を一つのコンピュータ上に実装しても良いし、異なるコンピュータ上にばらばらに実装しても良い。また、一部を同一のコンピュータに実装しても良い。
【0086】
さらに、上記実施例では、サーバが3つの例を示しているが、サーバは3つ以上あっても良い。また、サーバ障害に対する信頼性の低下が許されるのであれば、サーバは3つ以下であっても良い。
【0087】
さらに、上記実施形態では、クライアントが一つの場合を想定しているが、クライアントが複数あっても良い。
【0088】
さらに、第一の実施例では、仮想サーバ11の仮想IPアドレスと仮想MACアドレスは、外部ネットワーク82に接続されている通信機器(仲介装置30も含む)が持っていないものを選んだが、いづれか一つの仲介装置30のNIC32のIPアドレスを仮想IPアドレスとして選んでも良いし、いづれか一つの仲介装置30のNIC32のMACアドレスを仮想MACアドレスとして選んでも良い。ただし、重要なことは、全ての仲介装置30で、仮想IPアドレスのARP要求に対するARP応答は同じものを返さなければならない。
【0089】
さらに、第一の実施例では、仮想ルータ37の仮想IPアドレスと仮想MACアドレスは、内部ネットワーク81に接続されている通信機器(仲介装置30も含む)が持っていないものを選んだが、いづれか一つの仲介装置30のNIC31のIPアドレスを仮想IPアドレスとして選んでも良いし、いづれか一つの仲介装置30のNIC31のMACアドレスを仮想MACアドレスとして選んでも良い。ただし、重要なことは、全ての仲介装置30で、仮想IPアドレスのARP要求に対するARP応答は同じものを返さなければならない。
【0090】
なお、上記実施形態は例示的なものであり、本発明はこれに限定されるものではない。本発明の範囲は特許請求の範囲によって示されており、この特許請求の範囲の意味に入る全ての変形例は本発明に含まれるものである。
【0091】
【発明の効果】
以上説明したように、本発明によれば、クライアント・サーバ間の要求及び応答を転送している一の仲介装置が障害となっても、他の正常な仲介装置によって転送を継続できるので、システム全体のダウンを防ぎ、より高信頼なクライアントサーバ型システムを構築できる。また、仮想アドレスをあらかじめ決めているので、どの仲介装置もこれらの仮想アドレス宛の要求と応答を処理できるようにしている。従って、障害等により仲介装置がdownしても、サーバやクライアントは何の変更も必要ない。すなわち、既存のサーバやクライアントを無改造で利用できるので、高信頼なクライアントサーバ型システムを低コストで構築することができる。
【図面の簡単な説明】
【図1】第一の実施形態に係る高信頼性サーバシステムの全体構成を説明するブロック図
【図2】クライアントから仲介装置を見た場合のシステムの見え方を示した図
【図3】サーバから仲介装置を見た場合のシステムの見え方を示した図
【図4】仲介装置の構成を説明するブロック図
【図5】サーバ管理表の一例を説明する図
【図6】サーバ管理表の他の一例を説明する図
【図7】パケットのフォーマットを説明する図
【図8】パケットのフォーマットを説明する図
【図9】パケットのフォーマットを説明する図
【図10】パケットのフォーマットを説明する図
【図11】仲介装置の動作を説明する図
【図12】クライアントからの要求の流れを説明する図
【図13】サーバからの応答の流れを説明する図
【図14】第二の実施形態に係る高信頼性サーバシステムの全体構成を説明するブロック図
【図15】第三の実施形態に係るパケット制御部45を説明するブロック図
【図16】第三の実施形態に係るサーバ管理表修正部の動作を説明する図
【図17】第四の実施形態に係る高信頼性サーバシステムの全体構成を説明するブロック図
【図18】第四の実施形態に係るパケット制御部を説明するブロック図
【図19】従来の高信頼性サーバシステムの構成図
【符号の説明】
10…高信頼性サーバシステム、11…仮想サーバ、20…高信頼性サーバ、21、22、23…サーバ、30a、30b、30c、300a、300b…仲介装置、31a、31b、32a、32b…NIC、33a、33b…内部ネットワーク側パケット受信部、34a、34b…内部ネットワーク側パケット送信部、35a、35b…外部ネットワーク側パケット受信部、350a、350b…パケット受信部、36a、36b…外部ネットワーク側パケット送信部、360a、360b…パケット送信部、37…仮想ルータ、40a、40b、400a、400b…パケット制御部、41…サーバ制御部、42…サーバ管理表、43…内部ネットワーク側擬似ARP応答受信部、44…外部ネットワーク側擬似ARP応答受信部、46…サーバ管理表修正部、70…クライアント、81…内部ネットワーク、82…外部ネットワーク、820…ネットワーク、83、84…リピータHUB、91、92、93…コンピュータ、1010…高信頼性サーバシステム、1111、1112、1113…コピー、1020…高信頼性サーバ、1021、1022、1023…サーバ、1030…仲介装置、1031…制御部、1032…サーバ管理表、1041…クライアント、1050…ネットワーク。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a server system such as an Internet business system such as an EC server, a Web server, and an authentication server in which a service cannot be stopped due to a failure or a node system of a communication network.
[0002]
[Prior art]
In this type of server system, it is necessary to always appropriately provide services to clients. That is, it is necessary to conceal “errors” of the server system and prevent the occurrence of “failure”. Here, “failure” means loss of function of the system. Specific examples of the cause of the “failure” include a bug or a failure in hardware, a bug in software, and the like. The cause of the "failure" is called "fault". Even if a "fault" exists in the system, it does not necessarily immediately cause a "failure" but may be latent. The appearance of an abnormality due to a “fault” is referred to as an “error”. Then, if the system in which the “error” occurs deviates from a normal state, a “failure” occurs. Note that the "error" is not caused only by a "fault" in a narrow sense such as a bug or a failure. For example, an intermittent failure, an operator setting error, or an operation error also causes the "error".
[0003]
As an example of a highly reliable server system capable of concealing this “error”, “Error Concealment Method in Server System, Mediation Device, Client-Server System” (Japanese Patent Application No. 2001-256511) has been proposed. An example of the high reliability server system will be described with reference to FIG. Here, a system that provides a Web service to a client will be exemplified.
[0004]
As shown in FIG. 19, the high reliability server system 1010 receives a request from the client 1041 and intervenes between the high reliability server 1020 and the client 1041 that respond to the request. And an intermediary device 1030.
[0005]
The high reliability server 1020 includes one or more servers. In the example of FIG. 19, the high reliability server 1020 includes three servers 1021, 1022, and 1023. Each server returns the same response to the same request transmitted from the mediation device to each server if the server is operating normally.
[0006]
The mediation device 1030 receives the request from the client 1041 via the network 1050, transfers the request to the high-reliability server 1020 at an appropriate timing described later, checks the validity of the response from the high-reliability server, and sends a correct response. It includes a control unit 1031 for returning to the client 1041, and a server management table 1032 for managing the status of each of the servers 1021, 1022, and 1023 of the high reliability server 1020. The control unit 1031 registers which server is normal or has a failure in the server management table 1032, and refers to the server management table 1032 to cause which server to process a request from the client 1041. Judge. The server management table 1032 includes a server ID for identifying a server, an IP address of the server, and server operation information.
[0007]
The client 1041 requests a Web page from the reliable server 1020 via the network 1050 using a Web browser.
[0008]
Next, the operation of the mediation device 1030 will be described. The client 1041 transmits a Web page request message 1110 to the high reliability server system 1010. The control unit 1031 receives the request message 1110, looks at the server management table 1032, and transfers it to a normal server. In the example of FIG. 19, since the servers 1021, 1022, and 1023 are normal, the control unit 1031 makes copies 1111, 1112, and 1113 of the request message 1110, and transfers them to the servers 1021, 1022, and 1023.
[0009]
The server 1021 receives the request message 1111 and returns a response 1121 to the control unit 1031. Similarly, the server 1022 returns a response 1122 and the server 1023 returns a response 1123 to the control unit 1031. The control unit 1031 makes a majority decision with the responses 1121, 1122, and 1123, determines that the majority response is normal, and returns a response 1120 to the client 1041.
[0010]
If, as a result of the majority decision, there is a response that does not match all but does not match, the control unit 1031 determines that the server that returned the response is a failure, and changes the operating status information of the server management table 1032 from “normal” to “normal”. Change to "failure". Thereafter, the control unit 1031 does not transfer the request from the client to the failed server.
[0011]
In addition to the system described above, a dual system in which two computers perform the same processing in parallel (for example, see Patent Document 1), and a control computer of two systems divided into an online side and a standby side, A control system that synchronizes tasks (for example, see Patent Document 2) is known as a conventional technique.
[0012]
[Patent Document 1]
JP-A-52-60540
[Patent Document 2]
JP-A-1-303562
[0013]
[Problems to be solved by the invention]
As described above, in the conventional high-reliability server system, a control unit that receives a request from a client transfers the request to a plurality of servers, receives a response from the server to the request, and executes a majority vote. Has been adopted. Therefore, even if a server fails and returns an erroneous response to the control unit, the error could be concealed by majority decision.
[0014]
However, there has been a problem that if the control unit itself becomes an obstacle, the entire system goes down. In order to avoid this problem, it is conceivable to simply arrange a plurality of control units, but in this case, a plurality of control units are visible from a client or a server. For this reason, every time the control unit fails, it becomes necessary to manually change the settings on the client and server sides, or if both the settings are to be avoided, the control unit is remodeled into both the client and server for automation There was a problem that necessity arises.
[0015]
The present invention has been made in view of the above circumstances, and it is an object of the present invention to provide a server system, an intermediary device, and an error concealment method which can be constructed with high reliability, suitable for continuous operation, and inexpensively. is there.
[0016]
[Means for Solving the Problems]
In order to achieve the above object, the present invention provides a server-side system in a client-server type system, in which a request from a client is transferred to a server, and a legitimate response among the requests received from the server is transmitted to a request source. A plurality of intermediary devices having transfer means for transferring to the client are provided, and a virtual address to be shown as a single server from the client and as a single router from the server is determined in advance, and the intermediary device is Control means for controlling the transfer means to transfer the request and response addressed to the virtual address is provided.
[0017]
According to the present invention, even if one intermediary device transferring a request and a response between a client and a server becomes a failure, the transfer can be continued by another normal intermediary device. A more reliable client-server system can be constructed. In addition, virtual addresses are determined in advance so that any intermediary device can process requests and responses addressed to these virtual addresses. Thus, even if any intermediary device goes down due to a failure or the like, the server or client does not need to make any changes. That is, since existing servers and clients can be used without modification, a highly reliable client-server type system can be constructed at low cost.
[0018]
BEST MODE FOR CARRYING OUT THE INVENTION
A highly reliable server system according to a first embodiment of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram illustrating the overall configuration of the high reliability server system according to the present embodiment. In the present embodiment, a system that provides an authentication service, that is, a system in which the server is a RADIUS server will be described as an example. In the case of a personal computer or an intermediary device on which a server is running, a system in which Linux (registered trademark) is running as an OS is exemplified.
[0019]
As shown in FIG. 1, the high-reliability server system 10 includes a high-reliability server 20 that returns a response to a request from a client 70, and an intermediary device interposed between the high-reliability server 20 and the client 70. 30. In the example of FIG. 1, two mediation devices 30a and 30b are provided as mediation devices 30. In the following description, when each of the plurality of intermediary devices 30 and its components is individually represented, the mediation device 30a and the intermediary device 30b are denoted by reference numerals “a” and “b”. And
[0020]
In this system, the communication protocol system between the devices does not matter. In this embodiment, the TCP / IP protocol suite is used. The TCP / IP protocol suite does not express TCP and IP in a narrow sense, but means a broadly defined protocol system including UDP, ARP, and the like.
[0021]
The high reliability server 20 includes one or more servers. In the example of FIG. 1, the high reliability server 20 includes three servers 21, 22, and 23. Each server responds to the same request sent from the mediation device to each server if the server is operating normally. The servers 21, 22, and 23 may be implemented by software running on a computer or the like, or may be implemented by hardware. That is, the high reliability server 20 may be realized by a plurality of hardware, or may be realized by mounting a plurality of servers on one piece of hardware. In the example of FIG. 1, the servers 21, 22, and 23 are software running on computers 91, 92, and 93, respectively. Computers 91, 92 and 93 are assigned IP addresses 172.16.3.3, 172.16.3.4 and 172.16.3.5, respectively. The computers 91, 92, and 93 have MAC addresses cc: cc: cc: cc: cc: 03, cc: cc: cc: cc: cc: 04, and cc: cc: cc: cc: cc: 05, respectively. ing.
[0022]
The client 70 is a device that receives a service provided by the high reliability server system 10. In the present embodiment, the client 70 is an NAS (Network Access Server) such as a RAS (Remote Access Server). In the present embodiment, 192.168.3.3.200 is assigned to the client 70 as the IP address. In addition, it has a MAC address, dd: dd: dd: dd: dd: 00: 00.
[0023]
The mediation device 30 includes an NIC (Network Interface Card) 31 connected to a server 21, 22, 23 side network (hereinafter referred to as a Uchi-gun network) 81, and an NIC 32 connected to a client side network (hereinafter, referred to as an external network) 82. It has. The mediation device 30 includes an internal network-side packet receiving unit 33 that receives a packet from the internal network 81 via the NIC 31, an internal network-side packet transmitting unit 34 that transmits a packet to the internal network 81 via the NIC 31, and an NIC 32. An external network-side packet receiving unit 35 that receives a packet from the external network 82 via the external network 82, and an external network-side packet transmitting unit 36 that transmits a packet to the external network 82 via the NIC 32. Further, the mediation device 30 performs a process described below on the packets received from the internal network-side packet receiving unit 33 and the external network-side packet receiving unit 35, and performs an internal network-side packet transmitting unit 34 and an external network-side packet transmitting unit 36. And a packet control unit 40 for transmitting a packet by using the packet control unit.
[0024]
Each intermediary device 30 is connected via the NIC 31 to an internal network 81 connected to computers 91, 92, 93 on which the servers 21, 22, 23 are operating. In the example of FIG. 1, the computers 91, 92, 93 and the NIC 32 are connected to the repeater hub 83. Each intermediary device 30 is connected via the NIC 32 to an external network 82 to which the client 70 is connected. In the example of FIG. 1, the client 70 and the NIC 32 are connected to a repeater hub 84.
[0025]
A different IP address is assigned to each of the intermediary devices 30 to the NIC 32 connected to the external network 82 and the NIC 31 connected to the internal network 81, and each has a different MAC address (hardware address). In the example of FIG. 1, 192.168.3.1 is assigned as the IP address to the NIC 32a of the mediation device 30a, and the MAC address is aa: aa: aa: aa: aa: 01. The NIC 32b of the mediation device 30b is assigned 192.168.3.2 as the IP address, and the MAC address is aa: aa: aa: aa: aa: 02. In the example of FIG. 1, 172.16.3.1 is assigned as an IP address to the NIC 31a of the mediation device 30a, and the MAC address is bb: bb: bb: bb: bb: 01. 172.168.3.2 is assigned as an IP address to the NIC 31b of the mediation device 30b, and the MAC address is bb: bb: bb: bb: bb: 02.
[0026]
Next, a virtual server and a virtual router will be described. In order to realize the object of the present invention, that is, providing the client and the server without modification and providing higher reliability, it is necessary to satisfy the following two conditions.
[0027]
(1) Even if a failure occurs inside the high reliability server system 10, the failure is hidden from the client 70. That is, the client 70 does not need to change the operation or the setting due to the failure, and can receive the service from the high reliability server system 10 as before the failure.
[0028]
(2) Even if a failure occurs in any of the plurality of mediation devices 30, the failure is hidden in each of the servers 21, 22, and 23. In other words, each of the servers 21, 22, and 23 does not need to change the operation or setting due to the failure, and can communicate with the client 70 as before the failure.
[0029]
In the present invention, a “virtual server” is defined to realize the above condition (1), and a “virtual router” is defined to realize the above condition (2).
[0030]
A virtual server is a server that conceals the internal configuration of a high-reliability server system and virtually appears as one server when viewed from a client. For example, in the case of the highly reliable server system 10 illustrated in FIG. 1, as illustrated in FIG. 2, the virtual IP address 192.168.3.3.100 and the virtual MAC address aa: aa: aa: aa: The virtual server 11 having aa: 00.
[0031]
Here, the virtual IP address is an IP address assigned to the virtual server 11, and the client 70 transmits a request packet to this IP address. The virtual MAC address is a MAC address assigned to the virtual server 11, and is a network connected to the virtual server 11, that is, a communication connected to the external network 82 connected to the high-reliability server system 10. This is a MAC address used when the device communicates with the virtual server 11. That is, the virtual MAC address is a MAC (included in the ARP response packet) obtained when a communication device connected to the external network 82 makes an address resolution request (transmits an ARP request packet) for the virtual IP address. An address. The virtual IP address and the virtual MAC address need to be selected so as not to overlap with the IP address and the MAC address of the communication device connected to the external network 82. It should be noted here that no communication device having a virtual IP address and a virtual MAC address actually exists. Therefore, the ARP response to the ARP request is normally executed by the Linux kernel of the communication device having the virtual IP address and the virtual MAC address. However, since there is no communication device having the virtual IP address and the virtual MAC address, The problem of not being solved arises. In order to solve this problem, the intermediary device 30 has a pseudo ARP response unit and implements address resolution (details will be described later).
[0032]
With such a configuration, if one or more mediation devices are normal and one or more servers are normal, the virtual server 11 functions normally. Therefore, with the realization of the virtual server 11, the client 70 only needs to communicate with the virtual server 11 having the IP address 192.168.3.100 regardless of whether or not there is a failure inside the high reliability server system 10. good. That is, the above condition (1) can be satisfied.
[0033]
The virtual router is a router that hides the redundant configuration of the intermediary device and appears as one virtual router when viewed from the server. For example, in the case of the highly reliable server system 10 of FIG. 1, as shown in FIG. 3, the virtual IP address 172.16.3.100 and the virtual MAC address are located on the side of the internal network 81 when viewed from the servers 21, 22, and 23. bb: bb: bb: bb: bb: means the virtual router 37 having 0:00.
[0034]
Here, the virtual IP address is an IP address assigned to the virtual router 37. The communication device connected to the internal network 81 recognizes the packet as the IP address of the router when transferring the packet to the external network 82. On the other hand, the virtual MAC address is a MAC address assigned to the virtual router 37, and is a MAC address used when a communication device connected to the internal network 81 communicates with the virtual router 37. That is, the virtual MAC address is obtained when a communication device connected to the internal network 81 makes an address resolution request for the virtual IP address (that is, transmits an ARP request packet) (included in the ARP response packet). MAC address). The virtual IP address and the virtual MAC address need to be selected so as not to overlap with the IP address and the MAC address of the communication device connected to the internal network 81. It should be noted here that no communication device having a virtual IP address and a virtual MAC address actually exists. Therefore, the ARP response to the ARP request is normally executed by the Linux kernel of the communication device having the virtual IP address and the virtual MAC address. However, since there is no communication device having the virtual IP address and the virtual MAC address, The problem of not being solved arises. In order to solve this problem, the intermediary device 30 has a pseudo ARP response unit and implements address resolution (details will be described later).
[0035]
With such a configuration, if one or more intermediary devices 30 are normal, the virtual router 37 functions normally. Accordingly, with the realization of the virtual router 37, the communication devices connected to the internal network 81 (the servers 21, 22, and 23 in the example of FIG. 1) have the IP address whether or not there is a failure in each of the intermediary devices 30. Only communication with the virtual router 37 of 172.16.3.100 needs to be performed. That is, the above condition (2) can be satisfied.
[0036]
Next, details for realizing a virtual server / virtual router will be described. Although the virtual server is visible from the client and the virtual router is visible from the server, both the virtual server and the virtual router can be realized by the method described below.
[0037]
First, a detailed configuration of the packet control unit 40 will be described with reference to FIG. As shown in FIG. 4, the packet control unit 40 includes a server management table 42 that manages the state of all servers (the servers 21, 22, and 23 in the example of FIG. 1) of the high reliability server 20, and an internal network. , An internal network-side pseudo-ARP response unit 43 that returns a response to an IP address resolution request of a virtual router, and an external network-side pseudo-ARP response unit 44 that returns a response to an IP address resolution request of a virtual server in an external network And a server control unit 41 which receives a request from the client 70, transfers the request to the high reliability server 20, checks the validity of the response from the high reliability server 20, and returns a correct response to the client 70. ing.
[0038]
The server control unit 41 registers which server is normal or has a failure in the server management table 42 and processes the request from the client 70 to which server with reference to the server management table 42. Judge whether to let.
[0039]
FIG. 5 shows an example of the server management table 42. As shown in FIG. 5, the server management table 42 includes a server ID for identifying each server, an IP address of a computer on which the server is operating, and an operating state of the server. The example in FIG. 5 shows a case where the status of each server is normal.
[0040]
When detecting a server failure from a response packet from each server, the server control unit 41 changes the operating state of the corresponding server in the server management table 42 from “normal” to “failure”. As an example, FIG. 6 shows a server management table 42 in a case where the server 23 has entered the failure state.
[0041]
On the other hand, when detecting that the server in the failed state has become normal, the server control unit 41 changes the operating state of the server management table 42 from “failed” to “normal”. For example, when the server 23 recovers from the failure, the server control unit 41 changes the server management table 42 from that shown in FIG. 6 to that shown in FIG. As a method of recognizing that the server has become normal, for example, a method in which the server control unit 41 throws a packet to the server and determines from the response, or a method in which the server control unit 41 starts the computer when the computer starts up And a method of operating software for notifying the user on a computer.
[0042]
Next, packet transmission / reception processing on the internal network side will be described. Communication performed on the internal network is communication between the servers 21, 22, and 23 and the virtual router 37. In the example of FIG. 1, the computers 91, 92, and 93 have set the default gateway to the virtual router 37.
[0043]
First, since the computers 91, 92, and 93 need to know the MAC address for the virtual IP address 172.16.3.100 before communication, the computers 91, 92, and 93 broadcast an ARP request packet. As described above, since there is no communication device having the virtual IP address 172.16.3.100, the address is not normally resolved, and the computers 91, 92, and 93 cannot communicate. appear. In order to avoid this problem, the internal network-side packet receiving unit 33 sets the NIC 31 to the promiscuous mode (a mode for receiving all packets arriving at the NIC), thereby setting all packets arriving at the repeater hub 83 to the raw socket. , And passes the ARP request packet of the virtual IP address 172.16.3.100 among the received packets to the internal network-side pseudo-ARP response unit 43. The pseudo ARP response unit 43 returns a virtual MAC address selected in advance so as not to overlap with the MAC address of a device connected to the same network. All the pseudo ARP responders 43 must be set to return the same virtual MAC address. In this example, the pseudo-ARP response units 43a and 43b return an ARP response packet including bb: bb: bb: bb: bb: 00 which does not overlap with the MAC addresses of the intermediary device 30, the computers 91, 92, and 93. When a plurality of mediation apparatuses are operating normally, a plurality of ARP response packets are returned to the computers 91, 92, and 93, respectively, but there is no problem because the packets have the same contents. In this way, address resolution for the virtual IP address is realized, and the computers 91, 92, and 93 can transmit packets to the virtual router 37.
[0044]
In addition, in order to set the NIC in the promise mode and perform a filter (receive only necessary packets by raw socket), the data link layer to the application layer is used without using the TCP / IP stack provided by the kernel. It is convenient to use a library libpcap (ftp://ftp.ee.lbl.gov/libpcap.tar.Z) for capturing packets.
[0045]
Next, the response packet receiving process of the mediation device 30 in the internal network 81 will be described. FIG. 7 illustrates a packet format that arrives at the virtual router 37 via the internal network 81. In the example of FIG. 7, the format of a packet transmitted from the computer 91 to the virtual router 37 is shown.
[0046]
As shown in FIG. 7, the transmission destination MAC address of the packet is neither the one of the mediation device 30a nor the one of the mediation device 30b. Further, the destination IP address is neither the one of the mediation device 30a nor the one of the mediation device 30b. Therefore, as described above, the internal network-side packet receiving unit 33 receives the packet using libpcap. When the destination IP address is the client 70, the IP address is passed to the server control unit 41. This operation is performed simultaneously and simultaneously by the internal network side packet receiving unit 33a and the internal network side packet receiving unit 33b.
[0047]
Next, a request packet transmission process of the mediation device 30 in the internal network 81 will be described. FIG. 8 illustrates a format of a packet transmitted from the virtual router 37 to the server via the internal network 81. In the example of FIG. 8, the format of the packet transmitted from the mediation device 30 (both the mediation device 30a and the mediation device 30b) to the computer 91 is shown.
[0048]
As shown in FIG. 8, the source IP address of the packet is the client 70, not the mediation device 30a or the mediation device 30b. This is because the mediation device 30 appears to the server 21 as a simple router. Also, the source MAC address is neither the mediation device 30a nor the mediation device 30b. Therefore, the packet cannot be transmitted using a normal socket using the standard TCP / IP stack provided by the kernel. Therefore, the internal network-side packet transmission unit 34 creates an Ethernet header, an IP header, and a UDP header, and transmits them to the server 21 using the raw socket.
[0049]
When a plurality of mediation devices are operating normally, the server receives the packets of the number of mediation devices that are operating normally as shown in FIG. Since all packets are exactly the same, only the first one needs to be processed and the remaining packets must be discarded at the server. For example, in the case of an application using UDP such as RADIUS, there is a possibility that a plurality of identical packets are received repeatedly, and therefore, the function of discarding the second and subsequent duplicated packets usually has originally been provided. Therefore, the function of discarding the unnecessary packets has already been implemented, and there is no need to modify the server for the present invention.
[0050]
Next, packet transmission / reception processing on the external network side will be described. Communication performed on the external network 82 is communication between the client 70 and the virtual server 11.
[0051]
First, before communication, the client 70 broadcasts an ARP request packet because the client 70 needs to know the MAC address for the virtual IP address 192.168.3.3.100. As described above, since there is no communication device having the virtual IP address 192.168.3.100, the address is not normally resolved, and the client 70 cannot perform communication. In order to avoid this problem, the external network-side packet receiving unit 35 sets the NIC 32 to the promiscuous mode (mode for receiving all packets arriving at the NIC) to receive all packets arriving at the repeater hub 84 in a raw socket. The ARP request packet of the virtual IP address 192.168.3.100 among the received packets is passed to the external network-side pseudo ARP response unit 44. The pseudo-ARP response unit 44 returns a virtual MAC address selected in advance so as not to overlap with the MAC address of a device connected to the same network. All pseudo ARP responders 44 must be set to return the same virtual MAC address. In this example, the pseudo ARP response units 44a and 44b return an ARP response packet including aa: aa: aa: aa: aa: 00 that does not overlap with the mediation device 30 and the MAC address of the client 70. When a plurality of mediation devices are operating normally, a plurality of ARP response packets are returned to the client 70, but there is no problem because the packets have the same contents. In this way, address resolution for the virtual IP address is realized, and the client 70 can transmit packets to the virtual server 11.
[0052]
In addition, in order to set the NIC in the promise mode and perform a filter (receive only necessary packets by raw socket), the data link layer to the application layer is used without using the TCP / IP stack provided by the kernel. It is convenient to use a library libpcap (ftp://ftp.ee.lbl.gov/libpcap.tar.Z) for capturing packets.
[0053]
Next, a request packet receiving process of the mediation device 30 in the external network 82 will be described. FIG. 9 illustrates a packet format coming to the virtual server 11 via the external network 82. In the example of FIG. 9, the format of the packet transmitted from the client 70 to the virtual server 11 is shown.
[0054]
As shown in FIG. 9, the destination MAC address of the packet is neither the one of the mediation device 30a nor the one of the mediation device 30b. Therefore, as described above, the external network-side packet receiving unit 35 receives a packet using libpcap. When the destination IP address is the virtual server 11, the address is passed to the server control unit 41. This operation is performed simultaneously and simultaneously by the external network-side packet receiving unit 35a and the external network-side packet receiving unit 35b.
[0055]
Next, a response packet transmission process of the mediation device 30 in the external network 82 will be described. FIG. 10 illustrates a format of a packet transmitted from the virtual server 30 to the client 70 via the external network 82. In the example of FIG. 10, the format of a packet transmitted from the mediation device 30 (both the mediation device 30a and the extension device 30b) to the client 70 is shown.
[0056]
As shown in FIG. 10, the source MAC address is neither the mediation device 30a nor the mediation device 30b. Therefore, the packet cannot be transmitted using a normal socket using the standard TCP / IP stack provided by the kernel. Therefore, the external network-side packet transmitting unit 36 creates an Ethernet header, an IP header, and a UDP header, and transmits them to the client 70 using the raw socket.
[0057]
When a plurality of mediation devices are operating normally, the client receives the packets of the number of mediation devices that are operating normally as shown in FIG. Since all packets are exactly the same, only the first one needs to be processed and the remaining packets need to be discarded at the client. For example, in the case of an application using UDP such as RADIUS, there is a possibility that a plurality of identical packets may be received repeatedly, and therefore, the function of discarding the second and subsequent duplicated packets usually has originally been provided. Therefore, the function of discarding the unnecessary packets has already been implemented, and there is no need to modify the client for the present invention.
[0058]
Next, the operation of the server control unit 41 will be described with reference to the drawings. It is assumed that the configuration and each device of the high reliability server system taken as an example are in a state as shown in FIG. FIG. 11 is a flowchart illustrating the operation of the server control unit 41. FIGS. 12 and 13 are diagrams illustrating the operation of the high reliability server system 10.
[0059]
The server control unit 41 checks whether the external network-side packet receiving unit 35 has received a request packet from the client 70 (step SA1). If there is no request packet, the server control unit 41 again checks the reception of the request packet. If there is a request packet, the request packet is transmitted to the server whose operation status is "normal" in the server management table 42 by using the internal network side packet transmission unit 34 (step SA2). The flow of the request from the client by the above processing is indicated by the thick arrow in FIG.
[0060]
Next, a timer is set to check a response packet from each server (step SA3). If it is not time-out, it is checked whether or not the internal network side packet receiving unit 33 has received the response packet from the server (step SA4). If no response packet has been received from the server, a timeout check is performed again (step SA3). If a response packet has been received from the server, it is checked whether response packets have been received from all of the destination servers of the request packet (step SA5). If not all response packets are received, a timeout check is performed again (step SA3).
[0061]
When all the response packets have been collected, it is checked whether or not there is a failed server (step SA6). Methods for determining whether there is a failed server include, for example, a method of performing a majority decision with a plurality of responses, a method of checking the validity of data included in the responses, and the like. As a method of checking the data validity of the latter, for example, if an improbable code is included, it is determined to be a failure, and if a code that should be present is not included, it is determined to be a failure. Is mentioned. If there is a failed server, the operation state of the server is registered as "failure" in the server management table 42 (step SA7). Thereafter, a normal response packet is transmitted to the client 70 by using the external network-side packet transmission unit 36 (step SA8).
[0062]
If there is no failed server in step SA6, a normal response packet is transmitted to the client 70 using the external network-side packet transmission unit 36 (step SA8).
[0063]
If a timeout occurs in step SA3, that is, if there is a server that does not return a response packet, the server is determined to be faulty, and the server management table 42 indicates the operating status of the server as “failure”. (Step SA9), and checks whether there is another failed server (step SA6). Then, a normal response packet is transmitted to the client 70 using the external network-side packet transmission unit 36 (step SA8).
[0064]
After transmitting the response packet to the client 70 (step SA8), the request from the client 70 is checked again (step SA1). The flow of the response packet from the server to the client 70 by the above processing is indicated by the thick line arrow in FIG. In addition, the server management table 42 in the case where the server 23 has failed becomes as shown in FIG. 6 as described above.
[0065]
By the above processing, the request packet from the client 70 is not transferred to the server which has become the “failure” among the servers 21, 22, 23 constituting the high reliability server 20, and the high reliability server system That is, they are separated from 10.
[0066]
The mediation devices 30a and 30b operate independently without being aware of each other. Therefore, even if one of the mediation devices fails, the other mediation devices are not affected. For example, if the mediation device 30a fails and goes down, the mediation device 30b continues to operate the above-described virtual server and virtual router without knowing whether the mediation device 30a is alive or dead.
[0067]
Similarly, even if the mediation device recovers from the failure, it does not affect the other mediation device. For example, even if the intermediary device 30a, which has been down due to a failure, recovers and starts operation of the above-described virtual server and virtual router, the intermediary device 30b does not know whether the intermediary device 30a is alive or not. The operation of is continued.
[0068]
In order for the mediation devices 30a and 30b to execute the same processing independently in parallel as described above, a mechanism that satisfies the condition that completely the same packet must be sent to the mediation devices 30a and 30b is required. However, since the client 70 transmits only one packet to the virtual server 11 and the servers 21, 22, and 23 transmit only one packet to the virtual router 37, the above condition cannot be normally satisfied. In the present embodiment, the above conditions are satisfied by combining the repeater hubs 83 and 84 with the NICs 31 and 32 in the promiscuous mode. In other words, the above condition is realized by combining the feature that the repeater hub transmits all packets to all ports and the feature that the NIC in the promised mode receives all packets that have reached the ports.
[0069]
Therefore, in the present embodiment, for example, instead of the repeater hub, for example, the switching hub cannot be simply replaced. Furthermore, when the repeater hub cannot be used, a means for separately copying the packet and transferring it to all the intermediary devices is required.
[0070]
A highly reliable server system according to a second embodiment of the present invention will be described with reference to the drawings. FIG. 14 is a block diagram illustrating the entire configuration of the high reliability server system according to the second embodiment.
[0071]
This embodiment is different from the first embodiment in that three intermediate devices 30 are provided. However, since the intermediary devices 30 operate without being aware of each other, the operation does not change regardless of whether there are two, three, or more.
[0072]
The difference is in the number of packets received by the server and the number of packets received by the client. In the first embodiment, since the number of the intermediary devices 30 is two, the same two packets are received at the maximum, so that the second one needs to be discarded. In the second embodiment, since there are three mediation devices 30, a maximum of three identical packets are received. Therefore, the server and the client need to discard the second and third packets.
[0073]
A highly reliable server system according to a third embodiment of the present invention will be described with reference to the drawings. FIG. 15 is a block diagram illustrating a packet control unit 45 according to the third embodiment.
[0074]
This embodiment differs from the first and second embodiments in that the packet control unit includes a server management table correction unit 46. Accordingly, the following operations are added.
[0075]
The operation of the server management table correction unit 46 will be described with reference to FIG. FIG. 16 is a flowchart illustrating the operation of the server management table correction unit 46.
[0076]
First, the server management table correction unit 46 transmits the contents of the server management table 42 managed by itself to the virtual server 11 using the external network-side packet transmission unit 36 (step SB1). Next, the server management table correction unit 46 receives the transferred server management table 42 using the external network side packet receiving unit 35 (step SB2). The information of the server management table 42 thus received is compared to determine whether they are the same (step SB3).
[0077]
If they are the same (YES in step SB3), after sleeping for a certain period of time without doing anything (step SB5), the contents of the server management table 42 managed by itself are again stored in the virtual server using the external network side packet transmitting unit 36. 11 (step SB1).
[0078]
If they are not the same (NO in step SB3), the server management table 42 managed by itself is corrected by some algorithm (step SB4). For example, when the operating states are different such as “normal” and “failure”, the “failure” is determined to be correct and corrected from “normal” to “failure”. Alternatively, it may be determined by a majority decision. The server changed to “failure” is disconnected from the system, and does not forward the request from the client thereafter. After the correction, after sleeping for a certain period of time (step SB5), the content of the server management table 42 managed by itself is transmitted to the virtual server 11 again using the external network side packet transmission unit 36 (step SB1).
[0079]
In this way, if the states of the intermediary devices 30 operating independently of each other become inconsistent for some reason, the server management table 42 can be corrected.
[0080]
A highly reliable server system according to a fourth embodiment of the present invention will be described with reference to the drawings. FIG. 17 is a block diagram illustrating an overall configuration of a high reliability server system 100 according to the fourth embodiment, and FIG. 18 is a block diagram illustrating a packet control unit 400 according to the fourth embodiment.
[0081]
This embodiment is different from the first embodiment in that the internal network 81 does not exist, and the high reliability server 20 and the mediation device 300 are both connected to the same network 820.
[0082]
Accordingly, the intermediary device 300 includes a packet receiving unit 350 having an internal network-side packet receiving unit 33 and an external network-side packet receiving unit 35. A combined packet transmitting unit 360 is provided. Further, the packet control unit 400 includes a pseudo ARP response unit 440 having a combination of the internal network side pseudo ARP response unit 43 and the external network side pseudo ARP response unit 44.
[0083]
As described above, elimination of the internal network 81 changes the configuration block diagram of the high-reliability server system. However, if the network 820 is logically divided into the external network 82 and the internal network 81, it is the same as the first embodiment. It is.
[0084]
Note that the servers do not need to have the same implementation if they return the same response. That is, versions, specifications, programming languages, types of compilers, compiler options, hardware or software, and the like may be different. Further, the server may be composed of one component or a plurality of components.
[0085]
In the above embodiment, the packet transmitting / receiving unit, the control unit, the server management table, the pseudo-ARP response unit, and the server management table correction unit are mounted on one mediation device, and the server is mounted on another device. The physical location of each component of the reliability server system is arbitrary. That is, for example, each component may be mounted on one computer, or may be separately mounted on different computers. Further, a part thereof may be mounted on the same computer.
[0086]
Further, in the above-described embodiment, an example in which there are three servers is shown, but there may be three or more servers. In addition, the number of servers may be three or less as long as the reliability against the server failure is allowed.
[0087]
Further, in the above embodiment, the case where there is one client is assumed, but there may be a plurality of clients.
[0088]
Further, in the first embodiment, the virtual IP address and the virtual MAC address of the virtual server 11 are selected from those which the communication device (including the mediation device 30) connected to the external network 82 does not have. The IP address of the NIC 32 of one mediation device 30 may be selected as the virtual IP address, or the MAC address of the NIC 32 of any one mediation device 30 may be selected as the virtual MAC address. However, it is important that all mediation devices 30 return the same ARP response to the ARP request for the virtual IP address.
[0089]
Further, in the first embodiment, the virtual IP address and the virtual MAC address of the virtual router 37 are selected from those which the communication device (including the mediation device 30) connected to the internal network 81 does not have. The IP address of the NIC 31 of one intermediary device 30 may be selected as the virtual IP address, or the MAC address of the NIC 31 of one intermediary device 30 may be selected as the virtual MAC address. However, it is important that all mediation devices 30 return the same ARP response to the ARP request for the virtual IP address.
[0090]
It should be noted that the above embodiment is illustrative, and the present invention is not limited to this. The scope of the present invention is defined by the appended claims, and all modifications that fall within the meaning of the claims are included in the present invention.
[0091]
【The invention's effect】
As described above, according to the present invention, even if one intermediary device transferring a request and a response between a client and a server fails, the transfer can be continued by another normal intermediary device. Prevents the entire system from being down, and enables a more reliable client-server system to be constructed. Also, since the virtual addresses are determined in advance, any intermediary device can process requests and responses addressed to these virtual addresses. Therefore, even if the intermediary device goes down due to a failure or the like, the server or client does not need to make any changes. That is, since existing servers and clients can be used without modification, a highly reliable client-server type system can be constructed at low cost.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating an overall configuration of a highly reliable server system according to a first embodiment.
FIG. 2 is a diagram showing how a system looks when a client sees an intermediary device;
FIG. 3 is a diagram showing how the system looks when the mediation device is viewed from the server.
FIG. 4 is a block diagram illustrating a configuration of an intermediary device.
FIG. 5 illustrates an example of a server management table.
FIG. 6 illustrates another example of a server management table.
FIG. 7 illustrates a format of a packet.
FIG. 8 illustrates a format of a packet.
FIG. 9 illustrates a format of a packet.
FIG. 10 illustrates a format of a packet.
FIG. 11 is a diagram illustrating the operation of the mediation device.
FIG. 12 is a diagram illustrating a flow of a request from a client.
FIG. 13 is a diagram for explaining a flow of a response from a server.
FIG. 14 is a block diagram illustrating an overall configuration of a highly reliable server system according to a second embodiment.
FIG. 15 is a block diagram illustrating a packet control unit 45 according to the third embodiment.
FIG. 16 is a view for explaining the operation of a server management table correction unit according to the third embodiment;
FIG. 17 is a block diagram illustrating the overall configuration of a highly reliable server system according to a fourth embodiment.
FIG. 18 is a block diagram illustrating a packet control unit according to a fourth embodiment.
FIG. 19 is a configuration diagram of a conventional high reliability server system.
[Explanation of symbols]
10 high reliability server system, 11 virtual server, 20 high reliability server, 21, 22, 23 server, 30a, 30b, 30c, 300a, 300b mediation device, 31a, 31b, 32a, 32b NIC , 33a, 33b: internal network side packet receiving section, 34a, 34b: internal network side packet transmitting section, 35a, 35b: external network side packet receiving section, 350a, 350b: packet receiving section, 36a, 36b: external network side packet Transmission section, 360a, 360b Packet transmission section, 37 Virtual router, 40a, 40b, 400a, 400b Packet control section, 41 Server control section, 42 Server management table, 43 Internal network side pseudo ARP response receiving section , 44... The external network side pseudo ARP response receiving unit, 4 .., A server management table correction unit, 70, a client, 81, an internal network, 82, an external network, 820, a network, 83, 84, a repeater HUB, 91, 92, 93, a computer, 1010, a highly reliable server system, 1111, 1112, 1113: copy, 1020: high reliability server, 1021, 1022, 1023: server, 1030: mediation device, 1031: control unit, 1032: server management table, 1041: client, 1050: network.

Claims (11)

クライアントサーバ型システムにおけるサーバ側のシステムにおいて、
クライアントからの要求をサーバに転送するとともに、サーバから受信した前記要求に対する応答のうち正当なものを要求元のクライアントに転送する転送手段を備えた仲介装置を複数設けるとともに、
クライアントからは単一のサーバとして見せるとともに、サーバからは単一のルータとして見せる仮想アドレスを予め決定し、
前記仲介装置は、前記仮想アドレス宛の要求及び応答を前記転送手段が転送できるように制御する制御手段とを備えた
ことを特徴とするサーバシステム。
In the server side system in the client server type system,
Along with transferring a request from a client to a server, and providing a plurality of intermediary devices including transfer means for transferring a valid response to the request received from the server to the requesting client,
A virtual address that appears as a single server from the client and as a single router from the server is determined in advance,
The server system, further comprising: a control unit configured to control the transfer unit to transfer the request and response addressed to the virtual address.
クライアント・サーバ・仲介装置間の通信として、TCP/IPプロトコルスイートを用い、前記仮想アドレスとしてネットワーク層における仮想IPアドレスを割り当てる
ことを特徴とする請求項1記載のサーバシステム。
The server system according to claim 1, wherein a TCP / IP protocol suite is used for communication between the client, the server, and the mediation device, and a virtual IP address in a network layer is assigned as the virtual address.
クライアント・サーバ・仲介装置間の通信として、イーサネットを用い、前記仮想アドレスとしてデータリンク層における仮想MACアドレスを割り当てる
ことを特徴とする請求項1記載のサーバシステム。
2. The server system according to claim 1, wherein Ethernet is used for communication between the client, the server, and the mediation device, and a virtual MAC address in a data link layer is assigned as the virtual address.
前記仲介装置は、前記仮想アドレスの下位のレイヤのアドレスを問い合わせる要求に対し、応答を返す応答手段を備えた
ことを特徴とする請求項1乃至3何れか1項記載のサーバシステム。
4. The server system according to claim 1, wherein the intermediary device includes a response unit that returns a response to a request for inquiring an address of a lower layer of the virtual address. 5.
前記応答手段は、ARP要求に対して応答する
ことを特徴とする請求項4記載のサーバシステム。
5. The server system according to claim 4, wherein said response means responds to an ARP request.
前記サーバは、前記仲介装置から受け取る複数の同一のパケットのうち、重複する2つ目以降のパケットを廃棄するパケット廃棄手段を備えたことを特徴とする請求項1乃至5何れか1項記載のサーバシステム。6. The server according to claim 1, wherein the server includes a packet discarding unit that discards second and subsequent duplicate packets among a plurality of identical packets received from the mediation device. 7. Server system. 前記クライアントは、前記仲介装置から受け取る複数の同一のパケットのうち、重複する2つ目以降のパケットを廃棄するパケット廃棄手段を備えた
ことを特徴とする請求項1乃至6何れか1項記載のサーバシステム。
7. The client according to claim 1, wherein the client includes a packet discarding unit that discards the second and subsequent duplicate packets among a plurality of identical packets received from the mediation device. 8. Server system.
前記仲介装置は、お互いにサーバ管理情報を確認し合い、不一致が生じた場合には同じ内部状態になるように修正する修正手段を備えた
ことを特徴とする請求項1乃至7何れか1項記載のサーバシステム。
8. The mediation device according to claim 1, further comprising a correction unit configured to confirm the server management information with each other, and to correct the server management information to be in the same internal state when a mismatch occurs. The server system as described.
前記仲介装置は、前記仮想アドレス宛の要求及び応答を受け取った際、前記仲介装置の数だけコピーを作成し、全ての仲介装置へ送信するコピー作成・送信手段を備えた
ことを特徴とする請求項1乃至8何れか1項記載のサーバシステム。
The intermediary device, when receiving a request and a response addressed to the virtual address, includes copy creating / transmitting means for creating copies by the number of the intermediary devices and transmitting the copies to all the intermediary devices. Item 9. The server system according to any one of Items 1 to 8.
クライアントサーバ型システムにおけるサーバ側のシステムにおいてクライアントとサーバの間に介在する仲介装置であって、
クライアントからの要求をサーバに転送するとともに、サーバから受信した前記要求に対する応答のうち正当なものを要求元のクライアントに転送する転送手段と、
クライアントからは単一のサーバとして見せるとともに、サーバからは単一のルータとして見せる仮想アドレスを予め決定し、
前記仮想アドレス宛の要求及び応答を前記転送手段が転送できるように制御する制御手段とを備えた
ことを特徴とする仲介装置。
An intermediary device interposed between a client and a server in a server-side system in a client-server type system,
Transfer means for transferring a request from the client to the server, and transferring a valid response to the request received from the server to the requesting client;
A virtual address that appears as a single server from the client and as a single router from the server is determined in advance,
Control means for controlling the transfer means to transfer the request and response addressed to the virtual address.
クライアントサーバ型システムにおけるサーバで発生した誤りをクライアントに対して隠蔽する方法において、
クライアントとサーバの間に、クライアントからの要求をサーバに転送するとともに、サーバから受信した前記要求に対する応答のうち正当なものを要求元のクライアントに転送する転送手段を備えた仲介装置を複数介在させ、
クライアントからは単一のサーバとして見せるとともに、サーバからは単一のルータとして見せる仮想アドレスを予め決定し、前記仮想アドレス宛の要求及び応答を前記転送手段が転送できるように制御する
ことを特徴とするクライアントサーバ型システムにおける誤り隠蔽方法。
In a method of concealing an error occurring in a server in a client-server type system from a client,
Between the client and the server, a plurality of intermediary devices having transfer means for transferring a request from the client to the server and transferring a valid response to the request received from the server to the requesting client are interposed. ,
A virtual address to be shown as a single server from a client and a server to be seen as a single router is determined in advance, and the request and response addressed to the virtual address are controlled so that the transfer means can transfer them. Error concealment method in a client-server type system.
JP2003045142A 2003-01-17 2003-01-17 Error concealment method in server system and client server type system Expired - Fee Related JP4167089B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003045142A JP4167089B2 (en) 2003-01-17 2003-01-17 Error concealment method in server system and client server type system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003045142A JP4167089B2 (en) 2003-01-17 2003-01-17 Error concealment method in server system and client server type system

Publications (2)

Publication Number Publication Date
JP2004227534A true JP2004227534A (en) 2004-08-12
JP4167089B2 JP4167089B2 (en) 2008-10-15

Family

ID=32905499

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003045142A Expired - Fee Related JP4167089B2 (en) 2003-01-17 2003-01-17 Error concealment method in server system and client server type system

Country Status (1)

Country Link
JP (1) JP4167089B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010257209A (en) * 2009-04-24 2010-11-11 Fujitsu Ltd Bus switch, computer system, and management method for computer system
JP2012156656A (en) * 2011-01-24 2012-08-16 Fujitsu Ltd Network address translation method, network address translation proxy response method, network address translation device, and network address translation proxy response device
US8326916B2 (en) 2005-02-01 2012-12-04 Fujitsu Limited Relay method, relay apparatus, and computer product
JP2013167922A (en) * 2012-02-14 2013-08-29 Yokogawa Electric Corp Redundant communication system and redundant communication method
JP2014003692A (en) * 2009-03-30 2014-01-09 Amazon Technologies Inc Providing logical networking functionality for managed computer networks
JPWO2012056487A1 (en) * 2010-10-25 2014-02-24 株式会社日立製作所 Computer system

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8326916B2 (en) 2005-02-01 2012-12-04 Fujitsu Limited Relay method, relay apparatus, and computer product
JP2014003692A (en) * 2009-03-30 2014-01-09 Amazon Technologies Inc Providing logical networking functionality for managed computer networks
US10644933B2 (en) 2009-03-30 2020-05-05 Amazon Technologies, Inc. Providing logical networking functionality for managed computer networks
US11108626B2 (en) 2009-03-30 2021-08-31 Amazon Technologies, Inc. Rewriting communication headers to manage virtual networks of virtual machines
US11477076B2 (en) 2009-03-30 2022-10-18 Amazon Technologies, Inc. Network accessible service for hosting a virtual computer network of virtual machines over a physical substrate network
US11909586B2 (en) 2009-03-30 2024-02-20 Amazon Technologies, Inc. Managing communications in a virtual network of virtual machines using telecommunications infrastructure systems
JP2010257209A (en) * 2009-04-24 2010-11-11 Fujitsu Ltd Bus switch, computer system, and management method for computer system
JPWO2012056487A1 (en) * 2010-10-25 2014-02-24 株式会社日立製作所 Computer system
JP5596793B2 (en) * 2010-10-25 2014-09-24 株式会社日立製作所 Computer system
JP2012156656A (en) * 2011-01-24 2012-08-16 Fujitsu Ltd Network address translation method, network address translation proxy response method, network address translation device, and network address translation proxy response device
JP2013167922A (en) * 2012-02-14 2013-08-29 Yokogawa Electric Corp Redundant communication system and redundant communication method

Also Published As

Publication number Publication date
JP4167089B2 (en) 2008-10-15

Similar Documents

Publication Publication Date Title
US8631113B2 (en) Intelligent integrated network security device for high-availability applications
US8634437B2 (en) Extended network protocols for communicating metadata with virtual machines
US10218782B2 (en) Routing of communications to one or more processors performing one or more services according to a load balancing function
US8954957B2 (en) Network traffic processing according to network traffic rule criteria and transferring network traffic metadata in a network device that includes hosted virtual machines
US8572609B2 (en) Configuring bypass functionality of a network device based on the state of one or more hosted virtual machines
US20110004698A1 (en) Defining Network Traffic Processing Flows Between Virtual Machines
US8938553B2 (en) Cooperative proxy auto-discovery and connection interception through network address translation
US7318100B2 (en) Cooperative proxy auto-discovery and connection interception
US9659075B2 (en) Providing high availability in an active/active appliance cluster
US20060256801A1 (en) Gateway system
US20080320154A1 (en) Cooperative proxy auto-discovery and connection interception
Aghdaie et al. Client-transparent fault-tolerant web service
JP4167089B2 (en) Error concealment method in server system and client server type system
Cisco Release Notes for Catalyst 6000 Family Content Switching Module Software Release 2.2(4)
Cisco Cisco IOS Bridging and IBM Networking Command Reference, Volume II Release 12.1
Cisco Bridging and IBM Networking Command Reference Cisco IOS Release 11.3
JP4028627B2 (en) Client server system and communication management method for client server system
Lee et al. FDVRRP: Router implementation for fast detection and high availability in network failure cases
JP4258016B2 (en) Network configuration control system
Welte How to replicate the fire: HA for netfilter based firewalls
Welte ct_sync: state replication of ip_conntrack
JP2004038783A (en) Server system, mediation device and error concealment method in client-server system
JP2010283586A (en) Redundancy pair detection method, communication device, redundancy pair detection program, and recording medium
Koskinen IP substitution as a building block for fault tolerance in stateless distributed network services

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080402

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: 20080729

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080731

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110808

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120808

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees