(57)【要約】      （修正有）【課題】仮想アプライアンス不良の検知及びハンドリングのための方法及び装置を提供する。【解決手段】ハイパーバイザ（仮想マシンマネージャ）及び複数の仮想マシン（ＶＭ）が稼働するホストプラットフォーム上で、複数の仮想マシンは、仮想ネットワークを介して通信的に結合された複数のＳｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋｉｎｇ（ＳＤＮ）及び／又はＮｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ（ＮＦＶ）アプライアンスを集合的にホストする。ホストプラットフォーム上で稼働するソフトウェアベースのエンティティは、複数の仮想ネットワークアプライアンスの不良を検知するために複数の仮想ネットワークアプライアンスを監視し、不良を検知したことに応じて、不良である仮想ネットワークアプライアンスを迂回するようにパケットフローを再構成するために、構成情報を含むメッセージを実行する。【選択図】図１
2015062282.tif 000002
【特許請求の範囲】
【請求項１】
仮想ネットワークを介して通信的に結合された複数の仮想ネットワークアプライアンスを集合的にホストする複数の仮想マシン（ＶＭ）が稼働するホストプラットフォーム上で実行される方法であって、
前記複数の仮想ネットワークアプライアンスの不良を検知するために、前記複数の仮想ネットワークアプライアンスを監視すべく、前記ホストプラットフォーム上で稼働するソフトウェアベースのエンティティを用いることと、
仮想ネットワークアプライアンス不良を検知したことに応じて、不良である前記仮想ネットワークアプライアンスを迂回するようにパケットフローを再構成することと
を備える方法。
【請求項２】
不良を検知するために、前記複数の仮想ネットワークアプライアンスを監視することは、
前記ソフトウェアベースのエンティティから仮想ネットワークアプライアンスにチャレンジを送信することと、
前記仮想ネットワークアプライアンスから応答を受信することと、
前記仮想ネットワークアプライアンスに送信されたチャレンジに応じて、仮想ネットワークアプライアンスから応答を受信しなかった場合に、前記仮想ネットワークアプライアンスが不良であると検知することと
を備える、請求項１に記載の方法。
【請求項３】
前記ソフトウェアベースのエンティティは、前記複数の仮想マシンの動作を促進するために用いられるハイパーバイザの一部として実装される、請求項１又は２に記載の方法。
【請求項４】
前記仮想ネットワークは、前記ホストプラットフォーム上で稼働するソフトウェアを介して実行される仮想スイッチを含み、
前記ホストプラットフォームは、物理スイッチと通信的に結合されており、
動作を実行することによって、不良である前記仮想ネットワークアプライアンスを迂回するようにパケットフローは再構成され、
実行される動作は、
前記ホストプラットフォームの外部のネットワークコントローラに、不良である前記仮想ネットワークアプライアンスの特定、不良条件、及びネットワーク再構成パラメータの少なくとも１つを特定するデータを含むアプリケーション不良通知メッセージを送信することと、
少なくとも１つのスイッチフロー構成メッセージを生成し、前記仮想スイッチ及び前記物理スイッチの少なくとも１つに前記少なくとも１つのスイッチフロー構成メッセージを送信することと
を備える、請求項１から３の何れか１項に記載の方法。
【請求項５】
スイッチフロー構成メッセージは、仮想スイッチ又は物理スイッチによって用いられる転送及び／又はルーティングテーブルを更新する少なくとも１つのエントリを含む、請求項４に記載の方法。
【請求項６】
アプライアンス不良通知及びネットワーク再構成パラメータが格納されるモジュールを維持することと、
仮想ネットワークアプライアンス不良を検知すること又は仮想ネットワークアプライアンス不良の通知を受信することの何れかに応じて、前記アプリケーション不良通知メッセージ内の送られた前記データを判定するために前記モジュール内のルックアップを実行することと
をさらに備える、請求項４に記載の方法。
【請求項７】
仮想ネットワークアプライアンス不良を検知したことに応じて、
前記不良が、ｆａｉｌ−ｔｏ−ｗｉｒｅ不良であることを決定することと、
パケットが、不良である前記仮想ネットワークアプライアンスには送られずに、次のホップに直接向けられることを確かにするために、パケットフローを再構成することと
をさらに備える、請求項１から６の何れか１項に記載の方法。
【請求項８】
仮想ネットワークアプライアンス不良を検知したことに応じて、
前記不良が、ｆａｉｌ−ｔｏ−ｂｌｏｃｋ不良であることを決定することと、
パケットが、不良である前記仮想ネットワークアプライアンスには送られずに、制御下の前記仮想ネットワークにおける最先のポイントでブロックされることを確かにするために、パケットフローを再構成することと
をさらに備える、請求項１から７の何れか１項に記載の方法。
【請求項９】
前記複数の仮想ネットワークアプライアンスは、前記仮想ネットワークアプライアンスの代替実装を備える仮想ネットワークアプライアンスの複数のインスタンスを含み、
前記方法はさらに、
代替実装を有する不良仮想ネットワークアプライアンスを検知したことに応じて、
前記不良が、ｆａｉｌ−ｔｏ−aｌｔｅｒｎａｔｉｖｅ不良であることを決定することと、
パケットが、不良である前記仮想ネットワークアプライアンスには送られずに、前記不良仮想ネットワークアプライアンスの代替実装にリダイレクトされることを確かにするために、パケットフローを再構成することと
を備える、請求項１から８の何れか１項に記載の方法。
【請求項１０】
動作を実行するためにホストプラットフォームのプロセッサ上で実行される複数の命令を有するプログラムであって、
実行される動作は、
複数の仮想ネットワークアプライアンスの不良を検知するために、前記ホストプラットフォーム上で稼働する複数の仮想マシン（ＶＭ）を介して実行される前記複数の仮想ネットワークアプライアンスを監視することと、
仮想ネットワークアプライアンス不良を検知したことに応じて、不良である前記仮想ネットワークアプライアンスの特定、不良条件、及びネットワーク再構成パラメータの少なくとも１つを特定するデータを含むアプリケーション不良通知メッセージを生成し、前記アプリケーション不良通知メッセージを、前記ホストプラットフォームの外部のネットワークコントローラに送信することと
を備え、
前記アプリケーション不良通知メッセージ内の前記データは、前記ネットワークコントローラに、不良である前記仮想ネットワークアプライアンスを迂回するようにパケットフローの再構成を実行させる
プログラム。
【請求項１１】
前記複数の命令の一部は、実行されると、動作を実行することによって、不良を検知するために前記複数の仮想ネットワークアプライアンスを監視するアプライアンス不良検知モジュールを備え、
実行される動作は、
仮想ネットワークアプライアンスにチャレンジを送信することと、
前記仮想ネットワークアプライアンスから応答を受信することと、
前記仮想ネットワークアプライアンスに送信されたチャレンジに応じて、仮想ネットワークアプライアンスから応答を受信しなかった場合に、前記仮想ネットワークアプライアンスが不良であると決定することと
を備える、請求項１０に記載のプログラム。
【請求項１２】
前記複数の命令の少なくとも一部は、ハイパーバイザを備え、
前記ハイパーバイザは、前記アプライアンス不良検知モジュールを含む、請求項１１に記載のプログラム。
【請求項１３】
前記ホストプラットフォームの動作中に、前記複数の仮想マシンは、仮想スイッチに結合され、前記ホストプラットフォームは、物理スイッチに通信的に結合され、
前記複数の命令はさらに、前記複数の命令の実行によってネットワークコントローラ上で実行されるアプリケーション不良コントローラハンドリングモジュールを備え、
前記アプリケーション不良コントローラハンドリングモジュールは動作を実行し、
実行される動作は、
前記ホストプラットフォームの外部のネットワークコントローラに対しての、不良である前記仮想ネットワークアプライアンスの特定、不良条件、及びネットワーク再構成パラメータの少なくとも１つを特定するデータを含むアプリケーション不良通知メッセージを受信することと、
少なくとも１つのスイッチフロー構成メッセージを生成し、前記少なくとも１つのスイッチフロー構成メッセージを前記仮想スイッチ及び前記物理スイッチの少なくとも１つに送信することと
を備える、請求項１０から１２の何れか１項に記載のプログラム。
【請求項１４】
スイッチフロー構成メッセージは、仮想スイッチ又は物理スイッチによって用いられる転送及び／又はルーティングテーブルを更新する少なくとも１つのエントリを含む、請求項１３に記載のプログラム。
【請求項１５】
前記ホストプラットフォーム及びネットワークコントローラ上で前記複数の命令を実行することにより、さらなる動作を実行し、
実行されるさらなる動作は、
仮想ネットワークアプライアンス不良を検知したことに応じて、
前記不良が、ｆａｉｌ−ｔｏ−ｗｉｒｅ不良であることを決定することと、
パケットが、不良である前記仮想ネットワークアプライアンスには送られずに、次のホップに直接向けられることを確かにするために、パケットフローを再構成するべく、前記仮想スイッチ又は物理スイッチによって用いられる前記転送及び／又はルーティングテーブルの少なくとも１つにおいてエントリを更新することと
を備える、請求項１４に記載のプログラム。
【請求項１６】
前記ホストプラットフォーム及びネットワークコントローラ上で前記複数の命令を実行することにより、さらなる動作を実行し、
実行されるさらなる動作は、
仮想ネットワークアプライアンス不良を検知したことに応じて、
前記不良が、ｆａｉｌ−ｔｏ−ｂｌｏｃｋ不良であることを決定することと、
パケットが、不良である前記仮想ネットワークアプライアンスには送られずに、制御下の前記仮想ネットワークにおける最先のポイントでブロックされることを確かにするために、パケットフローを再構成するべく、前記仮想スイッチ又は物理スイッチによって用いられる前記転送及び／又はルーティングテーブルの少なくとも１つにおいてエントリを更新することと
を備える、請求項１４又は１５に記載のプログラム。
【請求項１７】
前記複数の仮想ネットワークアプライアンスは、前記仮想ネットワークアプライアンスの代替実装を備える仮想ネットワークアプライアンスの複数のインスタンスを含み、
前記ホストプラットフォーム及びネットワークコントローラ上で前記複数の命令を実行することにより、さらなる動作を実行し、
実行されるさらなる動作は、
代替実装を有する不良仮想ネットワークアプライアンスを検知したことに応じて、
前記不良が、ｆａｉｌ−ｔｏ−aｌｔｅｒｎａｔｉｖｅ不良であることを決定することと、
パケットが、前記不良仮想ネットワークアプライアンスには送られずに、前記不良仮想ネットワークアプライアンスの代替実装にリダイレクトされることを確かにするために、パケットフローを再構成するべく、前記仮想スイッチ又は物理スイッチによって用いられる前記転送及び／又はルーティングテーブルの少なくとも１つにおいてエントリを更新することと
を備える、請求項１４から１６の何れか１項に記載のプログラム。
【請求項１８】
アプライアンス不良通知及びネットワーク再構成パラメータが格納されたモジュールを実装するための複数の命令をさらに備え、
仮想ネットワークアプライアンス不良を検知すること又は仮想ネットワークアプライアン不良の通知を受信することの何れかに応じて、前記複数の命令の実行により、前記アプリケーション不良通知メッセージ内の送られた前記データを判定するために前記モジュール内のルックアップを実行する、請求項１０から１７の何れか１項に記載のプログラム。
【請求項１９】
仮想ネットワークアプライアンスを実行する複数の命令をさらに備える、請求項１０から１８の何れか１項に記載のプログラム。
【請求項２０】
装置であって、
複数のプロセッサコアを含むプロセッサと、
前記プロセッサに動作可能に結合されたシステムメモリと、
前記プロセッサに動作可能に結合されたネットワークインターフェイスコントローラ（ＮＩＣ）又はネットワークアダプタと、
動作を実行するために、前記複数のプロセッサコアの１または複数を介して実行されるハイパーバイザを備える命令を含む格納された複数の命令を有するストレージデバイスと
を備え、
実行される動作は、
前記複数のプロセッサコアを介して、仮想ネットワークを介して通信的に結合された複数の仮想ネットワークアプライアンスを集合的にホストする複数の仮想マシン（ＶＭ）の実行を管理するために、前記ハイパーバイザを起動し、前記ハイパーバイザを用いることと、
前記複数の仮想ネットワークアプライアンスの不良を検知するために、前記複数の仮想ネットワークアプライアンスを監視することと、
仮想ネットワークアプライアンス不良を検知したことに応じて、不良である前記仮想ネットワークアプライアンスの特定、不良条件、及びネットワーク再構成パラメータの少なくとも１つを特定するデータを含むアプリケーション不良通知メッセージを生成し、前記アプリケーション不良通知メッセージを、前記装置の外部のネットワークコントローラに送信することと
を備え、
前記アプリケーション不良通知メッセージ内の前記データは、前記ネットワークコントローラに、不良である前記仮想ネットワークアプライアンスを迂回するようにパケットフローの再構成を実行させる装置。
【請求項２１】
前記複数の命令の一部は、実行されたときに動作を実行することによって、不良を検知するために前記複数の仮想ネットワークアプライアンスを監視するアプライアンス不良検知モジュールを備え、
実行される動作は、
仮想ネットワークアプライアンスにチャレンジを送信することと、
前記仮想ネットワークアプライアンスから応答を受信することと、
前記仮想ネットワークアプライアンスに送信されたチャレンジに応じて、仮想ネットワークアプライアンスから応答を受信しなかった場合に、前記仮想ネットワークアプライアンスが不良であると決定することと
を備える、請求項２０に記載の装置。
【請求項２２】
前記装置の動作中に、前記複数の仮想マシンは、前記ストレージデバイスに格納された前記複数の命令の一部の実行を介して実行される仮想スイッチに結合され、
前記仮想スイッチは、ネットワークコントローラからスイッチフロー構成メッセージを受信し、前記スイッチフロー構成メッセージ内の構成情報に基づいて、不良である前記仮想ネットワークアプライアンスを迂回するようにパケットフローを再構成する、請求項２０又は２１に記載の装置。
【請求項２３】
前記装置上で前記複数の命令を実行することにより、さらなる動作を実行し、
実行されるさらなる動作は、
仮想ネットワークアプライアンス不良を検知したことに応じて、
前記不良が、ｆａｉｌ−ｔｏ−ｗｉｒｅ不良であることを決定することと、
前記不良が、ｆａｉｌ−ｔｏ−ｗｉｒｅ不良であることを特定するデータを含むアプリケーション不良通知メッセージを生成し、前記アプリケーション不良通知メッセージを前記ネットワークコントローラに送信することと、
前記ネットワークコントローラからスイッチフロー構成メッセージを受信することと、
パケットが、不良である前記仮想ネットワークアプライアンスには送られずに、次のホップに直接向けられることを確かにするために、パケットフローを再構成するべく、前記スイッチフロー構成メッセージを考慮して、仮想スイッチによって用いられる転送及び／又はルーティングテーブルのエントリを更新することと
を備える、請求項２０から２２の何れか１項に記載の装置。
【請求項２４】
前記装置上で前記複数の命令を実行することにより、さらなる動作を実行し、
実行されるさらなる動作は、
仮想ネットワークアプライアンス不良を検知したことに応じて、
前記不良が、ｆａｉｌ−ｔｏ−ｂｌｏｃｋ不良であることを決定することと、
前記不良が、ｆａｉｌ−ｔｏ−ｂｌｏｃｋ不良であることを特定するデータを含むアプリケーション不良通知メッセージを生成し、前記アプリケーション不良通知メッセージを前記ネットワークコントローラに送信することと、
前記ネットワークコントローラからスイッチフロー構成メッセージを受信することと、
パケットが、不良である前記仮想ネットワークアプライアンスには送られずに、制御下の前記仮想ネットワークにおける最先のポイントでブロックされることを確かにするために、パケットフローを再構成するべく、前記スイッチフロー構成メッセージを考慮して、仮想スイッチによって用いられる転送及び／又はルーティングテーブルのエントリを更新することと
を備える、請求項２０から２３の何れか１項に記載の装置。
【請求項２５】
前記複数の仮想ネットワークアプライアンスは、前記仮想ネットワークアプライアンスの代替実装を備える仮想ネットワークアプライアンスの複数のインスタンスを含み、
前記装置上で前記複数の命令を実行することにより、さらなる動作を実行し、
実行されるさらなる動作は、
代替実装を有する不良仮想ネットワークアプライアンスを検知したことに応じて、
前記不良が、ｆａｉｌ−ｔｏ−aｌｔｅｒｎａｔｉｖｅ不良であることを決定することと、
前記不良が、ｆａｉｌ−ｔｏ−aｌｔｅｒｎａｔｉｖｅ不良であることを特定するデータを含むアプリケーション不良通知メッセージを生成し、前記アプリケーション不良通知メッセージを前記ネットワークコントローラに送信することと、
前記ネットワークコントローラからスイッチフロー構成メッセージを受信することと、
パケットが、前記不良仮想ネットワークアプライアンスには送られずに、前記不良仮想ネットワークアプライアンスの代替実装にリダイレクトされることを確かにするために、パケットフローを再構成するべく、前記スイッチフロー構成メッセージを考慮して、仮想スイッチによって用いられる転送及び／又はルーティングテーブルのエントリを更新することと
を備える、請求項２０から２４の何れか１項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の分野は概してコンピュータネットワーキングに関し、排他的に関係するものでは無いがより具体的には、Ｓｏｆｔｗａｒｅ Ｄｅｆｉｎｅｄ Ｎｅｔｗｏｒｋｉｎｇ（ＳＤＮ）及びＮｅｔｗｏｒｋ Ｆｕｎｃｔｉｏｎ Ｖｉｒｔｕａｌｉｚａｔｉｏｎ（ＮＦＶ）に関連した仮想ネットワークアプライアンス不良の検知及びハンドリングの技術に関係する。
【背景技術】
【０００２】
コンピュータネットワークに対するアクセスは、今日のコンピュータ使用において至るところに存在するようになっている。共有ネットワークリソースにアクセスするために企業環境内のローカルエリアネットワーク（ＬＡＮ）にアクセスするのであれ、ＬＡＮ又はその他のアクセスポイントを介してインターネットにアクセスするのであれ、ユーザは常に、コンピュータネットワークを介してアクセスされる少なくとも１つのサービスにログオンするように思える。また、クラウドベースサービスの急速な発展が、コンピュータネットワークのさらなる使用につながっており、これらのサービスは、これまで以上に普及されることが予想される。
【０００３】
ネットワーキングは、ルータ、スイッチ、ブリッジ、ゲートウェイ及びアクセスポイント等のさまざまな種類の装置によって促進される。大規模ネットワークインフラは、典型的に、Ｃｉｓｃｏ Ｓｙｓｔｅｍｓ、Ｊｕｎｉｐｅｒ Ｎｅｔｗｏｒｋｓ、 Ａｌｃａｔｅｌ Ｌｕｃｅｎｔ、ＩＢＭ及びＨｅｗｌｅｔｔ−Ｐａｃｋａｒｄ等の企業によって製造されたスイッチ及びルータを含む通信クラスネットワーク要素の使用を含む。そのような通信スイッチはとても洗練されており、非常に高い帯域幅で動作し、向上したルーティング機能を提供するとともに、さまざまなサービス品質（ＱｏＳ）レベルをサポートする。ローカルエリアネットワーク（ＬＡＮ）等のプライベートネットワークは、ビジネス及びホームユーザによってもっとも一般的に使用されている。また、多くのビジネスネットワークにとって、ハードウェア及び／又はソフトウェアベースのファイアウォール等を利用することはよくあることである。
【０００４】
近年では、コンピュータシステムの仮想化が、特にサーバ展開及びデータセンタにおいて急速に成長しているのが見てとれる。従来のアプローチでは、サーバは、ＣＰＵ、ＲＡＭ、ストレージデバイス（ハードディスク等）、ネットワークコントローラ及びＩ／Ｏポート等の物理ハードウェアリソース上で直接オペレーティングシステムの単一のインスタンスを実行する。仮想的アプローチでは、複数の仮想マシン（ＶＭ）が、サーバの物理的ハードウェアリソース上で稼働しうるように、物理ハードウェアリソースは、仮想リソースの対応するインスタンスをサポートすることに利用される。そこでは、各仮想マシンは、自身のＣＰＵアロケーション、メモリアロケーション、ストレージデバイス、ネットワークコントローラ、及びＩ／Ｏポート等を含む。同一の又は異なるオペレーティングシステムの複数のインスタンスは、複数のＶＭ上で実行される。また、仮想マシンマネージャ（ＶＭＭ）又は「ハイパーバイザ」を用いることで、サーバが稼働中に、仮想リソースを動的に割り当てることができ、サーバをシャットダウンすることなしに、ＶＭインスタンスが追加される、シャットダウン又はリパーパスされることを可能にする。これによって、特にマルチコアプロセッサ及び／又はマルチプロセッササーバに対して、サーバ利用に対する多大な柔軟性、及びサーバプロセッシングリソースの有効活用が提供される。
【０００５】
ここ数年の間、Ｓｏｆｔｗａｒｅ Ｄｅｆｉｎｅｄ Ｎｅｔｗｏｒｋｉｎｇ（ＳＤＮ）及びＮｅｔｗｏｒｋ Ｆｕｎｃｔｉｏｎ Ｖｉｒｔｕａｌｉｚａｔｉｏｎ（ＮＦＶ）の展開にまた、急速の成長が見てとれる。ＳＤＮにおいては、トラフィックが送られるかどうかについての決定をするシステム（コントロールプレーン）は、選択された目的地にトラフィックを転送する基底システム（データプレーン）とは分離している。ＳＤＮ概念は、ネットワーク仮想化を促進するために利用されてもよく、サービスプロバイダが、ソフトウェアアプリケーション及びＡＰＩ（アプリケーションプログラムインターフェイス）を用いて、それらのネットワークサービスのさまざまな側面を管理することを可能にする。ＮＦＶにおいては、ソフトウェアアプリケーションとしてネットワーク機能を仮想化することによって、ネットワークサービスプロバイダは、ネットワーク構成において柔軟性を得ることができ、有効帯域幅の最適化、費用削減、及び新たなサービスに対しての開発期間の短縮等の著しい恩恵をもたらす。
【０００６】
サーバ仮想化及びネットワーク仮想化の組み合わせは、従来のネットワーキングアプローチに対して著しい利点を有する素質があるが、柔軟性の強化が犠牲となる。特に、仮想化によって、（とりわけ）管理設備は、実在するハードウェアエンティティに加え、仮想エンティティにも対処する必要があるので、ネットワーク管理の複雑性が増大する
【図面の簡単な説明】
【０００７】
上述の側面及び本発明の付随効果の多くは、添付の図面を併用するとともに、以下の詳細の記載を参照することによってより良く理解できるため、より容易に理解できるであろう。同一の参照番号は、他に特に指定しない限り、さまざまな観点を通して同一の部分を参照する。
【図１】１つの実施例に準じた、仮想ネットワークアプライアンス不良の検知及びハンドリングを実行するためのソフトウェアコンポーネントを含むシステムアーキテクチャの概略図である。
【図２ａ】図１のハイパーバイザ、仮想マシン、及び仮想ネットワークアプライアンスのより詳細を示す概略図である。
【図２ｂ】パケットが通常転送されるアプライアンスが不良であることを検知したことに応じて、パケットが次のホップに転送されることを示す概略図である。
【図２ｃ】パケットが通常転送されるアプライアンスが不良であることを検知したことに応じて、パケットが次のホップに転送されることを示す概略図である。
【図２ｄ】パケットが通常転送されるアプライアンスが不良であることを検知したことに応じて、パケットがアプライアンスの代替実装に転送されることを示す概略図である。
【図３】１つの実施例に準じた、仮想ネットワークアプライアンス不良をハンドリングするための動作及びロジックを示すフローチャートである。
【図４】ここに開示した複数の実施例の側面を実施するための例示的ホストプラットフォームハードウェア及びソフトウェアアーキテクチャを示す概略図である。
【発明を実施するための形態】
【０００８】
Ｓｏｆｔｗａｒｅ Ｄｅｆｉｎｅｄ Ｎｅｔｗｏｒｋｉｎｇ（ＳＤＮ）及び／又はＮｅｔｗｏｒｋ Ｆｕｎｃｔｉｏｎ Ｖｉｒｔｕａｌｉｚａｔｉｏｎ（ＮＦＶ）に関連した仮想ネットワークアプライアンス不良の検知及びハンドリングのための方法及び装置の形態をここに開示する。以下の記載において、本発明の複数の形態の完全な理解を提供するために多数の特定の詳細を示す。しかしながら、当業者であれば、当特定の詳細の１または複数が無くとも、或いはその他の方法、コンポーネント、材料等を用いて、本発明が実施できることは認識できるであろう。その他の例では、本発明の側面が分かりにくくなることを防ぐ目的で、周知の構造、材料または動作は、詳細に説明又は記載していない。
【０００９】
本明細書を通しての「１つの形態」又は「ある形態」との参照は、実施形態に関連して記載された特定の特徴、構造、又は特性が、本発明の少なくとも１つの形態に含まれることを意味する。よって、本明細書を通してさまざまな場所で使われる「１つの形態における」または「ある形態における」との語句の使用は、必ずしも全てが同一の形態を参照しているわけではない。さらに、特定の特徴、構造、又は特性は、１または複数の形態において適した方法において組み合わされてもよい。
【００１０】
サービスプロバイダは、（ファイアウォール等の）ネットワークアプライアンス装置を提供するベンダーが、アプライアンスの壊滅的な不良に対処するために不良ハンドリング特性を実施することをしばしば望み、多くの場合にはそれを義務付けている。ファイアウォールアプライアンスの場合には、２つの不良ハンドリングモードがある。１つは、「ｆａｉｌ−ｔｏ−ｗｉｒｅ」モードと通常称され、全てのパケットが単にワイア上にて転送されるパススルーモードを意味し、もう１つは、「ｆａｉｌ−ｔｏ−ｂｌｏｃｋ」モードと称され、全てのパケットがドロップされることを意味する。
【００１１】
従来のアプローチにおいては、データセンタ及びエンタプライズのためのファイアウォール機能は、ソフトウェア及びハードウェア（典型的）の組み合わせにおいて実行されるファイアウォールロジックを用いて、ハードウェアアプライアンスを介して実装される。これらのハードウェアアプライアンス（及び／又はベンダーによって提供されるその他のネットワーク装置）は、不良モードを検知すること、そのような不良の検知に応じて適用可能なネットワーク装置を再構成すること両方を行うように設計される。
【００１２】
仮想マシン上のアプリケーションとしてネットワーキングアプライアンスを展開するためにネットワーキング空間における変換が存在する。これらの仮想マシンは、従来のネットワークにおいて、又はＳｏｆｔｗａｒｅ Ｄｅｆｉｎｅｄ Ｎｅｔｗｏｒｋｉｎｇ（ＳＤＮ）及び／又はＮｅｔｗｏｒｋ Ｆｕｎｃｔｉｏｎ Ｖｉｒｔｕａｌｉｚａｔｉｏｎ（ＮＦＶ）を実施する環境において存在しうる。ここで使用しているとおり、「仮想アプライアンス」、「仮想化アプライアンス」、「仮想ネットワークアプライアンス」、「ネットワークアプライアンス」、又は単に「アプライアンス」との用語は置き換え可能に使用されうる。また、ここでの目的として、特許請求の範囲を含み、Ｓｏｆｔｗａｒｅ Ｄｅｆｉｎｅｄ Ｎｅｔｗｏｒｋに関連した、又は、Ｎｅｔｗｏｒｋ Ｆｕｎｃｔｉｏｎ Ｖｉｒｔｕａｌｉｚａｔｉｏｎを実施するために構成されたソフトウェアベースのアプライアンスは、仮想ネットワークアプライアンスが、Ｎｅｔｗｏｒｋ Ｆｕｎｃｔｉｏｎ Ｖｉｒｔｕａｌｉｚａｔｉｏｎ及び／又はＳｏｆｔｗａｒｅ Ｄｅｆｉｎｅｄ Ｎｅｔｗｏｒｋｉｎｇに関連した動作を実施するために構成されたネットワークアプライアンス又は仮想化エンティティを含むとの理解とともに、より一般的に「仮想ネットワークアプライアンス」と称されうる。従って、仮想ネットワークアプライアンス又はＳＤＮアプライアンスとの用語は、以下の記載において、全てのＮＦＶアプライアンスも含む。
【００１３】
本実施例の側面を促進するために構成された例示システムアーキテクチャ１００を図１に示す。システムアーキテクチャ１００は、１または複数の仮想マシン及び仮想アプライアンスによって実施される仮想エンティティ間で共有される物理リソースを有するホストプラットフォーム１０２を含む。仮想アプライアンスを稼働することに加えて、ＶＭは、エンドユーザアプリケーション（ウェブサーバ等）を稼働するために用いられてもよい。仮想エンティティは、複数の仮想マシン１０４（典型的）を含み、それぞれがそれぞれのアプライアンス１０６のホストとなる。仮想マシンは、ＶＭＡ、ＶＭＦ、ＶＭＮ、アプライアンスＡ、アプライアンスＦ及びアプライアンスＮ等の表示によりここでは参照され説明される。アプライアンス１０６は、ハイパーバイザ１１０（別称は仮想マシンモニタ）に関連した仮想スイッチ１０８との通信において結合される。ハイパーバイザ１１０に関連して示したものにはまた、仮想物理間ネットワークインターフェイス１１２、アプリケーション不良検知モジュール１１４、及びアプリケーション不良コントローラ通知モジュール１１６がある。ホストプラットフォーム１０２は、仮想物理間ネットワークインターフェイス１１２と物理イーサネット（登録商標）スイッチ１１８との間の通信を促進するネットワークアダプタ又はネットワークインターフェイスコントローラ（ＮＩＣ）１１７を含む。物理イーサネットスイッチ１１８は、ネットワーク１２０に結合される。システムアーキテクチャ１００はまた、アプリケーション不良コントローラハンドリングモジュール１２４を含むネットワークコントローラ１２２を含む。
【００１４】
通常、ネットワークコントローラ１２２（ＳＤＮコントローラとも称する）は、フローの全てのパスの責任を持つ。ある場合には、ＳＤＮコントローラは、物理パスを構成するためのその他のメカニズムに頼り、仮想スイッチの構成だけをする。ＳＤＮコントローラは、ＶＭが生成されたとき、又は恐らくはリアクティブされたときにフローパスが確立される事前設定（ｐｒｅ−ｃｏｎｆｉｇｕｒｅｄ）環境において、フローにおいて最初のパケットが検知されたときにフローテーブルエントリをセットアップすることだけを行ってもよい。
【００１５】
図１に示された形態では、動作継続中に、ネットワークコントローラ１２２は、スイッチフロー制御メッセージ１２６及び１２８を仮想スイッチ１０８及び物理イーサネットスイッチ１１８に配給する。スイッチフロー制御メッセージは、さまざまなパケットフローを管理／ハンドリングすること、及び（仮想スイッチ１０８のための）転送／ルーティングテーブル１０９及び（物理イーサネットスイッチ１１８のための）転送／ルーティングテーブル１１９内のテーブルエントリを更新することによって対応するパケットをルーティング／転送することに、仮想スイッチ１０８及び物理イーサネットスイッチ１１８のそれぞれによって使用されるフロー構成情報を含む。また、動作継続中に、仮想アプライアンス不良検知動作は、アプリケーション不良検知モジュール１１４を用いて実行される。アプリケーション不良を検知したことに応じて、不良通知１３２が、アプリケーション不良検知モジュール１１４からアプライアンス不良コントローラ通知モジュール１１６に送られる。次に、アプライアンス不良コントローラ通知モジュール１１６は、アプライアンス不良コントローラ通知メッセージ１３４をネットワークコントローラ１２２に送る。ネットワークコントローラ１２２において、アプライアンス不良コントローラ通知メッセージ１３４は、アプライアンス不良コントローラハンドリングモジュール１２４によって受け取られ処理される。アプライアンス不良コントローラ通知メッセージを受信したことに応じて、アプライアンス不良コントローラハンドリングモジュール１２４は、必要に応じてスイッチフロー構成メッセージ１２６及び１２８を用いて実行される構成変更を伴って（例えば、物理スイッチは、再構成される必然性はない）、実行される構成変更を決定する。
【００１６】
上記動作を促進するためのホストプラットフォーム１０２上のコンポーネント及びエンティティの更なる詳細を図２ａに示す。図示したとおり、ＶＭ１０４のそれぞれが、ノーマルパケットハンドリングブロック２００を含むアプライアンス１０６のホストとなる。ＶＭのそれぞれはさらに、ネットワーキングスタック２０２を含む。仮想スイッチ１０８、アプライアンス不良検知モジュール１１４、アプライアンス不良コントローラ通知モジュール１１６及びネットワークインターフェイス１１２に加えて、ハイパーバイザ１１０は、「特殊」パケットラーニング／構成ブロック２０４を含むことがさらに示されている。
【００１７】
１つの例では、動作継続中に、アプライアンス不良検知モジュール１１４は、パケットチャレンジ２０６として、アプライアンス２０６内のノーマルパケットハンドリングブロック２００に送られるチャレンジメッセージを発行する。（説明の目的で、図２ａではダイレクトメッセージパスを示しているが、メッセージの実際の転送パスは、仮想スイッチ１０８及びネットワーキングスタック２０２を通る。）チャレンジメッセージは、アプライアンス１０６内のロジックに対するチャレンジを含む（説明の目的で、ノーマルパケットハンドリングブロック２００に含まれているものとして示す）。このアプライアンスロジックは、既知のレスポンスを用いて、チャレンジに対して応答するように構成されている。つまり、パケット応答２０８によって、アプライアンス不良検知モジュール１１４に返される。１つの形態では、レスポンスが、設定可能な期間内に受信されない場合には、不良通知１３２が、アプライアンス不良検知モジュール１１４からアプライアンス不良コントローラ通知モジュール１１６に送られる。
【００１８】
仮想的処理環境では、特定の仮想マシンは、１または複数のアプリケーション（通常は複数のアプリケーション）が稼働するユーザ空間等を含むオペレーションシステム（ＯＳ）インスタンスを実行してもよい。ここに記した形態では、これらのアプリケーションは、さまざまなタイプの仮想ネットワークアプライアンスとして示されているアプライアンス１０６を含む。典型的にはＯＳカーネルの一部として実装されるが、ＯＳの別のレイヤにおいて実装されてもよい、ネットワーキングスタック（例えばネットワーキングスタック２０２）のインスタンスを、ＶＭのそれぞれは含んでもよい。
【００１９】
従来のアプローチでは、ステイアライブピング（ｓｔａｙ−ａｌｉｖｅ ｐｉｎｇ）等の単純なピングが、アプライアンスが動作可能であるかを判定するために利用されうる。しかしながら、ピングは、ネットワーキングスタックに組み込まれたＩＣＰＭエコー機能によって処理されるので、ピングの使用は、ネットワーキングスタック自身が動作可能であることを示すためだけの役割を果たす。このため、ピングの使用は、仮想ネットワークアプライアンスを実行するために使用されるアプリケーションが不良であるかを判定するためには十分ではない場合がある。例えば、仮想ネットワークアプライアンスアプリケーションが「ハング」或いはクラッシュしている場合に、ネットワーキングスタックは依然として動作可能であり、このため、あたかも不良が無いかのようにピングに応じてＩＣＰＭエコーを返してもよい。
【００２０】
上述したチャレンジ／応答スキーム下では、チャレンジ／応答のペアが、ＶＭ内の基底ネットワーキングスタックよりもむしろ、アプライアンス自身内の或いはアプライアンス自身に論理的に関連付けられたロジックを用いてやりとりされる。実際のアプライアンス（アプリケーション）自身は、直接チャレンジされるので、アプライアンスの動作状態の検証が確認されうる。
【００２１】
幾つかの形態では、チャレンジ及び応答は、パケットハンドリングロジックに対する変更無しで、アプライアンスアプリケーションに送信及びアプライアンスアプリケーションから受信されてもよい。これらの例では、チャレンジパケット２０６及びパケット応答２０８は、「ノーマル」パケットを表す。しかしながら、その他の形態では、アプライアンスアプリケーションは、チャレンジ／応答スキームを実行するために補強される。これらの形態においては、「特殊」パケットチャレンジ２０６及びパケット応答２０８が用いられる。これらの特殊パケットは、通常はアプライアンスを通過し周知の方法で処理されるデータのタイプを含みうるように構成される。例えば、ファイアウォールアプライアンスは、適用可能なファイアウォール規則を満たすパケットを通過させるように構成される。それぞれの実施形態においては、特殊なチャレンジパケットは、特殊パケットラーニング／構成ブロック２０４によって実装されうる、キャプチャ／リプレイの使用を通して等の、ａ）管理エンティティからの事前設定、又は、ｂ）ノミナルパケットフローの監視を通したラーニングによって判定されてもよい。また、特殊パケットチャレンジ／応答は、アプライアンスの各インスタンスに対して異なる方法で構成されてもよい。
【００２２】
別の例では、ネットワークアプライアンスは、ＷＡＮ（Ｗｉｄｅ Ａｒｅａ Ｎｅｔｗｏｒｋ）促進デバイスである。１つの形態では、既知のパケットが決定論的方法で圧縮され、特殊パケットチャレンジ／応答のために利用される。
【００２３】
図１及び図２に示した構成に加えて、アプリケーション不良検知モジュール１１４は、仮想スイッチ１０８自身に実装されてもよい。また、異なるハイパーバイザアーキテクチャ下において、本図面のハイパーバイザブロック内に示されたエンティティ及びコンポーネントは、独立したコンポーネントとしてみなされてもよいことに注意されたい。例えば、仮想スイッチ及びネットワークインターフェイスの何れかまたは両方は、ハイパーバイザとは独立しているとみなせるコンポーネントを含んでもよい。
【００２４】
図３は、アプライアンス不良シナリオを検知して、検知された不良シナリオに応じてパケットフローを再構成するためのシステムアーキテクチャ１００内のさまざまなエンティティ及びコンポーネントを介して実行される動作及びロジックを示すフローチャート３００である。ブロック３０２及び決定ブロック３０４によって示すとおり、チャレンジ／応答は、ループ処理方法における継続原則に基づいて、上記の方法で実行される。例えば、図２ａに示した構成の下で、アプリケーション不良検知モジュール１１４は、設定可能な周期に基づいて、ホストプラットフォーム１０２（例えばアプライアンスＡ、Ｆ及びＮ）上で稼働するＶＭ内の適用可能なアプライアンスのそれぞれに対してチャレンジを発行する。アプライアンスＡ、Ｆ及びＮのそれぞれは、それぞれの動作状態を示す応答を返す。先に述べたように、応答パケットがチャレンジに応じて返ってこない場合には、アプライアンスは不良である或いは正常に動作してないとみなされる。
【００２５】
アプライアンスが不良であると検知したことに応じて、フローチャートロジックは、ブロック３０６に進む。そこでは、アプリケーション不良検知モジュール１１４は、アプライアンス不良コントローラ通知モジュール１１６に不良であることを不良通知メッセージ１３２を介して通知する。ここで使用したとおり、モジュールとの用語は、１または複数のモジュール、機能、方法又はアプリケーション等を含み得るあらゆるソフトウェアベースのエンティティを含む。また、モジュールは、パラメータ等のデータを格納するように構成されてもよい。このため、アプライアンス不良コントローラ通知モジュール１１６は、ここに記したアプライアンス不良コントローラ通知モジュール１１６の動作を実行するために構成されたモジュール、一連の機能又は方法、アプリケーション或いはソフトウェアエンティティのあらゆる形態として実装されてもよい。
【００２６】
アプライアンス不良コントローラ通知モジュール１１６は、アプライアンス不良に応じてネットワーキングフローパスの適切な再構成を実施するための構成データ及びロジックを含む。従って、ブロック３０８に示したとおり、不良通知メッセージ１３２を受信したことに応じて、アプライアンス不良コントローラ通知モジュールは、実行を必要とされる適用可能な構成変更を決定し、対応するアプリケーション不良コントローラ通知メッセージ１３４をネットワークコントローラ１２２に送ってもよい。このメッセージは、アプライアンスが不良であること及びアプライアンスを対象とするパケットに対するポスト不良条件状態、すなわちｆａｉｌ−ｔｏ−ｗｉｒｅ、ｆａｉｌ−ｔｏ−ｂｌｏｃｋ又は１または複数の代替ポスト不良条件状態を特定する情報を含んでもよい。例えば、代替ポスト不良条件状態は、ネットワーク内の同一の物理プラットフォーム又は別のプラットフォーム上でインスタンス化されうる第２のファイアウォールアプライアンス等の同様のアプライアンスにパケットが自発的に向けられるｆａｉｌ−ｔｏ−aｌｔｅｒｎａｔｉｖｅモード等の、ｆａｉｌ−ｔｏ−ｂｌｏｃｋ及びｆａｉｌ−ｔｏ−ｗｉｒｅ状態の代替手段を示してもよい。
【００２７】
次に、ブロック３１０において、アプリケーション不良コントローラハンドリングモジュール１２４は、不良シナリオを決定し、適用可能なスイッチフロー構成メッセージを生成し、当該メッセージを仮想スイッチ１０８及び／又は物理イーサネットスイッチ１１８に送る。１つの形態では、アプリケーション不良コントローラハンドリングモジュール１２４は、パケット／フローが、不良アプライアンス及びシナリオを考慮して適切に向けられることを確かにするために、ネットワークコントローラ１２２に、仮想スイッチ１０８及び物理イーサネットスイッチ１１８によってアクセスされる転送／ルーティングテーブル１０９及び１１９又はその他のテーブルエントリ（図示せず）内のスイッチテーブルエントリをプログラム／更新させるように構成される。
【００２８】
決定ブロック３１２及びブロック３１４によって示すとおり、ｆａｉｌ−ｔｏ−ｗｉｒｅシナリオの１つの形態においては、ネットワークコントローラ１２２は（アプリケーション不良コントローラハンドリングモジュール１２４を介して）、パケットが不良アプライアンスには送られずに、望まれる次のホップに直接向けられることを確かにするために仮想スイッチ１０８及び／又は物理イーサネットスイッチ１１８をプログラムするように構成される。次のホップは、同一のプラットフォーム上の別のＶＭ上の別のアプライアンスであってもよく、ネットワークを介してホストプラットフォームと結合した別個のプラットフォーム上であってもよい。例えば、図２ｂは、インバウンド（ネットワークからの）パケット２１０がネットワークアダプタ１１７で受信され、アプライアンスＡに転送されるであろうシナリオを示している。しかしながら、アプライアンスＡが不良であることが検知され、このため、パケット２１０は、（実線で示すとおり）同一プラットフォーム上の別のアプライアンスであるアプライアンスＮとして示されている次のホップに転送されるか、又は、パケット２１０は、（破線で示すとおり）別のプラットフォームに転送されるようにネットワークに送り返される。
【００２９】
決定ブロック３１６及びブロック３１８によって示すとおり、ｆａｉｌ−ｔｏ−ｂｌｏｃｋシナリオの１つの形態においては、ネットワークコントローラ１２２は、パケットが不良アプライアンスには送られずに、制御下のネットワークにおける最先のポイントでブロックされることを確かにするために、仮想スイッチ１０８及び／又は物理イーサネットスイッチ１１８をプログラムできるように構成される。適用可能な条件下では、これによって、貴重なネットワークリソースを著しく節約することができ、ネットワークの回復力を向上することができる。これは図２ｃによって示されており、通常は不良アプライアンスＦを目的地とするインバウンドパケット２１２がネットワークアダプタ１１７又は仮想スイッチ１０８においてブロックされることが示されている。
【００３０】
標準的なｆａｉｌ−ｔｏ−ｗｉｒｅ及びｆａｉｌ−ｔｏ−ｂｌｏｃｋ不良シナリオに加えて、さまざまなｆａｉｌ−ｔｏ−aｌｔｅｒｎａｔｉｖｅ不良シナリオをサポートするように形態が構成されてもよい。例えば、決定ブロック３２０及びブロック３２２によって示すとおり、ｆａｉｌ−ｔｏ−aｌｔｅｒｎａｔｉｖｅシナリオの１つの形態においては、ネットワークコントローラ１２２は、パケットがアプライアンスには送られずに、アプライアンスの代替実装にリダイレクトされることを確かにするために、仮想スイッチ１０８及び／又は物理イーサネットスイッチ１１８をプログラムするように構成される。例えば、図２ｄは、パケットを処理することに関連した１または複数の機能を実行するために構成されたアプライアンスＦに、ネットワークアダプタ１１７において受信されたインバウンドパケット２１４が通常は転送されるであろう状況を示す。しかしながら、アプライアンスＦが不良であることが検知され、このため、パケット２１０は、アプライアンスＦの代替実装であり、従ってアプライアンスＦと同一の仮想アプライアンス機能を実行するように構成されているアプライアンスＮに転送される。
【００３１】
図４に、プラットフォームハードウェア４０２及びさまざまなソフトウェアベースのコンポ―ネントを含む例示的ホストプラットフォーム構成４００を示す。プラットフォームハードウェア４０２は、相互接続４１０を介してメモリインターフェイス４０６及び入力／出力（Ｉ／Ｏ）インターフェイス４０８に結合された中央処理装置（ＣＰＵ）４０４を含む。幾つかの形態では、先に述べたコンポーネントの全て又は一部は、システムオンチップ（ＳｏＣ）として組み込まれてもよい。メモリインターフェイス４０６は、システムメモリ４１２に対するアクセスを促進するために構成され、システムメモリ４１２は通常はＳｏＣとは独立している。
【００３２】
Ｉ/Ｏインターフェイス４０８は、プラットフォームハードウェア４０２によって提供されるさまざまなＩ／Ｏインターフェイスを示している。先に述べたように、Ｉ／Ｏインターフェイス４０８は、（ＩＣＨ等の）ディスクリートコンポーネントとして実装されてもよく、又は、ＳｏＣとして実装されてもよい。さらに、Ｉ／Ｏインターフェイス４０８はまた、Ｐｅｒｉｐｈｅｒａｌ ＣｏｍｐｏｎｅｎｔＩｎｔｅｒｃｏｎｎｅｃｔ Ｅｘｐｒｅｓｓ （ＰＣＩｅ（登録商標））Ｉ／Ｏ階層等のＩ／Ｏ階層として実装されてもよい。Ｉ／Ｏインターフェイス４０８はさらに、さまざまなＩ／Ｏリソース、デバイス、及び、コア４０５等のその他のプラットフォームコンポーネントとの間の通信を促進する。これらは、ディスクコントローラ４１６を介してＩ／Ｏインターフェイス４０８と通信的に結合されるディスクドライブ４１４等の不揮発性ストレージデバイス、ファームウェア格納４１８、ＮＩＣ４２０、及び、集合的にその他のハードウェア４２２として示されているその他のさまざまなＩ／Ｏデバイスを含む。
【００３３】
一般的に、ＣＰＵ４０４は、シングルコアプロセッサを含んでもよく、或いは、例えば、Ｍ個のコア４０５として示されているようにマルチコアプロセッサを含んでもよい。マルチコアは、ディスクドライブ４１４によって示されている１または複数の不揮発性ストレージデバイスに格納されたモジュール及びアプリケーション等のさまざまなソフトウェアコンポーネント４２４を実行することに用いられる。より一般的には、ディスクドライブ４１４は、磁気及び光学ベースのストレージデバイス、並びに、ソリッドステートドライブ（ＳＳＤ）又はフラッシュメモリ等のソリッドステートストレージデバイスを含むさまざまなタイプの不揮発性ストレージデバイスを示す。任意的に、ソフトウェアコンポーネント４２４の全て又は一部は、ネットワーク４２６を介してアクセスされる１または複数のストレージデバイス（図示せず）に格納されてもよい
【００３４】
起動またはランタイム動作中に、さまざまなソフトウェアコンポーネント４２４及びファームウェアコンポーネント４２８は、（ＦＷ空間として示される）システムメモリ４１２にロードされ、実行スレッド等を含む処理としてコア４０５上で実行される。特定のプロセッサ又はＳｏＣアーキテクチャに応じて、特定の「物理」コアは、処理をさまざまなロジックコアに割り当てられるように、１または複数のロジックコアとして実装されてもよい。例えば、インテル社(r)製Ｈｙｐｅｒｔｈｒｅａｄｉｎｇ（登録商標）アーキテクチャの下において、それぞれの物理コアが２つのロジックコアとして実装される。
【００３５】
プラットフォームハードウェア４０２に対する典型的なシステム起動の下では、ホストＯＳ４３０の起動に続いて、ファームウェア４２８が、システムメモリ１０１２にロードされて構成されてもよい。続いて、通常はホストＯＳ４３０上で稼働するアプリケーションを含むであろうハイパーバイザ４３２が起動されてもよい。ハイパーバイザ４３２は、それぞれがシステムメモリ１０１２のさまざまな部分（すなわちアドレス空間）を使用するように構成されてもよいさまざまな仮想マシンＶＭ１−Ｎを起動するために用いられてもよい。次に、仮想マシンＶＭ１−Ｎのそれぞれは、それぞれのオペレーティングシステム４３４１−Ｎのホストとして用いられてもよい。
【００３６】
ランタイム動作中に、ハイパーバイザ４３２は、システムメモリ４１２、コア４０５及びディスクドライブ４１４等のさまざまなシステムリソースの再構成を有効化する。通常、仮想マシンは、（ハイパーバイザ４３２と協働して）自身のホストオペレーティングシステムと基底プラットフォームハードウェア４０２との間に、ＶＭ１−Ｎの間で共有されるハードウェアリソースを有効化するアブストラクションを提供する。それぞれのホストオペレーティングシステムの観点からは、オペレーティングシステムアは、全プラットフォームを「所有」しており、仮想マシン上で実行されるその他のオペレーティングシステムの存在を認識していない。実際には、それぞれのオペレーティングシステムは、ハイパーバイザ４３２によって自身に割り当てられたリソース及び／又はリソースポーションだけにアクセスできる。
【００３７】
図４にさらに示すとおり、それぞれのオペレーティングシステムは、カーネル空間及びユーザ空間を含む。カーネル空間及びユーザ空間の両方は、システムメモリ４１２内のメモリ空間として実装される。カーネル空間は、プロテクトされており、ネットワーキングスタックを含むオペレーティングシステムカーネルコンポーネントを実行するために用いられる。一方で、オペレーティングシステムのユーザ空間は、アプライアンス１、２及び３並びにアプリケーション１Ａ−Ｃ、２Ａ−Ｃ及びＮＡ−Ｃとして示されたユーザアプリケーションを稼働するために用いられる。
【００３８】
通常は、アプライアンス１、２及び３は、プラットフォームハードウェア４０２上の仮想マシン上で稼働するであろうさまざまなＳＤＮ又はＮＦＶアプライアンスを示すものである。簡単にするために、それぞれのＶＭ１−Ｎは、同様の一連のソフトウェアアプリケーションをホストするように示されている。しかしながら、これは単に説明のためだけであり、特定のプラットフォームに対するＶＭは同様のアプリケーションをホストしてもよく、或いは、異なるアプリケーションをホストしてもよい。同様に、それぞれのＶＭ１−Ｎは、（図示したとおり）単一の仮想ネットワークアプライアンスをホストしてもよく、複数の仮想ネットワークアプライアンスをホストしてもよく、或いは、如何なる仮想ネットワークアプライアンスをホストしなくてもよい。
【００３９】
ここに記した形態は、従来のアーキテクチャ及びコンポーネントと比較した場合に、改良された機能性及び柔軟性を提供する。例えば、１つの利点は、システムの外部のコンポーネントの使用またはコンポーネントに対する接続性に頼る必要がなく、アプライアンス不良技術がホストプラットフォーム内に実装されることである。これにより、不良に対する応答時間をより速くすることができ、及び、誤った警告をする可能性を低くすることができる。例えば、外部マネージャがチャレンジを送る役割を果たす場合には、外部マネージャと試験すべきプラットフォームとの間のパスにおける不良が、たとえプラットフォームに異常が無い場合にも、不良が検知されたことに繋がり得る。
【００４０】
本形態はまた、従来の物理ネットワークアプライアンス不良条件、および代替不良シナリオの両方に応じて改善を提供する。これにより、同一の又は同様の機能を保ちながらも、或いは機能を向上させながらも、物理ネットワークアプライアンスの代わりに仮想ネットワークアプライアンスを使用することができる。例えば、仮想ネットワークアプライアンスは、ソフトウェアとして完全に規定されるので、単にアプリケーションソフトウェアを更新することによって、付加的機能を提供できるように構成されてもよい。さらに、仮想ネットワークアプライアンスに対する接続は、物理的ではなくむしろ仮想的なので、仮想ネットワークアプライアンスを通るパケットフローは、検知した不良に応じてオンザフライで別ルートにし得るし、或いは、追加のパケットハンドリング機能を容易に提供し得る。例えば、ファイアウォール機能及びディープパケット検査を行う複数の別個の仮想ネットワークアプライアンスは、ソフトウェアアプリケーションを更新すること、又は、仮想接続を介して２つの仮想ネットワークアプライアンスをともに接続することによって、組み合わせられ得る。
【００４１】
幾つかの形態は、特定の実施例を参照して説明してきたが、特定の形態に従ってその他の実施も考えられる。また、図面に示した及び／又はここに記載した構成及び／又は要素の順番又はその他の特徴は、図示及び開示した特定の方法で構成される必要はない。その他の多くの構成が、特定の形態に従って考えられる。
【００４２】
図に示したシステムのそれぞれにおいて、ある場合の要素は、同一の参照番号を有し、或いは、それらの要素が異なる及び／又は同様であることを示唆するために異なる参照番号を有してもよい。しかしながら、要素は、異なる実施例を有し、且つ、図示した又はここに記載したシステムの幾つか又は全てと協働できるほど十分に柔軟であってもよい。図に示したさまざまな要素は、同じものであってもよく、異なるものであってもよい。どちらを第１の要素として称し、どちらを第２の要素として称するかは任意的なものである。
【００４３】
明細書及び特許請求の範囲において、「結合された」及び「接続された」との用語は、それらの派生的意味を伴って使用されてもよい。これらの用語が互いに同義であることを意図していないことに理解されたい。むしろ、特定の形態では、「接続された」とは、２つ以上の要素が互いに直接物理的に又は電気的に接触していることを示すために用いられてもよい。「結合された」とは、２つ以上の要素が直接物理的に又は電気的に接触していることを意味してもよく、或いは、ソフトウェアインターフェイス等に適用されてもよい。しかしながら、「結合された」はまた、２つ以上の要素が互いに直接接触はしないが、互いに協働又は相互作用することを意味してもよい。
【００４４】
ある形態とは、本発明の実施形態又は例を示す。「ある形態」、「１つの形態」、「幾つかの形態」又は「その他の形態」との明細書における参照は、これらの形態に関連して記載された特定の特徴、構造又は特性が、本発明の少なくとも幾つかの形態に含まれるが、必ずしも本発明の全ての形態には含まれないことを意味する。「ある形態」、「１つの形態」又は「幾つかの形態」とのさまざまな使用は、必ずしも全てが同一の形態を参照しているわけではない。
【００４５】
ここに示した及び記載したコンポーネント、特徴、構造及び特性等の全てが、特定の１つの形態又は複数の形態に含まれるわけではない。コンポーネント、特徴、構造又は特性が含まれ「てもよい」、含まれる「場合がある」、含まれ「得る」、含まれ「得た」と本明細書で述べた場合には、例えば、特定のコンポーネント、特徴、構造又は特性は含まれることを要求されない。明細書又は特許請求の範囲で、「ある」要素と参照した場合には、要素が１つだけ存在することを意味しない。明細書又は特許請求の範囲で、「ある追加の」要素と参照した場合には、追加の要素が１より多い場合を排除していない。
【００４６】
先に記したように、ここでの形態のさまざまな側面は、ネットワークコントローラ等のネットワークエレメント上で組み込まれたプロセッサによって実行されるサーバ又はファームウェア上で実行されるソフトウェア等の対応するソフトウェア及び／又はファームウェアコンポーネント及びアプリケーションによって促進されてもよい。このため、本発明の形態は、ある種のプロセッシングコア（コンピュータのＣＰＵ、マルチコアプロセッサの１または複数のコア）上で実行されるソフトウェアプログラム、ソフトウェアモジュール、ファームウェア及び／又は分散型ソフトウェア、プロセッサ又はコア上で稼働する仮想マシン、或いは、機械可読媒体上又は内で実装又は実現されるその他の要素をサポートするために又はサポートするものとして用いられてもよい。機械可読媒体は、機械（コンピュータ等）によって読み取り可能な形式で情報を格納又は転送するためのあらゆるメカニズムを含む。例えば、機械可読媒体は、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスクストレージ媒体、光学ストレージ媒体及びフラッシュメモリデバイス等を含んでもよい。
【００４７】
要約書の記載を含む、本発明の例示形態についての上記記載は、網羅的なものではなく、本発明を開示された正確な形態に限定することを意図していない。本発明の特定の形態又は例を、説明の目的で開示してきたが、当業者であれば理解できるであろうとおり、本発明の範囲を逸脱しない範囲においてさまざまな同等改良が考えられる。
【００４８】
これらの改良は、上記の詳細の記載を考慮して本発明に適用されうる。以下の特許請求の範囲の記載において使用される用語は、明細書及び図面で開示された特定の形態に本発明を限定するものではない。むしろ、本発明の範囲は、以下の特許請求の範囲の記載によって完全に決定されるべきであり、特許請求の範囲に対して確立された均等的解釈に従って解釈されるべきである。
【図３】
2015062282.tif 000003
【図４】
2015062282.tif 000004
【図１】
2015062282.tif 000005
【図２ａ】
2015062282.tif 000006
【図２ｂ】
2015062282.tif 000007
【図２ｃ】
2015062282.tif 000008
【図２ｄ】
2015062282.tif 000009
【外国語明細書】
2015062282000001.pdf