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 PDFInfo
- 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
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
[0005]
The high reliability server 1020 includes one or more servers. In the example of FIG. 19, the high reliability server 1020 includes three
[0006]
The intermediary device 1030 receives a request from the
[0007]
The
[0008]
Next, the operation of the mediation device 1030 will be described. The
[0009]
The
[0010]
If the results of majority decision indicate that all the responses do not match and there is a mismatched response, the
[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
[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
[0022]
The
[0023]
The intermediary device 30 includes a NIC (Network Interface Card) 31 connected to a
[0024]
Each intermediary device 30 is connected via a
[0025]
The
[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
[0028]
(2) If a failure occurs in any of the plurality of mediation devices 30, the failure is concealed in each of the
[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
[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
[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
[0034]
Here, the virtual IP address is an IP address assigned to the
[0035]
With such a configuration, if one or more intermediary devices 30 are normal, the
[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,
[0038]
The
[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
[0041]
On the other hand, when the
[0042]
Next, packet transmission / reception processing on the internal network side will be described. Communication performed in the internal network is communication between the
[0043]
First, prior to communication, the
[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
[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
[0047]
Next, request packet transmission processing of the mediation device 30 in the
[0048]
As shown in FIG. 8, the source IP address of the packet is the
[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
[0051]
First, prior to communication, since the
[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
[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
[0055]
Next, a response packet transmission process of the mediation device 30 in the
[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
[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
[0059]
The
[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
[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
[0062]
If there is no failed server in step SA6, a normal response packet is transmitted to the
[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
[0064]
After transmitting the response packet to the client 70 (step SA8), the request from the
[0065]
Through the processing as described above, the request packet from the
[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
[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
[0075]
The operation of the server management
[0076]
First, the server management
[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
[0082]
Accordingly, the intermediary device 300 includes a packet receiving unit 350 having both the internal network side
[0083]
As described above, the configuration block diagram of the high-reliability server system changes by eliminating the
[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
[0089]
Furthermore, in the first embodiment, the virtual IP address and the virtual MAC address of the
[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 ...
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.
ことを特徴とする請求項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 .
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)
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 |
-
2003
- 2003-01-17 JP JP2003045142A patent/JP4167089B2/en not_active Expired - Fee Related
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 |