JP4167089B2 - Error concealment method in server system and client server type system - Google Patents

Error concealment method in server system and client server type system Download PDF

Info

Publication number
JP4167089B2
JP4167089B2 JP2003045142A JP2003045142A JP4167089B2 JP 4167089 B2 JP4167089 B2 JP 4167089B2 JP 2003045142 A JP2003045142 A JP 2003045142A JP 2003045142 A JP2003045142 A JP 2003045142A JP 4167089 B2 JP4167089 B2 JP 4167089B2
Authority
JP
Japan
Prior art keywords
server
address
client
virtual
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003045142A
Other languages
Japanese (ja)
Other versions
JP2004227534A (en
Inventor
健 三島
武志 赤池
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

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

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】
上記目的を達成するために、本願発明は、クライアントサーバ型システムにおけるサーバ側のシステムにおいて、クライアントからの要求をサーバに転送するとともに、サーバから受信した前記要求に対する応答のうち正当なものを要求元のクライアントに転送する転送手段を備えた仲介装置を複数設けるとともに、前記仲介装置は、パケットを送受信するパケット送受信部を備えるとともに、クライアントからは単一のサーバとして見えるように各仲介装置で共通の一の仮想IPアドレス及び一の仮想MACアドレスを、サーバからは単一のルータとして見えるように各仲介装置で共通の他の仮想IPアドレス及び他の仮想MACアドレスが予め割り当てられており、さらに前記各仮想IPアドレスに対するMACアドレスを尋ねるARP要求パケットに対して該仮想IPアドレスに対応する前記仮想MACアドレスを応答する応答手段を備え、前記パケット送受信部は、送信先MACアドレスが前記各仮想MACアドレスに係るパケットを受信し、前記転送手段により仲介装置からサーバに転送される処理要求に係るIPパケットの発信元アドレスをクライアントのアドレスとするとともに、宛先アドレスがクライアントのアドレスとなっている応答結果に係るIPパケットを取り込んで前記転送手段に渡し、且つ、各仲介装置はそれぞれ並行して同じ処理を独立して実行し、前記サーバ及びクライアントは、前記仲介装置から受け取る複数の同一のパケットのうち、重複する2つ目以降のパケットを廃棄することを特徴とするサーバシステムをもって解決手段とする。
【0017】
本発明によれば、クライアント・サーバ間の要求及び応答を転送している一の仲介装置が障害となっても、他の正常な仲介装置によって転送を継続できるので、システム全体のダウンを防ぎ、より高信頼なクライアントサーバ型システムを構築できる。また、各仲介装置で共通の仮想MACアドレスをあらかじめ決めておき、どの仲介装置もこの仮想MACアドレス宛の要求と応答を処理できるようにしている。これにより、どの仲介装置が障害等によりダウンしても、サーバやクライアントは何の変更も必要ない。すなわち、既存のサーバやクライアントを無改造で利用できるので、信頼性の高いクライアントサーバ型システムを低コストで構築することができる。
【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】
【発明の効果】
以上説明したように、本発明によれば、クライアント・サーバ間の要求及び応答を転送している一の仲介装置が障害となっても、他の正常な仲介装置によって転送を継続できるので、システム全体のダウンを防ぎ、より高信頼なクライアントサーバ型システムを構築できる。また、各仲介装置で共通の仮想MACアドレスをあらかじめ決めているので、どの仲介装置もこの仮想MACアドレス宛の要求と応答を処理できるようにしている。従って、障害等により仲介装置が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]
BACKGROUND 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, an authentication server, or a node system of a communication network in which service stoppage due to a failure is not permitted.
[0002]
[Prior art]
This type of server system must always provide services appropriately to clients. That is, it is necessary to conceal the “error” of the server system and prevent the occurrence of “failure”. Here, “failure” means a loss of function of the system. Specific examples of the cause of the “failure” include a hardware bug or failure, a software bug, and the like. The cause of these “failures” is called “fault”. Even if a “fault” exists in the system, it does not always cause a “failure” but may be latent. The appearance of an abnormality due to a “fault” is called “error”. When the system in which the “error” occurs deviates from the normal state, a “failure” occurs. Note that the “error” is not caused only by a narrowly defined “fault” such as a bug or a failure. For example, an intermittent failure, an operator setting error or an operation error can also cause an “error”.
[0003]
As an example of a highly reliable server system that can conceal this “error”, “an error concealment method in a server system, mediation apparatus, and client server type system” (Japanese Patent Application No. 2001-256511) has been proposed. An example of this highly reliable 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 that responds to the request and the high reliability server 1020 and the client 1041. 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. In response to the same request transmitted from the mediation device to each server, each server returns the same response if it is operating normally.
[0006]
The intermediary device 1030 receives a request from the client 1041 via the network 1050, transfers the request to the high reliability server 1020 at an appropriate timing to be described later, checks the validity of the response from the high reliability server, and sends a correct response. A control unit 1031 to be returned to the client 1041 and a server management table 1032 for managing the states of the servers 1021, 1022, and 1023 of the high reliability server 1020 are provided. The control unit 1031 registers which server is normal or faulty in the server management table 1032, refers to the server management table 1032, and causes which server to process a request from the client 1041. Determine whether. The server management table 1032 includes a server ID for identifying a server, a server IP address, and server operation information.
[0007]
The client 1041 requests a Web page from the high reliability 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 this request message 1110, looks at the server management table 1032 and forwards it to a normal server. In the example of FIG. 19, since the servers 1021, 1022, and 1023 are normal, the control unit 1031 creates copies 1111, 1112, and 1113 of the request message 1110, and transfers the copies to the servers 1021, 1022, and 1023, respectively.
[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 the results of majority decision indicate that all the responses do not match and there is a mismatched response, the control unit 1031 determines that the server that returned the response is a failure, and the operation status information in the server management table 1032 is changed from “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 as described above, a dual system in which two computers perform the same processing in parallel (see, for example, Patent Document 1), between two control computers divided into an online side and a standby side, A control system that takes task synchronization (see, for example, Patent Document 2) is known as a prior art.
[0012]
[Patent Document 1]
JP 52-60540 A
[Patent Document 2]
JP-A-1-303562
[0013]
[Problems to be solved by the invention]
As described above, in the conventional highly reliable server system, a control unit that receives a request from a client transfers the request to a plurality of servers, receives responses from the server in response to the request, and executes a majority vote. Has been adopted. Therefore, even if a certain server fails and returns an incorrect response to the control unit, the error can be concealed by majority vote.
[0014]
However, when the control unit itself becomes a failure, there is a problem that the entire system goes down. In order to avoid this problem, it is possible to simply arrange a plurality of control units. In this case, a plurality of control units can be seen from the client or server. For this reason, it is necessary to change the settings manually on the client and server side every time the control unit fails, or when the manual setting is avoided, both the client and the server are modified for automation. There was a problem of need.
[0015]
The present invention has been made in view of the above circumstances, and an object thereof is to provide a server system, an intermediary device, and an error concealment method that are highly reliable, suitable for continuous operation, and can be constructed at low cost. is there.
[0016]
To achieve the above object, according to the present invention, in a server-side system in a client-server system, a request from a client is transferred to a server, and a legitimate response to the request received from the server is requested. A plurality of intermediary devices including transfer means for transferring to the client, and the intermediary device includes a packet transmission / reception unit that transmits and receives packets, and is common to each intermediary device so that it can be seen as a single server from the client. One virtual IP address and one virtual MAC address are pre-assigned to other virtual IP addresses and other virtual MAC addresses that are common to each intermediary device so that they appear to the server as a single router. ARP asking for MAC address for each virtual IP address Response means for responding to the virtual MAC address corresponding to the virtual IP address in response to the solicited packet, wherein the packet transmitting / receiving unit receives a packet whose destination MAC address is related to each virtual MAC address, and the transfer means The source address of the IP packet related to the processing request transferred from the intermediary device to the server is set as the client address, and the IP packet related to the response result whose destination address is the client address is fetched into the transfer means. Hand over In addition, each intermediary device executes the same process independently in parallel, and the server and the client discard the duplicate second and subsequent packets among a plurality of identical packets received from the intermediary device. Do A server system characterized by this is used as a solution.
[0017]
According to the present invention, even if one mediation device that transfers a request and a response between a client and a server becomes a failure, the transfer can be continued by another normal mediation device, thereby preventing the entire system from being down, A more reliable client-server system can be constructed. Also, Virtual MAC address common to each intermediary device And any mediation device This virtual MAC address It can handle requests and responses addressed to it. As a result, no change is required for the server or the client even if any intermediary device goes down due to a failure or the like. In other words, since existing servers and clients can be used without modification, a highly reliable client-server system can be constructed at low cost.
[0018]
DETAILED DESCRIPTION OF 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 a highly reliable 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 is illustrated. Further, in a personal computer or an intermediary device in which a server is operating, a system in which Linux (registered trademark) is operating 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 the client 70, and an intermediary device that is interposed between the high reliability server 20 and the client 70. 30. In the example of FIG. 1, the mediation device 30 includes two mediation devices 30 a and 30 b. In the following description, when each of the plurality of mediating devices 30 and their constituent elements is individually represented, the symbols “a” and “b” are added, such as the mediating device 30a and the mediating device 30b. And
[0020]
In this system, the communication protocol system between the devices is not required. In this embodiment, a TCP / IP protocol suite is used. The TCP / IP protocol suite does not represent TCP and IP in a narrow sense, but means a broad protocol system including UDP, ARP, and the like.
[0021]
The high reliability server 20 is composed of one or more servers. In the example of FIG. 1, the high reliability server 20 includes three servers 21, 22, and 23. In response to the same request transmitted from the mediation device to each server, each server responds the same if it is operating normally. The servers 21, 22, and 23 may be implemented by software that operates 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, 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 exemplified by a NAS (Network Access Server) such as a RAS (Remote Access Server). In the present embodiment, the client 70 is assigned 192.168.3.200 as an IP address. It also has a MAC address, dd: dd: dd: dd: dd: 00.
[0023]
The intermediary device 30 includes a NIC (Network Interface Card) 31 connected to a server 21, 22, 23 side network (hereinafter referred to as Uchigun network) 81, and a NIC 32 connected to a client side network (hereinafter referred to as external network) 82. It has. The intermediary device 30 includes an internal network side packet receiving unit 33 that receives packets from the internal network 81 via the NIC 31, an internal network side packet transmitting unit 34 that transmits packets to the internal network 81 via the NIC 31, and the NIC 32. An external network side packet receiving unit 35 that receives packets from the external network 82 via the network, and an external network side packet transmitting unit 36 that transmits packets to the external network 82 via the NIC 32. Further, the intermediary device 30 performs processing to be described later on the packets received from the internal network side packet receiving unit 33 and the external network side packet receiving unit 35, and the internal network side packet transmitting unit 34 and the external network side packet transmitting unit 36. A packet control unit 40 for transmitting packets using the.
[0024]
Each intermediary device 30 is connected via a NIC 31 to an internal network 81 connected to computers 91, 92, 93 on which servers 21, 22, 23 are operating. In the example of FIG. 1, the computers 91, 92, 93 and the NIC 32 are connected to a 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]
The NIC 32 connected to the external network 82 and the NIC 31 connected to the internal network 81 are assigned different IP addresses for each intermediary device 30, 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 mediating apparatus 30a, and the MAC address is aa: aa: aa: aa: aa: 01. The NIC 32b of the mediation apparatus 30b is assigned 192.168.3.2 as an IP address, and the MAC address is aa: aa: aa: aa: aa: 02. In the example of FIG. 1, 172.16.3.3.1 is assigned to the NIC 31a of the intermediary device 30a as the IP address, and the MAC address is bb: bb: bb: bb: bb: 01. The NIC 31b of the intermediary device 30b is assigned 172.168.3.2 as an IP address, and the MAC address is bb: bb: bb: bb: bb: 02.
[0026]
Next, the virtual server and the virtual router will be described. The following two conditions must be satisfied in order to provide higher reliability while using the client or server without modification, which is the object of the present invention.
[0027]
(1) Even if a failure occurs in 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 setting due to the failure, and can receive a service from the high-reliability server system 10 as before the failure.
[0028]
(2) If a failure occurs in any of the plurality of mediation devices 30, the failure is concealed in each of the servers 21, 22, and 23. That is, each server 21, 22 and 23 does not need to change the operation or setting due to the failure, and can communicate with the client 70 without changing from before the failure.
[0029]
In the present invention, a “virtual server” is defined for realizing the condition (1), and a “virtual router” is defined for realizing the condition (2).
[0030]
The virtual server is a server that hides the internal configuration of the high-reliability server system and appears virtually as one server when viewed from the client. For example, in the case of the high reliability server system 10 illustrated in FIG. 1, as illustrated in FIG. 2, the virtual IP address 192.168.3.100 and the virtual MAC address aa: aa: aa: aa: It is the virtual server 11 having aa: 0.
[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 communication connected to the network to which the virtual server 11 is connected, that is, the external network 82 to which the high reliability server system 10 is connected. This is the MAC address used when the device communicates with the virtual server 11. That is, the virtual MAC address is the 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) to the virtual IP address. It is 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 possessed by the communication device connected to the external network 82. It should be noted here that there is actually no communication device having a virtual IP address and a virtual MAC address. 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, but 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 realizes address resolution (details will be described later).
[0032]
With such a configuration, if one or more intermediary devices are normal and one or more servers are normal, the virtual server 11 functions normally. Therefore, by realizing 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 there is a failure in 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 mediation device and looks like a virtual router when viewed from the server. For example, in the case of the high-reliability server system 10 of FIG. 1, as shown in FIG. 3, the virtual IP address 172.16.3.100, virtual MAC address on the internal network 81 side as seen from the servers 21, 22, 23. A virtual router 37 having bb: bb: bb: bb: bb: 00.
[0034]
Here, the virtual IP address is an IP address assigned to the virtual router 37. A communication device connected to the internal network 81 recognizes 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 (that is, transmits an ARP request packet) to the virtual IP address (included in the ARP response packet). It is a MAC address. The virtual IP address and the virtual MAC address must be selected so as not to overlap with the IP address and MAC address of the communication device connected to the internal network 81. It should be noted here that there is actually no communication device having a virtual IP address and a virtual MAC address. 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, but 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 realizes 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, the realization of the virtual router 37 makes it possible for the communication devices connected to the internal network 81 (in the example of FIG. 1, servers 21, 22, and 23) to have IP addresses, regardless of whether or not each mediating device 30 has a failure. It is only necessary to communicate with the virtual router 37 of 172.16.3.100. 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 states of all the servers of the high reliability server 20 (in the example of FIG. 1, servers 21, 22, and 23), and an internal network. The internal network side pseudo ARP response unit 43 that returns a response to the IP address resolution request of the virtual router and the external network side pseudo ARP response unit 44 that returns a response to the IP address resolution request of the virtual server in the external network. And a server control unit 41 that 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 faulty with respect to the server management table 42 and refers to the server management table 42 to process the request from the client 70 to which server. Judge whether to make it.
[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. In the example of FIG. 5, a case where the state of each server is normal is shown.
[0040]
When the server control unit 41 detects a server failure from the 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 when the server 23 is in a failure state.
[0041]
On the other hand, when the server control unit 41 detects that the server in the failure state is normal, the server control unit 41 changes the operation state of the server management table 42 from “failure” to “normal”. For example, when the server 23 recovers from a 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, the server control unit 41 throws a packet to the server and judges from the response, or the server has started up to the server control unit 41 when the computer starts up. And a method for 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 in 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 set the default gateway in the virtual router 37.
[0043]
First, prior to communication, the computers 91, 92, 93 need to know the MAC address for the virtual IP address 172.16.3.100, so the computers 91, 92, 93 broadcast an ARP request packet. As described above, since there is actually 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 all the packets arriving at the repeater hub 83 by setting the NIC 31 to the promiscuous mode (a mode for receiving all packets arriving at the NIC). The ARP request packet of the virtual IP address 172.16.3.100 among the received packets is transferred 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 the device connected to the same network. All the pseudo ARP response units 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 that does not overlap with the MAC addresses of the mediation device 30 and the computers 91, 92, 93. When a plurality of mediation devices 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, 93 can transmit packets to the virtual router 37.
[0044]
To set the NIC to the promiscuous mode and filter (receive only necessary packets with raw socket), from the data link layer to the application layer without using the TCP / IP stack provided by the kernel. It is convenient to use a library libcapcap (ftp://ftp.ee.lbl.gov/libcapcap.tar.Z) that captures packets.
[0045]
Next, a response packet reception 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 destination MAC address of the packet is neither that of the mediating device 30a nor that of the mediating device 30b. Further, the destination IP address is neither that of the mediation device 30a nor that of the mediation device 30b. Therefore, as described above, the internal network side packet receiving unit 33 receives a packet by using libcapcap. When the destination IP address is the client 70, it is passed to the server control unit 41. This operation is performed simultaneously in parallel by the internal network side packet receiving unit 33a and the internal network side packet receiving unit 33b.
[0047]
Next, request packet transmission processing 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 is a packet transmitted from the mediating device 30 (both the mediating device 30a and the mediating device 30b) to the computer 91.
[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 to make the intermediary device 30 appear 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 a 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 a raw socket.
[0049]
When a plurality of mediation devices are operating normally, the server receives the number of mediation devices operating normally as shown in FIG. Since all packets are exactly the same, only the first one needs to be processed and the rest of the packets need to be discarded by the server. For example, in the case of an application using UDP such as RADIUS, there is a possibility that a plurality of the same packets are received in duplicate, so that the function of discarding the second and subsequent duplicate packets is usually originally provided. Therefore, the function of discarding unnecessary packets is already 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 in the external network 82 is communication between the client 70 and the virtual server 11.
[0051]
First, prior to communication, since the client 70 needs to know the MAC address for the virtual IP address 192.168.3.100, the client 70 broadcasts an ARP request packet. As described above, since there is actually no communication device having the virtual IP address 192.168.3.100, the address is not normally resolved, and there is a problem that the client 70 cannot perform communication. In order to avoid this problem, the external network side packet receiving unit 35 receives all packets arriving at the repeater hub 84 by raw socket by setting the NIC 32 to a promiscuous mode (a mode for receiving all packets arriving at the NIC). The ARP request packet of the virtual IP address 192.168.3.100 among the received packets is transferred 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 the device connected to the same network. All the pseudo ARP response units 44 must be set to return the same virtual MAC address. In this example, the pseudo ARP response units 44 a and 44 b return an ARP response packet including aa: aa: aa: aa: aa: 00 that does not overlap with the MAC addresses of the mediation device 30 and the client 70. When a plurality of mediation apparatuses 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 a packet to the virtual server 11.
[0052]
To set the NIC to the promiscuous mode and filter (receive only necessary packets with raw socket), from the data link layer to the application layer without using the TCP / IP stack provided by the kernel. It is convenient to use a library libcapcap (ftp://ftp.ee.lbl.gov/libcapcap.tar.Z) that captures packets.
[0053]
Next, request packet reception processing of the mediation device 30 in the external network 82 will be described. FIG. 9 illustrates a packet format that arrives at the virtual server 11 via the external network 82. In the example of FIG. 9, the format is a packet transmitted from the client 70 to the virtual server 11.
[0054]
As shown in FIG. 9, the destination MAC address of the packet is neither that of the mediating device 30a nor that of the mediating device 30b. Therefore, as described above, the external network side packet receiving unit 35 receives a packet by using libcapcap. When the destination IP address is the virtual server 11, it is passed to the server control unit 41. This operation is simultaneously performed in parallel 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 is a packet transmitted from the mediation device 30 (both the mediation device 30 a and the extension device 30 b) to the client 70.
[0056]
As shown in FIG. 10, neither the transmission source MAC address nor the mediation device 30a or the mediation device 30b. Therefore, the packet cannot be transmitted using a normal socket using a standard TCP / IP stack provided by the kernel. Therefore, the external network side packet transmission unit 36 creates an Ethernet header, an IP header, and a UDP header, and transmits them to the client 70 using a raw socket.
[0057]
When a plurality of mediation devices are operating normally, the client receives the number of mediation devices 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 by the client. For example, in the case of an application using UDP such as RADIUS, there is a possibility that a plurality of the same packets are received in duplicate, so that the function of discarding the second and subsequent duplicate packets is usually originally provided. Therefore, the function of discarding 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 highly reliable server system taken as an example are in the state shown in FIG. FIG. 11 is a flowchart for explaining the operation of the server control unit 41. 12 and 13 are diagrams for explaining the operation of the high-reliability server system 10.
[0059]
The server control unit 41 checks whether the request packet from the client 70 has been received by the external network side packet receiving unit 35 (step SA1). If there is no request packet, the server control unit 41 checks the request packet reception again. If there is a request packet, the request packet is transmitted to the server whose operation state is “normal” in the server management table 42 by using the internal network side packet transmission unit 34 (step SA2). The flow of a request from the client by the above processing is indicated by a thick arrow in FIG.
[0060]
Next, a timer is set and a response packet from each server is checked (step SA3). If it is not time-out, it is checked whether or not the internal network side packet receiving unit 33 has received a response packet from the server (step SA4). If no response packet is received from the server, the timeout is checked again (step SA3). If a response packet is received from the server, it is checked whether response packets have been received from all the destination servers of the request packet (step SA5). If all response packets are not complete, a timeout check is performed again (step SA3).
[0061]
When all the response packets are prepared, it is checked whether there is a failed server (step SA6). As a method for determining whether or not there is a failed server, for example, there are a method of making a majority decision with a plurality of responses, a method of checking the validity of data included in the responses, and the like. The latter method of checking the validity of data includes, for example, determining that a failure is present when an impossible code is included, and determining a failure when a supposed code is not included. Is mentioned. If there is a failed server, the operating status of the corresponding server is registered as “failed” in the server management table 42 (step SA7). Thereafter, a normal response packet is transmitted to the client 70 using the external network side packet transmitter 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 transmitter 36 (step SA8).
[0063]
If a time-out occurs in step SA3, that is, if there is a server that does not return a response packet, it is determined that the server is in failure, and the operating status of the corresponding server is set to “failure” in the server management table 42. Is registered (step SA9), and it is checked 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 transmitter 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 a thick arrow in FIG. Further, as described above, the server management table 42 when the server 23 becomes a failure is as shown in FIG.
[0065]
Through the processing as described above, the request packet from the client 70 is not transferred to the server that has become “failure” among the servers 21, 22, and 23 constituting the highly reliable server 20, and the highly reliable server system It was cut off from 10.
[0066]
The mediating devices 30a and 30b operate independently without being conscious of each other. Therefore, even if one of the mediating devices becomes a failure, the other mediating device is not affected. For example, when the mediation device 30a goes down due to a failure, 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 a mediation device recovers from a failure, it does not affect the other mediation device. For example, even if the mediating device 30a that has been down due to a failure is recovered and the operations of the above-described virtual server and virtual router are started, the mediating device 30b does not know whether the mediating device 30a is alive or dead. Continue the operation.
[0068]
As described above, in order for the intermediary devices 30a and 30b to execute the same process independently in parallel, a mechanism that satisfies the condition that the same packet must be sent to the intermediary devices 30a and 30b is necessary. 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 and the NICs 31 and 32 in the promiscuous mode. That is, 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 set to the promiscuous mode receives all packets that reach the port.
[0069]
Therefore, in this embodiment, for example, it is not possible to simply replace the switching hub with a switching hub. In addition, 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 an overall configuration of a highly reliable server system according to the second embodiment.
[0071]
The present embodiment is different from the first embodiment in that three mediating devices 30 are provided. However, since the intermediary device 30 operates without being aware of each other, the operation does not change regardless of whether it is two, three, or more.
[0072]
The difference is the number of packets received by the server and the number of packets received by the client. In the first embodiment, since there are two intermediary devices 30, since the same two packets are received at the maximum, the second has to be discarded. In the second embodiment, since there are three intermediary devices 30, a maximum of three identical packets are received. Therefore, the server and 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 is different from the first and second embodiments in that a server control table correction unit 46 is provided in the packet control unit. Along with this, 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 for explaining 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 server management table 42 transferred using the external network side packet reception unit 35 (step SB2). The information in the server management table 42 received in this way 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 without doing anything (step SB5), the contents of the server management table 42 managed by itself are again transmitted to the virtual server using the external network side packet transmitter 36. 11 (step SB1).
[0078]
If they are not the same (NO in step SB3), the server management table 42 managed by itself is modified by some algorithm (step SB4). For example, when the operating states are different such as “normal” and “failure”, the “failure” is determined to be the correct state and is corrected from “normal” to “failure”. Or you may decide by majority vote. The server changed to “failure” is disconnected from the system and does not transfer a request from the client thereafter. After the correction, after sleeping for a certain period (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 transmitter 36 (step SB1).
[0079]
In this way, the server management table 42 can be corrected when the state becomes inconsistent for some reason between the intermediary devices 30 operating independently of each other.
[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 the overall configuration of the high reliability server system 100 according to the fourth embodiment, and FIG. 18 is a block diagram illustrating the packet control unit 400 according to the fourth embodiment.
[0081]
The present embodiment is different from the first embodiment in that the internal network 81 does not exist and both the high reliability server 20 and the mediation apparatus 300 are connected to the same network 820.
[0082]
Accordingly, the intermediary device 300 includes a packet receiving unit 350 having both the internal network side packet receiving unit 33 and the external network side packet receiving unit 35, and the internal network side packet transmitting unit 34 and the external network side packet transmitting unit 36. A combined packet transmission unit 360 is provided. Further, the packet control unit 400 includes a pseudo ARP response unit 440 that includes both the internal network side pseudo ARP response unit 43 and the external network side pseudo ARP response unit 44.
[0083]
As described above, the configuration block diagram of the high-reliability server system changes by eliminating the internal network 81. However, if the network 820 is logically divided into the external network 82 and the internal network 81, the same as in the first embodiment. It is.
[0084]
Each server does not need to be the same implementation if it returns the same response. That is, the version, specifications, programming language, compiler type, compiler options, hardware or software, and the like may be different. Furthermore, the server may be composed of a single component or a plurality of components.
[0085]
In the above embodiment, the packet transmission / reception 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 positional relationship 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 mounted separately on different computers. Moreover, you may mount one part in the same computer.
[0086]
Furthermore, in the said Example, although the server was shown as an example, there may be three or more servers. In addition, the number of servers may be three or less as long as a decrease in reliability against a server failure is allowed.
[0087]
Furthermore, although the case where there is one client is assumed in the above embodiment, there may be a plurality of clients.
[0088]
Furthermore, in the first embodiment, the virtual IP address and the virtual MAC address of the virtual server 11 are selected that 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 intermediary device 30 may be selected as a virtual IP address, or the MAC address of the NIC 32 of one intermediary device 30 may be selected as the virtual MAC address. However, it is important that all the intermediary devices 30 must return the same ARP response to the ARP request for the virtual IP address.
[0089]
Furthermore, in the first embodiment, the virtual IP address and the virtual MAC address of the virtual router 37 are selected that 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 a virtual IP address, or the MAC address of one NIC 31 of one intermediary device 30 may be selected as the virtual MAC address. However, it is important that all the intermediary devices 30 must return the same ARP response to the ARP request for the virtual IP address.
[0090]
In addition, the said embodiment is an illustration and this invention is not limited to this. The scope of the present invention is defined by the terms of the claims, and all modifications that come within the meaning of the claims are intended to be embraced by the present invention.
[0091]
【The invention's effect】
As described above, according to the present invention, even if one intermediary device that transfers a request and a response between a client and a server becomes a failure, the transfer can be continued by another normal intermediary device. The entire system can be prevented from being down, and a more reliable client-server system can be constructed. Also, Virtual MAC address common to each intermediary device Any mediating device This virtual MAC address It can handle requests and responses addressed to it. Therefore, even if the mediation device is down due to a failure or the like, the server and the client need not be changed. That is, since existing servers and clients can be used without modification, a highly reliable client-server 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 mediation device is viewed from a client
FIG. 3 shows how the system looks when the mediation device is viewed from the server.
FIG. 4 is a block diagram illustrating the configuration of an intermediary device
FIG. 5 is a diagram illustrating an example of a server management table
FIG. 6 is a diagram for explaining another example of the server management table;
FIG. 7 is a diagram for explaining a packet format;
FIG. 8 is a diagram for explaining a packet format;
FIG. 9 is a diagram for explaining a packet format;
FIG. 10 is a diagram for explaining a packet format;
FIG. 11 is a diagram illustrating the operation of the mediation apparatus
FIG. 12 is a diagram for explaining the flow of requests from clients;
FIG. 13 is a diagram for explaining a response flow from the server;
FIG. 14 is a block diagram illustrating the overall configuration of a highly reliable server system according to the second embodiment.
FIG. 15 is a block diagram illustrating a packet control unit 45 according to the third embodiment.
FIG. 16 is a diagram for explaining the operation of the server management table correction unit according to the third embodiment;
FIG. 17 is a block diagram for explaining the overall configuration of a highly reliable server system according to the fourth embodiment;
FIG. 18 is a block diagram illustrating a packet control unit according to the fourth embodiment.
FIG. 19 is a configuration diagram of a conventional highly reliable server system.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 10 ... High reliability server system, 11 ... Virtual server, 20 ... High reliability server, 21, 22, 23 ... Server, 30a, 30b, 30c, 300a, 300b ... Intermediary device, 31a, 31b, 32a, 32b ... NIC 33a, 33b ... internal network side packet receiver, 34a, 34b ... internal network side packet transmitter, 35a, 35b ... external network side packet receiver, 350a, 350b ... packet receiver, 36a, 36b ... external network side packet Transmission unit, 360a, 360b ... packet transmission unit, 37 ... virtual router, 40a, 40b, 400a, 400b ... packet control unit, 41 ... server control unit, 42 ... server management table, 43 ... internal network side pseudo ARP response reception unit , 44 ... External network side pseudo ARP response receiving unit, 4 ... Server management table correction unit, 70 ... Client, 81 ... Internal network, 82 ... External network, 820 ... Network, 83, 84 ... Repeater HUB, 91, 92, 93 ... Computer, 1010 ... High reliability 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 (4)

クライアントサーバ型システムにおけるサーバ側のシステムにおいて、
クライアントからの要求をサーバに転送するとともに、サーバから受信した前記要求に対する応答のうち正当なものを要求元のクライアントに転送する転送手段を備えた仲介装置を複数設けるとともに、
前記仲介装置は、パケットを送受信するパケット送受信部を備えるとともに、クライアントからは単一のサーバとして見えるように各仲介装置で共通の一の仮想IPアドレス及び一の仮想MACアドレスを、サーバからは単一のルータとして見えるように各仲介装置で共通の他の仮想IPアドレス及び他の仮想MACアドレスが予め割り当てられており、さらに前記各仮想IPアドレスに対するMACアドレスを尋ねるARP要求パケットに対して該仮想IPアドレスに対応する前記仮想MACアドレスを応答する応答手段を備え、
前記パケット送受信部は、送信先MACアドレスが前記各仮想MACアドレスに係るパケットを受信し、前記転送手段により仲介装置からサーバに転送される処理要求に係るIPパケットの発信元アドレスをクライアントのアドレスとするとともに、宛先アドレスがクライアントのアドレスとなっている応答結果に係るIPパケットを取り込んで前記転送手段に渡し、
前記各仲介装置の転送手段・応答手段・パケット送受信部はそれぞれ並行して同じ処理を独立して実行し、
前記サーバ及びクライアントは、前記仲介装置から受け取る複数の同一のパケットのうち、重複する2つ目以降のパケットを廃棄するパケット廃棄手段を備えた
ことを特徴とするサーバシステム。
In the server side system in the client server type system,
In addition to transferring a request from the client to the 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,
The mediation apparatus includes a packet transmission / reception unit that transmits and receives packets, and a single virtual IP address and a single virtual MAC address that are common to each mediation apparatus so that it can be seen by a client as a single server. Other virtual IP addresses and other virtual MAC addresses that are common to each intermediary device are pre-assigned so as to be seen as one router, and the virtual IP address is sent to the ARP request packet that asks for the MAC address for each virtual IP address. Response means for responding to the virtual MAC address corresponding to the IP address;
The packet transmitting / receiving unit receives a packet whose destination MAC address is related to each virtual MAC address, and uses the source address of the IP packet related to the processing request transferred from the mediation device to the server by the transfer means as the address of the client as well as, and passes to the transfer means takes in an IP packet according to the response results of the destination address is in the client's address,
The transfer means, response means, and packet transmission / reception unit of each intermediary device execute the same processing independently in parallel,
2. The server system according to claim 1, wherein the server and the client are provided with a packet discarding unit that discards the second and subsequent packets that overlap among the same packets received from the mediation apparatus .
前記仲介装置は、お互いにサーバ管理情報を確認し合い、不一致が生じた場合には同じ内部状態になるように修正する修正手段を備えた
ことを特徴とする請求項1記載のサーバシステム。
2. The server system according to claim 1 , wherein the intermediary device includes a correcting unit that checks server management information with each other and corrects the same internal state when a mismatch occurs.
前記仲介装置は、前記各仮想MACアドレス宛の要求及び応答を受け取った際、前記仲介装置の数だけコピーを作成し、全ての仲介装置へ送信するコピー作成・送信手段を備えた
ことを特徴とする請求項1又は2に記載のサーバシステム。
The intermediary device comprises copy creation / transmission means that, when receiving a request and a response addressed to each virtual MAC address, creates a copy of the number of intermediary devices and transmits the copy to all intermediary devices. The server system according to claim 1 or 2 .
クライアントサーバ型システムにおけるサーバで発生した誤りをクライアントに対して隠蔽する方法において、
クライアントとサーバの間に、クライアントからの要求をサーバに転送するとともに、サーバから受信した前記要求に対する応答のうち正当なものを要求元のクライアントに転送する転送手段を備えた仲介装置を複数介在させ、
各仲介装置に、クライアントからは単一のサーバとして見えるように各仲介装置で共通の一の仮想IPアドレス及び一の仮想MACアドレスを、サーバからは単一のルータとして見えるように各仲介装置で共通の他の仮想IPアドレス及び他の仮想MACアドレスを予め割り当てるとともに、前記各仮想IPアドレスに対するMACアドレスを尋ねるARP要求パケットに対して該仮想IPアドレスに対応する前記仮想MACアドレスを応答し、
各仲介装置は、
送信先MACアドレスが前記各仮想MACアドレスに係るパケットを受信し、前記転送手段により仲介装置からサーバに転送される処理要求に係るIPパケットの発信元アドレスをクライアントのアドレスとするとともに、宛先アドレスがクライアントのアドレスとなっている応答結果に係るIPパケットを取り込んで前記転送手段に渡し、且つ、各仲介装置はそれぞれ並行して同じ処理を独立して実行し、
前記サーバ及びクライアントは、前記仲介装置から受け取る複数の同一のパケットのうち、重複する2つ目以降のパケットを廃棄する
ことを特徴とするクライアントサーバ型システムにおける誤り隠蔽方法。
In a method of concealing an error that has occurred in a server in a client-server 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 legitimate response to the request received from the server to the requesting client are interposed. ,
Each intermediary device has one virtual IP address and one virtual MAC address common to each intermediary device so that it can be seen from the client as a single server, and each intermediary device so that it can be seen as a single router from the server. Pre-assigning another common virtual IP address and other virtual MAC address, and responding to the virtual MAC address corresponding to the virtual IP address in response to an ARP request packet asking for the MAC address for each virtual IP address,
Each mediation device
The destination MAC address receives the packet related to each virtual MAC address, and the source address of the IP packet related to the processing request transferred from the intermediary device to the server by the transfer unit is the client address, and the destination address is was passed to the transfer means takes in an IP packet according to the response result that is the client's address, and executes each intermediary device independently the same process by respectively parallel,
An error concealment method in a client-server system , wherein the server and the client discard duplicate second and subsequent packets among a plurality of identical packets received from the mediation device .
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 JP2004227534A (en) 2004-08-12
JP4167089B2 true 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)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4516439B2 (en) 2005-02-01 2010-08-04 富士通株式会社 Relay program, relay method, and relay device
US9106540B2 (en) 2009-03-30 2015-08-11 Amazon Technologies, Inc. Providing logical networking functionality for managed computer networks
JP5218252B2 (en) * 2009-04-24 2013-06-26 富士通株式会社 Bus switch, computer system and computer system management method
WO2012056487A1 (en) * 2010-10-25 2012-05-03 株式会社日立製作所 Computer system
JP5589866B2 (en) * 2011-01-24 2014-09-17 富士通株式会社 Address translation method, address translation proxy response method, address translation device, and 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
JP2004227534A (en) 2004-08-12

Similar Documents

Publication Publication Date Title
US10218782B2 (en) Routing of communications to one or more processors performing one or more services according to a load balancing function
US20060256801A1 (en) Gateway system
US8938553B2 (en) Cooperative proxy auto-discovery and connection interception through network address translation
US8891358B2 (en) Method for application broadcast forwarding for routers running redundancy protocols
US20080320154A1 (en) Cooperative proxy auto-discovery and connection interception
US20040243703A1 (en) Cooperative proxy auto-discovery and connection interception
US20130067268A1 (en) Intelligent integrated network security device for high-availability applications
KR20080077210A (en) A synchronization method of connection status in data communications and the applied communication node
EP3834396A1 (en) User datagram protocol tunneling in distributed application instances
Aghdaie et al. Client-transparent fault-tolerant web service
JP4167089B2 (en) Error concealment method in server system and client server type system
US11290319B2 (en) Dynamic distribution of bidirectional forwarding detection echo sessions across a multi-processor system
Cisco AppleTalk Commands
Cisco Cisco IOS AppleTalk and Novell IPX Command Reference Release 12.2
Cisco AppleTalk Commands
Cisco Cisco IOS AppleTalk and Novell IPX Command Reference Release 12.1
Cisco AppleTalk Commands
Cisco AppleTalk Commands
Cisco AppleTalk Commands
Cisco Release Notes for Catalyst 6000 Family Content Switching Module Software Release 2.2(4)
Cisco AppleTalk Routing Commands
Cisco AppleTalk Commands
Cisco AppleTalk Commands
JP4258016B2 (en) Network configuration control system
JPH10224378A (en) Client server system and its control method

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