(57)【要約】【課題】アドレス可能なネットワークに対する第１のネットワーク・インタフェースを含むネットワーク・ノードを使用するフォールト・トレラント・ネットワーク・アーキテクチャを提供すること。【解決手段】第１のネットワーク・インタフェースには、第１のＩＰアドレス範囲によって定義される第１のネットワーク・インタフェースＩＰアドレスが割り当てられる。ネットワーク・ノードはまた、第１のＩＰアドレス範囲外のＩＰアドレス範囲によって定義される少なくとも１つの仮想ＩＰアドレスを含む。この少なくとも１つの仮想アドレスは、第１のネットワーク・インタフェースからアドレス可能なネットワークに公表され、この少なくとも１つの仮想ＩＰアドレスを宛先とするパケットを、第１のネットワーク・インタフェースにルーティングすることができる。【選択図】図１
2006129446.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク・ノードであって、
アドレス可能なネットワークに対する第１のネットワーク・インタフェースであって、第１のＩＰアドレス範囲によって定義された第１のネットワーク・インタフェースＩＰアドレスが割り当てられた第１のネットワーク・インタフェースと、
前記第１のＩＰアドレス範囲外のＩＰアドレス範囲によって定義された少なくとも１つの仮想ＩＰアドレスと、
を備え、
前記少なくとも１つの仮想アドレスは、前記第１のネットワーク・インタフェースから前記アドレス可能なネットワークに公表され、前記少なくとも１つの仮想ＩＰアドレスを宛先とするパケットは、前記第１のネットワーク・インタフェースにルーティングされることができる、ネットワーク・ノード。
【請求項２】
請求項１に記載のネットワーク・ノードであって、前記第１のネットワーク・インタフェースは、ネットワーク・インタフェース・カードを含む、ネットワーク・ノード。
【請求項３】
請求項１に記載のネットワーク・ノードであって、前記第１のネットワーク・インタフェースは、前記アドレス可能なネットワーク上で構成された複数のサブネットに接続される、ネットワーク・ノード。
【請求項４】
請求項１に記載のネットワーク・ノードであって、前記アドレス可能なネットワークは、ローカル・エリア・ネットワークを含む、ネットワーク・ノード。
【請求項５】
請求項１に記載のネットワーク・ノードであって、少なくとも１つの仮想ＩＰアドレスは、ループ・バック・インタフェースに割り当てられる、ネットワーク・ノード。
【請求項６】
請求項１に記載のネットワーク・ノードであって、少なくとも１つの仮想アドレスは、サブネット・マスクによって定義される、ネットワーク・ノード。
【請求項７】
請求項６に記載のネットワーク・ノードであって、少なくとも１つの仮想ＩＰアドレスと３２ビット・サブネット・マスクは、前記アドレス可能なネットワークに公表される、ネットワーク・ノード。
【請求項８】
請求項１に記載のネットワーク・ノードであって、
前記アドレス可能なネットワークに対する第２のネットワーク・インタフェースであって、第２のＩＰアドレス範囲によって定義された第２のネットワーク・インタフェースＩＰアドレスが割り当てられた第２のネットワーク・インタフェースを、
さらに備え、
前記仮想ＩＰアドレスの前記ＩＰアドレス範囲は、前記第２のＩＰアドレス範囲の外である、ネットワーク・ノード。
【請求項９】
請求項２に記載のネットワーク・ノードであって、前記少なくとも１つの仮想ＩＰアドレスを宛先とするパケットは、前記第１のネットワーク・インタフェース及び前記第２のネットワーク・インタフェースのうち少なくとも１つにルーティングされることができる、ネットワーク・ノード。
【請求項１０】
請求項１に記載のネットワーク・ノードであって、前記第２のネットワーク・インタフェースは、ネットワーク・インタフェース・カードを含む、ネットワーク・ノード。
【請求項１１】
請求項１に記載のネットワーク・ノードであって、前記第２のネットワーク・インタフェースは、前記アドレス可能なネットワーク上で構成された複数のサブネットに接続される、ネットワーク・ノード。
【請求項１２】
請求項１に記載のネットワーク・ノードであって、
前記少なくとも１つの仮想ＩＰアドレスを公表するためにルーティング・プロトコルを実装するルーティング・プログラムを、
さらに備えるネットワーク・ノード。
【請求項１３】
請求項１に記載のネットワーク・ノードであって、
複数のデフォルト・ルータを、
さらに備えるネットワーク・ノード。
【請求項１４】
請求項１３に記載のネットワーク・ノードであって、
前記複数のデフォルト・ルータを監視するためのルータ・ウォッチャ・プログラムを、
さらに備えるネットワーク・ノード。
【請求項１５】
請求項１４に記載のネットワーク・ノードであって、前記ルータ・ウォッチャ・プログラムは、動作可能でないデフォルト・ルータを除去するように構成される、ネットワーク・ノード。
【請求項１６】
請求項１に記載のネットワーク・ノードであって、
前記少なくとも１つの仮想ＩＰアドレスを第２のネットワーク・ノードにフローティングするためのハイ・アベイラビリティ・プログラムを、
さらに備えるネットワーク・ノード。
【請求項１７】
ネットワーク方法であって、
１つ又は複数の仮想ＩＰアドレスと１つ又は複数のデフォルト・ルータと共にノードを構成する工程と、
前記１つ又は複数の仮想ＩＰアドレスを、アドレス可能なネットワークのネットワーク・デバイスに公表する工程と、
前記１つ又は複数のデフォルト・ルータを監視する工程と、
前記１つ又は複数の仮想ＩＰアドレスを、ノード間でフローティングする工程と、
を含む方法。
【請求項１８】
コンピュータ可読媒体上で記憶されたコンピュータ・プログラムであって、
１つ又は複数の仮想ＩＰアドレスと１つ又は複数のデフォルト・ルータと共にノードを構成するための命令と、
前記１つ又は複数の仮想ＩＰアドレスを、アドレス可能なネットワークのネットワーク・デバイスに公表するための命令と、
前記１つ又は複数のデフォルト・ルータを監視するための命令と、
前記１つ又は複数の仮想ＩＰアドレスを、ノード間でフローティングするための命令と、
を含むコンピュータ・プログラム。
【請求項１９】
請求項１８に記載のプログラムであって、前記コンピュータ可読媒体は、ディスク、デバイス及び伝播信号のうち少なくとも１つを含む、プログラム。
【請求項２０】
ネットワークであって、
１つ又は複数の仮想ＩＰアドレスと１つ又は複数のデフォルト・ルータと共にノードを構成するための手段と、
前記１つ又は複数の仮想ＩＰアドレスを、アドレス可能なネットワークのネットワーク・デバイスに公表するための手段と、
前記１つ又は複数のデフォルト・ルータを監視するための手段と、
前記１つ又は複数の仮想ＩＰアドレスを、ノード間でフローティングするための手段と、
を備えるネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ネットワークのアベイラビリティ（ａｖａｉｌａｂｉｌｉｔｙ）を向上させるシステム及び方法に関し、特に、フォールト・トレラント・ネットワーク・アーキテクチャ（ｆａｕｌｔ  ｔｏｌｅｒａｎｔ  ｎｅｔｗｏｒｋ  ａｒｃｈｉｔｅｃｔｕｒｅ）を使用してネットワークのアベイラビリティを向上させるシステム及び方法に関する。
【背景技術】
【０００２】
インターネット・プロトコル（ＩＰ）ネットワークでは、停止時間を最小限にして高いアベイラビリティを達成することが重要である。高いアベイラビリティを達成する１つの方法は、２つ（以上）のネットワーク・ホストが単一又は複数のＩＰアドレスを共用することを含む。ホスト間での共有ＩＰアドレスの所有権の切り替えは、フローティングと呼ばれ、共用されたＩＰアドレスは、フローティングＩＰアドレスと呼ばれる。任意の所与の時点でフローティングＩＰアドレスを所有できるのは、１つのホストだけである。
【０００３】
互いにＩＰアドレスをフローティングするように構成されたホストは、ハイ・アベイラビリティ（ＨＡ、Ｈｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙ）ノードと呼ばれる。フローティングＩＰアドレスを潜在的に所有できるすべてのＨＡノードは、ＨＡクラスタを構成する。ＨＡクラスタ内の１つのＨＡノードのみが、任意の所与の時点でＩＰアドレスを所有できる。ＨＡクラスタ内で、ＨＡノードは、例えばハートビート・プロトコル（ｈｅａｒｔｂｅａｔ  ｐｒｏｔｏｃｏｌ）を用いて互いを監視するので、各ＨＡは、どのノードがフローティングＩＰアドレスを所有するかを認識している。
【０００４】
現在の高いアベイラビリティを達成する方法には、さまざまな問題がある。１つの問題は、ＨＡノードは、通常、同じローカル・エリア・ネットワーク（ＬＡＮ）内になければならないということである。即ち、同じＬＡＮが、ＨＡノードと物理的に同じ場所になければならない。この制約は、ＩＰアドレスは所与のＬＡＮを越えることができないという現状のためであり、このことは、ＨＡノードの場所とその間の距離を厳しく制限する。
【０００５】
ホストが異なる物理インタフェース間で負荷分散及び／又は冗長構成を提供しようとする場合に、別の問題は、明白である。つまり、そのような場合、すべての冗長インタフェースは、同じＬＡＮ上になければならない。これは、各インタフェースが同じＩＰアドレスを共用しているためである。従って、ＨＡノードは、復旧可能なローカル・ネットワーク障害のために、ＩＰアドレスをフェールオーバする時期が早すぎることがある。これは、フェールオーバに起因する待ち時間及び起動時間を増大させる。この制約は、特に、ＨＡノードが複数のＬＡＮに接続されていて、単一のＬＡＮの障害によってＨＡノードのアベイラビリティが失われる時に明らかである。更に、ＬＡＮは、単一の障害点と考えられるので、１つのネットワーク・デバイスの障害は、所与のＬＡＮ上のすべてのインタフェースを動作不能にする。
【０００６】
従って、ＨＡノード間でＩＰアドレスをフローティングする改良型の方法及びシステムと、改良型のローカル・サブネット障害検出及び復旧機能が必要である。
【発明の開示】
【課題を解決するための手段】
【０００７】
（概要）
１つの一般的な態様では、フォールト・トレラント・ネットワーク・アーキテクチャは、アドレス指定可能なネットワークへの第１のネットワーク・インタフェースを含むネットワーク・ノードを使用する。第１のネットワーク・インタフェースは、第１のＩＰアドレス範囲によって定義された第１のネットワーク・インタフェースＩＰアドレスを割り当てられる。また、ネットワーク・ノードは、第１のＩＰアドレス範囲外のＩＰアドレス範囲によって定義された少なくとも１つの仮想ＩＰアドレスを含む。この少なくとも１つの仮想アドレスは、第１のネットワーク・インタフェースからアドレス指定可能なネットワークに公表され、この少なくとも１つの仮想ＩＰアドレスに向けられたパケットは、第１のネットワーク・インタフェースにルーティングできる。
【０００８】
別の態様では、フォールト・トレラントな方法は、１つ又は複数の仮想ＩＰアドレスを構成するステップと、この１つ又は複数のアドレスをアドレス指定可能なネットワークのネットワーク・デバイスに公表するステップと、１つ又は複数のデフォルトのルータを監視するステップと、この１つ又は複数の仮想ＩＰアドレスをノード間でフローティングするステップとを含む。
【０００９】
本発明の各態様は、コンピュータ・システム及び／又はコンピュータ可読媒体に記憶されたコンピュータ・プログラムによって実施することができる。コンピュータ可読媒体は、ディスク、デバイス、及び／又は伝搬される信号を含む。
【００１０】
なお、その他の特徴及び利点は、図面を含む以下の説明と特許請求の範囲から明らかになろう。
【発明を実施するための最良の形態】
【００１１】
さまざまな実施形態で、本発明は、ネットワーク・アベイラビリティを向上させるフォールト・トレラント・ネットワーク・アーキテクチャを目的とする。以下に記載するシステム及び方法は、現実の実施態様では、さまざまな別の要素及び／又はプロセスを含むことを理解されたい。
【００１２】
図１は、本発明の幾つかの態様によるフォールト・トレラント・ネットワーク１０を示す。この実施形態では、フォールト・トレラント・ネットワーク１０は、第１のノード（ノードＡ）１１０と第２のノード（ノードＢ）１２０とを含む。フォールト・トレラント・ネットワーク１０は、さまざまな実施形態で任意の数のノードを含むことができることを理解されたい。
【００１３】
各ノード１１０、１２０は、１人又は複数のユーザにリソースを提供するコンピュータ又はコンピュータ・システムなどのホスト又はサーバである。一般に、ノード１１０、１２０は、ネットワーク１３０を介して相互に通信するハードウェア及びソフトウェア構成要素を含む。ノード１１０、１２０は、さまざまな通信及び／又はルーティング・プロトコルを用いて通信するように構成及び配置することができる。
【００１４】
一実施形態では、第１のノード１１０は、第１のホスト・コントローラ１１５に応答して動作し、第２のノード１２０は第２のホスト・コントローラ１２５に応答して動作するように構成されている。破線は、幾つかの実施態様で、ホスト・コントローラ１１５、１２５又はその一部が、ノード１１０、１２０の１つ又は複数の要素に上記のように動作するよう命令可能であることを示すものである。
【００１５】
ホスト・コントローラ１１５、１２５の例は、これに限定はされないが、１つ又は複数のコンピュータ・デバイスをプログラミングされた通りに対話及び動作させるように、個別に、又は集合的に命令するコンピュータ・プログラム、ソフトウェア・アプリケーション、コンピュータ・コード、命令セット、プラグイン、マイクロプロセッサ、仮想マシン、デバイス、又はこの組み合わせを含む。一般に、ホスト・コントローラ１１５、１２５は、任意の適したアルゴリズム及びコンピュータ言語を使用でき、命令を搬送することができる任意のタイプのコンピュータ、コンピュータ・システム、デバイス、マシン、構成要素、物理又は仮想装置、記憶媒体、又は伝搬される信号内に永続的又は一時的に具体化できる。例えば、ソフトウェア又はコンピュータ・プログラムとして実施されたホスト・コントローラ１１５、１２５は、コンピュータ可読媒体（例えば、デバイス、ディスク、又は伝搬される信号）に記憶でき、コンピュータがその媒体を読み出すと、本明細書に記載する機能が実行される。
【００１６】
図１に示すように、ノード１１０、１２０は、ネットワーク１３０に接続する少なくとも１つのの物理ネットワーク・インタフェース・カード（ＮＩＣ）を含む。一般に、ＮＩＣは、ネットワーク１３０の接続点又はアップリンクである。一実施形態では、第１のノード１１０は、第１のネットワーク・インタフェース・カード（ＮＩＣ１）１１１と第２のＮＩＣ（ＮＩＣ２）１１２とで構成される。第２のノード１２０は、第１のＮＩＣ（ＮＩＣ１）１２１と第２のＮＩＣ（ＮＩＣ２）１２２とで構成される。幾つかの実施形態では、ノード１１０、１２０は、追加のＮＩＣを含んでいてもよい。
【００１７】
一実施態様では、ネットワーク１３０は、ローカル・エリア・ネットワーク（ＬＡＮ）などのアドレスＩＰネットワークを含むか又はその一部を形成する。そのような実施態様では、各ネットワーク・デバイスは、任意の所与の時点で一意的なＩＰアドレスで表されることが必要である。ＩＰアドレス指定方法によって、アプリケーションは、そのＩＰアドレスを用いて特定のネットワーク・デバイスにアクセスできる。
【００１８】
一実施形態では、第１のＩＰアドレス（ＩＰ１）は、第１のノード１１０上の第１のＮＩＣ１１１に向けられ、第２のＩＰアドレス（ＩＰ２）は、第１のノード１１０上の第２のＮＩＣ１１２に向けられ、第３のＩＰアドレス（ＩＰ３）は、第２のノード１２０上の第１のＮＩＣ１２１に向けられ、第４のＩＰアドレス（ＩＰ４）は、第２のノード１２０上の第２のＮＩＣ１２２に向けられる。
【００１９】
さまざまな実施形態で、ネットワーク１３０は、これに限定はされないが、ローカル・エリア・ネットワーク（イーサネットなど）、ワイド・エリア・ネットワーク（インターネット及び／又はワールド・ワイド・ウェブなど）、電話ネットワーク（アナログ、ディジタル、無線、有線、ＰＳＴＮ，ＩＳＤＮ、ＧＳＭ、ＧＰＲＳ、及び／又はｘＤＳＬなど）、パケット交換ネットワーク、無線ネットワーク、テレビジョン・ネットワーク、ケーブル・ネットワーク、衛星ネットワーク、及び／又はデータを搬送するように構成されたその他の任意の有線又は無線通信ネットワークを含む任意のタイプのアドレス指定可能なネットワークを含むか又はその一部を形成することができる。ネットワーク１３０は、例えば、データを送信かつ／又は送達するように構成された中間ノード、プロキシ・サーバ、ルータ、スイッチ、及びアダプタを含むことができる。さまざまな実施形態で、ネットワーク１３０は、１つ又は複数のその他の通信システム内で、又はこれと連係して動作することができる。
【００２０】
一実施形態で、ネットワーク１３０は、複数のサブネット（ＳＵＢ１〜ＳＵＢ４）１３１〜１３４を含むように構成されている。一般に、サブネットは、ネットワーク・デバイスが共通のＩＰプレフィックスなどの共通のアドレス構成要素を共用するネットワークの一部である。サブネットは、連続するＩＰアドレスでサブネット・インタフェースを構成することで、ネットワーク１３０（例えば、ＬＡＮ）に加えて作成できる。例えば、第１のサブネット（ＳＵＢ１）１３１は、ＩＰプレフィックス１０．１０．１０で構成でき、第２のサブネット（ＳＵＢ２）１３２は、ＩＰプレフィックス１１．１１．１１で構成できる。
【００２１】
さまざまな実施態様で、ノード１１０、１２０の各々は、複数のサブネットに物理的に接続できる。即ち、「マルチホーミング」できる。一般に、マルチホーミングされたホストは、異なるサブネット又はＬＡＮに接続された複数の物理ネットワーク・インタフェースを有することができ、各サブネット又はＬＡＮ上に１つ（又は複数の）ＩＰアドレスを有することができる。
【００２２】
一実施形態では、第１のノード１１０は、第１のＮＩＣ（ＮＩＣ１）１１１によって第１のサブネット（ＳＵＢ１）１３１に接続され、第２のＮＩＣ（ＮＩＣ２）１１２によって第２のサブネット（ＳＵＢ２）１３２に接続されている。第２のノード１２０は、第１のＮＩＣ（ＮＩＣ１）１２１によって第３のサブネット（ＳＵＢ３）１３３に接続され、第２のＮＩＣ（ＮＩＣ２）１２２によって第４のサブネット（ＳＵＢ４）１３４に接続されている。
【００２３】
図に示すように、ネットワーク１３０は、幾つかのルータ（Ｒ１〜Ｒ４，ＲＸ及びＲＹ）１４１〜１４４、１４５及び１４７も含む。一般に、ルータは、ネットワーク・トラフィックを送信するように構成されたネットワーク・デバイスである。一実施形態で、第１のルータ（Ｒ１）１４１は、第１のサブネット１３１に接続され、第２のルータ（Ｒ２）１４２は、第２のサブネット１３２に接続され、第３のルータ（Ｒ３）１４３は、第３のサブネット１３３に接続され、第４のルータ（Ｒ４）１４４は、第４のサブネット１３４に接続されている。一実施形態で、ネットワーク１３０は、クライアント・システム１５０に接続する第５のルータ（ＲＸ）１４５と、第２のルータ（Ｒ２）１４２と第４のルータ（Ｒ４）１４４を接続する第６のルータ（ＲＹ）１４６とを含む。さまざまな実施態様で、ネットワーク１３０は、その他のルータ（図示せず）を含むことができる。
【００２４】
第１のルータ（Ｒ１）１４１は、第１のノード１１０の第１のＮＩＣ（ＮＩＣ１）１１１のＩＰアドレス（ＩＰ１）を認識し、第２のルータ（Ｒ２）１４２は、第１のノード１１０の第２のＮＩＣ（ＮＩＣ２）１１２のＩＰアドレス（ＩＰ２）を認識している。第３のルータ（Ｒ３）１４３は、第２のノード１２０の第１のＮＩＣ（ＮＩＣ１）１２１のＩＰアドレス（ＩＰ３）を認識し、第４のルータ（Ｒ４）１４４は、第２のノード１２０の第２のＮＩＣ（ＮＩＣ２）１２２のＩＰアドレス（ＩＰ４）を認識している。
【００２５】
さまざまな実施形態で、クライアント・システム１５０は、ネットワーク１３０に情報を要求し、受信するように構成されている。クライアント・システム１５０は、１つ又は複数の有線及び／又は無線データ経路を介してネットワーク１３０に接続でき、クライアント・デバイスを含むことができる。クライアント・デバイスの例は、パーソナル・コンピュータ（ＰＣ）、ワークステーション、ラップトップ・コンピュータ、ネットワーク対応型パーソナル・ディジタル・アシスタント（ＰＤＡ）、及びネットワーク対応型携帯電話を含む。その他の例は、これに限定はされないが、命令に応答して実行できるマイクロプロセッサ、集積回路、又は任意のその他の構成要素、マシン、ツール、装置、又はそれらの何らかの組み合わせを含む。
【００２６】
さまざまな実施態様で、ノード１１０、１２０は、ハイ・アベイラビリティ（ＨＡ）を提供するために冗長かつスケーラブルな形で互いにバックアップするように構成されている。例えば、ＨＡノードは、ホット−コールド・ペアとして動作でき、所与の時間に一方のノードだけがアクティブにアプリケーションを受け持つ。更に、ＨＡノードは、異なる物理サイトに位置でき、従って障害状況は、単一のノードに隔離される。ＨＡクラスタ内の１つのノードが障害になった場合、アプリケーションは、別のＨＡノードにシフトする。ＩＰアドレスは、ＨＡクラスタ内のＨＡノード間でフローティングでき、その結果、アプリケーションは、動作可能なＨＡノードにリダイレクトされる。
【００２７】
さまざまな実施態様で、第１のノード１１０は、少なくとも１つの仮想ＩＰアドレス（ＶＩＰ）を含むように構成されている。１つ又は複数のＶＩＰアドレスは、ＨＡクラスタ内のＨＡノード間でフローティングできる。一実施形態で、第１のノード１１０は、いかなる物理インタフェース又はサブネットにも接続されていないＶＩＰアドレス（ＶＩＰ１）を含むように構成されている。例えば、ＶＩＰ１は、いかなる物理ＮＩＣ（例えば、ＮＩＣ１又はＮＩＣ２）あるいはネットワーク１３０のいかなるサブネット（例えば、ＳＵＢ１〜ＳＵＢ４）も宛先としない。逆に、ＶＩＰ１には、専用の一意的なサブネットを備えた仮想インタフェースを割り当てることができる。
【００２８】
一実施態様で、１つ又は複数のＶＩＰアドレスは、第１のノード１１０のループ・バック・インタフェース又はループ・バック・アダプタを割り当てられる。さまざまな実施形態で、第１のノード１１０のループ・バック・インタフェースは、所定のループ・バックＩＰアドレス（例えば、１２７．０．０．１）を含む。ループ・バック・インタフェースの所定のＩＰアドレスは、不変であるが、ループ・バック・インタフェースには、１つ又は複数のＶＩＰアドレスが更に割り当てられる。
【００２９】
さまざまな実施形態で、ループ・バック・インタフェースに割り当てられた１つ又は複数のＶＩＰアドレスの各々は、特別のサブネット・マスク又は論理ビット・マスクで定義される。一般に、サブネット・マスクは、サブネットのサイズ又は範囲を定義する。一実施態様で、ＶＩＰアドレスは、３２ビット・ネットワーク・マスク（例えば、ＩＰバージョン４では２５５．２５５．２５５．２５５）で構成されるので、いかなる他のＩＰサブネットにも結合していない。
【００３０】
１つ又は複数のＶＩＰアドレス及びサブネット・マスクは、第１のノード１１０（又は第２のノード１２０）からフォールト・トレラント・ネットワーク１０内の他のデバイスに公表される。例えば、第１のノード１１０は、ルーティング・プロトコルを用いて他のネットワーク・デバイスにＶＩＰ１アドレスとそれに対応するサブネット・マスクとを公表できる。ＶＩＰ１アドレスは、第１のソースＩＰアドレス（ＩＰ１）を備えた第１のサブネット（ＳＵＢ１）１３１と第２のソースＩＰアドレス（ＩＰ２）を備えた第２のサブネット（ＳＵＢ２）１３２とに同時に公表できる。ルーティング・プロトコルの例は、これに限定はされないが、ルーティング情報プロトコル（ＲＩＰ）又はＯｐｅｎ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ（ＯＳＰＦ）プロトコルを含む。一般に、ルーティング・プロトコルは、ネットワーク内にＶＩＰアドレス及びそれに対応するサブネット・マスクを伝搬する。
【００３１】
例えばルータなどのネットワーク・デバイスは、ＶＩＰアドレスとサブネット・マスクを通知され、これに応答して、パケットをノードにルーティングする。ネットワーク内のルータは、ＶＩＰがその上にあるサブネットに予断を持っていないので、ルータは、ＶＩＰアドレスを受け入れてパケットをルーティングする。例えば、第２のルータ（Ｒ２）１４２は、通常、第１のサブネット（ＳＵＢ１）１３１及びおそらくはその他のサブネットに関連するＩＰ範囲を認識している。第２のルータ（Ｒ２）１４２は、公表されたＶＩＰ１がそれが認識するいかなるサブネットの範囲にも属さないことを知る。第２のルータ（Ｒ２）１３２はまた、ＶＩＰ１の３２ビットのサブネット・マスクを受信するので、Ｒ２が認識するいかなるサブネット内にも存在しないと判断し、ＶＩＰアドレスを受け入れてパケットを第１のノード１１０にルーティングする。
【００３２】
図２は、本発明の別の態様によるフォールト・トレラント・ネットワーク・ノード１１０の一実施形態を示す。図に示すように、ノード１００は、第１のＮＩＣ（ＮＩＣ１）１１１と、第２のＮＩＣ（ＮＩＣ２）１１２と、第１のデフォルトのルータ（ＲＤ１）１１３と、第２のデフォルトのルータ（ＲＤ２）１１４と、ホスト・コントローラ１１５とを含む。
【００３３】
図に示すように、ホスト・コントローラ１１５は、オペレーティング・システムを含む。オペレーティング・システムの例は、これに限定はされないが、Ｌｉｎｕｘ、Ｓｏｌａｒｉｓ、及びＷｉｎｄｏｗｓを含む。さまざまな実施態様で、ホスト・コントローラ１１５又はオペレーティング・システムは、ソフトウェア及び／又はメモリ内に提供されるループ・バック・アダプタ又はループ・バック・インタフェースを含む。一般に、ループ・バック・インタフェースは、いかなる物理ＮＩＣにも結合せず、実質的にいかなる物理障害にも影響されない。
【００３４】
さまざまな実施態様で、１つ又は複数のＶＩＰアドレス（例えば、ＶＩＰ１）が、ループ・バック・インタフェースに割り当てられる。更に、１つ又は複数のＶＩＰアドレスは、特別のサブネット・マスク（例えば、ＩＰバージョン４では２５５．２５５．２５５．２５５）で定義されるので、ＶＩＰアドレスは、いかなる物理インタフェース（例えば、ＮＩＣ１、ＮＩＣ２）又はサブネット（例えば、ＳＵＢ１、ＳＵＢ２）にも結合していない。ループ・バック・インタフェースには、不変の所定のＩＰアドレス（例えば、１２７．０．０．１）を割り当てることができ、更に１つ又は複数のＶＩＰアドレスをループ・バック・インタフェースに割り当てることができる。
【００３５】
ノード１１０はまた、ルーティング・ソフトウェアを含む。一般に、ルーティング・プロトコルのさまざまなソフトウェア製品（例えば、Ｚｅｂｒａ、ＧａｔｅＤ、ＲｏｕｔｅＤ）を本発明と共に使用できる。対応するサブネット・マスクを備えた１つ又は複数のＶＩＰアドレス（例えば、ＶＩＰ１）を他のネットワーク・デバイスに公表するように、ルーティング・プロトコルは、修正又は構成される。
【００３６】
一実施態様で、ルーティング・プロトコルは、第１のＮＩＣ（ＮＩＣ１）１１１と第２のＮＩＣ（ＮＩＣ２）１１２のＶＩＰアドレス及びサブネット・マスクを同時に公表するように構成されているので、ＶＩＰ１及びサブネット・マスクは、さまざまなネットワーク・デバイスに伝搬される。一実施形態では、第１のルータ（Ｒ１）１３１内のＶＩＰ１のルーティング・テーブル・エントリが、第１のＮＩＣ（ＮＩＣ１）１１１のＩＰアドレス（ＩＰ１）にマッピングされ、第２のルータ（Ｒ２）１３２内のＶＩＰ１のルーティング・テーブル・エントリが、第２のＮＩＣ（ＮＩＣ２）１１２のＩＰアドレス（ＩＰ２）にマッピングされる。
【００３７】
さまざまな実施態様で、オペレーティング・システムは、ノード１１０に、例えば第１のデフォルトのルータ１１３及び第２のデフォルトのルータ１１４などの１つ又は複数のデフォルトのルータを提供するように構成されている。一般に、デフォルトのルータ１１３、１１４は、ノード１１０の着信ネットワーク・トラフィック及び／又は発信ネットワーク・トラフィックをルーティングすることができる。第１のデフォルトのルータ１１３は、第１のＮＩＣ（ＮＩＣ１）１１１の発信ネットワーク・トラフィックをルーティングでき、第２のデフォルトのルータ１１４は、第２のＮＩＣ（ＮＩＣ２）１１２の発信ネットワーク・トラフィックをルーティングできる。
【００３８】
さまざまな実施形態で、ホスト・コントローラ１１５は、デフォルトのルータ１１３、１１４の動作を監視するルート監視プログラムを含む。一実施形態で、ルート監視プログラムは、ユーザ・レベルのプロセスとして実行でき、オペレーティング・システム上で実行される１つ又は複数のソフトウェア・アルゴリズムを含むことができる。ルート監視プログラムは、例えば、ｐｉｎｇ試験などの監視試験を実行して、デフォルトのルータ１１３、１１４が正常に動作しているか否かを判定できる。
【００３９】
デフォルトのルータ１１３、１１４の１つが動作不能状態であるとルート監視プログラムが判定した場合、そのルータは、デフォルトのルータとして削除される。ルート監視プログラムによって、パケットは、動作可能なルータに確実にルーティング又は再ルーティングされる。ルート監視プログラムは、連続してデフォルトのルータ１１３、１１４を監視し、再び動作可能になったルータを追加することができる。幾つかの実施態様で、ホスト・コントローラ１１５は、２つのデフォルトのルータ１１３、１１４間に発信パケットの負荷平衡を提供するように構成されている。
【００４０】
ルート監視プログラムを実行するための擬似コードの一例を以下に示す。
【００４１】
【数１】
2006129446.tif 000003
一実施形態で、ホスト・コントローラ１１５は、更にハイ・アベイラビリティ（ＨＡ）ソフトウェアを含む。一実施態様で、ノード１１０は、ＨＡクラスタの一部を形成し、ＨＡソフトウェアは、ＨＡクラスタ内のＨＡノードのヘルス監視を行うように構成されている。ＨＡソフトウェアは、ハートビート・プロトコルを使用し、ＨＡノード間で常に通信ができる。ＶＩＰ１アドレスを所有するＨＡノードがダウンすると、ＶＩＰ１アドレスは、ＨＡクラスタ内の別のＨＡノードにフローティングされ、このＨＡノード上で構成され、適したルーティング・プロトコルによって公表される。
【００４２】
図３は、本発明の幾つかの態様によるネットワーク・アベイラビリティを向上させる方法３０の一実施形態を示す。一実施態様では、方法３０は、ハードウェア（例えば、デバイス、コンピュータ、コンピュータ・システム、装置、構成要素）、ソフトウェア（例えば、プログラム、アプリケーション、命令セット、コード）、記憶媒体（例えば、ディスク、デバイス、伝搬される信号）、又はその組み合わせによって実施できる。ただし、方法１０は、本発明の態様に適合する任意の形で実行することができることに留意されたい。
【００４３】
ステップ３１０で、少なくとも１つのノードが、１つ又は複数のＶＩＰアドレスで構成される。一実施態様で、仮想ＩＰアドレス（ＶＩＰ１）が、第１のノード（例えば、ノードＡ１１０）に割り当てられる。一般に、１つ又は複数のＶＩＰアドレスは、いかなる物理インタフェース（例えば、ＮＩＣ１、ＮＩＣ２）又はサブネット（例えば、ＳＵＢ１、ＳＵＢ２）にも結合していない。
【００４４】
さまざまな実施形態で、１つ又は複数のＶＩＰアドレスは、ノードのループ・バック・インタフェース又はループ・バック・アダプタなどの仮想インタフェースに割り当てられる。ループ・バック・インタフェースには、不変の所定のループ・バック・インタフェースＩＰアドレス（例えば、１２７．０．０．１）を割り当てることができ、更に１つ又は複数のＶＩＰアドレスが割り当てられる。１つ又は複数のＶＩＰアドレスは、サブネット・マスク（例えば、２５５．２５５．２５５．２５５）で定義できるので、ＶＩＰアドレスは、物理インタフェース又はサブネット（例えば、ＳＵＢ１、ＳＵＢ２）の範囲外にある。実際、ＶＩＰ１アドレスは、専用のサブネット内に存在するように定義される。
【００４５】
ステップ３２０で、１つ又は複数のＩＰアドレスは、１つ又は複数のネットワーク・デバイスに公表される。一実施態様で、ＶＩＰは、ＩＰルーティング・プロトコルを用いてＮＩＣ１及び／又はＮＩＣ２によって公表される。ルーティング・プロトコルは、ルーティング・メトリック又はコストを含むことができ、適したルーティング・ソフトウェアによって実行できる。
【００４６】
ＨＡノードは、同じルーティング・コスト又はメトリックのＮＩＣ１及びＮＩＣ２からのＶＩＰ１を同時に公表するように構成できる。さまざまなサブネット（例えば、ＳＵＢ１、ＳＵＢ２）上のルータなどのネットワーク・デバイスは、これらのルーティング更新を受け入れ、それらをネットワーク内の他のルータに伝搬する。幾つかのルータ及びルーティング・プロトコルは、複数の等しいコストのルート間で負荷平衡を実行できる。ＶＩＰ１を通知されたＳＵＢ１上のルータ（Ｒ１）は、ＩＰ１をポイントするＶＩＰ１のエントリを作成し、ルータ（Ｒ２）は、ＩＰ２をポイントするＶＩＰ１のエントリを作成する。
【００４７】
ルーティング・プロトコルが、等しいコストのルート（例えば、ＯＳＰＦ）間の負荷平衡をサポートする場合、ＳＵＢ１又はＳＵＢ２以外のサブネットからＶＩＰ１に宛てられたトラフィックは、使用可能な物理インタフェース（例えば、ＮＩＣ１及びＮＩＣ２）間で負荷平衡される。物理インタフェース（例えば、ＮＩＣ２）が障害になった場合、対応するルータ（例えば、Ｒ２）は、障害の物理インタフェースからのルーティング更新をもはや受信しない。ルータ（例えば、Ｒ２）は、対応する物理ＩＰアドレス（ＩＰ２）へのＶＩＰ１のエントリをそのルーティング・テーブルから削除する。等コストルーティングによる負荷平衡が適用される場合、ＳＵＢ１又はＳＵＢ２以外のサブネットからＶＩＰ１に宛てられたトラフィックは、残りの物理インタフェース（例えば、ＮＩＣ１）に着信する。これによってＶＩＰ１への着信トラフィックの障害が回避される。
【００４８】
ステップ３３０で、１つ又は複数のデフォルトのルータが、監視される。一実施態様では、第１のノード（例えば、ノードＡ１１０）が、１つ又は複数のデフォルトのルータ（ＲＤ１及び／又はＲＤ２）で構成され、オペレーティング・システムは、複数のデフォルトのルータ間の発信トラフィックの負荷平衡をサポートする。この実施態様で、ＳＵＢ１又はＳＵＢ２以外のサブネットに向かう発信トラフィックは、使用可能な物理インタフェース（例えば、ＮＩＣ１及びＮＩＣ２）間で負荷平衡される。幾つかの実施態様で、１つのデフォルトのルータだけが、使用できる。
【００４９】
さまざまな実施態様で、デフォルトのルータの性能が、詳細に監視される。幾つかのケースでは、ルート監視プログラムが、デフォルトのルータ（例えば、ＲＤ１及びＲＤ２）のヘルスを監視し、アクセス不能なルータを交換するかルーティング・テーブルから削除する。また、ルート監視プログラムは、ヘルス及び性能の監視のためのデフォルトのルータからの予測ネットワーク・トラフィック（例えば、マルチキャスト公表）を検出できる。
【００５０】
幾つかの実施形態で、デフォルトのルータ（例えば、ＲＤ１及びＲＤ２）の先にあるネットワーク・デバイス（例えば、ＲＸ，ＲＹ）の動作可能性を監視するようにルート監視プログラムを構成できる。例えば、異なるサブネット上の物理ルータの障害検出を実行するようにルート監視プログラムを構成できる。監視試験（例えば、ｐｉｎｇ試験）を使用して、そのようなネットワーク・デバイス（例えば、ＲＸ，ＲＹ）が、ノード（例えば、ノードＡ１１０）からアクセス可能であるか否かを判定することができる。
【００５１】
ステップ３４０で、１つ又は複数のＶＩＰアドレスが、フローティングされる。一実施態様では、複数のノード（例えば、ノードＡ１１０及びノードＢ１２０）が、ＨＡクラスタ内のフローティングＶＩＰアドレス（例えば、ＶＩＰ１）を潜在的に所有できるＨＡノードとして動作できる。場合によっては、ノード１１０、１２０は、より大きいＨＡクラスタの一部を形成することができる。
【００５２】
一般に、任意の所与の時点で、ＨＡクラスタ内の１つのＨＡノードだけが、ＶＩＰアドレスを所有できる。さまざまな実施形態で、ＨＡノードは、例えばハートビート・プロトコルを用いて相互に監視するので、各ＨＡノードは、どちらがフローティングＶＩＰアドレスを所有するはずであるかを認識している。
【００５３】
１つのＨＡノード（例えば、ノードＡ１１０）が障害になった場合、ＶＩＰアドレス（例えば、ＶＩＰ１）をフローティングして、冗長のバックアップＨＡノード（例えば、ノードＢ１２０）上に構成することができる。さまざまな実施態様で、ＶＩＰアドレスは、元のノード（例えば、ノードＡ１１０）と同じサブネット（例えば、ＳＵＢ１、ＳＵＢ２）に接続されていない別のＨＡノード（例えば、ノードＢ１２０）ホスト上に構成される。冗長のバックアップＨＡノードは、異なるロケーションに提供でき、異なるサブネットに接続できるので、障害は、隔離される。
【００５４】
ＶＩＰアドレスが、第２のノード（例えば、ノードＢ１２０）にフローティングされると、第２のノード１２０上のルーティング・ソフトウェアが、同じマスクを備えた同じＶＩＰを伝搬するが、今度は第２のノードに割り当てられたソースＩＰアドレス（例えば、ＩＰ３及びＩＰ４）を公表する。
【００５５】
複数のＶＩＰアドレスが、割り当てられ、公表され、かつ／又はノード間でフローティングされる実施形態では、そのような複数のＶＩＰアドレスをＩＰプレフィックスに従ってグループ分けしてルート集計を可能にできる。例えば、物理ロケーションに基いて共通のＩＰプレフィックスをＶＩＰアドレスに割り当てることができ、かつ／又は共通のＩＰプレフィックスでアドレス指定されたＶＩＰを同じ場所におくことができる。
【００５６】
上記のシステム及び方法は、ブレード・サーバを使用するネットワーク内で適用できる。ブレード・サーバは、単一の筺体に収容された幾つかのホストを含む。ブレード・サーバのホストは、１つの物理筺体にグループ化され、そのネットワーク・ポートは、１つ又は複数のスイッチを用いて集約される。
【００５７】
ブレード・サーバは、スケーラブルで冗長な形で既存のＬＡＮに組み込む時に問題がある。ブレード・サーバは、標準のサーバと比較して物理接続数が少ないので、アップリンクが少なく、冗長構成及び負荷平衡がより重要になる。
【００５８】
図４は、第１のブレード・サーバ４１０と第２のブレード・サーバ４２０とを含むフォールト・トレラント・ネットワーク４０の一実施形態を示す。ブレード・サーバ４１０、４２０は、それぞれ、ホスト・コントローラ４１５ａ〜ｆ、４２５ａ〜ｆに応答して動作する。図に示すように、ブレード・サーバ４１０、４２０の各々は、６つのホストを含む。各ホストは、サブネット（ＳＵＢ１〜ＳＵＢ４）に接続するための第１のＮＩＣ（ＮＩＣ１）と第２のＮＩＣ（ＮＩＣ２）とを含む。第１のＮＩＣは、第１のスイッチ４１６を用いて第１のブレード・サーバ・ノード４１０上に集約され、第２のＮＩＣは、第２のスイッチ４１７を用いて第１のブレート・サーバ・ノード４１０上に集約される。第１のＮＩＣは、第１のスイッチ４２６を用いて第２のブレード・サーバ・ノード４２０上に集約され、第２のＮＩＣは、第２のスイッチ４２７を用いて第２のブレード・サーバ・ノード４２０上に集約される。
【００５９】
一実施形態では、第１のノード４１０は、第１のＶＩＰ（ＶＩＰ１）を割り当てられた第１のホスト（ＨＯＳＴ１）を含む。図に示すように、ＨＯＳＴ１は、ＩＰ１を割り当てられた第１のＮＩＣ（ＮＩＣ１）とＩＰ２を割り当てられた第２のＮＩＣ（ＮＩＣ２）とを含む。第１のノード４１０は、第２のＶＩＰ（ＶＩＰ２）を割り当てられた第２のホスト（ＨＯＳＴ２）を含む。図に示すように、ＨＯＳＴ２は、ＩＰ３を割り当てられた第１のＮＩＣ（ＮＩＣ１）とＩＰ４を割り当てられた第２のＮＩＣ（ＮＩＣ２）とを含む。第１のノード４１０は、第３のＶＩＰ（ＶＩＰ３）を割り当てられた第３のホスト（ＨＯＳＴ３）を含む。図に示すように、ＨＯＳＴ３は、ＩＰ５を割り当てられた第１のＮＩＣ（ＮＩＣ１）とＩＰ５を割り当てられた第２のＮＩＣ（ＮＩＣ２）とを含む。第１のノード４１０は、第４のＶＩＰ（ＶＩＰ４）を割り当てられた第４のホスト（ＨＯＳＴ４）を含む。図に示すように、ＨＯＳＴ４は、ＩＰ７を割り当てられた第１のＮＩＣ（ＮＩＣ１）とＩＰ８を割り当てられた第２のＮＩＣ（ＮＩＣ２）とを含む。第１のノード４１０は、第５のＶＩＰ（ＶＩＰ５）を割り当てられた第５のホスト（ＨＯＳＴ５）を含む。図に示すように、ＨＯＳＴ５は、ＩＰ９を割り当てられた第１のＮＩＣ（ＮＩＣ１）とＩＰ１０を割り当てられた第２のＮＩＣ（ＮＩＣ２）とを含む。第１のノード４１０は、第６のＶＩＰ（ＶＩＰ６）を割り当てられた第６のホスト（ＨＯＳＴ６）を含む。図に示すように、ＨＯＳＴ６は、ＩＰ１１を割り当てられた第１のＮＩＣ（ＮＩＣ１）とＩＰ１２を割り当てられた第２のＮＩＣ（ＮＩＣ２）とを含む。
【００６０】
上記の方法３０は、ブレード・サーバ・ノード４１０、４２０に関して実行できる。そのような実施態様では、１つ又は複数のＶＩＰアドレスは、ブレード・サーバ・ノードの１つ（例えば、ノード４１０）の内の単一のホストのループ・バック・インタフェースに割り当てられる。この１つ又は複数のＶＩＰアドレス及びサブネット・マスクは、ブレード筺体内及び／又は異なるロケーション及び／又は異なるＬＡＮ上にあるブレード・サーバ・ノード間にフローティングできる。
【００６１】
本方法、システム及びコンピュータ可読媒体の利点は、当業者には直ちに明らかとなろう。本明細書で使用する「コンピュータ可読媒体」という用語は、例えば、フロッピーディスク、読み出し専用及び上書き可能の両方のタイプのコンパクト・ディスク、光ディスク・ドライブ、及びハード・ディスク・ドライブなどの磁気及び光記憶デバイスを含むことができる。
【００６２】
コンピュータ可読媒体はまた、物理、仮想、一時、半永久及び／又は半一時メモリ記憶装置を含むことができる。更に、コンピュータ可読媒体は、１つ又は複数の搬送波に載せて送信される１つ又は複数のデータ信号を含むことができる。本発明のさまざまな実施形態のさまざまな部分と構成要素は、例えば、オブジェクト指向技法などを用いて、Ｖｉｓｕａｌ  Ｂａｓｉｃ、Ｃ、又はＣ＋＋コンピュータ言語を使用するコンピュータ・ソフトウェア・コードで実施することができる。
【００６３】
以上、本発明の幾つかの実施形態について説明してきたが、本発明の利点の一部又は全部を達成することで、当業者は、これらの実施形態をさまざまに修正、変更、及び改造することができる。従って、本発明は、添付の請求の範囲が規定する本発明の範囲と精神とを逸脱することなく、そのような修正、変更、及び改造を含む。
【図面の簡単な説明】
【００６４】
【図１】本発明の一実施形態によるフォールト・トレラント・ネットワークを示す図である。
【図２】本発明の一実施形態によるフォールト・トレラント・ネットワーク・ノードを示す図である。
【図３】本発明の一実施形態によるフォールト・トレラント・ネットワーク方法を示す図である。
【図４】本発明の一実施形態によるフォールト・トレラント・ネットワークを示す図である。
【符号の説明】
【００６５】
１１０  第１のノード
１１１  第１のＮＩＣ
１１２  第２のＮＩＣ
１１５  第１のホスト・コントローラ
１２０  第２のノード
１２１  第１のＮＩＣ
１２２  第２のＮＩＣ
１２５  第２のホスト・コントローラ
１３１  第１のサブネット
１３２  第２のサブネット
１３３  第３のサブネット
１３４  第４のサブネット
１４１  第１のルータ
１４５  第２のルータ
１４３  第３のルータ
１４４  第４のルータ
１５０  クライアント・システム
【図１】
2006129446.tif 000004
【図２】
2006129446.tif 000005
【図３】
2006129446.tif 000006
【図４】
2006129446.tif 000007