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

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

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

特許7355830マルチクラウド環境におけるオンデマンドフローに基づくポリシー実施のためのシステムおよび方法
<>
  • 特許-マルチクラウド環境におけるオンデマンドフローに基づくポリシー実施のためのシステムおよび方法 図1
  • 特許-マルチクラウド環境におけるオンデマンドフローに基づくポリシー実施のためのシステムおよび方法 図2
  • 特許-マルチクラウド環境におけるオンデマンドフローに基づくポリシー実施のためのシステムおよび方法 図3A
  • 特許-マルチクラウド環境におけるオンデマンドフローに基づくポリシー実施のためのシステムおよび方法 図3B
  • 特許-マルチクラウド環境におけるオンデマンドフローに基づくポリシー実施のためのシステムおよび方法 図4
  • 特許-マルチクラウド環境におけるオンデマンドフローに基づくポリシー実施のためのシステムおよび方法 図5
  • 特許-マルチクラウド環境におけるオンデマンドフローに基づくポリシー実施のためのシステムおよび方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-25
(45)【発行日】2023-10-03
(54)【発明の名称】マルチクラウド環境におけるオンデマンドフローに基づくポリシー実施のためのシステムおよび方法
(51)【国際特許分類】
   H04L 47/20 20220101AFI20230926BHJP
