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

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

▶ シスコ テクノロジー,インコーポレイテッドの特許一覧

特許7526731シームレスなマルチクラウドルーティングおよびポリシーの相互接続
<>
  • 特許-シームレスなマルチクラウドルーティングおよびポリシーの相互接続 図1A
  • 特許-シームレスなマルチクラウドルーティングおよびポリシーの相互接続 図1B
  • 特許-シームレスなマルチクラウドルーティングおよびポリシーの相互接続 図2A
  • 特許-シームレスなマルチクラウドルーティングおよびポリシーの相互接続 図2B
  • 特許-シームレスなマルチクラウドルーティングおよびポリシーの相互接続 図3
  • 特許-シームレスなマルチクラウドルーティングおよびポリシーの相互接続 図4A
  • 特許-シームレスなマルチクラウドルーティングおよびポリシーの相互接続 図4B
  • 特許-シームレスなマルチクラウドルーティングおよびポリシーの相互接続 図5
  • 特許-シームレスなマルチクラウドルーティングおよびポリシーの相互接続 図6
  • 特許-シームレスなマルチクラウドルーティングおよびポリシーの相互接続 図7
  • 特許-シームレスなマルチクラウドルーティングおよびポリシーの相互接続 図8
  • 特許-シームレスなマルチクラウドルーティングおよびポリシーの相互接続 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-24
(45)【発行日】2024-08-01
(54)【発明の名称】シームレスなマルチクラウドルーティングおよびポリシーの相互接続
(51)【国際特許分類】
   H04L 45/036 20220101AFI20240725BHJP
   H04L 45/74 20220101ALI20240725BHJP
