IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヴィーエムウェア, インコーポレイテッドの特許一覧

<>
  • 特許-スライスベースルーティング 図1
  • 特許-スライスベースルーティング 図2
  • 特許-スライスベースルーティング 図3A
  • 特許-スライスベースルーティング 図3B
  • 特許-スライスベースルーティング 図4
  • 特許-スライスベースルーティング 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-11
(45)【発行日】2024-01-19
(54)【発明の名称】スライスベースルーティング
(51)【国際特許分類】
   H04L 45/64 20220101AFI20240112BHJP
   H04L 45/243 20220101ALI20240112BHJP
【FI】
H04L45/64
H04L45/243
【請求項の数】 9
(21)【出願番号】P 2021568094
(86)(22)【出願日】2020-05-14
(65)【公表番号】
(43)【公表日】2022-07-19
(86)【国際出願番号】 US2020032769
(87)【国際公開番号】W WO2020232185
(87)【国際公開日】2020-11-19
【審査請求日】2023-04-03
(31)【優先権主張番号】16/411,923
(32)【優先日】2019-05-14
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】514097912
【氏名又は名称】ヴィーエムウェア エルエルシー
【氏名又は名称原語表記】VMware LLC
【住所又は居所原語表記】3401 Hillview Ave., Palo Alto, CA 94303, U.S.A
(74)【代理人】
【識別番号】100087642
【弁理士】
【氏名又は名称】古谷 聡
(74)【代理人】
【識別番号】100082946
【弁理士】
【氏名又は名称】大西 昭広
(74)【代理人】
【識別番号】100195693
【弁理士】
【氏名又は名称】細井 玲
(74)【代理人】
【識別番号】100203242
【弁理士】
【氏名又は名称】河戸 春樹
(74)【代理人】
【識別番号】100212657
【弁理士】
【氏名又は名称】塚原 一久
(72)【発明者】
【氏名】コムラ、ラジャ
(72)【発明者】
【氏名】タイドマン、ジェレミー
(72)【発明者】
【氏名】ポリクロノポウロス、コンスタンティン
(72)【発明者】
【氏名】ボルドロー、マルク アンドレ
(72)【発明者】
【氏名】チョー、エドワード
(72)【発明者】
【氏名】グプタ、オージャス
(72)【発明者】
【氏名】キド、ロバート
(72)【発明者】
【氏名】オイコノム、ゲオルギオス
【審査官】鈴木 香苗
(56)【参考文献】
【文献】特許第6332544(JP,B1)
【文献】特表2022-532730(JP,A)
【文献】特開2013-251883(JP,A)
【文献】特開2007-306344(JP,A)
【文献】特開2019-103116(JP,A)
【文献】特開2019-195139(JP,A)
【文献】米国特許出願公開第2019/0098569(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 45/64
H04L 45/243
(57)【特許請求の範囲】
【請求項1】
スライスベースルーティングの方法であって、
スイッチにおいて、第1のパケットを受信するステップと、
前記スイッチにおいて、前記第1のパケットのスライス識別子を前記第1のパケットのヘッダ情報に基づいて決定するステップと、ここで、前記スライス識別子によって、仮想サービスネットワーク(VSN)において複数のスライスから1つのスライスが一意に識別され、前記複数のスライスは、共有物理ネットワークインフラ上の異なる仮想ネットワークを表し、
前記スイッチにおいて、前記第1のパケットの次ホップを、前記スライス識別子を用いて複数のスイッチから前記次ホップを選択することによって決定するステップと、
前記スライス識別子に基づいて、複数のインタフェースから前記次ホップにリンクする出力インタフェースを選択するステップと、ここで、前記スライス識別子が、ハッシュの生成に用いられ、前記ハッシュが、前記出力インタフェースの選択に用いられ、
選択された前記出力インタフェースを介して前記出力インタフェースから前記次ホップに前記第1のパケットを送るステップと、
を含同じスライス識別子を有するものと決定された他のパケットも、同じ出口インタフェースを介して前記次ホップに送られる、方法。
【請求項2】
第2のパケットの異なる次ホップを決定するステップをさらに含み、前記第1のパケットおよび前記第2のパケットが、同じ宛先アドレスを含む一方、異なるスライス識別子を有する、請求項1に記載の方法。
【請求項3】
前記スライス識別子を決定するステップが、宛先マシンアドレス制御(MAC)アドレス、宛先インターネットプロトコル(IP)アドレス、および宛先ポートに基づいて、前記スイッチにおける前記スライス識別子を調べることを含む、請求項1に記載の方法。
【請求項4】
トラフィックを前記次ホップに送るマルチパステーブルが存在するかを判定するステップと、前記マルチパステーブルが、トラフィックを前記次ホップに送る複数のリンクを含んでおり、
前記マルチパステーブルが存在する場合、前記スライス識別子を用いて生成された前記ハッシュに基づいて、前記マルチパステーブルから前記出力インタフェースを選択するステップと、
をさらに含む、請求項1に記載の方法。
【請求項5】
前記マルチパステーブルが、レイヤ3イコールコストマルチパス(ECMP)テーブルである、請求項4に記載の方法。
【請求項6】
前記複数のインタフェースをリンクアグリゲーショングループ(LAG)において一体的にグループ化するステップをさらに含み、前記LAG内の前記出力インタフェースが、前記スライス識別子を用いて生成された前記ハッシュに基づいて選択され、前記LAG内の前記出力インタフェースの選択が、前記スライス識別子に対して新たなスライス経路が実装されることに基づいて変化する、請求項1に記載の方法。
【請求項7】
前記スライス識別子が前記出力インタフェースに割り当てられていることに基づいて、前記出力インタフェースにおいて別の帯域幅を保持するために前記複数のインタフェースを負荷分散させるステップをさらに含む、請求項1に記載の方法。
【請求項8】
プロセッサによる実行時に、請求項1乃至7のいずれか1項に記載の方法を実行する命令を含む非一過性コンピュータ可読媒体。
【請求項9】
スライスベースルーティングのためのシステムであって、
命令を含む非一過性コンピュータ可読媒体と、
請求項1乃至7のいずれか1項に記載の方法を実行するモニタリングモジュールを遂行するプロセッサと、を備えシステム。
【発明の詳細な説明】
【背景技術】
【0001】
今日の3G、4G、およびLTEネットワークは、クラウド全体に分散可能な複数のデータセンタ(「DC」)を用いて動作する。これらのネットワークは、わずか数台の運用支援システム(「OSS:Operating Support System」)およびネットワークオペレーションセンタ(「NOC:Network Operations Center」)によって中央管理される。5G技術は、Telcoネットワークへの接続および物理ネットワークリソースの共有が必要となるあらゆる種類のデバイスに対するネットワーク接続性を大幅に増大させることになる。現行のネットワークアーキテクチャは、これらの需要を満たすようにはスケーリングし得ない。
【0002】
ネットワークスライシングは、共有物理ネットワークインフラ上での複数の論理ネットワークの動作を可能にする仮想化の一形態である。分散クラウドネットワークがさまざまなスライスによってネットワークリソースを共有して、テナントと称する異なるユーザの単一の物理インフラ上での多重化を可能にし得る。たとえば、インターネット・オブ・シングス(「IoT」)デバイス、モバイルブロードバンドデバイス、および低レイテンシ車載デバイスはすべて、5Gネットワークの共有が必要となる。これらの異なる使用事例は、異なる伝送特性および要件を有することになる。たとえば、IoTデバイスは通常、多数のデバイスを有するものの、スループットは非常に低い。モバイルブロードバンドはその反対に、各デバイスが高帯域コンテンツを送受信する。ネットワークスライシングは、物理ネットワークのエンドツーエンドレベルでの分割によって、トラフィックのグループ化、テナントトラフィックの隔離、およびマクロレベルでのネットワークリソースの設定を可能にし得る。
【0003】
従来のネットワークにおいて、ルーティングの決定は、パケットの宛先IPアドレスに基づいてなされる。各ルータは、パケットの宛先インターネットプロトコル(「IP」)アドレスを確認し、当該ルータにおけるルーティングテーブルに基づいて、パケットを次ルータに転送する。ただし、スライスベースの仮想サービスネットワーク(「VSN:Virtual Service Network」)においては、各スライスがネットワークを通るそれ自体の経路を有し得る複数のスライスで、単一のIPアドレスをパケットにより共有可能である。宛先IPアドレスのみならず、パケットが属するスライスに基づいてルータが転送を決定するための新たな技術が求められている。
【0004】
また、従来のスイッチは、リンクアグリゲーショングループ(「LAG:Link Aggregation Group」)の生成を可能にし得る。LAGは、スイッチ間のリンクを単一の仮想リンクとして一体的にバンドルすることにより、リンク全体でのトラフィックの分散を可能にし得る。ただし、スライスベースネットワークにおいては、同じスライスに属するパケットが異なるリンク上となって、データの配信順序がばらばらになる可能性もある。たとえば、一部のリンクがその他よりも長い。
【0005】
結果として、VSNにおいてスライスベースルーティングを実行する新たなシステムが求められている。
【発明の概要】
【0006】
本明細書に記載の例は、VSNにおけるスライスベースルーティングのためのシステムおよび方法を含む。このシステムは、1つまたは複数のクラスタまたはクラウド上でスライスベースネットワーク全体に分散した複数の(物理または仮想)スイッチを具備し得る。スイッチは、ネットワークの物理レイヤで機能を実行するようにプログラム可能である。一例においては、オーケストレータがリモートで、プログラミングコマンドをスイッチに送ることができる。スイッチは、P4言語またはその他何らかのプロトコルを用いてプログラム可能なTofinoチップ等のプログラム可能ネットワーキング特定用途向け集積回路(「ASIC」)を含み得る。仮想スイッチについても同様に、プログラム可能である。
【0007】
スイッチは、プログラムされると、スライスベースルーティングのためのステージを実行可能である。たとえば、スイッチは、第1のパケットを受信し、当該スイッチにおいて、当該パケットに対応するスライス識別子を決定することができる。スイッチは、スライスを一意に識別し得るパケットヘッダ情報に基づいて、これを実行可能である。一例において、パケットヘッダは、スライスセレクタによる事前の割り当てに基づくスライス識別子を含む。あるいは、スイッチは、パケットヘッダ中の情報を使用して、スライス識別子を決定することができる。スイッチは、スライステーブルに対してパケットヘッダ情報を比較することにより、スライス識別子(「ID:Identifier」)を識別することができる。
【0008】
スイッチは、スライス識別子に基づいて、パケットの次ホップを決定することができる。これは、スイッチのローカルストレージからスライス経路またはその一部を読み出すことを含み得る。スイッチは、次ホップおよびスライス識別子に基づいて、スイッチで利用可能な複数のポートから出力ポート(egress port)を選択可能である。一例において、スイッチは、トラフィックを次ホップに送るマルチパステーブルが存在するかを判定することができる。存在する場合、スイッチは、スライス識別子に基づいて、マルチパステーブルから出力ポートを選択可能である。一例において、マルチパステーブルは、レイヤ3イコールコストマルチパステーブル(equal-cost multi-path table)である。マルチパステーブルは、たとえばECMPまたはLAG機能に使用可能である。
【0009】
そして、スイッチは、出力ポートから物理ネットワークひいては次ホップ(別のスイッチと考えられる)へとパケットを送り出すことができる。一例において、スイッチは、複数の出力ポートを次ホップへのリンクアグリゲーショングループにおいて一体的にグループ化する。リンクアグリゲーショングループは、スライス識別子を使用して、当該リンクアグリゲーショングループ内の特定の出力ポート上にパケットを配置することができる。
【0010】
一例において、これらのステージは、一方法に従うスイッチにより実行可能である。これらのステージとしては、たとえばエージェントを動作させて当該ステージを実行するようにスイッチをプログラムするオーケストレータを含む、システムの一部が挙げられる。あるいは、命令を含む非一過性コンピュータ可読媒体によって、スイッチのプロセッサが命令を実行した場合に、当該プロセッサに上記ステージを実行させることができる。用語「スイッチ(switch)」は、サーバ、ルータ、またはホスト等、ネットワーク機能を実行する任意のデバイスを広義に表し得る。
【0011】
以上の概要および以下の詳細な説明は、いずれも例示かつ説明を目的としているに過ぎず、上記例に限定されるものではなく、特許請求の範囲に記載の通りとする。
【図面の簡単な説明】
【0012】
図1】VSNにおけるスライスベースルーティングのための例示的な方法のフローチャートである。
図2】VSNにおけるスライスベースルーティングのための例示的なシーケンス図である。
図3A】パケットのルーティングに用いられるシステム構成要素の例示的な図である。
図3B】VSNにおけるスライスベースルーティングのためのシステム構成要素の例示的な図である。
図4】異なるスライス経路におけるパケットのルーティングに用いられるシステム構成要素の例示的な図である。
図5】VSNのトポロジの例示的なシステム図である。
【発明を実施するための形態】
【0013】
以下、添付の図面に示す例を含めて、本例を詳しく参照する。図面全体を通して、同一または同様の部分を表すのに、可能な限り同じ参照番号を使用する。
一例において、システムは、VSNにおける1つまたは複数のクラスタまたはクラウド全体に複数のスイッチを含む。オーケストレータは、特定の目的での使用またはテナントへの貸与が可能なネットワーク内の複数のスライスを管理することができる。たとえば、スライスは、特定のアプリケーション、IoTデバイス、または顧客に対して予約可能である。各スライスとしては、1つまたは複数のTelcoクラウドにわたって分散した共有物理ネットワークインフラ上で動作する仮想ネットワークが挙げられる。スライスは、特定のネットワークタスクを実行するVNFのサービスチェーンを含み得る。
【0014】
一例において、スイッチは、パケットのスライスIDをトラフィックのルーティングに使用可能である。スイッチは、同じ宛先IPアドレスを有する入力パケット(ingress packets)を受信するが、それぞれをスライスIDに基づいて、異なるスイッチへと別々にルーティングすることができる。スイッチは、スライスIDに基づいて、どの出力ポートが使用されるかと、次ホップが何であるかと、を管理するスライス経路を含むようにプログラム可能である。
【0015】
また、スイッチは、イコールコストマルチパス(「ECMP:Equal Cost Multi-Path」)を実装可能である。ECMPは、開放型システム間相互接続(「OSI:Open Systems Interconnection」)モデルのレイヤ2および3の特徴を含み得る。レイヤ3(ネットワーキングレイヤ)において、ECMPは、複数のイコールコスト経路にわたってトラフィックを分散させる場合に、スライスベーステーブルおよび付加的なロジックを使用するように修正可能である。従来の、宛先IPアドレスに基づくECMPルーティングを用いてどのECMPルートを使用するかを決定することは、スライスベースネットワークにおいてデータの順序がばらばらになる可能性がある。この問題を回避するため、ECMP用のマルチパステーブル(「ECMPテーブル」または「ECMPルーティングテーブル」)を代替として、スライスベースとするとともに、スライスIDに基づき特定することができる。これにより、スイッチがECMPを用いて次ホップと接続している場合に、スライスに対してECMPを使用可能となり得る。一例において、これらのスライス固有のECMP動作は、オーケストレータプロセスによってスイッチにプログラム可能である。
【0016】
ECMPのレイヤ2態様の場合、スイッチは、一例において、LAGを実装することにより、別のスイッチへの仮想チャネルにおいてポートを一体的にバンドルすることができる。ただし、スライスIDが同じパケットは、スイッチ間の同じリンク上でルーティング可能である。これにより、スライスデータの順序が維持され得る。スライスIDを考慮しなければ、リンク全体の異なる移動時間に基づいて、データが順序ばらばらに到着する可能性もある。これは、リンクの異なる移動距離および他の要因に起因し得る。
【0017】
図1は、VSNにおいてスライスベースルーティングを実行する例示的なフローチャートである。ステージ110において、スイッチは、パケットを受信する。パケットは、複数の入力ポート(ingress ports)のうちの1つで受信可能である。パケットとしては、VSNにおけるスライスの一部が挙げられる。
【0018】
ステージ120において、スイッチは、パケットのスライス識別子を決定可能である。スイッチは、パケットヘッダを検査することにより、これを実行可能である。たとえば、スイッチまたはスライスセレクタは、レイヤ2~レイヤ4(L2~L4)ヘッダの組み合わせを使用することも可能であるし、(たとえば、レイヤ7(L7)ヘッダ中のデータに基づいてトラフィックを分類するために)深層パケット検査を実行することも可能である。たとえば、スライス選択は単に、送信元ネットワークレイヤ(たとえば、IP)アドレスを用いることにより、送信元デバイスに基づくことも可能であるし、L7ヘッダを確認することにより、トラフィックタイプまたは宛先ネットワーク領域に基づくことも可能である。いくつかの実施形態において、ネットワークスライスセレクタは、接続の各データメッセージ上で深層パケット検査を実行する必要がないように、接続をネットワークスライスにマッピングする状態を維持する。また、一部の接続については、スライス選択の実行に必要なL7ヘッダ情報を特定のデータメッセージのみが含む。
【0019】
深層パケット検査を用いてスライス選択を実行する場合、接続の最初のデータメッセージには、スライスセレクタがスライスを正しく識別するために必要とするL7ヘッダ情報が含まれていなくてもよい。たとえば、端末デバイス(たとえば、スマートフォンまたはタブレット等のモバイルデバイス、ラップトップまたはデスクトップコンピュータ、IoTデバイス、自動運転車、セキュリティシステムに属するスマートカメラ)とネットワーク領域との間の接続は、TCPハンドシェイク等の一組の接続開始メッセージによって開始となることが多い。ハンドシェイクの完了後、デバイスは、たとえばネットワーク領域を含むhttp取得メッセージを送る。デバイスとネットワーク領域との間で送信される後続のデータメッセージは、このような情報を含んでいなくてもよい。
【0020】
セレクタにおける最初のスライス選択の後、ルータは、パケットヘッダ情報をスライスIDに相関させるスライステーブル(一種のルーティングテーブル)を含むように更新可能である。これにより、スイッチは、アドレス情報を含み得るパケットヘッダを用いて、スライスIDを調べることが可能となり得る。たとえば、パケットヘッダは、送信元および宛先媒体アクセス制御(「MAC:Media Access Control」)アドレス、送信元および宛先インターネットプロトコル(「IP」)アドレス、送信元および宛先ポートを一覧化可能であるとともに、パケットプロトコルを示し得る。スイッチは、これらの情報により、ローカルスライステーブルにおいてスライスIDを識別することができる。例示的なスライステーブルを表1として以下に示す。
【0021】
【表1】
エージェントは、送信元IPアドレス(「送信元IP」)、宛先IPアドレス(「宛先IP」)、送信元ポート、宛先ポート、およびプロトコルタイプを用いて、相関するスライスIDを見出すことができる。一例において、プロトコルタイプは、数字として表すことができ、異なる数字がICMP、ARP、およびTCP等の異なるパケットタイプに相関する。
【0022】
一例において、スライステーブルは、オーケストレータプロセスによってスイッチにプログラム可能である。たとえば、オーケストレータは、スライス固有の動作を実行するようにスイッチをリモートでプログラム可能である。一例において、スイッチは、P4言語またはその他何らかのプロトコルを用いてプログラム可能なTOFINOチップ等のプログラム可能ネットワーキング特定用途向け集積回路(「ASIC」)を含む。
【0023】
ステージ130において、スイッチは、スライスIDに基づいて、パケットの次ホップを決定可能である。次ホップとしては、スライス経路の別のスイッチが挙げられる。次ホップを決定するため、スイッチは、スライスIDを用いてルーティングテーブルにアクセス可能である。ルーティングテーブルは、次ホップを含めて、当該スライスIDのスライス経路に関する情報を返すことができる。ルーティングテーブルは、スイッチ上にローカル配置可能である。一例において、オーケストレータは、ルーティングテーブルを含むようにスイッチをプログラムする。オーケストレータは、スイッチによってルーティングに影響するスライス経路を変更するたびに、スイッチへの問い合わせによって、ルーティングテーブルを更新可能である。たとえば、第1のスライス経路がスイッチ2の次ホップを含み、新たなスライス経路がスイッチ3の次ホップを含む場合、オーケストレータは、その情報をスイッチに送って、当該スライスの将来のトラフィックをスイッチ3にルーティング可能とし得る。
【0024】
例示的なルーティングテーブルを表2として以下に示す。
【0025】
【表2】
例示的なルーティングテーブルを以下の表2に示す。スライスIDおよび宛先IPを使用して、次ホップを決定可能である。また、一例において、ルーティングテーブルは、使用する出力インタフェースを与えることができる。別の例において、ルーティングテーブルとしては、一例として表1のスライステーブル等のスライステーブルと同じものが挙げられる。当該例においては、1つまたは複数の付加的な列が次ホップまたは出力インタフェースを表し得る。あるいは、表1の宛先IPまたは宛先ポートを出力インタフェースの決定に使用可能である。また、ルーティングテーブルの使用は、後述の通り、ECMPルーティングテーブルまたは1つもしくは複数のLAGテーブルにおいて情報を調べることを含み得る。
【0026】
ステージ140において、スイッチは、スライス識別子に基づいて、パケットの出力ポートを選択可能である。たとえば、スライスは、ルーティングテーブルにおいて次ホップに対応する割り当て出力インタフェースを有し得る。一例において、出力ポートの選択は、出力インタフェースの選択により実現可能である。出力インタフェースは、当該出力インタフェースにおいて出力ポートから次ホップへとパケットが実際に送られるタイミングを管理するパケットキューおよび他のメカニズム(負荷分散アルゴリズム等)を有し得る。
【0027】
一例において、スイッチは、ECMPをサポートし得る。従来のECMPルーティングは、送信元および宛先が同じトラフィックをイコールコストの複数の経路にわたって送信可能となり得る。これにより、その他の場合は使用されない帯域幅を同じ宛先(次ホップ)へのリンク上で十分に利用することで、負荷分散トラフィックおよび帯域幅の増大が可能となり得る。ECMPが用いられる場合は、ルーティングメトリック計算およびハッシュアルゴリズムに基づいて、イコールコストの次ホップ経路が識別される。すなわち、イコールコストのルートは、ネットワークに対して同じプリファレンス値およびメトリック値、ならびに同じコストを有し得る。ECMPプロセスは、それぞれが宛先に向かう正規のイコールコスト次ホップである一組のルートを識別可能である。識別されたルートは、ECMP集合と称する。これは次ホップの宛先しかアドレス指定しないため、ECMPは、さまざまなルーティングプロトコルと併用可能である。一例において、ECMPは、OSIモデルのレイヤ3ネットワーキングプロトコルで動作し得る。レイヤ3は、ネットワーキングモデルのネットワークレイヤと称し得る。
【0028】
一例において、スライステーブルからアクセスした情報はECMPルーティングテーブルと併用可能であるが、その一例を以下の表3に示す。ECMPによれば、2つのスイッチ間の複数の経路を使用可能となるとともに、これら経路のメトリックが等しい場合に経路全体でトラフィックを分散させる方法を決定可能となる。
【0029】
【表3】
表3に示すように、各行がECMP集合を表し得る。ECMPメンバーは、宛先IPアドレスに対応するサブネットに基づく次ホップを表し得る。たとえば、サブネット10.1.2.0(および、マスク255.255.255.0)の場合は、ECMP集合において、考え得る6つの異なる次ホップ(ECMPメンバー)を利用可能となる。2つ目のECMP集合は4つの次ホップを有し、3つ目のECMP集合は2つの次ホップを有する。
【0030】
一例においては、スライステーブル(たとえば、表1)およびECMPルーティングテーブル(たとえば、表3)を次ホップの決定に使用可能である。たとえば、スライスIDが1のパケットの場合、宛先IPは、10.1.2.10である。これは、サブネットが10.1.2.0の1つ目のECMP集合に対応する。
【0031】
イコールコストの同じ宛先への到達に使用する複数の次ホップアドレスを表3のようなECMPルーティングテーブルが含む場合にECMP集合が形成され得る。イコールコストのルートは、同一(または、閾値内で同様)のプリファレンス値およびメトリック値を有する。アクティブなルートのECMP集合が存在する場合は、負荷分散アルゴリズムの使用により、ECMP集合中の次ホップアドレスのうちの1つを選定して転送テーブルにインストールすることができる。
【0032】
ECMPは、負荷分散の使用により、ECMP集合中の複数のリンク間の選択が可能となる。一例においては、スライスベース負荷分散の使用により、複数のリンクにわたってパケットを分散させることができる。スライスIDが同じパケットは、同じリンクをたどることが保証され得る。たとえば、スライスIDをリンクに相関させるテーブルを使用可能である。あるいは、表3の追加列においてスライスIDを示すことにより、ECMP集合中のリンク間の選択に当該スライスが用いられるようにすることができる。
【0033】
一例においては、スライスIDを含むハッシュの使用によって、どのECMP経路がパケットに対応するかを選定することができる。また、この手法によれば、同じスライスが同じリンク上で動作する間に、異なるスライスを異なるリンクにわたって分散させることが可能となり得る。ハッシュは、送信元および宛先IPならびに送信元および宛先ポートを含み得る。
【0034】
一例においては、ハッシュをECMP IDとして使用することにより、どのリンクがパケットに当てはまるかを選択することができる。たとえば、ECMPテーブルは、後述する表5と同様に、ECMP ID用の列と、出力インタフェースまたはポート用の別の列とを含み得る。また、負荷分散を目的としてハッシュシードを使用可能である。ハッシュシードは、たとえばあるリンクを別のリンクよりも多くのスライスで使用させるようにすることができる。これにより、優先順位の高いスライスに対して、1つまたは複数のリンクを残すことが可能となり得る。
【0035】
一例においては、スイッチでのECMP動作の修正により、スライスベースルーティングに対応可能である。以下の表4は、一例として表3のようなECMPテーブルのスライスベースの使用と関連する疑似コードを含む。
【0036】
【表4】
表4の疑似コードを参照して、スイッチがパケットを受信した場合、スイッチは、ステージ120に関して論じた通り、スライスIDを決定可能である。本例において、エージェントは、送信元IPアドレス(「sip」)、宛先IPアドレス(「dip」)、送信元ポート(「sport」)、宛先ポート(「dport」)、およびプロトコルタイプ(「proto」)に基づいて、スライステーブル(たとえば、表1)からスライスIDを読み出すことができる。その後、エージェントは、ステージ130に関して説明した通り、表1または表2等のルーティングテーブルからのスライスIDを用いて、次ホップを取得することができる。これは、たとえばスライスIDおよび宛先IPに基づいてルーティングテーブル中の次ホップアドレスを調べることを含み得る。ルーティングテーブルは、スライスID用の列と、次ホップ用の別の列とを含み得る。
【0037】
本例においては、ステージ140において、スイッチは、次ホップがECMPルーティングテーブル(たとえば、表3)に示されているかを判定可能であり、これによって、次ホップにどのリンク(たとえば、ECMPメンバー)を採用するかを決定可能である。たとえば、表1の宛先IPに対するサブネットが表3に存在する場合、エージェントは、ECMPを使用して、次ホップにどのリンク(ECMPメンバー)を採用するかを決定可能である。
【0038】
このリンク決定を行うため、スライスIDを使用するようにECMPを修正可能である。一例において、エージェントは、ハッシュの読み出しまたは生成を行う。一例においては、スライスID、パケット宛先IPアドレス、およびECMPメンバー数を使用して、ハッシュ(hash_id)を生成可能である(create_hash)。その後、このハッシュIDの使用により、どのECMPメンバーがパケットに当てはまるかを選択することができる。
【0039】
同一(または、閾値内で同様)のプリファレンス値およびメトリック値を有する複数のリンクが利用可能な場合は、負荷分散アルゴリズムによって、どのリンクをスライスに使用するかを決定することができる。アクティブなルートのECMP集合が存在する場合は、負荷分散アルゴリズムの使用により、スライスIDに基づいて、ECMP中の次ホップアドレスのうちの1つを選定してパケットに使用することができる。また、負荷分散アルゴリズムによれば、1つまたは複数のスライスをその他に対して優先的に処理可能である。たとえば、第1のリンク上での性能が閾値を下回る場合は、好適なスライスに対して当該リンクを予約可能である。たとえば、複数のリンクを次ホップに利用可能であるとともに、911のスライスが優先される場合は、911番通報が特定のリンクを用いた唯一のスライスとなり得る。スライスの優先度は、スライスのサービスレベル契約(「SLA:Service Level Agreement」)要件に基づいて、スイッチまたはオーケストレータにて決定可能である。たとえば、各スライスは、レイテンシ、スループット、および帯域幅の閾値レベル等、保証された性能特性を有し得る。一例において、SLAレコードは、スイッチが負荷分散を目的として使用する優先度パラメータを明示的に割り当て可能である。
【0040】
一例において、オーケストレータは、ECMPルーティングに使用するスライスベースの負荷分散アルゴリズムをスイッチに供給する。一例において、これは、スライス優先順位およびスライスルートに基づき得る。
【0041】
本開示の目的として、出力インタフェースの選択は、出力ポートの選択と同一化可能である。
ステージ140において出力ポートを選択することは、データリンクレイヤと称し得るOSIモデルのレイヤ2(「L2」)に従ってスライスが適正にルーティングすることの確認をさらに含み得る。一例において、スイッチは、たとえばリンクアグリゲーション制御プロトコル(「LACP:Link Aggregation Control Protocol」)を用いてLAGを実装可能である。LAGは、ポートをチャネルとしてバンドルすることにより、スイッチ間のリンクを一体的にグループ化することができる。一例において、LACPは、負荷分散およびECMPと併用可能である。例示的なL2転送テーブルを以下の表5に示す。また、例示的なLAGテーブルを表6に示す。
【0042】
【表5】
【0043】
【表6】
一例においては、スライスIDを利用してパケットが移動するポートを選択するようにLAGを修正可能である。これは、同じスライスに属するすべてのパケットを同じリンクでルーティングすることを含み得る。
【0044】
LAGにスライスIDを使用しない従来の手法では、2つの異なるリンクが使用される場合に、データの配信順序がばらばらになるため、データ伝送にエラーが生じる可能性がある。これは、次ホップ(スイッチ)までの距離および移動時間が異なり得る異なるリンク上に単一のスライスのパケットが分散する可能性があるためである。たとえば、第1のリンクの長さが1キロメートルである一方、第2のリンクの長さが10キロメートルとなる可能性もある。LAGリンクの選定にスライスIDを組み入れることによって、スイッチがスライスのパケットを一体的に保持することを確実にし得る。たとえば、パケット情報(送信元IPアドレス、宛先IPアドレス、送信元ポート、および宛先ポート)と併せてスライスIDを使用して、どのリンクを選定するかに関するハッシュを生成可能である。ハッシュは、利用可能なリンクの総数に基づく特定が可能であるとともに、スライスがリンク全体に分散するようにリンクを選択するためのインデックスとして使用可能である。
【0045】
表3の疑似コードの続きとして、次ホップがECMPルーティングテーブルに含まれない場合、エージェントは、表4に例示のレベル2(「L2」)転送テーブルまたは表5に例示のLAGテーブル等、次ホップのlagインタフェースを読み出すことができる(たとえば、getLAGIntf)。一例において、LAG IDは、表4に示す宛先MACアドレス(「宛先MAC」)等のL2情報に基づいて決定される。パケットの宛先(次ホップに関する情報)を宛先MACに対して照合することにより、LAG IDを決定可能である。その後、エージェントは、LAGテーブルから、対応するLAGメンバー数およびLAGメンバーポートを読み出すことができる。
【0046】
そして、エージェントは、スライスIDに基づいて、どのLAGメンバーポートを使用するかを決定して、同じスライスのパケットが一体化することを確実にし得る。これは、LAGメンバーポートの選択に用いられるハッシュを生成することを含み得る。ハッシュは、表5を使用する一例において、スライスID、宛先IPアドレス(「P->ip_id」)、およびLAGメンバー数に基づき得る。ハッシュをインデックスまたはセレクタとして用いてLAGメンバーポートを選択することにより、出力インタフェースを決定可能である。
【0047】
その後、エージェントは、ECMPまたはLAGを用いたスライスベースの選択により選定された出力インタフェースにパケットPを送ることができる。
負荷分散を目的としてECMPおよびLAGを一体的に使用することにより、スイッチ上の帯域幅およびスループットを向上可能である。ECMPおよびLAGの探索にスライスIDを組み入れることにより、スイッチは、スライスに対してデータを一体的に保持するとともに、スライス優先度に基づいてリンクを選択することができる。たとえば、ECMPは、優先順位の高いスライスに対して第1のリンクを使用するとともに、当該リンク上の輻輳が負荷分散の一部として低いままであることを確認することができる。このように、ポート全体で異なるスライスの平衡を保つことができる。リンクの集約も同様に、優先順位の高いスライスが主にまたは単独で使用するLAGの形成等によって、スライス優先度に基づき得る。
【0048】
ステージ150において、スイッチは、ルーティングテーブル、ECMP、およびLAGのうちの1つまたは複数に基づいて選択された出力インタフェース(すなわち、出力ポート)を用いて、ネットワークひいては次ホップへとパケットを送り出すことができる。出力プロセスは、出力ポートからどのパケットが最初に出力されるかを決定するポリシングアルゴリズムによって管理可能である。一例において、スイッチは、スライスベースプールに受信された順序でパケットが出力キューにルーティングされるFIFOアルゴリズムを使用する。あるいは、各スライスから1つのパケットが一度に転送されるスライスラウンドロビン(「SRR:Slice Round Robin」)アルゴリズムを使用可能である。たとえば、スイッチは、各スライスベース入力キューからパケットを取得し、適当なインタフェースから同じスライスの出力キューへとルーティングすることができる。別の例においては、スライス加重ラウンドロビンアルゴリズム(「SWRR:Slice-Weighted Round Robin」)が用いられる。SWRRにおいては、各スライスの加重に基づいて、パケットを転送可能である。
【0049】
図2は、VSNにおけるスライスベースルーティングのための例示的なシーケンス図である。ステージ205において、オーケストレータは、スライス経路情報をスイッチに送る。スイッチは、当該スイッチ上のスライステーブルおよび他のテーブルの更新にスライス経路情報が用いられるようにプログラム可能である。たとえば、スライステーブルは、どの出力インタフェースをどのスライスに利用するかを示し得る。また、いくつかの例において、スライステーブルは、送信元および宛先IPアドレス、MACアドレス、およびポート等のパケットヘッダ情報に基づいてスライスIDを決定するのに使用可能である。
【0050】
ステージ210において、スイッチは、スライス経路情報を用いて、ECMPルーティングテーブルまたはLAGテーブル等のマルチパステーブルを更新可能である。これらは一般的に、ルーティングテーブルと称し得る。一例において、ルーティングテーブルは、表2のようにスライスベースである。一例において、ECMPおよびLAGは、スライスIDに基づいて動作するように修正可能である。たとえば、ECMPまたはLAGメンバーを選択し、出力インタフェースとして使用するためのインデックスとして、パケットのスライスIDに基づくハッシュを使用可能である。別の例において、ECMPルーティングテーブルは、同じくスライスIDに基づいて動作するように修正可能である。これにより、スライスIDに基づいて、送信元および宛先が同じトラフィックを等メトリックの複数の経路にわたって送信可能となり得る。たとえば、LAGの同じリンク上でスライスデータが一体的に保持され得るように、異なるスライスIDは異なる経路に対応し得る。
【0051】
ステージ215においては、オーケストレータから、ポリシングアルゴリズムおよび負荷分散アルゴリズムをスイッチに送信可能である。一例において、これは、ステージ205の一部として起こり得る。負荷分散アルゴリズムをマルチパステーブルと併せて使用することにより、スライスIDに基づいて、どのパケットをどのリンク(出力ポート)に配置するかを決定することができる。ポリシングアルゴリズムの使用により、輻輳に際してネットワークに出力されるパケットの順序を決定することができる。
【0052】
ステージ220において、スイッチは、入力パケットを受信可能である。これらのパケットは、複数の送信元区域から、複数の入力ポート上で受信可能である。ステージ225において、スイッチは、パケットごとにスライスIDを決定可能である。一例において、スイッチは、パケットヘッダからスライスIDを読み取る。上流のスイッチまたはスライスセレクタは、ネットワークの他のスイッチによる使用のためにスライスIDをパケットヘッダに書き込むことができる。あるいは、スイッチは、当該スイッチにおいてローカルに保持されたスライステーブルを調べることにより、スライスIDを決定することができる。このため、スイッチは、送信元および宛先IPアドレス、MACアドレス、およびポートの組み合わせ等、スライスに一意となるパケットヘッダ情報を使用可能である。
【0053】
その後、ステージ230において、スイッチは、スライスIDに基づいて次ホップを読み出し可能である。ルーティングテーブルは、各スライスの次ホップ情報を含み得る。一例において、スイッチは、ECMPルーティングを確認することができる。一例において、これは、ECMPテーブルにおける別個の探索とすることができる。あるいは、ECMPに基づいてスイッチ上のECMPプロセスによりルーティングテーブルを更新することによって、スイッチは、ルーティングテーブルのスライスIDに基づいて、正しい出力インタフェースを調べることができる。出力インタフェースは、ECMPの負荷分散またはLAG中のさまざまなリンクの変更特性に基づいて、動的に変化し得る。たとえば、特定のリンクが十分に機能していない場合、負荷分散アルゴリズムは、優先スライスを異なるリンク上に移動可能である。ステージ230において次ホップが読み出された場合、ルーティングテーブルは、当該スライスのパケットが異なるリンクへとルーティングされるような更新情報を含み得る。
【0054】
ステージ235において、パケットは、ネットワークひいては次ホップに送られる。一例において、スイッチからネットワークにパケットが送られる順序は、ポリシングアルゴリズムによって管理可能である。ポリシングアルゴリズムの使用により、優先スライスに属する出力パケットを優先可能である。この優先度は、輻輳に基づいて高くなり得る。輻輳は、スイッチで検出することも可能であるし、下流で検出し、報告としてスイッチに返すことも可能である。
【0055】
次ホップとしては、類似のステージが実行される別のスイッチが挙げられる。たとえば、ステージ250において、次スイッチは、スライスIDを決定可能である。ステージ255において、このスイッチは、スライスIDに基づいて、新たな次ホップを決定する。このように、パケットは、スライス固有となり得る最終宛先に達するまで、ネットワークを移動し続け得る。たとえば、スライスは、当該スライスの目的の実行に用いられるコールセンタ、データベース、サーバ、または他のハードウェアで終端し得る。
【0056】
また、スイッチは、ステージ240において、テレメトリックデータ(telemetric data)を報告としてオーケストレータに返すエージェントを実行するように、オーケストレータによってプログラム可能である。テレメトリックデータには、レイテンシ、帯域幅、スループット、ラウンドトリップタイム、またはSLAのその他任意の性能基準と関連する任意の性能データが含まれ得る。一例において、テレメトリックデータは、ネットワーク輻輳を緩和する方法を決定するため、オーケストレータまたは関連するプロセスにより使用可能である。一例において、これは、1つまたは複数のスイッチにおいて負荷分散またはポリシングアルゴリズムを変更することを含み得る。また、それは、ネットワークにおいてスライスを再ルーティングすることを含み得る。
【0057】
ステージ245において、オーケストレータがスライス経路の変更等の変更を行った場合、この変更は、影響を受けるスイッチに報告され得る。新たなスライス経路の場合、スイッチは、当該新たなスライス経路で使用する正しい次ホップを示すようにプログラム可能である。一例において、オーケストレータは、新たなスライス経路に基づいてスイッチに1つまたは複数のルーティングテーブルを更新させるメッセージをスイッチに送ることができる。これは、次ホップが既存のECMPの一部であるかを判定することと、それに応じてルーティングテーブルを更新することとを含み得る。たとえば、第1のスライスが当初、第1のECMP集合のスイッチ1において次ホップを有していたものの、スイッチ2における更新された次ホップが当該ECMP集合の一部でない場合は、ECMPルーティングテーブルを更新可能である。第1の集合は、別の利用可能な帯域幅に応じた異なる負荷分散が可能である。また、第2のECMP集合がスイッチ2に接続されている場合は、当該集合にスライスを含むようにECMPルーティングテーブルを更新可能である。
【0058】
図3Aは、LAGなしでのパケットのルーティングに用いられるシステム構成要素の例示的な図である。本例においては、サーバ等のホスト310がパケットを第1のスイッチ320に送る。第1のスイッチ320は、宛先ホスト340への経路中にある第2のスイッチ330への複数のリンク325を含み得る。本例において、第1および第2のスイッチ320、330は、リンク325を構成する4つの10Gbpsインタフェースを用いて接続されている。ただし、スイッチ320、330上のネットワークオペレーティングシステム(「OS」)は、レイヤ2ループに基づいて、これら10Gbpsインタフェースのうちの3つを無効化し得る。第1および第2のスイッチ320、330等の2つのノード間に2つ以上のレイヤ2経路が存在する場合は、ネットワークにおいて、スイッチングループが発生し得る。これらのループは、スイッチ320、330がすべてのポートにおいてブロードキャストを転送することと、レイヤ2パケットヘッダが有効期限(「TTL:Time To Live」)値をサポートしないことに基づいて、ブロードキャストストームを生成し得る。冗長性を理由として複数のリンク325を有することが魅力的となり得ることから、ループは通常、最短経路ブリッジ(「SPB:Shortest-Path Bridging」)プロトコルを用いて除外される。この手法の不都合として、冗長リンク325は、図3Aにおいて「×」により示す通り、非アクティブな状態に留まる。これは、スイッチの全帯域幅が最適化されていないことを意味する。
【0059】
図3Bに示すように、ECMP等を伴うLAGを用いて、帯域幅を増大可能である。図3Bは、VSNにおけるスライスベースルーティングのためのシステム構成要素の例示的な図である。図3Bに示すように、第1のスイッチ320に入ったパケット315は、スイッチ間LAG345を用いることにより、リンク325全体で一様にルーティング可能である。第1のスイッチ320上の負荷分散アルゴリズムによって、スイッチ320、330間のすべてのリンク325にわたってパケット315を分散させることができる。
【0060】
一例において、パケット315は、スライスIDに従って、リンク325上に分散する。本例において、リンク325は、単一の仮想リンクとして一体的にバンドルされているが、同じリンク上の同じスライスのパケットを保持するには、スライスIDが用いられる。一例において、特定のスライスに用いられるリンクは、負荷分散に基づいて変化し得る。ただし、スライスIDが同じ第1および第2のパケットは、仮想チャネル内の同じリンク上に保持される。これにより、スライスのパケットがばらばらの順序で第2のスイッチ330に到着することがないようにし得る。これにより、第2のスイッチ330は、スライスのフローにエラーを招来することなく、パケット315を宛先ホスト340に転送可能となる。
【0061】
図4は、VSN中の異なるスライス経路におけるパケットのルーティングに用いられるシステム構成要素の例示的な図である。第1のスライス460は、スイッチR1、R3、R5、およびR6に及ぶ可能性がある。第2のスライス465は、スイッチR1、R2、R4、およびR6に及ぶ可能性がある。本例において、両スライス460、465は、サンフランシスコ420からニューヨーク市450まで及ぶが、その全体において、異なるルートをたどる。本例のスイッチとしては、ルータが挙げられる。一例において、これらのスイッチはそれぞれ、各スライス460、465のパケットレートおよびタイミング情報を計算し得る。
【0062】
VSNを通るルートであるスライス経路は、オーケストレーションプロセスに基づいて変更可能である。たとえば、図4の実例に先立って、第1および第2の両スライス460、465は、ネットワークを通る同じスライス経路をたどることができ、これを第1のスライス460の経路として示す。当該例において、第2のスライス465は当初、(図4において現在、第1のスライス460に対して示すような)スイッチR3およびR5を横切るサンフランシスコ420からニューヨーク市450までのスライス経路を有する。第2のスライス465のスライス経路は、輻輳に基づいて、スイッチR3、R5の代わりに(図4において現在示すような)スイッチR2、R4を使用するように変更されたと考え得る。このため、オーケストレータは、スイッチR1におけるルーティングテーブルを更新して、スイッチR2の代わりにスイッチR2へと次ホップを変更可能である。また、スイッチR2、R3、R4、およびR5におけるルーティングテーブルは、新たなスライス経路を反映するように更新可能である。また、オーケストレータは、スイッチR2およびR4において第2のスライスが必要とするVNFをインスタンス化することができる。
【0063】
ルーティングテーブルの更新は、ECMPおよびLAGのスライスベーステーブルの更新を含み得る。次ホップが変化した場合は、どのスライスがどの集合に含まれるかに対して、ECMP集合も変化し得る。たとえば、第1のスイッチR1において、第1のECMP集合は、第1および第2の両スライス460、465を含み得る。ただし、スイッチR2、R4に沿うスライス経路をたどるように第1のスライス460が再ルーティングされた場合、第1のスイッチR1は、第1のECMP集合に第1のスライス460を含むことができなくなる。これは、現時点の次ホップが、スイッチR3に代わってスイッチR2となっているためである。したがって、第1のスイッチR1は、第1のECMP集合から第1のスライス460を除去するとともに、代替として、スイッチR2へのバンドル化リンクを含む第2のECMP集合に配置することができる。一例において、スイッチは、新たなスライス経路情報を受信するたびに、そのECMP集合を変更するようにプログラムされる。
【0064】
前述の通り、オーケストレータは、輻輳に基づいてスライス経路を変更可能である。オーケストレータは、輻輳を検出するため、さまざまなスイッチからのパケットレートおよびタイミング情報等のテレメトリックデータを使用可能である。オーケストレータは、このデータを使用して、各スライス460、465のスループットの集約を試行可能である。ただし、スイッチR3およびR5は、サンフランシスコ420からニューヨーク450に向かう第1のスライス460の重複するパケットレートデータを有するが、スイッチR5は、マイアミ470からニューヨーク450に向かう第1のスライス460の重複しない関連するパケットレートデータも含むことになる。このため、一例においては、スイッチR3からのデータが無視される一方、スイッチR5におけるマイアミ470のデータは、第1のスライス460のスループットの計算に含まれるものとする。これは、第1のスライス460が、サンフランシスコ420およびニューヨーク市450それぞれからのフローである図示の2つの異なるフローを有するためである。
【0065】
一例としてオーケストレータに言及するが、本明細書の種々例においてオーケストレータに割り当てられたステップは、モニタリングモジュール等、オーケストレータと通信する別個のプロセスによっても実行可能である。
【0066】
図5は、VSN500におけるシステム構成要素の例示的な図である。VSN500としては、1つまたは複数のクラウド520、540を含む分散Telcoクラウドネットワークが挙げられる。スライス572、578、582は、これらのクラウド520、540全体に分散可能である。
【0067】
各クラウド520、540は、ネットワーク機能仮想化(「NFV」)542のための物理および仮想インフラを有し得る。たとえば、ルータおよびサーバ等の物理スイッチ544は、VNF機能を提供するVM546またはマイクロサービスを動作させ得る。スライスは、エッジクラウド520上で実行される第1のVNFを含み得る。VNFは、1つまたは複数のvCPUを利用可能であり、一例においては、1つまたは複数のVM524が挙げられる。ただし、エッジクラウド520は、多数のVNFを実行可能であり、これは多くの場合、VNFがさまざまなスライスの一部である場合の複数のテナントを対象とする。スライスは、異なるスライスからのVNFが、共有物理ハードウェア522上で動作するVM524に依拠する場合であっても、互いの存在を認識しない状態で、機能的観点からの分離を保ち得る。
【0068】
スライス経路中の第1のVNFは、異なるクラウド540に配置可能な第2のVNFと通信可能である。たとえば、第2のVNFは、コアクラウド540の物理ハードウェア544上で動作する1つまたは複数のVM546を含み得る。また、第2のVNFは、スライス経路中のさらに別のVNFと通信可能である。一例において、これらのVNFのうちの1つまたは複数は、インターネット560への出力として作用し得る。
【0069】
1つまたは複数のユーザデバイス502は、たとえば5Gデータ接続を用いて、VNF500のスライスに接続可能である。ユーザデバイス502としては、Telcoネットワークに接続可能な任意の物理プロセッサ対応デバイスが挙げられる。例として、車両、電話、ラップトップ、タブレット、IoTデバイス、仮想現実デバイス等が挙げられる。セルタワー505等の送受信機がこれらのユーザデバイス502と送受信可能である。エッジクラウド520への入力では、スライスセレクタ508がユーザデバイス502から送られたデータを受信して、適用するスライスを決定可能である。スライスセレクタ508は、エッジクラウド中のVM524として動作することも可能であるし、またはエッジクラウド520に接続された異なるハードウェア上で動作することも可能である。一例において、スライスセレクタは、パケットヘッダ中の情報を用いて、パケットが属するスライスを決定することができる。
【0070】
一例において、スライスセレクタ508は最初、パケットを処理して、VSNのネットワークスライスのうちの1つに割り当てる。また、スライスセレクタ508は、割り当てスライスに対する正しい一組のネットワークサービスによってパケットが処理されるように、サービスチェーン動作を取り扱うことができる。種々例において、スライスセレクタ508は、とりわけ、VM、VM内もしくはホストコンピュータの仮想化ソフトウェア内で動作するソフトウェア転送要素(たとえば、フローベースの転送要素)、ホストコンピュータの仮想化ソフトウェア内の転送要素の外側(たとえば、VMと転送要素のポートとの間)で実行される一組のモジュールによって実装可能である。
【0071】
場合により、VSNに対して、多数のスライスセレクタ508を設定する。通信サービスプロバイダの例においては、アクセスネットワークの各セルタワー、基地局、または他の態様に対してネットワークスライスセレクタを設定可能である。通信サービスプロバイダのアクセスネットワークは、各セルタワーのエッジクラウドを含み得るとともに、このような各エッジクラウドにおいて少なくとも1つのスライスセレクタ508を設定可能である。他の例(たとえば、一組の接続データセンタ内に完全に含まれるSD-WANトラフィックの場合)においては、VMから送られたデータメッセージに対するネットワークスライス選択が(送信元VMの外側ではあるものの)データメッセージの送信元と同じホストコンピュータで発生するように、分散ネットワークスライスセレクタが設定される。
【0072】
スライス選択は、パケットのパケットヘッダ中の情報に基づき得る。たとえば、スイッチまたはスライスセレクタは、レイヤ2~レイヤ4(L2~L4)ヘッダの組み合わせを使用することも可能であるし、(たとえば、レイヤ7(L7)ヘッダ中のデータに基づいてトラフィックを分類するために)深層パケット検査を実行することも可能である。たとえば、スライス選択は単に、送信元ネットワークレイヤ(たとえば、IP)アドレスを用いることにより、送信元デバイスに基づくことも可能であるし、L7ヘッダを確認することにより、トラフィックタイプまたは宛先ネットワーク領域に基づくことも可能である。いくつかの実施形態において、ネットワークスライスセレクタは、接続の各データメッセージ上で深層パケット検査を実行する必要がないように、接続をネットワークスライスにマッピングする状態を維持する。また、一部の接続については、スライス選択の実行に必要なL7ヘッダ情報を特定のデータメッセージのみが含む。
【0073】
深層パケット検査を用いてスライス選択を実行する場合、接続の最初のデータメッセージには、スライスセレクタがスライスを正しく識別するために必要とするL7ヘッダ情報が含まれていなくてもよい。たとえば、端末デバイス(たとえば、スマートフォンまたはタブレット等のモバイルデバイス、ラップトップまたはデスクトップコンピュータ、IoTデバイス、自動運転車、セキュリティシステムに属するスマートカメラ)とネットワーク領域との間の接続は、TCPハンドシェイク等の一組の接続開始メッセージによって開始となることが多い。ハンドシェイクの完了後、デバイスは、たとえばネットワーク領域を含むhttp取得メッセージを送る。デバイスとネットワーク領域との間で送信される後続のデータメッセージは、このような情報を含んでいなくてもよい。
【0074】
分散仮想インフラを管理するため、モニタリングモジュールを有するオーケストレータ568を含めて、プロバイダは管理プロセスのトポロジ565を動作させ得る。オーケストレータ568は、異なるサーバ上または異なる仮想環境中で別個に動作するモニタリングモジュールと交互に通信可能である。本例において、モニタリングモジュールとしては、オーケストレータ568とともに機能するトポロジ565の一部が挙げられる。これらのプロセスの一例となるフレームワークがVMWAREによるVCLOUD NFVであって、これは、ネットワーク仮想化にVSPHEREを、仮想解析にVREALIZEを使用可能である。例示的なオーケストレータは、CLOUDIFYである。
【0075】
一例において、オーケストレータ568は、スライスおよびVNFの管理を担当し得る。これは、性能基準およびネットワーク負荷に基づく新たなスライスのプロビジョニングまたは既存のスライスの再プロビジョニングを含み得る。オーケストレータ568は、1つまたは複数のコアクラウド520、540中またはクラウドとは別個に配置された1つまたは複数の物理サーバ上で動作し得る。オーケストレータ568は、各スライスにどのクラウドおよびVNFが含まれるかについての経過を追うツールを提供可能である。オーケストレータ568はさらに、個々のテナント570、580のスライス性能を追跡して、管理コンソールを提供可能である。また、オーケストレータ568は、性能基準および負荷情報を受信して、モニタリングモジュールが新たなスライス経路を見出すべきタイミングを決定可能である。
【0076】
本例においては、第1のテナント570が複数のスライス572、574を有する。各スライス572、578は、当該スライスのVNF要件を示すスライス記録により規定可能である。VNF574、576はそれぞれ、サービスチェーンにおける異なる機能を提供可能である。
【0077】
また、SLAはスライスのさまざまな閾値性能要件を規定し得る。これらの性能要件は、レイテンシ、ラウンドトリップタイム、帯域幅等を含み得る。一例において、これらは、スライスごとのQoS要件として機能し得る。
【0078】
オーケストレータ568は、モニタリングモジュールに依拠して、スイッチ522、544からテレメトリック情報を受信するとともに、SLAが満たされているかを判定することができる。一例において、モニタリングモジュールは、スイッチ522、544にエージェント501を提供する。スイッチ522、544は、エージェント501を実行するようにプログラム可能である。また、モニタリングモジュールは、入力ポート503から出力ポート506まで、および、出力ポート506から物理ネットワーク500中の次ホップまでパケットを移動させるのにスイッチが使用するユーザ定義のポリシングアルゴリズムを供給可能である。また、モニタリングモジュールは、次ホップおよびこれらの次ホップに対して使用する出力インタフェース(たとえば、ポート)を決定するのにスイッチ522、544が使用するスライス経路情報も供給可能である。
【0079】
また、オーケストレータ568は、スライスセレクタ508およびスイッチ522、544の設定を変更して、スライス経路を通るトラフィックのルートが正しくなるようにし得る。
【0080】
オーケストレータ568、仮想管理トポロジ、およびモニタリングモジュールに別々に言及したが、これらのプロセスはすべて、一体的に動作し得る。これらの例は、どのプロセスがどのステップを実行するかを制限するものではない。その代わりに、モニタリングモジュールは、上記ステージを実行する仮想管理トポロジの任意の部分と考えられる。
【0081】
本明細書に開示の例の規定および実施を考慮することにより、当業者には、本開示の他の例が明らかとなるであろう。上記方法の一部を一連のステップとして提示したが、当然のことながら、1つまたは複数のステップが同時に起こることもあり得るし、重なって起こることもあり得るし、異なる順序で起こることもあり得る。提示のステップの順序は、可能性を示したに過ぎず、これらのステップは、任意の好適な様態で実行または実施可能である。さらに、本明細書に記載の例のさまざまな特徴は、相互に排他的ではない。むしろ、本明細書に記載の如何なる例の如何なる特徴も、その他任意の好適な例に組み込み可能である。上記規定および例は、ほんの一例に過ぎないと考えられ、本開示の真の範囲および思想は、以下の特許請求の範囲により示されるものとする。
図1
図2
図3A
図3B
図4
図5