(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-15
(45)【発行日】2023-02-24
(54)【発明の名称】仮想ネットワークを実装する方法、媒体、コンピュータプログラム、コンピューティングデバイス
(51)【国際特許分類】
H04L 45/44 20220101AFI20230216BHJP
H04L 41/40 20220101ALI20230216BHJP
【FI】
H04L45/44
H04L41/40
【外国語出願】
(21)【出願番号】P 2021102573
(22)【出願日】2021-06-21
(62)【分割の表示】P 2020068582の分割
【原出願日】2010-04-01
【審査請求日】2021-07-16
(32)【優先日】2009-04-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】511235548
【氏名又は名称】ニシラ, インコーポレイテッド
(74)【代理人】
【識別番号】100076428
【氏名又は名称】大塚 康徳
(74)【代理人】
【識別番号】100115071
【氏名又は名称】大塚 康弘
(74)【代理人】
【識別番号】100112508
【氏名又は名称】高柳 司郎
(74)【代理人】
【識別番号】100116894
【氏名又は名称】木村 秀二
(74)【代理人】
【識別番号】100130409
【氏名又は名称】下山 治
(72)【発明者】
【氏名】カサド, マーティン
(72)【発明者】
【氏名】イングラム, ポール エス.
(72)【発明者】
【氏名】アミドン, キース エリック
(72)【発明者】
【氏名】バランド サード, ピーター ジェイ.
(72)【発明者】
【氏名】コポネン, テーム
(72)【発明者】
【氏名】プファフ, ベンジャミン レビー
(72)【発明者】
【氏名】ペティット, ジャスティン
(72)【発明者】
【氏名】グロス フォース, ジェシー イー.
(72)【発明者】
【氏名】ウェンドラント, ダニエル ジェイ.
【審査官】宮島 郁美
(56)【参考文献】
【文献】国際公開第2009/142826(WO,A1)
【文献】特表2011-523128(JP,A)
【文献】特開2001-313663(JP,A)
【文献】特開2008-042665(JP,A)
【文献】米国特許出願公開第2010/0246443(US,A1)
【文献】仮想化技術の本命 ハイパーバイザ型の仮想化ソフトウェア,NETWORK magazine,第13巻 第12号,日本,株式会社アスキー・メディアワークス,2008年12月01日,第46-51頁
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00-13/18,41/00-49/9057,61/00-65/80,69/00-69/40
(57)【特許請求の範囲】
【請求項1】
データセンタ内の複数のテナント間で共有される物理ネットワークを介して
第1のテナントの仮想ネットワークを実装する方法であって、
複数のホストコンピュータ上で実行される複数のソフトウェア転送要素(SFE)によって実装される論理転送要素(LFE)を定義することと、
前記LFEを実装するように前記SFEを構成するために、前記複数のホストコンピュータ上で実行されている前記複数のSFEにデータを配信することと、
前記LFEの特定のポートと、少なくとも1台のホストコンピュータで実行されている少なくとも1つの特定のSFEのポートとの間のマッピングを提供することと、を備え、
前記SFEは、前記配信されたデータと前記提供されたマッピングを使用して、前記LFEに関連付けられたパケットを転送
し、
各SFEは、前記配信されたデータを使用して、前記第1のテナントのマシンから受信されたパケットを転送するための論理転送判断を実行する、方法。
【請求項2】
データセンタ内の複数のテナント間で共有される物理ネットワークを介してテナントの仮想ネットワークを実装する方法であって、
複数のホストコンピュータ上で実行される複数のソフトウェア転送要素(SFE)によって実装される論理転送要素(LFE)を定義することと、
前記LFEを実装するように前記SFEを構成するために、前記複数のホストコンピュータ上で実行されている前記複数のSFEにデータを配信することと、
前記LFEの特定のポートと、少なくとも1台のホストコンピュータで実行されている第1のSFEのポートとの間のマッピングを提供することと、を備え、
前記SFEは、前記配信されたデータと前記提供されたマッピングを使用して、前記LFEに関連付けられたパケットを転送し、
第2のSFEは、パケットの論理コンテキストをルックアップし、前記論理コンテキストに従って前記パケットの論理出力ポートを識別し、前記論理出力ポートを物理ポートにマップし、前記パケットを前記物理ポートに転送する
、方法。
【請求項3】
前記論理出力ポートは前記LFEの前記特定のポートであり、前記物理ポートは前記第1のSFEの前記ポートであり、前記第2のSFEは、前記提供されたマッピングを使用して、前記LFEの前記特定のポートを前記第1のSFEの前記ポートにマッピングする、請求項2に記載の方法。
【請求項4】
前記複数のSFEは前記LFEを実装し、前記データセンタ内でホストされている他のテナントのマシンから第1のテナントのマシンを分離しながら、前記第1のテナントのマシン間でパケットを処理する、請求項1に記載の方法。
【請求項5】
前記複数のSFEが、それぞれのテナントのマシンを分離しながら、前記他のテナントのマシン間でパケットを処理するために他のLFEを実装する、請求項4に記載の方法。
【請求項6】
データセンタ内の複数のテナント間で共有される物理ネットワークを介して第1のテナントの仮想ネットワークを実装する方法であって、
複数のホストコンピュータ上で実行される複数のソフトウェア転送要素(SFE)によって実装される論理転送要素(LFE)を定義することと、
前記LFEを実装するように前記SFEを構成するために、前記複数のホストコンピュータ上で実行されている前記複数のSFEにデータを配信することと、
前記LFEの特定のポートと、少なくとも1台のホストコンピュータで実行されている少なくとも1つの特定のSFEのポートとの間のマッピングを提供することと、を備え、
前記SFEは、前記配信されたデータと前記提供されたマッピングを使用して、前記LFEに関連付けられたパケットを転送し、
前記特定のSFEは、前記配信されたデータを使用して、前記第1のテナントのマシンから受信したパケットに対する前記LFEの論理出力ポートを識別し、前記識別された論理出力ポートを前記特定のSFEの物理ポートにマッピングすることによって、前記パケットを転送する
、方法。
【請求項7】
前記特定のSFEは、前記識別された論理出力ポートを物理的なネクストホップアドレスにマッピングし、前記物理的なネクストホップアドレスで前記パケットをカプセル化し、前記特定のSFEの前記物理ポートから前記パケットを転送することにより、前記識別された論理出力ポートを前記物理的なポートにマップする、請求項6に記載の方法。
【請求項8】
前記特定のSFEが第1のSFEであり、前記物理的なネクストホップアドレスが、前記LFEを実装する第2のSFEに関連付けられている、請求項7に記載の方法。
【請求項9】
前記第1のテナントの前記マシンは、前記特定のSFEと同じホストコンピュータ上で実行される、請求項6に記載の方法。
【請求項10】
前記論理転送判断は、論理スイッチのL2ルックアップを含む、請求項
1に記載の方法。
【請求項11】
前記論理転送判断は、論理ルータのためのL3ルックアップを含む、請求項
1に記載の方法。
【請求項12】
前記第1のテナントの前記マシンは、複数の仮想マシンを含む、請求項
1に記載の方法。
【請求項13】
前記方法は、ネットワークハイパーバイザーにより実行される、請求項1に記載の方法。
【請求項14】
前記SFEは、1つ以上の仮想スイッチを含む、請求項1に記載の方法。
【請求項15】
前記LFEが第1のLFEであり、前記複数のSFEが第1の複数のSFEであり、前記複数のホストコンピュータが第1の複数のホストコンピュータであり、前記特定のSFEが第1のホストコンピュータで実施される第1のSFEであり、
第2の複数のホストコンピュータ上で実行される第2の複数のSFEによって実装される第2のLFEを定義することと、
前記第2のLFEを実装するように前記第2の複数のSFEを構成するために、前記第2の複数のホストコンピュータ上で実行される前記第2の複数のSFEにデータを配信することと、
前記第2のLFEの特定のポートと、第2のホストコンピュータ上で実行されている第2のSFEの特定のポートとの間のマッピングを提供することとをさらに含み、
前記第2の複数のSFEのSFEは、前記配信されたデータおよび前記提供されたマッピングを使用して、前記第2のLFEに関連するパケットを転送する、請求項1に記載の方法。
【請求項16】
前記第2の複数のSFEが、前記第1の複数のSFEと部分的に重複する、請求項
15に記載の方法。
【請求項17】
少なくとも1つの処理ユニットによって実施されると、請求項1乃至
16のいずれか1項に記載の方法を実施するプログラムを格納する機械可読媒体。
【請求項18】
少なくとも1つの処理ユニットによって実行されると、請求項1乃至
16のいずれか1項に記載の方法を実施するコンピュータプログラム。
【請求項19】
処理ユニットのセットと、
前記処理ユニットの少なくとも1つによって実施されると、請求項1乃至
16のいずれか1項に記載の方法を実施するプログラムを格納する機械可読媒体と、を備えるコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2009年4月1日提出の米国仮特許出願第61/165875号を基礎として優先権を主張するものであり、その記載内容の全てを、ここに援用する。
【0002】
本発明は、ネットワーキングに関し、特に仮想ネットワーキングでの仮想スイッチの設計及び使用に関する。
【背景技術】
【0003】
移動性、仮想化、動的ワークロード、マルチテナンシー及びセキュリティニーズを含むコンピューティングが高度になるにつれて、ネットワーキングに対するより適切なパラダイムが必要とされる。仮想化は、ネットワークに対する新たな要求の重要な要因である。その要因により、複数のVMは同一の物理サーバを共有でき、それらのVMは移行(migrate)可能であり、ワークロードは容量が必要となるために「スケールアウト」に動的に組み込まれている。この新しいレベルのダイナミクスに準拠するために、分散仮想スイッチの概念が生じた。分散仮想スイッチの背後にある考えは、基盤となるハードウェアから切り離され且つ複数のスイッチ又はハイパーバイザを介して拡張するスイッチの論理ビューを提供することである。
【0004】
従来の分散仮想スイッチの一例は、San Jose、CaliforniaのCiscoにより提供されたNexus1000Vである。別の例は、Palo AltoのVMWareにより提供されたDVSである。これらの双方とも仮想のみの環境を意図するが、同一の概念を物理環境に適用できないという構造的理由はない。
【0005】
大きなネットワーク(データセンタ及び企業を含む)の多くの課題のうちの3つは、拡張性、移動性及びマルチテナンシーであり且つ多くの場合、他者を妨害するものに対処する方法である。例えば、L2ドメイン内でVMにネットワークモビリティを容易に提供できるが、L2ドメインを大きなサイズに拡張することはできない。また、テナントを隔離し続けることにより、移動性が非常に複雑になる。従来の分散仮想スイッチは、多くの領域においてこれらの問題に対処しきれていない。まず、分散仮想スイッチは、マルチテナンシーを提供せず、IPサブネットをブリッジせず、何万ものエンドホストをサポートするように拡張しない。更に概念は、物理ホストを統括的に且つ柔軟に含む仮想環境を効果的に超えていない。
【0006】
従って、これらの問題及び他の問題に対処する分散仮想ネットワーキングプラットフォームに対する必要性は、当技術分野において依然として存在する。
【発明の概要】
【課題を解決するための手段】
【0007】
一般に本発明は、1つ以上の分散仮想スイッチが仮想ネットワークで使用するために作成される仮想プラットフォームに関する。いくつかの態様によると、本発明に係る分散仮想スイッチは、仮想機械及び物理機械が同一の物理ホスト上及び/あるいは同一のサブネット又はVLANに配置されない場合でも、互いにより簡単に、安全に且つ効率的に通信する機能をそれらに提供する。他の態様によると、本発明の分散仮想スイッチは、従来のIPネットワークとの統合をサポートし、NAT機能性を含む複雑なIP技術、ステートフルファイアウォール及びIPネットワークにワークロード移行を通知するのをサポートする。更なる態様によると、本発明の仮想プラットフォームは、隔離及び/又は独立した構成状態を必要とするテナント、アプリケーション又は他のエンティティに割り当てられてもよい1つ以上の分散仮想スイッチを作成する。更に別の態様によると、本発明の仮想プラットフォームは、ネットワークで既存のスイッチ及びルータを用いて動作しつつ、ネットワークに対して分散仮想スイッチを作成するためにVLAN又はトンネル(例えば、GRE)を管理し且つ/あるいは使用する。本発明は、社内ネットワーク、データセンタ及び他の施設の全てで有用であることが分かる。
【0008】
これらの態様及び他の態様に従って、本発明の実施形態に係る複数のホスト及び物理転送要素を含むサイトでネットワーキングリソースを管理する方法は、複数のホスト及び物理転送要素の第1の集合を使用する仮想機械の第1の集合を識別することと、複数のホスト及び物理転送要素の第2の集合を使用する仮想機械の第2の集合を識別することであり、第1の集合及び第2の集合のホスト及び物理転送要素のうちのいくつかが同一であることと、仮想機械の第1の集合と第2の集合との間の隔離を維持しつつ、それぞれ、仮想機械の第1の集合と第2の集合との間の通信を排他的に処理する第1の分散仮想スイッチ及び第2の分散仮想スイッチを提供することとを備える。
【0009】
これらの態様及び他の態様を更に推進するために、本発明の実施形態に係る1つ以上の物理転送要素を含むネットワークで通信を管理する方法は、論理転送要素を含むネットワーク仮想化レイヤを提供することと、論理転送要素のポートから物理転送要素のうちのいくつかのポートへのマッピングを提供することと、提供されたマッピングを使用して物理転送要素によりパケットを転送することとを備える。
【図面の簡単な説明】
【0010】
添付の図面と共に本発明の特定の実施形態の以下の説明を検討することにより、本発明のこれらの態様及び特徴、並びに他の態様及び特徴が当業者には明らかとなるだろう。
【
図1】
図1は、本発明の実施形態に係る仮想プラットフォームを提供する態様を示すブロック図である。
【
図2】
図2は、本発明の原理を使用するネットワークで実現されたパケット転送方式を示す図である。
【
図3】
図3は、いくつかの仮想機械及び物理ホストを有するデータセンタで本発明に従って分散仮想スイッチを提供する一例を示す図である。
【
図4】
図4は、本発明の実施形態に係る分散仮想スイッチの一例を示す機能ブロック図である。
【発明を実施するための形態】
【0011】
次に、当業者が本発明を実施できるように本発明の例として提供される図面を参照して、本発明を詳細に説明する。特に、以下の図面及び例は本発明の範囲を単一の実施形態に限定することを意図せず、説明されるかあるいは図示される要素のうちのいくつか又は全てを交換することにより他の実施形態が可能である。また、本発明のある特定の要素は既知の構成要素を使用して部分的に又は完全に実現され、本発明を理解するのに必要なそのような既知の構成要素のこれらの部分のみが説明され、そのような既知の構成要素の他の部分の詳細な説明は本発明を不明瞭にしないように省略される。特に指定のない限り、当業者には明らかとなるように、ソフトウェアで実現されるものとして説明される実施形態は、それに限定されるべきではなく、ハードウェア又はソフトウェアとハードウェアとの組合せで実現される実施形態を含んでもよく、逆も同様である。明示的な指示のない限り、本明細書において、単数の構成要素を示す一実施形態は限定するものと考えられるべきではなく、本発明は複数の同一の構成要素を含む他の実施形態を含むことを意図し、逆も同様である。また、明示的なそのような説明のない限り、出願人は、明細書又は請求の範囲のあらゆる用語が一般的でない意味又は特別な意味を有することを意図しない。更に本発明は、例として本明細書で示される既知の構成要素に対する現在の既知の等価物及び将来の既知の等価物を含む。
【0012】
一態様によると、本発明は、ネットワークで使用するための仮想プラットフォームに関する。仮想フラットフォームは、物理機械及び仮想機械が同一の物理ホスト上及び/あるいは同一のVLAN又はサブネットに配置されない場合でも、互いにより簡単に、安全に且つ効率的に通信する機能をそれと関連付けられた物理機械及び仮想機械に提供する。更なる態様によると、更に本発明により、同一の物理ネットワークインフラストラクチャを共有する複数の異なるテナントは、通信し且つ互いに隔離して構成状態を設定できる。
【0013】
本発明の態様の実現例の一例を
図1に示す。
図1に示すように、データセンタ又は社内ネットワーク等のサイトは、物理ネットワーク104を含む。物理ネットワーク104は、複数のVM及び/又は非仮想化物理サーバ、並びに物理スイッチ及び仮想スイッチを含む。VMは、VMWare(例えば、vSphere、vCenter等に含まれた)により提供されるような仮想化プラットフォームによりホストされ、物理サーバは、HP、Dell及び他社により提供されるようなあらゆる汎用演算ユニットであってもよい。大きなホスティングサービス又は社内ネットワークが地理的に分散され得る(例えば、San Francisco、New York等)複数のデータセンタ又はいくつかのサイトにおけるネットワークを維持できることは、明らかであるべきである。
【0014】
図1は、本発明がネットワーク仮想化レイヤ106を導入する方法を更に示す。ネットワーク仮想化レイヤ106上には、ネットワークハイパーバイザ102により1つ以上の分散仮想スイッチ108が維持される。これらの分散仮想スイッチ108は、サブネットを介して拡張してもよく、物理ホスト又は物理ネットワークポートを含んでもよく、同一の物理ハードウェアを共有することができる。本発明の態様によると、これらの分散仮想スイッチは、マルチテナント環境に隔離されたコンテキストを提供し、サブネットを介してVM移行をサポートし、何万又は何十万もの物理サーバに拡張し、物理環境とのシームレスな統合をサポートする。
【0015】
特定の例として、本発明は、複数の顧客に対するサーバの仮想ホスティング及び物理ホスティングの双方をサポートすることが多いサービスプロバイダ(San Antonioに本社を置くRackspace等)により展開される。そのような一例において、単一の顧客は、同一のサービスプロバイダにホストされたVM及び物理サーバの双方を有してもよい。更にサービスプロバイダは、地理的に別個の場所に複数のデータセンタを有してもよい。顧客/テナントの各々が1つ以上の分散仮想スイッチ(DVS)108に割り当てられるように、本発明はサービスプロバイダ動作内で展開されてもよい。これらのDVSは、ハイパーバイザ102を使用するサービスプロバイダオペレータにより規定されたように、最小リソース保証を個別に構成され且つ与えられる。単一のDVSは、物理ホスト及び仮想ホストの双方を含んでもよく、複数のサブネット又はVLANをブリッジしてもよい。例えば単一のDVS108は、管理されたホスティングサービスの一部としてサービスプロバイダの仮想機械、物理機械に接続してもよく、インターネットを介して拡張して顧客構内に接続してもよい。
【0016】
更なる態様によると、本発明は、物理転送要素と制御プレーンとの間に新しい抽象概念を導入する。抽象概念により、転送要素を制御プレーンに対する1つ以上の論理転送要素とする。論理転送要素は、物理転送要素と同様の特性及び機能性、すなわちルックアップテーブル、ポート、カウンタ、並びに関連付けられた能力(例えば、ポートスピード及び/又は二重帯域)を所有する。
【0017】
ネットワークハイパーバイザ102及びネットワーク仮想化レイヤ106は、本発明の態様を説明しやすくするために別個に示されるが、論理転送要素を作成及び維持し、且つそれらを基盤となるハードウェアにマッピングする共通のソフトウェアの集合(以下に更に詳細に説明する)により実現されるのが好ましい。名目上、これは、対応する論理コンテキストで転送状態、カウンタ及び転送要素イベントを示すことを意味する。制御プレーンは、物理転送要素を直接駆動するのではなく、論理転送要素とインタフェースする。
【0018】
更に詳細には、ネットワーク仮想化レイヤ106は、ネットワーク104の物理トポロジの変化により最小限の影響を受ける制御プレーンに転送抽象概念を提示する。制御プレーンの観点から、物理トポロジにスイッチを追加することにより、より多くの転送帯域幅を提供するが、制御論理又は論理転送テーブルの既存の状態に何らかの変化を要求すべきではない。
【0019】
レイヤ106により、論理転送要素ポートは、物理ポートに結合されるか、あるいは仮想機械インタフェース、VLAN又はトンネル等の他のポート抽象概念を提供できる。レイヤ106の論理転送要素上のポートと基盤となるネットワーク104との間のマッピングを維持し、且つそれに応じて物理ネットワークの物理スイッチ及び/又は仮想スイッチのフローテーブルを更新することがネットワークハイパーバイザ102の仕事である(以下に説明する)。
【0020】
レイヤ106の各論理転送要素は、従来のスイッチデータ経路と互換性があるインタフェースを提供する。これは2つの理由から望ましい。第1に、本発明は既存のハードウェアと互換性があり且つ有用であるのが好ましく、全ての転送はハードウェア高速経路上に依然として存在すべきである。従って、論理転送プレーンは、好ましくは既存の転送パイプラインにマッピングすべきである。第2に、既存のネットワーク制御スタックは、本発明に準拠するのが好ましい。従って、レイヤ106の論理要素のインタフェースは以下のものを含む。
【0021】
・ルックアップテーブル:論理転送要素は1つ以上の転送テーブルを示す。一般にこれは、L2、L3及びACLテーブルを含む。より一般化されたテーブル構造が規則毎に規定された転送動作でTCAMのパイプラインの周囲に組み込まれることに従って、実現例の一例は、OpenFlow(www.openflow.orgを参照)の周囲に設計される。この構造により、規則、ACL、SPAN及び他の基本要素を転送するのをサポートできるかなりの柔軟性を提供する。
【0022】
・ポート:論理転送要素は、基盤となるネットワークへの結合を示すポートを含む。ポートは、管理上追加されるか、あるいは自身が結合される構成要素が故障又は離脱する際に動的に出現し且つ離脱してもよい。本発明の実施形態において、ポートは、rx/txカウンタ、MTU、速度、エラーカウンタ及び搬送波信号を含む物理アナログの同一の品質の大部分を維持する。
【0023】
物理ネットワーク104は物理転送要素から構成される。本発明の実施形態において、転送要素は、標準的な転送シリコンを含む従来のハードウェアスイッチ及びハイパーバイザと共に含まれたような仮想スイッチである。本発明の実施形態において、既存のスイッチのうちのいくつか又は全ては、プロトコルが本発明の分散仮想スイッチを実現するようにそれらのフローテーブルを調整できるようにサポートする。そのようなプロトコルはOpenFlowを含むが、他の自社開発のプロトコル及びOSPF等のオープンプロトコルが使用されてもよい。本発明の他の実施形態において及び以下に更に詳細に説明されるある特定の有益な態様に従って、既存の物理スイッチのうちのいくつか又は全て(及び場合によっては仮想スイッチのうちのいくつか)は、そのようなプロトコルをサポートし且つ/あるいはそれらのフローテーブルを調整する必要はない。そのような実施形態において、そのような既存のスイッチを介してトラフィックをルーティングするためにトンネリングが使用されてもよい。
【0024】
高レベルにおいて、分散仮想スイッチ108を実現するためにネットワークハイパーバイザ102により使用される物理ネットワーク104の転送要素は、4つの主な役割、すなわちi)入力パケットを適切な論理コンテキストにマッピングする役割、ii)論理転送判断を行う役割、iii)論理転送判断を物理的な次のホップアドレスに再度マッピングする役割、及び、iv)パケットを物理的な次のホップに送出するために物理転送判断を行う役割、を有する。
【0025】
更に詳細には、
図2に示すように、全てのパケットは、レイヤ106で厳密に1つの論理転送要素により処理される。しかし、複数の論理転送要素が、物理ネットワーク104で同一の物理スイッチを介して多重化されてもよい。従って、入力上で、パケットは適切な論理コンテキストにマッピングされなければならない(S202)。現在のスイッチが、所定のパケットに対する論理転送状態を含まず、その場合に単に物理転送判断を実行する(すなわち、ステップS208にスキップする)場合があってもよい。また、全ての物理スイッチが単一の論理転送要素のみを実現するためのものである場合、論理アドレス指定が物理ネットワークにおいて使用されてもよいため、マッピングはno-opとなる。
【0026】
本発明によりパケットを論理コンテキストにマッピングするために使用される多くの異なるフィールドがある。例えばフィールドは、MPLSヘッダ等の識別タグ又は入力ポートであってもよい。しかし、エンドシステムを透過的にするために、論理コンテキストを識別するために使用されるタグは、論理スイッチに接続するシステムに示されないのが好ましい。一般にこれは、パケットを受信する第1の物理スイッチがそれをタグ付けしてコンテキストをマーク付けし、最後のスイッチがタグを除去することを意味する。当業者には理解されるように、第1のタグが選択される方法は展開環境に大きく依存する。
【0027】
ステップS204において、パケットが論理コンテキストにマッピングされると、物理スイッチは論理コンテキスト内でのみ意味のある転送判断を実行する。例えばこれは、論理スイッチに対するL2ルックアップ又は論理L3ルータに対して必要な一連のルックアップであってもよい。しかし、論理判断を実行する物理スイッチが全ての論理状態を維持するのに十分な容量を有さない場合、実行された論理判断が実行される必要のある全体的な論理判断のたった1ステップであってもよいため、パケットは、論理転送プレーンを離脱する前に更なる論理処理を必要とするだろう。
【0028】
ステップS206において、論理判断は物理にマッピングされる。論理転送判断(パケットがドロップしなかったと仮定する)の結果、レイヤ106の論理転送要素上に1つ以上の出力ポートが得られる。これらが判定されると、ネットワークは、これらの出力ポートが結合されるネットワーク104でパケットを物体に送出しなければならない。例えばこれは、別の物理スイッチ上の物理ポート又は異なる物理サーバ上の仮想機械の仮想ポートであってもよい。
【0029】
従って、ネットワークハイパーバイザ102は、物理転送要素をテーブルエントリに提供し、論理出力ポートを物理的な次のホップにマッピングしなければならない。実施形態において、論理ネットワーク及び物理ネットワークは、別個の(潜在的にオーバラップするが)アドレス空間を共有する。従って、物理アドレスが次のホップに対して見つけられると、(論理)パケットは、次のホップ物理アドレスに転送されるようにカプセル化されなければならない。尚、ルックアップが複数の物理構成要素を介して分散され、その場合に「次のホップ」が次の物理構成要素となり、論理出力ポートではなくルックアップを継続する場合があってもよい。
【0030】
ステップS208において、物理転送が最終的に行われる。物理転送判断は、先のマッピングステップにより判定された物理アドレスに基づいて適切な物理出力ポートからパケットを転送する役割を担う。これには、新しい物理ヘッダ(先のステップで作成された)上の第3の(又はそれを上回る)ルックアップが必要である。
【0031】
尚、ネットワークの物理スイッチが複数の論理コンテキストではなく1つの論理コンテキストのみを有する場合、先の2つのステップS204及びS206はno-opになってもよい。
【0032】
上記の4つのステップを実現するため、物理スイッチは、i)論理コンテキストにマッピングするためのルックアップ、ii)論理転送判断、iii)論理出力ポートから物理的な次のホップアドレスへのマッピング及びiv)物理転送判断に対する状態を有する必要がある。物理ネットワークを介して制御を最大限にするのが好ましい場合、ハイパーバイザ102は最初の3つを管理する役割を担い、物理転送状態は、標準的なIGP(OSPF又はISIS等)の実現例又はハイパーバイザ102により管理される。
【0033】
本発明の実施形態において、物理ネットワーク104機能は最新のラインカード機能に対応する。例えば、少なくとも、ネットワーク104の物理スイッチ及び/又は仮想スイッチは、パケット転送パイプラインを提供し、パケット毎に複数の論理ルックアップ及び物理ルックアップの双方をサポートすべきである。基本転送動作(出力ポート選択等)に加え、物理スイッチングインフラストラクチャが複数の論理転送プレーンにより共有される場合、ハードウェアは、(ネストされた)カプセル化/非カプセル化をサポートし、論理アドレス指定を物理アドレス指定から隔離すべきである。また、ネットワーク104の物理スイッチ及び/又は仮想スイッチのうちのいくつか又は全ては、例えばOpenFlow等のプロトコルを使用するネットワークハイパーバイザ102によりフローテーブルを適応するためのサポートを有するべきである。フローテーブルを変更する他の例示的な方法は、ネットワーキングチップセットプロバイダのMarvell又はBroadcomにより提供されたようなSDKを使用すること、あるいはJuniperにより与えられたOpenJunos API等のスイッチベンダAPIを使用することを含む。尚、いくつかの実施形態において及び本発明の態様に従って、既存のスイッチ及びルータは、トンネリングを使用することによりそれらのフローテーブルを調整することなく使用されてもよい。
【0034】
論理転送要素の容量は、個々の物理転送要素の容量を超えてもよい。従って、物理スイッチ/転送要素は、トラフィック分割動作(例えば、ECMP又はハッシング)及びリンク集約を提供し、複数の物理経路/リンクを介してトラフィックを分散するのが好ましい。最後に、リンク及びトンネルを効果的に監視するため、物理スイッチは、ハードウェアに基づくリンク及びトンネル監視プロトコルの実現例(BFD等)を提供すべきである。これらの例に基づいて及び本明細書の全体的な説明から物理ネットワーク104で物理スイッチ及び他の要素を実現する方法は、当業者により理解されるだろう。
【0035】
実施形態において、ネットワークハイパーバイザ102の実現例がネットワーク状態に対してグローバルビューを有するように、ハイパーバイザの実現例は物理転送要素から切り離される。従って、ネットワークハイパーバイザ102は、それに応じてネットワーク104で全ての影響を受けたスイッチに対するマッピング及び/又はフローテーブルを調整することにより、状態がそのいずれかの側で変化する場合は常に含まれる必要がある。換言すると、物理ネットワーク上にネットワークトポロジイベントがある場合又は制御実現例が論理転送プレーンの状態を変化させる場合、ネットワークハイパーバイザ102はそれに関与される必要がある。更にハイパーバイザは、単独で定期的にリソース管理タスクを実行し、物理ネットワークリソースの使用を最適に維持する。
【0036】
次に、本発明の実施形態に従って論理インタフェース106の抽象概念を物理ネットワーク104にマッピングするために使用されるハイパーバイザ102の例示的なメカニズムを説明する。例えば、論理インタフェースにあるべきもの、すなわち例えば、インタフェースが示すべき論理転送要素の数及びそれらの相互接続の類似点を作成し、規定し且つ管理する別個の機構があると仮定する。
【0037】
使用された全ての物理スイッチが上述した全ての基本要素を提供すると仮定する場合、ハイパーバイザ102は、論理インタフェース抽象概念を物理ハードウェアにマッピングする間、達成すべき以下の2つの課題を有する。
【0038】
・個々の物理転送要素の潜在的に限られたスイッチング容量、並びに限られた数及び限られた容量のポート。
【0039】
・個々の物理転送要素のTCAMテーブルの潜在的に限られた容量。
【0040】
データセンタのコンテキストにおいて、ネットワークトポロジがファットツリーである可能性が高いため、ネットワークハイパーバイザのタスクは簡略化される。従って、オフライン負荷分散(例えば、ECMP)又はオンライン(例えば、TeXCP)のいずれかにより実現されたマルチパスは、ネットワークトポロジのあらゆるポイント間に統一された容量を提供する。その結果、ネットワークハイパーバイザ102は、マッチング容量を含む物理転送要素を有することなく、超大容量の論理スイッチに対しても必要な容量を実現する。
【0041】
配置の問題:物理転送要素と関連付けられたTCAMテーブル容量がたいして重要な問題でない場合(特定の制御プレーンの実現例に対して)、TCAMテーブル容量が全ての物理転送要素で全ての論理転送状態を有するため、ネットワークハイパーバイザのタスクは簡略化される。しかし、使用可能な物理TCAMリソースがより不足している場合、ハイパーバイザ102は、よりインテリジェントに物理ネットワーク内で論理転送判断を配置しなければならない。物理ネットワーク要素が同等でなく(TCAMサイズの点で)且つ物理ネットワーク要素のうちのいくつかが論理転送テーブルに対して十分な容量を有する展開において、ネットワークハイパーバイザ102は、論理転送判断に対してこれらの要素を使用してもよく、それらの間でパケットを転送するためだけに残りの要素を使用してもよい。大容量物理転送要素の厳密なトポロジ場所が展開特有の問題にされるが、それらを第1のホップ要素としてエッジに有すること又はコア(それらが共有される)にそれらを有することが妥当な出発点であることは、当業者には理解されるだろう。
【0042】
展開が完全な論理転送テーブルを保持できる物理転送要素を有さない場合、ハイパーバイザ102は、複数の物理要素にまたがるように問題の論理ルックアップステップを分割することにより、あるいは別個の論理ルックアップステップを実現するために別個の物理転送要素を使用することにより(論理転送が一連のステップである場合)、問題を区分する。どちらの場合でも、物理転送要素は、先の物理転送が停止した処理を継続するように次に必要なコンテキストを搬送する方法で、処理されたパケットを次の物理転送要素に送出すべきである。
【0043】
展開特有の制限が上記の2つの極値の間のどこかにある場合、ネットワークハイパーバイザ102は、最適な転送テーブルリソース使用と最適な物理ネットワーク帯域幅使用との間で明示的に妥協する。
【0044】
尚、最後に、全ての物理転送要素と同様に、論理転送テーブルに対して必要な容量を含む個々の要素の転送容量が制限因子となる場合、ハイパーバイザ102は、この制限を回避する複数のそのような要素を介して負荷分散を活用してもよい。
【0045】
図3に示す1つの特定の例示的な実現例において、本発明は、複数の仮想スイッチ及び物理スイッチを介して分散し、且つ新規な方法で速度、セキュリティ及び柔軟性の全てを組み合わせる分散仮想ネットワークプラットフォームを提供する。
図3に示すように、本発明は、VMが、同一のL2ネットワーク内にあるのと同様に効率的にホスト、並びに/あるいは仮想LAN及び/又はサブネットを介して通信できるようにする分散仮想スイッチ(DVS)108を提供する。更に本発明は、複数の分散仮想スイッチ108が同一の物理ホスト上又は同一のデータセンタ内でインスタンス化されることにより、複数のテナントが、互いにアドレス指定すること及び互いのリソースを消費することの双方から依然として隔離されたままで同一の物理ハードウェアを共有できるようにする。
【0046】
図3に示すように、組織(例えば、データセンタテナント)は、ホスト300-A~300-Xを有するデータセンタのサービスを使用する複数の物理ホスト及びVMを有する。図示されるように、これらは、少なくともホスト300-A上のVM302-1及び302-3、ホスト300-C上のVM302-4及びホスト300-D上のVM302-6を含む。データセンタは管理及び他の目的のために一般的なVLANでこれらのVMを含もうとするが、VMの数がデータセンタによりサポートされたVLANサイズを超える場合、これは不可能になる。更にVLANは、VMが移動する時にネットワークの構成を必要とし、更なる機構なしではサブネットを介して拡張できない。
【0047】
図3に更に示されるように、場合によっては複数の異なるホスト300上に更に分散された仮想スイッチ304及び物理スイッチ306は、これらの種々のVMが異なるホスト及び/又はVLAN(すなわち、サブネット)上に配置される場合でもそれらが総合的に互いに通信し、且つ更に正規ホスト305(例えば、別個の外部顧客構内上にあってもよく、且つ/あるいはパブリックネットワーク又はプライベートネットワークを介してデータセンタのリソースに接続してもよいテナント組織の正規ユーザ)とも通信できるように単一の分散仮想スイッチ308として総合的に動作するために、本発明の仮想化レイヤ106及び/又はハイパーバイザ102により使用される。上述し且つ以下に更に詳細に説明するように、ハイパーバイザ102は、例えばQOS設定、ACL、ファイアウォール、負荷分散等を構成することにより、仮想ネットワークを管理するために使用されてもよい。
【0048】
実施形態において、ハイパーバイザ102は、本発明の原理を用いて適応されるように、内容が参考として本明細書に取り入れられる同時係属出願第12/286,098号において説明されるようなネットワークオペレーティングシステムを使用するコントローラにより実現される。しかし、他のOpenFlow標準、あるいは他の自社開発のコントローラ又はオープンコントローラが使用されてもよい。ハイパーバイザ102及び/又は分散仮想スイッチ108は、全ての内容が参考として本明細書に更に取り入れられる米国特許出願第11/970,976号において説明されたある特定の技術を更に活用する。
【0049】
仮想スイッチ304は、Cisco及びVMwareにより提供されるような市販されている仮想スイッチ又は他の自社開発の仮想スイッチを含む。仮想スイッチ304の殆ど又は全ては、ネットワークハイパーバイザ102と通信するためにOpenFlow、あるいは他の標準的なプロトコルサポート又は自社開発のプロトコルサポートを含む。物理スイッチ306は、ネットワークハイパーバイザ102と通信するために上述したようなOpenFlow、あるいは他の標準的なプロトコルサポート又は自社開発のプロトコルサポートを含むあらゆる市販されているスイッチ(例えば、NEC(IP8800)又はHP(ProCurve5406ZL))又は自社開発のスイッチを含む。しかし、上述した本発明の実施形態及び以下の更なる説明において、ネットワークの既存の物理スイッチ306及びルータのうちのいくつか又は全ては、トンネリングを使用することによりフローテーブルに影響を及ぼすことなく使用される。
【0050】
図3に示すように、仮想スイッチ304は仮想機械302と通信し、物理スイッチ306は物理ホスト305と通信する。
【0051】
例えば例示的なホスト300は、VMware ESXハイパーバイザを実行するサーバ(例えば、Dell、HP等)を含む。しかし、本発明はこの例示的な本実施形態に限定されず、他のオペレーティングシステム及び/又はハイパーバイザ等を使用して本発明の本実施形態及び同等の実施形態を実現する方法は、当業者には理解されるだろう。例えばこれらは、Citrix XenServer、Linux(登録商標) KVMを含む。尚、ハイパーバイザ102により管理された組織に含まれた全ての物理ホストが何らかの仮想化ソフトウェアを実行する必要はない(例えば、ホスト305のうちのいくつか又は全て)。
【0052】
次に、
図4に関連して、本発明の一実施形態に係る分散仮想スイッチ108の例示的な一実現例を説明する。上述したように、
図4に示すような分散仮想スイッチ108は、基盤となる構成から切り離される論理抽象概念を提供するために、複数の従来の仮想スイッチ304及び物理スイッチ306を利用する。
【0053】
尚、
図4に示すように、分散仮想スイッチ108は、基盤となるスイッチ304及び306のフローテーブルと同一であってもよくあるいは同一でなくてもよい自身のL2論理フローテーブル及びL3論理フローテーブルを含むのが好ましい。上述したように、これは、仮想化レイヤ106の制御プレーンで論理転送要素を実現するためである。
【0054】
図4に示すように、分散仮想スイッチ108により使用される仮想スイッチ及び物理スイッチの各々は、ネットワークハイパーバイザ102と通信するセキュアチャネルを含む。例えばこれは、OpenFlow標準(www.openflow.orgを参照)を実現し、且つOpenFlowプロトコルを使用するコントローラと通信するように構成される通信モジュールである。しかし、他の自社開発のプロトコル及びオープンプロトコルが可能である。
【0055】
仮想スイッチ304及び物理スイッチ306の各々は、自身の論理フローテーブル及び物理フローテーブル、並びに入力パケットを論理コンテキストにマッピングするマッパーを更に含む(すなわち、単一の物理スイッチが複数の論理スイッチをサポートできるように)。これらは、ハイパーバイザ102により操作されるように、従来のスイッチで使用可能な標準的なフローテーブル及び転送エンジンを使用して実現される。換言すると、304及び306の既存の転送エンジンが上述した論理マッピング及び他のマッピングを実現するように、ハイパーバイザ102は既存のフローテーブルのエントリを調整する。本発明の影響を受けず、且つ従来の手段(例えば、ネットワーク管理、ポリシー、ルーティング要件等)を使用して作成及び維持される更なるフローテーブルエントリをスイッチ304及び306が有することが理解されるべきである。
【0056】
図4に更に示すように、種々のサブネットを介した通信をサポートし、且つフローテーブルを調整したことによる影響を受けない既存の物理スイッチ及び/又は仮想スイッチ、並びに物理ルータ及び/又は仮想ルータに更に適応させるために、分散仮想スイッチ108を実現するために本発明で使用されるある特定の物理スイッチ306及び仮想スイッチ304は、トンネルマネージャを含むのが好ましい。例示的な一実施形態において、トンネルマネージャは、仮想プライベートL2ブロードキャストドメインとして機能する仮想プライベートネットワーク(PVN)の集合に対してVLAN又は総称ルーティングカプセル化(GRE(Generic Routing Encapsulation))トンネルを使用する。コントローラ110は、VM102を1つ以上の関連付けられたPVNにマッピングするデータベースを維持する。PVNコントローラ110及び/又はスイッチ104の各々は、ブロードキャストパケット及び他のパケットが搬送されるホストに接続するPVNトンネルの集合を作成し且つ維持する。このように、同一のPVNのVM102は、異なるL2ドメイン及び/又は異なるホストに存在す場合でも互いに通信する。また、PVNでホストと関連付けられた全てのVMは、PVN内で他のホスト上のVMにより送出された全てのブロードキャストパケットを参照し、これらのパケットはそのPVNの外側のいずれのホストによっても参照されない。
【0057】
当業者には理解されるように、本発明に従ってトンネルが作成される多くの種々の方法及び/又はトンネルマネージャ204を使用してPVNを介してホストが相互接続される方法がある。
【0058】
本発明はその好適な実施形態を参照して特に説明されたが、本発明の趣旨及び範囲から逸脱せずに形態及び詳細の変更及び変形が行われてもよいことは、当業者には容易に明らかとなるべきである。添付の請求の範囲は、そのような変更及び変形を含むことを意図する。