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

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

▶ オラクル・インターナショナル・コーポレイションの特許一覧

特表2024-541998プライベートネットワーク間のセキュア双方向ネットワーク接続システム
<>
  • 特表-プライベートネットワーク間のセキュア双方向ネットワーク接続システム 図1
  • 特表-プライベートネットワーク間のセキュア双方向ネットワーク接続システム 図2
  • 特表-プライベートネットワーク間のセキュア双方向ネットワーク接続システム 図3
  • 特表-プライベートネットワーク間のセキュア双方向ネットワーク接続システム 図4
  • 特表-プライベートネットワーク間のセキュア双方向ネットワーク接続システム 図5
  • 特表-プライベートネットワーク間のセキュア双方向ネットワーク接続システム 図6
  • 特表-プライベートネットワーク間のセキュア双方向ネットワーク接続システム 図7
  • 特表-プライベートネットワーク間のセキュア双方向ネットワーク接続システム 図8
  • 特表-プライベートネットワーク間のセキュア双方向ネットワーク接続システム 図9
  • 特表-プライベートネットワーク間のセキュア双方向ネットワーク接続システム 図10
  • 特表-プライベートネットワーク間のセキュア双方向ネットワーク接続システム 図11
  • 特表-プライベートネットワーク間のセキュア双方向ネットワーク接続システム 図12
  • 特表-プライベートネットワーク間のセキュア双方向ネットワーク接続システム 図13
  • 特表-プライベートネットワーク間のセキュア双方向ネットワーク接続システム 図14
  • 特表-プライベートネットワーク間のセキュア双方向ネットワーク接続システム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-13
(54)【発明の名称】プライベートネットワーク間のセキュア双方向ネットワーク接続システム
(51)【国際特許分類】
   H04L 41/0895 20220101AFI20241106BHJP
