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

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

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

特表2024-507142サービスプロバイダプライベートネットワークを顧客プライベートネットワークに接続するためのクラウドインフラストラクチャリソース
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-16
(54)【発明の名称】サービスプロバイダプライベートネットワークを顧客プライベートネットワークに接続するためのクラウドインフラストラクチャリソース
(51)【国際特許分類】
   H04L 61/2503 20220101AFI20240208BHJP
【FI】
H04L61/2503
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023548593
(86)(22)【出願日】2022-01-14
(85)【翻訳文提出日】2023-10-06
(86)【国際出願番号】 US2022012513
(87)【国際公開番号】W WO2022173552
(87)【国際公開日】2022-08-18
(31)【優先権主張番号】63/149,273
(32)【優先日】2021-02-13
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/347,061
(32)【優先日】2021-06-14
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ベイカー,シェーン
(72)【発明者】
【氏名】カンナ,リチェンドラ
(72)【発明者】
【氏名】トレイシー,レオナード・トーマス
(72)【発明者】
【氏名】ペイ,グアンホン
(57)【要約】
顧客のプライベートネットワーク上のリソースへのアクセスを、サービスプロバイダのプライベートネットワーク上のリソースに提供するための技術。S2C(Service to Customer)リソースは、クラウドインフラストラクチャ上に展開され、アクセスを容易にする。IPアドレス範囲は、プライベートネットワーク間で重複してもよく、および/またはプライベートIPアドレスは、1つ以上のプライベートネットワークに使用されてもよい。S2Cリソースは、プライベートネットワーク間のデータ交換を可能にする。例えば、S2Cリソースは、各プライベートネットワーク内のデータがプライベートネットワークによって適切に処理され得るIPアドレスを使用するように、IPアドレス間で変換される。
【特許請求の範囲】
【請求項1】
システムであって、
顧客のために構成された第1の仮想ネットワークを備え、前記第1の仮想ネットワークは、第1のインターネットプロトコル(IP)アドレスを有する第1のリソースを含み、
サービスプロバイダのために構成された第2の仮想ネットワークを備え、前記第2の仮想ネットワークは、第2のIPアドレスを有する第2のリソースを含み、前記第2のリソースによる前記第1のリソースへのアクセスに基づいて前記顧客にサービスを提供するように構成され、
1つ以上のネットワークリソースを備え、
前記1つ以上のネットワークリソースは、ネットワークアドレス変換(NAT)マッピングに基づいて、第1のIPアドレスと保留IPアドレスとの間のNATマッピングを決定するように構成され、前記保留IPアドレスは、前記第1の仮想ネットワークの第1のIPアドレス範囲外および前記第2の仮想ネットワークの第2のIPアドレス範囲外にあり、
前記1つ以上のネットワークリソースは、第1のパケットを前記第2の仮想ネットワークに送信すること、または前記第2の仮想ネットワークから第2のパケットを受信することの少なくとも一方を実行するように構成され、前記第1のパケットのペイロードは、前記保留IPアドレスを含み、前記第2のパケットのヘッダは、前記保留IPアドレスを宛先アドレスとして含み、
前記第1のリソースへの前記第2のリソースの前記アクセスは、前記第1のIPアドレスと前記保留IPアドレスとの間の前記NATマッピングに基づいている、システム。
【請求項2】
前記1つ以上のネットワークリソースは、ゲートウェイを含み、
前記第2のパケットは、前記ゲートウェイによって受信され、
前記ゲートウェイは、
前記第1のIPアドレスと前記保留IPアドレスとの間の前記NATマッピングに基づいて前記第1のIPアドレスを決定し、
前記第1のIPアドレスを用いて前記保留IPアドレスを少なくとも置換することによって前記第2のパケットを更新し、
前記更新された第2のパケットを前記第1の仮想ネットワークに送信するように構成されている、請求項1に記載のシステム。
【請求項3】
前記1つ以上のネットワークリソースは、ドメイン名システム(DNS)サービスを含み、
前記第1のパケットは、前記DNSサービスによって送信され、
前記DNSサービスは、
前記第2の仮想ネットワークから、完全修飾ドメイン名(FQDN)を含むDNSクエリを受信し、
前記FQDNと前記顧客に関連付けられたFQDNリストとの間の適合を判定し、
前記DNSクエリを前記顧客のDNSリゾルバに送信し、
前記DNSリゾルバから、前記第1のIPアドレスを含むDNS応答を受信し、
前記第1のIPアドレスと前記保留IPアドレスとの間の前記NATマッピングを生成し、
前記NATマッピングに基づいて、前記保留IPアドレスを用いて前記第1のIPアドレスを少なくとも置換することによって、前記DNS応答を更新し、
前記更新されたDNS応答を前記第2の仮想ネットワークに送信するように構成されている、請求項1に記載のシステム。
【請求項4】
前記1つ以上のネットワークリソースは、ドメイン名システム(DNS)サービスを含み、
前記第1のパケットは、前記DNSサービスによって送信され、
前記DNSサービスは、
前記第2の仮想ネットワークから、完全修飾ドメイン名(FQDN)を含むDNSクエリを受信し、
前記FQDNが前記顧客に関連付けられたFQDNリストから除外されていると判断し、
前記DNSクエリを前記サービスプロバイダのDNSリゾルバに送信し、
前記DNSリゾルバから、第3のIPアドレスを含むDNS応答を受信し、
前記DNS応答を前記第2の仮想ネットワークに送信するように構成されている、請求項1に記載のシステム。
【請求項5】
前記1つ以上のネットワークリソースは、データベースサービスを含み、
前記データベースサービスは、
前記第2の仮想ネットワークから、データベースクエリを受信し、
前記第1の仮想ネットワークの第1のネットワークインターフェイスの第3のIPアドレスと、前記第1の仮想ネットワークのデータベースの第4のIPアドレスとを決定し、
前記データベースクエリを、前記第3のIPアドレスをソースとして含み、前記第4のIPアドレスを宛先として含む第3のパケットに入れて前記第1の仮想ネットワークに送信し、
前記第1の仮想ネットワークから、データベース応答を受信し、
前記第2の仮想ネットワークの第2のネットワークインターフェイスの第5のIPアドレスを決定し、
前記データベース応答を、前記第5のIPアドレスをソースとして含み、前記第2のIPアドレスを宛先として含む第4のパケットに入れて前記第2の仮想ネットワークに送信するように構成されている、請求項1に記載のシステム。
【請求項6】
前記第1のIPアドレス範囲は、前記第2のIPアドレス範囲と重複する、請求項1に記載のシステム。
【請求項7】
前記第1のIPアドレス範囲は、他の顧客のために構成された第3の仮想ネットワークの第3のIPアドレス範囲と重複し、
前記サービスプロバイダの前記第2のリソースは、前記第2のリソースによる前記第3の仮想ネットワークの第3のリソースへのアクセスに基づいて、前記サービスを前記他の顧客に提供するように構成されている、請求項1に記載のシステム。
【請求項8】
前記第1の仮想ネットワークに関連付けられた仮想ネットワークインターフェイスカードをさらに備え、
前記仮想ネットワークインターフェイスカードは、前記第1のIPアドレス範囲内の複数のIPアドレスを用いてアドレス指定可能である、請求項1に記載のシステム。
【請求項9】
前記複数のIPアドレスのうちの少なくとも1つは、前記サービスプロバイダの異なるサービスに関連付けられる、請求項8に記載のシステム。
【請求項10】
前記第2の仮想ネットワークに関連付けられた仮想ネットワークインターフェイスカードをさらに備え、
前記仮想ネットワークインターフェイスカードは、前記第2のIPアドレス範囲内の複数のIPアドレスを用いてアドレス指定可能である、請求項1に記載のシステム。
【請求項11】
前記複数のIPアドレスのうちの少なくとも2つは、前記サービスプロバイダの異なるサービスに関連付けられる、請求項10に記載のシステム。
【請求項12】
システムによって実施される方法であって、前記方法は、
ネットワークアドレス変換(NAT)マッピングに基づいて、第1のIPアドレスと保留IPアドレスとの間のNATマッピングを決定することを含み、前記第1のIPアドレスは、顧客のために構成された第1の仮想ネットワークの第1のIPアドレス範囲内にあり、前記保留IPアドレスは、前記第1のIPアドレス範囲外およびサービスプロバイダのために構成された第2の仮想ネットワークの第2のIPアドレス範囲外にあり、
第1のパケットを前記第2の仮想ネットワークに送信すること、または前記第2の仮想ネットワークから第2のパケットを受信することの少なくとも一方を含み、前記第1のパケットのペイロードは、前記保留IPアドレスを含み、前記第2のパケットのヘッダは、前記保留IPアドレスを宛先アドレスとして含み、
前記第2の仮想ネットワークの第2のリソースによる前記第1の仮想ネットワークの第1のリソースへのアクセスは、前記第1のIPアドレスと前記保留IPアドレスとの間の前記NATマッピングに基づいている、方法。
【請求項13】
前記サービスプロバイダのサービスに対する前記顧客の要求を受信することと、
顧客識別子とサービスプロバイダ識別子の対に対して、一組のDNSサービスのうちの少なくとも1つを起動することとをさらに含む、請求項12に記載の方法。
【請求項14】
前記第2のパケットのプロトコルと、ソースIPアドレスと、ソースポートと、宛先IPアドレスと、宛先ポートとを含むタプルを決定することと、
前記タプルに基づいて、前記一組のDNSサービスからDNSサービスを選択することと、
前記第2のパケットを前記DNSサービスに送信することとをさらに含む、請求項13に記載の方法。
【請求項15】
前記第1のIPアドレス範囲は、前記第2のIPアドレス範囲と重複する、請求項12に記載の方法。
【請求項16】
前記第1のIPアドレス範囲は、他の顧客のために構成された第3の仮想ネットワークの第3のIPアドレス範囲と重複し、
前記サービスプロバイダの前記第2のリソースは、前記第2のリソースによる前記第3の仮想ネットワークの第3のリソースへのアクセスに基づいて、サービスを前記他の顧客に提供するように構成されている、請求項12に記載の方法。
【請求項17】
システム上で実行されると、前記システムに以下の動作を実行させる命令を記憶する1つ以上の非一時的なコンピュータ可読記憶媒体であって、
前記動作は、
ネットワークアドレス変換(NAT)マッピングに基づいて、第1のIPアドレスと保留IPアドレスとの間のNATマッピングを決定することを含み、前記第1のIPアドレスは、顧客のために構成された第1の仮想ネットワークの第1のIPアドレス範囲内にあり、前記保留IPアドレスは、前記第1のIPアドレス範囲外およびサービスプロバイダのために構成された第2の仮想ネットワークの第2のIPアドレス範囲外にあり、
第1のパケットを前記第2の仮想ネットワークに送信すること、または前記第2の仮想ネットワークから第2のパケットを受信することの少なくとも一方を含み、前記第1のパケットのペイロードは、前記保留IPアドレスを含み、前記第2のパケットのヘッダは、前記保留IPアドレスを宛先アドレスとして含み、
前記第2の仮想ネットワークの第2のリソースによる前記第1の仮想ネットワークの第1のリソースへのアクセスは、前記第1のIPアドレスと前記保留IPアドレスとの間の前記NATマッピングに基づいている、1つ以上の非一時的なコンピュータ可読記憶媒体。
【請求項18】
前記動作は、
前記第1のIPアドレスと前記保留IPアドレスとの間の前記NATマッピングに基づいて前記第1のIPアドレスを決定することと、
前記第1のIPアドレスを用いて前記保留IPアドレスを少なくとも置換することによって前記第2のパケットを更新することと、
前記更新された第2のパケットを前記第1の仮想ネットワークに送信することとをさらに含む、請求項17に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
【請求項19】
前記動作は、
前記第2の仮想ネットワークから、完全修飾ドメイン名(FQDN)を含むDNSクエリを受信することと、
前記FQDNと前記顧客に関連付けられたFQDNリストとの間の適合を判定することと、
前記DNSクエリを前記顧客のDNSリゾルバに送信することと、
前記DNSリゾルバから、前記第1のIPアドレスを含むDNS応答を受信することと、
前記第1のIPアドレスと前記保留IPアドレスとの間の前記NATマッピングを生成することと、
前記NATマッピングに基づいて、前記保留IPアドレスを用いて前記第1のIPアドレスを少なくとも置換することによって、前記DNS応答を更新することと、
前記更新されたDNS応答を前記第2の仮想ネットワークに送信することとをさらに含む、請求項17に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
【請求項20】
前記動作は、
前記第2の仮想ネットワークから、データベースクエリを受信することと、
前記第1の仮想ネットワークの第1のネットワークインターフェイスの第3のIPアドレスと、前記第1の仮想ネットワークのデータベースの第4のIPアドレスとを決定することと、
前記データベースクエリを、前記第3のIPアドレスをソースとして含み、前記第4のIPアドレスを宛先として含む第3のパケットに入れて前記第1の仮想ネットワークに送信することと、
前記第1の仮想ネットワークから、データベース応答を受信することと、
前記第2の仮想ネットワークの第2のネットワークインターフェイスの第5のIPアドレスを決定することと、
前記データベース応答を、前記第5のIPアドレスをソースとして含み、前記第2のリソースの第2のIPアドレスを宛先として含む第4のパケットに入れて前記第2の仮想ネットワークに送信することとをさらに含む、請求項17に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
この国際特許出願は、2021年2月13日に出願された米国仮出願第63/149273号の利益を主張する、2021年6月14日に出願され、「サービスプロバイダプライベートネットワークを顧客プライベートネットワークに接続するためのクラウドインフラストラクチャリソース」と題される米国特許出願第17/347061号の優先権を主張しており、これらの出願の全体があらゆる目的で参照により本開示に援用される。
【背景技術】
【0002】
背景
オラクル(登録商標)クラウドインフラストラクチャ(OCI)などのクラウドインフラストラクチャは、企業が可用性の高いクラウドホスト環境において広範囲のアプリケーションおよびサービスを構築および実行することを可能にする一連の補完的なクラウドサービスを提供することができる。企業は、公衆クラウドの全ての利益を提供しながら、オンプレミスデータセンタ環境を複製するクラウド環境を必要とする。クラウドインフラストラクチャは、物理アンダーレイネットワーク上で動作し且つ企業のオンプレミスネットワークから安全にアクセス可能な柔軟なオーバーレイ仮想ネットワークにおいて、高性能の計算、記憶、およびネットワーク機能を提供することができる。OCIなどのクラウドインフラストラクチャによって、企業は、オンプレミスワークロードの管理と同じ方法で、企業のクラウドベースワークロードを管理することができ、アプリケーション自体に変更を加えることなく、既存の多くのオンプレミスアプリケーションを迅速に移行することができる。したがって、企業は、オンプレミスネットワークと同じ制御、隔離、セキュリティ、および予測可能な性能で、クラウドの全ての利点を得ることができる。
【0003】
仮想ネットワーキングは、クラウドリソースへのアクセス、接続、安全性、および変更を可能にするため、クラウドインフラストラクチャおよびクラウドアプリケーションの基礎である。仮想ネットワーキングは、異なる物理的な場所にある複数のコンピュータ、仮想マシン(VM)、仮想サーバ、または他の装置間の通信を可能にする。物理ネットワーキングがケーブルおよび他のハードウェアを介してコンピューターシステムを接続するのに対し、仮想ネットワーキングは、ソフトウェア管理を用いて、インターネットを介して異なる物理的な場所にあるコンピュータおよびサーバを接続する。仮想ネットワークは、ネットワークスイッチ、ルータ、およびアダプタなどの従来のネットワーク要素の仮想化要素を用いて、より効率的なルーティングおよびより容易なネットワークの構成/再構成を可能にする。
【0004】
顧客およびサービスプロバイダなどのエンティティは、クラウドインフラストラクチャ上で展開されるプライベートネットワークを構成することができる。このようなプライベートネットワークは、仮想プライベートネットワークまたは仮想クラウドネットワークとも呼ばれる。一般的に、プライベートネットワークは、各プライベートネットワークへのアクセスが厳重に制御されるように隔離される。例えば、1つのエンティティは、別のエンティティのプライベートネットワークにアクセスすることができず、エンティティのプライベートネットワーク間にデータを交換することができない。
【発明の概要】
【課題を解決するための手段】
【0005】
概要
本開示は、一般的に仮想ネットワーキングに関する。より詳しくは、顧客のプライベートネットワーク上のリソースへのアクセスを、サービスプロバイダのプライベートネットワーク上のリソースに提供するための技術が記載されている。このアクセスは、2つのプライベートネットワークの各プライベートネットワークの少なくとも一部を仮想化するクラウドインフラストラクチャ上の一組のネットワークリソースを介して、提供されてもよい。本明細書において、このアクセスは、サービスプロバイダから顧客へのアクセスまたはサービスから消費者へのアクセスと称されてもよく、簡潔にするために「S2C」アクセスと省略されてもよい。
【0006】
本開示のいくつかの実施形態によれば、2つのプライベートネットワークは、重複するインターネットプロトコル(IP)アドレス範囲(例えば、クラスレスドメイン間ルーティング(CIDR)範囲)を有し得る。追加的にまたは代替的に、複数の顧客のプライベートネットワークは、重複するIPアドレス範囲を有してもよい。さらに、IPアドレス範囲が重複しない場合でも、各プライベートは、それ自体のプライベートIPアドレスセットを有してもよい。
【0007】
クラウドインフラストラクチャのネットワークリソースは、異なるネットワーク機能を実装することによって、S2Cアクセスを提供するように構成されている。これらのネットワークリソースは、簡潔にするために、本明細書では「S2Cリソース」と呼ばれることがある。ネットワーク機能は、サービスプロバイダのリソースから顧客のリソースへのインバウンドパケットフローと、顧客のリソースからサービスプロバイダのリソースへのアウトバウンドパケットフローとをサポートする2つのプライベートネットワークのIPアドレスを変換することを含む。
【0008】
ドメイン名システム(DNS)環境において、サービスプロバイダのリソース(例えば、サービスプロバイダの仮想クラウドネットワーク内のインスタンス)からのDNSクエリは、S2Cリソースによって、顧客のプライベートネットワーク(例えば、顧客の仮想クラウドネットワーク内のプライベートエンドポイント)のIPアドレスにマッピングされる保留IPアドレスに解決される。サービスプロバイダのプライベートネットワークからのインバウンドパケットフローは、保留IPアドレスを宛先として使用する。S2Cリソースは、顧客のプライベートネットワークに入るために、その宛先アドレスを顧客のIPアドレスに更新する。逆に、顧客のプライベートネットワークからのアウトバウンドパケットフローは、顧客のIPアドレスをソースとして使用する。S2Cリソースは、サービスプロバイダのプライベートネットワークに入るために、そのソースアドレスを保留IPアドレスに更新する。
【0009】
実際のアプリケーションクラスタ(RAC)環境において、S2Cリソースは、サービスプロバイダのリソース(例えば、サービスプロバイダの仮想クラウドネットワーク内のインスタンス)から、RACトラフィックを受信する。このRACトラフィックは、サービスプロバイダのプライベートネットワークのソースIPアドレスおよび宛先IPアドレスを有する。これらのIPアドレスは、顧客のプライベートネットワークのIPアドレスに更新され、RACトラフィックは、顧客のプライベートネットワークのIPアドレスに送信される。逆に、S2Cリソースは、顧客のリソース(例えば、顧客の仮想クラウドネットワーク内のデータベースサービス)から、RAC応答を受信する。このRAC応答は、顧客のプライベートネットワークのソースIPアドレスおよび宛先IPアドレスを有する。これらのIPアドレスは、サービスプロバイダのプライベートネットワークのIPアドレスに更新され、RAC応答は、サービスプロバイダのプライベートネットワークのIPアドレスに送信される。
【0010】
各サービスプロバイダと顧客の対に対して、特定組のリソースを展開することができる。クラウドインフラストラクチャは、仮想ネットワークインターフェイスカード(VNIC)を提供する一群の仮想化装置を含む。VNICは、S2Cリソースに接続されている。また、VNICは、2つのプライベートクラウドにも接続されているが、これらのVNICは、S2CリソースのVNICとは異なる種類であってもよい。S2Cリソースを介して2つのプライベートネットワーク間で交換されるデータは、VNICを介して流れる。
【0011】
この概要は、特許請求される主題の重要なまたは本質的な特徴を特定することを意図しておらず、特許請求される主題の範囲を決定するために単独で使用されることも意図していない。主題は、本特許出願の明細書全体の適切な部分、任意またはすべての図面および各請求項を参照することによって、理解されるべきである。
【0012】
上記の特徴および実施形態ならびに他の特徴および実施形態は、以下の明細書、特許請求の範囲および添付の図面を参照すればより明らかになるであろう。
【0013】
以下、図面を参照して例示的な実施例を詳細に説明する。
【図面の簡単な説明】
【0014】
図1】特定の実施形態に従って、クラウドサービスプロバイダインフラストラクチャによってホストされている仮想またはオーバーレイクラウドネットワークを示す分散環境のハイレベル図である。
図2】特定の実施形態に従って、CSPI内の物理ネットワークの物理要素を示すアーキテクチャ概略図である。
図3】特定の実施形態に従って、ホストマシンが複数のネットワーク仮想化装置(NVD)に接続されているCSPIの例示的な配置を示す図である。
図4】特定の実施形態に従って、ホストマシンとマルチテナント機能をサポートするためのI/O仮想化を提供するNVDとの間の接続を示す図である。
図5】特定の実施形態に従って、CSPIによって提供された物理ネットワークを示す概略ブロック図である。
図6】少なくとも1つの実施形態に従って、プライベートネットワーク間のS2Cサービスの一例を示す図である。
図7】少なくとも1つの実施形態に従って、DNSトラフィックおよびプロキシ無しS2トラフィックをサポートする一組のS2Cリソースを介して顧客プライベートネットワークに接続されたサービスプロバイダプライベートネットワークの一例を示す図である。
図8】少なくとも1つの実施形態に従って、RACトラフィックをサポートする一組のS2Cリソースを介して顧客プライベートネットワークに接続されたサービスプロバイダプライベートネットワークの一例を示す図である。
図9】少なくとも1つの実施形態に従って、サービスプロバイダプライベートネットワークの構成要素の一例を示す図である。
図10】少なくとも1つの実施形態に従って、顧客プライベートネットワークの構成要素の一例を示す図である。
図11】少なくとも1つの実施形態に従って、S2Cリソースを実装するクラウドインフラストラクチャの構成要素の一例を示す図である。
図12】少なくとも1つの実施形態に従って、DNSトラフィックの一例を示す図である。
図13】少なくとも1つの実施形態に従って、プロキシ無しトラフィックの一例を示す図である。
図14】少なくとも1つの実施形態に従って、DNSトラフィックの別の一例を示す図である。
図15】少なくとも1つの実施形態に従って、RACトラフィックの一例を示す図である。
図16】少なくとも1つの実施形態に従って、S2Cサービスを提供するためのフローの一例を示す図である。
図17】少なくとも1つの実施形態に従って、サービスプロバイダプライベートネットワークがDNSトラフィック、プロキシ無しトラフィック、およびRACトラフィックをサポートするためのフローの一例を示す図である。
図18】少なくとも1つの実施形態に従って、顧客プライベートネットワークがDNSトラフィック、プロキシ無しトラフィック、およびRACトラフィックをサポートするためのフローの一例を示す図である。
図19】少なくとも1つの実施形態に従って、S2CリソースがDNSサービスをサポートするためのフローの一例を示す図である。
図20】少なくとも1つの実施形態に従って、プロキシ無しS2Cトラフィックをサポートするためのフローの一例を示す図である。
図21】少なくとも1つの実施形態に従って、S2CリソースがRACサービスをサポートするためのフローの一例を示す図である。
図22】少なくとも1つの実施形態に従って、クラウドインフラストラクチャをサービスシステムとして実装するための1つのパターンを示すブロック図である。
図23】少なくとも1つの実施形態に従って、クラウドインフラストラクチャをサービスシステムとして実装するための別のパターンを示すブロック図である。
図24】少なくとも1つの実施形態に従って、クラウドインフラストラクチャをサービスシステムとして実装するための別のパターンを示すブロック図である。
図25】少なくとも1つの実施形態に従って、クラウドインフラストラクチャをサービスシステムとして実装するための別のパターンを示すブロック図である。
図26】少なくとも1つの実施形態に従って、例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0015】
詳細な説明
本開示は、一般的に仮想ネットワーキングに関し、より詳しくは、顧客のプライベートネットワーク上のリソースへのアクセスをサービスプロバイダのプライベートネットワーク上のリソースに提供することに関する。S2Cリソースは、アクセスを容易にするためにクラウドインフラストラクチャ上で展開される。IPアドレス範囲がプライベートネットワーク間で重複し得る、および/またはプライベートIPアドレスが1つ以上のプライベートネットワークに使用され得るが、S2Cリソースは、プライベートネットワーク間のデータ交換を可能にする。例えば、S2Cリソースは、IPアドレス間の変換を行う。これによって、各プライベートネットワーク内のデータは、プライベートネットワークによって適切に処理され得るIPアドレスを使用する。クラウドインフラストラクチャは、仮想ネットワークインターフェイスカード(VNIC)を提供する仮想化装置群を含む。各サービスプロバイダと顧客の対に対して、一組のS2Cリソースが展開され、VNICは、これらのリソースおよびプライベートネットワークに接続されている。データ交換は、VNICおよびS2Cリソースを介して行われる。
【0016】
仮想ネットワーキングアーキテクチャの例
クラウドサービスという用語は、一般的に、クラウドサービスプロバイダ(CSP)が、システムおよびインフラストラクチャ(クラウドインフラストラクチャ)を用いて、ユーザまたは顧客がオンデマンドで(例えば、サブスクリプションモデルを介して)利用できるサービスを指す。通常、CSPのインフラストラクチャを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムから離れている。したがって、顧客は、サービス用のハードウェアおよびソフトウェア資源を別途購入することなく、CSPによって提供されるクラウドサービスを利用することができる。クラウドサービスは、サービスを提供するために使用されるインフラストラクチャの調達に顧客が投資する必要がなく、アプリケーションおよび計算リソースへの容易且つ拡張可能なアクセスを加入している顧客に提供するように設計されている。
【0017】
様々な種類のクラウドサービスを提供するクラウドサービスプロバイダがいくつかある。クラウドサービスは、SaaS(Software-as-a-Service)、PaaS(Platform-as-a-Service)、IaaS(Infrastructure-as-a-Service)などの様々な異なる種類またはモデルを含む。
【0018】
顧客は、CSPによって提供される1つ以上のクラウドサービスに加入することができる。顧客は、個人、組織、企業などの任意のエンティティであってもよい。顧客がCSPによって提供されるサービスに加入または登録すると、その顧客に対してテナントまたはアカウントが作成される。その後、顧客は、このアカウントを介して、アカウントに関連付けられた1つ以上の加入済みクラウドリソースにアクセスすることができる。
【0019】
上述したように、IaaS(Infrastructure as a Service)は、1つの特定種類のクラウドコンピューティングサービスである。IaaSモデルにおいて、CSPは、顧客が自身のカスタマイズ可能なネットワークを構築し、顧客リソースを展開するために使用できるインフラストラクチャ(クラウドサービスプロバイダインフラストラクチャまたはCSPIと呼ばれる)を提供する。したがって、顧客のリソースおよびネットワークは、CSPによって提供されたインフラストラクチャによって分散環境にホストされる。これは、顧客のインフラストラクチャが顧客のリソースおよびネットワークをホストする従来のコンピューティングとは異なる。
【0020】
CSPIは、基板ネットワークまたはアンダーレイネットワークとも呼ばれる物理ネットワークを形成する、様々なホストマシン、メモリリソース、およびネットワークリソースを含む相互接続された高性能の計算リソースを含んでもよい。CSPIのリソースは、1つ以上の地理的な地域にわたって地理的に分散されている1つ以上のデータセンタに分散されてもよい。仮想化ソフトウェアは、これらの物理リソースによって実行され、仮想化分散環境を提供することができる。仮想化は、物理ネットワーク上に(ソフトウェアベースネットワーク、ソフトウェア定義ネットワーク、または仮想ネットワークとも呼ばれる)オーバーレイネットワークを作成する。CSPI物理ネットワークは、物理ネットワークの上に1つ以上のオーバーレイまたは仮想ネットワークを作成するための基礎を提供する。仮想ネットワークまたはオーバーレイネットワークは、1つ以上の仮想クラウドネットワーク(VCN)を含むことができる。仮想ネットワークは、ソフトウェア仮想化技術(例えば、ハイパーバイザ、ネットワーク仮想化装置(NVD)(例えば、スマートNIC)によって実行される機能、トップオブラック(TOR)スイッチ、NVDによって実行される1つ以上の機能を実装するスマートTOR、および他のメカニズム)を用いて実装され、物理ネットワークの上で実行できるネットワーク抽象化層を作成する。仮想ネットワークは、ピアツーピアネットワーク、IPネットワークなどの様々な形態をとることができる。仮想ネットワークは、典型的には、レイヤ3IPネットワークまたはレイヤ2VLANのいずれかである。このような仮想ネットワークまたはオーバーレイネットワークは、しばしば仮想レイヤ3ネットワークまたはオーバーレイレイヤ3ネットワークと呼ばれる。仮想ネットワークのために開発されたプロトコルの例は、IP-in-IP(またはGRE(Generic Routing Encapsulation))、仮想拡張可能LAN(VXLAN-IETF RFC7348)、仮想プライベートネットワーク(VPN)(例えば、MPLSレイヤ3仮想プライベートネットワーク(RFC4364))、VMware NSX、GENEVE(Generic Network Virtualization Encapsulation)などを含む。
【0021】
IaaSの場合、CSPによって提供されたインフラストラクチャ(CSPI)は、パブリックネットワーク(例えば、インターネット)を介して仮想化計算リソースを提供するように構成されてもよい。IaaSモデルにおいて、クラウドコンピューティングサービスプロバイダは、インフラストラクチャ要素(例えば、サーバ、記憶装置、ネットワークノード(例えば、ハードウェア)、展開ソフトウェア、プラットフォーム仮想化(例えば、ハイパーバイザ層)など)をホストすることができる。場合によっては、IaaSプロバイダは、それらのインフラストラクチャ要素に付随する様々なサービス(例えば、課金、監視、ロギング、セキュリティ、負荷分散およびクラスタリングなど)を提供することができる。これらのサービスがポリシー駆動型であるため、IaaSユーザは、負荷分散を駆動するためのポリシーを実装することによって、アプリケーションの可用性および性能を維持することができる。CSPIは、インフラストラクチャおよび一連の補完的なクラウドサービスを提供する。これによって、顧客は、可用性の高いホスト型分散環境で幅広いアプリケーションおよびサービスを構築し、実行することができる。CSPIは、顧客オンプレミスネットワークなどの様々なネットワーク拠点から安全にアクセスできる柔軟な仮想ネットワーク上で高性能の計算リソースおよび能力ならびに記憶容量を提供する。顧客がCSPによって提供されたIaaSサービスに加入または登録すると、その顧客のために作成されたテナンシは、CSPIから安全に分離されたパーティションとなり、顧客は、クラウドリソースを作成、整理、管理することができる。
【0022】
顧客は、CSPIによって提供された計算リソース、メモリリソース、およびネットワーキングリソースを使用して、独自の仮想ネットワークを構築することができる。これらの仮想ネットワーク上に、計算インスタンスなどの1つ以上の顧客リソースまたはワークロードを展開することができる。例えば、顧客は、CSPIによって提供されたリソースを使用して、仮想クラウドネットワーク(VCN)と呼ばれる1つ以上のカスタマイズ可能なプライベート仮想ネットワークを構築することができる。顧客は、顧客VCN上で1つ以上の顧客リソース、例えば計算インスタンスを展開することができる。計算インスタンスは、仮想マシン、ベアメタルインスタンスなどであってもよい。したがって、CSPIは、顧客が可用性の高い仮想ホスト環境において様々なアプリケーションおよびサービスを構築および実行することを可能にするインフラストラクチャおよび一連の相補的なクラウドサービスを提供する。顧客は、CSPIによって提供された基礎的な物理リソースを管理または制御しないが、オペレーティングシステム、記憶、および展開されたアプリケーションを制御し、場合によっては一部のネットワーキングコンポーネント(例えば、ファイアウォール)を限定的に制御する。
【0023】
CSPは、顧客およびネットワーク管理者がCSPIリソースを使用してクラウドに展開されたリソースを構成、アクセス、および管理することを可能にするコンソールを提供することができる。特定の実施形態において、コンソールは、CSPIを利用および管理するために使用することができるウェブベースのユーザインターフェイスを提供する。いくつかの実施形態において、コンソールは、CSPによって提供されたウェブベースのアプリケーションである。
【0024】
CSPIは、シングルテナンシアーキテクチャまたはマルチテナンシアーキテクチャをサポートすることができる。シングルテナンシアーキテクチャにおいて、ソフトウェア(例えば、アプリケーション、データベース)またはハードウェア要素(例えば、ホストマシンまたはサーバ)は、単一の顧客またはテナントにサービスを提供する。マルチテナンシアーキテクチャにおいて、ソフトウェアまたはハードウェア要素は、複数の顧客またはテナントにサービスを提供する。したがって、マルチテナンシアーキテクチャにおいて、CSPIリソースは、複数の顧客またはテナントの間で共有される。マルチテナンシ環境において、各テナントのデータが分離され、他のテナントから見えないようにするために、CSPIには予防措置および保護措置が講じられる。
【0025】
物理ネットワークにおいて、ネットワークエンドポイント(エンドポイント)は、物理ネットワークに接続され、接続されているネットワークと双方向に通信するコンピューティング装置またはシステムを指す。物理ネットワークのネットワークエンドポイントは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、または他の種類の物理ネットワークに接続されてもよい。物理ネットワークの従来のエンドポイントの例は、モデム、ハブ、ブリッジ、スイッチ、ルータ、および他のネットワーキング装置、物理コンピュータ(またはホストマシン)などを含む。物理ネットワークの各物理装置は、当該装置と通信するために使用できる固定ネットワークアドレスを有する。この固定ネットワークアドレスは、レイヤ2アドレス(例えば、MACアドレス)、固定レイヤ3アドレス(例えば、IPアドレス)などであってもよい。仮想化環境または仮想ネットワークにおいて、エンドポイントは、物理ネットワークの要素によってホストされている(例えば、物理ホストマシンによってホストされている)仮想マシンなどの様々な仮想エンドポイントを含むことができる。仮想ネットワークのこれらのエンドポイントは、オーバーレイレイヤ2アドレス(例えば、オーバーレイMACアドレス)およびオーバーレイレイヤ3アドレス(例えば、オーバーレイIPアドレス)などのオーバーレイアドレスによってアドレス指定される。ネットワークオーバーレイは、ネットワーク管理者がソフトウェア管理を用いて(例えば、仮想ネットワークの制御プレーンを実装するソフトウェアを介して)ネットワークエンドポイントに関連付けられたオーバーレイアドレスを移動できるようにすることによって柔軟性を実現する。したがって、物理ネットワークとは異なり、仮想ネットワークにおいて、ネットワーク管理ソフトウェアを使用して、オーバーレイアドレス(例えば、オーバーレイIPアドレス)を1つのエンドポイントから別のエンドポイントに移動することができる。仮想ネットワークが物理ネットワーク上に構築されているため、仮想ネットワークおよび基礎となる物理ネットワークの両方は、仮想ネットワークの要素間の通信に関与する。このような通信を容易にするために、CSPIの各要素は、仮想ネットワークのオーバーレイアドレスを基板ネットワークの実際の物理アドレスにまたは基板ネットワークの実際の物理アドレスを仮想ネットワークのオーバーレイアドレスにマッピングするマッピングを学習および記憶するように構成されている。これらのマッピングは、通信を容易にするために使用される。仮想ネットワークのルーティングを容易にするために、顧客トラフィックは、カプセル化される。
【0026】
したがって、物理アドレス(例えば、物理IPアドレス)は、物理ネットワークの要素に関連付けられ、オーバーレイアドレス(例えば、オーバーレイIPアドレス)は、仮想ネットワークのエンティティに関連付けられる。物理IPアドレスとオーバーレイIPアドレスは、いずれも実IPアドレスである。これらは、仮想IPアドレスとは別物であり、仮想IPアドレスは、複数の実IPアドレスにマッピングされる。仮想IPアドレスは、仮想IPアドレスと複数の実IPアドレスの間の1対多のマッピングを提供する。
【0027】
クラウドインフラストラクチャまたはCSPIは、世界中の1つ以上の地域の1つ以上のデータセンタに物理的にホストされる。CSPIは、物理ネットワークまたは基板ネットワークの要素と、物理ネットワーク要素上に構築された仮想ネットワークの仮想化要素(例えば、仮想ネットワーク、計算インスタンス、仮想マシン)とを含んでもよい。特定の実施形態において、CSPIは、レルム(realm)、地域(region)、および利用可能なドメイン(domain)において編成およびホストされる。地域は、典型的には、1つ以上のデータセンタを含む局所的な地理的領域である。地域は、一般的に互いに独立しており、例えば、国または大陸を跨ぐ広大な距離によって分離されてもよい。例えば、第1の地域は、オーストラリアにあってもよく、別の地域は、日本にあってもよく、さらに別の地域は、インドにあってもよい。CSPIリソースは、各地域が独立したCSPIリソースのサブセットを有するようにこれらの地域間で分割される。各地域は、一連のコアインフラストラクチャサービスおよびリソース、例えば、計算リソース(例えば、ベアメタルサーバ、仮想マシン、コンテナおよび関連インフラストラクチャ)、記憶リソース(例えば、ブロックボリューム記憶、ファイル記憶、オブジェクト記憶、アーカイブ記憶)、ネットワーキングリソース(例えば、仮想クラウドネットワーク(VCN)、負荷分散リソース、オンプレミスネットワークへの接続)、データベースリソース、エッジネットワーキングリソース(例えば、DNS)、アクセス管理および監視リソースなどを提供することができる。各地域は、一般的に、当該地域をレルム内の他の地域に接続するための複数の経路を持つ。
【0028】
一般的に、アプリケーションは、近くのリソースを使用することが遠くのリソースを使用することよりも速いため、最も多く使用される地域に展開される(すなわち、その地域に関連するインフラストラクチャ上に展開される)。また、アプリケーションは、大規模な気象システムまたは地震などの地域全体のイベントのリスクを軽減するための冗長性、法的管轄、税金ドメイン、および他のビジネスまたは社会的基準に対する様々な要件を満たすための冗長性など、様々な理由で異なる地域に展開されてもよい。
【0029】
地域内のデータセンタは、さらに編成され、利用可能なドメイン(availability domain:AD)に細分化されてもよい。利用可能なドメインは、ある地域に配置された1つ以上のデータセンタに対応してもよい。地域は、1つ以上の利用可能なドメインから構成されてもよい。このような分散環境において、CSPIリソースは、仮想クラウドネットワーク(VCN)などの地域に固有なものまたは計算インスタンスなどの利用可能なドメインに固有なものである。
【0030】
1つの地域内のADは、フォールトトレラント(fault tolerant)になるように互いに分離され、同時に故障する可能性が非常に低くなるように構成されている。これは、1つの地域内の1つのADの障害が同じ地域内の他のADの可用性に影響を与えることが殆どないように、ネットワーキング、物理ケーブル、ケーブル経路、ケーブル入口などの重要なインフラストラクチャリソースを共有しないように、ADを構成することによって達成される。同じ地域内のADを低遅延広帯域のネットワークで互いに接続することによって、他のネットワーク(例えば、インターネット、顧客オンプレミスネットワーク)への高可用性接続を提供し、複数のADにおいて高可用性および災害復旧の両方のための複製システムを構築することができる。クラウドセンアイスは、複数のADを利用して、高可用性を確保すると共に、リソースの障害から保護する。IaaSプロバイダによって提供されたインフラストラクチャが成長するにつれて、追加の容量と共により多くの地域およびADを追加してもよい。利用可能なドメイン間のトラフィックは、通常、暗号化される。
【0031】
特定の実施形態において、地域は、レルムにグループ化される。レルムは、地域の論理的な集合である。レルムは、互いに隔離されており、いかなるデータを共有しない。同じレルム内の地域は、互いに通信することができるが、異なるレルム内の地域は、通信することができない。CSPの顧客のテナンシまたはアカウントは、単一のレルムに存在し、その単一のレルムに属する1つ以上の地域を跨ることができる。典型的には、顧客がIaaSサービスに加入すると、レルム内の顧客指定地域(「ホーム」地域と呼ばれる)に、その顧客のテナンシまたはアカウントが作成される。顧客は、顧客のテナンシをレルム内の1つ以上の他の地域に拡張することができる。顧客は、顧客のテナンシが存在するレルム内に存在していない地域にアクセスすることができない。
【0032】
IaaSプロバイダは、複数のレルムを提供することができ、各レルムは、特定の組の顧客またはユーザに対応する。例えば、商用レルムは、商用顧客のために提供されてもよい。別の例として、レルムは、特定の国のためにまたはその国の顧客のために提供されてもよい。さらに別の例として、政府用レルムは、例えば政府のために提供されてもよい。例えば、政府用レルムは、特定の政府のために作成されてもよく、商用レルムよりも高いセキュリティレベルを有してもよい。例えば、オラクル(登録商標)クラウドインフラストラクチャ(OCI)は、現在、商用領域向けのレルムと、政府クラウド領域向けの2つのレルム(例えば、FedRAMP認可およびIL5認可)とを提供する。
【0033】
特定の実施形態において、ADは、1つ以上の障害ドメイン(fault domain)に細分化することができる。障害ドメインは、反親和性(anti-affinity)を提供するために、AD内のインフラストラクチャリソースをグループ化したものである。障害ドメインは、計算インスタンスを分散することができる。これによって、計算インスタンスは、1つのAD内の同じ物理ハードウェア上に配置されない。これは、反親和性として知られている。障害ドメインは、1つの障害点を共有する一組のハードウェア要素(コンピュータ、スイッチなど)を指す。計算プールは、障害ドメインに論理的に分割される。このため、1つの障害ドメインに影響を与えるハードウェア障害または計算ハードウェア保守イベントは、他の障害ドメインのインスタンスに影響を与えない。実施形態によっては、各ADの障害ドメインの数は、異なってもよい。例えば、特定の実施形態において、各ADは、3つの障害ドメインを含む。障害ドメインは、AD内の論理データセンタとして機能する。
【0034】
顧客がIaaSサービスに加入すると、CSPIからのリソースは、顧客にプロビジョニングされ、顧客のテナンシに関連付けられる。顧客は、これらのプロビジョニングされたリソースを使用して、プライベートネットワークを構築し、これらのネットワーク上にリソースを展開することができる。CSPIによってクラウド上でホストされている顧客ネットワークは、仮想クラウドネットワーク(VCN)と呼ばれる。顧客は、顧客用に割り当てられたCSPIリソースを使用して、1つ以上の仮想クラウドネットワーク(VCN)を構成することができる。VCNとは、仮想またはソフトウェア定義のプライベートネットワークである。顧客のVCNに配備された顧客リソースは、計算インスタンス(例えば、仮想マシン、ベアメタルインスタンス)および他のリソースを含むことができる。これらの計算インスタンスは、アプリケーション、ロードバランサ、データベースなどの様々な顧客作業負荷を表してもよい。VCN上に配備された計算インスタンスは、インターネットなどのパブリックネットワークを介して公的にアクセス可能なエンドポイント(パブリックエンドポイント)と通信することができ、同じVCNまたは他のVCN(例えば、顧客の他のVCN、または顧客に属さないVCN)内の他のインスタンスと通信することができ、顧客オンプレミスデータセンタまたはネットワークと通信することができ、センディエンドポイントと通信することができ、および他の種類のエンドポイントと通信することができる。
【0035】
CSPは、CSPIを用いて多様なサービスを提供することができる。場合によっては、CSPIの顧客自身は、サービスプロバイダのように振る舞い、CSPIリソースを使用してサービスを提供することができる。サービスプロバイダは、識別情報(例えば、IPアドレス、DNS名およびポート)によって特徴付けられるサービスエンドポイントを公開することができる。顧客のリソース(例えば、計算インスタンス)は、サービスによって公開されたその特定のサービスのサービスエンドポイントにアクセスすることによって、特定のサービスを消費することができる。これらのサービスエンドポイントは、一般に、ユーザがエンドポイントに関連付けられたパブリックIPアドレスを使用して、インターネットなどのパブリック通信ネットワークを介して公的にアクセス可能なエンドポイントである。公的にアクセス可能なネットワークエンドポイントは、パブリックエンドポイントと呼ばれることもある。
【0036】
特定の実施形態において、サービスプロバイダは、(サービスエンドポイントと呼ばれることもある)サービスのエンドポイントを介してサービスを公開することができる。サービスの顧客は、このサービスエンドポイントを使用してサービスにアクセスすることができる。特定の実施形態において、サービスのために提供されたサービスエンドポイントは、そのサービスを消費しようとする複数の顧客によってアクセスすることができる。他の実装形態において、専用のサービスエンドポイントを顧客に提供してもよい。したがって、その顧客のみは、その専用センディエンドポイントを使用してサービスにアクセスすることができる。
【0037】
特定の実施形態において、VCNは、作成されると、そのVCNに割り当てられたプライベートオーバーレイIPアドレス範囲(例えば、10.0/16)であるプライベートオーバーレイクラスレスドメイン間ルーティング(Classless Inter-Domain Routing:CIDR)アドレス空間に関連付けられる。VCNは、関連するサブネット、ルートテーブル、およびゲートウェイを含む。VCNは、単一の地域内に存在するが、地域の1つ以上または全ての利用可能なドメインに拡張することができる。ゲートウェイは、VCN用に構成され、VCNとVCN外部の1つ以上のエンドポイントとの間のトラフィック通信を可能にする仮想インターフェイスである。VCNの1つ以上の異なる種類のゲートウェイを構成することによって、異なる種類のエンドポイント間の通信を可能にすることができる。
【0038】
VCNは、1つ以上のサブネットなどの1つ以上のサブネットワークに細分化されてもよい。
したがって、サブネットは、VCN内で作成され得る構成単位または区画である。VCNは、1つ以上のサブネットを持つことができる。VCN内の各サブネットは、当該VCN内の他のサブネットと重複せず、当該VCNのアドレス空間のアドレス空間サブセットを表すオーバーレイIPアドレス(例えば、10.0.0.0/24および10.0.1.0/24)の連続範囲に関連付けられる。
【0039】
各計算インスタンスは、仮想ネットワークインターフェイスカード(VNIC)に関連付けられる。これによって、各計算インスタンスは、VCNのサブネットに参加することができる。VNICは、物理ネットワークインターフェイスカード(NIC)の論理表現である。一般的に、VNICは、エンティティ(例えば、計算インスタンス、サービス)と仮想ネットワークとの間のインターフェイスである。VNICは、サブネットに存在し、1つ以上の関連するIPアドレスと、関連するセキュリティルールまたはポリシーとを有する。VNICは、スイッチ上のレイヤ2ポートに相当する。VNICは、計算インスタンスと、VCN内のサブネットとに接続されている。計算インスタンスに関連付けられたVNICは、計算インスタンスがVCNのサブネットの一部であることを可能にし、計算インスタンスが、計算インスタンスと同じサブネット上にあるエンドポイントと、VCN内の異なるサブネット内のエンドポイントと、またはVCN外部のエンドポイントと通信する(例えば、パケットを送信および受信する)ことを可能にする。したがって、計算インスタンスに関連するVNICは、計算インスタンスがVCNの内部および外部のエンドポイントとどのように接続しているかを判断する。計算インスタンスのVNICは、計算インスタンスが作成され、VCN内のサブネットに追加されるときに作成され、その計算インスタンスに関連付けられる。サブネットは、計算インスタンスのセットからなる場合、計算インスタンスのセットに対応するVNICを含み、各VNICは、コンピュータインスタンスのセット内の計算インスタンスに接続されている。
【0040】
計算インスタンスに関連する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アドレスの連続範囲からのアドレスである。
【0041】
特定の実施形態において、必要に応じて、計算インスタンスには、プライベートオーバーレイIPアドレスに加えて、追加のオーバーレイIPアドレス、例えば、パブリックサブネットの場合に1つ以上のパブリックIPアドレスを割り当てることができる。これらの複数のアドレスは、同じVNIC、または計算インスタンスに関連付けられた複数のVNICに割り当てられる。しかしながら、各インスタンスは、インスタンス起動時に作成され、インスタンスに割り当てられたオーバーレイプライベートIPアドレスに関連付けられたプライマリVNICを有する。このプライマリVNICは、削除することができない。セカンダリVNICと呼ばれる追加のVNICは、プライマリVNICと同じ利用可能なドメイン内の既存のインスタンスに追加することができる。全てのVNICは、インスタンスと同じ利用可能なドメインにある。セカンダリVNICは、プライマリVNICと同じVCNのサブネットにあってもよく、または同じVCNまたは異なるVCNの異なるサブネットにあってもよい。
【0042】
計算インスタンスは、パブリックサブネットにある場合、オプションでパブリックIPアドレスを割り当てられることができる。サブネットを作成するときに、当該サブネットをパブリックサブネットまたはプライベートサブネットのいずれかとして指定することができる。プライベートサブネットとは、当該サブネット内のリソース(例えば、計算インスタンス)および関連するVNICがパブリックオーバーレイIPアドレスを持つことができないことを意味する。パブリックサブネットとは、サブネット内のリソースおよび関連するVNICがパブリックIPアドレスを持つことができることを意味する。顧客は、地域またはレルム内の単一の利用可能なドメインまたは複数の利用可能なドメインにわたって存在するサブネットを指定することができる。
【0043】
上述したように、VCNは、1つ以上のサブネットに細分化されてもよい。特定の実施形態において、VCNのために構成された仮想ルータ(VCN VRまたは単にVRと呼ばれる)は、VCNのサブネット間の通信を可能にする。VCN内のサブネットの場合、VRは、サブネット(すなわち、当該サブネット上の計算インスタンス)と、VCN内部の他のサブネット上のエンドポイントおよびVCN外部の他のエンドポイントとの通信を可能にする当該サブネットの論理ゲートウェイを表す。VCN VRは、VCN内のVNICと、VCNに関連する仮想ゲートウェイ(ゲートウェイ)との間のトラフィックをルーティングするように構成された論理エンティティである。ゲートウェイは、図1に関して以下でさらに説明される。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のポートに保留されてもよい。同じVCN内のアドレス範囲10.1/16を有する第2のサブネットの場合、VCN VRは、IPアドレス10.1.0.1を有する第2のサブネットのポートを有してもよい。VCN VRは、VCN内の各サブネットに対して異なるIPアドレスを有する。
【0044】
いくつかの他の実施形態において、VCN内の各サブネットは、VRに関連付けられた保留またはデフォルトIPアドレスを使用してサブネットによってアドレス指定可能な、それ自身に関連するVRを有してもよい。保留またはデフォルトIPアドレスは、例えば、そのサブネットに関連付けられたIPアドレス範囲からの第1のIPアドレスであってもよい。サブネット内のVNICは、このデフォルトまたは保留IPアドレスを使用して、サブネットに関連付けられたVRと通信(例えば、パケットを送信および受信)することができる。このような実施形態において、VRは、そのサブネットの着信/送信ポイントである。VCN内のサブネットに関連付けられたVRは、VCN内の他のサブネットに関連付けられた他のVRと通信することができる。また、VRは、VCNに関連付けられたゲートウェイと通信することができる。サブネットのVR機能は、サブネット内のVNICのVNIC機能を実行する1つ以上のNVD上で実行され、またはそれによって実行される。
【0045】
ルートテーブル、セキュリティルール、およびDHCPオプションは、VCNのために構成されてもよい。ルートテーブルは、VCNの仮想ルートテーブルであり、ゲートウェイまたは特別に構成されたインスタンスを経由して、トラフィックをVCN内部のサブネットからVCN外部の宛先にルーティングするためのルールを含む。VCNとの間でパケットの転送/ルーティングを制御するために、VCNのルートテーブルをカスタマイズすることができる。DHCPオプションは、インスタンスの起動時にインスタンスに自動的に提供される構成情報を指す。
【0046】
VCNのために構成されたセキュリティルールは、VCNのオーバーレイファイアウォールルールを表す。セキュリティルールは、受信ルールおよび送信ルールを含むことができ、(例えば、プロトコルおよびポートに基づいて)VCN内のインスタンスに出入りすることを許可されるトラフィックの種類を指定することができる。顧客は、特定の規則をステートフルまたはステートレスにするかを選択することができる。例えば、顧客は、ソースCIDR0.0.0.0/0および宛先TCPポート22を含むステートフル受信ルールを設定することによって、任意の場所から1組のインスタンスへの着信SSHトラフィックを許可することができる。セキュリティルールは、ネットワークセキュリティグループまたはセキュリティリストを使用して実装されてもよい。ネットワークセキュリティグループは、そのグループ内のリソースのみに適用されるセキュリティルールのセットからなる。一方、セキュリティリストは、そのセキュリティリストを使用するサブネット内の全てのリソースに適用されるルールを含む。VCNは、デフォルトセキュリティルールとデフォルトセキュリティリストを含んでもよい。VCNのために構成されたDHCPオプションは、VCN内のインスタンスが起動するときに自動的に提供される構成情報を提供する。
【0047】
特定の実施形態において、VCNの構成情報は、VCN制御プレーンによって決定され、記憶される。VCNの構成情報は、例えば、VCNに関連するアドレス範囲、VCN内のサブネットおよび関連情報、VCNに関連する1つ以上のVR、VCN内の計算インスタンスおよび関連VNIC、VCNに関連する種々の仮想化ネットワーク機能(例えば、VNIC、VR、ゲートウェイ)を実行するNVD、VCNの状態情報、および他のVCN関連情報を含んでもよい。特定の実施形態において、VCN配信サービスは、VCN制御プレーンによって記憶された構成情報またはその一部をNVDに公開する。配信された情報を用いて、NVDによって記憶および使用される情報(例えば、転送テーブル、ルーティングテーブルなど)を更新することによって、VCN内のコンピュートインスタンスとの間でパケットを転送することができる。
【0048】
特定の実施形態において、VCNおよびサブネットの作成は、VCN制御プレーン(CP)によって処理され、計算インスタンスの起動は、計算制御プレーンによって処理される。計算制御プレーンは、計算インスタンスの物理リソースを割り当て、次にVCN制御プレーンを呼び出して、VNICを作成し、計算インスタンスに接続するように構成される。また、VCN CPは、パケットの転送およびルーティング機能を実行するように構成されたVCNデータプレーンに、VCNデータマッピングを送信する。特定の実施形態において、VCN CPは、更新をVCNデータプレーンに提供するように構成された配信サービスを提供する。VCN制御プレーンの例は、図21、22、23、および24(参照番号2116、2216、2316、および2416を参照)に示され、以下に説明される。
【0049】
顧客は、CSPIによってホストされているリソースを用いて、1つ以上のVCNを作成することができる。顧客VCN上に展開された計算インスタンスは、異なるエンドポイントと通信することができる。これらのエンドポイントは、CSPIによってホストされているエンドポイントおよびCSPL外部のエンドポイントを含むことができる。
【0050】
CSPIを用いてクラウドベースのサービスを実装するための様々な異なるアーキテクチャは、図1、2、3、4、5、21、22、23、および25に示され、以下に説明される。図1は、特定の実施形態に従って、CSPIによってホストされているオーバーレイVCNまたは顧客VCNを示す分散環境100のハイレベル図である。図1に示された分散環境は、オーバーレイネットワーク内の複数の要素を含む。図1に示された分散環境100は、単なる例であり、特許請求された実施形態の範囲を不当に限定することを意図していない。多くの変形例、代替例、および修正例が可能である。例えば、いくつかの実装形態において、図1に示された分散環境は、図1に示されたものより多いまたは少ないシステムまたは要素を有してもよく、2つ以上のシステムを組み合わせてもよく、または異なるシステムの構成または配置を有してもよい。
【0051】
図1の例に示されたように、分散環境100は、顧客が加入して仮想クラウドネットワーク(VCN)を構築するために使用することができるサービスおよびリソースを提供するCSPI101を含む。特定の実施形態において、CSPI101は、加入顧客にIaaSサービスを提供する。CSPI101内のデータセンタは、1つ以上の地域に編成されてもよい。図1は、地域の一例である「US地域」102を示す。顧客は、地域102に対して顧客VCN104を構成している。顧客は、VCN104上に様々な計算インスタンスを展開することができ、計算インスタンスは、仮想マシンまたはベアメタルインスタンスを含むことができる。インスタンスの例は、アプリケーション、データベース、ロードバランサなどを含む。
【0052】
図1に示された実施形態において、顧客VCN104は、2つのサブネット、すなわち、「サブネット-1」および「サブネット-2」を含み、各サブネットは、各自のCIDR IPアドレス範囲を有する。図1において、サブネット-1のオーバーレイIPアドレス範囲は、10.0/16であり、サブネット-2のアドレス範囲は、10.1/16である。VCN仮想ルータ105は、VCN104のサブネット間の通信およびVCN外部の他のエンドポイントとの通信を可能にするVCNの論理ゲートウェイを表す。VCN VR105は、VCN104内のVNICとVCN104に関連するゲートウェイとの間でトラフィックをルーティングするように構成される。VCN VR105は、VCN104の各サブネットにポートを提供する。例えば、VR105は、IPアドレス10.0.0.1を有するポートをサブネット-1に提供することができ、IPアドレス10.1.0.1を有するポートをサブネット-2に提供することができる。
【0053】
各サブネット上に複数の計算インスタンスを展開することができる。この場合、計算インスタンスは、仮想マシンインスタンスおよび/またはベアメタルインスタンスであってもよい。サブネット内の計算インスタンスは、CSPI101内の1つ以上のホストマシンによってホストされてもよい。計算インスタンスは、当該計算インスタンスに関連するVNICを介してサブネットに参加する。例えば、図1に示すように、計算インスタンスC1は、当該計算インスタンスに関連するVNICを介したサブネット-1の一部である。同様に、計算インスタンスC2は、C2に関連するVNICを介したサブネット-1の一部である。同様に、仮想マシンインスタンスまたはベアメタルインスタンスであり得る複数の計算インスタンスは、サブネット-1の一部であってもよい。各計算インスタンスには、関連するVNICを介して、プライベートオーバーレイIPアドレスおよびMACアドレスが割り当てられる。例えば、図1において、計算インスタンスC1は、オーバーレイIPアドレス10.0.0.2およびMACアドレスM1を有し、計算インスタンスC2は、プライベートオーバーレイIPアドレス10.0.0.3およびMACアドレスM2を有する。計算インスタンスC1およびC2を含むサブネット-1内の各計算インスタンスは、サブネット-1のVCN VR105のポートのIPアドレスであるIPアドレス10.0.0.1を使用して、VCN VR105へのデフォルトルートを有する。
【0054】
サブネット-2には、仮想マシンインスタンスおよび/またはベアメタルインスタンスを含む複数の計算インスタンスを展開することができる。例えば、図1に示すように、計算インスタンスDlおよびD2は、それぞれの計算インスタンスに関連するVNICを介したサブネット-2の一部である。図1に示す実施形態において、計算インスタンスD1は、オーバーレイIPアドレス10.1.0.2およびMACアドレスMM1を有し、計算インスタンスD2は、プライベートオーバーレイIPアドレス10.1.0.3およびMACアドレスMM2を有する。計算インスタンスD1およびD2を含むサブネット-2内の各計算インスタンスは、サブネット-2のVCN VR105のポートのIPアドレスであるIPアドレス10.1.0.1を使用して、VCN VR105へのデフォルトルートを有する。
【0055】
また、VCN A104は、1つ以上のロードバランサを含んでもよい。例えば、ロードバランサは、サブネットに対して提供されてもよく、サブネット上の複数の計算インスタンス間でトラフィックをロードバランスするように構成されてもよい。また、ロードバランサは、VCN内のサブネット間でトラフィックをロードバランスするように提供されてもよい。
【0056】
VCN104上に展開された特定の計算インスタンスは、様々な異なるエンドポイントと通信することができる。これらのエンドポイントは、CSPI200によってホストされているエンドポイントと、CSPI200外部のエンドポイントとを含んでもよい。CSPI101によってホストされているエンドポイントは、特定の計算インスタンスと同じサブネット上のエンドポイント(例えば、サブネット-1の2つの計算インスタンス間の通信)、異なるサブネットにあるが同じVCN内のエンドポイント(例えば、サブネット-1の計算インスタンスとサブネット-2の計算インスタンスとの間の通信)、同じ地域の異なるVCN内のエンドポイント(例えば、サブネット-1の計算インスタンスと、同じ地域106または110のVCN内のエンドポイントとの間の通信、サブネット-1内の計算インスタンスと、同じ地域のサービスネットワーク110内のエンドポイントとの間の通信)、または異なる地域のVCN内のエンドポイント(例えば、サブネット-1の計算インスタンスと、異なる地域108のVCN内のエンドポイントとの間の通信)を含んでもよい。また、CSPI101によってホストされているサブネット内の計算インスタンスは、CSPI101によってホストされていない(すなわち、CSPI101の外部にある)エンドポイントと通信することができる。これらの外部のエンドポイントは、顧客オンプレミスネットワーク116内のエンドポイント、他のリモートクラウドホストネットワーク118内のエンドポイント、インターネットなどのパブリックネットワークを介してアクセス可能なパブリックエンドポイント114、および他のエンドポイントを含む。
【0057】
同じサブネット上の計算インスタンス間の通信は、ソース計算インスタンスおよび宛先計算インスタンスに関連するVNICを使用して促進される。例えば、サブネット-1内の計算インスタンスC1は、サブネット-1内の計算インスタンスC2にパケットを送信したいことがある。ソース計算インスタンスから送信され、その宛先が同じサブネット内の別の計算インスタンスであるパケットの場合、このパケットは、まず、ソース計算インスタンスに関連するVNICによって処理される。ソース計算インスタンスに関連するVNICによって実行される処理は、パケットヘッダからパケットの宛先情報を決定することと、ソース計算インスタンスに関連するVNICに対して構成された任意のポリシー(例えば、セキュリティリスト)を識別することと、パケットのネクストホップ(next hop)を決定することと、必要に応じて任意のパケットのカプセル化機能/カプセル除去機能を実行することと、パケットの意図した宛先への通信を容易にするためにパケットをネクストホップに転送/ルーティングすることとを含んでもよい。宛先計算インスタンスがソース計算インスタンスと同じサブネットにある場合、ソース計算インスタンスに関連するVNICは、宛先計算インスタンスに関連するVNICを識別し、処理するためのパケットをそのVNICに転送するように構成されている。次いで、宛先計算インスタンスに関連するVNICは、実行され、パケットを宛先計算インスタンスに転送する。
【0058】
サブネット内の計算インスタンスから同じVCNの異なるサブネット内のエンドポイントにパケットを通信する場合、通信は、ソース計算インスタンスおよび宛先計算インスタンスに関連するVNICと、VCN VRとによって促進される。例えば、図1のサブネット-1の計算インスタンスC1がサブネット-2の計算インスタンスD1にパケットを送信したい場合、パケットは、まず、計算インスタンスC1に関連するVNICによって処理される。計算インスタンスC1に関連するVNICは、VCN VRのデフォルトルートまたはポート10.0.0.1を使用して、パケットをVCN VR105にルーティングするように構成されている。VCN VR105は、ポート10.1.0.1を使用してパケットをサブネット-2にルーティングするように構成されている。その後、パケットは、D1に関連するVNICによって受信および処理され、VNICは、パケットを計算インスタンスD1に転送する。
【0059】
VCN104内の計算インスタンスからVCN104の外部のエンドポイントにパケットを通信するために、通信は、ソース計算インスタンスに関連するVNIC、VCN VR105、およびVCN104に関連するゲートウェイによって促進される。1つ以上の種類のゲートウェイをVCN104に関連付けることができる。ゲートウェイは、VCNと別のエンドポイントとの間のインターフェイスであり、別のエンドポイントは、VCNの外部にある。ゲートウェイは、レイヤ3/IPレイヤ概念であり、VCNとVCNの外部のエンドポイントとの通信を可能にする。したがって、ゲートウェイは、VCNと他のVCNまたはネットワークとの間のトラフィックフローを容易にする。異なる種類のエンドポイントとの異なる種類の通信を容易にするために、様々な異なる種類のゲートウェイをVCNに設定することができる。ゲートウェイによって、通信は、パブリックネットワーク(例えば、インターネット)またはプライベートネットワークを介して行われてもよい。これらの通信には、様々な通信プロトコルを使用してもよい。
【0060】
例えば、計算インスタンスC1は、VCN104の外部のエンドポイントと通信したい場合がある。パケットは、まず、ソース計算インスタンスC1に関連するVNICによって処理されてもよい。VNIC処理は、パケットの宛先がClのサブネット-1の外部にあると判断する。C1に関連するVNICは、パケットをVCN104のVCN VR105に転送することができる。次いで、VCN VR105は、パケットを処理し、処理の一部として、パケットの宛先に基づいて、VCN104に関連する特定のゲートウェイをパケットのネクストホップとして決定する。その後、VCN VR105は、パケットを特定のゲートウェイに転送することができる。例えば、宛先が顧客のオペプレミスネットワーク内のエンドポイントである場合、パケットは、VCN VR105によって、VCN104のために構成された動的ルーティングゲートウェイ(DRG)122に転送されてもよい。その後、パケットは、ゲートウェイからネクストホップに転送され、意図した最終の宛先へのパケットの通信を容易にすることができる。
【0061】
VCNのために様々な異なる種類のゲートウェイを構成してもよい。VCNのために構成され得るゲートウェイの例は、図1に示され、以下に説明される。VCNに関連するゲートウェイの例は、図21、22、23、および図24(例えば、参照番号2134、2136、2138、2234、2236、2238、2334、2336、2338、2434、2436、および2438によって示されたゲートウェイ)にも示され、以下に説明される。図1に示された実施形態に示されるように、動的ルーティングゲートウェイ(DRG)122は、顧客VCN104に追加されてもよく、またはそれに関連付けられてもよい。DRG122は、顧客VCN104と別のエンドポイントとの間のプライベートネットワークトラフィック通信を行うための経路を提供する。別のエンドポイントは、顧客オンプレミスネットワーク116、CSPI101の異なる地域内のVCN108、またはCSPI101によってホストされていない他のリモートクラウドネットワーク118であってもよい。顧客オンプレミスネットワーク116は、顧客のリソースを用いて構築された顧客ネットワークまたは顧客データセンタであってもよい。顧客オンプレミスネットワーク116へのアクセスは、一般的に厳しく制限される。顧客オンプレミスネットワーク116と、CSPI101によってクラウドに展開またはホストされる1つ以上のVCN104との両方を有する顧客の場合、顧客は、オンプレミスネットワーク116およびクラウドベースのVCN104が互いに通信できることを望む場合がある。これによって、顧客は、CSPI101によってホストされている顧客のVCN104とオンプレミスネットワーク116とを含む拡張ハイブリッド環境を構築することができる。DRG122は、このような通信を可能にする。このような通信を可能にするために、通信チャネル124が設定される。この場合、通信チャネルの一方のエンドポイントは、顧客オンプレミスネットワーク116にあり、他方のエンドポイントは、CSPI101にあり、顧客VCN104に接続されている。通信チャネル124は、インターネットなどのパブリック通信ネットワーク、またはプライベート通信ネットワークを経由することができる。インターネットなどのパブリック通信ネットワーク上のIPsec VPN技術、パブリックネットワークの代わりにプライベートネットワークを使用するオラクル(登録商標)のFastConnect技術などの様々な異なる通信プロトコルを使用することができる。通信チャネル124の1つのエンドポイントを形成する顧客オンプレミスネットワーク116内の装置または機器は、図1に示されたCPE126などの顧客構内機器(CPE)と呼ばれる。CSPI101側のエンドポイントは、DRG122を実行するホストマシンであってもよい。
【0062】
特定の実施形態において、リモートピアリング接続(RPC)をDRGに追加することができる。これによって、顧客は、1つのVCNを別の地域内の別のVCNとピアリングすることができる。このようなRPCを使用して、顧客VCN104は、DRG122を使用して、別の地域内のVCN108に接続することができる。また、DRG122は、CSPI101によってホストされていない他のリモートクラウドネットワーク118、例えば、マイクロソフト(登録商標)Azureクラウド、アマゾン(登録商標)AWSクラウドと通信するために使用されてもよい。
【0063】
図1に示すように、顧客VCN104上の計算インスタンスがインターネットなどのパブリックネットワークを介してアクセス可能なパブリックエンドポイント114と通信することを可能にするように、顧客VCN104にインターネットゲートウェイ(IGW)120を構成することができる。IGW1120は、VCNをインターネットなどのパブリックネットワークに接続するためのゲートウェイである。IGW120は、VCN104などのVCN内のパブリックサブネット(パブリックサブネット内のリソースは、パブリックオーバーレイIPアドレスを有する)がインターネットなどのパブリックネットワーク114上のパブリックエンドポイント112に直接アクセスすることを可能にする。IGW120を使用して、VCN104内のサブネットからまたはインターネットからの接続を開始することができる。
【0064】
顧客VCN104にネットワークアドレス変換(NAT)ゲートウェイ128を構成することができる。NATゲートウェイ128は、顧客VCN内の専用のパブリックオーバーレイIPアドレスを有しないクラウドリソースを、直接着信インターネット接続(例えば、L4-L7接続)に曝すことなくインターネットにアクセスすることを可能にする。これによって、VCN104のプライベートサブネット-1などのVCN内のプライベートサブネットがインターネット上のパブリックエンドポイントにプライベートアクセスすることを可能にする。NATゲートウェイにおいて、プライベートサブネットからパブリックインターネットに接続を開始することができるが、インターネットからプライベートサブネットに接続を開始することができない。
【0065】
特定の実施形態において、顧客VCN104にサービスゲートウェイ(SGW)126を構成することができる。SGW126は、VCN104とサービスネットワーク110にサポートされているサービスエンドポイントとの間のプライベートネットワークトラフィックの経路を提供する。特定の実施形態において、サービスネットワーク110は、CSPによって提供されてもよく、様々なサービスを提供することができる。このようなサービスネットワークの例は、顧客が使用できる様々なサービスを提供するオラクル(登録商標)サービスネットワークである。例えば、顧客VCN104のプライベートサブネット内の計算インスタンス(例えば、データベースシステム)は、パブリックIPアドレスまたはインターネットへのアクセスを必要とすることなく、サービスエンドポイント(例えば、オブジェクト記憶装置)にデータをバックアップすることができる。いくつかの実施形態において、VCNは、1つのみのSGWを有することができ、VCN内のサブネットのみから接続を開始することができ、サービスネットワーク110から接続を開始することができない。VCNを他のVCNにピアリングする場合、他のVCN内のリソースは、通常SGWにアクセスすることができない。FastConnectまたはVPN ConnectでVCNに接続されているオンプレミスネットワーク内のリソースも、そのVCNに構成されたサービスゲートウェイを使用することができる。
【0066】
いくつかの実装形態において、SGW126は、サービスクラスレスドメイン間ルーティング(CIDR)ラベルを使用する。CIDRラベルは、関心のあるサービスまたはサービスのグループに対する全ての地域公開IPアドレス範囲を表す文字列である。顧客は、SGWおよび関連するルーティングルールを設定する際に、サービスCIDRラベルを使用してサービスへのトラフィックを制御する。顧客は、サービスのパブリックIPアドレスが将来に変化する場合、セキュリティルールを調整する必要なく、セキュリティルールを設定するときにオプションとしてサービスCIDRラベルを使用することができる。
【0067】
ローカルピアリングゲートウェイ(LPG)132は、顧客VCN104に追加可能なゲートウェイであり、VCN104が同じ地域内の別のVCNとピアリングすることを可能にするものである。ピアリングとは、トラフィックがインターネットなどのパブリックネットワークを経由することなく、または顧客オンプレミスネットワーク116を通してトラフィックをルーティングすることなく、VCNがプライベートIPアドレスを使用して通信することを意味する。好ましい実施形態において、VCNは、確立した各ピアリングに対して個別のLPGを有する。ローカルピアリングまたはVCNピアリングは、異なるアプリケーション間またはインフラストラクチャ管理機能間のネットワーク接続を確立するために使用される一般的な慣行である。
【0068】
サービスネットワーク110のサービスのプロバイダなどのサービスプロバイダは、異なるアクセスモデルを使用してサービスへのアクセスを提供することができる。パブリックアクセスモデルによれば、サービスは、インターネットなどのパブリックネットワークを介して顧客VCN内の計算インスタンスによって公的にアクセス可能なパブリックエンドポイントとして公開されてもよく、またはSGW126を介してプライベートにアクセスされてもよい。特定のプライベートアクセスモデルによれば、サービスは、顧客VCN内のプライベートサブネット内のプライベートIPエンドポイントとしてアクセスされてもよい。これは、プライベートエンドポイント(PE)アクセスと呼ばれ、サービスプロバイダがそのサービスを顧客のプライベートネットワーク内のインスタンスとして公開することを可能にする。プライベートエンドポイントリソースは、顧客VCN内のサービスを表す。各PEは、顧客が顧客VCN内のサブネットから選択したVNIC(PE-VNICと呼ばれ、1つまたは複数のプライベートIPを持つ)として現れる。従って、PEは、VNICを使用して顧客のプライベートVCNサブネット内でサービスを提供する方法を提供する。エンドポイントがVNICとして公開されるため、PE VNICは、VNICに関連する全ての機能、例えば、ルーティングルールおよびセキュリティリストなどを利用することができる。
【0069】
サービスプロバイダは、サービスを登録することによって、PEを介したアクセスを可能にする。プロバイダは、顧客テナントへのサービスの表示を規制するポリシーをサービスに関連付けることができる。プロバイダは、特にマルチテナントサービスの場合、単一の仮想IPアドレス(VIP)の下に複数のサービスを登録することができる。(複数のVCNにおいて)同じサービスを表すプライベートエンドポイントが複数存在する場合もある。
【0070】
その後、プライベートサブネット内の計算インスタンスは、PE VNICのプライベートIPアドレスまたはサービスDNS名を用いて、サービスにアクセスすることができる。顧客VCN内の計算インスタンスは、顧客VCN内のPEのプライベートIPアドレスにトラフィックを送信することによって、サービスにアクセスすることができる。プライベートアクセスゲートウェイ(PAGW)130は、顧客サブネットプライベートエンドポイントから/への全てのトラフィックの受信ポイント/送信ポイントとして機能するサービスプロバイダVCN(例えば、サービスネットワーク110内のVCN)に接続できるゲートウェイリソースである。PAGW130によって、プロバイダは、内部IPアドレスリソースを利用することなく、PE接続の数を拡張することができる。プロバイダは、単一のVCNに登録された任意の数のサービスに対して1つのPAGWを設定するだけでよい。プロバイダは、1人以上の顧客の複数のVCNにおいて、サービスをプライバシーエンドポイントとして示すことができる。顧客の観点から、PE VNICは、顧客のインスタンスに接続されているのではなく、顧客が対話したいサービスに接続されているように見える。プライベートエンドポイントに向けられたトラフィックは、PAGW130を介してサービスにルーティングされる。これらは、顧客対サービスプライベート接続(C2S接続)と呼ばれる。
【0071】
また、PE概念を用いて、トラフィックがFastConnect/IPsecリンクおよび顧客VCN内のプライベートエンドポイントを通って流れることを可能にすることで、サービスのプライベートアクセスを顧客オンプレミスネットワークおよびデータセンタに拡張することもできる。また、トラフィックがLPG132および顧客VCN内のPE間を通って流れることを可能にすることで、サービスのプライベートアクセスを顧客ピアリングVCNに拡張することもできる。
【0072】
顧客は、サブネットレベルでVCNのルーティングを制御することができるため、VCN104などの顧客VCNにおいて各ゲートウェイを使用するサブネットを指定することができる。VCNのルートテーブルを用いて、特定のゲートウェイを介してトラフィックをVCNの外部にルーティングできるか否かを判断することができる。例えば、特定の事例において、顧客VCN104内のパブリックサブネットのルートテーブルは、IGW120を介して非ローカルトラフィックを送信することができる。同じ顧客VCN104内のプライベートサブネットのルートテーブルは、SGW126を介してCSPサービスへのトラフィックを送信することができる。残りの全てのトラフィックは、NATゲートウェイ128を介して送信されてもよい。ルートテーブルは、VCNから出るトラフィックのみを制御する。
【0073】
VCNに関連するセキュリティリストは、インバウンド接続およびゲートウェイを介してVCNに入来するトラフィックを制御するために使用される。サブネット内の全てのリソースは、同じミュートテーブルおよびセキュリティリストを使用する。セキュリティリストは、VCNのサブネット内のインスタンスに出入りする特定の種類のトラフィックを制御するために使用されてもよい。セキュリティリストルールは、受信(インバウンド)ルールと、送信(アウトバウンド)ルールとを含んでもよい。例えば、受信ルールは、許可されたソースアドレス範囲を指定することができ、送信ルールは、許可された宛先アドレス範囲を指定することができる。セキュリティルールは、特定のプロトコル(例えば、TCP、ICMP)、特定のポート(例えば、SSHの場合ポート22、ウィンドウズ(登録商標)RDPの場合ポート3389)などを指定することができる。特定の実装形態において、インスタンスのオペレーティングシステムは、セキュリティリストルールと一致する独自のファイアウォールルールを実施することができる。ルールは、ステートフル(例えば、接続が追跡され、応答トラフィックに対する明示的なセキュリティのリストルールなしで応答が自動的に許可される)またはステートレスであってもよい。
【0074】
顧客VCN(すなわち、VCN104上に展開されたリソースまたは計算インスタンス)からのアクセスは、パブリックアクセス、プライベートアクセス、または専用アクセスとして分類されることができる。パブリックアクセスは、パブリックIPアドレスまたはNATを用いてパブリックエンドポイントにアクセスするためのアクセスモデルを指す。プライベートアクセスは、プライベートIPアドレス(例えば、プライベートサブネット内のリソース)を持つVCN104内の顧客ワークロードが、インターネットなどのパブリックネットワークを経由することなく、サービスにアクセスすることを可能にする。特定の実施形態において、CSPI101は、プライベートIPアドレスを持つ顧客VCNワークロードが、サービスゲートウェイを使用して、サービスのパブリックサービスエンドポイントにアクセスすることを可能にする。したがって、サービスゲートウェイは、顧客VCNと顧客プライベートネットワークの外部に存在するサービスのパブリックエンドポイントとの間に仮想リンクを確立することによって、プライベートアクセスモデルを提供する。
【0075】
さらに、CSPIは、FastConnectパブリックピアリングなどの技術を使用する専用パブリックアクセスを提供することができる。この場合、顧客オンプレミスインスタンスは、インターネットなどのパブリックネットワークを経由することなく、FastConnect接続を用いて顧客VCN内の1つ以上のサービスにアクセスすることができる。また、CSPIは、FastConnectプライベートピアリングを使用する専用プライベートアクセスを提供することもできる。この場合、プライベートIPアドレスを持つ顧客オンプレミスインスタンスは、FastConnect接続を用いて顧客VCNワークロードにアクセスすることができる。FastConnectは、パブリックインターネットを用いて顧客オンプレミスネットワークをCSPIおよびそのサービスに接続する代わりに使用されるネットワーク接続である。FastConnectは、インターネットベースの接続と比較して、より高い帯域幅オプションと信頼性の高い一貫したネットワーキング体験を持つ専用のプライベート接続を、簡単、柔軟且つ経済的に作成する方法を提供する。
【0076】
図1および上記の添付の説明は、例示的な仮想ネットワークにおける様々な仮想化要素を説明する。上述したように、仮想ネットワークは、基礎となる物理ネットワークまたは基板ネットワーク上に構築される。図2は、特定の実施形態に従って、仮想ネットワークの基盤を提供するCSPI200内の物理ネットワーク内の物理要素を示す簡略化アーキテクチャ図である。図示のように、CSPI200は、クラウドサービスプロバイダ(CSP)によって提供された要素およびリソース(例えば、計算リソース、メモリリソース、およびネットワーキングリソース)を含む分散環境を提供する。これらの要素およびリソースは、加入している顧客、すなわち、CSPによって提供された1つ以上のサービスに加入している顧客にクラウドサービス(例えば、IaaSサービス)を提供するために使用される。顧客が加入しているサービスに基づいて、CSPI200は、一部のリソース(例えば、計算リソース、メモリリソース、およびネットワーキングリソース)を顧客に提供する。その後、顧客は、CSPI200によって提供された物理的な計算リソース、メモリリソース、およびネットワーキングリソースを使用して、独自のクラウドベースの(すなわち、CSPIホスト型)カスタマイズ可能なプライベート仮想ネットワークを構築することができる。前述したように、これらの顧客ネットワークは、仮想クラウドネットワーク(VCN)と呼ばれる。顧客は、これらの顧客VCNに、計算インスタンスなどの1つ以上の顧客リソースを展開することができる。計算インスタンスは、仮想マシン、ベアメタルインスタンスなどであってもよい。CSPI200は、顧客が高可用性のホスト環境において広範なアプリケーションおよびサービスを構築および実行することを可能にする、インフラストラクチャおよび一連の補完的なクラウドサービスを提供する。
【0077】
図2に示す例示的な実施形態において、CSPI200の物理要素は、1つ以上の物理ホストマシンまたは物理サーバ(例えば、202、206、208)、ネットワーク仮想化装置(NVD)(例えば、210、212)、トップオブラック(TOR)スイッチ(例えば、214、216)、物理ネットワーク(例えば、218)、および物理ネットワーク218内のスイッチを含む。物理ホストマシンまたはサーバは、VCNの1つ以上のサブネットに参加している様々な計算インスタンスをホストし、実行することができる。計算インスタンスは、仮想マシンインスタンスおよびベアメタルインスタンスを含んでもよい。例えば、図1に示された様々な計算インスタンスは、図2に示された物理的ホストマシンによってホストされてもよい。VCN内の仮想マシン計算インスタンスは、1つのホストマシンによって実行されてもよく、または複数の異なるホストマシンによって実行されてもよい。また、物理ホストマシンは、仮想ホストマシン、コンテナベースのホストまたは機能などをホストすることができる。図1に示されたVICおよびVCN VRは、図2に示されたFTVDによって実行されてもよい。図1に示されたゲートウェイは、図2に示されたホストマシンおよび/またはNVDによって実行されてもよい。
【0078】
ホストマシンまたはサーバは、ホストマシン上で仮想化環境を作成するおよび可能にするハイパーバイザ(仮想マシンモニタまたはVMMとも呼ばれる)を実行することができる。仮想化または仮想化環境は、クラウドベースコンピューティングを容易にする。1つ以上の計算インスタンスは、ホストマシン上のハイパーバイザによって、ホストマシン上で作成され、実行され、管理されてもよい。ホストマシン上のハイパーバイザは、ホストマシンの物理的な計算リソース(例えば、計算リソース、メモリリソース、およびネットワーキングリソース)をホストマシン上で実行される様々な計算インスタンス間で共有させることができる。
【0079】
例えば、図2に示すように、ホストマシン202および208は、ハイパーバイザ260および266をそれぞれ実行する。これらのハイパーバイザは、ソフトウェア、ファームウエア、ハードウェア、またはそれらの組み合わせを使用して実装されてもよい。典型的には、ハイパーバイザは、ホストマシンのオペレーティングシステム(OS)に常駐するプロセスまたはソフトウェア層であり、OSは、ホストマシンのハードウェアプロセッサ上で実行される。ハイパーバイザは、ホストマシンの物理的な計算リソース(例えば、プロセッサ/コア、メモリリソース、ネットワーキングリソースなどの処理リソース)を、ホストマシンによって実行される様々な仮想マシン計算インスタンスの間で共有させる仮想化環境を提供する。例えば、図2において、ハイパーバイザ260は、ホストマシン202のOSに常駐し、ホストマシン202の計算リソース(例えば、処理リソース、メモリリソース、およびネットワーキングリソース)を、ホストマシン202によって実行されるコンピューティングインスタンス(例えば、仮想マシン)間で共有させることができる。仮想マシンは、独自のOS(ゲストOSと呼ばれる)を持つことができる。このゲストOSは、ホストマシンのOSと同じであってもよく、異なってもよい。ホストマシンによって実行される仮想マシンのOSは、同じホストマシンによって実行される他の仮想マシンのOSと同じであってもよく、異なってもよい。したがって、ハイパーバイザは、ホストマシンの同じ計算リソースを共有させながら、複数のOSを並行して実行することができる。図2に示されたホストマシンは、同じ種類のハイパーバイザを有してもよく、異なる種類のハイパーバイザを有してもよい。
【0080】
計算インスタンスは、仮想マシンインスタンスまたはベアメタルインスタンスであってもよい。図2において、ホストマシン202上の計算インスタンス268およびホストマシン208上の計算インスタンス274は、仮想マシンインスタンスの一例である。ホストマシン206は、顧客に提供されるベアメタルインスタンスの一例である。
【0081】
特定の例において、ホストマシンの全体は、単一の顧客に提供されてもよく、そのホストマシンによってホストされている1つ以上の計算インスタンス(仮想マシンまたはベアメタルインスタンスのいずれか)は、全て同じ顧客に属してもよい。他の例において、ホストマシンは、複数の顧客(すなわち、複数のテナント)間で共有されてもよい。このようなマルチテナントシナリオにおいて、ホストマシンは、異なる顧客に属する仮想マシン計算インスタンスをホストすることができる。これらの計算インスタンスは、異なる顧客の異なるVCNのメンバであってもよい。特定の実施形態において、ベアメタル計算インスタンスは、ハイパーバイザを設けていないベアメタルサーバによってホストされている。ベアメタル計算インスタンスが提供される場合、単一の顧客またはテナントは、ベアメタルインスタンスをホストするホストマシンの物理CPU、メモリ、およびネットワークインターフェイスの制御を維持し、ホストマシンは、他の顧客またはテナントに共有されない。
【0082】
前述したように、VCNの一部である各計算インスタンスは、計算インスタンスがVCNのサブネットのメンバになることを可能にするVNICに関連付けられる。計算インスタンスに関連付けられたVNICは、計算インスタンスとの間のパケットまたはフレームの通信を容易にする。VNICは、計算インスタンスが作成されるときに当該計算インスタンスに関連付けられる。特定の実施形態において、ホストマシンによって実行される計算インスタンスについて、その計算インスタンスに関連付けられたVNICは、ホストマシンに接続されたNVDによって実行される。例えば、図2において、ホストマシン202は、VNIC276に関連付けられた仮想マシン計算インスタンス268を実行し、VNIC276は、ホストマシン202に接続されたNVD210によって実行される。別の例として、ホストマシン206によってホストされているベアメタルインスタンス272は、ホストマシン206に接続されたNVD212によって実行されるVNIC280に関連付けられる。さらに別の例として、VNIC284は、ホストマシン208によって実行される計算インスタンス274に関連付けられ、VNIC284は、ホストマシン208に接続されているNVD212によって実行される。
【0083】
ホストマシンによってホストされている計算インスタンスについて、そのホストマシンに接続されたNVDは、計算インスタンスがメンバであるVCNに対応するVCN VRを実行する。例えば、図2に示された実施形態において、NVD210は、計算インスタンス268がメンバであるVCNに対応するVCN VR277を実行する。また、NVD212は、ホストマシン206および208によってホストされている計算インスタンスに対応するVCNに対応する1つ以上のVCN VR283を実行することができる。
【0084】
ホストマシンは、当該ホストマシンを他の装置に接続するための1つ以上のネットワークインターフェイスカード(NIC)を含むことができる。ホストマシン上のNICは、ホストマシンを別の装置に通信可能に接続するための1つ以上のポート(またはインターフェイス)を提供することができる。例えば、ホストマシンおよびNVDに設けられた1つ以上のポート(またはインターフェイス)を用いて、当該ホストマシンを当該NVDに接続することができる。また、ホストマシンを他のホストマシンなどの他の装置に接続することもできる。
【0085】
例えば、図2において、ホストマシン202は、ホストマシン202のNIC232によって提供されるポート234とNVD210のポート236との間に延在するリンク220を使用してNVD210に接続されている。ホストマシン206は、ホストマシン206のNIC244によって提供されるポート246とNVD212のポート248との間に延在するリンク224を使用してNVD212に接続されている。ホストマシン208は、ホストマシン208のNIC250によって提供されるポート252とNVD212のポート254との間に延在するリンク226を使用してNVD212に接続されている。
【0086】
同様に、NVDは、通信リンクを介して、(スイッチファブリックとも呼ばれる)物理ネットワーク218に接続されているトップオブラック(TOR)スイッチに接続されている。特定の実施形態において、ホストマシンとNVDとの間のリンクおよびNVDとTORスイッチとの間のリンクは、イーサネット(登録商標)リンクである。例えば、図2において、NVD210および212は、リンク228および230を介して、TORスイッチ214および216にそれぞれ接続される。特定の実施形態において、リンク220、224、226、228、および230は、イーサネット(登録商標)リンクである。TORに接続されているホストマシンおよびNVDの集合体は、ラックと呼ばれることがある。
【0087】
物理ネットワーク218は、TORスイッチの相互通信を可能にする通信ファブリックを提供する。物理ネットワーク218は、多層ネットワークであってもよい。特定の実装形態において、物理ネットワーク218は、スイッチの多層Closネットワークであり、TORスイッチ214および216は、多層およびマルチノード物理スイッチングネットワーク218のリーフレベルノードを表す。2層ネットワーク、3層ネットワーク、4層ネットワーク、5層ネットワーク、および一般に「n」層ネットワークを含むがこれらに限定されない異なるClosネットワーク構成は、可能である。CIosネットワークの一例は、図5に示され、以下に説明される。
【0088】
ホストマシンとN個のVDとの間には、1対1構成、多対1構成、および1対多構成などの様々な異なる接続構成が可能である。1対1構成の実装例において、各ホストマシンは、それ自体の別個のNVDに接続されている。例えば、図2において、ホストマシン202は、ホストマシン202のNIC232を介してNVD210に接続されている。多対1の構成において、複数のホストマシンは、1つのNVDに接続されている。例えば、図2において、ホストマシン206および208は、それぞれNIC244および250を介して同じNVD212に接続されている。
【0089】
1対多の構成において、1つのホストマシンは、複数のNVDに接続されている。図3は、ホストマシンが複数のNVDに接続されているCSPI300内の一例を示す。図3に示すように、ホストマシン302は、複数のポート306および30Sを含むネットワークインターフェイスカード(NIC)304を備える。ホストマシン300は、ポート306およびリンク320を介して第1のNVD310に接続され、ポート308およびリンク322を介して第2のNVD312に接続されている。ポート306および308は、イーサネット(登録商標)ポートであってもよく、ホストマシン302とNVD310および312との間のリンク320および322は、イーサネット(登録商標)リンクであってもよい。NVD310は、第1のTORスイッチ314に接続され、NVD312は、第2のTORスイッチ316に接続されている。NVD310および312とTORスイッチ314および316との間のリンクは、イーサネット(登録商標)リンクであってもよい。TORスイッチ314および316は、多層物理ネットワーク318内の層-0スイッチング装置を表す。
【0090】
図3に示す構成は、物理スイッチネットワーク318からホストマシン302への2つの別々の物理ネットワーク経路、すなわち、TORスイッチ314からNVD310を経由してホストマシン302への第1の経路と、TORスイッチ316からNVD312を経由してホストマシン302への第2の経路とを提供する。別々の経路は、ホストマシン302の強化された可用性(高可用性と呼ばれる)を提供する。経路の一方に問題がある(例えば、経路の一方のリンクが故障する)場合または装置に問題がある(例えば、特定のNVDが機能していない)場合、ホストマシン302との間の通信に他方の経路を使用することができる。
【0091】
図3に示された構成において、ホストマシンは、ホストマシンのNICによって提供された2つの異なるポートを用いて2つの異なるNVDに接続されている。他の実施形態において、ホストマシンは、ホストマシンと複数のNVDとの接続を可能にする複数のNICを含んでもよい。
【0092】
再び図2を参照して、NVDは、1つ以上のネットワーク仮想化機能および/または記憶仮想化機能を実行する物理装置または要素である。NVDは、1つ以上の処理ユニット(例えば、CPU、ネットワーク処理ユニット(NPU)、FPGA、パケット処理パイプライン)、キャッシュを含むメモリ、およびポートを有する任意の装置であってもよい。様々な仮想化機能は、NVDの1つ以上の処理ユニットによって実行されるソフトウェア/ファームウエアによって実行されてもよい。
【0093】
NVDは、様々な異なる形で実装されてもよい。例えば、特定の実施形態において、NVDは、内蔵プロセッサを搭載したスマートNICまたはインテリジェントNICと呼ばれるインターフェイスカードとして実装される。スマートNICは、ホストマシン上のNICとは別個の装置である。図2において、NVD210は、ホストマシン202に接続されているスマートNICとして実装されてもよく、NVD212は、ホストマシン206および208に接続されているスマートNICとして実装されてもよい。
【0094】
しかしながら、スマートNICは、NVD実装の一例にすぎない。様々な他の実装が可能である。例えば、いくつかの他の実装例において、NVDまたはNVDによって実行される1つ以上の機能は、CSPI200の1つ以上のホストマシン、1つ以上のTORスイッチ、および他の要素に組み込まれてもよく、またはそれらによって実行されてもよい。例えば、NVDは、ホストマシンに統合されてもよい。この場合、NVDによって実行される機能は、ホストマシンによって実行される。別の例として、NVDは、TORスイッチの一部であってもよく、またはTORスイッチは、TORスイッチがパブリッククラウドに使用される様々な複雑なパケット変換を実行することを可能にするNVDによって実行される機能を実行するように構成されてもよい。NVDの機能を実行するTORは、スマートTORと呼ばれることがある。ベアメタル(BM)インスタンスではなく仮想マシン(VM)インスタンスを顧客に提供するさらに他の実装形態において、NVDによって提供される機能は、ホストマシンのハイパーバイザの内部に実装されてもよい。いくつかの他の実装形態において、NVDの機能の一部は、一組のホストマシン上で動作する集中型サービスにオフロードされてもよい。
【0095】
図2に示すように、スマートNICとして実装される場合などの特定の実施形態において、NVDは、当該NVDを1つ以上のホストマシンおよび1つ以上のTORスイッチに接続することを可能にする複数の物理ポートを備えてもよい。NVD上のポートは、ホスト向きポート(「サウスポート」(south port)とも呼ばれる)またはネットワーク向きもしくはTOR向きポート(「ノースポート」(north port)とも呼ばれる)に分類することができる。NVDのホスト向きポートは、NVDをホストマシンに接続するために使用されるポートである。図2においてホスト向きポートの例は、NVD210のポート236、およびNVD212のポート248および254を含む。NVDのネットワーク向きポートは、NVDをTORスイッチに接続するために使用されるポートである。図2のネットワーク向きポートの例は、NVD210のポート256、およびNVD212のポート258を含む。図2に示すように、NVD210は、NVD210のポート256からTORスイッチ214まで延びるリンク228を介してTORスイッチ214に接続されている。同様に、NVD212は、NVD212のポート258からTORスイッチ216まで延びるリンク230を介してTORスイッチ216に接続されている。
【0096】
NVDは、ホスト向きポートを介して、ホストマシンからパケットおよびフレーム(例えば、ホストマシンによってホストされている計算インスタンスによって生成されたパケットおよびフレーム)を受信し、必要なパケット処理を実行した後、NVDのネットワーク向きポートを介してパケットおよびフレームをTORスイッチに転送することができる。NVDは、NVDのネットワーク向きポートを介してTORスイッチからパケットおよびフレームを受信し、必要なパケット処理を実行した後、NVDのホスト向きポートを介してパケットおよびフレームをホストマシンに転送することができる。
【0097】
特定の実施形態において、NVDとTORスイッチとの間に複数のポートおよび関連するリンクを設けてもよい。これらのポートおよびリンクを集約することによって、複数のポートまたはリンクのリンクアグリゲータグループ(LAGと称される)を形成することができる。リンクの集約は、2つのエンドポイント間(例えば、NVDとTORスイッチとの間)の複数の物理リンクを単一の論理リンクとして扱うことを可能にする。所定のLAG内の全ての物理リンクは、同じ速度で全二重モードで動作することができる。LAGは、2つのエンドポイント間の接続の帯域幅および信頼性を高めるのに役立つ。LAG内の物理リンクのうちの1つが故障した場合、トラフィックは、LAG内の別の物理リンクに動的かつ透過的に再割り当てられる。集約された物理リンクは、個々のリンクよりも高い帯域幅を提供する。LAGに関連付けられた複数のポートは、単一の論理ポートとして扱われる。トラフィックをLAGの複数の物理リンクに負荷分散することができる。2つのエンドポイント間に1つ以上のLAGを構成することができる。2つのエンドポイントは、例えば、NVDとTORスイッチとの間にあってもよく、ホストマシンとNVDとの間にであってもよい。
【0098】
NVDは、ネットワーク仮想化機能を実装または実行する。これらの機能は、NVDによって実行されるソフトウェア/ファームウエアによって実行される。ネットワーク仮想化機能の例は、限定されないが、パケットのカプセル化およびカプセル化解除機能、VCNネットワークを作成するための機能、VCNセキュリティリスト(ファイアウォール)機能などのネットワークポリシーを実装するための機能、VCN内の計算インスタンスとの間のパケットのルーティングおよび転送を容易にするための機能などを含む。特定の実施形態において、パケットを受信すると、NVDは、パケットを処理し、パケットをどのように転送またはルーティングするかを判断するパケット処理パイプラインを実行するように構成されている。このパケット処理パイプラインの一部として、NVDは、VCN内のシス(cis)に関連するVNICの実行、VCNに関連する仮想ルータ(VR)の実行、仮想ネットワーク内の転送またはルーティングを容易にするためのパケットのカプセル化およびカプセル解除、特定のゲートウェイ(例えば、ローカルピアリングゲートウェイ)の実行、セキュリティリストの実装、ネットワークセキュリティグループ、ネットワークアドレス変換(NAT)機能(例えば、ホスト毎にパブリックIPからプライベートIPへの変換)、スロットリング機能、および他の機能を提供する。
【0099】
いくつかの実施形態において、NVDにおけるパケット処理データ経路は、複数のパケットパイプラインを含んでもよい。各々のパケットパイプラインは、一連のパケット変換ステージから構成される。いくつかの実装形態において、パケットを受信すると、当該パケットは、解析され、単一のパイプラインに分類される。次いで、パケットは、破棄されるまたはNVDのインターフェイスを介して送出されるまで、線形方式でステージ毎に処理される。これらのステージは、基本機能のパケット処理ビルディングブロック(例えば、ヘッダの検証、スロットルの実行、新しいレイヤ2ヘッダの挿入、L4ファイアウォールの実行、VCNカプセル化/カプセル解除)を提供し、その結果、既存のステージを組み立てることによって新しいパイプラインを構築することができ、新しいステージを作成して既存のパイプラインに挿入することによって新しい機能を追加することができる。
【0100】
NVDは、VCNの制御プレーンおよびデータプレーンに対応する制御プレーン機能およびデータプレーン機能の両方を実行することができる。VCN制御プレーンの例は、図21、22、23、および24(参照番号2116、2216、2316、および2416参照)に示され、以下に説明される。VCNデータプレーンの例は、図21、22、23、および24(参照番号2118、2218、2318、および2418参照)に示され、以下に説明される。制御プレーン機能は、データをどのように転送するかを制御するためのネットワークの構成(例えば、ルートおよびルートテーブルの設定、VNICの構成)に使用される機能を含む。特定の実施形態において、全てのオーバーレイと基板とのマッピングを集中的に計算し、NVDおよび仮想ネットワークエッジ装置(例えば、DRG、SGW、IGWなどの様々なゲートウェイ)に公開するVCN制御プレーンが提供される。また、同じメカニズムを使用してファイアウォールルールを公開することができる。特定の実施形態において、NVDは、当該NVDに関連するマッピングのみを取得する。データプレーン機能は、制御プレーンを使用して設定された構成に基づいて、パケットの実際のルーティング/転送を行う機能を含む。VCNデータプレーンは、顧客のネットワークパケットが基幹ネットワークを通過する前に、当該ネットワークパケットをカプセル化することによって実装される。カプセル化/カプセル解除機能は、NVDに実装される。特定の実施形態において、NVDは、ホストマシンに出入りする全てのネットワークパケットを傍受し、ネットワーク仮想化機能を実行するように構成されている。
【0101】
上述したように、NVDは、VNICおよびVCN VRを含む様々な仮想化機能を実行する。NVDは、VNICに接続された1つ以上のホストマシンによってホストされている計算インスタンスに関連するVNICを実行することができる。例えば、図2に示すように、NVD210は、NVD210に接続されたホストマシン202によってホストされている計算インスタンス268に関連するVNIC276の機能を実行する。別の例として、NVD212は、ホストマシン206によってホストされているベアメタル計算インスタンス272に関連するVNIC280を実行し、ホストマシン208によってホストされている計算インスタンス274に関連するVNIC284を実行する。ホストマシンは、異なる顧客に属する異なるVCNに属する計算インスタンスをホストすることができる。ホストマシンに接続されたNVDは、計算インスタンスに対応するVNICを実行する(すなわち、VNICに関連する機能を実行する)ことができる。
【0102】
また、NVDは、計算インスタンスのVCNに対応するVCN仮想ルータを実行する。例えば、図2に示された実施形態において、NVD210は、計算インスタンス268が属するVCNに対応するVCN VR277を実行する。NVD212は、ホストマシン206および208にホストされている計算インスタンスが属する1つ以上のVCNに対応する1つ以上のVCN VR283を実行する。特定の実施形態において、VCNに対応するVCN VRは、そのVCNに属する少なくとも1つの計算インスタンスをホストするホストマシンに接続された全てのNVDによって実行される。ホストマシンが異なるVCNに属する計算インスタンスをホストする場合、そのホストマシンに接続されたNVDは、異なるVCNに対応するVCN VRを実行することができる。
【0103】
VNICおよびVCN VRに加えて、NVDは、様々なソフトウェア(例えば、デーモン)を実行し、NVDによって実行される様々なネットワーク仮想化機能を容易にする1つ以上のハードウェア要素を含むことができる。簡略化のために、これらの様々な要素は、図2に示す「パケット処理要素」としてグループ化される。例えば、NVD210は、パケット処理要素286を含み、NVD212は、パケット処理要素288を含む。例えば、NVDのパケット処理要素は、NVDのポートおよびハードワーキングインターフェイスと相互作用することによって、NVDを使用して受信され、通信される全てのパケットを監視し、ネットワーク情報を記憶するように構成されたパケットプロセッサを含んでもよい。ネットワーク情報は、例えば、NVDによって処理される異なるネットワークフローを特定するためのネットワークフロー情報および各フローの情報(例えば、各フローの統計情報)を含んでもよい。特定の実施形態において、ネットワークフロー情報は、VNIC単位で記憶されてもよい。別の例として、パケット処理要素は、NVDによって記憶された情報を1つ以上の異なる複製ターゲットストアに複製するように構成された複製エージェント(replication agent)を含むことができる。さらに別の例として、パケット処理要素は、NVDのロギング機能を実行するように構成されたロギングエージェント(logging agent)を含んでもよい。また、パケット処理要素は、NVDの性能および健全性を監視し、場合によっては、NVDに接続されている他の要素の状態および健全性を監視するためのソフトウェアを含んでもよい。
【0104】
図1は、VCNと、VCN内のサブネットと、サブネット上に展開された計算インスタンスと、計算インスタンスに関連付けられたVNICと、VCNのVRと、VCNのために構成された一組のゲートウェイとを含む例示的な仮想またはオーバーレイネットワークの要素を示す。図1に示されたオーバーレイ要素は、図2に示された物理的要素のうちの1つ以上によって実行またはホストされてもよい。例えば、VCN内の計算インスタンスは、図2に示された1つ以上のホストマシンによって実行またはホストされてもよい。ホストマシンによってホストされている計算インスタンスの場合、その計算インスタンスに関連するVNICは、典型的には、そのホストマシンに接続されたNVDによって実行される(すなわち、VNIC機能は、そのホストマシンに接続されたNVDによって提供される)。VCNのVCN VR機能は、そのVCNの一部である計算インスタンスをホストまたは実行するホストマシンに接続されている全てのNVDによって実行される。VCNに関連するゲートウェイは、1つ以上の異なる種類のNVDによって実行されてもよい。例えば、いくつかのゲートウェイは、スマートNICによって実行されてもよく、他のゲートウェイは、1つ以上のホストマシンまたはNVDの他の実装形態によって実行されてもよい。
【0105】
上述したように、顧客VCN内の計算インスタンスは、様々な異なるエンドポイントと通信することができる。これらのエンドポイントは、ソース計算インスタンスと同じサブネットにあってもよく、異なるサブネット内であるがソース計算インスタンスと同じVCNにあってもよく、またはソース計算インスタンスのVCN外部のエンドポイントを含んでもよい。これらの通信は、計算インスタンスに関連付けられたVNIC、VCN VR、およびVCNに関連付けられたゲートウェイを用いて促進される。
【0106】
VCN内の同じサブネット上の2つの計算インスタンス間の通信は、ソース計算インスタンスおよび宛先計算インスタンスに関連付けられたVNICを用いて促進される。ソース計算インスタンスおよび宛先計算インスタンスは、同じホストマシンによってホストされてもよく、異なるホストマシンによってホストされてもよい。ソース計算インスタンスから発信されたパケットは、ソース計算インスタンスをホストするホストマシンから、そのホストマシンに接続されたNVDに転送されてもよい。NVDにおいて、パケットは、パケット処理パイプラインを用いて処理され、このパイプラインは、ソース計算インスタンスに関連するVNICの実行を含むことができる。パケットの宛先エンドポイントが同じサブネットにあるため、ソース計算インスタンスに関連付けられたVNICの実行により、パケットは、宛先計算インスタンスに関連付けられたVNICを実行するNVDに転送され、NVDは、パケットを処理し、宛先計算インスタンスに転送する。ソース計算インスタンスおよび宛先計算インスタンスに関連するVNICは、(例えば、ソース計算インスタンスと宛先計算インスタンスの両方が同じホストマシンによってホストされている場合)同じNVD上で実行されてもよく、または(例えば、ソース計算インスタンスおよび宛先計算インスタンスが異なるNVDに接続された異なるホストマシンによってホストされている場合)異なるNVD上で実行されてもよい。VNICは、NVDによって記憶されたルーティング/転送テーブルを使用して、パケットのネクストホップを決定することができる。
【0107】
サブネット内の計算インスタンスから同じVCN内の異なるサブネット内のエンドポイントにパケットを通信する場合、ソース計算インスタンスから発信されたパケットは、ソース計算インスタンスをホストするホストマシンから、そのホストマシンに接続されたNVDに通信される。NVDにおいて、パケットは、1つ以上のVNICの実行を含むことができるパケット処理パイプラインおよびVCNに関連するVRを用いて処理される。例えば、NVDは、パケット処理パイプラインの一部として、ソース計算インスタンスに関連するVNICに対応する機能を実行または呼び出す(VNICを実行するとも呼ばれる)。VNICによって実行される機能は、パケット上のVLANタグを調べることを含んでもよい。パケットの宛先がサブネットの外部にあるため、VCN VR機能は、呼び出され、NVDによって実行される。その後、VCN VRは、パケットを、宛先計算インスタンスに関連付けられたVNICを実行するNVDにルーティングする。そして、宛先計算インスタンスに関連付けられたVNICは、パケットを処理し、パケットを宛先計算インスタンスに転送する。ソース計算インスタンスおよび宛先計算インスタンスに関連するVNICは、(例えば、ソース計算インスタンスと宛先計算インスタンスの両方が同じホストマシンによってホストされている場合)同じNVD上で実行されてもよく、(例えば、ソース計算インスタンスおよび宛先計算インスタンスが異なるNVDに接続された異なるホストマシンによってホストされている場合)異なるNVD上で実行されてもよい。
【0108】
パケットの宛先がソース計算インスタンスのVCNの外部にある場合、ソース計算インスタンスから発信されたパケットは、ソース計算インスタンスをホストするホストマシンから、そのホストマシンに接続されたNVDに通信される。NVDは、ソース計算インスタンスに関連するVNICを実行する。パケットの宛先エンドポイントがVCNの外部にあるため、パケットは、そのVCNのVCN VRによって処理される。NVDは、VCN VR機能を呼び出し、その結果、パケットは、VCNに関連付けられた適切なゲートウェイを実行するNVDに転送される場合がある。例えば、宛先が顧客オンプレミスネットワーク内のエンドポイントである場合、パケットは、VCN VRによって、VCNのために構成されたDRGゲートウェイを実行するNVDに転送されてもよい。VCN VRは、ソース計算インスタンスに関連するVNICを実行するNVDと同じNVD上で実行されてもよく、異なるNVDによって実行されてもよい。ゲートウェイは、スマートNIC、ホストマシン、または他のNVD実装であるNVDによって実行されてもよい。次いで、パケットは、ゲートウェイによって処理され、意図した宛先エンドポイントへのパケットの通信を容易にするためのネクストホップに転送される。例えば、図2に示された実施形態において、計算インスタンス268から発信されたパケットは、(NIC232を用いて)リンク220を介してホストマシン202からNVD210に通信されてもよい。NVD210上のVNIC276は、ソース計算インスタンス268に関連するVNICであるため、呼び出される。VNIC276は、パケット内のカプセル化された情報を検査し、意図した宛先エンドポイントへのパケットの通信を容易にする目的でパケットを転送するためのネクストホップを決定し、決定したネクストホップにパケットを転送するように構成されている。
【0109】
VCN上に展開された計算インスタンスは、様々な異なるエンドポイントと通信することができる。これらのエンドポイントは、CSPI200によってホストされているエンドポイントと、CSPI200外部のエンドポイントとを含んでもよい。CSPI200によってホストされているエンドポイントは、(顧客VCN、または顧客に属さないVCNであり得る)同じVCNまたは他のVCN内のインスタンスを含んでもよい。CSPI200によってホストされているエンドポイント間の通信は、物理ネットワーク218を介して実行されてもよい。また、計算インスタンスは、CSPI200によってホストされていないまたはCSPI200の外部にあるエンドポイントと通信することもできる。これらのエンドポイントの例は、顧客オンプレミスネットワークまたはデータセンタ内のエンドポイント、またはインターネットなどのパブリックネットワークを介してアクセス可能なパブリックエンドポイントを含む。CSPI200外部のエンドポイントとの通信は、様々な通信プロトコルを用いて、パブリックネットワーク(例えば、インターネット)(図2に図示せず)またはプライベートネットワーク(図2に図示せず)を介して実行されてもよい。
【0110】
図2に示されたCSPI200のアーキテクチャは、単なる一例であり、限定することを意図していない。代替的な実施形態において、変形、代替、および修正が可能である。例えば、いくつかの実装形態において、CSPI200は、図2に示されたものよりも多いまたは少ないシステムまたは要素を有してもよく、2つ以上のシステムを組み合わせてもよく、または異なるシステム構成または配置を有してもよい。図2に示されたシステム、サブシステム、および他の要素は、それぞれのシステムの1つ以上の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)、ハードウェア、またはそれらの組み合わせで実装されてもよい。ソフトウェアは、非一時的な記憶媒体(例えば、メモリ装置)に記憶されてもよい。
【0111】
図4は、特定の実施形態に従って、マルチテナント機能をサポートするためのI/O仮想化を提供するためのホストマシンとNVDとの間の接続を示す図である。図4に示すように、ホストマシン402は、仮想化環境を提供するハイパーバイザ404を実行する。ホストマシン402は、2つの仮想マシンインスタンス、すなわち、顧客/テナント#1に属するVM1 406と、顧客/テナント#2に属するVM2 408とを実行する。ホストマシン402は、リンク414を介してNVD412に接続されている物理NIC410を含む。計算インスタンスの各々は、NVD412によって実行されるVNICに接続されている。図4の実施形態において、VM1 406は、VNIC-VM1 420に接続され、VM2 408は、VNIC-VM2 422に接続されている。
【0112】
図4に示すように、NIC410は、2つの論理NIC、すなわち、論理NIC A 416および論理NIC B 418を含む。各仮想マシンは、それ自身の論理NICに接続され、それ自身の論理NICと共に動作するように構成される。例えば、VM1 406は、論理NIC A 416に接続され、VM2 408は、論理NIC B 418に接続されている。ホストマシン402が複数のテナントによって共有されている1つの物理NIC410のみからなるにもかかわらず、論理NICにより、各テナントの仮想マシンは、自分自身のホストマシンおよびNICを所有しているとと信じている。
【0113】
特定の実施形態において、各論理NICには、それ自身のVLAN IDが割り当てられる。したがって、テナント#1の論理NIC A 416には特定のVLAN IDが割り当てられ、テナント#2の論理NIC B 418には別のVLAN IDが割り当てられる。VM1 406からパケットが通信されると、ハイパーバイザは、テナント#1に割り当てられたタグをパケットに取り付けた後、リンク414を介してパケットをホストマシン402からNVD412に通信する。同様に、VM2 408からパケットが通信されると、ハイパーバイザは、テナント#2に割り当てられたタグをパケットに取り付けた後、リンク414を介してパケットをホストマシン402からNVD412に通信する。したがって、ホストマシン402からNVD412に通信されたパケット424は、特定のテナントおよび関連するVMを識別する関連タグ426を有する。NVD上でホストマシン402からパケット424を受信した場合、当該パケットに関連するタグ426を用いて、当該パケットがVNIC-VM1 420によって処理されるべきか、VNIC-VM2 422によって処理されるべきかを判断する。そして、パケットは、対応するVNICによって処理される。図4に示された構成は、各テナントの計算インスタンスが、自分自身のホストマシンおよびNICを所有していると信じることを可能にする。図4に示された構成は、マルチテナント機能をサポートするためのI/O仮想化を提供する。
【0114】
図5は、特定の実施形態に従って、物理ネットワーク500を示す概略ブロック図である。図5に示された実施形態は、Closネットワークとして構築される。Closネットワークは、高い二分割帯域幅および最大リソース利用率を維持しながら、接続冗長性を提供するように設計された特定の種類のネットワークトポロジである。Closネットワークは、一種の非ブロッキング、多段または多層スイッチングネットワークであり、段または層の数は、2、3、4、5などであってもよい。図5に示された実施形態は、層1、2および3を含む3層ネットワークである。TORスイッチ504は、Closネットワークの層-0スイッチを表す。1つ以上のNVDは、TORスイッチに接続されている。層-0スイッチは、物理ネットワークのエッジ装置とも呼ばれる。層-0スイッチは、リーフスイッチとも呼ばれる層-1スイッチに接続されている。図5に示された実施形態において、「n」個の層-0 TORスイッチは、「n」個の層-1スイッチに接続され、ポッドを形成する。ポッド内の各層-0スイッチは、ポッド内の全ての層-1スイッチに相互接続されるが、ポッド間のスイッチは、接続されない。特定の実装例において、2つのポッドは、ブロックと呼ばれる。各ブロックは、「n」個の層-2スイッチ(スパインスイッチとも呼ばれる)によってサービスを提供されるまたはそれに接続されている。物理ネットワークトポロジーは、複数のブロックを含んでもよい。同様に、層-2スイッチは、「n」個の層-3スイッチ(スーパースパインスイッチとも呼ばれる)に接続されている。物理ネットワーク500を介したパケットの通信は、典型的には、1つ以上のレイヤ3通信プロトコルを使用して実行される。典型的には、TOR層を除く物理ネットワークの全ての層は、nウェイ冗長であり、したがって高い可用性を実現することができる。ポッドおよびブロックにポリシーを指定して、物理ネットワークのスイッチの相互可視性を制御することによって、物理ネットワークを拡張することができる。
【0115】
Closネットワークの特徴は、ある層-0スイッチから別の層-0スイッチに到達する(または、層-0スイッチに接続されたNVDから層-0スイッチに接続された別のNVDに到達する)最大ホップカウントが一定であることである。例えば、3層のClosネットワークにおいて、パケットが1つのNVDから別のNVDに到達するために最大7つのホップが必要とされる。この場合、ソースNVDおよびターゲットNVDは、Closネットワークのリーフ層に接続されている。同様に、4層のClosネットワークにおいて、パケットが1つのNVDから別のNVDに到達するために最大9つのホップが必要とされる。この場合、ソースNVDおよびターゲットNVDは、Closネットワークのリーフ層に接続されている。したがって、Closネットワークアーキテクチャは、データセンタ内およびデータセンタ間の通信に重要なネットワーク全体の遅延を一定に保つ。Closトポロジーは、水平方向に拡張可能であり、コスト効率に優れている。各階層により多くのスイッチ(例えば、より多くのリーフスイッチおよびスパインスイッチ)を増設すること、および隣接する階層のスイッチ間にリンク数を増やすことによって、ネットワークの帯域幅/スループット容量を容易に増加させることができる。
【0116】
特定の実施形態において、CSPI内の各リソースには、クラウド識別子(CID)と呼ばれる固有識別子が割り当てられる。この識別子は、リソースの情報の一部として含まれる。この識別子を用いて、例えば、コンソールまたはAPIを介してリソースを管理することができる。CIDの例示的なシンタックスは、以下の通りである。
【0117】
ocid1.<RESOURCE TYPE>.<REALM>.[REGION].[FUTURE USE].<UNIQUE ID>である。
式中、
「ocid1」は、CIDのバージョンを示す文字列である。
【0118】
「RESOURCE TYPE」は、リソースの種類(例えば、インスタンス、ボリューム、VCN、サブネット、ユーザ、グループ)を表す。
【0119】
「REALM」は、リソースが存在する領域を表す。例示的な値として、「c1」は、商業領域を表し、「c2」は、政府クラウド領域を表し、または「c3」は、連邦政府クラウド領域を表す。各領域は、独自のドメイン名を持つことができる。
【0120】
「REGION」は、リソースが属する地域を表す。地域がリソースに適用されない場合、この部分は空白であってもよい。
【0121】
「FUTURE USE」は、将来使用のために保留されていることを示す。
「UNIQUE ID」は、固有IDの部分である。このフォーマットは、リソースまたはサービスの種類によって異なる場合がある。
【0122】
S2Cサービスの例
図6は、少なくとも1つの実施形態に従って、プライベートネットワーク間のS2Cサービスの一例を示す。S2Cサービスは、クラウドインフラストラクチャ650のリソースによって提供されてもよい。クラウドインフラストラクチャ650は、サービスプロバイダのために展開されたVCNと、顧客のために展開されたVCNとを含んでもよい。サービスプロバイダは、クラウドインフラストラクチャ650によって展開されたVCN651を含むサービスプロバイダプライベートネットワーク660を運用することができる。必要に応じて、サービスプロバイダプライベートネットワーク660は、オンプレミスネットワーク661を含む。同様に、顧客は、クラウドインフラストラクチャ650によって展開されたVCN652を含む顧客プライベートネットワーク670を運用することができる。必要に応じて、顧客プライベートネットワーク670は、オンプレミスネットワーク671を含む。サービスプロバイダプライベートネットワーク660は、S2Cリソース680を介して、顧客プライベートネットワーク670に接続することができる。VCNおよびオンプレミスネットワークは、FastConnectを介してまたはインターネットなどのパブリックネットワークを介した仮想プライベートネットワーク(VPN)接続を介して接続されてもよい。オンプレミスネットワークに加えてまたはその代わりに、プライベートネットワークは、ピアネットワーク(例えば、他のピアVCN)を含むことができる。
【0123】
図6の例において、サービスプロバイダプライベートネットワーク660に各々類似する複数のサービスプロバイダプライベートネットワークが、存在してもよい。同様に、顧客プライベートネットワーク670に各々類似する複数の顧客プライベートネットワークが、存在してもよい。各サービスプロバイダと顧客の対または各サービスプロバイダプライベートネットワークと顧客プライベートネットワークの対に対して、S2Cリソースは、S2Cリソース680と同様に、クラウドインフラストラクチャ650によって展開される。
【0124】
サービスプロバイダプライベートネットワーク660と顧客プライベートネットワーク670の対を参照すると、S2Cリソース680は、例えば、変換サービス682を含むS2Cサービスを提供する。例えば、DNSサービス、RACサービス、およびレイヤ7(L7)アプリケーションサービスを含む異なる種類の変換サービス682が可能である。一般的に、変換サービスは、データアドレス指定およびアドレス変換をサポートする。したがって、データが、サービスプロバイダプライベートネットワーク660と顧客プライベートネットワーク670のいずれかの内で処理されてもよく、サービスプロバイダプライベートネットワーク660と顧客プライベートネットワーク670の間で流されてもよい。
【0125】
例えば、サービスプロバイダプライベートネットワーク660のサービスリソース662は、顧客プライベートネットワーク670のターゲットリソース672のデータにアクセスするためのアクセス要求664を送信することができる。アクセス要求664のソースIPアドレスおよび宛先IPアドレスは、サービスプロバイダプライベートネットワーク660の環境内部では使用可能であるが、その外部では使用できない。このアクセス要求664は、クラウドインフラストラクチャ650によってサポートされている接続を介して、S2Cリソース680によって受信されてもよい。変換サービス682は、顧客プライベートネットワーク670の環境内部では使用可能であるがその外部では使用できないIPアドレスを用いて、アクセス要求664のソースIPアドレスおよび宛先IPアドレスを更新することによって、変換された要求684を生成することができる。この変換された要求684は、クラウドインフラストラクチャ650によってサポートされている接続を介して、ターゲットリソース672に送信されてもよい。
【0126】
同様に、ターゲットリソース672は、ターゲットリソース672からのデータを含むアクセス応答674を送信することができる。アクセス応答674のソースIPアドレスおよび宛先IPアドレスは、顧客プライベートネットワーク670の環境内部では使用可能であるが、その外部では使用できない。このアクセス応答674は、クラウドインフラストラクチャ650によってサポートされている接続を介して、S2Cリソース680によって受信されてもよい。変換サービス682は、サービスプロバイダプライベートネットワーク660の環境内部では使用可能であるがその外部では使用可能でないIPアドレスを用いて、アクセス応答674のソースIPアドレスおよび宛先IPアドレスを更新することによって、変換された応答686を生成することができる。この変換された応答686は、クラウドインフラストラクチャ650によってサポートされている接続を介して、サービスリソース662に送信されてもよい。
【0127】
一例において、サービスプロバイダプライベートネットワーク660は、一連のサービス、例えば、分析、データ処理、セキュリティサービスなどをサポートする一組のサービスリソースを含んでもよい。VCN651のみの実装形態の場合、一組のサービスリソースは、VCN651上でホストされてもよく、例えば、計算インスタンス(例えば、仮想マシン、ベアメタルマシン)を含んでもよい。オンプレミスネットワーク661も含む実装形態の場合、一組のサービスリソースは、プレミスネットワーク661上で完全にホストされてもよく、VCN651上で完全にホストされてもよく、またはそれらの間に分散されてもよい。
【0128】
顧客は、1つ以上のサービスに加入することができる。サービスに加入する時に、サービスプロバイダプライベートネットワーク660の対応するサービスリソースは、顧客プライベートネットワーク670の1つ以上のターゲットリソースへのS2Cアクセスを必要とし得る。VCN652のみの実装形態の場合、顧客の一組のターゲットリソースは、VCN652上でホストされてもよく、例えば、計算インスタンス(例えば、仮想マシン、ベアメタルマシン)および記憶インスタンス(例えば、データベース)を含んでもよい。オンプレミスネットワーク671も含む実装形態の場合、一組のターゲットリソースは、プレミスネットワーク671上で完全にホストされてもよく、VCN652上で完全にホストされてもよく、またはそれらの間に分散されてもよい。
【0129】
一般的に、VCN651またはVCN652などのVCNは、サブネット、ルートテーブル、およびゲートウェイを含む従来のネットワークのソフトウェア定義仮想バージョンであってもよい。様々な計算インスタンスは、VCN上で実行することができる。例えば、VCNは、エンティティ(例えば、サービスプロバイダまたは顧客)がクラウドインフラストラクチャ650内に構築した仮想プライベートネットワークである。クラウドインフラストラクチャ650は、特定の領域に配置されてもよい。計算インスタンスを起動する前に、少なくとも1つのクラウドインフラストラクチャを構築する必要がある。クラウドインフラストラクチャ650は、必要に応じて、パブリックトラフィックを処理するためのインターネットゲートウェイ、仮想プライベートネットワーク(VPN)接続、または顧客のオンプレミスネットワークを安全に拡張するためのOCI FastConnectを含むように構成されてもよい。
【0130】
VCNは、トラフィックがインターネットを横断しないように、別のVCNにプライベートに接続されてもよい。この場合、2つのVCNのクラスレスドメイン間ルーティング(CIDR)は、重複しない。しかしながら、サービスプロバイダのVCNと顧客のVCNとの間またはサービスプロバイダの複数の顧客のVCNの間のいずれにCIDRが重複する場合、プライベート接続は、少なくともS2Cアクセスのために使用できない可能性がある。例えば、VCN651およびVCN652の各々は、VCN内の他のサブネットと重複しないIPバージョン4(IPv4)またはバージョン6(IPv6)アドレスの連続範囲を有してもよい。この場合、S2Cリソースは、展開されてもよい。
【0131】
図7は、少なくとも1つの実施形態に従って、DNSトラフィックおよびプロキシ無しS2トラフィックをサポートする一組のS2Cリソース730を介して顧客プライベートネットワーク720に接続されたサービスプロバイダプライベートネットワーク710の一例を示す。サービスプロバイダプライベートネットワーク710、顧客プライベートネットワーク720、およびS2Cリソース730は、それぞれ、サービスプロバイダプライベートネットワーク660、顧客プライベートネットワーク670、およびS2Cリソース680の一例である。サービスプロバイダプライベートネットワーク710から発信され、顧客のDNSに関連付けられたDNSクエリは、S2Cリソース730によって処理され、サービスプロバイダプライベートネットワーク710にDNS解決を提供することができる。解決されると、ネットワークアドレス変換(NAT)マッピングが生成され、トラフィックが、NATマッピングに基づいて、一組のS2Cリソース730を介して、サービスプロバイダプライベートネットワーク710と顧客プライベートネットワーク720との間で流れることができる。
【0132】
図示のように、サービスプロバイダプライベートネットワーク710は、サービスリソース712と、サービスプロバイダS2Cインターフェイス714と、サービスプロバイダDNSリゾルバ716とを含む。サービスプロバイダS2Cインターフェイス714は、サービスリソース712およびサービスプロバイダDNSリゾルバ716に接続され、サービスリソース712およびサービスプロバイダDNSリゾルバ716が一組のS2Cリソース730とインターフェイスすることを可能にする。同様に、顧客プライベートネットワーク720は、ターゲットリソース722と、顧客S2Cインターフェイス724と、顧客DNSリゾルバ726とを含む。顧客S2Cインターフェイス724は、ターゲットリソース722および顧客DNSリゾルバ726に接続され、ターゲットリソース722および顧客DNSリゾルバ726が一組のS2Cリソース730とインターフェイスすることを可能にする。
【0133】
計算インスタンスなどのサービスリソース712は、サービスを顧客に提供する。これによって、サービスは、プライベートエンドポイントなどのターゲットリソース722へのアクセスを必要とする。一例において、顧客は、ターゲットリソース722(例えば、www.exampleFQDN1.com)にアクセスするための完全修飾ドメイン名(FQDN)を定義することができる。ターゲットリソース722に最初にアクセスする時に、サービスリソース712は、対応するIPアドレスではなく、FQDNを用いて、トラフィックをターゲットリソース722に送信することができる。したがって、サービスリソース712は、FQDNを含むDNSクエリを開始することができる。サービスプロバイダS2Cインターフェイス714は、DNSクエリを受信し、一組のS2Cリソース730に送信する。一組のS2Cリソース730は、DNSプロキシを含む。DNSプロキシ732は、FQDNと顧客によって予め定義されたFQDNリストとの間の適合を判定する。この適合に基づいて、DNSプロキシ732は、DNSクエリを顧客S2Cインターフェイス724に送信し、顧客S2Cインターフェイス724は、DNSクエリを顧客DNSリゾルバ726に送信する。これに応答して、顧客DNSリゾルバ726は、ターゲットリソース722のIPアドレスを決定することによって、DNSクエリを解決する。このIPアドレスは、FQDNに対応し、顧客プライベートネットワーク720内で使用可能である(例えば、顧客プライベートネットワーク720のIPアドレス範囲内のアドレスとして定義される)。ターゲットリソース722のIPアドレスを含むDNS応答は、顧客S2Cインターフェイス724を介して、DNSプロキシ732に返送される。
【0134】
DNS応答内のターゲットリソース722のIPアドレスが、顧客プライベートネットワーク720の環境のみで使用可能であり、サービスプロバイダプライベートネットワーク710の環境では使用できないため、DNSプロキシは、保留IPアドレスを生成し、ターゲットリソース722のIPアドレスに関連付ける。保留IPアドレスは、顧客プライベートネットワーク720のIPアドレス範囲外およびサービスプロバイダプライベートネットワーク710のIPアドレス範囲外のアドレスとして定義することができる。この関連付けは、保留IPアドレスとターゲットリソース722のIPアドレスとの間のNATマッピング734に記憶されてもよい。このNATマッピング734は、一組のS2Cリソース730によって保持されている。
【0135】
次に、DNSプロキシは、保留IPアドレスを用いて少なくともターゲットリソース722のIPアドレスを置換することによって、DNS応答を更新し、サービスプロバイダS2Cインターフェイスを介して、更新されたDNS応答をサービスリソース712に送信する。サービスリソース712は、このDNS応答を受信し、FQDNが保留IPアドレスに関連付けられていることを決定すると、その後の使用のためにこの関連付けをキャッシュすることができる。
【0136】
サービスリソース712からターゲットリソース722へのトラフィックおよびそれに対する応答は、保留IPアドレスおよびNATマッピング734に依存する。例えば、サービスリソース712は、保留IPアドレスへのデータを送信することができる。データのフローは、DNSプロキシ732を介してプロキシされてもよい。この場合、アドレス変換は、NATマッピング734に従って、DNSプロキシ732によって実行される。追加的にまたは代替的に、データのフローは、DNSプロキシ732を介してプロキシされなくてもよい。この場合、データのフローは、一組のS2Cリソース730のゲートウェイ736を経由してもよい。例えば、ゲートウェイ736は、サービスプロバイダプライベートネットワーク710と顧客プライベートネットワーク720との間に構築されたプライベートゲートウェイ(PAGW)であってもよい。この場合も、ゲートウェイ736は、NATマッピング734に依存してアドレス変換を実行する。両方の場合において、少なくともIP宛先アドレスは、ターゲットリソース722のIPアドレスを用いて保留IPアドレスを置換することによって更新される。
【0137】
ターゲットリソース722からの応答に対して逆方向のフローが実行される。例えば、応答データは、ターゲットリソース722のIPアドレスをソースアドレスとして含む。(フローがプロキシされる場合の)DNSプロキシ732または(フローがプロキシされない場合の)ゲートウェイ736は、ソースアドレスとしての保留IPアドレスを用いて少なくともターゲットリソース722のIPアドレスを置換することによって、応答データを更新し、更新されたデータをサービスリソース712に送信する。
【0138】
別の例において、サービスリソース712は、DNSクエリを生成し、サービスプロバイダS2Cインターフェイス714を介してDNSプロキシ732に送信する。このDNSクエリは、本明細書で上述したものとは異なるFQDN(例えば、www.exampleFQDN2.com)を含む。この例において、DNSプロキシ732は、FQDNと顧客によって定義されたFQDNリストとの間に適合が存在していないと判定する。不適合は、FQDNがサービスプロバイダプライベートネットワーク710のリソースに対応し、したがって、サービスプロバイダDNSリゾルバ716によって解決され得ることを示すと仮定されてもよい。したがって、DNSプロキシ732は、サービスプロバイダS2Cインターフェイス714を介して、DNSクエリをサービスプロバイダDNSリゾルバ716に送信する。解決すると、サービスプロバイダDNSリゾルバ716は、FQDNに対応し、サービスプロバイダプライベートネットワーク710内で使用可能なIPアドレスを決定する(例えば、サービスプロバイダプライベートネットワーク710のIPアドレス範囲内のアドレスとして定義される)。サービスプロバイダDNSリゾルバ716は、サービスプロバイダS2Cインターフェイス714を介してこのサービスプロバイダのIPアドレスをサービスリソース712に送信して、その後サービスリソース712によって使用される。
【0139】
図8は、少なくとも1つの実施形態に従って、RACトラフィックをサポートする一組のS2Cリソース830を介して顧客プライベートネットワーク820に接続されたサービスプロバイダプライベートネットワーク810の一例を示す。サービスプロバイダプライベートネットワーク810、顧客プライベートネットワーク820、およびS2Cリソース830は、それぞれ、サービスプロバイダプライベートネットワーク660、顧客プライベートネットワーク670、およびS2Cリソース180の一例である。RACトラフィックは、サービスプロバイダプライベートネットワーク810のサービスリソース812から発信され、顧客プライベートネットワーク820のデータベースリソース822に送信されてもよい。同様に、RAC応答は、データベースリソース822から発信され、サービスリソース812に送信されてもよい。一組のS2Cリソース830は、RACトラフィックおよびRAC応答の交換を可能にするために、IPアドレスを変換するアドレス変換サービス832を含んでもよい。この場合、NATマッピングを必要としない可能性がある。代わりに、アドレス変換は、アドレス変換サービス832によって得られた、サービスプロバイダプライベートネットワーク810のサービスプロバイダS2Cインターフェイス814のIPアドレスおよび顧客プライベートネットワーク820の顧客S2Cインターフェイス824のIPアドレスに関する知識に依拠することができる。この知識は、サービスプロバイダプライベートネットワーク810と顧客プライベートネットワーク820の対に対して一組のS2Cリソース830を展開するために使用される構成の一部であってもよい。
【0140】
一例において、サービスプロバイダS2Cインターフェイス814のIPアドレスおよび顧客S2Cインターフェイス824のIPアドレスは、一組のS2Cリソースの構成ファイル内で定義される。また、サービスリソース812のIPアドレスおよびデータベースリソース822のIPアドレスは、構成ファイル内で定義されてもよく、または一組のS2Cリソース830を介したトラフィックルーティングに基づいて経時的に学習されてもよい。
【0141】
サービスリソース812は、RACデータをサービスプロバイダS2Cインターフェイス814に送信することができる。このデータは、サービスリソース812のIPアドレスをソースアドレスとして含み、サービスプロバイダS2Cインターフェイス814のIPアドレスを宛先アドレスとして含む。その後、サービスプロバイダS2Cインターフェイス814は、このデータをアドレス変換サービス832に送信する。アドレス変換サービス832は、少なくともソースIPアドレスおよび宛先IPアドレスを、顧客S2Cインターフェイス824のIPアドレスおよびデータベースリソース822のIPアドレスにそれぞれ置換することによって、RACデータを更新する。更新されたRACデータは、顧客S2Cインターフェイス824を介して、データベースリソース822に送信される。
【0142】
データベースリソース822から返される応答に対して逆方向のフローが実行される。例えば、応答データは、データベースリソース822のIPアドレスをソースアドレスとして含み、顧客S2Cインターフェイス824のIPアドレスを宛先アドレスとして含む。この場合、アドレス変換サービス832は、少なくともソースIPアドレスおよび宛先IPアドレスを、サービスプロバイダS2Cインターフェイス814のIPアドレスおよびサービスリソース812のIPアドレスにそれぞれ置換することによって、データを更新する。更新されたデータは、サービスプロバイダS2Cインターフェイス814を介して、サービスリソース812に送信される。
【0143】
図9~11は、サービスプロバイダプライベートネットワーク、顧客プライベートネットワーク、およびクラウドインフラストラクチャのネットワーク構成要素およびそれらの間の接続の例を示す。これらの構成要素は、本明細書で上述した構成要素のうちのいくつかの例示的な実装形態である。
【0144】
図9は、少なくとも1つの実施形態に従って、サービスプロバイダプライベートネットワーク910の構成要素の一例を示す。サービスプロバイダプライベートネットワーク910は、サービスプロバイダプライベートネットワーク660、210、および810の例である。サービスプロバイダプライベートネットワーク910の少なくとも一部、例えばVCNは、クラウドインフラストラクチャ上で実装される。
【0145】
サービスプロバイダプライベートネットワーク910は、一組のリソースを有するようにサービスプロバイダによって構成され、各リソースは、サービスプロバイダプライベートネットワーク910のIPアドレス範囲(例えば、10.0.0.0/16)内のIPアドレスを有する。一組のリソースは、例えば、サービスインスタンス912、サービスインスタンス916、およびDNSリゾルバ918を含む。2つのサービスインスタンス912および916は、顧客が加入することができる異なる種類のサービスを提供することができ、これらのサービスは、S2Cアクセスに依存する。
【0146】
一例において、サービスインスタンス912は、IPアドレス(例えば、10.0.2.2)を有し、DNSクエリおよび特定の通信プロトコル(例えば、ハイパーテキスト転送プロトコルセキュア(HTTPS)などのアプリケーション層プロトコル)をサポートする計算インスタンスである。これに対して、サービスインスタンス916も計算インスタンスであるが、さらに異なるIPアドレス(例えば、10.0.2.3)を有し、RAC環境においてシングルクライアントアクセスネーム(SCAN)プロトコルなどのデータベースアクセスプロトコルをサポートする。また、DNSリゾルバ918は、さらに異なるIPアドレス(例えば、10.0.55.55)を有し、サービスプロバイダプライベートネットワーク910のドメインに関連する(例えば、サービスプロバイダプライベートネットワーク910のIPアドレス範囲内のIPアドレスを有するFQDNに関連する)DNSクエリのDNS解決をサポートする。図示されていないが、サービスインスタンス912、サービスインスタンス916、およびDNSリゾルバ918の各々は、サービスプロバイダプライベートネットワーク910のリソースと通信する1つ以上のVNICを有してもよい。
【0147】
顧客がサービスプロバイダの1つ以上のサービスに加入すると、当該サービスをサポートするために、対応する一組のS2Cリソースが起動される。さらに、S2Cインターフェイス914がサービスプロバイダプライベートネットワーク910(例えば、このネットワークのホスト)に接続される。S2Cインターフェイス914は、多くの異なるIPアドレス(図9は、数を正の整数「n」として示す)を有する。各IPアドレスは、サービスプロバイダプライベートネットワーク910のIPアドレス範囲内にあり、1つのサービスに対応する。例えば、DNS機能を行う場合、S2Cインターフェイス914は、(図9では「IP1」として示される)第1のIPアドレスを有し、第1のIPアドレスを用いてDNSトラフィック901を送受信する。同様に、RAC機能を行う場合、S2Cインターフェイス914は、(図9では「IP2」として示される)第2のIPアドレスをし、第2のIPアドレスを用いてRACトラフィック905を送受信する。
【0148】
次の図にさらに示されているように、クラウドインフラストラクチャは、ネットワークインターフェイス機能をサービスとして提供する専用の仮想化装置群を含むことができる。このような実装形態において、S2Cインターフェイス914は、仮想化装置群上でホストされているVNICであってもよい。S2Cインターフェイス914のIPアドレス(例えば、「IP1」、「IP2」、...、「IPn」)は、サービスプロバイダの入力に基づいて、構成ファイル内で定義されてもよい。S2Cインターフェイス914は、サービスプロバイダプライベートネットワーク910のIPアドレス範囲に属し且つ異なる種類のサービスに対応する複数のIPアドレスをサポートする能力を有するため、フローティングサービス(FS)VNICと称されてもよい。
【0149】
DNSトラフィック901の例において、サービスインスタンス912は、任意のDNSクエリをS2Cインターフェイスの第1のIPアドレス(例えば、「IP1」)に送信し、このIPアドレスからDNS解決を受信するように構成されている。同様に、DNSリゾルバ918を介して解決され得るDNSクエリは、第1のIPアドレスを用いて送信される。これに対して、RACトラフィック905をサポートするために、サービスインスタンス916は、任意のRACトラフィックをS2Cインターフェイスの第2のIPアドレス(例えば、「IP2」)に送信し、S2Cインターフェイスの第2のIPアドレス(例えば、「IP2」)からRAC応答を受信するように構成されている。
【0150】
図10は、少なくとも1つの実施形態に従って、顧客プライベートネットワーク1010の構成要素の一例を示す。顧客プライベートネットワーク1010は、顧客プライベートネットワーク670、720、および820の一例である。顧客プライベートネットワーク1010の少なくとも一部、例えばVCNは、クラウドインフラストラクチャ上で実装される。
【0151】
顧客プライベートネットワーク1010は、一組のリソースを有するように顧客によって構成され、各リソースは、顧客プライベートネットワーク1010のIPアドレス範囲(例えば、10.0.0.0/16)内のIPアドレスを有する。再び図9を参照して、顧客プライベートネットワーク1010のIPアドレス範囲は、サービスプロバイダプライベートネットワーク910のIPアドレス範囲と重複してもよい。一組のリソースは、例えば、顧客エンドポイント1014、DNSリゾルバ1016、およびデータベースサービス1018を含む。顧客は、サービスインスタンス912および916によってサポートされているサービスなどのサービスプロバイダのサービスに加入することができるため、顧客エンドポイント1014およびデータベースサービス1018へのS2Cアクセスを必要とする。
【0152】
顧客エンドポイント1014は、サービスプロバイダのサービスに関連付けられ、顧客プライベートネットワーク1010のIPアドレス範囲内のIPアドレス(10.0.10.2)を有するターゲットリソース、例えば、顧客VCNまたは顧客オンプレミスネットワークを含む計算インスタンスを表す。一例において、顧客エンドポイント1014は、プライベートIPアドレスを有し、クラウドインフラストラクチャ設備を介してサービスプロバイダのサービスのみにアクセスすることを容易にするように構成されている。この例において、プライベートエンドポイント(例えば、プライベートIPアドレスを有するVNIC)は、ターゲットリソースをサービスに公開する。データベースサービス1018は、顧客プライベートネットワーク1010のIPアドレス範囲内のIPアドレス(10.0.10.10)を有し、顧客のデータベース内の作業負荷を管理するためのサービスを提供するリソースを表す。データベースは、顧客のVCN内および/またはオンプレミスネットワークにあってもよい。また、DNSリゾルバ1016は、さらに異なるIPアドレス(例えば、10.33.33)を有し、顧客プライベートネットワーク1010のドメインに関連する(例えば、顧客プライベートネットワーク1010のIPアドレス範囲内のIPアドレスを有するFQDNに関連する)DNSクエリのDNS解決をサポートする。図示されていないが、顧客エンドポイント1014、DNSリゾルバ1016、およびデータベースサービス1018の各々は、顧客プライベートネットワーク1010のリソースと通信する1つ以上のVNICを有してもよい。
【0153】
顧客が顧客の1つ以上のサービスに加入すると、当該サービスをサポートするために、対応する一組のS2Cリソースが起動される。さらに、S2Cインターフェイス1012は、顧客プライベートネットワーク1010(例えば、このネットワークのホスト)に接続される。S2Cインターフェイス1012は、多くの異なるIPアドレス(図10は、数字を正の整数「n」として示す)を有する。各IPアドレスは、顧客プライベートネットワーク1010のIPアドレス範囲内にあり、1つのサービスに対応する。例えば、プロキシされていないS2Cトラフィックの場合、S2Cインターフェイス1012の第1のIPアドレス(IP1)が使用可能である。DNSトラフィックおよびRACトラフィックの場合、S2Cインターフェイス1012の第2のIPアドレス(IP2)が使用可能である。顧客対サービスプロバイダ(C2S)トラフィックの場合、S2Cインターフェイス1012のさらに別のIPアドレス(例えば、IPn)が使用可能である。
【0154】
次の図にさらに示されているように、クラウドインフラストラクチャは、ネットワークインターフェイス機能をサービスとして提供する専用の仮想化装置群を含むことができる。このような実装形態において、S2Cインターフェイス1012は、仮想化装置群上でホストされているVNICであってもよい。S2Cインターフェイス1012のIPアドレス(例えば、「IP1」、「IP2」、...、「IPn」)は、顧客の入力に基づいて、構成ファイル内で定義されてもよい。顧客プライベートネットワーク1010のIPアドレス範囲に属し且つ異なる種類のサービスに対応する複数のIPアドレスをサポートする能力を有するため、S2Cインターフェイス1012は、FS VNICと称されてもよい。
【0155】
図11は、少なくとも1つの実施形態に従って、S2Cリソースを実装するクラウドインフラストラクチャ1100の構成要素の一例を示す。クラウドインフラストラクチャ1100は、図1のクラウドインフラストラクチャ150の一例である。図示のように、構成要素は、ゲートウェイ1110と、仮想化装置群1120と、DNSリソース1130と、NATマッピングデータストア1140と、RACリソース1150とを含む。一般的に、これらの構成要素は、サービスプロバイダプライベートネットワークから顧客プライベートネットワークへのS2Cアクセスを可能にする。仮想化装置群1120は、クラウドインフラストラクチャ1100の物理ネットワークに配置されているが、ゲートウェイ1110、DNSリソース1130、RACリソース1150、およびNATマッピングデータストア1140は、物理ネットワーク上の仮想ネットワーク(例えば、オーバーレイネットワーク)に配置されてもよい。
【0156】
一例において、ゲートウェイ1110は、サービスプロバイダプライベートネットワークと顧客プライベートネットワークとの間のトラフィックを可能にする。ゲートウェイ1110は、顧客のVCNがデータをパブリックインターネットに公開することなく、サービスプロバイダのVCNを介して提供された特定のサービスにプライベートにアクセスすることを可能にするサービスゲートウェイとして構成されてもよい。この場合、ゲートウェイ1110は、プライベートゲートウェイと呼ばれることがある。上述したように、S2Cアクセスは、保留IPアドレス(例えば、クラスE IPアドレス)に依存してもよい。ゲートウェイ1110は、サービスプロバイダプライベートネットワークから顧客プライベートネットワークへのデータに対して、保留IPアドレスを顧客プライベートネットワークのIPアドレスにマッピングするNATマッピング1112(例えば、宛先NAT-DNAT)を記憶することができる。逆方向のデータの場合、NATマッピング1112は、顧客のS2CインターフェイスのIPアドレス(例えば、図10に記載されたFS VNICの「IP1」)をサービスプロバイダコンピュータネットワークのサービスリソースにマッピングする。
【0157】
仮想化装置群1120は、仮想ネットワークインターフェイスを提供する一群の専用の仮想化装置を含む。VNICは、サブネット内に常駐し、計算インスタンスに接続されてもよい。図11には示されていないが、仮想化装置群1120は、サービスプロバイダプライベートネットワーク(例えば、サービスプロバイダS2Cインターフェイス)に接続されているFS VNICと、顧客プライベートネットワーク(例えば、顧客S2Cインターフェイス)に接続されているFS VNICとを提供する。さらに、仮想化装置群1120は、DNSリソース1130およびRACリソース1150などのS2Cリソースに接続されているVNICを提供する。これらのVNICは、セキュリティリスト処理、ルートルール処理、またはピアマッピングをサポートしない軽量バージョンであり、マイクロVNIC(μVNIC)と呼ばれてもよい。
【0158】
DNSリソース1130は、DNS調停(例えば、照会されたFQDNが顧客のFQDNまたはサービスプロバイダのFQDNであるかという判断)、DNS解決(例えば、調停に応じて、DNSクエリを顧客のDNSリゾルバまたはサービスプロバイダのDNSリゾルバに送信すること)、およびIPアドレスのNATマッピングを含むDNS機能をサポートするS2Cリソースを表す。一例において、DNSリソース1130は、顧客がサービスプロバイダのサービスに加入するときに展開され、加入は、サービスプロバイダプライベートネットワークおよび顧客プライベートネットワークからのS2C DNSトラフィックを含む。DNSリソース1130は、サービスプロバイダ用(SPF)S2Cインターフェイス1132と、顧客用(CF)S2Cインターフェイス1134と、DNSプロキシ1136とを含む。SPF S2Cインターフェイス1132およびCF S2Cインターフェイス1134の各々は、仮想化装置群1120によって提供されるμVNICであってもよい。SPF S2Cインターフェイス1132は、サービスプロバイダのFS VNICと通信するように構成されている。これに対して、CF S2Cインターフェイス1134は、顧客のFS VNICと通信するように構成されている。DNSプロキシ1136は、SPF S2Cインターフェイス1132を介してDNSクエリを受信し、調停を実行し、必要に応じて、CF S2Cインターフェイスを介してDNSクエリを顧客のDNSリゾルバに、またはSPF S2Cインターフェイス1132を介してサービスプロバイダのDNSリゾルバに送信する。また、CF S2Cインターフェイス1134を介して顧客のDNSリゾルバからDNS応答を受信すると、DNSプロキシは、DNS応答からの顧客のIPアドレスを保留IPアドレスにマッピングし、このマッピングをNATマッピングデータストア1140に記憶し、保留IPアドレスを含むようにクエリ応答を修正し、SPF S2Cインターフェイス1132を介して、修正応答をサービスプロバイダプライベートネットワークに送信する。
【0159】
NATマッピングデータストア1140は、地域ベースで、保留IPアドレスと顧客IPアドレスとの間の異なるマッピング(例えば、DNATマッピング)を保持することができる。ゲートウェイ1110は、このようなマッピングをNATマッピング1112のDNATマッピングの一部として検索および記憶することができる。
【0160】
RACリソース1150は、アドレス変換サービスを含むRAC機能をサポートするS2Cリソースを表す。一例において、RACリソース1150は、顧客がサービスプロバイダのサービスに加入するときに展開され、加入は、サービスプロバイダプライベートネットワークおよび顧客プライベートネットワークからのS2C RACトラフィックを含む。RACリソース1150は、SPF S2Cインターフェイス1152と、CF S2Cインターフェイス1154と、RACプロキシ1156とを含む。SPF S2Cインターフェイス1152およびCF S2Cインターフェイス1154の各々は、仮想化装置群1120によって提供されるμVNICであってもよい。SPF S2Cインターフェイス1152は、サービスプロバイダのFS VNICと通信するように構成されている。これに対して、CF S2Cインターフェイス1154は、顧客のFS VNICと通信するように構成されている。RACプロキシ1156は、サービスプロバイダプライベートネットワークからRACトラフィックを受信し、顧客プライベートネットワークのIPアドレスを使用するようにこのトラフィックを再アドレス指定し、CF S2C1154を介して更新されたRACトラフィックを送信する。逆方向のフローの場合、RACプロキシ1156は、顧客プライベートネットワークからRACリターンを受信し、サービスプライベートネットワークのIPアドレスを使用するようにこのリターンを再アドレス指定し、SPF S2C1152を介して更新されたRACリターンを送信する。
【0161】
一例において、高可用性を達成するために、各サービスプロバイダと顧客の対に対して、複数の冗長S2Cリソース(例えば、3組のDNSリソース1130)が起動される。S2Cリソースに送信されるパケットを受信すると、仮想化装置群1120は、パケットが送信される複数のS2Cリソースのうちの1つを選択することができる。異なる種類の選択が可能である。例えば、S2Cリソースは、ランダムに選択される。別の例において、負荷分散は、S2Cリソースごとに処理されるパケットの数を追跡することによって考慮される。さらに別の例において、選択は、パケット自体に依存することができる。例えば、パケットは、プロトコル情報、ソースIPアドレス、ソースポート、宛先IPアドレス、および宛先ポートを含む。この5つのタプルは、パケットの署名を表す。署名は、ハッシュ化することができる。ハッシュは、各々が1つのS2Cリソースに対応する複数のハッシュ範囲と比較されてもよい。ハッシュがS2Cリソースのハッシュ範囲に適合すると、そのS2Cリソースが選択され、パケットがそのS2Cリソースに送信される。
【0162】
クラウドインフラストラクチャ150の様々な構成要素を通るデータのフローは、図12~14においてさらに説明される。DNSクエリ、プロキシ無しトラフィック、およびRACトラフィックに関する例は、例示の目的のために提供される。説明を明確にするために、図9~6で説明した構成要素も参照される。
【0163】
図12は、少なくとも1つの実施形態に従って、DNSトラフィックの一例を示す。サービスインスタンス912は、顧客のDNSに属する特定のFQDNに対して、DNSクエリ1210を開始する。したがって、DNS要求1212は、サービスインスタンス912からサービスプロバイダのS2Cインターフェイス914に送信される。一例において、DNS要求1212は、ヘッダとペイロードを含むパケットである。ヘッダのソースアドレスは、サービスインスタンスのIPアドレス(例えば、10.0.2.2)である。ヘッダの宛先アドレスは、S2Cインターフェイス914のIPアドレス(例えば、10.0.3.11として示された「IP1」)である。このIPアドレスは、DNSクエリに固有である。ペイロードは、FQDNを含む。
【0164】
次に、DNS要求121は、サービスプロバイダプライベートネットワーク910からDNSリソース1130に送信される。論理レベルでは、S2Cインターフェイス914は、DNS要求1212をSPF S2Cインターフェイス1132に送信する。物理レベルでは、DNS要求1212は、仮想化装置群1120を介してルーティングされる。
【0165】
DNSプロキシ1136は、DNS要求121を受信し、FQDNと顧客によって定義されたFQDNリストとの間の適合を判定する。この判定は、文字列サフィックスの適合を含むことができる。その後、DNSプロキシ1136は、ヘッダ情報を変更することによって、DNSリクエスト121を更新する。例えば、ソースアドレスは、顧客のS2Cインターフェイス1012のIPアドレス(例えば、10.0.2.22として示された「IP2」)に変更され、このIPアドレスは、DNSクエリを受信するように構成されている。同様に、宛先アドレスは、顧客のDNSリゾルバ1016のIPアドレス(例えば、10.33.33)に変更される。ペイロードは、同じままであり、FQDNを含む。結果として得られたDNS要求1222は、顧客プライベートネットワーク1010に送信される。論理レベルでは、CF S2Cインターフェイス1134は、DNS要求1222を顧客のS2Cインターフェイス1012に送信する。物理レベルでは、DNS要求1222は、仮想化装置群1120を介してルーティングされる。
【0166】
顧客のS2Cインターフェイス1012は、DNS要求1222を受信し、そのヘッダに基づいて顧客のDNSリゾルバ1016に送信する。その後、顧客のDNSリゾルバ1016は、FQDNを顧客IPアドレス(例えば、顧客エンドポイント1014に対応する10.0.10.2)に解決し、DNS応答1232を返送する。一例において、DNS応答1232は、ヘッダとペイロードを含むパケットである。ヘッダのソースアドレスは、DNSリゾルバのIPアドレス(例えば、10.33.33)である。ヘッダの宛先アドレスは、S2Cインターフェイス1012のIPアドレス(例えば、10.0.2.22として示された「IP2」)であり、このIPアドレスは、DNSクエリに固有である。ペイロードは、顧客IPアドレス(例えば、10.0.10.2)を含む。
【0167】
顧客のS2Cインターフェイス1012は、DNS応答1232を受信し、CF S2Cインターフェイス1134を介してDNS応答1232をDNSプロキシ1136に送信する。DNSプロキシ1136は、ペイロードからのカスタムIPアドレスを保留IPアドレス(254.0.2.35)にマッピングし、得られたNATマッピング1224をNATマッピングデータストア1140に記憶する。また、DNSプロキシ1136は、ヘッダ情報を変更することによって、DNSレスポンス1232を更新する。例えば、ソースアドレスは、サービスのS2Cインターフェイス914のIPアドレス(例えば、10.0.3.11として示された「IP1」)に変更され、このIPアドレスは、DNSクエリを受信するように構成されている。同様に、宛先アドレスは、サービスインスタンス912のIPアドレス(例えば、10.0.2.2)に変更される。ペイロードは、保留IPアドレス(例えば、254.0.2.35)を含む。結果として得られたDNS応答1226は、SPF S2Cインターフェイス1132を介して、サービスプロバイダのS2Cインターフェイス914に送信される。サービスプロバイダのS2Cインターフェイス914は、そのヘッダ情報に基づいてDNS応答1226をサービスインスタンス912に送信する。
【0168】
図13は、少なくとも1つの実施形態に従って、プロキシ無しトラフィックの一例を示す。この場合、サービスインスタンス912は、既にDNSクエリを実行しており、顧客のFQDNを保留IPアドレス(例えば、254.0.2.35)に解決している。サービスインスタンス912は、S2Cトラフィック1312をゲートウェイに送信する。一例において、S2Cトラフィック1312は、パケットを含む。パケットのヘッダは、サービスインスタンスのIPアドレス(10.0.2.2)をソースアドレスとして含み、保留IPアドレスを宛先アドレスとして含む。
【0169】
次に、ゲートウェイ1110は、NATマッピング1112をルックアップし、DNATマッピングから、保留IPアドレスが顧客IPアドレス(例えば、10.0.10.2)にマッピングされていることと、SNATマッピングから、サービスインスタンスIPアドレスがプロキシ無しトラフィック用の顧客のS2CインターフェイスのIPアドレス(例えば、10.0.2.21として示された「IP1」)にマッピングされていることとを決定する。ゲートウェイ1110は、ヘッダ情報を変更することによって、S2Cトラフィック1312を更新する。例えば、ソースアドレスは、顧客のS2CインターフェイスのIPアドレス(例えば、10.0.2.21)に変更される。同様に、宛先アドレスは、顧客IPアドレス(例えば、10.0.10.2)に変更される。結果として得られたS2Cトラフィック1322は、顧客のS2Cインターフェイス1012に送信される。物理レベルでは、S2Cトラフィック1322は、仮想化装置群1120を介してルーティングされる。
【0170】
顧客のS2Cインターフェイス1012は、S2Cトラフィック1322を受信し、そのヘッダ情報に基づいて顧客エンドポイント1014に送信する。これに応答して、顧客エンドポイント1014は、S2Cリターン1332を生成して送信する。一例において、S2Cリターンはパケットを含む。当該パケットのヘッダは、顧客エンドポイントのIPアドレス(例えば、10.0.10.2)をソースアドレスとして含み、S2C顧客のS2Cインターフェイス1012のIPアドレス(例えば、10.0.2.21)を含む。
【0171】
その後、顧客のS2Cインターフェイス1012は、S2C応答1332をゲートウェイ1110に送信する。ゲートウェイは、NATマッピング1112に基づいて、S2Cリターンを更新する。例えば、ソースアドレスは、保留IPアドレス(例えば、254.0.2.35)に変更され、宛先アドレスは、サービスインスタンス912のIPアドレス(例えば、10.0.2.2)に変更される。結果として得られたS2Cリターン1324は、サービスインスタンス912に送信される。
【0172】
図14は、少なくとも1つの実施形態に従って、DNSトラフィックの別の一例を示す。この場合、DNSクエリは、顧客ではなくサービスプロバイダのドメイン名に属するFQDNに対するものである。サービスインスタンス912は、FQDNに対するDNSクエリ1410を開始する。したがって、DNS要求1412は、サービスインスタンス912からサービスプロバイダのS2Cインターフェイス914に送信される。一例において、DNS要求1412は、ヘッダとペイロードを含むパケットである。ヘッダのソースアドレスは、サービスインスタンスのIPアドレス(例えば、10.0.2.2)である。ヘッダの宛先アドレスは、S2Cインターフェイス914のIPアドレス(例えば、10.0.3.11として示された「IP1」)であり、このIPアドレスは、DNSクエリに固有である。ペイロードは、FQDNを含む。
【0173】
次に、DNS要求1412は、サービスプロバイダプライベートネットワーク910からDNSリソース1130に送信される。論理レベルでは、S2Cインターフェイス914は、DNS要求1412をSPF S2Cインターフェイス1132に送信する。物理レベルでは、DNS要求1412は、仮想化装置群1120を介してルーティングされる。
【0174】
DNSプロキシ1136は、DNS要求1412を受信し、FQDNと顧客によって定義されたFQDNリストとの間に適合が存在していないと判定する。この判定は、文字列サフィックスの適合を含むことができる。したがって、DNSプロキシ1136は、FQDNがサービスプロバイダのDNSに属するという決定をデフォルト値にする。DNSプロキシ1136は、ソースアドレスをS2Cインターフェイス914のIPアドレス(例えば、10.0.3.11)に変更し、宛先アドレスをサービスプロバイダのDNSリゾルバ918(例えば、10.0.55.55)に変更することによって、DNS要求1412を再アドレス指定する。結果として得られたクエリ要求1422は、S2Cインターフェイス914に送り返され、S2Cインターフェイス914は、クエリ要求1422をDNSリゾルバ918に送信する。DNSリゾルバ918は、DNS解決を実行し、FQDNに対応するサービスプロバイダIPアドレスを決定すると、DNS応答をS2Cインターフェイス914に送信する。DNS応答1414は、ヘッダとペイロードを有するパケットであってもよい。ヘッダのソースアドレスは、DNSリゾルバ918のIPアドレス(例えば、10.0.55.55)である。ヘッダの宛先アドレスは、S2Cインターフェイス914のIPアドレス(例えば、10.0.3.11)である。ペイロードは、サービスプロバイダIPアドレスを含む。次に、S2Cインターフェイス914は、ソースアドレスをS2Cインターフェイス914のIPアドレス(例えば、10.0.3.11)に変更し、宛先アドレスをサービスインスタンス912(例えば、10.0.2.2)に変更することによって、DNS応答1414を再アドレス指定する。結果として得られたクエリ応答1416は、サービスインスタンス912に送信される。
【0175】
図15は、少なくとも1つの実施形態に従って、RACトラフィックの一例を示す。図示のように、サービスインスタンス916は、RACトラフィック1512を生成し送信する。RACトラフィック1512は、ヘッダとペイロードを有するパケットを含むことができる。ヘッダのソースアドレスは、サービスインスタンス916のIPアドレス(例えば、10.0.2.3)である。ヘッダの宛先アドレスは、S2Cインターフェイス914のIPアドレス(例えば、10.0.3.12として示された「IP2」)であり、このIPアドレスは、RACトラフィック用に構成されている。ペイロードは、データベースクエリを含む。
【0176】
次に、RACトラフィック1512は、サービスプロバイダプライベートネットワーク910からRACリソース1150に送信される。論理レベルでは、S2Cインターフェイス914は、RACトラフィック1512をSPF S2Cインターフェイス1152に送信する。物理レベルでは、RACトラフィック1512は、仮想化装置群1120を介してルーティングされる。
【0177】
RACプロキシ1156は、RACトラフィック1512を受信し、顧客プライベートネットワークに転送するためにRACトラフィック1512を再アドレス指定する。例えば、ソースIPアドレスは、顧客のS2Cインターフェイス1012のIPアドレス(例えば、10.0.2.22として示された「IP2」)に変更され、このIPアドレスは、RACトラフィック用に構成されている。宛先IPアドレスは、データベースサービス1018のIPアドレス(例えば、10.0.10.10)に変更される。ペイロードは、変更されない。結果として得られたS2Cトラフィック1522は、CF S2Cインターフェイス1154を介して顧客のS2Cインターフェイス1012に送信される。
【0178】
顧客のS2Cインターフェイス1012は、S2Cトラフィック1522を受信し、そのヘッダに基づいてS2Cトラフィック1522をデータベースサービス1018に送信する。次に、データベースサービス1018は、ペイロードに基づいてRACリターン1532を生成して送信する。RACリターン1532は、ヘッダとペイロードを有するパケットを含んでもよい。ヘッダのソースアドレスは、データベースサービスのIPアドレス(例えば、10.0.10.10)である。ヘッダの宛先アドレスは、顧客のS2Cインターフェイス1012のIPアドレス(例えば、10.0.2.22)である。ペイロードは、データベースクエリの結果である。次に、顧客のS2Cインターフェイス1012は、CF S2Cインターフェイス1154を介して、RACリターン1532をRACプロキシ1156に送信する。
【0179】
RACプロキシ1156は、RACリターン1532を受信し、サービスプロバイダプライベートネットワークに転送するためにRACリターン1532を再アドレス指定する。例えば、ソースIPアドレスは、サービスプロバイダのS2Cインターフェイス914のIPアドレス(例えば、10.0.3.12として示された「IP2」)に変更され、このIPアドレスは、RACトラフィック用に構成されている。宛先IPアドレスは、サービスインスタンスのIPアドレス(例えば、10.0.2.3)に変更される。ペイロードは、変更されない。結果として得られたRACリターン1524は、SPF S2Cインターフェイス1152を介して、サービスプロバイダのS2Cインターフェイス914に送信される。サービスプロバイダのS2Cインターフェイス914は、そのヘッダに基づいてRACリターン1524をサービスインスタンス916に送信する。
【0180】
図16~21は、S2Cアクセスを提供するためのフローの一例を示す。フローの動作を実行するための命令の一部または全ては、ハードウェア回路として実装されてもよく、および/または、例えばクラウドインフラストラクチャを含むコンピュータシステムの非一時的なコンピュータ可読媒体上でコンピュータ可読命令として記憶されてもよい。命令は、実装されると、コンピュータシステムのプロセッサによって実行可能な回路またはコードを含むモジュールを表す。このような命令を用いて、本明細書に記載された特定の動作を実行するようにコンピュータシステムを構成する。関連するプロセッサと組み合わせた各回路またはコードは、それぞれの動作を実行するための手段を表す。動作は、特定の順序で示されているが、理解すべきことは、特定の順序が必要ではなく、1つ以上の動作を省略し、スキップし、並列に実行してもよく、および/または動作の順序を変更してもよいことである。
【0181】
図16は、少なくとも1つの実施形態に従って、S2Cサービスを提供するためのフローの一例を示す。このフローは、動作1602から開始することができる。動作1602において、サービスプロバイダデータを受信し、サービスプロバイダのサービスに関連付ける。例えば、サービスプロバイダは、VCNを含むサービスプロバイダプライベートネットワークを運用することができる。このVCNは、クラウドインフラストラクチャのオーバーレイである。サービスプロバイダプライベートネットワークは、異なる種類のサービスをサポートすることができる。クラウドインフラストラクチャの制御プレーンは、サービスプロバイダの装置から入力を受信することができる。この入力は、サービスを構成するための様々なデータ、例えば、サービスを特定するためのデータ、およびサービスを提供するようにネットワーク構成を設定するためのデータ、例えば、使用されるサブネットおよびIPアドレスを含むことができる。動作1604において、顧客データを受信し、サーバに関連付ける。例えば、顧客は、VCNを含む顧客プライベートネットワークを運用することができる。このVCNは、クラウドインフラストラクチャのオーバーレイである。クラウドインフラストラクチャの制御プレーンは、ユーザの装置から入力を受信することができる。この入力は、顧客のサービスを設定するための様々なデータ、例えば、サービスを特定するためのデータ、およびサービスがアクセスできるプライベートエンドポイントを設定するためのデータ、例えば、使用されるサブネット、IPアドレスおよびFQDNを含むことができる。動作1606において、S2Cリソースを展開することができる。例えば、S2Cリソースは、サービスとプロバイダの対のために特別に展開され、顧客が要求するサービスをサポートする。この展開は、冗長DNSリソースおよび冗長RACリソースなどのS2Cサービスを提供する冗長ホストを起動することを含むことができる。S2Cインターフェイスも展開されてもよい。動作1602において、ターゲットリソースへのサービスリソースのS2Cアクセスを管理する。例えば、S2Cリソースは、要求されたサービスに基づいて、S2Cアクセスを管理する。DNSクエリに対して、DNSリソースは、DNSプロキシおよびNATマッピング機能を提供することができる。RACクエリに対して、RACリソースは、アドレス変換を提供することができる。プロキシ無しトラフィックに対して、ゲートウェイは、プロキシ無しトラフィックをルーティングできるように、DNSリソースによって生成されたNATマッピングを検索することができる。
【0182】
図17は、少なくとも1つの実施形態に従って、サービスプロバイダプライベートネットワークがDNSトラフィック、プロキシ無しトラフィック、およびRACトラフィックをサポートするためのフローの一例を示す。例示的なフローは、サービスプロバイダプライベートネットワークのサービスリソースによって実行されてもよい。このフローは、動作1702から開始することができる。動作1702において、サービスインスタンスは、サービスインスタンスによって提供されるサービスを受信する顧客エンドポイントのFQDNを決定する。動作1704において、サービスインスタンスは、第1の所定のIP宛先アドレスを有するDNSクエリを送信する。例えば、この宛先アドレスは、サービスプロバイダのS2CインターフェイスのIPアドレス(例えば、第1の所定のIPアドレス)に設定される。このIPアドレスは、DNSクエリ用に設定される。動作1706において、サービスインスタンスは、DNSクエリ応答を受信する。このDNSクエリ応答は、DNS解決を示すペイロードを含むパケットであってもよい。このペイロードは、例えば、S2C DNSリソースによって顧客エンドポイントの顧客IPアドレスにマッピングされた保留IPアドレスを含むことができる。動作1708において、サービスインスタンスは、トラフィックを顧客エンドポイントに送信する。このトラフィックは、保留IPアドレスを宛先アドレスとして使用し、サービスインスタンスのIPアドレスをソースアドレスとして使用するパケットを含むことができる。パケットは、ゲートウェイに送信されてもよい。動作1710において、サービスインスタンスは、トラフィックリターンを受信する。このトラフィックリターンは、顧客エンドポイントから送信され、ゲートウェイから受信され、パケットを含むことができる。このパケットは、保留IPアドレスをソースアドレスとして使用し、サービスインスタンスのIPアドレスを宛先アドレス(例えば、第1の所定のIPアドレス)として使用する。動作1712において、同じまたは異なるサービスインスタンスは、RACトラフィックを顧客のデータベースサービスに送信する。このRACトラフィックは、パケットを含むことができる。このパケットのソースアドレスは、サービスインスタンスのIPアドレスである。このパケットの宛先アドレスは、サービスプロバイダのS2Cインターフェイスの第2の所定のIPアドレスである。このIPアドレスは、RACトラフィック用に設定される。動作1714において、サービスは、RACリターンを受信する。このRACリターンは、顧客のデータベースサービスから発信され、S2Cインターフェイスから受信され、パケットを含むことができる。パケットは、S2Cインターフェイスの第2の所定のIPアドレスをソースアドレスとして使用し、サービスインスタンスのIPアドレスを宛先アドレスとして使用する。
【0183】
図18は、少なくとも1つの実施形態に従って、顧客プライベートネットワークがDNSトラフィック、プロキシ無しトラフィック、およびRACトラフィックをサポートするためのフローの一例を示す。動作1802において、顧客プライベートネットワークは、第1の所定のIPソースアドレスを有するDNSクエリを受信する。例えば、DNSクエリは、ヘッダとペイロードを有するパケットを含む。ペイロードは、FQDNを含む。ヘッダのソースアドレスは、顧客のS2CインターフェイスのIPアドレス(例えば、第1の所定のIPアドレス)であり、このIPアドレスは、DNSクエリ用に構成されている。ヘッダの宛先アドレスは、顧客のDNSリゾルバのIPアドレスである。DNSクエリは、S2C DNSリソースから受信されてもよい。S2Cインターフェイスは、解決のためにDNSクエリをDNSリゾルバに送信する。動作1804において、顧客プライベートネットワークは、DNS応答を送信する。このDNS応答は、パケットを含むことができる。このパケットのペイロードは、FQDNに関連付けられた顧客IPアドレスを含む。このパケットのヘッダのソースアドレスは、DNSリゾルバのIPアドレスであり、このパケットのヘッダの宛先アドレスは、顧客のS2CインターフェイスのIPアドレス(例えば、第1の所定のIPアドレス)である。S2Cインターフェイスは、DNS応答をS2C DNSリソースに送信する。動作1806において、顧客プライベートネットワークは、顧客エンドポイントへのトラフィックを受信する。このトラフィックは、サービスインスタンスから発信され、ゲートウェイを介して送信されるパケットを含むことができる。このパケットの宛先アドレスは、顧客エンドポイントのIPアドレスである。このパケットのソースアドレスは、顧客のS2Cインターフェイスの第2の所定のIPアドレスであり、このIPアドレスは、プロキシ無しトラフィック用に構成されている。動作1808において、顧客プライベートネットワークは、トラフィックリターンを送信する。同様に、トラフィックリターンは、パケットを含むことができる。このパケットの宛先アドレスは、第2の所定のIPアドレスである。このパケットのソースアドレスは、顧客エンドポイントのIPアドレスである。動作1810において、顧客プライベートネットワークは、データベースサービスへのRACトラフィックを受信する。このトラフィックは、サービスインスタンスから発信され、S2C RACリソースを介して送信されるパケットを含むことができる。パケットの宛先アドレスは、データベースサービスのIPアドレスである。このパケットのソースアドレスは、顧客のS2Cインターフェイスの第1の所定のIPアドレスである。動作1812において、顧客プライベートネットワークは、RACリターンを送信する。RACリターンは、パケットを含むことができる。このパケットの宛先アドレスは、第1の所定のIPアドレスである。このパケットのソースアドレスは、データベースサービスのIPアドレスである。
【0184】
図19は、少なくとも1つの実施形態に従って、S2CリソースがDNSサービスをサポートするためのフローの一例を示す。S2Cリソースは、例えば、DNSリソースを含むことができる。一例において、フローは、動作1902から開始することができる。動作1902において、DNSリソースは、DNSクエリを受信する。DNSクエリは、サービスインスタンスから送信され、パケットを含み、サービスプロバイダのS2Cインターフェイスから受信されてもよい。したがって、このパケットの宛先アドレスは、サービスプロバイダのS2Cインターフェイスの第1の所定のIPアドレスであり、このIPアドレスは、DNSクエリ用に構成されている。このパケットのペイロードは、FQDNを含むことができる。このパケットのソースアドレスは、サービスインスタンスのIPアドレスである。動作1904において、DNSリソースは、FQDNが顧客によって定義されたFDQNリストと適合するか否かを判定する調停を実行することができる。そうである場合、動作1904の後に動作1910が実行される。そうでない場合、動作1920が実行される。動作1910において、DNSリソースは、ペイロードを含み、顧客のDNSリゾルバへのDNSクエリを送信する。DNSクエリは、パケットであってもよい。このパケットの宛先アドレスは、DNSリゾルバのIPアドレスであってもよい。このパケットのソースアドレスは、顧客のS2Cインターフェイスの第2の所定のIPアドレスであってもよい。このIPアドレスは、DNSクエリ用に構成されている。DNSクエリは、顧客のS2Cインターフェイスを介して、DNSリゾルバに送信される。動作1912において、DNSリソースは、DNSクエリに対するDNS応答を受信する。DNS応答は、顧客のDNSリゾルバから送信され、顧客のS2Cインターフェイスを介して受信され、FQDNに関連付けられた顧客エンドポイントの顧客IPアドレスを含む。DNS応答は、パケットを含むことができる。このパケットの宛先アドレスは、顧客のS2Cインターフェイスの第2の所定のIPアドレスである。ソースアドレスは、DNSリゾルバのIPアドレスである。動作1914において、DNSリソースは、DNS応答からの顧客IPアドレスを保留IPアドレスにマッピングする。動作1916において、DNSリソースは、このNATマッピングをNATマッピングデータストアに記憶する。動作1918において、DNSリソースは、保留IPアドレスを含むDNS応答を送信する。例えば、DNS応答は、パケットである。このパケットのペイロードは、保留IPアドレスを含む。このパケットのソースアドレスは、サービスプロバイダのS2Cインターフェイスの第1の所定のIPアドレスである。このパケットの宛先アドレスは、サービスインスタンスのIPアドレスである。このパケットは、サービスプロバイダのS2Cインターフェイスに送信される。動作1920において、DNSリソースは、FQDNがサービスプロバイダに属することを決定する。したがって、DNSリソースは、DNSクエリをサービスプロバイダのDNSリゾルバに送信する。DNSクエリは、ペイロード内のFQDNを有するパケットを含むことができる。このパケットのソースアドレスは、サービスプロバイダのS2Cインターフェイスの第1の所定のIPアドレスである。このパケットの宛先アドレスは、サービスプロバイダのDNSリゾルバのIPアドレスである。このパケットは、サービスプロバイダのS2Cインターフェイスに送信される。
【0185】
図20は、少なくとも1つの実施形態に従って、プロキシ無しS2Cトラフィックをサポートするためのフローの一例を示す。一例において、フローは、動作2002から開始することができる。動作2002において、ゲートウェイは、保留IPアドレスを有するトラフィックを受信する。例えば、このトラフィックは、パケットを含む。このパケットのソースアドレスは、サービスインスタンスのIPアドレスである。このパケットの宛先アドレスは、保留IPアドレスである。動作2004において、ゲートウェイは、顧客エンドポイントの顧客IPアドレスを決定する。例えば、保留IPアドレスは、保留IPアドレスを顧客IPアドレスに関連付けるNATマッピングをルックアップするときに使用される。動作2006において、ゲートウェイは、顧客IPアドレスを用いてトラフィックを送信する。例えば、パケットのヘッダを更新することによって、宛先アドレスを保留IPアドレスから顧客IPアドレスに変更する。ソースアドレスも、顧客のS2CインターフェイスのIPアドレスに更新されてもよい。このIPアドレスは、プロキシ無しS2Cトラフィック用に構成されている。パケットは、顧客のS2Cインターフェイスに送信されてもよい。動作2008において、ゲートウェイは、顧客IPアドレスを有するトラフィックリターンを受信する。例えば、トラフィックリターンは、パケットを含む。このパケットのソースアドレスは、顧客IPアドレスである。このパケットの宛先アドレスは、顧客のS2CインターフェイスのIPアドレスである。このパケットは、顧客のS2Cインターフェイスから受信されてもよい。動作2010において、ゲートウェイは、保留IPアドレスを決定する。例えば、NATマッピングの逆ルックアップが用いられる。動作2014において、ゲートウェイは、保留IPアドレスを有するトラフィックリターンを送信する。例えば、トラフィックリターンは、パケットを含む。このパケットのソースアドレスは、保留IPアドレスである。このパケットの宛先アドレスは、サービスインスタンスのIPアドレスである。このパケットは、サービスインスタンスに送信される。
【0186】
図21は、少なくとも1つの実施形態に従って、S2CリソースがRACサービスをサポートするためのフローの一例を示す。一例において、フローは、動作2102から開始することができる。動作2102において、RACリソースは、RACトラフィックを受信する。RACトラフィックは、サービスプロバイダプライベートネットワークのサービスインスタンスから送信され、パケットを含むことができる。このパケットのソースアドレスは、サービスインスタンスのIPアドレスである。このパケットの宛先アドレスは、サービスプロバイダのIPアドレスの第1の所定のIPアドレスである。このIPアドレスは、RACトラフィック用に構成されている。このパケットは、サービスプロバイダのS2Cインターフェイスから受信されてもよい。動作2104において、RACリソースは、顧客のS2Cインターフェイスの第2の所定のIPアドレスを決定する。このIPアドレスは、RACトラフィック用に構成されている。動作2106において、RACリソースは、第2の所定のIPアドレスを用いてRACトラフィックを送信する。例えば、パケットのヘッダを更新することによって、宛先アドレスは、第1の所定のIPアドレスから顧客のデータベースサービスのIPアドレスに変更される。パケットのソースアドレスは、サービスインスタンスのIPアドレスから第2の所定のIPアドレスに変更される。パケットは、顧客のS2Cインターフェイスに送信されてもよい。動作2108において、RACリソースは、第2の所定のIPアドレスを有するRACリターンを受信する。例えば、RACリターンは、パケットを含む。このパケットのソースアドレスは、データベースサービスのIPアドレスである。このパケットの宛先アドレスは、顧客のS2Cインターフェイスの第2の所定のIPアドレスである。このパケットは、顧客のS2Cインターフェイスから受信されてもよい。動作2110において、RACサービスは、第1の所定のIPアドレスを、RACリターンを送信すべきアドレスとして決定する。動作2114において、RACサービスは、第1の所定のIPアドレスを有するRACリターンを送信する。例えば、RACリターンは、パケットを含む。このパケットのソースアドレスは、第1の所定のIPアドレスである。このパケットの宛先アドレスは、サービスインスタンスのIPアドレスである。このパケットは、サービスプロバイダのS2Cインターフェイスに送信される。
【0187】
IaaSアーキテクチャの例
上述したように、IaaS(Infrastructure as a Service)は、1つの特定の種類のクラウドコンピューティングである。IaaSは、パブリックネットワーク(例えば、インターネット)を介して仮想化計算リソースを提供するように構成されてもよい。IaaSモデルにおいて、クラウドコンピューティングプロバイダは、インフラストラクチャ要素(例えば、サーバ、記憶装置、ネットワークノード(例えば、ハードウェア)、展開ソフトウェア、プラットフォーム仮想化(例えば、ハイパーバイザ層)など)をホストすることができる。場合によっては、IaaSプロバイダは、インフラストラクチャ要素に付随する様々なサービス(例えば、課金、監視、ロギング、セキュリティ、負荷分散およびクラスタリングなど)を提供することができる。したがって、これらのサービスがポリシー駆動型であり得るため、IaaSユーザは、アプリケーションの可用性および性能を維持するために、負荷分散を駆動するためのポリシーを実装することができる。
【0188】
いくつかの例において、IaaS顧客は、インターネットなどの広域ネットワーク(WAN)を介してリソースおよびサービスにアクセスすることができ、クラウドプロバイダのサービスを使用してアプリケーションスタックの残りの要素をインストールすることができる。例えば、ユーザは、IaaSプラットフォームにログインして、仮想マシン(VM)を作成し、各VMにオペレーティングシステム(OS)をインストールし、データベースなどのミドルウエアを展開し、ワークロードおよびバックアップの記憶バケットを作成し、VMに企業ソフトウェアをインストールすることができる。顧客は、プロバイダのサービスを使用して、ネットワークトラフィックのバランシング、アプリケーションのトラブルシューティング、パフォーマンスの監視、災害復旧の管理などを含む様々な機能を実行することができる。
【0189】
殆どの場合、クラウドコンピューティングモデルは、クラウドプロバイダの参加を必要とする。クラウドプロバイダは、IaaSの提供(例えば、オファー、レンタル、販売)に特化した第3者サービスであってもよいが、その必要はない。また、企業は、プライベートクラウドを配置し、インフラストラクチャサービスを提供するプロバイダになることもできる。
【0190】
いくつかの例において、IaaSの配置は、用意したアプリケーションサーバなどに新しいアプリケーションまたは新しいバージョンのアプリケーションを配置するプロセスである。IaaSの配置は、サーバを用意する(例えば、ライブラリ、デーモンなどをインストールする)プロセスを含んでもよい。IaaSの配置は、多くの場合、クラウドプロバイダによって、ハイパーバイザ層(例えば、サーバ、記憶装置、ネットワークハードウェア、および仮想化)の下で管理される。したがって、顧客は、OS、ミドルウエア、および/またはアプリケーションの展開(例えば、セルフサービス仮想マシン(例えば、オンデマンドでスピンアップできるもの)などを行うことができる。
【0191】
いくつかの例において、IaaSのプロビジョニングは、使用されるコンピュータまたは仮想ホストを取得すること、およびコンピュータまたは仮想ホスト上に必要なライブラリまたはサービスをインストールすることを含んでもよい。殆どの場合、配置は、プロビジョニングを含まず、まずプロビジョニングを実行する必要がある。
【0192】
場合によっては、IaaSのプロビジョニングには2つの異なる課題がある。第1に、何かを実行する前に、インフラストラクチャの初期セットをプロビジョニングするという課題がある。第2に、全てのものをプロビジョニングした後に、既存のインフラストラクチャを進化させる(例えば、新しいサービスの追加、サービスの変更、サービスの削除)という課題がある。場合によっては、インフラストラクチャの構成を宣言的に定義することを可能にすることによって、これらの2つの課題に対処することができる。言い換えれば、インフラストラクチャ(例えば、どの要素が必要とされるか、およびこれらの要素がどのように相互作用するか)は、1つ以上の構成ファイルによって定義されてもよい。したがって、インフラストラクチャの全体的なトポロジー(例えば、どのリソースがどれに依存し、どのように連携するか)は、宣言的に記述することができる。いくつかの例において、トポロジが定義されると、構成ファイルに記述された異なる要素を作成および/または管理するためのワークフローを生成することができる。
【0193】
いくつかの例において、インフラストラクチャは、多くの相互接続された要素を含むことができる。例えば、コアネットワークとしても知られている1つ以上の仮想プライベートクラウド(VPC)(例えば、構成可能な計算リソースおよび/または共有されている計算リソースの潜在的なオンデマンドプール)が存在してもよい。いくつかの例において、ネットワークのセキュリティがどのように設定されるかを定義するためにプロビジョニングされる1つ以上のセキュリティグループルールと、1つ以上の仮想マシン(VM)とが存在する可能性がある。ロードバランサ、データベースなどの他のインフラストラクチャ要素もプロビジョニングされてもよい。ますます多くのインフラストラクチャ要素が望まれるおよび/または追加されるにつれて、インフラストラクチャは、漸進的に進化することができる。
【0194】
いくつかの例において、様々な仮想コンピューティング環境にわたってインフラストラクチャコードの展開を可能にするために、連続展開技法を採用してもよい。また、記載された技法は、これらの環境内のインフラストラクチャ管理を可能にすることができる。いくつかの例において、サービスチームは、1つ以上の、通常多くの異なる生産環境(例えば、時には全世界に及ぶ種々の異なる地理的場所にわたって)に展開されることが望まれるコードを書き込むことができる。しかしながら、いくつかの例において、コードを展開するためのインフラストラクチャを最初に設定しなければならない。いくつかの例において、プロビジョニングは、手動で行うことができ、プロビジョニングツールを用いてリソースをプロビジョニングすることができ、および/またはインフラストラクチャをプロビジョニングした後に、展開ツールを用いてコードを展開することができる。
【0195】
図22は、少なくとも1つの実施形態に従って、IaaSアーキテクチャの例示的なパターンを示すブロック図2200である。サービスオペレータ2202は、仮想クラウドネットワーク(VCN)2206およびセキュアホストサブネット2208を含み得るセキュアホストテナンシ2204に通信可能に接続されてもよい。いくつかの例において、サービスオペレータ2202は、1つ以上のクライアントコンピューティング装置を使用することができる。1つ以上のクライアントコンピューティング装置は、例えば、Microsoft Windows Mobile(登録商標)のようなソフトウェア、および/またはiOS、Windowsフォン、アンドロイド(登録商標)、ブラックベリー8およびパームOSなどのさまざまなモバイルオペレーティングシステムを実行することができ、インターネット、電子メール、ショートメッセージサービス(SMS)、ブラックベリー(登録商標)または他の通信プロトコルが有効化された手持ち式携帯装置(例えば、iPhone(登録商標)、携帯電話、Ipad(登録商標)、タブレット、携帯情報端末(PDA)またはウエアラブル装置(Google Glass(登録商標)ヘッドマウントディスプレイ)であってもよい。クライアントコンピューティング装置は、例示として、Microsoft Windows(登録商標)オペレーティングシステム、Apple Macintosh(登録商標)オペレーティングシステムおよび/またはLinux(登録商標)オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む汎用のパーソナルコンピュータであってもよい。代替的には、クライアントコンピューティング装置は、例えば、さまざまなGNU/Linuxオペレーティングシステム、例えば、Google Chrome(登録商標)OSを含むがこれに限定されない市販のUNIX(登録商標)またはUNIXに類似するさまざまなオペレーティングシステムを実行するワークステーションコンピュータであってもよい。代替的にまたは追加的には、クライアントコンピューティング装置は、VCN2206および/またはインターネットにアクセスできるネットワークを介して通信可能な他の電子機器、例えば、シンクライアントコンピュータ、インターネット対応のゲームシステム(例えば、Kinect(登録商標)ジェスチャ入力装置を備えるまたは備えないMicrosoft Xbox(登録商標)ゲームコンソール)、および/またはパーソナルメッセージング装置であってもよい。
【0196】
VCN2206は、SSH VCN2212に含まれるLPG2210を介して、セキュアシェル(SSH)VCN2212に通信可能に接続できるローカルピアリングゲートウェイ(LPG)2210を含むことができる。SSH VCN2212は、SSHサブネット2214を含むことができ、SSH VCN2212は、制御プレーンVCN2216に含まれるLPG2210を介して、制御プレーンVCN2216に通信可能に接続されることができる。また、SSH VCN2212は、LPG2210を介して、データプレーンVCN2218に通信可能に接続されることができる。制御プレーンVCN2216およびデータプレーンVCN2218は、IaaSプロバイダによって所有および/または運営され得るサービステナンシ2219に含まれてもよい。
【0197】
制御プレーンVCN2216は、境界ネットワーク(例えば、企業イントラネットと外部ネットワークとの間の企業ネットワークの部分)として機能する制御プレーンDMZ(demilitarized zone)層2220を含むことができる。DMZベースのサーバは、特定の信頼性を有し、セキュリティ侵害を封じ込めることができる。さらに、DMZ層2220は、1つ以上のロードバランサ(LB)サブネット2222と、アプリサブネット2226を含むことができる制御プレーンアプリ層2224と、データベース(DB)サブネット2230(例えば、フロントエンドDBサブネットおよび/またはバックエンドDBサブネット)を含むことができる制御プレーンデータ層2228とを含むことができる。制御プレーンDMZ層2220に含まれたLBサブネット2222は、制御プレーンアプリ層2224に含まれるアプリサブネット2226と制御プレーンVCN2216に含まれ得るインターネットゲートウェイ2234とに通信可能に接続されてもよく、アプリサブリ2226は、制御プレーンデータ層2228に含まれるDBサブネット2230と、サービスゲートウェイ2236と、ネットワークアドレス変換(NAT)ゲートウェイ2238とに通信可能に接続されてもよい。制御プレーンVCN2216は、サービスゲートウェイ2236およびNATゲートウェイ2238を含むことができる。
【0198】
制御プレーンVCN2216は、データプレーンミラーアプリ層2240を含むことができ、データプレーンミラーアプリ層2240は、アプリサブネット2226を含むことができる。データプレーンミラーアプリ層2240に含まれたアプリサブネット2226は、計算インスタンス2244を実行することができる仮想ネットワークインターフェイスコントローラ(VNIC)2242を含むことができる。計算インスタンス2244は、データプレーンミラーアプリ層2240のアプリサブネット2226を、データプレーンアプリ層2246に含まれ得るアプリサブネット2226に通信可能に接続することができる。
【0199】
データプレーンVCN2218は、データプレーンアプリ層2246と、データプレーンDMZ層2248と、データプレーンデータ層2250とを含むことができる。データプレーンDMZ層2248は、データプレーンアプリ層2246のアプリサブネット2226およびデータプレーンVCN2218のインターネットゲートウェイ2234に通信可能に接続され得るLBサブネット2222を含むことができる。アプリサブネット2226は、データプレーンVCN2218のサービスゲートウェイ2236およびデータプレーンVCN2218のNATゲートウェイ2238に通信可能に接続されてもよい。また、データプレーンデータ層2250は、データプレーンアプリ層2246のアプリサブネット2226に通信可能に接続され得るDBサブネット2230を含むことができる。
【0200】
制御プレーンVCN2216のインターネットゲートウェイ2234およびデータプレーンVCN2218のインターネットゲートウェイ2234は、パブリックインターネット2254に通信可能に接続され得るメタデータ管理サービス2252に通信可能に接続されてもよい。パブリックインターネット2254は、制御プレーンVCN2216のNATゲートウェイ2238およびデータプレーンVCN2218のNATゲートウェイ2238に通信可能に接続されてもよい。制御プレーンVCN2216のサービスゲートウェイ2236およびデータプレーンVCN2218のサービスゲートウェイ2236は、クラウドサービス2256に通信可能に接続されてもよい。
【0201】
いくつかの例において、制御プレーンVCN2216またはデータプレーンVCN2218のサービスゲートウェイ2236は、パブリックインターネット2254を経由することなく、クラウドサービス2256へのアプリケーションプログラミングインターフェイス(API)呼び出しを行うことができる。サービスゲートウェイ2236からのクラウドサービス2256へのAPI呼び出しは、一方向であり得る。サービスゲートウェイ2236は、クラウドサービス2256へのAPI呼び出しを行うことができ、クラウドサービス2256は、要求データをサービスゲートウェイ2236に送信することができる。しかしながら、クラウドサービス2256は、サービスゲートウェイ2236へのAPI呼び出しを開始しないことがある。
【0202】
いくつかの例において、セキュアホストテナンシ2204は、孤立であり得るサービステナンシ2219に直接に接続されてもよい。セキュアホストサブネット2208は、孤立のシステムとの双方向通信を可能にするLPG2210を介して、SSHサブネット2214と通信することができる。セキュアホストサブネット2208をSSHサブネット2214に接続することによって、セキュアホストサブネット2208は、サービステナンシ2219内の他のエンティティにアクセスすることができる。
【0203】
制御プレーンVCN2216は、サービステナンシ2219のユーザが所望のリソースを設定またはプロビジョニングすることを可能にする。制御プレーンVCN2216においてプロビジョニングされた所望のリソースは、データプレーンVCN2218において展開または使用されてもよい。いくつかの例において、制御プレーンVCN2216は、データプレーンVCN2218から隔離されてもよく、制御プレーンVCN2216のデータプレーンミラーアプリ層2240は、データプレーンミラーアプリ層2240およびデータプレーンアプリ層2246に含まれ得るVNIC2242を介して、データプレーンVCN2218のデータプレーンアプリ層2246と通信することができる。
【0204】
いくつかの例において、システムのユーザまたは顧客は、要求をメタデータ管理サービス2252に通信することができるパブリックインターネット2254を介して、例えば、作成、読み取り、更新、または削除(CRUD)操作などの要求を行うことができる。メタデータ管理サービス2252は、インターネットゲートウェイ2234を介して、要求を制御プレーンVCN2216に通信することができる。要求は、制御プレーンDMZ層2220に含まれるLBサブネット2222によって受信されてもよい。LBサブネット2222は、要求が有効であると判断することができ、この判断に応答して、LBサブネット2222は、要求を制御プレーンアプリ層2224に含まれるアプリサブネット2226に送信することができる。要求が検証され、パブリックインターネット2254への呼び出しを必要とする場合、パブリックインターネット2254への呼び出しを、パブリックインターネット2254への呼び出しを行うことができるNATゲートウェイ2238に送信することができる。要求を記憶するためのメモリは、DBサブネット2230に格納されてもよい。
【0205】
いくつかの例において、データプレーンミラーアプリ層2240は、制御プレーンVCN2216とデータプレーンVCN2218との間の直接通信を容易にすることができる。例えば、構成に対する変更、更新、または他の適切な修正は、データプレーンVCN2218に含まれるリソースに適用されることが望ましい場合がある。制御プレーンVCN2216は、VNIC2242を介してデータプレーンVCN2218に含まれるリソースと直接に通信することができるため、構成に対する変更、更新、または他の適切な修正を実行することができる。
【0206】
いくつかの実施形態において、制御プレーンVCN2216およびデータプレーンVCN2218は、サービステナンシ2219に含まれてもよい。この場合、システムのユーザまたは顧客は、制御プレーンVCN2216またはデータプレーンVCN2218のいずれかを所有または操作しなくてもよい。代わりに、IaaSプロバイダは、制御プレーンVCN2216およびデータプレーンVCN2218を所有または操作してもよく、これらの両方は、サービステナンシ2219に含まれてもよい。この実施形態は、ネットワークの隔離を可能にすることによって、ユーザまたは顧客が他のユーザのリソースまたは他の顧客のリソースと対話することを防止できる。また、この実施形態は、システムのユーザまたは顧客が、記憶するための所望のレベルのセキュリティを有しない可能性のあるパブリックインターネット2254に依存する必要なく、データベースをプライベートに記憶することを可能にすることができる。
【0207】
他の実施形態において、制御プレーンVCN2216に含まれるLBサブネット2222は、サービスゲートウェイ2236から信号を受信するように構成されてもよい。この実施形態において、制御プレーンVCN2216およびデータプレーンVCN2218は、パブリックインターネット2254を呼び出すことなく、IaaSプロバイダの顧客によって呼び出されるように構成されてもよい。顧客が使用するデータベースは、IaaSプロバイダによって制御され、パブリックインターネット2254から隔離され得るサービステナンシ2219に格納され得るため、IaaSプロバイダの顧客は、この実施形態を望む場合がある。
【0208】
図23は、少なくとも1つの実施形態に従って、IaaSアーキテクチャの別の例示的なパラメータを示すブロック図2300である。サービスオペレータ2302(例えば、図22のサービスオペレータ2202)は、仮想クラウドネットワーク(VCN)2306(例えば、図22のVCN2206)およびセキュアホストサブネット2308(例えば、図22のセキュアホストサブネット2208)を含み得るセキュアホストテナンシ2304(例えば、図22のセキュアホストテナンシ2204)に通信可能に接続されてもよい。VCN2306は、SSH VCN2312に含まれるLPG2210を介してセキュアシェル(SSH)VCN2312(例えば、図22のSSH VCN2212)に通信可能に接続され得るローカルピアリングゲートウェイ(LPG)2310(例えば、図22のLPG2210)を含むことができる。SSH VCN2312は、SSHサブネット2314(例えば、図22のSSHサブネット2214)を含むことができ、SSH VCN2312は、制御プレーンVCN2316に含まれるLPG2310を介して制御プレーンVCN2316(例えば、図22の制御プレーンVCN2216)に通信可能に接続することができる。制御プレーンVCN2316は、サービステナンシ2319(例えば、図22のサービステナンシ2219)に含まれてもよく、データプレーンVCN2318(例えば、図22のデータプレーンVCN2218)は、システムのユーザまたは顧客によって所有または運営され得る顧客テナンシ2321に含まれてもよい。
【0209】
制御プレーンVCN2316は、LBサブネット2322(例えば、図22のLBサブネット2222)を含むことができる制御プレーンDMZ層2320(例えば、図22の制御プレーンDMZ層2220)と、アプリサブネット2326(例えば、図22のアプリサブネット2226)を含むことができる制御プレーンアプリ層2324(例えば、図22の制御プレーンアプリ層2224)と、データベース(DB)サブネット2330(例えば、図22のDBサブネット2230)を含むことができる制御プレーンデータ層2328(例えば、図22の制御プレーンデータ層2228)とを含むことができる。制御プレーンDMZ層2320に含まれるLBサブネット2322は、制御プレーンアプリ層2324に含まれるアプリサブネット2326と、制御プレーンVCN2316に含まれ得るインターネットゲートウェイ2334(例えば、図22のインターネットゲートウェイ2234)とに通信可能に接続されてもよい。アプリサブネット2326は、制御プレーンデータ層2328に含まれるDBサブネット2330、サービスゲートウェイ2336(例えば、図22のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ2338(例えば、図22のNATゲートウェイ2238)に通信可能に接続されてもよい。制御プレーンVCN2316は、サービスゲートウェイ2336およびNATゲートウェイ2338を含むことができる。
【0210】
制御プレーンVCN2316は、アプリサブネット2326を含むことができるデータプレーンミラーアプリ層2340(例えば、図22のデータプレーンミラーアプリ層2240)を含むことができる。データプレーンミラーアプリ層2340に含まれるアプリサブネット2326は、(例えば、図22の計算インスタンス2244と同様の)計算インスタンス2344を実行することができる仮想ネットワークインターフェイスコントローラ(VNIC)2342(例えば、VNIC2242)を含むことができる。計算インスタンス2344は、データプレーンミラーアプリ層2340に含まれるVNIC2342およびデータプレーンアプリ層2346に含まれるVNIC2342を介して、データプレーンミラーアプリ層2340のアプリサブネット2326と、データプレーンアプリ層2346(例えば、図22のデータプレーンアプリ層2246)に含まれ得るアプリサブネット2326との間の通信を促進することができる。
【0211】
制御プレーンVCN2316に含まれるインターネットゲートウェイ2334は、パブリックインターネット2354(例えば、図22のパブリックインターネット2254)に通信可能に接続され得るメタデータ管理サービス2352(例えば、図22のメタデータ管理サービス2252)に通信可能に接続されてもよい。パブリックインターネット2354は、制御プレーンVCN2316に含まれるNATゲートウェイ2338に通信可能に接続されてもよい。制御プレーンVCN2316に含まれるサービスゲートウェイ2336は、クラウドサービス2356(例えば、図22のクラウドサービス2256)に通信可能に接続されてもよい。
【0212】
いくつかの例において、データプレーンVCN2318は、顧客テナンシ2321に含まれてもよい。この場合、IaaSプロバイダは、顧客ごとに制御プレーンVCN2316を提供することができ、IaaSプロバイダは、顧客ごとに、サービステナンシ2319に含まれる固有の計算インスタンス2344を構成することができる。各計算インスタンス2344は、サービステナンシ2319に含まれる制御プレーンVCN2316と、顧客テナンシ2321に含まれるデータプレーンVCN2318との間の通信を許可することができる。計算インスタンス2344は、サービステナンシ2319に含まれる制御プレーンVCN2316においてプロビジョニングされるリソースを、顧客テナンシ2321に含まれるデータプレーンVCN2318に展開することまたは使用することを許可することができる。
【0213】
他の例において、IaaSプロバイダの顧客は、顧客テナンシ2321に存在するデータベースを有することができる。この例において、制御プレーンVCN2316は、アプリサブネット2326を含むことができるデータプレーンマイナーアプリ層2340を含むことができる。データプレーンミラーアプリ層2340は、データプレーンVCN2318に存在してもよいが、データプレーンミラーアプリ層2340は、データプレーンVCN2318に存在しなくてもよい。すなわち、データプレーンミラーアプリ層2340は、顧客テナンシ2321にアクセスすることができるが、データプレーンミラーアプリ層2340は、データプレーンVCN2318に存在しなくてもよく、IaaSプロバイダの顧客によって所有または運営されなくてもよい。データプレーンミラーアプリ層2340は、データプレーンVCN2318への呼び出しを行うように構成されてもよいが、制御プレーンVCN2316に含まれる任意のエンティティへの呼び出しを行うように構成されなくてもよい。顧客は、制御プレーンVCN2316にプロビジョニングされたデータプレーンVCN2318内のリソースを展開することまたは使用することを望むことができ、データプレーンミラーアプリケーション階層2340は、顧客のリソースの所望の展開または他の使用を促進することができる。
【0214】
いくつかの実施形態において、IaaSプロバイダの顧客は、フィルタをデータプレーンVCN2318に適用することができる。この実施形態において、顧客は、データプレーンVCN2318がアクセスできるものを決定することができ、顧客は、データプレーンVCN2318からのパブリックインターネット2354へのアクセスを制限することができる。IaaSプロバイダは、データプレーンVCN2318から任意の外部ネットワークまたはデータベースへのアクセスにフィルタを適用するまたは制御することができない場合がある。顧客が顧客テナンシ2321に含まれるデータプレーンVCN2318にフィルタおよび制御を適用することは、データプレーンVCN2318を他の顧客およびパブリックインターネット2354から隔離することを支援することができる。
【0215】
いくつかの実施形態において、クラウドサービス2356は、サービスゲートウェイ2336によって呼び出されて、パブリックインターネット2354上に、制御プレーンVCN2316上に、またはデータプレーンVCN2318上に存在していない可能性があるサービスにアクセスすることができる。クラウドサービス2356と制御プレーンVCN2316またはデータプレーンVCN2318との間の接続は、ライブまたは連続的でなくてもよい。クラウドサービス2356は、IaaSプロバイダによって所有または運営されている別のネットワーク上に存在してもよい。クラウドサービス2356は、サービスゲートウェイ2336から呼び出しを受信するように構成されてもよく、パブリックインターネット2354から呼び出しを受信しないように構成されてもよい。いくつかのクラウドサービス2356は、他のクラウドサービス2356から隔離されてもよく、制御プレーンVCN2316は、制御プレーンVCN2316と同じ地域に配置していない可能性があるクラウドサービス2356から隔離されてもよい。例えば、制御プレーンVCN2316は、「地域1」に配置されてもよく、クラウドサービス「展開16」は、「地域1」および「地域2」に配置されてもよい。展開16への呼び出しが地域1に配置された制御プレーンVCN2316に含まれるサービスゲートウェイ2336によって行われる場合、この呼び出しは、地域1内の展開16に送信されてもよい。この例において、制御プレーンVCN2316または地域1の展開16は、地域2の展開16と通信可能に接続されなくてもよい。
【0216】
図24は、少なくとも1つの実施形態に従って、IaaSアーキテクチャの別の例示的なパターンを示すブロック図2400である。サービスオペレータ2402(例えば、図22のサービスオペレータ2202)は、仮想クラウドネットワーク(VCN)2406(例えば、図22のVCN2206)およびセキュアホストサブネット2408(例えば、図22のセキュアホストサブネット2208)を含み得るセキュアホストテナンシ2404(例えば、図22のセキュアホストテナンシ2204)に通信可能に接続されてもよい。VCN2406は、SSH VCN2412に含まれるLPG2410を介してSSH VCN2412(例えば、図22のSSH VCN2212)に通信可能に接続され得るLPG2410(例えば、図22のLPG2210)を含むことができる。SSH VCN2412は、SSHサブネット2414(例えば、図22のSSHサブネット2214)を含むことができ、SSH VCN2412は、制御プレーンVCN2416に含まれるLPG2410を介して制御プレーンVCN2416(例えば、図22の制御プレーンVCN2216)に通信可能に接続されてもよく、データプレーンVCN2418に含まれるLPG2410を介してデータプレーンVCN2418(例えば、図22のデータプレーン2224)に通信可能に接続されてもよい。制御プレーンVCN2416およびデータプレーンVCN2418は、サービステナンシ2419(例えば、図22のサービステナント2219)に含まれてもよい。
【0217】
制御プレーンVCN2416は、ロードバランサ(LB)サブネット2422(例えば、図22のLBサブネット2222)を含むことができる制御プレーンDMZ層2420(例えば、図22の制御プレーンDMZ層2220)と、アプリサブネット2426(例えば、図22のアプリサブネット2226)を含むことができる制御プレーンアプリ層2424(例えば、図22の制御プレーンアプリ層2224)と、DBサブネット2430を含むことができる制御プレーンデータ層2428(例えば、図22の制御プレーンデータ層2228)とを含むことができる。制御プレーンDMZ層2420に含まれるLBサブネット2422は、制御プレーンアプリ層2424に含まれるアプリサブネット2426と、制御プレーンVCN2416に含まれ得るインターネットゲートウェイ2434(例えば、図22のインターネットゲートウェイ2244)とに通信可能に接続されてもよい。アプリサブネット2426は、制御プレーンデータ層2428に含まれるDBサブネット2430と、サービスゲートウェイ2436(例えば、図22のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ2438(例えば、図22のNATゲートウェイ2248)とに通信可能に接続されてもよい。制御プレーンVCN2416は、サービスゲートウェイ2436およびNATゲートウェイ2438を含むことができる。
【0218】
データプレーンVCN2418は、データプレーンアプリ層2446(例えば、図22のデータプレーンアプリ層2246)と、データプレーンDMZ層2448(例えば、図22のデータプレーンDMZ層2248)と、データプレーンデータ層2450(例えば、図22のデータプレーンデータ階層2250)とを含むことができる。データプレーンDMZ層2448は、データプレーンVCN2418に含まれるデータプレーンアプリ層2446およびインターネットゲートウェイ2434の信頼できるアプリサブネット2460および信頼できないアプリサブネット2462に通信可能に接続され得るLBサブネット2422を含むことができる。信頼できるアプリサブネット2460は、データプレーンVCN2418に含まれるサービスゲートウェイ2436、データプレーンVCN2418に含まれるNATゲートウェイ2438、およびデータプレーンデータ層2450に含まれるDBサブネット2430に通信可能に接続されてもよい。信頼できないアプリサブネット2462は、データプレーンVCN2418に含まれるサービスゲートウェイ2436、およびデータプレーンデータ層2450に含まれるDBサブネット2430に通信可能に接続されてもよい。データプレーンデータ層2450は、データプレーンVCN2418に含まれるサービスゲートウェイ2436に通信可能に接続され得るDBサブネット2430を含むことができる。
【0219】
信頼できないアプリサブネット2462は、テナント仮想マシン(VM)2466(1)~(N)に通信可能に接続され得る1つ以上のプライマリVNIC2464(1)~(N)を含むことができる。各テナントVM2466(1)~(N)は、それぞれの顧客テナンシ2470(1)~(N)に含まれ得るそれぞれのコンテナ送信VCN2468(1)~(N)に含まれ得るそれぞれのアプリサブネット2467(1)~(N)に通信可能に接続されてもよい。それぞれのセカンダリVNIC2472(1)~(N)は、データプレーンVCN2418に含まれる信頼できないアプリサブネット2462と、コンテナ送信VCN2468(1)~(N)に含まれるアプリサブネットとの間の通信を促進することができる。各コンテナ送信VCN2468(1)~(N)は、パブリックインターネット2454(例えば、図22のパブリックインターネット2254)に通信可能に接続され得るNATゲートウェイ2438を含むことができる。
【0220】
制御プレーンVCN2416に含まれるインターネットゲートウェイ2434およびデータプレーンVCN2418に含まれるインターネットゲートウェイ2434は、パブリックインターネット2454に通信可能に接続され得るメタデータ管理サービス2452(例えば、図22のメタデータ管理システム2252)に通信可能に接続されてもよい。パブリックインターネット2454は、制御プレーンVCN2416に含まれるNATゲートウェイ2438およびデータプレーンVCN2418に含まれるNATゲートウェイ2438に通信可能に接続されてもよい。制御プレーンVCN2416に含まれるサービスゲートウェイ2436およびデータプレーンVCN2418に含まれるサービスゲートウェイ2436は、クラウドサービス2456に通信可能に接続されてもよい。
【0221】
いくつかの実施形態において、データプレーンVCN2418は、顧客テナンシ2470に統合されてもよい。この統合は、コードを実行するときにサポートを望む場合がある場合などのいくつかの場合において、IaaSプロバイダの顧客にとって有用または望ましい場合がある。顧客は、実行すると、破壊的であり得る、他の顧客リソースと通信し得る、または望ましくない影響を引き起こし得るコードを提供することがある。従って、IaaSプロバイダは、顧客がIaaSプロバイダに提供したコードを実行するか否かを判断することができる。
【0222】
いくつかの例において、IaaSプロバイダの顧客は、一時的なネットワークアクセスをIaaSプロバイダに許可することができ、データプレーンアプリ層2446に追加する機能を要求することができる。機能を実行するためのコードは、VM2466(1)~(N)で実行されてもよいが、データプレーンVCN2418上の他の場所で実行されるように構成されることができない。各VM2466(1)~(N)は、1つの顧客テナンシ2470に接続されてもよい。VM2466(1)~(N)に含まれるそれぞれのコンテナ2471(1)~(N)は、コードを実行するように構成されてもよい。この場合、二重の隔離(例えば、コンテナ2471(1)~(N)は、コードを実行し、コンテナ2471(1)~(N)は、少なくとも、信頼できないアプリサブネット2462に含まれるVM2466(1)~(N)に含まれ得る)が存在してもよく、これは、誤ったコードまたは望ましくないコードがIaaSプロバイダのネットワークに損傷を与えること、または異なる顧客のネットワークに損傷を与えることを防止することを支援することができる。コンテナ2471(1)~(N)は、顧客テナンシ2470に通信可能に接続されてもよく、顧客テナンシ2470からデータを送信または受信するように構成されてもよい。コンテナ2471(1)~(N)は、データプレーンVCN2418内の任意の他のエンティティからデータを送信または受信するように構成されなくてもよい。コードの実行が完了すると、IaaSプロバイダは、コンテナ2471(I)~(N)をキルするまたは廃棄することができる。
【0223】
いくつかの実施形態において、信頼できるアプリサブネット2460は、IaaSプロバイダによって所有または運営され得るコードを実行することができる。この実施形態において、信頼できるアプリサブネット2460は、DBサブネット2430に通信可能に接続され、DBサブネット2430においてCRUD操作を実行するように構成されてもよい。信頼できないアプリサブネット2462は、DBサブネット2430に通信可能に接続され得るが、この実施形態において、信頼できないアプリサブネットは、DBサブネット2430内で読み取り操作を実行するように構成されてもよい。各顧客のVM2466(1)~(N)に含まれ、顧客からのコードを実行することができるコンテナ2471(1)~(N)は、DBサブネット2430と通信可能に接続されなくてもよい。
【0224】
他の実施形態において、制御プレーンVCN2416およびデータプレーンVCN2418は、通信可能に直接に結合されなくてもよい。この実施形態において、制御プレーンVCN2416とデータプレーンVCN2418との間に直接的な通信は、存在しないことがある。しかしながら、少なくとも1つの方法による間接的な通信は、存在してもよい。制御プレーンVCN2416とデータプレーンVCN2418との間の通信を容易にすることができるLPG2410が、IaaSプロバイダによって確立されてもよい。別の例において、制御プレーンVCN2416またはデータプレーンVCN2418は、サービスゲートウェイ2436を介してクラウドサービス2456への呼び出しを行うことができる。例えば、制御プレーンVCN2416からクラウドサービス2456への呼び出しは、データプレーンVCN2418と通信することができるサービスの要求を含むことができる。
【0225】
図25は、少なくとも1つの実施形態に従って、IaaSアーキテクチャの別の例示的なパラメータを示すブロック図2500である。サービスオペレータ2502(例えば、図22のサービスオペレータ2202)は、仮想クラウドネットワーク(VCN)2506(例えば、図22のVCN2206)およびセキュアホストサブネット2508(例えば、図22のセキュアホストサブネット2208)を含み得るセキュアホストテナンシ2504(例えば、図22のセキュアホストテナンシ2204)に通信可能に接続されてもよい。VCN2506は、SSH VCN2512に含まれるLPG2510を介してSSH VCN2512(例えば、図22のSSH VCN2212)に通信可能に接続され得るLPG2510(例えば、図22のLPG2210)を含むことができる。SSH VCN2512は、SSHサブネット2514(例えば、図22のSSHサブネット2214)を含むことができ、SSH VCN2512は、制御プレーンVCN2516に含まれるLPG2510を介して制御プレーンVCN2516(例えば、図22の制御プレーンVCN2216)に通信可能に接続されてもよく、データプレーンVCN2518に含まれるLPG2510を介してデータプレーンVCN2518(例えば、図22のデータプレーン2218)に通信可能に接続されてもよい。制御プレーンVCN2516およびデータプレーンVCN2518は、サービステナンシ2519(例えば、図22のサービステナンシ2225)に含まれてもよい。
【0226】
制御プレーンVCN2516は、LBサブネット2522(例えば、図22のLBサブネット2222)を含み得る制御プレーンDMZ層2520(例えば、図22の制御プレーンDMZ層2220)、アプリサブネット2526(例えば、図22のアプリサブネット2226)を含み得る制御プレーンアプリ層2524(例えば、図22の制御プレーンアプリ層2224)、DBサブネット2530(例えば、図24のDBサブネット2430)を含み得る制御プレーンデータ層2528(例えば、図22の制御プレーンデータ層2228)を含むことができる。制御プレーンDMZ層2520に含まれるLBサブネット2522は、制御プレーンアプリ層2524に含まれるアプリサブネット2526と、制御プレーンVCN2516に含まれ得るインターネットゲートウェイ2534(例えば、図22のインターネットゲートウェイ2234)とに通信可能に接続されてもよい。アプリサブネット2526は、制御プレーンデータ層2528に含まれるDBサブネット2530と、サービスゲートウェイ2536(例えば、図22のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ2538(例えば、図22のNATゲートウェイ2238)とに通信可能に接続されてもよい。制御プレーンVCN2516は、サービスゲートウェイ2536およびNATゲートウェイ2538を含むことができる。
【0227】
データプレーンVCN2518は、データプレーンアプリ層2546(例えば、図22のデータプレーンアプリ層2246)、データプレーンDMZ層2548(例えば、図22のデータプレーンDMZ層2248)、およびデータプレーンデータ層2550(例えば、図22のデータプレーンデータ層2250)を含むことができる。データプレーンDMZ層2548は、データプレーンアプリ層2546の信頼できるアプリサブネット2560(例えば、図24の信頼できるアプリサブネット2460)および信頼できないアプリサブネット2562(例えば、図24の信頼できないアプリサブネット2462)およびデータプレーンVCN2518に含まれるインターネットゲートウェイ2534に通信可能に接続され得るLBサブネット2522を含むことができる。信頼できるアプリサブネット2560は、データプレーンVCN2518に含まれるサービスゲートウェイ2536、データプレーンVCN2518に含まれるNATゲートウェイ2538、およびデータプレーンデータ層2550に含まれるDBサブネット2530に通信可能に接続されてもよい。信頼できないアプリサブネット2562は、データプレーンVCN2518に含まれるサービスゲートウェイ2536、およびデータプレーンデータ層2550に含まれるDBサブネット2530に通信可能に接続されてもよい。データプレーンデータ層2550は、データプレーンVCN2518に含まれるサービスゲートウェイ2536に通信可能に接続され得るDBサブケット2530を含むことができる。
【0228】
信頼できないアプリサブネット2562は、信頼できないアプリサブネット2562に常駐するテナント仮想マシン(VM)2566(1)~(N)に通信可能に接続され得るプライマリYNIC2564(1)~(N)を含むことができる。各テナントVM2566(1)~(N)は、それぞれのコンテナ2567(1)~(N)においてコードを実行することができ、コンテナ送信VCN2568に含まれ得るデータプレーンアプリ層2546に含まれ得るアプリサブネット2526に通信可能に接続されてもよい。各セカンダリVNIC2572(1)~(N)は、データプレーンVCN2518に含まれる信頼できないアプリサブネット2562とコンテナ送信VCN2568に含まれるアプリサブネットとの間の通信を促進することができる。コンテナ送信VCNは、パブリックインターネット2554(例えば、図22のパブリックインターネット2254)に通信可能に接続することができるNATゲートウェイ2538を含むことができる。
【0229】
制御プレーンVCN2516に含まれるインターネットゲートウェイ2534およびデータプレーンVCN2518に含まれるインターネットゲートウェイ2534は、パブリックインターネット2554に通信可能に接続され得るメタデータ管理サービス2552(例えば、図22のメタデータ管理システム2252)に通信可能に接続されてもよい。パブリックインターネット2554は、制御プレーンVCN2516に含まれるインターネットゲートウェイ2534およびデータプレーンVCN2518に含まれるNATゲートウェイ2538に通信可能に接続されてもよい。制御プレーンVCN2516に含まれるインターネットゲートウェイ2534およびデータプレーンVCN2518に含まれるサービスゲートウェイ2536は、クラウドサービス2556に通信可能に接続されてもよい。
【0230】
いくつかの例において、図25のブロック図2500のアーキテクチャによって示されたパターンは、図22のブロック図2200のアーキテクチャによって示されたパターンの例外と考えられ、IaaSプロバイダが顧客と直接に通信できない(例えば、非接続地域)場合、IaaSプロバイダの顧客にとって望ましいことがある。顧客は、各顧客のVM2566(1)~(N)に含まれるそれぞれのコンテナ2567(1)~(N)にリアルタイムでアクセスすることができる。コンテナ2567(1)~(N)は、コンテナ送信VCN2568に含まれ得るデータプレーンアプリ層2546のアプリサブネット2526に含まれるそれぞれのセカンダリVNIC2572(1)~(N)を呼び出すように構成されてもよい。セカンダリVNIC2572(1)~(N)は、パブリックインターネット2554に呼び出しを送信することができるNATゲートウェイ2538に呼び出しを送信することができる。この例において、顧客がリアルタイムでアクセスできるコンテナ2567(1)~(N)は、制御プレーンVCN2516から隔離されてもよく、データプレーンVCN2518に含まれる他のエンティティから隔離されてもよい。また、コンテナ2567(1)~(N)は、他の顧客のリソースから隔離されてもよい。
【0231】
他の例において、顧客は、コンテナ2567(1)~(N)を使用して、クラウドサービス2556を呼び出すことができる。この例では、顧客は、コンテナ2567(1)~(N)において、クラウドサービス2556からサービスを要求するコードを実行することができる。コンテナ2567(1)~(N)は、要求をパブリックインターネット2554に送信することができるNATゲートウェイに要求を送信することができるセカンダリVNIC2572(1)~(N)にこの要求を送信することができる。パブリックインターネット2554は、インターネットゲートウェイ2534を介して、制御プレーンVCN2516に含まれるLBサブネット2522にこの要求を送信することができる。要求が有効であるとの判断に応答して、LBサブネットは、この要求をアプリサブネット2526に送信することができ、アプリサブネット2526は、サービスゲートウェイ2536を介して、この要求をクラウドサービス2556に要求を送信することができる。
【0232】
なお、図示されたIaaSアーキテクチャ2200、2300、2400および2500は、図示されたもの以外の要素を含んでもよい。また、図示された実施形態は、本開示の実施形態を組み込むことができるクラウドインフラストラクチャシステムの一部の例に過ぎない。他のいくつかの実施形態において、IaaSシステムは、図示されたものよりも多いまたは少ない要素を有してよく、2つ以上の要素を組み合わせてよく、または要素の異なる構成または配置を有してよい。
【0233】
特定の実施形態において、本明細書に記載されたIaaSシステムは、セルフサービス、サブスクリプションベース、柔軟な拡張可能性、信頼性、高可用性、および安全な方法で顧客に提供されるアプリケーション、ミドルウェア、およびデータベースサービスのスイートを含むことができる。このようなIaaSシステムの一例は、本出願人によって提供されたオラクル(登録商標)クラウドインフラストラクチャ(OCI)である。
【0234】
図26は、様々な実施形態が実装され得る例示的なコンピュータシステム2600を示す。システム2600は、上述したコンピュータシステムのいずれかを実装するために使用されてもよい。図示のように、コンピュータシステム2600は、バスサブシステム2602を介して多数の周辺サブシステムと通信する処理ユニット2604を含む。これらの周辺サブシステムは、処理加速ユニット2606、I/Oサブシステム2608、記憶サブシステム2618、および通信サブシステム2624を含んでもよい。記憶サブシステム2618は、有形のコンピュータ可読記憶媒体2622およびシステムメモリ2610を含む。
【0235】
バスサブシステム2602は、コンピュータシステム2600の様々な構成要素およびサブシステムを意図したように相互に通信させるための機構を提供する。バスサブシステム2602は、単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態は、複数のバスを利用してもよい。バスサブシステム2602は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャのいずれかを使用するローカルバスを含む、いくつかの種類のバス構造のいずれかであってもよい。例えば、このようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)、バス拡張ISA(EISA)バス、ビデオ電子標準協会(VESA)ローカルバス、およびIEEE P1386.1標準に準拠して製造されたメザニンバスとして実装できる周辺機器相互接続(PCI)バスなどを含むことができる。
【0236】
1つ以上の集積回路(例えば、従来のマイクロプロセッサまたはマイクロコントローラ)として実装され得る処理ユニット2604は、コンピュータシステム2600の動作を制御する。処理ユニット2604は、1つ以上のプロセッサを含んでもよい。これらのプロセッサは、シングルコアまたはマルチコアプロセッサを含んでもよい。いくつかの実施形態において、処理ユニット2604は、各処理ユニットに含まれるシングルコアまたはマルチコアプロセッサを有する1つ以上の独立した処理ユニット2632および/または2634として実装されてもよい。他の実施形態において、処理ユニット2604は、2つのデュアルコアプロセッサを単一のチップに統合することによって形成されたクワッドコア(quad-core)処理ユニットとして実装されてもよい。
【0237】
様々な実施形態において、処理ユニット2604は、プログラムコードに応答して様々なプログラムを実行することができ、同時に実行する複数のプログラムまたはプロセスを維持することができる。任意の時点で、実行されるプログラムコードの一部または全部は、プロセッサ2604および/または記憶サブシステム2618に常駐することができる。プロセッサ2604は、適切なプログラミングを通して、上述した様々な機能性を提供することができる。コンピュータシステム2600は、デジタル信号プロセッサ(DSP)、専用プロセッサおよび/または同種のものを含むことができる処理加速ユニット2606をさらに含んでもよい。
【0238】
I/Oサブシステム2608は、ユーザインターフェイス入力装置と、ユーザインターフェイス出力装置とを含むことができる。ユーザインターフェイス入力装置は、キーボード、マウスまたはトラックボールなどのポインティング装置、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声命令認識システムを備える音声入力装置、マイクロフォン、および他の種類の入力装置を含んでもよい。また、ユーザインターフェイス入力装置は、例えば、Microsoft Kinect(登録商標)モーションセンサのようなモーション検知および/またはジェスチャ認識装置を含んでもよい。Microsoft Kinect(登録商標)モーションセンサは、ジェスチャおよび音声命令を利用する自然ユーザインターフェース(NUI)を介して、Microsoft Xbox(登録商標)360ゲームコントローラなどの入力装置を制御することができ、それと対話することができる。また、ユーザインターフェイス入力装置は、Google Glass(登録商標)瞬き検出器のような眼球ジェスチャ認識装置を含むことができる。Google Glass(登録商標)瞬き検出器は、ユーザの眼球活動(例えば、写真を撮るときおよび/またはメニューを選択するときの「瞬き」)を検出し、眼球活動を入力装置(例えば、Google Glass(登録商標))に入力する入力に変換する。さらに、ユーザインターフェイス入力装置は、音声命令を介してユーザと音声認識システム(例えば、Siri(登録商標)ナビゲータ)との対話を可能にする音声認識検出装置を含んでもよい。
【0239】
また、ユーザインターフェイス入力装置は、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッド、グラフィックタブレット、スピーカなどのオーディオ/ビジュアル装置、デジタルカメラ、デジタルビデオカメラ、ポータブルメディアプレーヤ、ウェブカメラ、イメージスキャナ、指紋スキャナ、バーコードリーダ、3Dスキャナ、3Dプリンタ、レーザ距離計、および視線追跡装置を含むがこれらに限定されない。さらに、ユーザインターフェイス入力装置は、例えば、コンピュータ断層撮影装置、磁気共鳴像装置、超音波放射断層撮影装置、および医療用超音波装置などのような医用画像入力装置を含んでもよい。また、ユーザインターフェイス入力装置は、例えば、MIDIキーボードおよび電子楽器などの音声入力装置を含んでもよい。
【0240】
ユーザインターフェイス出力装置は、ディスプレイサブシステム、インジケータライト、またはオーディオ出力装置などの非視覚ディスプレイを含んでもよい。ディスプレイサブシステムは、例えば、陰極線管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを使用するフラットパネル装置、投射装置またはタッチスクリーンであってもよい。一般に、「出力装置」という用語を使用する場合、コンピュータシステム2600から情報をユーザまたは他のコンピュータに出力するためのすべての可能な種類の装置および機構を含むことを意図している。例えば、ユーザインターフェイス出力装置は、文字、画像およびオーディオ/ビデオ情報を視覚的に伝達するさまざまな表示装置、例えば、モニタ、プリンタ、スピーカ、ヘッドフォン、カーナビゲーションシステム、プロッタ、音声出力装置、およびモデムを含むがこれらに限定されない。
コンピュータシステム2600は、記憶サブシステム2618を含むことができる。記憶サブシステム2618は、ソフトウェア要素を備え、図示では、これらのソフトウェア要素は、システムメモリ2610内に配置されている。システムメモリ2610は、処理ユニット2604にロード可能かつ実行可能なプログラム命令、およびこれらのプログラムの実行により生成されたデータを記憶することができる。
【0241】
コンピュータシステム2600の構成およびタイプに応じて、システムメモリ2610は、揮発性メモリ(例えば、ランダムアクセスメモリ(random access memory:RAM))であってもよく、および/または、不揮発性メモリ(例えば、読取り専用メモリ(read-only memory:ROM)、フラッシュメモリ)であってもよい。一般に、RAMは、処理ユニット2604がすぐにアクセス可能なデータおよび/またはプログラムモジュール、および/または、処理ユニット2604によって現在操作および実行されているデータおよび/またはプログラムモジュールを収容する。いくつかの実現例では、システムメモリ2610は、スタティックランダムアクセスメモリ(static random access memory:SRAM)またはダイナミックランダムアクセスメモリ(dynamic random access memory:DRAM)などの複数の異なるタイプのメモリを含み得る。いくつかの実現例では、始動中などにコンピュータシステム2600内の要素間で情報を転送することを助ける基本ルーチンを含む基本入力/出力システム(basic input/output system:BIOS)が、一般にROMに格納され得る。一例としておよび非限定的に、システムメモリ2610は、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(relational database management system:RDBMS)などを含み得るアプリケーションプログラム2612、プログラムデータ2614およびオペレーティングシステム2616も示す。一例として、オペレーティングシステム2616は、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)および/もしくはLinux(登録商標)オペレーティングシステムのさまざまなバージョン、さまざまな市販のUNIX(登録商標)もしくはUNIXライクオペレーティングシステム(さまざまなGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OSなどを含むが、これらに限定されるものではない)、および/または、iOS、Windows(登録商標)フォン、アンドロイド(登録商標)OS、ブラックベリー(登録商標)26 OSおよびパーム(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含み得る。
【0242】
また、記憶サブシステム2618は、いくつかの実施例の機能を提供する基本的なプログラミングおよびデータ構造を格納するための有形のコンピュータ可読記憶媒体を提供することができる。プロセッサによって実行されたときに上記の機能を提供するソフトウェア(プログラム、コードモジュール、命令)は、記憶サブシステム2618に記憶されてもよい。これらのソフトウェアモジュールまたは命令は、処理ユニット2604によって実行されてもよい。また、記憶サブシステム2618は、本開示に従って使用されるデータを記憶するためのリポジトリを提供することができる。
【0243】
また、記憶サブシステム2600は、コンピュータ可読記憶媒体2622にさらに接続可能なコンピュータ可読記憶媒体リーダ2620を含むことができる。コンピュータ可読記憶媒体2622は、システムメモリ2610と共に、または必要に応じてシステムメモリ2610と組み合わせて、コンピュータ可読情報を一時的におよび/または永久に収容、格納、送信および検索するための記憶媒体に加えて、リモート記憶装置、ローカル記憶装置、固定的な記憶装置および/または取外し可能な記憶装置を包括的に表すことができる。
【0244】
また、コードまたはコードの一部を含むコンピュータ可読記憶媒体2622は、当該技術分野において公知のまたは使用される任意の適切な媒体を含んでもよい。当該媒体は、情報の格納および/または送信のための任意の方法または技術において実現される揮発性および不揮発性の、取外し可能および取外し不可能な媒体などであるが、これらに限定されるものではない記憶媒体および通信媒体を含む。これは、RAM、ROM、電子的消去・プログラム可能ROM(electronically erasable programmable ROM:EEPROM)、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(digital versatile disk:DVD)、または他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または他の有形のコンピュータ可読媒体などの有形のコンピュータ可読記憶媒体を含むことができる。また、これは、データ信号、データ送信などの無形のコンピュータ可読媒体、または、所望の情報を送信するために使用可能であり且つコンピュータシステム2600によってアクセス可能なその他の媒体を含むことができる。
【0245】
一例として、コンピュータ可読記憶媒体2622は、取外し不可能な不揮発性磁気媒体から読取るまたは当該媒体に書込むハードディスクドライブ、取外し可能な不揮発性磁気ディスクから読取るまたは当該ディスクに書込む磁気ディスクドライブ、ならびに、CD ROM、DVDおよびブルーレイ(登録商標)ディスクまたは他の光学式媒体などの取外し可能な不揮発性光学ディスクから読取るまたは当該ディスクに書込む光学式ディスクドライブを含んでもよい。コンピュータ可読記憶媒体2622は、ジップ(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(universal serial bus:USB)フラッシュドライブ、セキュアデジタル(secure digital:SD)カード、DVDディスク、デジタルビデオテープなどを含み得るが、これらに限定されるものではない。また、コンピュータ可読記憶媒体2622は、フラッシュメモリベースのSSD、企業向けフラッシュドライブ、ソリッドステートROMなどの不揮発性メモリに基づくソリッドステートドライブ(solid-state drive:SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAMなどの揮発性メモリに基づくSSD、DRAMベースのSSD、磁気抵抗RAM(magnetoresistive RAM:MRAM)SSD、およびDRAMとフラッシュメモリベースのSSDとの組み合わせを使用するハイブリッドSSDを含んでもよい。ディスクドライブおよびそれらの関連のコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータの不揮発性記憶装置をコンピュータシステム2600に提供することができる。
【0246】
通信サブシステム2624は、他のコンピュータシステムおよびネットワークとのインターフェイスを提供する。通信サブシステム2624は、他のシステムからデータを受信したり、コンピュータシステム2600から他のシステムにデータを送信するためのインターフェイスの役割を果たす。例えば、通信サブシステム2624は、コンピュータシステム2600がインターネットを介して1つ以上の装置に接続することを可能にし得る。いくつかの実施例では、通信サブシステム2624は、(例えば3G、4GまたはEDGE(enhanced data rates for global evolution)などの携帯電話技術、高度データネットワーク技術を用いて)無線音声および/またはデータネットワークにアクセスするための無線周波数(radio frequency:RF)トランシーバ構成要素、WiFi(登録商標)(IEEE802.11ファミリ標準または他のモバイル通信技術またはそれらの任意の組み合わせ)、全地球測位システム(global positioning system:GPS)レシーバ構成要素、および/または、他の構成要素を含んでもよい。いくつかの実施例では、通信サブシステム2624は、無線インターフェイスに加えて、または無線インターフェイスの代わりに、有線ネットワーク接続(例えばイーサネット)を提供することができる。
【0247】
また、いくつかの実施例において、通信サブシステム2624は、コンピュータシステム2600を使用し得る1人以上のユーザを代表して、構造化されたおよび/または構造化されていないデータフィード2626、イベントストリーム2628、イベント更新2630などの形態で入力通信を受信することができる。
【0248】
一例として、通信サブシステム2624は、ツイッター(登録商標)フィード、フェースブック(登録商標)更新、リッチ・サイト・サマリ(Rich Site Summary:RSS)フィードなどのウェブフィードなどのデータフィード2626をリアルタイムでソーシャルネットワークおよび/または他の通信サービスのユーザから受信し、および/または、1つ以上の第三者情報源からリアルタイム更新を受信するように構成されてもよい。
【0249】
また、通信サブシステム2624は、連続的なデータストリームの形態でデータを受信するように構成され得て、当該データは、連続的である場合もあれば本質的に明確な端部を持たない状態で境界がない場合もあるリアルタイムイベントのイベントストリーム2628および/またはイベント更新2630を含んでもよい。連続的なデータを生成するアプリケーションの例としては、例えばセンサデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール(例えばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通モニタリングなどを含んでもよい。
【0250】
また、通信サブシステム2624は、構造化されたおよび/または構造化されていないデータフィード2626、イベントストリーム2628、イベント更新2630などを、コンピュータシステム2600に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに出力するように構成されてもよい。
【0251】
コンピュータシステム2600は、手持ち式携帯機器(例えば、iPhone(登録商標)携帯電話、Ipad(登録商標)計算タブレット、PDA)、ウェアラブル装置(例えば、Google Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラックまたはその他のデータ処理システムを含む様々な種類のうちの1つであってもよい。
【0252】
前述の説明において、説明の目的で、本開示の実施例を完全に理解できるようにするために、具体的な詳細を記載する。しかしながら、これらの具体的な詳細がなくても、様々な実施例を実施できることは明らかであろう。以下の説明は、例のみを提供し、本開示の範囲、適用性、または構成を制限することを意図していない。むしろ、実施例の以下の説明は、実施例を実施するための可能な説明を当業者に提供するものである。添付の特許請求の範囲に規定される本開示の精神及び範囲から逸脱することなく、要素の機能および配置に様々な変更を加えることができることを理解されたい。図面および説明は、制限的であることを意図していない。回路、システム、ネットワーク、プロセス、および他の構成要素は、不必要な詳細で実施例を不明瞭にしないために、ブロック図の形態で構成要素として示されてもよい。他の実施例では、周知の回路、プロセス、アルゴリズム、構造、および技術は、実施例を不明瞭にしないために、不必要な詳細なしに示されてもよい。本開示の教示は、モバイルアプリケーション、非モバイルアプリケーション、デスクトップアプリケーション、ウェブアプリケーション、エンタープライズアプリケーションなどの様々な種類のアプリケーションに適用することもできる。また、本開示の教示は、特定の動作環境(例えば、オペレーティングシステム、デバイス、プラットフォームなど)に限定されるものではなく、複数の異なる動作環境に適用することができる。
【0253】
また、留意すべきことは、各々の実施例は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として示された処理として説明されていることである。フローチャートは、操作を順次処理として説明しているが、多くの操作は、並行でまたは同時に実行することができる。さらに、操作の順序を再配置してもよい。処理は、その操作が完了した時点で終了するが、図に示されていない追加のステップを含んでもよい。処理は、メソッド、関数、プロシージャ、サブルーチン、サブプログラムなどに対応することができる。処理が関数に対応する場合、その終了は、呼び出し関数またはメイン関数の戻りに対応することができる。
【0254】
「例」および「例示的」という用語は、本明細書において、「例、事例、または例示として役立つ」という意味で使用される。本明細書において「例示的」または「例」として説明された任意の実施形態または設計は、必ずしも他の実施形態または設計よりも好ましいまたは有利であると解釈されるべきではない。
【0255】
「機械可読記憶媒体」または「コンピュータ可読記憶媒体」という用語は、携帯型または非携帯型の記憶装置、光記憶装置、ならびに命令および/またはデータを記憶、格納、または搬送することができる様々な他の媒体を含むが、これらに限定されない。機械可読記憶媒体またはコンピュータ可読記憶媒体は、データを記憶することができ、無線または有線接続を介して伝搬する搬送波および/または一時的な電子信号を含まない非一時的な媒体を含んでもよい。非一時的な媒体の例は、磁気ディスクまたはテープ、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリまたはメモリ装置を含み得るが、これらに限定されない。コンピュータプログラム製品は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、命令、データ構造、またはプログラム文の任意の組み合わせを表し得るコードおよび/または機械実行可能命令を含んでもよい。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を転送および/または受取ることによって、別のコードセグメントまたはハードウェア回路に結合されてもよい。情報、引数、パラメータおよびデータなどは、メモリ共有、メッセージ転送、トークン転送、ネットワーク送信などの任意の適切な手段を介して、伝達され、転送され、または送信されてもよい。
【0256】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組み合わせによって実施されてもよい。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードに実施される場合、必要な作業を実行するプログラムコードまたはコードセグメントは、機械可読媒体に記憶されてもよい。プロセッサは、必要な作業を実行することができる。一部の図面に示されたシステムは、様々な構成で提供されてもよい。いくつかの例において、システムは、システムの1つ以上の要素がクラウドコンピューティングシステム内の1つ以上のネットワークにわたって分散される分散システムとして構成されてもよい。要素が特定の動作を実行するように「構成されている」として説明される場合、このような構成は、例えば、動作を実行するように電子回路または他のハードウェアを設計することによって、動作を実行するように電子回路(例えば、マイクロプロセッサまたは他の適切な電子回路)をプログラミングまたは制御することによって、またはそれらの任意の組み合わせによって達成されてもよい。
【0257】
本開示の特定の実施形態を説明してきたが、さまざまな変更、改変、代替構成、および同等物も本開示の範囲内に包含される。本開示の実施形態は、特定のデータ処理環境内で動作するのに限定されず、複数のデータ処理環境内で自由に動作することができる。さらに、一連の特定の処置およびステップを用いて本開示の実施形態を説明してきたが、本開示の範囲が説明された一連の処置およびステップに限定されないことは、当業者にとって明らかであろう。上述した実施形態のさまざまな特徴および態様は、個別にまたは共同で使用することができる。
【0258】
さらに、ハードウェアおよびソフトウェアの特定の組み合わせを用いて本開示の実施形態を説明してきたが、ハードウェアおよびソフトウェアの他の組み合わせも本開示の範囲内に含まれることを認識すべきである。ハードウェアのみ、ソフトウェアのみ、またはそれらの組み合わせを用いて、本開示の実施形態を実現することができる。本開示に記載されたさまざまなプロセスは、同一のプロセッサまたは任意の組み合わせの異なるプロセッサ上で実行することができる。したがって、特定の処理を実行するように構成要素またはモジュールを構成すると説明する場合、その構成は、例えば、その処理を実行するように電子回路を設計することによって、その処理を実行するようにプログラム可能な電子回路(マイクロプロセッサなど)をプログラムすることによって、またはそれらの組み合わせによって実現することができる。プロセスは、プロセス間の通信を行う従来技術を含むがこれに限定されないさまざまな技術を用いて通信を行うことができる。異なる対のプロセスは、異なる技術を使用することができ、または同一対のプロセスは、異なる時間で異なる技術を使用することができる。
【0259】
したがって、明細書および図面は、限定的な意味ではなく例示的な意味であるとみなすべきである。しかしながら、特許請求の範囲により定められた幅広い主旨および範囲から逸脱することなく、追加、削減、削除および他の修飾および変更を行ってもよいことは、明らかであろう。したがって、本開示の特定の実施形態を説明したが、これらの実施形態は、限定することを意図していない。さまざまな変更およびその等価物は、添付の特許請求の範囲に含まれる。
【0260】
本開示を説明する文脈に(特に特許請求の範囲の文脈に)使用された不定冠詞「a」/「an」、定冠詞「the」および同様の参照は、本明細書に特に明記しない限りまたは内容上明らかに他の意味を示す場合を除き、単数および複数の両方を含むように解釈すべきである。用語「含む(comprising)」、「有する(having)」、「含む(including)」、および「含有する(containing)」は、特に明記しない限り、非限定的な用語(すなわち、「含むがこれに限定されない」という意味)として解釈されるべきである。「接続されている」という用語は、たとえ何かが介在していても、その一部または全部が内部に含まれている、取り付けられている、または一緒に結合されていると解釈されるべきである。本明細書において、値の範囲の列挙は、単にその範囲内に含まれる各個別の値を各々言及する速記方法として意図され、本明細書に特に明記しない限り、各個別の値は、本明細書に個別に記載されるように、本明細書に組み込まれる。本明細書に特に明記しない限りまたは内容上明らかに他の意味を示す場合を除き、本明細書に記載の全ての方法は、任意の適切な順序で行うことができる。本明細書において、任意の例および全ての例または例示的な言語(例えば、「~のような」)の使用は、本開示の実施形態をより明瞭にするよう意図されており、特に明記しない限り、本開示の範囲を限定するものではない。明細書内の用語は、本開示の実施に不可欠な任意の非請求要素を示すものと解釈すべきではない。
【0261】
句「X、Y、またはZの少なくとも1つ」というフレーズのような選言的言語は、特に断らない限り、項目、用語などがX、YもしくはZ、またはそれらの任意の組み合わせ(例えば、X、Y、および/またはZ)のいずれかであってもよいことを示すために一般的に用いられるものとして文脈内で理解されることを意図している。したがって、このような選言的言語は、特定の実施形態が、Xの少なくとも1つ、Yの少なくとも1つ、またはZの少なくとも1つが存在することを必要とすることを一般的に意図しておらず、または暗示していない。
【0262】
本開示の実施形態の例は、以下の項に照らして説明することができる。
項1
システムであって、
顧客のために構成された第1の仮想ネットワークを備え、第1の仮想ネットワークは、第1のインターネットプロトコル(IP)アドレスを有する第1のリソースを含み、
サービスプロバイダのために構成された第2の仮想ネットワークを備え、第2の仮想ネットワークは、第2のIPアドレスを有する第2のリソースを含み、第2のリソースによる第1のリソースへのアクセスに基づいて顧客にサービスを提供するように構成され、
1つ以上のネットワークリソースを備え、
1つ以上のネットワークリソースは、ネットワークアドレス変換(NAT)マッピングに基づいて、第1のIPアドレスと保留IPアドレスとの間のNATマッピングを決定するように構成され、保留IPアドレスは、第1の仮想ネットワークの第1のIPアドレス範囲外および第2の仮想ネットワークの第2のIPアドレス範囲外にあり、
1つ以上のネットワークリソースは、第1のパケットを第2の仮想ネットワークに送信すること、または第2の仮想ネットワークから第2のパケットを受信することの少なくとも一方を実行するように構成され、第1のパケットのペイロードは、保留IPアドレスを含み、第2のパケットのヘッダは、保留IPアドレスを宛先アドレスとして含み、
第1のリソースへの第2のリソースのアクセスは、第1のIPアドレスと保留IPアドレスとの間のNATマッピングに基づいている、システム。
【0263】
項2
1つ以上のネットワークリソースは、ゲートウェイを含み、
第2のパケットは、ゲートウェイによって受信され、
ゲートウェイは、
第1のIPアドレスと保留IPアドレスとの間のNATマッピングに基づいて第1のIPアドレスを決定し、
第1のIPアドレスを用いて保留IPアドレスを少なくとも置換することによって第2のパケットを更新し、
更新された第2のパケットを第1の仮想ネットワークに送信するように構成されている、項1に記載のシステム。
【0264】
項3
1つ以上のネットワークリソースは、ドメイン名システム(DNS)サービスを含み、
第1のパケットは、DNSサービスによって送信され、
DNSサービスは、
第2の仮想ネットワークから、完全修飾ドメイン名(FQDN)を含むDNSクエリを受信し、
FQDNと顧客に関連付けられたFQDNリストとの間の適合を判定し、
DNSクエリを顧客のDNSリゾルバに送信し、
DNSリゾルバから、第1のIPアドレスを含むDNS応答を受信し、
第1のIPアドレスと保留IPアドレスとの間のNATマッピングを生成し、
NATマッピングに基づいて、保留IPアドレスを用いて第1のIPアドレスを少なくとも置換することによって、DNS応答を更新し、
更新されたDNS応答を第2の仮想ネットワークに送信するように構成されている、項1に記載のシステム。
【0265】
項4
1つ以上のネットワークリソースは、ドメイン名システム(DNS)サービスを含み、
第1のパケットは、DNSサービスによって送信され、
DNSサービスは、
第2の仮想ネットワークから、完全修飾ドメイン名(FQDN)を含むDNSクエリを受信し、
FQDNが顧客に関連付けられたFQDNリストから除外されていると判断し、
DNSクエリをサービスプロバイダのDNSリゾルバに送信し、
DNSリゾルバから、第3のIPアドレスを含むDNS応答を受信し、
DNS応答を第2の仮想ネットワークに送信するように構成されている、項1に記載のシステム。
【0266】
項5
1つ以上のネットワークリソースは、データベースサービスを含み、
データベースサービスは、
第2の仮想ネットワークから、データベースクエリを受信し、
第1の仮想ネットワークの第1のネットワークインターフェイスの第3のIPアドレスと、第1の仮想ネットワークのデータベースの第4のIPアドレスとを決定し、
データベースクエリを、第3のIPアドレスをソースとして含み、第4のIPアドレスを宛先として含む第3のパケットに入れて第1の仮想ネットワークに送信し、
第1の仮想ネットワークから、データベース応答を受信し、
第2の仮想ネットワークの第2のネットワークインターフェイスの第5のIPアドレスを決定し、
データベース応答を、第5のIPアドレスをソースとして含み、第2のIPアドレスを宛先として含む第4のパケットに入れて第2の仮想ネットワークに送信するように構成されている、項1に記載のシステム。
【0267】
項6
第1のIPアドレス範囲は、第2のIPアドレス範囲と重複する、項1に記載のシステム。
【0268】
項7
第1のIPアドレス範囲は、他の顧客のために構成された第3の仮想ネットワークの第3のIPアドレス範囲と重複し、
サービスプロバイダの第2のリソースは、第2のリソースによる第3の仮想ネットワークの第3のリソースへのアクセスに基づいて、サービスを他の顧客に提供するように構成されている、項1に記載のシステム。
【0269】
項8
第1の仮想ネットワークに関連付けられた仮想ネットワークインターフェイスカードをさらに備え、
仮想ネットワークインターフェイスカードは、第1のIPアドレス範囲内の複数のIPアドレスを用いてアドレス指定可能である、項1に記載のシステム。
【0270】
項9
複数のIPアドレスのうちの少なくとも1つは、サービスプロバイダの異なるサービスに関連付けられる、項8に記載のシステム。
【0271】
項10
第2の仮想ネットワークに関連付けられた仮想ネットワークインターフェイスカードをさらに備え、
仮想ネットワークインターフェイスカードは、第2のIPアドレス範囲内の複数のIPアドレスを用いてアドレス指定可能である、項1に記載のシステム。
【0272】
項11
複数のIPアドレスのうちの少なくとも2つは、サービスプロバイダの異なるサービスに関連付けられる、項10に記載のシステム。
【0273】
項12
システムによって実施される方法であって、方法は、
ネットワークアドレス変換(NAT)マッピングに基づいて、第1のIPアドレスと保留IPアドレスとの間のNATマッピングを決定することを含み、第1のIPアドレスは、顧客のために構成された第1の仮想ネットワークの第1のIPアドレス範囲内にあり、保留IPアドレスは、第1のIPアドレス範囲外およびサービスプロバイダのために構成された第2の仮想ネットワークの第2のIPアドレス範囲外にあり、
第1のパケットを第2の仮想ネットワークに送信すること、または第2の仮想ネットワークから第2のパケットを受信することの少なくとも一方を含み、第1のパケットのペイロードは、保留IPアドレスを含み、第2のパケットのヘッダは、保留IPアドレスを宛先アドレスとして含み、
第2の仮想ネットワークの第2のリソースによる第1の仮想ネットワークの第1のリソースへのアクセスは、第1のIPアドレスと保留IPアドレスとの間のNATマッピングに基づいている、方法。
【0274】
項13
サービスプロバイダのサービスに対する顧客の要求を受信することと、
顧客識別子とサービスプロバイダ識別子の対に対して、一組のDNSサービスのうちの少なくとも1つを起動することとをさらに含む、項12に記載の方法。
【0275】
項14
第2のパケットのプロトコルと、ソースIPアドレスと、ソースポートと、宛先IPアドレスと、宛先ポートとを含むタプルを決定することと、
タプルに基づいて、一組のDNSサービスからDNSサービスを選択することと、
第2のパケットをDNSサービスに送信することとをさらに含む、項13に記載の方法。
【0276】
項15
第1のIPアドレス範囲は、第2のIPアドレス範囲と重複する、項12に記載の方法。
【0277】
項16
第1のIPアドレス範囲は、他の顧客のために構成された第3の仮想ネットワークの第3のIPアドレス範囲と重複し、
サービスプロバイダの第2のリソースは、第2のリソースによる第3の仮想ネットワークの第3のリソースへのアクセスに基づいて、サービスを他の顧客に提供するように構成されている、項12に記載の方法。
【0278】
項17
システム上で実行されると、システムに以下の動作を実行させる命令を記憶する1つ以上の非一時的なコンピュータ可読記憶媒体であって、
動作は、
ネットワークアドレス変換(NAT)マッピングに基づいて、第1のIPアドレスと保留IPアドレスとの間のNATマッピングを決定することを含み、第1のIPアドレスは、顧客のために構成された第1の仮想ネットワークの第1のIPアドレス範囲内にあり、保留IPアドレスは、第1のIPアドレス範囲外およびサービスプロバイダのために構成された第2の仮想ネットワークの第2のIPアドレス範囲外にあり、
第1のパケットを第2の仮想ネットワークに送信すること、または第2の仮想ネットワークから第2のパケットを受信することの少なくとも一方を含み、第1のパケットのペイロードは、保留IPアドレスを含み、第2のパケットのヘッダは、保留IPアドレスを宛先アドレスとして含み、
第2の仮想ネットワークの第2のリソースによる第1の仮想ネットワークの第1のリソースへのアクセスは、第1のIPアドレスと保留IPアドレスとの間のNATマッピングに基づいている、非一時的なコンピュータ可読記憶媒体。
【0279】
項18
動作は、
第1のIPアドレスと保留IPアドレスとの間のNATマッピングに基づいて第1のIPアドレスを決定することと、
第1のIPアドレスを用いて保留IPアドレスを少なくとも置換することによって第2のパケットを更新することと、
更新された第2のパケットを第1の仮想ネットワークに送信することとをさらに含む、項17に記載の非一時的なコンピュータ可読記憶媒体。
【0280】
項19
動作は、
第2の仮想ネットワークから、完全修飾ドメイン名(FQDN)を含むDNSクエリを受信することと、
FQDNと顧客に関連付けられたFQDNリストとの間の適合を判定することと、
DNSクエリを顧客のDNSリゾルバに送信することと、
DNSリゾルバから、第1のIPアドレスを含むDNS応答を受信することと、
第1のIPアドレスと保留IPアドレスとの間のNATマッピングを生成することと、
NATマッピングに基づいて、保留IPアドレスを用いて第1のIPアドレスを少なくとも置換することによって、DNS応答を更新することと、
更新されたDNS応答を第2の仮想ネットワークに送信することとをさらに含む、項17に記載の非一時的なコンピュータ可読記憶媒体。
【0281】
項20
動作は、
第2の仮想ネットワークから、データベースクエリを受信することと、
第1の仮想ネットワークの第1のネットワークインターフェイスの第3のIPアドレスと、第1の仮想ネットワークのデータベースの第4のIPアドレスとを決定することと、
データベースクエリを、第3のIPアドレスをソースとして含み、第4のIPアドレスを宛先として含む第3のパケットに入れて第1の仮想ネットワークに送信することと、
第1の仮想ネットワークから、データベース応答を受信することと、
第2の仮想ネットワークの第2のネットワークインターフェイスの第5のIPアドレスを決定することと、
データベース応答を、第5のIPアドレスをソースとして含み、第2のリソースの第2のIPアドレスを宛先として含む第4のパケットに入れて第2の仮想ネットワークに送信することとをさらに含む、項17に記載の非一時的なコンピュータ可読記憶媒体。
【0282】
本開示を実施するために知られている最良の形態を含み、本開示の好ましい実施形態が本明細書に記載されている。これらの好ましい実施形態の変形形態は、前述の説明を読めば当業者には明らかになるであろう。当業者は、適宜、このような変形例を採用することができ、本開示は、本明細書に具体的に記載されている以外の方法で実施されてもよい。したがって、本開示は、適用される法律によって許可され、本明細書に添付された請求項に記載された主題の全ての変形および等価物を含む。さらに、その全ての可能な変形における上記の要素の任意の組み合わせは、本明細書において別段の指示がない限り、本開示に包含される。
【0283】
本明細書に引用された刊行物、特許出願、および特許を含む全ての参考文献は、各文献が参照により組み込まれることが個別にかつ明確に示され、その全体が本明細書に記載された場合と同じ程度に、参照により組み込まれるものとする。
【0284】
前述の明細書において、本開示の態様は、その特定の実施形態を参照して説明されているが、当業者は、本開示がそれに限定されないことを認識するであろう。上述の開示の様々な特徴および態様は、個々にまたは共同で使用されてもよい。さらに、実施形態は、本明細書のより広い精神および範囲から逸脱することなく、本明細書に説明されるものを超える任意の数の環境および用途において利用されることができる。したがって、明細書および図面は、限定的ではなく例示的であると見なされるべきである。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
【国際調査報告】