(57)【特許請求の範囲】
【請求項１】
第１のアドレッシング領域と第２のアドレッシング領域とに属するゲートウェイサーバを障害から回復させる方法であって、
（ａ）前記第１のアドレッシング領域と前記第２のアドレッシング領域とに属するバックアップゲートウェイサーバにおいて、クライアントから送信された、障害が発生した前記ゲートウェイサーバにより前記クライアントに以前に割当てられた前記第２のアドレッシング領域からのネットワークリソースを含むメッセージを受信する工程と、
（ｂ）前記工程（ａ）の後、前記ネットワークリソースが空きであるかどうかを前記バックアップゲートウェイサーバにより判断する工程と、
（ｃ）前記ネットワークリソースが空きであることを判断したことに応じて、前記クライアントに前記ネットワークリソースを割当てる工程とを有することを特徴とする方法。
【請求項２】
前記工程（ａ）の実行後、所定時間後に切れる遅延割当て（ＤＡ）タイマをセットする工程をさらに有することを特徴とする請求項１に記載の方法。
【請求項３】
前記バックアップゲートウェイサーバにおいて、第２のクライアントから送信された、前記第２のアドレッシング領域からの第２のネットワークリソースに対する要求を受信する工程と、
前記ＤＡタイマが切れていないなら前記要求を拒絶する工程と、
前記バックアップゲートウェイサーバから前記第２のクライアントに対して、もし前記ＤＡタイマが切れており、前記第２のネットワークリソースは前記第２のクライアントに割当てられるために利用可能であるなら前記第２のアドレッシング領域からの第２のネットワークリソースを送信する工程とをさらに有することを特徴とする請求項２に記載の方法。
【請求項４】
前記ネットワークリソースが空きではないとの判断に応じて、前記クライアントに前記第２のアドレッシング領域からの前記ネットワークリソースを放棄するようにさせる工程をさらに有することを特徴とする請求項１乃至３のいずれか１項に記載の方法。
【請求項５】
（ａ）前記ネットワークリソースが現在のところ別のクライアントに割当てられており、（ｂ）前記別のクライアントが前記バックアップゲートウェイサーバと同じホストで実行されていないとの判断に応じて、前記クライアントに前記第２のアドレッシング領域からの前記ネットワークリソースを放棄するようにさせる工程をさらに有することを特徴とする請求項１乃至３のいずれか１項に記載の方法。
【請求項６】
前記ネットワークリソースは１つ以上のネットワークアドレスのセットを含み、
前記ネットワークリソースが空きであるかどうかを判断する工程は、前記ネットワークアドレスのセットに含まれるネットワークアドレスが現在のところ別のクライアントに割当てられているかどうかを判断する工程を含み、
前記方法は、
前記ネットワークアドレスのセットに含まれるネットワークアドレスが現在のところ別のクライアントに割当てられているとの判断に応じて、前記別のクライアントが前記バックアップゲートウェイサーバと同じホストで実行されているかどうかを判断する工程と、
前記別のクライアントが前記バックアップゲートウェイサーバと同じホストで実行されていると判断された場合には、前記別のクライアントに前記ネットワークアドレスを放棄するようにさせる工程とをさらに有することを特徴とする請求項１乃至５のいずれか１項に記載の方法。
【請求項７】
前記工程（ａ）を実行する前に、前記ゲートウェイサーバの障害を検出する工程と、
前記ゲートウェイサーバの障害の検出に応じて、前記ゲートウェイサーバの障害を示唆する通知を受信すべきクライアントのセットを決定する工程と、
前記決定されたクライアントのセットの各クライアントに対して、前記ゲートウェイサーバに障害が発生したことを示すメッセージを送信する工程とをさらに有することを特徴とする請求項１乃至６のいずれか１項に記載の方法。
【請求項８】
前記ネットワークリソースは、前記第２のアドレッシング領域に属している１つ以上のネットワークアドレスのセットと１つ以上のポート番号のセットとを含むことを特徴とする請求項１乃至７のいずれか１項に記載の方法。
【請求項９】
第１のアドレッシング領域と第２のアドレッシング領域とに属するゲートウェイサーバ装置であって、
送信器と、
受信器と、
コンピュータソフトウェアを格納するデータ記憶システムと、
前記コンピュータソフトウェアを実行するデータ処理システムとを有し、
前記コンピュータソフトウェアは、
（ａ）前記第１のアドレッシング領域に属するクライアントから送信された、障害が発生したゲートウェイサーバにより前記クライアントに以前に割当てられた前記第２のアドレッシング領域からのネットワークリソースを含むメッセージを受信するコンピュータ命令と、
（ｂ）前記メッセージの受信に応じて、前記ネットワークリソースが空きであるかどうかを判断するコンピュータ命令と、
（ｃ）前記ネットワークリソースが空きであることを判断したことに応じて、前記クライアントに前記ネットワークリソースを割当てるコンピュータ命令とを有することを特徴とするゲートウェイサーバ装置。
【請求項１０】
前記コンピュータソフトウェアはさらに、前記メッセージの受信後、所定時間後に切れる遅延割当て（ＤＡ）タイマをセットするコンピュータ命令を有することを特徴とする請求項９に記載のゲートウェイサーバ装置。
【請求項１１】
前記コンピュータソフトウェアはさらに、
第２のクライアントから送信された、前記第２のアドレッシング領域からの第２のネットワークリソースに対する要求を受信するコンピュータ命令と、
前記要求の受信に応じて、前記ＤＡタイマが切れているかどうかを判断するコンピュータ命令と、
前記第２のクライアントに対して、もし前記ＤＡタイマが切れており、前記第２のネットワークリソースは前記第２のクライアントに割当てられるために利用可能であるとの判断に応じて、前記第２のアドレッシング領域からの第２のネットワークリソースを送信するコンピュータ命令とを有することを特徴とする請求項１０に記載のゲートウェイサーバ装置。
【請求項１２】
前記コンピュータソフトウェアはさらに、
前記ネットワークリソースが空きではないとの判断に応じて、前記クライアントに前記第２のアドレッシング領域からの前記ネットワークリソースを放棄するようにさせるコンピュータ命令を有することを特徴とする請求項９乃至１１のいずれか１項に記載のゲートウェイサーバ装置。
【請求項１３】
前記コンピュータソフトウェアはさらに、
（ａ）前記ネットワークリソースが現在のところ別のクライアントに割当てられており、（ｂ）前記別のクライアントが前記ゲートウェイサーバ装置で実行されていないとの判断に応じて、前記クライアントに前記第２のアドレッシング領域からの前記ネットワークリソースを放棄するようにさせるコンピュータ命令を有することを特徴とする請求項９乃至１１のいずれか１項に記載のゲートウェイサーバ装置。
【請求項１４】
前記ネットワークリソースは１つ以上のネットワークアドレスのセットを含み、
前記ネットワークリソースが空きであるかどうかを判断する前記コンピュータ命令は、前記ネットワークアドレスのセットに含まれるネットワークアドレスが現在のところ別のクライアントに割当てられているかどうかを判断するコンピュータ命令を含むことを特徴とする請求項９乃至１３のいずれか１項に記載のゲートウェイサーバ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は１つのアドレッシング領域からのネットワークリソースを別のアドレッシング領域からのクライアントに提供するゲートウェイサーバに関するものである。特に、本発明は、ゲートウェイサーバの障害を回復させるシステムと方法に関するものである。
【背景技術】
【０００２】
ネットワークアドレス変換（ＮＡＴ）は複数のアドレッシング領域の分離を可能にする良く知られた機構となってきている。ＮＡＴルータはネットワークのレイヤを検証し、変更しなければならない。それはおそらく、トランスポートレイヤと、ＮＡＴルータが接続している複数のアドレッシング領域にまたがる各パケットのヘッダを検証し、変更しなければならない。このことが原因となって、ＮＡＴの機構はインターネット接続性のエンド−ツウ−エンドの性質を破ってしまい、パケットのエンド−ツウ−エンドの完全性を要求或いは強化するプロトコルを台無しにしてしまう。
【０００３】
ＮＡＴに対する代替策は、領域固有のＩＰ（ＲＳＩＰ）（非特許文献１を参照）である。ＲＳＩＰは、１つのアドレッシング領域からのクライアントが、そのクライアントに第２のアドレッシング領域からのリソース（例えば、アドレスとポートと他のルーティングパラメータとの内の少なくともいずれか）を使用させることを許すことにより、別のアドレッシング領域に存在することを許可するという概念に基づいている。ＲＳＩＰサーバはＮＡＴルータを置換し、そして、プライベートネットワークでＲＳＩＰに気づくクライアントはＲＳＩＰクライアントとして言及される。ＲＳＩＰはそのようなリソースをＲＳＩＰクライアントに許可するＲＳＩＰサーバの能力を必要とする。
【０００４】
ＲＳＩＰによりアドレス領域の一定の透明性が、２つの異なった範囲、或いは、完全に異なるアドレッシング領域間で成し遂げられる。これにより、アドレッシング領域間でのエンド−ツウ−エンドのパケット透明性を可能にする有用なアーキテクチュアを達成する。ＲＳＩＰはプライベートでアドレスされたＩＰｖ４ネットワークで展開されることが期待されており、パブリックでアドレスされたＩＰｖ４ネットワークへのアクセスを許可するために用いられる。しかしながら、プライベートなＩＰｖ４ネットワークの代わりに、ＩＰｖ６ネットワークや非ＩＰネットワークが存在するかもしれない。従って、ＲＳＩＰによりＩＰスタックをもつホストでのクライアントとＩＰアプリケーションへのＩＰ接続は可能になるが、ネイティブなＩＰアクセスではない。そのようなものとして、ＲＳＩＰは用いられ、ＤＮＳとトンネリングと連動して、デュアルスタックホストがローカルな或いはリモートなＩＰｖ４或いはＩＰｖ６ホストと通信できるようにＩＰｖ４ネットワークとＩＰｖ６ネットワークとをブリッジする。
【０００５】
さて、図１において、ＲＳＩＰが展開される典型的なシナリオでは、１つのアドレッシング領域（領域Ａ）をもつネットワーク１１０ａに接続された少なくとも１つのクライアントホスト１０２と、異なるアドレッシング領域（領域Ｂ）をもつネットワーク１１０ｂに接続された別のクライアントホスト１２０と、両方のネットワーク１１０ａと１１０ｂとに制御されたゲートウェイ１０４とがある。図示のように、ホスト１０２と１２０とは異なるアドレッシング領域ＡとＢに夫々、属している。ゲートウェイ１０４は２つのインタフェース、即ち、（１）アドレス領域ＡでのＮａと、（２）アドレス領域ＢでのＮｂとを有している。ゲートウェイ１０４で実行されるのはＲＳＩＰサーバ１０５であり、そのサーバはアドレス領域Ｂでのアドレスプールをもち、それをクライアントホスト１０２でのクライアント１０３とアドレス領域Ａでの他のホストでの他のクライアントとに割当て可能であるか貸与可能である。これらのアドレスはＮｂ１、Ｎｂ２、Ｎｂ３などとして示すことができる。
【０００６】
しばしばそのような場合があるが、アドレス領域Ａ内の方法はおそらくプライベートアドレスを用いる一方、ゲートウェイ１０４は、アドレス領域Ｂからのパブリックアドレスに加えて、アドレス領域Ｂからの１つ以上のプライベートアドレスをもつマルチホームである。従って、クライアントホスト１０２が常駐する領域には“プライベート”として言及し、クライアントホスト１０２がアドレッシングパラメータを借用する領域には“パブリック”領域として言及する。しかしながら、これら領域は両方ともパブリックであっても良いし、プライベートであっても良い。さらにその上、アドレス領域ＡはＩＰｖ６領域でも、非ＩＰアドレス領域であっても良い。
【０００７】
アドレス領域Ｂ内にあるクライアントホスト１０２のクライアントにエンド−ツウ−エンド接続を確立することを望むクライアント１０３はまずサーバ１０５からのパブリックリソース（例えば、アドレス領域Ｂでのアドレスと他のルーティングパラメータ）の割当てをネゴシエートして取得する。これらパブリックリソースの割当て時、サーバ１０５はクライアント１０３のプライベートアドレッシング情報と割当てられたリソースとの“バインド（bind）”として言及されるマッピングを創成する。そのようなバインドにより、ゲートウェイ１０４がクライアントホスト１０２によりクライアント１０３のために生成されたインバウントトラフィックを正しく転送することが可能になる。
【０００８】
サーバ１０５により割当てられたパブリックリソースを用いて、クライアント１０３はネットワーク１１０ａを通ってサーバ１０５までデータパケットをトンネルする。サーバ１０５はそのようなトンネルのエンドポイントとして作用し、外部ヘッダを取り去り、内部のパケットをパブリック領域（即ち、図１に示された例ではネットワーク１１０ｂ）へとルーティングする。上述のように、サーバ１０５はクライアント１０３に割当てられたパブリックパラメータをクライアント１０３により用いられるプライベートアドレスにマップする。パブリック領域からのパケットがゲートウェイ１０４に到着し、それがバインドと一致するなら、サーバ１０５はそれを適切なホストへとトンネルする。
【０００９】
ＲＳＩＰのＲＦＣは、ＲＳＩＰの２つの基本的な特色、即ち、（１）ＲＳＡ−ＩＰと、（２）ＲＳＡＰ−ＩＰとを定義する。ＲＳＡ−ＩＰを用いるとき、ＲＳＩＰサーバは、ＲＳＩＰクライアントにより借用される利用可能なネットワークアドレス（例えば、ＩＰアドレス）のプールを維持する。要求があると、ＲＳＩＰサーバはアドレスをそのクライアントに割当てる。一旦、アドレスが特定のクライアントに割当てられると、そのクライアントだけがそのアドレスをプールに返却するまでは用いることができる。クライアントは自分に具体的に割当てられなかったアドレスを用いるべきではない。クライアントは、割当てられたレイヤ３（即ち、ネットワーク）のアドレスとの組み合わせで何らかのレイヤ４（例えば、ＴＣＰ／ＵＤＰ）のアドレスを用いることができる。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】Ｒｅｑｕｅｓｔ  Ｆｏｒ  Ｃｏｍｍｅｎｔ  （ＲＦＣ）３１０２
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ＲＳＡＰ−ＩＰを用いるとき、ＲＳＩＰゲートウェイはレイヤ３とレイヤ４のアドレスのプール（例えば、ＩＰアドレスとともにアドレス当たりのポート番号のプール）を保持する。ＲＳＩＰホストはＩＰアドレスと１つ以上のポートとを貸し出してそれを使用させる。一旦、アドレス／ポートのチュープル（tuple）が特定のクライアントに割当てられたなら、そのクライアントだけが、そのチュープルがプールに返却されるまではそのチュープルを用いるべきである。具体的に割当てられていないアドレス／ポートの組み合わせを用いるべきではない。
【００１２】
サーバ１０５が障害を起こすこともあり得る。それ故に、望まれることはサーバの障害を検出し、その障害からうまく回復するシステムと方法である。
【課題を解決するための手段】
【００１９】
本発明を１つの側面から見れば、本発明は、第１のアドレッシング領域と第２のアドレッシング領域とに属するゲートウェイサーバを障害から回復させる方法を提供する。いくつかの実施例では、その方法は、次の工程、即ち、（ａ）前記第１のアドレッシング領域と前記第２のアドレッシング領域とに属するバックアップゲートウェイサーバにおいて、クライアントから送信された、障害が発生した前記ゲートウェイサーバにより前記クライアントに以前に割当てられた前記第２のアドレッシング領域からのネットワークリソースを含むメッセージを受信する工程と、（ｂ）前記工程（ａ）の後、前記ネットワークリソースが空きであるかどうかを前記バックアップゲートウェイサーバにより判断する工程と、（ｃ）前記ネットワークリソースが空きであることを判断したことに応じて、前記クライアントに前記ネットワークリソースを割当てる工程とを有する。
【００２０】
その方法はまた、前記バックアップゲートウェイサーバにおいて、第２のクライアントから送信された、前記第２のアドレッシング領域からの第２のネットワークリソースに対する要求を受信する工程と、前記ＤＡタイマが切れていないなら前記要求を拒絶する工程と、前記バックアップゲートウェイサーバから前記第２のクライアントに対して、もし前記ＤＡタイマが切れており、前記第２のネットワークリソースは前記第２のクライアントに割当てられるために利用可能であるなら、前記第２のアドレッシング領域からの第２のネットワークリソースを送信する工程とを有すると良い。前記要求を拒絶する工程は、前記第２のクライアントに対して、前記要求を無視したり（例えば、前記要求に対して何の応答も送信しない）、或いは、前記要求が否定されたことを示唆する前記要求に対する応答を前記第２のクライアントに送信することから構成されても良い。
【００２１】
いくつかの実施例では、その方法はまた、前記ネットワークリソースが空きではないとの判断に応じて、前記クライアントに前記第２のアドレッシング領域からの前記ネットワークリソースを放棄するようにさせる工程を有する。即ち、いくつかの実施例では、その方法はまた、（ｉ）前記ネットワークリソースが現在のところ別のクライアントに割当てられており、（ｉｉ）前記別のクライアントが前記バックアップゲートウェイサーバと同じホストで実行されていないとの判断に応じて、前記クライアントに前記第２のアドレッシング領域からの前記ネットワークリソースを放棄するようにさせる工程を有する。前記クライアントに前記ネットワークリソースを放棄するようにさせる工程は、前記クライアントを再起動させるか、或いは、前記クライアントが実行されている前記ホストを再ブートすることから構成されても良い。
【００２２】
いくつかの実施例では、前記ネットワークリソースは１つ以上のネットワークアドレスのセットを含み、前記ネットワークリソースが空きであるかどうかを判断する工程は、前記ネットワークアドレスのセットに含まれるネットワークアドレスのいずれかが現在のところ別のクライアントに割当てられているかどうかを判断する工程を含む。その方法はさらに、前記ネットワークアドレスのセットに含まれるネットワークアドレスが現在のところ別のクライアントに割当てられているとの判断に応じて、前記別のクライアントが前記バックアップゲートウェイサーバと同じホストで実行されているかどうかを判断する工程と、前記別のクライアントが前記バックアップゲートウェイサーバと同じホストで実行されていると判断された場合には、前記別のクライアントに前記ネットワークアドレスを放棄するようにさせる工程とを含むと良い。
【００２３】
いくつかの実施例では、前記通知を受信すべきクライアントのセットを決定する工程は、ゲートウェイサーバモニタに接続されるクライアント全てを決定する工程を有する。
【００２７】
本発明を更に別の側面から見れば、本発明は、第１のアドレッシング領域と第２のアドレッシング領域とに属する改良型ゲートウェイサーバ装置を提供する。いくつかの実施例では、その改良型ゲートウェイサーバ装置は、送信器と、受信器と、コンピュータソフトウェアを格納するデータ記憶システムと、前記コンピュータソフトウェアを実行するデータ処理システムとを含む。そのコンピュータソフトウェアは、（ａ）前記第１のアドレッシング領域に属するクライアントから送信された、障害が発生したゲートウェイサーバにより前記クライアントに以前に割当てられた前記第２のアドレッシング領域からのネットワークリソースを含むメッセージを受信するコンピュータ命令と、（ｂ）前記メッセージの受信に応じて、前記ネットワークリソースが空きであるかどうかを判断するコンピュータ命令と、（ｃ）前記ネットワークリソースが空きであることを判断したことに応じて、前記クライアントに前記ネットワークリソースを割当てるコンピュータ命令とを有する。
【００２８】
前記側面とさらに別の側面と実施例とは添付図面を参照して以下に説明する。
【００２９】
ここで組み込まれ、明細書の一部を形成する添付図面は、本発明の種々の実施例を例示するものとなり、その説明を合わせて読むことでさらに、本発明の原理を説明し、当業者が本発明をなしたり、本発明を使用することを可能にするための役にたつ。  これらの図面において、以下の説明を通して、同じ参照番号は、同一の或いは機能的に類似の要素を示すものである。
【図面の簡単な説明】
【００３０】
【図１】通信システムを例示する図である。
【図２】本発明の実施例に従う通信システムを例示する図である。
【図３】本発明の実施例に従う処理を示すフローチャートである。
【図４】本発明の実施例に従う処理を示すフローチャートである。
【図５】本発明のいくつかの実施例に従うネットワークゲートウェイの機能ブロック図である。
【図６】本発明のいくつかの実施例に従うクライアントホストの機能ブロック図である。
【発明を実施するための形態】
【００３１】
さて図２を参照すると、図２は本発明の実施例に従うシステム２００を示す機能ブロック図である。図２に示されるように、システム２００はプライマリゲートウェイサーバ２０５ａとバックアップゲートウェイサーバ２０５ｂとを含む。図２に図示されているように、ゲートウェイサーバ２０５ａ、２０５ｂは両方ともアドレッシング領域Ａとアドレッシング領域Ｂに属している。ゲートウェイサーバ２０５はアドレッシング領域Ｂからのネットワークリソースをクライアント２０３（これはＲＳＩＰクライアントかもしれない）に割当てるように構成されている。従って、ゲートウェイサーバ２０５ａ、２０５ｂはＲＳＩＰサーバでも良いし、或いは、ＲＳＩＰサーバに類似のものでも良い。ネットワークリソースは、単一のネットワークアドレスか、或いは、複数のネットワークアドレスから構成されると良い。いくつかの実施例では、そのネットワークリソースは、１つ以上のネットワークアドレス（例えば、インターネットプロトコルアドレス）のセットと１つ以上のポート番号のセットとから構成される。
【００３２】
さらに図２に示されるように、システム２００は、ゲートウェイサーバ２０５ａの障害を検出し、ゲートウェイサーバ２０５ａを利用しているクライアント２０３にアドレッシング領域Ｂでリモートクライアント（例えば、リモートクライアント２２０）との通信を行ってバックアップゲートウェイサーバ２０５ｂに切り替えてフェイルオーバを行わせるように構成されているゲートウェイサーバモニタ２０２を含む。好適な実施例では、ゲートウェイサーバ２０５ｂはプライマリゲートウェイサーバ２０５ａに対してコールドスタンバイとなっている。
【００３３】
ゲートウェイサーバモニタ２０２が集中型モニタとして図２に示されているが、ゲートウェイサーバモニタ２０２は分散型モニタでも良いと考えられる。例えば、ゲートウェイサーバモニタ２０２はクライアント２０３の構成要素であっても良い。即ち、各クライアント２０３はゲートウェイサーバ２０５ａの障害を検出するゲートウェイサーバモニタコードを含むことができる。或いは、その代わりに、ゲートウェイサーバモニタ２０２は、クライアント２０３が実行される各ホストで実行する別々の処理であっても良い。
【００３４】
さて図３を参照すると、図３は本発明のいくつかの実施例に従う処理３００を示すフローチャートである。
【００３５】
処理３００はステップ３０２で始まり、モニタ２０２はゲートウェイサーバ２０５ａの障害を検出する。
【００３６】
ステップ３０４では、モニタ２０２はゲートウェイサーバ２０５ａが障害であることを示す通知を受信すべきクライアントのセットを決定する。いくつかの実施例では、ゲートウェイサーバ２０５ａによりクライアント２０３に割当てられたリソースを保持する各クライアント２０３は、モニタ２０２との接続を維持する。従って、いくつかの実施例では、モニタ２０２は、ゲートウェイサーバモニタ２０２に接続されたクライアント２０３の全てを判断することにより、その通知を受信すべきクライアントのセットを決定する。
【００３７】
ステップ３０６では、モニタ２０２は、決定されたクライアントのセットにおける各クライアントに、ゲートウェイサーバ２０５ａが障害であることを示す通知を送信する。その通知は、バックアップゲートウェイサーバ２０５ｂを識別する情報（例えば、サーバ２０５ｂのネットワークアドレス）を含むと良い。ステップ３０４〜３０６は、モニタ２０２が分散型モニタである実施例では必ずしも必要ではないかもしれない。
【００３８】
好適な実施例では、その通知を受信する各クライアント２０３は、バックアップゲートウェイサーバ２０５ｂに接続し、バックアップゲートウェイサーバ２０５ｂに、そのクライアントにより保持されており、そして、ゲートウェイサーバ２０５ａによりそのクライアントに割当てられたアドレッシング領域Ｂからのネットワークリソースの全てを提供するように構成される。
【００３９】
従って、ステップ３０８では、バックアップゲートウェイサーバ２０５ｂはクライアント２０３から、ゲートウェイサーバ２０５ａによりクライアント２０３に割当てられた領域Ｂからの少なくとも１つのネットワークリソースを含むメッセージを受信する。
【００４０】
ステップ３１０では、バックアップゲートウェイサーバ２０５ｂは一定の時間（例えば、１分）で切れる遅延割当て（ＤＡ）タイマを構成設定する。
【００４１】
ステップ３１２では、バックアップゲートウェイサーバ２０５ｂは、ステップ３０８において受信したネットワークリソースが空きであるかどうかを判断する。即ち、バックアップゲートウェイサーバ２０５ｂは、そのネットワークリソースが別のクライアントに割当てられて、その別のクライアントが依然としてそのネットワークリソースを保持しているかどうかを判断する。どのネットワークリソースが空きであり、どのネットワークリソースがそうでないかを追跡するために、バックアップゲートウェイサーバは、各割当てられたネットワークリソースに関し、その割当てられたネットワークリソースをクライアントにマップするデータベース（例えば、テーブルや他のデータ構造）を維持すると良い。従って、ネットワークリソースがクライアントにマップされていないなら、そのネットワークリソースは空きであるとみなされる。上述のように、いくつかの実施例では、ネットワークリソースは複数のネットワークアドレスを含むことができる。これらの実施例では、ネットワークリソースが空きであるかどうかを判断するステップは、複数のネットワークアドレス各々が空きであるかどうかを判断するステップを含む。１つのネットワークアドレスが空きでないなら、いくつかの実施例では、そのネットワークリソースは空きではないとみなされる。
【００４２】
ステップ３１２において、ネットワークリソースが空きではないと判断されたなら、処理３００はステップ３１３に進むか、ステップ３０８に戻っても良く、さもなければ、処理はステップ３１９に進む。
【００４３】
ステップ３１３では、バックアップゲートウェイサーバ２０５ｂはネットワークリソースをクライアントに割当てる。上述のように、ネットワークリソースをクライアントに割当てるステップは、データベースを更新して、ネットワークリソースがクライアントにマップされるようにすることを含む。
【００４４】
ステップ３１４では、バックアップゲートウェイサーバ２０５ｂはクライアント２０３から、アドレッシング領域Ｂからのネットワークリソース要求を受信する。これに応答して、バックアップゲートウェイサーバ２０５ｂはＤＡタイマが切れたかどうかを判断する（ステップ３１６）。もしタイマ切れであるなら、バックアップゲートウェイサーバ２０５ｂはその要求を拒絶する（ステップ３１７）。いくつかの実施例では、要求を拒絶するステップは、単にその要求を無視する（即ち、その要求に対して何の応答も要求したクライアントに送信しないこと）から成り立つ。別の実施例では、その要求を拒絶するステップは、その要求が拒絶されたことを示す応答を要求したクライアントに送信することを含む。
【００４５】
ＤＡタイマが切れていないとステップ３１６で判断されたなら、要求されたネットワークリソースは空きであるとを仮定して、バックアップゲートウェイサーバ２０５ｂは要求したクライアントに、アドレッシング領域Ｂからのネットワークリソースを割当てる（ステップ３１８）。
【００４６】
上述のように、バックアップゲートウェイサーバ２０５ｂが、ステップ３０８においてクライアントにより受信されたネットワークリソースが空きではない（即ち、その領域は別のクライアントに割当てられている）と判断したなら、処理はステップ３１９に到達する。ステップ３１９では、バックアップゲートウェイサーバ２０５ｂは、（ｉ）（例えば、上述したデータベースにアクセスすることにより）ネットワークリソースが割当てられた他のクライアントを、そして、（ｉｉ）その他のクライアントはバックアップゲートウェイサーバ２０５ｂが実行しているホストで実行しているかどうかを判断する。もし、バックアップゲートウェイサーバ２０５ｂが実行しているホストでその他のクライアントが実行しているなら、バックアップゲートウェイサーバ２０５ｂはその他のクライアントにネットワークリソースを破棄するようにさせ、さもなければ、バックアップゲートウェイサーバ２０５ｂはステップ３０８においてネットワークリソースを送信したクライアントにそのネットワークリソースを破棄するようにさせる（ステップ３２０）。いくつかの実施例では、バックアップゲートウェイサーバ２０５ｂはクライアントに、そのクライアントを再起動したり、或いは、そのクライアントが実行しているホストを再ブートすることにより、ネットワークリソースを破棄するようにさせる。いくつかの実施例では、バックアップゲートウェイサーバ２０５ｂはクライアントを再起動したり、或いは、否定確認応答（ＮＡＣＫ）（即ち、バックアップゲートウェイサーバ２０５ｂがネットワークリソースが空きではないと判断することを示すあるメッセージ）をクライアントに送信することにより、そのクライアントが実行しているホストを再ブートする。
【００４７】
ステップ３１０に戻ると、そこでは、バックアップゲートウェイサーバ２０５ｂがＤＡタイマを起動し、いくつかの実施例では、バックアップゲートウェイサーバ２０５ｂは、ステップ３１２においてネットワークリソースは空きであると判断されたときにのみ、ＤＡタイマを起動する。従って、いくつかの実施例では、ステップ３１２の後に、そして、ステップ３１２においてネットワークリソースが空きであると判断されたときにのみ、ステップ３１０の処理が発生する。
【００４８】
さて図４を参照して説明すると、図４は、本発明のいくつの実施例に従って、クライアント２０３により実行される処理４００を図示するフローチャートである。
【００４９】
処理４００はステップ４０２で始まり、そこでは、クライアント２０３はゲートウェイサーバ２０５ａにアドレッシング領域Ｂからのネットワークリソース要求を送信する。
【００５０】
ステップ４０４では、クライアント２０３はゲートウェイサーバ２０５ａから、アドレッシング領域Ｂからのネットワークリソース（例えば、１つ以上のネットワークアドレスのセット）を受信する。
【００５１】
そのとき、クライアント２０３はネットワークリソースを用いて、ネットワーク１１０ｂに接続されたリモートクライアント２２０との通信を行う。例えば、クライアント２０３は、ネットワークリソースに含まれる領域Ｂからのネットワークアドレスの１つを含むヘッダを有するパケットを生成し（ステップ４０６）、そのパケットをゲートウェイサーバ２０５ａに送信する（ステップ４０８）。いくつかの実施例では、そのパケットはまた、クライアント２０３が実行するホストに割当てられたアドレス（例えば、ネットワークアドレス或いは他のアドレス）を含む第２のヘッダを含み、ゲートウェイサーバ２０５ａはパケットから第２のヘッダを取り去り、第２のヘッダなしでパケットをリモートクライアント２２０に送信するように構成される。
【００５２】
ステップ４１０では、クライアント２０３はゲートウェイサーバ２０５ａに障害が発生した（例えば、もはやゲートウェイサービスを提供することができない）との指示を受信する。上述のように、クライアント２０３は集中型ゲートウェイサーバモニタ２０２からの通知を受信することにより、その指示を受信することができる。他の実施例では、上述のように、クライアント２０３それ自身が、ゲートウェイサーバ２０５ａに障害が発生したことを検出できるゲートウェイサーバモニタ２０２のモジュールを含むことができる。
【００５３】
ステップ４１２では、クライアント２０３は、ネットワークリソースを破棄していないなら、ステップ４０４で受信したネットワークリソースをバックアップゲートウェイサーバ２０５ｂに送信する。好適な実施例では、ステップ４１２において、クライアント２０３はバックアップゲートウェイサーバ２０５ｂに、また破棄されておらず、障害が発生したゲートウェイサーバによりクライアント２０３に割当てられた全てのネットワークリソースを送信する。
【００５４】
ステップ４１４では、クライアント２０３はバックアップゲートウェイサーバ２０５ｂからＮＡＣＫを受信しないなら、クライアント２０３は引き続きネットワークリソースを用いてリモートクライアント２２０との通信を行う。即ち、クライアント２０３はネットワークリソースとバックアップゲートウェイサーバ２０５ｂとを用いてリモートクライアント２２０との通信を行う。ステップ４２０では、クライアント２０３はバックアップゲートウェイサーバ２０５ｂからＮＡＣＫを受信するなら、クライアント２０３は再起動されるか、或いは、クライアント２０３が実行するホストが再ブートされる。
【００５５】
さて図５を参照して説明すると、図５は本発明のいくつかの実施例に従うゲートウェイ５５５の機能ブロック図である。図示のように、ゲートウェイ５５５はデータ処理システム５０２（例えば、１つ以上のマイクロプロセッサ）と、データ記憶システム５０６（例えば、１つ以上の不揮発性記憶デバイス）と、記憶システム５０６に格納されるコンピュータソフトウェア５０８とを有していると良い。構成設定パラメータ５１０も記憶システム５０６に格納されると良い。ゲートウェイ５５５はまた、データをネットワーク１１０ａに送信しデータをネットワーク１１０ａから受信する送信／受信（Ｔｘ／Ｒｘ）回路５０４と、データをネットワーク１１０ｂに送信しデータをネットワーク１１０ｂから受信する送信／受信（Ｔｘ／Ｒｘ）回路５０５とを含む。ソフトウェア５０８は、プロセッサ５０２がソフトウェア５０８を実行するとき、ゲートウェイ５５５が上述のステップ（例えば、図３に示されたフローチャートを参照して上述したステップ）を実行するように構成される。
【００５６】
例えば、ソフトウェア５０８は、（１）アドレッシング領域Ａに属するクライアント２０３から、障害が発生したゲートウェイサーバによりクライアントに以前に割当てられたアドレッシング領域Ｂからのネットワークリソースを含むメッセージを受信するコンピュータ命令と、（２）そのメッセージの受信に応じて、ネットワークリソースが空きであるかどうかを判断するコンピュータ命令と、（３）そのネットワークリソースが空きであることを判断したことに応じて、クライアントにネットワークリソースを割当てるコンピュータ命令とを含むと良い。
【００５７】
ソフトウェア５０８はまた、（４）メッセージの受信後、所定時間後に切れる遅延割当て（ＤＡ）タイマをセットするコンピュータ命令と、（５）第２のクライアントから送信された、アドレッシング領域Ｂからの第２のネットワークリソースに対する要求を受信するコンピュータ命令と、（６）その要求の受信に応じて、ＤＡタイマが切れているかどうかを判断するコンピュータ命令と、（７）第２のクライアントに対して、ＤＡタイマが切れており、第２のネットワークリソースは第２のクライアントに割当てられるために利用可能であるとの判断に応じて、アドレッシング領域Ｂからの第２のネットワークリソースを送信するコンピュータ命令とを含むと良い。
【００５８】
さて図６を参照すると、図６は本発明のいくつかの実施例に従うホスト６６７の機能ブロック図である。図示のように、ホスト６６７は、データ処理システム６０２（例えば、１つ以上のマイクロプロセッサ）と、データ記憶システム６０６（例えば、１つ以上の不揮発性記憶デバイス）と、記憶システム６０６に格納されたコンピュータソフトウェア６０８とを含むと良い。構成設定パラメータ６１０もまた記憶システム６０６に格納されると良い。ホスト６６７はまた、データをゲートウェイ５５５に送信し、データをゲートウェイ５５５から受信する送信／受信（Ｔｘ／Ｒｘ）回路６０４を含む。ソフトウェア６０８は、プロセッサ６０２がソフトウェア６０８を実行するときに、ホスト６６７は上述のステップ（例えば、図４に示されたフローチャートを参照して上述したステップ）を実行するように構成される。例えば、ソフトウェア６０８は、（１）送信器６０４を用いてゲートウェイサーバ２０５ａに、アドレッシング領域Ｂからのネットワークリソース要求を送信するコンピュータ命令と、（２）ゲートウェイサーバから、アドレッシング領域Ｂからのネットワークリソースを含むメッセージを受信するコンピュータ命令と、（３）受信したネットワークリソースを用いてクライアント２２０との通信を行うコンピュータ命令と、（４）ゲートウェイサーバ２０５ａが機能していないことの示唆を受信することに応じて、送信器６０４を用いてゲートウェイサーバ２０５ａから受信したネットワークリソースをバックアップゲートウェイサーバ２０５ｂに送信するコンピュータ命令とを含むと良い。
【００５９】
本発明の種々の実施例について説明したが、それらは例としてだけ提示されたのであり本発明を限定するためではないことを理解されたい。従って、本発明の幅や上述のいかなる代表的な実施例によって限定されるべきではない。
【００６０】
加えて、上述の、そして、図面により例示した処理はステップのシーケンスとして示されているが、これはただ例示のためになされたものである。従って、いくつかのステップが付加されても良いし、いくつかのステップが省略されても良いし、これらステップの順序が再構成されても良いし、いくつかのステップが並列的に実行されてもよいと考えられる。
【図１】
0005325996.tif 000002
【図２】
0005325996.tif 000003
【図３】
0005325996.tif 000004
【図４】
0005325996.tif 000005
【図５】
0005325996.tif 000006
【図６】
0005325996.tif 000007