【FI】
H04L45/036
H04L45/74
【請求項の数】 20
(21)【出願番号】P 2021539413
(86)(22)【出願日】2020-01-10
(65)【公表番号】
(43)【公表日】2022-03-07
(86)【国際出願番号】 US2020013084
(87)【国際公開番号】W WO2020150092
(87)【国際公開日】2020-07-23
【審査請求日】2022-05-02
(31)【優先権主張番号】16/252,115
(32)【優先日】2019-01-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】508041127
【氏名又は名称】シスコ テクノロジー,インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100140431
【弁理士】
【氏名又は名称】大石 幸雄
(72)【発明者】
【氏名】ジャナキラマン,ラジャゴパラン
(72)【発明者】
【氏名】ガナパティー,シヴァクマール
(72)【発明者】
【氏名】マーデンテ,ジャンルカ
(72)【発明者】
【氏名】ミオ,ジョヴァンニ
(72)【発明者】
【氏名】ヴァルジバイ,パテル アミットクマール
【審査官】羽岡 さやか
(56)【参考文献】
【文献】米国特許出願公開第2018/0062880(US,A1)
【文献】韓国公開特許第10-2012-0124641(KR,A)
【文献】米国特許出願公開第2018/0234459(US,A1)
【文献】韓国登録特許第10-1826498(KR,B1)
【文献】坪田 弘樹,これからの企業ネットワークの教科書 2019年度版,テレコミュニケーション 第36巻 第4号 Telecommunication,日本,株式会社リックテレコム,2019年03月25日,第36巻,P.18-19
(58)【調査した分野】(Int.Cl.,DB名)
H04L 45/036
H04L 45/74
(57)【特許請求の範囲】
【請求項1】
オンプレミスサイト及び1つ以上のクラウドサイトを含むマルチクラウドファブリックにわたってルータを管理する方法であって、
前記マルチクラウドファブリックにわたって複数のポリシーコンストラクトを正規化することと、
前記1つ以上のクラウドサイトそれぞれのポリシーコンストラクトに関連付けられたポリシーのセットの実装を、前記1つ以上のクラウドサイトのそれぞれの複数のルータに分散させることと、を含み、
前記正規化することは、
前記オンプレミスサイトのポリシーコンストラクトを前記1つ以上のクラウドサイトのそれぞれのポリシーコンストラクトにマッピングすることであって、前記オンプレミスサイトの前記ポリシーコンストラクトは、前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトとは異なるタイプのポリシーコンストラクトを含み、
前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトからの前記ポリシーコンストラクトを変換して、前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトからの前記ポリシーコンストラクトにマッピングされた前記オンプレミスサイトからの前記ポリシーコンストラクトに一致させることと、
前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトからの前記変換されたポリシーコンストラクトにある1つ以上のエンドポイントに関連付けられたトラフィックを前記複数のルータの一つで受信することに応じて、前記トラフィックに対して、前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトからの前記変換されたポリシーコンストラクトに関連付けられたポリシーのセットを適用することと、
を含む、方法。
【請求項2】
前記正規化されたプライベートネットワークを介して、前記オンプレミスサイトと前記1つ以上のクラウドサイトとの間の相互接続を提供すること、をさらに含む、請求項1に記載の方法。
【請求項3】
前記オンプレミスサイトの前記ポリシーコンストラクトは、エンドポイントグループ(EPG)を含み、前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトの各々は、前記1つ以上のクラウドサイトからの関連するクラウドサイトによってサポートされるそれぞれのタイプのセキュリティグループを含み、各EPGは、前記オンプレミスサイトからのエンドポイントの第1のそれぞれのセットを含み、前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトの各々は、前記1つ以上のクラウドサイトのうちのそれぞれ1つからのエンドポイントの第2のそれぞれのセットに関連付けられている、請求項1に記載の方法。
【請求項4】
前記正規化後、前記オンプレミスサイトと前記クラウドサイトとの間のトラフィックフローは、前記オンプレミスサイトと前記クラウドサイトとの間の契約なしに生じる、請求項1に記載の方法。
【請求項5】
前記正規化することは、
関連するポリシーコンストラクトにマッピングされている前記1つ以上のクラウドサイトのエンドポイントごとに、前記オンプレミスサイトに、前記エンドポイントのアドレスを提供することと、
各エンドポイントの前記アドレスに基づいて、前記1つ以上のクラウドサイトの各エンドポイントを、前記オンプレミスサイトでプロビジョニングされたそれぞれのシャドウポリシーコンストラクトにマッピングすることと、をさらに含む、請求項1に記載の方法。
【請求項6】
前記オンプレミスサイトの各ポリシーコンストラクトと、前記1つ以上のクラウドサイトの各々の関連する各ポリシーコンストラクトとの間のトラフィックに対して、それぞれのセキュリティポリシーを確立することと、をさらに含む、請求項1に記載の方法。
【請求項7】
前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトからの前記変換されたポリシーコンストラクトに関連付けられたポリシーのセットは、前記1つ以上のクラウドサイトのそれぞれのエンドポイントに関連付けられたセキュリティポリシーを含み、
前記分散させることは、
記セキュリティポリシーを、前記1つ以上のクラウドサイトそれぞれの複数のデータプレーンルータにわたって分散することであって、各データプレーンルータが、そのデータプレーンルータにマッピングされたエンドポイントのそれぞれのセットに関連付けられた前記セキュリティポリシーのそれぞれのサブセットを受信し、
前記複数のデータプレーンルータからの各データプレーンルータによって、そのデータプレーンルータにマッピングされたエンドポイントの前記それぞれのセットの1つ以上を含む、前記それぞれのクラウドサイト内の各プライベート仮想ネットワークに、エンドポイントの前記それぞれのセットに関連付けられたルートのそれぞれのセットをアドバタイズすることと、
ボーダーゲートウェイプロトコル(BGP)ルートマップに基づいて、前記複数のデータプレーンルータ内の各データプレーンルータが、前記それぞれのクラウドサイト内の、そのデータプレーンルータにマッピングされていない前記エンドポイントに関連付けられたルートをアドバタイズすることを防止することと、
エンドポイントの前記それぞれのセットのうちの1つ以上に関連付けられたトラフィックの受信に応答して、エンドポイントの前記それぞれのセットにマッピングされた前記データプレーンルータを介して前記トラフィックに、エンドポイントの前記それぞれのセットに関連付けられた前記セキュリティポリシーの前記それぞれのサブセットのうちの1つ以上を適用することと、を含む、請求項1に記載の方法。
【請求項8】
マルチクラウドファブリックにわたってルータを管理するシステムであって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって
前記マルチクラウドファブリックにわたって複数のポリシーコンストラクトを正規化し、
前記1つ以上のクラウドサイトそれぞれのポリシーコンストラクトに関連付けられたポリシーのセットの実装を、前記1つ以上のクラウドサイトのそれぞれの複数のルータに分散させる命令を格納した非一時的コンピュータ可読記憶媒体と、を備え、前記正規化させることは、
オンプレミスサイトのポリシーコンストラクトを前記1つ以上のクラウドサイトのそれぞれのポリシーコンストラクトにマッピングすることであって、前記オンプレミスサイトの前記ポリシーコンストラクトは、前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトとは異なるタイプのポリシーコンストラクトを含み、
前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトからの前記ポリシーコンストラクトを変換して、前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトからの前記ポリシーコンストラクトにマッピングされた前記オンプレミスサイトからの前記ポリシーコンストラクトのうちのそれぞれ1つと一致させることと、
前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトからの前記ポリシーコンストラクトにある1つ以上のエンドポイントに関連付けられたトラフィックを前記複数のルータの一つで受信することに応じて、前記トラフィックに対して、前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトからの前記ポリシーコンストラクトに関連付けられたポリシーのセットを適用することを含む、システム。
【請求項9】
前記非一時的コンピュータ可読記憶媒体は、前記少なくとも1つのプロセッサによって、前記正規化されたプライベートネットワークを介して、前記オンプレミスサイトと前記1つ以上のクラウドサイトとの間の相互接続を提供させる、命令をさらに格納する、請求項8に記載のシステム。
【請求項10】
前記オンプレミスサイトの前記ポリシーコンストラクトは、エンドポイントグループ(EPG)を含み、前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトの各々が、前記1つ以上のクラウドサイトからの関連するクラウドサイトによってサポートされるそれぞれのタイプのセキュリティグループを含み、各EPGは、前記オンプレミスサイトからのエンドポイントの第1のそれぞれのセットを含み、前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトの各々は、前記1つ以上のクラウドサイトのうちのそれぞれ1つからのエンドポイントの第2のそれぞれのセットに関連付けられている、請求項8に記載のシステム。
【請求項11】
前記非一時的コンピュータ可読記憶媒体は、前記少なくとも1つのプロセッサによって、前記正規化後、前記オンプレミスサイトと前記クラウドサイトとの間のトラフィックフローは、前記オンプレミスサイトと前記クラウドサイトとの間の契約なしに生じさせる、命令をさらに格納する、請求項8に記載のシステム。
【請求項12】
前記正規化することは、
関連するポリシーコンストラクトにマッピングされている前記1つ以上のクラウドサイトのエンドポイントごとに、前記オンプレミスサイトに、前記エンドポイントのアドレスを提供することと、
各エンドポイントの前記アドレスに基づいて、前記1つ以上のクラウドサイト内の各エンドポイントを、前記オンプレミスサイトでプロビジョニングされたそれぞれのシャドウポリシーコンストラクトにマッピングすることと、をさらに含む、請求項8に記載のシステム。
【請求項13】
前記非一時的コンピュータ可読記憶媒体は、前記少なくとも1つのプロセッサによって、前記オンプレミスサイトの各ポリシーコンストラクトと、前記1つ以上のクラウドサイトの各々の関連する各ポリシーコンストラクトとの間のトラフィックに対して、それぞれのセキュリティポリシーを確立させる命令をさらに含む、請求項8に記載のシステム。
【請求項14】
1つ以上の非一時的コンピュータ可読記憶媒体であって、
1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、
マルチクラウドファブリックにわたって複数のポリシーコンストラクトを正規化し、
前記1つ以上のクラウドサイトそれぞれのポリシーコンストラクトに関連付けられたポリシーのセットを、前記1つ以上のクラウドサイト内の複数のルータに分散させることを行わせる命令を格納し、
前記正規化することは、
オンプレミスサイトのポリシーコンストラクトを前記1つ以上のクラウドサイトのそれぞれのポリシーコンストラクトにマッピングすることであって、前記オンプレミスサイトの前記ポリシーコンストラクトは、前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトとは異なるタイプのポリシーコンストラクトを含み、
前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトからの前記ポリシーコンストラクトを変換して、前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトからの前記ポリシーコンストラクトにマッピングされた前記オンプレミスサイトからの前記ポリシーコンストラクトのうちのそれぞれ1つと一致させることと、
前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトからの前記ポリシーコンストラクトにある1つ以上のエンドポイントに関連付けられたトラフィックを前記複数のルータの一つで受信することに応じて、前記トラフィックに対して、前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトからの前記ポリシーコンストラクトに関連付けられたポリシーのセットを適用することを含む、コンピュータ可読記憶媒体。
【請求項15】
前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、
前記正規化されたプライベートネットワークを介して、前記オンプレミスサイトと前記1つ以上のクラウドサイトとの間の相互接続を提供させる、命令をさらに格納する請求項14に記載のコンピュータ可読記憶媒体。
【請求項16】
前記オンプレミスサイトの前記ポリシーコンストラクトは、エンドポイントグループ(EPG)を含み、前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトの各々が、前記1つ以上のクラウドサイトからの関連するクラウドサイトによってサポートされるそれぞれのタイプのセキュリティグループを含み、各EPGは、前記オンプレミスサイトからのエンドポイントの第1のそれぞれのセットを含み、前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトの各々は、前記1つ以上のクラウドサイトのうちのそれぞれ1つからのエンドポイントの第2のそれぞれのセットに関連付けられている、請求項14に記載のコンピュータ可読記憶媒体。
【請求項17】
前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、
前記正規化後、前記オンプレミスサイトと前記クラウドサイトとの間のトラフィックフローは、前記オンプレミスサイトと前記クラウドサイトとの間の契約なしに生じさせる、命令をさらに格納する請求項14に記載のコンピュータ可読記憶媒体。
【請求項18】
前記関連付けられたポリシーコンストラクトにマッピングされている前記1つ以上のクラウドサイトのエンドポイントごとに、前記オンプレミスサイトに、前記エンドポイントのアドレスを提供させ、
各エンドポイントの前記アドレスに基づいて、前記1つ以上のクラウドサイト内の各エンドポイントを、前記オンプレミスサイトでプロビジョニングされたそれぞれのシャドウポリシーコンストラクトにマッピングさせる、命令をさらに格納する請求項14に記載のコンピュータ可読記憶媒体。
【請求項19】
前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、
前記オンプレミスサイトの各ポリシーコンストラクトと、前記1つ以上のクラウドサイトの各々の関連する各ポリシーコンストラクトとの間のトラフィックに対して、それぞれのセキュリティポリシーを確立させる、命令をさらに格納する請求項14に記載のコンピュータ可読記憶媒体。
【請求項20】
前記1つ以上のクラウドサイトの前記それぞれのポリシーコンストラクトからの前記変換されたポリシーコンストラクトに関連付けられたポリシーのセットは、前記1つ以上のクラウドサイトのそれぞれのエンドポイントに関連付けられたセキュリティポリシーを含み、
前記分散させることは
記セキュリティポリシーを、前記1つ以上のクラウドサイトそれぞれの複数のデータプレーンルータにわたって分散することであって、各データプレーンルータは、そのデータプレーンルータにマッピングされたエンドポイントのそれぞれのセットに関連付けられた前記セキュリティポリシーのそれぞれのサブセットを受信する、分散することと、
前記複数のデータプレーンルータからの各データプレーンルータによって、そのデータプレーンルータにマッピングされたエンドポイントの前記それぞれのセットの1つ以上を含む、前記それぞれのクラウドサイト内の各プライベート仮想ネットワークに、エンドポイントの前記それぞれのセットに関連付けられたルートのそれぞれのセットをアドバタイズすることと、
ボーダーゲートウェイプロトコル(BGP)ルートマップに基づいて、前記複数のデータプレーンルータ内の各データプレーンルータが、前記それぞれのクラウドサイト内の、そのデータプレーンルータにマッピングされていない前記エンドポイントに関連付けられたルートをアドバタイズすることを防止することと、
エンドポイントの前記それぞれのセットの1つ以上に関連付けられたトラフィックの受信に応答して、エンドポイントの前記それぞれのセットにマッピングされた前記データプレーンルータを介して、エンドポイントの前記それぞれのセットに関連付けられた前記セキュリティポリシーの前記それぞれのサブセットの1つ以上を適用することと、を行わせる命令をさらに格納する、請求項14に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、その内容全体が参照によって本明細書に組み込まれる、2019年1月18日に出願された「SEAMLESS MULTI-CLOUD ROUTING AND POLICY INTERCONNECTIVITY」と題された米国非仮特許出願第16/252,115号の利益および優先権を主張する。
【0002】
本技術は、クラウドコンピューティングに関し、より詳細には、マルチクラウドポリシーおよびルーティングのスケーリングおよび正規化に関する。
【背景技術】
【0003】
インターネット対応デバイスの普及により、インターネットサービスおよびコンテンツに対する膨大な需要が生まれている。ユーザのネットワークサービスやコンテンツへの依存度が高まるコネクテッド社会になってきている。このインターネット接続革命は、サービスコンテンツプロバイダに重大な課題をもたらしており、サービスコンテンツプロバイダは、しばしば、ユーザのパフォーマンスの期待を下回ることなく大量のユーザ要求を処理するのに困難を抱えている。例えば、クラウドプロバイダは通常、ユーザからのネットワークとコンテンツの要求に対応するために、大規模で複雑なデータセンターを必要とする。これらのデータセンターは、一般に、特定のサービスをホストするように構成されたサーバファームが装備されており、データセンタートラフィックをルーティングし、大量のセキュリティポリシーを適用するようにプログラムされた多数のスイッチおよびルータを含む。多くの場合、特定のデータセンターは、何百万ものトラフィックフローを処理し、多数のセキュリティ要件を適用することが期待されている。
【0004】
企業や組織などのエンティティが所有するプライベートネットワークも同様に、コンピューティングリソースおよびパフォーマンスに対する需要が高まっている。このような増大する需要を満たすために、このようなエンティティは、クラウドプロバイダからコンピューティングリソースおよびサービスを購入することが多い。例えば、このようなエンティティは、パブリッククラウド上に仮想プライベートクラウドまたはネットワークを作成し、その仮想プライベートクラウドまたはネットワークをそのプライベートネットワークまたはオンプレミスネットワークに接続して、利用可能なコンピュートリソースおよび機能を拡張することができる。このようにして、エンティティは、プライベートまたはオンプレミスのデータセンターをパブリッククラウドでホストされているリモートデータセンターと相互接続し、それによってプライベートネットワークを拡張することができる。
【0005】
残念ながら、ポリシーモデルの統一性の欠如と、データセンターとクラウドプロバイダソリューションとの間の構成の制限により、異なる環境を統合し、データセンター環境にわたって一貫したポリシーおよびルーティングモデルを適用するエンティティの機能が大幅に制限される。例えば、Ciscoのソフトウェア定義ネットワークおよびデータセンター管理ソリューションであるアプリケーションセントリックインフラストラクチャ(ACI)は、リーフスイッチ当たり128K契約ルール、64Kインターネットプロトコル(IP)アドレス、4Kエンドポイントグループ(EPG)を含む、数十万のセキュリティポリシーをサポートしている。対照的に、AmazonのパブリッククラウドソリューションであるAmazon Web Services(AWS)は、エンドポイントごとに250のセキュリティルールの制限を有し、これは、ACIによってサポートされているポリシーのスケールよりも桁違いに小さい。したがって、クラウドソリューションとデータセンターソリューションとの間で、異なるポリシーモデルおよび構成上の制限があると、ハイブリッドクラウド実装におけるポリシーおよびルーティングのスケーラビリティおよび均一性が大幅に制限される可能性がある。
【図面の簡単な説明】
【0006】
本開示の上記および他の利点および特徴を得ることができる様式を説明するために、添付の図面に示されるその特定の実施形態を参照することにより、上記で簡単に説明した原理のより具体的な説明を行う。これらの図面が本開示の例示的な実施形態のみを描写し、したがって、その範囲を限定すると見なされるべきではないことを理解して、本明細書の原理は、以下の添付の図面を使用することにより、追加の特定事項および詳細とともに記載および説明される。
【0007】
図1A-1B】オンプレミスサイトおよびパブリッククラウドを含むマルチクラウドファブリックでのポリシーのスケーリングおよび統合のアーキテクチャの例を示す。
図2A-2B】パブリッククラウド内のデータプレーンルータ間で、例示的なパブリッククラウドのトラフィックのデータプレーン機能を分散するための例示的な構成を示す。
図3】マルチクラウドファブリックでの例示的なポリシー正規化の使用事例を示す。
図4A】ポリシー正規化の第1の例示的な使用事例を示す。
図4B】ポリシー正規化の第2の例示的な使用事例を示す。
図5】クラウドサイトでのトラフィックの処理およびポリシーの実装がクラウドサイト内のクラウドルータのそれぞれのサブセットに確実に分散されるようにするための、クラウドサイトでのポリシーの例示的な分散を示す。
図6】クラウドサイトのエンドポイントに実装されたセキュリティルールをスケーリングするために、クラウドサイトのルートを集約するための例示的なスキームを示す。
図7】マルチクラウドファブリックでの弾性のあるポリシーのスケーリングおよび統合の例示的な方法を示す。
図8】様々な例による例示的なネットワークデバイスを示す。
図9】様々な例による例示的なコンピューティングデバイスを示す。
【発明を実施するための形態】
【0008】
本開示の様々な実施形態について、以下で詳細に考察する。特定の実装形態について考察するが、これは例証のみを目的として行われることを理解されたい。関連技術の当業者は、本開示の趣旨および範囲から離れることなく、他の構成要素および構成を使用することができることを認識するであろう。したがって、以下の説明および図面は例示的なものであり、限定的なものとして解釈されるべきではない。本開示の完全な理解を提供するために、多数の特定の詳細が説明される。しかしながら、特定の例において、説明を曖昧にすることを避けるために、周知の内容、つまり従来技術の内容は説明されていない。本開示における一実施形態または実施形態への参照は、同一の施形態または任意の実施形態への参照であり得、このような参照は、実施形態の少なくとも1つを意味する。
【0009】
「一実施形態」または「実施形態」への参照は、実施形態に関連して記載された特定の特徴、構造、または特性が、本開示の少なくとも1つの実施形態に含まれることを意味する。本明細書の様々な場所における「一実施形態において」という語句の出現は、必ずしもすべてが同一の実施形態を指すわけではなく、他の実施形態を相互に排除する別個のまたは代替の実施形態でもない。さらに、いくつかの実施形態によって示され、他の実施形態によって示されない場合もある、様々な特徴が記載されている。
【0010】
本明細書で使用される用語は、一般に、本技術において、本開示の文脈内で、および各用語が使用される特定の文脈において、それらの通常の意味を有する。代替の言語および同義語は、本明細書で論じられる用語のいずれか1つ以上に使用されてもよく、用語が本明細書で詳述または論じられるかどうかに特別な意味を置くべきではない。場合によっては、特定の用語に対する同義語が提供される。1つ以上の同義語の詳述は、他の同義語の使用を排除するものではない。本明細書で論じられる任意の用語の例を含む本明細書の任意の場所での例の使用は、例示的なものにすぎず、本開示または任意の例示的な用語の範囲および意味をさらに制限することを意図するものではない。同様に、本開示は、本明細書に示される様々な実施形態に限定されない。
【0011】
本開示の範囲を限定することを意図することなく、本開示の実施形態による機器、装置、方法、およびそれらに関連する結果の例を以下に示す。タイトルまたはサブタイトルは、読者の便宜のために例で使用される場合があり、開示の範囲を制限するものではないことに留意されたい。別段の定義がない限り、本明細書で使用される技術的および科学的用語は、本開示が関係する当業者によって一般的に理解される意味を有する。矛盾する場合は、定義を含む本明細書が優先される。
【0012】
本開示の追加の特徴および利点は、以下の説明に記載され、一部は説明から明らかであるか、または本明細書に開示された原理の実践によって学ぶことができる。本開示の特徴および利点は、添付の特許請求の範囲で特に指摘されている機器および組み合わせによって実現および取得することができる。本開示のこれらおよび他の特徴は、以下の説明および添付の特許請求の範囲からより完全に明らかになるか、または本明細書に記載の原理の実践によって学ぶことができる。
【0013】
概要
マルチクラウドルーティングおよびポリシーの相互接続のための技術が提供される。例示的な方法は、データプレーンルータの異なるセットを、マルチクラウドファブリックのクラウドサイト内の異なるアドレス空間に関連付けられたデータプレーントラフィックに割り当てて、データプレーントラフィックとデータプレーンルータとの分散マッピングを生成することを含むことができる。この方法は、マルチクラウドファブリック内のオンプレミスサイトに、クラウドサイト上の制御プレーンルータからのルーティングエントリであって、分散マッピングを反映し、アドレス空間ごとに、どのデータプレーンルータがそのアドレス空間のデータプレーントラフィックを処理するかを識別する、ルーティングエントリを提供することと、クラウドサイトにデータプレーンルータが配備されているとき、オンプレミスサイトに、制御プレーンルータからの更新されたルーティング情報を提供することであって、更新されたルーティング情報は、データプレーンルータを、それぞれのアドレス空間に関連付けられたデータプレーントラフィックのネクストホップとして識別する、提供することと、をさらに含むことができる。
【0014】
本明細書に開示されているのは、マルチクラウドファブリックにおけるシームレスなルーティングおよびポリシーの相互接続および正規化のためのシステム、方法、およびコンピュータ可読媒体である。いくつかの例では、マルチクラウドファブリックにおけるシームレスなルーティングおよびポリシーの相互接続および正規化のための方法が提供される。この方法は、複数のデータプレーンルータからのデータプレーンルータの異なるセットを、マルチクラウドファブリックのクラウドサイト内の異なるアドレス空間に関連付けられたデータプレーントラフィックに割り当てて、データプレーントラフィックとデータプレーンルールータとの分散マッピングを生成することを含むことができる。マルチクラウドファブリックは、例えば、1つ以上のオンプレミスサイトおよび/またはクラウドサイトを含むことができる。さらに、異なるアドレス空間は、異なるプライベートネットワーク、異なる仮想ルーティングおよび転送(VRF)インスタンス、異なる仮想プライベートクラウド(VPC)、異なる仮想ネットワーク(例えば、VNET)、異なるネットワークセグメント、異なるネットワークコンテキストなどを含み得る。
【0015】
この方法は、マルチクラウドファブリック内のオンプレミスサイトに、クラウドサイト上の制御プレーンルータからのルーティングエントリを提供することをさらに含むことができる。ルーティングエントリは、データプレーントラフィックとデータプレーンルールータとの分散マッピングを反映し、アドレス空間ごとに、データプレーンルータの様々なセットのうち、どれがそのアドレス空間のデータプレーントラフィックを処理するかを識別することができる。制御プレーンルータは、クラウドサイトに関連付けられた制御プレーントラフィックを処理し、オンプレミスサイト(および/またはマルチクラウドファブリック内の任意の他のデバイスまたはサイト)とルーティング情報を交換するように構成された、クラウドサイト内の制御プレーンルータのセットのうちの1つとすることができる。いくつかの態様では、制御プレーンルータのセットは、マルチクラウドファブリック内の各リモートサイトに対する少なくとも2つの制御プレーンルータを含むことができる。少なくとも2つの制御プレーンルータは、クラウドサイト内のルートのすべてまたは一部を含むことができ、制御プレーンの冗長性を提供することができ、ルーティング情報およびルーティングアップデートを交換するために、他のサイトとボーダーゲートウェイプロトコル(BGP)セッションなどの制御プレーンセッションを確立することができる。
【0016】
この方法はまた、クラウドサイトに1つ以上のデータプレーンルータが配備されたことに応答して、オンプレミスサイトに、制御プレーンルータからの更新されたルーティング情報を提供することを含むことができる。更新されたルーティング情報は、1つ以上のデータプレーンルータを、それぞれのアドレス空間に関連付けられたデータプレーントラフィックのネクストホップとして識別することができる。オンプレミスサイトは、更新されたルーティング情報を受信し、クラウドサイトのルートまたはルートのテーブルを更新することができる。
【0017】
場合によっては、1つ以上のデータプレーンルータ(および任意の他のデータプレーンルータ)は、トラフィック過負荷状態、利用可能な帯域幅が最小しきい値に達する、最大ルーティング容量がしきい値に達する、パフォーマンス要件など、1つ以上の条件に基づいてオンデマンドで配備することができる。1つ以上の条件は、1つ以上のデータプレーンルータの配備または配備解除をトリガする場合がある。場合によっては、制御プレーンルータのセットのうちの1つ以上は、1つ以上のデータプレーンルータに加えて、またはその代わりに、データプレーンルータとしてダブルアップすることができる。例えば、1つ以上のデータプレーンルータの配備をトリガする代わりに(またはそれに加えて)、1つ以上の条件は、1つ以上の制御プレーンルータのセットをトリガして、1つ以上のデータプレーンルータとしてダブルアップする可能性がある。
【0018】
いくつかの態様では、マルチクラウドファブリックにおけるシームレスなルーティングおよびポリシーの相互接続および正規化のためのシステムが提供される。システムは、1つ以上のプロセッサと、命令が格納された少なくとも1つのコンピュータ可読記憶媒体とを含むことができ、命令は、1つ以上のプロセッサによって実行されると、システムに、複数のデータプレーンルータからのデータプレーンルータの異なるセットを、1つ以上のオンプレミスサイトおよび/またはクラウドサイトを含むマルチクラウドファブリックのクラウドサイト内の異なるアドレス空間に関連付けられたデータプレーントラフィックに割り当てて、データプレーントラフィックとデータプレーンルータとの分散マッピングを生成することと、オンプレミスサイトに、クラウドサイト上の制御プレーンルータからのルーティングエントリであって、データプレーントラフィックとデータプレーンルータとの分散マッピングを反映し、アドレス空間ごとに、データプレーンルータの異なるセットのうち、どのセットがそのアドレス空間のデータプレーントラフィックを処理するかを識別する、ルーティングエントリを提供することと、クラウドサイトに1つ以上のデータプレーンルータが配備されていることに応答して、オンプレミスサイトに、1つ以上のデータプレーンルータを、それぞれのアドレス空間に関連付けられたデータプレーントラフィックのネクストホップとして識別する、制御プレーンルータからの更新されたルーティング情報を提供することと、を行わせる。
【0019】
オンプレミスサイトは、更新されたルーティング情報を受信し、クラウドサイトのルートまたはルートのテーブルを更新することができる。場合によっては、1つ以上のデータプレーンルータ(および任意の他のデータプレーンルータ)は、トラフィック過負荷状態、利用可能な帯域幅が最小しきい値に達する、最大ルーティング容量がしきい値に達する、パフォーマンス要件など、1つ以上の条件に基づいてオンデマンドで配備することができる。1つ以上の条件は、1つ以上のデータプレーンルータの配備または配備解除をトリガする場合がある。
【0020】
異なるアドレス空間は、例えば、異なるプライベートネットワーク、異なる仮想ルーティングおよび転送(VRF)インスタンス、異なる仮想プライベートクラウド(VPC)、異なる仮想ネットワーク(例えば、VNET)、異なるネットワークセグメント、異なるネットワークコンテキストなどを含み得る。さらに、制御プレーンルータは、クラウドサイトに関連付けられた制御プレーントラフィックを処理し、オンプレミスサイト(および/またはマルチクラウドファブリック内の他のサイトおよびデバイス)とルーティング情報を交換するように構成されたクラウドサイト内の制御プレーンルータのセットのうちの1つとすることができる。場合によっては、制御プレーンルータのセットは、マルチクラウドファブリック内の各リモートサイトに対する少なくとも2つの制御プレーンルータを含むことができる。少なくとも2つの制御プレーンルータは、クラウドサイト内のルートのすべてまたは一部を含むことができ、制御プレーンの冗長性を提供することができ、ルーティング情報およびルーティングアップデートを交換するために、他のサイトとBGPセッションなどの制御プレーンセッションを確立することができる。
【0021】
いくつかの態様では、マルチクラウドファブリックにおけるシームレスなルーティングおよびポリシーの相互接続および正規化のための非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は、そこに記憶された命令を含むことができ、命令は、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、複数のデータプレーンルータからのデータプレーンルータの異なるセットを、1つ以上のオンプレミスサイトおよび/またはクラウドサイトを含むマルチクラウドファブリックのクラウドサイト内の異なるアドレス空間に関連付けられたデータプレーントラフィックに割り当てて、データプレーントラフィックとデータプレーンルータとの分散マッピングを生成することと、オンプレミスサイトに、クラウドサイト上の制御プレーンルータからのルーティングエントリであって、データプレーントラフィックとデータプレーンルータとの分散マッピングを反映し、アドレス空間ごとに、データプレーンルータの異なるセットのうち、どのセットがそのアドレス空間のデータプレーントラフィックを処理するかを識別する、ルーティングエントリを提供することと、クラウドサイトに1つ以上のデータプレーンルータが配備されていることに応答して、オンプレミスサイトに、1つ以上のデータプレーンルータを、それぞれのアドレス空間に関連付けられたデータプレーントラフィックのネクストホップとして識別する、制御プレーンルータからの更新されたルーティング情報を提供することと、を行わせる。
【0022】
オンプレミスサイトは、更新されたルーティング情報を受信し、クラウドサイトのルートまたはルートのテーブルを更新することができる。場合によっては、1つ以上のデータプレーンルータ(および任意の他のデータプレーンルータ)は、トラフィック過負荷状態、利用可能な帯域幅が最小しきい値に達する、最大ルーティング容量がしきい値に達する、パフォーマンス要件など、1つ以上の条件に基づいてオンデマンドで配備することができる。1つ以上の条件は、1つ以上のデータプレーンルータの配備または配備解除をトリガする場合がある。
【0023】
異なるアドレス空間は、例えば、異なるプライベートネットワーク、異なる仮想ルーティングおよび転送(VRF)インスタンス、異なる仮想プライベートクラウド(VPC)、異なる仮想ネットワーク(例えば、VNET)、異なるネットワークセグメント、異なるネットワークコンテキストなどを含み得る。さらに、制御プレーンルータは、クラウドサイトに関連付けられた制御プレーントラフィックを処理し、オンプレミスサイト(および/またはマルチクラウドファブリック内の他のサイトおよびデバイス)とルーティング情報を交換するように構成されたクラウドサイト内の制御プレーンルータのセットのうちの1つとすることができる。場合によっては、制御プレーンルータのセットは、マルチクラウドファブリック内の各リモートサイトに対する少なくとも2つの制御プレーンルータを含むことができる。少なくとも2つの制御プレーンルータは、クラウドサイト内のルートのすべてまたは一部を含むことができ、制御プレーンの冗長性を提供することができ、ルーティング情報およびルーティングアップデートを交換するために、他のサイトとBGPセッションなどの制御プレーンセッションを確立することができる。
【0024】
いくつかの態様では、上記のシステム、方法、および非一時的コンピュータ可読媒体は、1つ以上のクラウドサイト内のそれぞれのタイプのプライベートまたは仮想ネットワークコンストラクト(例えば、VPC、VNETなど)を、オンプレミスサイトの特定のタイプのプライベートまたは仮想ネットワークコンストラクト(例えば、VRF)に関連付けられたポリシーおよび構成設定のセットに一致するように変換して、マルチクラウドファブリックにわたって正規化されたプライベートまたは仮想ネットワークを生成することと、正規化されたプライベートまたは仮想ネットワークを使用して、オンプレミスサイトと、1つ以上のクラウドサイトとの間の相互接続を提供することを含み得る。
【0025】
いくつかの態様では、上記のシステム、方法、および非一時的コンピュータ可読媒体は、マルチクラウドファブリックにわたって複数のポリシーコンストラクトを正規化することを含むことができる。いくつかの例では、ポリシーコンストラクトは、オンプレミスサイトのポリシーコンストラクトを1つ以上のクラウドサイトのそれぞれのポリシーコンストラクトにマッピングすることと、それぞれのポリシーコンストラクトからの各ポリシーコンストラクトを変換して、それぞれのポリシーコンストラクトからのポリシーコンストラクトにマッピングされたオンプレミスサイトからのポリシーコンストラクトのうちのそれぞれ1つをミラーリングすることと、それぞれのポリシーコンストラクトからのポリシーコンストラクト、および/またはオンプレミスサイトからのポリシーコンストラクトのうちのそれぞれ1つのエンドポイントに関連付けられたトラフィックの受信に応答して、トラフィックに、それぞれのポリシーコンストラクトからのポリシーコンストラクト、およびオンプレミスサイトからのポリシーコンストラクトのうちのそれぞれ1つに関連付けられたポリシーのセットを適用することと、によって正規化され得る。
【0026】
オンプレミスサイトのポリシーコンストラクトは、1つ以上のクラウドサイトのそれぞれのポリシーコンストラクトとは異なるタイプのものとすることができる。場合によっては、オンプレミスサイトのポリシーコンストラクトは、エンドポイントグループ(EPG)またはVRFを含み、1つ以上のクラウドサイトのそれぞれのポリシーコンストラクトの各々は、1つ以上のクラウドサイトからの関連するクラウドサイトによってサポートされるそれぞれのタイプのセキュリティグループまたはプライベートネットワーク(例えば、VPC、VNETなど)を含む。各EPGまたはVRFは、オンプレミスサイトからのエンドポイントのセットを含むことができ、1つ以上のクラウドサイトのそれぞれのポリシーコンストラクトの各々を、1つ以上のクラウドサイトの各々からのエンドポイントのそれぞれのセットに関連付けることができる。
【0027】
いくつかの態様では、上記のシステム、方法、および非一時的コンピュータ可読媒体は、オンプレミスサイトから1つ以上のクラウドサイトにポリシーコンストラクトをストレッチして、1つ以上のクラウドサイトの各々にストレッチされたポリシーコンストラクトを生成することであって、ストレッチされたポリシーコンストラクトは、1つ以上のクラウドサイトの各々において、それぞれのポリシーコンストラクトを表す、生成することと、ストレッチされたポリシーコンストラクトにマッピングされている1つ以上のクラウドサイトのエンドポイントごとに、オンプレミスサイトに、エンドポイントのアドレス(例えば、IPアドレス、IPプレフィックス、サブネットなど)を提供することと、エンドポイントのアドレスを、1つ以上のクラウドサイトの各々上のストレッチされたポリシーコンストラクトをミラーリングするオンプレミスサイトのシャドウポリシーコンストラクトにマッピングすることと、オンプレミスサイトからのポリシーコンストラクト内のエンドポイントごとに、エンドポイントを1つ以上のクラウドサイトの各々上のそれぞれのシャドウポリシーコンストラクトにマッピングすることであって、それぞれのシャドウポリシーコンストラクトは、オンプレミスサイトからのポリシーコンストラクトをミラーリングする、マッピングすることと、によってポリシーコンストラクトを正規化することを含むことができる。
【0028】
いくつかの態様では、上記のシステム、方法、および非一時的コンピュータ可読媒体は、オンプレミスサイトのポリシーコンストラクトについて、オンプレミスサイトの各ポリシーコンストラクトとは異なるタイプ(関連するポリシーコンストラクト)のものである、1つ以上のクラウドサイトの各々に関連するポリシーコンストラクトを作成することと、1つ以上のクラウドサイトの各々の関連付けられたポリシーコンストラクトごとに、オンプレミスサイトにおいて、関連付けられたポリシーコンストラクトをミラーリングするそれぞれのシャドウポリシーコンストラクトをプロビジョニングすることと、オンプレミスサイトのポリシーコンストラクトごとに、1つ以上のクラウドサイトの各々において、オンプレミスサイトのポリシーコンストラクトをミラーリングするそれぞれのシャドウポリシーコンストラクトをプロビジョニングすることと、関連するポリシーコンストラクトにマッピングされている1つ以上のクラウドサイトのエンドポイントごとに、オンプレミスサイトに、エンドポイントのアドレスを提供することと、各エンドポイントのアドレスに基づいて、1つ以上のクラウドサイトの各エンドポイントを、オンプレミスサイトでプロビジョニングされたそれぞれのシャドウポリシーコンストラクトにマッピングすることと、によってポリシーコンストラクトを正規化することを含むことができる。
【0029】
場合によっては、ポリシーコンストラクトの正規化はまた、オンプレミスサイトの各ポリシーコンストラクトと、1つ以上のクラウドサイトの各々の関連する各ポリシーコンストラクトとの間のトラフィックに対して、それぞれのセキュリティポリシーを確立することと、オンプレミスサイトの各ポリシーコンストラクトの各エンドポイントを、1つ以上のクラウドサイトの各々のそれぞれのシャドウポリシーコンストラクトにマッピングすることと、を含み得る。場合によっては、ポリシーコンストラクトの正規化は、クラウドサイトで新しいエンドポイントを発見したことに応答して、新しいエンドポイントのそれぞれのアドレスをオンプレミスサイトに提供することと、新しいエンドポイントのそれぞれのアドレスに基づいて、新しいエンドポイントをオンプレミスサイトでプロビジョニングされたそれぞれのシャドウポリシーコンストラクトにマッピングすることと、をさらに含み得る。
【0030】
いくつかの態様では、上記のシステム、方法、および非一時的コンピュータ可読媒体は、クラウドサイトのエンドポイントに関連付けられたセキュリティポリシーを、複数のデータプレーンルータにわたって分散することであって、各データプレーンルータは、そのデータプレーンルータにマッピングされたエンドポイントのセットに関連付けられたセキュリティポリシーのそれぞれのサブセットを受信する、分散することと、複数のデータプレーンルータからの各データプレーンルータによって、そのデータプレーンルータにマッピングされたエンドポイントのセットの1つ以上を含む、クラウドサイト内の各プライベートまたは仮想ネットワーク(例えば、各VPCまたはVNET)に、エンドポイントのセットに関連付けられたルートのそれぞれのセットをアドバタイズすることと、BGPルートマップに基づいて、複数のデータプレーンルータ内の各データプレーンルータが、クラウドサイト内の、そのデータプレーンルータにマッピングされていないエンドポイントに関連付けられたルートをアドバタイズすることを防止することと、エンドポイントのセットの1つ以上に関連付けられたトラフィックの受信に応答して、エンドポイントのセットにマッピングされたデータプレーンルータを介してトラフィックに、エンドポイントのセットに関連付けられたセキュリティポリシーのそれぞれのサブセットの1つ以上を適用することと、含み得る。
【0031】
例示的な実施形態の説明
開示された技術は、マルチクラウドファブリックにおける弾性のある、シームレスなポリシーおよびルーティングの相互接続および正規化に対する当技術分野の必要性に対応する。本明細書でのアプローチは、マルチクラウドファブリック内の異なるクラウドまたはデータセンター環境にわたってポリシーを統合し、クラウドまたはデータセンター環境間のアーキテクチャ、制限、およびポリシーの制限のいかなる違いにもかかわらず、異なるクラウドまたはデータセンター環境にわたる弾性のあるルーティングおよびポリシーのスケーリングおよび正規化をサポートすることができる。例えば、本明細書でのアプローチは、Ciscoのアプリケーションセントリックインフラストラクチャ(ACI)などのクラウドまたはデータセンターソリューションを複数のデータセンターまたはパブリッククラウドに拡張して、データセンターまたはクラウドにわたって一貫したポリシーモデルおよびルーティングスキームを適用することができる。データセンターまたはクラウドにわたって実装されるセキュリティポリシーの数は、マルチクラウドファブリック内の1つ以上のクラウドプロバイダによって課されるポリシーの制約または制限を超えるようにスケーリングすることができる。したがって、本明細書でのアプローチは、マルチクラウドファブリックにわたる、ルーティングの正規化、ならびにポリシーの均一性、柔軟性、および粒度の向上を提供することができる。
【0032】
本技術は、以下の開示において以下のように詳細に説明される。議論は、マルチクラウドファブリックにおけるルーティングおよびポリシーの正規化およびスケーリングの概要から始まる。議論は、図1Aおよび1Bに示されるように、マルチクラウドファブリックにおけるルーティングおよびポリシーの正規化およびスケーリングのための例示的なアーキテクチャの説明に続く。次いで、図2A~7に示されるように、マルチクラウドファブリックにおけるルーティングおよびポリシーの正規化およびスケーリングのための例示的な戦略および構成の説明が続く。議論は、図8に示されるように例示的なネットワークデバイス、ならびに図9に示されるように、ネットワーキングおよびコンピューティングの動作を実行するのに好適な例示的なハードウェア構成要素を含む、例示的なコンピューティングデバイスアーキテクチャの説明で終了する。ここで、マルチクラウドファブリックにおけるルーティングおよびポリシーの正規化およびスケーリングについて説明する。
【0033】
Ciscoのアプリケーションセントリックインフラストラクチャ(ACI)などのマルチクラウドファブリックまたはデータセンターソリューションは、オンプレミスデータセンターおよび1つ以上のクラウドサイトなど、複数のネットワークファブリックまたはデータセンターのワークロードのネットワーク、セキュリティ、およびサービスを管理することができる。マルチクラウドソリューションは、エンドポイントをエンドポイントグループ(EPG)と呼ばれるエンドポイントのグループまたはコレクションにグループ化し、対応するEPGにセキュリティポリシーまたは契約を適用することができる。マルチクラウドソリューションでは、EPGは、オンプレミスデータセンターとパブリッククラウドの両方にあるエンドポイントを含むことができる。EPGは、オンプレミスデータセンターとパブリッククラウドの両方にあるエンドポイントからのトラフィックにセキュリティポリシーまたは契約を適用することができる。セキュリティポリシーおよびネットワーキング構成は、ACIアプリケーションポリシーインフラストラクチャコントローラ(APIC)および/またはマルチサイトAPICなど、マルチクラウドソリューションに関連付けられた1つ以上のコントローラによって管理され得る。
【0034】
前述のように、パブリッククラウドにおけるネットワーキング構成およびポリシーは、様々なルーティングおよびポリシーのモデルまたはスキーム、ならびにクラウドプロバイダによって課せられる様々な制約を有し得る。多くの場合、クラウドプロバイダは、関連するパブリッククラウドによってサポートされるセキュリティポリシーの数を、オンプレミスデータセンターで実装されたデータセンターソリューションによってサポートされるポリシーのスケールよりもはるかに少なく制限する制約を課す場合がある。例えば、CiscoのACIは、リーフスイッチあたり128Kの契約ルール、64KのIPアドレス、および4KのEPGを含む、数十万のセキュリティポリシーをサポートしており、一方、AmazonのAWSは、エンドポイントあたり250のセキュリティルールの制約を有する。したがって、CiscoのACIソリューションがAmazonのAWSなどのパブリッククラウドソリューションと統合されているとき、パブリッククラウドの制約により、ACIソリューションに不要な制約が課され、一貫性のないポリシーモデルを作成し得る。
【0035】
クラウド上のセキュリティルールは、宛先エンドポイントおよびレイヤ4(L4)ポートに適用することができる。宛先エンドポイントは、クラウドまたはデータセンターソリューションに応じて、グループ、プレフィックス、ラベル、IPアドレスなどによって分類することができる。共通の基準に基づいてエンドポイントまたはトラフィックをグループ化すると、セキュリティルールのスケーリングに役立つが、異なるクラウドまたはデータセンターソリューションによって実装される異なるトラフィック分類スキームおよびポリシーモデルは、ポリシーおよびルーティングの均一性を制限し、しばしば異なるクラウドまたはデータセンター環境にわたるセキュリティルールの統合を妨げる可能性がある。
【0036】
例えば、CiscoのACIは、EPGを使用して、ハードウェアスイッチまたはルータにおいて施行されるセキュリティポリシーをエンドポイントのグループに適用することができる。一方、AmazonのAWSまたはMicrosoftのAzureクラウドコンピューティングプラットフォームなど他のクラウドプロバイダおよびソリューションは、IPアドレスまたは他の属性を使用して、トラフィックまたはエンドポイントを特定のセキュリティグループに分類し、ホスト(例えば、サーバ)によって施行されるセキュリティポリシーを、特定のセキュリティグループのトラフィックまたはエンドポイントに適用する。様々なクラウドまたはデータセンターソリューションでの異なる分類、ポリシー施行、およびポリシースキームにより、異なるクラウドまたはデータセンターソリューションにわたる均一性および統合が制限される可能性がある。
【0037】
さらに、1つのクラウドプロバイダによって課せられる制約は、マルチクラウドまたはマルチファブリック環境にわたって重大な制限を作成する可能性がある。例えば、クラウドホストインスタンスが複数のアプリケーションを実行しているとき、クラウドプロバイダによって課せられたセキュリティルールの制限にプロバイダのクラウドですぐに到達し、別のクラウドまたはデータセンターのファブリックまたは環境から統合できるセキュリティルールの量が制限され得る。例えば、クラウドホストで実行されている5つのコンテナがあり、5つのコンテナがポートマッピングされていると仮定する。AmazonのAWSソリューションによって課せられた250のルール制限は、25 IPx5 TCP(伝送制御プロトコル)ポートx2方向の、25の外部IPがホストと会話することで到達する。プレフィックスベースのルールがあると、このスケールの制限に役立つが、セキュリティグループポリシーを個々のIPアドレス(例えば、/32 IP)に適用する必要がある場合、この制約は厳しくなる。しかし、様々な場合に、/32 IPアドレスが必要または望ましい場合がある。例えば、/32 IPアドレスは、マイクロセグメンテーションをサポートしたり、ラベルベースのグループ化を計算したりするために必要または望ましい場合があり、そこでは、IPサブネットとポリシーは、本質的に分離されている。
【0038】
加えて、マルチクラウド相互接続の場合、パブリッククラウドは、多くの場合レイヤ2(L2)ストレッチを提供しない。これは、セキュリティグループポリシーをレイヤ3(L3)コンストラクトで適用する必要があることを意味し、前述のように、クラウドプロバイダのリソーススケール制限によって大幅に制限される可能性がある。説明のために、クラウドでホストされる「共有サービス」がACIオンプレミスサイトの数百のEPGによって使用され、したがって、数千のエンドポイントによって使用されると仮定する。これは、クラウドセキュリティポリシーをプログラムするには、AWSやAzureなどのパブリッククラウド内のACIエンドポイントIPアドレスを列挙する必要があることを意味する。しかしながら、典型的なクラウドに課せられたスケール制限を考えると、数千のIPアドレスを列挙してもクラウドではスケーリングされない。さらに、ポリシーを変更するごとに、数千のIPアドレスすべてにわたるセキュリティグループエントリを再列挙する必要があるため、スケーラビリティの問題がさらに発生する。
【0039】
様々なクラウドプロバイダによって課せられるスケール制限、およびクラウドまたはデータセンターソリューション間の均一性および統合の欠如を克服するために、本明細書でのアプローチは、マルチファブリックまたはマルチクラウド環境におけるポリシーおよびルーティングの正規化およびスケーリングを提供することができる。これは、特に、マルチファブリックまたはマルチクラウド環境において制御プレーンとデータプレーンとを分離し、ネイティブクラウドルーティング機能とCiscoのクラウドサービスルータ(CSR)10001kvなどのカスタムクラウドルータのクラスタとを組み合わせて使用して、大規模な相互接続機能を取得することによって実現することができる。
【0040】
図1Aおよび1Bは、マルチクラウドファブリック100におけるシームレスな相互接続機能のための例示的なアーキテクチャを示す。マルチクラウドファブリック100は、プライベートクラウドまたはデータセンターなどのオンプレミスサイト102(例えば、サイト1)、ならびにパブリッククラウド104および106(例えば、サイト2およびサイト3)を含むことができる。この例では、オンプレミスサイト102は、CiscoのACIなど特定のSDNまたはデータセンターソリューションを実装し、一方、パブリッククラウド104および106は、AmazonのAWSおよびMicrosoftのAzureなどの異なるクラウドソリューションを実装し得る。
【0041】
オンプレミスサイト102は、(例えばAPIC)コントローラ112など1つ以上のコントローラを介して実装および/または管理することができる、CiscoのACIなど、オンプレミスサイト102によって実装される特定のSDNまたはデータセンターソリューションに従って構成することができる。コントローラ112は、スイッチ(例えば、リーフスイッチ、スパインスイッチなど)、ルータ(例えば、物理的または仮想ゲートウェイまたはルータなど)、エンドポイント(例えば、VM、ソフトウェアコンテナ、仮想アプライアンス、サーバ、アプリケーション、サービスチェーン、ワークロードなど)、および/またはオンプレミスサイト102内の任意の他の要素(物理的および/または仮想/論理的)など、オンプレミスサイト102内の要素のセキュリティポリシーおよび相互接続を管理することができる。例えば、オンプレミスサイト102は、オンプレミスサイト102内のVM124、126、および128へのネットワーク接続を提供するように構成されたスパインスイッチ120およびリーフスイッチ122を含むことができる。この例では、コントローラ112は、スパインスイッチ120、リーフスイッチ122、ならびにVM124、126、および128によって処理されるトラフィックのセキュリティポリシーおよび相互接続を管理することができる。
【0042】
コントローラ112は、EPG130、132、および134(EPG1、EPG2、EPG N)を構成することができ、これを使用して、エンドポイントのグループ(例えば、VM124、126、128)のポリシーおよび構成を管理および実装することができる。EPG(例えば、130、132、134など)は、直接または間接的にネットワーク(例えば、オンプレミスサイト102)に接続されているエンドポイント(例えば、VM、ソフトウェアコンテナ、仮想アプライアンス、サーバ、アプリケーション、サービスチェーン、ワークロードなど)を含む管理対象オブジェクトである。各EPG(130、132、134)は、エンドポイントのグループを含むことができる。例えば、EPG130は、VM124を含むことができ、EPG132は、VM126を含むことができ、EPG134は、VM128を含むことができる。
【0043】
EPG130、132、134のエンドポイント(例えば、VM124、126、128)は、アドレス、場所、アイデンティティ、プレフィックス、機能、アプリケーションサービスなどの特定の属性を有することができ、物理および/または仮想とすることができる。したがって、EPGは、1つ以上の一般的な要因に基づくそのようなエンドポイントの論理グルーピングである。エンドポイントを共通のEPGにグループ化するために使用できる非限定的な例の要素は、共通のセキュリティ要件、共通のVMモビリティ要件、共通のQoS(サービス品質)設定、共通のL4-L7(レイヤ4~レイヤ7)サービスなどを含む。EPG(例えば、130、132、134)は、複数のスイッチにまたがることができ、それぞれのブリッジドメイン(BD)に関連付けることができる。いくつかの態様では、EPGのエンドポイントメンバーシップは、静的または動的とすることができる。
【0044】
EPG130、132、134は、それぞれのエンドポイントメンバーシップを含むことができ、前述のように、異なるそれぞれの要因に基づく異なるEPG(例えば、論理グルーピング)を表すことができる。例えば、EPG130は、Webサーバ(例えば、WEB-EPG)として構成されたエンドポイント(例えば、VM124)の論理グルーピングを表すことができ、EPG132は、データベースサーバ(例えば、DB-EPG)として構成されたエンドポイント(例えば、VM126)の論理グルーピングを表すことができ、EPG134は、特定のアプリケーションサーバ(例えば、APP.A-EPG)として構成されたエンドポイント(例えば、VM128)の論理グルーピングを表すことができる。コントローラ112は、EPG130、132、134の各々について特定のポリシー(例えば、契約、フィルタ、要件など)を構成することができる。そのようなポリシーまたは契約は、例えば、どのEPGが互いに通信することができるか、およびどのタイプのトラフィックがEPG130、132、134の間を通過できるかを定義することができる。
【0045】
コントローラ112はまた、プライベートネットワークとして機能し、VRF間でトラフィックを分離する異なるアドレスドメインを提供する仮想ルーティングおよび転送(VRF)インスタンス(136A、136B、136N)を構成することができる。VRF136A~Nは、エンドポイント(例えば、VM124、126、128)、EPG(例えば、130、132、134)など、様々なそれぞれのオブジェクトを含むことができる。例えば、VM124およびEPG130は、VRF136Aに常駐することができ、VM126およびEPG132は、VRF136Bに常駐することができ、VM128およびEPG134は、VRF136Nに常駐することができる。
【0046】
マルチクラウドファブリック100はまた、オンプレミスサイト102内のコントローラ112、ならびにパブリッククラウド104およびパブリッククラウド106上のクラウドコントローラ114および116(例えば、クラウドAPIC)とそれぞれ通信し、コントローラ112ならびにクラウドコントローラ114および116と連携して、オンプレミスサイト102とパブリッククラウド104および106の両方でポリシーおよび構成を管理および実装する、マルチサイトコントローラ110(例えば、マルチサイトAPIC)を含むことができる。マルチサイトコントローラ110は、オンプレミスサイト102ならびにパブリッククラウド104および106に同じポリシーモデルを実装することができ、これは、特定のSDNまたはCiscoのACIなどのデータセンターソリューションに基づくことができる。例えば、マルチサイトコントローラ110は、オンプレミスサイト102ならびにパブリッククラウド104および106上にVRF、EPGおよび関連するポリシーを実装することができる。そのようなポリシーは、マルチサイトコントローラ110によって、オンプレミスサイト102内のコントローラ112と、パブリッククラウド104および106内のクラウドコントローラ114および116とそれぞれ調整することができる。
【0047】
パブリッククラウド104および106はまた、異なるポリシーモデルを実装することができ、マルチサイトコントローラ110、コントローラ112、ならびにクラウドコントローラ114および116によって実装されるソリューションによって課されるものとは異なる可能性がある独自の要件のセット(例えば、ポリシー要件、スケーラビリティ要件など)を有し得る。パブリッククラウド104および106のポリシーモデルおよび要件は、それぞれのクラウドプロバイダに依存する可能性がある。例えば、AWSは、セキュリティグループを実装して250ルール制限を課す場合があり、Azureは、異なるポリシー制約および制限によりアプリケーションまたはネットワークセキュリティグループを実装する場合がある。以下でさらに説明するように、本明細書でのアプローチは、一貫性のあるルーティングおよびポリシーモデルを適用し、パブリッククラウド104および106を含むマルチクラウドファブリック100に実装されたソリューション全体のスケーラビリティを向上させるために、パブリッククラウド104および106によって課されるルーティング、ポリシー、および要件を、マルチサイトコントローラ110、コントローラ112、ならびにクラウドコントローラ114および116に関連付けられたものと統合およびスケーリングすることができる。
【0048】
パブリッククラウド104は、仮想プライベートクラウド(VPC)154A、154B、および154Nを含むことができ、これらは、パブリッククラウド104上のプライベートネットワークを表し、本明細書で説明するように、オンプレミスサイト102およびパブリッククラウド106と相互接続することができる。VPC154A、154B、および154Nは、オンプレミスサイト102によって使用するために、パブリッククラウド104上でアプリケーションおよびリソースをホストすることができる。場合によっては、VPC154A、154B、および154Nは、オンプレミスサイト102上のVRF(例えば、136A、136B、136N)を表すか、またはそれにマッピングすることができる。
【0049】
VPC154A、154B、および154Nは、パブリッククラウド104上のエンドポイント(EP)158、164、および168を含むことができる。例えば、VPC154AはEP158を含むことができ、VPC154BはEP164を含むことができ、VPC154NはEP168を含むことができる。EP158、164、168は、VM、ソフトウェアコンテナ、物理サーバなどの仮想/論理および/または物理的エンドポイントを含むことができる。EP158、164、168は、セキュリティグループ160A、160B、160Nに含めることができ、これらは、パブリッククラウド104によって実装されるポリシーコンストラクトであり、本明細書で説明されるようにEPGに変換することができる。セキュリティグループ160A、160B、160Nは、IPアドレス(例えば、セキュリティグループ160A、160B、160N内のEP158、164、168のIPアドレス)、ラベル(例えば、VMラベルまたはタグ)、EP属性(例えば、VM名または特性)、IPプレフィックスなどのセキュリティグループ160A、160B、160Nに関連付けられた1つ以上の属性に一致するトラフィックに対して定義された1つ以上のそれぞれのセキュリティポリシーを含むことができる。
【0050】
VPC154A、154B、および154Nとの間のトラフィックは、仮想クラウドルータ、仮想プライベートゲートウェイまたはVPNゲートウェイ(以下「vGW」)、Cisco CSR1kVルータなどのクラウドサービスルータ(CSR)などを含み得るルータ156、162、および166を介してルーティングすることができる。ルータ156、162、166は、VPC154A、154B、154Nの入口および出口ポイントとして機能することができ、データプレーンルータ152A、152B、152Nのクラスタ150を介して、VPC154A、154B、154Nを互いに、ならびに他の外部デバイスまたはネットワーク(例えば、オンプレミスサイト102およびパブリッククラウド106)と接続することができる。データプレーンルータ152A、152B、152Nは、仮想クラウドルータ、仮想ゲートウェイ、Cisco CSR1kVルータなどのCSRルータなどを含むことができる。
【0051】
ルータ156、162、および166は、制御プレーンルータ140Aおよび140Nのクラスタ138を介して、パブリッククラウド104とオンプレミスサイト102とパブリッククラウド106との間の相互接続を提供することができる。制御プレーンルータ140Aおよび140Nは、パブリッククラウド104、オンプレミスサイト102、およびパブリッククラウド106間の相互接続をサポートするために、オンプレミスサイト102、パブリッククラウド106、MSC110などへのルートのインポートおよびエクスポートを管理することができる。いくつかの実装形態では、制御プレーンルータ140Aおよび140Nは、EVPN(イーサネット仮想プライベートネットワーク)BGP(ボーダーゲートウェイプロトコル)を使用してルートをインポートおよびエクスポートすることができる。制御プレーンルータ140Aおよび140Nは、ルートを交換するために、オンプレミスサイト102、パブリッククラウド106、および/またはMSC110とのBGPセッションを確立することができる。
【0052】
制御プレーンルータ140Aおよび140Nは、BGPセッションを確立するためのBGPスピーカーまたはエージェントを含むことができる。いくつかの実装形態では、制御プレーンルータ140Aおよび140Nは、冗長性およびサイト間接続のために、1つおきのサイト(例えば、オンプレミスサイト102およびパブリッククラウド106)との2つの制御プレーンセッション(例えば、BGPセッション)をサポートまたは実装する。他の実装形態では、制御プレーンルータ140Aおよび140Nは、1つおきのサイトに対して、より多くのまたはより少ない制御プレーンセッションをサポートまたは実装してもよい。例えば、制御プレーンルータ140Aおよび140Nは、1つ以上の他のサイト(例えば、オンプレミスサイト102および/またはパブリッククラウド106)のための単一の制御プレーンセッション、または1つ以上の他のサイト(例えば、オンプレミスサイト102および/またはパブリッククラウド106)のための3つ以上の制御プレーンセッションをサポートまたは実装してもよい。
【0053】
制御プレーンルータ140Aおよび140Nは、Cisco CSR1kVルータなどのCSRルータを含むことができ、パブリッククラウド104のすべてのルートを格納および管理するのに十分な容量を装備することができる。さらに、制御プレーンルータ140Aおよび140Nは、パブリッククラウド104のルーティング情報を交換および管理するために、データプレーンルータ152A、152B、152Nのクラスタ150、および/またはVPC154A、154B、154N上のルータ156、162、166との内部制御プレーンセッション(例えば、BGPセッション)をサポートまたは実装することができる。場合によっては、制御プレーンルータ140Aおよび/または140Nは、データプレーンルータとしてもダブルアップすることができる。例えば、制御プレーンルータ140Aおよび/または140Nは、他のデータプレーンルータ(例えば、152A、152B、152N)に加えて、またはその代わりに、データプレーンルータとしてダブルアップすることができる。
【0054】
場合によっては、以下でさらに説明するように、データプレーンルータ152A、152B、152Nは、データプレーンルータ152A、152B、152Nの間でVPC154A、154B、154Nとの間のトラフィックに対するデータプレーンルーティング機能および責任を分散するために、VPC154A、154B、154Nの特定のサブセットにマッピングまたは指定することができる。ここで、制御プレーンルータ140Aおよび140Nは、内部ルートの分散を管理して、データプレーンルータ152A、154B、152NをそれぞれのVPC154A、154B、154Nにマッピングし、および/またはそれに応じてルーティング機能および責任を分散することができる。
【0055】
さらに、パブリッククラウド104のクラウドコントローラ114は、MSC110、オンプレミスサイトのコントローラ112、およびパブリッククラウド106上のクラウドコントローラ116と通信して、オンプレミスサイト102、パブリッククラウド104、およびパブリッククラウド106の間でのポリシーの交換および/または変換、ならびにパブリッククラウド104でのそのようなポリシーの実装を調整および管理することができる。例えば、クラウドコントローラ114は、MSC110と通信して、オンプレミスサイト102内のEPG130、132、134(および関連するポリシー)を、パブリッククラウド104内のセキュリティグループ160A、160B、160Nにマッピングまたは変換し、オンプレミスサイト102のVRF136A、136B、136Nをパブリッククラウド104のVPC154A、154B、154Nにマッピングまたは変換し、および/またはオンプレミスサイト102内の任意の他のポリシーコンストラクトまたはオブジェクトをパブリッククラウド104にマッピングまたは変換することができる。
【0056】
前述のように、マルチクラウドファブリック100は、パブリッククラウド104および/またはオンプレミスサイト102とは異なるポリシーモデル、環境、および/またはクラウドもしくはデータセンターソリューションを実装することができ、パブリッククラウド104および/またはオンプレミスサイト102とは異なる要件または制限を有する可能性があるパブリッククラウド106など、1つ以上の追加のパブリッククラウドを含むことができる。例えば、いくつかの態様では、オンプレミスサイト102は、CiscoのACIソリューションを実装してもよく、パブリッククラウド104は、AmazonのAWSなどの異なるクラウドソリューションを実装し、パブリッククラウド106は、Microsoft AzureまたはOracle Cloudなどのさらに異なるクラウドソリューションを実装する。
【0057】
図1Aおよび1Bの例示的な例では、パブリッククラウド106は、仮想ネットワーク(VNET)178A、178B、および178Nを含むことができ、これらは、パブリッククラウド106上のプライベートネットワークを表し、本明細書で説明するように、オンプレミスサイト102およびパブリッククラウド104と相互接続することができる。VRF136A、136B、および136NとVPC154A、154B、および154Nと同様に、VNET178A、178B、および178Nは、特定のアドレス空間を持つプライベート仮想ネットワークとして機能することができ、各仮想ネットワークは、他の仮想ネットワークから分離され、各仮想ネットワークは、それぞれのアプリケーション、リソース、デバイスなどをホストし、特定のセキュリティおよびルーティングポリシーを有している。例えば、VNET178A、178B、および178Nは、オンプレミスサイト102および/またはパブリッククラウド104によって使用するために、パブリッククラウド106上でアプリケーションおよびリソースをホストすることができる。場合によっては、VNET178A、178B、および178Nは、オンプレミスサイト102上のVRF(例えば、136A、136B、136N)を表すか、またはそれにマッピングすることができる。
【0058】
VNET178A、178B、および178Nは、パブリッククラウド106上のエンドポイント(EP)184、188、および192を含むことができる。例えば、VNET178AはEP184を含むことができ、VNET178BにEP188を含むことができ、VNET178NはEP192を含むことができる。EP184、188、192は、VM、ソフトウェアコンテナ、物理サーバなどの仮想/論理および/または物理的エンドポイントを含むことができる。EP184、188、192は、アプリケーションセキュリティグループ180A、180B、180Nに含めることができ、これらは、パブリッククラウド106によって実装されるポリシーコンストラクトであり、本明細書で説明されるようにEPGに変換することができる。アプリケーションセキュリティグループ180A、180B、180Nは、IPアドレス(例えば、アプリケーションセキュリティグループ180A、180B、180N内のEP184、188、192のIPアドレス)、ラベル(例えば、VMラベルまたはタグ)、EP属性(例えば、VM名または特性)、IPプレフィックスなどのアプリケーションセキュリティグループ180A、180B、180Nに関連付けられた1つ以上の属性に一致するトラフィックに対して定義された1つ以上のそれぞれのセキュリティポリシーを含むことができる。
【0059】
VNET178A、178B、および178Nとの間のトラフィックは、仮想クラウドルータ、仮想プライベートゲートウェイまたはVPNゲートウェイ、Cisco CSR1kVルータなどのCSRルータなどを含み得るルータ182、186、および190を介してルーティングすることができる。ルータ182、186、190は、VNET178A、178B、および178Nの入口および出口ポイントとして機能することができ、データプレーンルータ176A、176B、176Nのクラスタ174を介して、VNET178A、178B、および178Nを互いに、ならびに他の外部デバイスまたはネットワーク(例えば、オンプレミスサイト102およびパブリッククラウド104)と接続することができる。データプレーンルータ176A、176B、176Nは、仮想クラウドルータ、仮想ゲートウェイ、Cisco CSR1kVルータなどのCSRルータなどを含むことができる。
【0060】
ルータ182、186、および190は、制御プレーンルータ172Aおよび172Nのクラスタ170を介して、パブリッククラウド106とオンプレミスサイト102とパブリッククラウド104との間の相互接続を提供することができる。制御プレーンルータ172Aおよび172Nは、パブリッククラウド106、オンプレミスサイト102、およびパブリッククラウド104間の相互接続をサポートするために、オンプレミスサイト102、パブリッククラウド104、MSC110などへのルートのインポートおよびエクスポートを管理することができる。いくつかの実装形態では、制御プレーンルータ172Aおよび172Nは、EVPN BGPを使用してルートをインポートおよびエクスポートすることができる。制御プレーンルータ172Aおよび172Nは、ルートを交換するために、オンプレミスサイト102、パブリッククラウド104、および/またはMSC110とのBGPセッションを確立することができる。
【0061】
制御プレーンルータ172Aおよび172Nは、BGPセッションを確立するためのBGPスピーカーまたはエージェントを含むことができる。いくつかの実装形態では、制御プレーンルータ172Aおよび172Nは、冗長性およびサイト間接続のために、1つおきのサイト(例えば、オンプレミスサイト102およびパブリッククラウド104)との2つの制御プレーンセッション(例えば、BGPセッション)をサポートまたは実装する。他の実装形態では、制御プレーンルータ172Aおよび172Nは、1つおきのサイトに対して、より多くのまたはより少ない制御プレーンセッションをサポートまたは実装してもよい。例えば、制御プレーンルータ172Aおよび172Nは、1つ以上の他のサイト(例えば、オンプレミスサイト102および/またはパブリッククラウド104)のための単一の制御プレーンセッション、または1つ以上の他のサイト(例えば、オンプレミスサイト102および/またはパブリッククラウド104)のための3つ以上の制御プレーンセッションをサポートまたは実装してもよい。
【0062】
制御プレーンルータ172Aおよび172Nは、Cisco CSR1kVルータなどのCSRルータを含むことができ、パブリッククラウド106のすべてのルートを格納および管理するのに十分な容量を装備することができる。さらに、制御プレーンルータ172Aおよび172Nは、パブリッククラウド106のルーティング情報を交換および管理するために、データプレーンルータ176A、176B、176Nのクラスタ174、および/またはVNET178A、178B、および178N上のルータ182、186、190との内部制御プレーンセッション(例えば、BGPセッション)をサポートまたは実装することができる。場合によっては、制御プレーンルータ172Aおよび/または172Nは、データプレーンルータとしてもダブルアップすることができる。例えば、制御プレーンルータ172Aおよび/または172Nは、他のデータプレーンルータ(例えば、176A、176B、176N)に加えて、またはその代わりに、データプレーンルータとしてダブルアップすることができる。
【0063】
場合によっては、以下でさらに説明するように、データプレーンルータ176A、176B、176Nは、データプレーンルータ176A、176B、176Nの間でVNET178A、178B、および178Nとの間のトラフィックに対するデータプレーンルーティング機能および責任を分散するために、VNET178A、178B、および178Nの特定のサブセットにマッピングまたは指定することができる。ここで、制御プレーンルータ172Aおよび172Nは、内部ルートの分散を管理して、データプレーンルータ176A、176B、176NをそれぞれのVNET178A、178B、および178Nにマッピングし、および/またはそれに応じてルーティング機能および責任を分散することができる。
【0064】
さらに、パブリッククラウド106のクラウドコントローラ116は、MSC110、オンプレミスサイトのコントローラ112、およびパブリッククラウド104上のクラウドコントローラ114と通信して、オンプレミスサイト102、パブリッククラウド104、およびパブリッククラウド106の間でのポリシーの交換および/または変換、ならびにパブリッククラウド106でのそのようなポリシーの実装を調整および管理することができる。例えば、クラウドコントローラ116は、MSC110と通信して、オンプレミスサイト102内のEPG130、132、134(および関連するポリシー)を、パブリッククラウド106内のアプリケーションセキュリティグループ180A、180B、180Nにマッピングまたは変換し、オンプレミスサイト102のVRF136A、136B、136Nをパブリッククラウド106のVNET178A、178B、および178Nにマッピングまたは変換し、および/またはオンプレミスサイト102内の任意の他のポリシーコンストラクトまたはオブジェクトをパブリッククラウド106にマッピングまたは変換することができる。
【0065】
パブリッククラウド104およびパブリッククラウド106は、VxLAN(Virtual Extensible LAN)などのデータプレーンルーティング用のネットワークオーバーレイ、および制御プレーン機能用のBGPまたはEVPN BGPなどの制御プレーンソリューションを実装することができる。例えば、前述のように、パブリッククラウド104およびパブリッククラウド106は、様々な層の制御プレーン機能のためにBGPセッションを実装することができる。サイト間セッション(例えば、オンプレミスサイト102、パブリッククラウド104、および/またはパブリッククラウド106間のセッション)のためのVxLANなどのオーバーレイデータプレーンソリューションによるBGPまたはBGP EVPNの使用は、1つ以上のBGPセッションを使用して、サイト(例えば、102、104、106)間でVRF(例えば、136A、136B、136N)または他のルーティングドメインもしくはアドレッシングコンストラクト/スキームのシームレスな拡張を提供し、追加のセグメント固有の構成なしにネットワーク(例えば、IPネットワーク)でデータパケットを運ぶのに役立つ。MSC110は、オンプレミスサイト102とパブリッククラウド104、106との間、および/またはパブリッククラウド104、106との間で、ローカル仮想またはプライベートネットワーク(例えば、VRF、VPC、VNET)セグメント識別子(ID)をマッピングすることができ、BGPまたはBGP EVPNルートターゲットのマッピングを通じて、対応する仮想ネットワークまたはプライベートネットワーク(例えば、VRF、VPC、VNET)へのルートのインポートおよびエクスポートを管理することができる。この戦略は、共通のルーティングおよび転送プレーン、オンプレミスサイト102およびパブリッククラウド104、106を確立することができる。
【0066】
ある例示的な例では、パブリッククラウド104およびパブリッククラウド106は、制御プレーン機能のために3層のBGPセッションを実装することができる。説明のために、パブリッククラウド104は、MSC110、オンプレミスサイト102、および/またはパブリッククラウド106との1つ以上の外部制御プレーンセッション(例えば、BGPセッション)を含むBGPセッションの第1の層、制御プレーンルータ140Aおよび140Nとデータプレーンルータ152A、152B、152Nとの間の1つ以上の制御プレーンセッション(例えば、BGPセッション)を含むBGPセッションの第2の層、データプレーンルータ152A、152B、152Nと、VPC154A、154B、および154N内のルータ156、162、166との間の1つ以上の制御プレーンセッション(例えば、BGPセッション)を含むBGPセッションの第3の層を実装することができる。同様に、パブリッククラウド106は、MSC110、オンプレミスサイト102、および/またはパブリッククラウド104との1つ以上の外部制御プレーンセッション(例えば、BGPセッション)を含むBGPセッションの第1の層、制御プレーンルータ172Aおよび172Nとデータプレーンルータ176A、176B、176Nとの間の1つ以上の制御プレーンセッション(例えば、BGPセッション)を含むBGPセッションの第2の層、データプレーンルータ176A、176B、176Nと、VNET178A、178B、および178N内のルータ182、186、190との間の1つ以上の制御プレーンセッション(例えば、BGPセッション)を含むBGPセッションの第3の層を実装することができる。
【0067】
この例では、BGPセッションの3つの層が、次の非限定的な例の利点を実現するのに役立ち得る。第1に、BGPセッションの3層は、マルチクラウドファブリック100が、個々のVRFなどの個別のプライベートおよび/または仮想ネットワークからサイト間接続を提供する代わりに、共通のプライベートおよび/または仮想ネットワーク(例えば、VRF、VPC、またはVNET)をサイト間接続に使用することを可能にし得る。これにより、運用管理が容易な経済的なソリューションを提供することができる。
【0068】
第2に、いくつかの例は、制御プレーンの冗長性のために2つなど少数のBGPセッションのみを実装するが、オンプレミスサイト102のより大きなVRFスケールおよびパブリッククラウド104、106の帯域幅の必要性に応えるために、複数のデータプレーンルータを実装することができる。したがって、パブリッククラウド104またはパブリッククラウド106からBGPルートがアドバタイズされるとき、VRF136A、136B、136N、VRF(例えば、136A、136B、または136N)の帯域幅の必要性、および/またはVRF(例えば、136A、136B、または136N)ごとのルートに基づいて、複数のデータプレーンルータに属する複数のネクストホップは、分散方式で実装され得る。これは、制御プレーンルータとデータプレーンルータとの間のマルチクラウドファブリック100上の共通VRF(またはVPCやVNETなど任意の他のプライベートおよび/または仮想ネットワーク)内のBGPセッションの第2層を通じて実現することができる。
【0069】
第3に、BGPセッションの第1および第2の層の機能を組み合わせることにより、パブリッククラウド104および106は、サイトの数の増加、サイトあたりのPOD数の増加、ならびに/または、サイトおよび/もしくは帯域幅にわたってストレッチされるVRF数の増加に伴い、オンプレミスサイト102ならびにパブリッククラウド104および106の結合されたファブリックのスケールに一致することができる。
【0070】
図2Aは、例示的なパブリッククラウド(例えば、104)内のトラフィックのためのデータプレーン機能を、例示的なパブリッククラウド内のデータプレーンルータ(例えば、152A、152B、152N)間で分散するための例示的な構成200を示す。この例では、構成200は、パブリッククラウド104に関して説明されている。しかしながら、同様の技術を、パブリッククラウド106などの他のクラウドサイトに実装することができる。
【0071】
構成200では、データプレーンルータ152Aおよび152BがVPC154AおよびVPC154Bに割り当てられ、データプレーンルータ152NがVPC154Nに割り当てられる。したがって、VPC154AおよびVPC154Bとの間のデータトラフィックのルーティングは、データプレーンルータ152Aおよび152Bによって処理され、VPC154Nとの間のデータトラフィックのルーティングは、データプレーンルータ152Nによって処理される。VPC154AおよびVPC154Bに関連付けられたデータトラフィックがデータプレーンルータ152Aおよび152Bによって処理され、VPC154Nに関連付けられたデータトラフィックがデータプレーンルータ152Nによって処理されることを確実にするために、制御プレーンルータ140Aおよび140Nは、VPC154AおよびVPC154Bに関連付けられたデータトラフィックがデータプレーンルータ152Aおよび/または152Bによって処理され、VPC154Nに関連付けられたデータトラフィックがデータプレーンルータ152Nによって処理されることを確実にするために、ルート広告を(例えば、BGPセッションを介して)調整することができる。例えば、制御プレーンルータ140Aおよび140Nによって提供されるルートアドバタイズメントは、データプレーンルータ152Aおよび152BをVPC154AおよびVPC154B(またはVPC154AおよびVPC154Bに関連付けられたトラフィック)にマッピングし、データプレーンルータ152NをVPC154N(またはVPC154Nに関連付けられたトラフィック)にマッピングすることができる。
【0072】
このような分散データプレーンルーティング技術は、パブリッククラウド104内のデータプレーンルーティングを特定の帯域幅および他のサービス要件に適合させ、帯域幅およびルーティング機能を弾力的にスケーリングするのに役立ち得る。さらに、このような分散データプレーンルーティング技術は、現在および/または将来の条件に対応するために、パブリッククラウド104のデータプレーンルーティング機能を動的に増加または減少させるのに役立ち得る。例えば、パブリッククラウド104内のデータプレーントラフィックを処理するために追加の帯域幅が必要または望まれるとき、1つ以上のデータプレーンクラウドルータをパブリッククラウド104上に動的に配備して、このようなトラフィックを処理することができる。次いで、制御プレーンルータ140Aおよび140Nは、ルートアドバタイズメントを介して、新たに配備された1つ以上のデータプレーンクラウドルータを1つ以上のVPCにマッピングまたは割り当てることができ、1つ以上のVPCに関連付けられたデータトラフィックが新たに配備された1つ以上のデータプレーンクラウドルータによって処理されることを確実にする。いくつかの態様では、制御プレーンルータ140Aおよび140Nは、BGP EVPNセッションで提供されるネクストホップ変更属性を介して、1つ以上のVPCに関連付けられたアドレス(例えば、1つ以上のVPCに関連付けられたIPアドレスまたはプレフィックス、1つ以上のVPCのエンドポイント、1つ以上のVPCのクラウドルータ、および/または1つ以上のVPCの他のリソース)を他のサイト(例えば、オンプレミスサイト102およびパブリッククラウド106など)に通信することができる。
【0073】
例えば、本明細書のデータプレーンルーティング技術は、パブリッククラウド104(または任意の他のサイト)が、冗長性のために少数の制御プレーンセッションを維持しながら、パブリッククラウド104における帯域幅の必要性の増加、ならびにエンドポイント、プライベートクラウドネットワーク(例えば、VPC)などのパブリッククラウド104内のリソースまたはオブジェクトの追加に対応するために、転送プレーン(例えば、制御プレーンルータ140Aおよび140N)の容量を動的に増大させることを可能にすることができる。いくつかの例では、制御プレーンルータ140Aおよび140Nのクラスタ138は、エンドポイント、VPC、クラウドルータなど、リソースまたはオブジェクトのグループにエニーキャストアドレスを提供し、1つ以上のBGP EVPNセッションでのネクストホップ変更を介して、エニーキャストアドレスを他のサイト(例えば、オンプレミスサイト102、パブリッククラウド106)に通信することができる。さらに、制御プレーンルータ140Aおよび140Nは、制御プレーンスケールを管理し、データプレーンルータ152A、152B、152Nの制御プレーンの負担を軽減することができる。
【0074】
説明のために、図2Bを参照して、新しいデータプレーンルータ202をパブリッククラウド104上に動的に配備して、VPC154Nのトラフィックまたは帯域幅の必要性の増加に対応することができる。新しいデータプレーンルータ202は、例えば、仮想ゲートウェイ(vGW)またはCSRルータなどの仮想または物理クラウドルータまたはゲートウェイであり得る。さらに、新しいデータプレーンルータ202は、VPC154Nのトラフィックまたは帯域幅の必要性の増加に対応するために、VPC154Nに関連付けられたデータトラフィックを処理するように割り当てることができる。
【0075】
場合によっては、これは、制御プレーンルータ140Nによってオンプレミスサイト102(および/またはMSC110)に通信されるネクストホップ変更204を介して達成することができる。例えば、新しいデータプレーンルータ202のアドレスをオンプレミスサイト102に通信し、新しいデータプレーンルータ202を含むようにVPC154Nに関連付けられたトラフィックのネクストホップを変更するために、制御プレーンルータ140Nは、オンプレミスサイト102とのBGPセッションを確立し、オンプレミスサイト102に更新メッセージを送信することができる。更新メッセージは、VPC154N内の宛先へのネクストホップとして新しいデータプレーンルータ202のアドレスを識別するネクストホップ属性を含むことができる。更新メッセージにより、オンプレミスサイト102上の1つ以上のBGPスピーカーに、ネクストホップ変更204を受信させ、パブリッククラウド104上のVPC154Nに関連付けられたBGPルートを更新させる(例えば、新しいデータプレーンルータ202のアドレスを含む新しいBGPルートで1つ以上のBGPテーブルをポピュレートする)ことができる。
【0076】
別の例では、新しいVPCがパブリッククラウド104に配備される場合、1つ以上のデータプレーンルータをパブリッククラウド104に動的に配備して、新しいVPCに関連付けられたデータトラフィックを処理することができる。制御プレーンルータ140Aおよび/または140Nは、同様に、ネクストホップ変更を実行して、新しいVPCの宛先へのネクストホップとして1つ以上のデータプレーンルータを識別することができる、新しいVPCに関連付けられた1つ以上のBGPルートをオンプレミスサイト102に通信することができる。
【0077】
図3は、マルチクラウドファブリック100での例示的なポリシー正規化の使用事例300を示している。この例では、新しいEPG302がオンプレミスサイト102で構成され、コントローラ112によってオンプレミスサイト102のファブリックに伝播される。オンプレミスサイト102内のルータまたはスイッチ(例えば、120、122)は、新しいEPG302を、それらのルータまたはスイッチによって施行することができるACL(アクセス制御リスト)ルールに変換することができる。
【0078】
この例のパブリッククラウド104および106は、EPGポリシーコンストラクトをサポートしないので、新しいEPG302は、パブリッククラウド104および106によってサポートされるポリシーコンストラクトに変換され、変換されたポリシーコンストラクトとしてパブリッククラウド104および106に実装され得る。例えば、パブリッククラウド104は、EPGの代わりにセキュリティグループをサポートするAWSクラウドであり、パブリッククラウド106は、EPGの代わりにアプリケーションセキュリティグループまたはネットワークセキュリティグループをサポートするAzureクラウドであると仮定する。したがって、MSC110は、新しいEPG302を、パブリッククラウド104のセキュリティグループ304およびパブリッククラウド106のアプリケーションセキュリティグループ306(またはネットワークセキュリティグループ)に変換することができる。次いで、MSC110は、セキュリティグループ304をパブリッククラウド104に伝播し、アプリケーションセキュリティグループ306をパブリッククラウド106に伝播することができる。
【0079】
パブリッククラウド104は、セキュリティグループ304を(例えば、クラウドコントローラ114を介して)受信し、セキュリティグループ304を実装することができ、これは、新しいEPG302をミラーリングし、パブリッククラウド104の環境および要件に対応するために関連するポリシーを正規化する。同様に、パブリッククラウド106は、アプリケーションセキュリティグループ306を(例えば、クラウドコントローラ116を介して)受信し、アプリケーションセキュリティグループ306を実装することができ、これは、新しいEPG302をミラーリングし、パブリッククラウド106の環境および要件に対応するために関連するポリシーを正規化する。このようにして、新しいEPG302に関連付けられたポリシーをパブリッククラウド104および106に拡張して、パブリッククラウド104および106がEPGポリシーコンストラクトをサポートしていない場合でも、マルチクラウドファブリック100で統一されたポリシービューを提供することができる。
【0080】
セキュリティグループ304およびアプリケーションセキュリティグループ306は、新しいEPG302のポリシーを反映することができる。トラフィックをセキュリティグループ304およびアプリケーションセキュリティグループ306に一致させ、したがって、セキュリティグループ304およびアプリケーションセキュリティグループ306内のポリシーをそのようなトラフィックに適用するために、トラフィックを分類し、1つ以上の分類スキームに基づいて、セキュリティグループ304およびアプリケーションセキュリティグループ306に一致させることができる。例えば、オンプレミスサイト102では、新しいEPG302に関連付けられたトラフィックは、IPアドレス、IPプレフィックス、またはポートおよびVLANなどのパケット属性の組み合わせによって分類することができる。一方、パブリッククラウド104および106では、セキュリティグループ304およびアプリケーションセキュリティグループ306(したがって、新しいEPG302)に関連付けられたトラフィックは、例えば、VMラベル、IPアドレス、エンドポイント属性、タグ(例えば、セキュリティグループタグ)などに基づいて分類することができる。
【0081】
本明細書でのポリシーの正規化により、マルチクラウドファブリック100内のサイト間トラフィックは、新しいEPG302、セキュリティグループ304、またはアプリケーションセキュリティグループ306に属するものとして分類することができ、マルチクラウドファブリック100内のサイト(102、104、106)にわたるこのようなトラフィックに、新しいEPG302に基づく一貫したポリシーアプリケーションを適用することができる。
【0082】
図3は、EPGの正規化を示しているが、正規化は、他のポリシーコンストラクトに対して同様に実行できることに留意されたい。例えば、オンプレミスサイト102内のVRFは、パブリッククラウド104用のVPCおよびパブリッククラウド106用のVNETに変換することができ、変換されたVPCおよびVNETは、それぞれ、パブリッククラウド104およびパブリッククラウド106で伝播して実装することができる。
【0083】
さらに、エンドポイントがオンプレミスサイト102、パブリッククラウド104、またはパブリッククラウド106内で発見されるときはいつでも、エンドポイントが存在するファブリックがどのようなポリシーモデルおよび要件をサポートしているかにかかわらず、そのエンドポイントに関連付けられたトラフィックにEPGポリシーの同じセットを適用することができる。オンプレミスサイト102内のEPGと、パブリッククラウド104および106のいずれかにある別のEPG(またはセキュリティグループまたはアプリケーションセキュリティグループ)との間に契約ポリシーがあるときにも、同じことが当てはまる可能性がある。このシームレスなポリシー配備は、MSC110によって、オンプレミスサイト102内のコントローラ112、APICと、パブリッククラウド104および106内のクラウドコントローラ114および116の両方と連携して、調整することができる。ポリシーの配備は、発見されたエンドポイントと異なるサイト上の他のエンドポイントとの間のトラフィックのローカルポリシーアプリケーションのために、発見されたエンドポイントの詳細をマルチクラウドファブリック100内の様々なサイトに変換することを伴い得る。
【0084】
多くのクラウド環境では、IPアドレスを使用して分類し、ポリシーの正規化を実現することができる。しかしながら、エンドポイントは動的に発見され、IPアドレスは時間の経過とともに変化する可能性があるため、サイト(例えば、オンプレミスサイト102、パブリッククラウド104、およびパブリッククラウド106)間のこのようなIPベースのポリシー正規化は困難な場合がある。したがって、EPGの分類は時間の経過とともに変化する可能性があり、ユーザ構成を介してこのようなEPGポリシーを事前にプロビジョニングすることは困難であり、または不可能でさえある。
【0085】
これらの課題に対処するために、サイトにわたってEPGをストレッチしたり、サイトにわたってEPGおよび/または契約をミラーリングしたりするなど、様々な戦略を実装することができる。図4Aおよび4Bは、図4Aに示される例示的なEPGストレッチ使用事例400、および図4Bに示される例示的なEPG契約使用事例420を含む、ポリシー正規化のための異なる使用事例を示す。
【0086】
図4Aを参照すると、例示的なEPGストレッチ使用事例400では、EPG130は、オンプレミスサイト102とパブリッククラウド104(および/またはパブリッククラウド106)との間でストレッチされ得、ストレッチされたEPG130を表すクラウドEPG402が得られる。これは、オンプレミスサイト102のEPG130と、パブリッククラウド104のクラウドEPG402とが同じものであることを意味する。トラフィックは、いかなる契約を確立せずにそれらの間を流れ得る。
【0087】
パブリッククラウド104内のEPからのパケットがクラウドEPG402の一部として分類されるために、MSC110は、オンプレミスサイト102において、クラウドEPG402をシャドウイングするシャドウクラウドEPG406を、パブリッククラウド104において、EPG130をシャドウイングするシャドウオンプレミスEPG408を配備することができる。シャドウクラウドEPG406およびシャドウオンプレミスEPG408は、EPを、例えばIPアドレス、プレフィックス、またはサブネットとして記述することができる。この情報は、オンプレミスサイト102が、EPからのパケットを分類する方法を理解し、パケットに適用するポリシーを決定するために使用することができる。EPのIPアドレスは動的である可能性があるので、ストレッチされたEPGの一部としてEPを分類するために使用されるこのIP情報は、オンプレミスサイト102とパブリッククラウド104との間で動的に交換することができる。この交換は、例えば、Kafkaバスなどを使用して、MSC110、コントローラ112、およびクラウドコントローラ114によって調整することができる。
【0088】
EP検出スキームは、EPが存在するサイトに対してローカルとすることができる。例えば、オンプレミスサイト102では、EP検出は、データプレーン学習に基づくことができ、一方、パブリッククラウド104では、EP検出は、AWSの場合はAWS Configサービスなどのクラウドネイティブサービスを通じて検出されたEP構成イベント(例えば、VM構成イベント)に基づき得る。次いで、検出されたEPは、EPG(例えば、EPG130)にマッピングされ、共通のオブジェクト階層で表される。階層に変更が加えられると(例えば、EPの参加、脱退、移動など)、変更を他のサイトに反映することができる。
【0089】
オンプレミスサイト102では、このようなEPは、それらの対応するEPGによって表される。他のサイト(例えば、パブリッククラウド104および106)では、このようなEPは、外部(または)L3Out EPG(CiscoのACI用語)などとして表すことができる。したがって、EPGストレッチ使用事例400では、ポリシーの正規化は、EPG130をパブリッククラウド104にストレッチし、オンプレミスサイト102およびパブリッククラウド104にシャドウEPG(例えば、406および408)を作成することによって達成することができる。すべての契約を許可404はまた、ストレッチされたEPG(例えば、130および402)およびシャドウEPG(例えば、406および408)に対応するトラフィックのために構成され得る。一緒に、すべての契約を許可404、ストレッチされたEPG(例えば、130および402)、およびシャドウEPG(例えば、406および408)は、サイト102および104にわたってポリシーの正規化を可能にすることができる。サイト間でのIP情報の動的交換により、動的または変更されたIPアドレスを使用した場合でもIPベースの正規化が可能になる。
【0090】
EPGストレッチの使用事例400は、オンプレミスサイト102とパブリッククラウド104との間でのみ示されているが、同じ原則を実装して、EPGを、パブリッククラウド106など、マルチクラウドファブリック100内の任意の他のサイトにストレッチし、マルチクラウドファブリック100内のすべてのサイトにわたってポリシーを正規化することができることに留意されたい。
【0091】
図4Bは、ポリシー正規化のための例示的なEPG契約使用事例420を示す。この例では、2つの独立したEPGがオンプレミスサイト102およびパブリッククラウド104に実装されており、EPG130は、オンプレミスサイト102に実装され、クラウドEPG422は、パブリッククラウド104に実装されている。EPG130およびクラウドEPG422は、それらの間の契約424で実施される。
【0092】
異なるサイトの2つのEPG間に契約があるとき、MSC110は、異なるサイトに対応するシャドウまたはミラーEPGを作成し、前述のようにIPアドレスを使用して発見されたEPを分類することができる。したがって、この例では、MSC110は、オンプレミスサイト102にシャドウクラウドEPG426を作成し、パブリッククラウド104にシャドウオンプレミスEPG428を作成することができる。シャドウクラウドEPG426は、パブリッククラウド104からのクラウドEPG422をミラーリングすることができ、シャドウオンプレミスEPG428は、オンプレミスサイト102からのEPG130をミラーリングすることができる。
【0093】
MSC110はまた、パブリッククラウド104およびオンプレミスサイト102上にシャドウ契約430を作成することができる。シャドウ契約430は、オンプレミスサイト102のEPG130とパブリッククラウド104のクラウドEPG422との間の契約424をミラーリングすることができる。オンプレミスサイト102およびパブリッククラウド104は、シャドウ契約430をシャドウEPG(例えば、426および428)に適用することができる。例えば、オンプレミスサイト102が、シャドウクラウドEPG426に一致するパブリッククラウド104内のエンドポイントからトラフィックを受信すると、オンプレミスサイト102は、シャドウクラウドEPG426および契約430をトラフィックに適用することができる。同様に、パブリッククラウド104が、シャドウオンプレミスEPG428に一致するオンプレミスサイト102内のエンドポイントからトラフィックを受信すると、パブリッククラウド104は、シャドウオンプレミスEPG426および契約430をトラフィックに適用することができる。このようにして、オンプレミスサイト102のEPG130に関連付けられたポリシーは、オンプレミスサイト102およびパブリッククラウド104にわたって正規化される。そのような技術はまた、パブリッククラウド106および/または任意の他のサイトにおけるポリシーを正規化するために適用され得、マルチクラウドファブリック100内のサイトにわたって均一なポリシービューまたはアプリケーションを取得することができる。
【0094】
前述のように、クラウドプロバイダは、多くの場合、マルチクラウドファブリック100などのハイブリッド環境で実装されるリソースおよびポリシーのスケールを制限する可能性のある様々なリソース制限およびポリシー制約を課す。例えば、パブリッククラウド104および/またはパブリッククラウド106は、オンプレミスサイト102からマルチクラウドファブリック100を越えてパブリッククラウド104およびパブリッククラウド106へのポリシーの配備を制限し得る重大なリソース制限およびポリシー制約を有する可能性がある。マルチクラウドファブリック100にわたるシームレスなポリシー拡張を可能にするために、本明細書での技術は、マルチクラウドファブリック100内のサイト(102、104、106)にわたるポリシーのスケールに一致する戦略を実装することができる。例えば、オンプレミスサイト102がパブリッククラウド104およびパブリッククラウド106よりも大きいスケールのポリシーをサポートする場合、本明細書での戦略は、パブリッククラウド104およびパブリッククラウド106にわたるオンプレミスサイト102のポリシースケールに一致し得る。
【0095】
異なるクラウドプロバイダによって課せられるそのような制限または制約を克服するために、クラウドネイティブポリシーサポートとパブリッククラウド104および106のカスタムポリシーエージェントサポートのクラスタとの組み合わせを使用するポリシースケーリングの例示的なスキームを実装することができる。いくつかの態様では、セキュリティポリシーは、CSRルータなどのクラウドポリシーエージェントサポートを備えたクラウドルータに配備することができ、それによってクラウドプロバイダによって課せられる様々な制限を克服することができる。このようなクラウドルータのスケールは非常に大きくなる可能性があるため、異なるクラウドプロバイダにわたってスケールが拡大する。
【0096】
一部の実装形態では、オンプレミスサイト102によって実装されたポリシーコンストラクト(例えば、ACIポリシーコンストラクト)を、AWS(例えば、パブリッククラウド104)のセキュリティグループ(例えば、160A、160B、160N)、およびAzure(例えば、パブリッククラウド106)のアプリケーションまたはネットワークセキュリティグループ(例えば、180A、180B、180N)などのクラウドネイティブポリシー、ならびにカスタムルータポリシーに変換することができる(例えば、EPGをソースグループタグ(SGT)に変換し、契約をクラウドルータのACLに変換することができる)。
【0097】
さらに、パブリッククラウド104および106に実装されたポリシーは、クラウドポリシーエージェントをサポートするクラウドルータのクラスタにわたってスケーラビリティを高めるために分散することができる。クラウドルータのクラスタは、クラスタ内の様々なクラウドルータに割り当てられた、またはマッピングされた、それぞれのEPまたはアドレッシング空間(例えば、VPC、VNETなど)に関連付けられたトラフィックにポリシーを適用することができる。
【0098】
図5は、パブリッククラウド104内のクラウドルータ506A、506B、506Nのクラスタ504へのポリシーの例示的な分散500を示している。ポリシーは、スケーラビリティのために、ならびに/またはパブリッククラウド104におけるトラフィックの処理およびパブリッククラウド104におけるポリシーの実装が、クラウドルータのそれぞれのサブセットに分散されることを確実にするために、クラウドルータ506A、506B、506Nのクラスタ504に分散させることができる。例えば、ポリシーのそれぞれのサブセットは、クラウドルータ506A、506B、506Nのそれぞれのサブセットに分散されて、クラウドルータ506A、506B、506Nの各々によって実装されるポリシーの全体量を低減し、それによって、クラウドルータ506A、506B、506Nのクラスタ504にわたって実装することができるポリシーの全体量を増加させることができる。さらに、クラウドルータ506A、506B、506Nのそれぞれのサブセットは、ポリシーのそれぞれのサブセットに関連付けられた宛先(例えば、エンドポイント、VPCなど)および/またはポリシーのそれぞれのサブセットに関連付けられたトラフィックのルーティングエントリを格納するように構成することができる。
【0099】
クラウドルータ506A、506B、506Nは、CSR1kVルータなどの任意の仮想ルータまたはクラウドルータを含むことができる。場合によっては、クラウドルータ506A、506B、506Nは、データプレーンルータ152A、152B、152Nと同じルータ(例えば、別個のルータではなく)であり得る。言い換えれば、クラウドルータ506A、506B、506Nの機能および挙動は、データプレーンルータ152、152、152に実装することができる。他の場合には、クラウドルータ506A、506B、506Nは、データプレーンルータ152A、152B、152Nに加えて、またはその代わりに、パブリッククラウド104上に実装される別個のルータであり得る。さらに、クラウドルータ506A、506B、506Nは、本明細書で説明されるようにポリシーを適用するように構成されたポリシーエージェントを実装することができる。場合によっては、クラウドルータ506A、506B、506Nは、VPC502とVPC154A、154B、および154Nとの間のハブアンドスポークトポロジーにおいてハブとして構成されたVPC502の一部として構成することができる。
【0100】
この例では、ポリシーは、ポリシーに関連付けられた宛先VPC(154A、154B、および/または154N)に基づいて、クラスタ504内の特定のクラウドルータ(506A、506B、506N)に分散される。しかしながら、他の例では、ルートの分散は、他のスキームに基づいて実行することができる。例えば、ルートは、送信元VPC、送信元および宛先VPC、送信元および/または宛先VRF、サブネット、帯域幅などに基づいて分散することができる。
【0101】
分散500の例示的なスキームに基づいて、その宛先としてVPC154Bを有するトラフィックに関連付けられたポリシー508は、クラウドルータ506Aで実装される。他方、その宛先としてVPC154Nを有するトラフィックに関連付けられたポリシー510は、クラウドルータ506Bで実装される。したがって、クラスタ504内の特定のクラウドルータ、またはクラウドルータのサブセットのみが、所与のトラフィックのポリシーを実装し得る。これにより、ポリシーの各セットをクラスタ504内のすべてのクラウドルータ(506A、506B、506N)にインストールまたは実装する必要がないため、スケーラビリティが向上する。
【0102】
この設計では、クラスタ504内のクラウドルータ506A、506B、506Nの組み合わせは、パブリッククラウド104内のエンドポイント(例えば、EP158、164、168)にわたってポリシーを適用できるクラスタ(例えば、504)内にn個のポリシーエージェントを有する仮想エンティティとなり得る。クラスタ504は、ポリシーエージェント(例えば、クラウドルータ)を追加または削除することにより、必要に応じて、サイズを拡大および縮小することができる。
【0103】
しかしながら、クラスタ504内のクラウドルータ506A、506B、506Nのサブセットのみが所与のトラフィックに必要なポリシーを有する場合、トラフィックは、適切なクラウドルータを通過するためにそれに応じてルーティングされる必要がある。すべてのポリシーエージェント(例えば、クラウドルータ506A、506B、506N)は、考えられるすべての宛先に到達するためのルートを有している可能性があるが、各ポリシーエージェントは、ポリシーエージェントによって実行されるポリシーに基づいて特定のルートセットのみをアドバタイズしてもよい。これは、図6を参照して以下でさらに説明するように、例えば、BGP(ボーダーゲートウェイプロトコル)ルートマップを使用するルート制御を使用することによって達成することができる。
【0104】
したがって、VPC154A上の仮想ゲートウェイ156が、VPC154A上のエンドポイント158からVPC154B上のエンドポイント164へのフロー512を受信すると、仮想ゲートウェイ156は、VPC154B宛てのトラフィックのポリシーを含むVPC502上のクラウドルータ506Aにフロー512を送信する。クラウドルータ506Aは、フロー512を受信し、VPC154B宛てのトラフィックについて、ポリシー508からの1つ以上のポリシーをフロー512に適用する。したがって、クラウドルータ506Aは、フロー512を取得し、フロー512をVPC154B上のクラウドルータ162に送信する前に、フロー512に必要なポリシーを適用する。場合によっては、クラウドルータ506Aは、VPC154B上のエンドポイント164にマッピングされるフロー512内のSGTまたはIPアドレスに基づいて、ポリシー508からのどの特定のポリシーがフロー512に対応するかを識別することができる。
【0105】
一方、VPC154A上の仮想ゲートウェイ156が、VPC154A上のエンドポイント158からVPC154C上のエンドポイント168へのフロー514を受信すると、仮想ゲートウェイ156は、VPC154C宛てのトラフィックのポリシーを含むVPC502上のクラウドルータ506Bにフロー514を送信する。クラウドルータ506Bは、フロー514を受信し、VPC154C宛てのトラフィックについて、ポリシー510からの1つ以上のポリシーを適用する。したがって、クラウドルータ506Bは、フロー514を取得し、フロー514をVPC154C上のクラウドルータ166に送信する前に、フロー514に必要なポリシーを適用する。場合によっては、クラウドルータ506Bは、VPC154C上のエンドポイント168にマッピングされるフロー514内のSGTまたはIPアドレスに基づいて、フロー514に対応する特定のポリシーを識別することができる。
【0106】
図6は、トラフィックが、そのトラフィックのポリシーを含むクラスタ504内の適切なクラウドルータ(例えば、ポリシーエージェント)によって確実に処理されるようにするための、クラスタ504内のクラウドルータ506A、506B、506Nによる例示的なルート分散600を示す。この例では、アドバタイズメント602は、VPC154BのCIDR(クラスレスドメイン間ルーティング)のアドバタイズメント(例えば、BGPを介して)を表し、アドバタイズメント604は、VPC154NのCIDRのアドバタイズメント(例えば、BGPを介して)を表す。ルートマップ606は、VPC154BのCIDRのアドバタイズメント602を停止するためのルートマップを表し、ルートマップ608は、VPC154NのCIDRのアドバタイズメント604を停止するためのルートマップを表す。ルートマップ606、608は、本質的に、特定のルート(例えば、VPC154BのCIDR、VPC154CのCIDR)をアドバタイズすることを回避するようにBGPに指示することができる。このようにして、ルートマップ606、608は、特定のクラウドルータ506A、506B、506Nが特定のBGPアドバタイズメントをVPC154A、154B、154N(例えば、ルータ156、162、166)に送信することを防ぎ、それらのVPCが、特定の宛先のトラフィックを、それらの宛先に対するポリシーを有していない特定のクラウドルータ(506A、506B、506N)に送信しないことを確実にすることができる。したがって、ルートマップ606、608を使用して、クラウドルータ506A、506B、506Nは、それらがポリシーを有するVPC(例えば、154A、154B、154N)からのトラフィックのみを受信することを確実にすることができる。
【0107】
図6では、クラウドルータ506Aは、VPC154B宛てのトラフィックのためのポリシーを運ぶが、VPC154N宛てのトラフィックのためのポリシーを運ばない。したがって、クラウドルータ506Aは、アドバタイズメント602をVPC154A上の仮想ゲートウェイ156に送信し、VPC154BのCIDRを仮想ゲートウェイ156にアドバタイズすることができるので、仮想ゲートウェイ156からVPC154Bに送信されるトラフィックは、クラウドルータ506Bまたは506Nの代わりにクラウドルータ506Aを通過する。さらに、クラウドルータ506Aは、ルートマップ608を実装して、クラウドルータ506AがVPC154NのCIDRをアドバタイズするのを阻止する。したがって、クラウドルータ506AがVPC154Bへのトラフィックを受信し、処理することを可能にする一方で、VPC154Nへのトラフィックがクラウドルータ506Aに送信されないことを確実にするために、アドバタイズメント602およびルートマップ608は、クラウドルータ506AがVPC154BのCIDRをアドバタイズするが、VPC154NのCIDRをアドバタイズしないことを確実にする。
【0108】
一方、クラウドルータ506Bは、VPC154N宛てのトラフィックのためのポリシーを運ぶが、VPC154B宛てのトラフィックのためのポリシーを運ばない。したがって、クラウドルータ506Bは、アドバタイズメント604をVPC154A上の仮想ゲートウェイ156に送信し、VPC154NのCIDRを仮想ゲートウェイ156にアドバタイズすることができるので、仮想ゲートウェイ156からVPC154Nに送信されるトラフィックは、クラウドルータ506Aまたは506Nの代わりにクラウドルータ506Bを通過する。さらに、クラウドルータ506Bは、ルートマップ606を実装して、クラウドルータ506BがVPC154BのCIDRをアドバタイズするのを阻止する。したがって、クラウドルータ506BがVPC154Nへのトラフィックを受信し、処理することを可能にする一方で、VPC154Bへのトラフィックがクラウドルータ506Bに送信されないことを確実にするために、アドバタイズメント604およびルートマップ606は、クラウドルータ506BがVPC154NのCIDRをアドバタイズするが、VPC154BのCIDRをアドバタイズしないことを確実にする。
【0109】
クラウドルータ506Nは、VPC154BまたはVPC154N宛てのトラフィックのポリシーを運ばない。したがって、クラウドルータ506Nは、アドバタイズメント602または604をVPC154A、154B、154N(またはルータ156、162、166)のいずれにも送信しない。この目的のために、クラウドルータ506Nは、ルートマップ606とルートマップ608の両方を実装して、クラウドルータ506NがVPC154BのCIDRおよびVPC154NのCIDRのアドバタイズメント602または604を送信するのを防ぐことができる。
【0110】
上に示したように、アドバタイズメント602および604ならびにルートマップ606および608を使用することにより、VPC154A~Nからのトラフィックが、そのトラフィックのポリシーを運ぶクラスタ504内のクラウドルータまたはクラウドルータのサブセットを介してルーティングされることを確実にしながら、クラスタ504内のクラウドルータ506A、506B、506Nにポリシーを分散することができる。
【0111】
上記のようにルートがプルーニングされると、これは、トラフィックが、指定されたクラウドルータまたはそのトラフィックの宛先VPCにサービスを提供するクラウドルータのサブセットにヒットすることを確実にする。したがって、2つのVPC(または)2つのEPGなどのエンティティのペアに関連付けられているポリシーは、例えば、各々が宛先VPCまたはEPGのうちの1つにサービスを提供する2つのクラウドルータ(例えば、ポリシーエージェント)でプログラムされ得る。
【0112】
1つのVPCからのトラフィックは、宛先VPCに応じて、クラウドルータ506A、506B、506Nのうちのいずれかにヒットする可能性があることに留意されたい。ソースルーティングチェックを可能にするために、すべてのクラウドルータ506A、506B、506Nは、ルートを学習することができるが、所与のルートを他のVPCに分散できるのは1つ(またはサブセット)のクラウドルータだけである。ソースルーティングチェックは、VPC内の不正なエンドポイントが通信するのを防ぐのに役立つ。これにより、クラウドルータの出力インターフェースにのみ特定のポリシーを適用できる柔軟性が得られる。一部のシナリオでは、出口インターフェースにのみポリシーを適用すると、スケールを拡大できる。例えば、VPC154AおよびVPC154Bがポート443でVPC154Nと通信できるようにするには、入口トンネルインターフェースに適用する場合は2つのルールが必要であるが、出口インターフェースに適用する場合は1つのルールのみが必要である。さらに、送信元ルートチェックがないと、この例では共有サブネットであるVPCサブネットS1は、VPC間で通信できるが、この例では厳密にプライベートであるサブネットS2は、他のVPC間で通信することができない。
【0113】
本明細書で説明するように、これらのアプローチにより、クラスタ504内のクラウドルータ506A、506B、506Nでポリシーを弾力的にスケーリングすることができ、それによりAWSの250ルール制限などのネイティブクラウドリソースの制限を回避できる。さらに、前述に加えて、セキュリティを強化するために、特定のセキュリティポリシーをパブリッククラウド104上のエンドポイント158、164、168に実装することもできる。これにより、VPC内の他のエンドポイントから、インターネットまたは他のVPCからの不正なトラフィックを防ぐために、外部クラウドルータを使用できない可能性があるVPC(例えば、VPC154A、VPC154B、VPC154Nなど)内のエンドポイント通信のホワイトリストポリシーモデルを提供することができる。ホストインスタンスでセキュリティポリシーを提供するクラウドのセキュリティモデルは、エンドポイント保護の観点からきめ細かいセキュリティアプローチであり、妥協されないものとする。以下の提案されたスキームは、クラウドルータ506A、506B、506Nを介してスケールを提供しながら、エンドポイントでのルールの数への最小限の追加でこれを達成することができる。
【0114】
エンドポイント158、164、168のセキュリティルールは、VPC CIDR内のトラフィック(すなわち、ハブVPC502にヒットしないトラフィック)のセキュリティグループ(例えば、160A、160B、160N)ルールと、クラスタ504内のクラウドルータからVPCの外部から来るトラフィックに対する最小セットのIPルールとを扱うことができる。これらのルールは、1つ以上のルート集約スキームに基づき得る。ホワイトリストモデルでは、これらのルールがないと、VPCの外部からのトラフィックがドロップされる可能性がある。同時に、エンドポイントへのトラフィックのパスにあるクラウドルータに適用できるため、より詳細なポリシーは必要ない。
【0115】
例示的なシステムおよび概念を説明してきたので、本開示は、次に、図7に示される方法に移る。本明細書に概説されるステップは例示であり、それらの任意の組み合わせで実装することができ、特定のステップを除外、追加、または変更する組み合わせを含む。
【0116】
ステップ702で、この方法は、クラウドファブリック(例えば、100)内のクラウドサイト(例えば、104)上に、制御プレーンルータのセット(例えば、140A、140N)および複数のデータプレーンルータ(例えば、152A、152B、152N)を配備することを含むことができる。マルチクラウドファブリック(例えば、104)は、図1Aおよび1Bに示されるように、オンプレミスサイト(例えば、102)および1つ以上のクラウドサイト(例えば、104、106)を含むことができる。複数のデータプレーンルータ(例えば、152A、152B、152N)は、クラウドサイト(例えば、104)に関連付けられたデータプレーントラフィックを処理するように構成され得る。さらに、制御プレーンルータのセット(例えば、140A、140N)は、クラウドサイト(例えば、104)に関連付けられた制御プレーントラフィックを処理し、オンプレミスサイト(例えば、102)とルーティング情報を交換するように構成され得る。ルーティング情報には、ルート、ルートまたはホップの変更(例えば、204)、BGPまたはEVPN BGPデータなどの制御プレーンデータを含むことができる。
【0117】
場合によっては、制御プレーンルータのセット(例えば、140A、140N)は、リモートサイトごとに複数の制御プレーンルータ(例えば、102、106)を含むことができる。例えば、いくつかの実装形態では、制御プレーンルータのセット(例えば、140A、140N)は、リモートサイトごとに2つの制御プレーンルータを含むことができる。複数(例えば、2つ以上)の制御プレーンルータは、制御プレーンの冗長性を提供することができ、リモートサイト(例えば、102、106)および/またはマルチクラウドファブリック内のファブリックコントローラ(例えば、110、112、114、116)など、マルチクラウドファブリック(例えば、100)内のネットワークデバイスとの制御プレーンセッション(例えば、BGPセッション)を確立し、ルーティング情報を交換するために使用することができる。
【0118】
ステップ704において、この方法は、複数のデータプレーンルータ(例えば、152A、152B、152N)からのデータプレーンルータの異なるセットを、クラウドサイト(例えば、104)内の異なるアドレス空間に関連付けられたデータプレーントラフィックに割り当てて、データプレーントラフィックとデータプレーンルールータとの分散マッピングを生成することを含むことができる。例えば、複数のデータプレーンルータ(例えば、152A、152B、152N)の異なるサブセット(例えば、1つ以上)は、異なるアドレス空間(または異なるアドレス空間内のルーティングデバイス)に関連付けられたデータプレーントラフィックに関連付けられるか、または処理するように構成され得る。異なるアドレス空間は、例えば、異なるVPC(例えば、154A、154B、154N)、異なるVNET(例えば、178A、178B、178N)、異なるVRF(例えば、136A、136B、136N)、異なるルーティングおよび転送またはネットワークコンテキスト、異なるプライベートネットワーク、異なる仮想ネットワーク、異なるサブネット、異なるネットワークセグメントまたはリージョンなどを含むことができる。
【0119】
異なるアドレス空間(または異なるアドレス空間)に関連付けられたデータプレーントラフィックに割り当てられたデータプレーンルータの異なるセットの各々は、その特定のデータプレーンルータのセットに割り当てられた特定のデータプレーントラフィックを処理するように構成することができる。例えば、データプレーンルータ152Aは、VPC154Aおよび/またはその関連するデータプレーントラフィックに割り当てられ、VPC154Aのデータプレーントラフィックを処理するように構成され得る。同様に、データプレーンルータ152Bは、VPC154Bおよび/またはその関連するデータプレーントラフィックに割り当てられ得、VPC154Bのデータプレーントラフィックを処理するように構成され得、データプレーンルータ152Nは、VPC154Nおよび/またはその関連するデータプレーントラフィックに割り当てられ、VPC154Nのデータプレーントラフィックを処理するように構成されていてもよい。このようにして、VPC154A、154B、および154Nに関連付けられたデータプレーントラフィックの処理は、異なるデータプレーンルータ(例えば、152A、152B、152N)に分散され、それにより、スケーラビリティが向上する。
【0120】
ステップ706で、この方法は、オンプレミスサイト(例えば、102)に、データプレーントラフィックとデータプレーンルータとの分散マッピングを反映(ルーティングエントリ)し、アドレス空間ごとに、データプレーンルータの異なるセットのうち、どのセットがそのアドレス空間のデータプレーントラフィックを処理するかを識別する、制御プレーンルータのセット(例えば、140A、140N)のうちの1つからのルーティングエントリを提供することとを含むことができる。例えば、制御プレーンルータ140Aは、オンプレミスサイト(例えば、102)および/またはクラウドコントローラ(例えば、コントローラ112またはマルチサイトクラウドコントローラ110)と、BGPまたはEVPN BGPセッションなどの制御プレーンセッションを確立して、オンプレミスサイト(例えば、102)へのルーティングエントリを提供してもよい。ルーティングエントリには、クラウドサイト(例えば104)へのデータプレーントラフィックのルートを含むことができる。例えば、ルーティングエントリは、VPC154A、154B、154N、および/またはルータ156、162、166などのVPC154A、154B、154Nに関連付けられたトラフィックを処理するように構成されたネットワーキングデバイスへのデータプレーントラフィックのルートまたはホップを含むことができる。場合によっては、ルーティングエントリは、ネクストホップの変更や更新、BGPプロパティなど、他のルーティングまたは制御セッション情報を含むことができる。
【0121】
ステップ708で、方法は、クラウドサイト(例えば、104)での1つ以上の条件に基づいて、クラウドサイト(例えば、104)で、クラウドサイト(例えば、104)に関連付けられた特定のアドレス空間のデータプレーントラフィックを処理するように構成された1つ以上のデータプレーンルータ(例えば、202)を配備することを含むことができる。例えば、1つ以上の条件に基づいて、データプレーンルータ(例えば、202)をクラウドサイト(例えば、104)に配備して、VPC154N、VPC154Nのルータ166、および/またはVPC154Nの任意の要素(例えば、EP168)に関連付けられたデータプレーントラフィックを扱う、または処理することができる。1つ以上の条件は、例えば、過負荷状態、帯域幅の必要性、最小しきい値に達する利用可能な帯域幅、しきい値を下回るパフォーマンス、追加のルーティング機能の必要性、サービス要件の違反などを含み得る。例えば、VPC154Nに関連付けられたデータプレーントラフィックのルーティング機能および利用可能な帯域幅を増やすために、1つ以上の追加のデータプレーンルータの配備をトリガする最小帯域幅しきい値または最大負荷しきい値を設定することができる。このようにして、クラウドサイト(例えば、104)のデータプレーントラフィックのルーティング機能を、必要に応じて、弾性のある/スケーラブルな、および動的に調整することができる。
【0122】
ステップ710において、この方法は、オンプレミスサイト(例えば、102)に、1つ以上のデータプレーンルータ(例えば、ステップ708で配備されたデータプレーンルータ202)を、特定のアドレス空間に関連付けられたデータプレーントラフィックのネクストホップとして識別する(更新されたルーティング情報)制御プレーンルータのセットのうちの1つから更新されたルーティング情報を提供することを含むことができる。更新されたルーティング情報は、ステップ708で配備された1つ以上のデータプレーンルータ(例えば、202)を、特定のアドレス空間(例えば、VPC154N、ルータ166、EP168など)へのデータプレーントラフィックのネクストホップまたはデータプレーンルータとして識別するネクストホップ変更(例えば、204)を含むことができる。オンプレミスサイト(例えば、102)は、更新されたルーティング情報を使用して、ルートまたはルートのテーブルを更新して、特定のアドレス空間へのデータプレーントラフィックのホップとして1つ以上のデータプレーンルータを識別することができる。場合によっては、この方法は、更新されたルーティング情報を、パブリッククラウド106、マルチサイトコントローラ110などのマルチクラウドファブリック(例えば、100)内の他のデバイスまたはサイトに提供して、1つ以上のデータプレーンルータ(例えば、202)を、特定のアドレス空間に関連付けられたデータプレーントラフィックのネクストホップまたはホップとして識別し、ルーティング情報の受信者に、1つ以上のデータプレーンルータ(例えば、202)が、特定のアドレス空間に関連付けられたデータプレーントラフィックを処理するように構成されていることを通知することも含むことができる。
【0123】
場合によっては、方法は、1つ以上のクラウドサイト(例えば、104、106)内のそれぞれのタイプのプライベートネットワークコンストラクト(例えば、VPCまたはVNET)を、オンプレミスサイト(例えば、102)の特定のタイプのプライベートコンストラクト(例えば、VRF)に関連付けられたポリシーおよび構成設定のセットに一致するように変換して、マルチクラウドファブリック(例えば、100)にわたって正規化されたプライベートまたは仮想ネットワークを生成することと、正規化されたプライベーネットワークを介して、オンプレミスサイト(例えば、102)と、1つ以上のクラウドサイト(例えば、104および106)との間の相互接続を提供することを含み得る。場合によっては、次いで、マルチクラウドファブリック(例えば、100)のサイト間トラフィックを、正規化されたプライベートネットワークを使用してルーティングすることができる。
【0124】
いくつかの態様では、方法は、オンプレミスサイト(例えば、102)のポリシーコンストラクト(例えば、EPG、VRFなど)を1つ以上のクラウドサイト(例えば、104、106)のそれぞれのポリシーコンストラクト(例えば、セキュリティグループ、アプリケーションセキュリティグループ、VPC、VNETなど)にマッピングすることであって、オンプレミスサイト(例えば、102)のポリシーコンストラクトは、1つ以上のクラウドサイト(例えば、104、106)のそれぞれのポリシーコンストラクトとは異なるタイプのポリシーコンストラクトである、マッピングすることと、それぞれのポリシーコンストラクトからの各ポリシーコンストラクトを変換して、それぞれのポリシーコンストラクトからのポリシーコンストラクトにマッピングされたオンプレミスサイト(例えば、104)からのポリシーコンストラクトのうちのそれぞれ1つをミラーリングする(例えば、EPG302をセキュリティグループ304Aおよびアプリケーションセキュリティグループ304Bに変換する)ことと、それぞれのポリシーコンストラクトからのポリシーコンストラクト(例えば、パブリッククラウド104および/またはパブリッククラウド106からのポリシーコントラクト)、およびそれぞれのポリシーコンストラクトからのポリシーコンストラクトにマッピングされたオンプレミスサイト(例えば、102)からのポリシーコンストラクトのうちのそれぞれ1つのうちの少なくとも1つにある1つ以上のエンドポイントに関連付けられたトラフィックの受信に応答して、トラフィックに、それぞれのポリシーコンストラクトからのポリシーコンストラクト、およびオンプレミスサイトからのポリシーコンストラクトのうちのそれぞれ1つに関連付けられたポリシーのセットを適用することと、によって、マルチクラウドファブリック(例えば、100)にわたって、複数のポリシーコンストラクト(例えば、EPG130~134、セキュリティグループ160A~N、アプリケーションセキュリティグループ180A~Nなど)を正規化することを含み得る。
【0125】
例えば、オンプレミスサイト102のEPG130は、パブリッククラウド104のセキュリティグループ160Aおよびパブリッククラウド106のアプリケーションセキュリティグループ180Aにマッピングすることができる。次いで、パブリッククラウド104のセキュリティグループ160Aおよびパブリッククラウド106のアプリケーションセキュリティグループ180Aは、変換されて、EPG130をミラーリングすることができる(例えば、同じポリシーを同じタイプのトラフィックおよび/または宛先に適用する)。次いで、パブリッククラウド104またはパブリッククラウド106が、EPG130に関連付けられたトラフィックおよび/またはEPG130に関連付けられたエンドポイントを受信した場合、パブリッククラウド104またはパブリッククラウド106は、トラフィックをEPG130(またはEPG130をミラーリングする変換されたセキュリティグループ)に関連付けられたものとして分類し、変換されたセキュリティグループまたはアプリケーションセキュリティグループを使用して、EPG130に関連付けられたポリシーを適用することができる。
【0126】
いくつかの態様において、マルチクラウドファブリック(例えば、100)にわたる複数のポリシーコンストラクトの正規化は、オンプレミスサイト(例えば、102)内のポリシーコンストラクトを他のクラウドサイト(例えば、104、106)にストレッチすることによって達成することができる。例えば、場合によっては、方法は、オンプレミスサイト(例えば、102)から1つ以上のクラウドサイト(例えば、104、106)にポリシーコンストラクト(例えば、EPG130、EPG132、EPG134、VRF136A、VRF136B、VRF136Nなど)をストレッチして、1つ以上のクラウドサイトの各々にストレッチされたポリシーコンストラクト(例えば、402)を生成することを伴うことができる。各クラウドサイトのストレッチされたポリシーコンストラクトは、オンプレミスサイト(例えば、102)からのポリシーコンストラクトをミラーリングすることができる。
【0127】
この例を続けると、方法は、ストレッチされたポリシーコンストラクト(例えば、402)にマッピングされた1つ以上のクラウドサイト(例えば、104、106)内のエンドポイント(例えば、EP158、164、168、184、188、192)ごとに、オンプレミスサイト(例えば、102)に、エンドポイントのアドレス(例えば、IPアドレス、IPプレフィックス、サブネットなど)を提供することと、エンドポイントのアドレスをオンプレミスサイト(例えば、102)上のシャドウポリシーコンストラクト(例えば、406)にマッピングすることであって、1つ以上のクラウドサイト(例えば、104、106)の各々で、ストレッチされたポリシーコンストラクト(例えば、402)をミラーリングする、マッピングすることと、オンプレミスサイト(例えば、102)からのポリシーコンストラクトの各エンドポイントについて、そのエンドポイントを、1つ以上のクラウドサイト(例えば、104、106)の各々のシャドウポリシーコンストラクト(例えば、406)にマッピングすることと、を含むことができる。それぞれのシャドウポリシーコンストラクトは、オンプレミスサイト(例えば、102)からのポリシーコンストラクトをミラーリングすることができる。このようにして、EPGまたはVRFなどのオンプレミスサイト(例えば、102)内の1つ以上のポリシーコンストラクトを、1つ以上のクラウドサイト(例えば、104、106)にわたって正規化することができる。場合によっては、オンプレミスサイト(例えば、102)内のすべてのポリシーコンストラクト、または1つ以上のクラウドサイト(例えば、104、106)に関連するオンプレミスサイト(例えば、102)内のすべてのポリシーコンストラクトは、マルチクラウドファブリック(例えば、100)にわたって正規化して、オンプレミスサイト(例えば、102)のポリシーモデルに基づく均一または一貫性のあるポリシーモデルまたはポリシーアプリケーションを維持することができる。
【0128】
いくつかの態様において、マルチクラウドファブリック(例えば、100)にわたる複数のポリシーコンストラクトの正規化は、マルチクラウドファブリック(例えば、100)内の異なるサイト上のポリシーコンストラクト間の契約またはポリシーを使用することによって達成され得る。例えば、場合によっては、方法は、オンプレミスサイト(例えば、102)内のポリシーコンストラクト(例えば、EPG130)に基づいて、1つ以上のクラウドサイト(例えば、104、106)の各々の関連するポリシーコンストラクト(例えば、422)を作成することと、オンプレミスサイト(例えば、102)内のポリシーコンストラクト(例えば、EPG130)と1つ以上のクラウドサイト(例えば、104、106)の各々の関連するポリシーコンストラクト(例えば、422)との間のトラフィックに対するセキュリティポリシー(例えば、424)を確立することと、を含むことができる。方法はまた、1つ以上のクラウドサイト(例えば、104、106)の各々における関連するポリシーコンストラクト(例えば、422)ごとに、オンプレミスサイト(例えば、102)において、関連するポリシーコンストラクト(例えば、422)をミラーリングするシャドウポリシーコンストラクト(例えば、426)をプロビジョニングすることと、オンプレミスサイト(例えば、102)におけるポリシーコンストラクト(例えば、EPG130)に対して、1つ以上のクラウドサイト(例えば、104、106)の各々において、オンプレミスサイト(例えば、102)におけるポリシーコンストラクト(例えば、EPG130)をミラーリングするシャドウポリシーコンストラクト(例えば、428)をプロビジョニングすることとも含み得る。
【0129】
方法は、関連するポリシーコンストラクト(例えば、422)にマッピングされる1つ以上のクラウドサイト(例えば、104、106)内の各エンドポイント(例えば、158、164、168、184、188、192)ごとに、オンプレミスサイト(例えば、102)に、エンドポイントのアドレス(例えば、IPアドレス、IPプレフィックス、サブネットなど)を提供することと、1つ以上のクラウドサイト(例えば、104、106)内の各エンドポイントを、各エンドポイントのアドレスに基づいてオンプレミスサイト(例えば、102)にプロビジョニングされたシャドウポリシーコンストラクト(例えば、426)にマッピングすることと、オンプレミスサイト(例えば、102)内のポリシーコンストラクト(例えば、EPG130)の各エンドポイントを、1つ以上のクラウドサイト(例えば、104、106)の各々のシャドウポリシーコンストラクト(例えば、428)にマッピングすることと、をさらに含むことができる。
【0130】
場合によっては、方法には、マルチクラウドファブリック(例えば、100)で発見された他のエンドポイントを、適切な正規化されたポリシーコンストラクトにマッピングすることを含み得る。例えば、方法は、クラウドサイト(例えば、104または106)で新しいエンドポイントを発見することに応答して、オンプレミスサイト(例えば、102)に新しいエンドポイントのアドレスを提供することと、新しいエンドポイントのアドレスに基づいて、オンプレミスサイト(例えば、102)でプロビジョニングされたシャドウポリシーコンストラクト(例えば、426)に新しいエンドポイントをマッピングすることと、を含み得る。このようにして、新しく発見されたエンドポイントをマルチクラウドファブリック(例えば、100)の関連するポリシーコンストラクトにマッピングして、マルチクラウドファブリック(例えば、100)にわたって新しく発見されたエンドポイントのポリシーを正規化することができる。エンドポイントのアドレスは動的または動的に割り当てられる場合があるため、そのエンドポイントをホストしているサイトは、オンプレミスサイト(例えば、102)などの他のサイトにエンドポイントのアドレスを報告することができ、そのため、エンドポイントのアドレスを使用して、他のサイトで、および/またはマルチクラウドファブリック(例えば、100)にわたって、エンドポイントを特定のポリシーコンストラクトにマッピングすることができる。
【0131】
いくつかの態様では、方法は、クラウドサイト(例えば、104または106)内のエンドポイントに関連付けられたセキュリティポリシー(例えば、508、510)を、クラウドサイト内の複数のデータプレーンルータ(例えば、506A~N)に分散させることを含むことができ、各データプレーンルータは、そのデータプレーンルータにマッピングされたクラウドサイト内のエンドポイントのセットに関連付けられたセキュリティポリシーのそれぞれのサブセットを受信する。方法はまた、クラウドサイト内の複数のデータプレーンルータ(例えば、506A~N)からの各データプレーンルータによって、エンドポイントのセットに関連付けられたルートのそれぞれのセット(例えば、512または514)を、クラウドサイト(例えば、104または106)内のプライベートまたは仮想ネットワーク(例えば、154A~Nまたは178A~N)に関連付けられたトラフィックを処理するように構成された、そのデータプレーンルータまたはそれぞれのルータ(例えば、156、162、166、182、186、または190)にマッピングされたエンドポイントのセットのうちの1つ以上を含むクラウドサイト(例えば、104または106)内の各プライベートネットワークまたは仮想ネットワーク(例えば、154A~Nまたは178A~N)にアドバタイズすることを含むことができる。
【0132】
方法はまた、ボーダーゲートウェイプロトコル(BGP)ルートマップ(例えば、606、608)に基づいて、クラウドサイト内の複数のデータプレーンルータ(例えば、506A~N)からの各データプレーンルータが、そのデータプレーンルータにマッピングされていないクラウドサイト内のエンドポイントのものに関連付けられたルートをアドバタイズすることを防止することと、エンドポイントのセットうちの1つ以上に関連付けられたトラフィックを受信することに応答して、エンドポイントのセットうちの1つ以上にマッピングされたデータプレーンルータを介して、エンドポイントのセットに関連付けられたセキュリティポリシーのそれぞれのサブセットのうちの1つ以上を、エンドポイントのセットうちの1つ以上に関連付けられた受信されたトラフィックに適用することと、を含むことができる。
【0133】
次に、本開示は、スイッチ、ルータ、クライアントデバイス、エンドポイント、サーバなどの例示的なネットワークデバイスおよびコンピューティングデバイスを示す図8および9に移る。
【0134】
図8は、スイッチング、ルーティング、および他のネットワーキング操作を実行するのに好適な例示的なネットワークデバイス800を示す。ネットワークデバイス800は、中央処理ユニット(CPU)804、インターフェース802、および接続部810(例えば、PCIバス)を含む。適切なソフトウェアまたはファームウェアの制御下で動作する場合、CPU804は、パケット管理、エラー検出、および/またはルーティング関数を実行する責任を負う。CPU804は、好ましくは、オペレーティングシステムおよび任意の適切なアプリケーションソフトウェアを含むソフトウェアの制御下でこれら全ての機能を達成する。CPU804は、マイクロプロセッサのINTEL X86ファミリからのプロセッサなどの1つ以上のプロセッサ808を含み得る。場合によっては、プロセッサ808は、ネットワークデバイス800の操作を制御するために特別に設計されたハードウェアであり得る。場合によっては、メモリ806(例えば、不揮発性RAM、ROMなど)もまた、CPU804の一部を形成する。ただし、メモリをシステムに結合することができる多くの異なる方式がある。
【0135】
インターフェース802は、通常、モジュラーインターフェースカード(「ラインカード」と称されることもある)として提供される。一般に、それらはネットワークを介したデータパケットの送受信を制御し、ネットワークデバイス800で使用される他の周辺機器をサポートする場合がある。提供され得るインターフェースの中には、イーサネットインターフェース、フレームリレーインターフェース、ケーブルインターフェース、DSLインターフェース、トークンリングインターフェースなどがある。加えて、高速トークンリングインターフェース、ワイヤレスインターフェース、イーサネットインターフェース、ギガビットイーサネットインターフェース、ATMインターフェース、HSSIインターフェース、POSインターフェース、FDDIインターフェース、WIFIインターフェース、3G/4G/5Gセルラーインターフェース、CAN BUS、LoRAなど、様々な非常に高速なインターフェースが提供される場合がある。一般に、これらのインターフェースには、適切な媒体との通信に適したポートが含まれている場合がある。場合によっては、独立したプロセッサと、場合によっては揮発性RAMも含まれることがある。独立したプロセッサは、パケット交換、媒体制御、信号処理、暗号処理、管理などの通信集約型タスクを制御することができる。通信集約型タスクのために別個のプロセッサを提供することにより、これらのインターフェースは、マスターマイクロプロセッサ804がルーティング計算、ネットワーク診断、セキュリティ機能などを効率的に実行することを可能にする。
【0136】
図8に示されるシステムは、本技術の1つの特定のネットワークデバイスであるが、本技術が実装され得る唯一のネットワークデバイスアーキテクチャであることを意味するものではない。例えば、通信ならびにルーティング計算などを処理する単一のプロセッサを備えるアーキテクチャがよく使用される。さらに、他のタイプのインターフェースおよび媒体もまた、ネットワークデバイス800とともに使用され得る。
【0137】
ネットワークデバイスの構成に関係なく、本明細書で説明するローミング、ルート最適化、およびルーティング関数のための汎用ネットワーク操作およびメカニズムのためのプログラム命令を格納するように構成された1つ以上のメモリまたはメモリモジュール(メモリ806を含む)を使用することができる。プログラム命令は、例えば、オペレーティングシステムおよび/または1つ以上のアプリケーションの操作を制御することができる。1つ以上のメモリはまた、モビリティバインディング、登録、および関連付けテーブルなどのテーブルを格納するように構成され得る。メモリ806はまた、様々なソフトウェアコンテナおよび仮想化実行環境およびデータを保持することができる。
【0138】
ネットワークデバイス800はまた、ルーティングおよび/またはスイッチング操作を実行するように構成され得る特定用途向け集積回路(ASIC)812を含むことができる。ASIC812は、接続部810を介してネットワークデバイス800内の他のコンポーネントと通信して、データおよび信号を交換し、例えば、ルーティング、スイッチング、および/またはデータ格納操作などのネットワークデバイス800による様々なタイプの操作を連携することができる。
【0139】
図9は、システムのコンポーネントが、バスなどの接続部905を使用して互いに電気的に通信するコンピューティングシステムアーキテクチャ900を示す。例示的なシステム900は、処理ユニット(CPUまたはプロセッサ)910と、読み出し専用メモリ(ROM)920およびランダムアクセスメモリ(RAM)925などのシステムメモリ915を含む様々なシステムコンポーネントをプロセッサ910に結合するシステム接続部905とを含む。システム900は、プロセッサ910に直接接続されているか、近接しているか、またはプロセッサ910の一部として統合されている高速メモリのキャッシュを含むことができる。システム900は、プロセッサ910による高速アクセスのために、メモリ915および/またはストレージデバイス930からキャッシュ912にデータをコピーすることができる。このようにして、キャッシュは、データを待機している間のプロセッサ910の遅延を回避するパフォーマンス向上を提供することができる。これらおよび他のモジュールは、様々なアクションを実行するために、プロセッサ910を制御するか、または制御するように構成され得る。他のシステムメモリ915も同様に利用可能であり得る。メモリ915は、異なるパフォーマンス特性を有する複数の異なるタイプのメモリを含むことができる。プロセッサ910は、任意の汎用プロセッサと、プロセッサ910を制御するように構成されたストレージデバイス930に格納された第1サービス932、第2サービス934、および第3サービス936のようなハードウェアまたはソフトウェアサービスと、ソフトウェア命令が実際のプロセッサ設計に組み込まれている特別目的プロセッサとを含むことができる。プロセッサ910は、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む完全に自己完結型のコンピューティングシステムであり得る。マルチコアプロセッサは、対称または非対称であり得る。
【0140】
コンピューティングデバイス900とのユーザインタラクションを可能にするために、入力デバイス945は、スピーチ用のマイクロフォン、ジェスチャまたはグラフィック入力用のタッチセンシティブスクリーン、キーボード、マウス、モーション入力、スピーチなどの任意の数の入力メカニズムを表すことができる。出力デバイス935はまた、当業者に既知の一部の出力メカニズムのうちの1つ以上であり得る。場合によっては、マルチモーダルシステムは、ユーザがコンピューティングデバイス900と通信するために複数のタイプの入力を提供することを可能にし得る。通信インターフェース940は、一般に、ユーザ入力およびシステム出力を統治および管理することができる。特定のハードウェア構成での操作に制限はないため、ここでの基本機能は、開発時に改善されたハードウェアまたはファームウェア構成に簡単に置き換えることができる。
【0141】
ストレージデバイス930は、不揮発性メモリであり、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)925、読み取り専用メモリ(ROM)920、およびそれらのハイブリッドなど、コンピュータがアクセス可能なデータを格納することができるハードディスクまたは他のタイプのコンピュータ可読媒体であり得る。
【0142】
ストレージデバイス930は、プロセッサ910を制御するためのサービス932、934、936を含むことができる。他のハードウェアまたはソフトウェアモジュールが企図される。ストレージデバイス930は、システム接続部905に接続することができる。一態様では、特定の機能を実行するハードウェアモジュールは、その機能を実行するために、プロセッサ910、接続部905、出力デバイス935などの必要なハードウェアコンポーネントに関連して、コンピュータ可読媒体に格納されたソフトウェアコンポーネントを含むことができる。
【0143】
説明を明確にするために、場合によっては、本技術は、ソフトウェアで具体化される方法におけるデバイス、デバイスコンポーネント、ステップもしくはルーチン、またはハードウェアとソフトウェアの組み合わせを含む機能ブロックを含む個々の機能ブロックを含むものとして提示され得る。
【0144】
いくつかの実施形態では、コンピュータ可読記憶デバイス、媒体、およびメモリは、ビットストリームなどを含むケーブルまたは無線信号を含むことができる。しかしながら、言及される場合、非一時的コンピュータ可読記憶媒体は、エネルギー、搬送波信号、電磁波、および信号自体などの媒体を明示的に除外する。
【0145】
上記の例による方法は、コンピュータ可読媒体に格納されているか、他の場合にはそれから利用可能であるコンピュータ実行可能命令を使用して実装することができる。そのような命令は、例えば、特定の機能または機能のグループを実行するために、汎用コンピュータ、専用コンピュータ、または専用処理デバイスを引き起こすか、あるいは構成する命令およびデータを含むことができる。使用されるコンピュータリソースの部分は、ネットワーク経由でアクセス可能であり得る。コンピュータの実行可能命令は、例えば、バイナリ、アセンブリ言語、ファームウェア、またはソースコードなどの中間フォーマット命令であり得る。命令、使用される情報、および/または説明された例による方法中に作成された情報を格納するために使用され得るコンピュータ可読媒体の例には、磁気ディスクまたは光ディスク、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワークストレージデバイスなどが含まれる。
【0146】
これらの開示による方法を実装するデバイスは、ハードウェア、ファームウェア、および/またはソフトウェアを含むことができ、様々なフォームファクタのいずれかを取ることができる。このようなフォームファクタの典型的な例には、ラップトップ、スマートフォン、スモールフォームファクタのパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイスなどが挙げられる。本明細書で説明される機能はまた、周辺機器またはアドインカードで具体化され得る。このような機能は、さらなる例として、単一のデバイスで実行される異なるチップまたは異なるプロセスの間の回路基板上に実装することもできる。
【0147】
命令、そのような命令を伝達するための媒体、それらを実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、これらの開示に記載された機能を提供するための手段である。
【0148】
添付の特許請求の範囲の範疇の態様を説明するために、様々な例および他の情報を使用したが、当業者であれば、多種多様な実装形態を導出するために、これらの例を使用することができるように、かかる例における特定の特徴または構成に基づいて、特許請求の範囲のいかなる制限も示唆されるべきではない。さらに、一部の主題は、構造的特徴および/または方法ステップの例に固有の言語で記載されている場合があるが、添付の特許請求の範囲で定義される主題は、必ずしもこれらの記載された特徴または行為に限定されないことを理解されたい。例えば、かかる機能は、ここで特定されている構成要素以外の構成要素で、異なって配布し、または実行することができる。むしろ、記載された特徴およびステップは、添付の特許請求の範囲の範疇のシステムおよび方法の構成要素の例として開示される。
【0149】
「少なくとも1つ」のセットと記載される特許請求項の文言は、セットの1つのメンバーまたはセットの複数のメンバーが特許請求項を満たしていることを示す。例えば、「AおよびBのうちの少なくとも1つ」と記載される特許請求項の文言は、A、B、またはAおよびBを意味する。
図1A
図1B
図2A
図2B
図3
図4A
図4B
図5
図6
図7
図8
図9