(57)【特許請求の範囲】
【請求項１】
クラウドプラットフォームのセキュリティを実現する方法であって、クラウドプラットフォームにおけるクラウドサーバーの中に構築されてＭＡＣブリッジを代替する、前記クラウドサーバー上の仮想マシン（ＶＭ）と内部ブリッジ（ＢＲ−Ｉｎｔ）との間に位置するＯｐｅｎｆｌｏｗブリッジに用いられる方法において、
パケットを受信し、
前記パケットが、ローカルＶＭからのパケット、又はローカルＶＭ宛のパケットである場合、前記パケットを受信したポートと、前記パケットに搭載されたパケット属性パラメータとをキーワードとして、ローカルに予め配置されたＯｐｅｎｆｌｏｗセキュリティテーブルの中から、マッチング条件が前記キーワードであるＯｐｅｎｆｌｏｗセキュリティエントリを検索し、検索された場合に、検索されたＯｐｅｎｆｌｏｗセキュリティエントリにおける転送動作に基づいて前記パケットを転送し、検索されなかった場合には、前記パケットを破棄することを含むことを特徴とする方法。
【請求項２】
前記パケットがローカルＶＭからのパケットであり、かつ前記パケットを受信したポートが第１のポートである場合、前記検索されたＯｐｅｎｆｌｏｗセキュリティエントリにおける転送動作に基づいて前記パケットを転送することは、
前記パケットが先頭パケットである場合、該Ｏｐｅｎｆｌｏｗブリッジ上の第２のポートを介して、ＢＲ−Ｉｎｔ上の、前記第２のポートとピアになる第３のポートへ前記パケットを送信し、
前記パケットが先頭パケットではない場合、ローカルＯｐｅｎｆｌｏｗ転送テーブルの中から、前記パケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリを検索し、検索されたＯｐｅｎｆｌｏｗ転送エントリにおける転送動作に基づいて前記パケットを転送することを含む請求項１に記載の方法。
【請求項３】
前記パケットが先頭パケットである場合に、さらに、
クラウドプラットフォームにおけるコントローラにより生成されて配信された、前記パケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリを受信し、受信したＯｐｅｎｆｌｏｗ転送エントリをローカルＯｐｅｎｆｌｏｗ転送テーブルに記憶することを含み、
前記パケットが前記ＶＭから宛先デバイスへの先頭パケットであり、かつ宛先デバイスが同一のクラウドサーバー上の別のＶＭである場合、前記パケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリは、前記パケットが該Ｏｐｅｎｆｌｏｗブリッジを経由する時に検索された、前記パケットにマッチングするＯｐｅｎｆｌｏｗセキュリティエントリと、前記パケットがＢＲ−Ｉｎｔを経由する時に検索された、前記パケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリと、前記パケットが前記宛先デバイスに接続される宛先Ｏｐｅｎｆｌｏｗブリッジを経由する時に検索された、前記パケットにマッチングするＯｐｅｎｆｌｏｗセキュリティエントリとの組み合わせであり、
前記パケットが宛先デバイスへの先頭パケットであり、かつ宛先デバイスがネットワーク上の物理ホスト又は別のクラウドサーバー上の別のＶＭである場合、前記パケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリは、前記パケットが該Ｏｐｅｎｆｌｏｗブリッジを経由する時に検索された、前記パケットにマッチングするＯｐｅｎｆｌｏｗセキュリティエントリと、前記パケットがＢＲ−Ｉｎｔを経由する時に検索された、前記パケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリと、前記パケットが外部ブリッジ（ＢＲ−Ｅｘｔ）を経由する時に検索された、前記パケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリとの組み合わせである請求項２に記載の方法。
【請求項４】
前記クラウドサーバー上のＯｐｅｎｆｌｏｗブリッジ、ＢＲ−Ｉｎｔ、ＢＲ−Ｅｘｔは、ポートタイプがＰａｔｃｈであるポートによりつながる請求項３に記載の方法。
【請求項５】
前記パケットがローカルＶＭ宛のパケットであり、かつ前記パケットを受信したポートが第２のポートである場合、前記検索されたＯｐｅｎｆｌｏｗセキュリティエントリにおける転送動作に基づいて前記パケットを転送することは、
前記Ｏｐｅｎｆｌｏｗブリッジの、前記ＶＭに接続される第１のポートを介して、前記ＶＭへ前記パケットを送信することを含む請求項１に記載の方法。
【請求項６】
前記仮想マシンＶＭは、ローカルポートを介して、前記Ｏｐｅｎｆｌｏｗブリッジの仮想ネットワークカードである第１のポートに接続され、前記Ｏｐｅｎｆｌｏｗブリッジは、ポートタイプがＰａｔｃｈである第２のポートを介して、ポートタイプがＰａｔｃｈで前記第２のポートと互いにピアになるＢＲ−Ｉｎｔのポートに接続され、ＢＲ−Ｉｎｔは、ポートタイプがＰａｔｃｈである別のポートを介して、ポートタイプがＰａｔｃｈであるＢＲ−Ｅｘｔのポートに接続される請求項４に記載の方法。
【請求項７】
クラウドプラットフォームのセキュリティを実現する装置であって、クラウドプラットフォームにおけるクラウドサーバーの中に構築されてＭＡＣブリッジを代替する、前記クラウドサーバー上の仮想マシン（ＶＭ）と内部ブリッジ（ＢＲ−Ｉｎｔ）との間に位置するＯｐｅｎｆｌｏｗブリッジに用いられる装置において、
プロセッサー及びメモリを含み、
前記メモリには、前記プロセッサーにより実行可能なコンピュータ実行可能コマンドが記憶され、
前記コンピュータ実行可能コマンドは、
パケットを受信する操作と、
前記パケットがローカルＶＭからのパケット、又はローカルＶＭ宛のパケットである場合、前記パケットを受信したポートと、前記パケットに搭載されたパケット属性パラメータとをキーワードとして、ローカルに予め記憶されたＯｐｅｎｆｌｏｗセキュリティテーブルの中から、マッチング条件が前記キーワードであるＯｐｅｎｆｌｏｗセキュリティエントリを検索し、検索された場合に、検索されたＯｐｅｎｆｌｏｗセキュリティエントリにおける転送動作に基づいて前記パケットを転送し、検索されなかった場合には、前記パケットを破棄する操作と、
を前記プロセッサーに実行させる装置。
【請求項８】
前記パケットがローカルＶＭからのパケットであり、かつ前記パケットを受信したポートが第１のポートである場合、前記コンピュータ実行可能コマンドは、
前記パケットが先頭パケットである場合、該Ｏｐｅｎｆｌｏｗブリッジ上の第２のポートを介して、ＢＲ−Ｉｎｔ上の、前記第２のポートとピアになる第３のポートへ第１のパケットを送信し、前記パケットが先頭パケットではない場合、ローカルＯｐｅｎｆｌｏｗ転送テーブルの中から、前記パケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリを検索し、検索されたＯｐｅｎｆｌｏｗ転送エントリにおける転送動作に基づいて前記パケットを転送する操作を前記プロセッサーに実行させる請求項７に記載の装置。
【請求項９】
前記パケットが先頭パケットである場合、前記コンピュータ実行可能コマンドはさらに、クラウドプラットフォームにおけるコントローラにより生成されて配信された、前記パケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリを受信し、受信したＯｐｅｎｆｌｏｗ転送エントリをローカルＯｐｅｎｆｌｏｗ転送テーブルに記憶する操作を前記プロセッサーに実行させ、
前記パケットが前記ＶＭから宛先デバイスへの先頭パケットであり、かつ宛先デバイスが同一のクラウドサーバー上の別のＶＭである場合、前記パケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリは、前記パケットが該Ｏｐｅｎｆｌｏｗブリッジを経由する時に検索された、前記パケットにマッチングするＯｐｅｎｆｌｏｗセキュリティエントリと、前記パケットがＢＲ−Ｉｎｔを経由する時に検索された、前記パケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリと、前記パケットが前記宛先デバイスに接続される宛先Ｏｐｅｎｆｌｏｗブリッジを経由する時に検索された、前記パケットにマッチングするＯｐｅｎｆｌｏｗセキュリティエントリとの組み合わせであり、
前記パケットが宛先デバイスへの先頭パケットであり、かつ宛先デバイスがネットワーク上の物理ホスト又は別のクラウドサーバー上の別のＶＭである場合、前記パケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリは、前記パケットが該Ｏｐｅｎｆｌｏｗブリッジを経由する時に検索された、前記パケットにマッチングするＯｐｅｎｆｌｏｗセキュリティエントリと、前記パケットがＢＲ−Ｉｎｔを経由する時に検索された、前記パケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリと、前記パケットが外部ブリッジ（ＢＲ−Ｅｘｔ）を経由する時に検索された、前記パケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリとの組み合わせである請求項８に記載の装置。
【請求項１０】
前記クラウドサーバー上のＯｐｅｎｆｌｏｗブリッジ、ＢＲ−Ｉｎｔ、ＢＲ−Ｅｘｔは、ポートタイプがＰａｔｃｈであるポートによりつながる請求項９に記載の装置。
【請求項１１】
前記パケットが前記ＶＭ宛のパケットであり、かつ前記パケットを受信したポートが第２のポートである場合、前記コンピュータ実行可能コマンドは、
前記Ｏｐｅｎｆｌｏｗブリッジの、前記ＶＭに接続される第１のポートを介して、前記ＶＭへ前記パケットを送信する操作を前記プロセッサーに実行させる請求項７に記載の装置。
【請求項１２】
前記仮想マシンＶＭは、ローカルポートを介して、前記Ｏｐｅｎｆｌｏｗブリッジの仮想ネットワークカードである第１のポートに接続され、前記Ｏｐｅｎｆｌｏｗブリッジは、ポートタイプがＰａｔｃｈである第２のポートを介して、ポートタイプがＰａｔｃｈで前記第２のポートと互いにピアになるＢＲ−Ｉｎｔのポートに接続され、ＢＲ−Ｉｎｔは、ポートタイプがＰａｔｃｈである別のポートを介して、ポートタイプがＰａｔｃｈであるＢＲ−Ｅｘｔのポートに接続される請求項１０に記載の装置。
【発明の詳細な説明】
【背景技術】
【０００１】
セキュリティは今までずっと各クラウドプラットフォームの必須特性である。現在のオープンソース・クラウドプラットフォーム及び非オープンソース・クラウドプラットフォームでは、いずれも動的学習したインターネット・プロトコル（ＩＰ）テーブル及びレイヤ２メディア・アクセス・コントロール（ＭＡＣ）転送テーブルにより、クラウドプラットフォームのセキュリティを実現する。
【０００２】
オープンソース・クラウドプラットフォームのＯｐｅｎｓｔａｃｋを例に説明するが、非オープンソース・クラウドプラットフォームの原理も類似する。図１は、オープンソース・クラウドプラットフォームのＯｐｅｎｓｔａｃｋにおけるいずれか１つのクラウドサーバーの構成図を示す。Ｌｉｎｕｘ（登録商標）カーネルのプライマリーブリッジ（ｑｂｒブリッジであり、ＭＡＣブリッジとも呼ばれる）、例えば図１に示すＭＡＣ  ブリッジ＿１、ＭＡＣ  ブリッジ＿２、ＭＡＣ  ブリッジ＿３は、動的学習したＩＰテーブル及びレイヤ２ＭＡＣ転送テーブルにより、オープンソース・クラウドプラットフォームのＯｐｅｎｓｔａｃｋのセキュリティを実現する。図１に示す仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）１からＶＭ２へのパケット送信を例にすると、ＶＭ１はローカルポートｅｔｈ０を介してパケットを送信し、ＭＡＣブリッジはＶＭ１の仮想ネットワークカード（Ｖｅｔｈ：Ｖｉｒｔｕａｌ  ｅｔｈｅｒｎｅｔ（登録商標））によりＭＡＣブリッジのポートＶｅｔｈ１でＶＭ１からのパケットを受信し、その前に動的学習したＩＰテーブルによりパケットのフィルタリングおよび識別を行い、動的学習したレイヤ２ＭＡＣ転送テーブルによりフィルタリング後のパケットを転送し続ける。
【図面の簡単な説明】
【０００３】
【図１】図１は、オープンソース・クラウドプラットフォームのＯｐｅｎｓｔａｃｋにおけるいずれか１つのクラウドサーバーの構成図を示す。
【図２】図２は、本発明の例で提供するクラウドプラットフォームにおけるいずれか１つのクラウドサーバーの構成図である。
【図３Ａ】図３Ａは、本発明の例で提供する、オープンフロー（Ｏｐｅｎｆｌｏｗ）テーブルによりクラウドプラットフォームのセキュリティを実現する方法のフローチャートである。
【図３Ｂ】図３Ｂは、本発明の例で提供する、ソースＯｐｅｎｆｌｏｗブリッジが、検索されたＯｐｅｎｆｌｏｗセキュリティテーブルにおける転送動作に基づいて第１のパケットを転送する方法のフローチャートである。
【図４】図４は、本発明の一例で提供する応用ネットワーク構築の構成の模式図である。
【図５】図５は、本発明の別の例で提供する応用ネットワーク構築の構成の模式図である。
【図６】図６は、本発明の例で提供する、Ｏｐｅｎｆｌｏｗテーブルによりクラウドプラットフォームのセキュリティを実現する装置の構成図である。
【図７】図７は、本発明の例で提供する、Ｏｐｅｎｆｌｏｗテーブルによりクラウドプラットフォームのセキュリティを実現する装置のハードウェア構成図である。
【発明を実施するための形態】
【０００４】
現在、クラウドプラットフォームにおけるクラウドサーバー上のＭＡＣブリッジは、ＩＰテーブル及びレイヤ２ＭＡＣ転送テーブルによりオープンソース・クラウドプラットフォームのＯｐｅｎｓｔａｃｋのセキュリティを実現する。しかし、ＩＰテーブル及びレイヤ２ＭＡＣ転送テーブルは、その可制御性が悪く、Ｏｐｅｎｆｌｏｗテーブルより遥かに劣っている。また、現在のクラウドプラットフォームにおけるクラウドサーバー上の他のブリッジ、例えば内部ブリッジ（ＢＲ−Ｉｎｔ）、外部ブリッジ（ＢＲ−Ｅｘｔ）内のエントリはすべてＯｐｅｎｆｌｏｗテーブルである。それゆえ、同一のクラウドサーバーにおいて、ＭＡＣブリッジにおけるＩＰテーブル及びレイヤ２ＭＡＣ転送テーブルと、他のブリッジにおけるＯｐｅｎｆｌｏｗテーブルとが統一していない。
【０００５】
本発明の目的、技術案及びメリットがより明確になるように、以下、添付図面及び具体的な実施例により本発明を詳細に説明する。
【０００６】
本発明において、Ｏｐｅｎｆｌｏｗテーブルによるクラウドプラットフォームのセキュリティを実現するために、クラウドプラットフォームにおけるクラウドサーバー上にＯｐｅｎｆｌｏｗブリッジを構築し、背景技術の欄に記載のＭＡＣブリッジの代わりにＯｐｅｎｆｌｏｗブリッジによりクラウドプラットフォームのセキュリティを実現する。図２は、本発明で提供するクラウドプラットフォームにおけるいずれか１つのクラウドサーバーの構成図である。図２に示すように、Ｏｐｅｎｆｌｏｗブリッジは、背景技術の欄に記載のＭＡＣブリッジの位置と同じ位置で、ＶＭとＢＲ−Ｉｎｔとの間に接続されている。ただし、ＭＡＣブリッジは、動的学習したＩＰテーブル及びレイヤ２ＭＡＣ転送テーブルによりクラウドプラットフォームのセキュリティを実現するのに対して、本発明においてＯｐｅｎｆｌｏｗブリッジは、予め配置されたＯｐｅｎｆｌｏｗセキュリティテーブルにより、クラウドプラットフォームのセキュリティを実現する。
【０００７】
本発明において、Ｏｐｅｎｆｌｏｗセキュリティテーブルは複数のＯｐｅｎｆｌｏｗセキュリティエントリを含み、Ｏｐｅｎｆｌｏｗセキュリティエントリの各々は、マッチング条件と転送動作という２つの部分を含む。
【０００８】
本発明の一例として、ここでのマッチング条件は、パケット受信ポートと、パケットに搭載されたパケット属性パラメータとを含んでもよい。一例において、パケットに搭載されたパケット属性パラメータは、パケット５タプル及びパケット７タプルのうちの少なくとも一方であってもよい。ここで、パケット５タプルは、宛先ＩＰアドレス、ソースＩＰアドレス、宛先ポート番号、ソースポート番号、プロトコルの種類であり、パケット７タプルは、宛先ＩＰアドレス、ソースＩＰアドレス、宛先ＭＡＣアドレス、ソースＭＡＣアドレス、宛先ポート番号、ソースポート番号、プロトコルの種類である。
【０００９】
本発明の一例として、転送動作は、Ｏｐｅｎｆｌｏｗセキュリティエントリにマッチングするパケットに対して実行する転送動作であってもよい。Ｏｐｅｎｆｌｏｗセキュリティエントリにおける転送動作によるパケット転送の詳細は後述する。
【００１０】
以上の説明を踏まえ、以下は、Ｏｐｅｎｆｌｏｗブリッジが、予め配置されたＯｐｅｎｆｌｏｗセキュリティテーブルによりクラウドプラットフォームのセキュリティを実現する手順について詳細に説明する。
【００１１】
図３Ａを参照する。図３Ａは本発明で提供する、Ｏｐｅｎｆｌｏｗテーブルによりクラウドプラットフォームのセキュリティを実現する方法のフローチャートである。このフローは上述のようなＯｐｅｎｆｌｏｗブリッジに適用される。図３Ａに示すように、このフローは下記のステップを含む。
【００１２】
ステップ３０１において、パケットを受信する。
【００１３】
このステップにおいて、前記パケットは、ローカルＶＭからの第１のパケットであってもよく、あるいはローカルＶＭ宛の第２のパケットであってもよい。
【００１４】
ただし、ここでの第１のパケットや第２のパケットは、ＶＭからのパケットとＶＭ宛のパケットを区別するためのものにすぎず、本発明を限定するものではない。
【００１５】
ステップ３０２において、前記パケットが、ローカルＶＭからのパケット、又はローカルＶＭ宛のパケットである場合、前記パケットを受信したポートと、前記パケットに搭載されたパケット属性パラメータとをキーワードとして、ローカルに予め配置されたＯｐｅｎｆｌｏｗセキュリティテーブルの中から、マッチング条件が前記キーワードであるＯｐｅｎｆｌｏｗセキュリティエントリを検索する。検索された場合に、検索されたＯｐｅｎｆｌｏｗセキュリティエントリにおける転送動作に基づいて前記パケットを転送し、検索されなかった場合には、前記パケットを破棄する。
【００１６】
説明の便宜上、ローカルＶＭからの第１のパケットを受信したＯｐｅｎｆｌｏｗブリッジをソースＯｐｅｎｆｌｏｗブリッジと称し、ローカルＶＭ宛の第２のパケットを受信したＯｐｅｎｆｌｏｗブリッジを宛先Ｏｐｅｎｆｌｏｗブリッジと称する。以下には、ＯｐｅｎｆｌｏｗブリッジをソースＯｐｅｎｆｌｏｗブリッジと宛先Ｏｐｅｎｆｌｏｗブリッジに分けて説明する。
【００１７】
ソースＯｐｅｎｆｌｏｗブリッジは、第１のパケットを受信した第１のポートと、第１のパケットに搭載されたパケット属性パラメータとを第１のキーワードとして、ローカルに予め配置されたＯｐｅｎｆｌｏｗセキュリティテーブルの中から、マッチング条件が第１のキーワードであるＯｐｅｎｆｌｏｗセキュリティエントリを検索する。そして、ソースＯｐｅｎｆｌｏｗブリッジは、検索された場合に、検索されたＯｐｅｎｆｌｏｗセキュリティエントリにおける転送動作に基づいて第１のパケットを転送し、検索されなかった場合には、第１のパケットを破棄する。
【００１８】
宛先Ｏｐｅｎｆｌｏｗブリッジは、第２のパケットを受信した第２のポートと、第２のパケットに搭載されたパケット属性パラメータとを第２のキーワードとして、ローカルに予め配置されたＯｐｅｎｆｌｏｗセキュリティテーブルの中から、マッチング条件が前記第２のキーワードであるＯｐｅｎｆｌｏｗセキュリティエントリを検索する。そして、宛先Ｏｐｅｎｆｌｏｗブリッジは、検索された場合に、検索されたＯｐｅｎｆｌｏｗセキュリティエントリにおける転送動作に基づいて、第１のポートを介してＶＭへ第２のパケットを転送し、検索されなかった場合には、第２のパケットを破棄する。
【００１９】
一例として、検索されたＯｐｅｎｆｌｏｗセキュリティエントリにおける転送動作に基づいて第２のパケットを転送することは、該Ｏｐｅｎｆｌｏｗブリッジの、ＶＭに接続される第１のポートを介して、ＶＭへ第２のパケットを送信することを含んでもよい。
【００２０】
これまで、図３Ａに示すフローが完了する。
【００２１】
本発明の一例として、図３Ｂは、本発明の例で提供する、ソースＯｐｅｎｆｌｏｗブリッジが、検索されたＯｐｅｎｆｌｏｗセキュリティテーブルにおける転送動作に基づいて第１のパケットを転送する方法のフローチャートである。図３Ｂに示すように、ソースＯｐｅｎｆｌｏｗブリッジが、検索されたＯｐｅｎｆｌｏｗセキュリティエントリにおける転送動作に基づいて第１のパケットを転送することは、下記のステップを含む。
【００２２】
ステップａ１において、ソースＯｐｅｎｆｌｏｗブリッジは、第１のパケットが先頭パケットであるか否かを判定し、第１のパケットが先頭パケットである場合にステップａ２を実行し、第１のパケットが先頭パケットでない場合にはステップａ３を実行する。
【００２３】
ここで、第１のパケットが先頭パケットであるか否かを判定する手法は、従来の先頭パケットの判定手法に類似するため、詳細な説明は省略する。
【００２４】
ステップａ２において、ソースＯｐｅｎｆｌｏｗブリッジは、該Ｏｐｅｎｆｌｏｗブリッジ上の第２のポートを介して、ＢＲ−Ｉｎｔ上の、前記第２のポートとピア（Ｐｅｅｒ）になる第３のポートへ第１のパケットを転送する。そして、現フローを終了する。
【００２５】
このステップａ２は、第１のパケットが先頭パケットであることを前提に実行される。
【００２６】
本発明において、ソースＯｐｅｎｆｌｏｗブリッジは、第１のパケットが先頭パケットである場合に、該Ｏｐｅｎｆｌｏｗブリッジ上の第２のポートを介して、ＢＲ−Ｉｎｔ上の、第２のポートとピア（Ｐｅｅｒ）になる第３のポートへ第１のパケットを送信する。こうして、第１のパケットはＢＲ−Ｉｎｔ上の第３のポートに到着することになる。ＢＲ−Ｉｎｔは、第３のポートを介して第１のパケットを受信すると、ローカルのＯｐｅｎｆｌｏｗ転送テーブルの中から、第１のパケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリを検索し（検索されたＯｐｅｎｆｌｏｗ転送エントリをエントリ１と記する）、検索されたエントリ１における転送動作に基づいて第１のパケットを転送し続ける。
【００２７】
第１のパケットの宛先デバイスが同一のクラウドサーバー上の別のＶＭである場合、上記ＢＲ−Ｉｎｔにより検索されたエントリ１における転送動作は、該ＢＲ−Ｉｎｔ上の第４のポートを介して、宛先デバイスに接続されるＯｐｅｎｆｌｏｗブリッジ（つまり宛先Ｏｐｅｎｆｌｏｗブリッジ）上の、第４のポートとピアになる第５のポートへ第１のパケットを送信する動作である。これに基づき、ＢＲ−Ｉｎｔは、該ＢＲ−Ｉｎｔ上の第４のポートを介して、宛先Ｏｐｅｎｆｌｏｗブリッジ上の、第４のポートとピアになる第５のポートへ第１のパケットを送信する。宛先Ｏｐｅｎｆｌｏｗブリッジは、第５のポートを介して第１のパケットを受信すると、第１のパケットがローカルＶＭ宛のものであるため、ステップ３０３の説明と同じように、第１のパケットを受信した第５のポートと、第１のパケットに搭載されたパケット属性パラメータとに基づいて、ローカルに予め配置されたＯｐｅｎｆｌｏｗセキュリティテーブルの中から、第１のパケットにマッチングするＯｐｅｎｆｌｏｗセキュリティエントリを検索する。そして、宛先Ｏｐｅｎｆｌｏｗブリッジは、検索された場合に（検索されたＯｐｅｎｆｌｏｗセキュリティエントリをエントリ２と記する）、検索されたエントリ２における転送動作に基づいて、宛先デバイスに接続される出力ポートを介して第１のパケットを宛先デバイスへ送信し、最終的に第１のパケットは宛先デバイスに到着することになる。また、検索されなかった場合には、第１のパケットを破棄する。
【００２８】
第１のパケットの宛先デバイスがネットワーク上の物理ホスト又は別のクラウドサーバー上の別のＶＭである場合、ＢＲ−Ｉｎｔにより検索されたエントリ１における転送動作は、該ＢＲ−Ｉｎｔ上の第６のポートを介して、ＢＲ−Ｅｘｔ上の、第６のポートとピアになる第７のポートへ第１のパケットを送信する動作である。これに基づき、ＢＲ−Ｉｎｔは、該ＢＲ−Ｉｎｔ上の第６のポートを介して、ＢＲ−Ｅｘｔ上の、第６のポートとピアになる第７のポートへ第１のパケットを送信する。ＢＲ−Ｅｘｔは、第１のパケットを受信すると、ローカルＯｐｅｎｆｌｏｗ転送テーブルの中から、第１のパケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリを検索し（検索されたＯｐｅｎｆｌｏｗ転送エントリをエントリ３と記する）、検索されたエントリ３における転送動作に基づいて第１のパケットを転送し続ける。ここで、検索されたエントリ３における転送動作は、第１のパケットをＶＸＬＡＮカプセル化し、ＢＲ−Ｅｘｔ上の物理ポート（宛先デバイスに接続されるルーティングの出力ポート）を介して、ＶＸＬＡＮカプセル化された第１のパケットを転送する動作であってもよい。こうして、最終的に第１のパケットは宛先デバイスに到着することになる。
【００２９】
上述した、第１のパケットが宛先デバイスへの先頭パケットであり、かつ宛先デバイスが同一のクラウドサーバー上の別のＶＭである場合においてソースＯｐｅｎｆｌｏｗブリッジ、ＢＲ−Ｉｎｔ、宛先Ｏｐｅｎｆｌｏｗブリッジで行われる第１のパケットの転送、あるいは第１のパケットが宛先デバイスへの先頭パケットであり、かつ宛先デバイスがネットワーク上の物理ホスト又は別のクラウドサーバー上の別のＶＭである場合においてソースＯｐｅｎｆｌｏｗブリッジ、ＢＲ−Ｉｎｔ、ＢＲ−Ｅｘｔで行われる第１のパケットの転送に関する説明を踏まえ、本発明において、クラウドプラットフォーム上のコントローラ（例えばＳＤＮコントローラ）はさらに、第１のパケット転送用のＯｐｅｎｆｌｏｗ転送エントリ（エントリ４と記する）を動的に生成して、ソースＯｐｅｎｆｌｏｗブリッジに配信して記憶するようにしてもよい。例えば、エントリ４をソースＯｐｅｎｆｌｏｗブリッジのＯｐｅｎｆｌｏｗ転送テーブルに記憶してもよい。
【００３０】
本発明において、第１のパケットが宛先デバイスへの先頭パケットであり、かつ宛先デバイスが同一のクラウドサーバー上の別のＶＭである場合、エントリ４は、非重複の原則に基づいて、第１のパケットがソースＯｐｅｎｆｌｏｗブリッジ、ＢＲ−Ｉｎｔ、宛先Ｏｐｅｎｆｌｏｗブリッジを経由する時に検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗエントリを組み合わせたエントリである。例を挙げて説明すると、第１のパケットが宛先デバイスへの先頭パケットであり、かつ宛先デバイスが同一のクラウドサーバー上の別のＶＭである場合、第１のパケットは、上述したソースＯｐｅｎｆｌｏｗブリッジ、ＢＲ−Ｉｎｔ、宛先Ｏｐｅｎｆｌｏｗブリッジを経由して転送される。そのエントリ４のマッチング条件は、第１のパケットがソースＯｐｅｎｆｌｏｗブリッジを経由する時に検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗセキュリティエントリにおけるマッチング条件と、第１のパケットがＢＲ−Ｉｎｔを経由する時に検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリにおけるマッチング条件と、第１のパケットが宛先ＯｐｅｎｆｌｏｗブリッジＢＲ−Ｉｎｔを経由する時に検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗセキュリティエントリにおけるマッチング条件との組み合わせである（ただし、最終的に組み合わせたマッチング条件は、重複内容がないことを確保する必要がある）。また、エントリ４の転送動作は、第１のパケットがソースＯｐｅｎｆｌｏｗブリッジを経由する時に検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗセキュリティエントリにおける転送動作と、第１のパケットがＢＲ−Ｉｎｔを経由する時に検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリにおける転送動作と、第１のパケットが宛先Ｏｐｅｎｆｌｏｗブリッジを経由する時に検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗセキュリティエントリにおける転送動作との組み合わせである（ただし、最終的に組み合わせた転送動作では、中間階段の転送操作を省略してもよい。すなわち、上述したエントリ２における転送操作のみを残してもよい）。
【００３１】
第１のパケットが宛先デバイスへの先頭パケットであり、かつ宛先デバイスがネットワーク上の物理ホスト又は別のクラウドサーバー上の別のＶＭである場合、エントリ４は、非重複の原則に基づいて、第１のパケットがソースＯｐｅｎｆｌｏｗブリッジ、ＢＲ−Ｉｎｔ、ＢＲ−Ｅｘｔを経由する時に検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗエントリを組み合わせたエントリである。例を挙げて説明すると、第１のパケットが宛先デバイスへの先頭パケットであり、かつ宛先デバイスがネットワーク上の物理ホスト又は別のネットワークノード上の別のＶＭである場合、第１のパケットは、上述したソースＯｐｅｎｆｌｏｗブリッジ、ＢＲ−Ｉｎｔ、ＢＲ−Ｅｘｔを経由して転送される。そのエントリ４のマッチング条件は、第１のパケットがソースＯｐｅｎｆｌｏｗブリッジを経由する時に検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗセキュリティエントリにおけるマッチング条件と、第１のパケットがＢＲ−Ｉｎｔを経由する時に検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリにおけるマッチング条件と、第１のパケットがＢＲ−Ｅｘｔを経由する時の第１のパケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリにおけるマッチング条件との組み合わせである（ただし、最終的に組み合わせたマッチング条件は、重複内容がないことを確保する必要がある）。また、エントリ４の転送動作は、第１のパケットがソースＯｐｅｎｆｌｏｗブリッジを経由する時に検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗセキュリティエントリにおける転送動作と、第１のパケットがＢＲ−Ｉｎｔを経由する時に検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリにおける転送動作と、第１のパケットがＢＲ−Ｅｘｔを経由する時の第１のパケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリにおける転送動作との組み合わせである（ただし、最終的に組み合わせた転送動作では、中間階段の転送操作を省略してもよいが、他の非転送操作、例えばＶＸＬＡＮカプセル化等は省略する必要がない）。
【００３２】
上述したエントリ４から明らかなように、第１のパケットが宛先デバイスへの先頭パケットである場合、宛先デバイスが同一のクラウドサーバー上の別のＶＭであるか、あるいはネットワーク上の物理ホスト又は別のクラウドサーバー上の別のＶＭであるかを問わず、エントリ４は最終的に、第１のパケットがクラウドサーバー上の各ブリッジを経由する時に検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗエントリを集めたものである。これにより、その後に宛先デバイスへ送信される非先頭パケットに対しては、ソースＯｐｅｎｆｌｏｗブリッジにおいてＯｐｅｎｆｌｏｗ転送エントリの検索を１回行えばよく、クラウドサーバーにおける他の各ブリッジにおいてＯｐｅｎｆｌｏｗエントリを検索することなく、宛先デバイスに転送することができるので、パケット転送効率が高くなる。詳細はステップａ３を参照すれば明らかになる。
【００３３】
ステップａ３において、ソースＯｐｅｎｆｌｏｗブリッジは、ローカルＯｐｅｎｆｌｏｗ転送テーブルの中から、第１のパケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリ（つまり上記エントリ４）を検索し、検索されたＯｐｅｎｆｌｏｗ転送エントリにおける転送動作に基づいて第１のパケットを転送する。そして、現フローを終了する。
【００３４】
このステップａ３は、第１のパケットが非先頭パケットであることを前提に実行される。
【００３５】
上述したエントリ４から明らかなように、エントリ４は、宛先デバイスへの先頭パケットがクラウドサーバー内の各ブリッジを経由する時に検索された、先頭パケットにマッチングするＯｐｅｎｆｌｏｗエントリを集めたものである。これに基づき、第１のパケットが宛先デバイスへの非先頭パケットである場合、このステップａ３においてソースＯｐｅｎｆｌｏｗブリッジがローカルＯｐｅｎｆｌｏｗ転送テーブルの中から検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリは、上記エントリ４である。エントリ４は、宛先デバイスへの先頭パケットがクラウドサーバー内の各ブリッジを経由する時に検索された、先頭パケットにマッチングするＯｐｅｎｆｌｏｗエントリを集めたものである。これに基づき、このステップａ３において、検索されたＯｐｅｎｆｌｏｗ転送エントリにおける転送動作に基づいて第１のパケットを転送することは、第１のパケットを、クラウドサーバー内の各ブリッジを渡って直接転送することとなる。このように、第１のパケットを宛先デバイスに転送するとき、ソースＯｐｅｎｆｌｏｗブリッジにおいてＯｐｅｎｆｌｏｗ転送テーブルの検索を１回だけ実行すればよく、クラウドサーバー内の他の各ブリッジにおいてＯｐｅｎｆｌｏｗエントリを検索する必要がなく、パケット転送効率が高くなる。
【００３６】
パケットｐ１が宛先デバイス（同一のクラウドサーバー内の別のＶＭ）への非先頭パケットである場合を例として説明する。ソースＯｐｅｎｆｌｏｗブリッジは、パケットｐ１を受信して、パケットｐ１が宛先デバイスへの非先頭パケットであることを発見すると、ローカルＯｐｅｎｆｌｏｗ転送テーブルの中から、パケットｐ１にマッチングするＯｐｅｎｆｌｏｗ転送エントリを検索し、検索されたＯｐｅｎｆｌｏｗ転送エントリにおける転送動作に基づいてパケットｐ１を転送する。ここで、パケットｐ１にマッチングするＯｐｅｎｆｌｏｗ転送エントリは、宛先デバイスへの先頭パケットがソースＯｐｅｎｆｌｏｗブリッジ、ＢＲ−Ｉｎｔ、宛先Ｏｐｅｎｆｌｏｗブリッジを経由する時に検索された、先頭パケットにマッチングするＯｐｅｎｆｌｏｗエントリの寄せ集めである。このように、検索されたＯｐｅｎｆｌｏｗ転送エントリにおける転送動作に基づくパケットｐ１の転送によって、最終的に、ソースＯｐｅｎｆｌｏｗブリッジ、ＢＲ−Ｉｎｔ、宛先Ｏｐｅｎｆｌｏｗブリッジを渡って、パケットｐ１を宛先Ｏｐｅｎｆｌｏｗブリッジ上の、宛先デバイスに接続されるポートまで送信することとなる。また、パケットｐ１をこのポートを介して直接転送すればよく、ＢＲ−Ｉｎｔ、宛先ＯｐｅｎｆｌｏｗブリッジにおいてさらにＯｐｅｎｆｌｏｗエントリを検索して転送する必要はない。
【００３７】
本発明において、ステップａ１〜ステップａ３の順調な実施を確保するために、同一のクラウドサーバー内の各ブリッジ同士は、ポートタイプがＰａｔｃｈであるポートによりつながるように規定してもよい。具体的には、ソースＯｐｅｎｆｌｏｗブリッジ上の第２のポート、第２のポートとピアになるＢＲ−Ｉｎｔ上の第３のポート、ＢＲ−Ｉｎｔ上の第４のポート、第４のポートとピアになる宛先Ｏｐｅｎｆｌｏｗブリッジ上の第５のポート、ＢＲ−Ｉｎｔ上の第６のポート、第６のポートとピアになるＢＲ−Ｅｘｔ上の第７のポートはいずれも、ポートタイプがＰａｔｃｈである。ポートタイプがＰａｔｃｈである場合、先頭パケットが、Ｐａｔｃｈタイプのポートによりつながる各Ｏｐｅｎｆｌｏｗタイプのブリッジ（実質的には、Ｏｐｅｎｆｌｏｗエントリを有するブリッジである。例えば、Ｏｐｅｎｆｌｏｗブリッジ、ＢＲ−Ｉｎｔ、ＢＲ−Ｅｘｔ等）を経由する時に、すべてのＯｐｅｎｆｌｏｗタイプのブリッジのＯｐｅｎｆｌｏｗエントリを自動的に組み合わせることができ、最終的に一つのＯｐｅｎｆｌｏｗ転送エントリ（例えば上述のステップａ２において第１のパケットが先頭パケットである場合に生成されたエントリ４）を生成して、後続の非先頭パケットのトラフィック転送をガイダンスすることができる。
【００３８】
以上は、ステップ３０２について説明した。
【００３９】
以下には、二つの例を挙げて、図３Ａに示す方法フローについて説明する。
【００４０】
図４は、一例における応用ネットワーク構築の模式図である。図４の応用ネットワーク構築は、クラウドプラットフォームにおける１つのサーバーのネットワークのみを例示している。図４に示すように、ＶＭ＿１１は、ローカルポートｅｔｈ＿１１によりＯｐｅｎｆｌｏｗブリッジ＿１１上の仮想ネットワークカードＶｅｔｈ＿１１に接続され、ＶＭ＿１２は、ローカルポートｅｔｈ＿１２によりＯｐｅｎｆｌｏｗブリッジ＿１２の仮想ネットワークカードＶｅｔｈ＿１２に接続され、このように類推していき、ＶＭ＿１ｎは、ローカルポートｅｔｈ＿１ｎによりＯｐｅｎｆｌｏｗブリッジ＿１ｎの仮想ネットワークカードＶｅｔｈ＿１ｎに接続される。図４において、Ｏｐｅｎｆｌｏｗブリッジ＿１１は、ポートＰａｔｃｈ＿ＶＭ＿１１によりＢＲ−ＩｎｔのポートＰａｔｃｈ＿Ｉｎｔ＿１１に接続され、Ｏｐｅｎｆｌｏｗブリッジ＿１２は、ポートＰａｔｃｈ＿ＶＭ＿１２によりＢＲ−ＩｎｔのポートＰａｔｃｈ＿Ｉｎｔ＿１２に接続され、このように類推していき、Ｏｐｅｎｆｌｏｗブリッジ＿１ｎは、ポートＰａｔｃｈ＿ＶＭ＿１ｎによりＢＲ−ＩｎｔのポートＰａｔｃｈ＿Ｉｎｔ＿１ｎに接続される。そのうち、Ｏｐｅｎｆｌｏｗブリッジ＿１１上のポートＰａｔｃｈ＿ＶＭ＿１１とＢＲ−Ｉｎｔ上のポートＰａｔｃｈ＿Ｉｎｔ＿１１は互いにピアになり、ポートタイプがＰａｔｃｈであり、Ｏｐｅｎｆｌｏｗブリッジ＿１２上のポートＰａｔｃｈ＿ＶＭ＿１２とＢＲ−Ｉｎｔ上のポートＰａｔｃｈ＿Ｉｎｔ＿１２は互いにピアになり、ポートタイプがＰａｔｃｈであり、このように類推していき、Ｏｐｅｎｆｌｏｗブリッジ＿１ｎ上のポートＰａｔｃｈ＿ＶＭ＿１ｎとＢＲ−Ｉｎｔ上のポートＰａｔｃｈ＿Ｉｎｔ＿１ｎは互いにピアになり、ポートタイプがＰａｔｃｈである。図４において、ＢＲ−Ｉｎｔは、ポートＰａｔｃｈ＿４０によりＢＲ−Ｅｘｔ上のポートＰａｔｃｈ＿４１に接続され、Ｐａｔｃｈ＿４０、Ｐａｔｃｈ＿４１はポートタイプがＰａｔｃｈである。図４におけるＶＭ＿１１〜ＶＭ＿１ｎ、Ｏｐｅｎｆｌｏｗブリッジ＿１１〜Ｏｐｅｎｆｌｏｗブリッジ＿１ｎ、ＢＲ−Ｉｎｔ、ＢＲ−Ｅｘｔは同一のクラウドサーバーに位置する。
【００４１】
この例において、ＶＭ＿１１からＶＭ＿１２へのアクセスを例に説明すると、以下のとおりになる。
【００４２】
ＶＭ＿１１は、ｅｔｈ＿１１を介して、ＶＭ＿１２にアクセスするためのパケットを送信する。説明の便宜上、ここでのパケットをパケット０１と記する。
【００４３】
Ｏｐｅｎｆｌｏｗブリッジ＿１１は、Ｖｅｔｈ＿１１を介してパケット０１を受信し、パケット０１が初めて受信した、ＶＭ＿１１からＶＭ＿１２へのパケット（つまり先頭パケット）であることを発見すると、Ｖｅｔｈ＿１１と、パケット０１に搭載されたパケット属性パラメータとをキーワードとして、ローカルに予め配置されたＯｐｅｎｆｌｏｗセキュリティテーブルの中から、マッチング条件がこのキーワードであるＯｐｅｎｆｌｏｗセキュリティエントリを検索する。
【００４４】
Ｏｐｅｎｆｌｏｗブリッジ＿１１は、Ｏｐｅｎｆｌｏｗセキュリティエントリが検索されなかった場合、パケット０１を直接破棄する。
【００４５】
Ｏｐｅｎｆｌｏｗブリッジ＿１１は、Ｏｐｅｎｆｌｏｗセキュリティエントリが検索された（この検索されたＯｐｅｎｆｌｏｗセキュリティエントリをエントリ４１と記する）場合、エントリ４１における転送動作に基づいて、パケット０１を該Ｏｐｅｎｆｌｏｗブリッジ＿１１のポートＰａｔｃｈ＿ＶＭ＿１１を介して送信し続ける。
【００４６】
ＢＲ−Ｉｎｔは、Ｐａｔｃｈ＿Ｉｎｔ＿１１を介してパケット０１を受信すると、ローカルのＯｐｅｎｆｌｏｗ転送テーブルの中から、パケット０１にマッチングするＯｐｅｎｆｌｏｗ転送エントリを検索し（この検索されたＯｐｅｎｆｌｏｗ転送エントリをエントリ４２と記する）、エントリ４２における転送動作に基づいて、ポートＰａｔｃｈ＿Ｉｎｔ＿１２を介してパケット０１を転送する。
【００４７】
Ｏｐｅｎｆｌｏｗブリッジ＿１２は、Ｐａｔｃｈ＿ＶＭ＿１２を介してパケット０１を受信し、パケット０１がＶＭ＿１２宛のパケットであることを発見すると、Ｐａｔｃｈ＿ＶＭ＿１２と、パケット０１に搭載されたパケット属性パラメータとをキーワードとして、ローカルに予め配置されたＯｐｅｎｆｌｏｗセキュリティテーブルの中から、マッチング条件がこのキーワードであるＯｐｅｎｆｌｏｗセキュリティエントリを検索する。そして、Ｏｐｅｎｆｌｏｗブリッジ＿１２は、検索された場合（ここでこの検索されたＯｐｅｎｆｌｏｗセキュリティエントリをエントリ４３と記する）、エントリ４３における転送動作に基づいて、該Ｏｐｅｎｆｌｏｗブリッジ＿１２のポートＶｅｔｈ＿１２を介してパケット０１を送信する。最終的に、ＶＭ＿１１から送信されるパケット０１はＶＭ＿１２に到着し、ＶＭ＿１１からＶＭ＿１２へのアクセスが実現される。
【００４８】
クラウドプラットフォーム上のＳＤＮコントローラは、Ｏｐｅｎｆｌｏｗブリッジ＿１１、ＢＲ−Ｉｎｔ、Ｏｐｅｎｆｌｏｗブリッジ＿１２で行われるパケット０１の転送中において、パケット０１がＯｐｅｎｆｌｏｗブリッジ＿１１を経由する時に検索されたエントリ４１と、パケット０１がＢＲ−Ｉｎｔを経由する時に検索されたエントリ４２と、パケット０１がＯｐｅｎｆｌｏｗブリッジ＿１２を経由する時に検索されたエントリ４３とを寄せ集めて、パケット０１にマッチングするＯｐｅｎｆｌｏｗ転送エントリ（エントリ４０と記する）をさらに生成して、Ｏｐｅｎｆｌｏｗブリッジ＿１１のＯｐｅｎｆｌｏｗ転送テーブルに配信する。このエントリ４０におけるマッチング条件は、エントリ４１〜エントリ４３におけるマッチング条件の非重複の寄せ集めであり、このエントリ４０における転送動作は、エントリ４１〜エントリ４３における転送動作の非重複の寄せ集めである。ここで、Ｏｐｅｎｆｌｏｗブリッジ＿１２のポートＶｅｔｈ＿１２を介して転送する転送動作を例に説明する。
【００４９】
その後、ＶＭ＿１１がＶＭ＿１２に再度アクセスする際、ＶＭ＿１１は、ｅｔｈ＿１１を介して、ＶＭ＿１２にアクセスするためのパケットを送信する。説明の便宜上、ここでのパケットをパケット０２と記する。
【００５０】
Ｏｐｅｎｆｌｏｗブリッジ＿１１は、Ｖｅｔｈ＿１１を介してパケット０２を受信し、パケット０２が初めて受信した、ＶＭ＿１１からＶＭ＿１２へのパケットではない（つまり非先頭パケットである）ことを発見すると、ローカルＯｐｅｎｆｌｏｗ転送テーブルの中から、パケット０２にマッチングするＯｐｅｎｆｌｏｗ転送エントリ（つまり、上記ＳＤＮコントローラにより生成されたエントリ４０）を検索する。
【００５１】
Ｏｐｅｎｆｌｏｗブリッジ＿１１は、検索されたエントリ４０における転送動作に基づいて、パケット０２をＯｐｅｎｆｌｏｗブリッジ＿１２のＶｅｔｈ＿ｌ２へトランスペアレント転送し、Ｖｅｔｈ＿１２を介してパケット０２を転送するようにＯｐｅｎｆｌｏｗブリッジ＿１２を動作させる。最終的に、ＶＭ＿１１から送信されるパケット０２はＶＭ＿１２に到着し、ＶＭ＿１１からＶＭ＿１２への再度のアクセスが実現される。
【００５２】
図５は、別の例における応用ネットワーク構築の模式図である。図５の応用ネットワーク構築は、クラウドプラットフォームにおける１つのサーバーのネットワークのみを例示している。図５に示すように、ＶＭ＿２１は、ローカルポートｅｔｈ＿２１によりＯｐｅｎｆｌｏｗブリッジ＿２１の仮想ネットワークカードＶｅｔｈ＿２１に接続され、ＶＭ＿２２は、ローカルポートｅｔｈ＿２２によりＯｐｅｎｆｌｏｗブリッジ＿２２の仮想ネットワークカードＶｅｔｈ＿２２に接続され、このように類推していき、ＶＭ＿２ｎは、ローカルポートｅｔｈ＿２ｎによりＯｐｅｎｆｌｏｗブリッジ＿２ｎの仮想ネットワークカードＶｅｔｈ＿２ｎに接続される。図５において、Ｏｐｅｎｆｌｏｗブリッジ＿２１は、ポートＰａｔｃｈ＿ＶＭ＿２１によりＢＲ−ＩｎｔのポートＰａｔｃｈ＿Ｉｎｔ＿２１に接続され、Ｏｐｅｎｆｌｏｗブリッジ＿２２は、ポートＰａｔｃｈ＿ＶＭ＿２２によりＢＲ−ＩｎｔのポートＰａｔｃｈ＿Ｉｎｔ＿２２に接続され、このように類推していき、Ｏｐｅｎｆｌｏｗブリッジ＿２ｎは、ポートＰａｔｃｈ＿ＶＭ＿２ｎによりＢＲ−ＩｎｔのポートＰａｔｃｈ＿Ｉｎｔ＿２ｎに接続される。そのうち、Ｏｐｅｎｆｌｏｗブリッジ＿２１上のポートＰａｔｃｈ＿ＶＭ＿２１とＢＲ−Ｉｎｔ上のポートＰａｔｃｈ＿Ｉｎｔ＿２１は互いにピアになり、ポートタイプがＰａｔｃｈであり、Ｏｐｅｎｆｌｏｗブリッジ＿２２上のポートＰａｔｃｈ＿ＶＭ＿２２とＢＲ−Ｉｎｔ上のポートＰａｔｃｈ＿Ｉｎｔ＿２２は互いにピアになり、ポートタイプがＰａｔｃｈであり、このように類推していき、Ｏｐｅｎｆｌｏｗブリッジ＿２ｎ上のポートＰａｔｃｈ＿ＶＭ＿２ｎとＢＲ−Ｉｎｔ上のポートＰａｔｃｈ＿Ｉｎｔ＿２ｎは互いにピアになり、ポートタイプがＰａｔｃｈである。図５において、ＢＲ−Ｉｎｔは、ポートＰａｔｃｈ＿５０によりＢＲ−Ｅｘｔ上のポートＰａｔｃｈ＿５１に接続され、Ｐａｔｃｈ＿５０、Ｐａｔｃｈ＿５１はポートタイプがＰａｔｃｈである。図５におけるＶＭ＿２１〜ＶＭ＿２ｎ、Ｏｐｅｎｆｌｏｗブリッジ＿２１〜Ｏｐｅｎｆｌｏｗブリッジ＿２ｎ、ＢＲ−Ｉｎｔ、ＢＲ−Ｅｘｔは同一のサーバーに位置する。
【００５３】
この例において、ＶＭ＿２１からネットワーク上の物理ホストＰＭ＿２１へのアクセスを例に説明すると、以下のとおりになる。
【００５４】
ＶＭ＿２１は、ｅｔｈ＿２１を介して、ＰＭ＿２１にアクセスするためのパケットを送信する。説明の便宜上、ここでのパケットをパケット２１と記する。
【００５５】
Ｏｐｅｎｆｌｏｗブリッジ＿２１は、Ｖｅｔｈ＿２１を介してパケット２１を受信し、パケット２１は該Ｏｐｅｎｆｌｏｗブリッジ＿２１が初めて受信したＶＭ＿２１からＰＭ＿２１へのパケット（つまり先頭パケット）であることを発見すると、Ｖｅｔｈ＿２１と、パケット２１に搭載されたパケット属性パラメータとをキーワードとして、ローカルに予め配置されたＯｐｅｎｆｌｏｗセキュリティテーブルの中から、マッチング条件がこのキーワードであるＯｐｅｎｆｌｏｗセキュリティエントリを検索する。
【００５６】
Ｏｐｅｎｆｌｏｗブリッジ＿２１は、Ｏｐｅｎｆｌｏｗセキュリティエントリが検索されなかった場合、パケット２１を直接破棄する。
【００５７】
Ｏｐｅｎｆｌｏｗブリッジ＿２１は、Ｏｐｅｎｆｌｏｗセキュリティエントリが検索された（この検索されたＯｐｅｎｆｌｏｗセキュリティエントリをエントリ５１と記する）場合、エントリ５１における転送動作に基づいて、パケット２１を該Ｏｐｅｎｆｌｏｗブリッジ＿２１のポートＰａｔｃｈ＿ＶＭ＿２１を介して送信し続ける。
【００５８】
ＢＲ−Ｉｎｔは、Ｐａｔｃｈ＿Ｉｎｔ＿２１を介してパケット２１を受信すると、ローカルのＯｐｅｎｆｌｏｗ転送テーブルの中から、パケット２１にマッチングするＯｐｅｎｆｌｏｗ転送エントリを検索し（この検索されたＯｐｅｎｆｌｏｗ転送エントリをエントリ５２と記する）、エントリ５２における転送動作に基づいて、ポートＰａｔｃｈ＿５０を介してパケット２１を転送する。
【００５９】
ＢＲ−Ｅｘｔは、Ｐａｔｃｈ＿５１を介してパケット２１を受信し、ローカルのＯｐｅｎｆｌｏｗ転送テーブルの中から、パケット２１にマッチングするＯｐｅｎｆｌｏｗ転送エントリを検索する（ここでこの検索されたＯｐｅｎｆｌｏｗセキュリティエントリをエントリ５３と記する）。また、ＢＲ−Ｅｘｔは、検索されたエントリ５３の転送動作におけるカプセル化操作に基づいて、パケット２１をＶＸＬＡＮカプセル化し、検索されたエントリ５３の転送動作における転送操作に基づいて、物理ポートＰｏｒｔ＿２１を介して転送する。最終的に、ＶＭ＿２１から送信されるパケット２１はＰＭ＿２１に到着し、ＶＭ＿２１からＰＭ＿２１へのアクセスが実現される。
【００６０】
クラウドプラットフォーム上のＳＤＮコントローラは、Ｏｐｅｎｆｌｏｗブリッジ＿２１、ＢＲ−Ｉｎｔ、ＢＲ−Ｅｘｔで行われるパケット２１の転送中において、パケット２１がＯｐｅｎｆｌｏｗブリッジ＿２１を経由する時に検索されたエントリ５１と、パケット２１がＢＲ−Ｉｎｔを経由する時に検索されたエントリ５２と、パケット２１がＢＲ−Ｅｘｔを経由する時に検索されたエントリ５３とを寄せ集めて、パケット２１にマッチングするＯｐｅｎｆｌｏｗ転送エントリ（エントリ５０と記する）をさらに生成して、Ｏｐｅｎｆｌｏｗブリッジ＿２１のＯｐｅｎｆｌｏｗ転送テーブルに配信する。このエントリ５０におけるマッチング条件は、エントリ５１〜エントリ５３におけるマッチング条件の非重複の寄せ集めであり、このエントリ５０における転送動作は、エントリ５１〜エントリ５３における転送動作の非重複の寄せ集めである。ここで、ＶＸＬＡＮカプセル化を行って物理ポートＰｏｒｔ＿２１を介して転送する転送動作を例に説明する。
【００６１】
その後、ＶＭ＿２１がＰＭ＿２１に再度アクセスする際、ＶＭ＿２１は、ｅｔｈ＿２１を介して、ＰＭ＿２１にアクセスするためのパケットを送信する。説明の便宜上、ここでのパケットをパケット２２と記する。
【００６２】
Ｏｐｅｎｆｌｏｗブリッジ＿２１は、Ｖｅｔｈ＿２１を介してパケット２２を受信し、パケット２２は該Ｏｐｅｎｆｌｏｗブリッジ＿２１が初めて受信したＶＭ＿２１からＰＭ＿２２へのパケットではない（つまり非先頭パケットである）ことを発見すると、ローカルＯｐｅｎｆｌｏｗ転送テーブルの中から、パケット２２にマッチングするＯｐｅｎｆｌｏｗ転送エントリ（つまり、上記ＳＤＮコントローラにより生成されたエントリ５０）を検索する。
【００６３】
Ｏｐｅｎｆｌｏｗブリッジ＿２１は、検索されたエントリ５０における転送動作に基づいて、パケット２２をＶＸＬＡＮカプセル化してＢＲ−Ｅｘｔの物理ポートＰｏｒｔ＿２１へトランスペアレント転送し、物理ポートＰｏｒｔ＿２１を介してＶＸＬＡＮカプセル化されたパケット２２を転送するようにＢＲ−Ｅｘｔを動作させる。最終的に、ＶＭ＿２１から再度送信されるパケット２２はＶＭ＿２１に到着し、ＶＭ＿２１からＰＭ＿２１への再度のアクセスが実現される。
【００６４】
以上は、本発明で提供する方法に関する説明である。以下には、本発明で提供する装置について説明する。
【００６５】
図６を参照する。図６は本発明の例で提供する、Ｏｐｅｎｆｌｏｗテーブルによりクラウドプラットフォームのセキュリティを実現する装置の構成図である。この装置は、クラウドプラットフォームにおけるクラウドサーバーの中に構築されてＭＡＣブリッジを代替するＯｐｅｎｆｌｏｗブリッジに用いられる装置であり、Ｏｐｅｎｆｌｏｗブリッジはクラウドサーバー上のＶＭとＢＲ−Ｉｎｔとの間に接続される。この装置は、Ｏｐｅｎｆｌｏｗエントリ記憶手段６０１、出力トラフィック制御手段６０２及び入力トラフィック制御手段６０３を備える。
【００６６】
そのうち、Ｏｐｅｎｆｌｏｗエントリ記憶手段６０１は、予め配置されたＯｐｅｎｆｌｏｗセキュリティテーブルを記憶する。
【００６７】
出力トラフィック制御手段６０２は、ローカルＶＭからの第１のパケットを受信し、第１のパケットを受信した第１のポートと、第１のパケットに搭載されたパケット属性パラメータとを第１のキーワードとして、前記Ｏｐｅｎｆｌｏｗエントリ記憶手段に記憶されたＯｐｅｎｆｌｏｗセキュリティテーブルの中から、マッチング条件が第１のキーワードであるＯｐｅｎｆｌｏｗセキュリティエントリを検索し、検索された場合に、検索されたＯｐｅｎｆｌｏｗセキュリティエントリにおける転送動作に基づいて第１のパケットを転送し、検索されなかった場合には、第１のパケットを破棄する。
【００６８】
入力トラフィック制御手段６０３は、前記ＶＭ宛の第２のパケットを受信し、第２のパケットを受信した第２のポートと、第２のパケットに搭載されたパケット属性パラメータとを第２のキーワードとして、前記Ｏｐｅｎｆｌｏｗエントリ記憶手段に記憶されたＯｐｅｎｆｌｏｗセキュリティテーブルの中から、マッチング条件が前記第２のキーワードであるＯｐｅｎｆｌｏｗセキュリティエントリを検索し、検索された場合に、検索されたＯｐｅｎｆｌｏｗセキュリティエントリにおける転送動作に基づいて第２のパケットを転送し、検索されなかった場合には、第２のパケットを破棄する。
【００６９】
Ｏｐｅｎｆｌｏｗエントリ記憶手段６０１は、Ｏｐｅｎｆｌｏｗ転送テーブルをさらに記憶することが好ましい。
【００７０】
これに基づき、前記出力トラフィック制御手段６０２が検索されたＯｐｅｎｆｌｏｗセキュリティエントリにおける転送動作に基づいて第１のパケットを転送することは、前記第１のパケットが先頭パケットである場合、該Ｏｐｅｎｆｌｏｗブリッジ上の第２のポートを介して、ＢＲ−Ｉｎｔ上の、前記第２のポートとピアになる第３のポートへ第１のパケットを送信すること、および、前記第１のパケットが先頭パケットではない場合、前記Ｏｐｅｎｆｌｏｗエントリ記憶手段６０１に記憶されたＯｐｅｎｆｌｏｗ転送テーブルの中から、第１のパケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリを検索し、検索されたＯｐｅｎｆｌｏｗ転送エントリにおける転送動作に基づいて第１のパケットを転送することを含む。
【００７１】
ここで、前記第１のパケットが先頭パケットである場合、前記Ｏｐｅｎｆｌｏｗエントリ記憶手段６０１は、クラウドプラットフォームにおけるコントローラにより生成されて配信された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリをさらに受信し、受信したＯｐｅｎｆｌｏｗ転送エントリをローカルＯｐｅｎｆｌｏｗ転送テーブルに記憶する。
【００７２】
ここで、第１のパケットが前記ＶＭから宛先デバイスへの先頭パケットであり、かつ宛先デバイスが同一のクラウドサーバー上の別のＶＭである場合、第１のパケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリは、前記第１のパケットが該Ｏｐｅｎｆｌｏｗブリッジを経由する時に検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗセキュリティエントリと、第１のパケットがＢＲ−Ｉｎｔを経由する時に検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリと、第１のパケットが前記宛先デバイスに接続される宛先Ｏｐｅｎｆｌｏｗブリッジを経由する時に検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗセキュリティエントリとの組み合わせである。第１のパケットが宛先デバイスへの先頭パケットであり、かつ宛先デバイスがネットワーク上の物理ホスト又は別のクラウドサーバー上の別のＶＭである場合、第１のパケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリは、前記第１のパケットが該Ｏｐｅｎｆｌｏｗブリッジを経由する時に検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗセキュリティエントリと、第１のパケットがＢＲ−Ｉｎｔを経由する時に検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリと、第１のパケットが外部ブリッジＢＲ−Ｅｘｔを経由する時に検索された、第１のパケットにマッチングするＯｐｅｎｆｌｏｗ転送エントリとの組み合わせである。
【００７３】
一例において、クラウドサーバー上のＯｐｅｎｆｌｏｗブリッジ、ＢＲ−Ｉｎｔ、ＢＲ−Ｅｘｔは、ポートタイプがＰａｔｃｈであるポートによりつながる。
【００７４】
一例において、前記入力トラフィック制御手段６０３が検索されたＯｐｅｎｆｌｏｗセキュリティエントリにおける転送動作に基づいて第２のパケットを転送することは、前記Ｏｐｅｎｆｌｏｗブリッジの、前記ＶＭに接続される第１のポートを介して、前記ＶＭへ第２のパケットを送信することを含んでもよい。
【００７５】
以上は、図６に示す装置に関する説明である。
【００７６】
本発明はさらに、図６に示す装置のハードウェア構成図を提供する。図７を参照する。図７は、本発明で提供する、図６に示すＯｐｅｎｆｌｏｗテーブルによりクラウドプラットフォームのセキュリティを実現する装置のハードウェア構成図である。図７に示すように、このハードウェア構成図は、メモリ７１０と、メモリ７１０と通信接続されるプロセッサー７２０と、インタフェース７３０とを含む。ここで、メモリ７１０は不揮発性記憶媒体であってもよく、プロセッサー７２０により実行されるコンピュータ実行可能コマンドを記憶する。このコンピュータ実行可能コマンドは、図３Ａ〜図５のうちのいずれか一つの図に示すクラウドプラットフォームのセキュリティを実現する方法の操作を実現できる。また、前記コンピュータ実行可能コマンドは、図６に示すＯｐｅｎｆｌｏｗテーブルによりクラウドプラットフォームのセキュリティを実現する装置の操作も実現できる。
【００７７】
あるいは、このメモリ７１０は、上記図６におけるＯｐｅｎｆｌｏｗエントリ記憶手段６０１、出力トラフィック制御手段６０２及び入力トラフィック制御手段６０３を記憶すると理解してもよい。これに応じて、プロセッサー７２０は、Ｏｐｅｎｆｌｏｗエントリ記憶手段６０１を動作させる制御プログラムを実行することにより、メモリ７１０におけるＯｐｅｎｆｌｏｗエントリ記憶手段６０１を制御して上記のような操作を実行させ、出力トラフィック制御手段６０２を動作させる制御プログラムを実行することにより、メモリ７１０における出力トラフィック制御手段６０２を制御して上記のような操作を実行させ、入力トラフィック制御手段６０３を動作させる制御プログラムを実行することにより、メモリ７１０における入力トラフィック制御手段６０３を制御して上記のような操作を実行させる。
【００７８】
本発明は、クラウドプラットフォームのセキュリティを実現する方法及び装置を提供する。本発明において、クラウドプラットフォームにおけるクラウドサーバーの中にＭＡＣブリッジを代替するＯｐｅｎｆｌｏｗブリッジを構築し、ＯｐｅｎｆｌｏｗブリッジはＯｐｅｎｆｌｏｗセキュリティテーブルによりクラウドプラットフォームのセキュリティを実現する。これによって、Ｏｐｅｎｆｌｏｗテーブルによりクラウドプラットフォームのセキュリティを実現するという目的を達成し、クラウドプラットフォームセキュリティの制御性能を向上させる。また、本発明において、Ｏｐｅｎｆｌｏｗブリッジは、Ｏｐｅｎｆｌｏｗタイプのフローテーブルによりクラウドプラットフォームのセキュリティを実現し、クラウドサーバー上の他のブリッジ、例えばＢＲ−Ｉｎｔ、ＢＲ−Ｅｘｔ（同様にＯｐｅｎｆｌｏｗタイプのフローテーブルを採用する）と統一して同じフローテーブルにより管理するため、ネットワークの配置及び管理を簡素化できる。
【００７９】
以上は本発明の好適な実施例にすぎず、本発明を限定するものではない。本発明の精神及び趣旨を逸脱しない範囲内の任意の変更、均等な置き換え、改良等はいずれも、本発明の権利範囲内に含まれる。
【図１】
0006595698.tif 000002
【図２】
0006595698.tif 000003
【図３Ａ】
0006595698.tif 000004
【図３Ｂ】
0006595698.tif 000005
【図４】
0006595698.tif 000006
【図５】
0006595698.tif 000007
【図６】
0006595698.tif 000008
【図７】
0006595698.tif 000009