【FI】
H04L47/20
【請求項の数】 20
(21)【出願番号】P 2021539103
(86)(22)【出願日】2020-02-20
(65)【公表番号】
(43)【公表日】2022-04-15
(86)【国際出願番号】 US2020019005
(87)【国際公開番号】W WO2020176325
(87)【国際公開日】2020-09-03
【審査請求日】2022-05-02
(31)【優先権主張番号】16/289,647
(32)【優先日】2019-02-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】508041127
【氏名又は名称】シスコ テクノロジー,インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100140431
【弁理士】
【氏名又は名称】大石 幸雄
(72)【発明者】
【氏名】ジャナキラマン,ラジャゴパラン
(72)【発明者】
【氏名】デサイ,ロナク,ケイ.
(72)【発明者】
【氏名】ガナパティー,シヴァクマール
(72)【発明者】
【氏名】アスガル,モハメッド ジャヴェド
(72)【発明者】
【氏名】スルマン,アジーム
(72)【発明者】
【氏名】ヴァルジバイ,パテル アミットクマール
【審査官】宮島 郁美
(56)【参考文献】
【文献】米国特許出願公開第2018/0026885(US,A1)
【文献】特開2009-105716(JP,A)
【文献】特開2015-156624(JP,A)
【文献】米国特許出願公開第2016/0156591(US,A1)
【文献】特開2017-017527(JP,A)
【文献】米国特許出願公開第2015/0237013(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00,13/00,41/00-49/9057,61/00-65/80,69/00-69/40
(57)【特許請求の範囲】
【請求項1】
システムであって、
1つ以上のプロセッサと、
命令を記憶した少なくとも1つのコンピュータ可読記憶媒体であって、前記1つ以上のプロセッサによって実行されると、前記命令は前記システムに、
第1のクラウドの第1のエンドポイントから第2のクラウドの第2のエンドポイントへのパスを発見させ、
前記パス内のノードに関連付けられているランタイムポリシーテーブル容量を決定させ、
前記パス内の前記ノードに関連付けられている前記ランタイムポリシーテーブル容量に基づいて、前記第1のエンドポイントから前記第2のエンドポイントへのトラフィックのためのポリシー分散および実施を決定させ、
前記ポリシーの分散および実施に基づいて、前記パス内の前記ノードのセットにポリシーをインストールさせ、
前記ポリシーを、前記第1のクラウドの前記第1のエンドポイントから前記第2のクラウドの前記第2のエンドポイントに送信されるデータに適用させる、
システム。
【請求項2】
前記パスを発見することは、前記パス内の複数のノードを決定することをさらに含む、請求項1に記載のシステム。
【請求項3】
前記ランタイムポリシーテーブル容量および前記ポリシーの分散および実施を決定することは、
前記パス内の前記複数のノードからのノードのサブセットのそれぞれのポリシーテーブル容量基づいて、前記ポリシーの少なくとも一部をインストールする前記ノードのサブセットから少なくとも1つのノードを決定することと、
前記ノードにつながる前記パス内の1つ以上のルーティングテーブルに対して前記第2のエンドポイントの宛先アドレスを実行することと、
前記ノードのそれぞれのアドレスを含む前記パス内で最も広いサブネットを決定することと、
を含む、請求項2に記載のシステム。
【請求項4】
ポリシーをインストールすることは、前記最も広いサブネットのトラフィックを可能にするポリシーをインストールすることを含み、前記ポリシーは、前記第1のエンドポイント、前記第2のエンドポイント、または前記パス内の前記ノードの1つにインストールされる、請求項3に記載のシステム。
【請求項5】
前記少なくとも1つのコンピュータ可読記憶媒体に記憶された追加の命令をさらに含み、前記1つ以上のプロセッサによって実行されると、前記命令は前記システムに、
前記ノードに、前記第1のエンドポイントを含む第1のエンドポイントグループと前記第2のエンドポイントを含む第2のエンドポイントグループとの間のコントラクトで、1つ以上の指定されたポートの前記第1のエンドポイントから前記第2のエンドポイントへのトラフィックのみを許可する1つ以上のフィルタをインストールさせる、請求項3または4に記載のシステム。
【請求項6】
前記ポリシーの分散および実施は、前記第1のエンドポイントにインストールされた漏斗状の実施を含む、請求項1から5のいずれかに記載のシステム。
【請求項7】
前記少なくとも1つのコンピュータ可読記憶媒体に記憶された追加の命令をさらに含み、前記1つ以上のプロセッサによって実行されると、前記命令は前記システムに、
前記第1のエンドポイント、前記第2のエンドポイント、および前記パス内の1つ以上の前記ノードの少なくとも1つにインストールされている1つ以上のポリシーの経過時間を決定させ、
ポリシーの前記経過時間が閾値の経過時間を超えていることに応じて、当該ポリシーを削除させる、
請求項1から6のいずれかに記載のシステム。
【請求項8】
命令を記憶した非一時的コンピュータ可読記憶媒体であって、
1つ以上のプロセッサによって実行されると、前記命令は前記1つ以上のプロセッサに、
第1のクラウドの第1のエンドポイントから第2のクラウドの第2のエンドポイントへのパスを発見させ、
前記パス内のノードに関連付けられているランタイムポリシーテーブル容量を取得させ、
前記ランタイムポリシーテーブル容量に基づいて、前記第1のエンドポイントから前記第2のエンドポイントへのトラフィックのためのポリシー分散および実施を決定させ、
前記パス内の前記決定されたポリシーの分散および実施に基づいて、前記パス内の前記ノードのセットに、前記第1のエンドポイントから前記第2のエンドポイントへの前記トラフィックに関連付けられているポリシーのセットをインストールさせ、
前記ポリシーのセットを、前記第1のクラウドの前記第1のエンドポイントから前記第2のクラウドの前記第2のエンドポイントへのトラフィックに適用させる、
非一時的コンピュータ可読記憶媒体。
【請求項9】
前記パスを発見することは、前記パス内の複数のノードを特定することを含む、請求項8に記載の非一時的なコンピュータ可読記憶媒体。
【請求項10】
追加の命令を記憶し、前記1つ以上のプロセッサによって実行されると、前記命令は前記1つ以上のプロセッサに、
前記パス内の前記複数のノードのノードのサブセットのそれぞれのポリシーテーブル容量基づいて、前記ポリシーのセットの少なくとも一部をインストールする前記ノードのサブセットから少なくとも1つのノードを決定させ、
前記ノードにつながる前記パス内のルーティングテーブルに対して前記第2のエンドポイントの宛先アドレスを実行させ、
前記ノードの少なくとも1つおよび前記ノードに関連付けられているアドレスを含む前記パス内で最も広いサブネットを決定させる、
請求項9に記載の非一時的なコンピュータ可読記憶媒体。
【請求項11】
前記ポリシーのセットをインストールすることは、前記第1のエンドポイントで最も広いサブネットのトラフィックを可能にするポリシーをインストールすることを含む、請求項10に記載の非一時的なコンピュータ可読記憶媒体。
【請求項12】
追加の命令を記憶し、前記1つ以上のプロセッサによって実行されると、前記命令は前記1つ以上のプロセッサに、
前記ノードに、前記第1のエンドポイントを含む第1のエンドポイントグループと前記第2のエンドポイントを含む第2のエンドポイントグループとの間のコントラクトで、1つ以上の指定されたポートの前記第1のエンドポイントから前記第2のエンドポイントへのトラフィックのみを許可する1つ以上のフィルタをインストールさせる、請求項10または11に記載の非一時的なコンピュータ可読記憶媒体。
【請求項13】
前記ポリシーの分散および実施は、前記第1のエンドポイントにインストールされた漏斗状の実施を含む、請求項8から12のいずれかに記載の非一時的なコンピュータ可読記憶媒体。
【請求項14】
追加の命令を記憶し、前記1つ以上のプロセッサによって実行されると、前記命令は前記1つ以上のプロセッサに、
前記第1のエンドポイント、前記第2のエンドポイント、および前記パス内の前記ノードのセットの少なくとも1つにインストールされている1つ以上のポリシーの経過時間を決定させ、
ポリシーの前記経過時間が閾値の経過時間を超えていることに応じて、当該ポリシーを削除させる、
請求項8から13のいずれかに記載の非一時的なコンピュータ可読記憶媒体。
【請求項15】
方法であって、
第1のクラウドの第1のエンドポイントから第2のクラウドの第2のエンドポイントへのパスを発見することと、
前記パス内のノードに関連付けられているランタイムポリシーテーブル容量を決定することと、
前記ランタイムポリシーテーブル容量に基づいて、ポリシー分散および実施を決定することと、
前記ポリシーの分散および実施に基づいて、前記パス内のノードのセットにわたる前記第1のエンドポイントから前記第2のエンドポイントへのトラフィックのためのポリシーのセットをインストールすることと、
前記ポリシーのセットを、前記第1のクラウドの前記第1のエンドポイントから前記第2のクラウドの前記第2のエンドポイントへのトラフィックに適用することと、
を含む方法。
【請求項16】
前記パスを発見することは、前記パス内の複数のノードを決定することを含む、請求項15に記載の方法。
【請求項17】
前記パス内の前記複数のノードのノードのサブセットのそれぞれのポリシーテーブル容量基づいて、前記ポリシーのセットをインストールする前記複数のノードの少なくとも1つのノードを決定することと、
前記ノードにつながる前記パス内のルーティングテーブルに対して前記第2のエンドポイントの宛先アドレスを実行することと、
前記ノードの少なくとも1つおよび前記ノードに関連付けられているアドレスを含む前記パス内で最も広いサブネットを決定することと、
をさらに含む、請求項16に記載の方法。
【請求項18】
前記ポリシーのセットをインストールすることは、前記最も広いサブネットのトラフィックを可能にするポリシーをインストールすることを含み、前記ポリシーは、前記第1のエンドポイント、前記第2のエンドポイント、および前記パス内の前記ノードの1つにインストールされる、請求項17に記載の方法。
【請求項19】
前記ノードに、前記第1のエンドポイントを含む第1のエンドポイントグループと前記第2のエンドポイントを含む第2のエンドポイントグループとの間のコントラクトで、1つ以上の指定されたポートの前記第1のエンドポイントから前記第2のエンドポイントへのトラフィックのみを許可する1つ以上のフィルタをインストールすることをさらに含む、請求項18に記載の方法。
【請求項20】
前記第1のエンドポイント、前記第2のエンドポイント、および前記ノードのセットの少なくとも1つにインストールされている1つ以上のポリシーの経過時間を決定することと、
ポリシーの前記経過時間が閾値の経過時間を超えていること応じて、当該ポリシーを削除することと、
をさらに含む、請求項15から19のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2019年2月28日に出願された「SYSTEMS AND METHODS FOR ON-DEMAND FLOW-BASED POLICY ENFORCEMENT IN MULTI-CLOUD ENVIRONMENTS」と題された米国非仮特許出願第16/289,647号の利益および優先権を主張するものであり、参照によりその全体が本明細書に明示的に組み込まれる。
【0002】
本技術は、クラウドコンピューティング、より具体的にはマルチクラウドポリシー実施に関する。
【背景技術】
【0003】
インターネット対応デバイスの普及により、インターネットサービスおよびコンテンツに対する膨大な需要が生まれている。ユーザーのネットワークサービスやコンテンツへの依存度が高まるコネクテッド社会になってきている。このインターネット接続革命は、サービスコンテンツプロバイダに重大な課題をもたらしており、サービスコンテンツプロバイダは、しばしば、ユーザーのパフォーマンスの期待を下回ることなく大量のユーザー要求を処理するのに困難を抱えている。例えば、クラウドプロバイダ(例えばパブリッククラウドなど)は通常、ユーザーからのネットワークとコンテンツの要求に対応するために、大規模で複雑なデータセンターを必要とする。これらのデータセンターには通常、特定のサービスをホストするように構成されたサーバーファームが備えられており、これにはデータセンタートラフィックをルーティングし、多くのポリシーを実施するようにプログラミングされた多数のスイッチとルーターが含まれる。多くの場合、特定のデータセンターにより数百万のトラフィックフローと多数のセキュリティ要件を実施することが期待される。
【0004】
これらのパブリッククラウドは、マルチクラウド環境で構成できる(例えば、複数のパブリッククラウドが相互に通信する)。これらのマルチクラウド環境では、ポリシールールの規模に問題がある可能性がある。この問題は、パブリッククラウド(例えば、Amazon Web Services(AWS)、Microsoft Azureなど)と大規模なポリシー環境(例えば、Ciscoのアプリケーションポリシーインフラストラクチャ)を統合すると、指数関数的に悪化する。その結果、クラウド環境間での異なるポリシーモデルと構成の制限により、マルチクラウド実装のポリシーのスケーラビリティと均一性が大幅に制限される可能性がある。例えば、アマゾンウェブサービス(AWS)環境では、仮想マシン(VM)ネットワークインタフェースカード(NIC)に適用できるポリシールールの数は、両方向(例えば、出力、入力)で300ルールに制限されている。これは、特にAWSのVMが外部エンドポイントと通信する必要がある場合(例えば、MicrosoftのAzureパブリッククラウドなどの別のクラウド環境またはデータセンターのVM、アプリケーション中心のインフラストラクチャ(ACI)ファブリックのエンドポイントなど)に非常に制限される可能性がある。
【0005】
マルチクラウドの実装で直面するもう1つの課題は、パブリッククラウドで実行されているコンテナを実行する場合である。パブリッククラウド(例えば、AWS、Azureなど)でネイティブに利用可能またはサポートされているポリシールールの数は、一般にパブリッククラウド内のコンテナの操作を処理するには不十分であるため、粒度のない粗いポリシールールが適用される。さらに、よりきめ細かいポリシールールがパブリッククラウドに適用されると、パブリッククラウドのリソースがすぐに過負荷になり、そのようなコンテナでサポートされるセキュリティおよびトラフィックセグメンテーション機能が大幅に制限される可能性がある。
【図面の簡単な説明】
【0006】
本開示の上記および他の利点および特徴を得ることができる様式を説明するために、添付の図面に示されるその特定の実施形態を参照することにより、上記で簡単に説明した原理のより具体的な説明を行う。これらの図面が本開示の例示的な実施形態のみを描写し、したがって、その範囲を限定すると見なされるべきではないことを理解して、本明細書の原理は、以下の添付の図面を使用することにより、追加の特定事項および詳細とともに記載および説明される。
【0007】
図1】いくつかの例による、複数のパブリッククラウドを含むマルチクラウドファブリックにおけるポリシー分割のアーキテクチャの例を示す。
【0008】
図2】いくつかの例による、パブリッククラウドのランタイムテーブル容量を決定するポリシー分割の例を示す。
【0009】
図3A-3B】いくつかの例による、図1に示される例示的なアーキテクチャで構成された異なるパブリッククラウド上のエンドポイント間のフローに適用される分割ルールを示す。
【0010】
図4】いくつかの例による、マルチクラウドファブリックにおけるポリシー分割の方法の例を示す。
【0011】
図5】いくつかの例によるネットワークデバイスの例を示す。
【0012】
図6】いくつかの例による例示的なコンピューティングデバイスアーキテクチャの例を示す。
【発明を実施するための形態】
【0013】
本開示の様々な実施形態について、以下で詳細に考察する。特定の実装形態について考察するが、これは例証のみを目的として行われることを理解されたい。関連技術の当業者は、本開示の趣旨および範囲から離れることなく、他の構成要素および構成を使用することができることを認識するであろう。
【0014】
概要
本開示の追加の特徴および利点は、以下の説明に記載され、一部は説明から明らかであるか、または本明細書に開示された原理の実践によって学ぶことができる。本開示の特徴および利点は、添付の特許請求の範囲で特に指摘されている機器および組み合わせによって実現および取得することができる。本開示のこれらおよび他の特徴は、以下の説明および添付の特許請求の範囲からより完全に明らかになるか、または本明細書に記載の原理の実践によって学ぶことができる。
【0015】
本明細書に開示されるのは、マルチクラウド環境におけるオンデマンドのフローベースのポリシーの実施、分割、および統合のためのシステム、方法、および非一時的なコンピュータ可読媒体である。いくつかの例では、システム、方法、およびコンピュータ可読媒体は、フローのパスに沿ってノード間でフローのルールとセキュリティポリシーを分散できる。少なくとも一部のノードには、1つ以上のルーティングドメイン、仮想プライベートクラウド、および/またはマルチクラウド環境のネットワークファブリック上のエンドポイントとルーター(「ポリシーエージェント」として機能できる)を含めることができる。いくつかの例では、マルチクラウド環境のルーターと仮想プライベートクラウドは、ハブアンドスポークトポロジで構成でき、マルチクラウド環境に関連付けられた1つ以上のクラウドまたはファブリックでホストできる。1つまたは複数のクラウドまたはファブリックは、例えば、パブリッククラウド、プライベートクラウド、オンプレミスサイトなどを含むことができ、マルチクラウド環境は、パブリックおよび/またはプライベートクラウドなどの複数のクラウドおよび/またはファブリックに拡張することができる。
【0016】
第1のクラウド環境の第1のエンドポイント(例えば、仮想マシン、サーバー、コンテナ、ネットワークインタフェース、コンピューティングデバイスなど)から第2のクラウド環境の第2のエンドポイントまでのパスを発見することと、前記パス内のノードのサブセットに関連付けられたランタイムポリシーテーブル容量を決定することと、前記ランタイムポリシーテーブルの容量に基づいて前記第1のエンドポイントから前記第2のエンドポイントへのトラフィックに対するポリシーの実施(例えば、ポリシーの分散と実施)を決定することと、前記パス内のノードのセット全体にポリシーを展開することと、前記第1のクラウド環境の前記第1のエンドポイントと前記第2のクラウド環境の前記第2のエンドポイントとの間で送信されるデータに前記ポリシーを適用(例えば、実施)することと、を含むことができる、ポリシーの展開および実施のためのシステム、方法、および非一時的なコンピュータ可読媒体がさらに開示される。場合によっては、前記パスの発見は、前記パスに沿った複数のノードを決定することを含み得る。ノードには、例えば、ルーター(例えば、仮想ルーター、物理ルーターなど)、スイッチ、エンドポイント(例えば、仮想マシン、コンテナ、サーバー、ネットワークインタフェースなど)、および/またはパスに沿ったネットワーキング機能を備えているその他のデバイスや要素を含めることができる。
【0017】
場合によっては、ノードのポリシーテーブル容量に対してランタイムチェックを実行することにより、ポリシーテーブル容量を決定できる。さらに、いくつかの例では、ポリシーの実施および展開ポリシーの決定は、ランタイムチェックに基づくことができ、複数のノードからノードを決定して1つ以上のポリシーをインストールし、エンドポイントにつながるパスでルーティングテーブルに対して第2のエンドポイントの宛先アドレスを実行し、宛先アドレス、エンドポイントへのパス、および/またはエンドポイントに関連付けられた最も広いサブネットを決定することを含めることができる。場合によっては、ポリシーのインストールに、第1のエンドポイントと第2のエンドポイントとの間のトラフィックに関連付けられた最も広いサブネットにポリシーを関連付けることが含まれる場合がある。パスに沿ったノードに展開されるポリシーには、1つ以上のポートについての第1のエンドポイントから第2のエンドポイントへの通信を許可する1つ以上のフィルタを含めることができる。ポリシーおよび/またはフィルタは、第1のエンドポイントグループ(EPG)および/または第1のエンドポイントに関連付けられた他のポリシー構成、および/または第2のEPGおよび/または第2のエンドポイントに関連付けられた他のポリシー構成に対して構成されたコントラクトに関連付けることができる。
【0018】
場合によっては、ポリシーのインストールには、最も広いサブネットのトラフィックを有効にする(例えば、許可する)ポリシーのインストールが含まれる場合がある。いくつかの例では、ポリシーは、第1のエンドポイント、第2のエンドポイント、またはパス内のノードにインストールできる。場合によっては、ポリシーの分散と実施には、第1のエンドポイントにインストールされた漏斗状の実施(例えば、粗いまたは広いポリシーの実施、きめ細かいポリシーの実施、粗いポリシーからきめ細かいポリシーへの実施、またはその逆)を含めることができる。
【0019】
場合によっては、システム、方法、および非一時的なコンピュータ可読媒体は、ノードにおいて1つ以上のフィルタをインストールできる。このフィルタは、第1のエンドポイントを含む第1のエンドポイントグループと第2のエンドポイントを含む第2のエンドポイントグループとの間のコントラクトにおいて、1つ以上の指定されたポートについて第1のエンドポイントから第2のエンドポイントへのトラフィックのみを許可する。
【0020】
場合によっては、システム、方法、および非一時的なコンピュータ可読媒体は、第1のエンドポイント、第2のエンドポイント、および/または1つまたは複数のノードにインストールされた1つまたは複数のポリシーの経過時間を決定することができる。ポリシーの経過時間が閾値の経過時間を超えていることに応じて、そのポリシーを削除する。
【0021】
例示的な実施形態の説明
開示された技術は、マルチクラウド環境での柔軟なポリシーの実施とポリシーの統合に対する当技術分野のニーズに対応している。本明細書で説明する手法は、異なるクラウドまたはデータセンター環境全体でポリシールールを統合し、マルチクラウド環境で特定のクラウドプロバイダによって課される特定のポリシー制限にもかかわらず、異なるクラウドまたはデータセンター環境全体でのポリシーの分割または分散をサポートできる。例えば、本明細書の手法は、クラウドおよびネットワーク環境のいずれかによって設定されたアクティブなルール制限に関係なく、複数のクラウドおよびネットワーク環境にわたるトラフィックのフローのポリシーを展開および/または実施できる。したがって、本明細書の手法は、マルチクラウド環境のマルチクラウドおよびネットワーク環境全体で、ポリシーのスケーラビリティ、均一性、柔軟性、および粒度を向上させることができる。
【0022】
場合によっては、本明細書の手法は、トラフィックのフローに基づいて、オンデマンドでそのようなポリシーを展開および/または実施することができる。例えば、本明細書の手法は、パケットヘッダーおよび/またはパケット情報(例えば、パケットに関連付けられた送信元アドレス、パケットに関連付けられた宛先アドレス、パケットに関連付けられたプロトコル、パケットに関連付けられた送信元ポート、パケットに関連付けられた宛先ポートなど)に基づいてポリシーを動的に展開および/または実施することができる。このように、本明細書の手法は、同様に、ポリシーと実施のスケーラビリティ、柔軟性、粒度、効率、均一性などを改善し、クラウド間の統合を改善することができる。
【0023】
本技術は、以下の開示において以下のように説明される。マルチクラウド環境でのポリシーの分割、分散、および実施の概要から説明する。さらに、図1から図3に示されるように、マルチクラウド環境におけるポリシー分割、分散、および統合のためのアーキテクチャの例の説明に続く。その後、図4に示されるような、マルチクラウド環境におけるポリシー分割、分散、および統合のための例示的な方法を説明する。最後に、図5に示されるようなネットワークデバイスの例と、図6に示されるような、ネットワーキングおよびコンピューティング操作を実施するのに好適なハードウェア構成要素の例を含む、コンピューティングデバイスアーキテクチャの例を説明する。ここで、マルチクラウド環境でのポリシーの分割と管理の概要について説明する。
【0024】
マルチクラウド環境には、Ciscoのアプリケーションセントリックインフラストラクチャ(ACI)、CiscoのACIエニウェアソリューション、AWS仮想プライベートクラウド、Azurre仮想ネットワーク(VNET)など、複数のクラウド、プライベートネットワーク、ファブリック、および/またはデータセンターを含めることができる。さらに、マルチ環境は、1つ以上のクラウドサイトおよび/またはオンプレミスデータセンターなど、複数のネットワーククラウド、ファブリック、および/またはデータセンターのワークロードのネットワーク、セキュリティ、およびサービスを管理できる。マルチクラウド環境では、エンドポイントおよび/またはエンドポイントに関連付けられたポリシーをエンドポイントのグループまたはコレクションにグループ化したり、さらに/あるいはエンドポイントおよび/またはエンドポイントに関連付けられたポリシーをエンドポイントグループ(EPG)、セキュリティグループ(SG)などのポリシー構造に関連付けたり、対応するグループまたはエンドポイントのコレクション(EPG、SGなど)および/またはポリシー構造にポリシールールまたはコントラクトを適用したりすることができる。
【0025】
EPGやSGなどのグループまたはポリシー構成には、複数のクラウド、ファブリック、および/またはオンプレミスデータセンターのエンドポイントを含めることができる。このようなグループまたはポリシー構造を使用して、パブリッククラウド、オンプレミスデータセンター、および/またはネットワークファブリックから1つ以上の異なるパブリッククラウド、オンプレミスデータセンター、および/またはネットワークファブリックへのトラフィックを含む、マルチクラウド環境全体のエンドポイントからのトラフィックにポリシールールまたはコントラクトを実施できる。ポリシールールおよびネットワーク構成は、1つ以上のクラウドコントローラなど(例えば、Ciscoのアプリケーションポリシーインフラストラクチャコントローラ(APIC)、マルチサイトコントローラ(MSC)、またはマルチサイトオーケストレーター(MSO)など)、マルチクラウド環境に関連付けられた1つ以上のクラウドコントローラによって管理することができる。
【0026】
前述のように、一部のパブリッククラウドのネットワーキング構成およびポリシーには、クラウドプロバイダによって課せられる様々な制限または制限がある。このような制限には、クラウドプロバイダによってサポートまたは許可されるポリシールールの数の制限が含まれる場合がある。場合によっては、そのようなポリシールールの制限は、データセンター、ファブリック、および/または1つ以上の他のサイト、クラウド、ファブリック、および/またはデータセンターによって実装されるポリシーソリューションまたはモデルによってサポートされるポリシーの規模をはるかに下回る可能性がある。例えば、CiscoのACIは数十万のポリシールールをサポートし、これには、12.8万のコントラクトルール、6.4万のIPアドレス、リーフスイッチあたり0.4万のEPGが含まれるが、AmazonのAWSにはエンドポイントあたり300のポリシールールの制限がある。
【0027】
したがって、複数のパブリッククラウド環境がマルチクラウド環境に統合されている場合、さらに/あるいはCiscoのACIソリューションがAWSなどの1つ以上のパブリッククラウドソリューションと統合されている場合、パブリッククラウドの制限により、マルチクラウド環境全体のポリシーのスケーラビリティを低下させ、そのパブリッククラウドに関連付けられたトラフィックについて展開および/または実施できるポリシーの量を、マルチクラウド環境内の他のネットワーク環境および/またはルーティングドメイン(例えば、データセンター、ファブリック、パブリッククラウド、仮想プライベートネットワーク、オンプレミスサイトなど)によって実装および/またはサポートされるポリシーの量よりも大幅に少なくする可能性がある。これにより、セキュリティの脆弱性と制限が発生し、トラフィックフローおよび/または通信が中断され、マルチクラウド環境でのトラフィック実施の柔軟性、粒度、およびスケーラビリティが低下する可能性がある。さらに、様々なクラウドプロバイダおよびデータセンターやファブリックソリューションが異なるポリシーモデルを実装することもよくある。異なるポリシーモデルは、マルチクラウド環境で一貫性のないポリシーモデルをもたらす可能性があり、マルチクラウド環境でのポリシーの統合と均一性を制限または防止する可能性がある。
【0028】
いくつかの例では、クラウド上のポリシールールを宛先エンドポイントとレイヤ4(L4)ポートに適用できる。宛先エンドポイントは、グループ(例えば、EPG、SGなど)またはアドレス(例えば、IPアドレスやプレフィックス)によって参照、割り当て、および/または分類できる。エンドポイントのグループ化はポリシールールのスケーリングに有用だが、そのようなポリシールールは、多くの場合、異なるネットワーク環境(例えば、データセンター、ファブリック、クラウド環境など)にあるエンドポイントに適用できない。さらに、マルチクラウド環境の一部のクラウドプロバイダおよびデータセンターまたはファブリックソリューションが異なるポリシーモデルおよび/または構成を実装する場合があることを考えると、異なるネットワーク環境(例えば、異なるファブリック、データセンター、クラウド、仮想プライベートネットワーク、ルーティングドメイン、仮想ルーティングおよび転送(VRF)インスタンス、ルーティングドメインなど)に存在するエンドポイントは、同じグループおよび/またはグループのタイプ(例えば、同じEPG)に割り当てたり、グループ化したりすることができない場合があり、このこともポリシーのスケーラビリティ、統合、粒度、柔軟性、および均一性の制限となり得る。
【0029】
さらに、クラウドホストインスタンスが複数のアプリケーションを実行している場合、クラウドプロバイダによって課せられたポリシールールの制限にすぐに達する可能性がある。例えば、マルチクラウド環境にAWSクラウド上の仮想プライベートネットワーク(VPC)が含まれ、AWSクラウド上のクラウドホストで実行されている5つのコンテナがあり、5つのコンテナがポートマップされているとする。ネットワークオペレーターが各コンテナとポートに関連付けられたトラフィックのポリシーを実装する場合、これらのポリシーはAWSの300ルール制限にすぐに近づく。説明のために、この例では、ホストと通信するわずか25の外部エンドポイントまたはIP(25 IP×5 TCP(伝送制御プロトコル)ポート×2方向)のポリシーを実装すると、AWSの300ルール制限にすぐに到達または近づく。プレフィックスベースのルールがあると、このスケール制限には有用であるが、グループポリシーを個々のIPアドレス(例えば、/32 IP)に適用する必要がある場合、このようなポリシー制限は厳しくなる。ただし、場合によっては、マイクロセグメンテーションをサポートしたり、ラベルベースのグループ化を計算したりするために/32 IPアドレスが必要になることがある。この場合、IPサブネットとポリシーとは本質的に分離されている。
【0030】
さらに、マルチクラウド相互接続の場合、1つ以上のパブリッククラウドがレイヤ2(L2)ストレッチを提供またはサポートしない場合がある。マルチクラウド環境(またはルーティングドメインが異なる任意のネットワーク環境)では、これは、ポリシールールをレイヤ3(L3)構造に適用する必要があることを意味し、これは、前述のように、クラウドプロバイダのリソーススケール制限によって大幅に制限される。また、クラウドプロバイダは、多くの場合、そのクラウド上のルーティングドメイン(例えば、仮想プライベートクラウドやネットワーク)で使用できるネットワークアドレスの量を制限し、そのクラウドに関連付けられたトラフィックについてのマルチクラウド環境でのポリシーおよびルーティングスケールをさらに制限できる。
【0031】
特定のパブリッククラウドおよび/またはファブリックまたはデータセンターソリューションによって課せられるスケール制限を克服するために、本明細書の手法は、マルチクラウド環境のノード全体にポリシーを分割および分散し、AWSやAzurreセキュリティグループなどのクラウドネイティブ構造に制限されることなく、アドホックまたはオンデマンドベースで特定のフローにポリシーを適用できる。ポリシーは、エンドポイント、ルーター(例えば、CiscoのCSR 1000vなどのクラウドサービスルーター(CSR))、またはルーターなどのネットワークデバイスで実行されているポリシーエンジンまたはエージェント(ソフトウェアまたはVMベースのポリシーエージェントであり得る)に実装できる。本明細書で使用される、ルール、ポリシー、およびコントラクトは、互換的に使用できる。
【0032】
図1は、マルチクラウドファブリックにおけるオンデマンドのフローベースのポリシーの実施、スケーリング、および統合のためのアーキテクチャ100の例を示す。アーキテクチャ100は、第1のパブリッククラウド102(例えば、サイトA)および第2のパブリッククラウド104(例えば、サイトB)を含むことができる。各パブリッククラウド(例えば、102、104など)は、相互接続されたプライベートネットワーク106、108、110A、110B、110C、112A、112B、112Cなどを有するか、またはホストすることができる。
【0033】
アーキテクチャ100は、パブリッククラウド102、104上のクラウドコントローラ116、118(例えば、クラウドAPIC)およびオンプレミスサイト144(例えば、ACIファブリック)上のコントローラ146(例えば、APIC)と通信するマルチサイトコントローラ114(例えば、マルチサイトAPIC)を含むことができる。マルチサイトコントローラ114(「MSC」)は、クラウドコントローラ116、118およびコントローラ146と連携して、パブリッククラウド102、104およびオンプレミスサイト144上のポリシーおよび構成を管理および実装する。マルチサイトコントローラ114は、例えば、プライベートネットワーク、プライベートクラウド、プライベートデータセンター、プライベートネットワークファブリックなどを含み得るオンプレミスサイト144とともに、パブリッククラウド102、104の両方に、同じポリシーモデルを実装できる。例えば、マルチサイトコントローラ114は、パブリッククラウド102、104およびオンプレミスサイト144に、EPGおよび/またはEPGポリシーを実装することができる。そのようなポリシーは、マルチサイトコントローラ114によって、パブリッククラウド102、104内のクラウドコントローラ116、118、およびオンプレミスサイト144内のコントローラ146と調整することができる。
【0034】
オンプレミスサイト144は、オンプレミスサイト144によって使用されるデータセンターまたはファブリックソリューションに基づくポリシーモデルを実装することができる。例えば、場合によっては、オンプレミスサイト144は、CiscoのACIを実装して、オンプレミスサイト144のトラフィックとエンドポイントに異なるポリシーを設定、管理、および適用できる。いくつかの例では、オンプレミスサイト144は、オンプレミスサイト144内の特定のエンドポイントおよび/またはトラフィックにEPGを適用することができる。場合によっては、EPGは、オンプレミスサイト144、マルチサイトコントローラ114、およびコントローラ116、118、146によって実装される構成であり、特定のルールを特定のトラフィックまたはエンドポイントに適用できる。EPGは、関連するトラフィックやエンドポイントのための仮想ファイアウォール、フィルタ、および/またはポリシーグループとして機能することができる。場合によっては、オンプレミスサイト144は、仮想ルーティングおよび転送(VRF)インスタンスなどのプライベートネットワークをホストして、ネットワークおよび/またはトラフィックの分離を提供することができる。プライベートネットワーク(例えば、VRF)は、それぞれのエンドポイントとアプリケーションを多数ホストでき、これらに特定のポリシーおよびアドレス情報を割り当てることができる。場合によっては、EPGは、関連付けられたトラフィックを許可するために定義された許可または認可ルールをサポートするホワイトリストモデルに従うことができる。
【0035】
各パブリッククラウド(例えば、102、104)は、異なるポリシーモデルをネイティブに実装する場合もあり、マルチサイトコントローラ114、クラウドコントローラ116、118、コントローラ146、および/またはオンプレミスサイト144によってサポートまたは実装されるものとは異なる独自の要件セット(例えば、ポリシー要件、スケーラビリティ要件など)を持つ場合がある。パブリッククラウド102、104のポリシーモデルおよび要件は、クラウドプロバイダに依存する可能性がある。例えば、AWSはセキュリティグループを実装し、300ルールの制限を課す場合がある。以下でさらに説明するように、本明細書の手法は、一貫したポリシーモデルを適用し、例としてのアーキテクチャ100の実装全体のスケーラビリティを向上させるため、パブリッククラウドによって課されるポリシーモデルおよび要件を、マルチサイトコントローラ114、クラウドコントローラ116、118、コントローラ146、および/またはオンプレミスサイト144に関連するものと統合およびスケーリングすることができる。
【0036】
パブリッククラウドは、パブリッククラウド上でホストされるプライベートルーティングドメインまたはネットワーク(例えば、仮想プライベートクラウド(VPC)、仮想ネットワーク(VNET)など)を表す、プライベートネットワーク106、108、110A~C、112A~Cを含むことができる。プライベートネットワークは、オンプレミスサイト144などの他のクラウドまたはネットワークで使用するために、パブリッククラウド上でアプリケーションおよびリソースをホストできる。場合によっては、プライベートネットワークは、オンプレミスサイト144内の仮想ルーティングおよび転送(VRF)インスタンスを表す、対応する、または変換することができる。
【0037】
パブリッククラウド102、104上のプライベートネットワーク110A~C、112A~Cは、プライベートネットワーク106、108を介して(例えば、互いに、他のパブリッククラウドに、オンプレミスサイト144などに)相互接続することができる。この例では、プライベートネットワーク106、110A~Cは、ハブアンドスポークトポロジで構成され、プライベートネットワーク106はハブとして機能し、プライベートネットワーク110A~Cはスポークとして機能する。他の相互接続およびトポロジも可能であり、本明細書で企図されている。
【0038】
プライベートネットワーク110A~C、112A~Cは、プライベートネットワーク110A~C、112A~Cをそれぞれプライベートネットワーク106、108と相互接続し、トラフィックをプライベートネットワーク110A~C、112A~Cに出入りさせるそれぞれの仮想ゲートウェイ128A~C、130A~Cを含むことができる。場合によっては、仮想ゲートウェイ128A~C、130A~Cは、例えば、パブリッククラウド上、より具体的には、WANまたはネットワークゲートウェイサービスなどそれぞれのネットワークサービスを実行するプライベートネットワーク110A~C、112A~Cのそれぞれに展開されるVMであり得る。他の例では、仮想ゲートウェイ128A~C、130A~Cは、クラウドサービスルーター(CSR)または任意の他のタイプのルーティングデバイスまたは構成要素である可能性がある。プライベートネットワーク110A~C、112A~Cはまた、プライベートネットワーク106、108など、それぞれのプライベートネットワーク110A~C、112A~Cの外部のデバイスおよびアプリケーションと通信するために、それぞれの仮想ゲートウェイ128A~C、130A~Cに接続するそれぞれのエンドポイント132~142をホストすることができる。プライベートネットワーク110A~C、112A~Cのそれぞれは、任意の数のエンドポイントをホストすることができ、特定のプライベートネットワーク上の複数のエンドポイントは、類似または異なる属性を有することができる。
【0039】
この例では、プライベートネットワーク110A上のエンドポイント(EP)132は、セキュリティグループ120Aに関連付けられている(他のEPは、図示されていない1つまたは複数の他のセキュリティグループに関連付けることができる)。セキュリティグループは、そのセキュリティグループに関連付けられたトラフィックおよび/またはエンドポイントに特定のルールを適用できるようにするパブリッククラウド102、104によって実装されるセキュリティ構造にすることができる。場合によっては、セキュリティグループは、関連するトラフィックやエンドポイントのための仮想ファイアウォール、フィルタ、および/またはポリシーグループとして機能できる。場合によっては、エンドポイント132~142および/またはセキュリティグループ120A~C、122A~Cは、関連付けられたトラフィックを許可するために定義された許可または認可ルールをサポートするホワイトリストモデルに従うことができる。
【0040】
プライベートネットワーク106、108(例えば、ハブ)は、1つまたは複数のルーター124A~C、126A~Cを含むことができる。ルーター124A~C、126A~Cは、例えば、クラウドサービスルーター(CRS)であり得、ポリシーを格納および実施して本明細書に記載される他の機能を実行するように構成されたポリシーエージェントまたはエンジンを実装することができる。ルーター124A~C、126A~Cは、プライベートネットワーク110A~C、112A~C上の仮想ゲートウェイ128A~C、130A~Cに(直接的または間接的に)接続して、プライベートネットワーク106、108とそれぞれプライベートネットワーク110A~C、122A~Cとの間のトラフィックをルーティングすることができる。ルーター124A~C、126A~Cのそれぞれは、仮想ゲートウェイ128A~C、130A~Cのそれぞれへのルートを持つことができ、したがって、それぞれ、仮想ゲートウェイ128A~C、130A~Cと通信することができる。しかしながら、場合によっては、ルーター124A~C、126A~Cのそれぞれは、スケーラビリティを向上させるために特定のルーターがどの仮想ゲートウェイにサービスを提供するか(例えば、通信する、トラフィックをルーティングするなど)を制限するために、仮想ゲートウェイ128A~C、130A~Cのサブセットにルートマップをアドバタイズすることのみができる。
【0041】
場合によっては、ルーターはパブリッククラウドのVMに展開された仮想ルーターである可能性がある。さらに、ルーターには、以下でさらに説明するように、クラウドネイティブオブジェクトまたはセキュリティグループなどの構造に必ずしも依存することなく、また、パブリッククラウドに関連付けられたクラウドプロバイダによって課される特定の要件または制限によって制限されることなく、ルーターがプライベートネットワーク(106、108、110A~C、112A~Cなど)に関連付けられたトラフィックにポリシーを適用できるようにするポリシーエンジンまたはソフトウェアを含めることができる。場合によっては、ルーターに、特定のトラフィックおよび/またはアドレス(例えば、IPアドレスやプレフィックス)に特定のポリシーを適用するように構成されたソフトウェアまたはVMベースのポリシーエンジンを含めることができる。したがって、ルーターは、ルーター兼ポリシーエージェントとしても機能する。
【0042】
ルーター124A~C、126A~Cは、複数の要因に基づいて柔軟にまたは動的にスケーラブルであるように構成することができる。例えば、ルーターは、個々のクラウドエンドポイント(EP132~142など)またはエンドポイントのグループのポリシースケールおよび帯域幅要件に基づいて、柔軟にスケーラブルにすることができる。別の例として、ルーターは、ルーティングドメイン(例えば、VRF、VPC、VNETなど)、ルーターの帯域幅の可用性などによってスケーリングできる。
【0043】
多くの場合、パブリッククラウドではランタイムポリシーの数を制限できる。例えば、パブリッククラウドAWSには300ポリシーの制限がある。つまり、パブリックAWSクラウドには、同時にアクティブにできるポリシーの数に設定された制限がある。これらの制限は、あるパブリッククラウドのエンドポイント(例えば、仮想マシン)が別のパブリッククラウド(またはプライベートクラウド)および/またはオンプレミスサイトの外部エンドポイント(例えば、仮想マシン)と通信する必要がある場合、非常に制限される可能性がある。いくつかの例では、これらの制限に対抗するために、ポリシールールを、図1図3に示すように、異なるネットワーク(例えば、パブリッククラウド102、パブリッククラウド104、オンプレミスサイト144など)上のエンドポイント間のパス内のノード間で分割できる。
【0044】
図1に示されるように、第1のパブリッククラウド102内のエンドポイント(例えば、132~136)が、第2のパブリッククラウド104内のエンドポイント(例えば、138~142)(および/またはオンプレミスサイト144内のエンドポイント)と通信したい場合、パブリッククラウド(および/またはオンプレミスサイト144)間のパス140を最初に発見することができる。いくつかの例では、パス140は、オンデマンドで、またはフローに基づいて(例えば、パケットヘッダーに基づいて)動的にフローについて発見され得、本明細書に記載されているように、ポリシールールおよびフローの実施を分割する場所および/または方法を決定するために使用され得る。パス140は、パブリッククラウドおよび/またはオンプレミスサイト144内の1つまたは複数のノード、例えば、ルーター124A~C、126A~Cの一部での出力エンドポイント(例えば、仮想マシン132)および入力エンドポイント(例えば、138)を含むことができる。パス140は、一般に、ネットワーク150(例えば、インターネット、トンネルなど)を通過する。いくつかの例では、出力エンドポイントから入力エンドポイントまで複数のノードが存在する可能性がある。
【0045】
図2は、マルチサイトファブリック(例えば、100)におけるポリシー分割およびランタイムポリシーテーブル容量を決定するための実装200の例を示す。説明を簡単にするために、これに限定されるものではないが、図2は、(図1に示されるように)発見されたパス140のノード(例えば、124A、126A)とともに、出口エンドポイント132および入口エンドポイント138の例を示す。パス140が決定されると、対応するノードとともに、そのノードについてのランタイムポリシーテーブル容量を決定することができる。ランタイムポリシーテーブルの容量は、ノードがポリシーをアクティブ化または実装するために必要な容量である(例えば、アクティブなポリシー、ポリシーを格納または実装するためのノードの容量、新しいポリシーまたは未割り当てのポリシーなどに基づく)。
【0046】
この例では、EP132は、そのランタイムポリシーテーブルの容量をコントローラ116に報告する(205)。いくつかの例では、仮想ゲートウェイ128Aは、ランタイムポリシーテーブル容量をコントローラ116に直接送信することができる。他の例では、仮想ゲートウェイ128Aは、プライベートネットワーク106(例えば、ハブ/スポークモデル)を介してランタイムポリシーテーブル容量を送信することができる。ルーター124Aは、ランタイムポリシーテーブル容量をコントローラ116に直接報告することができる(210)。EP138は、そのランタイムポリシーテーブル容量をコントローラ118に報告する(215)。いくつかの例では、仮想ゲートウェイ130Aは、ランタイムポリシーテーブル容量をコントローラ118に直接送信することができる。他の例では、仮想ゲートウェイ130Aは、プライベートネットワーク108(例えば、ハブ/スポークモデル)を介してランタイムポリシーテーブル容量を送信することができる。ルーター126Aは、ランタイムポリシーテーブル容量をコントローラ118に直接報告することができる(220)。
【0047】
パス140内のノードからランタイムポリシーテーブル容量を受信することに応答して、コントローラ116、118は、ランタイムポリシーテーブル容量をMSC114に送信することができる。場合によっては、ランタイムポリシーテーブル容量を定期的にMSCに送信できる。次に、MSC114は、EP132からEP138へのトラフィックのためのポリシールールをインストールまたは実装する能力を有するパス140内のノードを決定することができる。例えば、EP132と138の間に設定されたポリシーには、EP132に関連付けられたエンドポイントグループとEP138に関連付けられたエンドポイントグループ間のトラフィックのルールを定義するコントラクトを含めることができる。
【0048】
受信したランタイムポリシーテーブル容量に基づいて、MSC114は、パス140内の異なるノードにわたるEP132とEP138との間のトラフィックに適用されるポリシールールを分割することができる。一例では、ルーター124A~Cは、(特定の数のポリシールールをインストールおよび/またはアクティブ化するために)異なるレベルの容量を持つことができる。MSC114は、ルーター124B、124Cがルーター124Aよりも頻繁に使用されている、さらに/あるいはルーター124Aよりも新しいポリシーのための現在または将来の容量が少ないと判断でき、ルーター124Aを介した、またはルーター124A上のEP132からEP138へのトラフィックのためのポリシールール(例えば、コントラクト)の少なくとも一部を分散またはインストールできる。ルーター124B、124Cとルーター124Aの間の容量の違いを考えると、この例では、MSC114は、ルーター124Bおよび/またはルーター124Cよりも多くのポリシーをルーター124Aにインストールまたはアクティブ化することを選択してもよいし、代わりに、ルーター124Bおよび/またはルーター124C上のポリシーはインストールもアクティブ化もせず、ルーター124Aおよびパス140上の1つまたは複数のノードにわたってその特定のフローに対するすべてのポリシーを分散させることを決定してもよい。
【0049】
図3A図3Bの環境300、350に示されるように、MSC114は、アクティブ化されるべきポリシールールをクラウドコントローラ116、118に送信することができる(335、340)。場合によっては、MSC114は、アクティブ化されるべきポリシールールをコントローラ146に送信することもできる。次に、クラウドコントローラ116は、前述のようにネットワーク構成に応じて、EP132へのパス内の選択されたノード(例えば、124A、132)に1つまたは複数のポリシールールを送信することができる(345、350)。クラウドコントローラ118は、前述のようにネットワーク構成に応じて、EP138へのパス内の選択されたノード(例えば、126A、138)に1つまたは複数のポリシールールを送信することができる(355、360)。ポリシールールは、漏斗状(例えば、きめ細かいものから粗いものへ、またはその逆)、VRFまたはプライベートネットワークベースの分散、帯域幅ベースの分散、ノード容量などの1つまたは複数の分割スキームに基づいて、プライベートネットワーク106、110A、108、112Aおよび/またはオンプレミスサイト144内の特定のノードに分散することができる。
【0050】
ポリシー分割は、特定のフローのパス上のノードのランタイムポリシーテーブル容量に基づいて実行できる。例えば、図3に示すように、図3Bに示されるように、EP132がEP138およびEP140の両方と通信している場合、EP間の共通のポリシー(例えば、セキュアシェルなど)は、ハブまたはインフラプライベートネットワーク(複数可)(例えば、106、108)に展開され得る。これは、ハブまたはインフラプライベートネットワークが、最も共通する公分母ポリシーを実装できるためである。いくつかの例では、粗いポリシーを入力プライベートネットワーク(例えば、108)にインストールでき、よりきめ細かい(例えば、デルタ)ポリシーを、さらにパスに沿って、例えば漏斗状にインストールできる。例えば、図3Aを参照すると、EP132からEP138へのトラフィック、およびプライベートネットワーク112Aに存在する、さらに/あるいはSG122Aに対応するEPGに関連付けられる追加のエンドポイント(図示せず)の場合、粗いポリシーをEPGに関連付け、EP138と追加のエンドポイントとの間のトラフィックを処理することができるプライベートネットワーク108内のルーター126Aにインストールすることができる。
【0051】
同様の例において、図3Bを参照して、EP132からEP138および140へのトラフィックについては、EP138および140がそのプライベートネットワーク108内の異なるルーター126A、126Bによってサービス提供されるため、粗いポリシーをプライベートネットワーク108内のルーター126Aおよび126Bにインストールすることができる。いくつかの例では、コース(または共通)ルールおよび/またはデルタルールをルーター126A、126Bにインストールして、フローをそれぞれEP138およびEP140に(例えば、漏斗状に)ルーティングする(および適用可能なポリシーを実施する)ことができる。他の例では、コースルールをルーター126A、126Bにインストールしてもよく、EP138および140のためのデルタルールを仮想ゲートウェイ130A、130Bおよび/またはEP138、140にインストールすることができる。いくつかの例では、粗いポリシールールは、そのルールに関連付けられた宛先エンドポイントのアドレスを含む最も広いサブネットまたはプレフィックス境界に適用可能または関連付けられたルールである可能性がある。いくつかの例では、デルタポリシールールは、より狭いサブネット(粗いポリシールールからの可能な限り広いサブネットまたはプレフィックスよりも)または個々のエンドポイントに適用可能または関連付けられ、トラフィックおよび/またはデルタポリシールールに関連付けられたエンドポイントに適用できるルールである可能性がある。
【0052】
適用される分割ポリシールールには、タイマーを関連付けることもできる。このタイマーには、分割ポリシールールをエージングおよびクリーンアップ(例えば、削除)できる閾値時間を関連付けることができる。AWSやAzureなどのパブリッククラウドにはポリシー制限があるため、新しいポリシーを有効にできるように、古いポリシールールを確実に削除することが有利である。
【0053】
本明細書に示すように、これらの手法により、エンドポイントからのパス内のノード間でポリシーを分割できるため、AWSの300ルール制限などのネイティブクラウドリソースの制限を回避できる。開示されたスキームは、エンドポイントでのルールの数への最小限の追加でこれを達成することができる一方で、パス上の他のノード(例えば、ルーター124、126、128、130)を通してより大きなスケーラビリティを提供する。
【0054】
場合によっては、ノード126A、126B、126Cのポリシールールは、プライベートネットワーク108のCIDR内のトラフィックのためのEPGルールを処理または含めることができ、EP138、140にインストールされたポリシールールには、EP138および140に関連付けられたトラフィックのためのより少ないセットのルールを含めることができる。一部のルールは、ポリシーをそれらのポリシーに関連付けられた集約ルート(例えば、最も広いプレフィックス)にマッピングするルート集約スキームに基づいて分割または分散できる。
【0055】
例示的なシステムおよび概念を説明してきたので、本開示は、次に、図4に示される例示的方法400に移る。本明細書に概説されるステップは例示であり、それらの任意の組み合わせで実装することができ、特定のステップを除外、追加、または変更する組み合わせを含む。
【0056】
ステップ405で、方法は、第1のパブリッククラウド(例えば、102)の第1のエンドポイント(例えば、仮想マシンなど)から第2のパブリッククラウド(例えば、104)の第2のエンドポイント(例えば、仮想マシンなど)までのパスを発見する。パスには、ルートに沿ったエンドポイントやルーターなど、パス間に1つ以上のノードを含めることができる。いくつかの例では、第1のクラウド(例えば、サイトA)の第1の仮想マシンが、第2のクラウド(例えば、サイトB)の第2の仮想マシンとの通信を開始できる。仮想マシン間のパスは、第1の仮想マシンから、スポーク仮想プライベートネットワーク(例えば、110)の仮想ゲートウェイ(例えば、128)およびハブ仮想プライベートネットワーク(例えば、126)のルーター(例えば、126)を介して、ハブプライベートネットワーク(例えば、126)に接続されたスポーク仮想プライベートネットワーク(例えば、112)の仮想ゲートウェイ(例えば、130)に、さらには第2のパブリッククラウド(例えば、104)の第2の仮想マシンに接続する。
【0057】
ステップ410で、発見されたパス内のノードは、それぞれのランタイムポリシーテーブル容量を提供することができる。例えば、パス内の仮想マシン、ルーターなどは、それぞれのクラウドコントローラにランタイムポリシーテーブルの容量を送信できる。例えば、ルーターは、ポリシールールをインストールまたは実装するための合計容量および/または残りの容量を、関連付けられたクラウドコントローラに送信できる。説明のために、特定のルーターは、Y個のルールの容量(例えば、300ルールの制限)に達する前にX個のルールを実装する容量を持っている場合がある。この例では、ルーターは、Y個のルールの合計容量および/またはX個のルールの残りの容量(ルーターにすでにインストールまたは実装されているものに加えて)があることを、関連付けられたクラウドコントローラに報告できる。次に、(各パブリッククラウドからの)クラウドコントローラは、各ノードのランタイムポリシーテーブルの容量をMSC114に送信できる。
【0058】
ステップ415で、パスのポリシー実施を、各ノードのランタイムポリシーテーブルの容量に基づいて分割することができる。パス内のノードのランタイムポリシーテーブルの容量を受信すると、MSC114は、第1および第2のエンドポイント(および/または関連するEPG)に関連するトラフィックのフローのためにどのノードがポリシーをインストールまたは実装すべきかを決定することができる。MSC114はまた、どのポリシーおよび/またはいくつのポリシー(もしあれば)が各ノードに展開または実装されるべきかを決定することができる。したがって、第1および第2のエンドポイントに関連付けられたフローのポリシールールは、フローのポリシールールを実装するために利用可能な容量があると判断されたノード全体に分散させることができる。さらに、ポリシーは、それらがインストールされているノードに基づいて構成できる。場合によっては、ポリシーの実施は入力または出力のいずれかである。ポリシー分割を使用する他の例では、ポリシーの実施は、上記のように、利用可能なリソースに基づいて入力パスと出力パスに分散される。
【0059】
分割ポリシールールの各展開中に必ずしも実行されるとは限らないオプションのステップ420では、ポリシーをエージングし、クリーンアップすることができる。例えば、ポリシールールの閾値期間(例えば、5分など)がアクティブ化された後、ポリシールールをノードから削除できる。他の例では、ポリシールールは、使用中または非アクティブのポリシーの閾値期間の後に削除できる。
【0060】
方法400のいくつかの実装形態では、MSC114は、エンドポイントを特定のEPGにマッピング(および/または分類)するためのポリシーまたはロジックを管理し、対応するルールを管理して、例えば、他のEPGおよび外部エンドポイントへの通信を制限することができる。例えば、VMまたは関連するネットワークインタフェースなどのエンドポイントがアクティブになるか、またはパブリッククラウド102に展開されると、パブリッククラウド102上のコントローラ116は、VMを検出し、それを1つまたは複数のEPGに関連付けることができる。場合によっては、ルールをVMにプッシュする代わりに、コントローラ116は、VM上のインタフェースのフローロギングを有効にすることができる。
【0061】
VMが別のVMへのフローを開始すると、コントローラ116は、本明細書で説明されるオンデマンドのフローベースのポリシー分割および実施をトリガーする。トリガーには、フローの宛先アドレスを含むフローの詳細を含めることができる。コントローラ116は、コントローラ116に関連付けられたクラウドサイト(例えば、102)内の宛先VMを検索することができ、宛先VMを見つけると、コントローラ116は、宛先VMに関連付けられた1つまたは複数のEPGに対応するセキュリティグループ(例えば、120)をフェッチすることができる。宛先VMがクラウドサイトにない場合、コントローラ116は、MSC114を階層的に検索し、これは、マルチクラウド環境内の他のコントローラ(例えば、118、146)に要求を中継することができる。エンドポイントが他のサイトのいずれかのEPGの背後にある場合、コントローラは対応するEPGをフェッチできる。次に、コントローラは、起点と宛先のエンドポイントに関連付けられたEPG間のコントラクトルールを検索し、EPGに関連付けられたルールに基づいてエンドポイントのルールを作成する。
【0062】
場合によっては、コントローラは、起点と宛先のエンドポイントに関連付けられたフローのエージングキャッシュを作成し、フローログ情報に基づいてそれを更新できる。キャッシュがエージングする、さらに/あるいはエージング閾値に達すると、コントローラは、ルールがインストールされているノードからそのルールを削除できる。
【0063】
いくつかの実装形態では、方法400は、フローにラベルを割り当て、エンドポイント間のフローに基づいて、ルートおよび/またはEPGを集約することができる。例えば、ラベルを各コンシューマー/プロバイダフローに割り当てることができる。コントローラ(例えば、114、116、118、146)は、ラベルとラベルごとに割り当てられたルールをチェックし、ラベル全体で共通のルールと特定のルールを見つけることができる。コントローラは、共通のルールを集約ラベルおよび/またはルールに抽出し、集約ラベルおよび特定のラベルに基づいて、およびここで説明するポリシー配置手法に基づいてルールを実施できる。
【0064】
例えば、コントローラは、特定のルールをアウトバウンドルールとしての入力エンドポイントとインバウンドルールとしての出力エンドポイントに分割し、ハブまたはインフラプライベートネットワーク106、108のルーター124、126などの中間ノードまたはトランジットノードに共通のルールをオフロードできる。集約ラベルは、関連するポリシーグループ(例えば、EPG)をフェッチするために、ルーターのルックアップで実施できる。場合によっては、ルーターのアドレス(例えば、IP)からSGT(セキュリティグループタグ)へのマッピングに基づいてルックアップを行うことができる。他の例では、パケットヘッダーの詳細に基づくルックアップなど、他のタイプのルックアップを実装できる。ルックアップは、特定のフローおよび/または通信エンドポイントに対応するオンプレミスサイト144内のEPGを特定することができる。場合によっては、トンネリングヘッダー(例えば、i-VxLAN、VxLAN-GPO)がサポートしている場合、グループおよび/またはトラフィックラベル(例えば、EPGラベル、フローラベル)をパケットフレームで送信できる。場合によっては、パケット内のEPGラベルは、EPG分類および/またはフローのパスに共通のルールを持つ同様のEPGのグループ化の関数になる可能性がある。
【0065】
いくつかの実装形態では、ポリシーは、フローに関連付けられた(例えば、送信元アドレス、宛先アドレスなどに関連付けられた)一連のルールの統合に基づいて、関連付けられたフローのパス内の特定のノード(複数可)にグループ化でき、リソースを節約する。例えば、DNS(ダイナミックネーミングシステム)などの共有サービスを利用するために、異なるサイトに複数のエンドポイントを持つことができるDNS EPGからのコントラクトを利用する多くのEPGが存在する場合がある。この例では、DNS EPGをパス内の1つ以上のクラウドルーターに固定し、他のすべてのEPGに1セットのルールを通過させてDNS EPGと通信させる方が効率的である。ルーティングは、DNS EPGエンドポイントへのトラフィックが最終的に終了するか、パス上の特定のノードを介してルーティングされるように操作できる。同様に、特定のポート(例えば、TCPポート)の1つのルーティングドメイン(例えば、VRF、VPC)内で任意のEPGが他の任意のEPGと通信できることを指定するルールなど、スコープ全体のルールがある場合、このスコープルールは、1つ以上のノードにおいて統合できる。
【0066】
方法400を第1のパブリッククラウドと第2のパブリッククラウドとの間の通信(および関連するポリシーの実施)に関して説明してきたが、方法400(および/または方法400の任意のステップ)は、マルチファブリックまたはマルチクラウド環境(例えば、100)の任意のタイプのクラウド、データセンター、ファブリック、および/またはネットワーク間の通信(および関連するポリシーの実施)にも同様に適用できることを理解されたい。例えば、方法400(および/または方法400の任意のステップ)は、オンプレミスサイト(例えば、144)と1つまたは複数のパブリッククラウド(例えば、102、104)の間、または任意の数のクラウド(プライベートおよび/またはパブリック)、オンプレミスサイト、ファブリック、データセンターなどの間の通信(および関連するポリシーの実施)にも同様に適用可能である。方法400で説明されている第1のパブリッククラウドと第2のパブリッククラウドは、説明の目的で、非限定的な例として提供される。
【0067】
次に本開示は、スイッチ、ルーター、クライアントデバイスなどのネットワークデバイスおよびコンピューティングデバイスの例を示す図5および図6に移る。
【0068】
図5は、ポリシー分割および実施の操作、ならびにスイッチング、ルーティング、および他のネットワーク操作を実装するのに適した例示的なネットワークデバイス500を示している。ネットワークデバイス500は、中央処理装置(CPU)504、インタフェース502、および接続部510(例えば、PCIバス)を含む。適切なソフトウェアまたはファームウェアの制御下で動作する場合、CPU504は、パケット管理、エラー検出、および/またはルーティング関数を実行する責任を負う。CPU504は、好ましくは、オペレーティングシステムおよび任意の適切なアプリケーションソフトウェアを含むソフトウェアの制御下でこれらすべての機能を達成する。CPU504は、マイクロプロセッサのINTEL X86ファミリからのプロセッサなどの1つ以上のプロセッサ508を含み得る。場合によっては、プロセッサ508は、ネットワークデバイス500の操作を制御するために特別に設計されたハードウェアであり得る。場合によっては、メモリ506(例えば、不揮発性RAM、ROMなど)はまた、CPU504の一部を形成する。ただし、メモリをシステムに結合することができる多くの異なる方式がある。
【0069】
インタフェース502は、典型的に、モジュラーインタフェースカード(「ラインカード」と称されることもある)として提供される。一般に、それらはネットワークを介したデータパケットの送受信を制御し、ネットワークデバイス500で使用される他の周辺機器をサポートする場合がある。提供され得るインタフェースの中には、イーサネットインタフェース、フレームリレーインタフェース、ケーブルインタフェース、DSLインタフェース、トークンリングインタフェースなどがある。加えて、高速トークンリングインタフェース、ワイヤレスインタフェース、イーサネットインタフェース、ギガビットイーサネットインタフェース、ATMインタフェース、HSSIインタフェース、POSインタフェース、FDDIインタフェース、WIFIインタフェース、3G/4G/5Gセルラーインタフェース、CAN BUS、LoRAなど、様々な非常に高速なインタフェースが提供される場合がある。一般に、これらのインタフェースには、適切な媒体との通信に適したポートが含まれている場合がある。場合によっては、独立したプロセッサと、場合によっては揮発性RAMも含まれることがある。独立したプロセッサは、パケット交換、媒体制御、信号処理、暗号処理、管理などの通信集約型タスクを制御することができる。通信集約型タスクのために別個のプロセッサを提供することにより、これらのインタフェースは、マスターマイクロプロセッサ504がルーティング計算、ネットワーク診断、セキュリティ機能などを効率的に実行することを可能にする。
【0070】
図5に示されるシステムは、本技術の1つの特定のネットワークデバイスであるが、本技術が実装され得る唯一のネットワークデバイスアーキテクチャであることを意味するものではない。例えば、通信ならびにルーティング計算などを処理する単一のプロセッサを備えるアーキテクチャがよく使用される。さらに、他のタイプのインタフェースおよび媒体もまた、ネットワークデバイス500とともに使用され得る。
【0071】
ネットワークデバイス110の構成に関係なく、本明細書で説明するローミング、ルート最適化、およびルーティング関数のための汎用ネットワーク操作およびメカニズムのためのプログラム命令を格納するように構成された1つ以上のメモリまたはメモリモジュール(メモリ506を含む)を使用し得る。プログラム命令は、例えば、オペレーティングシステムおよび/または1つ以上のアプリケーションの操作を制御することができる。また、1つのメモリまたは複数のメモリは、モビリティバインディング、登録、および関連付けテーブルなどのテーブルを格納するように構成され得る。さらに、メモリ506は、様々なソフトウェアコンテナおよび仮想化実行環境およびデータを保持することができる。
【0072】
ネットワークデバイス500はまた、ルーティングおよび/またはスイッチング操作を実施するように構成され得る特定用途向け集積回路(ASIC)を含むことができる。ASICは、接続部510を介してネットワークデバイス500内の他の構成要素と通信して、データおよび信号を交換し、例えば、ルーティング、スイッチング、および/またはデータ格納操作などのネットワークデバイス500による様々なタイプの操作を連携することができる。
【0073】
図6は、システムの構成要素が、バスなどの接続部605を使用して互いに電気的に通信するコンピューティングシステムアーキテクチャ600を示す。例示的なシステム600は、処理ユニット(CPUまたはプロセッサ)610と、読み出し専用メモリ(ROM)620およびランダムアクセスメモリ(RAM)625などのシステムメモリ615を含む様々なシステム構成要素をプロセッサ610に結合するシステム接続部605とを含む。システム600は、プロセッサ610に直接接続されているか、近接しているか、またはプロセッサ610の一部分として統合された高速メモリのキャッシュを含むことができる。システム600は、プロセッサ610による高速アクセスのために、メモリ615および/または記憶デバイス630からキャッシュ612にデータをコピーすることができる。このようにして、キャッシュは、データを待機している間のプロセッサ610の遅延を回避するという性能向上を提供することができる。これらおよび他のモジュールは、プロセッサ610を制御するか、または制御するように構成して、様々なアクションを実行することができる。他のシステムメモリ615も同様に利用可能であり得る。メモリ615は、異なる性能特性を有する複数の異なるタイプのメモリを含むことができる。プロセッサ610は、任意の汎用プロセッサと、プロセッサ610を制御するように構成された記憶デバイス630に格納されたサービス1 632、サービス2 634、およびサービス3 636のようなハードウェアまたはソフトウェアサービスと、ならびに、ソフトウェア命令が実際のプロセッサ設計に組み込まれている特別目的プロセッサとを含むことができる。プロセッサ610は、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む完全に自己完結型のコンピューティングシステムであり得る。マルチコアプロセッサは、対称または非対称であり得る。
【0074】
コンピューティングデバイス600とのユーザーインタラクションを可能にするために、入力デバイス645は、音声用マイク、ジェスチャまたはグラフィック入力用のタッチスクリーン、キーボード、マウス、モーション入力、音声などの任意の数の入力メカニズムを表すことができる。出力デバイス635はまた、当業者に知られている出力メカニズムのうちの1つ以上とすることができる。場合によっては、マルチモーダルシステムは、ユーザーがコンピューティングデバイス600と通信するために複数のタイプの入力を提供することを可能にすることができる。通信インタフェース640は、一般に、ユーザー入力およびシステム出力を統御および管理することができる。特定のハードウェア構成での操作に制限はないため、ここでの基本機能は、開発時に改善されたハードウェアまたはファームウェア構成に簡単に置き換えることができる。
【0075】
記憶デバイス630は、不揮発性メモリであり、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)625、読み取り専用メモリ(ROM)620、およびそれらのハイブリッドなど、コンピュータがアクセス可能なデータを格納することができるハードディスクまたは他のタイプのコンピュータ可読媒体とすることができる。
【0076】
記憶デバイス630は、プロセッサ610を制御するためのサービス632、634、636を含むことができる。他のハードウェアまたはソフトウェアモジュールが企図される。記憶デバイス630は、システム接続部605に接続することができる。一態様において、特定の機能を実行するハードウェアモジュールは、その機能を実行するために、プロセッサ610、接続部605、出力デバイス635などの必要なハードウェア構成要素に関連して、コンピュータ可読媒体に格納されたソフトウェア構成要素を含むことができる。
【0077】
説明を明確にするために、場合によっては、本技術は、ソフトウェアで具体化される方法におけるデバイス、デバイス構成要素、ステップもしくはルーチン、またはハードウェアとソフトウェアの組み合わせを含む機能ブロックを含む個々の機能ブロックを含むものとして提示され得る。
【0078】
いくつかの実施形態では、コンピュータ可読記憶デバイス、媒体、およびメモリは、ビットストリームなどを含むケーブルまたは無線信号を含むことができる。しかしながら、言及される場合、非一時的コンピュータ可読記憶媒体は、エネルギー、搬送波信号、電磁波、および信号自体などの媒体を明示的に除外する。
【0079】
上記の例による方法は、コンピュータ可読媒体に格納されているか、他の方法でそれから利用可能であるコンピュータ実行可能命令を使用して実装することができる。そのような命令は、例えば、特定の機能または機能のグループを実行するために、汎用コンピュータ、専用コンピュータ、または専用処理デバイスを引き起こすか、あるいは構成する命令およびデータを含むことができる。使用されるコンピュータリソースの部分は、ネットワーク経由でアクセス可能であり得る。コンピュータの実行可能命令は、例えば、バイナリ、アセンブリ言語、ファームウェア、またはソースコードなどの中間フォーマット命令であり得る。命令、使用される情報、および/または説明された例による方法中に作成された情報を格納するために使用され得るコンピュータ可読媒体の例には、磁気ディスクまたは光ディスク、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワークストレージデバイスなどが含まれる。
【0080】
これらの開示による方法を実装するデバイスは、ハードウェア、ファームウェア、および/またはソフトウェアを含むことができ、様々なフォームファクタのいずれかを取ることができる。このようなフォームファクタの典型的な例には、ラップトップ、スマートフォン、スモールフォームファクタのパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイスなどが挙げられる。本明細書で説明される機能はまた、周辺機器またはアドインカードで具体化され得る。このような機能は、さらなる例として、単一のデバイスで実行される異なるチップまたは異なるプロセスの間の回路基板上に実装することもできる。
【0081】
命令、そのような命令を伝達するための媒体、それらを実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、これらの開示に記載された機能を提供するための手段である。
【0082】
添付の特許請求の範囲の範疇の態様を説明するために、様々な例および他の情報を使用したが、当業者であれば、多種多様な実装形態を導出するために、これらの例を使用することができるように、かかる例における特定の特徴または構成に基づいて、特許請求の範囲のいかなる制限も示唆されるべきではない。さらに、一部の主題は、構造的特徴および/または方法ステップの例に固有の言語で記載されている場合があるが、添付の特許請求の範囲で定義される主題は、必ずしもこれらの記載された特徴または行為に限定されないことを理解されたい。例えば、かかる機能は、ここで特定されている構成要素以外の構成要素で、異なって分散し、または実行することができる。むしろ、記載された特徴およびステップは、添付の特許請求の範囲の範疇のシステムおよび方法の構成要素の例として開示される。
【0083】
「少なくとも1つ」のセットと記載される特許請求項の文言は、セットの1つのメンバーまたはセットの複数のメンバーが特許請求項を満たしていることを示す。例えば、「AおよびBのうちの少なくとも1つ」と記載される特許請求項の文言は、A、B、またはAおよびBを意味する。
図1
図2
図3A
図3B
図4
図5
図6