(57)【特許請求の範囲】
【請求項１】
コンピュータプログラムであって、少なくとも１つのプロセッサによって実行されると、該少なくとも１つのプロセッサに、
仮想ネットワークインフラストラクチャの仮想サーバ内において、仮想マシンの変化を検出し、
前記仮想サーバ内で仮想セキュリティ装置が構成されているかどうかを判断し、
前記仮想サーバ内で前記仮想セキュリティ装置を作成するよう要求を送信し、
前記仮想セキュリティ装置が前記仮想サーバ内で作成されるときに、前記仮想マシンが開始するのを許可する、
動作を実行させ、
前記仮想セキュリティ装置は、前記仮想マシンから送信されるネットワークパケットに対するセキュリティ検査を実行し、前記仮想マシンについて検出される前記変化は、前記仮想マシンについて新たなセキュリティポリシーを要求すること又は前記仮想マシンのセキュリティポリシーを更新することの一方を含む、
コンピュータプログラム。
【請求項２】
当該コンピュータプログラムは、前記少なくとも１つのプロセッサによって実行されると、該少なくとも１つのプロセッサに更に、
前記仮想サーバ内に、前記仮想マシンからの前記ネットワークパケットをインターセプトするインターセプト機構を作成する、
動作を実行させる、請求項１に記載コンピュータプログラム。
【請求項３】
当該コンピュータプログラムは、前記少なくとも１つのプロセッサによって実行されると、該少なくとも１つのプロセッサに更に、
前記仮想マシンからの前記ネットワークパケットを物理ネットワークインタフェースカードに向けるよう、前記仮想マシンに接続される仮想スイッチのロジックを再構成し、
前記ネットワークパケットが仮想ネットワークインタフェースカード（ｖＮＩＣ）を通過するのを防ぐよう、前記ｖＮＩＣのロジックを再構成する、
動作を実行させる、請求項２に記載のコンピュータプログラム。
【請求項４】
前記インターセプト機構は、単一ルート入出力仮想化（ＳＲ−ＩＯＶ）仕様に基づくネットワークパケットのハードウェアインターセプトを含む、
請求項２又は３に記載のコンピュータプログラム。
【請求項５】
前記変化は、前記仮想マシンを、第２の仮想サーバから前記仮想サーバに移動させることを含み、当該コンピュータプログラムは、前記少なくとも１つのプロセッサによって実行されると、該少なくとも１つのプロセッサに更に、
前記第２の仮想サーバから第２の仮想セキュリティ装置を削除し、
仮想ネットワークインタフェースカードを介して通信するよう前記第２の仮想サーバ内の仮想スイッチのロジックを再構成する動作を実行させ、
前記第２の仮想セキュリティ装置は、前記仮想マシンが前記第２の仮想サーバ内で実行しているときに前記仮想マシンからインターセプトされたネットワークパケットを処理するように構成されている、
請求項１−４のいずれかに記載のコンピュータプログラム。
【請求項６】
１つ又は複数のセキュリティポリシーは、前記仮想マシンからの前記ネットワークパケットを処理するよう１つ又は複数の仮想セキュリティ装置を識別する、
請求項１−５のいずれかに記載のコンピュータプログラム。
【請求項７】
前記１つ又は複数のセキュリティポリシーは、１つ又は複数の仮想セキュリティ装置について、前記仮想マシンからの前記ネットワークパケットを処理する順序を識別する、
請求項６に記載のコンピュータプログラム。
【請求項８】
当該コンピュータプログラムは、前記少なくとも１つのプロセッサによって実行されると、該少なくとも１つのプロセッサに更に、
前記仮想セキュリティ装置の利用率を判断するのに前記仮想サーバ上の前記仮想セキュリティ装置にクエリし、
前記クエリに対する応答を受信する、
動作を実行させる、請求項１−７のいずれかに記載のコンピュータプログラム。
【請求項９】
当該コンピュータプログラムは、前記少なくとも１つのプロセッサによって実行されると、該少なくとも１つのプロセッサに更に、
前記応答が、前記仮想セキュリティ装置によってより多くの容量が必要とされることを示すとき、前記仮想サーバ内に第２の仮想セキュリティ装置を作成するよう要求を送信する、
動作を実行させる、請求項８に記載のコンピュータプログラム。
【請求項１０】
当該コンピュータプログラムは、前記少なくとも１つのプロセッサによって実行されると、該少なくとも１つのプロセッサに更に、
前記ネットワークパケットが前記仮想セキュリティ装置に送信されることを防ぎ、
前記応答が、前記仮想セキュリティ装置の利用率が低いことを示すとき、前記仮想セキュリティ装置がアイドル状態であれば、前記仮想セキュリティ装置を削除する、
動作を実行させる、請求項８に記載のコンピュータプログラム。
【請求項１１】
当該コンピュータプログラムは、前記少なくとも１つのプロセッサによって実行されると、該少なくとも１つのプロセッサに更に、
前記応答が、前記仮想セキュリティ装置の利用率が多いことを示すとき、更なる処理リソース及び更なるメモリのうちの少なくとも一方を前記仮想セキュリティ装置に割り当てるよう要求を送信する、
動作を実行させる、請求項８又は９に記載のコンピュータプログラム。
【請求項１２】
前記仮想マシンについて検出される前記変化は、前記仮想マシンを前記仮想サーバに追加すること又は前記仮想マシンを別の仮想サーバから前記仮想サーバに移動させることの一方を含む、
請求項１−４及び６−１１のいずれかに記載のコンピュータプログラム。
【請求項１３】
前記変化は、アプリケーションプログラミングインタフェース（ＡＰＩ）を通して、前記仮想マシンが前記仮想サーバに追加されるとき又は前記仮想マシンが異なるサーバに移動されるときに検出される、
請求項１−１１のいずれかに記載のコンピュータプログラム。
【請求項１４】
当該コンピュータプログラムは、前記少なくとも１つのプロセッサによって実行されると、該少なくとも１つのプロセッサに更に、
前記仮想セキュリティ装置が前記仮想サーバ内で構成されない場合、前記仮想マシンをブロックする、
動作を実行させる、請求項１−１３のいずれかに記載のコンピュータプログラム。
【請求項１５】
前記仮想マシンからのパケットフローの最初の出力ネットワークパケットは、前記仮想マシンが前記仮想サーバ内で開始することを許可された後、前記仮想サーバ内のＯｐｅｎＦｌｏｗスイッチによってインターセプトされ、当該コンピュータプログラムは、前記少なくとも１つのプロセッサによって実行されると、該少なくとも１つのプロセッサに更に、
前記出力ネットワークパケットのためのフロールートを、セキュリティポリシーに基づいて生成する、
動作を実行させ、前記ＯｐｅｎＦｌｏｗスイッチは、前記出力ネットワークパケットを前記フロールートに従ってルーティングする、
請求項１−１４のいずれかに記載のコンピュータプログラム。
【請求項１６】
プロセッサ上で動作するポリシーマネージャの仮想マシンであって、
仮想ネットワークインフラストラクチャの仮想サーバ内において、ゲスト仮想マシンの変化を検出し、
前記仮想サーバ内で仮想セキュリティ装置が構成されているかどうかを判断し、
前記仮想セキュリティ装置が前記仮想サーバ内で作成されるときに、前記仮想マシンが開始するのを許可する、
ように構成されるポリシーマネージャの仮想マシンと、
プロセッサ上で動作する分散マネージャの仮想マシンであって、前記仮想サーバ内で前記仮想セキュリティ装置を作成するよう要求を送信するように構成される、分散マネージャの仮想マシンと、
を備え、前記仮想セキュリティ装置は、前記仮想マシンから送信されるネットワークパケットに対するセキュリティ検査を実行し、前記仮想マシンについて検出される前記変化は、前記仮想マシンについて新たなセキュリティポリシーを要求すること又は前記仮想マシンのセキュリティポリシーを更新することの一方を含む、
装置。
【請求項１７】
分散マネージャは、
前記仮想サーバ内に、前記仮想マシンからの前記ネットワークパケットをインターセプトするインターセプト機構を作成する、
ように構成される、請求項１６に記載の装置。
【請求項１８】
前記分散マネージャは、
前記仮想マシンからの前記ネットワークパケットを物理ネットワークインタフェースカードに向けるよう、前記仮想マシンに接続される仮想スイッチのロジックを再構成し、
前記ネットワークパケットが仮想ネットワークインタフェースカード（ｖＮＩＣ）を通過するのを防ぐよう、前記ｖＮＩＣのロジックを再構成する、
ように更に構成される、請求項１７に記載の装置。
【請求項１９】
前記ポリシーマネージャは、
前記仮想セキュリティ装置が、前記仮想サーバ内で構成されていない場合、前記仮想マシンをブロックする、
ように更に構成される、請求項１６−１８のいずれかに記載の装置。
【請求項２０】
仮想ネットワークインフラストラクチャの仮想サーバ内において、仮想マシンの変化を検出するステップと、
前記仮想サーバ内で仮想セキュリティ装置が構成されているかどうかを判断するステップと、
前記仮想サーバ内で前記仮想セキュリティ装置を作成するよう要求を送信するステップと、
前記仮想セキュリティ装置が前記仮想サーバ内で作成されるときに、前記仮想マシンが開始するのを許可するステップと、
を含む方法であって、
前記仮想セキュリティ装置が、前記仮想マシンから送信されるネットワークパケットに対するセキュリティ検査を実行し、
前記変化は、前記仮想マシンを、第２の仮想サーバから前記仮想サーバに移動させることを含み、当該方法は更に、
前記第２の仮想サーバから第２の仮想セキュリティ装置を削除するステップと、
仮想ネットワークインタフェースカードを介して通信するよう前記第２の仮想サーバ内の仮想スイッチのロジックを再構成するステップと、
を含み、前記第２の仮想セキュリティ装置は、前記仮想マシンが前記第２の仮想サーバ上で実行しているときに前記仮想マシンからインターセプトされたネットワークパケットを処理するように構成されている、
方法。
【請求項２１】
１つ又は複数のセキュリティポリシーは、１つ又は複数の仮想セキュリティ装置を識別して、前記仮想マシンからの前記ネットワークパケットを処理する、
請求項２０に記載の方法。
【請求項２２】
前記仮想セキュリティ装置が、前記仮想サーバ内で構成されていない場合、前記仮想マシンをブロックするステップ
を更に含む、請求項２０又は２１に記載の方法。
【請求項２３】
前記仮想マシンについて検出される変化は、前記仮想マシンについて新たなセキュリティポリシーを要求すること又は前記仮想マシンのセキュリティポリシーを更新することの一方を含む、
請求項２０−２２のいずれかに記載の方法。
【請求項２４】
前記仮想マシンからのパケットフローの最初の出力ネットワークパケットは、前記仮想マシンが前記仮想サーバ内で開始することを許可された後、前記仮想サーバ内のＯｐｅｎＦｌｏｗスイッチによってインターセプトされ、当該方法は、
前記出力ネットワークパケットのためのフロールートを、セキュリティポリシーに基づいて生成するステップ
を更に含み、前記ＯｐｅｎＦｌｏｗスイッチは、前記出力ネットワークパケットを前記フロールートに従ってルーティングする、
請求項２０−２３のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に仮想化に関し、より具体的には、仮想クラウドインフラストラクチャへ仮想セキュリティ装置アーキテクチャを提供することに関する。
【背景技術】
【０００２】
仮想化技術の進化は、クラウドコンピューティングに向かう動きに適合しており、ある程度融合している。一般に、仮想化は、コンピューティングプラットフォームのハードウェア特性を曖昧にし、代わりに、完全なオペレーティングシステムを含む他のプラットフォームをホストすることができる抽象的なプラットフォームを提示する。ある一般的な仮想化技術は、ゲストソフトウェア（完全なオペレーティングシステムを含む）が抽象ホストプラットフォーム上で同時に実行するのを許可するハイパーバイザ（仮想マシンマネージャとしても知られる）を展開することである。ハイパーバイザは、しばしば「仮想マシン」と呼ばれるシミュレートされたコンピューティング環境を、そのゲストソフトウェアのために提供することができる。したがって、複数の別個のオペレーティングシステムが、例えばハイパーバイザの下で単一の物理マシンにおいて動作することができる。
【０００３】
クラウドコンピューティングは、一般に、インターネットのようなネットワークを介してサービスとして配信されるコンピューティングリソースの使用である。クラウドコンピューティングでは、様々なリモートコンピュータ、サーバ及びデータストレージシステムは、データを格納し、かつアプリケーションをホストすることにより、サービスを提供することができる。エンドユーザコンピュータは、クラウドインフラストラクチャ内のアプリケーションに、ウェブブラウザ又はホストへのネットワークアクセスを提供する他のアプリケーションを介してアクセスすることができる。典型的に、計算、ストレージ及びネットワークリソースをクラウドインフラストラクチャ内に提供し、これにより、ワークロードをローカルネットワークからクラウドネットワークへ効率的にシフトする。
【０００４】
クラウドインフラストラクチャに適用される仮想化は、様々な利点を提供することができる。特に、仮想化されたクラウドインフラストラクチャは、インフラストラクチャにおける物理マシンの出力を最大化することができ、カスタマが使用又は必要とするリソースのみを購入するのを可能にし、カスタマのネットワークリソース要件の変更に応じた柔軟性及びスピードを提供することができる。しかしながら、仮想化されたクラウドインフラストラクチャの使用が成長し続けるにつれて、仮想マシンは、不正な攻撃のより一般的な標的となる傾向がある。クラウド仮想化は多くの利点を提供するが、仮想化されたインフラストラクチャの性質が新たなリソースの迅速な展開を可能にするとき、クラウド仮想化は固有のセキュリティ上の課題も提示する可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、セキュアな仮想化クラウドインフラストラクチャを提供するために多くの課題が残っている。
【課題を解決するための手段】
【０００６】
例示の実施形態における方法は、仮想ネットワークインフラストラクチャの仮想サーバ内の仮想マシンについての変化を検出するステップと、仮想セキュリティ装置が仮想サーバ内で構成されるかどうかを判断するステップと、仮想セキュリティ装置を仮想サーバ内で作成するよう要求を送信するステップとを含む。当該方法は更に、仮想セキュリティ装置が仮想マシン内で作成されるときに、仮想マシンが開始するのを許可するステップを含む。仮想セキュリティ装置は、仮想マシンから送信されるネットワークパケットに対してセキュリティ検査を実行する。より具体的な実施形態では、当該方法は更に、仮想マシンからのネットワークパケットをインターセプトするインターセプト機構を仮想サーバ内に作成するステップを含む。更なる実施形態では、１つ又は複数のセキュリティポリシーが、１つ又は複数の仮想セキュリティ装置を識別し、仮想マシンからのネットワークパケットを処理する。
【図面の簡単な説明】
【０００７】
本開示及びその特性と利点のより完全な理解を提供するために、添付の図面と関連して以下の説明を参照する。図面では、同様の参照番号は同様の部分を表す。
【図１】本開示の一実施形態に従って、仮想クラウドインフラストラクチャにおいて仮想セキュリティ装置を提供するためのシステムを示すブロック図である。
【図２】一実施形態に係る、仮想化コンピューティングシステムを示すブロック図である。
【図３】一実施形態に係る、システムの追加の詳細を有する例示の仮想化コンピューティングシステムを示すブロック図である。
【図４】一実施形態に係る、仮想化コンピューティングシステムにおけるシステムの高レベルの実装シナリオを示すブロック図である。
【図５】システムの一実施形態に係る、メディアアクセスコントロール（ＭＡＣ）アドレスを使用するソースルーティング技術を示すブロック図である。
【図６】システムの一実施形態において、ハードワイヤードポートを使用するソースルーティング技術を示すブロック図である。
【図７】システムの一実施形態に係る、ソース仮想マシンのルーティングストリームの方法を示す簡単なフローチャートである。
【図８】ＯｐｅｎＦｌｏｗスイッチを使用するシステムの一実施形態に係るインターセプト機構を示すブロック図である。
【図９】ＯｐｅｎＦｌｏｗスイッチを使用するシステムの一実施形態に係るインターセプト機構の処理を示すフローチャートである。
【図１０】システムの一実施形態に係るハードワイヤードインターセプト機構の例示のシナリオを示すブロック図である。
【図１１】システムの別の実施形態に係るハードワイヤードインターセプト機構の例示のシナリオを示すブロック図である。
【図１２】システムの一実施形態に係るハードウェアインターセプト機構の処理を示す簡単なフローチャートである。
【図１３】システムの一実施形態に係る別のインターセプト機構の例示のシナリオを示すブロック図である。
【図１４】システムの一実施形態の追加の潜在的な動作を示す簡単な対話図である。
【図１５】システムの一実施形態に係るポリシーマネージャの処理を示す簡単なフローチャートである。
【図１６】システムの一実施形態に係る分散マネージャの処理を示すフローチャートである。
【図１７Ａ】仮想クラウドインフラストラクチャにおいて仮想セキュリティ装置アーキテクチャを提供するシステムの実施形態の処理の例示の動作を示すブロック図である。
【図１７Ｂ】仮想クラウドインフラストラクチャにおいて仮想セキュリティ装置アーキテクチャを提供するシステムの実施形態の処理の例示の動作を示すブロック図である。
【図１７Ｃ】仮想クラウドインフラストラクチャにおいて仮想セキュリティ装置アーキテクチャを提供するシステムの実施形態の処理の例示の動作を示すブロック図である。
【図１８】システムの一実施形態に係る分散マネージャの処理を示す簡単なフローチャートである。
【発明を実施するための形態】
【０００８】
＜概要＞
例示の実施形態における方法は、仮想ネットワークインフラストラクチャの仮想サーバ内の仮想マシンについての変化を検出するステップと、仮想セキュリティ装置が仮想サーバ内で構成されるかどうかを判断するステップと、仮想セキュリティ装置を仮想サーバ内で作成するよう要求を送信するステップとを含む。当該方法は更に、仮想セキュリティ装置が仮想マシン内で作成されるときに、仮想マシンが開始するのを許可するステップを含む。仮想セキュリティ装置は、仮想マシンから送信されるネットワークパケットに対してセキュリティ検査を実行する。より具体的な実施形態では、当該方法は更に、仮想マシンからのネットワークパケットをインターセプトするインターセプト機構を仮想サーバ内に作成するステップを含む。更なる実施形態では、１つ又は複数のセキュリティポリシーが、１つ又は複数の仮想セキュリティ装置を識別し、仮想マシンからのネットワークパケットを処理する。
【０００９】
別の実施形態における方法は、仮想ネットワークインフラストラクチャの仮想サーバ内の仮想セキュリティ装置をポーリングして、該仮想セキュリティ装置の利用率を決定するステップと、利用率が上限閾値量を超える場合、クラウドマネージャに、仮想セキュリティ装置のための計算リソースを増加させるよう要求を送信するステップと、利用率が下限閾値量未満の場合、クラウドマネージャに、仮想セキュリティ装置のための計算リソースを低減させるよう要求を送信するステップとを含む。当該方法において、仮想サーバ内の１つ又は複数の仮想マシンに関連付けられるネットワークパケットは、仮想セキュリティ装置にルーティングされる。より具体的な実施形態では、ネットワークパケットは、仮想セキュリティ装置にルーティングされる前にインターセプトされる。
【００１０】
＜例示の実施形態＞
図１は、本開示の一実施形態に従って、仮想クラウドインフラストラクチャにおいて仮想セキュリティ装置を提供するための通信システム１００の例示的な図である。通信システム１００は、ハードウェアレイヤ１１０、（仮想マシンマネージャ（ＶＭＭ）１２０によって一般的に表される）仮想化レイヤ、コアリソース１３５のセット、仮想化されたデスクトップインフラストラクチャ（ＶＤＩ）１３０及びクラウドマネージャ１５０を備える仮想クラウドインフラストラクチャを表す。ハードウェアレイヤ１１０は、サーバ１１２、他のネットワークデバイス１１６及びストレージ１１４を含むことができる。コアリソース１３５は、ネットワークプロトコルを含み、例えば内部ネットワークや無線ネットワーク、インターネット等を含め様々なネットワークへのアクセスを可能にし、管理することができる。１つの例示の実装では、コアリソース１３５は、動的ホスト構成プロトコル（ＤＨＣＰ）ネットワーキングプロトコルサーバ１３６、ドメイン名サービス（ＤＮＳ）１３７、認証許可アカウンティング（ＡＡＡ：Authentication,  Authorization,  and  Accounting）ネットワーキングプロトコルサーバ１３８を含むことができる。仮想セキュリティシステム１６０は、通信システム１００における仮想セキュリティ装置のアーキテクチャを提供及び管理するのを可能にするのに提供される。仮想セキュリティシステムは、ポリシーレイヤ１７０、セキュリティマネージャ１７５、分散レイヤ１８０及びインターセプトレイヤ１９０を含むことができる。
【００１１】
一般に、通信システム１００は、任意の適切なタイプ又はトポロジのネットワーク（例えばイントラネット、エクストラネット、ＬＡＮ、ＷＡＮ、ＷＬＡＮ、ＭＡＮ、ＶＬＡＮ、ＶＰＮ、セルラネットワーク等）あるいは有線及び／又は無線通信を含め、これらの適切な組み合わせで実装されてよい。図１の要素は、単純なインタフェースを通して、あるいはネットワーク通信の実行可能な経路を提供する任意の他の適切な接続（有線又は無線）を通して相互に組み合わせてよい。加えて、特定の構成のニーズに基づいて、これらの要素のいずれか１つ又は複数を組み合わせてもよく、あるいはアーキテクチャから取り除いてもよい。
【００１２】
ネットワークトラフィックは、ネットワーク通信の形式であり、任意の適切な通信メッセージングプロトコルに従って送受信することができるパケット、フレーム、信号、データ等を含む。適切な通信メッセージングプロトコルは、オープンシステム間相互接続（ＯＳＩ：Open  Systems  Interconnection）モデル又はその全ての派生形若しくは変化形（例えばＴＣＰ／ＩＰ）のようなマルチレイヤ型スキームを含むことができる。加えて、メッセージ、要求、応答及びクエリは、ネットワークトラフィックの形式であり、したがって、パケット、フレーム、信号、データ等を備えてよい。ＴＣＰ／ＩＰのような特定の通信プロトコルにおいて、単一のメッセージ、要求、応答又はクエリは、「パケットストリーム」を定義する複数のパケットに分割されることがある。パケットストリームは、本明細書では「フロー(flow)」とも呼ばれることがあり、この「フロー」は、ボイスオーバーＩＰ（ＶＯＩＰ）又はドメイン名サービスメッセージのような、非バイト型のストリームの交換（non-byte-stream  exchange）を含むことがある。さらに、フローをプロパティによって識別することもでき、プロパティには、これらに限られないが、５タプル（すなわち、ソースＩＰアドレス、宛先ＩＰアドレス、ソースポート、宛先ポート及びＩＰプロトコル）、装置の物理的ポート、仮想ポート、ＶＸＬＡＮ及び／又はＶＬＡＮが含まれる。本明細書で使用されるとき、「データ」という用語は、任意のタイプのバイナリ、数字、音声、ビデオ、テキスト若しくはスクリプトデータ又は任意のタイプのソース若しくはオブジェクトコード又は電子デバイス及び／若しくはネットワーク内のあるポイントから別のポイントへ通信され得る任意の適切なフォーマットの任意の他の適切な情報を指す。
【００１３】
通信システム１００の特定の例示的な技術を説明する目的では、仮想クラウドインフラストラクチャをトラバースし得る通信を理解することが重要である。以下の基礎的な情報を、本開示を正しく説明するための基本と考えてよい。
【００１４】
専用のローカルハードウェアリソースを有するネットワークが、クラウドベースの仮想インフラストラクチャにより急速に置き換えられてきている。企業や学校及び行政機関のような組織は、情報技術をクラウドベースの仮想インフラストラクチャにオフロードする利点を認識し始めている。
【００１５】
あるタイプのクラウド仮想化は、仮想化されてないデータセンタ内の各ネットワークに対して仮想ネットワークを割り当てることを含む。各物理マシンも仮想ネットワーク上で仮想化され得る。一般に、仮想インフラストラクチャは、この実装において物理的なインフラストラクチャを並行させる。この構成において、仮想化の前に使用されていた同じセキュリティを単純に保持することを含め、セキュリティを提供する何らかの能力が存在する。
【００１６】
別の仮想化のソリューションは、フラットな構造化されていないネットワークに基づくものであり、このネットワーク内では、サーバ及びその内部ネットワークは全て単一のフラットなネットワーク内で接続され、ルータやファイヤウォールといった、その目的に関連する構造を与えるようなネットワーク要素はない。フラット化されたネットワークは、ネットワークのある部分が、特定のエンティティのニーズに基づいて割り当てられるのを可能にする。例えば情報技術（ＩＴ）管理者は、仮想化されたデータセンタの部分を、計算要件、ストレージ要件及びネットワーク要件に基づいて割り当てることができる。ＩＴ管理者が所望の数のネットワーク、所望の処理能力及び所望のデータストレージ量を要求するのを可能にするよう管理コンソールが提供されてよく、これは、仮想化されるインフラストラクチャ内のどこでも作成され得る。したがって、仮想マシンは、仮想インフラストラクチャ内のどの場所で作成されてよく、これは、エンティティ（又はユーザ）に対して透過的であり得る。さらに、仮想化マシン、ネットワーク及びデータストレージは、インフラストラクチャ内において、そのインフラストラクチャを管理する際の特定のニーズに基づいて移動されてもよい。そのような変化もエンティティに対して透過的であり得る。エンティティは、その割り当てられた計算リソース、ネットワークリソース及びデータストレージリソースの物理的な位置を実際には知らずに、その計算リソース、ネットワークリソース及びデータストレージリソースへのアクセスを有することができる。
【００１７】
構造化されたネットワークにおいて、ネットワーク管理者は、典型的に、ネットワークの利用を予想又は測定し、どこにどの種類のセキュリティ装置を割り当てるべきかを決定する。これは、しばしばセキュリティ装置の比較的静的で高価な展開につながる。というのも、装置は、ネットワークトラフィックのバースト性（burstiness）に合うように過度に割り当てられる（over-allocated）か、時間とともに成長させる必要があるためである。フラット化されたクラウドネットワーク内でリソースを透過的に追加及び移動させる能力は、所望のネットワークリソースを展開する際に顕著な柔軟性を提供することができる。しかしながら、ネットワークのトポロジ内の戦略的ポイントにセキュリティデバイスを配置するという一般的な実施は、ハイパーバイザへの高度な柔軟性を提供するフラットな構造化されていないネットワークの展開と矛盾する。必要なのは、負荷に応じてシステムリソースを使用し、セキュリティのニーズが変化するときに柔軟性及びスケーラビリティを提供する、セキュリティソリューションである。
【００１８】
例示の実施形態によると、通信システム１００は、仮想クラウドインフラストラクチャにおいてセキュリティを提供することに関連する、上述の問題を解決することができる。より具体的には、通信システム１００の仮想セキュリティシステム１６０は、ネットワークトラフィックのパケットをバックエンドのセキュリティプロセスにルーティングする、フロントエンドのネットワークストリームレベルの分散レイヤを含む。分散レイヤはポリシー機能を実行して、どのバックエンドセキュリティプロセスが特定のデータのために必要とされるかを決定することができる。分散レイヤは次いで、ルーティング動作を実行して、パケットを正しいセキュリティプロセスに正しい順序で送信することができる。バックエンドセキュリティプロセスは、ネットワークトラフィックに対して、計算集約型（compute-intensive）のセキュリティ機能を実行することができる。分散レイヤは、ソース仮想化マシンからインターセプトされ得るパケットを受信することができ、これは、幾つかの異なるインターセプト技術を使用して達成され得る。仮想セキュリティシステム１６０のインターセプトレイヤは、ネットワークインタフェースカードの技術（例えばＳＲ−ＩＯＶ）及びハードウェアスイッチ機能を使用する構成から、あるいはＯｐｅｎＦｌｏｗスイッチフレームワークへ統合することから、仮想スイッチへのパケット及び仮想スイッチからのパケットをインターセプトするように構成され得る。ｖスイッチ４２２−２は、ＡＰＩベースのインターセプト機構も提供し得る。
【００１９】
分散マネージャを使用して、セキュリティコントロールを仮想セキュリティ装置（ＶＳＡ）の形式で実装するための弾性（又は柔軟な）システムが、ＶＭＭにおいて作成され得る。トラフィックは手動で分散マネージャにルーティングされ、したがってＶＳＡにルーティングされ得る。別の実施形態では、インターセプト機構は、トラフィックが分散マネージャによってインターセプトされ、手動のルーティングを用いずに、ＶＡＳへルーティングされるのを可能にする。システムは、ＶＳＡをモニタリングし、ＶＭＭリソース（ＣＰＵ、メモリ、ストレージ）の使用を増減するか及び／又はＶＭＭにおけるＶＡＳの数を増減する変更を要求するように構成される可能性がある。要求される変更は、ＶＭＭにおける既存の仮想マシンの入来する負荷（incoming  load）、構成される負荷限度（configured  load  limit）及び／又はセキュリティポリシーに基づくものであってよい。ポリシーレイヤは、仮想インフラストラクチャが変化するときに所望のセキュリティコントロールを構成するために、弾性（又は柔軟な）機構の応答性を改善することができる。ポリシーレイヤは、仮想インフラストラクチャ内の仮想マシンに対する変更又は既存の仮想マシンのための新たなセキュリティポリシー若しくは更新されたセキュリティポリシーを検出することができ、分散レイヤと通信して、ポリシーによって必要とされる任意のインターセプト機構及び追加のバックエンドセキュリティプロセスをセットアップし、構成することができる。したがって、バックエンドセキュリティシステムを、仮想セキュリティ装置の形式で、必要に応じて割り当て、そして割り当て解除することができる。さらに、処理パワーの増加は、仮想セキュリティシステム１６０がＶＳＡのようなセキュリティ処理リソースの過剰割り当てを必要としないように小さいものであってよい。したがって、この弾性（又は柔軟な）セキュリティシステムは、提示される負荷によって、多くの又は少ない使用を要することに応じて、それぞれ拡大又は縮小することができる。
【００２０】
図１のインフラストラクチャに移ると、図１は通信システム１００を図示しており、通信システム１００内に、仮想セキュリティシステム１６０のレイヤ化されたビューが提供されている。通信システム１００は、割り当てられたリソース及びネットワークを１つ又は複数のそれぞれのエンティティに提供する仮想クラウドインフラストラクチャを表す。割り当てられたリソース及びネットワークは、インターネット、別のワイドエリアネットワーク（ＷＡＮ）、仮想プライベートネットワーク（ＶＰＮ）等といった適切な公衆又はプライベートネットワークを通して、ユーザによりリモートでアクセスされ得る。
【００２１】
通信システム１００は、仮想クラウドインフラストラクチャを用いて構成され、ここでは、ＶＭＭ１２０のレイヤは、物理ネットワークデバイス１１６上に、ネットワークの構造がフラット化されているように均一な単一のレイヤの形で表されている。ＶＭＭ１２０は、ハードウェアレイヤ１１０の上で動作して通信システム１００内の仮想家臣を管理及びモニタリングするＶＭＭ又はハイパーバイザを表す。フラット化されたＶＭＭ１２０により、仮想マシンを、通信システム１００内で容易に作成することができ、ハードウェアレイヤ１１０内の基礎となる異なるハードウェアコンポーネント間で容易に移動させることができる。
【００２２】
仮想セキュリティシステム１６０は、ユーザが、セキュリティを、弾性の仮想セキュリティ装置（ＶＳＡ）アーキテクチャの形で与えることを可能にする。ＶＳＡは、必要に応じて割り当て及び割り当て解除され、ポリシーで定義されるセキュリティコントロールを仮想マシンのネットワークトラフィックに適用することができる。ポリシーレイヤ１７０は、通信システム１００において提供される１つ又は複数のポリシーマネージャを表し、仮想マシンについてのユーザ定義セキュリティポリシー、システム定義セキュリティポリシー又はデフォルトのセキュリティポリシーを通信システム１００内に格納する。仮想マシンは、クラウドマネージャ１５０を介して作成されるか移動されてよい。クラウドマネージャ１５０は、ユーザが、通信システム１００の仮想クラウドインフラストラクチャにおいて望まれる特有の計算リソース、ハードウェアリソース及びネットワークリソースを要求できるように構成され得る。ポリシーレイヤ１７０の１つ又は複数のポリシーマネージャは、クラウドマネージャ１５０と通信するように構成され得る。セキュリティマネージャ１７５は、セキュリティのニーズが変化するときに既存の仮想マシンに対して、あるいは適用されたデフォルトのポリシーを必要とする未だ未知の仮想マシンに対して、仮想マシンがクラウドマネージャ１５０を介して追加又は移動されるように、ユーザが仮想マシンについてのポリシーを提供することを可能にする。一部の例において、セキュリティマネージャ１７５とクラウドマネージャ１５０を統合してもよい。これらのマネージャは、通信システム１００において構成される１つ又は複数のネットワークのために、システム全体の管理サービスとして提供され得る。これらのマネージャは、専用のハードウェア（例えば専用のサーバ及びストレージ）上に実装されてもよく、仮想化により又は仮想化を行うことなく動作してよい。一実施形態において、１つ又は複数のネットワークを、特定のエンティティ（例えば企業、会社、学校、行政機関又は他の組織）に関連付けることができる。
【００２３】
ポリシーレイヤ１７０は、分散レイヤ１８０とも対話することがある。分散レイヤ１８０は、分散マネージャを各々の仮想化されたサーバ上に含み、インターセプトレイヤ１９０のインターセプト機構をセットアップ及び構成することができる。インターセプトレイヤ１９０では、仮想マシンからのネットワークトラフィックがインターセプトされ、分散レイヤ１８０に提供される。分散レイヤ１８０は、ネットワークトラフィックを適切なセキュリティコントロールにルーティングする。セキュリティコントロールは仮想セキュリティ装置の形にすることができる。分散レイヤ１８０は、クラウドマネージャ１５０と対話するようにも構成され、必要に応じて、仮想セキュリティ装置を割り当てて構成する。例えば仮想セキュリティ装置は、仮想マシンが追加又は移動されるとき、仮想マシンのセキュリティポリシーが変更されるとき及び他のイベント（例えば新たなタイプの仮想マシンがネットワークに加わるとき）に基づいてポリシーが追加又は更新されるときに作成される可能性がある。
【００２４】
通信システム１００は、様々なネットワーキングプロトコルを提供してネットワーク通信を可能にするコアリソース１３５も含むことができる。一実施形態において、コアリソース１３５は、ネットワークサービスを接続及び使用するよう、コンピュータに対する認証許可アカウンティング管理を提供するＡＡＡサーバ１３８を含んでよい、ＡＡＡサーバ用のネットワーキングプロトコルの一例は、ＲＡＤＩＵＳ（Remote  Authentication  Dial  In  User  Service）ネットワーキングプロトコルである。コアリソース１３５は、ＤＨＣＰサーバ１３６も含み、ユーザエンドポイントを含むネットワーク要素を構成し、インターネットプロトコル（ＩＰ）ネットワーク上の通信を可能にすることができる。ＤＮＳサーバ１３７は、人間が読取可能な識別子（例えばユニフォームリソースロケータ：ＵＲＬ）に対応する内部システムアドレスを提供するディレクトリサービスを提供することができる。様々なコアリソースが、仮想マシン内に提供されてよく、及び／又は通信システム１００内の専用のハードウェア上に提供されてもよい。
【００２５】
仮想化されたデスクトップインフラストラクチャ（ＶＤＩ）１３０は、例えば通信システム１００の仮想クラウドインフラストラクチャでリモートサーバにおけるデスクトップの仮想化を可能にすることができる。一例において、各物理的なデスクトップについて別個の仮想マシンが作成されてよい。他の仮想マシンを、仮想クラウドインフラストラクチャで所与のエンティティについて割り当てて作成してもよい。典型的にネットワークを介して提供されるサービスは、仮想マシン内で仮想化され、ＶＭＭ１２０によって管理され得る。通信システム１００の仮想マシン内で実装することが可能なサービスの例には、メッセージングサービス及びビジネス特有のサービス（例えばエンジニアリングアプリケーション、アカウンティングアプリケーション、製造アプリケーション、法的アプリケーション等）が含まれる。
【００２６】
１つの例示の実装では、ハードウェアレイヤ１１０の要素はネットワーク要素である。ネットワーク要素は、ネットワーク装置、ファイヤウォール、サーバ、ルータ、スイッチ、ゲートウェイ、ブリッジ、ロードバランサ、プロセッサ、モジュール又はネットワーク環境において情報を交換するよう動作可能な任意の他の適切なデバイス、コンポーネント、要素若しくはオブジェクトを包含するように意図される。ネットワーク要素は、その動作を容易にする任意の適切なハードウェア、ソフトウェア、コンポーネント、モジュール又はオブジェクトだけでなく、ネットワーク環境内でデータ又は情報を受信、送信及び／又は他の方法で通信するための適切なインタフェースを含み得る。これは、データ又は情報の効率的交換を可能にする適切なアルゴリズム及び通信プロトコルを含み得る。
【００２７】
通信システム１００に関連付けられる内部構造に関して、ハードウェアレイヤ１１０の要素は、本明細書で概説される動作に使用される情報を格納するためのメモリ要素を含むことができる。ハードウェアレイヤ１１０の要素は、必要に応じて、かつ特定のニーズに基づいて、任意の適切なメモリ要素（例えばランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電子的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、特定用途向け集積回路（ＡＳＩＣ）等）、ソフトウェア、ハードウェア内に、あるいは任意の他の適切なコンポーネント、デバイス、要素又はオブジェクト内に情報を保持してよい。本明細書で検討されるいずれのメモリアイテム（例えばストレージ１１４）も、「メモリ要素」という広義の用語に包含されるものとして解釈されるべきである。通信システム１００により、仮想セキュリティシステム１６０において使用され、トラックされ、送信又は受信される情報は、任意のデータベース、レジスタ、キュー、テーブル、キャッシュ、コントロールリスト又は他のストレージ構造に提供される可能性があり、その全ては任意の適切なタイムフレームで参照され得る。そのようないずれのストレージオプションも、本明細書で使用されるとき、「メモリ要素」という広義の用語に含まれ得る。
【００２８】
特定の例示の実装において、本明細書で概説される機能は、１つ又は複数の有形の媒体にエンコードされるロジック（例えばＡＳＩＣ内に提供される具現化されたロジック、デジタル信号プロセッサＤＳＰ）命令、プロセッサにより実行される（潜在的にオブジェクトコード及びソースコードを含む）ソフトウェア又は他の同様のマシン等）によって実装されてよく、そのような媒体は非一時的媒体を含み得る。これらの例の一部において、メモリ要素は、本明細書で説明される動作に使用されるデータを格納することができる。これは、本明細書で説明される動作を行うのに実行されるソフトウェア、ロジック、コード又はプロセッサ命令を格納することができるメモリ要素を含む。
【００２９】
例示の実装において、通信システム１００は、本明細書で概説されるような動作を達成又は促進するよう、仮想マシンを含めソフトウェアモジュールを（例えば分散レイヤ１８０、ポリシーレイヤ１７０、インターセプトレイヤ１９０等内に）含み得る。他の実施形態では、そのような動作は、ハードウェア、ファームウェアによって実行されるか、これらの要素に対して外部で実装されるか、何らかの他のネットワークデバイス又は意図された機能を達成する何らかの他の仮想サーバ、仮想マシン、仮想スイッチ又は仮想ネットワークインタフェースカードに含まれてよい。あるいは、これらの要素は、本明細書で概説されるように、その動作を達成するために調整することができるソフトウェア（又は等価なソフトウェア）を含んでもよい。更に他の実施形態では、これらのデバイスの１つ又は全てが、その動作を容易にする任意の適切なアルゴリズム、ハードウェア、ファームウェア、ソフトウェア、コンポーネント、モジュール、マネージャ、仮想マシン、インタフェース又はオブジェクトを含んでよい。
【００３０】
加えて、ハードウェアレイヤ１１０は、本明細書で検討される動作を行うのにソフトウェア又はアルゴリズムを実行することができるプロセッサを（例えばサーバ１１２内、ネットワークデバイス１１６内に）含んでよい。プロセッサは、本明細書で詳述される動作を達成するようデータに関連付けられる任意のタイプの命令を実行することができる。一例において、プロセッサは、要素又は項目（例えばデータ）を、ある状態又は物から別の状態又は物へ変換する可能性がある。別の例では、本明細書で概説されるような動作は、固定のロジック又はプログラム可能なロジック（例えばプロセッサによって実行されるソフトウェア／コンピュータ命令）により実装されてよく、本明細書で識別される要素は、何らかのタイプのプログラム可能なプロセッサ、プログラム可能なデジタルロジック（例えばフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ）又はデジタルロジック、ソフトウェア、コード、電子命令若しくはの任意の適切な組み合わせを含むＡＳＩＣとすることができる。本明細書で説明される潜在的な処理要素、モジュール及びマシンのいずれも、「プロセッサ」という広義な用語に包含されるように解釈されるべきである。
【００３１】
図２では、簡単なブロック図により、本開示に従って実装され得る仮想化されたサーバ２００（本明細書において「仮想サーバ」とも呼ばれる）のレイヤを図示している。仮想サーバ２００は、例えばＷＭｗａｒｅ  ＥＳＸ又はＥＳＸｉ、ＳＡＰ又は他のウェブサービスを用いて、あるいはコマンドラインインタフェース、リモートスクリプト等を用いて構成され得る。仮想サーバ２００は、仮想マシン２３０−１〜２３０−ｎを含んでよい。仮想マシン２３０−１〜２３０−ｎは、それぞれのオペレーティングシステム２３４−１〜２３４−ｎを有することができ、オペレーティングシステム２３４−１〜２３４−ｎは、それぞれのアプリケーション２３２−１〜２３２−ｎを実行する。本明細書において同様の参照番号を有する同様のコンポーネントへの参照は、その参照番号を有する数字の添え字によって個々に参照されてもよく、数字の添え字を省略することにより集合的に参照されてもよい。
【００３２】
仮想サーバ２００は、ハイパーバイザ２２０も含んでよく、ハイパーバイザ２２０は、ハードウェア２１０上で動作することができ、オペレーティングシステム２３４及び関連するアプリケーション２３２の複数のインスタンスを実行する能力を提供する。ハイパーバイザ２２０を、仮想サーバ２００のような単一のマシンと関連付けることができる仮想マシンモニタ（ＶＭＭ）と呼ぶこともできる。ハイパーバイザ２２０及びハードウェア２１０はそれぞれ、図１の通信システム１００のＶＭ１２０の一部及びハードウェアレイヤ１１０とすることができる。オペレーティングシステム及びアプリケーションは、ハードウェアリソースを必要に応じてオペレーティングシステム２３４及びアプリケーション２３２に動的に割り当てることにより、同時に動作することができる。この配置において、アプリケーション２３２は論理的に、それぞれのオペレーティングシステム２３４の上で動作する。オペレーティングシステム２３４は、それぞれの仮想マシン２３０に関連付けられ、仮想ハードウェア２２２（例えばスイッチ、プロセッサ、ＣＤ／ＤＶＤドライブ、フロッピー（登録商標）ドライブ、メモリ、ＳＣＳＩデバイス、ネットワークインタフェースカード、パラレルポート、シリアルポート等）が提供される。仮想スイッチは、例えば仮想マシンと他の仮想コンポーネントとの間の通信を可能にするソフトウェアプログラムであり、物理的なＬ２又はＬ３スイッチと同様の手法で動作し得る。
【００３３】
ハイパーバイザ２２０の下にある物理的なハードウェア２１０は、プロセッサ２１２、メモリ要素２１４及びネットワークインタフェースカード（ＮＩＣ）２１６を含み得る。ハードウェア２１０は、例えばレイヤ２（Ｌ２）スイッチのような追加のコンポーネントも含んでよい。全体的な構成はサーバ（又は何らかの他の適切なネットワーク要素）において提供され得る。この実装は単に、本開示を適用することができる１つの可能性ある実施例を表すののに過ぎない。任意の数の追加のハイパーバイザ又は仮想要素も同様に、本明細書で検討される広範な教示から利点を有するであろう。
【００３４】
典型的に、サーバ仮想化では、許可されたユーザには、仮想マシン及び関連するアプリケーション、オペレーティングシステム及び仮想ハードウェアの完全なセットアップを管理するインタフェースが提供される。この管理には、作成、削除、修正、シャットダウン、スタートアップ等を含め、ハイパーバイザ構成及び仮想マシン構成が含まれる。
【００３５】
クラウド仮想化では、許可されたユーザには、「クラウド」における仮想インフラストラクチャの完全なセットアップ管理するコンソール及びインタフェースが提供され得る。クラウドは、リモートデータセンタ、パブリック又はプライベートとすることができる。クラウドは、リモート又はローカルのプライベートネットワークとすることができる。一般に、許可されたユーザは、特有の計算リソース、ストレージリソース及びネットワークリソースをコンソールに要求することができる。これらのリソースはその後、使用されている正確な物理ハードウェアコンポーネントをユーザが知る必要なく、クラウド内で割り当てられる。
【００３６】
図２には図示されていないが、プロセッサ２１２、メモリ要素２１４及び／又はネットワークインタフェースカード２１６に適切に結合され得る追加のハードウェア要素がある。追加のハードウェアには、これらに限られないが、メモリ管理ユニット（ＭＭＵ）、追加の完全対称型マルチプロセッシング（ＳＭＰ）要素、物理メモリ、Ｅｔｈｅｒｎｅｔ（登録商標）、周辺コンポーネント相互接続（ＰＣＩ）バス及び対応するブリッジ、小型コンピュータ用周辺機器インタフェース（ＳＣＳＩ）／ＩＤＥ要素等が含まれ得る。
【００３７】
説明の容易性のために、図２の仮想サーバ２００に関連して説明したような、仮想サーバに関連付けられるコンポーネントの必ずしも全ては、後続の図面に示されていない。しかしながら、図１〜図２の仮想サーバに関連して説明したコンポーネント、モジュール、ハードウェア、ファームウェア又はソフトウェアのいずれも、本出願の他の図面において、必ずしも示されてはいないとしても、含まれていてもよいことが理解されよう。
【００３８】
図３は、図１の通信システム１００における仮想サーバ３００の実施形態に関連する詳細の１つの可能性のあるセットを示す、簡単なブロック図である。仮想サーバ３００は、ゲスト仮想マシン（ＶＭ）３３０−１〜３３０−ｎ、ハイパーバイザ３２０、ネットワークインタフェースカード３１０及び仮想セキュリティシステム３６０を含むことができる。ＮＩＣ３１０は、仮想サーバ３００のハードウェアの一部とすることができ、ポート３１４−１〜３１４−ｙ及びレイヤ２（Ｌ２）スイッチ３１２を含むことができる。仮想化されたハードウェアは、ハイパーバイザ３２０によって管理され、１つ又は複数の仮想スイッチ（ｖスイッチ）３２２−１〜３２２−ｍを含むことができる。これらのｖスイッチは、仮想サーバ３００上の仮想マシンが該スイッチを通して通信する、仮想化されたスイッチである。物理的なＬ２スイッチ３１２は、ＮＩＣが、本明細書において以下で更に説明されるように、Ｌ２スイッチ３１２を介した通信を可能にする特有の機能を含むという特定の実施形態において、仮想サーバ３００の仮想マシン間の通信に使用されてもよい。Ｌ２スイッチが、本明細書において様々な実施形態との関連で示され、及び／又は説明されるが、他のスイッチもそのような実施形態に適合し得ることが理解されよう。例えば適切な代替のスイッチは、必ずしもこれに限られないが、レイヤ３（Ｌ３）の能力を有するＬ２スイッチを含む。
【００３９】
仮想セキュリティシステム３６０は、仮想サーバ３００において実装される仮想セキュリティシステム１６０の例示のコンポーネントを図示している。仮想サーバ３００の例示の実装では、仮想セキュリティシステム３６０は、仮想セキュリティ装置（ＶＳＡ）３４０−１〜３４０−ｘの柔軟なコレクション、分散マネージャ３８０、ポリシーマネージャ３７０、ソースルート機構３９５及びインターセプト機構３９０を含むことができる。
【００４０】
一実施形態において、ゲストＶＭ３３０、ＶＳＡ３４０、分散マネージャ３８０及びポリシーマネージャ３７０は全て、仮想サーバ３００の仮想マシンとして構成され、ハイパーバイザ３２０によって管理される。ポリシーマネージャ３７０は、本明細書では一般的に仮想マシンと呼ばれるが、これらの実施形態にいずれかにおいては、代替として、物理サーバ上で直接ホストされることも可能である。例えばポリシーマネージャ３７０は、システム全体の管理サービスにより、該管理サービスのうち、仮想マシンとして構成されない少なくとも一部分に含まれることがある。
【００４１】
ゲストＶＭは、少なくとも一部の信頼性のないＶＭを表す。したがって、ＶＭセキュリティポリシー３８６内のポリシーは、ゲストＶＭ３３０からのネットワークトラフィックについて、１つ又は複数のＶＳＡ３４０によるセキュリティ検査を必要とすることがある。各ゲストＶＭは、ＶＳＡがゲストＶＭからのネットワークトラフィックを受け取ること及びＶＳＡ３４０がネットワークトラフィックを受け取るべき順序に関する特定の要件とともに、自身の固有のポリシーを有することがある。ゲストＶＭ３３０は、標準プラットフォームのマシンと互換性を有することができるが、セキュリティ機構に参加するいずれかの特別なドライバ又は他のソフトウェアを有する必要はない。したがって、仮想セキュリティシステム３６０を、既存のインストール又は標準的な企業のプラットフォームに適用することができる。
【００４２】
ＶＳＡ３４０は、任意の適切なタイプのセキュリティ検査を実装する、信頼性のある仮想マシンを表す。本明細書で使用されるとき、「セキュリティ検査」は、任意のタイプのネットワークセキュリティ機構を含むように意図され、これらには、限定ではないが、侵入防止システム（ＩＰＳ：intrusion  prevention  system）、侵入検出システム（ＩＤＳ：intrusion  detection  system）、ファイヤウォール（ＦＷ）、データ損失防止（ＤＬＰ：data  loss  prevention）、アンチウィルススキャン、ディープパケット検査、ホワイトリスト評価及びブラックリスト評価が含まれる。ＶＳＡ３４０は、インターセプト機構３９０又はソースルート機構３９５についての特定の知識を有することがある。さらに、ＶＳＡ３４０は一般に、「ＢＩＴＷ（bump  in  the  wire）」モードで動作する。したがって、明示的なルーティングモードのファイヤウォールは、仮想セキュリティシステム３６０の外側で動作することができる。
【００４３】
ゲストＶＭ３３０、他の仮想マシン（例えば分散マネージャ３８０、ポリシーマネージャ３７０）及びＶＳＡ３４０は、ｖスイッチ３２２のうちの１つ又は複数を介して相互に通信することができる。一部の実施形態において、ｖスイッチ３２２が、単一のドメイン（すなわち、単一のスイッチ）に結合されてよく、このドメインは、ＶＳＡ３４０及び潜在的には他のＶＭが相互に通信するのに使用され、そしてゲストＶＭ３３０が相互に通信するのに使用される。一部の実施形態では、ゲストＶＭ、他のＶＭ及び／又はＶＳＡがＬ２スイッチ３１２を介して通信するのを可能にする特別な機能が、ＮＩＣ３１０内に提供されてもよい。この特別な機能の例は、単一ルート入出力仮想化（ＳＲ−ＩＯＶ：Single  Root  Input/Output  Virtualization）機構である。ＳＲ−ＩＯＶは、直接メモリアクセス（ＤＭＡ）を可能にするのに使用され、これについては本明細書で更に説明される。
【００４４】
分散マネージャ３８０は、ストリームデータベース３８２を保持し、ゲストＶＭ３３０とＶＳＡ３４０のような他の仮想マシンとの間の接続をトラックすることができる。ＶＭセキュリティポリシーデータベース３８６は、ＶＳＡ３４０の１つ又は複数のリストを含むことができ、このリストを介して、各ゲストＶＭ３３０からのネットワークトラフィックがルーティングされる。リストは、ルータ又はレイヤ３（Ｌ３）スイッチと同様であってよく、例えば各ＶＳＡ３４０のメディアアクセスコントロール（ＭＡＣ）アドレスを含み得る。リストは、全てのゲストＶＭ３３０に対して適用可能な単一のリスト、ゲストＶＭ３３０ごとに個別化されたリスト又は同じセキュリティポリシー要件を有するゲストＶＭ３３０の各セットについて異なるリストとすることができる。
【００４５】
ソースルート機構３９５も仮想セキュリティシステム３６０の一部であり、少なくとも部分的に分散マネージャ３８０内に提供され得る。ソースルート機構３９５は、パケットが分散マネージャ３８０に返される前に、分散マネージャ３８０が１つ又は複数のＶＳＡを通してパケットをルーティングできるように構成され得る。ソースルート機構３９５の幾つかの変形が実装され得る。異なるルーティング機構は、フローが同じホスト（例えばサーバ）上のｖスイッチ間を通る場合に物理的なネットワークデータを全て回避する、最適化されたネットワークトラフィック経路につながることがある。ソースルート機構の変形は、本明細書において更に説明される。
【００４６】
インターセプト機構３９０も仮想セキュリティシステム３６０の一部である。一実施形態では、インターセプト機構３９０が、ｖスイッチ３２２内に提供されて、ゲストＶＭ３３０から受け取る各パケットをインターセプトし、インターセプトしたパケットを分散マネージャ３８０にリダイレクトしてもよい。幾つかのインターセプト機構３９０が仮想セキュリティシステム３６０内で実装されてよく、これについては以下で更に説明される。
【００４７】
ポリシーマネージャ３７０は、分散マネージャ３８０内のゲストＶＭ３３０についてのセキュリティポリシーを更新するポリシーモジュール３７４を含む。また、ポリシーモジュール３７４は、ＶＭＭセキュリティポリシーデータベース３７６も含んでよい。ＶＭＭセキュリティポリシーデータベース３７６は、通信システム１００内の他の仮想サーバの他のゲストＶＭに加えて、仮想サーバ３００のゲストＶＭ３３０についてのセキュリティポリシーを有してよい。一実施形態において、ポリシーモジュール３７４は、ＶＭＭセキュリティポリシーデータベース３７６を使用して、ゲストＶＭ３３０のセキュリティポリシーによりＶＭセキュリティポリシーデータベース３８６を更新することができる。
【００４８】
あるいはまた、ポリシーモジュール３７４は、ＶＭＭセキュリティポリシーデータベース３７６を使用してストリームデータベース３８２を更新することができる。このシナリオでは、分散マネージャが、レイヤ３（Ｌ３）スイッチのための一般的なアルゴリズムを使用してストリームデータベース３８２を構築するように構成され得る。分散マネージャ３８０は、全ての新たなパケットストリームについて、ポリシーマネージャ３７０をクエリするように構成されることが可能である。クエリに応答して、ポリシーモジュール３７４は、各パケットストリームデータベースエントリに、そのエントリに関連付けられる特定のパケットストリームを処理すべき特定のＶＳＡ３４０の識別情報（例えばＭＡＣアドレス）を追加することができる。
【００４９】
ポリシーマネージャ３７０はまた、必要に応じて新たなＶＳＡの割り当てを、潜在的にはインターセプト機構３９０の構成をも容易にするように構成され得る。（ポリシーによって要求されるような）適切なＶＳＡが、パケットストリームを処理するのに利用可能でない場合、ポリシーモジュール３７４は、他のモジュール、マネージャ及び仮想マシン（例えば分散マネージャ３８０、クラウドマネージャ１５０、セキュリティマネージャ１７５等）と連携して、新たなＶＳＡをセットアップさせ、構成及び開始させることができる。このシナリオは、例えば特定のＶＳＡが初めて必要とされるとき（例えばＤＬＰ機器を必要とする最初のストリーム）を生じることがある。別のシナリオでは、所与のＶＳＡが、新たなパケットストリームを処理するのにより多くの計算リソース（例えばＲＡＭ、プロセッサリソース等）の消費を要することがある。
【００５０】
ポリシーマネージャ３７０（又は分散マネージャ３８０）は、ＶＳＡによって必要とされる計算リソースを管理することも容易にすることができる。特に、ポリシーマネージャ３７０（又は分散マネージャ３８０）は、既存のＶＳＡの全ての容量を予想又はクエリするように構成され得る。ポリシーマネージャ３７０（又は分散マネージャ３８０）が、より多くの容量が必要とされると決定した場合、次いで新たなパケットストリームが新たなＶＳＡをトリガすることがあり、あるい既存のＶＳＡのうちの１つを、より多くの中央処理ユニット（ＣＰＵ）に使用できるようにすることがある。
【００５１】
ポリシーマネージャ３７０（又は分散マネージャ３８０）は、仮想サーバ内の所与の複製ＶＳＡの利用が少ないことを検出し、このＶＳＡがアイドル状態になるまでパケットストリームを送信するのを停止し、その後その仮想マシンを削除することができる。あるいは、複製ＶＳＡの利用が少ない場合、他の同様のＶＳＡが追加のネットワークトラフィックの負荷に適応することができれば、そのパケットストリームをその他のＶＳＡにルーティングしてもよい。このようにして、仮想化インフラストラクチャを使用して、需要に従って拡大及び縮小する弾性のあるセキュリティ機構が作成される。
【００５２】
システム管理者は、需要に応じてセキュリティを割り当てる際に制限のない自由な仮想セキュリティシステム３６０を可能にすることができ、あるいはシステムリソースの使用に影響するポリシーを適用してもよい。例えばシステム管理者は、セキュリティリソースを、システムリソースの１０％未満に制限してもよい。１０％で割り当てられたＶＳＡが、ネットワークトラフィックに対処することができず、ＶＳＡがネットワークトラフィックをスローダウンさせる場合、システム管理者は、ポリシーを変更してトラフィックをより選択的に処理することを可能にすることができ、あるいはシステム管理者は、より高いパーセンテージのシステムリソースをＶＳＡに割り当てることを決定してもよい。
【００５３】
図４は、仮想セキュリティシステムを有する仮想サーバの特定のコンポーネントの簡単なブロック図であり、２つのゲストＶＭ間のパケットストリームの流れの例示的なシナリオを図示している。仮想サーバ４００及びそのコンポーネントは、図３の仮想サーバ３００と関連して説明したのと同じ又は同様の方法で構成されてよい。仮想サーバ４００は、ゲストＶＭ４３０−１〜４３０−ｎ、分散マネージャ４８０、ポリシーマネージャ４７０及び４つのＶＳＡ４４０−１〜４４０−４を含め、幾つかの仮想マシンを含む。
【００５４】
ゲストＶＭ４３０は、スイッチ４２２−１を介して相互に接続される。スイッチ４２２−１は、一部の実施形態では仮想スイッチであってよい。他の実施形態では、スイッチ４２２−１は、例えば仮想サーバ４００上又は仮想サーバ４００の外部にあるネットワークインタフェースカード内に配置される物理的なスイッチであってよい。ＶＳＡ４４０は、ｖスイッチ４２２−２を介して相互に接続されるように示されている。一般的に、スイッチ４２２−１及び４２２−２は、明確性の目的で別個に示されている。したがって、スイッチ４２２−１と４２２−２は典型的に、特定のインターセプト機構技術及びソースルーティング技術に適合する単一のドメインに結合されることが可能である。しかしながら、一部の実施形態では、ｖスイッチ４２２−２とスイッチ４２２−１は異なるスイッチであってよい。
【００５５】
図４において、インターセプト機構４９０及びソースルート機構４８４は一般化され、幾つかの異なる構成を表す。これについては、本明細書で更に説明される。図４の例示のシナリオでは、パケットがＶＭ４３０−１からＶＭ４３０−２に送信される。パケットは、ＶＭ１．ＭＡＣのソースアドレスと、ＶＭ２．ＭＡＣの宛先アドレスを有する。インターセプト機構４９０は、ＶＭ２．ＭＡＣへ流れる代わりに、パケットをインターセプト及び／又は分散マネージャ４８０へリダイレクトさせる。
【００５６】
パケットがパケットストリーム内の最初のパケットである場合、分散マネージャ４８０は、ストリームデータベース４８２を構築する。一実施形態において、ＶＭポリシーデータベース４８６は、ゲストＶＭ４３０−１についてのセキュリティポリシーを含む。例えばＶＭポリシーデータベース４８６は、ゲストＶＭ４３０−１のパケットストリームを処理すべきＶＳＡ４４０の識別情報を含むことがある。別の実施形態では、分散マネージャ４８０は、ポリシーマネージャ４７０に、ゲストＶＭ４３０−１のセキュリティポリシーについてクエリする。ポリシーマネージャ４７０は、パケットを処理すべき各ＶＳＡ４４０の識別情報を、例えば直接クエリにより、あるいは特定のパラメータを有するフローに合致するＶＳＡを識別する予めプロビジョニングされたポリシーで提供する。適切なＶＳＡ４４０の識別情報が取得されると、これらの識別情報を、パケットストリームに関連付けられる各ストリームデータベースのエントリに追加することができる。この例示のシナリオでは、ＶＳＡ４４０−１及びＶＳＡ４４０−３の識別情報をストリームデータベース４８２に追加することができる。
【００５７】
分散マネージャ４８０によって受信されたパケットがパケットストリームの最初のパケットでない場合、分散マネージャ４８０は、パケットのＬ３検査を実行して、ストリームデータベース４８２内のストリームをルックアップする。ストリームエントリ内のデータから、分散マネージャ４８０は、要求されたセキュリティデバイスを通るソースルートを作成する。このシナリオでは、ＶＳＡ４４０−１及びＶＳＡ４４０−３が選択される。ソースルートが作成されると、分散マネージャ４８０はパケットを、スイッチ４２２−２を介してＶＳＡ４４０−１に伝送することができる。ＶＳＡ４４０−１は、ＩＰＳデバイスであり、パケットのコンテンツに対してセキュリティスキャンを実行することができる。パケットがセキュリティスキャンを通過する場合、ＶＳＡ４４０−１はこのパケットを、同じソースルート機構４９５を使用してＶＳＡ４４０−３に転送することができる。ＶＳＡ４４０−３はファイヤウォールであり、ファイヤウォールポリシーをパケットに適用する。ファイヤウォールポリシーがパケットに適用された後、ＶＳＡ４４０−３は、ソースルート機構４９５の最後のステップを使用して、パケットを分散マネージャ４８０に返すことができる。分散マネージャ４８０は、その後、パケットを宛先のゲストＶＭ４３０−２に送信する。
【００５８】
ＶＳＡのいずれか、すなわちＶＳＡ４４０−１又はＶＳＡ４４０−３は、パケットのルートをブロック又は変更してよい。例えばパケットがＶＳＡ４４０−１のセキュリティスキャンを通過しない場合又はパケットがＶＳＡ４４０−３のファイヤウォールポリシーに適合しない場合、これらのＶＳＡのいずれかがパケットをブロックするか変更してよい。
【００５９】
ソースルート機構（例えば３９５、４９５）が分散マネージャによって使用され、パケットストリーム内のパケットを、複数の仮想セキュリティ装置へ特定の順序でルーティングすることができる。ソースルート機構は、ゲスト仮想マシンの間のネットワークトラフィックがインターセプト機構によってインターセプトされた後に起動される。一般に、分散マネージャは、パケットが受信される度に、そのテーブル（例えばストリームデータベース４８２、３８２）から一部のデータをとり、各ＶＳＡがパケットを次のＶＳＡに正しくルーティングするか、分散マネージャに返すことができるように、パケットを修正する。
【００６０】
ソースリソース機構は、ゲストＶＭのセキュリティポリシーによって要求される通りに、ゲストＶＭからＶＳＡへのパケットの所望のルーティングを達成するよう、様々な方法で構成され得る。一実装において、ソースルートを１９８１年９月のＲＦＣ（Requests  for  Comment）７９１  インターネットプロトロコル、Ｄａｒｐａインターネットプログラムプロトコル仕様において定義する、ソースルート機構が実装される。この機構は、分散マネージャ４８０及びＶＳＡ４４０の各々がルータ機能を実装する場合に使用され得る。例えば仮想マシン（例えばゲストＶＭ４３０及びＶＳＡ４４０）が、固有のルーティング機能を有するオペレーティングを用いて実装される場合、オペレーティングシステムは、この機能を提供する。この技術は、標準のオペレーティングシステムの実装がソースルーティングを行うのを可能にする。
【００６１】
図５は、プライベート仮想ローカルエリアネットワーク（プライベートＶＬＡＮ）を用いる又は用いずに、ＭＡＣヘッダカプセル化を使用する別のソースルート機構のブロック図である。ＩＰソースルートがオプションでないとき、協調的ＭＡＣレベルのソースルートが可能である。この機構では、ヘッダは、以下の構造により、分散マネージャ５８０において各着信パケット５８１の前に置かれる。  
typedef  unsigned  char  mac_addr[6];
typedef  struct{
mac  addr  dst;  //Ethernet  header,  destination
mac_addr  src;        //Ethernet  header,  source
U16  etherType;      //Ethernet  header,  type
U8  num_src_route;  //number  of  elements  in  the  source  route  array
mac  addr  src  route[this.num_src_type];    //the  source  route
}mac_src_route_header;
上記のタイプはバイトに関してパケット化されることを想定している。上記において、ヘッダの最初の部分は、ＥｔｈｅｒｎｅｔＩＩ  ＭＡＣヘッダのように見える。この構成は、ＭＡＣヘッダに関連して説明されるが、ＩＥＥＥ８０２．３ヘッダを使用するネットワークのように、他のタイプのヘッダに適合するよう、適切な変更を行ってもよい。元のパケットは、mac_src_route_headerの後で始まる。このためのオフセットは、各ＶＳＡについて元のパケットを回復するよう、num_src_route*６＋１４として計算され得る。処理中に、mac_src_route_headerは保存される必要がある。一例において、フローテーブル５８２は、ドライバレベルで構築され、パケットストリーム内の各パケットについて同じヘッダを使用してよい。出力において、src_route_next_headerがインクリメントされ、src_routeアレイ内の次のＭＡＣアドレスがdstフィールドにコピーされる。
【００６２】
分散マネージャは、各パケットストリームについて、そのパケットストリームが開始するとき、mac_src_route_headerを作成する。src_routeアレイは、このパケットストリームを処理するのに必要とされる各ＶＳＡのＭＡＣアドレスを有する。これらのＭＡＣアドレスは、分散マネージャ５８０の構成の一部である。あるいは、分散マネージャ５８０は、アドレス解決プロトコル（ＡＲＰ：address  resolution  protocol）又はｂｏｎｊｏｕｒコール若しくはハイパーバイザコールを使用してＭＡＣアドレスを駆動することができる。src_route_nextがゼロにセットされ、分散マネージャ５８０自体のＭＡＣアドレスが最後の宛先として置かれる。
【００６３】
図５は、ＭＡＣヘッダカプセル化を使用するソースルーティング機構における例示の動作を図示している。５８１において、パケットがＶＭｉ（すなわちゲストＶＭ）から受信されると、分散マネージャ５８０は、フローテーブル５８２内のパケットストリームをルックアップする。分散マネージャ５８０は、次いでmac_src_route_headerをパケットに追加する。５８３において、分散マネージャ５８０は、mac_src_route_headerを有するパケットを、フローテーブル５８２から再送する。後に、分散マネージャ５８０は、最後のＶＳＡから返されたパケットを受信してこれを処理する。この場合、ＶＳＡのいずれもパケットをブロックしないと想定する。分散マネージャ５８０は、ヘッダを除去して、パケットを元の宛先ＶＭに転送する。
【００６４】
図６は、ハードワイヤードの仮想ポートを使用する別のソールルート機構を実装する仮想サーバ６００の例示のコンポーネントを表すブロック図である。仮想サーバ６００及びそのコンポーネントは、図３の仮想サーバ３００に関連して説明したものと同じ又は同様の手法で構成されてよい。仮想サーバ６００は、分散マネージャ６８０及び３つの例示の仮想セキュリティ装置（ＶＳＡ）、すなわちＩＰＳ６４０−１と、ＦＷ６４０−２と、ＤＬＰ６４０−３を含む。このソースルート機構は、特に、少ない数（例えば２、３）の異なる種類のＶＳＡが使用される構成に適する。
【００６５】
ハードワイヤード仮想ポートを使用するソースルート機構を、仮想インタフェース及び仮想スイッチを用いて実装することができる。分散マネージャ６８０は、（本明細書で更に説明されるように）インターセプト機構を使用してインターセプトされるネットワークトラフィックを受信する。ネットワークトラフィックは、仮想サーバ６００内のソースゲスト仮想マシンから始まり、仮想サーバ６００内の宛先ゲスト仮想マシンの宛先アドレス又は仮想サーバ６００の外部にある何らかの他の宛先アドレスを有することがある。あるいは、ネットワークトラフィックは、仮想サーバ６００の外部にあるソースから始まり、仮想サーバ６００内のゲスト仮想マシンの宛先アドレスを有してもよい。
【００６６】
ネットワークトラフィックが、分散マネージャ６８０によって受け取られると、各パケットストリームはＶＳＡのセットに割り当てられる。これらのＶＳＡは、トラフィックが、あるＶＳＡの出力ポートから別のＶＳＡの入力ポートに行くように「配線（ワイヤード）」される。最後のポートは、分散マネージャ６８０に送られる。全てのＶＳＡ６４０が「ＢＩＴＷ（bump  in  the  wire）」として実装される場合、トラフィックは、効率的なソースルートを通って流れる。このスキームにおいて、ＶＳＡは多くの仮想インタフェースを実装するのに付加的なリソースを必要とするか、オプションを全て実装するのに追加のＶＳＡが必要とされることがある。別の実装では、追加の仮想ローカルエリアネットワーク（ＶＬＡＮ）タグがルートの各々について使用され得る。
【００６７】
異なる経路の数は、異なるセキュリティデバイスの数により指数関数的に増加するので、このアプローチは、より少ない数のＶＳＡにより適している。しかしながら、一部のネットワーク環境では、少ない数のセキュリティデバイスのみが望まれ、これらのデバイスは一般的に、定義された順序で配置される。したがって、ソースルート機構についてのハードワイヤードの仮想ポートのオプションは、特にこれらのタイプの構成に有利であり得る。
【００６８】
図６の例示のシナリオに関連して、ハードワイヤードの仮想ポートは、ソースルーティングを実行する。分散マネージャ６８０及びＶＳＡ６４０の各々（ＩＰＳ、ＦＷ及びＤＬＰ）は、多くの仮想インタフェースを有する。これらは、図内では、これらの間の１つ又は複数の仮想スイッチを表す線を使用して配線されている。一実施形態において、各出力インタフェース内のドライバは、次の出力インタフェースのＭＡＣアドレスを用いて静的に構成されるか、インタフェースを受け取って２つのポート間の直接接続をシミュレートする際にプロミキャスモード（promiscuous  mode）を使用してもよい。
【００６９】
パケットは、インターセプト機構から、分散マネージャ６８０のポートｐ６０１に届き、ポートｑ６０２で送信される。ＩＰＳ６４０−１のみへ送信するために、分散マネージャ６８０は、パケットをポートｄ６０６で送信し、出力をポートｅ６０７で受信する。ＦＷ６４０−２のみに送信するために、分散マネージャ６８０は、パケットをポートｆ６０８で送信し、出力をポートｇ６０９で受信する。ＤＬＰ６４０−３のみに送信するために、分散マネージャ６８０は、パケットをポートｈ６１０で送信し、出力をポートｊ６１１で受信する。
【００７０】
ＩＰＳ６４０−１及びＤＬＰ６４０−３にこの順序で送信するために、分散マネージャ６８０は、パケットをポートｃ６０５で送信し、出力をポートｋ６１２で受信する。ＩＰＳ６４０−１及びＦＷ６４０−２にこの順序で送信するために、分散マネージャ６８０は、パケットをポートｂ６０４で送信し、出力をポートｎ６１４で受信する。分散マネージャ６８０における追加のポートは、追加のハードワイヤード仮想ポートルートがＦＷ６４０−２とＤＬＰ６４０−３との間で構成されるのを可能にする。最後に、利用可能なＶＳＡ、すなわちＩＰＳ６４０−１、ＦＷ６４０−２及びＤＬＰ６４０−３の全てにこの順序で送信するために、分散マネージャ６８０は、パケットをポートａ６０３で送信し、出力をポートｍ６１３で受信する。
【００７１】
図７は、分散マネージャの処理の一実施形態を示す簡単なフローチャートである。参照の容易性のために、図３の分散マネージャ３８０及び他のコンポーネントを参照するが、フロー７００は本明細書で説明される分散マネージャ及び仮想セキュリティシステムの様々な実施形態に適用可能である。フロー７００の１つ又は複数の動作は、分散マネージャ３８０内のルーティングモジュール３８４によって実行されてよい。
【００７２】
７０２において、分散マネージャ３８０は、ソースゲスト仮想マシンからインターセプトされたパケットを受け取る。７０４において、パケットストリームの最初のパケットについて、分散マネージャは、そのパケットストリームのためのセキュリティポリシーを決定してよい。一実施形態において、分散マネージャは、ＶＭセキュリティポリシーデータベース３８６を検索して、パケットストリームを処理すべきＶＳＡの識別情報を決定する。別の実施形態では、分散マネージャは、ポリシーマネージャ３７０にクエリしてもよい。ポリシーマネージャ３７０は、ソースゲスト仮想マシンについて、パケットストリームに適用される適切なセキュリティポリシーを提供することができる。セキュリティポリシーは、パケットを処理すべきＶＳＡの識別情報とＶＳＡがパケットを処理すべき順序とを含むことができる。セキュリティポリシー内の各ＶＳＡの識別情報（例えばＭＡＣアドレス）を、パケットストリームに関連付けられるストリームデータベース３８２内の各エントリに追加してもよい。
【００７３】
７０６において、分散マネージャは、パケットについて、適切なＶＳＡへのルートを作成する。ソースルートを、ストリームデータベース３８２から導出することができる。パケットストリームに関連付けられるストリームデータベース３８２の１つ又は複数のエントリ内のデータから、分散マネージャは、要求されるＶＳＡ３４０を通じてソースルートを作成する。一部の実施形態において、分散マネージャは、ソースルートを含むようにパケットを修正してよく、したがって、パケットを受信するＶＳＡが、そのパケットを適切に転送することが可能になる。
【００７４】
７０８において、分散マネージャは、パケットを、ソースルート内で識別される最初のＶＳＡに送信することができる。７１０において、分散マネージャが、ＶＳＡから返されるパケットを受信したかどうかを判断する。分散マネージャがパケットを受信した場合、次いで、パケットがＶＳＡの全てのセキュリティ検査を通過し、あるいはパケットがＶＳＡのうちの１つ又は複数によってその特定のセキュリティ検査の要件（例えばファイヤウォールポリシー、アンチウィルススキャン等）に適合するよう修正されたと想定することができる。
【００７５】
パケットが分散マネージャによって受信される場合、７１２において、分散マネージャは、パケットをその元の宛先にルーティングすることができる。例えば宛先は、同じ仮想サーバ上の別のゲスト仮想マシンであってよく、あるいは異なる仮想サーバ上の別のゲスト仮想マシンであってもよい。
【００７６】
パケットが受信されずに指定の時間が経過した後のように、分散マネージャによってパケットが受信されない場合、あるいはパケットがドロップされたことを示すメッセージをＶＳＡが送信する場合、（７１４として一般的に示されるように）分散マネージャによって任意の適切なアクションを取ることができる。アクションには、エラーメッセージを送信すること、警告をシステム管理者若しくは他の許可されたユーザに送信すること及び同じソースゲスト仮想マシンからの新たなパケットをブロックすることが含まれる可能性があるが、これらに限定されない。一実施形態において、分散マネージャは、パケットを受信せずに特定の時間が経過した後、あるいはＶＳＡからパケットがセキュリティ検査を通過しなかったという通知を受信した後、特定のアクションを取ることを決定してもよい。
【００７７】
図８は、インターセプト機構の更に別の例示の実装を示すブロック図である。図８の実施形態では、ＯｐｅｎＦｌｏｗスイッチ８２２は、仮想セキュリティシステムのインターセプト機構として構成される。典型的に、新たなネットワークトラフィックのフローについて決定を行うアルゴリズムは、スイッチ内で実施される。しかしながら、ＯｐｅｎＦｌｏｗスイッチは、ネットワークトラフィックフローについて決定を行うアルゴリズムが、スイッチのデータ経路とは別個にされるという、切り替えの概念であり、その制御経路コンポーネントは、異なる物理マシン上に存在してよい。ＯｐｅｎＦｌｏｗスキームでは、ＯｐｅｎＦｌｏｗスイッチが、既存の公知のトラフィックフローからのパケットを受信するとき、このパケットは、受信したトラフィックの公知のフロールートに基づいてルーティングされる。しかしながら、新たなフロールートが、ＯｐｅｎＦｌｏｗスイッチにより開始されて検出されるとき、ＯｐｅｎＦｌｏｗコントローラの制御プロセスは、フローパラメータにより仮想ネットワークインフラストラクチャにわたって通史され得る。ＯｐｅｎＦｌｏｗスイッチは、既存のネットワークトラフィックフローを管理することができるが、ＯｐｅｎＦｌｏｗスイッチの外部にある追加の機構が、新たなネットワークトラフィックについてのフロールートの生成を制御することができる。ＯｐｅｎＦｌｏｗスキームは、Open  Networking  Foundationによって２０１１年の１２月５日公表された「OpenFlow  Switch  Specification」バージョン１．２（Wire  Protocol  0x03）においてより詳細に説明されている。
【００７８】
ＯｐｅｎＦｌｏｗスイッチを使用する実施形態では、インターセプト及びソースルート機構は、スイッチングアーキテクチャへと直接最適化され得る。したがって、ＯｐｅｎＦｌｏｗスイッチのためのコントローラに、暗黙的に完全なフローについての複数のネットワークフローセグメントを一度に構成することができる分散マネージャモジュールが提供されると、別個のソースルーティング機構を省略することができる。
【００７９】
分散マネージャモジュールは、スイッチ用のＯｐｅｎＦｌｏｗコントローラプロセスに統合され得る。分散マネージャモジュールは、構成されたポリシーに従ってＶＳＡを通過する新たなフローのトランジットを網羅する複数のフローを挿入することにより、ＯｐｅｎＦｌｏｗスイッチを介して仮想セキュリティ装置を通過する新たなフローのパケットをルーティングするのに必要とされるフロールートを生成することができる。どのようなフローの最後は最終的に、パケットを、ＯｐｅｎＦｌｏｗスイッチを介して新たなフローのソースにより意図される宛先へルーティングする。一実施形態において、ＯｐｅｎＦｌｏｗコントローラのプロセスは、スイッチについて新たなフローを全て制御するか、特定の決定を覆すよう、通常のコントローラのソフトウェアへプラグインすることができる。したがって、分散マネージャ機能は、本明細書で上述したように、ＯｐｅｎＦｌｏｗスイッチコントローラによりＯｐｅｎＦｌｏｗスイッチ内に包含される。
【００８０】
図８は、仮想サーバ８００において、ＯｐｅｎＦｌｏｗスイッチ８２２を使用する実施形態の例示の実装を図示している。仮想サーバ８００及びそのコンポーネントは、図３の仮想サーバ３００を参照して説明したのと同じ又は同様の手法で構成され得る。仮想サーバ８００は、仮想マシン（ＶＭ）８３０−１〜８３０−ｎ及び仮想セキュリティ装置（ＶＳＡ）８４０−１〜８４０−４を用いて構成される。説明の容易性のために、２つの侵入防止システム（ＩＰＳ）のＶＳＡ８４０−１及び８４０−２と、ファイヤウォール（ＦＷ）のＶＳＡ８４０−３と、データ損失防止（ＤＬＰ）のＶＳＡ８４０−４を含む、４つのＶＳＡのみが仮想サーバ８００内に示されている。しかしながら、任意の数及びタイプのＶＳＡを仮想サーバ内に構成して、仮想マシンからのネットワークトラフィックに対する様々なセキュリティ検査を提供してもよいことが認識されよう。
【００８１】
ＯｐｅｎＦｌｏｗコントローラ８２５が仮想ネットワークインフラストラクチャ内に提供され、ポリシー情報８８６、フロールートテーブル８８２及び分散マネージャモジュール８８０を含む。一実施形態において、分散マネージャモジュール８８０は、オープンソースコントローラ８２５のためのプラグインであってよい。ポリシーマネージャ８７０は、ＯｐｅｎＦｌｏｗコントローラ８２５、より具体的には分散マネージャモジュール８８０と通信するように構成され得る。他の機能に加えて、ポリシーマネージャ８７０は、ポリシー情報のアップデートを、任意の適切な形式（例えばデータベース、テーブル、キュー、キャッシュ等）で格納され得るポリシー情報８８６に対して提供することができる。図示される実施形態では、ＯｐｅｎＦｌｏｗコントローラ８２５は、仮想サーバ８００の外部にある仮想ネットワークインフラストラクチャ内のいずれかの場所で構成され得る。別の実施形態では、ＯｐｅｎＦｌｏｗコントローラ８２５は、ＯｐｅｎＦｌｏｗスイッチ８２２とともに仮想サーバ８００内で構成され得る。
【００８２】
ＯｐｅｎＦｌｏｗコントローラ８２５では、フロールートが生成されるとき、ソースルートは暗黙的である。これは、スイッチハードウェアが、フロー内の（最初のパケットの後の）全てのパケットに自動的に対処するのを可能にし、各パケットを処理するというニーズを取り除くことができる。
【００８３】
図８では、例示のフローセグメント（すなわち、フロー１、フロー２及びフロー３）が、分散マネージャモジュールを有するＯｐｅｎＦｌｏｗスイッチを用いる仮想セキュリティシステムの可能性ある動作シナリオを説明するように示されている。説明の目的で、ＶＭ８３０−１がＶＭ８３０−２への通信を開始すると想定する。ＶＭ８３０−１は初期の接続パケットをＶＭ８３０−２に送信するよう試みることができる。ＯｐｅｎＦｌｏｗスイッチ８２２は、初期の接続パケットを受信したことを示す制御パケットをＯｐｅｎＦｌｏｗコントローラ８２５に送信することができる。標準のソフトウェアがＯｐｅｎＦｌｏｗコントローラ８２５内で構成され、ＶＭ８３０−１からＶＭ８３０−２へのフロールートを有するフローテーブルを構築することができる。分散マネージャモジュール８８０は、任意の標準のソフトウェアをオーバーライドすることができる。代わりに、分散マネージャモジュール８８０は、接続パケットのソースＶＭ８３０−１に適用可能なポリシー情報８８６の１つ又は複数のポリシーを識別することができる。一実施形態において、ポリシー情報８８６を、データベース又はＯｐｅｎＦｌｏｗコントローラ８２５の他のメモリ要素内に格納してもよく、あるいはＯｐｅｎＦｌｏｗコントローラ８２５に対してアクセス可能な仮想ネットワークインフラストラクチャ内の任意の他の位置に格納してもよい。
【００８４】
この例示のシナリオでは、ポリシー情報８８６内のポリシーは、ＶＭ８３０−１からのネットワークトラフィックが、ＩＰＳ  ＶＳＡ８４０−１及びＦＷ  ＶＳＡ８４０−３を通してルーティングされるべきことを示す。したがって、分散マネージャモジュール８８０は、３つのフローセグメント、すなわち、ＶＭ８３０−１からＩＰＳ  ＶＳＡ８４０−１へのフロー１と、ＩＰＳ  ＶＳＡ８４０−１からＦＷ  ＶＳＡ８４０−３へのフロー２と、ＦＷ  ＶＳＡ８４０−３からＶＭ８３０−２へのフロー３を作成することができる。これらのフローセグメントを、フロールートテーブル８８２に格納することができる。フローセグメントの作成は、指定された接続のセキュリティルーティングが自動的に起こるようにする。分散マネージャモジュール８８０は、フローセグメント１、２及び３を、ポートの数及びレイヤ２（Ｌ２）情報の双方につなげて、提供されたルートの特異性を増加されることができる。
【００８５】
ネットワークトラフィックが完成するか、接続がタイムアウトすると、ＯｐｅｎＦｌｏｗコントローラ８２５はＯｐｅｎＦｌｏｗスイッチ８２２によって通知され得る。フロールートテーブル８８２内のフロールートセグメントを削除することができる。一実施形態において、分散マネージャモジュール８８０は、３つのフローセグメントをフロールートテーブル８８２内に格納するとき、これらのフローセグメントを関連付けることができる。別の実施形態では、分散マネージャモジュール８８０は、フローセグメントをポリシー情報８８６から再導出し、フローセグメントをフロールートテーブル８８２から削除することができる。
【００８６】
別の実施形態において、３つのフローセグメントを、各フローセグメントが現れるにつれて徐々に、ＯｐｅｎＦｌｏｗスイッチ８２２にプログラムしてもよい。これは、分散マネージャモジュール８８０による何らかの簿記（bookkeeping）を必要とする。この実施形態は、ＯｐｅｎＦｌｏｗスイッチ８２２の特定の能力に依存し得る。
【００８７】
図９に移ると、図９は、一実施形態に係るＯｐｅｎＦｌｏｗコントローラのプロセスのための方法を示す簡単なフローチャートである。フロー９００は、少なくとも部分的に、ＯｐｅｎＦｌｏｗスイッチ８２２がゲスト仮想マシンから新たなネットワークトラフィックを受け取るときに、ＯｐｅｎＦｌｏｗコントローラ８２５内の分散マネージャモジュール８８０によって実行される処理とすることができる。
【００８８】
９０２において、ＯｐｅｎＦｌｏｗコントローラ８２５は、仮想サーバのゲスト仮想マシンのためのポリシーを受信する。これらのポリシーは、ポリシー情報８８６とともに格納される、更新されたポリシー又は新たなポリシーであり得る。９０４において、分散マネージャモジュール８８０は、ＯｐｅｎＦｌｏｗスイッチ８２２によって受信される、ゲストＶＭ８３０−１のようなある仮想マシンから、ゲストＶＭ８３０−２のような別の仮想マシンへのパケットについて、制御メッセージを受信する。
【００８９】
９０６において、分散マネージャモジュール８８０は、パケットのセキュリティポリシーをポリシー情報８８６から決定する。９０８において、ソースゲストＶＭから宛先ゲストＶＭへのフロールートを生成するＯｐｅｎＦｌｏｗコントローラ８２５のいずれかの既存のロジックを、オーバーライドすることができる。潜在的に複数のフロールートセグメントを有する新たなフロールートを、分散マネージャモジュール８８０によって作成して、ＯｐｅｎＦｌｏｗスイッチ８２２に提供することができ、新たなフロールートに従ってパケットをルーティングすることができる。ＯｐｅｎＦｌｏｗスイッチ８２２は、スイッチ８２２内の他のフローと区別するのに十分な（ポート数のような）仕様により、各フローセグメントを独立のフローと見なす。新たなフロールートは、１つ又は複数の仮想セキュリティ装置を含んでよく、パケットは、実際の宛先であるゲストＶＭ８３０−２に転送される前に、これらの仮想セキュリティ装置に送信される。
【００９０】
図１０及び図１１はそれぞれ、仮想サーバ１０００及び１１００における図１のインターセプトレイヤ１９０のハードウェアインターセプト機構の例示の実装を示している。ハードウェアインターセプト機構において、ハイパーバイザは、仮想ネットワークインタフェースカードを物理ネットワークインタフェースに「配線（wire）」するように指示される。これは、物理的な配線でははく、仮想的な配線であり、ゲストＶＭ上のｖＮＩＣから物理的なＮＩＣへ流れるネットワークトラフィック経路を再構成する。より具体的には、ハイパーバイザは、指定されたインタフェースについてその仮想化機能を実施することを回避するように構成される。その結果、ゲストＶＭは物理的なハードウェアへの直接アクセスを得ることができる。物理インタフェースのハードウェアは、所望のスイッチング及びインターセプトを実装する。
【００９１】
ハードウェアのインターセプトを実装するための１つの機構は、データプレーン直接メモリアクセス（ＤＭＡ：direct  memory  access）機構を使用してデータを仮想マシンから転送することである。ＤＭＡは、コンピュータの特定のハードウェアサブシステムが、プロセッサ（すなわち、中央処理ユニット（ＣＰＵ））とは独立にシステムメモリアクセスするのを可能にする機能である。
【００９２】
ＤＭＡを実装する例は、標準のＳＲ−ＩＯＶ（Single  Root  Input/Output  Virtualization）機構である。ＳＲ−ＩＯＶは、仮想マシンに及び仮想マシンからデータを移動させるプロセスからハイパーバイザを取り除く。代わりに、データは、仮想マシンに及び仮想マシンから直接移動され、従って仮想スイッチを含め、ハイパーバイザをバイパスする。ＳＲ−ＩＯＶは、物理的なＮＩＣ上の１つ又は複数のインタフェースが、仮想マシンへの直接の２方向のＤＭＡチャネル（仮想機能と呼ばれる）を実装することを許容する。したがって、単一の物理的なＮＩＣは、仮想マシン又は仮想スイッチのいずれかにより直接的に使用可能な、多数の仮想インタフェースを公開する能力を有する。一部かのハイパーバイザ及び一部のＮＩＣは、ＳＲ−ＩＯＶ仕様を実装する。ＮＩＣ及びハイパーバイザと互換性のあるＳＲ−ＩＯＶを使用することにより、所与の仮想マシンからのパケットは、物理的なＮＩＣへとインターセプトされ得る（すなわち、ハイパーバイザ及びその仮想スイッチをバイパスする）。インターセプトされたパケットは、ＮＩＣ内の組み込み式Ｌ２スイッチにより、ある仮想機能から別の仮想機能へリダイレクトされ得る。他の仮想機能を、仮想マシンからインターセプトされたトラフィックを受信する分散マネージャに割り当てることができる。
【００９３】
一部の物理的なＮＩＣでは、複数のＳＲ−ＩＯＶチャネルは、物理的なＮＩＣ上のスイッチへつながる。この場合において、各仮想マシン又は仮想スイッチからの仮想機能を、例えばこれらがそれぞれ分散マネージャに専用の仮想機能へリダイレクトするようにＮＩＣを再構成することにより、調整することができる。これは、分散マネージャが、専用のハードウェアなしでパケットをインターセプトして処理し、ルーティングするのを可能にする。
【００９４】
図１０において、ハイパーバイザ１０２０は、ゲスト仮想マシン１０３０−１〜１０３０−４と、仮想スイッチ１０２２及び１０２２−２と、分散マネージャ１０８０及び１つ若しくは複数のＶＳＡ１０４０を含む他の仮想マシンとともに示されている。図１０では、インターセプトは、仮想マシンレイヤではなく仮想スイッチレイヤで構成される。したがって、インターセプトは仮想スイッチの間で生じる。図１０において、テナント１０３５−１は、ゲスト仮想マシン（ＶＭ）１０３０−１、１０３０−２及び１０３０−３を含み、テナント１０３５−２は、ゲスト仮想マシン（ＶＭ）１０３０−４を含む。仮想ＮＩＣ（ｖＮＩＣ）は、ゲストＶＭ及び分散マネージャの各々が、ｖスイッチ１０２２−１及び１０２２−２の一方又は双方と通信するのを可能にする。例示の実装では、テナント１０３５−１と１０３５−２は、戦略的に及び／又は論理的にグループ化されてゲストＶＭ（例えば金融グループ、アカウンティンググループ、エンジニアリンググループ）を表すことができる。テナント１０３５−１内の仮想マシンのようなテナント内のマシンの間のトラフィックはインターセプトされず、したがってセキュリティ装置による影響は受けない。このため、仮想マシンをｖスイッチに注意深く割り当てることが望ましい。
【００９５】
ゲストＶＭ１０３０−１〜１０３０−３のｖＮＩＣは、パケットをｖスイッチ１０２２−１及び１０２２−２に送信し、ｖスイッチ１０２２−１及び１０２２−２からパケットを受信する。インターセプトレイヤでは、物理ネットワークインタフェースカード（ＮＩＣ）１０１０は、ＳＲ−ＩＯＶを実行し、ポート１０１４、レイヤ２（Ｌ２）スイッチ１０１２及び仮想機能（ＶＦ）１０１６−１〜１０１６−３を含む。ＶＦ１０１６は、ｖスイッチ１０２２によるゲスト１０３０への接続を可能にする。したがって、この実装では、ＶＦ１０１６からの接続は、直接ゲストＶＭ１０３０に対するものではなく、ｖスイッチ１０２２のエッジレイヤに対するものである。
【００９６】
分散マネージャ１０８０は、所定のポリシーに従った特定のゲストＶＭ１０３０からのフローのルーティングを可能にするように提供される。所定のポリシーに基づいて、１つ又は複数の仮想セキュリティ装置１０４０は、仮想サーバ１０００において構成され得る。さらに、分散マネージャ１０８０は、上述のソースルーティング機構のうちのいずれかを実装して、パケットを、ポリシーで指定されるＶＳＡに所望の順序でルーティングしてよい。
【００９７】
説明の目的で、ＶＭ１０３０−１からＶＭ１０３０−４への例示のパケットフローを検討する。ＶＭ１０３０−１がパケットをＶＭ１０３０−４に送信するとき、パケットは、ｖスイッチ１０２２−１を通って流れて、ｖスイッチ１０２２−２を通ってＶＭ１０３０−４に接続する必要がある。インターセプトレイヤは、パケットを、ハードウェア（すなわちＮＩＣ１０１０）を通過させるように構成される。パケットは、ＶＦ１０１６−１を通って物理的なＬ２スイッチ１０１２へと流れる。Ｌ２スイッチ１０１２は、パケットを分散マネージャ１０８０に送信する。
【００９８】
分散マネージャ１０８０は、上述のソースルート機構のいずれかを用いて構成され得る。ポリシーが、ＶＭ１０３０−１からのパケットフローに適用可能である場合、パケットは、ポリシーに従って１つ又は複数のＶＳＡ１０４０を通じてルーティングされ、適切なセキュリティ検査が行われる。パケットが１つ又は複数のＶＳＡセキュリティ検査を成功裏に通過する場合、パケットは分散マネージャ１０８０に戻るようルーティングされ、分散マネージャ１０８０は、その後パケットをｖスイッチ１０２２−２へとルーティングすることができる。パケットはその後、ｖスイッチ１０２２−２から宛先ＶＭ１０３０−４に転送される。
【００９９】
ＶＭ１０３０−４からＶＭ１０３０−１へ戻るネットワークトラフィックも、適切なセキュリティコントロールを通してインターセプトされてルーティングされ得る。ＶＭ１０３０−４からのパケットは、ｖスイッチ１０２２−２を通って流れて、ｖスイッチ１０２２−１を通ってＶＭ１０３０−１に接続する必要がある。（例えばＳＲ−ＩＯＶを使用する）インターセプトレイヤは、パケットがＮＩＣ１０１０を通過するようにする。パケットは、ＶＦ１０１６−３を通って物理的なＬ２スイッチ１０１２へと流れる。Ｌ２スイッチ１０１２は、ＶＦ１０１６−３を介して分散マネージャ１０８０にパケットを送信する。
【０１００】
ポリシーが、ＶＭ１０３０−４からのパケットフローに適用可能である場合、パケットはその後、ポリシーに従って１つ又は複数のＶＳＡ１０４０を通ってルーティングされ、適切なセキュリティ検査が行われる。パケットが１つ又は複数のＶＳＡセキュリティ検査を成功裏に通過する場合、パケットは分散マネージャ１０８０に戻るようルーティングされ、分散マネージャ１０８０は、その後パケットをｖスイッチ１０２２−１へとルーティングすることができる。パケットはその後、ｖスイッチ１０２２−１から宛先ＶＭ１０３０−１に転送される。
【０１０１】
一部の実施形態において、分散マネージャは、新たなフローの開始時などに、そのフローにはセキュリティ検査が必要とされないと決定することがある。一部の実施形態において、ＮＩＣ１０１０のハードウェアは、これらのフロー内の後続のパケットを、分散マネージャを通して流す必要なく、その宛先のｖスイッチに直接ルーティングする構成をサポートする。
【０１０２】
図１１において、ハイパーバイザ１１２０は、ゲスト仮想マシン１１３０−１及び１１３０−２と、仮想スイッチ１１２２及び１１２２−２と、分散マネージャ１１８０及び１つ若しくは複数のＶＳＡ１１４０を含む他の仮想マシンとともに示されている。図１１では、インターセプトは、部分的に仮想マシンレイヤで構成され、ここで、ゲストＶＭ１１３０−２のｖＮＩＣは、Ｌ２スイッチ１１１２を有する物理ネットワークインタフェースカード（ＮＩＣ）１１１０に配線される。したがって、ＮＩＣ１１１０は、ゲストＶＭ１１３０−２について所望のスイッチング及びインターセプトを実装する。ＳＲ−ＩＯＶは、ＮＩＣ１１１０上で動作して、ハイパーバイザ１１２０及びその仮想スイッチ（ｖスイッチ）１１２２を、ゲストＶＭ１１３０−２に及びゲストＶＭ１１３０−２からデータを移動させるプロセスから取り除く。仮想機能１１１６−２は、ゲストＶＭ１１３０−２への直接の２方向のＤＭＡチャネルとして構成される。したがって、ｖスイッチ１１２２−１のようなハイパーバイザ１１２０内の仮想スイッチは、ゲストＶＭ１１３０−２によってバイパスされる、ゲストＶＭ１１３０−１からのネットワークトラフィックは、ＮＩＣ１１１０へ効率的にインターセプトされる。ゲストＶＭ１１３０−１からのネットワークトラフィックのインターセプトは、仮想スイッチレイヤにおけるものであり、図１０のゲストＶＭ１０３０に関連して説明されるように構成され得る。Ｌ２スイッチ１１１２のような外部のルーティング機構は、パケットを双方のゲスト１１３０から分散マネージャ１１８０へ転送することができる。
【０１０３】
図１１では、分散マネージャ１１８０は、所定のポリシーに従った特定のゲストＶＭ１１３０からのフローのルーティングを可能にするように提供される。所定のポリシーに基づいて、１つ又は複数の仮想セキュリティ装置１１４０は、仮想サーバ１１００において構成され得る。さらに、分散マネージャ１１８０は、上述のソースルーティング機構のうちのいずれかを実装して、パケットを、ポリシーで指定されるＶＳＡに所望の順序でルーティングしてよい。図１１の例示の図では、分散マネージャ１１８０が、ｖスイッチ１１２２−２を通してＮＩＣ１１０へ及びＶＦ１１６−３に接続される。これは、分散マネージャ１１８０が、ＮＩＣ１１１０への直接接続を有するゲストＶＭ１１３０−２と通信することを可能にする。
【０１０４】
図１２は、図１０及び図１１に示されるようなハードウェアインターセプトと関連付けられる、幾つかの潜在的な動作を示す簡単なフローチャートである。フロー１２００は、仮想サーバのハードウェアレイヤにおいて実装されるインターセプト機構によって実行され得る潜在的な動作を示す。説明の容易性のために、フロー１２００の以下の説明では、図１１のコンポーネントを参照する。
【０１０５】
１２０２において、Ｌ２スイッチ１１１２は、ソースゲストＶＭ１１３０−１からパケットを受信する。パケットは、宛先ゲストＶＭ１１３０−２にアドレス指定され、仮想機能（ＶＦ）１１１６−１を介してＬ２スイッチ１１１２によって受信される。パケットは、ＶＦ１１１６−３及びｖスイッチ１１２２−２を介して分散マネージャ１１８０に転送される。一実施形態において、ＮＩＣ１１１０は、分散マネージャ１１８０への適切なルーティングを可能にするようＬ２スイッチへの変更を許可することができる。ゲストＶＭ１１３０−１からのパケットは、分散マネージャに接続される特定のハードウェアポート（すなわちキュー）に自動的にルーティングされる。したがって、ＮＩＣ１１１０は、ＮＩＣへとつながるＳＲ−ＩＯＶ機能を許可するように修正される。
【０１０６】
分散マネージャ１１８０は、パケットを受信すると、そのパケットに関連付けられるパケットストリームが、任意のセキュリティポリシーの対象であるかどうかを判断する。セキュリティポリシーの対象である場合、分散マネージャ１１８０は、パケットを、上述のソースルーティング機構のいずれかを使用して、ポリシーで指定されたＶＳＡにルーティングするように構成され得る。パケットが、ルーティングされるＶＳＡからのセキュリティ検査を成功裏に通過する場合、分散マネージャ１１８０は、ＶＦ１１１６−３を介してスイッチ１１１２に戻すようにパケットを送信することができる。
【０１０７】
１２０６において、パケットが、スイッチ１１１２によって、ＶＦ１１１６−３を介して分散マネージャ１１８０から受信されなかった場合、フロー１２００は終了する。しかしながら、パケットをＶＦ１１１６−３を介して受信した場合、次いで１２０８において、パケットは、元の宛先ゲストＶＭ１１３０−２へルーティングされ得る。この場合、パケットは、ＮＩＣ１１１０のハードウェアからゲストＶＭ１１３０−２に１１１６−２を介して直接転送され、したがって、ｖスイッチ１１２２−１及び１１２２−２をバイパスする。
【０１０８】
図１３は、内部インターセプト機構を提示するハイパーバイザを用いる例示の実装を図示しており、この機構において、コードモジュールは、ハイパーバイザの仮想スイッチにより、ネットワークトラフィックが仮想スイッチを通過するようにさせることができる。この実装では、分散マネージャモジュールは、仮想スイッチ自体とともに配置され、そして仮想スイッチを通って流れる全てのパケットへのアクセスを有することができる。加えて、分散マネージャモジュールは、パケットのソース仮想マシンに適用されるポリシーによって必要とされる通りに、パケットを所望の仮想セキュリティ装置を通して流すように構成されてよい。
【０１０９】
図１３において、仮想サーバ１３００は、ゲスト仮想マシン（ゲストＶＭ）１３３０−１及び１３３０−２とともに示されている。仮想セキュリティ装置１３４０は、セキュリティ検査を仮想サーバ１３００のゲストＶＭからのネットワークトラフィックに対して適用するように構成される１つ又は複数のＶＳＡを表す。仮想スイッチ（ｖスイッチ）１３２２は、インターセプトコードモジュール１３９０及び分散マネージャモジュール１３８０を含む。ポリシーマネージャ１３７０は、仮想サーバ１３００の又は別の仮想サーバの別の仮想マシンとして構成されてよい。あるいは、ポリシーマネージャ１３７０は、物理サーバにおいて直接的にホストされるシステム全体の管理サービスとともに含まれる可能性がある。仮想サーバ１３００及びそのコンポーネントは、図３の仮想サーバ３００に関連して説明したものと同じ又は同様の手法で構成され得る。
【０１１０】
例示の図では、ゲストＶＭ１３３０−１がメッセージをゲスト１３３０−２に送信すると想定する。ネットワークフローのパケットは、１３０１において、ゲストＶＭ１３３０−２へ送信されるが、ｖスイッチ１３２２内のインターセプトコードモジュール１３９０によってインターセプトされる。インターセプトコードモジュール１３９０は、１３０２において、インターセプトしたパケットを分散マネージャモジュール１３８０に送信する。分散マネージャモジュール１３８０はポリシーを取得し、パケットをどこにルーティングすべきかを決定する。例示の実施形態では、ポリシーは、ポリシーマネージャ１３７０によって継続的に更新されるポリシーデータベースから取得されることがあり、あるいはポリシーマネージャ１３７０にクエリすることによって取得されることもある。
【０１１１】
分散マネージャモジュール１３８０は、ポリシーの各ＶＳＡについてネットワークアドレス（例えばＭＡＣアドレス）を含むようパケットを修正してよい。あるいは、パケットを、ＶＳＡを通してルーティングされる別のｖスイッチに転送することもできる。１３０３において、分散マネージャモジュール１３８０は、パケットを、選択された１つ又は複数のＶＳＡ１３４０に送信する。セキュリティ検査の全てが成功裏に実行される場合、次いで１３０４において、パケットは、分散マネージャモジュール１３８０に送信されて返される。分散マネージャモジュール１３８０は、次いでパケットをその宛先ＶＭ１３３０−２に転送することができる。
【０１１２】
別の可能性あるインターセプト機構は、スイッチング要素を、アップリンクポート上の分散マネージャにより、プライベート仮想ローカルエリアネットワーク（ＰＶＬＡＮ）として実装することに関連する。ＰＶＬＡＮでは、１つのポートをアップリンクポートとして指定することができる。任意の他のポートから送信されたパケットは常に、宛先のメディアアクセスコントロール（ＭＡＣ）アドレス又はＶＬＡＮに関わらず、アップリンクへルーティングされる。アップリンクポートを通じて導入されるパケットは、スイッチのために通常通り（例えば宛先ＭＡＣアドレスに従って）配信される。
【０１１３】
この構成では、全てのパケットが分散マネージャに伝送され、分散マネージャは、元のＭＡＣアドレスに基づいて、パケットを任意の他の仮想マシンにルーティングすることができる。このインターセプト機構では、全てのパケットは、分散マネージャへ及び分散マネージャからの少なくとも１つの付加的なホップを必要とする。
【０１１４】
図１４に移ると、簡略化された対話図が、仮想セキュリティシステムにおける仮想マシンの変化に関連付けられる潜在的な動作を示している。より具体的には、図１４は、仮想クラウドインフラストラクチャ内において新たな仮想マシンが展開されるか、既存の仮想マシンが移動されるシナリオを図示している。加えて、図１４は、セキュリティポリシーが更新されるか、仮想クラウドインフラストラクチャ内の仮想マシンに追加されるシナリオも図示している。図１４の対話的コンポーネントは、図３のポリシーマネージャ３７０、分散マネージャ３８０、インターセプト機構３９０及び仮想セキュリティ装置（ＶＳＡ）３４０を含む。また、（ポリシーレイヤ１７０の）ポリシーマネージャ３７０及び（分散レイヤ１８０の）分散マネージャ３８０と対話することができる図１のクラウドマネージャ１５０も含まれる。図１４のコンポーネントは、本明細書で開示されるような上記コンポーネントの様々な実施形態のいずれかを含む。
【０１１５】
１４０２において、ユーザは、既存のゲスト仮想マシンを、仮想クラウドインフラストラクチャ内のある場所から別の場所へクラウドマネージャ１５０を介して移動させる。例えばゲスト仮想マシンは、それぞれ別個のハイパーバイザ及び異なる基本ハードウェアを有する、第１の仮想サーバから仮想サーバ３００へ移動され得る。クラウドマネージャ１５０は、ある物理サーバから別のサーバへの仮想マシンのライブマイグレーションを提供する。この能力を提供する１つのソリューションは、カルフォルニアのパロアルトのＶＭｗａｒｅ（登録商標）社によって提供されるのＶＭｗａｒｅ（登録商標）ｖＭｏｔｉｏｎ（登録商標）である。
【０１１６】
別のシナリオでは、１４０４において、ユーザは、クラウドマネージャ１５０を介して新たなゲスト仮想マシンを仮想クラウドインフラストラクチャへ展開してもよい。クラウドマネージャ１５０は、仮想サーバ３００において新たなゲスト仮想マシンを割り当てる。更に別の例では、ユーザは、仮想クラウドインフラストラクチャ内の既存の仮想マシンに対して、セキュリティポリシーを更新するか追加してもよい。新たな仮想マシンを追加し、既存の仮想マシンを移動させるための機構は、本明細書において前述したように、クラウドマネージャ（例えば図１のクラウドマネージャ１５０）によって管理され得る。しかしながら、新たなセキュリティポリシーを、追加された新たなゲストＶＭへ追加するか既存のゲスト仮想マシンへ追加するための機構は、別個に実装することが可能である。例えばセキュリティマネージャ（例えば図１のセキュリティマネージャ１７５）は、ユーザインタフェースを提供して、許可されたユーザが、新たな又は既存のゲスト仮想マシンに対してセキュリティポリシーを更新又は追加するのを可能にすることができる。セキュリティマネージャは、更新されたセキュリティポリシー又は新たなセキュリティポリシーをポリシーマネージャに通信するか、直接セキュリティポリシーデータベース（例えばＶＭＭセキュリティポリシーデータベース３７６）の更新を可能にすることもできる。参照の容易性のため、図１４は、ゲスト仮想マシンを追加又は移動させることに関連して更に説明される。しかしながら、図１４で説明される動作の１つ又は複数は、既存のゲストＶＭについてセキュリティポリシーが追加又は更新されるときに実行されることもあることが理解されよう。
【０１１７】
各シナリオにおいて、ポリシーマネージャ３７０は、新たなゲスト仮想マシンが展開されていること又は仮想マシンが仮想クラウドインフラストラクチャ内で移動されていることを示す、クラウドマネージャ１５０からの信号を検出することができる。一実施形態において、アプリケーションプログラミングインタフェース（ＡＰＩ）を使用して信号を検出してもよい。信号を検出すると、ポリシーマネージャ３７０は、ゲスト仮想マシンが展開又は移動されている場所（例えば仮想サーバ）におけるインターセプト機構３９０の作成及び／又は構成を容易することができる。ポリシーマネージャ３７０は、適切な仮想セキュリティ装置３４０の作成及び／又は構成も容易にすることができる。
【０１１８】
１４０６において、マネージャ３７０は、クラウドマネージャ１５０にクエリしていずれかのセキュリティコントロールが、ゲスト仮想マシンのポリシーによって要求されるかどうかを判断することができる。例えばユーザは、侵入防止システム（ＩＰＳ：intrusion  prevention  system）及びファイヤウォール（（ＦＷ）がゲスト仮想マシンからの特定のネットワークトラフィックに適用されることを要求することがある。
【０１１９】
セキュリティコントロールがゲスト仮想マシンについて指定される場合、次いで１４０８において、ポリシーマネージャは分散マネージャ３８０にクエリすることがある。分散マネージャ３８０は、ゲスト仮想マシンが展開又は移動されている場所において、仮想サーバ上の仮想マシンとして構成され得る。クエリは、ゲスト仮想マシンについての指定されたセキュリティコントロールが、仮想セキュリティ装置（ＶＳＡ）３４０の形で、仮想サーバ上で既にプロビジョニングされているかどうかを判断することができる。要求されたセキュリティコントロールが仮想サーバ内に存在する場合、次いで１４２２において、分散マネージャ３８０は、要求されたＶＳＡが存在することを示すメッセージを、ポリシーマネージャ３７０に送信することができる。
【０１２０】
１４１２において、ポリシーマネージャ３７０は、適切なＶＳＡがセットアップされるまで、ゲストＶＭをブロックして、ゲストＶＭが仮想サーバ３００内で動作するのを許可しない。一部の実施形態において、ゲストＶＭをブロックする機構が存在しないことがあり、ステップ１４１２は、ゲストＶＭへのトラフィック又はゲストＶＭからのトラフィックをブロックするか他の方法でルーティングすることにより、ＶＳＡが起動している間にセキュリティの公開（security  exposure）を制限しようとすることがある。例えばゲストＶＭが別の仮想サーバへ移動されている場合、このゲストＶＭからのトラフィックは、新たなＶＳＡが実行するまで既存のＶＳＡを使用するように、トロンボーンルーティングを使用するなどして、別のサーバに戻るようルーティングされる可能性がある。１４１４において、ポリシーマネージャは、必要であれば、分散マネージャ３８０にインターセプト機構を構成するよう要求を送信する。一部の実施形態において、インターセプト機構は、分散マネージャ３８０によって構成され得る。
【０１２１】
１４１６において、分散マネージャはインターセプト機構３９０を構成する。典型的に、インターセプト機構３９０は、仮想スイッチ内で構成されるか、本質的にＯｐｅｎＦｌｏｗスイッチの実施形態において存在し得る。１４１８において、分散マネージャはまた、クラウドマネージャ１５０に、必要なＶＳＡを作成するよう要求を送信することができる。要求を受信すると、クラウドマネージャ１５０は、１４１８において、ゲストＶＭのセキュリティポリシー内で指定されるＶＳＡを動的に作成することができる。クラウドマネージャ１５０は、仮想化マシンプレートを有する画像ストアを使用することができ、これによりクラウドマネージャ１５０は本質的に、ＶＳＡをコピーして、仮想サーバ３００内に新たなＶＳＡを作成することができる。
【０１２２】
一部の実施形態において、インターセプト機構は、ＶＳＡが割り当てられた後に構成され得る。例えばハードウェアインターセプトでは、ＶＳＡが割り当てられると、特定の仮想スイッチ及びｖＮＩＣは、ネットワークトラフィックをハードウェアインターセプト構成に向かわせるように再構成される（又は「配線し直す」）必要がある。
【０１２３】
適切なＶＳＡが作成されると、１４２２において、分散マネージャ３８０は、準備信号（ready  signal）をポリシーマネージャ３７０に送信する。ポリシーマネージャは次いで、１４２４において、分散マネージャ上のセキュリティポリシーを更新する。１４２６において、分散マネージャ３８０は、新たなＶＳＡ（又は既存のＶＳＡ）を構成する。１４２８において、分散マネージャ３８０は、ポリシーマネージャ３７０に、ＶＳＡが作成されて構成されていること及びインターセプト機構３９０が構成されることを示すメッセージを送信することができる。１４３０において、ポリシーマネージャ３７０は、ゲストＶＭが実行するのを許可することができる。
【０１２４】
別のシナリオでは、新たなゲストＶＭが、セキュリティコントロールが未だ構成されていない場合、仮想サーバに展開されてもよい。したがって、分散マネージャは、ターゲットの仮想サーバ内には作成されていない。この例では、ポリシーマネージャ３７０は、クラウドマネージャ１５０に、ターゲットの仮想サーバにおいて分散マネージャを作成するよう要求を送信し得る。分散マネージャを、仮想マシンとして構成することができるので、クラウドマネージャ１５０は、分散マネージャのための仮想マシンテンプレートを使用して、分散マネージャをコピーし、ターゲットの仮想サーバ内に新たな分散マネージャを作成することができる。
【０１２５】
別の実施形態では、ポリシーマネージャ３７０及び分散マネージャ３８０の機能の一部又は全てを、単一の仮想マシンに統合してもよい。さらに、ポリシーマネージャ３７０及び／又は分散マネージャ３８０の機能の一部又は全てを、ＶＳＡと結合してもよい。１つの特定の実施形態では、ポリシーマネージャは、その個別の機能を保持することがあり、分散マネージャの機能は、あるＶＳＡと結合されるか、あるいは２つ又はそれ以上のＶＳＡにわたって分散されてもよい。別の実施形態では、分散マネージャの機能の全てではないがその一部が、ポリシーマネージャによって実行されてもよい。統合されたポリシーマネージャは、変更されているゲストＶＭ（例えばターゲットの仮想サーバに追加又は移動されているゲストＶＭ、既存のゲストＶＭのために要求された新たな又は更新されたポリシー）を検出することができる。統合されたポリシーマネージャは、クラウドマネージャ１５０と通信して、セキュリティポリシーがゲストＶＭに当てはまるかどうかを決定することができる。ポリシーがゲストＶＭに当てはまる場合、統合されたポリシーマネージャは、ポリシーで指定されるＶＳＡが仮想サーバ内に存在するかどうかを判断し、ポリシーに整合するようＶＳＡを作成する必要があるときは、ゲストＶＭをブロックすることができる。また、統合されたポリシーマネージャは、特定の実施形態ではインターセプト機構を構成することができ、クラウドマネージャ１５０に、いずれか必要とされるＶＳＡを作成するよう要求することができ、これらのＶＳＡを構成することができる。適切なセキュリティコントロールが仮想サーバ内で構成されると、統合されたポリシーマネージャは、ゲストＶＭが実行するのを許可することができる。
【０１２６】
図１５は、ポリシーマネージャのプロセスの実施形態を示す簡略化したフローチャートである。参照の容易性のため、図３のポリシーマネージャ３７０及び他のコンポーネントが参照されるが、フロー１５００は、本明細書で説明されるポリシーマネージャ及び仮想セキュリティシステムの様々な実施形態に適用可能である。一実施形態では、フロー１５００の１つ又は複数の動作は、ポリシーマネージャ３７０内のポリシーモジュール３７４によって実施されてよい。
【０１２７】
１５０２において、ポリシーマネージャ３７０は、通信システム１００の仮想クラウドインフラストラクチャ内のゲスト仮想マシン（ＶＭ）への変更を示す信号を検出する。ポリシーマネージャ３７０によって検出することができるゲストＶＭへの変更の一例は、既存のゲストＶＭが、ある仮想サーバから、異なるハイパーバイザ及び異なる基礎のハードウェアを有する別の仮想サーバへ移動されることを含む。検出することができる変更の別の例は、新たなゲストＶＭが仮想サーバに追加されることを含む。検出することができる更なる例には、既存のゲスト仮想マシンについて要求される新たなポリシー又は更新されたポリシーを含む。
【０１２８】
１５０４において、セキュリティコントロールが、ゲストＶＭのポリシーによって指定されているかどうかに関して判断が行われる。一実施形態において、ポリシーマネージャ３７０は、クラウドマネージャにクエリして、セキュリティポリシーがゲストＶＭに当てはまるかどうかを判断してもよい。一実施形態において、ポリシーマネージャ３７０は、マスタセキュリティポリシーデータベース（例えばＶＭＭセキュリティポリシーデータベース３７６）又はクラウドマネージャとは別個お他のモジュールにクエリをして、セキュリティポリシーがゲストＶＭに当てはまるかどうかを判断することができる。セキュリティポリシーは、１つ又は複数のセキュリティコントロールを、ゲストＶＭの特定のネットワークトラフィックに適用する要件を含むことができる。セキュリティコントロールは、ＩＰＳ、ＦＷ、ＤＬＰ等のような様々なタイプのセキュリティを実装する仮想セキュリティ装置の形式とすることができる。
【０１２９】
セキュリティコントロールが指定されると、１５０６において、ポリシーマネージャ３７０は、ゲストＶＭが追加又は移動される仮想サーバ内の既存のＶＳＡを識別するよう、クエリを送信する。１５０８において、ポリシーで指定されたＶＳＡが仮想サーバ内に存在しないと判断された場合、次いで１５１０において、ポリシーマネージャ３７０は、ゲスト仮想マシンが実行するのをブロックする。
【０１３０】
一部の実施形態では、１５１２において、ポリシーマネージャ３７０は、仮想サーバ上に適切なインターセプト機構を構成するよう、分散マネージャ３８０に要求を送信してもよい。例えばハードウェアインターセプト構成は、特定のｖＮＩＣ及びｖスイッチを配線し直すことを必要とすることがある。他の実施形態では、インターセプト機構は、別個にセットアップされて構成されてもよい。例えばＯｐｅｎＦｌｏｗスイッチ実装は、ハードウェアインターセプト機構で構成されてもよいが、必ずしもこれを含む必要はない。
【０１３１】
１５１４において、ポリシー指定されたＶＳＡが作成され、かつインターセプト機構が仮想サーバ上に構成されるかどうかを判断する。一実施形態において、分散マネージャ３８０からの準備信号は、ＶＳＡが作成され、かつインターセプト機構が構成されることを示す。ＶＳＡが作成され、かつインターセプト機構が構成される場合、あるいは以前に１５０８において必要なＶＳＡが仮想サーバ内に既に存在していると判断された場合、次いで１５１６において、ポリシーマネージャは、分散マネージャ上のセキュリティポリシーを更新することができる。ポリシーは、ゲストＶＭのどのネットワークトラフィックフローを、どのＶＳＡにルーティングすべきかを指示することができる。
【０１３２】
分散マネージャにおいてセキュリティポリシーが更新されると、１５１８において、ポリシーマネージャは、新たに展開されたゲストＶＭ又は新たなゲストＶＭが仮想マシン上で動作するのを許可することができる。
【０１３３】
検出することができる変更に例は、仮想サーバからのゲストＶＭの除去又は削除を含む。この場合、一部の変形がフロー１５００内に生じる。最初に、ポリシーマネージャは、削除されたゲストＶＭによって以前に使用されたセキュリティコントロールが、仮想サーバ上の他のゲストＶＭにまだ必要であるかどうかを判断する。これらのセキュリティコントロール（例えば１つ又は複数のＶＳＡ）が他のゲストＶＭによってまだ使用されている場合、これらのセキュリティコントロールは仮想サーバ上に残る。
【０１３４】
しかしながら、既存のＶＳＡのいずれも仮想サーバ上で必要とされない場合、これらのＶＳＡは、除去されるか、他の方法で仮想サーバ上で設定解除（de-provision）され得る。加えて、ハードウェアインターセプト機構（例えばＳＲ−ＩＯＶ）が、削除されたゲストＶＭのために構成されている場合、ｖスイッチ及びｖＮＩＣが、仮想サーバ上の削除されたゲストＶＭについてハードウェアインターセプト機構の前に接続されていたのと同じ方法で再接続されるように、ハードウェアインターセプト機構が再構成される。
【０１３５】
図１６は、分散マネージャの処理の実施形態を示す簡単なフローチャートである。参照の容易性のために、図１６の説明では、図３の分散マネージャ３８０及び他のコンポーネントを参照するが、フロー１６００は、本明細書で説明される分散マネージャ及び仮想セキュリティシステムの様々な実施形態に適用可能である。一実施形態において、フロー１６００の１つ又は複数の動作は、分散マネージャ３８０内のプロビジョニングモジュール３８４によって実行され得る。
【０１３６】
１６０２において、仮想サーバ３００の分散マネージャ３８０は、セキュリティコントロール情報についての要求を受信する。一実施形態において、この要求は、ポリシーマネージャ３７０からのものであり、もしあれば、どの仮想セキュリティ装置（ＶＳＡ）が仮想サーバ３００上で既に構成されているかを決定する。この要求は、ポリシーマネージャが、ゲストＶＭがクラウドマネージャ１５０により仮想サーバ３００に追加されていると決定したことに起因することがある。このシナリオでは、ゲストＶＭは、新たなゲストＶＭが、許可されたユーザによりクラウドマネージャ１５０を介して要求される場合に、仮想サーバ３００に追加されることがある。別のシナリオでは、ゲストＶＭは、該ゲストＶＭが別の仮想サーバから仮想サーバ３００に移動されている場合に仮想サーバ３００に追加されることがある。
【０１３７】
ポリシーマネージャ３７０は、もしあればどのＶＳＡが、仮想サーバ３００に追加されているゲストＶＭのポリシー内で指定されているかを識別する情報を提供することもある。１６０４において、分散マネージャ３８０は、セキュリティコントロール情報をポリシーマネージャ３７０に提供することができる。この情報は、もしあれば、仮想サーバ３００上に構成される特定のＶＳＡを識別することができる。
【０１３８】
１６０６において、セキュリティコントロールが存在しないと決定される場合、次いで１６０８において、分散マネージャ３８０は、インターセプト機構の一部の実施形態について、仮想サーバ３００内でインターセプト機構を構成する要求を受信することがある。１６１０において、分散マネージャ３８０は、仮想サーバ３００内においてインターセプト機構を構成することができる。１６１２において、分散マネージャ３８０は、ゲストＶＭについてのポリシー内で指定されるＶＳＡを作成するという要求を、クラウドマネージャ１５０に送信することもできる。
【０１３９】
１６１４において、分散マネージャ３８０は、要求されたＶＳＡが仮想サーバ３００内で作成されることを指示するメッセージを、ポリシーマネージャ３７０に送信することができる。このメッセージは、要求されたＶＳＡが仮想サーバ３００内で作成された後、あるいはポリシー指定されたＶＳＡが仮想サーバ３００内に既に存在すると１６０６で判断された場合に送信することができる。
【０１４０】
１６１６において、分散マネージャ３８０が、ポリシーマネージャ３７０から、仮想サーバ３００に追加されているゲストＶＭについてのポリシーアップデートを受信することがある。ポリシーアップデートを、ＶＭセキュリティポリシーデータベース内に格納することができ、またポリシーアップデートは、特定のフローに適用する特定のＶＳＡに関するルール及びＶＳＡがこれらのフローに適用されることになる順序を含むことができる。
【０１４１】
図１７Ａ〜図１７Ｃに移ると、図１７Ａ〜図１７Ｃは、ゲスト仮想マシン（ＶＭ）が仮想クラウドインフラストラクチャ１７００内で移動され、ＳＲ−ＩＯＶのようなハードウェアインターセプト機構を使用してネットワークトラフィックをインターセプトするときの仮想セキュリティシステムの順次処理を視覚的に示すブロック図である。仮想クラウドインフラストラクチャ１７００は、２つの仮想サーバ１７１０及び１８１０を含み、これらは物理スイッチ１７１４を介して、１つ又は複数のそれぞれの仮想ネットワークインタフェースカード（ｖＮＩＣ）１７２４及び１８２４を通して通信することができる。各仮想サーバ１７１０及び１８１０は、１つ又は複数のそれぞれのｖスイッチ１７２２及び１８２２を有するようにも構成され得る。
【０１４２】
仮想サーバ１７１０は、ポリシーマネージャ１７７０及び分散マネージャ１７８０も含む。ポリシーマネージャ１７７０及び仮想サーバ１８１０は、図３のポリシーマネージャ３７０及び分散マネージャ３８０に関連して説明した通りに構成されてよい。
【０１４３】
図１７Ａを参照すると、ゲスト仮想マシン（ＶＭ）が仮想サーバ１７１０において作成される。このゲストＶＭは、ｖスイッチ１７２２−１を介して仮想サーバ１７１０内の他のゲストＶＭと通信してもよい。また、仮想サーバ１８１０のような他のサーバ上のゲストＶＭと通信してもよい。ゲストＶＭ１７３０からのネットワーク通信は、ｖスイッチ１７２２−１、ｖＮＩＣ１７２４−１、物理スイッチ１７１５、ｖＮＩＣ１８２４−１及びｖスイッチ１８２２−１を介して仮想サーバ１８１０に送信され得る。図１７Ａでは、ゲストＶＭ１７３０についてセキュリティコントロールはアクティブ化されない。より具体的には、ゲストＶＭ１７３０のためのセキュリティポリシーは作成及び／又は実装されていない。
【０１４４】
図１７Ｂは、ゲストＶＭ１７３０について、新たなセキュリティポリシーを作成した結果を図示している。一例において、許可されたユーザは、ポリシーマネージャ１７７０のＶＭＭセキュリティポリシーデータベースを更新することによって、セキュリティポリシーをゲストＶＭ１７３０に追加することができる。任意の適切なユーザインタフェースが、セキュリティポリシーをポリシーマネージャ１７７０に追加するように構成され得る。一例において、セキュリティマネージャ（例えば図１のセキュリティマネージャ１７５）は、ポリシーマネージャ１７７０のＶＭＭセキュリティポリシーデータベースに対するセキュリティポリシーの更新を可能にするインタフェースを提供することができる。
【０１４５】
セキュリティポリシーは、ゲストＶＭ１７３０からの特定のネットワークトラフィックフローが、指定のＶＳＡ（例えばＩＰＳ、ＦＷ、ＤＬＰ等）を通って流れることを要求することがある。説明の簡潔性及び容易性のため、この例では、１つの仮想セキュリティ装置（ＶＳＡ）のみがセキュリティポリシーによって要求される。しかしながら、本開示によると、複数のＶＳＡがセキュリティポリシーによって指定される可能性もあることは明らかであろう。
【０１４６】
図１７Ｂを参照すると、セキュリティポリシーがポリシーマネージャ１７７０に追加されると、ＶＳＡ１７４０が仮想サーバ１７１０内で割り当てられてよい。一実施形態において、ポリシーマネージャ１７７０は、本明細書において上述した通り、分散マネージャ１７８０及びクラウドマネージャと通信して、仮想サーバ１７１０内のＶＳＡ１７４０のインスタンス化を容易にすることができる。例えば分散マネージャ１７８０は、仮想サーバ１７１０上にＶＳＡを作成するよう要求をクラウドマネージャに通信することがある。
【０１４７】
直接Ｉ／Ｏ１７０５は、ゲストＶＭ１７３０からのネットワークトラフィックのためのハードウェアインターセプト機構（例えばＳＲ−ＩＯＶ）を表す。ｖスイッチ１７２２−１は、ｖＮＩＣ１７２４−１から無線化（unwired）されて、ゲストＶＭ１７３０からのネットワークトラフィックが、直接Ｉ／Ｏのハードウェアインターセプトを通ってＶＳＡ１７４０へと流れるようにする。一実施形態において、分散マネージャ１７８０は、ｖスイッチに接続されるｖＮＩＣを再構成することによって、ｖスイッチ１７２２−１を無線化する。結果として、ゲストＶＭ１７３０からのネットワークトラフィックは、ここでＶＳＡ１７４０によってカバーされる。
【０１４８】
単一のＶＳＡを用いる実施形態では、図１７Ａに示されるように、分散マネージャがＶＳＡ内で具現化され得る。複数のＶＳＡが単一の仮想サーバ上で作成されるの許容する実施形態では、ＮＩＣハードウェアは、ＮＩＣ上のＬ２スイッチへの変更を許可し、適切なルーティングを可能にし得る。この実施形態では、ゲストＶＭからのパケットが自動的に、分散マネージャに接続される特定のハードウェアポート（すなわちキュー）にルーティングされる。したがって、ＮＩＣは、ＮＩＣへと流れるＳＲ−ＩＯＶ機構を許可にするように修正される。
【０１４９】
図１７Ｃに移ると、図１７Ｃは、ゲストＶＭ１７３０が仮想サーバ１８１０へ移動した結果を図示している。ポリシーマネージャ１７７０は、アプリケーションプログラミングインタフェース（ＳＰＩ）を通してクラウドマネージャへの移動を検出し得る。新たなＶＳＡ１８４０が仮想サーバ１８１０内で作成されてよい。この場合も、一実施形態において、ポリシーマネージャ１７７０、分散マネージャ１７８０及びクラウドマネージャは、仮想サーバ１８１０上にＶＳＡ１８４０を作成するよう通信することができる。ｖスイッチ１８２２−１は、ゲストＶＭ１７３０からのネットワークトラフィックを直接Ｉ／Ｏ１８０５及びＶＳＡ１８４０中に流すために、ｖスイッチロジックを再構成することにより、ｖＮＩＣ１８２４−１から無線化され得る。次いで、仮想サーバ１７１０内の古いＶＳＡ１７４０が除去されて、ｖスイッチ１７２２−１が、ｖＮＩＣ１７２４−１に対して無線化される。図１７Ｃに示されるような、ゲストＶＭが第２の仮想サーバに移動される実施形態では、第２の仮想サーバ内の分散マネージャは、新たなＶＳＡを作成及び構成することと、第２の仮想サーバ上のｖスイッチソフトウェアを再構成することとに関連する動作に対処することができる。
【０１５０】
説明の簡潔性及び容易性のために、この例では、１つの仮想セキュリティ装置（ＶＳＡ）のみがセキュリティポリシーによって要求される。しかしながら、本開示によると、複数のＶＳＡが仮想サーバ１７１０と１８１０との間で構成される可能性もあることは明らかであろう。これらの例では、分散マネージャは、本明細書で前述した通り、ソースルーティング機構を実装して、ゲストＶＭ１７３０又は１８３０からのネットワークパケットを（例えばポリシーによって指定されるような）適切なＶＳＡに適切な順序でルーティングすることができる。
【０１５１】
図１８は、分散マネージャの処理の実施形態を示す簡略化したフローチャートである。参照の容易性のために、図１８の説明では、図３の分散マネージャ３８０及び他のコンポーネントが参照されるが、フロー１８００は、本明細書で説明される分散マネージャ及び仮想セキュリティシステムの様々な実施形態に適用可能である。一実施形態では、フロー１８００の１つ又は複数の動作は、分散マネージャ３８０内のプロビジョニングモジュール３８４によって実施されてよい。
【０１５２】
１８０２において、仮想サーバ３００の分散マネージャ３８０は、１つ又は複数の仮想セキュリティ装置（ＶＳＡ）をポーリングして、仮想サーバ上の１つ又は複数のＶＳＡの利用率を決定する。１８０４において、ＶＳＡの利用率が、ＶＳＡの所定の閾値限度内であるかどうかに関する判断が行われる。利用率が、所定の閾値限度の上限を超える場合、次いで１８０６において、分散マネージャ３８０は、クラウドマネージャ１５０に、ＶＳＡの計算リソース（例えばプロセッシング、メモリ、ストレージ）を増加するか仮想サーバに追加のＶＳＡを追加するよう要求を送信することができる。
【０１５３】
ＶＳＡの利用率が、所定の閾値限度の下限未満の場合、次いで１８０８において、分散マネージャ３８０は、クラウドマネージャ１５０に、ＶＳＡの計算リソースを低減するか、ＶＳＡがもはや必要でない場合にはそのＶＳＡを仮想サーバから除去するよう要求を送信することができる。例えば分散マネージャ３８０は、仮想サーバ上の仮想マシンの一部又は全てについてのセキュリティポリシーを評価することができる。セキュリティポリシーのいずれも、ＶＳＡによって処理される既存の仮想マシンのいずれかに関連付けられるネットワークトラフィックを必要としない場合は、ＶＳＡを仮想サーバから除去してよい。そうではなく、ＶＳＡが仮想サーバ上に残っているか、あるいは同じタイプの別のＶＳＡが仮想サーバ上に存在しており、追加の負荷を処理している場合、低い利用率のＶＳＡによって処理される必要があるネットワークトラフィックは、他のＶＳＡに再ルーティングされ得る。
【０１５４】
ＶＳＡの利用率が所定の閾値限度内である場合、処理１８００は、分散マネージャ３８０が再びＶＳＡをポーリングするまで終了する。加えて、１８０４、１８０６及び１８０８並びにここで更に説明される評価及び動作は、分散マネージャによってポーリングされるＶＳＡの各々について実行され得る。
【０１５５】
特定の例示の実装において、本明細書で概説される仮想セキュリティ機能は、１つ又は複数の有形媒体（例えば特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）命令、プロセッサ又は他の同様のマシン等によって実行されるソフトウェア（潜在的にオブジェクトコード及びソースコードを含む））内においてエンコードされるロジックによって実装されてよいことに留意されたい。これらの例の一部において、メモリ要素は、本明細書において説明される動作に使用されるデータを格納することができる。これは、ソフトウェア、ロジック、コード又は本明細書で説明される動作を行うのに実行されるプロセッサ命令を格納することができるメモリ要素を含む。プロセッサは、データに関連付けられる任意のタイプの命令を実行して、本明細書しで詳述される動作を達成することができる。一例において、プロセッサは、要素又は項目（例えばデータ）をある状態又は物から、別の状態又は物へ変換することができる。別の例では、本明細書で概説される動作は、固定のロジック又はプログラマブルロジック（例えプロセッサによって実行されるばソフトウェア／コンピュータ命令）を用いて実装されてよく、ここで特定される要素は、何らかのタイプのプログラマブルプロセッサ、プログラマブルデジタルロジック（例えばＦＰＧＡ、ＥＰＲＯＭ、ＥＥＰＲＯＭ）又はデジタルロジック、ソフトウェア、コード、電子命令若しくはこれらの任意の適切な組み合わせを含むＡＳＩＣであってよい。
【０１５６】
プログラムコード又は命令は、例えばストレージデバイス及び／又は関連するマシン読取可能媒体若しくはマシンアクセス可能な媒体といった揮発性及び／又は不揮発性メモリ内に格納されてよく、上記媒体は、半導体メモリ、ハードドライブ、フロッピーディスク、光ストレージ、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、デジタル多用途ディスク（ＤＶＤ）等だけでなく、マシンアクセス可能な生物学的状態保存ストレージ（biological  state  preserving  storage）のようなよりエキゾチックな媒体（exotic  medium）を含むが、これらには限られない。マシン読取可能媒体は、マシンにより読み取り可能な形式の情報を格納、送信又は受信するための任意の機構を含んでよく、媒体は、アンテナ、光ファイバ、通信インタフェース等のように、プログラムコードが通過することがある媒体を含んでもよい。プログラムコードは、パケット、シリアルデータ、パラレルデータ等の形式で伝送されてよく、圧縮又は暗号化されたフォーマットで使用され得る。
【０１５７】
１つの例示の実装では、仮想セキュリティシステムは、本明細書で概説される仮想セキュリティ動作を達成するために、ソフトウェアを含むことがある。セキュリティシステムは、本明細書で議論されるように、仮想セキュリティ動作を達成する際に使用される情報を格納するためのメモリ要素を含むことができる。加えて、仮想セキュリティシステムは、本明細書で開示されるような、仮想セキュリティ動作を実行するようソフトウェア又はアルゴリズムを実行することができるプロセッサも含むことがある。これらのデバイスは更に、必要に応じて特定のニーズに基づいて、任意の適切なメモリ要素（ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＡＳＩＣ等）、ソフトウェア、ハードウェア内又は任意の適切なコンポーネント、デバイス、要素若しくはオブジェクト内に情報を保持してもよい。ここで検討されるメモリアイテムのいずれも（例えばデータベース、テーブル、ツリー、キャッシュ等）は、「メモリ要素」という広義の用語に含まれるものとして解釈されるべきである。同様に、本明細書で説明される潜在的な処理要素、モジュール及びマシンは、「プロセッサ」という広義の用語に含まれるものとして解釈されるべきである。
【０１５８】
上記で提示される実施例並びに本明細書で提供される他の実施例では、対話が２、３又は４つの要素に関して説明されていることに留意されたい。しかしながら、これは、明瞭性及び例示の目的のためだけに行われたものにすぎない。特定の場合において、限られた数の要素のみを参照することにより、所与のセットのフローの機能の１つ又は複数を説明することがより容易であることがある。仮想セキュリティシステム（及びその教示）は容易にスケーラブルであり、より多くのコンポーネント並びにより複雑／高性能な配置及び構成に適合することができることを認識されたい。したがって、提供される例示は、潜在的に多種多様な他のアーキテクチャに滴う要される、仮想セキュリティシステムの範囲を限定又は広範な教示を抑制すべきではない。
【０１５９】
加えて、先行するフロー図内の動作は、仮想セキュリティシステムによって又は仮想セキュリティシステム内において実行され得る可能性あるシナリオ及びパターンの一部のみを図示したものにすぎない。これらの動作の一部は、必要に応じて削除又は除去されてよく、あるいは本開示の範囲から逸脱することなく、大幅に修正又は変更されてもよい。さらに、複数のこれらの動作は、１つ又は複数の追加の動作と同時に、あるいはこれと並行して実行されるように説明されている。しかしながら、これらの動作のタイミングは大幅に変更されてもよい。先行する動作フローは、説明及び議論のために提示されている。仮想セキュリティシステムは、任意の適切な配置、時系列、構成という点において実質的な柔軟性を提供し、本開示の教示から逸脱することなくタイミング機構が提供され得る。
【０１６０】
本開示は、特定の配置及び構成に関連して詳細に説明されているが、これらの例示の構成及び配置は、本開示の範囲から逸脱することなく大幅に変更されてもよい。本開示は、限られた数の実施形態を説明しているが、当業者には、この実施形態から様々な修正及び変更が認識されよう。添付の特許請求の範囲は、本開示の真の精神及び範囲内にある限り、そのような修正及び変更を全て網羅するよう意図されている。
【０１６１】
以下の例は、本明細書における諸実施形態に関する。１つ又は複数の実施形態は、仮想ネットワークインフラストラクチャの仮想サーバ内の仮想マシンについての変化を検出するステップと、仮想セキュリティ装置が仮想サーバ内で構成されるかどうかを判断するステップと、仮想セキュリティ装置を仮想サーバ内で作成するよう要求を送信するステップと、仮想セキュリティ装置が仮想マシン内で作成されるときに、仮想マシンが開始するのを許可するステップとを含み、仮想セキュリティ装置が、仮想マシンから送信されるネットワークパケットに対してセキュリティ検査を実行する方法を提供する。
【０１６２】
実施形態の例は更に、仮想マシンからのネットワークパケットをインターセプトするインターセプト機構を仮想サーバ内に作成するステップを含むことを備える。
【０１６３】
実施形態の例は更に、インターセプト機構を作成するステップにおいて、仮想マシンからのネットワークパケットを物理的なネットワークインタフェースカードに向けるよう、仮想マシンに接続される仮想スイッチのロジックを再構成するステップと、ネットワークパケットが仮想ネットワークインタフェースカード（ｖＮＩＣ）を通過するのを防ぐようにｖＮＩＣのロジックを再構成するステップとを含むことを備える。
【０１６４】
実施形態の例は更に、インターセプト機構が、単一ルート入出力仮想化（ＳＲ−ＩＯＶ）仕様に基づくネットワークパケットのハードウェアインターセプトを含むことを備える。
【０１６５】
実施形態の例は更に、変化が、仮想マシンを第２の仮想サーバから仮想サーバに移動させることを含み、方法は更に、第２の仮想サーバから第２の仮想セキュリティ装置を削除するステップと、仮想ネットワークインタフェースカードを介して通信するよう第２の仮想サーバ内の仮想スイッチのロジックを再構成するステップとを含み、第２の仮想セキュリティ装置は、仮想マシンが第２の仮想サーバ内で実行しているときに、仮想マシンからインターセプトされたネットワークパケットを処理するように構成されていることを備える。
【０１６６】
実施形態の例は更に、１つ又は複数のセキュリティポリシーは、仮想マシンからのネットワークパケットを処理するよう１つ又は複数の仮想セキュリティ装置を識別することを備える。
【０１６７】
実施形態の例は更に、１つ又は複数のセキュリティポリシーが、１つ又は複数の仮想セキュリティ装置について、仮想マシンからのネットワークパケットを処理する順序を識別することを備える。
【０１６８】
実施形態の例は更に、仮想セキュリティ装置の利用率を判断するのに仮想サーバ上の仮想セキュリティ装置にクエリするステップと、クエリに対する応答を受信するステップとを含む。
【０１６９】
実施形態の例は更に、応答が、仮想セキュリティ装置によってより多くの容量が必要とされることを示すとき、仮想サーバ内に第２の仮想セキュリティ装置を作成するよう要求を送信するステップを含む。
【０１７０】
実施形態の例は更に、ネットワークパケットが仮想セキュリティ装置に送信されるのを防ぐステップと、応答が、仮想セキュリティ装置の利用率が低いことを示すとき、仮想セキュリティ装置がアイドル状態であれば、仮想セキュリティ装置を削除するステップとを含む。
【０１７１】
実施形態の例は更に、応答が、仮想セキュリティ装置の利用率が多いことを示すとき、処理リソース及びメモリのうちの少なくとも１つを仮想セキュリティ装置に割り当てるよう要求を送信するステップを含む。本明細書で使用されるとき、「のうちの少なくとも１つ」というフレーズは、その列挙のいずれか１つ又は組合せを意味する。例えばＡ、Ｂ、及びＣのうちの少なくとも１つは、Ａ、Ｂ又はＣ、又はその任意に組み合わせを意味することがある。
【０１７２】
実施形態の例は更に、仮想マシンについて検出される変化が、仮想マシンを仮想サーバに追加すること又は仮想マシンを別の仮想サーバから仮想サーバに移動させることの一方を含むことを備える。
【０１７３】
実施形態の例は更に、変化がアプリケーションプログラミングインタフェース（ＡＰＩ）を通して、仮想マシンが仮想サーバに追加されるとき又は仮想マシンが異なるサーバに移動されるときに検出されることを備える。
【０１７４】
実施形態の例は更に、仮想マシンについて検出される変化が、仮想マシンについて新たなセキュリティポリシーを要求すること又は仮想マシンのセキュリティポリシーを更新することの一方を含むことを備える。
【０１７５】
実施形態の例は更に、仮想セキュリティ装置が仮想サーバ内で構成されない場合、仮想マシンをブロックするステップを備える。
【０１７６】
実施形態の例は更に、仮想セキュリティ装置が、仮想マシンへ送信されるネットワークパケットに対してセキュリティ検査を実行することを備える。
【０１７７】
実施形態の例は更に、仮想マシンからのパケットフローの最初の出力ネットワークパケットは、仮想マシンが仮想サーバ内で開始することを許可された後、仮想サーバ内のＯｐｅｎＦｌｏｗスイッチによってインターセプトされることを備え、方法は更に、出力ネットワークパケットのためのフロールートを、セキュリティポリシーに基づいて生成するステップを備え、ＯｐｅｎＦｌｏｗスイッチが、出力ネットワークパケットをフロールートに従ってルーティングすることを備える。
【０１７８】
１つ又は複数の実施形態は、プロセッサ上で動作するポリシーマネージャ仮想マシンを備える装置を提供することもでき、ポリシーマネージャ仮想マシンは、仮想ネットワークインフラストラクチャの仮想サーバ内において、仮想マシンの変化を検出し、仮想サーバ内で仮想セキュリティ装置が構成されているかどうかを判断し、仮想セキュリティ装置が仮想マシン内で作成されるときに、仮想マシンが開始するのを許可するように構成され、仮想セキュリティ装置は、仮想マシンから送信されるネットワークパケットに対するセキュリティ検査を実行する・。
【０１７９】
実施形態の例は更に、プロセッサ上で動作する分散マネージャ仮想マシンを更に備え、該分散マネージャ仮想マシンは、仮想サーバ内に仮想セキュリティ装置を作成するよう要求を送信するように構成される。
【０１８０】
実施形態の例は更に、分散マネージャが、仮想サーバ内に、仮想マシンからのネットワークパケットをインターセプトするインターセプト機構を作成するように更に構成されることを備える。
【０１８１】
実施形態の例は更に、インターセプト機構を作成することにおいて、仮想マシンからのネットワークパケットを物理ネットワークインタフェースカードに向けるよう、仮想マシンに接続される仮想スイッチのロジックを再構成し、ネットワークパケットが仮想ネットワークインタフェースカード（ｖＮＩＣ）を通過するのを防ぐようにｖＮＩＣのロジックを再構成することを含むことを備える。
【０１８２】
１つ又は複数の実施形態は、命令を格納した少なくとも１つのマシンアクセス可能な記憶媒体を提供することがあり、上記命令は、マシンによって実行されると、該マシンに、仮想ネットワークインフラストラクチャの仮想サーバ内において、仮想マシンの変化を検出させ、仮想サーバ内で仮想セキュリティ装置が構成されているかどうかを判断させ、仮想サーバ内で仮想セキュリティ装置を作成するよう要求を送信させ、仮想セキュリティ装置が仮想マシン内で作成されるときに、前記仮想マシンが開始するのを許可させ、仮想セキュリティ装置は、仮想マシンから送信されるネットワークパケットに対するセキュリティ検査を実行する。
【０１８３】
実施形態の例は更に、変化が、前記仮想マシンを、第２の仮想サーバから仮想サーバに移動させることを含み、処理は、第２の仮想サーバから第２の仮想セキュリティ装置を削除することと、仮想ネットワークインタフェースカードを介して通信するよう第２の仮想サーバ内の仮想スイッチのロジックを再構成することとを含み、第２の仮想セキュリティ装置は、仮想マシンが第２の仮想サーバ内で実行しているときに仮想マシンからインターセプトされたネットワークパケットを処理するように構成されていることを備える。
【０１８４】
実施形態の例は更に、１つ又は複数のセキュリティポリシーが、仮想マシンからのネットワークパケットを処理するよう１つ又は複数の仮想セキュリティ装置を識別することを備える。
【０１８５】
１つ又は複数の実施形態は、仮想ネットワークインフラストラクチャの仮想サーバ内の仮想セキュリティ装置をポーリングして、該仮想セキュリティ装置の利用率を決定するステップと、利用率が上限閾値量を超えている場合、クラウドマネージャに、仮想セキュリティ装置のための計算リソースを増加させるよう要求を送信するステップと、利用率が下限閾値量未満の場合、クラウドマネージャに、仮想セキュリティ装置のための計算リソースを低減させるよう要求を送信するステップとを含み、仮想サーバ内の１つ又は複数の仮想マシンに関連付けられるネットワークパケットが、仮想セキュリティ装置にルーティングされる方法を提供することがある。
【０１８６】
実施形態の例は更に、ネットワークパケットが、仮想セキュリティ装置にルーティングされる前にインターセプトされることを備える。
【０１８７】
１つ又は複数の実施形態は、仮想ネットワークインフラストラクチャの仮想サーバ内の仮想セキュリティ装置をポーリングして、該仮想セキュリティ装置の利用率を決定するステップと、利用率が上限閾値量を超えている場合、クラウドマネージャに、仮想サーバ内に別の仮想セキュリティ装置を作成するよう要求を送信するステップとを含み、仮想サーバ内の１つ又は複数の仮想マシンに関連付けられるネットワークパケットが、仮想セキュリティ装置にルーティングされる方法を提供することがある。
【０１８８】
実施形態の例は更に、ネットワークパケットが、仮想セキュリティ装置にルーティングされる前にインターセプトされることを備える。
【０１８９】
１つ又は複数の実施形態は、仮想ネットワークインフラストラクチャの仮想サーバ内の仮想セキュリティ装置をポーリングして、該仮想セキュリティ装置の利用率を決定するステップと、セキュリティポリシーが、仮想セキュリティ装置によって処理される仮想サーバの仮想マシンを必要としないと決定された場合、新たなネットワークパケットが仮想セキュリティ装置にルーティングされるのを防ぐステップと、仮想セキュリティ装置がアイドル状態のとき、クラウドマネージャに、仮想サーバの仮想セキュリティ装置を除去するよう要求を送信するステップとを含み、仮想サーバ内の１つ又は複数の仮想マシンに関連付けられる、以前に送信されたネットワークパケットは、仮想セキュリティ装置にルーティングされている方法を提供することがある。
【０１９０】
実施形態の例は更に、以前に送信されたネットワークパケットが、仮想セキュリティ装置にルーティングされる前にインターセプトされていることを備える。
【図１】
0005890595.tif 000002
【図２】
0005890595.tif 000003
【図３】
0005890595.tif 000004
【図４】
0005890595.tif 000005
【図５】
0005890595.tif 000006
【図６】
0005890595.tif 000007
【図７】
0005890595.tif 000008
【図８】
0005890595.tif 000009
【図９】
0005890595.tif 000010
【図１０】
0005890595.tif 000011
【図１１】
0005890595.tif 000012
【図１２】
0005890595.tif 000013
【図１３】
0005890595.tif 000014
【図１４】
0005890595.tif 000015
【図１５】
0005890595.tif 000016
【図１６】
0005890595.tif 000017
【図１７Ａ】
0005890595.tif 000018
【図１７Ｂ】
0005890595.tif 000019
【図１７Ｃ】
0005890595.tif 000020
【図１８】
0005890595.tif 000021