JP2016504820A - OpenFlow有効化クラウドコンピューティングにおいてMPLSを用いる場合のテナント固有データの分離のための装置及び方法 - Google Patents

OpenFlow有効化クラウドコンピューティングにおいてMPLSを用いる場合のテナント固有データの分離のための装置及び方法 Download PDF

Info

Publication number
JP2016504820A
JP2016504820A JP2015543541A JP2015543541A JP2016504820A JP 2016504820 A JP2016504820 A JP 2016504820A JP 2015543541 A JP2015543541 A JP 2015543541A JP 2015543541 A JP2015543541 A JP 2015543541A JP 2016504820 A JP2016504820 A JP 2016504820A
Authority
JP
Japan
Prior art keywords
tenant
label
cnm
tors
destination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015543541A
Other languages
English (en)
Other versions
JP6043879B2 (ja
Inventor
ケンプ、ジェームズ
ミシュラ、ラメシュ
Original Assignee
テレフオンアクチーボラゲット エル エム エリクソン(パブル)
テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/750,325 external-priority patent/US9250941B2/en
Application filed by テレフオンアクチーボラゲット エル エム エリクソン(パブル), テレフオンアクチーボラゲット エル エム エリクソン(パブル) filed Critical テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Publication of JP2016504820A publication Critical patent/JP2016504820A/ja
Application granted granted Critical
Publication of JP6043879B2 publication Critical patent/JP6043879B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

クラウドネットワークマネージャ(CNM)へのテナントIDへテナント固有データを隔離するために、テナントデータベースを用いて、テナントID情報がCNMアドレスマッピングテーブルへ追加される。CNMは、複数のデータベース又はテーブル内の複数のアイテムの間のマッピングを維持する。当該複数のデータベース又はテーブルは、テナントデータベース(DB)と、テナント識別子−テナントラベル(TITL)テーブルと、TORS(top of rack server)ラベル−仮想スイッチリンクラベル(TLVLL)テーブルと、ラベルマッピングテーブル(SMVL)と、CNMアドレスマッピングテーブルとを含む。CNMは、上記複数のデータベースを用いて、テナントの仮想マシン(VM)間で送信されるパケットへ付与されるテナント固有ラベルを生成する。【選択図】図1

Description

[関連出願への相互参照]
本一部継続出願は、2011年9月30日に提出された米国特許出願第13/251,107号及び2012年11月27日に提出された米国仮出願第61/730,394の利益を主張し、これらは参照によりここに取り入れられる。
[分野]
本発明の実施形態は、クラウドコンピューティングの分野に関し、より具体的には、クラウドコンピューティングにおける仮想プライベートネットワークの隔離に関する。
多年にわたって、大規模な法人はそのコンピュータリソースをデータセンタへと集中させてきた。この傾向は、ここ数年で、サーバ仮想化技術がますます普及するにつれて加速している。データセンタがより大規模になったために、いくつかのデータセンタ事業者は、コンピューティング、ストレージ及びネットワーク通信リソースを外部の顧客へと提供し始めている。提供されるサービスは、典型的には、伸縮自在の、オンデマンドの処理、最も実用的な目的のために顧客の支払い能力によってのみ制限されるストレージ、及びインターネットへのネットワーク帯域幅からなる。この発展は、クラウドコンピューティングと呼ばれる。
サーバ仮想化技術は、複数のサーバのプールを本質的に1つの大規模なコンピュータリソースとして管理することを可能とする。オペレーティングシステムとハードウェアとの間には、ハイパーバイザと呼ばれるソフトウェアのレイヤが存在する。ハイパーバイザは、仮想化されたサーバ上での仮想マシン(“VM”)の実行をスケジューリングする。VMは、いくつかのアプリケーションと共にパッケージ化されたオペレーティングシステムイメージである。ハイパーバイザは、VMを一時停止し、及び負荷分散をするためにVMをサーバ間で移動させることを可能とする。負荷分散及びクラッシュを捕捉するためのVM実行の監視は、遥かに高コストで専門化された解決策と共に達成される企業アプリケーションについて、同じ種類の耐障害性及びスケーラビリティサービスを提供する。クラウドマネージャシステムは、VMの実行を監督し、実行をスケジューリングして需要を満たし、サーバ利用率を最適化し、及び電力消費を最小化する。クラウド実行マネージャは、進行中のサービス提供への影響の無い、ハードウェア及びソフトウェアのサービス中(in-service)アップグレードを可能とするように、実行をスケジューリングすることができる。
マシン間のVMの任意の移動をサポートするために、データセンタ内のネットワーキングもまた仮想化されなければならない。今日のほとんどのクラウドは、ハイパーバイザへ仮想スイッチを取り入れることにより、ネットワークを仮想化する。仮想スイッチは、ハイパーバイザの制御下で実行中のVMへの仮想ネットワークポートを提供する。仮想スイッチソフトウェアは、サーバリソースがハイパーバイザにより仮想化されるのと同様のやり方で、ネットワークリソースを仮想化することをも可能とする。ハイパーバイザ及び仮想スイッチは、それにより、サーバ間でVMを移動させることを可能とするように協働することができる。ハイパーバイザは、VMを移動させる場合には新たなロケーションについて仮想スイッチと通信し、仮想スイッチは、VMのアドレス(レイヤ2の“MAC”(Media Access Control)アドレス、潜在的には“IP”(Internet Protocol)アドレスも)についてのネットワークのルーティングテーブルが更新され、そしてパケットがその新たなロケーションへとルーティングされることを保証する。
多くのクラウドコンピューティング施設は、ウェブサービスアプリケーションをサポートするに過ぎない。ウェブサービスアプリケーションは、リクエストをウェブサーバのプールへディスパッチする負荷分散フロントエンドからなる。リクエストは、概念的にはインターネット上のアプリケーションから発生し、従って、セキュリティ及びプライバシー要件は、プライベートな法人ネットワーク内のアプリケーションについての要件よりも遥かに緩い。新たなトレンドは、セキュアなマルチテナンシーであり、ここでは、クラウドプロバイダが、クラウドの外部におけるクライアントの分散オフィスネットワークとクラウド内における仮想プライベートネットワーク(“VPN”)との間にVPNの様な接続を提供する。このことは、クラウド内にあるクライアントのアプリケーションが、法人のワイドエリアネットワーク(“WAN”)に類似するネットワーク環境において動作することを可能とする。データセンタを所有する法人の範囲内の顧客にのみこれらサービスが提供されるプライベートデータセンタについては、マルチテナンシーについてのセキュリティ及びプライバシー要件が緩和される。パブリックデータセンタについては、複数個のテナントからのトラフィックが隔離されること、及び、1つのクライアントからのトラフィックが他へ到達する可能性のないことを、クラウド事業者が保証しなければならない。いずれのケースにおいても、クラウドコンピューティング施設は、MACレイヤの仮想ローカルエリアネットワーク(“VLAN”)を使用して、クラウドコンピュータネットワークを実装する傾向を有する。
例えば、2つの異なる外部の企業顧客に対して2つの仮想プライベートクラウド(“VPC”)がセットアップされることが可能である。VPCは、クラウド内で空間を賃借している企業にセキュアなマルチテナンシーを提供する、VM、ストレージ、及びネットワーキングリソースの集まりからなる。企業顧客は、パブリック事業者ネットワーク上で稼働するインターネット上で、VPNを介してVPC内へ接続する。
VPCに新たなサービスインスタンス(新たなVM)を追加するために、クラウド実行マネージャは、当該VMを、仮想化されたサーバ上のハイパーバイザ上で稼働するように初期化する。仮想化されたサーバ上の仮想スイッチは、新たなVMを追加する企業についてのVPNの一部分であるVLAN内に、当該VMを含むように構成される。いくつかのケースでは、新たなサービスについて仮想顧客エッジルータが更新され、その新たなサービスでクラウドコンピューティング施設内のプロバイダエッジルータが更新される。
VPNを提供するために、クラウドコンピューティング施設は、3つの解決策のうちの1つを実装する。第一に、各テナントは、別々のVLANスライスを受信する。第二に、テナントVPNは、IPカプセル化を使用して実装される。第三に、テナントVPNは、MACアドレスカプセル化を使用して実装される。これら解決策の各々は、異なる欠陥に苦慮している。
クラウドがVLAN隔離を用いる場合、各テナントには別々のVLANタグが割り当てられ、クラウドネットワークは、フラットなレイヤ2ネットワークとして稼働する。VLANタグは12ビットを有し、そのため、クラウド事業者がVLAN隔離を使用する場合、テナントの数は、4096に制限される。この限度が、主たる限界を提供する。
VLAN隔離の他の問題は、標準的なエリアネットワーキング(例えば、LAN、WAN、MAN;IEEE(Institute of Electrical and Electronics Engineers)802.1)スイッチングがスパニングツリープロトコル(“STP”)を使用して、ルートをセットアップすることである。ルーティングループの可能性をなくすために、STPは、複数個のルートが存在するかどうかに関わらず、ソースアドレスと宛て先アドレスとの間に唯一のパスを指定する。スパニングツリールートがトラフィック圧迫下に入り、且つ代替ルートが無視される場合、このことは、スイッチングファブリックの輻輳及び過少利用を招く恐れがある。
IPカプセル化の場合、クラウドは、ルーテッドIPネットワークとして稼働され、テナントのトラフィックを隔離するためにIPトンネルが使用される。トンネルのエンドポイントが、VMが稼働している仮想化されたソースサーバ及び仮想化された宛て先サーバ上のソース仮想スイッチ及び宛て先仮想スイッチであるという状態で、テナントからのトラフィックは、(典型的には“GRE”(Generic Routing Encapsulation)を使用して)IPパケット内にカプセル化される。
IPカプセル化は、クライアントが、レイヤ2トンネリングプロトコル(“L2TP”)においてイーサネットフレームをカプセル化することにより、任意のレイヤ2サービスを最上位に定義することを可能とする。IPカプセル化は、クラウドワイドなIPアドレス空間によってのみ制約を受ける、多数のテナントを可能にもする。テナントは、それ自体のIPアドレス空間をIPトンネルの最上位に配備することもできる。しかしながら、その他の方策が無ければ、IPルーティングは単一ルートも選択し、そのため、マルチパスルートが無視されて不必要な輻輳を招く。クラウドルーティングは、複数個のリンクにわたってパケットを拡散させるために等コストマルチパスを利用することができるものの、追加的な構成の複雑さという犠牲を伴う。
概して、IPルーテッドネットワークを構成することは時間を消費し、ルータは、簡素なスイッチよりも、より高価なデバイスである傾向を有する。加えて、大規模なデータフローにとって必要であり得る専用帯域幅を提供するためにIPネットワークが有する手段は限られている。
MACカプセル化の場合、別々のテナントVPNは、IPカプセル化と同様に、MACトンネルの内側でカプセル化されるように稼動する。MACトンネルのエンドポイントは、典型的には、VMが稼働している仮想化されたソースサーバ及び仮想化された宛て先サーバ上の仮想スイッチである。
MACカプセル化は、VLAN隔離型を上回る、IPカプセル化と同様の恩恵を提供し、所望であれば、クラウドをフラットなレイヤ2ネットワークとして稼働させることが可能であるという、付加された恩恵を伴う。欠点は、IPとは異なり、MACカプセル化についてのシグナリングプロトコルについての標準が少ししか存在せず、データプレーンカプセル化についての標準は存在するものの、それらがいくつかの既存のクラウド管理ソフトウェアプロダクトにおいては使用されないことである。このことは、あるタイプのハードウェアと共に作用しないというリスクを生じる。MACカプセル化ネットワークを構成して維持することもまた、VLAN隔離型ネットワークを維持することよりも、より複雑である。
本発明の実施形態は、クラウドネットワークマネージャ(“CNM”)により実行される、クラウドネットワークでのマルチプロトコルラベルスイッチング(“MPLS”)フローエントリを管理するための方法を含む。CNMは、1つ以上の仮想マシン(“VM”)をホスティングするための第1の仮想化されたサーバへ連結され、第1の仮想化されたサーバは、MPLSをサポートする第1の仮想スイッチを含み、第1の仮想スイッチは、MPLSをサポートする第1の“TORS(first top of rack switch)”へ連結される。CNMは、特定のテナントへ属する第1のVMが仮想化されたサーバ上でのアクティブ化のためにスケジューリングされたことを示す第1の通知メッセージをを受信する。第1の通知メッセージの受信に応じて、CNMは、第1のVMに関連付けられる第1のVMメディアアクセス制御(“MAC”)アドレスを判定する。さらに、CNMは、第1の仮想スイッチに関連付けられる第1の仮想スイッチMACアドレスを判定する。CNMは、アドレスマッピングテーブル内に、テナント識別子、第1のVM MACアドレス及び第1の仮想スイッチMACアドレスの間の関連付けを記録する。CNMは、さらに、第1のTORSを第1の仮想スイッチに関連付ける第1のMPLSラベルと、テナントを識別するテナントMPLSラベルとを判定する。CNMは、第1のMPLSラベル、テナントMPLSラベル及び第1のVM MACアドレスに適合するデータパケットが当該テナントMPLSラベル及び第1のMPLSラベルをポップした後に第1のVMへ転送されるべきであることを示すフローエントリ修正メッセージを、第1の仮想スイッチへ送信する。
本発明の実施形態は、複数の“TORS(top of rack switch)”と、複数の仮想化されたサーバと、当該複数の仮想化されたサーバへ連結されるクラウド実行マネージャ(“CEM”)と、上記複数のTORSへ連結されるクラウドネットワークマネージャ(“CNM”)とを含むマルチプロトコルラベルスイッチング(“MPLS”)クラウドネットワークを管理するためのシステムを含む。
上記複数の仮想化されたサーバは、各々が上記複数のTORSのうちの1つへ連結され、ハイパーバイザ及び仮想スイッチを備える。上記ハイパーバイザは、仮想化されたサーバ上で1つ以上の仮想マシン(“VM”)を実行するように構成される。上記仮想スイッチは、MPLSをサポートし、1つ以上のVMからその仮想化されたサーバと連結されるTORSへデータパケットを送信するように構成される。
CEMは、複数の仮想化されたサーバへ連結される。さらに、CEMは、1つ以上のVMの実行をスケジューリングし、各VMが上記複数の仮想化されたサーバのうちの1つの上で実行されるものとされる。CEMは、さらに、1つ以上のVMの実行を中断し、当該1つ以上のVMの実行を、上記複数の仮想化されたサーバのうちの1つから当該複数の仮想化されたサーバのうちの他の1つへと移動させる。
CNMは、複数のTORS、複数の仮想化されたサーバ、及びCEMへ連結される。CNMは、第1の通知メッセージをCEMから受信し、当該第1の通知メッセージは、第1のVMが複数の仮想化されたサーバのうちの第1の仮想化されたサーバ上でのアクティブ化のためにスケジューリングされたことと、テナントの識別子とを示す。第1の通知メッセージに応じて、CNMは、以下を実行する。CNMは、第1のVMに関連付けられる第1のVMメディアアクセス制御(“MAC”)アドレスを判定する。CNMは、第1の仮想化されたサーバ内の第1の仮想スイッチに関連付けられる第1の仮想スイッチMACアドレスを判定する。CNMは、アドレスマッピングテーブル内に、上記テナント識別子、第1のVM MACアドレス及び第1の仮想スイッチMACアドレスの間の関連付けを記録する。CNMは、第1の仮想化されたサーバへ連結されるであろう第1のTORSを第1の仮想スイッチに関連付けるための第1のMPLSラベルを判定する。CNMは、追加的に、テナント識別子に関連付けられるMPLSラベルを判定する。CNMは、第1のMPLSラベル、テナントラベル及び第1のVM MACアドレスに適合するデータパケットが第1のMPLSラベル及びテナントラベルをポップした後に第1のVMへ転送されるべきであることを示す第1のフローエントリ修正メッセージを、第1の仮想スイッチへ送信する。
本発明の実施形態は、CNMへのテナントIDへテナント固有データを隔離するために、テナントデータベースを用いてクラウドネットワークマネージャ(CNM)アドレスマッピングテーブルへテナントID情報を追加することを含む。
1つの実施形態では、クラウドネットワークマネージャ(CNM)を用いてテナント固有データを隔離するための方法が開示される。CNMは、複数のデータベース又はテーブル内の複数のアイテムの間のマッピングを維持する。当該複数のデータベース又はテーブルは、テナントデータベース(DB)と、テナント識別子−テナントラベル(TITL)テーブルと、TORS(top of rack server)ラベル−仮想スイッチリンクラベル(TLVLL)テーブルと、ラベルマッピングテーブル(SMVL)と、CNMアドレスマッピングテーブルとを含む。CNMは、上記複数のデータベースを用いて、テナントの仮想マシン(VM)間で送信されるパケットへ付与されるテナント固有ラベルを生成する。1つの実施形態において、OpenFlowスイッチ上のインストール又はアンインストールに先立ってデータベースアクセスが実行される。
CNMは、テナントIDをキーとして用いてテナントラベルをルックアップするためにTITLテーブルを用いる。CNMは、TORS(top of rack server)ラベルをキーとして用いて仮想スイッチ(VS)リンクラベルをルックアップするためにTLVLLテーブルを用いる。
CNMは、テナントID、テナントVMメディアアクセス制御(MAC)アドレス、テナントVMインターネットプロトコル(IP)アドレス及びサーバMACアドレスの間のマッピングを維持するために、CNMアドレスマッピングテーブルを用いる。テナントごとに1つのCNMアドレスマッピングテーブルが存在する。
テナントラベルを転送エントリとして追加することにより、テナント固有データが隔離される。テナントIDを有するテナントラベルの使用が、テナント固有トラフィックをそれぞれのVMへと分離し及び隔離する。1つの実施形態では、異なるテナントへ属する複数のVMが同じインターネットプロトコルアドレス及びメディアアクセス制御アドレスを有する。
テナントDBは、CNMアドレスマッピングテーブルへのポインタを保持する。CNMは、他の全てのCNMアドレスマッピングテーブルのルックアップを実行する前に、まずテナントDBでのルックアップを実行して、テナント固有のアドレスマッピングテーブルを見出す。
1つの実施形態では、クラウドネットワークマネージャ(CNM)を用いてテナント固有データを隔離するための方法が開示される。仮想マシン(VM)が仮想化されたサーバ上でのアクティブ化のためにスケジューリングされるという通知が受信される。CNMは、VMメディアアクセス制御(MAC)アドレスを判定する。CNMは、仮想化されたサーバ上に所在する仮想スイッチ(VS)MACアドレスを判定する。CNMは、テナント識別子(ID)、テナントMAC及びサーバMACを含むメッセージを受信する。VS−TORS(top of rack switch)ラベル及びテナント固有ラベルを求めて、ラベルマッピングテーブル及びテナント識別子−テナントラベル(TITL)テーブル内でルックアップが実行される。CNMマッピングテーブル内に、テナントID、VM MACアドレス及びVS MACアドレスの間の関連付けが記録される。CNMは、VS−TORSラベル、テナント固有ラベル及びVM MACアドレスに適合するデータパケットがVMへ転送されるべきであることを示すフローエントリ修正メッセージを、VSへ送信する。
1つの実施形態では、CNMは、VMから発せられるDHCP(Dynamic Host Configuration Protocol)リクエストがCNMへ転送されるべきであることを示すフローエントリ修正メッセージを、VSへ送信する。1つの実施形態では、CNMは、VMから発せられるARP(Address Resolution Protocol)リクエストがCNMへ転送されるべきであることを示すフローエントリ修正メッセージを、VSへ送信する。
1つの実施形態では、クラウドネットワークマネージャ(CNM)を用いてテナント固有データを隔離するための方法が開示される。宛て先仮想マシン(VM)へデータパケットを転送する目的でソースVSが当該データパケットへまずテナント固有ラベルをプッシュし次いでVS−TORS(top of rack switch)ラベルをプッシュすべきであることを示すために、第1のフローエントリ修正メッセージがソース仮想スイッチ(VS)へ送信される。ソースTORSがVS−TORSラベルに適合するデータパケットを受信した場合にはソースTORSが宛て先TORSラベルをプッシュすべきであることを示すために、第2のフローエントリ修正メッセージがソースTORSへ送信される。宛て先TORSが宛て先TORSラベルに適合するデータパケットを受信した場合には宛て先TORSがTORSラベルをポップしてデータパケットを宛て先VSへと転送すべきであることを示すために、第3のフローエントリ修正メッセージが宛て先TORSへ送信される。宛て先VSがVS−TORSラベル及びテナント固有ラベルに適合するデータパケットを受信した場合には宛て先VSがまずVS−TORSラベルをポップし次いでテナント固有ラベルをポップすべきであることを示すために、第4のフローエントリ修正メッセージが宛て先VSへ送信される。
第1のフローエントリ修正メッセージに応じて、ソースVSは、パケットをソースTORSへ転送する。第2のフローエントリ修正メッセージに応じて、ソースTORSは、クラウドネットワークを用いてデータパケットを宛て先TORSへ転送する。第3のフローエントリ修正メッセージに応じて、宛て先TORSは、データパケットを宛て先VSへ転送する。第4のフローエントリ修正メッセージに応じて、宛て先VSは、パケットを宛て先VMへ転送する。CNMは、ソースVMがパケットを同じテナントに属する宛て先VMへ転送することを可能とする目的で、宛て先インターネットプロトコルアドレスをソースVMへ提供する。
本発明は、本発明の実施形態を例示するために使用される以下の説明及び添付の図面を参照することにより、最も良く理解され得る。図面は次の通りである:
本発明の1つの実施形態に係るクラウドコンピューティング施設内のコンポーネント群を示している。 本発明の1つの実施形態に係るクラウドコンピューティング施設内のコンポーネント群を示している。 本発明の1つの実施形態に従って仮想マシンをアクティブ化するための方法のブロック図を示している。 本発明の1つの実施形態に従って仮想マシンをアクティブ化するための方法を示している。 本発明の1つの実施形態に従ってVMからのDHCPリクエストを傍受するための方法のブロック図を示している。 本発明の1つの実施形態に従って仮想マシンからのDHCPリクエストを傍受するための方法を示している。 本発明の1つの実施形態に従ってVMからのARPリクエストを傍受するための方法のブロック図を示している。 本発明の1つの実施形態に従って仮想マシンからのARPリクエストを傍受するための方法を示している。 クラウドコンピューティングネットワークにおいて第1の仮想化されたサーバから第2の仮想化されたサーバへとVMを移動させる方法を示している。 本発明の実施形態に係る例示的なコンピュータシステムのブロック図を示している。 テナントIDのCNMへの追加を示している。 CNMを用いてテナント固有データを隔離するための方法を示している。 1つの実施形態に従ってテナントごとに仮想マシンをアクティブ化するための方法のブロック図を示している。 1つの実施形態に従って仮想マシンをアクティブ化するための方法を示している。 1つの実施形態に従ってテナントVMからのDHCPリクエストを傍受するための方法のブロック図を示している。 1つの実施形態に従って仮想マシンからのDHCPリクエストを傍受するための方法を示している。 1つの実施形態に従って(特定のラベルにより識別される)特定のテナントが宛て先IPアドレスを発見しようと試みる際のVMからのARPリクエストを傍受するための方法のブロック図を示している。 1つの実施形態に従って(特定のラベルにより識別される)特定のテナントが宛て先IPアドレスを発見しようと試みる際の仮想マシンからのARPリクエストを傍受するための方法を示している。 TORSにより分けられる異なる仮想スイッチ上にある具体的なテナントVMへ向けてトラフィックを転送するためのテナントラベルの使用を示している。 CNMを用いてテナント固有データを隔離するための方法を示す図12を示している。 VMを移動させる際のデータパスフローを示している。 第1の宛て先VSから第2の宛て先VSへCNMを用いて宛て先VMを移動させる方法を示している。
以下の説明は、クラウドネットワーク内においてマルチプロトコルラベルスイッチング(“MPLS”)フローエントリを管理するための方法及び装置を説明する。以下の説明では、本発明の、より完全な理解をもたらすために、ロジック実装、オプコード、オペランドを特定する手段、リソースパーティショニング/共有/複製の実装、システムコンポーネントのタイプ及び相互関係、並びにロジックパーティショニング/統合の選択肢といった多数の特定の詳細が明記される。しかしながら、本発明がそうした特定の詳細が無くとも実践され得ることが、当業者により認識されるであろう。他の例では、本発明を不明瞭にすることのないように、制御構造、ゲートレベル回路、及び全体的なソフトウェア命令シーケンスは、詳細には示されていない。当業者は、包含される説明があれば、過度の実験を行うことなく、適切な機能性を実装することができるであろう。
明細書における、“1つの実施形態”、“一実施形態”、“例示的な実施形態”などへの言及は、記載される実施形態が特定の特徴、構造、又は特性を含み得るものの、あらゆる実施形態が当該特定の特徴、構造、又は特性を含むわけでは必ずしもないかもしれないことを示す。その上、そうしたフレーズは、必ずしも同じ実施形態を指しているわけではない。さらに、一実施形態との関係において特定の特徴、構造、又は特性が説明されている場合、明示的に記載されているか否かに関わらず、他の実施形態との関係においてそうした特徴、構造、又は特性を作用させることは、当業者の知識の範囲内であることが思量される。
以下の説明及び特許請求の範囲では、“連結される”及び“接続される”という用語が、その派生語と共に使用され得る。これら用語は互いに対して同義語として意図されないことを理解されるべきである。“連結される”は、互いに物理的に又は電気的に直接接触してもしなくておよい2つ以上の要素が互いに協働し又はインタラクションすることを示すために使用される。“接続される”は、互いに連結される2つ以上の要素間における通信の確立を示すために使用される。
理解を容易にするために、あるアイテムのオプション的な特質(例えば、本発明の所与の実装によりサポートされない特徴、所与の実装によりサポートされるものの、ある状況では使用され他では使用されない特徴)を表明するために、図中で破線が使用されている。
図に示される技法は、1つ以上の電子デバイス上で記憶されて実行されるコード及びデータを使用して実装されることができる。そうした電子デバイスは、非一時的であって有形のマシン読取可能な記憶媒体(例えば、磁気ディスク、光ディスク、読み出し専用メモリ、フラッシュメモリデバイス、相変化メモリ)及び一時的なマシン読取可能な通信媒体(例えば、電気的、光学的、音響的、又は他の形式の伝播信号−例えば、搬送波、赤外線信号、デジタル信号など)を使用して、コード及びデータを記憶し、コード及びデータを(内部的に、及び/又は、他の電子デバイスとの間でネットワーク上で)通信する。加えて、そうした電子デバイスは、典型的には、ストレージデバイス、1つ以上の入力/出力デバイス(例えば、キーボード、タッチスクリーン、及び/又はディスプレイ)、並びにネットワーク接続といった1つ以上の他のコンポーネントと連結されるプロセッサのセット又は1つ以上のプロセッサを含む。プロセッサのセット及び他のコンポーネントの連結は、典型的には、1つ以上のバス又はブリッジ(バスコントローラとも呼称される)を通じて行われる。ネットワークトラフィックを搬送するストレージデバイス及び信号は、それぞれ、1つ以上の非一時的かつ有形のマシン読取可能な媒体及び一時的なマシン読取可能な通信媒体の代表である。よって、所与の電子デバイスのストレージデバイスは、典型的には、当該電子デバイスの1つ以上のプロセッサのセット上での実行のためにコード及び/又はデータを記憶する。当然ながら、本発明の一実施形態の1つ以上の部分は、ソフトウェア、ファームウェア、及び/又はハードウェアの様々な組み合わせを使用して実装されてよい。
本発明の実施形態において、クラウドコンピューティング施設は、VPCテナントのためのVPNを形成するためにMPLSを使用し、仮想スイッチ及びTORS内でフロールートをプログラミングする。例えば、MPLSスイッチは、2011年2月のOpenFlowスイッチ仕様バージョン1.1.0に記述されているように、OpenFlowでフロールートをプログラミングすることができる。仮想スイッチは、イーサネットMACアドレスを用いて、仮想化されたサーバ上のVMへパケットをルーティングし、個別のMPLSラベルスイッチパス(“LSP”)へとパケットを分類するが、仮想スイッチの後には、イーサネットもIPアドレスもルーティングのために使用されない。代わりに、ルーティングは、IP宛て先アドレス及びMAC宛て先アドレスの双方に基づいて割り当てられるMPLSラベルを用いて厳密に行われる。その処理は、ワイドエリアネットワークにおける仮想プライベートワイヤサービス(“VPWS”)又はレイヤ3VPN(“L3VPN”)に類似しているが同一ではない。“Framework for Layer 2 Virtual Private Networks (L2VPNs)”(IETF(Internet Engineering Task Force),RFC(Request For Comments)4664)はワイドエリアネットワークのためのVPWSを説明しており、一方で“A Framework for Layer 3 Provider-Provisioned Virtual Private Networks (PPVPNs)”(IETF RFC4110)はL3VPNを説明している。
例えば、クラウドネットワークマネージャ(“CNM”)は、OpenFlowを使用するフロールートを、VMが稼働している仮想化されたサーバ上の仮想スイッチ内にインストールすることができる。フロールートは、ルートを指定するMPLSラベルであってTORSと宛て先側の仮想スイッチとの間でテナントに固有な当該MPLSラベル、及びVMを所有するテナントのアイデンティティを指定するラベルと共に、仮想化されたサーバ上のテナントVMからのイーサネットフレームをカプセル化する。パケットは、次いで、ソースVMの仮想化されたサーバのTORSへ転送される。ソースTORSは、次いで、パケットをデータセンタのネットワークファブリック内へルーティングする。クラウドネットワークファブリックがMPLSネットワークである場合、ソースTORSは、ソースTORSと宛て先TORSとの間のルートを特定する他のMPLSラベルをプッシュする。宛て先TORSは、当該MPLSルーティングラベルをポップし、ソース仮想スイッチによりプッシュされたラベルを使用して、パケットを適正な宛て先サーバ及び仮想スイッチへルーティングする。宛て先仮想スイッチは、TORSから仮想スイッチへのラベルをポップし、当該パケットを、宛て先MACアドレスに基づいて正確なVMへと転送する。クラウドスイッチファブリックが光技術といった何らかの他の技術をサポートしている場合、TORSは、適切な適応を実行する。
本発明の実施形態は、多数の利点を提供する。例えば、データプレーン上でIPルーティングを要さず、それにより、コスト、電力使用量、及び、IPルーテッドクラウドネットワークを有する複雑性が除去される。その設計は、高価ではないMPLSスイッチのみを要する。クラウド内のスイッチファブリックは、標準的なイーサネットスイッチ、MPLS対応スイッチ、光回路スイッチであることができ、又は、例えば高キャパシティフローには光スイッチであり他のトラフィックには電気的スイッチといった混成物であってさえよい。スイッチファブリックは、分散されたコンピューティングリソースの間のワイドエリアネットワークですらあり得る。TORSは、カプセル化を適正にハンドリングする。テナントは、(所望であれば)それ自体のIPアドレス空間、及び(所望であれば)DNSサーバを管理することができる。クラウドスイッチファブリック内へのルーティングの詳細は、TORSによってハンドリングされ、そこでスケーラビリティ及びアグリゲーションの適正な混成を達成することができる。
図1は、本発明の1つの実施形態に係るクラウドコンピューティング施設内のコンポーネント群を示している。クラウドコンピューティング施設は、クラウドネットワーク170を通じて連結される複数のラック内に複数の仮想化されたサーバを含む。これら仮想化されたサーバ及びラックのうち、3つのラック100A、100B、及び100Cが例示されている。例示される各ラックは、TORスイッチ(“TORS”)と、複数の仮想化されたサーバとを含む。ラック100Aは、TORS 101Aと、複数の仮想化されたサーバ105A〜105Nとを含む。ラック100Bは、TORS 101Bと、複数の仮想化されたサーバ115A〜115Nとを含む。ラック100Cは、TORS 101C、仮想化されたサーバ125A、及び仮想化されたサーバ125Bを含む。各TORS 100A〜100Cは、当該ラック内において複数の仮想化されたサーバを連結し、クラウドネットワーク170とさらに連結される。クラウドネットワーク170の構造は、任意のタイプのスイッチング又はルーティングプロトコル、例えば、光回線交換ネットワーク、又はOpenFlow MPLSスイッチのネットワークをサポートすることができる。クラウドネットワーク170は、分散されたサーバラックの間で稼働するワイドエリアネットワーク(“WAN”)ですらあり得る。図における接続性は、規範的であることを意図しておらず、クラウドネットワーク170内においてTORSを連結する多くの方式が存在する。図1では、クラウドネットワーク170は、複数のスイッチングエレメント(例えば、スイッチ又はルータ)180A〜180Dを含む。
各TORS100A〜100C、並びに仮想化された各サーバ105A〜105N、115A〜115N、125A及び125Bは、管理ネットワーク175とさらに連結される。管理ネットワーク175は、TORS及び仮想化されたサーバを管理エレメント群と連結する。管理エレメント群は、クラウド実行マネージャ150、仮想ディスク155、及びクラウドネットワークマネージャ160を含む。
クラウド実行マネージャ(“CEM”)150は、実行のためにVMをスケジューリングし、各VMのイメージごとに永久ストレージを提供する仮想ディスク155との間でVMをマッピングするためのオブジェクトマネージャを含む。クラウドネットワークマネージャ(“CNM”)160は、テナントVPCのためのVPNを管理する。
図2は、本発明の1つの実施形態に係るクラウドコンピューティング施設内のコンポーネント群を示している。図2は、1つ以上のフローエントリテーブル212A〜212Zを含むTORS201Aを示している。フローエントリテーブル212A〜212Zは、OpenFlowへの参照によって説明される通り、MPLSラベルをMPLSアクションにマッチさせるために使用される。TORS201Aは、1つ以上の仮想化されたサーバ215A〜215Nと連結される。
仮想化された各サーバ215A〜215Nは、1つ以上のVMを実行するように構成される。図2において、仮想化されたサーバ215Aは、VM(例えば、VM Tl及びVM T2)の実行をスケジューリングするハイパーバイザ216Aを含む。仮想化されたサーバ215Aは、仮想スイッチ217Aをさらに含む。仮想スイッチ217Aは、ハイパーバイザの制御下において実行するVMへの仮想ネットワークポートを提供する。仮想スイッチ217Aは、OpenFlowへの参照によって説明される通り、MPLSラベルをMPLSアクションにマッチさせるために使用される1つ以上のフローエントリテーブル218A〜218Zを含む、MPLS対応型スイッチである。
TORS201Aは、図1に記載されているクラウドネットワークといったクラウドネットワーク270と連結される。TORS201Aは、管理ネットワーク275とさらに連結される。図2におけるように、管理ネットワーク275は、TORS及び仮想化されたサーバを、CEM250、仮想ディスク255、及びCNM260といった管理エレメントと連結する。CNM260は、アドレスマッピングテーブル262及びラベルマッピングテーブル264を含む、VPNを記述するテーブル群を含む。アドレスマッピングテーブル262は、VMのMACアドレス、VMを稼働させている仮想化されたサーバのMACアドレス(これは、仮想スイッチ217AのMACアドレスである)、及びVMのIPアドレス間で、マッピングを行う。ラベルマッピングテーブル264は、仮想化されたサーバ215AのMACアドレス(これは、仮想スイッチ217AのMACアドレスである)を、仮想スイッチ217AとTORS201Aとの間のリンクについてのTORSリンクラベルにマッピングする。他の実施形態において、CNM260は、どの“DHCP(Dynamic Host Configuration Protocol)”及び“DNS(Domain Name Service)”サーバ(もしあれば)がどのテナントに属しているのかをトラッキングする。
1つの実施形態において、CNMは、テナントVMがそれらのIPスタックをいかに構成するかに関して良好に振る舞い、それらのIP/MACアドレスは任意に変更されないものと想定する。テナントVMの振る舞いが悪く、そうした変更を行う場合、そのパケットはCNMへルーティングされ、CNMは、CEMへの通知を行うであろう。すると、CEMは、違反するVMをシャットダウンすることができる。
図3は、本発明の1つの実施形態に従って仮想マシンをアクティブ化するための方法のブロック図を示している。ブロック300において、CNMは、VMが、仮想化されたサーバ上でアクティブ化のためにスケジューリングされるという通知を受信する。例えば、CEMは、CEMがアクティブ化のためにVMをスケジューリングしたことをCNMへ通知する。CNMは、ブロック310において、VMのMACアドレス及びテナント識別子を判定する。1つの実施形態において、CEMは、CNMへVMのMACアドレス及びテナント識別子を上記通知と共に提供し、その一方で、他の実施形態では、CEMは、CNMへ別々のメッセージにおいてVMのMACアドレス及びテナント識別子を提供する。ブロック315において、CNMは、VMがアクティブ化されるであろう仮想サーバ上に所在する仮想スイッチに対応する、仮想スイッチのMACアドレスを判定する。ブロック320において、CNMは、CNMのアドレスマッピングテーブル内に、テナント識別子、VMのMACアドレス及び仮想スイッチのMACアドレスの間の関連付けを記録する。CNMは、ブロック325において、仮想スイッチを当該仮想スイッチと連結されるTORSに関連付けるMPLSラベルをさらに判定する。ブロック330において、CNM330は、MPLSラベル、テナント識別子及びVMのMACアドレスに適合するデータパケットが2つのMPLSラベルをポップした後にVMへ転送されるべきであることを示すフローエントリ修正メッセージを、仮想スイッチへ送信する。1つの実施形態において、CNMは、ブロック332において、VMから発せられるDHCPリクエストがCNMへ転送されるべきであることを示すフローエントリ修正メッセージを仮想スイッチへ送信する。他の実施形態において、CNMは、ブロック333において、VMから発せられるアドレス解決プロトコル(“ARP”)リクエストがCNMへ転送されるべきであることを示すフローエントリ修正メッセージを仮想スイッチへ送信する。
図4は、本発明の1つの実施形態に従って仮想マシンをアクティブ化するための方法を示している。図4において、TORS401Aは、仮想化されたサーバ415Aと連結される。仮想化されたサーバ415Aは、ハイパーバイザ416A及び仮想スイッチ417Aを含む。図4において、仮想化されたサーバ415Aは、2つのアクティブなVM Tl 490A及びVM T2 490Bを有する。さらに、図4は、CEM450、仮想ディスク455、及びCNM460を示す。
図4において、CEM450は、仮想化されたサーバ415A上での実行のために、第3のVM T3 490Cをスケジューリングしている。この図は、仮想マシンのアクティブ化の期間中における様々なポイントを描いている。ポイントAにおいて、CEM450は、VM T3 490C、例えば、テナント3に属するVMを、実行のためにスケジューリングする。オブジェクトファイルは、仮想ディスク455からCEMのオブジェクトマネージャを通じてマッピングされる。CEMは、テナント3に割り当てられたMACアドレスのうちの1つにVM490Cの MACアドレスを設定するように、VM490Cのスタックを編集する。ポイントBにおいて、CEM450は、CNM460へアクティブ化を通知する。CEM450は、VM490CのMACアドレスと、当該VMを実行する仮想化されたサーバ415AのMACアドレス(これは、仮想化されたサーバ415Aの仮想スイッチ417AのMACアドレスである)と、そのテナントの識別子とを、CNM460へ提供する。
ポイントCにおいて、CNM460は、CNMのアドレスマッピングテーブル(図示せず)内に、テナント識別子とVM490CのMACアドレスとを、スケジューリングがなされた仮想化されたサーバ415AのMACアドレスと共に記録する。ポイントDにおいて、CNM460は、VM490Cが稼働している仮想化されたサーバ415AとTORS401Aとの間のリンクについての、仮想スイッチ−TORS401AのMPLSラベル(これは、ソースTORS“STORS”リンクラベルとしても知られている)と、テナントラベルとを、CNM460のラベルマッピングテーブルからルックアップする。ポイントEにおいて、CNM460は、テナントラベルとVM490CのMACとSTORSリンクラベルとを、当該STORSリンクラベル及び当該テナントラベルをポップしてパケットをVM490Cへ転送するアクションにマッチさせるルールをインストールするためのフローエントリ修正メッセージを、MPLS対応型仮想スイッチ217Aへ送信する。
1つの実施形態において、CNM460は、ポイントFにおいて、以下のルールをインストールするために、第2のフローエントリ修正メッセージを仮想スイッチ217Aへ送信する。ソースMACがVM490CについてのMACアドレスに適合し、且つ、プロトコルがARPである場合、パケットをCNM460へルーティングして、CNM460がARPリクエストにサービスすることを可能とする。このルールは、ARPトラフィックを削減し、CNM460がCNMアドレスマッピングテーブルから回答することを可能とする。
他の実施形態において、CNM460は、ポイントGにおいて、以下のルールをインストールするために、第3のフローエントリ修正メッセージを仮想スイッチ217Aへ送信する。ソースMACがVM490CについてのMACアドレスに適合し、且つ、プロトコルがDHCPである場合、パケットをCNM460へルーティングして、CNM460がDHCPリクエストにサービスすることを可能とする。このルールは、CNM460が、DHCPサーバからの応答パケットを傍受することにより、CNMアドレスマッピングテーブル内に、MACアドレスからIPアドレスへのマッピングを記録することを可能とする。テナントがIPアドレスを取得するためにDHCPを使用する場合、このステップを要する。
図4は、これまでに説明した全ての3つのフローエントリ修正メッセージが通信されたということを前提として、仮想スイッチ417Aのフローエントリテーブル418A内の3つのエントリを例示する。フローエントリテーブル418Aには、5つの列、即ち、ソースMAC、宛て先MAC、MPLSラベル、IPプロトコル、及びアクション、が例示されている。フローエントリは、490Cのアクティブ化に対応する。
図示したフローエントリテーブル418A内の第1のエントリは、ソースMACアドレスとしてVM T3 490CのMACアドレスに適合する。宛て先MACアドレス及びMPLSラベルは、いかなるエントリにも適合するように設定され、その一方で、IPプロトコルは、ARPプロトコルに適合するように設定される。アクションは、次いで、CNM460へ転送することである。このルールは、上記のステップFに対応する。
図示したフローエントリテーブル418A内の第2のエントリは、ソースMACアドレスとしてVM T3 490CのMACアドレスに適合する。宛て先MACアドレス及びMPLSラベルは、いかなるエントリにも適合するように設定され、その一方で、IPプロトコルは、DHCPプロトコルに適合するように設定される。アクションは、次いで、CNM460へ転送することである。このルールは、上記のステップGに対応する。
図示したフローエントリテーブル418A内の第3のエントリは、宛て先MACアドレスとして全てのMACに適合する。宛て先MACアドレスは、VM T3 490CのMACアドレスに適合するように設定され、その一方で、MPLSラベルは、VS−TORS401のリンクラベルに設定され、その他はテナントラベルに設定される。IPプロトコルは、全てのエントリに適合するように設定される。アクションは、次いで、MPLSラベルをポップしてパケットをVM T3 490Cへ転送することである。このルールは、上記のステップEに対応する。
上で説明したように、CNMは、VM MACアドレス、仮想化されたサーバのMAC、及びVM IPアドレスの間のマッピングを維持する。テナントがDHCPアドレスを使用しないことを選んだ場合、CEMは、スケジューリングの実行に先立ってVMのIPスタックを修正し、静的なIPアドレスをインストールする。しかしながら、他の実施形態において、テナントは、DHCPアドレスを使用することを選ぶであろう。そうしたケースにおいて、CNMは、“DHCP Relay Agent Information Option”(IETF,RFC3046、2001年1月)に従って、DHCPリクエストを傍受してリレーとして動作するであろう。
図5は、本発明の1つの実施形態に従ってVMからのDHCPリクエストを傍受するための方法のブロック図を示している。ブロック500において、CNMは、VMから発せられたDHCPリクエストを受信する。CNMは、ブロック505において、RFC3046に従って、DHCPリクエストをDHCPサーバへ中継する。ブロック510において、CNMは、DHCPサーバからDHCPリプライを受信する。ブロック515において、CNMは、アドレスマッピングテーブル内に、VMのMACアドレスとDHCPリプライ内で受信されたIPアドレスとの間の関連付けを記録する。本発明の実施形態によれば、当該関連付けは、VMを実行する仮想サーバのMACアドレスをさらに含む。ブロック520において、CNMは、DHCPリプライをVMへ転送する。
図6は、本発明の1つの実施形態に従って仮想マシンからのDHCPリクエストを傍受するための方法を示している。図6において、仮想化されたサーバ615Aは、ハイパーバイザ616A及び仮想スイッチ617Aを含む。図6において、仮想化されたサーバ615Aは、3つのアクティブなVM Tl 690A、VM T2 690B、及びVM T3 690Cを有する。仮想スイッチ617Aは、VM T3 690CからのDHCPリクエストを、DHCPサーバ630に連結されるCNM 660へ転送するためのルールを含むフローエントリテーブル618Aを含む。
この図は、仮想マシンからのDHCPリクエストの傍受の期間中における、様々なポイントを描いている。ポイントAにおいて、VM T3 690Cは、IPアドレス、及び、DNSサーバといった他の構成情報を取得するためのDHCPリクエストを発行する。ポイントBにおいて、仮想スイッチ617Aは、DHCPリクエストを、当該リクエストをCNM260へルーティングするためのフロールールに照合する。ポイントCにおいて、CNM260は、DHCPリレーとして動作し、標準的なDHCPリレーオプションを挿入し、リクエストをテナントのDHCPサーバ630へ転送する。CNM660は、DHCPリクエストのソースMACアドレスを調査することにより、どのテナントにVM T3 690Cが属しているのかを判定することができる。ポイントDにおいて、テナントのDHCPサーバ630は、VM T3 690CについてのIPアドレス及び他の構成情報を包含するDHCPリプライで応答する。ポイントEにおいて、CNM660は、CNMのアドレスマッピングテーブル262内に、VM T3 690CのMACアドレスとIPアドレスとの間のマッピングを記録する。ポイントFにおいて、CNM660は、DHCPリレーオプションを取り除き、DHCPリプライを仮想スイッチ617Aへ転送し、仮想スイッチ617Aは、ポイントGにおいて、当該リクエストをVM T3 690Cへ返送する。
典型的なIP LANのシナリオにおいて、宛て先アプリケーションと通信することを望む、サーバ内で稼働するソースアプリケーションは、DNSを使用して、宛て先アプリケーションのIPアドレスを発見する。IPアドレスが見つかった後に、ソースサーバ内のIPスタックは、宛て先のIPアドレスとMACアドレスとの間のマッピングを発見するためにARPメッセージをブロードキャストする。宛て先は、ローカルLAN上に存在する場合、ARPに応答する。宛て先がローカルLAN上で稼働していない場合、ソースサーバのIPスタックは、ローカルルータのMACアドレスを、他のサブネットへのゲートウェイとして使用する。
クラウド内において、VMは、仮想化されたLANの最上位で稼働する。テナントは、それ自体のDNSサーバを稼働させるか、又は、クラウド事業者からDNSサービスを購入する。VMは、当該VMが使用することになるDNSサーバのアドレスと共に構成される。テナントは、サービスにコンタクトすることを望む場合、ちょうど正規の法人LAN内におけるように、IPアドレスを発見するためのDNSリクエストをDNSサーバへ送信する。DNSサーバは、クラウド事業者の制御下にあるか、又は、個々のテナントにより制御されることが可能である。DNSリプライが返ってきた場合、VMは、IPからMACアドレスへのマッピングを判定するためのARPリクエストをブロードキャストする。
本発明の実施形態において、仮想スイッチは、ARPメッセージを傍受して、それをブロードキャストするよりもむしろ、CNMへ中継する。CNMは、ARPメッセージがクラウドネットワークの全体にわたってブロードキャストされる必要がないように、アドレスマッピングサービスを提供する。
図7は、本発明の1つの実施形態に従ってVMからのARPリクエストを傍受するための方法のブロック図を示している。ブロック700において、CNMは、VMから発せられたARPリクエストを受信する。CNMは、ブロック705において、ARPリクエストから宛て先IPアドレスを判定する。ブロック710において、CNMは、IPアドレスに対応する、宛て先VM MACアドレス及び宛て先仮想スイッチMACアドレスを判定する。例えば、CNMは、ARPリクエスト内のIPアドレスに基づいて、CNMのアドレスマッピングテーブルからマッピングをルックアップすることができる。ブロック715において、CNMは、宛て先仮想スイッチMACアドレスに対応する宛て先MPLSラベルを判定する。ブロック720において、CNMは、ソースVMを実行している仮想サーバ上の仮想スイッチへフローエントリ修正メッセージを送信する。当該エントリ修正メッセージは、ソースVM MACアドレス及び宛て先VM IPアドレスに適合するパケットに、まずテナントidラベルがプッシュされ、次に宛て先MPLSラベルがプッシュされ、そして当該パケットがソース仮想スイッチについてのTORSへと転送されるべきであることを示す。ブロック725において、CNMは、宛て先VM MACアドレスが宛て先IPアドレスに対応していることを示すARPリプライを生成する。CNMは、ブロック730において、ARPリプライをソースVMへ転送する。なお、宛て先VMがパケットのソースであることから、CNMは、厳密に同じルールを、宛て先VMのMACアドレス及びソースVMのIPアドレスと共に、宛て先VS内にインストールする。
図8は、本発明の1つの実施形態に従って仮想マシンからのARPリクエストを傍受するための方法を示している。図8において、仮想化されたサーバ815Aは、ハイパーバイザ816A及び仮想スイッチ817Aを含む。図8において、仮想化されたサーバ815Aは、アクティブなVM T3 890Cを有する。仮想スイッチ817Aは、VM T3 890CからのARPリクエストをCNM860へ転送するためのルールを含むフローエントリテーブル818Aを含む。仮想化されたサーバ816Aは、TORS801と連結され、TORS801は、クラウドネットワーク870を通じて他のTORS801Cへ連結される。TORS801Cは、ハイパーバイザ826B及び仮想スイッチ827Bを含む、仮想化されたサーバ825Bと連結される。仮想化されたサーバ825Bは、VM T4 895Bを実行している。
この図は、VM T3 890CからのARPリクエストの傍受の期間中における、様々なポイントを描いている。ポイントAにおいて、VM T3 890Cは、ARPリクエストをブロードキャストする。傍受の残りの部分は、ARPリクエストが、仮想サーバ825B上に所在する宛て先VM T4 895BのIPアドレスを示すことを前提とする。仮想スイッチ817Aは、ポイントBにおいて、ARPリクエストを傍受して、当該リクエストを、フローエントリテーブル818A内の、ARPリクエストをCNM260へルーティングするためのルールと照合する。
ポイントCにおいて、CNM860は、要求された宛て先IPアドレス(“DIP”)をキーとして使用して、CNMのアドレスマッピングテーブル262内で宛て先MACアドレス(“DMAC”)をルックアップする。DIPが存在しない場合、その宛て先は、クラウド内に存在せず、CNMは、ARPリクエストに応答しない。その場合、VMは、提供されたローカルルータのMACアドレスを使用することになる。DIPアドレスがCNMのアドレスマッピングテーブル862内に存在する場合、CNM860は、DMAC VMアドレス及びDMAC仮想化されたサーバアドレスを取り出す。このケースにおいて、CNMは、VM T4 895BのMACをDMAC VMアドレスとして、及び、仮想スイッチ827B MACをDMAC仮想化されたサーバアドレスとして取り出すであろう。
ポイントDにおいて、CNMは、宛て先TORS(“DTORS”)リンクラベルとしても知られる、CNMのラベルマッピングテーブル864からの、宛て先TORSと、DMAC仮想化されたサーバアドレスとの間のリンクについてのMPLSフローラベルをルックアップする。このフローラベルは、TORS801Aと、DMAC仮想化されたサーバでの仮想化されたサーバとの間のルートを記述する。このケースでは、TORS801AからTORS801Cへのルートを示すために、ラベルTORS:VS201C:827B LLが取り出されるであろう。
ポイントEにおいて、CNM860は、仮想スイッチの817Aのフローエントリテーブル818A内にフロールートをインストールする。ルールは、VM T4 895BについてのDMAC VM アドレスに適合する。アクションは、VM T3 890CによりVM T4 895Bへ送信されるトラフィックパケット上にDTORSリンクラベルTORS:VS801C:827B LLをプッシュし、次いで、当該パケットをTORS801Aへ転送する。ポイントFにおいて、CNM860は、ARPリプライを仮想スイッチ817Aに返し、仮想スイッチ817Aは、当該リプライをVM T3 890Cへ転送する。
1つの実施形態において、CNM860は、VMへのARPリプライの返却に先立って、VS−TORSルール及びアクションを、TORS801のフローエントリテーブル(図示せず)内にインストールする。クラウドネットワーク870がMPLSネットワークである場合、ARPリプライが返されたときには、クラウドネットワーク870のスイッチファブリック内のTORS間のLSPについてのルールは、インストールされる必要がない。クラウドネットワーク870のスイッチが追加的にOpenFlowをサポートする場合、CNM860は、新たなTORSがインストールされるか、又は既存のTORSがデコミッションされた時にOpenFlowを使用する、より高レベルのクラウドネットワーク870のスイッチ内に、MPLS転送ルールをインストールするだけでよい。それらルールは、TORSと同じラック内のサーバへのリンク上のTORS−VSラベルを認識し、ラベルにより識別されるリンクを有するパケットをサーバへと転送する。それらルールは、ラックがブートアップされる際に、OpenFlowテーブル2へとインストールされる。しかしながら、より高レベルのデータセンタスイッチがOpenFlowをサポートしない場合、TORSは、その代りにLDP(label distribution protocol)を使用して、自身と他のTORSとの間のLSPをセットアップし、そうするとLSPが構成されるはずである。クラウドネットワーク870のスイッチは、IPルーティングプロトコルをサポートする必要も、ルーティングを実行する必要もない。
テーブル1は、本発明の実施形態に係る、宛て先TORSへルーティング中のトラフィック、即ちアウトゴーイングトラフィック及びカレントラック内に宛て先サーバがあるトラフィック、を扱うフローテーブルの一部について、TORSのOpenFlowフローテーブルのルール構造を示している。インカミングトラフィックについてのルール構造は、後でさらに解説される。ラック内のソースVMにより宛て先としてその時点で使用されている、DTORS(宛て先TORS)−DVS(宛て先の仮想化されたサーバ)リンクラベルの各々について、テーブル内にフロールールが存在する。TORSは、VMの移動時にインカミングトラフィックを捕捉するためのいくつかのフロールールを追加的にキャッシュしてもよい。ラック内のソースVMから来るトラフィックは、仮想スイッチによりプッシュされたMPLS DTORSリンクラベルに適合することによりルーティングされ、当該ルールに関連付けられるアクションがアクティブ化されてパケットに適用される。アクションは、クラウドネットワークの性質に依存して異なる。
Figure 2016504820
クラウドネットワークがMPLSネットワークではない場合、TORSは、OpenFlow仮想ポートを通じて、トラフィックをクラウドネットワークに適応させる。フローマッチングルール上のアクションに関連付けられる仮想ポートは、パケットを処理し、当該パケットをクラウドネットワーク内へルーティングするために必要な何らかのヘッダを追加する。例えば、ネットワークが光回線交換ネットワークである場合、仮想ポートは、光クロスコネクトを通じてパケットをルーティングしてもよい。当業者は、他のタイプのクラウドネットワークは他の適応仮想ポートを利用することになると理解するであろう。
しかしながら、クラウドネットワークがMPLSネットワークである場合、(OpenFlowテーブル1に対応する)テーブル2において、例示的なアクションが示されている。各アクションは、STORSからDTORSへのルーティングラベルをプッシュし、次いでパケットをOpenFlow SELECTグループへ送信する。SELECTグループは、等コストマルチキャスト(ECMP)又は何らかの他の負荷分散アルゴリズムを使用して、出力ポートバケットリストから1つの出力ポートバケットを選択し、パケットを出力ポートへ転送する。負荷分散は、輻輳を回避することを助け、2つのTORS間の全てのルートのマルチパス利用を促進する。
Figure 2016504820
パケットは、宛て先TORSへ一旦到着すると、(OpenFlowテーブル1に対応する)テーブル3及び(OpenFlowテーブル2に対応する)テーブル4に示されるようなOpenFlowフローテーブルを通じてルーティングされる。パケットが宛て先TORSにおいて“LABEL−N”というラベルを有するものと想定すると、ルールは、パケットがこのTORS宛てであることを示すDTORSルーティングラベル“LABEL−N”に適合する。アクションは、DTORSルーティングラベルをポップし、処理のためにパケットをテーブル4へ送出する。テーブル4のルールは、パケットがどの仮想化されたサーバ宛てであるのかを示す、ラック内のサーバについてのVS−TORSラベルに適合する。アクションは、パケットを、当該仮想化されたサーバに到達するための適切なポートから転送する。
Figure 2016504820
Figure 2016504820
仮想スイッチ827Bにおいて、VM T4 827Bの MACアドレスと、テナントラベルと、VS−TORSルーティングラベルとに適合するルールがトリガされる。VS−TORSルーティングラベル及びテナントラベルはポップされ、パケットは、VM T4 827Bへ転送される。
クラウドネットワーキングの最も困難な局面のうちの1つは、VMの、第1の仮想化されたサーバから第2の仮想化されたサーバへの移動を扱うことである。CEMは、VMを1つのサーバから他のサーバへといつでも移動させることができる。移動は、サーバ利用率を最適化するため、電力消費若しくは発熱を低減するため、又は、データベースといった外部リソースへのアクセスへより近いアクセスを有するようにVMを位置させるために、行われ得る。そうした移動が生じる場合、古いサーバにおけるVMへのルートは、もはや有効ではない。VMを移動させている間の“転送中(in flight)”のパケットは、破棄される恐れがあり、新たなパケットは、ルートを整備する方策が取られない限り、VMの新たなロケーションへ到達しないかもしれない。
図9は、クラウドコンピューティングネットワーク内において第1の仮想化されたサーバから第2の仮想化されたサーバへとVMを移動させる方法を示している。図9において、第1の仮想化されたサーバ915A(古い仮想化されたサーバとも称される)は、クラウドネットワーク970へ連結されるTORS901Aと連結される。クラウドネットワーク970は、TORS901Aを他のTORS901Cと連結し、TORS901Cは、第2の仮想化されたサーバ925A(新たな仮想化されたサーバとも称される)へ連結される。
各仮想化されたサーバ915A及び925Aは、複数のVMを稼働させ、対応するハイパーバイザ916A及び926A、並びにMPLS対応型仮想スイッチ917A及び927Aを含む、ように構成される。各仮想スイッチ917A及び927Aは、対応する仮想スイッチがそれ自体が受信するパケットをいかに処理すべきかを示すためのMPLSルール群を含むフローエントリテーブル918A及び928Aを含む。VMの移動のために使用される固有のエントリについて、以下に詳細に議論する。図9の例示に先立ち、古い仮想化されたサーバ915Aは、3つのアクティブなVM、即ち、VM Tl 990A、VM T2 990B、及びVM T3 990Cを有する。図9は、管理ネットワーク975を通じてCNM960と連結されるCEM950をさらに例示する。管理ネットワークは、CEM950及びCNM960をTORS915A及び925Aとさらに連結し、それにより、仮想化されたサーバ915A及び925Aへの通信パスを提供する。
この図は、古い仮想化されたサーバ915Aから新たな仮想化されたサーバ925Aへの、VM T3 990Cの移動の期間中における様々なポイントを描いている。古い仮想化されたサーバ及び新たな仮想化されたサーバという用語は、移動に先立ってVM T3 990Cが古い仮想化されたサーバにおいてアクティブであったこと、及び、移動の後にVM T3 990Cが新たな仮想化されたサーバ925Aにおいてアクティブになるであろうことを反映している。
ポイントAにおいて、CEM950は、古い仮想化されたサーバ915Aから新たな仮想化されたサーバ925AへのVM T3 990Cの移動を開始させる。ポイントAにおいて、CEM950から古い仮想化されたサーバ915Aへ送信されているメッセージは、9 T3 990Cの移動が開始されようとしていることを示す。VM T3 990Cが古い仮想化されたサーバ915A上においてアクティブである限り、VM T3 990Cは、トラフィックに引き続きサービスすることができ、フローエントリテーブル918A内では古いフロールールが維持される。ハイパーバイザ916Aは、VM T3 990Cのステート情報を保存すること、及び、VM T3 990Cがスタンバイステート又は非アクティブステートに入るように指示することにより、VM T3 990Cが新たな仮想化されたサーバ925Aへ移行するように準備する。ポイントBにおいて、VM T3 990Cのステート情報は、古い仮想化されたサーバ915Aから新たな仮想化されたサーバ925Aへ移行される。
VM T3 990Cの非アクティブ化の期間中における何らかのポイント、ポイントCにおいて、CEM950は、VM T3 990Cがトラフィックにもはやサービスできないことを決定する。この時、CEM950は、VM T3 990Cが移動されているが故にその時点でトラフィックにサービスできないことを、CNM960へ通知する。このメッセージに反応して、CNM960は、仮想スイッチ917Aのフローエントリテーブル918A内のルールを修正する。よって、ポイントDにおいて、CNM960は、宛て先MACとしてのVM T3 990CのMACアドレスに適合し、仮想化されたサーバ915AをTORS901AとリンクするMPLSラベルを伴うトラフィックが、CNM960へ(又は何らかの他のエンティティへ)転送されるべきであることを示すルールをフローエントリテーブル918A内にインストールする。CNM960、又はオプションとして何らかの他のエンティティは、VM T3 990Cへ向けての古い仮想化されたサーバ915Aへ方向付けられたトラフィックをいかに扱うべきかを、知能部(intelligence)へ提供するであろう。
1つの実施形態において、CNM960、又は、この目的のために設計された何らかの他のエンティティは、移行ピリオドの期間中にVM T3 990C向けのパケットを記憶するために使用されるパケットバッファ966を含む。このようにして、パケットバッファ966内の、VM T3 990向けのパケットは、VM T3 990が新たな仮想化されたサーバ925Aにおいて一旦アクティブになると、VM T3 990へ送信されることが可能である。
1つの実施形態において、VM T3 990が、新たな仮想化されたサーバ925Aにおいてデータにサービスする準備が整うと、CEM950は、ポイントEにおいて、VM T3 990が再度アクティブになったことをCNM960へ通知する。他の実施形態において、CNM960は、VM T3 990が再度アクティブ化された後にVM T3 990から発せられる(ARPリクエストなどの)パケットを当該CNM960が受信したが故に、VM T3 990がアクティブになっていることを検出することができる。CNM960は、フローエントリテーブル928Aを修正することにより、VM T3 990がデータにサービスする準備が整っていることに反応する。
ポイントFにおいて、CNM960は、1つ以上のエントリをフローエントリテーブル928Aに追加する。CNM960は、宛て先MACとしてのVM T3 990CのMACアドレスに適合すると共に、仮想化されたサーバ925AをTORS901CとリンクするMPLSラベル、及びテナントidラベルに適合するフロールールを、フローエントリテーブル928Aに追加する。このルールは、適合するパケットが双方のMPLSラベルをポップされてVM T3 990Cへ転送されるべきであることを、仮想スイッチ927Aへ知らせる。本発明の他の実施形態は、追加的なルールをサポートする。例えば、1つの実施形態は、テナントがそのIPアドレスを取得するためにDHCPを使用する場合に、VM T3 990Cから発せられるDHCPパケットがCNM960へ転送されるべきであることを示すルールを追加する。他の実施形態は、VM T3 990Cから発せられるARPリクエストがCNM960へ転送されるべきであることを示すルールを追加する。
ポイントGにおいて、CNM960(又は、古い仮想化されたサーバから新たな仮想化されたサーバへのVMの移行の期間中にパケットをバッファリングするように設計された何らかの他のエンティティ)は、VM T3 990C宛ての累積されたパケットを、仮想化されたサーバ925Aへ転送し、それにより、それらパケットはVM T3 990Cへデリバリされ得る。
ポイントHにおいて、CNM960は、CNM960のアドレスマッピングテーブルを修正して、VM T3 990Cについての仮想化されたサーバのMACアドレスのエントリを、宛て先である新たな仮想化されたサーバ925のMACアドレスへと変更する。それら変更の後に、図7に従ったVM T3 990Cについてのいかなる新たなARPリクエストも、ソース仮想スイッチでのフローエントリにて、トラフィックが925Aへとルーティングされるべきであることを示す結果となる。
1つの実施形態において、CNM960は、VM T3 990Cとの間でトラフィックを依然として交換しているかもしれない任意のピアVMのために、古い仮想化されたサーバ915Aの仮想スイッチ917A上の所定の位置にフロールールを保持しており、なぜなら、それらピアVMは古い仮想化されたサーバ915A上でVM T3 990Cがアクティブであることを依然として期待するかもしれないためである。そうしたピアVMがピアデータパケットをVM T3 990Cへ送信することになる場合、当該ピアデータパケットは、ポイントDにおいてインストールされたルールに従って、CNM960へ転送されるであろう。CNM960は、次いで、ピアVMの仮想化されたサーバ上におけるフロールールを、パケット上のMAC及びIPアドレスを使用してVM T3 990Cの位置を特定することで新たな仮想化されたサーバ925A上のVM T3 990Cへトラフィックを転送するように修正する。CNM960は、ピアデータパケットを、新たな仮想化されたサーバ925A上のVM T3 990Cへ転送する。このようにして、全てのフロールールは、究極的には、タイムアウトになるか、又は、新たな仮想化されたサーバ925A上のVM T3 990Cへトラフィックを送信するように修正されるか、のいずれかである。1つの実施形態では、TORSフローテーブルは、古いTORS−VSリンクラベルを除去して新たなVSへのTORS−VSリンクラベルをインストールするための変更をも要し得る。CNMは、ソース仮想スイッチのフロールール及びTORSルールが予め定義されたグレースピリオドの後にタイムアウトになることを可能とすることができる。
図10は、本発明の実施形態に係る例示的なコンピュータシステムのブロック図を示している。図10の例示的なコンピュータシステム1000は、図1〜9及び11〜22において説明したようなTORS、仮想化されたサーバ、CEM又はCNMを実装するために使用されることが可能である。当業者は、これらデバイスを実装するために使用される他のコンピュータシステムが、より多くの又はより少ないコンポーネントを有してよいこと、及び、本発明の実施形態において使用されてよいことを認識するであろう。
コンピュータシステム1000は、処理システム1015、電源1020、揮発性メモリ1025(例えば、ダブルデータレートランダムアクセスメモリ(DDR−RAM)、シングルデータレート(SDR)RAM)、不揮発性メモリ1030(例えば、ハードドライブ、フラッシュメモリ、相変化メモリ(PCM)と連結されるバス1050を含む。処理システム1015は、処理システムキャッシュ1010へさらに連結され得る。処理システム1015は、揮発性メモリ1025及び/又は不揮発性メモリ1030から命令を取り出して、当該命令を実行して上記の動作を実行し得る。バス1050は、上記のコンポーネントを共に連結し、ディスプレイコントローラ1070、1つ以上の入力/出力デバイス1080(例えば、ネットワークインタフェースカード、カーソルコントロール(例えば、マウス、トラックボール、タッチスクリーン、タッチパッドなど)、キーボードなど)、及びオプションとして1つ以上の無線送受信機(例えば、ブルートゥース、WiFi、赤外線など)をさらに連結する。1つの実施形態において、ディスプレイコントローラ1070は、ディスプレイデバイス1075へさらに連結される。
さらなる実施形態において、CNMは、テナントidと、TORSラベルと、VM及びサーバのMAC及びIPアドレスとの間のマッピングを維持するために使用する追加的なデータベースを有する。CNMは、それらデータベースを使用して、テナントVMの間で送信されるパケットへ付与されるテナント固有ラベルを生成する。それらデータベースへのアクセスは、OpenFlowスイッチ上のインストール又はアンインストールに先立って実行される。
図11は、CNMにより維持される追加的なデータベースを示している。CNMは、テナントID−テナントラベル(TITLテーブル)を使用し、テナントIDをキーとして用いてテナントラベルをルックアップする。CNMは、TORSラベル−VSリンクラベルテーブル(TLVLLテーブル)を使用し、TORSラベルをキーとして用いてVSリンクラベルをルックアップする。CNMは、CNMマッピングテーブル(CNMテーブル)を使用して、テナントidと、テナントVMのMAC及びIPアドレスと、サーバMACアドレスとの間のマッピングを維持する。テナントごとに1つのCNMマッピングテーブルが存在する。
テナントIDは、テナント固有データを、同じクラウド基盤を使用する他のテナントとは別に保持することで隔離する。この隔離を達成するために、転送エントリとしてテナントラベルが追加される。テナントIDを有するテナントラベルの使用は、テナント固有トラフィックをそれらそれぞれのVMへ分離し及び隔離する。それにも関わらず、このさらなる実施形態では、異なるテナントに属するVMが同じネットワーク(IP/MAC)アドレスを有することができる。
図11において見られるように、テナントデータベースは、CNMアドレスマッピングテーブルへテナントID情報を追加するために使用される。テナントデータベースは、テナントに固有の詳細を記憶するために使用され、テナントIDをキーとして有する。テナントデータベースは、CNMアドレスマッピングテーブルへのポインタを保持する。本実施形態では、CNMは、まず、他の全てのCNMアドレスマッピングテーブルのルックアップを実行する前に、テナント固有のアドレスマッピングテーブルを見つけ出すためのルックアップをテナントデータベースに対して実行する。一旦テナント固有のアドレスマッピングテーブルを見つけ出すと、上で説明した追加的なステップ群が遂行される。
図12は、クラウドネットワークマネージャ(CNM)を用いてテナント固有データを隔離するための方法を示している。ブロック1205において、CNMは、複数のデータベース又はテーブル内の複数のアイテムの間のマッピングを維持する。当該複数のデータベース又はテーブルは、テナントデータベース(DB)と、テナント識別子−テナントラベル(TITL)テーブルと、TORS(top of rack server)ラベル−仮想スイッチリンクラベル(TLVLL)テーブルと、ラベルマッピングテーブル(SMVL)と、CNMアドレスマッピングテーブルとを含む。ブロック1210において、CNMは、上記複数のデータベースを用いて、テナントの仮想マシン(VM)間で送信されるパケットへ付与されるテナント固有ラベルを生成する。1つの実施形態では、OpenFlowスイッチ上のインストール又はアンインストールに先立ってデータベースアクセスが実行される。
CNMは、テナントIDをキーとして用いてテナントラベルをルックアップするためにTITLテーブルを用いる。CNMは、TORS(top of rack server)ラベルをキーとして用いて仮想スイッチ(VS)リンクラベルをルックアップするためにTLVLLテーブルを用いる。
CNMは、テナントID、テナントVMメディアアクセス制御(MAC)アドレス、テナントVMインターネットプロトコル(IP)アドレス及びサーバMACアドレスの間のマッピングを維持するために、CNMアドレスマッピングテーブルを用いる。テナントごとに1つのCNMアドレスマッピングテーブルが存在する。
テナントラベルを転送エントリとして追加することにより、テナント固有データが隔離される。テナントIDを有するテナントラベルの使用が、テナント固有トラフィックをそれぞれのVMへと分離し及び隔離する。1つの実施形態では、異なるテナントへ属する複数のVMが同じインターネットプロトコルアドレス及びメディアアクセス制御アドレスを有する
テナントDBは、CNMアドレスマッピングテーブルへのポインタを保持する。CNMは、他の全てのCNMアドレスマッピングテーブルのルックアップを実行する前に、まずテナントDBでのルックアップを実行して、テナント固有のアドレスマッピングテーブルを見出す。
図13は、テナントごとに仮想マシンをアクティブ化するための方法のブロック図を示している。ブロック1305において、CNMにより、VMが仮想化されたサーバ上でのアクティブ化のためにスケジューリングされるという通知が受信される。例えば、CEMがアクティブ化のためにVMをスケジューリングしたことを、CEMがCNMへ通知する。ブロック1310において、CNMは、VM MACアドレスを判定する。ブロック1315において、CNMは、VMがアクティブ化されることになる仮想化されたサーバ上に所在する仮想スイッチ(VS)に対応する、仮想スイッチのMACアドレスを判定する。ブロック1320において、CNMは、CEMから、テナントID、テナントMAC及びサーバMACを含むメッセージを受信する。ブロック1325において、CNMは、(VS MACアドレスをVS−TORSラベルへ関連付けるラベルマッピングテーブルである)SMVLテーブル及びTITLテーブルにおいてルックアップを実行する。CNMは、SMVLテーブル内でVSからTORSへのリンクラベルを見出す。CNMは、TITLテーブルにおいてテナントラベルを見出す。ブロック1330において、CNMは、CNMマッピングテーブル内に、テナントID、VM MACアドレス及びVS MACアドレスの間の関連付けを記録する。
ブロック1335において、CNMは、MPLSラベル、VM MACアドレス及びテナント固有ラベルに適合するデータパケットがそのVMへ転送されるべきであることを示すフローエントリ修正メッセージを、当該VSへ送信する。言い換えれば、(宛て先スイッチにおいて)第1のMPLSラベルがVS−TORSリンクラベルに適合し、第2のMPLSラベルがテナント固有ラベルに適合し、及びMACがテナントVM MACアドレスに適合する場合、それらMPLSラベルがポップされて、テナントVMへの転送が行われる。このルールは、パケットが適切なMACアドレスを有する場合に、VS−TORSリンク上へ到来するVSへのトラフィックがテナントVMへ転送されることを保証する。
1つの実施形態では、ブロック1340において、CNMは、VMから発せられるDHCPリクエストがCNMへ転送されるべきであることを示すフローエントリ修正メッセージを、VSへ送信する。パケットのソースMACがテナント固有MACに適合し、宛て先ポート番号がDHCPポート番号に適合する場合、リクエストは、CNMへ転送される。このルールは、CNMが応答としてルーティングの修正を行い得るようにアドレスルックアップ及び構成のそれぞれに割り込むことを可能とする。1つの実施形態では、DHCPは、BOOTPと同じポート番号を使用し、そのためこれはBOOTPプロトコルのポート番号となる。
1つの実施形態では、ブロック1345において、CNMは、VMから発せられるARPリクエストがCNMへ転送されるべきであることを示すフローエントリ修正メッセージを、VSへ送信する。パケットのソースMACがテナント固有MACに適合し、イーサタイプがARPに適合する場合、リクエストは、CNMへ転送される。このルールは、CNMが応答としてルーティングの修正を行い得るようにアドレスルックアップ及び構成のそれぞれに割り込むことを可能とする。
図14は、1つの実施形態に従って仮想マシンをアクティブ化するための方法を示している。図14において、TORS1401Aは、仮想化されたサーバ1415Aへ連結されている。仮想化されたサーバ1415Aは、ハイパーバイザ1416A及び仮想スイッチ1417Aを含む。図14では、仮想化されたサーバ1415Aは、2つのアクティブなVM T1 1490A及びVM T2 1490Bを有する。さらに、図14は、CEM1450、仮想ディスク1455、及びCNM1460を示す。
図14において、CEM1450は、仮想化されたサーバ1415A上での実行のために、第3のVM T3 1490Cをスケジューリングする。この図は、仮想マシンのアクティブ化の期間中における様々なポイントを描いている。ポイントAにおいて、CEM1450は、VM T3 1490C、例えば、テナント3に属するVMを、実行のためにスケジューリングする。オブジェクトファイルは、仮想ディスク1455からCEMのオブジェクトマネージャを通じてマッピングされる。CEMは、テナント3に割り当てられたMACアドレスのうちの1つにVM1490CのMACアドレスを設定するように、VM1490Cのスタックを編集する。ポイントBにおいて、CEM1450は、CNM1460にアクティブ化について知らせる。CEM1450は、VM1490CのMACアドレスと、VMを実行している、仮想化されたサーバ1415AのMACアドレス(これは、仮想化されたサーバ1415Aの仮想スイッチ1417AのMACアドレスである)と、テナントの識別子とを、CNM1460へ提供する。
ポイントCにおいて、VM、即ちVM1490Cが仮想化されたサーバ1415A上でアクティブ化のためにスケジューリングされるという通知が、CNM1460により受信される。例えば、CEM1450がアクティブ化のためにVM1490Cをスケジューリングしたことを、CEM1450がCNM1460へ通知する。ポイントDにおいて、CNM1460は、VM1490CのMACアドレスを判定する。ポイントEにおいて、CNMは、VM1490Cがアクティブ化されることになる仮想化されたサーバ1415A上に所在する仮想スイッチ(VS)1417Aに対応する、仮想スイッチのMACアドレスを判定する。ポイントFにおいて、CNM1460は、CEM1450から、テナントID、テナントMAC及びサーバMACを含むメッセージを受信する。ポイントGにおいて、CNMは、SMVLテーブル1464及びTITLテーブル1424においてルックアップを実行する。CNMは、SMVLテーブル1464内でVSからTORSへのリンクラベルを見出す。CNMは、TITLテーブル1424においてテナントラベルを見出す。ポイントHにおいて、CNM1460は、CNMマッピングテーブル1434内に、テナントID、VM MACアドレス及びVS MACアドレスの間の関連付けを記録する。
ポイントIにおいて、CNMは、MPLSラベル、VM MACアドレス及びテナント固有ラベルに適合するデータパケットがそのVMへ転送されるべきであることを示すフローエントリ修正メッセージを、VS1417Aへ送信する。言い換えれば、第1のMPLSラベルがVS−TORSリンクラベルに適合し、第2のMPLSラベルがテナント固有ラベルに適合し、及びMACがテナントVM MACアドレスに適合する場合、それらMPLSラベルがポップされて、テナントVMへの転送が行われる。このルールは、パケットが適切なMACアドレスを有する場合に、VS−TORSリンク上へ到来するVSへのトラフィックがテナントVMへ転送されることを保証する。
1つの実施形態において、CNM1460は、ポイントJにおいて、VM1490Cから発せられるDHCPリクエストがCNM1460へ転送されるべきであることを示す第2のフローエントリ修正メッセージを、VS1417Aへ送信する。パケットのソースMACがVM1490Cについてのテナント固有MACに適合し、宛て先ポート番号がDHCPポート番号に適合する場合、リクエストは、CNM1460へ転送される。このルールは、CNMが応答としてルーティングの修正を行い得るようにアドレスルックアップ及び構成のそれぞれに割り込むことを可能とする。1つの実施形態では、DHCPは、BOOTPと同じポート番号を使用し、そのためこれはBOOTPプロトコルのポート番号となる。
1つの実施形態では、CNMは、ポイントKにおいて、VM1490Cから発せられるARPリクエストがCNM1460へ転送されるべきであることを示す第3のフローエントリ修正メッセージを、VS1417Aへ送信する。パケットのソースMACがVM1490Cについてのテナント固有MACに適合し、イーサタイプがARPに適合する場合、リクエストは、CNM1460へ転送される。このルールは、CNMが応答としてルーティングの修正を行い得るようにアドレスルックアップ及び構成のそれぞれに割り込むことを可能とする。
図14は、これまでに説明した全ての3つのフローエントリ修正メッセージが通信されたということを前提として、仮想スイッチ1417Aのフローエントリテーブル1418A内の3つのエントリを例示する。フローエントリテーブル1418Aには、6つの列、即ち、ソースMAC、宛て先MAC、MPLSラベル、テナント固有ラベル、IPプロトコル、及びアクション、が例示されている。それらフローエントリは、1490Cのアクティブ化に対応する。
図示したフローエントリテーブル1418A内の第1のエントリは、ソースMACアドレスとしてVM T3 1490CのMACアドレスに適合する。宛て先MACアドレス及びMPLSラベルは、いかなるエントリにも適合するように設定され、その一方で、テナント固有ラベルはラベルtid3に適合するに設定され、IPプロトコルはARPプロトコルに適合するように設定される。アクションは、次いでCNM1460へ転送することである。このルールは、上記のステップKに対応する。
図示したフローエントリテーブル1418A内の第2のエントリは、ソースMACアドレスとしてVM T3 1490CのMACアドレスに適合する。宛て先MACアドレス及びMPLSラベルはいかなるエントリにも適合するように設定され、その一方で、テナント固有ラベルはラベルtid3に適合するに設定され、IPプロトコルはDHCPプロトコルに適合するように設定される。アクションは、次いでCNM1460へ転送することである。このルールは、上記のステップJに対応する。
図示したフローエントリテーブル1418A内の第3のエントリは、宛て先MACアドレスとして全てのMACに適合する。宛て先MACアドレスは、VM T3 1490CのMACアドレスに適合するように設定され、その一方で、1つのMPLSラベルはVS−TORS1401のリンクラベルに設定され、1つはテナントラベルMAC VM T3に設定され、第3のラベルであるテナント固有ラベルはラベルtid3に設定される。IPプロトコルは、全てのエントリに適合するように設定される。アクションは、次いでMPLSラベル及びテナント固有ラベルをポップしてパケットをVM T3 1490Cへ転送することである。このルールは、上記のステップIに対応する。
上で説明したように、CNMは、テナントID、VM MACアドレス、仮想化されたサーバのMAC、及びVM IPアドレスの間のマッピングを維持する。テナントがDHCPアドレスを使用しないことを選んだ場合、CEMは、スケジューリングの実行に先立ってVMのIPスタックを修正し、静的なIPアドレスをインストールする。しかしながら、他の実施形態において、テナントは、DHCPアドレスを使用することを選ぶであろう。そうしたケースにおいて、CNMは、DHCPリクエストを傍受してリレーとして動作するであろう。
図15は、1つの実施形態に従ってテナントVMからのDHCPリクエストを傍受するための方法のブロック図を示している。DHCPメッセージは、テナントVMにより送信される。このDHCPメッセージは、仮想スイッチにより傍受され、仮想スイッチからCNMへと転送される。ブロック1505において、CNMは、テナントVMから発せられたDHCPリクエストを仮想スイッチから受信する。CNMは、ブロック1510において、DHCPサーバ又はDHCPリレーとして動作することによりVMのアドレスを見出す。CNMは、ブロックにおいて、RFC3046に従ってDHCPサーバへDHCPリクエストを中継する。CNMは、DHCPサーバからDHCPリプライを受信する。ブロック1515において、CNMは、CNMマッピングテーブル内に、VMのアドレスを記録する。また、CNMは、テナントVMのMACアドレスと、DHCPリプライ内で受信されたIPアドレスとの間の関連付けを記録する。ある実施形態によれば、当該関連付けは、テナントVMを実行する仮想サーバのMACアドレスをさらに含む。ブロック1520において、CNMは、DHCPリプライをVMへ転送する。
図16は、本発明の1つの実施形態に従って仮想マシンからのDHCPリクエストを傍受するための方法を示している。図6において、仮想化されたサーバ1615Aは、ハイパーバイザ1616A及び仮想スイッチ1617Aを含む。図16において、仮想化されたサーバ1615Aは、3つのアクティブなVM Tl 1690A、VM T2 1690B、及びVM T3 1690Cを有する。仮想スイッチ1617Aは、VM T3 1690CからのDHCPリクエストを、DHCPサーバ1630に連結されるCNM660へ転送するためのルールを含むフローエントリテーブル1618Aを含む。
この図は、仮想マシンからのDHCPリクエストの傍受の期間中における、様々なポイントを描いている。ポイントAにおいて、VM T3 1690Cは、IPアドレス、及び、DNSサーバといった他の構成情報を取得するためのDHCPリクエストを発行する。ポイントBにおいて、仮想スイッチ1617Aは、例えばメッセージのようなDHCPリクエストを、当該リクエストをCNM1660へルーティングするためのフロールールに照合する。
ポイントCにおいて、CNMは、DHCPサーバ又はDHCPリレーとして動作することにより、VMのアドレスを見出す。1つの実施形態において、CNM1660は、DHCPリレーとして動作し、標準的なDHCPリレーオプションを挿入し、リクエストをテナントのDHCPサーバ1630へ転送する。CNM1660は、DHCPリクエストのソースMACアドレスを調査することにより、どのテナントにVM T3 1690Cが属しているのかを判定することができる。
ポイントDにおいて、テナントのDHCPサーバ1630は、VM T3 1690CについてのIPアドレス及び他の構成情報を包含するDHCPリプライで応答する。ポイントEにおいて、CNM1660は、CNMのアドレスマッピングテーブル1634内に、VM T3 1690CのMACアドレスとIPアドレスとの間のマッピングを記録する。
CNMは、上記アドレスを包含するDHCPリプライでVMへ返答する。1つの実施形態では、ポイントFにおいて、CNM1660は、DHCPリレーオプションを取り除き、DHCPリプライを仮想スイッチ1617Aへ転送し、仮想スイッチ1617Aは、ポイントGにおいて、当該リクエストをVM T3 1690Cへ返送する。
図17は、本発明の1つの実施形態に従って、(特定のラベルにより識別される)特定のテナントが宛て先IPアドレスを発見しようと試みる際にVMからのARPリクエストを傍受するための方法のブロック図を示している。ブロック705において、CNMは、VMから発せられたARPリクエストを受信する。テナントは、宛て先IPアドレスと共にARPリクエストを送出する。仮想スイッチは、ARPリクエストを傍受し、コントローラ上で稼働しているCNMへ当該ARPリクエストを送信する。CNMは、ブロック710において、特定のテナントについてのCNMマッピングテーブルをルックアップし、宛て先VMが稼動しているサーバの宛て先MACアドレスを抽出する。ブロック715において、CNMは、宛て先サーバMACアドレスを用いて、宛て先VSリンクラベルを判定する。CNMは、VSリンクラベルを判定する目的で、SMVLテーブルを使用する。ブロック1720において、CNMは、アップリンク及びダウンリンクトラフィックのためのフロールートでソースTORSをプログラミングする。ブロック1725において、CNMは、ソースVMを実行している仮想サーバ上の仮想スイッチへフローエントリ修正メッセージを送信する。当該フローエントリ修正メッセージは、宛て先MACアドレスに適合するパケットが宛て先テナント固有ラベル及び宛て先VS−TORSラベルをプッシュしてソースTORSへパケットを転送すべきであることを示すために、VSへ送信される。ブロック1730において、CNMは、特定のテナントのVMへ、所与の宛て先IPアドレスについての正確なMACアドレスと共にARPリプライを転送する。
図18は、1つの実施形態に従って、(特定のラベルにより識別される)特定のテナントが宛て先IPアドレスを発見しようと試みる際に仮想マシンからのARPリクエストを傍受するための方法を示している。図18において、仮想化されたサーバ1815Aは、ハイパーバイザ1816A及び仮想スイッチ1817Aを含む。図8において、仮想化されたサーバ1815Aは、アクティブなVM T3 1890Cを有する。仮想スイッチ1817Aは、VM T3 1890CからのARPリクエストをCNM1860へ転送するためのルールを含むフローエントリテーブル1818Aを含む。仮想化されたサーバ1816Aは、TORS1801Aと連結され、TORS1801Aは、クラウドネットワーク1870を通じて他のTORS1801Cへ連結される。TORS1801Cは、ハイパーバイザ1826B及び仮想スイッチ1827Bを含む、仮想化されたサーバ1825Bと連結される。仮想化されたサーバ1825Bは、VM T4 1895Bを実行している。
この図は、VM T3 1890CからのARPリクエストの傍受の期間中における、様々なポイントを描いている。ポイントAにおいて、VM T3 1890Cは、ARPリクエストをブロードキャストする。傍受の残りの部分は、ARPリクエストが、仮想サーバ1825B上に所在する宛て先VM T4 1895BのIPアドレスを示すことを前提とする。仮想スイッチ1817Aは、ポイントBにおいて、ARPリクエストを傍受し、当該リクエストを、フローエントリテーブル1818A内の、ARPリクエストをCNM1860へルーティングするルールと照合する。
ポイントCにおいて、CNM1860は、要求された宛て先IPアドレス(“DIP”)をキーとして使用して、CNMのアドレスマッピングテーブル1834内で宛て先MACアドレス(“DMAC”)をルックアップする。ポイントDにおいて、CNMは、DMACを所与として、宛て先VSリンクラベルを判定する。CNMは、VSリンクラベルを判定する目的で、SMVLテーブルを使用する。ポイントEにおいて、CNM1860は、アップリンク及びダウンリンクトラフィックのためのフロールートでソースTORS1801Aをプログラミングする。VSリンクラベルは、DMAC仮想化サーバ1825Bにおいて、TORS1801AとVM T4 1895Bとの間のルートを記述する。
ポイントFにおいて、CNM1860は、ソースVM1890Cを実行中の仮想サーバ上の仮想スイッチ1817Aへフローエントリ修正メッセージを送信する。当該フローエントリ修正メッセージは、宛て先MACアドレスに適合するパケットが宛て先テナント固有ラベル及び宛て先VS−TORSラベルをプッシュしてパケットをソースTORS1801Aへ転送すべきであることを示すために、VS1817Aへ送信される。ポイントGにおいて、CNMは、仮想スイッチ1817AへARPリプライを転送し、仮想スイッチ1817Aは、次いで、ポイントHにおいて、所与の宛て先IPアドレスについての正確なMACアドレスと共に、ARPリプライを特定のテナントのVM1890Cへ転送する。
図19は、1つの実施形態に従って、固有のテナントのVMへ向けてトラフィックを転送するためのテナントラベルの使用を示している。固有のテナントのVMは、TORSにより分けられる異なる仮想スイッチに関連付けられる。トラフィックが正確に転送されるように、仮想スイッチ及びTORS上でOpenFlowルールがプログラミングされなければならない。図19は、テナントVM1から同じテナントのVM2へのトラフィックの転送のための方法を例示している。
サーバA上の仮想スイッチ(VS)Aは、複数の転送命令を含むフローエントリテーブル1918Aを有する。VS Aは、ポート1上でサーバAに適合するサーバラベルを有するパケットを受信すると、サーバAラベルをポップし、パケットを、例えばテナント固有ラベルへの照合のために、次のテーブルへ転送する。VS Aは、受信したパケット上のVM1及びMACアドレス(Mac1)に適合する場合、テナント固有ラベルをポップし、ポート2上でVM1へ転送する。VS Aは、ポート2上でMac1及びARP又はDHCPに適合するパケットを受信すると、当該パケットをOFコントローラ1960へ転送する。VS Aは、ポート2及び宛て先Macアドレスについて適合するパケットを受信すると、まずVS2についてのテナント固有ラベルをプッシュし、次いでサーバB用のラベルをプッシュし、そして当該パケットをソースTORSへ転送する。
TORS Aは、複数の転送命令を含むフローエントリテーブル1912Aを有する。TORS Aは、サーバBについて適合するパケットを受信すると、MPLSクラウド1970上でのTORS−TORS転送のために、TORS B用のラベルをプッシュし、当該パケットをポート1上で転送する。TORS Aは、ポート1について適合し及びTORS Aに適合するパケットを受信すると、TORS Aラベルをポップし、次のテーブルへ転送する。当該パケットがサーバAについて適合する場合、TORS Aは、当該パケットをポート2へ転送する。
サーバB上の仮想スイッチ(VS)Bは、複数の転送命令を含むフローエントリテーブル1918Bを有する。VS Bは、ポート1上でサーバBに適合するサーバラベルを有するパケットを受信すると、サーバBラベルをポップし、パケットを、例えばテナント固有ラベルへの照合のために、次のテーブルへ転送する。VS Bは、受信したパケット上のVM2及びMACアドレス(Ma2)に適合する場合、テナント固有ラベルをポップし、ポート2上でVM2へ転送する。VS Bは、ポート2上でMac1及びARP又はDHCPに適合するパケットを受信すると、当該パケットをOFコントローラ1960へ転送する。
TORS Bは、複数の転送命令を含むフローエントリテーブル1912Bを有する。TORS Bは、サーバAについて適合するパケットを受信すると、MPLSクラウド1970上でのTORS−TORS転送のために、TORS A用のラベルをプッシュし、当該パケットをポート1上で転送する。TORS Bは、ポート1について適合し及びTORS Bに適合するラベルを有するパケットを受信すると、TORS Bラベルをポップし、次のテーブルへ転送する。当該パケットがサーバBについて適合する場合、TORS Bは、当該パケットをポート2へ転送する。
図19は、テナントVM1を有する仮想化されたサーバ、サーバAを示している。サーバAは、TORS Aに関連付けられる。仮想化されたサーバ、サーバBは、同じテナントの仮想マシンVM2を有する。サーバBは、TORS Bに関連付けられる。前に議論したように、VM1は、宛て先IPアドレスを発見し及び同じテナントの宛て先仮想マシンVM2へパケットを転送する目的で、ARP、及び例えばCNMといったOpenFlowコントローラ1960を使用することができる。パケットは、MPLSクラウドネットワーク1970上でソースTORSから宛て先TORSへ転送される。
テナントVM1は、パケットをサーバAへ転送する。ソース仮想スイッチAは、フローエントリテーブル1918Aを用いて、ポート及び及び宛て先MACについて照合を行う。ソース仮想スイッチAは、2つのラベル、即ちサーバBラベル及びテナント固有ラベルをプッシュする。1つの実施形態において、テナント固有ラベルがまずプッシュされる。ソース仮想スイッチAは、ついで、パケットをソースTORS Aへ転送する。ソースTORS Aは、パケットを転送する目的で、フローエントリテーブル1912Aに関連付けられるルールを使用する。ソースTORS Aは、サーバBラベル(例えば、サーバBのMACアドレスに関連付けられるVS−TORSラベル)について照合を行い、TORS−TORS転送のためにTORS Bラベルをプッシュする。TORS Aは、(TORS Bラベル、サーバBラベル及びテナント固有ラベルと共に)パケットをMPLSクラウド1970上でTORS Bへ転送する。
宛て先TORS Bは、TORS Bラベル及びポートについて照合を行う。次いで、宛て先TORS Bは、TORS Bラベルをポップし、フローエントリテーブル1912B内のルールに従って、サーバB上に所在する宛て先仮想スイッチBへ送信する。
宛て先仮想スイッチBは、サーバBラベル及びポートについて照合を行い、サーバBラベルをポップする。宛て先仮想スイッチBは、テナント固有ラベルについて照合を行い、パケットを正確な宛て先MACアドレスへ転送する。
図20は、クラウドネットワークマネージャ(CNM)を用いてテナント固有データを隔離するための方法を示している。ブロック2005において、ソース仮想スイッチ(VS)へ、宛て先仮想マシン(VM)へデータパケットを転送する目的でソースVSが当該データパケットへまずテナント固有ラベルをプッシュし次いでVS−TORS(top of rack switch)ラベルをプッシュすべきであることを示す第1のフローエントリ修正メッセージが送信される。ブロック2010において、ソースTORSへ、ソースTORSがVS−TORSラベルに適合するデータパケットを受信した場合にはソースTORSが宛て先TORSラベルをプッシュすべきであることを示す第2のフローエントリ修正メッセージが送信される。ブロック2015において、宛て先TORSへ、宛て先TORSが宛て先TORSラベルに適合するデータパケットを受信した場合には宛て先TORSがTORSラベルをポップしてデータパケットを宛て先VSへと転送すべきであることを示す第3のフローエントリ修正メッセージが送信される。ブロック2020において、宛て先VSへ、宛て先VSがVS−TORSラベル及びテナント固有ラベルに適合するデータパケットを受信した場合には宛て先VSがまずVS−TORSラベルをポップし次いでテナント固有ラベルをポップすべきであることを示す第4のフローエントリ修正メッセージが送信される。
第1のフローエントリ修正メッセージに応じて、ソースVSは、パケットをソースTORSへ転送する。第2のフローエントリ修正メッセージに応じて、ソースTORSは、クラウドネットワークを用いてデータパケットを宛て先TORSへ転送する。第3のフローエントリ修正メッセージに応じて、宛て先TORSは、データパケットを宛て先VSへ転送する。第4のフローエントリ修正メッセージに応じて、宛て先VSは、パケットを宛て先VMへ転送する。CNMは、ソースVMがパケットを同じテナントに属する宛て先VMへ転送することを可能とする目的で、宛て先インターネットプロトコルアドレスをソースVMへ提供する。
図21は、1つの実施形態に従って、VMが新たなサーバへ移動した後にテナントラベルを用いてトラフィックを正確なVMへ転送するための方法を示している。固有のテナントのVMは、TORSにより分けられる異なる仮想スイッチに関連付けられる。トラフィックが正確に転送されるために、仮想スイッチ及びTORS上でOpenFlowルールがプログラミングされなければならない。図21は、移動したVMへトラフィックを転送するための方法を示している。
サーバA上の仮想スイッチ(VS)Aは、複数の転送命令を含むフローエントリテーブル2118Aを有する。VS Aは、ポート1上でサーバAに適合するサーバラベルを有するパケットを受信すると、サーバAラベルをポップし、パケットを、例えばテナント固有ラベルへの照合のために、次のテーブルへ転送する。VS Aは、受信したパケット上のVM1及びMACアドレス(Mac1)に適合する場合、テナント固有ラベルをポップし、ポート2上でVM1へ転送する。VS Aは、ポート2上でMac1及びARP又はDHCPに適合するパケットを受信すると、当該パケットをOFコントローラ1960(図示せず)へ転送する。VS Aは、ポート2及び宛て先Macアドレスについて適合するパケットを受信すると、まずVM2についてのテナント固有ラベルをプッシュし、次いでサーバCラベルをプッシュし、そして当該パケットをソースTORS、TORS Aへ転送する。
TORS Aは、複数の転送命令を含むフローエントリテーブル2112Aを有する。TORS Aは、サーバBについて適合するパケットを受信すると、MPLSクラウド2170上でのTORS−TORS転送のために、TORS B用のラベルをプッシュし、当該パケットをポート1上で転送する。TORS Aは、サーバCについて適合するパケットを受信すると、TORS C用のラベルをプッシュし、当該パケットをポート1上で転送する。TORS Aは、ポート1について適合し及びTORS Aに適合するラベルを有するパケットを受信すると、TORS Aラベルをポップし、次のテーブルへ転送する。当該パケットがサーバAについて適合する場合、TORS Aは、当該パケットをポート2へ転送する。
サーバB上の仮想スイッチ(VS)Bは、複数の転送命令を含むフローエントリテーブル2118Bを有する。VS Bは、ポート1上でサーバBに適合するサーバラベルを有するパケットを受信すると、サーバBラベルをポップし、パケットを、例えばテナント固有ラベルへの照合のために、次のテーブルへ転送する。VS Bは、受信したパケット上のVM2及びMACアドレス(Ma2)に適合する場合、テナント固有ラベルをポップし、新たな命令に従って転送を行う。それら新たな命令は、まずVM2(テナント固有)ラベルをプッシュすることと、次いでサーバCラベルをプッシュすることと、パケットをポート1へと転送することと、を含む。VS Bは、ポート2上でMac1及びARP又はDHCPに適合するパケットを受信すると、当該パケットをOFコントローラ(図示せず)へ転送する。
TORS Bは、複数の転送命令を含むフローエントリテーブル2112Bを有する。TORS Bは、サーバAについて適合するパケットを受信すると、MPLSクラウド2170上でのTORS−TORS転送のために、TORS A用のラベルをプッシュし、当該パケットをポート1上で転送する。TORS Bは、サーバCについて適合するパケットを受信すると、TORS C用のラベルをプッシュし、MPLSクラウド2170上でのTORS−TORS転送のために、当該パケットをポート1上で転送する。TORS Bは、ポート1について適合し及びTORS Bに適合するラベルを有するパケットを受信すると、TORS Bラベルをポップし、次のテーブルへ転送する。当該パケットがサーバBについて適合する場合、TORS Bは、当該パケットをポート2へ転送する。
サーバC上の仮想スイッチ(VS)Cは、複数の転送命令を含むフローエントリテーブル2118Cを有する。VS Cは、ポート1上でサーバAに適合するサーバラベルを有するパケットを受信すると、サーバAラベルをポップし、例えばテナント固有ラベルへの照合のために、次のテーブルへ転送する。VS Cは、受信したパケット上のVM2及びMACアドレス、Mac2に適合する場合、テナント固有ラベルをポップし、ポート2への転送を行う。VS Cは、ポート2、Mac1及びARP又はDHCPについて適合するパケットを受信すると、当該パケットをOFコントローラ(図示せず)へ転送する。
TORS Cは、複数の転送命令を含むフローエントリテーブル2112Cを有する。TORS Cは、サーバAについて適合するパケットを受信すると、MPLSクラウド2170上でのTORS−TORS転送のために、TORS A用のラベルをプッシュし、当該パケットをポート1上で転送する。TORS Cは、サーバBについて適合するパケットを受信すると、TORS B用のラベルをプッシュし、MPLSクラウド2170上でのTORS−TORS転送のために、当該パケットをポート1上で転送する。TORS Cは、ポート1について適合し及びTORS Aに適合するラベルを有するパケットを受信すると、TORS Aラベルをポップし、次のテーブルへ転送する。当該パケットがサーバAについて適合する場合、TORS Cは、当該パケットをポート2へ転送する。
図21は、テナントVM1を有する、仮想化されたサーバであるサーバAを示している。サーバAは、TORS Aに関連付けられる。仮想化されたサーバであるサーバBは、同じテナントの仮想マシンVM2を有する。サーバBは、TORS Bに関連付けられる。VM2がサーバBからサーバCへ移動する場合、VM2宛てのパケットがMPLSクラウドネットワーク1970上でTORS Cを通じてサーバCへ転送されることを確実化する目的で、VS B用のフローエントリテーブル内に転送命令が含められる。
図21は、VMが移動する際のデータパスを示している。本実施形態において、テナントラベルは、VMが移動した後に正確なVMへトラフィックを転送するために使用される。図13において見られるように、当初は、トラフィックは、仮想スイッチAに関連付けられるVM1から仮想スイッチB上のVM2へと進む。最終的には、VMは、仮想スイッチCへと移動し、トラフィックは正確な仮想スイッチへ適切に移動させられる。
上で述べたように、当初は、フローは、VS A上のソーステナント仮想マシンVM1からVS B上の宛て先仮想マシンVM2へとトラフィックを送信するようにセットアップされる。
VM2がサーバBからサーバCへと移動される場合、VM2宛てのパケットが正確な場所へ送信されることを確かにする目的で、フローエントリテーブルは修正される必要がある。VS A上のフローエントリテーブル2118Aは、VS Bの代わりにVS Cのためのラベルをプッシュするように修正される。サーバAラベルについて照合し、次いでテナント固有ラベルVM2について照合するためのエントリがフローエントリテーブル2118Cへ追加される。次いで、VS Cは、それらラベルをポップし、VS C上の正確なポートへの転送を行う。VM2へ向けてVS Aから到来するトラフィックについて照合されるVS B上のエントリは除去される。VM2の移動の期間中にVS Bにより受信されるいずれの暫定的なパケットも、まずテナント固有ラベルをプッシュし、次いでサーバB用のラベルをプッシュし、そしてMPLSクラウド2170上でのTORS CへのTORS−TORS転送のためにTORS Bへ転送することにより、転送されることができる。
図22は、第1の宛て先VSから第2の宛て先VSへ、CNMを用いて宛て先VMを移動させる方法を示している。ブロック2205において、ソースVSへ、第1の宛て先VSの代わりに第2の宛て先VSのためのラベルをプッシュする目的で第1のフローエントリ修正メッセージが送信される。ブロック2210において、第2の宛て先VSへ、ソースVSラベル及びテナント固有ラベルが適合するデータパケットを第2の宛て先VSが受信した場合には当該第2の宛て先VSがまずソースVSラベルをポップし次いでテナント固有ラベルをポップすべきであることを示す第2のフローエントリ修正メッセージが送信される。ブロック2215において、第1の宛て先VSへ、第1の宛て先VSラベル及びテナント固有ラベルについて適合するデータパケットを第1の宛て先VSが暫定ピリオドの期間中に受信した場合には第1の宛て先VS及びテナント固有ラベルがポップされるべきであって次いで第1の宛て先VSがパケットをまずテナント固有ラベルをプッシュし次いで第2の宛て先VSラベルをプッシュすることにより転送すべきであることを示す第3のフローエントリ修正メッセージが送信される。
ここで説明されるように、命令は、ある動作を実行するように構成され若しくは予め決定される機能性を有する特定用途向け集積回路(ASIC)といったハードウェアの特定の構成、又は、メモリ内に記憶され非一時的なコンピュータ読取可能な媒体内で具現化されるソフトウェア命令の特定の構成を指し得る。よって、図面中に示した技法は、1つ以上の電子デバイス(例えば、終端局、ネットワークエレメント)上で記憶されて実行されるコード及びデータを使用して実装されることが可能である。そうした電子デバイスは、非一時的なコンピュータ読取可能な記憶媒体(例えば、磁気ディスク、光ディスク、ランダムアクセスメモリ、読み出し専用メモリ、フラッシュメモリデバイス、相変化メモリ)及び一時的なコンピュータ読取可能な通信媒体(例えば、電気的、光学的、音響的、又は他の形式の伝播信号−例えば、搬送波、赤外線信号、デジタル信号)などのコンピュータ読取可能な媒体を使用して、コード及びデータを記憶し、コード及びデータを(内部的に、及び/又は、他の電子デバイスとの間でネットワーク上で)通信する。加えて、そうした電子デバイスは、典型的には、1つ以上のストレージデバイス(非一時的なマシン読取可能な記憶媒体)、ユーザ入力/出力デバイス(例えば、キーボード、タッチスクリーン、及び/又はディスプレイ)、並びにネットワーク接続といった1つ以上の他のコンポーネントへ連結される1つ以上のプロセッサのセットを含む。プロセッサのセットと他のコンポーネントとの連結は、典型的には、1つ以上のバス及びブリッジ(バスコントローラとも呼称される)を通じて行われる。よって、所与の電子デバイスのストレージデバイスは、典型的には、当該電子デバイスの1つ以上のプロセッサのセット上での実行のためにコード及び/又はデータを記憶する。当然ながら、本発明の一実施形態の1つ以上の部分は、ソフトウェア、ファームウェア、及び/又はハードウェアの様々な組み合わせを使用して実装されてよい。
図面中のフロー図は、本発明のある実施形態により実行される動作の特定の順序を示しているが、そうした順序は例示的であることが理解されるべきである(例えば、代替的な実施形態は、異なる順序で動作を実行し、ある複数の動作を組み合わせ、ある複数の動作を重複させるなどしてもよい)。
本発明を、いくつかの実施形態の観点で説明してきたが、当業者は、本発明が、説明された実施形態に限定されないこと、並びに、添付の特許請求の範囲の思想及び範囲内の修正及び変形と共に実践し得ることを認識するであろう。よって、本説明は、限定的である代わりに、例示的であるとみなされるべきである。

Claims (20)

  1. クラウドネットワークマネージャ(CNM)を用いてテナント固有データを隔離するための方法であって、
    テナントデータベース(DB)と、テナント識別子−テナントラベル(TITL)テーブルと、TORS(top of rack server)ラベル−仮想スイッチリンクラベル(TLVLL)テーブルと、ラベルマッピングテーブル(SMVL)と、CNMアドレスマッピングテーブルとを含む複数のデータベース又はテーブル内の複数のアイテムの間のマッピングを維持すること(1205)と、
    前記複数のデータベースを用いて、テナントの仮想マシン(VM)間で送信されるパケットへ付与されるテナント固有ラベルを生成すること(1210)と、
    を含む方法。
  2. OpenFlowスイッチ上のインストール又はアンインストールに先立ってデータベースアクセスが実行される、請求項1の方法。
  3. 前記CNMは、テナントIDをキーとして用いて前記テナントラベルをルックアップするために前記TITLテーブルを用いる、請求項1の方法。
  4. 前記CNMは、TORS(top of rack server)ラベルをキーとして用いて前記仮想スイッチ(VS)リンクラベルをルックアップするために前記TLVLLテーブルを用いる、請求項1の方法。
  5. 前記CNMは、テナントID、テナントVMメディアアクセス制御(MAC)アドレス、テナントVMインターネットプロトコル(IP)アドレス及びサーバMACアドレスの間のマッピングを維持するために、前記CNMアドレスマッピングテーブルを用いる、請求項1の方法。
  6. テナントごとに1つのCNMアドレスマッピングテーブルが存在する、請求項5の方法。
  7. テナントラベルを転送エントリとして追加することにより、テナント固有データが隔離される、請求項1の方法。
  8. テナントIDを有する前記テナントラベルの使用が、テナント固有トラフィックをそれぞれのVMへと分離し及び隔離する、請求項7の方法。
  9. 異なるテナントへ属する複数のVMが同じインターネットプロトコルアドレス及びメディアアクセス制御アドレスを有する、請求項8の方法。
  10. 前記テナントDBは、前記CNMアドレスマッピングテーブルへのポインタを保持する、請求項1の方法。
  11. 前記CNMは、他の全てのCNMアドレスマッピングテーブルのルックアップを実行する前に、まず前記テナントDBでのルックアップを実行して、テナント固有のアドレスマッピングテーブルを見出す、請求項10の方法。
  12. クラウドネットワークマネージャ(CNM)を用いてテナント固有データを隔離するための方法であって、
    仮想マシン(VM)が仮想化されたサーバ上でのアクティブ化のためにスケジューリングされるという通知を受信すること(1305)と、
    VMメディアアクセス制御(MAC)アドレスを判定すること(1310)と、
    前記仮想化されたサーバ上に所在する仮想スイッチ(VS)MACアドレスを判定すること(1315)と、
    テナント識別子(ID)、テナントMAC及びサーバMACを含むメッセージを受信すること(1320)と、
    VS−TORS(top of rack switch)ラベル及びテナント固有ラベルを求めて、ラベルマッピングテーブル及びテナント識別子−テナントラベル(TITL)テーブル内でのルックアップを実行すること(1325)と、
    CNMマッピングテーブル内に、テナントID、VM MACアドレス及びVS MACアドレスの間の関連付けを記録すること(1330)と、
    前記VS−TORSラベル、前記テナント固有ラベル及び前記VM MACアドレスに適合するデータパケットが前記VMへ転送されるべきであることを示すフローエントリ修正メッセージを、前記VSへ送信すること(1335)と、
    を含む方法。
  13. 前記CNMは、前記VMから発せられるDHCP(Dynamic Host Configuration Protocol)リクエストが前記CNMへ転送されるべきであることを示すフローエントリ修正メッセージを、前記VSへ送信する(1340)、請求項12の方法。
  14. 前記CNMは、前記VMから発せられるARP(Address Resolution Protocol)リクエストが前記CNMへ転送されるべきであることを示すフローエントリ修正メッセージを、前記VSへ送信する(1345)、請求項12の方法。
  15. クラウドネットワークマネージャ(CNM)を用いてテナント固有データを隔離するための方法であって、
    ソース仮想スイッチ(VS)へ、宛て先仮想マシン(VM)へデータパケットを転送する目的で前記ソースVSが当該データパケットへまずテナント固有ラベルをプッシュし次いでVS−TORS(top of rack switch)ラベルをプッシュすべきであることを示す第1のフローエントリ修正メッセージを送信すること(2005)と、
    ソースTORSへ、前記ソースTORSが前記VS−TORSラベルに適合するデータパケットを受信した場合には前記ソースTORSが宛て先TORSラベルをプッシュすべきであることを示す第2のフローエントリ修正メッセージを送信すること(2010)と、
    宛て先TORSへ、前記宛て先TORSが前記宛て先TORSラベルに適合するデータパケットを受信した場合には前記宛て先TORSが前記TORSラベルをポップして前記データパケットを宛て先VSへと転送すべきであることを示す第3のフローエントリ修正メッセージを送信すること(2015)と、
    前記宛て先VSへ、前記宛て先VSが前記VS−TORSラベル及び前記テナント固有ラベルに適合するデータパケットを受信した場合には前記宛て先VSがまず前記VS−TORSラベルをポップし次いで前記テナント固有ラベルをポップすべきであることを示す第4のフローエントリ修正メッセージを送信すること(2020)と、
    を含む方法。
  16. 前記第1のフローエントリ修正メッセージに応じて、前記ソースVSは、前記パケットをソースTORSへ転送する、請求項15の方法。
  17. 前記第2のフローエントリ修正メッセージに応じて、前記ソースTORSは、クラウドネットワークを用いて前記データパケットを宛て先TORSへ転送する、請求項16の方法。
  18. 前記第3のフローエントリ修正メッセージに応じて、前記宛て先TORSは、前記データパケットを宛て先VSへ転送する、請求項17の方法。
  19. 前記第4のフローエントリ修正メッセージに応じて、前記宛て先VSは、前記パケットを前記宛て先VMへ転送する、請求項18の方法。
  20. 前記CNMは、ソースVMがパケットを同じテナントに属する宛て先VMへ転送することを可能とする目的で、宛て先インターネットプロトコルアドレスを前記ソースVMへ提供する、請求項15の方法。
JP2015543541A 2012-11-27 2013-10-29 OpenFlow有効化クラウドコンピューティングにおいてMPLSを用いる場合のテナント固有データの分離のための装置及び方法 Active JP6043879B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261730394P 2012-11-27 2012-11-27
US61/730,394 2012-11-27
US13/750,325 US9250941B2 (en) 2011-09-30 2013-01-25 Apparatus and method for segregating tenant specific data when using MPLS in openflow-enabled cloud computing
US13/750,325 2013-01-25
PCT/IB2013/059757 WO2014083449A1 (en) 2012-11-27 2013-10-29 Apparatus and method for segregating tenant specific data when using mpls in openflow-enabled cloud computing

Publications (2)

Publication Number Publication Date
JP2016504820A true JP2016504820A (ja) 2016-02-12
JP6043879B2 JP6043879B2 (ja) 2016-12-14

Family

ID=50030346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015543541A Active JP6043879B2 (ja) 2012-11-27 2013-10-29 OpenFlow有効化クラウドコンピューティングにおいてMPLSを用いる場合のテナント固有データの分離のための装置及び方法

Country Status (6)

Country Link
EP (1) EP2926251B1 (ja)
JP (1) JP6043879B2 (ja)
CN (2) CN104813288B (ja)
BR (1) BR112015009668B1 (ja)
IN (1) IN2015DN03095A (ja)
WO (1) WO2014083449A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016503247A (ja) * 2012-12-09 2016-02-01 華為技術有限公司Huawei Technologies Co.,Ltd. パケット転送方法と装置及びデータセンターネットワーク

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105376083B (zh) * 2014-08-25 2018-12-14 华为技术有限公司 节能控制方法、管理服务器和网络设备
US9887961B2 (en) 2015-05-22 2018-02-06 International Business Machines Corporation Multi-tenant aware dynamic host configuration protocol (DHCP) mechanism for cloud networking
EP3104563B1 (en) * 2015-06-10 2019-10-16 Nokia Solutions and Networks GmbH & Co. KG Sdn security
CN105554179B (zh) * 2016-01-08 2018-11-30 中国联合网络通信集团有限公司 局域网内dns解析方法、系统
US10536446B2 (en) 2017-01-31 2020-01-14 Microsoft Technology Licensing, Llc. Single authentication to a multi-tenancy single-page cloud application
US10601804B2 (en) 2017-12-11 2020-03-24 International Business Machines Corporation Provide access to data storage services in a network environment
CN108632091A (zh) * 2018-05-09 2018-10-09 烽火通信科技股份有限公司 一种dcn网络中对接设备自适应适配封装的实现方法
US11095558B2 (en) 2018-12-28 2021-08-17 Alibaba Group Holding Limited ASIC for routing a packet
US10880124B2 (en) 2018-12-28 2020-12-29 Alibaba Group Holding Limited Offload controller control of programmable switch
US11516087B2 (en) * 2020-11-30 2022-11-29 Google Llc Connecting processors using twisted torus configurations
JP2022107316A (ja) * 2021-01-08 2022-07-21 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム
CN113315764B (zh) * 2021-05-25 2023-03-10 深圳壹账通智能科技有限公司 防arp攻击的数据包发送方法、装置、路由器及存储介质
CN113472745B (zh) * 2021-05-31 2023-04-07 山东英信计算机技术有限公司 一种基于selinux的openstack公有云多租户隔离方法、系统及终端
WO2023114650A1 (en) * 2021-12-15 2023-06-22 Cisco Technology, Inc. Systems and methods for achieving multi-tenancy on an edge router

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011049742A2 (en) * 2009-10-21 2011-04-28 Alcatel-Lucent Usa Inc. Method and apparatus for transparent cloud computing with a virtualized network infrastructure
US20130058354A1 (en) * 2010-07-06 2013-03-07 Martin Casado Managed switching elements used as extenders

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185184B1 (en) * 1995-09-25 2001-02-06 Netspeak Corporation Directory server for providing dynamically assigned network protocol addresses
US9444785B2 (en) * 2000-06-23 2016-09-13 Cloudshield Technologies, Inc. Transparent provisioning of network access to an application
US7653011B2 (en) * 2005-05-31 2010-01-26 Cisco Technology, Inc. Spanning tree protocol for wireless networks
US20080215640A1 (en) * 2007-03-01 2008-09-04 Rent Bureau, Llc Method of processing apartment tenant status information
US8473594B2 (en) * 2008-05-02 2013-06-25 Skytap Multitenant hosted virtual machine infrastructure
CN101656657A (zh) * 2008-08-19 2010-02-24 国际商业机器公司 在多租户架构中确定每个租户的资源使用率的方法和系统
CN101729584A (zh) * 2008-10-30 2010-06-09 国际商业机器公司 用于软件服务集成系统中的服务适配器及其操作方法
CN102415068B (zh) * 2009-03-02 2015-09-02 特维里奥公司 用于多租户电话网络的方法和系统
US8194680B1 (en) * 2009-03-11 2012-06-05 Amazon Technologies, Inc. Managing communications for modified computer networks
KR101316902B1 (ko) * 2009-12-22 2013-10-18 한국전자통신연구원 멀티테넌시를 지원하기 위한 확장된 자바가상머신 및 이를 이용한 멀티테넌시 처리 방법
US8504718B2 (en) * 2010-04-28 2013-08-06 Futurewei Technologies, Inc. System and method for a context layer switch
US8412673B2 (en) * 2010-07-30 2013-04-02 Sap Ag Persistence of master data in a multi-tenant software delivery architecture
US20120136899A1 (en) * 2010-11-29 2012-05-31 Martin Kaiser Activation framework for tenant-specific follow-up
CN102681899B (zh) * 2011-03-14 2015-06-10 金剑 云计算服务平台的虚拟计算资源动态管理方法
EP2654250A4 (en) * 2011-04-27 2014-02-19 Huawei Tech Co Ltd METHOD AND APPARATUS FOR VIRTUAL LOCAL NETWORK IDENTITY TRANSFORMATION

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011049742A2 (en) * 2009-10-21 2011-04-28 Alcatel-Lucent Usa Inc. Method and apparatus for transparent cloud computing with a virtualized network infrastructure
JP2013509090A (ja) * 2009-10-21 2013-03-07 アルカテル−ルーセント 仮想化ネットワークインフラストラクチャを用いたトランスペアレントなクラウドコンピューティングのための方法および装置
US20130058354A1 (en) * 2010-07-06 2013-03-07 Martin Casado Managed switching elements used as extenders

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016503247A (ja) * 2012-12-09 2016-02-01 華為技術有限公司Huawei Technologies Co.,Ltd. パケット転送方法と装置及びデータセンターネットワーク

Also Published As

Publication number Publication date
CN104813288A (zh) 2015-07-29
CN107977255A (zh) 2018-05-01
CN107977255B (zh) 2021-12-28
CN104813288B (zh) 2018-01-12
EP2926251A1 (en) 2015-10-07
JP6043879B2 (ja) 2016-12-14
EP2926251B1 (en) 2016-10-05
WO2014083449A1 (en) 2014-06-05
BR112015009668B1 (pt) 2021-10-13
IN2015DN03095A (ja) 2015-10-02
BR112015009668A2 (pt) 2017-07-04

Similar Documents

Publication Publication Date Title
JP6043879B2 (ja) OpenFlow有効化クラウドコンピューティングにおいてMPLSを用いる場合のテナント固有データの分離のための装置及び方法
US9250941B2 (en) Apparatus and method for segregating tenant specific data when using MPLS in openflow-enabled cloud computing
US8560663B2 (en) Using MPLS for virtual private cloud network isolation in openflow-enabled cloud computing
JP5927352B2 (ja) Mplsベースの仮想プライベートクラウドネットワーキングのためのipマルチキャストサービス退去処理
US8831000B2 (en) IP multicast service join process for MPLS-based virtual private cloud networking
US10778532B2 (en) Overlay network movement operations
EP2891282B1 (en) System and method providing distributed virtual routing and switching (dvrs)
US20190215253A1 (en) Technologies for annotating process and user information for network flows
US20150124823A1 (en) Tenant dhcp in an overlay network
US11258729B2 (en) Deploying a software defined networking (SDN) solution on a host using a single active uplink
WO2015014187A1 (zh) 一种支持多租户的数据转发方法和装置
US11012412B2 (en) Method and system for network traffic steering towards a service device
CN105635190A (zh) 数据中心网络中的服务执行方法及装置
CN116888940A (zh) 利用虚拟联网的容器化路由器
CN117255019A (zh) 用于虚拟化计算基础设施的系统、方法及存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160901

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161114

R150 Certificate of patent or registration of utility model

Ref document number: 6043879

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250