本発明の以下の詳細な説明では、本発明の多数の詳細、実施例、及び実施形態が記載され、説明される。しかし、本発明は記載された実施形態に限定されず、本発明は記載された特定の詳細及び例のいくつかがなくても実施され得ることは、当業者には明らかであり、容易なものであろう。
いくつかの実施形態は、データセンタのセットにまたがって仮想サービスネットワークを確立するための方法を提供する。仮想サービスネットワークが確立されるデータセンタのセットは例えば、1つ以上のパブリッククラウド、パブリッククラウド及びプライベートクラウドにまたがるソフトウェア定義ワイドエリアネットワーク(SD-WAN)、電気通信サービスプロバイダアクセスネットワーク(例えば、無線アクセスネットワーク、エッジクラウド、及びコアクラウドの組合せにまたがる)、又は他のタイプのデータセンタを含むことができる。いくつかの実施形態の仮想サービスネットワークは、ネットワークスライスに割り当てられたデータメッセージに、それぞれが異なるネットワークサービスを提供する多数のネットワークスライスを含む。
いくつかの実施形態では、デバイス(例えば、電気通信コンテキストにおけるモバイルエンドポイントデバイス)がそのようなネットワーク上にデータメッセージを送信すると、ネットワークスライスセレクタは最初にデータメッセージを処理する。このネットワークスライスセレクタは、仮想サービスネットワークのネットワークスライスの1つにデータメッセージを割り当て、割り当てられたスライスについてのネットワークサービスの正しいセットによってデータメッセージが処理されるように、サービスチェイニング動作を処理する。異なる実施形態では、このネットワークスライスセレクタが仮想マシン(VM)、コンテナ化された機能、VM内で動作するソフトウェア転送要素(例えば、フローベースの転送要素)、コンテナ内又はホストコンピュータの仮想化ソフトウェア内で動作するモジュールのセット、ホストコンピュータの仮想化ソフトウェア内で転送要素の外部で実行するモジュールのセット(例えば、VMと転送要素のポート間)、ハードウェア転送要素(例えば、プログラム可能なスイッチ)、又はその他の実装によって実装されてもよい。
場合によっては、多くのネットワークスライスセレクタが仮想サービスネットワークを実装するように設定されている。電気通信サービスプロバイダの例では、いくつかの実施形態がアクセスネットワークの各セルラータワー、基地局、又は他の態様のためのネットワークスライスセレクタを構成する。いくつかの実施形態の電気通信サービスプロバイダアクセスネットワークは各セルラータワーのためのエッジクラウドを含み、そのような各エッジクラウドにおいて少なくとも1つのネットワークスライスセレクタを構成する。他の例(例えば、接続されたデータセンタのセット内に完全に含まれるSD-WANトラフィックの場合)では、分散されたネットワークスライスセレクタは、VMから送信されたデータメッセージについてのネットワークスライスの選択がデータメッセージのソースと同じホストコンピュータ(ソースVMの外部)又は指定されたデバイス(例えば、特定の近くのスイッチ又はルータ、専用のVM又はコンテナ)で生じるように構成される。
図1は、多数のネットワークスライスセレクタを有する仮想サービスネットワーク(VSN)100を概念的に示す図である。この場合、VSN100は、インターネットにアクセスするデバイス(例えば、電気通信サービスプロバイダアクセスネットワーク内)のためのデータメッセージに対してネットワークサービスを実行する。このVSNが所定のデータメッセージに対してどのネットワークサービスを実行するかは、そのデータメッセージが割り当てられるスライスに依存する。以下にさらに説明するように、所与のネットワークスライスのネットワークサービスは、単一のデータセンタ又はデータセンタのセットに実装されてもよい。特定のスライスでは、いくつかのネットワークサービスが多くのエッジクラウドに分散される場合があり、一方で後のネットワークサービスが中央のパブリックデータセンタに実装される。
図に示すように、仮想サービスネットワーク100は、多数の(N個の)ネットワークスライス105~115を含む。これらの各ネットワークスライスはネットワーク経路(すなわち、スライスに割り当てられたデータメッセージ上で実行されるネットワークサービスの順序付きセット)を表す。これらのネットワークサービスは、ファイアウォール、ロードバランサ、ネットワークアドレス変換、(例えば、課金目的のための)計量機能、VPNゲートウェイ、無線アクセスネットワーク(RAN)機能(例えば、分散ユニット及び集中ユニット機能)、進化パケットコア(EPC)機能(例えば、加入者管理サーバ、サービスゲートウェイ、パケットデータネットワークゲートウェイ、モビリティ管理エンティティ)、又は他の種類のネットワーク機能を含むことができる。
異なる実施形態では、仮想サービスネットワークのネットワークスライスが異なる目的を果たしてもよい。いくつかの実施形態は、ソースデバイスに基づいて(例えば、ソースネットワークアドレス又は装置の種類を識別する情報を使用して)、又は加入者情報に基づいて(例えば、認証、許可、及び会計システム又はポリシーシステムとインターフェースで接続することによって)ネットワークをスライスするが、他の実施形態はトラフィックの種類に基づいて(例えば、ディープパケットインスペクションを実行することによって)ネットワークをスライスする。各ネットワークスライスには、規定のQoS(quality of service)サービス品質保証(SLA)を設定できる。例えば、自動運転車のためのネットワークスライスは非常に短い待ち時間要件を有する場合があり、ストリーミングビデオのためのネットワークスライスは高い帯域幅要件を有する場合があり、IoTスライスは単一のデバイスのためにより厳密でない帯域幅又は待ち時間要件を有するが、大きな接続の見込みを有することがある。
これらのネットワークサービスは、異なる実施形態において、仮想化ネットワーク機能(VNF)、物理ネットワーク機能(PNF)、及び/又はクラウドネットワーク機能(CNF)として実装されてもよい。VNFは、仮想マシンなどの仮想化データ計算ノードに実装されるネットワークサービスである。これは、例えば、特定のスライスについての同じネットワークサービス構成が、多数のエッジクラウドにおいて(例えば、多数のスライスセレクタと共に)実装されることを可能にする。CNFは、特定の種類のコンテナなど、クラウドネイティブデータ計算ノードに実装されるネットワークサービスである。最後に、PNFは物理デバイス(例えば、特定のファイアウォール又はロードバランサデバイス)によって実装されるネットワークサービスである。一般に、PNFは、エッジクラウドではなく集中化されたデータセンタ内により有効に配置されるので、同じ物理デバイスを各エッジクラウドについて複製する必要はない。
この例では、第1のネットワークスライス105は2つのVNFA及びB、並びにPNFCを含む。第2のネットワークスライス110は3つのVNFB、D、及びEを有し、完全に仮想のものである。最後のネットワークスライス115はスライス105(VNFA及びB、並びにPNFC)と同じ3つのネットワークサービスを含み、その後にCNFFが続く。いくつかの実施形態では、同じVMが複数の異なるネットワークスライスのためのVNFを実装することができる。この例では、1つのVMが図示されている3つのネットワークスライス105~115すべてに対して同じVNFBを実装する場合がある。このVNFがエッジクラウド内に位置する場合、単一のVMを各エッジクラウド内で(例えば、各スライスセレクタごとに)インスタンス化してもよい。しかしながら、他の実施形態では、VNF設定が複数のスライスに対して同じであっても、VNFごとに別個のVNF(例えば、別個のVM又は他のデータ計算ノード)がインスタンス化される。したがって、この例では、3つの異なるVNFが、スライス105~115のそれぞれに対してVNFBについてインスタンス化される。したがって、このVNFがエッジクラウド内に位置する場合、各エッジクラウドは、VNFCに対して3つの異なるVMを有することになる。
デバイスがネットワーク100にアクセスする方法のために、いくつかの実施形態は、多数のスライスセレクタ120~130を有する。デバイスは、基地局(例えば、セルタワー)、無線アクセスポイント、有線中継(例えば、家庭内)、又は他の手段を介して、電気通信サービスプロバイダネットワークにアクセスしてもよい。プロバイダネットワークについて、いくつかの実施形態のスライスセレクタは、データトラフィックがネットワークの大部分を横切る前にスライス選択が生じ得るように、そのデバイスの近くに実装される。例えば、マルチアクセスエッジ計算を備える5G無線ネットワークの場合、いくつかの実施形態は、各分散ユニット(DU)のためのスライスセレクタを構成する。他の実施形態は、複数のDUからトラフィックを受信する各集中ユニット(CU)のためのスライスセレクタを構成する。この場合、各スライスセレクタは関連付けられた地理的範囲(すなわち、そのスライスセレクタの関連付けられたDU又はCUの地理的範囲)を有する。
図1に示すような状況では、各スライスセレクタ120~130は、いくつかの実施形態では同じスライス選択機能を実行する(すなわち、単一の論理スライスセレクタとして動作する)ように構成される。すなわち、各スライスセレクタ1~Kは、スライス1~Nのいずれかにデータメッセージを割り当てることができ、ネットワークスライスの割り当ては、スライスセレクタ120~130のいずれがデータメッセージを処理するかにかかわらず同じになることになる。他の実施形態では、スライスはある特定の地理的領域においてのみアクセス可能である。例えば、特定のアプリケーションに関連付けられたネットワークスライスは、特定の都市やその他の地理的領域で、特定のケースで利用可能となる場合がある。
この例は、多数のデバイスが任意の特定の時間に所与のスライスセレクタに接続できることを示している。この例では、スマート冷蔵庫及びラップトップが第1のスライスセレクタ120に取り付けられ、タブレットデバイスが第2のスライスセレクタ125に取り付けられ、自動運転車及び携帯電話が最後のスライスセレクタ130に取り付けられている。異なる実施形態では、このネットワークスライスセレクタが、仮想マシン(VM)、VM内又はホストコンピュータの仮想化ソフトウェア内で動作するソフトウェア転送要素(例えば、フローベースの転送要素)、ホストコンピュータの仮想化ソフトウェア内の転送要素外(例えば、VMと転送要素のポート間)で実行されるモジュールのセット、物理デバイス(例えば、専用ハードウェア転送要素、物理ホストコンピュータ)、コンテナアプリケーション(例えば、ネットワークサービスメッシュを実行するKubernetesシステム)、又はその他の実装によって実装されてもよい。
図2は、多数のデータセンタ205~215にわたる単一のネットワークスライス200のためのサービスの分散を概念的に示す図である。この例に示すように、ネットワークスライス200は、ネットワークスライス200に割り当てられる装置220からの特定のデータトラフィックに適用される4つのネットワークサービス(VNFA-D)を含む。第1のVNFAはエッジクラウド205及び207に実装され、第2及び第3のVNFB及びCはコアクラウド210に実装され、第4のVNFDはパブリッククラウド215に実装される。マルチアクセスエッジ計算を使用するネットワーク(例えば、5Gネットワーク)では、エッジクラウド内に実装されるスライスセレクタ225及び任意のネットワークサービスが各エッジクラウド内でインスタンス化される。したがって、エッジクラウド205及びエッジクラウド207の両方はそれぞれ、(同じVSNの任意の他のスライス又はネットワークにまたがって実装される任意の他のVSNのためにエッジ上で実装される任意のネットワークサービスと同様に)スライスセレクタ225及びVNFAのインスタンスを有する。さらに、図示されていないが、各エッジクラウド内で、いくつかの実施形態は、高可用性の理由のため、複数のスライスセレクタ(例えば、アクティブスライスセレクタ及びスタンバイスライスセレクタ、又はすべての着信トラフィックを処理する負荷を共有する多数のアクティブスライスセレクタ)を実行する。
いくつかの実施形態では、デバイス220からのトラフィックは、最初にこの図には示されていない無線アクセスネットワーク(RAN)を通過する。いくつかの実施形態は、RANの前に(すなわち、RANのデバイス側で)ネットワークスライシングを実施するが、この例ではネットワークスライシングはRANの後に行われる。次に、このデータトラフィックは、トラフィックを分析し、トラフィックをネットワークスライス200に割り当てるスライスセレクタ225(エッジクラウド205)に達する。
スライスセレクタ225がデータメッセージをネットワークスライス200に割り当てると、いくつかの実施形態では割り当てられたスライス(すなわち、VNFA~D)のネットワークサービスをデータメッセージが正しい順序でトラバースすることを保証するために、このスライスセレクタ225がサービスチェイニングを実行する役割を果たす。いくつかの実施形態では、スライスセレクタ225がデータメッセージを第1のネットワークサービス(すなわち、同じエッジクラウド205においてVNFAを実装するVM)に送信し、そのデータメッセージのコンテキスト情報を維持する。VNFAがそのデータメッセージの処理を完了すると、そのVNFはデータメッセージをスライスセレクタ225に返す。スライスについての追加のネットワークサービスもエッジクラウド225で実施される場合には(スライス200の場合ではない)、次いでスライスセレクタ225は、データメッセージを次のネットワークサービスに送信するなどのために、維持されたコンテキスト情報を使用することになる。
この場合、第2のネットワークサービスVNFBは、コアクラウド210に実装される。いくつかの実施形態では、ネットワークスライスセレクタ225は(例えば、クラウド205~215を相互接続するワイドエリアネットワーク(WAN)ゲートウェイを介して)コアクラウドのサービスチェインモジュールにデータメッセージを送信する。いくつかの実施形態では、完全なネットワークスライスが多数のデータセンタにわたって実装される場合、同様のサービスチェイニングモジュールが、それ自体のデータセンタ内(例えば、コアクラウド210及びパブリッククラウド215の両方の内)のスライスのためのサービスチェイニングを処理するために各データセンタで動作する。これらのサービスチェイニングモジュールは、いくつかの実施形態におけるネットワークスライスセレクタと同じ様式で(例えば、VMとして、VM又は仮想化ソフトウェアにおける転送要素として、コンテナとして)実装されてもよい。最後のネットワークサービスが完了すると、いくつかの実施形態では、出力ゲートウェイ230がデータメッセージをインターネットを介してその宛先に送信する。
図3は、いくつかの実施形態に係る、エッジクラウド205で受信され、そのエッジクラウドでスライスセレクタ225によってスライス200に割り当てられたデータメッセージがVSNを通過する経路を概念的に示す。丸で囲まれた1によって示されるように、エンドポイントデバイス220はデータメッセージを電気通信プロバイダアクセスネットワークに送信し、そこで、データメッセージはエッジクラウド205におけるスライスセレクタ225によって処理される。いくつかの実施形態では、アクセスネットワークのこれらの部分が仮想サービスネットワークの一部でない場合(すなわち、スライスセレクタがRAN及び/又はEPCの後にデータメッセージを処理する場合)、データメッセージは最初にRAN及び/又はEPCによって処理される。エッジクラウド205内のスライスセレクタ225は(例えば、ディープパケットインスペクション、L2~L4ヘッダ、又は他の要因に基づいて)データメッセージをスライス200に割り当て、VNFAが(i)このスライスのための第1のネットワークサービスであり、(ii)エッジクラウド205内に位置もすることを識別する。したがって、スライスセレクタ225はデータメッセージをVNFA(丸で囲まれた2で示される)に送信し、VNFAはデータメッセージを処理し、そのデータメッセージをスライスセレクタ225(丸で囲まれた3で示される)に返す。
次にスライスセレクタ225は、選択されたスライス200の次のネットワークサービスがコアクラウド210内に位置することを識別し、したがって、WANゲートウェイ(簡単のため図示せず)を介して、コアクラウド210内で動作するサービスチェイニングモジュール310(丸で囲まれた4で示される)にデータメッセージを送信する。いくつかの実施形態では、サービスチェイニングモジュール310は、逆方向トラフィックが正しいエッジクラウド205(すなわち、エッジクラウド207とは対照的に)内のスライスセレクタ225に送信されるよう、これらのデータメッセージのソースを格納するために学習動作(例えば、MAC学習)を使用する。
コアクラウド210内のサービスチェイニングモジュール310は、データメッセージが(WANゲートウェイによる処理の後に)コアクラウド210に入ってくるときに、データメッセージを受信し、(例えば、スライスセレクタ310によってデータメッセージと共に提供されるコンテキスト情報、接続のための格納されたスライスマッピング、又は他の要因に基づいて)データメッセージについてのスライスを識別する。サービスチェイニングモジュール310は、コアクラウド210内のネットワークサービスに、この場合はVNFBに、次いでVNFCにデータメッセージを提供する。図に示すように、このサービスチェイニングモジュールは、データメッセージをVNFBに送信し(丸で囲まれた5で示される)、VNFBからデータメッセージを受信し(丸で囲まれた6で示される)、メッセージをVNFCに送信し(丸で囲まれた7で示される)、VNFCからデータメッセージを受信する(丸で囲まれた8で示される)。
データメッセージがVNFCによって処理された後、このデータメッセージは、サービスチェイニングモジュール310によってパブリッククラウド215内の別のサービスチェイニングモジュール315(丸で囲まれた9で示される)に(例えば、コアクラウド210とパブリッククラウド215とを相互接続するWANゲートウェイを介して)送信される。サービスチェイニングモジュール310は、いくつかの実施形態では、戻りトラフィックを処理するための情報を格納するために学習メカニズムを使用して、コアクラウド210内のサービスチェイニングモジュール310と同様に動作する。パブリッククラウド215内のこのサービスチェイニングモジュール310は、データメッセージをVNFDに送信し(丸で囲まれた10で示される)、このVNFはそのネットワークサービスを実行し、データメッセージをサービスチェイニングモジュール315に戻す。
最後に、サービスチェイニングモジュール315はそのデータメッセージについてのネットワークスライス処理が完了したと判断し、そのデータメッセージを、インターネットを介してデータメッセージをその宛先に送信する出力ゲートウェイ230に送信する。この例はエンドポイントデバイスとインターネットドメイン間の接続性を示しているが、他の仮想サービスネットワークの場合、その宛先は、代わりにパブリッククラウド内に配置されていてもよく、WANを介して接続されている別のデータセンタ内に配置されていてもよい。いくつかの実施形態の出力ゲートウェイ230は逆方向トラフィック(すなわち、パブリックインターネットドメインからのデータメッセージ)が同じスライスに割り当てられるように(ネットワーク機能が逆方向に実行される状態で)、ネットワークスライス200への接続をマッピングする情報を格納する。他の実施形態では、出力ゲートウェイ230は、非ステートフル方式で(例えば、データメッセージの宛先ネットワークアドレスを使用して)データメッセージを割り当てる。この出力ゲートウェイは、いくつかの実施形態ではサービスチェイニングモジュールとともに(又は単一のデータセンタにのみまたがる仮想サービスネットワークについての元のスライスセレクタとともに)実装されてもよい。
スライスセレクタ、ネットワークサービス(VNF、CNF、PNFなど)は、これらのエンティティ間のデータメッセージの送信を処理するさまざまな転送要素(ホストマシン間でデータメッセージをトンネルするソフトウェア転送要素、WANゲートウェイなど)と同様に設定を必要とする。いくつかの実施形態では、集中型コントローラは、ユーザ(例えば、ネットワーク管理者)がVSN全体についての設定を提供することを可能にし、次いで、コントローラ階層はこのVSNを実装するために、1つ以上のデータセンタ内の様々なエンティティを構成する。
図4は、このようなコントローラ400の階層セットを概念的に示す。この図に示すように、高レベルVSNマネージャ405は、ネットワーク管理者(例えば、データセンタテナント、電気通信プロバイダ)からVSN設定を受信する。いくつかの実施形態のVSNマネージャ405は、管理者がこのデータを提供する1つ以上のインターフェース(例えば、グラフィカルユーザインターフェース、コマンドラインインターフェース、REST APIのセット)を提供する。いくつかの実施形態では、VSNについての構成データが、VSNの異なるスライス、スライスセレクタ構成(すなわち、異なるスライスのそれぞれにデータメッセージを割り当てるための特性)、スライス上の各ネットワークサービスについてのネットワークサービス構成、各ネットワークサービスがどのように実装されることになるか(例えば、VNF、CNF、又はPNFとして)、各ネットワークサービスについての位置(例えば、エッジクラウド、コアクラウド、若しくは他のデータセンタ)、及び/又は他のデータを指定する。
VSNコントローラ410は、集中型ストレージと、階層内の他のコントローラへのこの情報の分散とを調整する。いくつかの実施形態では、各データセンタ内のコントローラ415のスイートがVSNコントローラ410からVSN構成データを受信し、データセンタ内のエンティティをVSNを実装するように構成する。いくつかの実施形態では、各データセンタがこれらの下位レベルコントローラのそれ自体のスイートを有する。これらのコントローラスイートは、各データセンタ内のコントローラの同じセット(例えば、単一の会社によって提供されるコントローラのスイート)、又はコントローラの異なるセット(例えば、パブリッククラウドと比較して、プライベートエッジクラウド及びコアクラウドのためのコントローラの異なるセット)とすることができる。
第1のデータセンタ420内のコントローラスイート415は、ソフトウェア定義ネットワーキング(SDN)コントローラ425、計算コントローラ430、及びネットワークコントローラ435を含む。異なる実施形態は追加のコントローラを含んでもよく、多数のコントローラの機能性を単一のコントローラに組み合わせてもよいことを理解されたい。例えば、いくつかの実施形態は、VSNコントローラ410とコントローラスイート415内の他のコントローラ(例えば、オープンスタックコントローラ)との間のレイヤとして働くオーケストレータを含む、又はSDNコントローラ425の特徴をネットワークコントローラ435の特徴と組み合わせる。さらに、いくつかの実施形態は、データセンタ内のVSNに関連するストレージを管理するためのストレージコントローラを含む。
SDNコントローラ425は、スライスセレクタ440を構成する。この例では単一スライスセレクタ440がデータセンタ420において(例えば、ホストコンピュータ445の仮想化ソフトウェアにおいて、VMとして、又はホストコンピュータ445上のVM内で)動作するが、他の実施形態ではスライスセレクタ440がデータセンタ内で分散方式で実装されることを理解されたい。いくつかの実施形態では、SDNコントローラ425は、データメッセージをフローに正しく割り当て、データメッセージがデータセンタ420内の正しい順序で正しいネットワークサービスに送信されることを保証し、サービスチェイン動作を実行するために、フローエントリ又は他の構成データを有するスライスセレクタを構成する。加えて、ネットワークサービスをホストするがスライスセレクタはホストしないデータセンタ(例えば、電気通信プロバイダの例についてのコアクラウド、パブリック及び/又はプライベートクラウド)において、いくつかの実施形態のSDNコントローラは、出力ゲートウェイと同様に(逆方向データメッセージのためのスライス選択を実行してもよい)サービスチェイニングモジュールを構成する。
計算コントローラ430は、(例えば、この例ではVMとしての)VNFのインスタンス化及び構成を行う役割を果たす。いくつかの実施形態では、このVMは、指定されたネットワークサービスを実装するようにVMを構成する計算コントローラ430によってホストコンピュータ450上にインスタンス化される。いくつかの実施形態では、計算コントローラ430は、VMをインスタンス化するためにファイアウォール、ロードバランサ、又は他のネットワークサービスについてのテンプレートを使用し、次いで、ネットワーク管理者によって指定されたように、ネットワークサービスのための具体的な構成データをVMに提供する。さらに、いくつかの実施形態の計算コントローラ430はまた、データセンタ420に実装される任意のCNF及び/又はPNFを構成する役割を果たす。
ネットワークコントローラ435は、ネットワークサービスとスライスセレクタ440との間のネットワーク接続性を実装するために、転送要素(例えば、ソフトウェア転送要素455又はプログラマブルハードウェア転送要素のような他のタイプの転送要素)を構成する。この構成は、データセンタ内のエンティティ間でデータメッセージをトンネルするためにそれらのデータメッセージのカプセル化を実行するのと同様、例えばスライスの様々なエンティティ(スライスセレクタ及びネットワークサービス)を接続する論理転送プレーンに従う転送を含む。ホストコンピュータ450上に示されるソフトウェア転送要素455(例えば、仮想化ソフトウェアで動作する仮想スイッチ)に加えて、いくつかの実施形態では、同様のソフトウェア転送要素がホストコンピュータ445内で、スライスセレクタ440との間でデータメッセージを転送し、カプセル化/カプセル化解除することを実行する。いくつかの実施形態では(例えば、スライスセレクタがソフトウェア転送要素内で、又はソフトウェア転送要素とVMとの間で分散方式で実装される場合)、ネットワークコントローラ435はまた、スライスセレクタ構成を受信し、スライスセレクタを実装するように適切なネットワークエンティティを構成する。
コントローラスイート415内のこれらのコントローラに加えて、いくつかの実施形態は、1つ又は複数のWAN SDNコントローラ460も含む。WAN SDNコントローラ460は、必要に応じてデータセンタを相互接続する役割を果たし、そのために各データセンタ内のWANゲートウェイ465を構成する。これらのWANゲートウェイは、データセンタ間通信にMPLS、SD-WAN、又はその他の技術を使用してデータセンタを相互接続してもよい。多くの場合、すべてのデータセンタが直接通信を必要とするわけではない。例えば、電気通信の例では、エッジクラウドは、データトラフィックがエッジクラウド間ではなくエッジクラウドとコアクラウドとの間で送信されるため、互いに通信する必要がない場合がある。
いくつかの実施形態では、コントローラスイート415内のコントローラ及びWAN SDNコントローラ460と直接通信するのではなく、VSNコントローラ410が、各データセンタ内のエージェント及びWAN SDNコントローラ460のエージェントにデータを提供する。これらのエージェントは、(すべてのコントローラに対して一様なフォーマットで提供されてもよい)VSNコントローラ410からのデータを、様々なコントローラスイートが使用できるデータに変換する役割を果たす。いくつかの実施形態では、VSNコントローラ410はポリシーフォーマットのデータをローカルエージェントにプッシュし、ローカルエージェントはこのデータを、様々なSDNコントローラ、計算コントローラ、及び/又はネットワークコントローラに、それらのポリシーに従ってデータセンタ構成要素を設定するように指示するデータへと変換する。これにより、VSNコントローラ410は様々な異なる種類のコントローラスイート(例えば、異なるパブリッククラウドコントローラ、エンタープライズデータセンタコントローラスイート)と通信するために単一のフォーマットを使用することができる。同様に、WAN SDNコントローラ460について、このエージェントは、ポリシーをWAN設定命令に変換する。
上述のように、ネットワークスライスセレクタは、異なる実施形態では異なる技法を使用してデータメッセージをスライスに割り当ててもよい。スライス選択は、レイヤ2~レイヤ4(L2~L4)ヘッダを含むパケットヘッダ情報に基づいてもよく、及び/又は(例えば、レイヤ5~レイヤ7(L5~L7)ヘッダのデータに基づいてトラフィックを分類するために)ディープパケットインスペクションを実行することによってもよい。例えば、スライス選択はソースネットワークレイヤ(例えば、IP)アドレスを使用することによって単にソースデバイスに基づいてもよく、上位レイヤ(L5-L7)ヘッダを見ることによってトラフィックの種類/又は宛先ネットワークドメインに基づいてもよい。
加えて、いくつかの実施形態では、ネットワークスライスセレクタが(例えば、ユーザセッション、デバイスタイプ、又は他のデータに関する)接続に関する追加の情報を収集するために他の制御プレーン構成要素と統合し、この情報をスライス選択処理の一部として使用する(例えば、この収集された情報のみを使用する、又はこの情報をL2-L4及び/若しくはL5-L7パケットヘッダデータと組み合わせる)。そのような制御プレーン構成要素の例は、認証、許可、及び会計(AAA)プロトコル(例えば、リモート認証ダイヤルインユーザサービス(RADIUS))、ポリシー制御及び課金ルール機能(PCRF)、又はデバイス及び/又はユーザデータをスライスセレクタに提供することができる他のそのような構成要素を含む。
いくつかの実施形態では、ネットワークスライスセレクタは、接続の各データメッセージに対してディープパケットインスペクションを実行する必要がないように、ネットワークスライスへの接続をマッピングするための状態を維持する。また、いくつかの接続では、特定のデータメッセージにのみ、スライス選択の実行に必要なL5-L7ヘッダ情報が含まれる。
ディープパケットインスペクションを使用してネットワークスライス選択を実行する場合、特定のケースでは、接続の初期データメッセージに、スライスセレクタがスライスを正しく識別するために必要なL5-L7ヘッダ情報が含まれないことがある。例えば、エンドポイントデバイス(例えば、スマートフォン若しくはタブレットのようなモバイルデバイス、ラップトップ若しくはデスクトップコンピュータ、IoTデバイス、自動運転車、セキュリティシステムに属するスマートカメラ)とネットワークドメイン(例えば、www.netflix.com、www.google.comのようなウェブドメイン)との間の接続はしばしば、TCPハンドシェイクのような接続開始メッセージのセットで始まる。ハンドシェイクが完了すると、デバイスはネットワークドメインを含むhttp getメッセージなどを送信する。デバイスとネットワークドメインとの間で送信される後続のデータメッセージは、このような情報を含んでいなくてもよい。
(i)クライアント(例えば、エンドポイントデバイス)とサーバ(例えば、ウェブドメイン)との間で接続が正しく開始されること、及び(ii)ネットワークスライスが第1のメッセージに基づいて選択できない場合であっても、メッセージのすべてが正しいネットワークスライス上で送信されること、を保証しながら、接続のための正しいネットワークスライスを識別するために、異なる実施形態は異なる技法を使用する。いくつかの実施形態では、ネットワークスライスセレクタは、仮想サービスネットワークをわたって意図された宛先にこれらのメッセージを送信することなく、接続開始メッセージを終了するためのプロキシとして働く。他の実施形態では、スライスセレクタは、最初に接続開始メッセージをデフォルトネットワークスライスに渡し、次いで、ネットワークスライスが選択された後に、接続のための正しいネットワークスライス上でメッセージを再生する。
図5は、スライスセレクタがソフト終端プロキシとして動作する接続のためのメッセージを送信するための、エンドポイントデバイス505、スライスセレクタ510、出力ゲートウェイ515、及びネットワークドメイン520(例えば、サーバ)間の対話を示すフロー図を示す。この例はTCP3ウェイハンドシェイクを使用してエンドポイント装置505によって開始される接続を示すが、いくつかの実施形態のスライスセレクタ510は、他の種類の接続開始メッセージング(例えば、TLSハンドシェイク、UDP上のQUIC接続)に対して同様の終了を実行することも可能である。この例では、(例えば、SD-WAN又はMPLSによって接続される)プライベート及びパブリッククラウドのセットは、(スライスセレクタ510と出力ゲートウェイ515との間で)スライスされる仮想サービスネットワークをホストするが、出力ゲートウェイはこのVSNをインターネット(及びネットワークドメイン520)に接続する。
図に示すように、エンドポイントデバイス505(例えば、スマートフォン、自動運転車、IoTデバイス)は最初に、(例えば、ネットワークドメインの宛先IPアドレスを使用して)ネットワークドメイン520に向けられたTCP SYNメッセージを送信する。このようなメッセージは、開始される接続をネットワークスライスの1つへと割り当てるために使用するスライスセレクタ510についての有効なヘッダ情報(例えば、L5-L7ヘッダ情報)を持たないことがある。前述したように、いくつかの実施形態では、ネットワークスライスが用途指定及び/又はデバイス指定であり、待ち時間、帯域幅、ジッタ、又は異なるアプリケーション又はデバイスタイプの他の要件を満たすように構成される。ストリーミングビデオ、自動運転の乗り物、IoTデバイス、及び他のデバイス/アプリケーションはすべて、異なるSLAを有する異なるネットワークスライスによって満たされ得る異なる要件を有する。
ネットワークを介してインターネット(及び最終的にはネットワークドメイン520)に接続開始メッセージ(SYNメッセージ)を転送するのではなく、スライスセレクタ510は、接続開始のソフト終了を実行する。スライスセレクタ510は、SYNメッセージの記録(すなわち、メッセージ自体又はメッセージを再作成するのに十分なデータ)を格納し、SYN-ACKメッセージでエンドポイント装置505に応答する。このSYN-ACKメッセージは、ネットワークドメインがSYNメッセージを受信し、SYN-ACKメッセージで応答したかのようにフォーマットされる。これにより、エンドポイント装置505はACKメッセージを送信し、ネットワークドメイン520との接続がセットアップされたかのように動作する。スライスセレクタ505は後続の使用のために、全ての接続開始メッセージに関するデータを格納する。
接続の出現が適切にセットアップされたことに基づいて、次いでエンドポイント装置505は、データ要求メッセージ(又は他のメッセージ)を送信する。このメッセージには、通常、スライスセレクタがネットワークスライスに正しく接続を割り当てるために必要なL7情報(又はTLSサーバ名表示などの他の上位レイヤ情報)が含まれる。例えば、図6は、http getメッセージ600を概念的に示す。このようなメッセージは、ソース、宛先のIPアドレス、及びトランスポートレイヤプロトコルフィールドを含むL3ヘッダ(L2ヘッダなどは簡潔にするために図示されていない)と、ソース及び宛先のポート番号を含むL4ヘッダと、を有する。さらに、メッセージ600のL7ヘッダの一部は、http getコマンド(この場合、www.exampledomain.com)内のドメイン名を含む。
スライスセレクタ510は、データメッセージ(この場合はデータ要求)に対してディープパケットインスペクションを実行して、接続のための正しいネットワークスライスを識別する。いくつかの実施形態では、これはL5-L7ヘッダ(例えば、図6に示されるhttpデータ)をインスペクションすることを含む。さらに、スライスセレクタ510は後続のデータメッセージを処理する際に使用するために、選択されたネットワークスライスへの接続をマッピングする状態を格納する。いくつかの実施形態では、スライスセレクタは、このマッピングを、スライス識別子にマッピングされた接続5タプル(すなわち、ソース及び宛先ネットワークアドレス、トランスポートレイヤプロトコル、ソース及び宛先トランスポートレイヤポート)として格納する。さらに、いくつかの実施形態は同じネットワークスライスへの割り当てを必要とするであろう関連する接続を識別し、これらの接続についての状態も格納する。一例として、ストリーミングビデオセッションは、いくつかの実施形態では(オーディオのため、及び異なるビデオ解像度のため)複数の別個のTCP接続を含むだろう。
図7は、スライスセレクタによって格納されるいくつかの実施形態の接続マッピングテーブル700のエントリを示す。図示されているように、このテーブルはスライス識別子にマッピングされた5タプルによるエントリを含む。いくつかの実施形態では、これらのエントリは、スライスセレクタを実装するフローベースの転送要素のためのフローエントリとして生成される。各フローエントリについて、マッチング条件は接続5タプルで、そのアクションは指定されたスライスにデータメッセージを割り当てることである。この表700が示すように、単一のソースデバイス(例えば、IP1)は、複数の異なるネットワークスライスに割り当てられた複数の進行中の接続を(例えば、同時ウェブブラウジング接続及びオーディオストリームのために)有することができる。さらに、スライスセレクタは、複数の異なるデバイスのための接続を同じスライスに割り当てることができる(例えば、複数の自動運転車、2つのデバイスが同時にビデオをストリーミングする)。いくつかの実施形態では、5タプル以外の追加情報がマッチング条件(例えば、VLAN情報又は他の仮想ネットワーク識別子)に含まれる。
次いでスライスセレクタ510は、接続開始メッセージを宛先ネットワークドメインと交換し、今回は宛先ドメインではなくデバイスとして機能する。これらの接続開始メッセージは、選択されたネットワークスライス上のすべてのネットワークサービスが接続開始メッセージを処理するように、選択されたネットワークスライスを介して送信される。図示のように、スライスセレクタ510は、選択されたネットワークスライス及び出力ゲートウェイ515を介して、SYNメッセージをネットワークドメイン520に送信する。出力ゲートウェイ515は、いくつかの実施形態では、ネットワークドメイン520からの戻りトラフィックも選択されたネットワークスライスを介して送信できるように、スライスマッピング状態への接続も格納する。ネットワークドメイン520は、選択されたネットワークスライスを介して出力ゲートウェイ515が送信するSYN-ACKメッセージを返す。スライスセレクタ510がSYN-ACKメッセージを認識し、(選択されたネットワークスライスを介して)ネットワークドメインにACKメッセージを返すため、このメッセージはエンドポイントデバイス510に達しない。この時点で、全体の3ウェイハンドシェイクが完全に交換されたので、エンドポイントデバイス505とネットワークドメイン520との間で接続が完全に開始される。
次いで、スライスセレクタ510は選択されたネットワークスライスを介して、データ要求(すなわち、ディープパケットインスペクションが実行された最初のデータメッセージ)をネットワークドメイン520に送信することができる。接続のための後続のデータメッセージもエンドポイントデバイス505とネットワークドメイン520との間で交換され、(戻りトラフィックのための出力ゲートウェイ515と同様に)ディープパケットインスペクションを実行することなくこのトラフィックを選択されたネットワークスライスに割り当てるために、スライスセレクタ510が格納された状態を使用する。これにより、接続のすべてのデータメッセージに対してディープパケットインスペクションを実行することが回避され、これは、この接続に属するすべてのデータメッセージのL5~L7ヘッダに必要な情報がない可能性があるため、不可能な場合がある。図8はデータメッセージ700を概念的に示す。データメッセージ800は、データメッセージ600のものと同様のL3及びL4ヘッダを有するが、L7ヘッダは同一のネットワークドメイン情報を含まない。代わりに、このデータメッセージのL7部分はいくつかの実施形態のスライスセレクタには無用なペイロードデータ(例えば、ビデオデータ又はオーディオデータ)を含む。
図9は、接続ハンドシェイクを終了することによって、エンドポイントデバイスと宛先ネットワークドメインとの間の接続をVSNのネットワークスライスに割り当てるためのいくつかの実施形態の処理900を概念的に示す。いくつかの実施形態では、処理900が図5に示されるスライスセレクタ510などのスライスセレクタによって実行される。同様の処理は他の種類のネットワーク(例えば、パブリックインターネットに到達しないデータセンタ内通信又はデータセンタ間通信)におけるスライスセレクタによって実行され得る。
図示のように、処理900はエンドポイントデバイス(例えば、電話、自動運転車、タブレット、IoTデバイス)から接続開始メッセージを受信することによって(905において)開始する。このメッセージは、TCP SYNメッセージ、TLSハンドシェイクの最初のメッセージ、UDP上のQUICプロトコルメッセージ、又は他の接続開始メッセージであってもよい。次いでこの処理は、ハンドシェイクメッセージ(又はハンドシェイクメッセージの再作成に必要なデータ)のコピーを格納しながら、エンドポイントデバイスとの接続ハンドシェイクの残りを(910において)実行する。例えば、TCP3ウェイハンドシェイクの例では、スライスセレクタがこのハンドシェイクでサーバとして機能するエンドポイントデバイスとSYN-ACK及びACKメッセージを交換する。最適化されたシングルメッセージ接続開始(例えば、QUICプロトコル)の場合、この動作は必要ではなく、スライスセレクタは、エンドポイントデバイスとのハンドシェイクを実行することなく、初期メッセージ又は後続メッセージの一方に対してディープパケットインスペクションを実行する。
この接続がエンドポイントデバイス上でセットアップされると、処理900は、エンドポイントデバイスからの接続のための初期データメッセージを(915において)受信する。これは、図6に示すようなhttp getメッセージ、又は別のデータメッセージであってもよい。多くの場合、このデータメッセージはスライス選択を実行するために有効な情報を含むので、処理900は、(920において)接続のためのネットワークスライスを選択するためにデータメッセージを分析する。このディープパケットインスペクションは、コンタクトされるドメインの名前、(例えば、接続を開始するアプリケーションの種類を識別するために)使用中の特定のL7プロトコル、又はデータメッセージの上位レイヤヘッダの他の情報を調べてもよい。処理900はまた、(例えば、5タプルを使用して)選択されたネットワークスライスに接続をマッピングする状態を(925において)格納する。この情報は(例えば、接続のための新しいフローエントリを生成することによって)図7に示されるような接続マッピングテーブルに格納されてもよい。
次に、処理900は、エンドポイントデバイスとネットワークドメインとの間の接続を確立するために、接続ハンドシェイクメッセージを、選択されたネットワークスライスを介して宛先ネットワークドメインに(930において)送信する。このメッセージ交換では、スライスセレクタは、ネットワークドメインではなくエンドポイントデバイスとして機能し、ネットワークドメインサーバーが接続をセットアップできるようにする。これはまた、これらのサービスは後続のデータメッセージのために準備されるように、選択されたネットワークスライスのネットワークサービスが接続開始メッセージを処理することを可能にする(例えば、ファイアウォールはしばしば、原稿の3ウェイハンドシェイクメッセージを処理していないTCP接続について、データメッセージを拒否するように設定される)。
処理900はまた、選択されたネットワークスライスを介して宛先ネットワークドメインに初期データメッセージを(935において)送信する。さらに、処理900は、格納された接続マッピング状態を使用して、選択されたネットワークスライスを介して、接続のための後続のデータメッセージを(940において)受信し、送信する。格納されたこの状態により、スライスセレクタは、ディープパケットインスペクションを実行する必要なく(これは前述のように、後続のデータメッセージの多くでは不可能な場合もある)、エンドポイントデバイスからの接続についての各データメッセージを選択されたネットワークスライスへと割り当てることができる。
前述したように、スライスセレクタで接続開始メッセージを終了するのではなく、いくつかの実施形態は、最初にこれらのメッセージをデフォルトのネットワークスライスの方向へと通過させ、次いでネットワークスライスが選択された後、接続のための正しいネットワークスライスを介してメッセージを再生する。図10は、スライスセレクタ及び出力ゲートウェイがハンドシェイク再生を実行する接続のためのメッセージを送信するための、エンドポイントデバイス1005、スライスセレクタ1010、出力ゲートウェイ1015、及びネットワークドメイン1020(例えば、サーバ)の間の対話を示すフロー図を図示する。この例はTCP3ウェイハンドシェイクを使用してエンドポイント装置1005によって開始される接続を示すが、いくつかの実施形態のスライスセレクタ1010は、他の種類の接続開始メッセージング(例えば、TLSハンドシェイク、UDP上のQUIC接続)に対して同様の再生を実行することも可能である。この例では、(例えば、SD-WAN又はMPLSによって接続される)プライベート及びパブリッククラウドのセットは、(スライスセレクタ1010と出力ゲートウェイ1015との間で)スライスされる仮想サービスネットワークをホストするが、出力ゲートウェイ1015はこのVSNをインターネット(及びネットワークドメイン1020)に接続する。
図に示すように、エンドポイントデバイス1005(例えば、スマートフォン、自動運転車、IoTデバイス)は最初に、(例えば、ネットワークドメインの宛先IPアドレスを使用して)ネットワークドメイン1020に向けられたTCP SYNメッセージを送信する。このようなメッセージは上述したように、開始される接続をネットワークスライスの1つに割り当てるために使用するスライスセレクタ1010についての有効なL5-L7ヘッダ情報を持たない。この場合、ハンドシェイクを終了してエンドポイントデバイスに応答するのではなく、スライスセレクタ1010は、TCP SYNメッセージをデフォルトのネットワークスライスに割り当て、このネットワークを介してネットワークドメイン1020に(出力ゲートウェイ1015を介して)メッセージを送信する。さらに、スライスセレクタ1010及び出力ゲートウェイ1015の両方はSYNメッセージの記録(すなわち、メッセージ自体、又はメッセージを再作成するのに十分なデータ)を格納する。ネットワークドメイン1020は、出力ゲートウェイ1015がデフォルトスライスに割り当てるSYN-ACKメッセージで応答し、スライスセレクタは、エンドポイントデバイス1005からのACKメッセージを同様に扱う。
エンドポイントデバイス1005とネットワークドメイン1020との間の接続セットアップにより、次いでエンドポイントデバイス1005はデータ要求メッセージ(又は他のメッセージ)を送信する。このメッセージは通常、用途指定又はデバイス指定のネットワークスライスに接続を正しく割り当てるために、スライスセレクタによって必要とされるL5~L7情報を有する。上述の図6は、そのようなメッセージ600の例を概念的に示す。
スライスセレクタ1010は、データメッセージ(この場合はデータ要求)に対してディープパケットインスペクションを実行して、接続のための正しいネットワークスライスを識別する。いくつかの実施形態では、これはL5-L7ヘッダ(例えば、図6に示されるhttpデータ)をインスペクションすることを含む。さらに、スライスセレクタ1010は後続のデータメッセージを処理する際に使用するために、選択されたネットワークスライスへの接続をマッピングする状態を格納する。いくつかの実施形態では、スライスセレクタは、上述した図7に示すように、このマッピングを、スライス識別子にマッピングされた接続5タプル(すなわち、ソース及び宛先ネットワークアドレス、トランスポートレイヤプロトコル、ソース及び宛先トランスポートレイヤポート)として格納する。さらに、いくつかの実施形態は同じネットワークスライスへの割り当てを必要とするであろう関連する接続を識別し、これらの接続についての状態も格納する。一例として、ストリーミングビデオセッションは、いくつかの実施形態では(オーディオのため、及び異なるビデオ解像度のため)複数の別個のTCP接続を含むだろう。
しかしながら、選択したスライスにデータメッセージを送信する前に、スライスセレクタは選択されたネットワークスライスを介して接続開始メッセージを再生する。選択されたスライスのさまざまなネットワークサービスは、まだ接続開始メッセージを処理していないため、これらのデータメッセージがハンドシェイクを再生せずに送信された場合、接続のデータメッセージを拒否する可能性がある。したがって、図示のように、スライスセレクタ1010は、その格納されたデータを使用して、TCP3ウェイハンドシェイクメッセージを、これらのメッセージの情報も格納している出力ゲートウェイ515と交換する。SYN、SYN-ACK、及びACKメッセージは、選択されたネットワークスライスを介してスライスセレクタ1010と出力ゲートウェイ1015との間で送信される。これらのメッセージは、エンドポイントデバイス1005とネットワークドメイン1020との間の接続がすでに確立されているので、仮想サービスネットワークの外部(すなわち、エンドポイントデバイス又はパブリックインターネットのいずれにも)に送信されない。出力ゲートウェイ1015は、いくつかの実施形態では、ネットワークドメイン1020からの戻りトラフィックが選択されたネットワークスライスを介して送信され得るように、スライスマッピング状態への接続も格納する。
これらのメッセージが再生されたなら、選択されたスライスのネットワークサービスは、接続開始メッセージを処理したであろうし、エンドポイントデバイスと宛先ネットワークドメインとの間の後続のデータメッセージトラフィック用に準備される。図示するように、スライスセレクタ1010は、選択されたネットワークスライスを介して、データ要求(すなわち、ディープパケットインスペクションが実行された最初のデータメッセージ)をネットワークドメイン1020に送信する。接続のための後続のデータメッセージもエンドポイントデバイス1005とネットワークドメイン1020との間で交換され、(戻りトラフィックのための出力ゲートウェイ1015と同様に)ディープパケットインスペクションを実行することなくこのトラフィックを選択されたネットワークスライスに割り当てるために、スライスセレクタ1010が格納された状態を使用する。これにより、接続のすべてのデータメッセージに対してディープパケットインスペクションを実行することが回避され、これは、この接続に属するすべてのデータメッセージのL5~L7ヘッダに必要な情報がない可能性があるため(図8のデータメッセージ800で示されているように)、不可能な場合がある。
図11は接続ハンドシェイクメッセージを再生することによって、エンドポイントデバイスと宛先ネットワークドメインとの間の接続をVSNのネットワークスライスに割り当てるための、いくつかの実施形態の処理1100を概念的に示す。いくつかの実施形態では、処理1100が図10に示されるスライスセレクタ1010などのスライスセレクタによって実行される。同様の処理は他の種類のネットワーク(例えば、パブリックインターネットに到達しないデータセンタ内通信又はデータセンタ間通信)におけるスライスセレクタによって実行され得る。
図示のように、処理1100はエンドポイントデバイス(例えば、電話、自動運転車、タブレット、IoTデバイス)から接続開始メッセージを受信すること(1105で)によって開始する。このメッセージは、TCP SYNメッセージ、TLSハンドシェイクの最初のメッセージ、UDP上のQUICプロトコルメッセージ、又は他の接続開始メッセージであってもよい。次いでこの処理は、エンドポイントデバイスとネットワークドメインとの間の接続を確立するために、接続開始メッセージ(すなわち、初期メッセージ及び任意の後続のメッセージ)をデフォルトのネットワークスライスを介して宛先ネットワークドメインに(1110において)送信する。同様に、エンドポイント領域から送信された接続開始ハンドシェイクの戻りメッセージについて、スライスセレクタはデフォルトスライスを介してこれらのメッセージを受信し、エンドポイントデバイスに送信する。
接続開始ハンドシェイクの間、この処理はハンドシェイクメッセージ(すなわち、メッセージのコピー、又はメッセージを再作成するために必要なデータ)に関するデータを(1115において)格納する。例えば、TCP3ウェイハンドシェイクの場合には、スライスセレクタはSYN及びACKメッセージを送信するためにデータを格納する。シングルメッセージ接続開始(例えば、QUICプロトコル)について、この動作は必要ではなく、いくつかの実施形態のスライスセレクタは、デフォルトスライスを使用する必要性を回避するために、初期メッセージに対してディープパケットインスペクションを実行する。
この接続がエンドポイントデバイス上でセットアップされると、処理1100は、(1120において)エンドポイントデバイスからの接続のための初期データメッセージを受信する。これは、図6に示すようなhttp getメッセージ、又は別のデータメッセージであってもよい。多くの場合、このデータメッセージはスライス選択を実行するために有効な情報を含むので、処理1100は、(1125において)接続のためのネットワークスライスを選択するためにデータメッセージを分析する。このディープパケットインスペクションは、コンタクトされるドメインの名前、(例えば、接続を開始するアプリケーションのタイプを識別するために)使用中の特定のL7プロトコル、又はデータメッセージの上位レイヤヘッダの他の情報を調べてもよい。処理1100はまた、(例えば、5タプルを使用して)選択されたネットワークスライスに接続をマッピングする状態を(1130において)格納する。この情報は(例えば、接続のための新しいフローエントリを生成することによって)図7に示されるような接続マッピングテーブルに格納されてもよい。
次に、処理1100は、選択されたネットワークスライスを介して、出力ゲートウェイとの接続ハンドシェイクメッセージを(1135において)再生する。このメッセージ交換では、スライスセレクタはクライアント(すなわち、エンドポイントデバイス)として機能し、出力ゲートウェイはサーバ(すなわち、ネットワークドメイン)として機能する。TCP3ウェイハンドシェイクの例では、スライスセレクタはSYNメッセージを送信し、出力ゲートウェイからSYN-ACKメッセージを受信して、ACKメッセージを送信する。これは、これらのサービスは後続のデータメッセージのために準備されるように、選択されたネットワークスライスのネットワークサービスが接続開始メッセージを処理することを可能にする目的を果たす(例えば、ファイアウォールはしばしば、元の3ウェイハンドシェイクメッセージを処理していないTCP接続について、データメッセージを拒否するように設定される)。
処理1100はまた、選択されたネットワークスライスを介して宛先ネットワークドメインに初期データメッセージを(1140において)送信する。さらに、処理900は、格納された接続マッピング状態を使用して、選択されたネットワークスライスを介して、接続のための後続のデータメッセージを(1145において)受信し、送信する。格納されたこの状態により、スライスセレクタは、ディープパケットインスペクションを実行する必要なく(これは前述のように、後続のデータメッセージの多くでは不可能な場合もある)、エンドポイントデバイスからの接続についての各データメッセージを選択されたネットワークスライスへと割り当てることができる。
図12はハンドシェイク再生の場合の出力ゲートウェイのためのいくつかの実施形態の処理1200を概念的に示す。図10に示す例(すなわち、VSNが電気通信サービスプロバイダアクセスネットワーク上に実装されている例)では、処理1200を実行する出力ゲートウェイは、VSNをパブリックインターネットに接続するゲートウェイである。
図示するように、処理1200は、デフォルトのネットワークスライスを介してエンドポイントデバイスからの接続ハンドシェイクメッセージのセットを受信し、デフォルトのネットワークスライスを介してエンドポイントデバイスへの接続のために宛先ネットワークドメインからのリターンメッセージを送信することによって(1205において)開始する。この出力ゲートウェイは、エンドポイントデバイスから送信されたメッセージを受信し、戻りトラフィックの受信とスライスセレクタ(及び最終的にはエンドポイントデバイス)に向けたデフォルトのネットワークスライスへの送信に加えて、これらのメッセージを宛先に送信する。さらに、処理1200はハンドシェイクメッセージ(すなわち、メッセージのコピー、又はメッセージを再作成するために必要なデータ)に関するデータを(1210において)格納する。例えば、TCP3ウェイハンドシェイクの場合、出力ゲートウェイはSYN-ACKメッセージを送信するためにデータを格納する。シングルメッセージ接続開始(例えば、QUICプロトコル)について、この動作は必要ではなく、いくつかの実施形態のスライスセレクタは、デフォルトスライスを使用する又はハンドシェイク再生を実行する必要性を回避するために、初期メッセージに対してディープパケットインスペクションを実行する。
エンドポイントデバイスとネットワークドメインとの間の接続がセットアップされると、処理1200は、(1215において)選択されたネットワークスライスを介してスライスセレクタから接続開始メッセージの再生を受信する。この時点で、スライスセレクタはエンドポイントデバイスからデータメッセージを受信し、ディープパケットインスペクションを使用して接続を可能なネットワークスライスの特定の1つに割り当て、次いで最初の接続開始メッセージを出力ゲートウェイに送信することによって再生処理を開始する。処理1200は、これらのメッセージのために記憶されたデータを使用して、選択されたネットワークスライスを介して、スライスセレクタとの接続ハンドシェイクの完全な再生を(1220において)実行する。すなわち、この出力ゲートウェイは、初期接続開始メッセージをハンドシェイクメッセージデータの格納されたセットに対応するものとして認識し、再生を行うためにその格納されたデータのセットを使用する。例えば、TCP3ウェイハンドシェイクの例では、出力ゲートウェイはSYNメッセージとして受信し、SYN-ACKメッセージをスライスセレクタに送信して、ACKメッセージを受信する。これにより、選択したネットワークスライスのネットワークサービスがハンドシェイクメッセージの完全なセットを処理し、接続に属するデータの残りに対して準備できるようになる。
処理1200は、(例えば、5タプルを使用して)選択されたネットワークスライスに接続をマッピングする状態を(1225において)格納する。この情報は(例えば、ゲートウェイがフローベースの転送要素である場合に接続のための新しいフローエントリを生成することによって)図7に示されるような接続マッピングテーブルに格納されてもよい。格納されたこの状態を使用して、処理1200は受信し、接続に属する後続の戻りデータメッセージを、選択されたネットワークスライスを介してエンドポイントデバイスに(すなわち、パブリックネットワークドメインから)(1230において)送信する。
他の実施形態は、接続をネットワークスライスにマッピングする状態を構築するために、他の技術を使用してもよい。いくつかの実施形態では、スライスセレクタは(例えば、制御プレーンチャネルを介して)登録された接続-スライスマッピングテーブルをスライスセレクタに提供する外部構成要素と統合し、このスライスセレクタはステートフルスライス選択を実行するためにこの外部構成要素を使用する(それによって、スライスセレクタがディープパケットインスペクションを実行する要件を回避する)。異なる実施形態では、外部構成要素がエンドポイントデバイスが接続を開始するときに、完全に事前に登録された接続-スライスマッピングテーブルを提供してもよく、テーブルに徐々に更新を登録してもよい。一例として、いくつかの実施形態のスライスセレクタは、5Gネットワークスライス選択機能(NSSF)と統合することができ、NSSFが接続-スライスマッピングを定義することを可能にする。いくつかのそのような実施形態ではNSSFがスライスセレクタにマッピング状態を提供し、そのスライスセレクタは、データパケットのための正しいスライスを選択するためにその状態を使用する。すなわち、オフライン外部構成要素は接続-スライスマッピング状態を提供し、スライスセレクタはデータプレーンにおいてこの状態を実施する。
接続のためのネットワークスライスを選択するために最初のデータメッセージがインスペクションされ、後続のデータメッセージがスライスセレクタによって格納された状態に基づいてネットワークスライスに割り当てられる、ステートフルスライス選択は、同じスライスセレクタ(及び出力ゲートウェイ)が接続のためのすべてのデータトラフィックを処理する限り機能する。しかしながら、異なる地理的範囲に関連付けられた多数のスライスセレクタを有する分散ネットワーク(例えば、電気通信サービスプロバイダアクセスネットワーク)では、モバイルデバイス(例えば、スマートフォン、タブレット、自動運転車)は、接続を維持しながら、(例えば、同じ集中ユニットにトラフィックを提供する基地局のグループ間で1つの基地局から別の基地局に移動するとき、WiFiネットワークからセルラーネットワークに移動するとき)第1のスライスセレクタによって提供される1つの地理的範囲から、第2のスライスセレクタによって提供される別の地理的範囲に移動してもよい。異なる実施形態では、エンドポイントデバイスの一部に対するアクションを必要とせずにその状態が維持されることを保証するために、異なる技法が使用される。
いくつかの実施形態では、第2のスライスセレクタ(モバイルデバイスが移動する領域についてのスライスセレクタ)が、接続のためのすべてのデータメッセージを第1のスライスセレクタ(接続が開始されたときにモバイルデバイスが位置していた領域についてのスライスセレクタ)に転送する。すなわち、第2のスライスセレクタは、第1のスライスセレクタが接続のためのスライスマッピング状態の位置であることを示すデータを受け取り、したがって、接続のためのデータトラフィックを第1のスライスセレクタに転送する。
図13は、第1のスライスセレクタ領域から第2のスライスセレクタ領域に移動するモバイルデバイス1300を概念的に示しており、この第2のスライスセレクタは、2つの段階1305~1310を介してモバイルデバイス1300から第1のスライスセレクタにデータトラフィックを転送する。第1の段階1305に示されるように、モバイルデバイス1300は、第1のスライスセレクタ1320によってサービスされる第1の地理的領域1315に位置する間に、パブリックネットワークドメイン(図示せず)との接続を開始する。隣接する(場合によっては、部分的に重複する)地理的領域1325が第2のスライスセレクタ1330によってサービスされる。いくつかの実施形態では、各スライスセレクタは、複数の分散ユニット(DU)範囲(すなわち、複数のセルタワー)を包含する5G集中ユニット(CU)に対応するエッジクラウド内に位置する。
モバイルデバイス1300が((例えば、単一のPDUセッションにおいて)デバイスによって開始された複数の接続のうちの1つのみであってもよい)接続を開始すると、第1のスライスセレクタ1320は、アクセスネットワークを介して実装される仮想サービスネットワークのいくつかのスライスのうちの1つスライス1335に接続を割り当てる。図示のように、ネットワークスライス1335は出力ゲートウェイ(図示せず)を介してインターネットにデータを送信する前に、3つのVNFA~Cを含む。第1のスライスセレクタ1320は、ネットワークスライスを選択するためのディープパケットインスペクションを実行した後、接続(この場合、IP1とIP2との間のTCP接続)を選択されたネットワークスライスにマッピングする状態データを格納する。上述したように、この状態データは、フローエントリ(又はフローエントリのセット)、接続テーブル内のエントリとして、又は別の方法で格納されてもよい。この接続に属するモバイルデバイス1300からの後続のトラフィックについて、スライスセレクタ1320は、選択されたネットワークスライス1335にトラフィックを割り当てる(デバイス1300からの他の接続が他のスライスに割り当てられてもよい)。接続の戻りトラフィックは、出力ゲートウェイでインターネットから受信され、この出力ゲートウェイは、このトラフィックを同じネットワークスライス1335に割り当てるために、同様の格納された状態を使用する。この戻りトラフィックは、ネットワークスライス1335のVNFによって逆の順序で処理され、次いでスライスセレクタ1300からモバイルデバイス1300に送信される。
しかしながら、第2の段階ではモバイルデバイス1300は第2の地理的領域1325に移動し、したがって、もはや第1のスライスセレクタ1320に接続しない(すなわち、モバイルデバイス1300は第1のスライスセレクタ1320ではなく、第2のスライスセレクタ1330にトラフィックを供給する別の基地局に接続される)。第2のスライスセレクタ1330は装置1300からのこのデータトラフィックを正しいネットワークスライスに割り当てるための接続-スライスマッピング状態を有さず、多くの場合、データメッセージはネットワークスライスに接続を割り当てるためのスライスセレクタ1330のためのL5-L7ヘッダに必要なデータを含まない。したがって、第2のスライスセレクタ1330はこのトラフィックを第1のスライスセレクタ1320に転送し、この第1のスライスセレクタは、トラフィックを選択されたネットワークスライス1335に割り当てるためにその記憶された状態情報を使用する。第2の地理的領域1325にある間に装置1300によって開始される新しい接続は、第2のスライスセレクタ1330によって正しいスライスに割り当てられるだろう。
第2のスライスセレクタ1330が第1のスライスセレクタ1320にデータトラフィックを送信するために、いくつかの実施形態では、第2のスライスセレクタ1330が2つのスライスセレクタ間のルーティング可能なネットワークを介してパケットを送信する。すなわち、そのような実施形態では、スライスセレクタが実装される2つのエッジクラウドの間にルーティング可能なネットワークが存在し、2つのスライスセレクタ間でデータトラフィックを送信するためにこのネットワークを使用することができる。他の実施形態では、データトラフィックは、(2つのエッジクラウドが同じコアクラウドに接続する場合には)コアクラウド若しくは他のWAN接続を介して、又はVSNコントローラを介して送信することができる(ただし、大量のトラフィックがスライスセレクタ間で送信される場合、この解決策は最適ではない)。
いくつかの実施形態では、戻りトラフィックを処理し、この戻りトラフィックをデバイス1300に送信するために、スライスセレクタが接続状態を必要としないので、進行中の接続の逆方向(戻り)トラフィックは異なる実施形態では異なるように扱われる。しかしながら、多くの場合、ネットワークサービスのうちの少なくとも1つは、ステートフルであり、スライスセレクタと同じ位置(例えば、同じエッジクラウド)に実装され、したがって、それらのネットワークサービスの同じ実装(すなわち、第2のスライスセレクタ1330を有する第2のエッジクラウド内のVMではなく、第1のスライスセレクタ1320を有する第1のエッジクラウド内のVM)のために、戻りトラフィックはそのエッジクラウドに送信される必要がある。次いで、第1のスライスセレクタ1320は第2のスライスセレクタ1330がモバイルデバイス1300へ(例えば、RANを介して)データを転送するために、この戻りトラフィックを第2のスライスセレクタ1330に転送する。いくつかの実施形態では、コアクラウド内のサービスチェイニングモジュールは、モバイルデバイス1300で発信されたトラフィックを受信した第1のスライスセレクタ1320に戻りトラフィックを自動的に送信するために、その学習機能(例えば、MAC学習機能)を使用する。さらに、いくつかの実施形態では、2つのスライスセレクタの間のネットワーク上に戻りトラフィックを自動的に転送するように、第1のスライスセレクタ1320が第2のスライスセレクタ1330から接続のためのトラフィックを受信するときに同様の学習機能を使用する(その結果、そのトラフィックは第2のスライスセレクタ1330に戻る)。例えば、2つのスライスセレクタの間にルーティング可能なネットワークがある場合、第1のスライスセレクタ1320は、格納されたMACアドレスを使用してこのルータに戻りトラフィックを転送することができるように、第2のスライスセレクタ1330からトラフィックを受信したルータのMACアドレスを格納する。他の実施形態は、スライス上で(すなわち、第1のネットワークサービスの前に)別個のイングレスゲートウェイ機能を使用し、これは正しいスライスセレクタに戻りトラフィックを送信する役割を果たす。
第2のスライスセレクタ1330が特定の接続のためのデータトラフィックを第1のスライスセレクタ1320に転送するために、第2のスライスセレクタは、第1のスライスセレクタ1320が接続のための状態情報を有することを示すデータを受信する必要がある。異なる実施形態では、第1のスライスセレクタが(i)状態位置情報をネットワークコントローラ(例えば、前述のVSNコントローラ)にプッシュし、そこから第2のスライスセレクタが状態位置情報を取り出す、又は(ii)状態位置情報を第2のスライスセレクタにプッシュする。
図14は、状態位置情報1400をセントラルコントローラ1425にプッシュする第1のスライスセレクタ1420と、3つの段階1405~1415を介して状態位置情報をセントラルコントローラ1425から取り出す第2のスライスセレクタ1430との例を概念的に示す。第1の段階1405に示すように、図13の例と同様に、モバイルデバイス1435は、第1のスライスセレクタ1420に関連付けられた第1の地理的領域1440に位置している間に、パブリックネットワークドメインとの接続を開始する。第1のスライスセレクタは、接続をネットワークスライス1445に割り当て、この接続に属するモバイルデバイス1440からのデータトラフィックをこのスライスに(すなわち、このスライスのネットワークサービスに)転送し、選択されたネットワークスライスに接続をマッピングする接続状態を格納する。
さらに、第1のスライスセレクタ1420は、第1のスライスセレクタがこの接続のためのスライスマッピング状態の位置であることを指定する情報を、ネットワークコントローラ1425にプッシュする。このネットワークコントローラは、いくつかの実施形態では、VSNが実装されている複数のデータセンタのコントローラにVSN構成データを提供するVSNコントローラである。具体的には、いくつかの実施形態では、第1のスライスセレクタ1420は、スライスマッピング状態位置データを、そのデータセンタにローカルなコントローラのうちの1つ(例えば、スライスセレクタを構成するSDNコントローラ)に提供し、次に、その状態位置データが他のデータセンタのスライスセレクタによってアクセスされ得るように、状態位置データをVSNコントローラに渡す。
第2の段階1410では、モバイルデバイス1435が第2のスライスセレクタ1430に関連付けられた第2の地理的範囲1450に移動した。第2のスライスセレクタ1430が認識しない進行中の接続に関するデータメッセージをデバイス1435から受信すると、このスライスセレクタ1430は、(例えば、そのデータセンタにローカルなコントローラのうちの1つにそのような要求を行い、データセンタがVSNコントローラに要求を送信することによって)コントローラ1425に要求を送信する。コントローラ1425はこの状態位置情報1400を格納し、したがって、(例えば、第2のスライスセレクタ1430のデータセンタにローカルなコントローラを介して)情報1400を第2のスライスセレクタ1430に返す。
この状態位置情報に基づいて、第3の段階1415では第2のスライスセレクタ1430がこの接続のためのデータメッセージ(及び接続のための後続のデータメッセージ)を第1のスライスセレクタ1420に転送することができ、これは選択されたネットワークスライス1445上にデータを転送することができる。いくつかの実施形態では、データセンタ間接続(すなわち、ルーティング可能なネットワーク)がエッジクラウド間に存在し、他の実施形態ではこのトラフィックがコアクラウド又は他のネットワークを介して1つのスライスセレクタから別のスライスセレクタに渡される。
他の実施形態では、接続が開始されたスライスセレクタは、接続を開始したモバイルデバイスが新しい地理的領域に移動した場合に、他のスライスセレクタが利用可能な状態位置情報を有するように、その状態位置情報を他のスライスセレクタ(例えば、地理的に隣接するスライスセレクタ)にプッシュする。図15は、第1のスライスセレクタ1515が、2つの段階1505~1515を介して第2のスライスセレクタ1520に状態位置情報1500をプッシュする例を概念的に示す。第1の段階1505に示すように、図13の例と同様に、モバイルデバイス1525は、第1のスライスセレクタ1515に関連付けられた第1の地理的領域1530に位置している間に、パブリックネットワークドメインとの接続を開始する。第1のスライスセレクタ1515は、接続をネットワークスライス1535に割り当て、この接続に属するモバイルデバイス1525からのデータトラフィックをこのスライスに(すなわち、このスライスのネットワークサービスに)転送し、選択されたネットワークスライスに接続をマッピングする接続状態を格納する。
さらに、第1のスライスセレクタ1515は、第1のスライスセレクタ1515がこの接続のためのスライスマッピング状態の位置であることを指定する情報を、第2のスライスセレクタ1520にプッシュする。異なる実施形態は、異なるやり方で状態位置情報を送信する。いくつかの実施形態では、この情報は、2つのスライスセレクタ間で送信される(ただし、スライスセレクタの制御プレーンインターフェース間の制御プレーンデータとしての)データトラフィックに関して、データネットワークを介して(例えば、ルーティング可能なデータセンタからデータセンタへのネットワークを介して、エッジクラウドを介して)送信され、一方、他の実施形態では、状態位置情報がコントローラにプッシュされ(すなわち、図14に示されるように)、このコントローラは次に、状態位置情報を第2のスライスセレクタ1520に自動的にプッシュする。この状態位置情報は、異なる実施形態では、隣接する地理的範囲を有する特定のスライスセレクタ、特定のネットワーク(例えば、特定のネットワークサービスプロバイダ)のためのすべてのスライスセレクタ、又はスライスセレクタの他の組合せにプッシュされてもよい。
第2の段階1510では、モバイルデバイス1525が第2のスライスセレクタ1520に関連付けられた第2の地理的範囲1540に移動した。進行中の接続のためにデバイス1525からデータトラフィックを受信すると、第2のスライスセレクタ1520は、そのデータトラフィックを既に格納している状態位置データにマッピングし、データメッセージを第1のスライスセレクタ1515に転送し、選択されたネットワークスライス1535上にデータを転送することができる。いくつかの実施形態では、データセンタ間接続(すなわち、ルーティング可能なネットワーク)がエッジクラウド間に存在し、他の実施形態ではこのトラフィックがコアクラウド又は他のネットワークを介して1つのスライスセレクタから別のスライスセレクタに渡される。
モバイルデバイスが接続を開始した元のスライスセレクタに接続のためのデータが常に転送されるのではなく、他の実施形態は、接続のためのスライスマッピング状態をモバイルデバイスが移動する他のスライスセレクタへと提供する。第2のスライスセレクタ(すなわち、モバイルデバイスが移動する範囲へのスライスセレクタ)は接続のためのスライスマッピング状態を受信し、したがって、(接続が開始された)第1のネットワークスライスセレクタを伴うことなく、接続のためのデータメッセージをネットワークスライスに転送することができる。
図16は、第1のスライスセレクタ領域から第2のスライスセレクタ領域に移動するモバイルデバイス1600を概念的に示しており、この第2のスライスセレクタは、2つの段階1605~1610を介して、接続のためのスライスマッピング状態を受信し、そのスライスマッピング状態を使用して接続のためのデータトラフィックを転送する。第1の段階1605に示されるように、モバイルデバイス1600は、第1のスライスセレクタ1620によってサービスされる第1の地理的領域1615に位置している間に、パブリックネットワークドメイン(図示せず)との接続を開始する。隣接する(場合によっては、部分的に重複する)地理的領域1625が第2のスライスセレクタ1630によってサービスされる。いくつかの実施形態では、各スライスセレクタは、複数の分散ユニット(DU)範囲(すなわち、複数のセルタワー)を包含する5G集中ユニット(CU)に対応するエッジクラウド内に位置する。
モバイルデバイス1600が((例えば、単一のPDUセッションにおいて)デバイスによって開始された複数の接続のうちの1つのみであってもよい)接続を開始すると、第1のスライスセレクタ1620は、アクセスネットワークを介して実装されVSNのいくつかのスライスのうちの1つスライス1635に接続を割り当てる。図示のように、ネットワークスライス1635は出力ゲートウェイ(図示せず)を介してインターネットにデータを送信する前に、3つのVNFA~Cを含む。第1のスライスセレクタ1620は、ネットワークスライスを選択するためのディープパケットインスペクションを実行した後、接続(この場合、IP1とIP2との間のTCP接続)を選択されたネットワークスライスにマッピングする状態データを格納する。上述したように、このデータは、フローエントリ(又はフローエントリのセット)、接続テーブル内のエントリとして、又は別の方法で格納されてもよい。この接続に属するモバイルデバイス1600からの後続のトラフィックについて、スライスセレクタ1620は、選択されたネットワークスライス1635にトラフィックを割り当てる(デバイス1600からの他の接続が他のスライスに割り当てられてもよい)。接続の戻りトラフィックは、出力ゲートウェイでインターネットから受信され、この出力ゲートウェイは、このトラフィックを同じネットワークスライス1635に割り当てるために、同様の格納された状態を使用する。この戻りトラフィックは、ネットワークスライス1635のVNFによって逆の順序で処理され、次いでスライスセレクタ1600からモバイルデバイス1600に送信される。
しかしながら、第2の段階ではモバイルデバイス1600は第2の地理的領域1625に移動し、したがって、もはや第1のスライスセレクタ1620に接続しない(すなわち、モバイルデバイス1600は第1のスライスセレクタ1620ではなく、第2のスライスセレクタ1630にトラフィックを供給する別の基地局に接続される)。この場合、モバイルデバイス1600から第1のスライスセレクタ1620にデータを転送するのではなく、第1のスライスセレクタ1620は、接続のためのスライスマッピング状態を第2のスライスセレクタ1630へと提供している。したがって、第2のスライスセレクタ1630は、ディープパケットインスペクションを実行する必要なしに、接続のために選択されたネットワークスライス1635にこのデータを直接転送することができる。
いくつかの実施形態では、スライスのための1つ又は複数のネットワークサービスがステートフルであり、スライスセレクタと共にエッジクラウド内に実装される。サービスがステートレスである場合、トラフィックが第2のスライスセレクタ1630に移動すると、新しいエッジクラウド内のこれらのサービスのインスタンスは、問題なくトラフィックを処理することができる。しかしながら、エッジクラウド内のネットワークサービスがステートフルである場合、いくつかの実施形態は、第1のスライスセレクタ1620を有するエッジクラウド内のサービスのインスタンスから、第2のスライスセレクタ1630を有するエッジクラウド内のネットワークサービスのインスタンスに状態を転送する。いくつかの実施形態によって利用される別のオプションは、ネットワークサービスインスタンスを第1のエッジクラウドから第2のエッジクラウドに移行することである。ただし、ネットワークサービスインスタンスが多数の接続のトラフィックを処理している場合、このオプションには次いで他の接続を中断するという欠点がある。いくつかの他の実施形態では、選択されたスライスのためのネットワークサービスのいずれかがステートフルであり、スライスセレクタを用いてエッジクラウド内に実装される場合、次いで接続のためのスライスマッピング状態は第2のスライスセレクタに提供されず、代わりに、図13~図15に上述したように、データトラフィックを第1のスライスセレクタに転送される。
異なる実施形態では、第2のスライスセレクタ1630が第1のスライスセレクタから、又はネットワークコントローラ(例えば、前述のVSNコントローラ)から直接その状態を受信してもよい。いくつかのそのような実施形態では、第1のスライスセレクタは、(i)第2のスライスセレクタに直接(例えば、デバイスが第2のスライスセレクタの地理的領域に移動する前に)状態をプッシュする、又は(ii)第2のスライスセレクタが状態を取り出すネットワークコントローラに状態をプッシュする。他のそのような実施形態では、第1のスライスセレクタは状態に関する位置情報をネットワークコントローラにプッシュし、第2のスライスセレクタはこの位置情報をネットワークコントローラから取り出し、次いで、第1のスライスセレクタから状態を取り出すためにその位置情報を使用する。
図17は、スライスマッピング状態1700をセントラルコントローラ1725にプッシュする第1のスライスセレクタ1720と、3つの段階1705~1715を介してスライスマッピング状態をセントラルコントローラ1725から取り出す第2のスライスセレクタ1730の一例を概念的に示す。第1の段階1705に示すように、図16の例と同様に、モバイルデバイス1735は、第1のスライスセレクタ1720に関連付けられた第1の地理的領域1740に位置している間に、パブリックネットワークドメインとの接続を開始する。第1のスライスセレクタ1720は、接続をネットワークスライス1745に割り当て、この接続に属するモバイルデバイス1740からのデータトラフィックを選択されたスライスに(すなわち、このスライスのネットワークサービスに)転送し、選択されたネットワークスライスに接続をマッピングする接続状態1700を格納する。
さらに、第1のスライスセレクタ1720は、他のスライスセレクタが必要に応じてこの状態を取り出すことができるように、スライスマッピング状態1700への接続をネットワークコントローラ1725にプッシュする。このネットワークコントローラは、いくつかの実施形態では、VSNが実装されている複数のデータセンタのコントローラにVSN構成データを提供するVSNコントローラである。具体的には、いくつかの実施形態では、第1のスライスセレクタ1720は、スライスマッピング状態1700を、そのデータセンタにローカルなコントローラのうちの1つ(例えば、スライスセレクタを構成するSDNコントローラ)に提供し、次に、その状態が他のデータセンタのスライスセレクタによってアクセスされ得るように、状態をVSNコントローラに渡す。
第2の段階1710では、モバイルデバイス1735が第2のスライスセレクタ1730に関連付けられた第2の地理的範囲1750に移動した。第2のスライスセレクタ1730が認識しない進行中の接続に関するデータメッセージをデバイス1735から受信すると、このスライスセレクタ1730は、(例えば、そのデータセンタにローカルなコントローラのうちの1つにそのような要求を行い、データセンタがVSNコントローラに要求を送信することによって)コントローラ1725に要求を送信する。コントローラ1700は、要求内で指定された接続についてのスライスマッピング情報1400を格納し、したがって、(例えば、第2のスライスセレクタ1730のデータセンタにローカルなコントローラを介して)状態1700を第2のスライスセレクタ1730に返す。
このスライスマッピング状態に基づいて、第3の段階1715において、第2のスライスセレクタ1730は、(この接続のための後続のデータメッセージと同様に)モバイルデバイス1735から受信されたデータメッセージを処理し、選択されたネットワークスライス(すなわち、接続のためのスライスマッピング状態において指定されたスライス)上にこのデータメッセージを転送することができる。
他の実施形態では、接続が開始されたスライスセレクタは状態位置情報のみをコントローラに提供し、他のスライスセレクタは状態位置情報を取り出し、それを使用して第1のスライスセレクタから直接スライスマッピング状態を取り出すことを可能にする。図18A~Bは、4つの段階1805~1820にわたって、状態位置情報1840をコントローラ1830にプッシュする第1のスライスセレクタ1825と、状態位置情報1840を取り出し、第1のスライスセレクタ1830からスライスマッピング状態1800を取り出すためにその状態位置情報1840を使用する第2のスライスセレクタ1835との例を概念的に示す。第1の段階1805に示すように、図16の例と同様に、モバイルデバイス1845は、第1のスライスセレクタ1825に関連付けられた第1の地理的領域1850に位置している間に、パブリックネットワークドメインとの接続を開始する。第1のスライスセレクタ1825は、接続をネットワークスライス1855に割り当て、この接続に属するモバイルデバイス1845からのデータトラフィックを選択されたネットワークスライス1855に(すなわち、このスライスのネットワークサービスに)転送し、選択されたネットワークスライスに接続をマッピングする接続状態1800を格納する。
さらに、第1のスライスセレクタ1825は、第1のスライスセレクタがこの接続のためのスライスマッピング状態の位置であることを指定する状態位置情報1840を、ネットワークコントローラ1830にプッシュする。このネットワークコントローラは、いくつかの実施形態では、VSNが実装されている複数のデータセンタのコントローラにVSN構成データを提供するVSNコントローラである。具体的には、いくつかの実施形態では、第1のスライスセレクタ1825は、スライスマッピング状態位置データ1840を、そのデータセンタにローカルなコントローラのうちの1つ(例えば、スライスセレクタを構成するSDNコントローラ)に提供し、次に、その状態位置データが他のデータセンタのスライスセレクタによってアクセスされ得るように、状態位置データをVSNコントローラに渡す。
第2の段階1810では、モバイルデバイス1845が第2のスライスセレクタ1835に関連付けられた第2の地理的範囲1860に移動した。第2のスライスセレクタ1835が認識しない進行中の接続に関するデータメッセージをデバイス1845から受信すると、このスライスセレクタ1835は、(例えば、そのデータセンタにローカルなコントローラのうちの1つにそのような要求を行い、データセンタがVSNコントローラに要求を送信することによって)コントローラ1830に要求を送信する。コントローラ1830はこの状態位置情報1840を格納し、したがって、(例えば、第2のスライスセレクタ1835のデータセンタにローカルなコントローラを介して)情報1840を第2のスライスセレクタ1835に返す。
この状態位置情報に基づいて、第3段階1815において、第2スライスセレクタ1830は、第1スライスセレクタ1825に接続のためのスライスマッピング状態の要求を送信する。この要求は、いくつかの実施形態では接続を(例えば、5タプルによって)指定し、スライスマッピング状態の要求として第1のスライスセレクタ1825によって認識される特定の手法でフォーマットされる。これに応答して、第1のスライスセレクタ1825は、接続のためのスライスマッピング状態1800を第2のスライスセレクタ1835に送る。いくつかの実施形態ではルーティング可能なデータセンタ間接続がエッジクラウド間に存在し、他の実施形態では要求及び後続の応答がコアクラウド又は他のネットワークを介して1つのスライスセレクタから別のスライスセレクタに渡される。
第4の段階1820において、第2のスライスセレクタ1835は、(この接続のための後続のデータメッセージと同様に)モバイルデバイス1845から受信されたデータメッセージを処理し、選択されたネットワークスライス1855(すなわち、接続のためのスライスマッピング状態において指定されたスライス)上にこのデータメッセージを転送することができる。
さらに他の実施形態では、接続が開始されたスライスセレクタは、接続を開始したモバイルデバイスが新しい地理的領域に移動した場合に、他のスライスセレクタが利用可能な接続についてのスライスマッピング状態を有するように、そのスライスマッピング状態を他のスライスセレクタ(例えば、地理的に隣接するスライスセレクタ)にプッシュする。図19は、2つの段階1905~1910にわたって、スライスマッピング状態1900を第2のスライスセレクタ1920にプッシュする第1のスライスセレクタ1915の例を概念的に示す。第1のステージ1905に示すように、図16の例と同様に、モバイルデバイス1925は、第1のスライスセレクタ1915に関連付けられた第1の地理的領域1930に位置している間に、パブリックネットワークドメインとの接続を開始する。第1のスライスセレクタ1915は、接続をネットワークスライス1935に割り当て、この接続に属するモバイルデバイス1925からのデータトラフィックをこのスライスに(すなわち、このスライスのネットワークサービスに)転送し、選択されたネットワークスライスに接続をマッピングする接続状態を格納する。
さらに、第1のスライスセレクタ1915は第2のスライスセレクタ1920への接続のためにスライスマッピング状態1900をプッシュし、接続がネットワークスライス1935に割り当てられていることを示す。異なる実施形態は、異なるやり方でスライスマッピング状態を送信する。いくつかの実施形態では、この状態がデータネットワークを介して(例えば、データセンタ間のルーティング可能なネットワークを介して、エッジクラウドを介して)送信され、一方、他の実施形態では、この状態がコントローラにプッシュされ(すなわち、図17に示されるように)、コントローラは次に、この状態を第2のスライスセレクタ1920に自動的にプッシュする。このスライスマッピング状態は、異なる実施形態では、隣接する地理的範囲を有する特定のスライスセレクタ、特定のネットワーク(例えば、特定のネットワークサービスプロバイダ)のためのすべてのスライスセレクタ、又はスライスセレクタの他の組合せにプッシュされてもよい。
第2の段階1910では、モバイルデバイス1925が第2のスライスセレクタ1920に関連付けられた第2の地理的範囲1940に移動した。進行中の接続のためにデバイス1925からデータトラフィックを受信すると、第2のスライスセレクタ1920は、(この接続のための後続のデータメッセージと同様に)モバイルデバイス1925から受信されたデータメッセージを処理し、選択されたネットワークスライス1935(すなわち、接続のためのスライスマッピング状態で指定されたスライス)上にこのデータメッセージを転送することができる。
上記のいくつかの例では、第1のスライスセレクタがスライスマッピング状態(又は状態位置情報)を第2のコントローラにプッシュする。いくつかの実施形態では、第1のスライスセレクタの地理的領域内で接続を開始するモバイルデバイスが隣接する地理的領域のいずれかに移動する場合、第1のスライスセレクタは、そのスライスマッピング状態(又はそれらの接続の状態位置情報)の全てを、隣接する地理的領域のスライスセレクタにプッシュする。他のそのような実施形態では、第1のスライスセレクタは、デバイスが移動する可能性がある隣接する地理的領域についてのスライスセレクタに状態情報をプッシュするため、モバイルデバイスの位置データ(そのデータが利用可能である場合)を使用する。
図20は、いくつかの実施形態に係る、スライスマッピング状態をその隣接する地理的領域2005の全てにプッシュする第1の地理的領域に関連付けられた第1のスライスセレクタ2000を概念的に示す。この例では、第1の地理的領域2005が6つの隣接する地理的領域2010~2035を有する。これらの地理的領域2005~2035は、この例では全て円形であり等しいサイズであるが、実際の地理的領域は様々な理由(例えば、異なるスライスセレクタが異なる数の基地局に関連付けられ、異なる基地局が異なる関連付けられた地理的領域を有する)のために、サイズ及び形状が変化し得ることを理解されたい。第1の地理的領域2005に位置するモバイルデバイスによって接続が開始されると、この領域に関連付けられたスライスセレクタ2000は、スライスマッピング状態を、隣接する地理的領域2010~2035に関連するスライスセレクタのすべてにプッシュする。
いくつかの実施形態は、スライスマッピング状態(又は状態位置情報)を直接隣接する領域(すなわち、接続が開始される領域と部分的に重なり合うか、又は隣接する領域)にプッシュするのみであり、他の実施形態は、状態を追加の領域(例えば、すべての領域、接続が開始される領域の隣接する領域のすべてに隣接する領域)にプッシュする。いくつかの実施形態では、スライスセレクタがスライスマッピング状態(又は状態位置情報)をプッシュする全ての領域のリストで構成され、(例えば、データセンタ間の接続を介して情報を送信することによって)この状態を他の領域のスライスセレクタに直接プッシュする。モバイルデバイスが異なる領域に移動し、その領域のためのスライスセレクタがスライスマッピング状態を使用してモバイルデバイスからの接続のためのデータトラフィックを処理すると、いくつかの実施形態では、新しい領域のためのスライスセレクタがモバイルデバイスが移動し続ける場合に、その状態をその隣接領域のためのスライスセレクタにもプッシュする。
他の実施形態のスライスセレクタは、隣接領域のスライスセレクタに状態を自動的に分散させるセントラルコントローラ(例えば、VSNコントローラ)にその状態をプッシュし、この場合、スライスセレクタは、コントローラで処理されるので、その状態をプッシュするスライスセレクタのリストを用いて構成される必要はない。
上述のように、いくつかの実施形態はスライスマッピング状態(又は状態位置情報)を特定の隣接領域に集中コンピュータで管理されてプッシュするために、モバイルデバイスのためのより正確な位置データを使用する。図21は、第1の地理的領域2105内を移動するモバイルデバイス2125と、そのモバイルデバイスによって開始される接続のためのスライスマッピング状態を、デバイス2125が移動している隣接領域のみにプッシュするその領域のためのスライスセレクタ2100とを概念的に示す。図に示されるように、モバイルデバイス2125は領域2105の中心により近い位置から、領域2105とその隣接領域2115との重複に近い位置に移動した。さらに、モバイルデバイスの移動のベクトルは、デバイスがすぐに領域2110に移動することができることを示す。したがって、この位置情報に基づいて、第1のスライスセレクタ2100は、モバイルデバイス2125によって開始された任意の接続のためのスライスマッピング状態を、領域2110及び2115のためのスライスセレクタにプッシュする(しかし、その他の図示された隣接領域2120のためのスライスセレクタにはプッシュしない)。異なる実施形態は、スライスマッピング状態(又は状態位置情報)を特定の隣接領域にいつプッシュするかに関する異なるヒューリスティックを使用することができる(例えば、近傍領域の閾値距離内の絶対位置を使用する、近傍領域に向かう移動を示す方向ベクトルを使用する、又は他のヒューリスティックを使用する)。
上記の例はすべて、物理インフラストラクチャ(例えば、電気通信サービスプロバイダアクセスネットワーク)上に実装された単一の仮想サービスネットワークを示す。しかしながら、いくつかの実施形態では、仮想サービスネットワークは階層的にスライスされる。すなわち、仮想サービスネットワークのスライスは、それ自体、スライスセレクタ及び複数のネットワークスライスを有する仮想サービスネットワークである。
図22は、このような階層型仮想サービスネットワークの例を概念的に示す。具体的には、この図は、各々が複数のスライスを有する2つの別個の仮想サービスネットワーク2210と2215とから選択するスライスセレクタ2205を有するプロバイダインフラストラクチャ2200を示す。プロバイダインフラストラクチャ2200は、様々なデバイス2220(例えば、コンピュータ、スマートフォン、タブレット、自動運転車、IoTデバイス)からデータトラフィックを受信し、このデータトラフィックを2つの異なる下位レベル仮想サービスネットワーク2210及び2215のうちの1つに割り当てる、スライスセレクタ2205を有するそれ自体のトップレベル仮想サービスネットワークである。
例えば、いくつかの実施形態の電気通信サービスプロバイダネットワークでは、モバイルネットワークオペレータ(MNO)がアクセスネットワーク及びコアネットワークの物理インフラストラクチャ2200(すなわち、RAN及びEPCインフラストラクチャ)を所有し、MNOに加入するデバイスからのトラフィックを処理するようにスライスセレクタ2205を構成する。さらに、MNOは、その物理インフラストラクチャを、同じインフラストラクチャを使用する加入者デバイスも有する1つ又は複数のモバイル仮想ネットワークオペレータ(MVNO)にリースすることができる。これらのMVNOは、場合によってはそれらの仮想インフラストラクチャも追加のMVNO又は他のエンティティにリースする。図22の例では、MNOが(それ自体の加入者デバイスのための)テナントAのVSN2210と(MVNOの加入者デバイスのための)テナントBのVSN2215とから選択するようにスライスセレクタ2205を構成することができる。
例えば、MNOによって構成されるスライスセレクタ2205は、ソースデバイスに基づいて(例えば、ソースネットワークアドレスによって)VSN2210又はVSN2215のいずれかにデータメッセージを割り当てる。したがって、MVNOに関連するソースデバイスからのデータメッセージはVSN2210に送信され、MVNOに関連するソースデバイスからのデータメッセージはMVNOによって構成されるVSN2215に送信される。追加のMVNOがインフラストラクチャもリースする場合、その時スライスセレクタ2205は、選択する追加のVSNを有することになる(各MVNOがスライスセレクタと、それ自体のVSNのスライスのためのネットワークサービスのセットとを構成することができる)。
VSN2210並びに2215のそれぞれは、それ自体のそれぞれのスライスセレクタ2225及び2230も有する。この例では、これらのスライスセレクタ2225及び2230のそれぞれは、2つの可能なネットワークスライスから選ぶが、トップレベルスライスセレクタ2205が選ぶ多数のVSNをプロバイダインフラストラクチャが有することができるのと同様に、VSNのそれぞれがしばしば多数のスライスを含むことになることを理解されたい。いくつかの実施形態では、テナントVSNのためのこれらのスライスセレクタ2210及び2215がデータメッセージヘッダの様々な態様に基づいて追加のスライス選択を実行する。例えば、いくつかの実施形態ではトップレベルスライスセレクタ2205がソースデバイスネットワークアドレスに基づいてVSNを選択する一方で、下位レベルスライスセレクタ2210及び2215は上述のステートフル方式でスライスにデータメッセージを割り当てることができる(例えば、アプリケーションアウェア方式でスライスに接続を割り当てるためにディープパケットインスペクションを使用する)。
図23は、プロバイダ及びテナントスライスセレクタ(並びにネットワークスライスのネットワークサービス)の、複数のデータセンタ2305~2320にわたる分散を概念的に示す。図示のように、この例では、プロバイダスライスセレクタ2325及びテナントスライスセレクタ2330の両方がエッジクラウド2305並びに2310のそれぞれに実装される。さらに、図示されていないが、それぞれの他のテナントスライスセレクタは(他のテナントスライスセレクタがコアクラウドに実装されていない限り)エッジクラウドのそれぞれに実装される(いくつかの実施形態ではそれらのテナントVSNのスライスのいずれについてもネットワークサービスのいずれもエッジクラウドでインスタンス化されていない場合を可能にする)。さらに、図2に示すように、図示のネットワークスライス2300のネットワークサービス(VNFA~D)は、エッジクラウド2305及び2310、コアクラウド2315、並びにパブリッククラウド2320の間で分散される。
単一レベルのスライスセレクタが異なるやり方(例えば、VM又は仮想化ソフトウェア内で動作するフローベースの転送要素として、フィールドプログラマブルゲートアレイ物理転送要素として、VMとソフトウェア転送要素のポートとの間で実行するモジュールの別個のセットとして)で実装されてもよいのと同様に、異なる実施形態は、複数レベルのスライスセレクタ2325及び2330を異なるやり方で実装する。スライスセレクタのフォームファクタがVM又はVM内で実行される転送要素である場合、いくつかの実施形態は、プロバイダスライスセレクタ2325の各インスタンス及びテナントスライスセレクタ2330(及び任意の他のテナントスライスセレクタ)の各インスタンスに対して別個のVMを使用する。これにより、例えば、プロバイダ管理者は、VMと、プロバイダスライスセレクタ2325のための転送要素とを、VM及びテナントスライスセレクタの各々のための転送要素と別々に構成することが可能になる。
この場合、アクセスネットワークがデータメッセージを受信すると、(例えば、RANを介した任意の予備処理の後に)メッセージは、最初にプロバイダスライスセレクタ2325に送られる。プロバイダスライスセレクタ転送要素がテナントVSNのうちの1つ(又はプロバイダ自身のVSN、事実上別のテナントVSN)を選択した後、プロバイダスライスセレクタ2325は同じエッジクラウド(すなわち、この例では、エッジクラウド2305)内の選択されたテナントVSNについてのスライスセレクタ2330にデータメッセージを送信する。いくつかの実施形態では、プロバイダスライスセレクタ2325は、サービスチェイニング技術を使用してデータメッセージをテナントスライスセレクタ2330に送信し、他の実施形態では、プロバイダスライスセレクタ2325は、この時点でデータメッセージの処理を終了し、単に、データメッセージを適切なテナントスライスセレクタ(例えば、スライスセレクタ2330)に送信するように構成される。
このテナントスライスセレクタ2330は、データメッセージを受信し、その選択されたスライスについてスライス選択及びサービスチェイン化を実行し(すなわち、図3に示すのと同じ方法で)、次いで、出力ゲートウェイを介してデータメッセージを送信する。ネットワークが複数のデータセンタに分散されている場合(つまり、この例に示すように)、テナントVSN実装には、いくつかの実施形態では各データセンタ内のサービスチェインモジュールが含まれる。いくつかのそのような実施形態では、プロバイダスライスセレクタ2325がサービスチェイニングを実行しない(すなわち、テナントスライスセレクタ2330及び/又はサービスチェイニングモジュールはテナントネットワークスライスの完了後にプロバイダスライスセレクタにデータトラフィックを返さず、したがって、プロバイダサービスチェイニングモジュールは他のデータセンタでは必要とされない)。
図23の例では、プロバイダスライスセレクタのテナントスライスセレクタへのマッピングは1:1である。ただし、他の実施形態では、トップレベル(プロバイダ)スライスセレクタが下位レベル(テナント)スライスセレクタよりも分散される場合がある。例えば、5Gアクセスネットワークではいくつかの実施形態におけるプロバイダスライスセレクタが各DUで実施され、様々なテナントのためのスライスセレクタは各CUで実施されてもよい。いくつかのそのような実施形態では、テナントスライスセレクタは、どのプロバイダスライスセレクタにリターントラフィックを送信すべきかを決定するためにMAC学習を使用する。多くの場合、テナントスライスセレクタのみがスライスマッピングへのステートフル接続を使用するので、異なるテナントスライスセレクタに関連する領域間の移動のみが、図13~19を参照して上述した状態共有又は状態位置共有アプリケーションの適用を引き起こす(すなわち、プロバイダスライスセレクタが、ソースネットワークアドレス又はソースデバイスに基づく別の値に基づいてネットワークスライスにデータメッセージを割り当てる場合、ステートフルマッピングは必要とされない)。この状況では、テナントスライスセレクタは、正しいプロバイダスライスセレクタに戻りトラフィックを送信するために学習されたMACアドレスを使用し、プロバイダスライスセレクタは、トラフィックが1つのプロバイダスライスセレクタから別のプロバイダスライスセレクタに送信される必要がないため、デバイスの現在位置に対する正しいプロバイダスライスセレクタとなるだろう。
いくつかの実施形態では、異なるレベルのスライスセレクタを別々に実装するのではなく、下位レベル(テナント)スライスセレクタはトップレベル(プロバイダ)スライスセレクタと同じVM及び/又は転送要素内に実装される。例えば、いくつかのそのような実施形態では、フローエントリの第1のセットがプロバイダスライスセレクタを実装し、フローエントリの別個のセットがテナントスライスセレクタのそれぞれを実装する。フローエントリのこれらの別個のセットのうちのどれが評価されるか(すなわち、テナントスライスセレクタのうちのどれがデータメッセージを評価するか)はフローエントリの第1のセットのうちのどれが第1のスライスセレクタによってマッチングされるか(すなわち、どのテナントVSNにデータメッセージが割り当てられるか)に依存する。
スライス選択がソフトウェア転送要素のポートに関連するサービスとして実行されるスライスセレクタのためのサービス挿入モデルでは、いくつかの実施形態がトップレベル(プロバイダ)スライス選択及び下位レベル(テナント)スライス選択の両方を、別々のサービスとして次々に実行する。すなわち、データメッセージは最初にプロバイダスライスセレクタによってインターセプトされ、次に、どのテナントVSNが選ばれたかに基づいて、データメッセージは、テナントスライスセレクタの1つによってインターセプトされる。
図24は、いくつかの実施形態に係るプロバイダインフラストラクチャ2200及び複数のテナントVSN2210及び2215の分岐制御を概念的に示す。図4のように、VSNマネージャ及びコントローラ2400(以降、VSNコントローラと呼ぶ)は、ネットワーク全体のための制御の集中化された最上位レイヤである。いくつかの実施形態では、このVSNコントローラがプロバイダVSNコントローラ2405と、テナントVSNのそれぞれに対応するテナントVSNコントローラ2410及び2415との別個のインスタンスを有する。
別個のコントローラインスタンス2405~2415は、いくつかの実施形態において、異なる管理特権を備えるログインによって(すなわち、役割ベースのアクセス制御を使用して)アクセスされる。すなわち、いくつかの実施形態のVSNコントローラインターフェース(CLI、GUI、API)は、プロバイダ管理者アカウントへの異なるログインと、各テナント管理者のための別々のアカウントとを提供する。これらの異なるアカウントは、それぞれのVSNを構成するために、VSNコントローラに異なる構成データセットを提供することができる。例えば、いくつかの実施形態では、プロバイダVSNコントローラ2405は、トップレベルスライスセレクタ、トップレベルの任意のサービスと選択されたテナントVSNとの間のチェイニング、及びデータセンタ間の物理ネットワーク及びゲートウェイをプロバイダが構成することを可能にする。さらに、このプロバイダVSNコントローラ2405は、いくつかの実施形態ではプロバイダVSNのライフサイクルを管理する(例えば、スライスセレクタ、ゲートウェイ、及び他の構成要素をインスタンス化する)、及び/又はプロバイダVSNエンティティ及び様々なテナントVSNをモニタ及び最適化する機能を含む。
いくつかの実施形態では、テナントVSNコントローラ2410及び2415のそれぞれは、それぞれのテナントがそれらのそれぞれのVSNを別個に構成することを可能にする。管理者のために異なるログインを使用することによって、コントローラ2400は、他のテナントVSN又はプロバイダVSNのいずれも構成せずに、自身のVSNのみを構成するために、テナント管理者を分離する。いくつかの実施形態では、各テナント管理者がそれぞれのスライスセレクタ、それらの様々なスライスのネットワークサービス、スライスセレクタとネットワークサービスとの間のチェイニング、及びテナントの構成の他の態様を設定することができる。さらに、いくつかの実施形態では、テナントVSNコントローラ2410及び2415はそれぞれ、テナントVSN及び様々なネットワークサービスのライフサイクルを管理する機能、及び/又は様々なネットワークサービス(及び全体としてのスライス)をモニタ及び最適化する機能を含む。
図4に関して上述したように、いくつかの実施形態では、各データセンタがそれ自体のコントローラのセットを有する。いくつかの実施形態では、これらのコントローラはトップレベル構成データと下位レベル構成データとを区別しない。代わりに、VSNコントローラ2400は、構成データ(スライスセレクタとネットワークサービスとの間でデータメッセージをトンネルするために転送要素を構成するためのネットワーク構成データ、スライスセレクタ構成データ、ネットワークサービス構成データ、ネットワークサービス構成データ)をこれらのコントローラに提供し、これらのコントローラは、異なるレベルに対して同じ方法で様々なエンティティを構成する。例えば、図24の例では、プロバイダVSNコントローラ2405は、SDNコントローラがプロバイダスライスセレクタを構成するために使用するスライスセレクタ設定を提供するが、VNFを設定するための計算コントローラについてのVNF構成データは提供しない。代わりに、計算コントローラについてのこのデータは、様々な異なるテナントVSNコントローラインスタンス2410及び2415によって提供される。これらのVSNコントローラインスタンスはまた、SDNコントローラがスライスセレクタを構成するために使用するためのスライスセレクタ構成データを提供する。いくつかの実施形態では、データセンタ間でデータトラフィックを伝送するためのWAN設定が、プロバイダVSNコントローラ2405によってこれらのゲートウェイを管理するSDNコントローラにのみ提供される(すなわち、テナントが物理インフラストラクチャを管理しないため)。
図22の上記の例では、下位レベルスライスセレクタ2225及び2230がそれぞれのVSN2210及び2215内のデータメッセージを処理する第1のエンティティである。いくつかの実施形態は、データメッセージを処理するために、スライスセレクタがVSN内の第1のエンティティであることを必要とする。しかしながら、他の実施形態では、第1のネットワークスライスセレクタがVSNのうちの1つを選択した後、このVSN(トップレベルVSNのスライスである)は下位レベルスライスセレクタがその下位レベルVSN内のスライスを選択する動作を実行する前に、データメッセージに適用されるネットワークサービスを含んでもよい。同様に、いくつかの実施形態では、所与のスライスに対して異なるサービスが適用された後、仮想サービスネットワーク内のすべてのネットワークスライスのデータメッセージにネットワークサービスが適用されてもよい。
図25はネットワークサービスがスライスセレクタ間に挿入され、及び/又は異なるスライスのサービスが完了した後の階層VSNの例を概念的に示す。この図は、2つのテナントVSN2510と2515とから選ぶスライスセレクタ2505を備えるプロバイダインフラストラクチャVSN2500を示す。
第1のテナントVSN2510は、2つのスライス2525と2530との間で選択するスライスセレクタ2520を含み、これらの2つのスライスのそれぞれについて異なるネットワークサービスのセットを備える。さらに、図示のように、どのスライスにデータメッセージが割り当てられているかにかかわらず、そのデータメッセージは、スライス2525又はスライス2530のいずれかが完了した後の処理のためにVNFEに送られる。例えば、接続を介して送信されるデータの種類にかかわらず、そのテナントは、課金目的のために、その接続のすべてを処理する単一の計量サービスを望む場合がある。この場合、データメッセージがどのスライスに割り当てられているかに関係なく、スライスセレクタ(又はスライスが実装されている最終データセンタのサービスチェインモジュール)はVNFEを実装するVMにデータメッセージを送信する。ただし、他の実施形態では、これらの接続がすべて同じVNFに送信されると、すべての接続のQoSパラメータを制御することがより困難になるため、スライス外のこのようなネットワークサービスを許可しない。この場合、VNFEの別個のインスタンスが、スライス2525及び2530のそれぞれの中に含まれることになる。
プロバイダスライスセレクタ2505が第2のテナントVSN2515にデータメッセージを割り当てると、この例では、プロバイダスライスセレクタが最初に、ネットワークサービスVNFAのインスタンスにデータメッセージを送信し、次に、第2のテナントVSN2515のスライスセレクタ2535にデータメッセージを送信する。これにより、プロバイダは、(課金目的のため、RAN若しくはEPC機能を提供するため、又はその他の目的のために)特定のテナントVSNに送信されるすべてのデータトラフィックに適用されるようにネットワークサービスを構成できる。しかしながら、他の実施形態は、下位レベルスライスセレクタが上位レベルスライスセレクタの後にデータメッセージが送信される第1のエンティティであり、ネットワークサービスのすべてをネットワークスライスの最下位レイヤに集中させることを必要とする。
上記の例は2つのレベルのスライス選択、例えば、インフラストラクチャを所有するMNOと、そのインフラストラクチャをMNOからリースする1つ又は複数のMVNOとを示す。多くの場合、MVNOはまた、それらの仮想インフラストラクチャを1つ又は複数の追加のMVNOにサブリースし、第3のレベルのスライス選択が使用されることになる。この場合、MNOスライスセレクタは、ソースネットワークアドレス解析に基づいてテナントVSNにデータメッセージを割り当てることができ、次いでMVNOスライスセレクタの第1のレベルは、よりきめの細かいネットワークアドレス解析に基づいてそのデータメッセージをサブテナントVSNに割り当てる(例えば、/24サブネット内のIPアドレスを有するすべてのソースデバイスは第1のレベルのテナントVSNに割り当てられ、その後、これはソース複数/28サブネット間で細分化される)。次いで、第3のレベルのスライス選択は、上述したようなディープパケットインスペクションに基づいてステートフルスライス選択を実行してもよい。
図26は、3つのレベルのスライシングを持つVSNの階層セットの例を概念的に示す。上記の例のように、プロバイダインフラストラクチャVSN2600は、2つの異なるテナントVSN2610及び2615にデータメッセージを割り当てるスライスセレクタ2605を有する。第1のテナントVSN2610は、ネットワークサービスの異なるセットを備える2つのスライスにデータメッセージを割り当てるスライスセレクタ2620を有する。
一方で、第2のテナントVSN2615は、(i)第3のレベルのVSN2630、又は(ii)VSN2615の構成の一部であるVNFのセットを疎なるネットワークスライス2635のいずれかにデータメッセージを割り当てるスライスセレクタ2625を有する。例えば、VSN2615が第1のMVNOによって管理される場合、VSN2630は仮想インフラストラクチャの一部をリースする第2のMVNOによって管理される場合があり、一方、ネットワークスライス2635は第1のMVNOに加入するデバイスとの間のデータトラフィックのためのものである。このVSN2630は、(例えば、アプリケーション認識方法で、L2-L4ヘッダに基づいて、又は他要因を使用して)2つのスライス2645と2650とから選ぶ第2のMVNOによって構成された第3レベルスライスセレクタ2640を有する。
さらに、第1のMVNOがアプリケーション認識スライス選択を実行する場合、スライスセレクタ2625は、VSN2630と、異なるアプリケーションのための複数の異なるネットワークスライスとから選ぶことができる。この場合、スライスセレクタ2625は、ソースネットワーク宛先の特定のセットにマッチングするデータトラフィックをVSN2630に送信し、次いで、アプリケーションレイヤデータに基づいて、その他のソースネットワーク宛先のためのデータトラフィックをスライスするように構成することができる。スライスセレクタ2625のフローベースの転送要素の実装では、VSN2630のフローエントリ(ソースアドレスに基づくマッチング)が他のネットワークスライスのフローエントリよりも高い優先順位を有し、そうでなければアプリケーション認識フローエントリにマッチングする第2のMVNOのデータトラフィックはネットワークスライスの1つに送られないことになる。
しかしながら、他の実施形態は、スライスセレクタがVSNと、さらに細分化されないネットワークスライスとから選択することを可能にしない。この場合、スライスセレクタ2625は、第1のMVNOに対して構成されたスライス2635と任意の他のスライスとから選択するスライスセレクタを用いて、VSN2630と同じく第1のMVNOによって構成される別のVSNとから選択するように構成されるだろう。
スライス選択を使用するVSNの上記の例は、(階層的スライス選択と単一レベルスライス選択とについての両方の)電気通信プロバイダネットワークであるが、この仮想サービスネットワークは他のタイプのネットワークについても構成できることを理解されたい。例えば、データセンタ内、又は多数のデータセンタにまたがるネットワークの場合、仮想化ソフトウェア(例えば、VM又はネットワークの他のエンドポイントをホストするホストコンピュータ内)又はVMは、ネットワークエンドポイントによって送信されるデータメッセージのスライス選択を実装するように構成することができる。
図27は、データセンタ2700内のVSNの実装を概念的に示す。異なる実施形態では、このデータセンタ2700は、(例えば、パブリックデータセンタの仮想プライベートクラウド内のスライス選択を使用する)パブリッククラウドであってもよく、プライベートデータセンタ(例えば、構内データセンタ)であってもよい。この例では、データトラフィックが第1のゲストVM2705及び第2のゲストVM2710から送信される。
いくつかの実施形態では、これらの2つの仮想マシン2705及び2710が同じ論理ネットワークに属する(例えば、それらは同じ論理スイッチに接続され、それらは1つ以上の論理ルータを介して接続される2つの異なる論理スイッチに接続される)。いくつかの実施形態では、第1のゲストVM2705が、ゲストVM2705と同じホストコンピュータ2720内で動作するスライスセレクタ2715によって処理されるデータメッセージを送信する。いくつかの実施形態におけるこのスライスセレクタ2715は、ホストコンピュータで実行されるソフトウェア転送要素(例えば、仮想化ソフトウェアで実行されるソフトウェア仮想スイッチ)によって実装される。他の実施形態では、このスライスセレクタは、ゲストVM2705とソフトウェア転送要素(図示せず)との間のサービス挿入レイヤの一部として実装される。このサービス挿入レイヤはいくつかの実施形態では、データメッセージを特定のスライスに割り当てるために、データメッセージの特性(例えば、送信元及び/又は宛先アドレス、ディープパケットインスペクションから決定されたL5-L7ヘッダ情報、又は他の要因)を使用する。
この例では、データトラフィックは、異なるホストコンピュータ上の3つのVMでVNF2725~2735として実装された3つのサービスを持つ最初のスライスに割り当てられる。少なくとも1つの他のネットワークスライス(すなわち、異なる順序付けられたネットワークサービスのセット)は、第1のゲストVM2705からの異なるトラフィック(場合によっては同じ第2のゲストVM2710への異なるトラフィックを含む)がこの異なるネットワークサービスのセットによって処理されるように、(破線によって示されるように)データセンタ内に別個に実装される。すべてのゲストVMを備えるホストコンピュータ上に実装されたスライスセレクタ及び/又はサービスチェイニングモジュールを有するいくつかの実施形態では、様々な異なるソースVMからのデータトラフィックが、異なる起点ホストコンピュータからの同じサービス経路に沿って(すなわち、同じVNFに同じ順序で)送信される。
いくつかの実施形態は電気通信サービスプロバイダネットワークについて上述したのと同様のサービスチェイニング方法を使用し、データメッセージは、ネットワークスライス内の各サービスがその処理を完了した後にスライスセレクタ2715に戻る。この場合、トラフィックは図に示されるように、サービスのチェインを通る線形フローに従わず、むしろ、ホストコンピュータ2720に繰り返し戻る。
他の実施形態は、第1のVNF2725と同じホストコンピュータ上の転送要素がデータトラフィックをスライスセレクタ2715に返すのではなく、データトラフィックを第2のVNF2730に自動的に転送するように、分散サービスチェイニングを使用する。いくつかのそのような実施形態は1つのVNFがサービスチェイン内の次のVNFに接続するインターフェースから受信されたトラフィックを自動的に転送することによってこれを達成し、一方他のそのような実施形態では、スライスセレクタが、メッセージをサービスチェイン内の次のVNFに転送するためにサービスチェインに沿って要素を転送することによって使用されるデータメッセージにタグ又はタグのセットを追加する。
データトラフィックが宛先ゲストVM2710のホスト2745で受信されると、逆スライスセレクタ2740はデータをゲストVM2710に提供する前に、トラフィックについての接続情報を格納する。逆方向スライスセレクタ2740は、逆方向スライスセレクタ2740がスライスマッピングへの接続を格納する(例えば、スライスセレクタ2715によって選択されたスライスに5タプルをマッピングする)点で、いくつかの実施形態では図2の出力ゲートウェイと同様である。ゲストVM2710が戻りトラフィックをゲストVM2705に送信すると、逆スライスセレクタ2740はその戻りトラフィックを同じスライスに割り当てるために、接続のためにこの格納されたスライスマッピングを使用する。
いくつかの実施形態では、スライス選択及び逆スライス選択機能がホスト2720及び2745内の同じ構成要素(例えば、ソフトウェア転送要素、サービス挿入レイヤ、又は他の構成要素)によって実行される。スライスセレクタ及び逆スライスセレクタは、そのような実施形態では分散され、その構成要素はスライス選択機能及び逆スライス選択機能の両方を実行するように各ホストコンピュータ(例えば、VSNに接続されたVMを有する各ホストコンピュータ)上で構成される。
VMが接続を開始し(つまり、クライアントとして動作する)、格納された接続マッピングのないトラフィックを送信すると、この構成要素は(L2-L4ヘッダフィールド、ディープパケットインスペクション、又はその他の要因を使用して)スライスの選択を実行し、設定された順序(この場合はVNF2725、VNF2730、VNF2735)でスライスのネットワークサービスにトラフィックを送信する。ホストが新しい接続の着信トラフィックを受信すると(つまり、そのホスト上のVMがサーバとして機能する場合)、その構成要素は逆スライスセレクタとして機能し、接続のスライスマッピングデータを格納する。VMが他の場所で開始された接続についてのトラフィックを返すとき、この構成要素は接続のための格納されたスライスマッピングデータを使用し、選択されたスライスのネットワークサービスに逆の順序(この場合、VNF2735、次いでVNF2730、次いでVNF2735)でトラフィックを送る、逆スライスセレクタとして働く。
図28は、パブリッククラウド2815を介して2つのプライベートエンタープライズデータセンタ(すなわち、メインオフィス2805及びブランチオフィス2810)間のWAN通信を処理するためのVSNの実装を概念的に示す。この例ではメインオフィスとブランチオフィス間の通信について説明するが、同様のVSNが2つのブランチオフィス間、VPNを介して企業データセンタに接続するモバイルユーザ間、上記のいずれかのエンドポイントとソフトウェアとしてのサービス(SaaS)プロバイダデータセンタとの間の通信など、他のWANの例を処理するように構成されている可能性もあることは理解されるべきである。さらに、いくつかの実施形態では、VSNがこの場合のように1つ以上のパブリックデータセンタを含むのではなく、プライベートデータセンタのネットワーク内で完全に構成される。
この例では、データトラフィックがメインオフィス2805内のホストコンピュータ上で実行されるVM2820から、ブランチオフィス2810内のホストコンピュータ上で実行されるVM2825に送られる。図27の以前の例と同様に、分散スライスセレクタ2830は、ソースVM2820と同じホストコンピュータ上に実装される。分散スライスセレクタ2830は、ホストコンピュータ上で実行されるソフトウェア転送要素によって、VMとソフトウェア転送要素との間のサービス挿入レイヤによって、又は上述したように他の構成要素によって実現されてもよい。
VM2820からのデータトラフィックは、VNFとして実装された4つのネットワークサービスを有する第1のネットワークスライスに割り当てられる。図示のように、第1のVNF2835は、メインオフィスデータセンタ2805に実装される。例えば、いくつかの実施形態は、データトラフィックをWANを介して他のデータセンタに送信する前に初期データセンタ内のデータトラフィックをフィルタリングするために、ファイアウォールを使用することができる。最初のVNF2835による処理後、WANゲートウェイ(MPLSゲートウェイ、SD-WANゲートウェイなど)を介してパブリッククラウドに送信されるデータトラフィック、ここで、選択されたネットワークスライスの追加のネットワークサービス2840~2850が実装される。3つのネットワークサービス2840~2850による処理の後、このデータトラフィックは別のWANゲートウェイのセットを介してブランチオフィスに送信され、そこでこのデータは宛先VM2825のホストに配信される。このホスト内の逆スライスセレクタ2860(例えば、ソフトウェア転送要素、サービス挿入レイヤ、又は他の構成要素によって実装される)は同じネットワークスライスに戻りトラフィックを割り当てる際に使用するために、スライスマッピング情報への接続を格納する。
いくつかの実施形態では、上述のように、スライスセレクタ2830は(その時点でそのデータセンタ内のサービスチェイン化モジュールがサービスチェイニングを処理する、少なくとも別のデータセンタに送信されたデータトラフィックまで)サービスチェイニングを処理する。このように、スライスセレクタ2830はデータメッセージがどのネットワークスライスに割り当てられるかを決定するだけでなく、選択されたネットワークスライス内の次のネットワークサービスの位置(例えば、現在のデータセンタ内のVM、コンテナ、又は物理デバイス、別のデータセンタ)も決定する。例えば、図28に示す例では、スライスセレクタ2830がVM2820からのデータメッセージを第1のネットワークスライスに割り当て、データメッセージを第1のVNF2835に送信し、その後、VNFによる処理後にデータメッセージを受信して戻す。次に、スライスセレクタは、次のネットワークサービスがパブリッククラウド2815内に配置されていると判断し、データメッセージをパブリッククラウド2815に送信できるように、データメッセージをWANゲートウェイに送信する。(例えば、サービス挿入レイヤに実装されたスライスセレクタ及び/若しくはサービスチェイニング、又は各ホスト上のソフトウェア転送要素によって実装されたこれらの機能を備える)分散スライスセレクタの場合、データメッセージは実際にはホストコンピュータ上のスライスセレクタに戻されず、代わりに、第1のVNF2835と同じホスト上で実行されるサービスチェイニングモジュールは、選択されたスライスの次のサービスがパブリッククラウド2815内に位置すると判定し、データメッセージをパブリッククラウド2815に送信することに留意されたい。
また、図28の例では、第2のネットワークスライス(図示のデータトラフィックについて選択されない)が異なるパブリッククラウド2855内に少なくとも部分的に実装されることにも留意されたい。すなわち、破線によって示されるように、スライスセレクタ2830がVM2820からのデータトラフィックを第2のネットワークスライスに割り当てる場合、このトラフィックはブランチオフィス2810に伝送される前に、WANゲートウェイを介してパブリッククラウド2855内のネットワークサービスに送られる。
図29は、パブリッククラウド又はパブリッククラウドのセット内の、パブリッククラウド内のゲストVMとパブリックインターネットトラフィックとの間の通信を処理するために、VSNが実装されてもよいことを概念的に示す。場合によっては、エンドポイントデバイス(例えば、モバイルデバイス、IoTデバイス、ラップトップ又はデスクトップコンピュータ)間のトラフィックは、(上の様々な図に示されるように)電気通信サービスプロバイダアクセスネットワーク内の第1のVSNによって処理され、インターネット経由で宛先ウェブサーバが配置されているパブリッククラウドにアクセスし、ウェブサーバに到達する前にパブリッククラウド内の第2のVSNによって処理される。同様に、戻りトラフィックは2番目のVSNによって(図29に示されている手法で)処理され、インターネット経由でルーティングされてから、エンドポイントデバイスに配信される前に最初のVSNによって処理される。
図に示すように、第1のパブリッククラウド2910内のホストコンピュータ内のゲストVM2905は、パブリックインターネット宛先にデータメッセージを送信する。この宛先は例えば、ユーザエンドポイントデバイス(例えば、VM2905がクライアントデバイスからのデータ要求に応答してサーバとして動作する)、又はパブリック又はプライベートクラウド内の別の宛先であってもよい。この場合、データメッセージは、VM2905とは異なるホストコンピュータ上に実装されたスライスセレクタ2915に送られる。このスライスセレクタがデータメッセージを第1のネットワークスライスに割り当て、データメッセージを第1のデータセンタ内の第1の2つのネットワークサービス2920及び2925に送信する。この例では、スライスセレクタ2915がVSNに接続されたゲストVMをホストするすべてのホストコンピュータ上に分散されるのではなく、(データセンタ2910内に)集中化される。いくつかの実施形態では、ゲストVM2905は、すべてのトラフィックが処理のために最初にスライスセレクタ2915に送信されるよう、そのIPゲートウェイとしてスライスセレクタ2915を使用するように構成される。異なる実施形態は、(例えば、VM又はVMで実行される転送要素として)この図に示されるようなデータセンタのための単一スライスセレクタを使用してもよく、図27及び28に示されるような分散スライスセレクタを使用してもよい。
上述のように、異なる実施形態では、データメッセージがスライスセレクタ2915に戻されるか、又は分散サービスチェイニングが使用され、データメッセージはVNF2920からVNF2925に直接(すなわち、スライスセレクタ2915が実装されるホストに戻ることなく、これらのホストコンピュータ上の転送要素を介して)渡される。
次に、選択されたネットワークスライスに対する第3及び第4のネットワークサービス2930及び2935が第2のパブリッククラウド2940内のホストコンピュータ上に実装されているので、データメッセージはWANゲートウェイを介してこのデータセンタ2940に送信される。そこで、サービスチェイニングモジュール(又は分散サービスチェイニングレイヤ)はデータメッセージをネットワークサービス2930及び2935に送信し、これらは、この場合同じホストコンピュータ上に実装される。最後に、ネットワークスライスが完了した後、データメッセージは出力ゲートウェイ2945を介してパブリックインターネットに送られる。この出力ゲートウェイはいくつかの実施形態では出力ゲートウェイ230と同様に動作し、インターネットから受信した逆方向トラフィックを割り当てる際に使用するためのスライスマッピング状態への接続を格納する。
いくつかの実施形態では、VSNは、図4の電気通信サービスプロバイダネットワークについて上記で示したのと同じ手法で(例えば、図27~29に示すように)1つ又は複数のデータセンタで構成される。すなわち、管理者は、スライスセレクタ、それぞれのサービスの様々なネットワークスライス及び実装(データセンタではそれぞれのネットワークサービスが実装されるべきである)、異なるデータセンタをどのように接続するか、並びに構成の他の態様のための構成を提供するために、トップレベルVSNマネージャ/コントローラにアクセスする。VSNコントローラは、各データセンタ内の複数のコントローラを使用して、VNF(若しくは使用されている場合はネットワークサービスのその他のフォームファクタ)、スライスセレクタ及び/又はサービスチェインモジュール(必要な場合)、データセンタ内のトラフィックをトンネルする転送要素、データセンタ間のトラフィックを送信するWANゲートウェイ、並びにその他の構成要素を設定する。
図30は、本発明のいくつかの実施形態が実施される電子システム3000を概念的に示す。電子システム3000はコンピュータ(例えば、デスクトップコンピュータ、パーソナルコンピュータ、タブレットコンピュータ、サーバコンピュータ、メインフレーム、ブレードコンピュータ等)、電話、PDA、又は他のあらゆる種類の電子装置であってもよい。このような電子システムは、様々なタイプのコンピュータ可読媒体と、様々な他のタイプのコンピュータ可読媒体のためのインターフェースとを含む。電子システム3000は、バス3005と、処理部3010と、システムメモリ3025と、読み出し専用メモリ3030と、永久ストレージ3035と、入力デバイス3040と、出力デバイス3045とを含む。
バス3005は、電子システム3000の多数の内部デバイスを通信可能に接続するすべてのシステムバス、周辺バス、及びチップセットバスを集合的に表す。例えば、バス3005は、処理部3010を、読み出し専用メモリ3030、システムメモリ3025、及び永久ストレージ3035と通信可能に接続する。
これらの様々なメモリユニットから、処理部3010は本発明の処理を実行するために、実行すべき命令及び処理すべきデータを取り出す。処理部は、異なる実施形態において、単一プロセッサ又はマルチコアプロセッサであってもよい。
読み出し専用メモリ(ROM)3030は、処理部3010及び電子システムの他のモジュールによって必要とされる静的データ及び命令を格納する。一方、永久ストレージ3035は、読み書き可能な記憶デバイスである。このデバイスは、電子システム3000がオフであるときであっても命令及びデータを格納する不揮発性メモリ部である。本発明のいくつかの実施形態は、永久ストレージ3035として大容量ストレージデバイス(磁気又は光ディスク及びその対応するディスクドライブなど)を使用する。
他の実施形態では、永久ストレージとして取り外し可能な記憶装置(フロッピーディスク(登録商標)ディスク、フラッシュドライブなど)を使用する。永久ストレージ3035と同様に、システムメモリ3025は、読み書き可能な記憶デバイスである。しかしながら、記憶デバイス3035とは異なり、システムメモリは、ランダムアクセスメモリのような揮発性の読み出し/書き込みメモリである。システムメモリには、プロセッサが実行時に必要とする命令とデータの一部が格納される。いくつかの実施形態では、本発明の処理がシステムメモリ3025、永久ストレージ3035、及び/又は読み出し専用メモリ3030に記憶される。これらの様々なメモリユニットから、処理部3010はいくつかの実施形態の処理を実行するために、実行すべき命令及び処理すべきデータを取り出す。
また、バス3005は、入出力デバイス3040及び3045に接続する。入力デバイスはユーザが情報を伝達し、電子システムへのコマンドを選択することを可能にする。入力デバイス3040は、英数字キーボード及びポインティングデバイス(「カーソル制御デバイス」とも呼ばれる)を含む。出力デバイス3045は、電子システムによって生成された画像を表示する。出力デバイスは、プリンタと、陰極線管(CRT)又は液晶ディスプレイ(LCD)などの表示装置とを含む。一部の実施形態は、入力デバイス及び出力デバイスの両方として機能するタッチスクリーンなどの装置を含む。
最後に、図30に示すように、バス3005はまた、ネットワークアダプタ(図示せず)を介して電子システム3000をネットワーク3065に結合する。このようにして、コンピュータは、コンピュータのネットワーク(ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、又はイントラネットの一部、あるいはインターネットのようなネットワークのネットワークであってもよい。電子システム3000の任意の又はすべての構成要素を、本発明と併せて使用することができる。
いくつかの実施形態はコンピュータプログラム命令を、マシン可読又はコンピュータ可読媒体(代替的にはコンピュータ可読記憶媒体、マシン可読媒体、又はマシン可読記憶媒体と称される)に記憶するマイクロプロセッサ、記憶装置及びメモリ等の電子構成要素を含む。このようなコンピュータ可読媒体のいくつかの例としては、RAM、ROM、読取り専用コンパクトディスク(CD-ROM)、記録可能コンパクトディスク(CD-R)、書き換え可能コンパクトディスク(CD-RW)、読み取り専用デジタル汎用ディスク(例えば、DVD-ROM、二重層DVD-ROM)、様々な記録可能/書き換え可能DVD(例えば、DVD-RAM、DVD-RW、DVD+RW等)、フラッシュメモリ(例えば、SDカード、ミニSDカード、マイクロSDカード等)、磁気及び/又はソリッドステートハードドライブ、読み取り専用及び記録可能なブルーレイ(登録商標)ディスク、超密度光ディスク、任意の他の光又は磁気媒体、及びフロッピーディスクがある。コンピュータ可読媒体は少なくとも1つの処理ユニットによって実行可能であり、様々な動作を実行するための命令のセットを含むコンピュータプログラムを格納してもよい。コンピュータプログラム又はコンピュータコードの例とは、コンパイラによって生成されるようなマシンコードと、インタプリタを使用してコンピュータ、電子構成要素、又はマイクロプロセッサによって実行される上位レベルのコードを含むファイルとを含む。
上記の検討は主に、ソフトウェアを実行するマイクロプロセッサ又はマルチコアプロセッサに言及しているが、いくつかの実施形態は特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)などの1つ又は複数の集積回路によって実行される。一部の実施形態では、このような集積回路が回路自体に格納された命令を実行する。
本明細書において、「コンピュータ」、「サーバ」、「プロセッサ」、「メモリ」という用語はすべて、電子デバイス又は他の技術的デバイスを意味し、これらの用語は人々又は人々のグループを除外するものである。本明細書の目的のために、ディスプレイ、又は電子デバイスに表示する表示手段という用語。本明細書において、「コンピュータ可読媒体」、「コンピュータ可読媒体」、及び「マシン可読媒体」という用語は、コンピュータによって読み取り可能な形式で情報を記憶する有形の物理的なオブジェクトに完全に限定される。これらの用語は、すべての無線信号、有線ダウンロード信号、及びその他のエフェメラル信号を除外する。
本明細書は、全体を通して、仮想マシン(VM)を含む計算環境及びネットワーク環境を指す。ただし、仮想マシンは、アドレス指定可能なノードとも呼ばれる、データ計算ノード(DCN)又はデータ計算エンドノードの一例にすぎない。DCNは、仮想化されていない物理ホスト、仮想マシン、ハイパーバイザ又は別個のオペレーティングシステムを必要としないホストオペレーティングシステム上で動作するコンテナ、及びハイパーバイザカーネルネットワークインターフェースモジュールを含んでもよい。
VMは、いくつかの実施形態では仮想化ソフトウェアによって仮想化されたホストのリソース(例えば、ハイパーバイザ、仮想マシンモニタなど)を使用して、ホスト上のそれら自身のゲストオペレーティングシステムで動作する。テナント(すなわち、VMの所有者)は、ゲストオペレーティングシステムの上でどのアプリケーションを動作させるかを選ぶことができる。一方、いくつかのコンテナはハイパーバイザ又は別個のゲストオペレーティングシステムを必要とせずに、ホストオペレーティングシステムの上で実行されるコンストラクトである。いくつかの実施形態では、ホストオペレーティングシステムが名前空間を使用して、コンテナを互いに分離し、したがって、異なるコンテナ内で動作するアプリケーションの異なるグループのオペレーティングシステムレベルの分離を提供する。この分離は、システムハードウェアを仮想化するハイパーバイザ仮想化環境で提供されるVM分離に類似しており、したがって、異なるコンテナで動作するアプリケーションの異なるグループを分離する仮想化の形成と見なすことができる。このようなコンテナは、VMよりも軽量である。
ハイパーバイザカーネルネットワークインターフェースモジュールは、いくつかの実施形態ではハイパーバイザカーネルネットワークインターフェース及び受信/送信スレッドを有するネットワークスタックを含む非VM DCNである。ハイパーバイザカーネルネットワークインターフェイスモジュールの例の1つは、VMware、IncのEsxi hypervisorの一部であるvmknicモジュールである。
明細書がVMを参照する一方で、所与の例は、物理ホスト、VM、非VMコンテナ、及びハイパーバイザカーネルネットワークインタフェースモジュールを含む任意の種類のDCNであってもよいことが理解されるべきである。実際に、例示的なネットワークは、いくつかの実施形態では異なるタイプのDCNの組合せを含むことができる。
本発明を多数の特定の詳細を参照して説明してきたが、当業者であれば、本発明の精神から逸脱することなく、他の特定の形態で本発明を実施できることを理解するのであろう。さらに、いくつかの図(図9、図11、及び図12を含む)は、処理を概念的に示す。これらの処理の特定の動作は、示され説明された正確な順序で実行されなくてもよい。特定の動作は1つの連続した一連の動作において実行されなくてもよく、異なる実施形態において異なる特定の動作が実行されてもよい。さらに、この処理は、いくつかのサブ処理を使用して、又はより大きなマクロ処理の一部として実施することができる。したがって、当業者は、本発明が前述の例示的な詳細によって限定されるべきではなく、むしろ添付の特許請求の範囲によって定義されるべきであることを理解するであろう。