【FI】
H04L41/0895
【審査請求】未請求
【予備審査請求】有
(21)【出願番号】P 2024525442
(86)(22)【出願日】2022-06-23
(85)【翻訳文提出日】2024-06-07
(86)【国際出願番号】 US2022034753
(87)【国際公開番号】W WO2023075869
(87)【国際公開日】2023-05-04
(31)【優先権主張番号】17/515,093
(32)【優先日】2021-10-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.iOS
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】クリーガー-スティックレス,ルーカス・マイケル
(72)【発明者】
【氏名】カルケラ,アビマン・ヤシュパラ
(72)【発明者】
【氏名】シャー,ドゥワニッシュ・プラムテシュ
(72)【発明者】
【氏名】ペイ,グアンホン
(72)【発明者】
【氏名】マグウィルク,クレイトン・マシュー
(72)【発明者】
【氏名】ケインカー,ポール・ジェイムズ
(57)【要約】
顧客のオンプレミス環境内に存在する外部リソースとクラウド内に存在する顧客のリソースとの間の安全なプライベートネットワーク接続を提供する、クラウドサービスプロバイダインフラストラクチャ(CSPI)内のセキュアプライベートネットワーク接続サービス(SNCS)が記載される。SNCSは、企業のユーザ(例えば、管理者)が明示的に外部リソースを構成し、経路を公告し、またはサイト間ネットワーク接続をセットアップする必要なしに、顧客の外部サイト表現内に存在する外部リソースと、クラウド内の顧客のVCN内に存在するリソースおよびサービスとの間の安全なプライベート双方向ネットワーク接続を提供する。SNCSは、安全なサイト間ネットワーク接続を提供するために使用されるネットワーク要素およびコンピューティングノードのロバストなインフラストラクチャを実装することによって、顧客のオンプレミス環境とCSPIとの間のネットワークトラフィックを処理するための高性能で、スケーラブルな、かつ高可用性のサイト間ネットワーク接続を提供する。
【特許請求の範囲】
【請求項1】
方法であって、
クラウドサービスプロバイダにおいて実装されているセキュアネットワーク接続システムが、前記クラウドサービスプロバイダの顧客に関連付けられているオンプレミスネットワークと前記顧客のために前記クラウドサービスプロバイダによってホストされている仮想クラウドネットワーク(VCN)との間の安全なプライベートネットワーク接続を可能にするためのセキュアネットワーク接続サービスを提供することを含み、前記セキュアネットワーク接続システムは、1つまたは複数のコンピューティングノードのセットを含む仮想オーバーレイネットワークを備え、前記方法はさらに、
前記セキュアネットワーク接続システムが、前記オンプレミスネットワーク内に存在する外部リソースを、前記仮想クラウドネットワーク内の外部エンドポイントとして登録することを含み、前記外部エンドポイントは、前記仮想クラウドネットワーク内のインターネットプロトコル(IP)アドレスによって識別され、前記方法はさらに、
前記セキュアネットワーク接続システム内の前記1つまたは複数のコンピューティングノードのセットのうちの第1のコンピューティングノードが、前記仮想クラウドネットワーク内の前記外部エンドポイントの外部リソース表現を作成することを含み、前記外部リソース表現を作成することは、
前記第1のコンピューティングノードが、仮想ネットワークインターフェイスカード(VNIC)を作成することと、
前記第1のコンピューティングノードが、前記外部エンドポイントに関連付けられている前記インターネットプロトコル(IP)アドレスを前記仮想ネットワークインターフェイスカード(VNIC)に割り当てることと、を含み、前記方法はさらに、
前記第1のコンピューティングノードが、前記外部リソース表現の前記仮想ネットワークインターフェイスカード(VNIC)に対応する構成情報を、前記顧客に関連付けられている前記オンプレミスネットワーク内に構成されているエージェントに送信することと、
前記セキュアネットワーク接続システム内の前記1つまたは複数のコンピューティングノードのセットのうちの第2のコンピューティングノードが、前記顧客に関連付けられている前記仮想クラウドネットワーク(VCN)内に存在するリソースに関連付けられている情報をクエリするための要求を受信することと、をさらに含み、前記クエリは、前記オンプレミスネットワーク内に存在する前記外部リソースによって送信され、前記外部リソースは、論理インターフェイスをプロビジョンされ、前記方法はさらに、
前記第2のコンピューティングノードが、前記オンプレミスネットワーク内に存在する前記外部リソースにプロビジョンされた前記論理インターフェイスと、前記仮想クラウドネットワーク内の前記外部リソース表現向けに作成された仮想ネットワークインターフェイスカード(VNIC)との間の接続を確立することと、
前記第2のコンピューティングノードが、確立された前記接続を介して前記仮想クラウドネットワーク内に存在する前記リソースに前記要求を送信することと、
前記第2のコンピューティングノードが、前記確立された接続を介して前記要求に対応する結果を得ることと、を含む、方法。
【請求項2】
前記オンプレミスネットワーク内の前記エージェントは、前記オンプレミスネットワーク内に存在する前記外部リソースと、前記セキュアネットワーク接続システムを備える前記1つまたは複数のコンピューティングノードのセットとの間のセキュア仮想プライベートネットワーク(VPN)接続を確立するように構成されている、請求項1に記載の方法。
【請求項3】
前記エージェントは、前記外部リソース表現の前記仮想ネットワークインターフェイスカード(VNIC)に対応する前記構成情報に少なくとも部分的に基づいて、前記オンプレミスネットワーク内に存在する前記外部リソースの前記論理インターフェイスをプロビジョンするように構成されている、請求項1または請求項2に記載の方法。
【請求項4】
前記外部リソースの前記論理インターフェイスをプロビジョンすることは、前記エージェントが、前記外部リソース表現の前記仮想ネットワークインターフェイスカード(VNIC)の前記仮想インターネットプロトコル(IP)アドレスを前記論理インターフェイスに割り当てることを含む、請求項3に記載の方法。
【請求項5】
前記外部リソース表現の前記仮想ネットワークインターフェイスカード(VNIC)に対応する前記構成情報は、前記仮想ネットワークインターフェイスカード(VNIC)の前記仮想インターネットプロトコル(IP)アドレス、前記仮想ネットワークインターフェイスカード(VNIC)に関連付けられているコンピューティングインスタンスに関連付けられる完全修飾ドメイン名、および、前記顧客に関連付けられている前記仮想クラウドネットワークのクラウド識別子を含む、請求項3または請求項4に記載の方法。
【請求項6】
前記第2のコンピューティングノードが、前記オンプレミスネットワーク内に存在する前記外部リソースにプロビジョンされた前記論理インターフェイスと、前記仮想クラウドネットワーク内の前記外部リソース表現向けに作成された前記仮想ネットワークインターフェイスカードとの間の前記接続を確立することは、前記オンプレミスネットワーク内に存在する前記エージェントを介して前記接続を確立することを含む、請求項1~請求項5のいずれか1項に記載の方法。
【請求項7】
前記第2のコンピューティングノードが、確立された前記接続を介して前記仮想クラウドネットワーク内に存在する前記リソースに前記要求を送信することは、
前記第2のコンピューティングノードが、前記外部リソースに関連付けられている前記物理IPアドレスを、前記顧客に関連付けられている前記仮想クラウドネットワーク内の前記外部リソース表現の前記仮想ネットワークインターフェイスカードに関連付けられる前記仮想IPアドレスに変換することと、
第2のコンピューティングノードが、前記仮想ネットワークインターフェイスカードに関連付けられる前記仮想IPアドレスに前記要求を送信することと、を含む、請求項1~請求項6のいずれか1項に記載の方法。
【請求項8】
前記セキュアネットワーク接続システムが、前記顧客に関連付けられている前記オンプレミスネットワークの外部サイト表現の作成を可能にすることをさらに含み、前記外部サイト表現は、前記オンプレミスネットワークの論理表現であり、外部サイト識別子および顧客識別子によって識別される、請求項1~請求項7のいずれか1項に記載の方法。
【請求項9】
前記外部リソースは、前記外部サイト表現内に登録される、請求項8に記載の方法。
【請求項10】
前記第2のコンピューティングノードが、前記外部サイト表現内に存在する前記外部リソースにプロビジョンされた前記論理インターフェイスと、前記仮想クラウドネットワーク内の前記外部リソース表現向けに作成された前記仮想ネットワークインターフェイスカードとの間の接続を確立することをさらに含む、請求項9に記載の方法。
【請求項11】
前記外部リソースは、前記オンプレミスネットワーク内に存在するデータベース、アプリケーション、または計算インスタンスである、請求項1~請求項10のいずれか1項に記載の方法。
【請求項12】
クラウドサービスプロバイダにおいて実装される、前記クラウドサービスプロバイダの顧客に関連付けられているオンプレミスネットワークと前記顧客のために前記クラウドサービスプロバイダによってホストされている仮想クラウドネットワーク(VCN)との間の安全なプライベートネットワーク接続を可能にするためのセキュアネットワーク接続システムであって、前記セキュアネットワーク接続システムは、1つまたは複数のコンピューティングノードのセットを含む仮想オーバーレイネットワークを備え、前記コンピューティングノードのセットのうちのコンピューティングノードは、
メモリと、
処理を実施するように構成されている1つまたは複数のプロセッサと、を備え、前記処理は、
前記セキュアネットワーク接続システムが、前記オンプレミスネットワーク内に存在する外部リソースを、前記仮想クラウドネットワーク内の外部エンドポイントとして登録することを含み、前記外部エンドポイントは、前記仮想クラウドネットワーク内のインターネットプロトコル(IP)アドレスによって識別され、前記処理はさらに、
前記セキュアネットワーク接続システム内の前記1つまたは複数のコンピューティングノードのセットのうちの第1のコンピューティングノードが、前記仮想クラウドネットワーク内の前記外部エンドポイントの外部リソース表現を作成することを含み、前記外部リソース表現を作成することは、
前記セキュアネットワーク接続システム内の前記1つまたは複数のコンピューティングノードのセットのうちの前記第1のコンピューティングノードが、仮想ネットワークインターフェイスカード(VNIC)を作成することと、
前記セキュアネットワーク接続システム内の前記1つまたは複数のコンピューティングノードのセットのうちの前記第1のコンピューティングノードが、前記外部エンドポイントに関連付けられている前記インターネットプロトコル(IP)アドレスを前記仮想ネットワークインターフェイスカード(VNIC)に割り当てることと、をさらに含み、前記処理はさらに、
前記セキュアネットワーク接続システム内の前記第1のコンピューティングノードが、前記外部リソース表現の前記仮想ネットワークインターフェイスカード(VNIC)に対応する構成情報を、前記顧客に関連付けられている前記オンプレミスネットワーク内に構成されているエージェントに送信することと、
前記セキュアネットワーク接続システム内の前記1つまたは複数のコンピューティングノードのセットのうちの第2のコンピューティングノードが、前記顧客に関連付けられている前記仮想クラウドネットワーク(VCN)内に存在するリソースに関連付けられている情報をクエリするための要求を受信することと、を含み、前記クエリは、前記オンプレミスネットワーク内に存在する前記外部リソースによって送信され、前記外部リソースは、論理インターフェイスをプロビジョンされ、前記処理はさらに、
前記セキュアネットワーク接続システム内の前記第2のコンピューティングノードが、前記オンプレミスネットワーク内に存在する前記外部リソースにプロビジョンされた前記論理インターフェイスと、前記仮想クラウドネットワーク内の前記外部リソース表現向けに作成された前記仮想ネットワークインターフェイスカード(VNIC)との間の接続を確立することと、
前記セキュアネットワーク接続システム内の前記第2のコンピューティングノードが、確立された前記接続を介して前記仮想クラウドネットワーク内に存在する前記リソースに前記要求を送信することと、
前記セキュアネットワーク接続システム内の前記第2のコンピューティングノードが、前記確立された接続を介して前記要求に対応する結果を得ることと、を含む、セキュアネットワーク接続システム。
【請求項13】
前記オンプレミスネットワーク内の前記エージェントは、前記オンプレミスネットワーク内に存在する前記外部リソースと、前記セキュアネットワーク接続システムを備える前記1つまたは複数のコンピューティングノードのセットとの間のセキュア仮想プライベートネットワーク(VPN)接続を確立するように構成されている、請求項12に記載のシステム。
【請求項14】
前記エージェントは、前記外部リソース表現の前記仮想ネットワークインターフェイスカード(VNIC)に対応する前記構成情報に少なくとも部分的に基づいて、前記オンプレミスネットワーク内に存在する前記外部リソースの前記論理インターフェイスをプロビジョンするように構成されている、請求項12または請求項13に記載のシステム。
【請求項15】
前記外部リソースの前記論理インターフェイスをプロビジョンすることは、前記エージェントが、前記外部リソース表現の前記仮想ネットワークインターフェイスカード(VNIC)の前記仮想インターネットプロトコル(IP)アドレスを前記論理インターフェイスに割り当てることを含む、請求項14に記載のシステム。
【請求項16】
前記外部リソース表現の前記仮想ネットワークインターフェイスカード(VNIC)に対応する前記構成情報は、前記仮想ネットワークインターフェイスカード(VNIC)の前記仮想インターネットプロトコル(IP)アドレス、前記仮想ネットワークインターフェイスカード(VNIC)に関連付けられているコンピューティングインスタンスに関連付けられる完全修飾ドメイン名、および、前記顧客に関連付けられている前記仮想クラウドネットワークのクラウド識別子を含む、請求項12~請求項15のいずれか1項に記載のシステム。
【請求項17】
プログラムコードを記憶している非一時的コンピュータ可読媒体であって、前記プログラムコードは、1つまたは複数の処理デバイスによって複数の動作を実施するために実行可能であり、前記複数の動作は、
前記オンプレミスネットワーク内に存在する外部リソースを、仮想クラウドネットワーク内の外部エンドポイントとして登録することを含み、前記外部エンドポイントは、前記仮想クラウドネットワーク内のインターネットプロトコル(IP)アドレスによって識別され、前記複数の動作はさらに、
前記仮想クラウドネットワーク内の前記外部エンドポイントの外部リソース表現を作成することを含み、前記外部リソース表現を作成することは、
仮想ネットワークインターフェイスカード(VNIC)を作成することと、
前記外部エンドポイントに関連付けられている前記インターネットプロトコル(IP)アドレスを前記仮想ネットワークインターフェイスカード(VNIC)に割り当てることと、を含み、前記複数の動作はさらに、
前記外部リソース表現の前記仮想ネットワークインターフェイスカード(VNIC)に対応する構成情報を、前記顧客に関連付けられている前記オンプレミスネットワーク内に構成されているエージェントに送信することと、
前記顧客に関連付けられている前記仮想クラウドネットワーク(VCN)内に存在するリソースに関連付けられている情報をクエリするための要求を受信することと、を含み、前記クエリは、前記オンプレミスネットワーク内に存在する前記外部リソースによって送信され、前記外部リソースは、論理インターフェイスをプロビジョンされ、前記複数の動作はさらに、
前記オンプレミスネットワーク内に存在する前記外部リソースにプロビジョンされた前記論理インターフェイスと、前記仮想クラウドネットワーク内の前記外部リソース表現向けに作成された前記仮想ネットワークインターフェイスカード(VNIC)との間の接続を確立することと、
確立された前記接続を介して前記仮想クラウドネットワーク内に存在する前記リソースに前記要求を送信することと、
前記確立された接続を介して前記要求に対応する結果を得ることと、を含む、非一時的コンピュータ可読媒体。
【請求項18】
前記エージェントは、前記外部リソース表現の前記仮想ネットワークインターフェイスカード(VNIC)に対応する前記構成情報に少なくとも部分的に基づいて、前記オンプレミスネットワーク内に存在する前記外部リソースの前記論理インターフェイスをプロビジョンするように構成されている、請求項17に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記外部リソースの前記論理インターフェイスをプロビジョンすることは、前記エージェントが、前記外部リソース表現の前記仮想ネットワークインターフェイスカード(VNIC)の前記仮想インターネットプロトコル(IP)アドレスを前記論理インターフェイスに割り当てることを含む、請求項18に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記外部リソース表現の前記仮想ネットワークインターフェイスカード(VNIC)に対応する前記構成情報は、前記仮想ネットワークインターフェイスカード(VNIC)の前記仮想インターネットプロトコル(IP)アドレス、前記仮想ネットワークインターフェイスカード(VNIC)に関連付けられているコンピューティングインスタンスに関連付けられる完全修飾ドメイン名、および、前記顧客に関連付けられている前記仮想クラウドネットワークのクラウド識別子を含む、請求項17~請求項19のいずれか1項に記載の非一時的コンピュータ可読媒体。
【請求項21】
コンピュータプログラム命令を含むコンピュータプログラム製品であって、前記コンピュータプログラム命令は、プロセッサによって実行されると、前記プロセッサに、
前記オンプレミスネットワーク内に存在する外部リソースを、仮想クラウドネットワーク(VCN)内の外部エンドポイントとして登録することを行わせ、前記外部エンドポイントは、前記仮想クラウドネットワーク(VCN)内のインターネットプロトコル(IP)アドレスによって識別され、前記コンピュータプログラム命令は、プロセッサによって実行されると、前記プロセッサにさらに、
前記仮想クラウドネットワーク(VCN)内の前記外部エンドポイントの外部リソース表現を作成することをさらに行わせ、前記外部リソース表現を作成する動作は、
仮想ネットワークインターフェイスカード(VNIC)を作成する動作と、
前記外部エンドポイントに関連付けられている前記インターネットプロトコル(IP)アドレスを前記仮想ネットワークインターフェイスカード(VNIC)に割り当てる動作と、を含み、前記コンピュータプログラム命令は、プロセッサによって実行されると、前記プロセッサにさらに、
前記外部リソース表現の前記仮想ネットワークインターフェイスカード(VNIC)に対応する構成情報を、前記顧客に関連付けられている前記オンプレミスネットワーク内に構成されているエージェントに送信することと、
前記顧客に関連付けられている前記仮想クラウドネットワーク(VCN)内に存在するリソースに関連付けられている情報をクエリするための要求を受信することと、を行わせ、前記クエリは、前記オンプレミスネットワーク内に存在する前記外部リソースによって送信され、前記外部リソースは、論理インターフェイスをプロビジョンされ、前記コンピュータプログラム命令は、プロセッサによって実行されると、前記プロセッサにさらに、
前記オンプレミスネットワーク内に存在する前記外部リソースにプロビジョンされた前記論理インターフェイスと、前記仮想クラウドネットワーク内の前記外部リソース表現向けに作成された前記仮想ネットワークインターフェイスカード(VNIC)との間の接続を確立することと、
確立された前記接続を介して前記仮想クラウドネットワーク(VCN)内に存在する前記リソースに前記要求を送信することと、
前記確立された接続を介して前記要求に対応する結果を得ることと、を行わせる、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本出願は、2021年10月29日付けで出願された「Secure Bi-Directional Network Connectivity System between Private Networks」と題する米国非仮特許出願第17/515,093号のPCT出願であり、米国特許法第119条(e)項に基づくその利益および優先権を主張するものであり、その内容は、参照によりその全体があらゆる目的のために本明細書に組み込まれる。
【0002】
本出願は、2021年10月29日付けで出願された「Transparent mounting of external endpoints between private networks」と題する米国特許出願第17/515,087号に関連し、その内容は、参照によりあらゆる目的のために本明細書に組み込まれる。
【0003】
技術分野
本開示は、概して、クラウドベースのサービスに関する。より詳細には、ただし決して限定することなく、本開示は、顧客のオンプレミス環境内に存在する外部リソースとクラウド内に存在する顧客のリソースとの間の安全なプライベート双方向ネットワーク接続を確立する改善された機能を含むクラウドインフラストラクチャ内のセキュアプライベートネットワーク接続サービスを記載する。
【背景技術】
【0004】
背景
クラウドベースのサービスに対する需要は、急速に増大し続けている。クラウドサービスという用語は、一般的に、クラウドサービスプロバイダによって提供されるシステムおよびインフラストラクチャ(クラウドインフラストラクチャ)を使用して要求に応じて(例えば、サブスクリプションモデルを介して)ユーザまたは顧客に利用可能にされるサービスを指すために使用される。典型的には、クラウドサービスプロバイダのインフラストラクチャを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは別個のものである。したがって、顧客は、サービスのための別個のハードウェアおよびソフトウェアリソースを購入する必要なしに、クラウドサービスプロバイダによって提供されるクラウドサービスを利用することができる。サービス型ソフトウェア(SaaS)、サービス型プラットフォーム(PaaS)、サービス型インフラストラクチャ(IaaS)などを含む様々な異なるタイプのクラウドサービスが存在する。
【発明の概要】
【発明が解決しようとする課題】
【0005】
クラウドサービスによって提供される多数の利点を活用するために、企業には、オンプレミスアプリケーションおよびデータを企業のローカルデータセンタから公衆クラウドインフラストラクチャへと移動させることを要求されることが多い。このプロセスは、典型的には、企業が、企業のオンプレミスデータセンタとクラウドインフラストラクチャとの間の安全な接続を確立するために、サイト間ネットワーク接続をセットアップすることを必要とする。異なるネットワーク間のネットワークトラフィックを処理するための高性能で、スケーラブルな、かつ高可用性のサイト間ネットワーク接続を構成することは、特に、企業のオンプレミスアプリケーションおよびデータが複数の異なるネットワークにわたってスケーリングするときに、企業にとって複雑で時間のかかるタスクになり得る。
【0006】
簡潔な概要
本開示は、概して、クラウドベースのサービスに関する。より詳細には、ただし決して限定することなく、本開示は、顧客のオンプレミス環境内に存在する外部リソースとクラウド内に存在する顧客のリソースとの間の安全なプライベート双方向ネットワーク接続を確立する改善された機能を含むクラウドインフラストラクチャ内のセキュアプライベートネットワーク接続サービスを記載する。
【課題を解決するための手段】
【0007】
ある実施形態において、セキュアネットワーク接続システムが開示される。セキュアネットワーク接続サービスは、クラウドサービスプロバイダの顧客に関連付けられているオンプレミスネットワークと顧客のためにクラウドサービスプロバイダによってホストされている仮想クラウドネットワーク(VCN)との間の安全なプライベートネットワーク接続を可能にする。セキュアネットワーク接続システムは、1つまたは複数のコンピューティングノードのセットを含む仮想オーバーレイネットワークを備える。システムは、オンプレミスネットワーク内に存在する外部リソースを、仮想クラウドネットワーク内の外部エンドポイントとして登録する。外部エンドポイントは、仮想クラウドネットワーク内のインターネットプロトコル(IP)アドレスによって識別される。システム内のコンピューティングノードのセットのうちの第1のコンピューティングノードは、仮想クラウドネットワーク内の外部エンドポイントの外部リソース表現を作成する。外部リソース表現は、仮想ネットワークインターフェイスカード(VNIC)を作成し、外部エンドポイントに関連付けられているインターネットプロトコル(IP)アドレスをVNICに割り当てることによって作成される。次いで、第1のコンピューティングノードは、外部リソース表現のVNICに対応する構成情報を、顧客に関連付けられているオンプレミスネットワーク内に構成されているエージェントに送信する。
【0008】
ある例において、システム内のコンピューティングノードのセットのうちの第2のコンピューティングノードは、顧客に関連付けられているVCN内に存在するリソースに関連付けられている情報をクエリするための要求を受信する。クエリは、オンプレミスネットワーク内に存在する外部リソースによって送信される。ある実施態様において、外部リソースは、論理インターフェイスをプロビジョンされる。第2のコンピューティングノードは、オンプレミスネットワーク内に存在する外部リソースにプロビジョンされた論理インターフェイスと、仮想クラウドネットワーク内の外部リソース表現向けに作成されたVNICとの間の接続を確立する。第2のコンピューティングノードは、確立された接続を介して仮想クラウドネットワーク内に存在するリソースに要求を送信し、確立された接続を介して要求に対応する結果を得る。
【0009】
ある実施形態において、オンプレミスネットワーク内のエージェントは、オンプレミスネットワーク内に存在する外部リソースと、セキュアネットワーク接続システムを備える1つまたは複数のコンピューティングノードのセットとの間のセキュア仮想プライベートネットワーク(VPN)接続を確立するように構成されている。ある例において、エージェントは、外部リソース表現のVNICに対応する構成情報に少なくとも部分的に基づいて、オンプレミスネットワーク内に存在する外部リソースの論理インターフェイスをプロビジョンするように構成されている。ある例において、外部リソースの論理インターフェイスをプロビジョンすることは、エージェントによって、外部リソース表現の仮想ネットワークインターフェイスカード(VNIC)の仮想インターネットプロトコル(IP)アドレスを論理インターフェイスに割り当てることを含む。
【0010】
ある例において、外部リソース表現のVNICに対応する構成情報は、VNICの仮想インターネットプロトコル(IP)アドレス、VNICに関連付けられているコンピューティングインスタンスに関連付けられる完全修飾ドメイン名、および、顧客に関連付けられている仮想クラウドネットワークのクラウド識別子を含む。
【0011】
ある例において、第2のコンピューティングノードは、オンプレミスネットワーク内に存在するエージェントを介して、オンプレミスネットワーク内に存在する外部リソースにプロビジョンされた論理インターフェイスと、仮想クラウドネットワーク内の外部リソース表現向けに作成された仮想ネットワークインターフェイスカードとの間の接続を確立する。
【0012】
ある例において、第2のコンピューティングノードは、確立された接続を介して仮想クラウドネットワーク内に存在するリソースに要求を送信する。このプロセスは、第2のコンピューティングノードによって、外部リソースに関連付けられている物理IPアドレスを、顧客に関連付けられている仮想クラウドネットワーク内の外部リソース表現のVNICに関連付けられる仮想IPアドレスに変換することと、VNICに関連付けられる仮想IPアドレスに要求を送信することとを含む。
【0013】
ある例において、セキュアネットワーク接続システムは、顧客に関連付けられているオンプレミスネットワークの外部サイト表現の作成を可能にする。外部サイト表現は、オンプレミスネットワークの論理表現であり、外部サイト識別子および顧客識別子によって識別される。ある例において、外部リソースは、外部サイト表現内に登録される。
【0014】
ある例において、セキュアネットワーク接続システム内の第2のコンピューティングノードは、外部サイト表現内に存在する外部リソースにプロビジョンされた論理インターフェイスと、仮想クラウドネットワーク内の外部リソース表現向けに作成された仮想ネットワークインターフェイスカードとの間の接続を確立する。ある例において、外部リソースは、オンプレミスネットワーク内に存在するデータベース、アプリケーション、または計算インスタンスである。
【0015】
方法、システム、1つまたは複数のプロセッサによって実行可能なプログラム、コード、または命令を記憶している非一時的コンピュータ可読記憶媒体などを含む、様々な実施形態が本明細書に記載されている。これらの例示的な実施形態は、本開示を限定または定義するためではなく、その理解を補助するための例を提供するために言及されている。追加の実施形態が、詳細な説明において論じられており、さらなる説明が、そこで与えられる。
【図面の簡単な説明】
【0016】
図1】ある実施形態による、クラウドサービスプロバイダインフラストラクチャ(CSPI)内のセキュアプライベートネットワーク接続サービスを含む分散環境100を示す図である。
図2】ある実施形態による、顧客のオンプレミスネットワーク内に存在する顧客の外部リソースと顧客のVCN内に存在するリソースおよびサービスとの間の安全なプライベートネットワーク接続を提供するための、図1に示すシステムおよびサブシステムによって実施される動作の追加の詳細を示す図である。
図3】ある実施形態による、安全なプライベートネットワーク接続を提供するための、図1に示すシステムおよびサブシステムによって実施されるプロセスの例を示す図である。
図4】ある実施形態による、顧客のオンプレミスネットワーク内に存在する外部リソースと顧客の仮想クラウドネットワーク内の外部リソースとの間のネットワークパケットの流れを示すフローチャートである。
図5】ある実施形態による、顧客の仮想クラウドネットワーク内の外部リソース表現と顧客のオンプレミスネットワーク内に存在する外部リソースとの間のネットワークパケットの流れを示すフローチャートである。
図6】ある実施形態によるクラウドサービスプロバイダインフラストラクチャによってホストされる仮想またはオーバーレイクラウドネットワークを示す分散環境の高レベル図である。
図7】ある実施形態によるCSPI内の物理ネットワーク内の物理構成要素の単純化されたアーキテクチャ図である。
図8】ある実施形態による、ホストマシンが複数のネットワーク仮想化デバイス(NVD)に接続されているCSPI内の例示的な構成を示す図である。
図9】ある実施形態によるマルチテナンシ機能をサポートするためにI/O仮想化を提供するためのホストマシンとNVDとの間の接続を示す図である。
図10】ある実施形態によるCSPIによって提供される物理ネットワークの単純化されたブロック図である。
図11】少なくとも1つの実施形態による、クラウドインフラストラクチャをサービスシステムとして実装するための1つのパターンを示すブロック図である。
図12】少なくとも1つの実施形態による、クラウドインフラストラクチャをサービスシステムとして実装するための別のパターンを示すブロック図である。
図13】少なくとも1つの実施形態による、クラウドインフラストラクチャをサービスシステムとして実装するための別のパターンを示すブロック図である。
図14】少なくとも1つの実施形態による、クラウドインフラストラクチャをサービスシステムとして実装するための別のパターンを示すブロック図である。
図15】少なくとも1つの実施形態による、例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0017】
詳細な説明
以下の記載において、説明を目的として、ある実施形態の完全な理解を提供するために、具体的な詳細が記載される。しかしながら、様々な実施形態は、これらの特定の詳細なしに実施され得ることが明らかであろう。図面および説明は、限定であるようには意図されていない。「例示的な」という語は本明細書においては、「例、事例、または実例としての役割を果たす」ことを意味するように使用される。「例示的」であるとして本明細書において記載されている任意の実施形態または設計は、必ずしも、他の実施形態または設計よりも好ましいかまたは有利であるものとして解釈されるべきではない。
【0018】
本開示は、概して、クラウドベースのサービスに関する。より詳細には、ただし決して限定することなく、本開示は、顧客のオンプレミス環境内に存在する外部リソースとクラウド内に存在する顧客のリソースとの間の安全なプライベート双方向ネットワーク接続を確立する改善された機能を含むクラウドインフラストラクチャ内のセキュアプライベートネットワーク接続サービスを記載する。
【0019】
クラウドインフラストラクチャは、物理アンダーレイネットワークの上で作動し、企業のオンプレミスネットワークから安全にアクセス可能である柔軟なオーバーレイ仮想ネットワークにおいて高性能な計算、記憶、およびネットワーク機能を提供することができる。クラウドインフラストラクチャは、企業が、そのオンプレミスワークロードを管理するのと同じように、そのクラウドベースのワークロードを管理することを可能にする。したがって、企業は、そのオンプレミスネットワークと同じ制御、分離、セキュリティ、および予測可能性能によって、クラウドのすべての恩恵を得ることができる。企業は、クラウドによって提供される計算、メモリ、およびネットワーキングリソースを使用して、それ自体のネットワークを構築することができる。例えば、顧客は、クラウドによって提供されるリソースを使用して、仮想クラウドネットワーク(VCN)として参照される1つまたは複数のカスタマイズ可能なプライベートネットワークを構築することができる。顧客は、これらの顧客VCN上で、計算インスタンスなどの1つまたは複数の顧客リソースを展開することができる。計算インスタンスは、仮想マシン、ベアメタルインスタンスなどの形態をとることができる。したがって、クラウドは、企業(顧客)が多様なアプリケーションおよびサービスを可用性の高いホスト環境内で構築し、実行することを可能にするインフラストラクチャ、および、補完クラウドサービスのセットを提供する。
【0020】
クラウドインフラストラクチャによって提供される多数の利点を活用するために、多くの企業は、オンプレミスアプリケーションおよびデータの、企業のローカルデータセンタから公衆クラウドインフラストラクチャへの移動を実施する。ワークロードを企業のローカル(すなわち、オンプレミス)データセンタからクラウドへと移動させることは、複雑で困難なプロセスであり得る。クラウド移動中に遭遇する一般的な課題は、企業によって、実施する移動のタイプ、動かす必要があるリソースのタイプ、および、リソース間のデータ依存関係を識別することを含む。ワークロードを移動している間、一部のリソース(例えば、データベース、アプリケーションなど)は、クラウドに首尾よく移動することが可能になるまで、一定期間にわたってオンプレミスデータセンタに留まる必要がある場合がある。あるリソース(例えば、ビジネスに不可欠なリソース、データ可搬性制約を有するリソースまたは厳密な地理的要件を有するリソース)は、セキュリティ上の理由に起因してクラウドに移動されず、オンプレミスデータセンタに留まるリソースとして識別される場合がある。企業が、そのVCN(クラウド内の)からオンプレミスリソースにアクセスすることを可能にし、そのオンプレミスデータセンタ内に存在するリソースが、クラウド内に存在するリソースに安全にアクセスすることができることを可能にするためには、顧客(企業)のオンプレミスデータセンタと顧客のVCNとの間に安全なプライベートネットワーク接続が確立される必要がある。安全なサイト間ネットワーク接続をセットアップすることは、企業にとって複雑で時間のかかるタスクであり得る。これは、典型的には、複数の構成パラメータをセットアップし、サイト間ネットワーク接続のVPN構成要素(例えば、顧客ゲートウェイデバイス、目標ゲートウェイデバイス)をセットアップすることなど、サイト間ネットワーク(例えば、VPN)接続をセットアップするために、企業のユーザ(例えば、管理者)による、ネットワークポリシレベルの管理を必要とする。
【0021】
付加的に、サイト間ネットワーク接続を使用してそのVCNからそのオンプレミスデータセンタ内に存在するリモート資産(例えば、データベースまたはアプリケーションなどのオンプレミスリソース)にアクセスするために、または、そのオンプレミスデータセンタ内に存在するリモート資産が、顧客のVCN内のリソースおよびサービスに安全にアクセスすることを可能にするために、企業のユーザは、顧客の外部環境内のリモート資産と顧客のVCN内のリソースとの間の安全な接続を達成することができるように経路広告およびネットワークアドレス変換を実施するようにゲートウェイデバイスを手動で構成することのような、追加のタスクを実施する必要がある。ユーザはまた、トラフィック(例えば、ネットワークパケット)が顧客のVCNからリモート資産に達するために、および、その逆のために、リモート資産を手動で構成すること、サイト間VPN接続によって使用される経路を含むように経路テーブルを構成すること、経路テーブルが自動的にサイト間VPN経路を伝播するようにルート伝播を可能にすること、セキュリティ規則を更新すること、などを行う必要もある。
【0022】
ある実施形態において、顧客のオンプレミス環境内に存在する外部リソースとクラウド内に存在する顧客のリソースとの間の安全なプライベート双方向ネットワーク接続を確立する改善された機能を含むクラウドサービスプロバイダインフラストラクチャ(CSPI)内のセキュアプライベートネットワーク接続サービスが記載される。セキュアプライベートネットワーク接続サービスは、クラウドサービスプロバイダインフラストラクチャ(CSPI)内のセキュアネットワーク接続システム(SNCS)を使用して実施される。本開示に記載されているSNCSは、従来のクラウドベースのネットワーク接続サービスにまさるいくつかの技術的利点および/または改善を提供する。SNCSによって実装される本開示の新規の改善されたアーキテクチャを使用して、企業のユーザ(例えば、管理者)が明示的に外部リソースを構成し、経路を公告し、またはサイト間ネットワーク接続をセットアップする必要なしに、顧客の外部サイト表現内に存在する外部リソースと、クラウド内の顧客のVCN内に存在するリソースおよびサービスとの間の安全なプライベート双方向ネットワーク接続を達成することができる。SNCSは、安全なサイト間ネットワーク接続を提供するために使用されるネットワーク要素およびコンピューティングノードのロバストなインフラストラクチャを実装することによって、顧客のオンプレミス環境とCSPIとの間のネットワークトラフィックを処理するための高性能で、スケーラブルな、かつ高可用性のサイト間ネットワーク接続を提供する。SNCSによって実装されるネットワーク要素およびコンピューティングノードのロバストなインフラストラクチャを使用することによって、企業のユーザは、そのVCN内の任意の他のネイティブリソースに接続しているかのように、クラウドからその外部リソースに安全にアクセスすることができる。付加的に、SNCSは、顧客のオンプレミスネットワーク内に存在する1つまたは複数の外部リソースが、顧客のVCN(すなわち、クラウド)内に存在するリソースおよびサービスに安全にリーチアウトし、アクセスすることができることを可能にする。企業のユーザ(例えば、管理者)が明示的に外部リソースを構成し、経路を公告し、またはサイト間ネットワーク接続をセットアップする必要なしに、顧客の外部サイト表現内の外部リソースと、クラウド内の顧客のVCN内に存在するリソースおよびサービスとの間の安全なプライベート双方向ネットワーク接続を達成することができる。
【0023】
ここで図面を参照すると、図1は、ある実施形態による、クラウドサービスプロバイダインフラストラクチャ(CSPI)内のセキュアプライベートネットワーク接続サービスを含む分散環境100を示す。分散環境100は、1つまたは複数の通信ネットワークを介して互いに通信可能に結合されている複数のシステムを含む。これらの通信ネットワークは、公衆およびプライベートネットワークを含み得る。図1に示す分散環境100は、例示に過ぎず、特許請求される実施形態の範囲を不当に限定するようには意図されていない。多くの変形、代替、および修正が可能である。例えば、いくつかの他の実施形態において、図1に示す分散環境は、図1に示されているよりも多いもしくは少ないシステムもしくは構成要素を有してもよく、2つ以上のシステムを組み合わせてもよく、または、システムの異なる構成もしくは配置を有し得る。
【0024】
図1に示す例に示すように、分散環境100は、顧客が加入することができるサービスおよびリソースを提供するCSPI102を備える。ある実施形態において、CSPI102は、顧客のオンプレミスネットワークとCSPI102によってホストされる顧客のVCNとの間の安全な双方向プライベートネットワークを提供する機能を含むセキュアプライベートネットワーク接続サービスを提供する。図1に示す例において、セキュアプライベートネットワーク接続サービスは、CSPI102内のセキュアネットワーク接続システム(SNCS)104によって実施することができる。SNCS104によって提供されるセキュアプライベートネットワーク接続サービスは、顧客のオンプレミスネットワーク内に存在する1つまたは複数のリソース(本明細書においては外部リソースまたはリモート資産としても参照される)が、顧客のVCN内に存在するリソースおよびサービスに安全にアクセスすることができることを可能にする。SNCS104によって提供されるセキュアプライベートネットワーク接続サービスは、付加的に、顧客のVCN内のリソースおよびサービスが、顧客のオンプレミスネットワークに存在する外部リソースに安全にアクセスすることを可能にする。顧客は、顧客のVCN内に存在する任意の他のネイティブリソースに接続しているかのように、そのVCN内から外部リソースにアクセスすることができる。オンプレミス外部リソースと顧客のVCN(すなわち、クラウド)内に存在するリソースとの間の安全なアクセスは、顧客(例えば、企業のユーザ)がそのオンプレミスネットワークとクラウドとの間の入り組んだサイト間ネットワーク接続を設定することを必要とすることなく、顧客が、その外部リソースに何ら変更を行う必要なしに、または、顧客が、サイト間接続によって使用される経路を構成する必要なしに、可能にすることができる。顧客のオンプレミスネットワーク内に存在する外部リソースとクラウド内の顧客のリソースおよびサービスとの間の安全な双方向接続を可能にするためにSNCS104によって実施される処理の追加の詳細は、下記により詳細に説明する。
【0025】
ある手法において、顧客のオンプレミスネットワーク内に存在する外部リソースとクラウド(例えば、顧客のVCN)内の顧客のリソースおよびサービスとの間の安全な双方向接続は、SNCS104によって、多段階プロセスを使用して達成される。第1の段階において、顧客に関連付けられているユーザ(例えば、管理者)が、顧客のオンプレミスネットワークの「外部サイト表現」106を作成することができる。例えば、ユーザは、外部サイト表現106を作成するために、ユーザデバイスによって実行されるアプリケーションのコンソールユーザインターフェイス(UI)108を介して、APIを介して、または、ユーザのデバイスによって実行されるコマンドラインインターフェイス(CLI)を介して、SNCS104と相互に作用することができる。外部サイト表現(例えば、106)は、顧客の外部サイト(例えば、オンプレミスネットワーク/オンプレミスデータセンタ)の論理または仮想表現を表すことができ、外部サイト識別子およびテナント(顧客)識別子によって識別することができる。例として外部サイト表現106は、顧客のオンプレミスネットワークの一部分およびオンプレミスネットワーク内に存在する1つまたは複数の外部リソースのサブセットを論理的に表す高レベルコンテナリソースを表すことができる。
【0026】
第2の段階において、ユーザが、エージェント112をダウンロードし、外部サイト表現106内にエージェント112をインストール/構成する。ある実施形態において、エージェント112は、ユーザがSNCS104によって提供されるセキュアプライベート接続サービスに加入するときに、SNCS104によって提供されるダウンロードパッケージの一部としてユーザによってダウンロードされるソフトウェアアプリケーションであり得る。エージェント112は、ユーザによって、コンソールUI108を介して外部サイト表現106内にインストールおよび構成され得る。
【0027】
第3の段階において、エージェント112を外部サイト表現106内にインストールするのに成功すると、SNCS104が、エージェント112を認証し、顧客のテナント特有のオーバーレイネットワーク128のセットアップを指揮する。テナント特有のオーバーレイネットワーク128は、SNCSによって提供されるサービスに加入している各テナント(顧客)のためにSNCS104によって物理ネットワークの上に構築される仮想オーバーレイネットワークを表すことができる。テナント特有のオーバーレイネットワーク128は、顧客の外部サイト表現106とCSPI内の顧客のVCN148との間に安全なプライベートネットワーク接続を確立するために使用される。図1に示す実施形態に示すように、テナント特有のオーバーレイネットワーク128は、1つまたは複数のトンネルホスト(本明細書においてはトンネル仮想マシンとしても参照される)、トンネルVM-1 116およびトンネルVM-2 122のセット、ならびに、1つまたは複数のリソースホスト(本明細書においてはリソース仮想マシンとしても参照される)、リソースVM-1 130およびリソースVM-2 132のセットを含むコンピューティングノードの分散された水平方向にスケーラブルなフリートを含むことができる。ホスト(例えば、トンネルホストまたはリソースホスト)は、テナント特有のオーバーレイネットワーク128内で互いに相互接続されているコンテナ(本明細書においてはシャードとしても参照される)のセットから構成され得る。トンネルVM116および122は、テナントごとのトンネルシャードを実行するために使用される。例えば、図1に示すように、トンネルVM-1 116は、CSPIの特定のテナント/顧客のトンネルシャード120を実行するために使用され、トンネルVM-2 122は、トンネルシャード126を実行するために使用される。各トンネルシャード120または126は、顧客の外部サイト表現106への安全な接続を提供する役割を担う。リソースVM130および132のセットは、テナントリソースシャードごとに実行するために使用することができる。例えば、図1に示すように、リソースVM-1 130は、そのテナント/顧客のリソースシャード136を実行するために使用され、リソースVM-2 132は、リソースシャード140を作動させるために使用される。リソースシャードは、顧客のVCNからトラフィックを受信し、それを顧客の外部サイト表現に転送するために使用することができる。顧客の外部サイト表現106と顧客のVCN148との間の安全な接続を提供するために図1に示すトンネルシャードおよびリソースシャードによって実施される動作の追加の詳細は、図1に詳細に記載されている。
【0028】
各トンネルVM(116、122)およびリソースVM(130、132)は、付加的に、それぞれホストマネジャー(118、134)によって構成される。ホストマネジャー(118、134)は、トンネルVMおよびリソースVM上で実行するプロセスを表す。ホストマネジャー(118または134)は、トンネルおよびリソースシャードを作成するために使用されるAPIを実装することができる。ある実施態様において、ホストマネジャー(118、134)は、ステートレスとすることができ、ユーザから(API108を介して)作成されるべきシャードのタイプ(トンネルまたはリソースシャード)およびシャードのある構成に関する命令を受信することによって、命令モードにおいて(すなわち、ホストマネジャーが実施するための一連のコマンドとして)動作することができる。ホストマネジャーは、付加的に、トンネルシャードおよびリソースシャードのステータスを収集および監視する役割を担うことができる。
【0029】
SNCS104が上述したようにテナント特有のオーバーレイネットワーク128を顧客向けにセットアップした後、第4の段階において、ユーザは、オンプレミス資産(例えば、外部リソース114A)を、そのVCN内の外部エンドポイントとして、外部サイト表現106内に登録する。外部リソース114Aは、顧客が顧客のVCN内に存在するリソースおよびサービスとの安全な双方向接続を確立することを意図する顧客のオンプレミスネットワーク内に存在するデータベース、コンピューティングインスタンス、アプリケーションなどのようなオンプレミスリソースまたは資産を表すことができる。外部リソース114Aを登録するために、ユーザは(コンソールUI108を介して)そのVCN148からの安全なプライベートネットワーク接続を可能にされるべき外部リソース(例えば、114A)を識別し、コンソールUI108を使用して(またはAPIを介して)外部リソースをそのVCN内の外部エンドポイントとして登録する。外部リソースの登録の一部として、ユーザは、SNCSによって提供されるコンソールUIまたはAPIを介して外部リソースに関連付けられているオンプレミス物理IPアドレス、外部リソースがアクセス可能であるポート番号、および、外部リソースのホスト名(または完全修飾ドメイン名(FQDN))などの外部リソースに関連する構成情報を提供する。ユーザはまた、外部リソースの外部エンドポイントが作成されるべきである顧客のVCN内のサブネットも選択する。SNCSは、構成情報を受信し、外部リソースの外部エンドポイントを顧客のVCN内に作成する。外部エンドポイントは、顧客のVCN内のIPアドレス、ポート番号およびFQDN(ホスト名)によって識別される。
【0030】
次いで、第5の段階において、SNCS104が、(制御プレーンAPIを介して)外部エンドポイントの外部リソース表現を顧客のVCN内に作成する。ある実施態様において、外部リソース表現の作成は、リモートマウントポイントVNICを作成することと、外部エンドポイントに関連付けられているIPアドレスをVNICに割り当てることとを含む。次いで、SNCSは、(制御プレーンAPIを介して)VNICを(ワーカインターフェイスを介して)リソースシャードに論理的にアタッチすることが可能であるリソースVM上でリソースシャードを作成する。
【0031】
第6の段階において、エージェント112は、顧客のVCN148内で外部リソース表現114A向けに作成されたVNIC142に関連付けられる構成情報156をダウンロードして読み出し、構成情報156を登録された外部リソース114A上にコピーする。構成情報は、例えば、VNICの仮想IPアドレス、VNICに関連付けられているコンピューティングインスタンスに関連付けられる完全修飾ドメイン名、および、顧客に関連付けられている仮想クラウドネットワークのクラウド識別子を含み得る。構成情報156を使用して、エージェント112は、外部リソース114Aの論理インターフェイス158を作成/プロビジョンする。論理インターフェイス158は、IPアドレスから成るソフトウェアエンティティを表すことができる。ある実施態様において、エージェント112によって論理インターフェイス158を作成またはプロビジョンすることは、エージェントによって、外部リソース表現向けに作成されたVNIC142に割り当てられた仮想IPアドレスを論理インターフェイス158に割り当てることを含む。
【0032】
外部リソース114Aは、顧客のVCN内に存在する外部リソース表現のVNIC142に対応する仮想IPアドレスを割り当てられている論理インターフェイス158をプロビジョンされているため、この時点で、外部リソースは、顧客のVCNの一部になり、SNCS104によって提供されるセキュアプライベートネットワーク接続サービスを使用することによってクラウド内(例えば、顧客のVCN148内)にあるリソースおよびサービスに安全にアクセスすることが可能である。例えば、外部リソース114Aは、エージェント112を介してSNCS104内のトンネルホストへの接続を確立することによって、その論理インターフェイス158を介して、顧客のVCN148内の計算インスタンス150または顧客のVCN内のサービス152(例えば、ストリーミングサービスまたはオブジェクト記憶サービス)に安全に到達/アクセスすることができる。同様に、顧客のVCN148内のクライアントアプリケーションは、顧客のVCN148内の任意の他のネイティブリソースに接続しているかのように、外部リソースのVNIC表現142を使用して顧客のオンプレミスネットワーク内の外部リソース114Aに安全にアクセスするために、SNCS104によって提供されるサービスを使用することができる。このように、顧客のオンプレミスネットワーク内に存在する外部リソースとクラウド(例えば、顧客のVCN)内の顧客のリソースおよびサービスとの間の安全な双方向接続は、SNCS104によって達成される。
【0033】
図2は、ある実施形態による、顧客のオンプレミスネットワーク内に存在する顧客の外部リソースと顧客のVCN内に存在するリソースおよびサービスとの間の安全なプライベートネットワーク接続を提供するための、図1に示すシステムおよびサブシステムによって実施される動作の追加の詳細を示す。図2に示すシステムおよびサブシステムは、コンピューティングシステム、ハードウェア、またはそれらの組み合わせの1つまたは複数の処理装置(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)を使用して実装することができる。ソフトウェアは、非一時的記憶媒体上に(例えば、メモリデバイス上に)記憶することができる。図2に示す分散環境200は、例示に過ぎず、特許請求される実施形態の範囲を不当に限定するようには意図されていない。多くの変形、代替、および修正が可能である。例えば、いくつかの他の実施形態において、図2に示す分散環境は、図2に示されているよりも多いもしくは少ないシステムもしくは構成要素を有してもよく、2つ以上のシステムを組み合わせてもよく、または、システムの異なる構成もしくは配置を有し得る。本発明者らは、図2において、大部分は発明1(IaaS272.1)に記載されているシステムアーキテクチャ(SNCS)に基づくシステムを記載している。下記の図2に関する説明を検討し、より明瞭にするために必要であれば、追加/編集されたい。
【0034】
図1において以前に説明したように、顧客のオンプレミスネットワークとCSPI102によってホストされる顧客のVCNとの間の安全なプライベートネットワーク接続を提供するためにSNCS104によって実施される接続プロセスの一部として、顧客に関連付けられているユーザ(例えば、管理者)は、顧客のオンプレミスネットワークの「外部サイト表現」(例えば、106)を作成し、外部サイト表現内でエージェント(例えば、112)を構成し、オンプレミス資産を外部サイト表現内に登録し、登録された外部リソースについて顧客のVCN内にリモートマウントポイント(本明細書においてはエンドポイントとしても参照される)を作成する。エージェント(例えば、112)を外部サイト表現内にインストールするのに成功すると、エージェント112は、公衆ネットワーク(例えば、インターネット110)を介したSNCS104への仮想プライベートネットワーク(VPN)接続(本明細書においてはVPNトンネルとしても参照される)を確立する。VPN接続は、顧客の外部サイト表現106と顧客のVCN148との間の暗号化接続である。ある実施態様において、VPN接続は、セキュアトンネリングプロトコル(例えば、レイヤ2トンネリングプロトコル(L2TP)プロトコル)を利用して、インターネット110を介したSNCS104への安全なプライベートネットワーク接続を確立する。エージェント112が外部サイト表現106内にインストールされると、エージェントは、エージェント112に関連付けられるコンパートメント識別子および構成ファイル内の外部サイト表現識別子などの情報をSNCS104に渡すことによって、SNCS104によってそれ自体をアクティブ化するためのブートストラッププロセスを開始する。エージェント112がそれ自体をブートストラップすると、エージェントは、登録およびアクティブ化プロセスを開始するSNCSの制御プレーンと通信する。アクティブ化プロセス中、制御プレーンは、VPNサーバへの安全なトンネル接続を確立するためにゲートウェイ機器によって必要とされるすべての必要な情報(例えば、証明書、公衆IDなど)を返信する。次いで、エージェント112は、SNCSに設置されているVPNサーバへの安全なVPNトンネル接続を開くVPNクライアントプログラムを実行することによって、SNCS104への安全なVPN接続を確立する。安全なトンネルは、SNCS104内のトンネルVM(例えば、116)上に配置されているトンネルシャード(例えば、120)上で終端する。
【0035】
図1に示す特定の実施態様において、エージェント112は、複数のトンネルシャード、すなわち、それぞれトンネルシャード1 120およびトンネルシャード2 126内で作動する2つの異なるVPNサーバ、すなわち、VPNサーバ1 224およびVPNサーバ2 226上で終端するトンネルを確立するように各々が構成されている2つのVPNクライアント、すなわち、VPNクライアント1 206およびVPNクライアント2 208を有して構成されている。図2に示す実施態様において、エージェント112のすべての物理的な設置の結果として、2つのトンネルが確立され、したがって、1つのトンネルが故障した場合、トラフィック(すなわち、ネットワークパケット)は、自動的に第2のトンエルを回してルーティングすることができる。図2に示す特定の実施態様は2つのトンネルを示しているが、他の実施態様において、SNCS104は、エージェント112のすべての物理的な設置のために3つ以上の冗長なトンネルを実装するように構成されてもよく、または、単にエージェント112の設置を受けて単一のトンネルを実装し得る。
【0036】
ある実施形態において、エージェント112は、ボーダーゲートウェイプロトコル(BGP)などの標準的な外部ゲートウェイプロトコルを使用して、トンネルシャード120および126とのBGPピアリングセッションを確立する。BGPを使用して、エージェント112は、エージェント112内に実装されている公衆インターフェイス220を介して、トンネルシャードとルーティングおよび到達可能性情報を交換する。BGPピアリングセッションに必要とされる構成情報の一部として、エージェント112は、トンネルシャードによって受信されるそのローカル経路テーブル212(本明細書においてはルーティング情報ベース(RIB)としても参照される)にそのオンプレミスIPアドレスを注入する。トンネルシャードは、適切な経路フィルタリングポリシを適用した後、ルーティング情報をそのローカル経路テーブル(228および236)にインポートする。経路フィルタリングは、欠陥のあるエージェント112が任意の経路をトンネルシャードに注入しないことを保証することが好ましい。ある例において、エージェント112は、付加的に、ルーティングマネジャー214を備える。ルーティングマネジャー214は、ルーティングスイート(例えば、Quagga)の一部であるオープンソースルーティングマネジャー(例えば、Zebra)を使用して実装され得る。BGPピアリングセッションが、経路を学習し、それをその経路テーブル212にインポートすると、BGPピアリングセッションは、最良経路計算を実施し、ルーティングマネジャー214を使用して、最良の経路をローカルカーネルに追加する。
【0037】
トンネルシャード(例えば、120、126)は、1つまたは複数のコンテナのセットから構成され得る。ある実施態様において、トンネルシャード(120または126)は、トンネルシャードが、エージェント112と、テナント特有のオーバーレイネットワーク128の一部である他のシャード(例えば、リソースシャード136および140)の両方と通信することを可能にする様々なネットワークインターフェイスをセットアップするために使用することができるシェルコンテナを備え得る。図2に示す実施形態において、トンネルシャード内のシェルコンテナネット内に実装されるネットワークインターフェイスは、外部サイトインターフェイス(esi)、トンネルインターフェイスおよびシャードバックエンドインターフェイスを含み得る。例えば、トンネルシャード1 120内に実装されるネットワークインターフェイスは、トンネルインターフェイス216、外部サイトインターフェイス222およびシャードバックエンドインターフェイス234を含む。同様に、トンネルシャード2 126内に実装されるネットワークインターフェイスは、トンネルインターフェイス218、外部サイトインターフェイス223およびシャードバックエンドインターフェイス235を含む。トンネルシャード(例えば、120または126)は、付加的に、外部ゲートウェイ機器112内で作動するVPNクライアント(206、208)へのVPNトンネルを確立するために使用されるVPNサーバ(224、226)から構成される。外部サイトインターフェイス(222、223)は、VPNクライアントがその上で作動するエージェント112にとって既知であり、トンネルシャードへのトンネルを確立するために使用される公衆IPによって識別することができる。VPNクライアント(例えば、206、208)がVPNサーバ(224、226)に接続すると、トンネルインターフェイス(216、218)が作成され、トンネルシャードの事前構成されたVPNサブネット内に配置される。
【0038】
ある実施態様において、各トンネルシャード(例えば、120、126)は、ボーダーゲートウェイプロトコル(BGP)を利用して、外部ゲートウェイ機器とトンネルシャードとの間のBGPピアリングセッションおよびトンネルシャードとリソースシャードとの間のBGPピアリングセッションを確立することができる。BGPピアリングセッションは、シャードバックエンドインターフェイス(234、235)を介してリソースシャードとルーティングおよび到達可能性情報を交換し、外部サイトインターフェイス(222、223)を介して外部サイト表現106とルーティングおよび到達可能性情報を交換するために使用される。BGPピアリングセッションに必要とされる構成情報の一部として、テナント特有のオーバーレイネットワーク128を識別するIPアドレスが、それぞれトンネルシャード120、126内に実装されている経路テーブル228、236(すなわち、ルーティング情報ベース(RIB))に追加される。ある実施態様において、クラスレスドメイン間ルーティング(CIDR)技法が、IPアドレスをテナント特有のオーバーレイネットワークに割り振るために使用され得る。経路テーブル(228、236)は、リソースシャード(136、140)および外部サイト表現106などの特定のネットワーク宛先への経路を列挙する。いくつかの事例において、経路テーブル(228、236)はまた、それらの経路に関連付けられるメトリック(距離)も列挙する。リソースシャードとのBGPピアリングセッションが確立されると、経路テーブル内の経路は、リソースシャードへと伝搬される。図2に示すように各トンネルシャード(120、126)は、付加的に、ルーティングマネジャー(228、240)を備える。ルーティングマネジャー(228または240)は、外部ゲートウェイ機器112内に実装されているルーティングマネジャー(214)と同様に実装され得る。BGPが経路を学習し、それらの経路をトンネルシャード内の経路テーブルにインポートすると、BGPは、最良経路計算を実施し、ルーティングマネジャーを使用して、最良の経路を外部サイト表現106およびリソースシャード136、140にプッシュする。
【0039】
リソースシャード(136、140)は、コンテナのセットから構成され得る。ある実施態様において、リソースシャード(136、140)は、トンネルシャード(116、126)との仮想トンネルエンドポイントVTEP(242、243)をセットアップするために使用することができるシェルコンテナを備えることができる。各リソースシャード(136、140)は、BGPを使用して、トンネルシャードとのピアリングセッションを確立し、仮想トンネルエンドポイント(242、243)を介してトンネルシャードとルーティングおよび到達可能性情報を交換することができる。リソースシャード(136、140)は、付加的に、トンネルシャード内に実装されているルーティングマネジャー(232または240)と同じ機能を実施するように構成されているルーティングマネジャー(250、260)を備える。各リソースシャード(136、140)は、付加的に、プロキシサーバ(244、254)を含む。プロキシサーバ(244または254)は、顧客のVCN148内のクライアントアプリケーション144からの接続を受け入れ、外部サイト表現内の外部リソースへの新たな接続を開始するように構成することができる。
【0040】
ある実施態様において、すべての登録された外部エンドポイント(すなわち、外部サイト表現内の外部リソースに対応する)について、一意のプロキシサーバコンテナが立ち上げられ、リソースシャードにアタッチされる。外部リソースを登録し、顧客のVCN内の登録された外部エンドポイントのリモートマウントポイントVNICを作成するとき、ユーザは、外部リソースのIPアドレス、外部リソースのポート番号、および外部リソースの名前などの構成情報をSNCS104に提供することができる。この構成情報は、プロキシサーバ内にプロビジョンされ、顧客のVCN内のクライアントアプリケーションによって、外部リソースに接続するために使用される。外部リソースがSNCSによって顧客のVCN内の外部エンドポイントとして首尾よく登録されると、SNCS104は、(制御プレーンAPIを介して)VNICを作成し、外部エンドポイントに関連付けられているIPアドレスをVNICに割り当てる。
【0041】
図2に示す例において、登録された外部エンドポイント(すなわち、外部サイト表現内の外部リソース)は、外部サイト表現106内に存在するデータベース202を表す。プロキシサーバ(244、254)は、登録された外部エンドポイント202向けに作成されているVNIC206に割り当てられている仮想IPアドレスをリスンする。これによって、外部サイト表現内の他の登録された外部リソースにアクセスするために同じVNIC IPが使用され得ないことが保証される。顧客のVCN内で作動しているクライアントアプリケーション144が、外部データベース202内に記憶されている情報を得るためのクエリを受信すると、クライアントアプリケーションは、顧客のVCN内のVNIC IPにネットワークパケットを送信する。ネットワークパケットは、リソースシャード(136、140)にアタッチされているワーカVNIC(251、252)によって受信される。ワーカVNICは、VNICの仮想IPアドレスを有して構成されており、それによって、プロキシサーバ(244、254)を介して外部サイト表現内の登録された外部リソースへの接続を開始する。プロキシサーバ(244、254)は、VNIC206に割り当てられた仮想IPアドレスを外部サイト表現106内の外部リソース114Aの現実の/物理IPアドレスに変換するためのネットワークアドレス変換(NAT)を実施する。プロキシサーバ(244、254)を使用するリソースシャード(例えば136、140)は、トンネルシャード(120、126)を介したエージェント112への接続を開始する。エージェント112は、トンネルシャード(120、126)からネットワークパケットを受信し、次いで、パケットを外部サイト表現106内の登録された外部リソース(すなわち、データベース202)にルーティングする。プロキシサーバ(244、254)は、付加的に、外部リソースへのネットワークトラフィックをトンネルシャードにわたって負荷平衡させる機能を含む。ある実施形態において、プロキシサーバ(244、254)は、複数のクライアントアプリケーションからの接続を、外部サイト表現に向けた単一の接続に多重化するように構成することができる。
【0042】
同様に、外部サイト表現106内に存在する登録された外部リソース(すなわち、データベース202)は、顧客のVCN内に存在するリソース(例えば、計算インスタンス150)またはサービス(例えば、プライベートエンドポイントVNIC152)にリーチアウトし、安全にアクセスすることができる。図1において前述したように、エージェント112は、外部リソース202の論理インターフェイス204を作成/プロビジョンする。外部リソース114Aの論理インターフェイス158を作成し、データベース202のVNIC表現206の仮想IPアドレスを論理インターフェイスに割り当てることによって、データベース202(顧客のオンプレミスネットワーク内に存在する)は、SNCS104によって提供されるセキュアプライベートネットワーク接続サービスを使用して、顧客のVCN148内のプライベートエンドポイントVNIC142を介して顧客のVCN148内の計算インスタンス150またはサービス156(例えば、CSPI内のストリーミングサービスまたはオブジェクト記憶サービス)に安全にアクセスすることが可能である。例えば、図2に示す実施形態において、エージェント112は、顧客のVCN内のリソース(例えば、150)に関連付けられている情報を要求するクエリをデータベース202から受信することができる。次いで、エージェント112は、クエリに対応するネットワークパケットをトンネルシャード(120、126)に送信する。次いで、トンネルシャードは、リソースシャード(136、140)への接続を開始する。リソースシャード(136、140)内のプロキシサーバ(244、254)は、外部サイト表現106内の外部リソースの現実のIPアドレスを顧客のVCN内の外部リソース(例えば、データベース202)のVNIC表現206の仮想IPアドレスに変換するためのネットワークアドレス変換(NAT)を実施する。次いで、リソースシャード(136、140)にアタッチされているワーカVNIC(251、252)は、クエリに対応するネットワークパケットを顧客のVCN内の要求しているリソース(例えば、150)に送信する顧客のVCN内のデータベース202のVNIC表現206への接続を開始する。このように、SNCS104は、顧客のオンプレミスネットワーク内に存在する外部リソース(例えば、データベース202)と顧客のVCN(すなわち、クラウド)内のリソース(例えば、150)およびサービス(例えば、152)との間に安全なプライベート双方向ネットワーク接続が確立されることを保証する。
【0043】
ある実施態様において、顧客のVCN148からのプライベート接続を要求する登録された外部エンドポイントは、本明細書においては顧客のVCN148内の「SVNIC」としても参照される、サービスVNICとして実装され得る。SVNICは、CSPI102によって、仮想クラウドネットワーク間のトラフィックを処理し、送信するために複数のVNIC(例えば、サービスVNIC254)をホストすることが可能であるCSPI102によって実施される水平方向にスケーラブルなサービスを表すことができるサービス型VNIC(VNICaaS)システム(図2には示さず)を使用して実装することができる。具体的には、VNICaaSは、VNICがサービス(すなわち、SVNIC)として表現または使用されることを可能にする仮想ネットワーキング特徴である。VNICaaSは、特定のSmartNIC、または、VNICをホストするための仮想ネットワーク内の計算インスタンスのホストを必要とすることなく、VNICの機能を提供する。登録されたエンドポイントをSVNICとして表現するために使用される技法は、「Techniques for high performant virtual routing capabilities」と題する米国特許出願第17/175,573号に詳細に記載されている。米国特許出願第17/175,573号に記載されている技法は例として意図されているに過ぎず、限定であるようには意図されていない。代替的な実施形態において、登録されたエンドポイントを表現し、仮想クラウドネットワーク間のトラフィックを処理および送信するために、様々な他の技法も使用され得る。SVNICは、すべての登録された外部エンドポイント(例えば、データベース202)向けに作成されるため、SVNICごとに柔軟な数のワーカを構成することができる。特定の実施態様において、すべてのSVNICが、異なるリソースシャード(例えば、136、140)にアタッチされている2つのワーカVNIC(例えば、251、252)に関連付けられ得る。ワーカVNICは、リソースシャードに入れられ、SVNIC IPによって構成される。
【0044】
図2に示す特定の実施態様において、単一のエージェント112が、外部サイト表現106内にインストールされており、SNCS104によって実装されるトンネルフリート上に配置される必要がある合計2つのトンネルシャードをもたらす2つのトンネルを確立するように構成されている。この実施態様において説明されているような固定数のトンネルシャードについて、すべてのリソースシャードは、BGPピアの固定セットを、それらのピアの静的アドレス解決プロトコル(例えばARP)エントリとともに用いて事前構成することができる。ある手法において、トンネルシャード上のBGPコンテナは、BGPが入来する接続を受け入れることができる場所からIPアドレスのCIDRブロックを指定することができる「ダイナミックBGPピア」を用いて構成することができる。このCIDRブロックは、テナント特有のオーバーレイネットワークのCIDRに設定することができ、したがって、リソースシャードが成長/縮小するにつれて、トンネルシャード上のBGPピアも、適切に変化する。リソースシャードの観点から、この時点で、すべてのリソースシャードは2つのBGPピアリング接続を有し、BGPピアの各々が同じCIDR経路を、外部サイト表現から学習するオンプレミスネットワークに伝搬するため、すべてのリソースシャードが、オンプレミスネットワークに向けた2つのコストの等しい経路を有する。同様に、外部ゲートウェイの観点から、エージェント112は、SNCS104に向けた2つのトンネルを確立し、トンネルシャードは、テナント特有のオーバーレイネットワークの経路をエージェント112に公告し、次いで、エージェントは、テナント特有のオーバーレイネットワークへの適切な経路をインストールする。
【0045】
SNCS104によって実装される本開示の新規の改善されたアーキテクチャを使用して、企業のユーザ(例えば、管理者)が明示的に外部リソースを構成し、経路を公告し、またはサイト間ネットワーク接続をセットアップする必要なしに、顧客の外部サイト表現内の外部リソースと、クラウド内の顧客のVCN内に存在するリソースおよびサービスとの間の安全なプライベート双方向ネットワーク接続を達成することができる。記載されているように、安全なプライベート双方向ネットワーク接続は、SNCSによって、顧客の外部サイト表現と顧客のVCNとの間の暗号化接続を使用して、および、顧客向けにテナント特有のオーバーレイネットワークをセットアップする前にエージェントを認証することによって、確立される。SNCS104は、SNCS104によって提供されるサービスを使用する各テナント/顧客のためのネットワーク要素およびコンピューティングノードのロバストなインフラストラクチャ(すなわち、テナント特有のオーバーレイネットワーク128)を実装することによって、顧客のオンプレミス環境とCSPIとの間のネットワークトラフィックを処理するための高性能で、スケーラブルな、かつ高可用性のサイト間ネットワーク接続を提供する。テナント特有のオーバーレイネットワーク128内のトンネルホストは、顧客の外部サイト表現106への安全な接続を提供するために使用され、リソースホストは、顧客のVCNからトラフィックを受信し、それを顧客の外部サイト表現に転送するために使用される。リソースホストは、付加的に、外部サイト表現内の外部リソースからトラフィックを受信し、それを顧客のVCN内に存在するリソースまたはサービスに転送することが可能である。テナント特有のオーバーレイネットワークによって実装されるネットワーク要素およびコンピューティングノードのロバストなインフラストラクチャを使用することによって、企業は、そのVCN内の任意の他のネイティブリソースに接続しているかのように、クラウドからその外部リソースに安全にアクセスすることができる。企業のユーザは、そのオンプレミスネットワークとクラウドとの間の入り組んだサイト間ネットワークを設定することなく、その外部リソースに何ら変更を行うことなく、かつ、サイト間接続によって使用される経路を構成することなく、その外部リソースにアクセスすることができる。同様に、外部リソースの論理インターフェイスを作成し、論理インターフェイスを外部リソースのVNIC表現の仮想IPアドレスに関連付けることによって、外部リソース(顧客のオンプレミスネットワーク内に存在する)は、SNCS104によって提供されるセキュアプライベートネットワーク接続サービスを使用してクラウド内(例えば、顧客のVCN148内)にあるリソースおよびサービスに安全にアクセスすることが可能である。
【0046】
図3は、ある実施形態による、安全なプライベートネットワーク接続を提供するための、図1に示すシステムおよびサブシステムによって実施されるプロセスの例を示す。図3に示す処理は、それぞれのシステム、ハードウェア、またはそれらの組み合わせの1つまたは複数の処理装置(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)内で実施することができる。ソフトウェアは、非一時的記憶媒体上に(例えば、メモリデバイス上に)記憶することができる。図3に提示されており、下記に説明されるプロセス300は、例示的であり、非限定的であるように意図されている。図3は、特定のシーケンスまたは順序において行われる様々な処理ステップを示しているが、これは限定であるようには意図されていない。ある代替的な実施形態において、ステップは、何らかの異なる順序で実施されてもよく、または、一部のステップはまた、並列に実施され得る。図1に示す実施形態などのある実施形態において、図3に示す処理は、テナント特有のオーバーレイネットワーク128を備えるコンピューティングノード(例えば、116、122、130および132)によって実施され得る。
【0047】
図3に示す処理は、顧客に関連付けられているユーザ(例えば、管理者)が、顧客のオンプレミスネットワークの外部サイト表現(例えば、106)を作成しており、外部サイト表現106内のエージェント(例えば、112)を構成していると仮定する。図4に示す処理は、SNCS104がエージェント112を認証しており、顧客のためのコンピューティングノードの分散された水平方向にスケーラブルなフリートを含むテナント特有のオーバーレイネットワーク(例えば、128)を構成/確立しているとさらに仮定する。図1において記載されているように、1つまたは複数のコンピューティングノードのセットは、リソースホスト(すなわち、リソース仮想マシン130、132)およびトンネルホスト(すなわち、トンネル仮想マシン116、122)を含む。
【0048】
図3に示す処理は、ブロック302において、SNCS104が、コンピューティングノードの分散された水平方向にスケーラブルなフリートを含むテナント特有のオーバーレイネットワーク(例えば、128)を実行するときに開始することができる。テナント特有のオーバーレイネットワークは、顧客の外部サイト表現とCSPI内の顧客のVCN(例えば、148)との間に安全なプライベートネットワーク接続を確立するために使用される。
【0049】
ブロック304において、SNCSは(制御プレーンAPIを介して)、顧客のオンプレミスネットワーク内に存在する外部リソースを、顧客のVCN内の外部エンドポイントとして登録する。外部エンドポイントは、顧客のVCN内のIPアドレスによって識別される。前述したように、外部リソースは、顧客がそのVCN内からの安全な双方向プライベートネットワーク接続を可能にすることを意図する外部サイト表現106内のデータベース、コンピューティングインスタンス、またはアプリケーションを表すことができる。外部リソースの登録の一部として、SNCSのユーザは、コンソールUIまたはAPIを介して外部リソースに関連付けられているオンプレミス物理IPアドレス、外部リソースがアクセス可能であるポート番号、および、外部リソースのホスト名(または完全修飾ドメイン名(FQDN))などの外部リソースに関連する構成情報を提供する。ユーザはまた、外部リソースの外部エンドポイントが作成されるべきである顧客のVCN内のサブネットも選択する。構成情報に基づいて、SNCSは、外部リソースの外部エンドポイントを顧客のVCN内に作成する。外部エンドポイントは、顧客のVCN内のIPアドレス、ポート番号およびFQDN(ホスト名)によって識別される。
【0050】
ブロック306において、SNCS内の第1のコンピューティングノード(例えば、リソースVM130またはリソースVM132)が、顧客のVCN内の外部エンドポイントの外部リソース表現を作成する。ある実施態様において、外部リソース表現の作成は、コンピューティングノードによって、VNICを作成することと、外部エンドポイントのIPアドレスをVNICに割り当てることとを含む。
【0051】
ブロック308において、第1のコンピューティングノードが、顧客のVCN内の外部リソース表現向けに作成されたVNICに対応する構成情報を、オンプレミスネットワーク内に構成されているエージェント112に送信する。ブロック308において実施される処理の一部として、エージェント112は、構成情報をダウンロードし、オンプレミスネットワーク内に存在する登録された外部リソースにコピーする。前述したように、構成情報は、例えば、VNICの仮想IPアドレス、VNICに関連付けられているコンピューティングインスタンスに関連付けられる完全修飾ドメイン名、および、顧客に関連付けられている仮想クラウドネットワークのクラウド識別子を含み得る。構成情報を使用して、エージェント112は、外部リソース(例えば、114A)の論理インターフェイス(例えば、158)を作成/プロビジョンする。ある実施態様において、エージェント112によって論理インターフェイスを作成またはプロビジョンすることは、エージェントによって、外部リソース表現向けに作成されたVNIC142に割り当てられた仮想IPアドレスを外部リソース114A向けにプロビジョンされている論理インターフェイス158に割り当てることを含む。
【0052】
ブロック310において、第2のコンピューティングノード(例えば、トンネルVM116またはトンネルVM122)が、顧客のVCN内に存在するリソース(例えば、計算インスタンス150)に関連付けられている情報をクエリするための要求を受信する。ある例において、要求は、オンプレミスネットワーク内に存在する外部リソース(例えば、114A)によって、その論理インターフェイス158を介して送信される。例えば、顧客に関連付けられているユーザは、顧客のVCN内に存在する計算インスタンス150に関連付けられている情報をクエリするための要求を(UI108を介して)顧客のオンプレミスネットワーク内に存在する外部リソースに送信することができる。次いで、外部リソースは、オンプレミスネットワーク内に存在するエージェント112にクエリを送信することができる。エージェント112は、クエリ要求を受信し、クエリ要求に対応するネットワークパケットを、トンネルVM内で作動しているトンネルシャード(120または126)に送信する。
【0053】
ブロック312において、第2のコンピューティングノード(例えば、トンネルVM116またはトンネルVM122)が、リソースシャード(例えば、136または140)を介して、外部リソースにプロビジョンされた論理インターフェイスと、顧客のVCN内の外部リソース表現向けに作成されたVNICとの間の接続を確立する。特定の実施態様において、トンネルシャード(例えば、120または126)は、外部リソースに割り当てられた現実の/物理IPアドレスをVNIC142の仮想IPアドレスに変換し、リソースシャード(136または140)を介したVNIC142への接続を開始するための機能を含むことができる。次いで、リソースシャードは、顧客のVCN内のリソース(例えば、150)への接続を開始する。
【0054】
ブロック314において、第2のコンピューティングノード(例えば、トンネルVM116またはトンネルVM122)が、ブロック410において確立された接続を介して顧客のVCN内に存在するリソースに要求を送信する。ブロック412において、第2のコンピューティングノードが、確立された接続を介して要求に対応する結果を得る。次いで、結果は、エージェント112を介して外部サイト表現内に存在する外部リソースに送信される。例えば、リソースが顧客のVCN内で作動するデータベースである場合、結果は、データベース内の1つまたは複数のテーブル内に格納された情報を含み得る。
【0055】
図4は、ある実施形態による、顧客のオンプレミスネットワーク内に存在する外部リソースと顧客の仮想クラウドネットワーク内の外部リソースの表現との間のネットワークパケットの流れを示すフローチャートである。図4に示す処理は、それぞれのシステム、ハードウェア、またはそれらの組み合わせの1つまたは複数の処理装置(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)内で実施することができる。ソフトウェアは、非一時的記憶媒体上に(例えば、メモリデバイス上に)記憶することができる。図4に提示されており、下記に説明されるプロセス400は、例示的であり、非限定的であるように意図されている。図4は、特定のシーケンスまたは順序において行われる様々な処理ステップを示しているが、これは限定であるようには意図されていない。ある代替的な実施形態において、ステップは、何らかの異なる順序で実施されてもよく、または、一部のステップはまた、並列に実施され得る。図2に示す実施形態などのある実施形態において、図4に示す処理は、テナント特有のオーバーレイネットワーク128を備えるコンピューティングノード(例えば、116、122、130および132)によって実施され得る。
【0056】
図4に示す処理は、ブロック402において、顧客のオンプレミスネットワーク(すなわち、顧客の外部サイト表現106)内に存在する外部リソース(例えば、データベース202)が、顧客のVCN(例えば、148)内に存在するリソース(例えば、150)に関連付けられている情報に対するクエリを受信するときに開始することができる。前述したように、顧客に関連付けられているユーザは、顧客のVCN内に存在する計算インスタンス150に関連付けられている情報をクエリするための要求を(UI108を介して)顧客のオンプレミスネットワーク内に存在する外部リソースに送信することができる。次いで、外部リソースは、オンプレミスネットワーク内に存在するエージェント112にクエリを送信することができる。
【0057】
ブロック404において、エージェント112が、クエリを受信し、クエリに対応するネットワークパケットを、トンネルVM内で作動しているトンネルシャード(120または126)に送信する。ある例において、ブロック404において実施される処理の一部として、エージェント112は、ネットワークパケットをトンネルシャードに送信する前に、ネットワークパケットを暗号化することができる。
【0058】
ブロック406において、トンネルシャードが、暗号化ネットワークパケットを受信し、リソースVM内で作動しているリソースシャード(136、140)に暗号化ネットワークパケットを送信する。具体的には、図2に示すように、暗号化ネットワークパケットは、リソースシャード(136、140)にアタッチされているワーカVNIC(251、252)によって受信することができる。
【0059】
ブロック408において、リソースシャード(136、140)が、ネットワークパケットを解読し、外部リソースに割り当てられた物理IPアドレスを、顧客のVCN内の外部リソース表現に関連付けられるVNIC(例えば、206)の仮想IPアドレスに変換するためのネットワークアドレス変換(NAT)を実施する。
【0060】
ブロック410において、リソースシャード(136、140)が、顧客のVCN内の外部リソース表現向けに作成されたVNICにネットワークパケットを送信する。
【0061】
ブロック412において、VNICが、クエリに対応するネットワークパケットを、顧客のVCNに存在するリソース(例えば、150)に送信する。
【0062】
図5は、ある実施形態による、顧客の仮想クラウドネットワーク内の外部リソース表現と顧客のオンプレミスネットワーク内に存在する外部リソースとの間のネットワークパケットの流れを示すフローチャートである。図5に示す処理は、それぞれのシステム、ハードウェア、またはそれらの組み合わせの1つまたは複数の処理装置(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)内で実施することができる。ソフトウェアは、非一時的記憶媒体上に(例えば、メモリデバイス上に)記憶することができる。図5に提示されており、下記に説明されるプロセス500は、例示的であり、非限定的であるように意図されている。図5は、特定のシーケンスまたは順序において行われる様々な処理ステップを示しているが、これは限定であるようには意図されていない。ある代替的な実施形態において、ステップは、何らかの異なる順序で実施されてもよく、または、一部のステップはまた、並列に実施され得る。図2に示す実施形態などのある実施形態において、図5に示す処理は、テナント特有のオーバーレイネットワーク128を備えるコンピューティングノード(例えば、116、122、130および132)によって実施され得る。
【0063】
図5に示す処理は、ブロック502において、顧客のVCN内のクライアントアプリケーション(例えば、144)が、顧客のオンプレミスネットワーク(すなわち、顧客の外部サイト表現106)内に存在する外部リソース(例えば、202)に関連付けられている情報に対するクエリを受信するときに開始することができる。例えば、クエリは、クライアントアプリケーションを介して、顧客に関連付けられているユーザから受信され得る。ブロック502において実施される処理の一部として、クライアントアプリケーション144は、クエリに対応するネットワークパケットを、顧客のVCN内のVNICに割り当てられている仮想IPアドレスに送信することによって、外部リソース表現に関連付けられるVNIC(例えば、206)への接続を開始する。
【0064】
ブロック504において、クライアントアプリケーションが、クエリに対応するネットワークパケットを、SNCS内のリソースVM内で作動しているリソースシャード(136または140)に送信する。具体的には、図2に示すように、ネットワークパケットは、リソースシャード(136、140)にアタッチされているワーカVNIC(251、252)によって受信することができる。リソースシャード(136、140)内のプロキシサーバ(244、254)は、VNICに割り当てられた仮想IPアドレスを外部サイト表現106内の外部リソースの物理IPアドレスに変換するためのネットワークアドレス変換(NAT)を実施し、トンネルシャード(120、126)を介してエージェント112への接続を開始する。
【0065】
ブロック506において、リソースシャードが、ネットワークパケットをトンネルシャード(120、126)に送信する。ブロック506において実施される処理の一部として、トンネルシャードは、パケットを外部サイト表現106内のエージェント112に送信する前に、リソースシャードから受信されるネットワークパケットを暗号化することができる。
【0066】
ブロック508において、トンネルシャードが、顧客の外部サイト表現内に存在するエージェント112にネットワークパケットを送信する。ブロック508において実施される処理の一部として、エージェント112は、ネットワークパケットを外部サイト表現(例えば、106)内の外部リソース(例えば、202)に送信する前に、ネットワークパケットを解読する。
【0067】
ブロック510において、エージェント112が、顧客の外部サイト表現内に存在する外部リソース(例えば、202)にネットワークパケットを送信する。外部リソースは、クエリに対応するネットワークパケットを受信し、クエリに対応する応答ネットワークパケットを生成する。次いで、応答ネットワークパケットは、外部リソースによってクライアントアプリケーションに返送することができる。例えば、応答ネットワークパケットフローの一部として、クエリに対する応答に対応するネットワークパケットが、外部リソースからエージェントに送信される。エージェントは、ネットワークパケットを暗号化し、暗号化ネットワークパケットをトンネルシャードに送信する。トンネルシャードは、暗号化パケットを受信し、リソースシャードにパケットを送信する。リソースシャードは、ネットワークパケットを解読し、外部リソースに割り当てられた物理/現実のIPアドレスを、顧客のVCN内の外部リソース表現に関連付けられるVNICの仮想IPアドレスに変換するための逆ネットワークアドレス変換(NAT)を実施する。次いで、リソースシャードは、応答ネットワークパケットをVNICに送信し、VNICは、次いで、顧客のVCN148内の要求しているクライアントアプリケーション144に応答パケットを送信する。
【0068】
例示的な仮想ネットワーキングアーキテクチャ
クラウドサービスという用語は、一般的に、クラウドサービスプロバイダ(CSP)によって、CSPによって提供されるシステムおよびインフラストラクチャ(クラウドインフラストラクチャ)を使用して要求に応じて(例えば、サブスクリプションモデルを介して)ユーザまたは顧客に利用可能にされるサービスを指すために使用される。典型的には、CSPのインフラストラクチャを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは別個のものである。したがって、顧客は、サービスのための別個のハードウェアおよびソフトウェアリソースを購入する必要なしに、CSPによって提供されるクラウドサービスを利用することができる。クラウドサービスは、顧客がサービスの提供に使用されるインフラストラクチャの獲得に投資を行う必要なしに、アプリケーションおよびコンピューティングリソースへの容易でスケーラブルなアクセスを、加入している顧客に提供するように設計されている。
【0069】
様々なタイプのクラウドサービスを供給するいくつかのクラウドサービスプロバイダが存在する。サービス型ソフトウェア(SaaS)、サービス型プラットフォーム(PaaS)、サービス型インフラストラクチャ(IaaS)などを含む様々な異なるタイプまたはモデルのクラウドサービスが存在する。
【0070】
顧客は、CSPによって提供される1つまたは複数のクラウドサービスに加入することができる。顧客は、個人、組織、企業などのような任意のエンティティとすることができる。顧客がCSPによって提供されるサービスに加入または登録すると、その顧客のテナンシまたはアカウントが作成される。顧客は、その後、このアカウントを介して、アカウントに関連付けられる、加入した1つまたは複数のクラウドリソースにアクセスすることができる。
【0071】
上記で言及したように、サービス型インフラストラクチャ(IaaS)は、1つの特定のタイプのクラウドコンピューティングサービスである。IaaSモデルにおいて、CSPは、顧客によって、自身のカスタマイズ可能なネットワークを構築し、顧客リソースを展開するために使用することができるインフラストラクチャ(クラウドサービスプロバイダインフラストラクチャまたはCSPIとして参照される)を提供する。したがって、顧客のリソースおよびネットワークは、CSPによって提供されるインフラストラクチャによって、分散環境においてホストされる。これは、顧客のリソースおよびネットワークが顧客によって提供されるインフラストラクチャによってホストされる従来のコンピューティングとは異なる。
【0072】
CSPIは、基盤ネットワークまたはアンダーレイネットワークとしても参照される、物理ネットワークを形成する様々なホストマシン、メモリリソース、およびネットワークリソースを含む、相互接続された高性能の計算リソースを含むことができる。CSPI内のリソースは、1つまたは複数の地理的領域にわたって地理的に分散され得る1つまたは複数のデータセンタにわたって分散され得る。これらの物理リソースによって、仮想化ソフトウェアを実行して、仮想化分散環境を提供することができる。仮想化は、物理ネットワークの上にオーバーレイネットワーク(ソフトウェアベースのネットワーク、ソフトウェア定義ネットワーク、または仮想ネットワークとしても知られる)を作成する。CSPI物理ネットワークは、物理ネットワークの上に1つまたは複数のオーバーレイまたは仮想ネットワークを作成するための下層基盤を提供する。物理ネットワーク(または基盤ネットワークまたはアンダーレイネットワーク)は、物理スイッチ、ルータ、コンピュータおよびホストマシンなどのような、物理ネットワークデバイスを含む。オーバーレイネットワークは、物理基盤ネットワークの上で作動する論理(または仮想)ネットワークである。所与の物理ネットワークは、1つまたは複数のオーバーレイネットワークをサポートすることができる。オーバーレイネットワークは、典型的には、カプセル化技法を使用して、異なるオーバーレイネットワークに属するトラフィックを区別する。仮想またはオーバーレイネットワークは、仮想クラウドネットワーク(VCN)としても参照される。仮想ネットワークは、物理ネットワークの上で作動することができるネットワーク抽象化の層を作成するためのソフトウェア仮想化技術(例えば、ハイパーバイザ、ネットワーク仮想化デバイス(NVD)によって実装される仮想化機能(例えば、smartNIC)、トップオブラック(TOR)スイッチ、NVDによって実施される1つまたは複数の機能を実装するスマートTOR、および他のメカニズム)を使用して実装される。仮想ネットワークは、ピアツーピアネットワーク、IPネットワークなどを含む、多くの形態をとることができる。仮想ネットワークは、典型的には、レイヤ3 IPネットワークまたはレイヤ2 VLANのいずれかである。この仮想またはオーバーレイネットワーキング方法は、仮想またはオーバーレイレイヤ3ネットワーキングとして参照されることが多い。仮想ネットワークのために展開されるプロトコルの例は、IP-in-IP(または一般ルーティングカプセル化(GRE))、仮想拡張可能LAN(VXLAN-IETF RFC7348)、仮想プライベートネットワーク(VAN)(例えば、MPLSレイヤ3仮想プライベートネットワーク(RFC4364))、VMwareのNSX、GENEVE(一般ネットワーク仮想化カプセル化)などを含む。
【0073】
IaaSの場合、CSPによって提供されるインフラストラクチャ(CSPI)は、公衆ネットワーク(例えば、インターネット)を介して仮想化コンピューティングリソースを提供するように構成することができる。IaaSモデルにおいて、クラウドコンピューティングサービスプロバイダは、インフラストラクチャ構成要素(例えば、サーバ、記憶デバイス、ネットワークノード(例えば、ハードウェア)、展開ソフトウェア、プラットフォーム仮想化(例えば、ハイパーバイザ層)など)をホストすることができる。いくつかの事例において、IaaSプロバイダはまた、それらのインフラストラクチャ構成要素に付随させるための様々なサービス(例えば、請求、監視、ログ記録、セキュリティ、負荷平衡およびクラスタリングなど)を供給することもできる。したがって、これらのサービスはポリシ駆動であり得るため、IaaSユーザは、アプリケーション可用性およびパフォーマンスを維持するために負荷平衡を駆動するためのポリシを実装することが可能であり得る。CSPIは、顧客が多様なアプリケーションおよびサービスを可用性の高いホスト分散環境内で構築し、実行することを可能にするインフラストラクチャ、および、補完クラウドサービスのセットを提供する。CSPIは、顧客のオンプレミスネットワークなどの様々なネットワーク接続されたロケーションから安全にアクセス可能である柔軟な仮想ネットワーク内で、高性能の計算リソースおよび機能ならびに記憶容量を供給する。顧客がCSPによって提供されるIaaSサービスに加入または登録するとき、その顧客向けに作成されるテナンシは、顧客がそのクラウドリソースを作成、編成、および管理することができる、CSPI内の安全で隔離された区分である。
【0074】
顧客は、CSPIによって提供される計算、メモリ、およびネットワーキングリソースを使用して、自身の仮想ネットワークを構築することができる。これらの仮想ネットワーク上に、計算インスタンスなどの1つまたは複数の顧客リソースまたはワークロードを展開することができる。例えば、顧客は、CSPIによって提供されるリソースを使用して、仮想クラウドネットワーク(VCN)として参照される1つまたは複数のカスタマイズ可能なプライベート仮想ネットワークを構築することができる。顧客は、顧客VCN上で、計算インスタンスなどの1つまたは複数の顧客リソースを展開することができる。計算インスタンスは、仮想マシン、ベアメタルインスタンスなどの形態をとることができる。したがって、CSPIは、顧客が多様なアプリケーションおよびサービスを可用性の高い仮想ホスト環境内で構築し、実行することを可能にするインフラストラクチャ、および、補完クラウドサービスのセットを提供する。顧客は、CSPIによって提供される下層物理リソースを管理せず、制御しないが、オペレーティングシステム、ストレージ、および展開されているアプリケーションを制御することができ、場合によっては、ネットワーキング構成要素(例えば、ファイアウォール)の選択を制限付きで制御することができる。
【0075】
CSPは、顧客およびネットワーク管理者が、CSPIリソースを使用してクラウド内で展開されるリソースを構成、アクセス、および管理することを可能にするコンソールを提供することができる。ある実施形態において、コンソールは、CSPIにアクセスおよび管理するために使用することができるウェブベースのユーザインターフェイスを提供する。いくつかの実施態様において、コンソールは、CSPによって提供されるウェブベースのアプリケーションである。
【0076】
CSPIは、シングルテナンシまたはマルチテナンシアーキテクチャをサポートすることができる。シングルテナンシアーキテクチャにおいて、ソフトウェア(例えば、アプリケーション、データベース)またはハードウェア構成要素(例えば、ホストマシンまたはサーバ)は、単一の顧客またはテナントにサービスする。マルチテナンシアーキテクチャにおいて、ソフトウェアまたはハードウェア構成要素は、複数の顧客またはテナントにサービスする。したがって、マルチテナンシアーキテクチャにおいて、CSPIリソースは、複数の顧客またはテナント間で共有される。マルチテナンシ状況において、各テナントのデータが分離され、他のテナントに見えないままであることを保証するために、予防措置がとられ、CSPI内に安全対策が導入される。
【0077】
物理ネットワークにおいて、ネットワークエンドポイント(「エンドポイント」)は、物理ネットワークに接続されており、接続されているネットワークと往復して通信するコンピューティングデバイスまたはシステムを指す。物理ネットワーク内のネットワークエンドポイントは、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、または他のタイプの物理ネットワークに接続され得る。物理ネットワーク内の従来のエンドポイントの例は、モデム、ハブ、ブリッジ、スイッチ、ルータ、および他のネットワーキングデバイス、物理コンピュータ(またはホストマシン)などを含む。物理ネットワーク内の各物理デバイスは、デバイスと通信するために使用することができる固定ネットワークアドレスを有する。この固定ネットワークアドレスは、レイヤ2アドレス(例えば、MACアドレス)、固定レイヤ3アドレス(例えば、IPアドレス)などとすることができる。仮想化環境または下層ネットワークにおいて、エンドポイントは、物理ネットワークの構成要素によってホストされる(例えば、物理ホストマシンによってホストされる)仮想マシンなどの様々な仮想エンドポイントを含むことができる。仮想ネットワーク内のこれらのエンドポイントは、オーバーレイレイヤ2アドレス(例えば、オーバーレイMACアドレス)およびオーバーレイレイヤ3アドレス(例えば、オーバーレイIPアドレス)などのオーバーレイアドレスによってアドレス指定される。ネットワークオーバーレイは、ネットワークマネジャーが、ソフトウェア管理を使用して(例えば、仮想ネットワークの制御プレーンを実装するソフトウェアを介して)ネットワークエンドポイントに関連付けられるオーバーレイアドレスを転々と移動することを可能にすることによって、柔軟性を可能にする。したがって、物理ネットワークとは異なり、仮想ネットワークにおいて、オーバーレイアドレス(例えば、オーバーレイIPアドレス)は、ネットワーク管理ソフトウェアを使用して1つのエンドポイントから別のエンドポイントへと移動させることができる。仮想ネットワークは物理ネットワークの上に構築されるため、仮想ネットワーク内の構成要素間の通信は、仮想ネットワークと、下層の物理ネットワークの両方を含む。そのような通信を促進するために、CSPIの構成要素は、仮想ネットワーク内のオーバーレイアドレスを基盤ネットワーク内の実際の物理アドレスにマッピングし、および、その逆を行うマッピングを学習し、記憶するように構成されている。このとき、これらのマッピングは、通信を促進するために使用される。仮想ネットワーク内のルーティングを促進するために、顧客トラフィックがカプセル化される。
【0078】
したがって、物理アドレス(例えば、物理IPアドレス)は、物理ネットワーク内の構成要素に関連付けられ、オーバーレイアドレス(例えば、オーバーレイIPアドレス)は、仮想またはオーバーレイネットワーク内のエンティティに関連付けられる。物理IPアドレスは、基盤または物理ネットワーク内の物理デバイス(例えば、ネットワークデバイス)に関連付けられるIPアドレスである。例えば、各NVDは、関連付けられる物理IPアドレスを有する。オーバーレイIPアドレスは、顧客の仮想クラウドネットワーク(VCN)内の計算インスタンスなどの、オーバーレイネットワーク内のエンティティに関連付けられるオーバーレイアドレスである。各々がそれ自体のプライベートVCNを有する2つの異なる顧客またはテナントが、可能性として、互いを一切知ることなく、そのVCN内で同じオーバーレイIPアドレスを使用することができる。物理IPアドレスとオーバーレイIPアドレスは両方とも、現実のIPアドレスのタイプである。これらは、仮想IPアドレスとは別個のものである。仮想IPアドレスは、典型的には、複数の現実のIPアドレスを表すかまたはこれにマッピングする単一のIPアドレスである。仮想IPアドレスは、仮想IPアドレスと複数の現実のIPアドレスとの間の1対多マッピングを提供する。例えば、ロードバランサが、複数のサーバ(各サーバはそれ自体の現実のIPアドレスを有する)にマッピングするかまたはこれを表すためにVIPを使用することができる。
【0079】
クラウドインフラストラクチャまたはCSPIは、世界中の1つまたは複数の領域内で、1つまたは複数のデータセンタ内で物理的にホストされる。CSPIは、物理または基盤ネットワーク内の構成要素、および、物理ネットワーク構成要素の上に構築される仮想ネットワーク内にある仮想化構成要素(例えば、仮想ネットワーク、計算インスタンス、仮想マシンなど)を含むことができる。ある実施形態において、CSPIは、レルム、リージョンおよび可用性ドメインに編成され、ホストされる。リージョンは、典型的には、1つまたは複数のデータセンタを含む局所的な地理的エリアである。リージョンは、一般的に、互いに独立しており、例えば、国またはさらには大陸をまたいで大きい距離によって分離することができる。例えば、第1のリージョンは、オーストラリア内にあってもよく、別のリージョンは日本内にあってもよく、さらに別のリージョンはインド内にあり得る、などである。CSPIリソースは、複数のリージョンの間で分割され、結果、各リージョンは、CSPIリソースのそれ自体の独立したサブセットを有する。各リージョンは、計算リソース(例えば、ベアメタルサーバ、仮想マシン、コンテナおよび関連するインフラストラクチャなど)、ストレージリソース(例えば、ブロックボリュームストレージ、ファイルストレージ、オブジェクトストレージ、アーカイブストレージ)、ネットワーキングリソース(例えば、仮想クラウドネットワーク(VCN)、負荷平衡リソース、オンプレミスネットワークへの接続)、データベースリソース、エッジネットワーキングリソース(例えば、DNS)、ならびにアクセス管理および監視リソースなどのような、基幹インフラストラクチャサービスおよびリソースのセットを提供することができる。各リージョンは、一般的に、それをレルム内の他のリージョンに接続する複数の経路を有する。
【0080】
近傍のリソースを使用することは、離れたリソースを使用するよりも高速であるため、一般的に、アプリケーションは、最も頻繁に使用されるリージョンにおいて展開される(すなわち、そのリージョンに関連付けられるインフラストラクチャ上に展開される)。アプリケーションはまた、大規模な気象系または地震などのリージョン規模の危険性を軽減すること、法域、税領域、および他の事業または社会的基準に関する変動する要件を満たすことなどのための冗長性などの様々な理由から、異なるリージョンにおいて展開することもできる。
【0081】
リージョン内のデータセンタは、さらに、可用性ドメイン(AD)に編成および細分化することもできる。可用性ドメインは、リージョン内に位置する1つまたは複数のデータセンタに対応することができる。リージョンは、1つまたは複数の可用性ドメインから構成することができる。そのような分散環境において、CSPIリソースは、仮想クラウドネットワーク(VCN)など、領域特有であるか、または、計算インスタンスなど、可用性ドメイン特有であるかのいずれかである。
【0082】
リージョン内のADは、互いから分離されており、耐障害性であり、同時に機能しなくなる可能性が非常に低いように構成されている。これは、あるリージョン内の1つのADにおける障害が、同じリージョン内の他のADの可用性に影響を及ぼす可能性が低くなるように、ADが、ネットワーキング、物理ケーブル、ケーブル経路、ケーブル入口点などのような重大なインフラストラクチャリソースを共有しないことによって達成される。同じリージョン内のADは、低レイテンシ高帯域幅ネットワークによって互いに接続することができ、これによって、他のネットワーク(例えば、インターネット、顧客のオンプレミスネットワークなど)への高可用性接続を提供し、高可用性と災害復旧の両方のために複数のAD内に複製システムを構築することが可能になる。クラウドサービスは、複数のADを使用して、高可用性を保証し、リソース障害に対して保護する。IaaSによって提供されるインフラストラクチャが増加すると、より多くのリージョンおよびADが、容量を付加して追加される。可用性ドメイン間のトラフィックは、通常、暗号化される。
【0083】
ある実施形態において、リージョンはレルムにグループ化される。レルムは、複数のリージョンの論理的集合である。レルムは、互いに分離されており、一切のデータを共有しない。同じレルム内のリージョンは、互いに通信することができるが、異なるレルム内のリージョンは、互いに通信することができない。CSPを有する顧客のテナンシおよびアカウントは、単一のレルム内に存在し、そのレルムに属する1つまたは複数のリージョンにわたって分散することができる。典型的には、顧客がIaaSサービスに加入すると、レルム内の顧客が指定するリージョン(「ホーム」リージョンとして参照される)内に、その顧客のテナンシおよびアカウントが作成される。顧客は、顧客のテナンシを、レルム内の1つまたは複数の他の領域にまたがって拡張することができる。顧客は、顧客のテナンシが存在するレルム内にないリージョンにアクセスすることはできない。
【0084】
IaaSプロバイダは、複数のレルムを提供することができ、各レルムは、顧客またはユーザの特定のセットに供される。例えば、商業レルムは、商業顧客に対して提供され得る。別の例として、特定の国のためのレルムが、その国の中の顧客に対して提供され得る。さらに別の例として、政府レルムが、政府に対して提供され得る、などである。例えば、政府レルムは、特定の政府に対して供されてもよく、商業レルムよりも高められたセキュリティレベルを有し得る。例えば、Oracleクラウドインフラストラクチャ(OCI)は、現在、商業リージョンの1つのレルム、および、政府クラウドリージョンの2つのレルム(例えば、FedRAMP認可およびIL5認可)を提供している。
【0085】
ある実施形態において、ADは、1つまたは複数のフォールトドメインに細分化することができる。フォールトドメインは、アンチアフィニティを提供するためのAD内のインフラストラクチャリソースのグループ分けである。フォールトドメインは、インスタンスが単一のAD内の同じ物理ハードウェア上にないように、計算インスタンスを分散させることを可能にする。これは、アンチアフィニティとして知られている。フォールトドメインは、単一の障害点を共有するハードウェア構成要素(コンピュータ、スイッチなど)のセットを指す。計算プールは、複数のフォールトドメインに論理的に分割される。これに起因して、1つのフォールトドメインに影響を及ぼすハードウェア障害または計算ハードウェアメンテナンスイベントは、他のフォールトドメイン内のインスタンスに影響を及ぼさない。実施形態に応じて、各ADのフォールトドメインの数は変化し得る。例えば、ある実施形態において、各ADは、3つのフォールトドメインを含む。フォールトドメインは、AD内の論理データセンタとして作用する。
【0086】
顧客がIaaSサービスに加入すると、CSPIからのリソースが顧客にプロビジョンされ、顧客のテナンシに関連付けられる。顧客は、これらのプロビジョンされたリソースを使用して、プライベートネットワークを構築し、これらのネットワーク上にリソースを展開することができる。CSPIによってクラウド内でホストされる顧客ネットワークは、仮想クラウドネットワーク(VCN)として参照される。顧客は、顧客に割り振られたCSPIリソースを使用して1つまたは複数の仮想クラウドネットワーク(VCN)をセットアップすることができる。VCNは、仮想またはソフトウェア定義のプライベートネットワークである。顧客のVCN内に展開される顧客リソースは、計算インスタンス(例えば、仮想マシン、ベアメタルインスタンス)および他のリソースを含むことができる。これらの計算インスタンスは、アプリケーション、ロードバランサ、データベースなどのような様々な顧客ワークロードを表すことができる。VCN上に展開される計算インスタンスは、インターネットなどの公衆ネットワーク上の公衆アクセス可能エンドポイント(「公衆エンドポイント」)、同じVCNまたは他のVCN(例えば、顧客の他のVCN、または顧客に属しないVCN)内の他のインスタンス、顧客のオンプレミスデータセンタまたはネットワーク、ならびに、サービスエンドポイントおよび他のタイプのエンドポイントと通信することができる。
【0087】
CSPは、CSPIを使用して様々なサービスを提供することができる。いくつかの事例において、CSPIの顧客自身が、サービスプロバイダのように作用し、CSPIリソースを使用してサービスを提供し得る。サービスプロバイダは、識別情報(例えば、IPアドレス、DNS名およびポート)によって特徴付けられるサービスエンドポイントを暴露することができる。顧客のリソース(例えば、計算インスタンス)は、その特定のサービスのためにサービスによって暴露されるサービスエンドポイントにアクセスすることによって、特定のサービスを消費することができる。これらのサービスエンドポイントは、一般的には、インターネットなどの公衆通信ネットワークを介してエンドポイントに関連付けられる公衆IPアドレスを使用して、ユーザによってパブリックにアクセス可能であるエンドポイントである。パブリックにアクセス可能であるネットワークエンドポイントは、公衆エンドポイントとして参照されることもある。
【0088】
ある実施形態において、サービスプロバイダは、そのサービスのためのエンドポイント(サービスエンドポイントとして参照されることがある)を介してサービスを暴露することができる。次いで、サービスの顧客は、このサービスエンドポイントを使用して、サービスにアクセスすることができる。ある実施態様において、サービスのために提供されるサービスエンドポイントは、そのサービスを消費することを意図する複数の顧客によってアクセスすることができる。他の実施態様において、専用サービスエンドポイントが顧客のために提供されてもよく、結果、その顧客のみが、その専用サービスエンドポイントを使用してサービスにアクセスすることができる。
【0089】
ある実施形態において、VCNが作成されると、VCNは、VCNに割り当てられる一定範囲のプライベートオーバーレイIPアドレス(例えば、10.0/16)である、プライベートオーバーレイクラスレスドメイン間ルーティング(CIDR)アドレス空間に関連付けられる。VCNは、関連付けられるサブネット、経路テーブル、およびゲートウェイを含む。VCNは、単一のリージョン内に存在するが、リージョンの可用性ドメインの1つまたは複数またはすべてにまたがることができる。ゲートウェイは、VCN向けに構成されており、VCNへの、および、VCNからVCNの外側の1つまたは複数のネットワークへのトラフィックの通信を可能にする仮想インターフェイスである。1つまたは複数の異なるタイプのゲートウェイが、異なるタイプのエンドポイントへの、および、そこからの通信を可能にするために、VCN向けに構成され得る。
【0090】
VCNは、1つまたは複数のサブネットなどの1つまたは複数のサブネットワークに細分化することができる。したがって、サブネットは、VCN内に作成することができる構成単位または下位区分である。VCNは、1つまたは複数のサブネットを有することができる。VCN内の各サブネットは、そのVCN内の他のサブネットと重なり合わず、VCNのアドレス空間内のアドレス空間サブセットを表す、連続した範囲のオーバーレイIPアドレス(例えば、10.0.0.0/24および10.0.1.0/24)に関連付けられる。
【0091】
各計算インスタンスは、計算インスタンスがVCNのサブネットに参加することを可能にする仮想ネットワークインターフェイスカード(VNIC)に関連付けられる。VNICは、物理ネットワークインターフェイスカード(NIC)の論理的表現である。概して、VNICは、エンティティ(例えば、計算インスタンス、サービス)と仮想ネットワークとの間のインターフェイスである。VNICは、サブネット内に存在し、1つまたは複数の関連付けられるIPアドレスを有し、セキュリティ規則またはポリシに関連付けられる。VNICは、スイッチ上のレイヤ2ポートと等価である。VNICは、計算インスタンスおよびVCN内のサブネットにアタッチされる。計算インスタンスに関連付けられるVNICは、計算インスタンスが、VCNのサブネットの一部であることを可能にし、計算インスタンスが、計算インスタンスと同じサブネット上にあるエンドポイント、VCN内の異なるサブネット内のエンドポイント、または、VCNの外側のエンドポイントと通信する(例えば、パケットを送受信する)ことを可能にする。したがって、計算インスタンスに関連付けられるVNICは、計算インスタンスがVCNの内側および外側のエンドポイントとどのように接続するかを決定する。計算インスタンスが作成され、VCN内のサブネットに追加されると、計算インスタンスのVNICが作成され、その計算インスタンスに関連付けられる。計算インスタンスのセットを含むサブネットについて、サブネットは、計算インスタンスのセットに対応するVNICを含み、各VNICが、コンピュータインスタンスのセット中の計算インスタンスにアタッチされる。
【0092】
各計算インスタンスは、計算インスタンスに関連付けられるVNICを介して、プライベートオーバーレイIPアドレスを割り当てられる。このプライベートオーバーレイIPアドレスは、計算インスタンスが作成され、計算インスタンスへのおよびそこからのトラフィックをルーティングするために使用されるときに、計算インスタンスに関連付けられるVNICに割り当てられる。所与のサブネット内のすべてのVNICが、同じ経路テーブル、セキュリティリスト、およびDHCPオプションを使用する。上述したように、VCN内の各サブネットは、そのVCN内の他のサブネットと重なり合わず、VCNのアドレス空間内のアドレス空間サブセットを表す、連続した範囲のオーバーレイIPアドレス(例えば、10.0.0.0/24および10.0.1.0/24)に関連付けられる。VCNの特定のサブネット上のVNICについて、VNICに割り当てられるプライベートオーバーレイIPアドレスは、サブネットに割り振られる連続した範囲のオーバーレイIPアドレスからのアドレスである。
【0093】
ある実施形態において、計算インスタンスは、任意選択的に、プライベートオーバーレイIPアドレスに加えて、例えば、公衆サブネット内にある場合には1つまたは複数の公衆IPアドレスなどの、追加のオーバーレイIPアドレスを割り当てられ得る。これらの複数のアドレスは、同じVNIC上で、または、計算インスタンスに関連付けられる複数のVNICにわたって、割り当てられる。しかしながら、各インスタンスは、インスタンス立ち上げ中に作成され、インスタンスに割り当てられているオーバーレイプライベートIPアドレスに関連付けられる一次VNICを有し、この一次VNICは、削除することができない。二次VNICとして参照される追加のVNICを、一次VNICと同じ可用性ドメイン内の既存のインスタンスに追加することができる。すべてのVNICが、インスタンスと同じ可用性ドメイン内にある。二次VNICは、一次VNICと同じVCN内のサブネット内、または、同じVCNもしくは異なるVCNのいずれかの中にある異なるサブネット内にあり得る。
【0094】
計算インスタンスは、任意選択的に、公衆サブネット内にある場合には公衆IPアドレスを割り当てられ得る。サブネットは、サブネットが作成されるときに、公衆サブネットまたはプライベートサブネットのいずれかとして設計することができる。プライベートサブネットとは、サブネット内のリソース(例えば、計算インスタンス)および関連付けられるVNICが公衆オーバーレイIPアドレスを有することができないことを意味する。公衆サブネットとは、サブネット内のリソースおよび関連付けられるVNICが公衆IPアドレスを有することができることを意味する。顧客は、単一の可用性ドメイン内に、または、リージョンもしくはレルム内の複数の可用性ドメインにまたがって存在するように、サブネットを指定することができる。
【0095】
上述したように、VCNは、1つまたは複数のサブネットに細分化することができる。ある実施形態において、VCN向けに構成された仮想ルータ(VR)(VCN VRまたは単にVRとして参照される)が、VCNのサブネット間の通信を可能にする。VCN内のサブネットについて、VRは、サブネット(すなわち、そのサブネット上の計算インスタンス)が、VCN内の他のサブネット上のエンドポイントおよびVCNの外側の他のエンドポイントと通信することを可能にする、そのサブネットの論理ゲートウェイを表す。VCN VRは、VCN内のVNICと、VCNに関連付けられる仮想ゲートウェイ(「ゲートウェイ」)との間でトラフィックをルーティングするように構成されている論理エンティティである。ゲートウェイは、図6に関してさらに下記に説明される。VCN VRは、レイヤ3/IPレイヤ概念である。1つの実施形態において、VCNに対して1つのVCN VRが存在し、VCN VRは、可能性として、IPアドレスによってアドレス指定される無限数のポートを有し、VCNの各サブネットに対して1つのポートがある。このように、VCN VRは、VCN VRがアタッチされる、VCN内の各サブネットに対する異なるIPアドレスを有する。VRはまた、VCN向けに構成されている様々なゲートウェイにも接続されている。ある実施形態において、サブネットのオーバーレイIPアドレス範囲からのあるオーバーレイIPアドレスは、そのサブネットのVCN VRのポートのために予約される。例えば、それぞれ関連付けられるアドレス範囲10.0/16および10.1/16を有する2つのサブネットを有するVCNを考察する。アドレス範囲10.0/16を有するVCN内の第1のサブネットについて、この範囲からのアドレスは、そのサブネットのVCN VRのポートのために予約される。いくつかの事例において、その範囲からの第1のIPアドレスが、VCN VRのために予約され得る。例えば、オーバーレイIPアドレス範囲10.0/16を有するサブネットについて、IPアドレス10.0.0.1が、そのサブネットのVCN VRのポートのために予約され得る。アドレス範囲10.1/16を有する同じVCN内の第2のサブネットについて、VCN VRは、IPアドレス10.1.0.1を有するその第2のサブネットのポートを有し得る。VCN VRは、VCN内のサブネットの各々に対して異なるIPアドレスを有する。
【0096】
いくつかの他の実施形態において、VCN内の各サブネットは、VRに関連付けられる予約されたまたはデフォルトのIPアドレスを使用してサブネットによってアドレス指定可能であるそれ自体の関連付けられるVRを有することができる。予約されたまたはデフォルトのIPアドレスは、例えば、そのサブネットに関連付けられるIPアドレスの範囲からの第1のIPアドレスであり得る。サブネット内のVNICは、このデフォルトのまたは予約されたIPアドレスを使用して、サブネットに関連付けられるVRと通信する(例えば、パケットを送受信する)ことができる。そのような実施形態において、VRは、そのサブネットの進入/退出ポイントである。VCN内のサブネットに関連付けられるVRは、VCN内の他のサブネットに関連付けられる他のVRと通信することができる。VRはまた、VCNに関連付けられるゲートウェイとも通信することができる。サブネットのVR機能は、サブネット内のVNICのVNIC機能を実行している1つまたは複数のNVD上で作動しているか、または、それによって実行される。
【0097】
経路テーブル、セキュリティ規則、およびDHCPオプションは、VCN向けに構成することができる。経路テーブルは、VCNの仮想経路テーブルであり、VCN内のサブネットからのトラフィックを、ゲートウェイまたは特別に構成されたインスタンスによって、VCNの外側の宛先にルーティングするための規則を含む。VCNの経路テーブルは、パケットがVCNへと、および、そこからどのように転送/ルーティングされるかを制御するためにカスタマイズすることができる。DHCPオプションは、インスタンスが起動するときにインスタンスに自動的に提供される構成情報を指す。
【0098】
VCN向けに構成されているセキュリティ規則は、VCNに対するオーバーレイファイアウォール規則を表す。セキュリティ規則は、進入および脱出規則を含むことができ、VCN内のインスタンスに入ることおよび出ることを許容されるトラフィックのタイプを(プロトコルおよびポートに基づいて)指定することができる。顧客は、所与の規則がステートフルであるかまたはステートレスであるかを選択することができる。例えば、顧客は、ソースCIDR0.0.0.0/0および宛先TCPポート22を有するステートフル進入規則をセットアップすることによって、任意の場所からのSSHトラフィックがインスタンスのセットに入来することを可能にすることができる。セキュリティ規則は、ネットワークセキュリティグループまたはセキュリティリストを使用して実施することができる。ネットワークセキュリティグループは、そのグループ内のリソースのみに適用されるセキュリティ規則のセットから成る。他方、セキュリティリストは、セキュリティリストを使用する任意のサブネット内のすべてのリソースに適用される規則を含む。VCNには、デフォルトのセキュリティ規則を有するデフォルトのセキュリティリストを提供することができる。VCN向けに構成されているDHCPオプションは、インスタンスが起動するときにVCN内のインスタンスに自動的に提供される構成情報を提供する。
【0099】
ある実施形態において、VCNの構成情報は、VCN制御プレーンによって決定され、記憶される。VCNの構成情報は、例えば、VCNに関連付けられるアドレス範囲、VCN内のサブネットおよび関連する情報、VCNに関連付けられる1つまたは複数のVR、VCN内の計算インスタンスおよび関連付けられるVNIC、VCNに関連付けられる様々な仮想化ネットワーク機能(例えば、VNIC、VR、ゲートウェイ)を実行するNVD、VCNの状態情報、および他のVCN関連情報に関する情報を含み得る。ある実施形態において、VCN配布サービスは、VCN制御プレーンによって記憶されている構成情報またはその一部分をNVDに発行する。配布された情報は、VCN内の計算インスタンスへと、および、そこからパケットを転送するために、NVDによって記憶され、使用される情報(例えば、転送テーブル、ルーティングテーブルなど)を更新するために使用することができる。
【0100】
ある実施形態において、VCNおよびサブネットの作成は、VCN制御プレーン(CP)によってハンドリングされ、計算インスタンスの立ち上げは、計算制御プレーンによってハンドリングされる。計算制御プレーンは、計算インスタンスの物理リソースを割り振る役割を担い、次いで、VNICを作成して計算インスタンスにアタッチするために、VCN制御プレーンを呼び出す。VCN CPはまた、パケット転送およびルーティング機能を実施するように構成されているVCNデータプレーンにVCNデータマッピングを送る。ある実施形態において、VCN CPは、VCNデータプレーンに更新を提供する役割を担う配布サービスを提供する。VCN制御プレーンの例は、図11図12図13、および図14にも示されており(参照符号1116、1216、1316、および1416参照)、下記に説明される。
【0101】
顧客は、CSPIによってホストされるリソースを使用して1つまたは複数のVCNを作成することができる。顧客VCN上に展開される計算インスタンスは、複数の異なるエンドポイントと通信することができる。これらのエンドポイントは、CSPIによってホストされるエンドポイントおよびCSPIの外側のエンドポイントを含むことができる。
【0102】
CSPIを使用してクラウドベースのサービスを実施するための様々な異なるアーキテクチャが、図6図7図8図9図10図11図12図13、および図15に示されており、下記に説明される。図6は、ある実施形態によるCSPIによってホストされるオーバーレイまたは顧客VCNを示す分散環境600の高レベル図である。図6に示す分散環境は、オーバーレイネットワーク内の複数の構成要素を含む。図6に示す分散環境600は、例示に過ぎず、特許請求される実施形態の範囲を不当に限定するようには意図されていない。多くの変形、代替、および修正が可能である。例えば、いくつかの実施態様において、図6に示す分散環境は、図1に示されているよりも多いもしくは少ないシステムもしくは構成要素を有してもよく、2つ以上のシステムを組み合わせてもよく、または、システムの異なる構成もしくは配置を有し得る。
【0103】
図6に示す例に示すように、分散環境600は、顧客が加入し、その仮想クラウドネットワーク(VCN)を構築するために使用することができるサービスおよびリソースを提供するCSPI601を備える。ある実施形態において、CSPI601は、加入している顧客にIaaSサービスを供給する。CSPI601内のデータセンタは、1つまたは複数のリージョンに編成することができる。1つの例示的なリージョンである「リージョンUS」602が、図6に示されている。顧客は、リージョン602の顧客VCN604を構成している。顧客は、VCN604上に様々な計算インスタンスを展開することができ、ここで、計算インスタンスは、仮想マシンまたはベアメタルインスタンスを含み得る。インスタンスの例は、アプリケーション、データベース、ロードバランサなどを含む。
【0104】
図6に示す実施形態において、顧客VCN604は、2つのサブネット、すなわち「サブネット1」および「サブネット2」を含み、各サブネットが、それ自体のCIDR IPアドレス範囲を有する。図6において、サブネット1のオーバーレイIPアドレス範囲は10.0/16であり、サブネット2のアドレス範囲は10.1/16である。VCN仮想ルータ605は、VCN604のサブネット間の、および、VCNの外側の他のエンドポイントとの通信を可能にする、VCNの論理ゲートウェイを表す。VCN VR605は、VCN604内のVNICと、VCN604に関連付けられるゲートウェイとの間でトラフィックをルーティングするように構成されている。VCN VR605は、VCN604の各サブネットのポートを提供する。例えば、VR605は、サブネット1のIPアドレス10.0.0.1を有するポート、および、サブネット2のIPアドレス10.1.0.1を有するポートを提供することができる。
【0105】
複数の計算インスタンスが、各サブネット上に展開されてもよく、ここで、計算インスタンスは、仮想マシンインスタンスおよび/またはベアメタルインスタンスとすることができる。サブネット内の計算インスタンスは、CSPI601内の1つまたは複数のホストマシンによってホストすることができる。計算インスタンスは、計算インスタンスに関連付けられるVNICを介してサブネットに参加する。例えば、図6に示すように、計算インスタンスC1は、計算インスタンスに関連付けられるVNICを介する、サブネット1の一部である。同様に、計算インスタンスC2は、C2に関連付けられるVNICを介する、サブネット1の一部である。同様に、仮想マシンインスタンスまたはベアメタルインスタンスであり得る複数の計算インスタンスが、サブネット1の一部であり得る。その関連付けられるVNICを介して、各計算インスタンスは、プライベートオーバーレイIPアドレスおよびMACアドレスを割り当てられる。例えば、図6において、計算インスタンスC1は、10.0.0.2のオーバーレイIPアドレスおよびM1のMACアドレスを有し、一方、計算インスタンスC2は、10.0.0.3のプライベートオーバーレイIPアドレスおよびM2のMACアドレスを有する。計算インスタンスC1およびC2を含む、サブネット1内の各計算インスタンスは、サブネット1のVCN VR605のポートのIPアドレスである、IPアドレス10.0.0.1を使用するVCN VR605までのデフォルトの経路を有する。
【0106】
サブネット2は、仮想マシンインスタンスおよび/またはベアメタルインスタンスを含む、複数の計算インスタンスをその上に展開され得る。例えば、図6に示すように、計算インスタンスD1およびD2は、それぞれの計算インスタンスに関連付けられるVNICを介する、サブネット2の一部である。図6に示す実施形態おいて、計算インスタンスD1は、10.1.0.2のオーバーレイIPアドレスおよびMM1のMACアドレスを有し、一方、計算インスタンスD2は、10.1.0.3のプライベートオーバーレイIPアドレスおよびMM2のMACアドレスを有する。計算インスタンスD1およびD2を含む、サブネット2内の各計算インスタンスは、サブネット2のVCN VR605のポートのIPアドレスである、IPアドレス10.1.0.1を使用するVCN VR605までのデフォルトの経路を有する。
【0107】
VCN A604はまた、1つまたは複数のロードバランサを含むことができる。例えば、ロードバランサは、サブネットのために提供されてもよく、サブネット上の複数の計算インスタンスにわたってトラフィックを負荷平衡させるように構成され得る。ロードバランサはまた、VCN内のサブネットにわたってトラフィックを負荷平衡させるために提供され得る。
【0108】
VCN604上に展開される特定の計算インスタンスは、様々な異なるエンドポイントと通信することができる。これらのエンドポイントは、CSPI700によってホストされるエンドポイントおよびCSPI700の外側のエンドポイントを含み得る。CSPI601によってホストされるエンドポイントは、特定の計算インスタンスと同じサブネット上のエンドポイント(例えば、サブネット1内の2つの計算インスタンス間の通信)、異なるサブネット上の、ただし同じVCN内のエンドポイント(例えば、サブネット1内の計算インスタンスとサブネット2内の計算インスタンスとの間の通信)、同じリージョン内の異なるVCN内のエンドポイント(例えば、サブネット1内の計算インスタンスと同じリージョン606または610内のVCN内のエンドポイントとの間の通信、サブネット1内の計算インスタンスと同じリージョン内のサービスネットワーク610内のエンドポイントとの間の通信)、または、異なるリージョン内のVCN内のエンドポイント(例えば、サブネット1内の計算インスタンスと異なるリージョン608内のVCN内のエンドポイントとの間の通信)を含み得る。CSPI601によってホストされるサブネット内の計算インスタンスはまた、CSPI601によってホストされない(すなわち、CSPI601の外側にある)エンドポイントとも通信し得る。これらの外側エンドポイントは、顧客のオンプレミスネットワーク616内のエンドポイント、他のリモートクラウドホストネットワーク618内のエンドポイント、インターネットなどの公衆ネットワークを介してアクセス可能な公衆エンドポイント614、および他のエンドポイントを含む。
【0109】
同じサブネット上の計算インスタンス間の通信は、ソース計算インスタンスおよび宛先計算インスタンスに関連付けられるVNICを使用して促進される。例えば、サブネット1内の計算インスタンスC1は、サブネット1内の計算インスタンスC2にパケットを送ることを所望し得る。ソース計算インスタンスに由来し、その宛先が同じサブネット内の別の計算インスタンスであるパケットについて、パケットは、最初に、ソース計算インスタンスに関連付けられるVNICによって処理される。ソース計算インスタンスに関連付けられるVNICによって実施される処理は、パケットヘッダからパケットの宛先情報を決定すること、ソース計算インスタンスに関連付けられるVNIC向けに構成されている任意のポリシ(例えば、セキュリティリスト)を識別すること、パケットの次のホップを決定すること、必要に応じて任意のカプセル化/カプセル化解除機能を実施すること、および、次いで、パケットのその意図される宛先への通信を促進することを目標としてパケットを次のホップに転送/ルーティングすることを含むことができる。宛先計算インスタンスがソース計算インスタンスと同じサブネット内にあるとき、ソース計算インスタンスに関連付けられるVNICは、宛先計算インスタンスに関連付けられるVNICを識別し、パケットを処理のためにそのVNICに転送するように構成されている。このとき、宛先計算インスタンスに関連付けられるVNICが実行され、パケットを宛先計算インスタンスに転送する。
【0110】
パケットがサブネット内の計算インスタンスから同じVCN内の異なるサブネット内のエンドポイントに通信されるようにするために、ソースおよび宛先計算インスタンスに関連付けられるVNICおよびVCN VRによって通信が促進される。例えば、図6のサブネット1内の計算インスタンスC1が、サブネット2内の計算インスタンスD1にパケットを送ることを所望する場合、パケットは、最初に、計算インスタンスC1に関連付けられるVNICによって処理される。計算インスタンスC1に関連付けられるVNICは、VCN VRのデフォルトの経路またはポート10.0.0.1を使用して、パケットをVCN VR605にルーティングするように構成されている。VCN VR605は、ポート10.1.0.1を使用してパケットをサブネット2にルーティングするように構成されている。次いで、パケットは、D1に関連付けられるVNICによって受信および処理され、VNICは、パケットを計算インスタンスD1に転送する。
【0111】
パケットがVCN604内の計算インスタンスからVCN604の外側にあるエンドポイントに通信されるようにするために、ソース計算インスタンスに関連付けられるVNIC、VCN VR605、およびVCN604に関連付けられるゲートウェイによって通信が促進される。1つまたは複数のタイプのゲートウェイが、VCN604に関連付けられ得る。ゲートウェイは、VCNと別のエンドポイントとの間のインターフェイスであり、ここで、別のエンドポイントは、VCNの外部にある。ゲートウェイは、レイヤ3/IPレイヤ概念であり、VCNがVCNの外側のエンドポイントと通信することを可能にする。したがって、ゲートウェイは、VCNと他のVCNまたはネットワークとの間のトラフィックフローを促進する。様々な異なるタイプのゲートウェイが、異なるタイプのエンドポイントとの異なるタイプの通信を促進するために、VCN向けに構成され得る。ゲートウェイに応じて、通信は、公衆ネットワーク(例えば、インターネット)またはプライベートネットワークを介するものであり得る。様々な通信プロトコルがこれらの通信に使用され得る。
【0112】
例えば、計算インスタンスC1は、VCN604の外側のエンドポイントと通信することを所望し得る。パケットは、最初に、ソース計算インスタンスC1に関連付けられるVNICによって処理され得る。VNIC処理は、パケットの宛先がC1のサブネット1の外側にあると判定する。C1に関連付けられるVNICは、VCN604のVCN VR605にパケットを転送することができる。次いで、VCN VR605は、パケットを処理し、処理の一部として、パケットの宛先に基づいて、VCN604に関連付けられる特定のゲートウェイを、パケットの次のホップとして決定する。次いで、VCN VR605は、特定の識別されたゲートウェイにパケットを転送することができる。例えば、宛先が顧客のオンプレミスネットワーク内のエンドポイントである場合、パケットは、VCN VR605によって、VCN604向けに構成されている動的ルーティングゲートウェイ(DRG)ゲートウェイ622に転送することができる。次いで、パケットは、パケットの、最終的な意図される宛先への通信を促進するために、ゲートウェイから次のホップへと転送することができる。
【0113】
様々な異なるタイプのゲートウェイが、VCN向けに構成され得る。VCN向けに構成することができるゲートウェイの例が、図6に示されており、下記に説明される。VCNに関連付けられるゲートウェイの例はまた、図11図12図13、および図14にも示されており(例えば、参照符号1134、1136、1138、1234、1236、1238、1334、1336、1338、1434、1436、および1438によって参照されるゲートウェイ)、下記に説明される。図6に示す実施形態に示すように、動的ルーティングゲートウェイ(DRG)622は、顧客VCN604に追加することができるか、または、それに関連付けることができ、顧客VCN604と別のエンドポイントとの間のプライベートネットワークトラフィック通信のための経路を提供し、ここで、別のエンドポイントは、顧客のオンプレミスネットワーク616、CSPI601の異なるリージョン内のVCN608、または、CSPI601によってホストされない他のリモートクラウドネットワーク618とすることができる。顧客オンプレミスネットワーク616は、顧客のリソースを使用して構築されている顧客ネットワークまたは顧客データセンタであり得る。顧客オンプレミスネットワーク616へのアクセスは、一般的に、非常に制限されている。顧客オンプレミスネットワーク616とCSPI601によってクラウド内で展開またはホストされている1つまたは複数のVCN604の両方を有する顧客について、顧客は、そのオンプレミスネットワーク616およびそのクラウドベースのVCN604が、互いに通信することが可能であることを所望し得る。これによって、顧客が、CSPI601によってホストされる顧客のVCN604およびそのオンプレミスネットワーク616を包含する拡張ハイブリッド環境を構築することが可能になる。DRG622が、この通信を可能にする。そのような通信を可能にするために、通信チャネル624がセットアップされ、ここで、チャネルの1つのエンドポイントは顧客オンプレミスネットワーク616であり、他方のエンドポイントはCSPI601であり、顧客VCN604に接続されている。通信チャネル624は、インターネットなどの公衆通信ネットワークまたはプライベート通信ネットワークを介するものとすることができる。インターネットなどの公衆通信ネットワークを介したIPsec VPN技術、公衆ネットワークの代わりにプライベートネットワークを使用するOracleのFastConnect技術などの、様々な異なる通信プロトコルが使用され得る。通信チャネル624の1つのエンドポイントを形成する顧客オンプレミスネットワーク616内のデバイスまたは設備は、図6に示すCPE626などの、顧客構内設備(CPE)として参照される。CSPI601側では、エンドポイントは、DRG622を実行するホストマシンであり得る。
【0114】
ある実施形態において、リモートピアリング接続(RPC)をDRGに追加することができ、これによって、顧客が、1つのVCNを異なるリージョン内の別のVCNとピアリングすることが可能になる。そのようなRPCを使用して、顧客VCN604は、DRG622を使用して別のリージョン内のVCN608と接続することができる。DRG622はまた、Microsoft Azureクラウド、Amazon AWSクラウドなどのような、CSPI601によってホストされていない、他のリモートクラウドネットワーク618と通信するために使用することもできる。
【0115】
図6に示すように、インターネットゲートウェイ(IGW)620は、VCN604上の計算インスタンスがインターネットなどの公衆ネットワークを介してアクセス可能な公衆エンドポイント614と通信することを可能にするように、顧客VCN604向けに構成することができる。IGW620は、インターネットなどの公衆ネットワークにVCNを接続するゲートウェイである。IGW620は、VCN604などのVCN内の公衆サブネット(ここで、公衆サブネット内のリソースは公衆オーバーレイIPアドレスを有する)が、インターネットなどの公衆ネットワーク614上の公衆エンドポイント612に直接的にアクセスすることを可能にする。IGW620を使用して、VCN604内のサブネットまたはインターネットからの接続を開始することができる。
【0116】
ネットワークアドレス変換(NAT)ゲートウェイ628は、顧客のVCN604向けに構成することができ、専用公衆オーバーレイIPアドレスを有しない顧客のVCN内のクラウドリソースが、インターネットにアクセスすることを可能にし、それらのリソースを直接入来インターネット接続(例えば、L4~L7接続)に暴露することなく、これを行う。これによって、VCN604内のプライベートサブネット1などの、VCN内のプライベートサブネットが、インターネット上の公衆エンドポイントへのプライベートアクセスを有することが可能になる。NATゲートウェイにおいて、接続は、インターネットからプライベートサブネットへとではなく、プライベートサブネットから公衆インターネットへとのみ開始することができる。
【0117】
ある実施形態において、サービスゲートウェイ(SGW)626は、顧客VCN604向けに構成することができ、VCN604とサービスネットワーク610内のサポートされているサービスエンドポイントとの間のプライベートネットワークトラフィックのための経路を提供する。ある実施形態において、サービスネットワーク610は、CSPによって提供することができ、様々なサービスを提供することができる。そのようなサービスネットワークの一例は、顧客によって使用することができる様々なサービスを提供するOracleのサービスネットワークである。例えば、顧客VCN604のプライベートサブネット内の計算インスタンス(例えば、データベースシステム)は、公衆IPアドレスまたはインターネットへのアクセスを必要とすることなく、データをサービスエンドポイント(例えば、オブジェクトストレージ)にバックアップすることができる。ある実施形態において、VCNは、1つのみのSGWを有することができ、接続は、サービスネットワーク610からではなく、VCN内のサブネットからのみ開始することができる。VCNが別のVCNとピアリングされる場合、他のVCN内のリソースは、SGWにアクセスすることができない。FastConnectまたはVPN ConnectによってVCNに接続されるオンプレミスネットワーク内のリソースもまた、そのVCN向けに構成されているサービスゲートウェイを使用することができる。
【0118】
ある実施態様において、SGW626は、関心のあるサービスまたはサービスグループのすべてのリージョン公衆IPアドレス範囲を表す文字列である、サービスクラスレスドメイン間ルーティング(CIDR)ラベルの概念を使用する。顧客は、SGWおよび関連する経路規則を、サービスへのトラフィックを制御するように構成するときに、サービスCIDRラベルを使用する。顧客は、任意選択的に、サービスの公衆IPアドレスが将来的に変化する場合にセキュリティ規則を構成するときに、それらのセキュリティ規則を調整することを必要とすることなく、サービスCIDRラベルを利用することができる。
【0119】
ローカルピアリングゲートウェイ(LPG)632は、顧客VCN604に追加することができるゲートウェイであり、VCN604が同じリージョン内の別のVCNとピアリングすることを可能にする。ピアリングとは、トラフィックがインターネットなどの公衆ネットワークをトラバースすることなく、または、顧客のオンプレミスネットワーク616を通じてトラフィックをルーティングすることなく、VCNがプライベートIPアドレスを使用して通信することを意味する。好ましい実施形態において、VCNは、それが確立する各ピアリングのための別個のLPGを有する。ローカルピアリングまたはVCNピアリングは、異なるアプリケーションまたはインフラストラクチャ管理機能の間にネットワーク接続を確立するために使用される一般的な慣行である。
【0120】
サービスネットワーク610内のサービスのプロバイダなどのサービスプロバイダは、異なるアクセスモデルを使用してサービスへのアクセスを提供することができる。公衆アクセスモデルによれば、サービスは、インターネットなどの公衆ネットワークを介して顧客VCN内の計算インスタンスによってパブリックにアクセス可能である公衆エンドポイントとして暴露されてもよく、または、SGW626を介してプライベートにアクセス可能であり得る。特定のプライベートアクセスモデルによれば、サービスは、顧客のVCN内のプライベートサブネット内のプライベートIPエンドポイントとしてアクセス可能にされる。これは、プライベートエンドポイント(PE)アクセスとして参照され、サービスプロバイダが、顧客のプライベートネットワーク内のインスタンスとしてそれらのサービスを暴露することを可能にする。プライベートエンドポイントリソースは、顧客のVCN内のサービスを表す。各PEは、顧客のVCN内の顧客によって選択されるサブネット内のVNIC(1つまたは複数のプライベートIPを有するPE-VNICとして参照される)として現れる。したがって、PEは、VNICを使用してプライベート顧客VCNサブネット内にサービスを提示するための方法を提供する。エンドポイントはVNICとして暴露されるため、ルーティング規則、セキュリティリストなどのようなVNICに関連付けられるすべての特徴が、この時点でPE VNICにとって利用可能にされる。
【0121】
サービスプロバイダは、PEを通じたアクセスを可能にするために、そのサービスを登録することができる。プロバイダは、ポリシをサービスに関連付けることができ、それによって、サービスの可視性が顧客テナンシに制約される。プロバイダは、特にマルチテナントサービスについて、単一の仮想IPアドレス(VIP)の下で複数のサービスを登録することができる。同じサービスを表す複数のそのようなプライベートエンドポイント(複数のVCN内の)が存在し得る。
【0122】
このとき、プライベートサブネット内の計算インスタンスは、PE VNICのプライベートIPアドレスまたはサービスDNS名を使用して、サービスにアクセスすることができる。顧客VCN内の計算インスタンスは、顧客VCN内のPEのプライベートIPアドレスにトラフィックを送ることによって、サービスにアクセスすることができる。プライベートアクセスゲートウェイ(PAGW)630は、顧客サブネットプライベートエンドポイントからの/へのすべてのトラフィックの侵入/退出ポイントとして作用するサービスプロバイダVCN(例えば、サービスネットワーク610内のVCN)にアタッチすることができるゲートウェイリソースである。PAGW630は、プロバイダが、その内部IPアドレスリソースを利用することなくPE接続の数をスケーリングすることを可能にする。プロバイダは、単一のVCN内に登録されている任意の数のサービスに対して、1つのPAGWを構成することのみを必要とする。プロバイダは、サービスを、1または複数の顧客の複数のVCN内のプライベートエンドポイントとして表すことができる。顧客の観点から、PE VNICは、顧客のインスタンスにアタッチされる代わりに、顧客が相互に作用することを所望するサービスにアタッチされるように見える。プライベートエンドポイントに宛てられたトラフィックは、PAGW630を介してサービスへとルーティングされる。これらは、顧客-サービスプライベート接続(C2S接続)として参照される。
【0123】
PE概念はまた、トラフィックがFastConnect/IPsecリンクおよび顧客VCN内のプライベートエンドポイントを通じて流れることを可能にすることによって、サービスのためのプライベートアクセスを顧客のオンプレミスネットワークおよびデータセンタへと拡張するために使用することもできる。サービスのためのプライベートアクセスはまた、トラフィックがLPG632と顧客のVCN内のPEとの間を流れることを可能にすることによって、顧客のピアリングされたVCNへと拡張することもできる。
【0124】
顧客は、VCNにおけるルーティングをサブネットレベルで制御することができ、したがって、顧客は、VCN604などの顧客のVCNのいずれのサブネットが各ゲートウェイを使用するかを指定することができる。トラフィックが特定のゲートウェイを通じてVCNを出ることを可能にされるか否かを判断するために、VCNの経路テーブルが使用される。例えば、特定の事例において、顧客VCN604内の公衆サブネットの経路テーブルは、IGW620を通じて非ローカルトラフィックを送ることができる。同じ顧客VCN604内のプライベートサブネットの経路テーブルが、SGW626を通じてCSPサービスに宛てられたトラフィックを送ることができる。すべての残りのトラフィックは、NATゲートウェイ628を介して送ることができる。経路テーブルは、VCNから出るトラフィックのみを制御する。
【0125】
着信接続を介して、ゲートウェイを介してVCNに入来するトラフィックを制御するために、VCNに関連付けられるセキュリティリストが使用される。サブネット内のすべてのリソースが、同じ経路テーブルおよびセキュリティリストを使用する。セキュリティリストは、VCNのサブネット内のインスタンスに入ることおよび出ることを可能にされる特定のタイプのトラフィックを制御するために使用することができる。セキュリティリスト規則は、進入(着信)および退出(発信)規則を含むことができる。例えば、進入規則は、許容されるソースアドレス範囲を指定することができ、一方、退出規則は、許容される宛先アドレス範囲を指定することができる。セキュリティ規則は、特定のプロトコル(例えば、TCP、ICMP)、特定のポート(例えば、SSHのための22、Windows(登録商標) RDPのための3389)などを指定することができる。ある実施態様において、インスタンスのオペレーティングシステムは、セキュリティリスト規則と整合されているそれ自体のファイアウォール規則を執行することができる。規則は、ステートフル(例えば、接続が追跡され、応答が、応答トラフィックに対する明示的なセキュリティリスト規則なしに、自動的に許可される)であってもよく、または、ステートレスであり得る。
【0126】
顧客VCNからの(すなわち、VCN604上に展開されているリソースまたは計算インスタンスによる)アクセスは、公衆アクセス、プライベートアクセス、または専用アクセスとしてカテゴライズすることができる。公衆アクセスは、公衆IPアドレスまたはNATが公衆エンドポイントにアクセスするために使用されるアクセスモデルを指す。プライベートアクセスは、プライベートIPアドレスを有するVCN604内の顧客ワークロード(例えば、プライベートサブネット内のリソース)が、インターネットなどの公衆ネットワークをトラバースすることなく、サービスにアクセスすることを可能にする。ある実施形態において、CSPI601は、プライベートIPアドレスを有する顧客VCNワークロードが、サービスゲートウェイを使用してサービス(の公衆サービスエンドポイント)にアクセスすることを可能にする。したがって、サービスゲートウェイは、顧客のVCNと顧客のプライベートネットワークの外側に存在するサービスのエンドポイントとの間の仮想リンクを確立することによって、プライベートアクセスモデルを供給する。
【0127】
付加的に、CSPIは、顧客オンプレミスインスタンスがFastConnect接続を使用して、インターネットなどの公衆ネットワークをトラバースすることなく顧客VCN内の1つまたは複数のサービスにアクセスすることができるFastConnect公衆ピアリングなどの技術を使用して、専用公衆アクセスを供給することができる。CSPIはまた、プライベートIPアドレスを有する顧客オンプレミスインスタンスがFastConnect接続を使用して顧客のVCNワークロードにアクセスすることができるFastConnectプライベートピアリングを使用して専用プライベートアクセスを供給することもできる。FastConnectは、顧客のオンプレミスネットワークをCSPIおよびそのサービスに接続するための、公衆インターネットを使用することに代わるネットワーク接続である。FastConnectは、インターネットベースの接続と比較して、より高い帯域幅オプションおよびより信頼性が高く一貫したネットワーキング体験を有する、専用のプライベート接続を作成するための容易、弾性的かつ経済的な方法を提供する。
【0128】
図6および上記の付随する説明は、例示的な仮想ネットワークにおける様々な仮想化構成要素を記載している。上述したように、仮想ネットワークは、下層の物理または基盤ネットワーク上に構築される。図7は、ある実施形態による、仮想ネットワークの下層を提供するCSPI700内の物理ネットワーク内の物理構成要素の単純化されたアーキテクチャ図を示す。図示のように、CSPI700は、クラウドサービスプロバイダ(CSP)によって提供される構成要素およびリソース(例えば、計算、メモリ、およびネットワーキングリソース)を含む分散環境を提供する。これらの構成要素およびリソースは、加入顧客、すなわち、CSPによって提供される1つまたは複数のサービスに加入している顧客にクラウドサービス(例えば、IaaSサービス)を提供するために使用される。顧客が加入しているサービスに基づいて、CSPI700のリソース(例えば、計算、メモリ、およびネットワーキングリソース)のサブセットが顧客にプロビジョンされる。その後、顧客は、CSPI700によって提供される物理計算、メモリ、およびネットワーキングリソースを使用して、自身のクラウドベースの(すなわち、CSPIによってホストされる)カスタマイズ可能なプライベート仮想ネットワークを構築することができる。前に示したように、これらの顧客ネットワークは、仮想クラウドネットワーク(VCN)として参照される。顧客は、これらの顧客VCN上で、計算インスタンスなどの1つまたは複数の顧客リソースを展開することができる。計算インスタンスは、仮想マシン、ベアメタルインスタンスなどの形態とすることができる。CSPI700は、顧客が多様なアプリケーションおよびサービスを可用性の高いホスト環境内で構築し、実行することを可能にするインフラストラクチャ、および、補完クラウドサービスのセットを提供する。
【0129】
図7に示す例示的な実施形態において、CSPI700の物理構成要素は、1つまたは複数の物理ホストマシンまたは物理サーバ(例えば、702、706、708)、ネットワーク仮想化デバイス(NVD)(例えば、710、712)、トップオブラック(TOR)スイッチ(例えば、714、716)、および物理ネットワーク(例えば、718)、ならびに物理ネットワーク718内のスイッチを含む。物理ホストマシンまたはサーバは、VCNの1つまたは複数のサブネットに参加する様々な計算インスタンスをホストし、実行することができる。計算インスタンスは、仮想マシンインスタンスまたはベアメタルインスタンスを含み得る。例えば、図6に示す様々な計算インスタンスが、図7に示す物理ホストマシンによってホストされ得る。VCN内の仮想マシン計算インスタンスは、1つホストマシンによって実行されてもよく、または、複数の異なるホストマシンによって実行され得る。物理ホストマシンはまた、仮想ホストマシン、コンテナベースのホストまたは機能などをホストすることもできる。図6に示すVNICおよびVCN VRが、図7に示すNVDによって実行され得る。図6に示すゲートウェイが、図7に示すホストマシンおよび/またはNVDによって実行され得る。
【0130】
ホストマシンまたはサーバは、ホストマシン上で仮想化環境を作成し、イネーブルするハイパーバイザ(仮想マシンモニタまたはVMMとしても参照される)を実行することができる。仮想化または仮想化環境は、クラウドベースのコンピューティングを促進する。1つまたは複数の計算インスタンスは、ホストマシン上で、そのホストマシン上のハイパーバイザによって作成、実行、および管理することができる。ホストマシン上のハイパーバイザは、ホストマシンの物理コンピューティングリソース(例えば、計算、メモリ、およびネットワーキングリソース)が、ホストマシンによって実行される様々な計算インスタンス間で共有されることを可能にする。
【0131】
例えば、図7に示すように、ホストマシン702および708は、それぞれハイパーバイザ760および766を実行する。これらのハイパーバイザは、ソフトウェア、ファームウェア、もしくはハードウェア、またはそれらの組み合わせを使用して実装され得る。典型的には、ハイパーバイザは、ホストマシンのハードウェアプロセッサ上で作動する、ホストマシンのオペレーティングシステム(OS)の上にあるプロセスまたはソフトウェア層である。ハイパーバイザは、ホストマシンの物理コンピューティングリソース(例えば、プロセッサ/コア、メモリリソース、ネットワーキングリソースなどの処理リソース)が、ホストマシンによって実行される様々な仮想マシン計算インスタンス間で共有されることを可能にすることによって、仮想化環境を提供する。例えば、図7において、ハイパーバイザ760は、ホストマシン702のOSの上にあることができ、ホストマシン702のコンピューティングリソース(例えば、処理、メモリ、およびネットワーキングリソース)がホストマシン702によって実行される計算インスタンス(例えば、仮想マシン)間で共有されることを可能にする。仮想マシンは、ホストマシンのOSと同じであってもよく、または、異なり得る、それ自体のオペレーティングシステム(ゲストオペレーティングシステムとして参照される)を有することができる。ホストマシンによって実行される仮想マシンのオペレーティングシステムは、同じホストマシンによって実行される別の仮想マシンのオペレーティングシステムと同じであってもよく、または異なり得る。したがって、ハイパーバイザは、複数のオペレーティングシステムが、ホストマシンの同じコンピューティングリソースを共有しながら、互いに並行して実行されることを可能にする。図7に示すホストマシンは、同じまたは異なるタイプのハイパーバイザを有し得る。
【0132】
計算インスタンスは、仮想マシンインスタンスまたはベアメタルインスタンスとすることができる。図7において、ホストマシン702上の計算インスタンス768およびホストマシン708上の計算インスタンス774は、仮想マシンインスタンスの例である。ホストマシン706は、顧客に提供されるベアメタルインスタンスの一例である。
【0133】
ある事例において、ホストマシン全体が、単一の顧客にプロビジョンされてもよく、そのホストマシンによってホストされる1つまたは複数の計算インスタンス(仮想マシンまたはベアメタルインスタンスのいずれか)のすべてが、その同じ顧客に属する。他の事例において、ホストマシンは、複数の顧客(すなわち、複数のテナント)間で共有され得る。そのようなマルチテナンシシナリオにおいて、ホストマシンは、異なる顧客に属するホスト仮想マシン計算インスタンスをホストし得る。これらの計算インスタンスは、異なる顧客の異なるVCNのメンバであり得る。ある実施形態において、ベアメタル計算インスタンスは、ハイパーバイザを用いずにベアメタルサーバによってホストされる。ベアメタル計算インスタンスがプロビジョンされるとき、単一の顧客またはテナントが、ベアメタルインスタンスをホストするホストマシンの物理CPU、メモリ、およびネットワークインターフェイスの制御を維持し、ホストマシンは、他の顧客またはテナントと共有されない。
【0134】
前述したように、VCNの一部である各計算インスタンスは、計算インスタンスがVCNのサブネットのメンバになることを可能にするVNICに関連付けられる。計算インスタンスに関連付けられるVNICは、計算インスタンスへのおよびそこからのパケットまたはフレームの通信を促進する。計算インスタンスが作成されると、VNICが計算インスタンスに関連付けられる。ある実施形態において、ホストマシンによって実行される計算インスタンスについて、その計算インスタンスに関連付けられるVNICは、ホストマシンに接続されているNVDによって実行される。例えば、図7において、ホストマシン702は、VNIC776に関連付けられる仮想マシン計算インスタンス768を実行し、VNIC776は、ホストマシン702に接続されているNVD710によって実行される。別の例として、ホストマシン706によってホストされるベアメタルインスタンス772は、ホストマシン706に接続されているNVD712によって実行されるVNIC780に関連付けられる。さらに別の例として、VNIC784は、ホストマシン708によって実行される計算インスタンス774に関連付けられ、VNIC784は、ホストマシン708に接続されているNVD712によって実行される。
【0135】
ホストマシンによってホストされる計算インスタンスについて、そのホストマシンに接続されているNVDはまた、計算インスタンスがそのメンバであるVCNに対応するVCN VRも実行する。例えば、図7に示す実施形態において、NVD710は、計算インスタンス768がそのメンバであるVCNに対応するVCN VR777を実行する。NVD712はまた、ホストマシン706および708によってホストされる計算インスタンスに対応するVCNに対応する1つまたは複数のVCN VR783も実行することができる。
【0136】
ホストマシンは、ホストマシンが他のデバイスに接続されることを可能にする1つまたは複数のネットワークインターフェイスカード(NIC)を含むことができる。ホストマシン上のNICは、ホストマシンが別のデバイスに通信可能に接続されることを可能にする1つまたは複数のポートを提供することができる。例えば、ホストマシンは、ホストマシンおよびNVD上に設けられた1つまたは複数のポート(またはインターフェイス)を使用してNVDに接続され得る。ホストマシンはまた、別のホストマシンなどの他のデバイスにも接続され得る。
【0137】
例えば、図7において、ホストマシン702は、ホストマシン702のNIC732によって提供されるポート734の間およびNVD710のポート736の間に延在するリンク720を使用して、NVD710に接続されている。ホストマシン706は、ホストマシン706のNIC744によって提供されるポート746の間およびNVD712のポート748の間に延在するリンク724を使用して、NVD712に接続されている。ホストマシン708は、ホストマシン708のNIC750によって提供されるポート752の間およびNVD712のポート754の間に延在するリンク726を使用して、NVD712に接続されている。
【0138】
次いで、NVDは、通信リンクを介してトップオブラック(TOR)スイッチに接続されており、TORスイッチは、物理ネットワーク718(スイッチファブリックとしても参照される)に接続されている。ある実施形態において、ホストマシンとNVDとの間、および、NVDとTORスイッチとの間のリンクは、イーサネット(登録商標)リンクである。例えば、図7において、NVD710および712は、それぞれリンク728および730を使用して、1126個のTORスイッチ714および716に接続されている。ある実施形態において、リンク720、724、726、728、および730は、イーサネット(登録商標)リンクである。TORに接続されているホストマシンおよびNVDの集合は、ラックとして参照されることがある。
【0139】
物理ネットワーク718は、TORスイッチが互いに通信することを可能にする通信ファブリックを提供する。物理ネットワーク718は、多階層構成ネットワークとすることができる。ある実施態様において、物理ネットワーク718は、スイッチの多階層構成Closネットワークであり、TORスイッチ714および716は、多階層構成マルチノード物理スイッチングネットワーク718のリーフレベルノードを表す。限定ではないが、2階層ネットワーク、3階層ネットワーク、4階層ネットワーク、5階層ネットワーク、および一般的に「n」階層構成ネットワークを含む、異なるClosネットワーク構成が可能である。Closネットワークの一例が、図10に示されており、下記に説明される。
【0140】
1対1構成、多対1構成、1対多構成などのような、ホストマシンとNVDとの間の様々な異なる接続構成が可能である。1対1構成実施態様においては、各ホストマシンが、それ自体の別個のNVDに接続される。例えば、図7において、ホストマシン702は、ホストマシン702のNIC732を介してNVD710に接続される。多対1構成においては、複数のホストマシンが1つのNVDに接続される。例えば、図7において、ホストマシン706および708は、それぞれNIC744および750を介して、同じNVD712に接続される。
【0141】
1対多構成においては、1つのホストマシンが複数のNVDに接続される。図8は、ホストマシンが複数のNVDに接続されているCSPI800内の例を示す。図8に示すように、ホストマシン802は、複数のポート806および808を含むネットワークインターフェイスカード(NIC)804を備える。ホストマシン800は、ポート806およびリンク820を介して第1のNVD810に接続されており、ポート808およびリンク822を介して第2のNVD812に接続されている。ポート806および808は、イーサネット(登録商標)ポートであってもよく、ホストマシン802とNVD810および812との間のリンク820および822は、イーサネット(登録商標)リンクであり得る。次いで、NVD810は、第1のTORスイッチ814に接続されており、NVD812は、第2のTORスイッチ816に接続されている。NVD810および812とTORスイッチ814および816との間のリンクは、イーサネット(登録商標)リンクであり得る。TORスイッチ814および816は、多階層構成物理ネットワーク818内の階層0スイッチングデバイスを表す。
【0142】
図8に示す配置構成は、物理スイッチネットワーク818からホストマシン802への、および、ホストマシン802から物理スイッチネットワーク818への2つの別個の物理ネットワーク経路、すなわち、TORスイッチ814-NVD810-ホストマシン802とトラバースする第1の経路、および、TORスイッチ816-NVD812-ホストマシン802とトラバースする第2の経路を提供する。これら別個の経路は、ホストマシン802の向上した可用性(高可用性として参照される)を提供する。経路(例えば、経路の1つのリンクが故障した)またはデバイス(例えば、特定のNVDが機能していない)の1つに問題がある場合、他の経路が、ホストマシン802への/からの通信に使用され得る。
【0143】
図8に示す構成において、ホストマシンは、ホストマシンのNICによって提供される2つの異なるポートを使用して2つの異なるNVDに接続されている。他の実施形態において、ホストマシンは、ホストマシンの複数のNVDへの接続を可能にする複数のNICを含み得る。
【0144】
図7に戻って参照すると、NVDは、1つまたは複数のネットワークおよび/またはストレージ仮想化機能を実施する物理デバイスまたは構成要素である。NVDは、1つまたは複数の処理装置(例えば、CPU、ネットワークプロセッシングユニット(NPU)、FPGA、パケット処理パイプラインなど)、キャッシュを含むメモリ、およびポートを有する任意のデバイスであり得る。様々な仮想化機能が、NVDの1つまたは複数の処理装置によって実行されるソフトウェア/ファームウェアによって実施され得る。
【0145】
NVDは、様々な異なる形態で実装され得る。例えば、ある実施形態において、NVDは、プロセッサが基板に内蔵されているsmartNICまたはインテリジェントNICとして参照されるインターフェイスカードとして実装される。smartNICは、ホストマシン上のNICとは別個のデバイスである。図7において、NVD710および712は、それぞれホストマシン702、ならびにホストマシン706および708に接続されるsmartNICとして実装され得る。
【0146】
しかしながら、smartNICは、NVD実施態様の一例に過ぎない。様々な他の実施態様が可能である。例えば、いくつかの他の実施態様において、NVDまたはNVDによって実施される1つまたは複数の機能は、1つもしくは複数のホストマシン、1つもしくは複数のTORスイッチ、およびCSPI700の他の構成要素に組み込まれてもよく、またはそれによって実施され得る。例えば、NVDは、ホストマシン内に具現化されてもよく、ここで、NVDによって実施される機能は、ホストマシンによって実施される。別の例として、NVDは、TORスイッチの一部であってもよく、または、TORスイッチが、TORスイッチが公衆クラウドに使用される様々な複雑なパケット変換を実施することを可能にするNVDによって実施される機能を実施するように構成され得る。NVDの機能を実施するTORは、スマートTORとして参照されることがある。ベアメタル(BM)インスタンスではなく仮想マシン(VM)インスタンスが顧客に供給されるさらに他の実施態様においては、NVDによって実施される機能は、ホストマシンのハイパーバイザの内側で実装され得る。いくつかの他の実施態様において、NVDの機能の一部は、ホストマシンのフリート上で作動する集中型サービスにオフロードされ得る。
【0147】
図7に示すようにsmartNICとして実装されるときなどの、ある実施形態において、NVDは、1つまたは複数のホストマシンおよび1つまたは複数のTORスイッチに接続されることを可能にする複数の物理ポートを備え得る。NVD上のポートは、ホスト側ポート(「サウスポート」としても参照される)またはネットワーク側もしくはTOR側ポート(「ノースポート」としても参照される)として分類することができる。NVDのホスト側ポートは、NVDをホストマシンに接続するために使用されるポートである。図7におけるホスト側ポートの例は、NVD710上のポート736、ならびに、NVD712上のポート748および754を含む。NVDのネットワーク側ポートは、NVDをTORスイッチに接続するために使用されるポートである。図7におけるネットワーク側ポートの例は、NVD710上のポート756、ならびに、NVD712上のポート758を含む。図7に示すように、NVD710は、NVD710のポート756からTORスイッチ714へと延在するリンク728を使用してTORスイッチ714に接続されている。同様に、NVD712は、NVD712のポート758からTORスイッチ716へと延在するリンク730を使用してTORスイッチ716に接続されている。
【0148】
NVDは、ホスト側ポートを介してホストマシンからのパケットおよびフレーム(例えば、ホストマシンによってホストされる計算インスタンスによって生成されるパケットおよびフレーム)を受信し、必要なパケット処理を実施した後、パケットおよびフレームを、NVDのネットワーク側ポートを介してTORスイッチに転送することができる。NVDは、NVDのネットワーク側ポートを介してTORスイッチからのパケットおよびフレームを受信することができ、必要なパケット処理を実施した後、パケットおよびフレームを、NVDのホスト側ポートを介してホストマシンに転送することができる。
【0149】
ある実施形態において、複数のポートおよびNVDとTORスイッチとの間の関連付けられるリンクが存在し得る。これらのポートおよびリンクは、集約されて、複数のポートまたはリンクのリンクアグリゲータグループ(LAGとして参照される)を形成することができる。リンク集約は、2つのエンドポイント間の(例えば、NVDとTORスイッチとの間の)複数の物理リンクが単一の論理リンクとして扱われることを可能にする。所与のLAG内のすべての物理リンクは、同じ速度で全二重モードにおいて動作し得る。LAGは、2つのエンドポイント間の接続の帯域幅および信頼性を増大させるのを助ける。LAG内の物理リンクのうちの1つが故障した場合、トラフィックは、LAG内の他の物理リンクのうちの1つに、動的かつトランスペアレントに再割り当てされる。集約された物理リンクは、各個々のリンクよりも高い帯域幅を送達する。LAGに関連付けられる複数のポートは、単一の論理ポートとして扱われる。トラフィックは、LAGの複数の物理リンクにわたって負荷平衡させることができる。1つまたは複数のLAGは、2つのエンドポイントの間で構成することができる。2つのエンドポイントは、NVDとTORスイッチとの間、ホストマシンとNVDとの間などであり得る。
【0150】
NVDは、ネットワーク仮想化機能を実装または実施する。これらの機能は、NVDによって実行されるソフトウェア/ファームウェアによって実施される。ネットワーク仮想化機能の例は、限定ではないが、パケットカプセル化およびカプセル化解除機能、VCNネットワークを作成するための機能、VCNセキュリティリスト(ファイアウォール)機能などのネットワークポリシを実装するための機能、VCN内の計算インスタンスへの、および、そこからのパケットのルーティングおよび転送を促進する機能などを含む。ある実施形態において、パケットが受信されると、NVDは、パケットを処理し、パケットがどのように転送またはルーティングされるかを決定するためのパケット処理パイプラインを実行するように構成されている。このパケット処理パイプラインの一部として、NVDは、VCN内の計算インスタンスに関連付けられるVNICを実行すること、VCNに関連付けられる仮想ルータ(VR)を実行すること、仮想ネットワーク内での転送またはルーティングを促進するためのパケットのカプセル化およびカプセル化解除、あるゲートウェイ(例えば、ローカルピアリングゲートウェイ)の実行、セキュリティリスト、ネットワークセキュリティグループ、ネットワークアドレス変換(NAT)機能(例えば、ホストごとの公衆IPのプライベートIPへの変換)の実装、スロットル機能、および他の機能などの、オーバーレイネットワークに関連付けられる1つまたは複数の仮想機能を実行することができる。
【0151】
ある実施形態において、NVD内のパケット処理データ経路は、各々が一連のパケット変換ステージから構成されている複数のパケットパイプラインを含み得る。ある実施態様において、パケットが受信されると、パケットは、解析されて、単一のパイプラインに分類される。次いで、パケットは、NVDのインターフェイス上でパケットがドロップされるかまたは送出されるまで、1つのステージから別のステージへと線形的に処理される。これらのステージは、基本機能パケット処理構築ブロック(例えば、ヘッダの検証、スロットルの執行、新たなレイヤ2ヘッダの挿入、L4ファイアウォールの執行、VCNカプセル化/カプセル化解除など)を提供し、結果、既存のステージを構成することによって新たなパイプラインを構築することができ、新たなステージを作成し、それらを既存のパイプラインに挿入することによって、新たな機能を追加することができる。
【0152】
NVDは、VCNの制御プレーンおよびデータプレーンに対応する制御プレーン機能とデータプレーン機能の両方を実施することができる。VCN制御プレーンの例は、図11図12図13、および図14にも示されており(参照符号1116、1216、1316、および1416参照)、下記に説明される。VCNデータプレーンの例は、図11図12図13、および図14にも示されており(参照符号1118、1218、1318、および1418参照)、下記に説明される。制御プレーン機能は、データがどのように転送されるべきであるかを制御するネットワークの構成(例えば、経路および経路テーブルのセットアップ、VNICの構成など)に使用される機能を含む。ある実施形態において、すべてのオーバーレイ-基板マッピングを中心的に計算し、それらをNVDおよびDRG、SGW、IGWなどのような様々なゲートウェイなどの仮想ネットワークエッジデバイスに発行するVCN制御プレーンが提供される。ファイアウォール規則もまた、同じメカニズムを使用して発行することができる。ある実施形態において、NVDは、そのNVDに関連するマッピングのみを得る。データプレーン機能は、制御プレーンを使用してセットアップされる構成に基づくパケットの実際のルーティング/転送のための機能を含む。VCNデータプレーンは、顧客のネットワークパケットを、それらが基盤ネットワークをトラバースする前にカプセル化することによって実装される。カプセル化/カプセル化解除機能は、NVD上で実装される。ある実施形態において、NVDは、ホストマシンを出入りするすべてのネットワークパケットをインターセプトし、ネットワーク仮想化機能を実施するように構成されている。
【0153】
上記で示したように、NVDは、VNICおよびVCN VRを含む様々な仮想化機能を実行する。NVDは、VNICに接続されている1つまたは複数のホストマシンによってホストされる計算インスタンスに関連付けられるVNICを実行することができる。例えば、図7に示すように、NVD710は、NVD710に接続されているホストマシン702によってホストされる計算インスタンス768に関連付けられるVNIC776の機能を実行する。別の例として、NVD712は、ホストマシン706によってホストされるベアメタル計算インスタンス772に関連付けられるVNIC780を実行し、ホストマシン708によってホストされる計算インスタンス774に関連付けられるVNIC784を実行する。ホストマシンは、異なる顧客に属する異なるVCNに属する計算インスタンスをホストすることができ、ホストマシンに接続されているNVDは、計算インスタンスに対応するVNICを実行する(すなわち、VNIC関連機能を実行する)ことができる。
【0154】
NVDはまた、計算インスタンスのVCNに対応するVCN仮想ルータも実行する。例えば、図7に示す実施形態において、NVD710は、計算インスタンス768が属するVCNに対応するVCN VR777を実行する。NVD712は、ホストマシン706および708によってホストされる計算インスタンスが属する1つまたは複数のVCNに対応する1つまたは複数のVCN VR783を実行する。ある実施形態において、そのVCNに対応するVCN VRは、そのVCNに属する少なくとも1つの計算インスタンスをホストするホストマシンに接続されているすべてのNVDによって実行される。ホストマシンが、異なるVCNに属する計算インスタンスをホストする場合、そのホストマシンに接続されているNVDは、それらの異なるVCNに対応するVCN VRを実行することができる。
【0155】
VNICおよびVCN VRに加えて、NVDは、様々なソフトウェア(例えば、デーモン)を実行し、NVDによって実施される様々なネットワーク仮想化機能を促進する1つまたは複数のハードウェア構成要素を含むことができる。単純化を目的として、これらの様々な構成要素は、図7に示す「パケット処理構成要素」としてともにグループ化される。例えば、NVD710は、パケット処理構成要素786を備え、NVD712は、パケット処理構成要素788を備える。例えば、NVDのパケット処理構成要素は、NVDのポートおよびハードウェアインターフェイスと相互に作用して、NVDによって受信され、NVDを使用して受信され通信されるすべてのパケットを監視し、ネットワーク情報を記憶するように構成されているパケットプロセッサを含み得る。ネットワーク情報は、例えば、NVDによってフロー情報ごとに(例えば、フロー統計ごとに)ハンドリングされる異なるネットワークフローを識別するネットワークフロー情報を含み得る。ある実施形態において、ネットワークフロー情報は、VNICごとに記憶され得る。パケットプロセッサは、パケットごとの操作を実施するとともに、ステートフルNATおよびL4ファイアウォール(FW)を実装し得る。別の例として、パケット処理構成要素は、NVDによって記憶されている情報を、1つまたは複数の異なる複製目標ストアに複製するように構成されている複製エージェントを含み得る。さらに別の例として、パケット処理構成要素は、NVDのログ記録機能を実施するように構成されているログ記録エージェントを含み得る。パケット処理構成要素はまた、NVDの性能および健全性を監視し、また、場合によっては、NVDに接続されている他の構成要素の状態および健全性も監視するためのソフトウェアも含み得る。
【0156】
図6は、VCN、VCN内のサブネット、サブネット上に展開されている計算インスタンス、計算インスタンスに関連付けられるVNIC、VCNのためのVR、および、VCN向けに構成されているゲートウェイのセットを含む例示的な仮想またはオーバーレイネットワークの構成要素を示す。図6に示すオーバーレイ構成要素は、図7に示す物理構成要素のうちの1つまたは複数によって実行またはホストされ得る。例えば、VCN内の計算インスタンスは、図7に示す1つまたは複数のホストマシンによって実行またはホストされ得る。ホストマシンによってホストされる計算インスタンスについて、その計算インスタンスに関連付けられるVNICは、典型的には、そのホストマシンに接続されているNVDによって実行される(すなわち、VNIC機能は、そのホストマシンに接続されているNVDによって提供される)。VCNのVCN VR機能は、そのVCNの一部である計算インスタンスをホストまたは実行するホストマシンに接続されているすべてのNVDによって実行される。VCNに関連付けられるゲートウェイは、1つまたは複数の異なるタイプのNVDによって実行され得る。例えば、あるゲートウェイは、smartNICによって実行されてもよく、一方、他のゲートウェイは、1つまたは複数のホストマシンまたはNVDの他の実施態様によって実行され得る。
【0157】
上述したように、顧客VCN内の計算インスタンスは、様々な異なるエンドポイントと通信することができ、ここで、エンドポイントは、ソース計算インスタンスと同じサブネット内にあることができ、ソース計算インスタンスと異なるサブネット内であるが、同じVCN内にあることができ、または、エンドポイントは、ソース計算インスタンスのVCNの外側にあることができる。これらの通信は、計算インスタンスに関連付けられるVNIC、VCN VR、およびVCNに関連付けられるゲートウェイを使用して促進される。
【0158】
VCN内の同じサブネット上の2つの計算インスタンス間の通信について、通信は、ソースおよび宛先計算インスタンスに関連付けられるVNICを使用して促進される。ソースおよび宛先計算インスタンスは、同じホストマシンによってホストされてもよく、または、異なるホストマシンによってホストされ得る。ソース計算インスタンスに由来するパケットは、ソース計算インスタンスをホストするホストマシンから、そのホストマシンに接続されているNVDへと転送することができる。NVD上で、パケットは、ソース計算インスタンスに関連付けられるVNICの実行を含むことができる、パケット処理パイプラインを使用して処理される。パケットの宛先エンドポイントは同じサブネット内にあるため、ソース計算インスタンスに関連付けられるVNICが実行される結果として、パケットが、宛先計算インスタンスに関連付けられるVNICを実行するNVDに転送され、その後、NVDは、パケットを処理し、宛先計算インスタンスに転送する。ソースおよび宛先計算インスタンスに関連付けられるVNICは、同じNVD上で実行されてもよく(例えば、ソース計算インスタンスと宛先計算インスタンスの両方が同じホストマシンによってホストされるとき)、または、異なるNVD上で実行され得る(例えば、ソースおよび宛先計算インスタンスが異なるNVDに接続されている異なるホストマシンによってホストされるとき)。VNICは、NVDによって記憶されているルーティング/転送テーブルを使用して、パケットの次のホップを決定することができる。
【0159】
パケットがサブネット内の計算インスタンスから同じVCN内の異なるサブネット内のエンドポイントに通信されるようにするために、ソース計算インスタンスに由来するパケットは、ソース計算インスタンスをホストするホストマシンからそのホストマシンに接続されているNVDに通信される。NVD上で、パケットは、1つまたは複数のVNICの実行を含むことができるパケット処理パイプラインおよびVCNに関連付けられるVRを使用して処理される。例えば、パケット処理パイプラインの一部として、NVDは、ソース計算インスタンスに関連付けられるVNICに対応する機能を実行するかまたは呼び出す(VNICの実行としても参照される)。VNICによって実施される機能は、パケット上のVLANタグを見ることを含むことができる。パケット宛先はサブネットの外側にあるため、VCN VR機能は、NVDによって次に呼び出され、実行される。次いで、VCN VRは、宛先計算インスタンスに関連付けられるVNICを実行するNVDにパケットをルーティングする。次いで、宛先計算インスタンスに関連付けられるVNICは、パケットを処理し、宛先計算インスタンスに転送する。ソースおよび宛先計算インスタンスに関連付けられるVNICは、同じNVD上で実行されてもよく(例えば、ソース計算インスタンスと宛先計算インスタンスの両方が同じホストマシンによってホストされるとき)、または、異なるNVD上で実行され得る(例えば、ソースおよび宛先計算インスタンスが異なるNVDに接続されている異なるホストマシンによってホストされるとき)。
【0160】
パケットの宛先がソース計算インスタンスのVCNの外側にある場合、ソース計算インスタンスに由来するパケットは、ソース計算インスタンスをホストするホストマシンからそのホストマシンに接続されているNVDに通信される。NVDは、ソース計算インスタンスに関連付けられるVNICを実行する。パケットの宛先エンドポイントはVCNの外側にあるため、パケットは、その後、そのVCNのVCN VRによって処理される。NVDは、VCN VR機能を呼び出し、その結果として、パケットは、VCNに関連付けられる適切なゲートウェイを実行するNVDに転送される。例えば、宛先が顧客のオンプレミスネットワーク内のエンドポイントである場合、パケットは、VCN VRによって、VCN向けに構成されているDRGゲートウェイを実行するNVDに転送することができる。VCN VRは、ソース計算インスタンスに関連付けられるVNICを実行しているNVDと同じNVD上で、または、異なるNVDによって実行され得る。ゲートウェイは、NVDによって実行されてもよく、NVDは、smartNIC、ホストマシン、または他のNVD実施態様であり得る。次いで、パケットは、ゲートウェイによって処理され、パケットの、最終的な意図される宛先への通信を促進する次のホップへと転送されることができる。例えば、図7に示す実施形態において、計算インスタンス768に由来するパケットは、ホストマシン702からリンク720を介して(NIC732を使用して)NVD710へと通信することができる。NVD710上で、VNIC776が、これがソース計算インスタンス768に関連付けられるVNICであるため、呼び出される。VNIC776は、パケット内のカプセル化情報を調べ、パケットのその意図される宛先エンドポイントへの通信を促進することを目標としてパケットを転送する次のホップを決定し、次いで、決定された次のホップにパケットを転送するように構成されている。
【0161】
VCN上に展開される特定の計算インスタンスは、様々な異なるエンドポイントと通信することができる。これらのエンドポイントは、CSPI700によってホストされるエンドポイントおよびCSPI700の外側のエンドポイントを含み得る。CSPI700によってホストされるエンドポイントは、同じVCNまたは他のVCN内のインスタンスを含んでもよく、VCNは、顧客のVCNであってもよく、または、顧客に属しないVCNであり得る。CSPI700によってホストされるエンドポイント間の通信は、物理ネットワーク718を介して実施され得る。計算インスタンスはまた、CSPI700によってホストされないか、または、CSPI700の外側にあるエンドポイントとも通信し得る。これらのエンドポイントの例は、顧客オンプレミスネットワークもしくはデータセンタ内のエンドポイント、または、インターネットなどの公衆ネットワークを介してアクセス可能な公衆エンドポイントを含む。CSPI700の外側のエンドポイントとの通信は、様々な通信プロトコルを使用して、公衆ネットワーク(例えば、インターネット)(図7には示さず)またはプライベートネットワーク(図7には示さず)を介して実施され得る。
【0162】
図7に示すCSPI700のアーキテクチャは、例示に過ぎず、限定であるようには意図されていない。代替的な実施形態において、変形、代替、および修正が可能である。例えば、いくつかの他の実施形態において、CSPI700は、図7に示されているよりも多いもしくは少ないシステムもしくは構成要素を有してもよく、2つ以上のシステムを組み合わせてもよく、または、システムの異なる構成もしくは配置を有し得る。図7に示すシステム、サブシステム、および他の構成要素は、それぞれのシステム、ハードウェアの使用、またはそれらの組み合わせの1つまたは複数の処理装置(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)内で実施することができる。ソフトウェアは、非一時的記憶媒体上に(例えば、メモリデバイス上に)記憶することができる。
【0163】
図9は、ある実施形態によるマルチテナンシ機能をサポートするためにI/O仮想化を提供するためのホストマシンとNVDとの間の接続を示す。図9に示すように、ホストマシン902は、仮想化環境を提供するハイパーバイザ904を実行する。ホストマシン902は、2つの仮想マシンインスタンス、すなわち、顧客/テナント#1に属するVM1 906および顧客/テナント#2に属するVM2 908を実行する。ホストマシン902は、リンク914を介してNVD912に接続されている物理NIC910を備える。計算インスタンスの各々は、NVD912によって実行されるVNICにアタッチされる。図9の実施形態において、VM1 906は、VNIC-VM1 920にアタッチされ、VM2 908は、VNIC-VM2 922にアタッチされる。
【0164】
図9に示すように、NIC910は、2つの論理NIC、すなわち、論理NIC A916および論理NIC B918を含む。各仮想マシンは、それ自体の論理NICにアタッチされ、それと協働するように構成されている。例えば、VM1 906は、論理NIC A916にアタッチされ、VM2 908は、論理NIC B918にアタッチされる。ホストマシン902は複数のテナントによって共有される1つのみの物理NIC910を備えるが、論理NICに起因して、各テナントの仮想マシンは、それらがそれら自体のホストマシンおよびNICを有すると考える。
【0165】
ある実施形態において、各論理NICは、それ自体のVLAN IDを割り当てられる。したがって、特定のVLAN IDがテナント#1の論理NIC A916に割り当てられ、別個のVLAN IDが、テナント#2の論理NIC B918に割り当てられる。VM1 906からパケットが通信されるとき、テナント#1に割り当てられているタグが、ハイパーバイザによってパケットに割り当てられ、次いで、パケットは、ホストマシン902からリンク914を介してNVD912に通信される。同様に、VM2 908からパケットが通信されるとき、テナント#2に割り当てられているタグが、ハイパーバイザによってパケットに割り当てられ、次いで、パケットは、ホストマシン902からリンク914を介してNVD912に通信される。したがって、ホストマシン902からNVD912に通信されるパケット924は、特定のテナントおよび関連付けられるVMを識別する、関連付けられるタグ926を有する。NVD上で、ホストマシン902から受信されるパケット924について、パケットに関連付けられるタグ926は、パケットがVNIC-VM1 920によって処理されるべきであるか、または、VNIC-VM2 922によって処理されるべきであるかを判定するために使用される。次いで、パケットは、対応するVNICによって処理される。図9に示す構成は、各テナントの計算インスタンスが、それらがそれら自体のホストマシンおよびNICを所有すると考えることを可能にする。図9に示すセットアップは、マルチテナンシをサポートするためのI/O仮想化を提供する。
【0166】
図10は、ある実施形態による物理ネットワーク1000の単純化されたブロック図を示す。図10に示す実施形態は、Closネットワークとして構造化される。Closネットワークは、高い二分帯域幅および最大のリソース利用を維持しながら接続冗長性を提供するように設計されている特定のタイプのネットワークトポロジである。Closネットワークは、ノンブロッキング、マルチステージまたは多階層構成スイッチングネットワークのタイプであり、ステージまたは階層の数は、2、3、4、5などとすることができる。図10に示す実施形態は、階層1、2、および3を備える3階層構成ネットワークである。TORスイッチ1004は、Closネットワーク内の階層0スイッチを表す。1つまたは複数のNVDが、TORスイッチに接続されている。階層0スイッチは、物理ネットワークのエッジデバイスとしても参照される。階層0スイッチは、リーフスイッチとしても参照される階層1スイッチに接続されている。図10に示す実施形態においては、「n」個の階層0TORスイッチから成るセットが「n」個の階層1スイッチから成るセットに接続され、ともにポッドを形成する。ポッド内の各階層0スイッチは、ポッド内のすべての階層1スイッチに相互接続されるが、ポッド間のスイッチの接続はない。ある実施態様において、2つのポッドがブロックとして参照される。各ブロックは、「n」個の階層2スイッチ(スパインスイッチと呼ばれることがある)から成るセットによってサービスされるか、または、それに接続される。物理ネットワークトポロジ内には、いくつかのブロックが存在し得る。次いで、階層2スイッチは、「n」個の階層3スイッチ(スーパースパインスイッチと呼ばれることがある)に接続されている。物理ネットワーク1000を介したパケットの通信は、典型的には、1つまたは複数のレイヤ3通信プロトコルを使用して実施される。典型的には、TORレイヤを除く物理ネットワークのすべてのレイヤは、nウェイ冗長であり、したがって、高可用性を可能にする。物理ネットワークのスケーリングを可能にするように物理ネットワーク内のスイッチの互いに対する可視性を制御するために、ポッドおよびブロックに対してポリシを指定することができる。
【0167】
Closネットワークの特徴は、1つの階層0スイッチから別の階層0スイッチに(または階層0スイッチに接続されているNVDから階層0スイッチに接続されている別のNVDに)達するための最大ホップカウントが固定であることである。例えば、3階層構成Closネットワークにおいては、パケットが1つのNVDから別のNVDに達するために最大7ホップが必要とされ、ここで、ソースおよび目標NVDはClosネットワークのリーフ階層に接続されている。同様に、4階層構成Closネットワークにおいては、パケットが1つのNVDから別のNVDに達するために最大9ホップが必要とされ、ここで、ソースおよび目標NVDはClosネットワークのリーフ階層に接続されている。したがって、Closネットワークアーキテクチャは、ネットワーク全体を通じて一貫したレイテンシを維持し、これは、データセンタ内および間の通信に重要である。Closトポロジは水平方向にスケーリングし、コスト効率的である。ネットワークの帯域幅/スループット容量は、様々な階層により多くのスイッチ(例えば、より多くのリーフおよびスパインスイッチ)を追加することによって、および、隣接する階層のスイッチ間のリンクの数を増大させることによって、容易に増大することができる。
【0168】
ある実施形態において、CSPI内の各リソースは、クラウド識別子(CID)と呼ばれる一意の識別子を割り当てられる。この識別子は、リソースの情報の一部として含まれ、例えば、コンソールを介してまたはAPIを通じてリソースを管理するために使用することができる。CIDの例示的な構文は、以下のとおりである。
【0169】
ocid1.<RESOURCE TYPE>.<REALM>.[REGION][.FUTURE USE].<UNIQUE ID>
ここで、
ocid1:CIDのバージョンを指示する文字列。
resource type:リソースのタイプ(例えば、インスタンス、ボリューム、VCN、サブネット、ユーザ、グループなど)。
realm:リソースがその中にあるレルム。例示的な値は、商業レルムの「c1」、政府クラウドレルムの「c2」、または、連邦政府クラウドレルムの「c3」などである。各レルムが、それ自体のドメイン名を有することができる。
region:リソースがその中にあるリージョン。リージョンがリソースに適用可能でない場合、この部分はブランクになり得る。
future use:将来の使用のために予約済み。
unique ID:IDの一意の部分。フォーマットは、リソースまたはサービスのタイプに応じて変化し得る。
【0170】
図11は、少なくとも1つの実施形態による、IaaSアーキテクチャの例示的なパターンを示すブロック図1100である。サービスオペレータ1102は、仮想クラウドネットワーク(VCN)1106およびセキュアホストサブネット1108を含むことができるセキュアホストテナンシ1104に通信可能に結合され得る。いくつかの例において、サービスオペレータ1102は、Microsoft Windows Mobile(登録商標)などのソフトウェア、および/または、iOS、Windows Phone、Android、BlackBerry(登録商標)8、Palm OSなどのような様々なモバイルオペレーティングシステムを作動させており、インターネット、電子メール、ショートメッセージサービス(SMS)、Blackberry(登録商標)、または他の通信プロトコルを有効化されているポータブル手持ち式デバイス(例えば、iPhone(登録商標)、携帯電話機、iPad(登録商標)、コンピューティングタブレット、個人情報端末(PDA))またはウェアラブルデバイス(例えば、Google(登録商標)Glassヘッドマウントディスプレイ)であり得、1つまたは複数のクライアントコンピューティングデバイスを使用し得る。代替的に、クライアントコンピューティングデバイスは、例として、様々なバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinux(登録商標)オペレーティングシステムを作動させているパーソナルコンピュータおよび/またはラップトップを含む汎用パーソナルコンピュータとすることができる。クライアントコンピューティングデバイスは、限定ではないが、例えば、Google Chrome OSなどの様々なGNU/Linuxオペレーティングシステムを含む、様々な市販のUNIX(登録商標)またはUNIXのようなオペレーティングシステムのいずれかを作動させるワークステーションコンピュータとすることができる。代替的に、または、加えて、クライアントコンピューティングデバイスは、VCN1106および/またはインターネットにアクセスすることができる、ネットワークを介して通信することが可能な、シンクライアントコンピュータ、インターネット接続可能ゲーミングシステム(例えば、Kinect(登録商標)ジェスチャ入力デバイスを有するかまたは有しないMicrosoft(登録商標)Xboxゲーミングコンソール)、および/またはパーソナルメッセージングデバイスなどの、任意の他の電子デバイスであり得る。
【0171】
VCN1106は、ローカルピアリングゲートウェイ(LPG)1110を含むことができ、これは、セキュアシェル(SSH)VCN1112に含まれるLPG1110を介してSSH VCN1112に通信可能に結合され得る。SSH VCN1112は、SSHサブネット1114を含むことができ、SSH VCN1112は、制御プレーンVCN1116に含まれるLPG1110を介して制御プレーンVCN1116に通信可能に結合され得る。また、SSH VCN1112は、LPG1110を介してデータプレーンVCN1118に通信可能に結合することもできる。制御プレーンVCN1116およびデータプレーンVCN1118は、IaaSプロバイダが所有および/または運用することができるサービステナンシ1119に含めることができる。
【0172】
制御プレーンVCN1116は、周縁ネットワーク(例えば、企業イントラネットと外部ネットワークとの間の企業ネットワークの部分)として作用する制御プレーン非武装地帯(DMZ)階層1120を含むことができる。DMZベースのサーバは、役割を制限され得、違反を含まれたままにするのを助け得る。付加的に、DMZ階層1120は、1つまたは複数のロードバランサ(LB)サブネット1122、アプリサブネット1126を含むことができる制御プレーンアプリ階層1124、データベース(DB)サブネット1130(例えば、フロントエンドDBサブネットおよび/またはバックエンドDBサブネット)を含むことができる制御プレーンデータ階層1128を含むことができる。制御プレーンDMZ階層1120に含まれるLBサブネット1122は、制御プレーンアプリ階層1124に含まれるアプリサブネット1126および制御プレーンVCN1116に含まれ得るインターネットゲートウェイ1134に通信可能に結合することができ、アプリサブネット1126は、制御プレーンデータ階層1128に含まれるDBサブネット1130ならびにサービスゲートウェイ1136およびネットワークアドレス変換(NAT)ゲートウェイ1138に通信可能に結合され得る。制御プレーンVCN1116は、サービスゲートウェイ1136およびNATゲートウェイ1138を含むことができる。
【0173】
制御プレーンVCN1116は、アプリサブネット1126を含むことができるデータプレーンミラーアプリ階層1140を含むことができる。データプレーンミラーアプリ階層1140に含まれるアプリサブネット1126は、計算インスタンス1144を実行することができる仮想ネットワークインターフェイスコントローラ(VNIC)1142を含むことができる。計算インスタンス1144は、データプレーンミラーアプリ階層1140のアプリサブネット1126を、データプレーンアプリ階層1146に含まれ得るアプリサブネット1126に通信可能に結合され得る。
【0174】
データプレーンVCN1118は、データプレーンアプリ階層1146と、データプレーンDMZ階層1148と、データプレーンデータ階層1150とを含むことができる。データプレーンDMZ階層1148は、データプレーンアプリ階層1146のアプリサブネット1126およびデータプレーンVCN1118のインターネットゲートウェイ1134に通信可能に結合され得るLBサブネット1122を含むことができる。アプリサブネット1126は、データプレーンVCN1118のサービスゲートウェイ1136およびデータプレーンVCN1118のNATゲートウェイ1138に通信可能に結合され得る。データプレーンデータ階層1150もまた、データプレーンアプリ階層1146のアプリサブネット1126に通信可能に結合され得るDBサブネット1130を含むことができる。
【0175】
制御プレーンVCN1116およびデータプレーンVCN1118のインターネットゲートウェイ1134は、公衆インターネット1154に通信可能に結合され得るメタデータ管理サービス1152に通信可能に結合され得る。公衆インターネット1154は、制御プレーンVCN1116およびデータプレーンVCN1118のNATゲートウェイ1138に通信可能に結合され得る。制御プレーンVCN1116およびデータプレーンVCN1118のサービスゲートウェイ1136は、クラウドサービス1156に通信可能に結合され得る。
【0176】
いくつかの例において、制御プレーンVCN1116またはデータプレーンVCN1118のサービスゲートウェイ1136は、公衆インターネット1154を経由することなく、クラウドサービス1156に対するアプリケーションプログラミングインターフェイス(API)コールを行うことができる。サービスゲートウェイ1136からクラウドサービス1156へのAPIコールは、一方向であり、すなわち、サービスゲートウェイ1136は、クラウドサービス1156に対するAPIコールを行うことができ、クラウドサービス1156は、要求されたデータをサービスゲートウェイ1136に送ることができる。しかし、クラウドサービス1156は、サービスゲートウェイ1136に対するAPIコールを開始することができない。
【0177】
いくつかの例において、セキュアホストテナンシ1104は、サービステナンシ1119に直接的に接続することができ、これは、他の様態では分離され得る。セキュアホストサブネット1108は、他の様態では分離されているシステムを介して双方向通信を可能にすることができるLPG1110を通じてSSHサブネット1114と通信することができる。セキュアホストサブネット1108をSSHサブネット1114に接続することによって、セキュアホストサブネット1108は、サービステナンシ1119内の他のエンティティにアクセスすることができるようになる。
【0178】
制御プレーンVCN1116は、サービステナンシ1119のユーザが、所望のリソースをセットアップまたは他の様態でプロビジョンすることを可能にすることができる。制御プレーンVCN1116においてプロビジョンされる所望のリソースは、データプレーンVCN1118内に展開されるか、または、他の様態で使用され得る。いくつかの例において、制御プレーンVCN1116は、データプレーンVCN1118から分離することができ、制御プレーンVCN1116のデータプレーンミラーアプリ階層1140は、データプレーンミラーアプリ階層1140およびデータプレーンアプリ階層1146内に包含され得るVNIC1142を介して、データプレーンVCN1118のデータプレーンアプリ階層1146と通信することができる。
【0179】
いくつかの例において、システムのユーザまたは顧客は、公衆インターネット1154を通じて、要求、例えば、作成、読み出し、更新、または削除(CRUD)動作を行うことができ、公衆インターネットは、メタデータ管理サービス1152に要求を通信することができる。メタデータ管理サービス1152は、インターネットゲートウェイ1134を通じて制御プレーンVCN1116に要求を通信することができる。要求は、制御プレーンDMZ階層1120内に包含されるLBサブネット1122によって受信することができる。LBサブネット1122は、要求が有効であることを判定することができ、この判定に応答して、LBサブネット1122は、制御プレーンアプリ階層1124内に包含されるアプリサブネット1126に要求を送信することができる。要求が、検証され、公衆インターネット1154に対するコールを必要とする場合、公衆インターネット1154に対するコールを行うことができるNATゲートウェイ1138に、公衆インターネット1154に対するコールを送信することができる。要求によって記憶されることを所望され得るメモリを、DBサブネット1130内に記憶することができる。
【0180】
いくつかの例において、データプレーンミラーアプリ階層1140は、制御プレーンVCN1116とデータプレーンVCN1118との間の直接通信を促進することができる。例えば、構成に対する変更、更新、または他の適切な修正が、データプレーンVCN1118内に包含されるリソースに加えられることが所望され得る。VNIC1142を介して、制御プレーンVCN1116は、データプレーンVCN1118と直接通信することができ、以て、データプレーンVCN1118内に包含されるリソースに対して、構成の変更、更新、または他の適切な修正を実行することができる。
【0181】
いくつかの実施形態において、制御プレーンVCN1116およびデータプレーンVCN1118は、サービステナンシ1119に含めることができる。この場合、システムのユーザまたは顧客は、制御プレーンVCN1116またはデータプレーンVCN1118のいずれかを所有しなくてもよく、または、運営しなくてもよい。代わりに、IaaSプロバイダが、制御プレーンVCN1116およびデータプレーンVCN1118を所有または運営することができ、これらは両方とも、サービステナンシ1119に含めることができる。この実施形態は、ユーザまたは顧客が他のユーザ、または他の顧客のリソースと干渉するのを防止することができるネットワークの分離を可能にすることができる。また、この実施形態は、システムのユーザまたは顧客が、記憶に関して所望のレベルの脅威防止を有しない場合がある公衆インターネット1154に依拠する必要なしに、データベースをプライベートに記憶することを可能にすることができる。
【0182】
他の実施形態において、制御プレーンVCN1116内に包含されるLBサブネット1122は、サービスゲートウェイ1136からの信号を受信するように構成することができる。この実施形態において、制御プレーンVCN1116およびデータプレーンVCN1118は、公衆インターネット1154にコールする必要なく、IaaSプロバイダの顧客によってコールされるように構成することができる。IaaSプロバイダの顧客は、顧客が使用するデータベースがIaaSプロバイダによって制御され得、公衆インターネット1154から分離することができるサービステナンシ1119に記憶することができるため、この実施形態を所望し得る。
【0183】
図12は、少なくとも1つの実施形態による、IaaSアーキテクチャの別の例示的なパターンを示すブロック図1200である。サービスオペレータ1202(例えば、図11のサービスオペレータ1102)は、仮想クラウドネットワーク(VCN)1206(例えば、図11のVCN1106)およびセキュアホストサブネット1208(例えば、図11のセキュアホストサブネット1108)を含むことができるセキュアホストテナンシ1204(例えば、図11のセキュアホストテナンシ1104)に通信可能に結合され得る。VCN1206は、ローカルピアリングゲートウェイ(LPG)1210(例えば、図11のLPG1110)を含むことができ、これは、セキュアシェル(SSH)VCN1212に含まれるLPG1110を介してセキュアシェル(SSH)VCN1212(例えば、図11のSSH VCN1112)に通信可能に結合され得る。SSH VCN1212は、SSHサブネット1214(例えば、図11のSSHサブネット1114)を含むことができ、SSH VCN1212は、制御プレーンVCN1216に含まれるLPG1210を介して制御プレーンVCN1216(例えば、図11の制御プレーンVCN1116)に通信可能に結合され得る。制御プレーンVCN1216は、サービステナンシ1219(例えば、図11のサービステナンシ1119)に含めることができ、データプレーンVCN1218(例えば、図11のデータプレーンVCN1118)は、システムのユーザまたは顧客によって所有または運営され得る顧客テナンシ1221に含めることができる。
【0184】
制御プレーンVCN1216は、LBサブネット1222(例えば、図11のLBサブネット1122)を含むことができる制御プレーンDMZ階層1220(例えば、図11の制御プレーンDMZ階層1120)と、アプリサブネット1226(例えば、図11のアプリサブネット1126)を含むことができる制御プレーンアプリ階層1224(例えば、図11の制御プレーンアプリ階層1124)と、データベース(DB)サブネット1230(例えば、図11のDBサブネット1130と同様の)を含むことができる制御プレーンデータ階層1228(例えば、図11の制御プレーンデータ階層1128)とを含むことができる。制御プレーンDMZ階層1220に含まれるLBサブネット1222は、制御プレーンアプリ階層1224に含まれるアプリサブネット1226および制御プレーンVCN1216に含まれ得るインターネットゲートウェイ1234(例えば、図11のインターネットゲートウェイ1134)に通信可能に結合することができ、アプリサブネット1226は、制御プレーンデータ階層1228に含まれるDBサブネット1230ならびにサービスゲートウェイ1236(例えば、図11のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ1238(例えば、図11のNATゲートウェイ1138)に通信可能に結合され得る。制御プレーンVCN1216は、サービスゲートウェイ1236およびNATゲートウェイ1238を含むことができる。
【0185】
制御プレーンVCN1216は、アプリサブネット1226を含むことができるデータプレーンミラーアプリ階層1240(例えば、図11のデータプレーンミラーアプリ階層1140)を含むことができる。データプレーンミラーアプリ階層1240に含まれるアプリサブネット1226は、コンピュータインスタンス1244(例えば、図11のコンピュータインスタンス1144と同様の)を実行することができる仮想ネットワークインターフェイスコントローラ(VNIC)1242(例えば、1142のVNIC)を含むことができる。コンピュータインスタンス1244は、データプレーンミラーアプリ階層1240内に包含されているVNIC1242およびデータプレーンアプリ階層1246内に包含されているVNIC1242を介して、データプレーンミラーアプリ階層1240のアプリサブネット1226と、データプレーンアプリ階層1246(例えば、図11のデータプレーンアプリ階層1146)内に包含され得るアプリサブネット1226との間の通信を促進することができる。
【0186】
制御プレーンVCN1216内に包含されているインターネットゲートウェイ1234は、公衆インターネット1254(例えば、図11の公衆インターネット1154)に通信可能に結合され得るメタデータ管理サービス1252(例えば、図11のメタデータ管理サービス1152)に通信可能に結合され得る。公衆インターネット1254は、制御プレーンVCN1216内に包含されているNATゲートウェイ1238に通信可能に結合され得る。制御プレーンVCN1216内に包含されているサービスゲートウェイ1236は、クラウドサービス1256(例えば、図11のクラウドサービス1156)に通信可能に結合され得る。
【0187】
いくつかの例において、データプレーンVCN1218は、顧客テナンシ1221に含めることができる。この場合、IaaSプロバイダが、各顧客について制御プレーンVCN1216を提供することができ、IaaSプロバイダは、各顧客について、サービステナンシ1219内に包含される固有の計算インスタンス1244をセットアップすることができる。各計算インスタンス1244は、サービステナンシ1219内に包含されている制御プレーンVCN1216と、顧客テナンシ1221内に包含されているデータプレーンVCN1218との間の通信を可能にすることができる。計算インスタンス1244は、サービステナンシ1219内に包含されている制御プレーンVCN1216内にプロビジョンされるリソースが、顧客テナンシ1221内に包含されているデータプレーンVCN1218内で展開されるか、または、他の様態で使用されることを可能にすることができる。
【0188】
他の例において、IaaSプロバイダの顧客は、顧客テナンシ1221内に常駐するデータベースを有することができる。この例において、制御プレーンVCN1216は、アプリサブネット1226を含むことができるデータプレーンミラーアプリ階層1240を含むことができる。データプレーンミラーアプリ階層1240は、データプレーンVCN1218内に存在することができるが、データプレーンミラーアプリ階層1240は、データプレーンVCN1218内に常駐しなくてもよい。すなわち、データプレーンミラーアプリ階層1240は、顧客テナンシ1221にアクセスすることができるが、データプレーンミラーアプリ階層1240は、データプレーンVCN1218内に存在しなくてもよく、または、IaaSプロバイダの顧客によって所有もしくは運営されなくてもよい。データプレーンミラーアプリ階層1240は、データプレーンVCN1218に対してコールを行うように構成することができるが、制御プレーンVCN1216内に包含されている任意のエンティティにもコールを行うように構成されなくてもよい。顧客は、制御プレーンVCN1216内にプロビジョンされているデータプレーンVCN1218内のリソースを展開するかまたは他の様態で使用することを所望する場合があり、データプレーンミラーアプリ階層1240は、顧客が所望するリソースの展開または他の使用を促進することができる。
【0189】
いくつかの例において、IaaSプロバイダの顧客は、データプレーンVCN1218にフィルタを適用することができる。この実施形態において、顧客は、データプレーンVCN1218がアクセスすることができるものを決定することができ、顧客は、データプレーンVCN1218からの公衆インターネット1254へのアクセスを制約することができる。IaaSプロバイダは、データプレーンVCN1218の任意の外部ネットワークまたはデータベースに対するアクセスにフィルタを適用するか、または、他の様態で制御することが可能でなくてもよい。顧客による、顧客テナンシ1221内に包含されているデータプレーンVCN1218に対するフィルタの適用および制御は、データプレーンVCN1218を他の顧客および公衆インターネット1254から分離することを助けることができる。
【0190】
いくつかの実施形態において、クラウドサービス1256は、公衆インターネット1254、制御プレーンVCN1216、またはデータプレーンVCN1218上に存在しない場合があるサービスにアクセスするために、サービスゲートウェイ1236によってコールすることができる。クラウドサービス1256と制御プレーンVCN1216またはデータプレーンVCN1218との間の接続は、ライブまたは連続的でなくてもよい。クラウドサービス1256は、IaaSプロバイダが所有または運営する異なるネットワーク上に存在し得る。クラウドサービス1256は、サービスゲートウェイ1236からコールを受信するように構成することができ、公衆インターネット1254からのコールは受信しないように構成することができる。いくつかのクラウドサービス1256は、他のクラウドサービス1256から分離され得、制御プレーンVCN1216は、制御プレーンVCN1216と同じリージョンにない場合があるクラウドサービス1256から分離され得る。例えば、制御プレーンVCN1216は「リージョン1」に位置する場合があり、クラウドサービス「展開11」は、リージョン1および「リージョン2」に位置する場合がある。展開11に対するコールがリージョン1に位置する制御プレーンVCN1216内に包含されているサービスゲートウェイ1236によって行われた場合、コールは、リージョン1の展開11に送信され得る。この例において、制御プレーンVCN1216またはリージョン1の展開11は、リージョン2の展開11に通信可能に結合されなくてもよく、または、他の様態でこれと通信しなくてもよい。
【0191】
図13は、少なくとも1つの実施形態による、IaaSアーキテクチャの別の例示的なパターンを示すブロック図1300である。サービスオペレータ1302(例えば、図11のサービスオペレータ1102)は、仮想クラウドネットワーク(VCN)1306(例えば、図11のVCN1106)およびセキュアホストサブネット1308(例えば、図11のセキュアホストサブネット1108)を含むことができるセキュアホストテナンシ1304(例えば、図11のセキュアホストテナンシ1104)に通信可能に結合され得る。VCN1306は、LPG1310(例えば、図11のLPG1110)を含むことができ、これは、SSH VCN1312に含まれるLPG1310を介してSSH VCN1312(例えば、図11のSSH VCN1112)に通信可能に結合され得る。SSH VCN1312は、SSHサブネット1314(例えば、図11のSSHサブネット1114)を含むことができ、SSH VCN1312は、制御プレーンVCN1316に含まれるLPG1310を介して制御プレーンVCN1316(例えば、図11の制御プレーンVCN1116)に通信可能に結合することができ、データプレーンVCN1318に含まれるLPG1310を介してデータプレーンVCN1318(例えば、図11のデータプレーンVCN1118)に通信可能に結合され得る。制御プレーンVCN1316およびデータプレーンVCN1318は、サービステナンシ1319(例えば、図11のサービステナンシ1119)に含めることができる。
【0192】
制御プレーンVCN1316は、ロードバランサ(LB)サブネット1322(例えば、図11のLBサブネット1122)を含むことができる制御プレーンDMZ階層1320(例えば、図11の制御プレーンDMZ階層1120)と、アプリサブネット1326(例えば、図11のアプリサブネット1126と同様の)を含むことができる制御プレーンアプリ階層1324(例えば、図11の制御プレーンアプリ階層1124)と、DBサブネット1330を含むことができる制御プレーンデータ階層1328(例えば、図11の制御プレーンデータ階層1128)とを含むことができる。制御プレーンDMZ階層1320に含まれるLBサブネット1322は、制御プレーンアプリ階層1324に含まれるアプリサブネット1326および制御プレーンVCN1316に含まれ得るインターネットゲートウェイ1334(例えば、図11のインターネットゲートウェイ1134)に通信可能に結合することができ、アプリサブネット1326は、制御プレーンデータ階層1328に含まれるDBサブネット1330ならびにサービスゲートウェイ1336(例えば、図11のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ1338(例えば、図11のNATゲートウェイ1138)に通信可能に結合され得る。制御プレーンVCN1316は、サービスゲートウェイ1336およびNATゲートウェイ1338を含むことができる。
【0193】
データプレーンVCN1318は、データプレーンアプリ階層1346(例えば、図11のデータプレーンアプリ階層1146)と、データプレーンDMZ階層1348(例えば、図11のデータプレーンDMZ階層1148)と、データプレーンデータ階層1350(例えば、図11のデータプレーンデータ階層1150)とを含むことができる。データプレーンDMZ階層1348は、データプレーンアプリ階層1346の信頼できるアプリサブネット1360および信頼できないアプリサブネット1362ならびにデータプレーンVCN1318内に包含されているインターネットゲートウェイ1334に通信可能に結合され得るLBサブネット1322を含むことができる。信頼できるアプリサブネット1360は、データプレーンVCN1318内に包含されているサービスゲートウェイ1336、データプレーンVCN1318内に包含されているNATゲートウェイ1338、およびデータプレーンデータ階層1350内に包含されているDBサブネット1330に通信可能に結合され得る。信頼できないアプリサブネット1362は、データプレーンVCN1318内に包含されているサービスゲートウェイ1336およびデータプレーンデータ階層1350内に包含されているDBサブネット1330に通信可能に結合され得る。データプレーンデータ階層1350は、データプレーンVCN1318内に包含されているサービスゲートウェイ1336に通信可能に結合され得るDBサブネット1330を含むことができる。
【0194】
信頼できないアプリサブネット1362は、テナント仮想マシン(VM)1366(1)~(N)に通信可能に結合され得る1つまたは複数のVNIC1364(1)~(N)を含むことができる。各テナントVM1366(1)~(N)は、それぞれの顧客テナンシ1370(1)~(N)内に包含され得るそれぞれのコンテナイグレスVCN1368(1)~(N)内に包含され得るそれぞれのアプリサブネット1367(1)~(N)に通信可能に結合され得る。それぞれの二次VNIC1372(1)~(N)が、データプレーンVCN1318内に包含されている信頼できないアプリサブネット1362とコンテナイグレスVCN1368(1)~(N)内に包含されているアプリサブネットとの間の通信を促進することができる。各コンテナイグレスVCN1368(1)~(N)は、公衆インターネット1354(例えば、図11の公衆インターネット1154)に通信可能に結合され得るNATゲートウェイ1338を含むことができる。
【0195】
制御プレーンVCN1316内に包含されているインターネットゲートウェイ1334およびデータプレーンVCN1318内に包含されているインターネットゲートウェイ1334は、公衆インターネット1354に通信可能に結合され得るメタデータ管理サービス1352(例えば、図11のメタデータ管理サービス1152)に通信可能に結合され得る。公衆インターネット1354は、制御プレーンVCN1316内に包含されているNATゲートウェイ1338およびデータプレーンVCN1318内に包含されているNATゲートウェイ1338に通信可能に結合され得る。制御プレーンVCN1316内に包含されているサービスゲートウェイ1336およびデータプレーンVCN1318内に包含されているサービスゲートウェイ1336は、クラウドサービス1356に通信可能に結合され得る。
【0196】
いくつかの実施形態において、データプレーンVCN1318は、顧客テナンシ1370と統合することができる。この統合は、コードを実行するときにサポートを所望し得る事例などのいくつかの事例において、IaaSプロバイダの顧客にとって有用であるかまたは望ましい可能性がある。顧客は、破壊的であり得るか、他の顧客リソースと通信し得るか、または、他の様態で望ましくない影響を引き起こし得る、実行のためのコードを提供し得る。これに応答して、IaaSプロバイダは、顧客によってIaaSプロバイダに与えられたコードを実行すべきか否かを判定することができる。
【0197】
いくつかの例において、IaaSプロバイダの顧客は、一時的なネットワークアクセスをIaaSプロバイダに許可し、データプレーン階層アプリ1346に付随する機能を要求することができる。機能を実行するためのコードは、VM1366(1)~(N)内で実行することができ、コードは、データプレーンVCN1318上のそれ以外の場所で実行するように構成されなくてもよい。各VM1366(1)~(N)は、1つの顧客テナンシ1370に接続することができる。VM1366(1)~(N)内に包含されているそれぞれのコンテナ1371(1)~(N)が、コードを実行するように構成され得る。この場合、二重の分離(例えば、コンテナ1371(1)~(N)がコードを実行し、ここで、コンテナ1371(1)~(N)が、少なくとも、信頼できないアプリサブネット1362内に包含されているVM1366(1)~(N)内に包含され得る)が存在し得、これは、正しくないかまたは他の様態で望ましくないコードがIaaSプロバイダのネットワークを損傷すること、または、異なる顧客のネットワークを損傷することを防止するのを助けることができる。コンテナ1371(1)~(N)は、顧客テナンシ1370に通信可能に結合することができ、顧客テナンシ1370からデータを送信または受信するように構成することができる。コンテナ1371(1)~(N)は、データプレーンVCN1318内のいかなる他のエンティティからのデータを送信または受信するように構成されなくてもよい。コードの実行が完了すると、IaaSプロバイダは、コンテナ1371(1)~(N)を停止させるかまたは他の様態で破棄することができる。
【0198】
いくつかの実施形態において、信頼できるアプリサブネット1360は、IaaSプロバイダが所有または運用し得るコードを実行することができる。この実施形態において、信頼できるアプリサブネット1360は、DBサブネット1330に通信可能に結合することができ、DBサブネット1330におけるCRUD動作を実行するように構成することができる。信頼できないアプリサブネット1362は、DBサブネット1330に通信可能に結合され得るが、この実施形態においては、信頼できないアプリサブネットは、DBサブネット1330における読み出し動作を実行するように構成することができる。各顧客のVM1366(1)~(N)内に包含され得、顧客からのコードを実行し得るコンテナ1371(1)~(N)は、DBサブネット1330と通信可能に結合されなくてもよい。
【0199】
他の実施形態において、制御プレーンVCN1316およびデータプレーンVCN1318は、直接的に通信可能に結合されなくてもよい。この実施形態において、制御プレーンVCN1316とデータプレーンVCN1318との間には直接通信が存在しなくてもよい。しかしながら、通信は、少なくとも1つの方法を通じて間接的に行うことができる。制御プレーンVCN1316とデータプレーンVCN1318との間の通信を促進することができるLPG1310が、IaaSプロバイダによって確立され得る。別の例において、制御プレーンVCN1316またはデータプレーンVCN1318が、サービスゲートウェイ1336を介してクラウドサービス1356に対するコールを行うことができる。例えば、制御プレーンVCN1316からクラウドサービス1356に対するコールは、データプレーンVCN1318と通信することができるサービスに対する要求を含むことができる。
【0200】
図14は、少なくとも1つの実施形態による、IaaSアーキテクチャの別の例示的なパターンを示すブロック図1400である。サービスオペレータ1402(例えば、図11のサービスオペレータ1102)は、仮想クラウドネットワーク(VCN)1406(例えば、図11のVCN1106)およびセキュアホストサブネット1408(例えば、図11のセキュアホストサブネット1108)を含むことができるセキュアホストテナンシ1404(例えば、図11のセキュアホストテナンシ1104)に通信可能に結合され得る。VCN1406は、LPG1410(例えば、図11のLPG1110)を含むことができ、これは、SSH VCN1412に含まれるLPG1410を介してSSH VCN1412(例えば、図11のSSH VCN1112)に通信可能に結合され得る。SSH VCN1412は、SSHサブネット1414(例えば、図11のSSHサブネット1114)を含むことができ、SSH VCN1412は、制御プレーンVCN1416に含まれるLPG1410を介して制御プレーンVCN1416(例えば、図11の制御プレーンVCN1116)に通信可能に結合することができ、データプレーンVCN1418に含まれるLPG1410を介してデータプレーンVCN1418(例えば、図11のデータプレーンVCN1118)に通信可能に結合され得る。制御プレーンVCN1416およびデータプレーンVCN1418は、サービステナンシ1419(例えば、図11のサービステナンシ1119)に含めることができる。
【0201】
制御プレーンVCN1416は、LBサブネット1422(例えば、図11のLBサブネット1122)を含むことができる制御プレーンDMZ階層1420(例えば、図11の制御プレーンDMZ階層1120)と、アプリサブネット1426(例えば、図11のアプリサブネット1126)を含むことができる制御プレーンアプリ階層1424(例えば、図11の制御プレーンアプリ階層1124)と、DBサブネット1430(例えば、図13のDBサブネット1330)を含むことができる制御プレーンデータ階層1428(例えば、図11の制御プレーンデータ階層1128)とを含むことができる。制御プレーンDMZ階層1420に含まれるLBサブネット1422は、制御プレーンアプリ階層1424に含まれるアプリサブネット1426および制御プレーンVCN1416に含まれ得るインターネットゲートウェイ1434(例えば、図11のインターネットゲートウェイ1134)に通信可能に結合することができ、アプリサブネット1426は、制御プレーンデータ階層1428に含まれるDBサブネット1430ならびにサービスゲートウェイ1436(例えば、図11のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ1438(例えば、図11のNATゲートウェイ1138)に通信可能に結合され得る。制御プレーンVCN1416は、サービスゲートウェイ1436およびNATゲートウェイ1438を含むことができる。
【0202】
データプレーンVCN1418は、データプレーンアプリ階層1446(例えば、図11のデータプレーンアプリ階層1146)と、データプレーンDMZ階層1448(例えば、図11のデータプレーンDMZ階層1148)と、データプレーンデータ階層1450(例えば、図11のデータプレーンデータ階層1150)とを含むことができる。データプレーンDMZ階層1448は、データプレーンアプリ階層1446の信頼できるアプリサブネット1460(例えば、図13の信頼できるアプリサブネット1360)および信頼できないアプリサブネット1462(例えば、図13の信頼できないアプリサブネット1362)ならびにデータプレーンVCN1418内に包含されているインターネットゲートウェイ1434に通信可能に結合され得るLBサブネット1422を含むことができる。信頼できるアプリサブネット1460は、データプレーンVCN1418内に包含されているサービスゲートウェイ1436、データプレーンVCN1418内に包含されているNATゲートウェイ1438、およびデータプレーンデータ階層1450内に包含されているDBサブネット1430に通信可能に結合され得る。信頼できないアプリサブネット1462は、データプレーンVCN1418内に包含されているサービスゲートウェイ1436およびデータプレーンデータ階層1450内に包含されているDBサブネット1430に通信可能に結合され得る。データプレーンデータ階層1450は、データプレーンVCN1418内に包含されているサービスゲートウェイ1436に通信可能に結合され得るDBサブネット1430を含むことができる。
【0203】
信頼できないアプリサブネット1462は、信頼できないアプリサブネット1462内に存在するテナント仮想マシン(VM)1466(1)~(N)に通信可能に結合され得る一次VNIC1464(1)~(N)を含むことができる。各テナントVM1466(1)~(N)は、それぞれのコンテナ1467(1)~(N)内のコードを実行することができ、コンテナイグレスVCN1468内に包含され得るデータプレーンアプリ階層1446内に包含され得るアプリサブネット1426に通信可能に結合され得る。それぞれの二次VNIC1472(1)~(N)が、データプレーンVCN1418内に包含されている信頼できないアプリサブネット1462とコンテナイグレスVCN1468内に包含されているアプリサブネットとの間の通信を促進することができる。コンテナイグレスVCNは、公衆インターネット1454(例えば、図11の公衆インターネット1154)に通信可能に結合され得るNATゲートウェイ1438を含むことができる。
【0204】
制御プレーンVCN1416内に包含されているインターネットゲートウェイ1434およびデータプレーンVCN1418内に包含されているインターネットゲートウェイ1434は、公衆インターネット1454に通信可能に結合され得るメタデータ管理サービス1452(例えば、図11のメタデータ管理サービス1152)に通信可能に結合され得る。公衆インターネット1454は、制御プレーンVCN1416内に包含されているNATゲートウェイ1438およびデータプレーンVCN1418内に包含されているNATゲートウェイ1438に通信可能に結合され得る。制御プレーンVCN1416内に包含されているサービスゲートウェイ1436およびデータプレーンVCN1418内に包含されているサービスゲートウェイ1436は、クラウドサービス1456に通信可能に結合され得る。
【0205】
いくつかの例において、図14のブロック図1400のアーキテクチャによって示されているパターンは、図13のブロック図1300のアーキテクチャによって示されているパターンの例外と考えることができ、IaaSプロバイダが顧客と直接的に通信することができない場合(例えば、切り離されたリージョン)に、IaaSプロバイダの顧客にとっては望ましい場合がある。各顧客のVM1466(1)~(N)内に包含されているそれぞれのコンテナ1467(1)~(N)は、顧客によってリアルタイムにアクセスすることができる。コンテナ1467(1)~(N)は、コンテナイグレスVCN1468内に包含され得るデータプレーンアプリ階層1446のアプリサブネット1426内に包含されているそれぞれの二次VNIC1472(1)~(N)に対するコールを行うように構成することができる。二次VNIC1472(1)~(N)は、NATゲートウェイ1438にコールを送信することができ、NATゲートウェイ1438は、公衆インターネット1454にコールを送信することができる。この例において、顧客によってリアルタイムにアクセスすることができるコンテナ1467(1)~(N)は、制御プレーンVCN1416から分離することができ、データプレーンVCN1418内に包含されている他のエンティティから分離することができる。コンテナ1467(1)~(N)はまた、他の顧客のリソースからも分離することができる。
【0206】
他の例において、顧客は、コンテナ1467(1)~(N)を使用してクラウドサービス1456をコールすることができる。この例において、顧客は、クラウドサービス1456からのサービスを要求するコードを、コンテナ1467(1)~(N)内で実行することができる。コンテナ1467(1)~(N)は、この要求を二次VNIC1472(1)~(N)に送信することができ、二次VNIC1472(1)~(N)は、NATゲートウェイに要求を送信することができ、NATゲートウェイは、公衆インターネット1454に要求を送信することができる。公衆インターネット1454は、インターネットゲートウェイ1434を介して、制御プレーンVCN1416内に包含されているLBサブネット1422に要求を送信することができる。要求が有効であるという判定に応答して、LBサブネットは、アプリサブネット1426に要求を送信することができ、アプリサブネット1426は、サービスゲートウェイ1436を介してクラウドサービス1456に要求を送信することができる。
【0207】
図面に示されているIaaSアーキテクチャ1100、1200、1300、1400は、図示されている以外の構成要素を有し得ることは理解されるべきである。さらに、図面に示されている実施形態は、本開示の実施形態を組み込むことができるクラウドインフラストラクチャシステムの一部の例に過ぎない。いくつかの他の実施形態において、IaaSシステムは、図示されているよりも多いもしくは少ない構成要素を有してもよく、2つ以上の構成要素を組み合わせてもよく、または、構成要素の異なる構成もしくは配置を有し得る。
【0208】
ある実施形態において、本明細書に記載されているIaaSシステムは、セルフサービスで、サブスクリプションに基づいて、弾性的にスケーリング可能に、信頼可能に、高度に利用可能に、および安全に顧客に送達されるアプリケーション、ミドルウェア、およびデータベースサービス供給物のスイートを含み得る。そのようなIaaSの一例は、本譲受人によって提供されるOracleインフラストラクチャ(OCI)である。
【0209】
図15は、様々な実施形態を実装することができる例示的なコンピュータシステム1500を示す。システム1500は、上述したコンピュータシステムのいずれかを実装するために使用することができる。図面に示すように、コンピュータシステム1500は、バスサブシステム1502を介して複数の周辺サブシステムと通信する処理装置1504を含む。これらの周辺サブシステムは、処理加速ユニット1506、I/Oサブシステム1508、記憶サブシステム1518および通信サブシステム1524を含み得る。記憶サブシステム1518は、有形コンピュータ可読記憶媒体1522およびシステムメモリ1510を含む。
【0210】
バスサブシステム1502は、コンピュータシステム1500の様々な構成要素およびサブシステムを意図したように互いに通信させるためのメカニズムを提供する。バスサブシステム1502は、単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態は、複数のバスを利用し得る。バスサブシステム1502は、メモリバスまたはメモリコントローラ、周辺機器用バス、および、様々なバスアーキテクチャのうちのいずれかを使用するローカルバスを含む、いくつかのタイプのバス構造のいずれかであり得る。例えば、このようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ電子機器標準規格化協会(VESA)ローカルバス、および、IEEE P1386.1規格に従って製造されたMezzanineバスとして実装することができる周辺構成要素相互接続(PCI)バスを含み得る。
【0211】
1つまたは複数の集積回路(例えば、従来のマイクロプロセッサまたはマイクロコントローラ)として実装することができる処理装置1504は、コンピュータシステム1500の動作を制御する。1つまたは複数のプロセッサが、処理装置1504に含まれ得る。これらのプロセッサは、シングルコアまたはマルチコアプロセッサを含み得る。ある実施形態において、処理装置1504は、各処理装置に含まれるシングルまたはマルチコアプロセッサを有する1つまたは複数の独立した処理装置1532および/または1534として実装され得る。他の実施形態において、処理装置1504はまた、2つのデュアルコアプロセッサを単一のチップに集積することによって形成されるクアッドコア処理装置としても実装され得る。
【0212】
様々な実施形態において、処理装置1504は、プログラムコードに応答して様々なプログラムを実行することができ、複数の同時に実行されているプログラムまたはプロセスを維持することができる。任意の所与の時点において、実行されるプログラムコードの一部または全部が、プロセッサ1504および/または記憶サブシステム1518内に存在することができる。適切なプログラミングを通じて、プロセッサ1504は、上述した様々な機能を提供することができる。コンピュータシステム1500は、付加的に、デジタル信号プロセッサ(DSP)、専用プロセッサなどを含むことができる処理加速ユニット1506を含み得る。
【0213】
I/Oサブシステム1508は、ユーザインターフェイス入力デバイスおよびユーザインターフェイス出力デバイスを含むことができる。ユーザインターフェイス入力デバイスは、キーボード、マウスまたはトラックボール、タッチパッドまたはディスプレイに組み込まれたタッチスクリーンなどのポインティングデバイス、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを有する音響入力デバイス、マイクロフォン、および他のタイプの入力デバイスを含み得る。ユーザインターフェイス入力デバイスは、例えば、ユーザが、ジェスチャおよび音声指示を使用してナチュラルユーザインターフェイスを通じて、Microsoft Xbox(登録商標)360ゲームコントローラなどの入力デバイスを制御し、それと相互に作用することを可能にするMicrosoft Kinect(登録商標)運動センサなどの運動検知および/またはジェスチャ認識デバイスを含み得る。ユーザインターフェイス入力デバイスはまた、ユーザから眼球活動(例えば、写真を撮っている、および/または、メニュー選択を行っている間の「まばたき」)を検出し、そのアイジェスチャを入力デバイス(例えば、Google Glass(登録商標))への入力として変換するGoogle Glass(登録商標)まばたき検出器などのアイジェスチャ認識デバイスも含み得る。付加的に、ユーザインターフェイス入力デバイスは、ユーザが、音声コマンドを通じて音声認識システム(例えば、Siri(登録商標)ナビゲータ)と相互に作用することを可能にする音声認識検知デバイスを含み得る。
【0214】
ユーザインターフェイス入力デバイスはまた、限定ではないが、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびに、スピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカメラ、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザ測距器、および視線追跡デバイスなどの音響/視覚デバイスも含み得る。付加的に、ユーザインターフェイス入力デバイスは、例えば、コンピュータ断層撮影、磁気共鳴イメージング、位置(position)放出断層撮影、医用超音波検査デバイスなどの医療撮像入力デバイスを含み得る。ユーザインターフェイス入力デバイスはまた、例えば、MIDIキーボード、デジタル楽器などのような音響入力デバイスも含み得る。
【0215】
ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、表示灯、または音響出力デバイスなどの非視覚的表示を含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LDC)またはプラズマディスプレイを使用するものなどのフラットパネルデバイス、投影デバイス、タッチスクリーンなどであり得る。一般に、「出力デバイス」という用語の使用は、コンピューティングデバイス1500からユーザまたは他のコンピュータに情報を出力するためのすべての可能なタイプのデバイスおよびメカニズムを含むことを意図している。例えば、ユーザインターフェイス出力デバイスは、限定ではないが、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイス、およびモデムなどの、テキスト、グラフィックおよび音響/ビデオ情報を視覚的に伝達する様々なディスプレイデバイスを含み得る。
【0216】
コンピュータシステム1500は、目下のところシステムメモリ1510内に位置するものとして示されている、ソフトウェア要素を含む記憶サブシステム1518を備えることができる。システムメモリ1510は、処理装置1504上にロード可能かつ実行可能であるプログラム命令、および、これらのプログラムの実行中に生成されるデータを記憶することができる。
【0217】
コンピュータシステム1500の構成およびタイプに応じて、システムメモリ1510は、揮発性(ランダムアクセスメモリ(RAM)など)および/または不揮発性(読み出し専用メモリ(ROM)、フラッシュメモリなど)であり得る。RAMは、典型的には、処理装置1504にとって直ちにアクセス可能であり、ならびに/または、処理装置1504によって現在動作および実行されているデータおよび/またはプログラムモジュールを包含する。いくつかの実施態様において、システムメモリ1510は、スタティックランダムアクセスメモリ(SRAM)またはダイナミックランダムアクセスメモリ(DRAM)などの、複数の異なるタイプのメモリを含み得る。いくつかの実施態様において、起動中などにコンピュータシステム1500内の要素間で情報を転送するのを助ける基本ルーチンを包含する基本入出力システム(BIOS)が、典型的には、ROM内に記憶され得る。限定ではなく例として、システムメモリ1510はまた、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などを含み得るアプリケーションプログラム1512、プログラムデータ1514、およびオペレーティングシステム1516も例示する。例として、オペレーティングシステム1516は、様々なバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、ならびに/または、様々な市販のUNIX(登録商標)もしくはUNIX系オペレーティングシステム(限定ではないが、様々なGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OSなど)、ならびに/または、iOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)15 OS、およびPalm(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含み得る。
【0218】
記憶サブシステム1518はまた、いくつかの実施形態の機能を提供する基本プログラミングおよびデータ構造を記憶するための有形コンピュータ可読記憶媒体も提供することができる。プロセッサによって実行されると、上述した機能を提供するソフトウェア(プログラム、コードモジュール、命令)が、記憶サブシステム1518に記憶され得る。これらのソフトウェアモジュールまたは命令は、処理装置1504によって実行され得る。記憶サブシステム1518はまた、本開示に従って使用されるデータを記憶するためのリポジトリも提供することができる。
【0219】
記憶サブシステム1500はまた、コンピュータ可読記憶媒体1522にさらに接続することができるコンピュータ可読記憶媒体リーダ1520も含むことができる。システムメモリ1510とともに、および、任意選択的にシステムメモリ1510と組み合わせて、コンピュータ可読記憶媒体1522は、コンピュータ可読情報を一時的および/またはより持続的に包含、記憶、送信、および抽出するための遠隔、ローカル、固定、および/または取り外し可能記憶デバイス+記憶媒体を包括的に表すことができる。
【0220】
コードまたはコードの部分を包含するコンピュータ可読記憶媒体1522はまた、限定ではないが、情報を記憶および/または送信するための任意の方法または技術において実装される揮発性および不揮発性、取り外し可能および取り外し不能媒体などの、記憶媒体および通信媒体を含む、当該技術分野において知られているかまたは使用されている任意の適切な媒体を含むことができる。これは、RAM、ROM、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気的記憶デバイス、または、他の有形コンピュータ可読媒体などの有形コンピュータ可読記憶媒体を含むことができる。これはまた、データ信号、データ送信、または、所望の情報を送信するために使用することができ、コンピューティングシステム1500によってアクセスすることができる任意の他の媒体などの非有形コンピュータ可読媒体も含むことができる。
【0221】
例として、コンピュータ可読記憶媒体1522は、取り外し不能不揮発性磁気媒体から読み出すかまたはこれに書き込むハードディスクドライブ、取り外し可能不揮発性磁気ディスクから読み出すかまたはこれに書き込む磁気ディスクドライブ、および、CD ROM、DVD、およびBlu-ray(登録商標)ディスクまたは他の光媒体などの取り外し可能不揮発性光ディスクから読み出すかまたはこれに書き込む光ディスクドライブを含み得る。コンピュータ可読記憶媒体1522は、限定ではないが、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュデバイス、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープなどを含み得る。コンピュータ可読記憶媒体1522はまた、フラッシュメモリベースのSSD、企業フラッシュドライブ、ソリッドステートROMなどのような不揮発性メモリに基づくソリッドステートドライブ(SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAMなどの揮発性メモリに基づくSSD、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、およびDRAMとフラッシュメモリベースのSSDとの組み合わせを使用するハイブリッドSSDも含み得る。ディスクドライブおよびそれらの関連コンピュータ可読媒体は、コンピュータシステム1500に、コンピュータ可読命令、データ構造体、プログラムモジュールおよび他のデータの不揮発性記憶を提供することができる。
【0222】
通信サブシステム1524は、他のコンピュータシステムおよびネットワークに対するインターフェイスを提供する。通信サブシステム1524は、他のシステムからデータを受信し、コンピュータシステム1500から他のシステムにデータを送信するためのインターフェイスとしての役割を果たす。例えば、通信サブシステム1524は、コンピュータシステム1500が、インターネットを介して1つまたは複数のデバイスに接続することを可能にすることができる。いくつかの実施形態において、通信サブシステム1524は、ワイヤレス音声および/もしくはデータネットワーク(例えば、携帯電話技術、3G、4GまたはEDGE(グローバル進化型高速データレート)、WiFi(登録商標)(IEEE802.11ファミリ規格、もしくは他のモバイル通信技術などの先進的なデータネットワーク技術、またはそれらの任意の組み合わせを使用する)にアクセスするための無線周波数(RF)トランシーバ構成要素、全地球測位システム(GPS)レシーバ構成要素、ならびに/または他の構成要素を含むことができる。いくつかの実施形態において、通信サブシステム1524は、ワイヤレスインターフェイスに加えてまたはその代わりに有線ネットワーク接続(例えば、イーサネット(登録商標))を提供することができる。
【0223】
いくつかの実施形態において、通信サブシステム1524はまた、コンピュータシステム1500を使用することができる1または複数のユーザに代わりに、構造化および/または非構造化データフィード1526、イベントストリーム1528、イベント更新1530などの形態の入力通信を受信することもできる。
【0224】
例として、通信サブシステム1524は、Twitter(登録商標)フィード、Facebook(登録商標)更新、リッチサイトサマリ(RSS)フィードなどのウェブフィード、および/または1つもしくは複数のサードパーティ情報源からのリアルタイム更新などの、ソーシャルネットワークおよび/または他の通信サービスのユーザからデータフィード1526をリアルタイムに受信するように構成することができる。
【0225】
付加的に、通信サブシステム1524はまた、本質的に明確な終わりがない連続的または無制限であり得る、リアルタイムイベントのイベントストリーム1528および/またはイベント更新1530を含み得る、連続データストリームの形態のデータを受信するように構成することもできる。連続データを生成するアプリケーションの例は、例えば、センサデータアプリケーション、ファイナンシャルティッカー、ネットワーク性能測定ツール(例えば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通監視などを含み得る。
【0226】
通信サブシステム1524はまた、コンピュータシステム1500に結合されている1つまたは複数のストリーミングデータ源コンピュータと通信することができる1つまたは複数のデータベースに、構造化および/または非構造化データフィード1526、イベントストリーム1528、イベント更新1530などを出力するように構成することもできる。
【0227】
コンピュータシステム1500は、手持ち式ポータブルデバイス(例えば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(例えば、Google Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラック、または任意の他のデータ処理システムを含む、様々なタイプのうちの1つとすることができる。
【0228】
コンピュータおよびネットワークの絶えず変化する性質のために、図面に示されているコンピュータデバイス1500の説明は、特定の例としてのみ意図されている。図面に示されるシステムよりも多いまたは少ない構成要素を有する、多くの他の構成が可能である。例えば、カスタム化ハードウェアもまた使用されてもよく、および/または、特定の要素が、ハードウェア、ファームウェア、ソフトウェア(アプレットを含む)、または組み合わせにおいて実装され得る。さらに、ネットワーク入出力デバイスなどの他のコンピューティングデバイスへの接続が利用され得る。本開示および本明細書において提供されている教示に基づいて、当業者は、様々な実施形態を実装するための他の様式および/または方法を理解するであろう。
【0229】
実施形態は、プロセッサによって実行されると、プロセッサに、本開示に記載の方法のいずれかを実施させるコンピュータプログラム命令を含むコンピュータプログラム製品を使用することによって実装することができる。
【0230】
特定の実施形態が説明されたが、様々な修正、改変、代替的な構成、および均等物も、本開示の範囲内に包含される。実施形態は、ある特定のデータ処理環境内での動作に限定されず、複数のデータ処理環境内で自由に動作することができる。付加的に、実施形態は特定の系列のトランザクションおよびステップを使用して説明されているが、本開示の範囲は、記載されている系列のトランザクションおよびステップには限定されないことは、当業者には明らかであろう。上述した実施形態の様々な特徴および態様は、個別にまたは連帯して使用され得る。
【0231】
さらに、実施形態は、ハードウェアとソフトウェアとの特定の組み合わせを使用して説明されているが、ハードウェアとソフトウェアとの他の組み合わせも、本開示の範囲内にあることは認識されたい。実施形態は、ハードウェア内でのみ、もしくはソフトウェア内でのみ、またはそれらの組み合わせを使用して実装され得る。本明細書に記載されている様々なプロセスは、同じプロセッサ上で、または、任意の組み合わせにおける複数の異なるプロセッサ上で実装することができる。したがって、構成要素またはモジュールが特定の動作を実施するように構成されているものとして説明されている場合、そのような構成は、例えば、動作を実施するように電子回路を設計することによって、動作を実施するようにプログラム可能電子回路(マイクロプロセッサなど)をプログラムすることによって、またはその任意の組み合わせによって、そのような構成を達成することができる。プロセスは、限定ではないが、プロセス間通信のための従来の技法を含む様々な技法を使用して通信することができ、プロセスの異なる対が、異なる技法を使用してもよく、または、プロセスの同じ対が、異なる時点において異なる技法を使用し得る。
【0232】
したがって、本明細書および図面は、限定的な意味ではなく、例示的な意味において考慮されるべきである。しかしながら、特許請求の範囲に記載されているより広い思想および範囲から逸脱することなく、追加、差し引き、削除、および他の修正および変更をそれに行うことができることは明らかであろう。したがって、特定の開示実施形態が説明されているが、これらは、限定であるようには意図されていない。様々な修正および均等物が、添付の特許請求項の範囲内にある。
【0233】
本開示の実施形態を説明する文脈における(特に、以下の特許請求の範囲の文脈における)「a」および「an」ならびに「the」という用語および同様の指示対象の使用は、本明細書において別様に指示されていない限り、または、文脈と明確に矛盾しない限り、単数および複数の両方をカバーするように解釈されるべきである。「備える(comprising)」、「有する(having)」、「含む(including)」および「包含する(containing)」という用語は、特に言及されていない限り、オープンエンドな用語(すなわち、「限定ではないが、……を含む」を意味する)として解釈されるべきである。「接続されている」という用語は、何かが介在する場合であっても、部分的にまたは全体が中に包含されているか、取り付けられているか、またはともに接合されているものとして解釈されるべきである。本明細書における値の範囲の記述は、本明細書において別様に指示されておらず、各別個の値が本明細書において個別に記述されているかのように本明細書に組み込まれていない限り、その範囲内に入る各別個の値を個別に参照する簡潔な方法としての役割を果たすように意図されているに過ぎない。本明細書に記載されているすべての方法は、本明細書において別様に指示されていない限り、または、文脈と明確に矛盾しない限り、任意の適切な順序において実施することができる。本明細書において与えられているあらゆる例、または例示の文言(例えば、「~のような(such as)」)は、より良好に実施形態の理解を助けるようにのみ意図されており、別途主張されない限り、本開示の範囲に限定を課すものではない。本明細書におけるいかなる文言も、任意の特許請求されていない要素を、本開示の実践に必須であるとして指示しているものとして解釈されるべきではない。
【0234】
「X、YまたはZのうちの少なくとも1つ」という語句などの離接的な文言は、別途具体的に述べられない限り、アイテム、項目などが、X、Y、もしくはZのいずれか、または、それらの任意の組み合わせ(例えば、X、Y、および/またはZ)であり得ることを提示するために、一般的に使用されるような文脈内で理解されるように意図されている。したがって、そのような離接的な文言は、概して、ある実施形態が、Xのうちの少なくとも1つ、Yのうちの少なくとも1つ、またはZのうちの少なくともが各々提示されることを要求することを暗示するようには意図されておらず、暗示すべきでもない。
【0235】
本開示を実行するための、知られている最良の形態を含む、本開示の好ましい実施形態が、本明細書において記載されている。それらの好ましい実施形態の変形例が、上記の説明を読めば、当業者に明らかになり得る。当業者であれば、そのような変形例を適切であるとして利用することが可能であるはずであり、本開示は、具体的に本明細書に記載されているものとは別様に実践され得る。したがって、本開示は、適用法令によって許可されるものとしての、本明細書に添付の特許請求の範囲に挙げられている主題のすべての修正形態および等価形態を含む。その上、本明細書において別途指示しない限り、すべての可能な変形における上述した要素の任意の組み合わせが、本開示によって包含される。
【0236】
本明細書において引用されている、刊行物、特許出願、および特許を含む、すべての参考文献は、各参考文献が参照により組み込まれるように個々にかつ具体的に指示され、かつその全体が本明細書において記載されている場合と同じ程度まで、参照により本明細書に組み込まれる。
【0237】
上記の明細書において、本開示の態様は、その特定の実施形態を参照して説明されているが、本開示はそれに限定されないことが、当業者には認識されよう。上述した開示の様々な特徴および態様は、個別にまたは連帯して使用され得る。さらに、実施形態は、本明細書のより広い思想および範囲から逸脱することなく、本明細書に記載されているものを超えて、任意の数の環境および用途において利用することができる。したがって、本明細書および図面は、限定ではなく、例示的なものとして考慮されるべきである。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
【国際調査報告】