(57)【特許請求の範囲】
【請求項１】
オーバーレイ・ネットワーク中でセキュリティ・ポリシを適用する方法であって、前記方法は、
オーバーレイ・ネットワークを通る通信経路に対する要求を受信するステップであって、前記要求は、前記オーバーレイ・ネットワーク中の第一物理スイッチから送信され、前記第一物理スイッチはパケットの送信元である送信元仮想マシン（ＶＭ）をホストする第一サーバに接続されており、前記要求は少なくとも、
パケット、
前記送信元ＶＭのアドレスを少なくとも含む第一情報、および
前記パケットの宛先である宛先ＶＭをホストする第二サーバに接続されている第二物理スイッチのアドレスを少なくとも含む第二情報、
を含む、前記受信するステップと、
前記パケットの宛先に接続されている第二物理スイッチを判定するステップと、
前記パケットのコンテンツ、前記第一情報、および前記第二情報のうちの少なくとも一つに基づいて、前記パケットにセキュリティ・ポリシを適用するかどうかを判定するステップと、
前記第一物理スイッチと前記第二物理スイッチとの間の通信経路を選択するステップであって、前記パケットに前記セキュリティ・ポリシを適用しないと判定された場合は、前記選択された通信経路は、前記第一物理スイッチを直接前記第二物理スイッチに接続し、前記パケットに前記セキュリティ・ポリシを適用すると判定された場合は、前記選択された通信経路は、前記第一物理スイッチをセキュリティ・アプライアンスを介して前記第二物理スイッチに接続する、前記選択するステップと、
前記選択された通信経路を前記第一物理スイッチに送信するステップと、
を含む方法。
【請求項２】
前記パケットの前記送信元と前記パケットの前記宛先との間で伝達されるどのパケットも前記選択された通信経路に沿って進むように、オーバーレイ・ネットワークのノード群をプログラムするようスイッチ・コントローラに命令するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記パケットに前記セキュリティ・ポリシを適用するかどうかを前記判定するステップが、
前記送信元ＶＭと前記宛先ＶＭとが共通のグループまたはドメイン中にあると判定し、前記セキュリティ・ポリシを適用しないと決めるステップと、
前記送信元ＶＭと前記宛先ＶＭとが共通のグループまたはドメイン中にないと判定し、前記セキュリティ・ポリシを適用すると決めるステップと、
を含む、請求項１に記載の方法。
【請求項４】
前記第一および第二物理スイッチが、各スイッチによって受信および送信されるパケットにオーバーレイ機能性を付与する能力を有する、請求項１に記載の方法。
【請求項５】
前記パケットに前記セキュリティ・ポリシを適用するかどうかを前記判定するステップが、
前記パケットに前記セキュリティ・ポリシを適用するかどうかを判定するために、前記パケットにアクセス制御リスト（ＡＣＬ）を適用するステップ、
を含む、請求項１に記載の方法。
【請求項６】
前記セキュリティ・ポリシが、前記セキュリティ・アプライアンスによる一つ以上のサービスの適用を命じ、前記サービスは、
ファイアウォール・サービスと、
侵入防止システム（ＩＰＳ）サービスと、
侵入検知システム（ＩＤＳ）サービスと、
サーバ・ロード・バランス・サービスと、
仮想プライベート・ネットワーク（ＶＰＮ）サービスと、
ビデオ最適化サービスと、
広域ネットワーク（ＷＡＮ）最適化サービスと、
を含む、請求項１に記載の方法。
【請求項７】
第一物理スイッチを第二物理スイッチに接続するオーバーレイ・ネットワークと、
前記第一物理スイッチおよび前記第二物理スイッチと通信しているスイッチ・コントローラと、
前記オーバーレイ・ネットワークを介して送信されてくるパケットにセキュリティ・ポリシを適用するようになされたセキュリティ・アプライアンスと、
前記第一物理スイッチに接続された少なくとも一つの第一サーバであって、前記第一サーバは少なくとも一つの送信元仮想マシン（ＶＭ）をホストする、前記第一サーバと、
前記第二物理スイッチに接続された少なくとも一つの第二サーバであって、前記第二サーバは少なくとも一つの宛先ＶＭをホストする、前記第二サーバと、
少なくとも、前記第一物理スイッチ、前記第二物理スイッチ、および前記オーバーレイ・ネットワークと通信している仮想ネットワーク・コントローラであって、
前記仮想ネットワーク・コントローラは、
前記オーバーレイ・ネットワークを通る通信経路に対する要求を受信するようになされたロジックであって、前記要求は、前記第一物理スイッチから送信され、少なくとも、
パケットと、
前記パケットを発信した前記送信元ＶＭのアドレスを少なくとも含む第一情報と、
前記第二物理スイッチのアドレスを少なくとも含む第二情報と、
を含む、前記受信するようになされたロジック、
前記第二物理スイッチに接続された、前記パケットの前記宛先を判定するようになされたロジック、
前記パケットのコンテンツ、前記第一情報、および前記第二情報のうちの少なくとも一つに基づいて、前記パケットにセキュリティ・ポリシを適用するかどうかを判定するようになされたロジック、
前記第一物理スイッチと前記第二物理スイッチとの間の通信経路を選択するようになされたロジックであって、前記パケットに前記セキュリティ・ポリシを適用しないと判定された場合は、前記選択された通信経路は、前記第一物理スイッチを直接前記第二物理スイッチに接続し、前記パケットに前記セキュリティ・ポリシを適用すると判定された場合は、前記選択された通信経路は、前記第一物理スイッチを前記セキュリティ・アプライアンスを介して前記第二物理スイッチに接続する、前記選択するようになされたロジック、および
前記選択された通信経路を前記第一物理スイッチに送信するようになされたロジック、
を含む、前記仮想ネットワーク・コントローラと、
を含むシステム。
【請求項８】
前記仮想ネットワーク・コントローラが、前記パケットの前記送信元ＶＭと前記宛先との間で伝達されるどのパケットも前記選択された通信経路に沿って進むように、オーバーレイ・ネットワークのノード群をプログラムするよう前記スイッチ・コントローラに命令するようになされたロジックをさらに含む、請求項７に記載のシステム。
【請求項９】
前記パケットに前記セキュリティ・ポリシを適用するかどうかを判定するようになされた前記ロジックが、
前記送信元ＶＭと前記宛先ＶＭとが共通のグループまたはドメイン中にあると判定し、前記セキュリティ・ポリシを適用しないと決めるようになされたロジックと、
前記送信元ＶＭと前記宛先ＶＭとが共通のグループまたはドメイン中にないと判定し、前記セキュリティ・ポリシを適用すると決めるようになされたロジックと、
を含む、請求項７に記載のシステム。
【請求項１０】
前記第一および第二物理スイッチが、各スイッチによって受信および送信されるパケットにオーバーレイ機能性を付与する能力を有する、請求項７に記載のシステム。
【請求項１１】
前記パケットに前記セキュリティ・ポリシを適用するかどうかを判定するようになされた前記ロジックが、
前記パケットに前記セキュリティ・ポリシを適用するかどうかを判定するために、前記パケットにアクセス制御リスト（ＡＣＬ）を適用するようになされたロジック、
を含む、請求項７に記載のシステム。
【請求項１２】
前記セキュリティ・ポリシが、前記セキュリティ・アプライアンスによる一つ以上のサービスの適用を命じ、前記サービスは、
ファイアウォール・サービスと、
侵入防止システム（ＩＰＳ）サービスと、
侵入検知システム（ＩＤＳ）サービスと、
サーバ・ロード・バランス・サービスと、
仮想プライベート・ネットワーク（ＶＰＮ）サービスと、
ビデオ最適化サービスと、
広域ネットワーク（ＷＡＮ）最適化サービスと、
を含む、請求項７に記載のシステム。
【請求項１３】
請求項１〜６の何れか1項に記載の各ステップをコンピュータに実行させる、コンピュータ・プログラム。
【請求項１４】
請求項１３に記載の前記コンピュータ・プログラムを、コンピュータ可読ストレージ媒体に記録した、ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ・センタ・インフラストラクチャに関し、さらに具体的には、本発明は、データ・センタにおける仮想オーバーレイ・ネットワーク・トラフィックへのディープ・パケット・インスペクション・サービスの提供に関する。
【背景技術】
【０００２】
拡張可能仮想ローカル・エリア・ネットワーク（ＶＸＬＡＮ：ｖｉｒｔｕａｌ  ｅｘｔｅｎｓｉｂｌｅ  ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、分散型オーバーレイ仮想化イーサネット（ＤＯＶＥ：ｄｉｓｔｒｉｂｕｔｅｄ  ｏｖｅｒｌａｙ  ｖｉｒｔｕａｌｉｚａｔｉｏｎ  Ｅｔｈｅｒｎｅｔ）などの仮想オーバーレイ・ネットワークは、位置透過性を生成するため、元のネットワーク・パケットのトップに、パケット中にカプセル化されたプロトコル・ヘッダを用いる。追加のカプセル化プロトコル・ヘッダに起因して、とりわけ物理インフラストラクチャ・ルータおよびスイッチなど、既存またはレガシのインターネットワーキング・エレメント（ＩＮＥ：Ｉｎｔｅｒ−Ｎｅｔｗｏｒｋｉｎｇ  Ｅｌｅｍｅｎｔ）は、元のパケットからの情報を判定することができない。これは、オーバーレイ・プロトコル・ヘッダの内側にある元のパケットが、レガシＩＮＥに対する従来式データ・ペイロードとしてカプセル化されているためである。さらに、このような元のパケットの可視性の欠如は、ＩＮＥが高度なネットワーク・セキュリティおよびサービスを実施することを阻んでいる。
【０００３】
ＶＸＬＡＮなどのプロトコルは、ユーザ・データグラム・プロトコル／インターネット・プロトコル（ＵＤＰ／ＩＰ：Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を用いて、物理ネットワークを介した送信のために元のイーサネット・パケットをカプセル化する。元のイーサネット・パケットは、発信元から最も近いＶＸＬＡＮゲートウェイに至るまでネットワークをトンネルにより潜り抜ける。ＶＸＬＡＮゲートウェイは、仮想ネットワークを非仮想ネットワーク（物理コンポーネントを有するレガシ・ネットワーク）に接続する。ＶＸＬＡＮゲートウェイはＶＸＬＡＮプロトコルおよびトンネルを解するので（処理することができるので）、これらのカプセル化されたパケットを識別する能力を有する。
【０００４】
さらに、一般テナント（例えば、企業、機関、個人など、ネットワーク・リソースの単一のユーザ）に属する、ＶＸＬＡＮまたはＤＯＶＥネットワークなどオーバーレイ・ネットワーク中の仮想マシン（ＶＭ：ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅ）は、（ＶＸＬＡＮ中の相異なる仮想ネットワーク識別子（ＶＮＩＤ：ｖｉｒｔｕａｌ  ｎｅｔｗｏｒｋ  ｉｄｅｎｔｉｆｉｅｒ）を有する仮想ネットワーク、相異なるドメイン識別子を有するドメイン、またはＤＯＶＥ中のＤＯＶＥ仮想グループ（ＤＶＧ：ＤＯＶＥ  Ｖｉｒｔｕａｌ  Ｇｒｏｕｐ）などの）グループに分類し、セキュリティ・ポリシ・ルールを適用して相異なるグループに属するＶＭの間の通信を管理することができる。セキュリティ・ポリシを適用する典型的な方法は、ネットワーク上でアクセス可能で、特定のセキュリティ・サービスを適用する能力を有する物理セキュリティ・アプライアンスを用いることである。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、オーバーレイ・ネットワーク・トラフィックにセキュリティ・サービスを適用するためには、そのトラフィックを物理セキュリティ・アプライアンスに経由させなければならない。しかしながら、スイッチ、ルータなどの中間のネットワーク・デバイスは、オーバーレイ・トラフィックの内側に対する可視性を持たず、したがって、或るトラフィックは物理セキュリティ・アプライアンスに経由させなければならないが、他のトラフィックは、直接その指定宛先アドレスに送らなければならないということの判断が分からない。
【０００６】
したがって、セキュリティ・サービスの適用が必要な相応のオーバーレイ・トラフィックを物理セキュリティ・アプライアンスを経由させ、一方、他のトラフィックを送信元ＶＭと宛先ＶＭとの間での直接送信させることを可能にする方法およびネットワーク・アーキテクチャは、極めて有益であろう。
【課題を解決するための手段】
【０００７】
一実施形態において、オーバーレイ・ネットワーク中でセキュリティ・ポリシを適用する方法は、オーバーレイ・ネットワークを通る通信経路に対する要求を受信するステップであって、該要求は、オーバーレイ・ネットワーク中の第一物理スイッチから送信され、第一物理スイッチはパケットの送信元に接続されており、該要求は少なくとも、パケット、第一情報、および第二情報を含む、該受信するステップと、パケットの宛先に接続されている第二物理スイッチを判定するステップと、パケットのコンテンツ、第一情報、および第二情報のうちの少なくとも一つに基づいて、パケットにセキュリティ・ポリシを適用するかどうかを判定するステップと、第一物理スイッチと第二物理スイッチとの間の通信経路を選択するステップであって、パケットにセキュリティ・ポリシを適用しないと判定された場合は、選択された通信経路は、第一物理スイッチを直接第二物理スイッチに接続し、パケットにセキュリティ・ポリシを適用すると判定された場合は、選択された通信経路は、第一物理スイッチをセキュリティ・アプライアンスを介して第二物理スイッチに接続する、該選択するステップと、選択された通信経路を第一物理スイッチに送信するステップと、を含む。
【０００８】
別の実施形態において、システムは、第一物理スイッチを第二物理スイッチに接続するオーバーレイ・ネットワークと、第一物理スイッチおよび第二物理スイッチと通信しているスイッチ・コントローラと、オーバーレイ・ネットワークを介して送信されてくるパケットにセキュリティ・ポリシを適用するようになされたセキュリティ・アプライアンスと、第一物理スイッチに接続された少なくとも一つの第一サーバであって、該第一サーバは少なくとも一つの送信元仮想マシン（ＶＭ：ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅ）をホストする、該第一サーバと、第二物理スイッチに接続された少なくとも一つの第二サーバであって、該第二サーバは少なくとも一つの宛先ＶＭをホストする、該第二サーバと、少なくとも第一物理スイッチ、第二物理スイッチ、およびオーバーレイ・ネットワークと通信している仮想ネットワーク・コントローラであって、該仮想ネットワーク・コントローラは、オーバーレイ・ネットワークを通る通信経路に対する要求を受信するようになされたロジックであって、該要求は、第一物理スイッチから送信され、少なくとも、パケットと、該パケットを発信した送信元ＶＭについての第一情報と、該パケットの宛先についての第二情報と、を含む、該受信するようになされたロジック；第二物理スイッチに接続された、パケットの宛先を判定するようになされたロジック；パケットのコンテンツ、第一情報、および第二情報のうちの少なくとも一つに基づいて、パケットにセキュリティ・ポリシを適用するかどうかを判定するようになされたロジック；第一物理スイッチと第二物理スイッチとの間の通信経路を選択するようになされたロジックであって、パケットにセキュリティ・ポリシを適用しないと判定された場合は、選択された通信経路は、第一物理スイッチを直接第二物理スイッチに接続し、パケットにセキュリティ・ポリシを適用すると判定された場合は、選択された通信経路は、第一物理スイッチをセキュリティ・アプライアンスを介して第二物理スイッチに接続する、該選択するようになされたロジック；および選択された通信経路を第一物理スイッチに送信するようになされたロジック；を含む該仮想ネットワーク・コントローラと、を含む。
【０００９】
さらに別の実施形態において、オーバーレイ・ネットワーク中でセキュリティ・ポリシを適用するためのコンピュータ・プログラム製品は、具現化されたコンピュータ可読プログラム・コードを有するコンピュータ可読ストレージ媒体を含み、該コンピュータ可読プログラム・コードは、オーバーレイ・ネットワークを通る通信経路に対する要求を受信するよう構成されたコンピュータ可読プログラム・コードであって、該要求は、オーバーレイ・ネットワーク中の第一物理スイッチから送信され、第一物理スイッチはパケットの送信元に接続されており、該要求は少なくとも、パケット、第一情報、および第二情報を含む、該受信するよう構成されたコンピュータ可読プログラム・コードと、パケットの宛先に接続されている第二物理スイッチを判定するよう構成されたコンピュータ可読プログラム・コードと、パケットのコンテンツ、第一情報、および第二情報のうちの少なくとも一つに基づいて、パケットにセキュリティ・ポリシを適用するかどうかを判定するよう構成されたコンピュータ可読プログラム・コードと、第一物理スイッチと第二物理スイッチとの間の通信経路を選択するよう構成されたコンピュータ可読プログラム・コードであって、パケットにセキュリティ・ポリシを適用しないと判定された場合は、選択された通信経路は、第一物理スイッチを直接第二物理スイッチに接続し、パケットにセキュリティ・ポリシを適用すると判定された場合は、選択された通信経路は、第一物理スイッチをセキュリティ・アプライアンスを介して第二物理スイッチに接続する、該選択するよう構成されたコンピュータ可読プログラム・コードと、選択された通信経路を第一物理スイッチに送信するよう構成されたコンピュータ可読プログラム・コードと、を含む。
【００１０】
さらに別の実施形態によれば、仮想ネットワーク・コントローラは、第一物理スイッチと第二物理スイッチとを接続するオーバーレイ・ネットワークを通る通信経路に対する要求を受信するようになされたロジックであって、該要求は、第一物理スイッチから送信され、少なくとも、パケットと、パケットの送信元についての第一情報と、パケットの宛先についての第二情報とを含む、該受信するようになされたロジック、第二物理スイッチに接続された、パケットの宛先を判定するようになされたロジック、パケットのコンテンツ、第一情報、および第二情報のうちの少なくとも一つに基づいて、パケットにセキュリティ・ポリシを適用するかどうかを判定するようになされたロジック、第一物理スイッチと第二物理スイッチとの間の通信経路を選択するようになされたロジックであって、パケットにセキュリティ・ポリシを適用しないと判定された場合は、選択された通信経路は、第一物理スイッチを直接第二物理スイッチに接続し、パケットにセキュリティ・ポリシを適用すると判定された場合は、選択された通信経路は、第一物理スイッチをセキュリティ・アプライアンスを介して第二物理スイッチに接続する、該選択するようになされたロジック、および選択された通信経路を第一物理スイッチに送信するようになされたロジックを含み、該仮想ネットワーク・コントローラは、分散型オーバーレイ仮想化イーサネット（ＤＯＶＥ）規格を順守する。
【００１１】
本発明の他の態様および実施形態は、本発明の原理を例示する以下の詳細な説明を図面と併せることによって明らかになろう。
【図面の簡単な説明】
【００１２】
【図１】一実施形態による、ネットワーク・アーキテクチャを表す。
【図２】一実施形態による、図１のサーバもしくはクライアントまたはその両方に関連付けることが可能な代表的なハードウェア環境を示す。
【図３】一実施形態による、仮想化データ・センタの簡略図である。
【図４】一実施形態による、分散型オーバーレイ仮想化イーサネット（ＤＯＶＥ）を用いるオーバーレイ・ネットワークを有するシステムの簡略図である。
【図５】一実施形態による、接続シーケンスの図である。
【図６】一実施形態による、パケット転送の異なった段階におけるパケット・ヘッダを示す。
【図７】一実施形態による方法のフローチャートである。
【発明を実施するための形態】
【００１３】
以下の説明は、本発明の一般的原理を示すためのものであり、本明細書で請求する発明概念を限定するものでない。さらに、本明細書で説明する特定の特徴は、様々な可能な組み合わせまたは順列の各々において、説明する他の特徴と組み合わせて用いることが可能である。
【００１４】
本明細書で別途に特に定義されている場合を除き、全ての用語には、本明細書から示唆される意味のほか、当業者が理解している意味、もしくは辞書、論文などに定義された意味、またはその両方を含め、それらの可能な最広義の解釈が付与される。
【００１５】
また、本明細書および添付の請求項で使用されている、単数形式「或る（ａ、ａｎ）」および「該、前記（ｔｈｅ）」は、別途に規定されているのでなければ、複数の指示対象を含むことに留意されたい。
【００１６】
一般的な一実施形態において、オーバーレイ・ネットワーク中でセキュリティ・ポリシを適用する方法は、オーバーレイ・ネットワークを通る通信経路に対する要求を受信するステップであって、該要求は、オーバーレイ・ネットワーク中の第一物理スイッチから送信され、第一物理スイッチはパケットの送信元に接続されており、該要求は少なくとも、パケット、第一情報、および第二情報を含む、該受信するステップと、パケットの宛先に接続されている第二物理スイッチを判定するステップと、パケットのコンテンツ、第一情報、および第二情報のうちの少なくとも一つに基づいて、パケットにセキュリティ・ポリシを適用するかどうかを判定するステップと、第一物理スイッチと第二物理スイッチとの間の通信経路を選択するステップであって、パケットにセキュリティ・ポリシを適用しないと判定された場合は、選択された通信経路は、第一物理スイッチを直接第二物理スイッチに接続し、パケットにセキュリティ・ポリシを適用すると判定された場合は、選択された通信経路は、第一物理スイッチをセキュリティ・アプライアンスを介して第二物理スイッチに接続する、該選択するステップと、選択された通信経路を第一物理スイッチに送信するステップと、を含む。
【００１７】
別の一般的な実施形態において、システムは、第一物理スイッチを第二物理スイッチに接続するオーバーレイ・ネットワークと、第一物理スイッチおよび第二物理スイッチと通信しているスイッチ・コントローラと、オーバーレイ・ネットワークを介して送信されてくるパケットにセキュリティ・ポリシを適用するようになされたセキュリティ・アプライアンスと、第一物理スイッチに接続された少なくとも一つの第一サーバであって、該第一サーバは少なくとも一つの送信元仮想マシン（ＶＭ）をホストする、該第一サーバと、第二物理スイッチに接続された少なくとも一つの第二サーバであって、該第二サーバは少なくとも一つの宛先ＶＭをホストする、該第二サーバと、少なくとも、第一物理スイッチ、第二物理スイッチ、およびオーバーレイ・ネットワークと通信している仮想ネットワーク・コントローラであって、該仮想ネットワーク・コントローラは、オーバーレイ・ネットワークを通る通信経路に対する要求を受信するようになされたロジックであって、該要求は、第一物理スイッチから送信され、少なくとも、パケット、該パケットを発信した送信元ＶＭについての第一情報、および該パケットの宛先についての第二情報を含む、該受信するようになされたロジック、第二物理スイッチに接続された、パケットの宛先を判定するようになされたロジック、パケットのコンテンツ、第一情報、および第二情報のうちの少なくとも一つに基づいて、パケットにセキュリティ・ポリシを適用するかどうかを判定するようになされたロジック、第一物理スイッチと第二物理スイッチとの間の通信経路を選択するようになされたロジックであって、パケットにセキュリティ・ポリシを適用しないと判定された場合は、選択された通信経路は、第一物理スイッチを直接第二物理スイッチに接続し、パケットにセキュリティ・ポリシを適用すると判定された場合は、選択された通信経路は、第一物理スイッチをセキュリティ・アプライアンスを介して第二物理スイッチに接続する、該選択するようになされたロジック、および選択された通信経路を第一物理スイッチに送信するようになされたロジック、を含む、該仮想ネットワーク・コントローラと、を含む。
【００１８】
さらに別の一般的な実施形態において、オーバーレイ・ネットワーク中でセキュリティ・ポリシを適用するためのコンピュータ・プログラム製品は、具現化されたコンピュータ可読プログラム・コードを有するコンピュータ可読ストレージ媒体を含み、該コンピュータ可読プログラム・コードは、オーバーレイ・ネットワークを通る通信経路に対する要求を受信するよう構成されたコンピュータ可読プログラム・コードであって、該要求は、オーバーレイ・ネットワーク中の第一物理スイッチから送信され、第一物理スイッチはパケットの送信元に接続されており、該要求は少なくとも、パケット、第一情報、および第二情報を含む、該受信するよう構成されたコンピュータ可読プログラム・コードと、パケットの宛先に接続されている第二物理スイッチを判定するよう構成されたコンピュータ可読プログラム・コードと、パケットのコンテンツ、第一情報、および第二情報のうちの少なくとも一つに基づいて、パケットにセキュリティ・ポリシを適用するかどうかを判定するよう構成されたコンピュータ可読プログラム・コードと、第一物理スイッチと第二物理スイッチとの間の通信経路を選択するよう構成されたコンピュータ可読プログラム・コードであって、パケットにセキュリティ・ポリシを適用しないと判定された場合は、選択された通信経路は、第一物理スイッチを直接第二物理スイッチに接続し、パケットにセキュリティ・ポリシを適用すると判定された場合は、選択された通信経路は、第一物理スイッチをセキュリティ・アプライアンスを介して第二物理スイッチに接続する、該選択するよう構成されたプログラム・コードと、選択された通信経路を第一物理スイッチに送信するよう構成されたコンピュータ可読プログラム・コードと、を含む。
【００１９】
さらに別の一般的な実施形態によれば、仮想ネットワーク・コントローラは、第一物理スイッチと第二物理スイッチとを接続するオーバーレイ・ネットワークを通る通信経路に対する要求を受信するようになされたロジックであって、該要求は、第一物理スイッチから送信され、少なくとも、パケットと、パケットの送信元についての第一情報と、パケットの宛先についての第二情報とを含む、該受信するようになされたロジック、第二物理スイッチに接続された、パケットの宛先を判定するようになされたロジック、パケットのコンテンツ、第一情報、および第二情報のうちの少なくとも一つに基づいて、パケットにセキュリティ・ポリシを適用するかどうかを判定するようになされたロジック、第一物理スイッチと第二物理スイッチとの間の通信経路を選択するようになされたロジックであって、パケットにセキュリティ・ポリシを適用しないと判定された場合は、選択された通信経路は、第一物理スイッチを直接第二物理スイッチに接続し、パケットにセキュリティ・ポリシを適用すると判定された場合は、選択された通信経路は、第一物理スイッチをセキュリティ・アプライアンスを介して第二物理スイッチに接続する、該選択するようになされたロジック、および選択された通信経路を第一物理スイッチに送信するようになされたロジック、を含み、該仮想ネットワーク・コントローラは、分散型オーバーレイ仮想化イーサネット（ＤＯＶＥ）規格を順守する。
【００２０】
当業者には当然のことながら、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化することができる。したがって、本発明の態様は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、あるいは、ソフトウェア態様およびハードウェア態様を組み合わせた実施形態の形を取ることができ、これらは全て一般に本明細書では「ロジック」、「回路」、「モジュール」、または「システム」と称することがある。さらに、本発明の態様は、コンピュータ可読プログラム・コードが具現化されている一つ以上のコンピュータ可読媒体（群）中に具現化されたコンピュータ・プログラム製品の形を取ることも可能である。
【００２１】
一つ以上のコンピュータ可読媒体（群）の任意の組み合わせを用いることが可能である。コンピュータ可読媒体は、コンピュータ可読信号媒体または非一時的コンピュータ可読ストレージ媒体とすることができる。非一時的コンピュータ可読ストレージ媒体は、例えば、以下に限らないが、電子的、磁気的、光学的、電磁気的、赤外的、または半導体の、システム、装置、またはデバイス、あるいはこれらの任意の適切な組み合わせであり得る。非一時的コンピュータ可読ストレージ媒体のさらに具体的な例（非包括的リスト）には、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭ：ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙまたはフラッシュ・メモリ）、携帯型コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、ブルーレイ・ディスク読み取り専用メモリ（ＢＤ−ＲＯＭ：Ｂｌｕ−Ｒａｙ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｒｏｒｙ）、光ストレージ・デバイス、磁気ストレージ・デバイス、または前述の任意の適切な組み合わせが含まれる。本文書の文脈において、非一時的コンピュータ可読ストレージ媒体は、命令実行システム、装置、もしくはデバイスによって、またはこれらに関連させて使用するためのプログラムまたはアプリケーションを、包含または格納する能力のある任意の有形媒体であり得る。
【００２２】
コンピュータ可読信号媒体には、例えばベースバンド中にまたは搬送波の一部として具現化されたコンピュータ可読プログラム・コードを有する、伝播データ信号を含めることができる。かかる伝播信号は、以下に限らないが、電磁気的、光学的、またはこれらの任意の適切な組み合わせを含め、さまざまな任意の形態を取ることが可能である。コンピュータ可読信号媒体は、一つ以上の配線を有する電気接続、光ファイバなど、非一時的コンピュータ可読ストレージ媒体ではないが、命令実行システム、装置、もしくはデバイスによって、またはこれらに関連させて使用するためのプログラムの通信、伝播、または伝送が可能な任意のコンピュータ可読媒体であり得る。
【００２３】
コンピュータ可読媒体上に具現化されたプログラム・コードは、以下に限らないが、無線、有線、光ファイバ・ケーブル、無線周波数（ＲＦ：ｒａｄｉｏ  ｆｒｅｑｕｅｎｃｙ）など、または前述の任意の適した組み合わせを含め、任意の適切な媒体を用いて送信することができる。
【００２４】
本発明の態様のオペレーションを実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および、“Ｃ”プログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語を含め、一つ以上のプログラミング言語の任意の組み合わせで記述することができる。このプログラム・コードは、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータで専ら実行することも、ユーザのコンピュータで部分的に実行することもでき、一部をユーザのコンピュータで一部を遠隔コンピュータで実行することもでき、あるいは遠隔のコンピュータまたはサーバで専ら実行することもできる。後者の場合は、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ストレージ・エリア・ネットワーク（ＳＡＮ：ｓｔｏｒａｇｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）もしくは広域ネットワーク（ＷＡＮ：ｗｉｄｅａｒｅａ ｎｅｔｗｏｒｋ）、任意の仮想ネットワーク、またはこれらの組合せを含む任意の種類のネットワークを介して、遠隔コンピュータまたはサーバをユーザのコンピュータに接続することもでき、あるいは例えばインターネット・サービス・プロバイダ（ＩＳＰ：Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）を使いインターネットを介し外部のコンピュータへの接続を行うことも可能である。
【００２５】
本発明の様々な実施形態による方法、装置（システム）およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら、本明細書で本発明の態様を説明する。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、および、フローチャート図もしくはブロック図またはその両方中のブロックの組み合わせは、コンピュータ・プログラム命令によって実装することが可能である。これらのコンピュータ・プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに提供し、そのコンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群／動作群を実装するための手段を生成するようにすることができる。
【００２６】
また、これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに対し特定の仕方で機能するよう命じることができるコンピュータ可読媒体に格納し、そのコンピュータ可読媒体に格納された命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に特定されている機能／動作を実装する命令群を包含する製造品を作り出せるようにすることができる。
【００２７】
さらに、コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードし、そのコンピュータ上、他のプログラム可能装置上、または他のデバイス上で一連のオペレーション・ステップを実行させて、コンピュータ実装のプロセスを作り出し、当該コンピュータ上もしくは他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群／動作群を実装するためのプロセスを提供するようにすることも可能である。
【００２８】
図１は、一実施形態による、ネットワーク・アーキテクチャ１００を表す。図１に示されるように、第一遠隔ネットワーク１０４および第二遠隔ネットワーク１０６を含む複数の遠隔ネットワーク１０２が設けられている。遠隔ネットワーク群１０２と最近隣のネットワーク１０８との間にゲートウェイ１０１を連結することができる。本ネットワーク・アーキテクチャ１００の状況では、ネットワーク１０４、１０６は各々、以下に限らないが、ＬＡＮ、ＶＬＡＮ、インターネットなどのＷＡＮ、公衆交換電話網（ＰＳＴＮ：ｐｕｂｌｉｃ  ｓｗｉｔｃｈｅｄ  ｔｅｌｅｐｈｏｎｅ  ｎｅｔｗｏｒｋ）、内部電話網などを含め、任意の形態を取り得る。
【００２９】
使用において、ゲートウェイ１０１は、遠隔ネットワーク１０２から最近隣のネットワーク１０８への入口点としての役割をする。しかして、ゲートウェイ１０１は、ゲートウェイ１０１に到着する所与のデータ・パケットを方向付けできるルータとして、および所与のパケットに対しゲートウェイ１０１への出入りの実際の経路を提供するスイッチとして機能することが可能である。
【００３０】
最近隣のネットワーク１０８に連結され、遠隔ネットワーク１０２からゲートウェイ１０１を介してアクセスが可能な少なくとも一つのデータ・サーバ１１４がさらに含まれている。なお、データ・サーバ（群）１１４は、任意の種類のコンピューティング・デバイス／グループウェアを含み得る。複数のユーザ・デバイス１１６が各データ・サーバ１１４に連結されている。かかるユーザ・デバイス１１６は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、プリンタ、もしくは任意の種類のロジック含有デバイス、またはこれらの組合せを含み得る。なお、いくつかの実施形態において、ユーザ・デバイス１１１は、任意のネットワークに直接連結することも可能である。
【００３１】
一つ以上のネットワーク１０４、１０６、１０８には、例えば、ファクシミリ機、プリンタ、スキャナ、ハード・ディスク・ドライブ、ネットワークのもしくはローカルのまたはその両方のストレージ・ユニットまたはシステムなどの周辺機器１２０もしくは一連の周辺機器１２０を連結することができる。なお、データベースもしくは追加のコンポーネントまたはその両方を、ネットワーク１０４、１０６、１０８に連結された任意の種類のネットワーク・エレメントと共に用いる、あるいはその中に組み込むことが可能である。本説明の文脈において、ネットワーク・エレメントとは、ネットワークの任意のコンポーネントを指し得る。
【００３２】
いくつかのアプローチによれば、本明細書で説明する方法およびシステムは、仮想システム、もしくは、ＩＢＭ（ＩＢＭ社の登録商標）ｚ／ＯＳ（ＩＢＭ社の登録商標）環境をエミュレートするＵＮＩＸ（Ｒ）システム、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（Ｒ）環境を仮想的にホストするＵＮＩＸ（Ｒ）システム、ＩＢＭ（ＩＢＭ社の登録商標）ｚ／ＯＳ（ＩＢＭ社の登録商標）環境をエミュレートするＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（Ｒ）システムなど、一つ以上の他のシステムをエミュレートするシステム、またはその両方と共に、もしくはその上でまたはその両方の仕方で実装することができる。いくつかの実施形態において、この仮想化もしくはエミュレーションまたはその両方はＶＭＷＡＲＥソフトウェアを用いて強化することが可能である。
【００３３】
さらなるアプローチにおいて、一つ以上のネットワーク１０４、１０６、１０８は、一般に「クラウド」と言われるシステムのクラスタを表し得る。クラウド・コンピューティングでは、処理能力、周辺機器、ソフトウェア、データ、サーバなどの共有リソースは、オンデマンドの関係で、クラウド中のどのシステムにも提供され、これにより、多くのコンピューティング・システムに亘る、サービスへのアクセスとサービスの配分とが可能になる。クラウド・コンピューティングは、通常、クラウド中で動作するシステムの間ではインターネット接続を伴うが、当該技術分野で周知のように、これらシステムを接続する他の技法を使うこともできる。
【００３４】
図２は、一実施形態による、図１のユーザ・デバイス１１６もしくはサーバ１１４またはその両方に関連付けられる代表的なハードウェア環境を示す。図２は、いくつかの実施形態による、マイクロプロセッサなどの中央処理ユニット（ＣＰＵ：ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）２１０と、一つ以上のバス２１２を介して相互接続されたいくつかの他のユニットとを有するワークステーションの典型的なハードウェア構成を例示しており、該バスは、ローカル・バス、並列バス、直列バスなど相異なる種類とすることができる。
【００３５】
図２に示されたワークステーションは、ランダム・アクセス・メモリ（ＲＡＭ）２１４と、読み取り専用メモリ（ＲＯＭ）２１６と、ディスク・ストレージ・ユニット２２０などの周辺デバイスを一つ以上のバス２１２に接続するためのＩ／Ｏアダプタ２１８と、キーボード２２４、マウス２２６、スピーカ２２８、マイクロフォン２３２、もしくはタッチ・スクリーン、デジタル・カメラ（図示せず）など他のユーザ・インタフェース・デバイスまたはこれらの組合せを一つ以上のバス２１２に接続するためのユーザ・インターフェース・アダプタ２２２と、ワークステーションを通信ネットワーク２３５（例えば、データ処理ネットワーク）に接続するための通信アダプタ２３４と、一つ以上のバス２１２をディスプレイ・デバイス２３８に接続するためのディスプレイ・アダプタ２３６と、を含む。
【００３６】
このワークステーションには、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（Ｒ）オペレーティング・システム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、ＭＡＣ（Ｒ）ＯＳ、ＵＮＩＸ（Ｒ）  ＯＳなど、常駐のオペレーティング・システムを持たせることができる。当然ながら、好適な実施形態は、前述以外のプラットフォームおよびオペレーティング・システムに実装することも可能である。好適な実施形態は、オブジェクト指向プログラミング手法に加えて、ＪＡＶＡ（Ｒ）、ＸＭＬ、Ｃ、もしくはＣ＋＋の言語またはこれらの組合せ、あるいは他のプログラミング言語を用いて記述することができる。複雑なアプリケーションを開発するために益々多く使われるようになった、オブジェクト指向プログラミング（ＯＯＰ：ｏｂｊｅｃｔ  ｏｒｉｅｎｔｅｄ  ｐｒｏｇｒａｍｍｉｎｇ）を使用してもよい。
【００３７】
ここで図３を参照すると、一実施形態による、オーバーレイ・ネットワーク３００の概念図が示されている。本オーバーレイ・ネットワークは、拡張可能仮想ローカル・エリア・ネットワーク（ＶＸＬＡＮ）、分散型オーバーレイ仮想化イーサネット（ＤＯＶＥ）、汎用ルーティング・カプセル化を用いたネットワーク仮想化（ＮＶＧＲＥ：Ｎｅｔｗｏｒｋ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ  ｕｓｉｎｇ  Ｇｅｎｅｒｉｃ  Ｒｏｕｔｉｎｇ  Ｅｎｃａｐｓｕｌａｔｉｏｎ）など、任意のオーバーレイ技術、規格、またはプロトコルを用いることができる。
【００３８】
ネットワーク・サービスを仮想化するために、デバイス間にファブリック通信経路（接続性）を単に設ける以外に、パケットがゲートウェイ３１４を通って移動する際に、それらパケットに諸サービスを付与することが可能で、該ゲートウェイは、非仮想ネットワーク（群）３１２と仮想ネットワークＡ３０４および仮想ネットワークＢ３０６との間を移動するパケットに対し経路設定および転送サービスを提供することができる。一つ以上の仮想ネットワーク３０４、３０６は、物理（実際の）ネットワーク・インフラストラクチャ３０２内に存在する。ネットワーク・インフラストラクチャ３０２は、当業者なら周知のように、以下に限らないが、スイッチ、コネクタ、配線、回路、ケーブル、サーバ、ホスト、ストレージ媒体、オペレーティング・システム、アプリケーション、ポート、Ｉ／Ｏなどを含め、通常はネットワーク・インフラストラクチャに関連付けられたもしくはその中で使われるまたはその両方の、任意のコンポーネント、ハードウェア、ソフトウェア、もしくは機能性またはこれらの組合せを含むことができる。このネットワーク・インフラストラクチャ３０２は、少なくとも一つの非仮想ネットワーク３１２をサポートし、ネットワーク３１２はレガシ・ネットワークであってよい。
【００３９】
各仮想ネットワーク３０４、３０６は、任意の数の仮想マシン（ＶＭ）３０８、３１０を用いることができる。一実施形態において、仮想ネットワークＡ３０４は一つ以上のＶＭ３０８を含み、仮想ネットワークＢ３０６も一つ以上のＶＭ３１０を含む。図３に示されるように、ＶＭ３０８、３１０は、仮想ネットワーク３０４、３０６によって共有されないどころか、どの所与の時点においても、仮想ネットワーク３０４、３０６のうちの一つだけにしか含まれない。
【００４０】
一実施形態によれば、オーバーレイ・ネットワーク３００には、一つ以上の分散ライン・カード（ＤＬＣ：ｄｉｓｔｒｉｂｕｔｅｄ  ｌｉｎｅ  ｃａｒｄ）に相互接続された、一つ以上のセル切り換えドメイン・スケーラブル・ファブリック・コンポーネント（ＳＦＣ：ｓｃａｌａｂｌｅ  ｆａｂｒｉｃ  ｃｏｍｐｏｎｅｎｔ）を含めることができる。
【００４１】
「フラット・スイッチ」アーキテクチャを有することによって、複数のＶＭは、アーキテクチャ全域に亘って容易に且つ効率的にデータを移動させることができる。一般に、ＶＭにとって、レイヤ−３（Ｌ３：Ｌａｙｅｒ−３）ドメイン、一つのサブネットと別のサブネットとの間、インターネット・プロトコル（ＩＰ：ｉｎｔｅｒｎｅｔ  ｐｒｏｔｏｃｏｌ）サブネットとＩＰサブネットとの間などを横断することは極めて困難である。だが、アーキテクチャが非常に大きなレイヤ−２（Ｌ２）ドメイン中の大きなフラット・スイッチに似ていれば、ＶＭがアーキテクチャを横切ってデータを移動させようとするときの助けとなる。
【００４２】
図４は、一実施形態による、ＤＯＶＥを用いるオーバーレイ・ネットワークを有するシステム４００の簡略図を示す。システム４００は、（ＯｐｅｎＦｌｏｗコントローラなどの）スイッチ・コントローラ４０２と、スイッチ・コントローラ４０２と通信することができるＩＰネットワーク４１２（一例では、ＩＰネットワーク４１２はＯｐｅｎＦｌｏｗ対応であり、ＯｐｅｎＦｌｏｗコントローラであるスイッチ・コントローラ４０２によって管理される）と、ディレクトリ・サービス４０４（これには、ＤＯＶＥアドレス・サービス・モジュール４０６もしくはＤＯＶＥポリシ・サービス・モジュール４０８またはその両方など、オーバーレイ固有のモジュールを含めることが可能）と、少なくとも一つのセキュリティ・アプライアンス４１０と、複数のサーバ４２２、オーバーレイ・ネットワーク１（４１４）もしくはオーバーレイ・ネットワーク２（４１６）またはその両方などの少なくとも一つのオーバーレイ・ネットワークと、を含む。
【００４３】
サーバ４２２の各々は、仮想スイッチ４２４（これは、いくつかの事例において、ＤＯＶＥ  ｖスイッチ、ＶＸＬＡＮ  ｖスイッチなどのディレクトリ・サービス４０４と通信することができる）、および一つ以上のＶＭ（オーバーレイ・ネットワーク１上のＶＭは４１８と番号付けられ、オーバーレイ・ネットワーク２上のＶＭは４２０と番号付けられている）を含むことができる。また、サーバ４２２は、ＶＭＷａｒｅ  ＥＳＸ、ＩＢＭ  ＰｏｗｅｒＶＭ、ＫＶＭ、マイクロソフトのＨｙｐｅｒ−Ｖ、Ｘｅｎなど、任意のベンダからの仮想化プラットフォーム（図示せず）を用いることが可能である。
【００４４】
一実施形態によれば、ＩＰネットワーク４１２は、任意の考えられる仕方で配置され、少なくとも図４に示された配置のシステム４００のエレメントに相互接続された、任意の数のスイッチ、ルータ、接続、ケーブルなどを含むことができる。また、ＩＰネットワーク４１２の境界には、スイッチ・コントローラ４０２と通信することができる少なくとも一つの物理スイッチ４２６が含まれ、サーバ４２２と接続される。例えば、ＯｐｅｎＦｌｏｗが用いられる場合、物理スイッチ４２６はＯｐｅｎＦｌｏｗ対応である。これらのＯｐｅｎＦｌｏｗ対応物理スイッチ４２６は、ＩＰネットワーク４１２を通って送信または受信されるトラフィックの流れに対し、相異なる経路を提供するようプログラムが可能である。また、ＯｐｅｎＦｌｏｗ対応物理スイッチ４２６は、直接にもしくは（図４に示されるように）ＩＰネットワーク４１２を介して、ディレクトリ・サービス４０４と通信している。
【００４５】
別の実施形態において、どの物理スイッチ４２６も、各スイッチによって受信されるパケットもしくは送信されるパケットまたはその両方に、オーバーレイ機能性を提供することができる。
【００４６】
一実施形態によれば、システム４００は、（ＯｐｅｎＦｌｏｗコントローラ４０２を介して）ＯｐｅｎＦｌｏｗ管理とすることが可能で、ＤＯＶＥディレクトリ・サービス４０４と協力して動作し、セキュリティ・ポリシの最適適用を確実にするような仕方で、効率的にトラフィックを方向付けることができる。
【００４７】
ＯｐｅｎＦｌｏｗ管理のネットワークにおいて、ＯｐｅｎＦｌｏｗコントローラ４０２は、ネットワーク・ノード・マップの知識、および転送されるパケットに対する通信経路をプログラムで選択する能力を有する。ＤＯＶＥ  ＶＭ４１８または４２０が、異なった物理サーバ４２２に位置する別のＶＭとの通信を開始する場合、送信元物理サーバ４２２上のＤＯＶＥ仮想スイッチ４２４は、当該物理サーバ４２２の場所、および２つのＶＭの間に適用すべき（ＤＯＶＥポリシ・サービス・モジュール４０８によって指定された）セキュリティ・ポリシを判定するために、ＤＯＶＥコントローラ４０４に問い合わせを行うことになる。これによって、ＤＯＶＥコントローラ４０４は、この時、これら２つのＶＭが通信を開始するのを知ることになり、さらに、これら２つのＶＭの間に適用されることになるセキュリティ・ポリシも知る。セキュリティ・ポリシが、これら２つのＶＭの間のトラフィックはセキュリティ・アプライアンス４１０を介して送信されるべきと定めている場合、ＤＯＶＥディレクトリ・サービス４０４は、ＯｐｅｎＦｌｏｗコントローラ４０２に、２つのＶＭ間の通信経路がセキュリティ・アプライアンス４１０を経由するように、ネットワーク・ノードをプログラムするよう通知することができる。
【００４８】
いくつかの実施形態において、ＯｐｅｎＦｌｏｗ対応物理スイッチ４２６は、各パケットのＤＯＶＥヘッダおよび内部ペイロード・ヘッダの値に基づいて、システム４００を通るパケットのルートを定めることが可能である。パケットの内部ペイロード・ヘッダが、当該パケットはセキュリティ・ポリシの適用を受けるべきと示している場合、ＯｐｅｎＦｌｏｗ対応スイッチ４２６は、ＯｐｅｎＦｌｏｗコントローラ４０２に通信経路を要求することができ、その結果、該パケットはセキュリティ・アプライアンス４１０を介して送られることになる。あるいは、別の実施形態において、ＯｐｅｎＦｌｏｗ対応スイッチ４２６は、各スイッチ４２６が初期化手順の後でＯｐｅｎＦｌｏｗコントローラ４０２の助けなしにルートを定められるように、この情報をアクセス可能に保持することも可能である。このオペレーションで使われる処理量は、ＯｐｅｎＦｌｏｗ対応スイッチ４２６がこの判定を行うために内部ペイロード・ヘッダを調べないで済むように、セキュリティ・ポリシ適用を必要とするパケットを識別するためのマーカをＤＯＶＥヘッダ中に指定することによって、低減することができる。当然ながら、この手順は、ＶＸＬＡＮ、ＮＶＧＲＥなどの他のオーバーレイ技術にも適用が可能である。
【００４９】
物理スイッチ４２６、スイッチ・コントローラ４０２、サーバ４２２、およびセキュリティ・アプライアンス４１０の各々には、中央処理ユニット（ＣＰＵ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ：ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、集積回路（ＩＣ：ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、特定用途向け集積回路（ＡＳＩＣ：ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）または当該技術分野で既知のなんらかの他の適切なプロセッサ（群）など、ロジックを実行するための少なくとも一つのプロセッサを含めることができる。
【００５０】
一実施形態によれば、入って来るオーバーレイ・カプセル化パケットをセキュリティ・アプライアンス４１０に経由させるために、サーバまたは物理スイッチ４２６で、スイッチ・コントローラまたはＯｐｅｎＦｌｏｗコントローラ４０２で、あるいはシステム４００中の他の箇所で、アクセス制御リスト（ＡＣＬ：ａｃｃｅｓｓ  ｃｏｎｔｒｏｌ  ｌｉｓｔ）を適用することができる。任意のデバイスのポート上でかかるＡＣＬを作動させると、ＡＣＬが作動しているポートで受信された任意のパケットが、セキュリティ・アプライアンス４１０に経由されることになる。このとき、セキュリティ・アプライアンス４１０が一連のサービスを実施することができる。
【００５１】
当業者なら存知するように、多くの選択肢の中でも特に、ファイアウォール・サービス、侵入防止システム（ＩＰＳ：ｉｎｔｒｕｓｉｏｎ  ｐｒｅｖｅｎｔｉｏｎ  ｓｙｓｔｅｍ）サービス、侵入検知システム（ＩＤＳ：ｉｎｔｒｕｓｉｏｎ  ｄｅｔｅｃｔｉｏｎ  ｓｙｓｔｅｍ）サービス、ＩＰＳ／ＩＤＳサービス、サーバ・ロード・バランス・サービス、ＬＡＮ最適化サービス、ＶＰＮサービス、ビデオ最適化サービス、ネットワーク・アドレス変換（ＮＡＴ：ｎｅｔｗｏｒｋ  ａｄｄｒｅｓｓ  ｔｒａｎｓｌａｔｉｏｎ）サービス、暗号化サービス、解読サービスなど当該技術分野で既知の任意のサービスをトラフィックに適用することが可能である。セキュリティ・アプライアンス４１０の始動に際し、これらのサービスの各々を、システム管理者が所望するように、独立に作動し、独立にバイパスし、または人手で選択することができる。
【００５２】
オーバーレイ・ネットワーク（例えば、オーバーレイ・ネットワーク１（４１４）、オーバーレイ・ネットワーク２（４１６）など）から非仮想化レガシ・ネットワーク（例えばＩＰネットワーク４１２など）またはトンネルされたトラフィックを受信することができる別のデバイスに送信される、Ｌ３のユーザ・データグラム・プロトコル／インターネット・プロトコル（ＵＤＰ／ＩＰ：Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）のカプセル化トラフィックに対して、セキュリティ・アプライアンス４１０は、オーバーレイ・カプセル化パケットからカプセル解除された内部パケットを受信することによって、パケットが宛先デバイスに配信される前にサービスを適用することができる。
【００５３】
ここで図５を参照すると、一実施形態による、パケットの送信元、中間のデバイス、および宛先の間の通信のタイミングが示されている。ＶＭ１はパケットの送信元であり、ＶＭ２はパケットの宛先であると仮定されている。最初に、ＶＭ１が、アドレス解決プロトコル（ＡＲＰ：Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）要求５０２を、ＶＭ１をホストしている物理サーバＡに送信する。次いで、物理サーバＡは、ＡＲＰ要求に関連する宛先アドレスに対する要求５０４を仮想ネットワーク・コントローラ（例えば、ＤＯＶＥポリシ・サーバ／ディレクトリ・サービスなど）に送信する。次いで、仮想ネットワーク・コントローラは、物理サーバＢ上のＶＭ２のアドレスをもって物理サーバＡに応答する（５０６）。また、仮想ネットワーク・コントローラは、物理サーバＢに物理サーバＡ上のＶＭ１の存在についても通知する（５０８）。
【００５４】
次いで、物理サーバＡは、パケットの宛先アドレスについての情報をもってＡＲＰ要求に応答する（５１０）。次に、サーバＡ上のＶＭ１がＶＭ２に配信するためのパケット５１２を送出する。物理サーバＡは、パケットにオーバーレイ機能性（カプセル化および物理サーバＢへのトンネリング）を付与し、カプセル化されたパケット５１４を物理サーバＢに送信する。次いで、物理サーバＢは、パケットにオーバーレイ機能性（トンネル終点およびカプセル解除）を付与し、カプセル解除されたパケット５１６をサーバＢ上のＶＭ２に送信する。
【００５５】
ひとたびこの関係が確立されると、ＶＭ１またはＶＭ２のどちらからも、オーバーレイ・ネットワークを通してパケットを送信するのがより容易となる。例えば、サーバＢ上のＶＭ２がサーバＡ上のＶＭ１にパケットを送信しようとする場合、ＡＲＰ要求５１８が物理サーバＢに送信され、物理サーバＢは、（既にサーバＡ上のＶＭ１の情報を知っているので）ＶＭ１の情報をもって応答し（５２０）、サーバＢ上のＶＭ２がパケット５２２を送信する。物理サーバＢは、そのパケットにオーバーレイ機能性を付与し、カプセル化されたパケットを物理サーバＡに配信し（５２４）、物理サーバＡがカプセル解除されたパケットをサーバＡ上のＶＭ１に配信する（５２６）。
【００５６】
ここで図６を参照すると、一実施形態による、パケット転送の異なる段階でのパケット・ヘッダが示されている。パケット６００は、ペイロード、ＩＰヘッダ、送信元媒体アクセス・コントロール・アドレス（ＳＭＡＣ：ｓｏｕｒｃｅ  ｍｅｄｉａ  ａｃｃｅｓｓ  ｃｏｎｔｒｏｌ  ａｄｄｒｅｓｓ）、および宛先ＭＡＣ（ＤＭＡＣ：ｄｅｓｔｉｎａｔｉｏｎ  ＭＡＣ）を有するものとして示されている。このパケットは、送信元ＶＭまたはパケットを生成することが可能な任意の他のデバイスにおいて生成することができる。パケット６００が、第一オーバーレイ使用可能（またはオーバーレイ対応）スイッチに到着したならば、パケットは、宛先ＶＭに最も近い第二オーバーレイ使用可能スイッチへトンネルされるためにヘッダ６０４を使ってカプセル化される。トンネル・ヘッダ６０４は、オーバーレイ・ヘッダ、ＵＤＰヘッダ、ＩＰヘッダ、およびイーサネット・ヘッダを含む。次いで、このカプセル化されたパケットは、ＩＰネットワークを通してトンネルされ、第二オーバーレイ使用可能スイッチに到達し、そこでカプセル解除され、宛先ＶＭに配信される。
【００５７】
当業者なら理解するように、他の予備フィールドと併せ、２４ビットのサイズを持つものとして示された仮想ネットワーク識別子（ＶＮＩＤ：ｖｉｒｔｕａｌ  ｎｅｔｗｏｒｋ  ｉｄｅｎｔｉｆｉｅｒ）もしくはＤＯＶＥドメインまたはグループＩＤを有するオーバーレイ・ヘッダが、同様にさらに詳細に示されている。ここで注意すべき重要なことは、一実施形態において、このヘッダには、宛先ＶＭに到達する前にパケットをＩＰネットワーク中のセキュリティ・アプライアンスに経由させるように、パケットがセキュリティ・ポリシの適用を受けるべきであることを示すことのできるビットまたはフィールドを含めるのが可能なことである。
【００５８】
ここで図７を参照すると、一実施形態による、方法７００のフローチャートが示されている。方法７００は、様々な実施形態の中でもとりわけ図１〜６に示された環境のいずれにおいても、本発明に沿って実施することができる。当業者なら本説明を読んで理解するように、当然ながら、図７に具体的に記載されたものよりも多いまたは少ないオペレーションも方法７００に含まれ得る。
【００５９】
方法７００の各ステップは、オペレーティング環境の任意の適切なコンポーネントによって実行することができる。例えば、一実施形態において、方法７００は、様々なアプローチで、スイッチ・コントローラ、ＤＯＶＥコントローラなどの仮想ネットワーク・コントローラ、オーバーレイ対応ネットワーク・デバイス、プロセッサ（例えば、ＣＰＵ、ＡＳＩＣ、ＦＰＧＡなど）、ゲートウェイ、ＯｐｅｎＦｌｏｗ対応スイッチ、ＯｐｅｎＦｌｏｗコントローラ、またはいくつか他の適切なデバイスによって、部分的にまたは全体を実施することが可能である。
【００６０】
図７に示されるように、方法７００は、オペレーション７０２から開始することができ、オペレーション７０２ではオーバーレイ・ネットワークを通る通信経路に対する要求が受信される。この要求は、オーバーレイ・ネットワーク中の第一物理スイッチから送信され、第一物理スイッチは、パケットの送信元に接続することができる。一アプローチにおいて、この要求には、少なくとも、パケット、第一情報、および第二情報を含めることが可能である。別のアプローチにおいて、この要求には、パケットからのいくつかのヘッダ情報と共に、第一および第二情報だけを含めることも可能である。
【００６１】
一実施形態において、第一情報には、パケットを発信した送信元ＶＭのアドレスを少なくとも含めることができる。この場合、パケットの送信元は送信元ＶＭである。別の実施形態において、第二情報には、第二物理スイッチのアドレスを少なくとも含めることができるが、さらにパケットの宛先についてのアドレス情報も含めることができ、該宛先が第二物理スイッチに接続されているようにすることもできる。
【００６２】
オペレーション７０４で、パケットの宛先に接続された第二物理スイッチが判定される。一実施形態において、パケットの宛先が判定され、その情報から、パケットの宛先に最も近くで接続されている第二物理スイッチを判定することができる。
【００６３】
一アプローチにおいて、送信元および宛先の両方が接続されている物理スイッチをただ一つとすることも可能で、例えば、第一および第二物理スイッチが同一のスイッチとなる。
【００６４】
一実施形態によれば、第一および第二物理スイッチは、各スイッチによって受信および送信されるパケットにオーバーレイ機能性を付与することができ、例えば、これらはオーバーレイ対応スイッチである。ＶＸＬＡＮ、ＤＯＶＥ、ＮＶＧＲＥなど任意のオーバーレイ・プロトコル、もしくはその技術または規格、あるいはこれらの組合せを用いることができる。
【００６５】
オペレーション７０６で、パケットのコンテンツ（これは、ペイロード、オーバーレイ・ヘッダ、内部パケット・ヘッダ、ＵＤＰ／ＩＰヘッダなどのヘッダ情報を含むことが可能である）、第一情報、および第二情報のうちの少なくとも一つに基づいて、パケットにセキュリティ・ポリシを適用するかどうかが判定される。
【００６６】
オペレーション７０８で、第一物理スイッチと第二物理スイッチとの間の通信経路が選択される。一アプローチにおいて、パケットにセキュリティ・ポリシを適用しないと判定された場合は、選択された通信経路は、第一物理スイッチを直接第二物理スイッチに接続する。別のアプローチにおいて、パケットにセキュリティ・ポリシを適用すると判定された場合は、選択された通信経路は、第一物理スイッチをセキュリティ・アプライアンスを介して第二物理スイッチに接続する。
【００６７】
オペレーション７１０で、パケットの送信元からパケットの宛先にトラフィックを送るときに第一物理スイッチが選択された通信経路を実行できるように、選択された通信経路が第一物理スイッチに送信される。
【００６８】
さらなる実施形態において、スイッチ・コントローラには、パケットの送信元とパケットの宛先との間で伝達されるどのパケットも選択された通信経路に沿って進むように、オーバーレイ・ネットワークのノード群をプログラムするよう命令することができる。
【００６９】
一アプローチにおいて、第一物理スイッチは、パケットを発信したパケットの送信元である少なくとも一つの送信元ＶＭをホストする少なくとも一つの第一サーバに接続することができ、第二物理スイッチは、パケットの宛先である少なくとも一つの宛先ＶＭをホストする少なくとも一つの第二サーバに接続することができ、パケットにセキュリティ・ポリシを適用するかどうかを判定するオペレーション７０６は、送信元ＶＭと宛先ＶＭとが共通のグループまたはドメイン中にあると判定された場合はセキュリティ・ポリシを適用しないと決めるステップ、もしくは送信元ＶＭと宛先ＶＭとが共通のグループまたはドメイン中にないと判定された場合はセキュリティ・ポリシを適用すると決めるステップをさらに含むことができる。
【００７０】
別のアプローチにおいて、パケットにセキュリティ・ポリシを適用するかどうかを判定するオペレーション７０６には、パケットにセキュリティ・ポリシを適用するかどうかを判定するために、パケットにＡＣＬを適用するステップをさらに含めることも可能である。
【００７１】
一アプローチによれば、セキュリティ・ポリシは、セキュリティ・アプライアンスによる一つ以上のサービスの適用を命じることができる。ファイアウォール・サービス、ＩＰＳ、ＩＤＳ、サーバ・ロード・バランス・サービス、ＶＰＮサービス、ビデオ最適化サービス、もしくはＷＡＮ最適化サービスまたはこれらの組合せなど、任意のサービスまたはセキュリティ・ポリシを用いることが可能である。
【００７２】
様々な実施形態によれば、方法７００は、本説明を読めば当業者ならよく分かるように、システムまたはコンピュータ・プログラム製品に実装することが可能である。
【００７３】
一実施形態において、システムには、第一物理スイッチを第二物理スイッチに接続するオーバーレイ・ネットワークと、第一物理スイッチおよび第二物理スイッチと通信しているスイッチ・コントローラと、オーバーレイ・ネットワークを介して送信されてくるパケットにセキュリティ・ポリシを適用するようになされたセキュリティ・アプライアンスと、第一物理スイッチに接続された少なくとも一つの第一サーバであって、該第一サーバは少なくとも一つの送信元ＶＭをホストする、該第一サーバと、第二物理スイッチに接続された少なくとも一つの第二サーバであって、該第二サーバは少なくとも一つの宛先ＶＭをホストする、該第二サーバと、少なくとも、第一物理スイッチ、第二物理スイッチ、およびオーバーレイ・ネットワークと通信している仮想ネットワーク・コントローラと、を含めることができる。一アプローチにおいて、送信元（送信元ＶＭをホストしている第一サーバ）および宛先（宛先ＶＭをホストしている第二サーバ）の両方が接続されている物理スイッチをただ一つとすることも可能である。
【００７４】
仮想ネットワーク・コントローラには、オーバーレイ・ネットワークを通る通信経路に対する要求を受信するようになされたロジックであって、該要求は、第一物理スイッチから送信され、少なくとも、パケット、パケットを発信した送信元ＶＭについての第一情報、該パケットの宛先についての第二情報を含む、該ロジックを含めることができる。さらに、該仮想ネットワーク・コントローラには、第二物理スイッチに接続された、パケットの宛先を判定するようになされたロジックと、パケットのコンテンツ、第一情報、および第二情報のうちの少なくとも一つに基づいて、パケットにセキュリティ・ポリシを適用するかどうかを判定するようになされたロジックと、第一物理スイッチと第二物理スイッチとの間の通信経路を選択するようになされたロジックであって、パケットにセキュリティ・ポリシを適用しないと判定された場合は、選択された通信経路は、第一物理スイッチを直接第二物理スイッチに接続し、パケットにセキュリティ・ポリシを適用すると判定された場合は、選択された通信経路は、第一物理スイッチをセキュリティ・アプライアンスを介して第二物理スイッチに接続する、該適用するかどうかを判定するようになされたロジックと、選択された通信経路を第一物理スイッチに送信するようになされたロジックと、を含めることができる。
【００７５】
さらに、様々なアプローチにおいて、該仮想ネットワーク・コントローラは、パケットの送信元ＶＭと宛先との間で伝達されるどのパケットも選択された通信経路に沿って進むように、オーバーレイ・ネットワークのノード群をプログラムするようスイッチ・コントローラに命令するようになされたロジックを含むことができ；第一情報は、送信元ＶＭのアドレスを少なくとも含むことができ；第二情報は、第二物理スイッチのアドレスを少なくとも含むことができ；もしくは、パケットにセキュリティ・ポリシを適用するかどうかを判定をするようになされたロジックは、送信元ＶＭと宛先ＶＭとが共通のグループまたはドメイン中にあると判定し、セキュリティ・ポリシを適用しないと決めるようになされたロジックと、送信元ＶＭと宛先ＶＭとが共通のグループまたはドメイン中にないと判定し、セキュリティ・ポリシを適用すると決めるようになされたロジックと、を含むことができ；またはこれらの組合せが可能である。
【００７６】
またさらなる様々なアプローチにおいて、第一および第二物理スイッチは、各スイッチによって受信および送信されるパケットにオーバーレイ機能性を付与する能力を有することができ；パケットにセキュリティ・ポリシを適用するかどうかの判定をするようになされたロジックは、パケットにセキュリティ・ポリシを適用するかどうかの判定をするために、パケットにＡＣＬを適用するようになされたロジックを含むことができ；もしくは、セキュリティ・ポリシは、セキュリティ・アプライアンスによる一つ以上のサービスの適用を命じることができ；またはこれらの組合せをが可能である。ファイアウォール・サービス、ＩＰＳ、ＩＤＳ、サーバ・ロード・バランス・サービス、ＶＰＮサービス、ビデオ最適化サービス、もしくはＷＡＮ最適化サービスまたはこれらの組合せなど、任意のサービスまたはセキュリティ・ポリシを用いることが可能である。
【００７７】
別の例示的な実施形態において、オーバーレイ・ネットワーク中でセキュリティ・ポリシを適用するためのコンピュータ・プログラム製品は、具現化されたコンピュータ可読プログラムを有するコンピュータ可読ストレージ媒体を含むことができる。該コンピュータ可読プログラム・コードには、オーバーレイ・ネットワークを通る通信経路に対する要求を受信するよう構成されたコンピュータ可読プログラム・コードであって、該要求は、オーバーレイ・ネットワーク中の第一物理スイッチから送信され、第一物理スイッチはパケットの送信元に接続されており、該要求は少なくとも、パケット、第一情報、および第二情報を含む、該受信するよう構成されたコンピュータ可読プログラム・コードと、パケットの宛先に接続されている第二物理スイッチを判定するよう構成されたコンピュータ可読プログラム・コードと、パケットのコンテンツ、第一情報、および第二情報のうちの少なくとも一つに基づいて、パケットにセキュリティ・ポリシを適用するかどうかを判定するよう構成されたコンピュータ可読プログラム・コードと、第一物理スイッチと第二物理スイッチとの間の通信経路を選択するよう構成されたコンピュータ可読プログラム・コードであって、パケットにセキュリティ・ポリシを適用しないと判定された場合は、選択された通信経路は、第一物理スイッチを直接第二物理スイッチに接続し、パケットにセキュリティ・ポリシを適用すると判定された場合は、選択された通信経路は、第一物理スイッチをセキュリティ・アプライアンスを介して第二物理スイッチに接続する、該選択するよう構成されたプログラム・コードと、選択された通信経路を第一物理スイッチに送信するよう構成されたコンピュータ可読プログラム・コードと、を含めることができる。
【００７８】
様々な実施形態によれば、該コンピュータ・プログラム製品は、パケットの送信元とパケットの宛先との間で伝達されるどのパケットも選択された通信経路に沿って進むように、オーバーレイ・ネットワークのノード群をプログラムするようスイッチ・コントローラに命令するよう構成されたコンピュータ可読プログラム・コードさらに含むことができ；第一情報は、パケットを発信した送信元ＶＭのアドレスを少なくとも含むことができ、パケットの送信元は送信元ＶＭであり、もしくは、第二情報は、第二物理スイッチのアドレスを少なくとも含むことができ；またはこれらの組合せが可能である。
【００７９】
別の実施形態において、第一物理スイッチは、パケットを発信したパケットの送信元である少なくとも一つの送信元ＶＭをホストする少なくとも一つのサーバに接続することができ、第二物理スイッチは、パケットの宛先である少なくとも一つの宛先ＶＭをホストする少なくとも一つの第二サーバに接続することができ、パケットにセキュリティ・ポリシを適用するかどうかを判定するよう構成されたコンピュータ可読プログラム・コードには、送信元ＶＭと宛先ＶＭとが共通のグループまたはドメイン中にあると判定し、セキュリティ・ポリシを適用しないと決めるように構成されたコンピュータ可読プログラム・コードと、送信元ＶＭと宛先ＶＭとが共通のグループまたはドメイン中にないと判定し、セキュリティ・ポリシを適用すると決めるよう構成されたコンピュータ可読プログラム・コードと、を含めることができる。
【００８０】
さらなるアプローチにおいて、第一および第二物理スイッチは、各スイッチによって受信および送信されるパケットにオーバーレイ機能性を付与する能力を有することができ、もしくは、パケットにセキュリティ・ポリシを適用するかどうかを判定するよう構成されたコンピュータ可読プログラム・コードは、パケットにセキュリティ・ポリシを適用するかどうかを判定するためパケットにＡＣＬを適用するよう構成されたコンピュータ可読プログラム・コードを含むことができ、またはこれらの両方が可能である。
【００８１】
上記で様々な実施形態を説明してきたが、当然ながら、これらは限定ではなく、例示のためだけに提示されたものである。したがって、本発明の実施形態の広さおよび範囲は、上記で説明された例示的な実施形態のいずれにも限定されるものでなく、添付の特許請求の範囲またはその同等物だけによって定義されるべきである。
【図１】
0005951139.tif 000002
【図２】
0005951139.tif 000003
【図３】
0005951139.tif 000004
【図４】
0005951139.tif 000005
【図５】
0005951139.tif 000006
【図６】
0005951139.tif 000007
【図７】
0005951139.tif 000008