(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-30
(54)【発明の名称】顧客管理キーを使用した顧客オンプレミスネットワークから顧客仮想クラウドネットワークへのエンドツーエンドネットワーク暗号化
(51)【国際特許分類】
H04L 9/08 20060101AFI20240123BHJP
H04L 12/22 20060101ALI20240123BHJP
G06F 9/455 20180101ALI20240123BHJP
【FI】
H04L9/08 C
H04L12/22
G06F9/455 150
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023538798
(86)(22)【出願日】2021-12-16
(85)【翻訳文提出日】2023-08-21
(86)【国際出願番号】 US2021063715
(87)【国際公開番号】W WO2022140143
(87)【国際公開日】2022-06-30
(32)【優先日】2020-12-23
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ポットラパリ,ナチキース・ラオ
(72)【発明者】
【氏名】ビンセント,パラディープ
(72)【発明者】
【氏名】ブラール,ジャグウィンダー・シング
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA15
5K030HA08
5K030HC01
5K030LC13
(57)【要約】
仮想クラウドネットワークのエンドツーエンド暗号化のために、ハードウェアでセキュリティ保護され顧客によって管理される暗号化キーを使用して、顧客デバイスからのVPNトンネルをホストネットワークヘッドエンドデバイスで終端させる。ネットワークヘッドエンドデバイスは、1つ以上のネットワーク仮想化デバイスを有するベアメタルサーバ内のカードであり得る。ネットワークヘッドエンドデバイスは、顧客によってプロビジョニングされた第1のキーを受け取り、顧客のデバイスから送信された第1のデータパケットを受信し、第1のキーを使用して第1のデータパケットを復号して情報を取得するように構成されている。ネットワーク仮想化デバイスは、ネットワークヘッドエンドデバイスから情報を受信し、情報が仮想クラウドネットワーク内の仮想マシンに送信されるべきであることを確認し、仮想クラウドネットワーク内のデータが暗号化されるように構成されていることを確認し、第2のキーを使用して情報を暗号化して第2のデータパケットを生成し、その後、第2のデータパケットを仮想マシンにルーティングするように構成されている。
【特許請求の範囲】
【請求項1】
システムであって、
ネットワークヘッドエンドデバイスを含み、前記ネットワークヘッドエンドデバイスは、
顧客によってプロビジョニングされた第1のキーを受け取り、
前記顧客のデバイスから送信された第1のデータパケットを受信し、
前記第1のキーを使用して前記第1のデータパケットを復号して情報を取得するように構成され、前記システムはさらに、
ネットワーク仮想化デバイスを含み、前記ネットワーク仮想化デバイスは、
前記第1のデータパケットが復号された後に、前記ネットワークヘッドエンドデバイスから前記情報を受信し、
前記情報が仮想クラウドネットワーク内の仮想マシンに送信されるべきであることを確認し、
前記仮想クラウドネットワーク内のデータが暗号化されるように構成されていることを確認し、
第2のキーを使用して前記情報を暗号化して第2のデータパケットを生成し、
前記第2のデータパケットを前記仮想マシンにルーティングするように構成されている、システム。
【請求項2】
前記システムはホストによって維持され、前記ホストは前記第1のキーまたは前記第2のキーへのアクセスを有していない、請求項1に記載のシステム。
【請求項3】
前記ネットワークヘッドエンドデバイスは、前記ネットワークヘッドエンドデバイスと顧客デバイスとの間に形成されるインターネットプロトコルセキュリティ(IPSec)トンネルの終端点であるように構成されている、請求項1または2のいずれか1項に記載のシステム。
【請求項4】
前記第1のデータパケットはパブリックインターネットを通してルーティングされる、請求項1~3のいずれか1項に記載のシステム。
【請求項5】
前記第1のデータパケットは、パブリックインターネット内のリンクを使用せずに、プライベートリンクのセットを通してルーティングされる、請求項1~3のいずれか1項に記載のシステム。
【請求項6】
前記ネットワーク仮想化デバイスは、前記仮想クラウドネットワーク内の前記仮想マシンのインスタンスをサポートする、請求項1~5のいずれか1項に記載のシステム。
【請求項7】
前記ネットワークヘッドエンドデバイスはネットワークインターフェイスカードである、請求項1~6のいずれか1項に記載のシステム。
【請求項8】
前記ネットワークヘッドエンドデバイスはネットワークインターフェイスカード上にあり、前記ネットワーク仮想化デバイスは前記ネットワークインターフェイスカードの一部である、請求項1~6のいずれか1項に記載のシステム。
【請求項9】
前記ネットワークヘッドエンドデバイスおよび前記ネットワーク仮想化デバイスは同じサーバ内にある、請求項1~6のいずれか1項に記載のシステム。
【請求項10】
前記ネットワークヘッドエンドデバイスは、ホストの他の顧客が前記ネットワークヘッドエンドデバイスを使用しないように、前記顧客に専用である、請求項1~6のいずれか1項に記載のシステム。
【請求項11】
前記ネットワーク仮想化デバイスは、キー管理サービスと通信して前記第2のキーを取得する、請求項1~10のいずれか1項に記載のシステム。
【請求項12】
前記顧客は、キー管理サービスを使用して前記ネットワークヘッドエンドデバイスにおいて前記第1のキーをプロビジョニングする、請求項1~11のいずれか1項に記載のシステム。
【請求項13】
前記ネットワークヘッドエンドデバイスは第1のネットワークヘッドエンドデバイスであり、前記システムは、前記顧客からのデータを復号するように構成された第2のネットワークヘッドエンドデバイスをさらに含む、請求項1~12のいずれか1項に記載のシステム。
【請求項14】
前記ネットワーク仮想化デバイスは第1のネットワーク仮想化デバイスであり、
前記仮想クラウドネットワークは第1の仮想クラウドネットワークであり、
前記システムは第2のネットワーク仮想化デバイスをさらに含み、
前記第2のネットワーク仮想化デバイスは、前記ネットワークヘッドエンドデバイスからデータを受信し、前記ネットワークヘッドエンドデバイスから受信したデータを第2の仮想クラウドネットワークのために第3のキーを使用して暗号化するように構成されている、請求項1~13のいずれか1項に記載のシステム。
【請求項15】
前記第1のネットワーク仮想化デバイスおよび前記第2のネットワーク仮想化デバイスは同じネットワークインターフェイスカードの一部である、請求項14に記載のシステム。
【請求項16】
前記ネットワークヘッドエンドデバイスは、ホストが前記顧客を認証した後に前記顧客から前記第1のキーを受け取るように構成されている、請求項1~15のいずれか1項に記載のシステム。
【請求項17】
方法であって、
ネットワークヘッドエンドデバイスを使用して、顧客によってプロビジョニングされた第1のキーを受け取ることと、
前記ネットワークヘッドエンドデバイスにおいて、前記顧客のデバイスから送信された第1のデータパケットを受信することと、
前記第1のキーを使用して前記第1のデータパケットを復号して、情報を取得することと、
ネットワーク仮想化デバイスを使用して、前記ネットワークヘッドエンドデバイスから前記情報を受信することと、
前記情報が仮想クラウドネットワーク内の仮想マシンに送信されるべきであることを確認することと、
第2のキーを使用して前記ネットワーク仮想化デバイスで前記情報を暗号化して、第2のデータパケットを生成することと、
前記第2のデータパケットを前記仮想マシンにルーティングすることとを含む、方法。
【請求項18】
前記方法は、前記第2のキーを使用して前記情報を暗号化する前に、前記仮想クラウドネットワーク内のデータが暗号化されるように構成されていることを確認することを含む、請求項17に記載の方法。
【請求項19】
1つ以上のプロセッサによって実行可能な複数の命令を格納する非一時的なコンピュータ読取可能メモリであって、前記複数の命令は、前記1つ以上のプロセッサによって実行されると前記1つ以上のプロセッサに処理を実行させる命令を含み、前記処理は、
ネットワークヘッドエンドデバイスを使用して、顧客によってプロビジョニングされた第1のキーを受け取ることと、
前記ネットワークヘッドエンドデバイスにおいて、前記顧客のデバイスから送信された第1のデータパケットを受信することと、
前記第1のキーを使用して前記第1のデータパケットを復号して、情報を取得することと、
ネットワーク仮想化デバイスを使用して、前記ネットワークヘッドエンドデバイスから前記情報を受信することと、
前記情報が仮想クラウドネットワーク内の仮想マシンに送信されるべきであることを確認することと、
第2のキーを使用して前記ネットワーク仮想化デバイスで前記情報を暗号化して、第2のデータパケットを生成することと、
前記第2のデータパケットを前記仮想マシンにルーティングすることとを含む、非一時的なコンピュータ読取可能メモリ。
【請求項20】
前記複数の命令は、前記1つ以上のプロセッサによって実行されると、パブリックインターネットを介して前記第1のデータパケットを受信することを含む処理を前記1つ以上のプロセッサに実行させる命令をさらに含む、請求項19に記載の非一時的なコンピュータ読取可能メモリ。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2020年12月23日に出願され「顧客管理キーを使用した顧客オンプレミスネットワークから顧客仮想クラウドネットワークへのエンドツーエンドネットワーク暗号化(END-TO-END NETWORK ENCRYPTION FROM CUSTOMER ON-PREMISE NETWORK TO CUSTOMER VIRTUAL CLOUD NETWORK USING CUSTOMER-MANAGED KEYS)」と題された米国出願第17/133,523号に基づく利益を主張し、その全内容を引用により本明細書に援用する。
【0002】
本願は、2020年12月23日に出願され「ネットワーク仮想化デバイスにおいて顧客管理キーを使用して顧客VCNネットワーク暗号化を提供するメカニズム(MECHANISM TO PROVIDE CUSTOMER VCN NETWORK ENCRYPTION USING CUSTOMER-MANAGED KEYS IN NETWORK VIRTUALIZATION DEVICE)」と題された米国出願第17/133,526号に関連しており、その全内容を引用により本明細書に援用する。
【背景技術】
【0003】
背景
仮想クラウドネットワーク(VCN)は、カスタマイズ可能なプライベートネットワークである。VCNは、従来のデータセンターネットワークと同様に、ネットワーク環境を制御する。これには、プライベートIPアドレスの割り当て、サブネットの作成、ルートテーブルの作成、およびファイアウォールの構成が含まれる。1つのテナントが複数のVCNを有することができるので、関連リソースのグループ化および分離が可能である。
【発明の概要】
【発明が解決しようとする課題】
【0004】
VCN内のデータは、セキュリティのために暗号化することができる。暗号化の目的の1つは、正しいキーを知らなければ暗号文を対応する平文に戻すことが非常に難しい(たとえば計算的に実行不可能である)ように、キーに基づいて平文データを解読不能な暗号文に変換することである。対称暗号システムでは、同じデータの暗号化と復号の両方に同じキーを使用する。いくつかの暗号化アルゴリズムでは、キーの長さは128ビット、192ビット、または256ビットであり得る。いくつかの暗号化標準(たとえばデータ暗号化標準(DES))アルゴリズムでは、メッセージデータをDESアルゴリズムに3回渡すことによって暗号化する。3DESは高度なメッセージセキュリティを提供することができるが、パフォーマンスペナルティを伴う。パフォーマンスペナルティの度合いは、暗号化を実行するプロセッサの速度によって異なり得る。RSA Data Security社が開発したRC4アルゴリズムは、高速データ暗号化の国際標準となっている。RC4は、DESの数倍の速度で動作する可変のキー長のストリーム暗号なので、パフォーマンスへの影響を最小限に抑えつつ大量のデータ転送を暗号化することができる。ネットワークデータの暗号化によってデータのプライバシーが守られるため、権限のない者はネットワーク上を通過中の平文データを見ることはできない。
【0005】
簡単な概要
本開示は、概して仮想クラウドネットワーク(VCN)に関する。より具体的には、限定されるものではないが、顧客が暗号化キーを管理する、エンドツーエンド暗号化のために顧客とVCNとの間のデータを暗号化する技術について説明する。共有キーを使用してVPNトンネルをホストのVPNゲートウェイで終端させる代わりに、ハードウェアでセキュリティ保護され顧客によって管理される暗号化キーを使用して、顧客デバイスからのVPNトンネルをホストデバイスで終端させる。デバイスは、ネットワーク仮想化デバイスを有するベアメタルサーバである。
【課題を解決するための手段】
【0006】
特定の実施形態では、システムは、ネットワークヘッドエンドデバイスおよびネットワーク仮想化デバイスを含む。上記ネットワークヘッドエンドデバイスは、顧客によってプロビジョニングされた第1のキーを受け取り、上記顧客のデバイスから送信された第1のデータパケットを受信し、および/または上記第1のキーを使用して上記第1のデータパケットを復号して情報を取得するように構成されている。上記ネットワーク仮想化デバイスは、上記第1のデータパケットが復号された後に、上記ネットワークヘッドエンドデバイスから上記情報を受信し、上記情報が仮想クラウドネットワーク内の仮想マシンに送信されるべきであることを確認し、上記仮想クラウドネットワーク内のデータが暗号化されるように構成されていることを確認し、第2のキーを使用して上記情報を暗号化して第2のデータパケットを生成し、および/または上記第2のデータパケットを上記仮想マシンにルーティングするように構成されている。
【0007】
特定の実施形態では、上記システムはホストによって維持され、上記ホストは上記第1のキーまたは上記第2のキーにアクセスできず、上記ネットワークヘッドエンドデバイスは、上記ネットワークヘッドエンドデバイスと顧客デバイスとの間に形成されるインターネットプロトコルセキュリティ(IPSec)トンネルの終端点であるように構成され、上記第1のデータパケットはパブリックインターネットを通してルーティングされ、上記第1のデータパケットは、パブリックインターネット内のリンクを使用せずに、プライベートリンクのセットを通してルーティングされ、上記ネットワーク仮想化デバイスは、上記仮想クラウドネットワーク内の仮想マシンのインスタンスをサポートし、上記ネットワークヘッドエンドデバイスはネットワークインターフェイスカードであり、上記ネットワークヘッドエンドデバイスはネットワークインターフェイスカード上にあり、上記ネットワーク仮想化デバイスは上記ネットワークインターフェイスカードの一部であり、上記ネットワークヘッドエンドデバイスおよび上記ネットワーク仮想化デバイスは同じサーバ内にあり、上記ネットワークヘッドエンドデバイスは、ホストの他の顧客が上記ネットワークヘッドエンドデバイスを使用しないように、上記顧客に専用であり、上記ネットワーク仮想化デバイスは、キー管理サービスと通信して上記第2のキーを取得し、上記顧客は、キー管理サービスを使用して上記ネットワークヘッドエンドデバイスにおいて上記第1のキーをプロビジョニングし、上記ネットワークヘッドエンドデバイスは第1のネットワークヘッドエンドデバイスであり、上記システムは、上記顧客からのデータを復号するように構成された第2のネットワークヘッドエンドデバイスをさらに含み、上記ネットワーク仮想化デバイスは第1のネットワーク仮想化デバイスであり、上記仮想クラウドネットワークは第1の仮想クラウドネットワークであり、上記システムは第2のネットワーク仮想化デバイスをさらに含み、および/または、上記第2のネットワーク仮想化デバイスは、上記ネットワークヘッドエンドデバイスからデータを受信し、上記ネットワークヘッドエンドデバイスから受信したデータを第2の仮想クラウドネットワークのために第3のキーを使用して暗号化するように構成され、上記第1のネットワーク仮想化デバイスおよび上記第2のネットワーク仮想化デバイスは同じネットワークインターフェイスカードの一部であり、および/または、上記ネットワークヘッドエンドデバイスは、ホストが上記顧客を認証した後に上記顧客から上記第1のキーを受け取るように構成されている。
【0008】
さらに他の実施形態では、方法は、ネットワークヘッドエンドデバイスを使用して、顧客によってプロビジョニングされた第1のキーを受け取ること、上記ネットワークヘッドエンドデバイスにおいて、上記顧客のデバイスから送信された第1のデータパケットを受信すること、上記第1のキーを使用して上記第1のデータパケットを復号して、情報を取得すること、ネットワーク仮想化デバイスを使用して、上記ネットワークヘッドエンドデバイスから上記情報を受信すること、上記情報が仮想クラウドネットワーク内の仮想マシンに送信されるべきであることを確認すること、第2のキーを使用して上記ネットワーク仮想化デバイスで上記情報を暗号化して、第2のデータパケットを生成すること、および/または、上記第2のデータパケットを上記仮想マシンにルーティングすることを含む。
【0009】
上記の内容は、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付の図面を参照することでより明らかになるであろう。
【図面の簡単な説明】
【0010】
【
図1】ネットワーク仮想化デバイスのシステムの一実施形態の概略図である。
【
図2】キー管理サービスから暗号キーを受け取る複数のネットワーク仮想化デバイスの一実施形態を示す図である。
【
図3】異なる暗号キーで複数の顧客をサポートするネットワーク仮想化デバイスの一実施形態を示す図である。
【
図4】仮想クラウドネットワークでデータを暗号化するプロセスの一実施形態を示すフローチャート図である。
【
図5】複数の暗号キーを使用して複数の仮想クラウドネットワークのデータ暗号化を行うプロセスの一実施形態を示すフローチャート図である。
【
図6】VPNゲートウェイを通じてデータを受信する仮想クラウドネットワークの一実施形態を示す図である。
【
図7】仮想クラウドネットワーク(VCN)ヘッドエンドを通じてデータを受信する仮想クラウドネットワークの一実施形態を示す図である。
【
図8】2つ以上の仮想クラウドネットワークをサポートする1つのVCNヘッドエンドの実施形態を示す図である。
【
図9】仮想クラウドネットワークのエンドツーエンド暗号化のためのプロセスの一実施形態を示すフローチャート図である。
【
図10】少なくとも1つの実施形態に係る、クラウドインフラストラクチャをサービスシステムとして実現するための1つのパターンを示すブロック図である。
【
図11】少なくとも1つの実施形態に係る、クラウドインフラストラクチャをサービスシステムとして実現するための別のパターンを示すブロック図である。
【
図12】少なくとも1つの実施形態に係る、クラウドインフラストラクチャをサービスシステムとして実現するための別のパターンを示すブロック図である。
【
図13】少なくとも1つの実施形態に係る、クラウドインフラストラクチャをサービスシステムとして実現するための別のパターンを示すブロック図である。
【
図14】少なくとも1つの実施形態に係る、例示的なコンピュータシステムを示すブロック図である。
【
図15】特定の実施形態に係る、クラウドサービスプロバイダインフラストラクチャによってホストされている仮想クラウドネットワークまたはオーバレイクラウドネットワークを示す分散環境のハイレベル図である。
【
図16】特定の実施形態に係る、CSPI内の物理ネットワークにおける物理コンポーネントの簡略化されたアーキテクチャ図である。
【
図17】特定の実施形態に係る、ホストマシンが複数のネットワーク仮想化デバイス(NVD)に接続されているCSPI内の例示的な配置を示す図である。
【
図18】特定の実施形態に係る、ホストマシンとマルチテナンシをサポートするためのI/O仮想化を提供するためのNVDとの間の接続性を示す図である。
【
図19】特定の実施形態に係る、CSPIによって提供される物理ネットワークの簡略化されたブロック図である。
【発明を実施するための形態】
【0011】
詳細な説明
添付の図面では、同様の構成要素および/または特徴は同じ参照レベルを有し得る。さらに、同様の構成要素同士を区別するダッシュおよび第2のラベルが当該参照ラベルの後に続くことによって同じタイプのさまざまな構成要素が区別され得る。第1の参照ラベルのみが本明細書において用いられる場合、第2の参照ラベルに関わらず、当該記載は、同じ第1の参照ラベルを有する同様の構成要素のいずれか1つに適用可能である。
【0012】
以下の記載では、説明を目的として、特定の実施形態が十分に理解されるようにするために具体的詳細について述べる。しかしながら、これらの具体的詳細がなくても各種実施形態は実施し得ることは明らかである。図面および説明は限定を意図しているのではない。本明細書において「例示的な」という単語は、「1つの例、場合、または実例の役割を果たす」ことを意味するために使用されている。本明細書において「例示的」であると記載されているいかなる実施形態または設計も、必ずしも他の実施形態または設計よりも好ましいまたは好都合であると解釈されることを意図している訳ではない。
【0013】
仮想クラウドネットワーク(VCN)は、カスタマイズ可能なプライベートネットワークである。ホストは、顧客がVCNをセットアップするためのコンピューティングハードウェアおよび/またはソフトウェアを提供し得る。典型的に、ホストは、VCNの暗号化がある場合は、その暗号化を管理する。顧客は、ホストのデータ漏洩によって顧客データが危険に晒されることを恐れて、またはホストがどれだけの顧客データにアクセスできるかを懸念して、ホストに暗号化を管理させたくない場合がある。本説明は、顧客管理キーを使用してVCNネットワーク暗号化を提供するメカニズムに関する。顧客管理キーは、スマートNICで配信することができる。スマートNICは、通常はCPUが対処し得る処理タスクをオフロードするネットワークインターフェイスカード(たとえばネットワークアダプタ)である。スマートNICは、暗号化、復号、ルーティング、ファイアウォールなどの機能を実行することができる。
【0014】
スマートNICは、専用の暗号アクセラレータおよび/またはSRAMでネットワーク暗号化仮想機能(NEVF)をサポートするために使用することができる。暗号アクセラレータは、インラインパケット暗号化に使用することができる。SRAMは、暗号化キーを格納するために使用することができる。顧客仮想マシン(顧客仮想マシンは顧客VCNの一部である)に割り当てられたNEVFは、仮想マシンネットワークトラフィック暗号化のために、および暗号化キーを格納するために、使用することができる。ハイパーバイザは、顧客仮想マシンをNEVFにマッピングすることができる。暗号化キーは、顧客VCNインスタンス(たとえば仮想マシン(VM)および/またはベアメタル(BM))内のNEVFにおいてセキュアにプロビジョニングすることができる。
【0015】
顧客VCNインスタンス間で交換されるトラフィックは、NEVFにおいてプロビジョニングされた暗号化キーで暗号化される。VCN内の各インスタンスは、同じ暗号化キーを共有する(たとえば日和見暗号化)。制御プレーンは、VCN内の顧客インスタンス(VMおよび/またはBM)のネットワーク暗号化キーをプロビジョニングおよび/または管理することができる。制御プレーンは、顧客仮想機能を認証し、キー管理サービスからの暗号化キーをプロビジョニングするために使用することができる。証明書を使用することで、キー管理サービスおよびNICは顧客暗号化キーをセキュアに共有することができる。よって、顧客は(たとえばアプリケーションプログラムインターフェイスおよび/またはオペレーティングシステムコマンドを使用して)ネットワーク暗号化キーを管理することができる。いくつかの構成では、VCN内のVMホスト間で固有のキーが共有される。各VMホストのNEVFは、キーおよび/またはどのキーを使用するかに関連付けられたメタデータを格納する。
【0016】
図1を参照して、仮想クラウドネットワークのデータを暗号化するためのシステムの一実施形態の概略図が示されている。ネットワーク仮想化デバイス100は、第1の仮想化エンジン104-1および第2の仮想化エンジン104-2を含む。仮想化エンジン104は、ベアメタルごとまたは仮想マシンごとに仮想ネットワークインターフェイスカード(VNIC)をインスタンス化して提供する。仮想化エンジン104は、ネットワーク暗号化仮想機能(NEVF)とすることができる。ネットワーク仮想化デバイス100は、専用リソース(たとえばメモリおよび/またはプロセッサ)がアタッチされた物理カード(たとえばスマートNIC)とすることができる。いくつかの実施形態では、ネットワーク仮想化デバイス100は、SmartTOR、ネットワークアプライアンス、またはサービスホストである。
【0017】
クラウドサービスプロバイダインフラストラクチャ内のパケットのルーティングおよび/または転送は、ネットワーク仮想化デバイスによって実行することができる。ネットワーク仮想化デバイスは、仮想ネットワークインターフェイスカード(VNIC)、仮想ルータ、仮想ネットワークゲートウェイ、およびネットワーク暗号化仮想機能などの、1つ以上の仮想ネットワーク機能を実現することができる。ネットワーク仮想化デバイスは、ソフトウェア(たとえばプロセッサによって実行されるコードまたは命令)を使用して実現される仮想オブジェクトである。ネットワーク仮想化デバイスは、仮想ルータなどの仮想機能を実行するハードウェアコンポーネントである(たとえば、仮想ルータデバイスは、仮想ルータを実現するコードを実行する物理デバイスである)。たとえば、VNICはスマートNICによって実行され、スマートNICはネットワーク仮想化デバイスである。VNICがホストマシンによって実行される場合、ホストマシンはネットワーク仮想化デバイスである。いくつかの実施形態では、仮想ルータはトップオブラック(TOR)スイッチによって実行される(TORは仮想ルータデバイスである)。スマートNICはネットワーク仮想化デバイスの一例に過ぎない。
【0018】
仮想マシン108は、あるコンピュータの内部の別個のコンピュータのように動作する、当該あるコンピュータ上のプログラムである。仮想マシンは、仮想化ソフトウェアを使用して作成することができる。仮想マシン108はさまざまな仮想機能を実行することができる。
【0019】
仮想化エンジン104は、メモリデバイス112および暗号プロセッサ116を含む。メモリデバイス112は、暗号キーなどのキーを格納するように構成されている。いくつかの実施形態では、メモリデバイス112は、コンデンサおよびトランジスタを含むスタティックランダムアクセスメモリ(SRAM)デバイスである。
【0020】
暗号プロセッサ116は、メモリデバイス112に格納されたキーを使用して、仮想マシン108へのおよび仮想マシン108からのデータを暗号化および/または復号するように構成されている。送信パケットTXは、仮想マシン108から送信されるデータパケットである。受信パケットRXは、仮想マシン108に送信されるデータパケットである。送信パケットTXは、暗号プロセッサ116によって暗号化される。受信パケットRXは、暗号プロセッサ116によって復号される。送信パケットTXおよび/または受信パケットRXは、インライン暗号化/復号を使用して暗号化/復号される。いくつかの実施形態では、仮想化エンジン104は、データパケットのネットワークルーティングを提供するように構成されている(たとえば、仮想化エンジン104は、送信パケットTXのためのルーティングデータを提供する)。
【0021】
示されている実施形態では、仮想化エンジン104は、一度に1つの仮想マシン108のみをインスタンス化するように構成されている。これにより、仮想マシン108ごとに専用の暗号化リソース(たとえばメモリデバイス112および/または暗号プロセッサ116)が可能になるので、セキュリティを高めることができる。
【0022】
示されている実施形態では、第1の仮想化エンジン104-1は第1のメモリデバイス112-1および第1の暗号プロセッサ116-1を含み、第2の仮想化エンジン104-2は第2のメモリデバイス112-2および第2の暗号プロセッサ116-2を含む。したがって、第1の仮想化エンジン104-1および第2の仮想化エンジン104-2は同じデバイスの一部である。2つの仮想化エンジン104がネットワーク仮想化デバイス100の一部であるとして示されているが、3つ以上の仮想化エンジン104がネットワーク仮想化デバイス100の一部であってもよい(たとえば、3個、5個、10個、100個、またはそれ以上の仮想化エンジン104がネットワーク仮想化デバイス100の一部であってもよい)ことが理解されるべきである。
【0023】
いくつかの実施形態では、ネットワーク仮想化デバイス100は、VNIC、仮想ルータ、および/またはNEVFなどの仮想機能を実現するために使用される。ネットワーク仮想化デバイス100は、サーバ内のカード(たとえばスマートNIC)とすることができる。ネットワーク仮想化デバイス100は、1以上の顧客が1つ以上のVCNをセットアップするためにホストによって管理(たとえば所有および/または操作)される。ホストは、ネットワーク仮想化デバイス100の管理者である。ホスト(たとえば管理者)はメモリデバイス112に格納されたキーへのアクセスを有さないように、キーをメモリデバイス112に格納する(たとえば暗号化する)ことができる。ホストがキーへのアクセスを有していないことで、ホストのセキュリティが危険に晒されても、顧客のデータセキュリティを保証することができる。
【0024】
イーサネット(登録商標)ブリッジ120は、第1の仮想化エンジン104-1がインターネットを介して通信すること、および/または(たとえば第1の仮想マシン108-1および第2の仮想マシン108-2が同じ仮想クラウドネットワークの一部である場合に)第2の仮想化エンジン104-2と通信することを可能にする。ハイパーバイザ124は、仮想マシン108間でコンピューティングシステムのリソースを共有するためにホストによって使用される。
【0025】
図2は、キー管理サービス208から暗号キー204を受け取る複数の仮想化エンジン104の一実施形態を示す図である。示されている実施形態では、仮想化エンジン104が3つある。3つの仮想化エンジン104が示されているが、より多いまたはより少ない仮想化エンジン104を使用することができる。仮想化エンジン104は各々、1つの(いくつかの実施形態では1つのみの)仮想マシン108をインスタンス化する。
図2の仮想マシン108は、共通の仮想クラウドネットワーク(VCN)212の一部である。仮想化エンジン104は同じVCN212の一部であるため、仮想化エンジン104は各々、同じキー(たとえば同じ暗号キー204)を受け取り、これにより、仮想化エンジン104は暗号化されたデータを使用して互いに(たとえば
図1に示されるイーサネットブリッジ120を使用して)セキュアに通信することができる。したがって、第1の仮想化エンジン104-1は、キー管理サービス208から暗号キー204を受け取るように構成されている。第1の仮想化エンジン104-1は、暗号キー204を第1のメモリデバイス112-1に保存する。
【0026】
VCN制御プレーン216は、クラウドインフラストラクチャリソースを管理、監視、および/または修正するように構成されている。キー管理サービス208は、ネットワーク仮想化デバイス100のホストが暗号キー204へのアクセスを有することなく、顧客のために暗号キー204を仮想化エンジン104に提供することができる。ホスト(たとえばクラウドサービスプロバイダ)が暗号キー204へのアクセスを有していないことで、顧客はVCN212のセキュリティを制御する。
【0027】
ホストがキーへのアクセスを有することなく、キーをメモリデバイス112に取り込むために、顧客はキー管理サービス208(たとえばOCIのクラウドキー管理サービス(Cloud Key Management Service))において暗号キー204を初期化することができる、および/または、キーへのアクセス許可を仮想化エンジン104に与える。クラウドネットワークでは、各リソースにアイデンティティプリンシプル(たとえばOCIのクラウドアイデンティティプリンシプル(Cloud Identity Principle))を割り当てることができ、これにより、リソースを他のクラウドリソースに対して認証するために各リソースにクレデンシャルを与えることができる。仮想化エンジン104(たとえばNEVF)は、リソースであり、アイデンティティプリンシプルを割り当てることができる。仮想化エンジン104を、キー管理サービス208に対して認証することができる。仮想化エンジン104は、顧客キー(たとえば暗号キー204)を要求することができる。
【0028】
仮想化エンジン104は、キー管理サービス208に暗号キー204を要求する(たとえば、アイデンティティプリンシプルを使用して自身を認証してキーを要求する)ことができる。キー管理システム208は、(たとえば仮想化エンジン104を認証した後に)キー(および/または更新)を仮想化エンジン104にプッシュすることができる。キーの要求またはプッシュは、クラウドネットワークのホストがキーを仮想化エンジン104に対して(たとえば仮想化エンジン104のSRAM内に)プロビジョニングすることなく行われる。セキュリティプロトコルは、キー管理システム208と仮想化エンジン104との間で事前に共有されることができるので、キー管理システムは、事前に共有された秘密を用いて仮想化エンジン104にデータをルーティングして、仮想化エンジン104のメモリにおいてキーを初期化することができる。
【0029】
仮想クラウドネットワーク212内の仮想マシン108をサポートする各仮想化エンジン104には、同じ暗号キー204が配信される。仮想マシン108がインスタンス化されると、暗号キー204を仮想エンジン104に配信することができる。たとえば、顧客がVCN212を作成すると、VCN212を暗号化するか否かを顧客に尋ねることができる(たとえば、顧客はVCN212の暗号化のボックスにチェックを入れることができる)。仮想マシン108のインスタンスが起動されると、基礎となるプロトコルがキー管理サービス208から仮想エンジン104に移り、暗号キー204を仮想エンジン104のメモリデバイス112に配信する。暗号キー204は、定期的に(たとえば、毎時、毎日、毎週など)更新することができる、および/または顧客が更新することができる(たとえば、顧客が更新スケジュールを選択もしくは定義する、および/または暗号キー204を直ちに更新することを選択する)。いくつかの実施形態では、顧客は複数のキーを生成し、新しいキーにローテーションする時間になると(たとえば毎日時間Tに)、暗号キー204が更新される(たとえば、各仮想エンジン104は、時間Tにキー管理サービス208に連絡する)。新しいキーはメモリデバイス112において公開される。キー同期(たとえば自動同期)は、複数のホストに対して使用され得る(たとえば、各仮想化エンジン104の同期カウンタは、新しいキーをメモリデバイス112において公開するために使用され得る)。いくつかの実施形態では、暗号キー204は、何らかの暗号化スキームに基づいて各仮想化エンジン104上でローテーションされる(たとえば、暗号キー204はリフレッシュされる)。よって、暗号キー204は、VCN212の一部である各仮想化エンジン104に対して、または各仮想化エンジン104上で、同時にプッシュおよび/またはリフレッシュされ得る。キー管理サービス208はVCN212と1つの暗号化関係を有することができるので、キー管理サービス208は異なるデバイスとの関係を維持する必要がない。
【0030】
顧客がキーを制御するデータを暗号化することによって、データがホストのワイヤ上で暗号化されることを顧客に保証することができる。いくつかの実施形態では、顧客は、トランスポート層セキュリティ(TLS)トンネルを使用してホストと通信することができる。しかしながら、TLSはバグを有しており、セキュリティ問題を有し得る。顧客がキー管理サービス208を使用してキーを制御できるようにすることによって、TLSのバグおよびセキュリティ問題を回避または低減することができる。いくつかの実施形態では、TLSトンネルまたは事前共有キーに基づくカスタムセキュリティプロトコルは、NEVFとキー管理サービスとの間のセキュアな通信に使用され得る。
【0031】
本説明では、暗号キー204がVCN212のレベルで配信され管理されるものとして示されているが、サブネットレベルなどの他のレベルでも同様の処理および技術を使用することができる。たとえば、VCN212のL2またはL3で暗号化キーを使用することができる。
【0032】
図3は、異なる暗号キー304で複数の顧客をサポートするネットワーク仮想化デバイス100の一実施形態を示す図である。ネットワーク仮想化デバイス100は、第1の仮想化エンジン104-1、第2の仮想化エンジン104-2、第3の仮想化エンジン104-3、および第4の仮想化エンジン104-4を含む。第1の仮想化エンジン104-1は、第1の仮想マシン108-1をインスタンス化するように構成されている。第2の仮想化エンジン104-2は、第2の仮想マシン108-2をインスタンス化するように構成されている。第3の仮想化エンジン104-3は、第3の仮想マシン108-3をインスタンス化するように構成されている。第4の仮想化エンジン104-4は、第4の仮想マシン108-4をインスタンス化するように構成されている。
【0033】
第1の仮想マシン108-1および第3の仮想マシン108-3は、第1のVCN312-1の一部である。第2の仮想マシン108-2および第4の仮想マシン108-4は、第2のVCN312-2の一部である。第1のVCN312-1は第1の顧客のためのものである。第2のVCN312-2は第2の顧客のためのものであり、第2の顧客は第1の顧客と同じではない。よって、1つのデバイス上の複数のNEVFを使用して、異なる仮想クラウドネットワークに属する仮想マシンをサポートすることができる。
【0034】
第1の仮想化エンジン104-1および第3の仮想化エンジン104-3は、第1のキー管理サービス208-1から第1の暗号キー304-1を受け取る。第2の仮想化エンジン104-2および第4の仮想化エンジン104-4は、第2のキー管理サービス208-2から第2の暗号キー304-2を受け取る。第2の暗号キー304-2は第1の暗号キー304-1とは異なる。いくつかの実施形態では、第2のVCN312-2の仮想化エンジン104は、第1のVCN312-1の仮想化エンジン104と同じキー管理サービスから第2の暗号キー304-2を受け取る(たとえば、第2のVCN312-2の仮想化エンジン104は、第1のキー管理サービス208-1から第2の暗号キー304-2を受け取る)。
【0035】
第1の仮想エンジン104-1は、第1の暗号キー304-1を第1のメモリデバイス112-1に格納する。第2の仮想エンジン104-2は、第2の暗号キー304-2を第2のメモリデバイス112-2に格納する。同様に、第3の仮想化エンジン104-3および第4の仮想化エンジン104-4は各々、それぞれの暗号キー304をメモリデバイス112に格納する。ネットワーク仮想化デバイス100のホストは、第1の暗号キー304-1または第2の暗号キー304-2へのアクセスを有していない。仮想マシン108ごとに1つの仮想化エンジン104を有することによって(たとえば、仮想マシン108ごとに1つのメモリデバイス112などの専用リソースを有することによって)、1つのネットワーク仮想化デバイス100が複数の顧客のための複数のVCN312をセキュアにサポートすることが可能になる。各顧客がVCN312についての自身の暗号キー304を管理するので、各顧客のデータをセキュアに管理することができる。さらに、ホストのデータが危険に晒されてもVCN312のデータが危険に晒されることはないので、一層のセキュリティ信頼性を顧客に提供することができる。
【0036】
図4は、仮想クラウドネットワークでデータを暗号化するプロセス400の一実施形態を示すフローチャートである。プロセス400は、ステップ402で第1の仮想マシンをインスタンス化することで始まる。たとえば、
図1に示されるように第1の仮想化エンジン104-1が第1の仮想マシン108-1をインスタンス化する。ステップ404において、第2の仮想マシンをインスタンス化する。たとえば、
図1において第2の仮想化エンジン104-2が第2の仮想マシン108-2をインスタンス化する。
図1に示されるように、仮想化エンジン104はメモリデバイス112および暗号プロセッサ116を含む。
【0037】
第1のキーは、第1のメモリデバイスに格納される(ステップ406)。たとえば、
図2に示されるように、暗号キー204は、第1の仮想化エンジン104-1の第1のメモリデバイス112-1に格納される。第1のキーは、キー管理サービスから取り出され(たとえば、キー管理サービスから要求され、または、キー管理サービスによりプッシュされ)得る。いくつかの実施形態では、仮想クラウドネットワークの顧客は、第1の仮想化エンジン104-1のホストがキーへのアクセスを有さないように、第1のキーを制御する。
【0038】
第2のキーは、第2のメモリデバイスに格納される(ステップ408)。たとえば、
図2に示されるように、暗号キー204は、第2の仮想化エンジン104-2の第2のメモリデバイス112-2に格納される。第2のキーは、キー管理サービスから取り出され(たとえば、キー管理サービスから要求され、または、キー管理サービスによりプッシュされ)得る。いくつかの実施形態では、仮想クラウドネットワークの顧客は、仮想化エンジン104のホストが第2のキーへのアクセスを有さないように、第2のキーを制御する。
図2に示されるように、第2のキーは第1のキーと同じであってもよい。
図3に示されるように、第2のキーは第1のキーとは異なっていてもよい。たとえば、第2の仮想マシンは第1の仮想マシンとは異なる仮想クラウドネットワークの一部であるため、第2のキーは第1のキーとは異なる場合がある。
【0039】
ステップ410において、第1のキーを使用して第1の仮想マシンのデータを暗号化する。たとえば、
図1において第1の暗号プロセッサ116-1が第1の仮想マシン108-1からの送信データTXを暗号化する。ステップ412において、第2のキーを使用して第2の仮想マシンのデータを暗号化する。たとえば、
図1において第2の暗号プロセッサ116-2が第2の仮想マシン108-2からの送信データTXを暗号化する。第1の仮想マシン108-1および第2の仮想マシン108-2が同じ仮想クラウドネットワークの一部である場合、第1の仮想マシン108-1は、同じキーを使用してデータをセキュアに第2の仮想マシン108-2に送信および/または第2の仮想マシン108-2から受信することができる(たとえば
図2参照)。しかしながら、
図3に示されるように第1のキーが第2のキーとは異なる場合、第1の仮想マシン108-1は、(
図3の第1のVCN312-1と第2のVCN312-2との間に何らかの追加の取り決めがない限り)暗号化されたデータを第2の仮想マシン108-2に送信および/または第2の仮想マシン108-2から受信しない。
【0040】
第1の仮想化エンジン104-1および第2の仮想化エンジン104-2は、同じデバイス上にある(たとえば、サーバ内の同じカードの一部である)。仮想化エンジン104は1つの仮想マシンのみをインスタンス化するために使用されるので、および/または、仮想化エンジンは1つ以上の専用リソースを有するので、ネットワーク仮想化デバイスのホストが第1のキーまたは第2のキーへのアクセスを有することなく、各仮想マシンへのおよび各仮想マシンからのデータをセキュアに暗号化および/または復号することができる。
【0041】
図5は、複数の暗号キーを使用して複数の仮想クラウドネットワークのデータ暗号化を行うプロセス500の一実施形態を示すフローチャートである。プロセス500は、ステップ502で第1の顧客のための仮想マシンの第1のセットをインスタンス化することで始まる。仮想エンジンの第1のセットを使用して、仮想マシンの第1のセットをインスタンス化する。仮想マシンの第1のセットは、第1の仮想クラウドネットワークの一部である。この実施形態では、1セットは2つ以上を含む。たとえば、
図3において第1の仮想化エンジン104-1および第3の仮想化エンジン104-3を使用して第1の仮想マシン108-1および第3の仮想マシン108-3をインスタンス化し、第1の仮想マシン108-1および第3の仮想マシン108-3は第1の仮想クラウドネットワーク312-1の一部である。
【0042】
第2の顧客のための仮想マシンの第2のセットをインスタンス化する(ステップ504)。仮想エンジンの第2のセットを使用して、仮想マシンの第2のセットをインスタンス化する。仮想マシンの第2のセットは、第2の仮想クラウドネットワークの一部である。たとえば、
図3において第2の仮想化エンジン104-2および第4の仮想化エンジン104-4を使用して第2の仮想マシン108-2および第4の仮想マシン108-4をインスタンス化し、第2の仮想マシン108-2および第4の仮想マシン108-4は第2の仮想クラウドネットワーク312-2の一部である。
【0043】
ステップ506において、第1のキー、たとえば
図3の第1の暗号キー304-1を、第1の仮想クラウドネットワークの仮想マシンをインスタンス化するために使用される仮想化エンジンによって受け取る。第2のキー、たとえば
図3の第2の暗号キー304-2を、第2の仮想クラウドネットワークの仮想マシンをインスタンス化するために使用される仮想化エンジンによって受け取る(ステップ508)。第1のキーは第1のキー管理サービスから受け取ることができ、第2のキーは第1のキー管理サービスとは異なる第2のキー管理サービスから受け取ることができる。
【0044】
第1のキーを使用して第1の顧客のデータを暗号化する(ステップ510)。第2のキーを使用して第2の顧客のデータを暗号化する(ステップ512)。ホストは第1のキーおよび/または第2のキーへのアクセスを有していない。
【0045】
図6は、VPN(仮想プライベートネットワーク)ゲートウェイ604を通じてデータを受信する仮想クラウドネットワーク312の一実施形態を示す図である。データは、顧客ヘッドエンド608(たとえばVPNヘッドエンド)上で暗号化される。ヘッドエンドとは、セキュリティ保護された伝送リンクの終端として使用されるデバイスである。顧客ヘッドエンド608は、顧客オンプレミスネットワーク612の一部である。データは、顧客ヘッドエンド608からVPNゲートウェイ604に(たとえばInetゲートウェイ616を通じて)送信される。VPNゲートウェイは、VCN312のホストによって所有および/または操作される。顧客ヘッドエンド608からVPNゲートウェイ604にインターネットプロトコルセキュリティ(IPSec)トンネルを形成することができるので、データパケットは顧客ヘッドエンド608において暗号化されてVPNゲートウェイ604において復号され、VPNゲートウェイ604から顧客ヘッドエンド608に送信される暗号化されたデータについてはその逆である。顧客ヘッドエンド608からVPNゲートウェイ604に送信されるデータは、パブリックリンク(たとえばインターネット)またはプライベートリンク(たとえばOracle FastConnectを使用する)を介して送信することができる。IPSecトンネルはレイヤ1および/またはレイヤ2暗号化を使用することができる。
【0046】
VPNゲートウェイ604において、ホストは1以上の顧客からデータを受信することができる。いくつかの実施形態では、VPNゲートウェイ604は、単一の顧客に専用のベアメタルホスト、または複数の顧客からのVPN接続を終端させる複数のNEVFを有するネットワークハードウェアを有するマルチテナントホストとすることができる。リダイレクタ620は、第1の顧客からのデータを第1のネットワーク仮想化デバイス624-1にルーティングし、第2の顧客からのデータを第2のネットワーク仮想化デバイス624-2にルーティングするために使用される。第1のネットワーク仮想化デバイス624-1は、第1の顧客のデータを第1の仮想クラウドネットワーク312-1のために暗号化する。第2のネットワーク仮想化デバイス624-2は、第2の顧客のデータを第2の仮想クラウドネットワーク312-2のために暗号化する。
【0047】
暗号化されていないデータがVPNゲートウェイ604からリダイレクタ620に送信される。ネットワーク仮想化デバイス624は、データを仮想クラウドネットワーク312のために暗号化するように構成されている。たとえば、ネットワーク仮想化デバイス624は、
図2に示されるような仮想化エンジン104である。仮想エンジン104は
図2に示されるようにキー管理サービス208から暗号キー204を受け取ることができるので、顧客によってプロビジョニングされた暗号キー204を使用して仮想クラウドネットワーク312内のデータを暗号化することができる。
【0048】
顧客オンプレミスネットワーク612は、ホストによって所有および/または維持されるデバイスを含む。たとえば、顧客ヘッドエンド608は、顧客によって所有および/または維持されるマシン内のネットワークカードである。いくつかの実施形態では、顧客ヘッドエンド608はVPNゲートウェイ604(たとえばホストによって所有および/または維持されるネットワークカード)から5キロメートル、10キロメートル、20キロメートル、50キロメートル、100キロメートル、500キロメートル、またはそれ以上離れている。
【0049】
VPNゲートウェイ604、リダイレクタ620、およびネットワーク仮想化デバイス624は、クラウドサービスプロバイダインフラストラクチャ(CSPI)628の一部である。ホストは、CSPI628を所有および/または維持する。したがって、ホストは、VPNゲートウェイ604からネットワーク仮想化デバイス624へのデータセキュリティがある場合は、そのデータセキュリティを管理する。これに加えて、顧客ヘッドエンド608からVPNゲートウェイ604にIPSecトンネルを確立するために、顧客およびホストは、(たとえば対称暗号化の場合は)1つのキーを共有する、および/または(たとえば非対称暗号化の場合は)複数のキーを共有する。たとえば、ホストが顧客にIPSecトンネルを確立するためのキーを与えることができ、顧客がホストに当該キーを与えることができ、または顧客とホストが暗号化スキームに合意することができる。
【0050】
図7は、仮想クラウドネットワーク(VCN)ヘッドエンド704を通じてデータを受信する仮想クラウドネットワークの一実施形態を示す図である。いくつかの状況において、顧客は、ホストが暗号化に使用されるデータおよび/またはキーへのアクセスを有することなく、顧客オンプレミスネットワーク612から仮想クラウドネットワーク312にセキュアに到達することを所望するかもしれない。たとえば、VPNゲートウェイ604は、顧客ヘッドエンド608からのデータを復号するために、ホストがアクセスできる暗号化キーを使用する。さらに、顧客は、自身のデータがホストのマシン間で暗号化されずに送信されることを所望しないかもしれない。たとえば、
図6においてデータはリダイレクタ620を通じて暗号化されない。
【0051】
VCNヘッドエンド704は、顧客が自身のオンプレミスネットワークからVCNにセキュアに到達できるようにするために(本開示ではエンドツーエンド暗号化と呼ばれる)、および/または顧客が暗号化キーを制御/管理できるようにするために、使用される。VCNヘッドエンド704は、特定の顧客に専用のネットワークリソースである(たとえば、ホストは電気および/または冷却を提供するが、ホストはVCNヘッドエンド704にログインできない)。いくつかの実施形態では、VCNヘッドエンド704は、スマートNIC、または1つもしくはいくつかのNIC、SmartToRなどの他のネットワーク仮想化デバイスであるか、またはそれを含み得る。スマートNICは、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、またはシステムオンチップ(SoC)とすることができる。VCNヘッドエンド704は、1つ以上のプロセッサおよび1つ以上のメモリデバイスを含み得る。
【0052】
データは、暗号化キー708を使用して顧客ヘッドエンド608からVCNヘッドエンド704に暗号化される。VCNヘッドエンド704は、暗号化されたデータをパブリックリンク(たとえばパブリックインターネット)を介しておよび/またはプライベートリンク(たとえばOracle FastConnect)を介して受信するように構成され得る。たとえば、顧客ヘッドエンド608からVCNヘッドエンド704にVPNトンネルが形成され、顧客ヘッドエンド608およびVCNヘッドエンド704はVPNトンネルの終端点である。したがって、VPNトンネルを
図6に示されるようにVPNゲートウェイ604で終端させる代わりに、VPNトンネルはVCNヘッドエンド704で終端する(たとえば、VPNゲートウェイ604をバイパスする、および/またはリダイレクタ620をバイパスする)。
【0053】
VCNヘッドエンド704は顧客専用のリソースであるので、顧客は、VCNヘッドエンド704のメモリデバイスにおいて暗号化キー708をセキュアにプロビジョニングすることができる。たとえば、顧客は、VCNヘッドエンド704にログインして暗号化キー708をプロビジョニングすることができる、および/または、顧客は、キー管理サービス208を使用して暗号キー304を仮想化デバイス104にプロビジョニングするのと同様に、
図2のキー管理サービス208を使用して暗号化キー708をプロビジョニングすることができる。たとえば、キー管理サービス208は、VCNヘッドエンド704が暗号化キー708を受け取る適切な許可またはクレデンシャルを有していることを確認(たとえば認証)した後、VCNヘッドエンド704に暗号化キー708を与えることができる。
【0054】
VCNヘッドエンド704は、特定の実施形態では、仮想機能を提供しない物理デバイスである。復号されたデータが、VCNヘッドエンド704からネットワーク仮想化デバイス624に送信される。示されている実施形態では、VCNヘッドエンド704およびネットワーク仮想化デバイス624は、VCNゲートウェイ712の一部である。たとえば、VCNゲートウェイ712は、2つのネットワークカード、すなわち、VCNヘッドエンド704のための1つのネットワークカードおよびネットワーク仮想化デバイス624のための第2のネットワークカードを有する物理ホストである。VCNゲートウェイ712は、ホストの他の顧客がVCNゲートウェイ712を使用しないように、ある顧客に専用とすることができる。一例では、VCNヘッドエンド704およびネットワーク仮想化デバイス624は、暗号化されていないデータがVCNヘッドエンド704からネットワーク仮想化デバイス624に送信されている間のセキュリティを高めるために、同じサーバの一部である。いくつかの実施形態では、VCNヘッドエンド704は、(たとえばセキュリティのために)ネットワーク仮想化デバイス624と同じ基板(たとえばネットワークカード)上に、同じラック上に、および/または同じ空間内にある。VCNヘッドエンド704およびネットワーク仮想化デバイス624は、必要に応じてトラフィックを処理する高性能NICの一部とすることができる。VCNゲートウェイ712は、IPSecトンネルを終端させることができ、また、暗号キーをプロビジョニングしてトラフィックを暗号化して当該トラフィックを仮想クラウドネットワークに送り込むNEVFを有する。VCNゲートウェイ712は、顧客が暗号キー304および暗号化キー708の両方を制御/管理することを可能にする。VCNゲートウェイ712はクラウドサービスプロバイダインフラストラクチャ(ホストのインフラストラクチャ)の一部であるが、ホストは暗号化キー708を管理しない、または暗号化キー708へのアクセスを有していない。
【0055】
ネットワーク仮想化デバイス624は、(たとえばネットワーク暗号化仮想機能を使用して)データを仮想クラウドネットワーク312のために暗号化するために使用される。たとえば、ネットワーク仮想化デバイス624は、
図1~
図3で説明したような仮想化エンジン104であり、暗号キー304を使用してデータを仮想クラウドネットワーク312のために暗号化する。よって、ネットワーク仮想化デバイス624は、仮想クラウドネットワーク312における仮想マシンのインスタンスを提供することができる。
【0056】
いくつかの実施形態では、ネットワーク仮想化デバイス624はVCNヘッドエンド704の一部であるので、VPNトンネルを仮想クラウドネットワーク312のインスタンスで終端させることができる。VCNゲートウェイ712は、暗号化キー708を使用してデータを復号し、暗号キー304を使用してデータを暗号化するために使用することができる。
【0057】
いくつかの構成では、単一の顧客が2つ以上のVCNヘッドエンド704を有することができる。たとえば、大容量を有する顧客は、1つ以上の仮想クラウドネットワーク312にデータをセキュアにアップロードおよび/またはダウンロードするために帯域幅を増やすように、複数のVCNヘッドエンド704を有する場合がある。単一の顧客をサポートする複数のVCNヘッドエンド704に1つの暗号化キー708を使用することができる、または、異なるVCNヘッドエンド704に異なる暗号化キー708を使用することができる。顧客が暗号化キー708をプロビジョニングするので、顧客は1つの暗号化キー708を有すべきか複数の暗号化キー708を有すべきかを決めることができる。いくつかの実施形態では、複数のVCNヘッドエンド704に1つのNICが使用される。
【0058】
いくつかの構成では、暗号化キー708は長寿命のキーである(たとえば、毎週、毎月、または手動でローテーションまたは変更される)。暗号キー304は短寿命のキーであり得る(たとえば、4時間ごと、8時間ごと、12時間ごと、24時間ごと、または36時間ごとなど、毎週または毎日よりも短い周期でローテーションまたは変更される)。よって、暗号化キー708は、暗号キー304よりも変更される頻度が低いように構成され得る。
【0059】
システムは、ネットワークヘッドエンドデバイス(たとえばVCNヘッドエンド704)を含み得る。ネットワークヘッドエンドデバイスは、顧客によってプロビジョニングされた第1のキー(たとえば暗号化キー708)を受け取るように構成され得る(たとえば、顧客は、VCNヘッドエンド704にログインして第1のキーをプロビジョニングすることができる、および/またはキー管理サービスを使用することができる)。ネットワークヘッドエンドデバイスは、顧客のデバイスから第1のデータパケットを受信するように構成されている。たとえば、ネットワークヘッドエンドデバイスは、顧客ヘッドエンド608からデータを受信するように構成されている。ネットワークヘッドエンドデバイスは、第1のキーを使用して第1のデータパケットを復号して情報を取得するように構成されている。当該情報は、復号されたデータの少なくとも一部である。ネットワーク仮想化デバイス(たとえばネットワーク仮想化デバイス624)は、第1のデータパケットが復号された後にネットワークヘッドエンドデバイスから情報を受信し、情報が仮想クラウドネットワーク内の仮想マシン(たとえば仮想クラウドネットワーク312内の仮想マシン)に送信されるべきであることを確認し、第2のキーを使用して情報を暗号化して第2のデータパケットを生成するように構成されている。たとえば、情報は暗号キー304を使用して暗号化される。第2のデータパケットは仮想マシンに(たとえば、仮想マシンをインスタンス化するために使用されるネットワーク仮想化デバイスに)ルーティングされる。
【0060】
図8は、顧客のための2つ以上の仮想クラウドネットワーク312をサポートする1つのVCNゲートウェイ712の実施形態を示す図である。顧客ヘッドエンド608からのデータが、暗号化キー708を使用してVCNヘッドエンド704にセキュアに送信される。VCNヘッドエンド704はVCNゲートウェイ712の一部である。VCNゲートウェイは、第1のネットワーク仮想化デバイス624-1および第2のネットワーク仮想化デバイス624-2を含む。2つのネットワーク仮想化デバイス624、および2つの仮想クラウドネットワーク312が示されているが、3つ以上(たとえば、3個、4個、5個、10個、20個、またはそれ以上)を使用することができる。
図7に関連して言及したように、2つ以上(たとえば、2個、3個、4個、またはそれ以上)のVCNヘッドエンド704を使用することもできる。
【0061】
顧客ヘッドエンド608から受信したデータを復号した後、VCNヘッドエンド704は、当該データが第1の仮想クラウドネットワーク312-1向けのものであるか、第2の仮想クラウドネットワーク312-2向けのものであるか、または第1の仮想クラウドネットワーク312-1および第2の仮想クラウドネットワーク312-2の両方向けのものであるかを判断する。第1の仮想クラウドネットワーク312-1向けのデータの場合、データは、第1のネットワーク仮想化デバイス624-1を使用して第1の暗号キー304-1を使用して再暗号化され、第1の仮想ネットワーク312-1に送信される。第2の仮想クラウドネットワーク312-2向けのデータの場合、データは、第2のネットワーク仮想化デバイス624-2を使用して第2の暗号キー304-2を使用して再暗号化され、第2の仮想クラウドネットワーク312-2に送信される。よって、1つのVCNヘッドエンド704は、顧客のための複数の仮想クラウドネットワーク312をサポートするために使用され得る。いくつかの実施形態では、1つのNICが複数のネットワーク仮想化デバイス624に使用される。いくつかの実施形態では、複数のネットワーク仮想化デバイス624は、VCNヘッドエンド704と同じNICの一部である。他の実施形態では、VCNヘッドエンド704は、ネットワーク仮想化デバイス624とは異なるNIC上にある。
【0062】
図9は、仮想クラウドネットワークのエンドツーエンド暗号化のためのプロセス900の一実施形態を示すフローチャートである。プロセス900は、ステップ902でネットワークヘッドエンドデバイスにおいて第1のキーを受け取ることで始まる。たとえば、
図7に示される暗号化キー708が第1のキーであり、VCNヘッドエンド704がネットワークヘッドエンドデバイスである。第1のキーは、(たとえば、第1のキーが顧客によって管理され、ホストは第1のキーが何かが分からないように)顧客によってプロビジョニングすることができる。ステップ904において、ネットワークヘッドエンドデバイスは第1のデータパケットを受信する。たとえば、VCNヘッドエンド704は、顧客のデバイスから(たとえば顧客ヘッドエンド608から)暗号化されたデータを受信する。ネットワークヘッドエンドデバイスは、第1のデータパケットを復号して情報を取得する(ステップ906)。当該情報は、復号された第1のデータパケットの少なくとも一部である。いくつかの実施形態では、ゲートウェイ(たとえば
図6のVPNゲートウェイ604)は、第1のキーを使用して顧客ヘッドエンド608からのVPNトンネルを終端させ、第2のキーを使用してトラフィックを再暗号化してVCN内のインスタンス(たとえばVM/BM)にパケットを送信することができ、ここで、第2のキーはVCN暗号化キーである。
【0063】
ネットワークヘッドエンドデバイスはネットワーク仮想化デバイスに情報を送信し、その結果、ネットワーク仮想化デバイスはネットワークヘッドエンドデバイスから情報を受信する(ステップ908)。たとえば、
図7において、VCNヘッドエンド704は復号されたデータをネットワーク仮想化デバイス624に送信する。いくつかの実施形態では、ネットワーク仮想化デバイス624はVCNヘッドエンド704に一体化されたコンポーネントとすることができる。ステップ910において、ネットワーク仮想化デバイスは、第2のキーを使用して情報を暗号化して第2のデータパケットを生成する。たとえば、ネットワーク仮想化デバイス624は、暗号キー304を使用してデータを仮想クラウドネットワーク312のために暗号化する。そして、第2のデータパケットは仮想クラウドネットワーク内の仮想マシンにルーティングされる。たとえば、
図7において、暗号化されたデータがネットワーク仮想化デバイス624によって仮想クラウドネットワーク312に送信される。
【0064】
いくつかの構成では、
図7の顧客ヘッドエンド608からVCNヘッドエンド704へのデータが暗号化され、またはネットワーク仮想化デバイス624から仮想クラウドネットワーク312へのデータが暗号化されるが、これら両方が暗号化されることはない。いくつかの実施形態では、ネットワーク仮想化デバイス624は、VCNヘッドエンド704から受信した情報を暗号化する前に、仮想クラウドネットワーク内のデータが暗号化されるべきであることを確認する。
【0065】
サービスとしてのインフラストラクチャ(Infrastructure as a service:IaaS)は、ある特定のタイプのクラウドコンピューティングである。IaaSは、パブリックネットワーク(たとえばインターネット)を介して仮想化コンピューティングリソースを提供するように構成され得る。IaaSモデルでは、クラウドコンピューティングプロバイダは、インフラストラクチャコンポーネント(たとえば、サーバ、ストレージデバイス、ネットワークノード(たとえばハードウェア)、展開ソフトウェア、プラットフォーム仮想化(たとえばハイパーバイザ層)など)をホストし得る。いくつかの場合において、IaaSプロバイダはまた、それらのインフラストラクチャコンポーネントに付随するさまざまなサービス(たとえば、課金、監視、ロギング、セキュリティ、ロードバランシングおよびクラスタリングなど)を提供してもよい。よって、これらのサービスはポリシー駆動型であり得るので、IaaSユーザは、ロードバランシングを駆動するポリシーを実現して、アプリケーションの可用性および性能を維持することが可能であり得る。
【0066】
いくつかの例では、IaaS顧客は、インターネットなどのワイドエリアネットワーク(WAN)を通じてリソースおよびサービスにアクセスしてもよく、クラウドプロバイダのサービスを利用してアプリケーションスタックの残りの要素をインストールすることができる。たとえば、ユーザは、IaaSプラットフォームにログインして、仮想マシン(VM)を作成し、各VM上にオペレーティングシステム(OS)をインストールし、データベースなどのミドルウェアを展開し、ワークロードおよびバックアップ用のストレージバケットを作成し、さらにはそのVMに企業向けソフトウェアをインストールすることができる。そして顧客は、プロバイダのサービスを利用して、ネットワークトラフィックのバランシング、アプリケーション問題のトラブルシューティング、パフォーマンスの監視、ディザスタリカバリの管理などを含むさまざまな機能を実行することができる。
【0067】
ほとんどの場合、クラウドコンピューティングモデルはクラウドプロバイダの参加を使用する。クラウドプロバイダは、IaaSを提供する(たとえば、オファーする、レンタルする、販売する)ことに特化した第三者サービスであってもよいが、そうでなくてもよい。また、エンティティが、プライベートクラウドを展開することを選択して、エンティティ自身のインフラストラクチャサービスのプロバイダになってもよい。
【0068】
いくつかの例では、IaaS展開は、新しいアプリケーションまたは新しいバージョンのアプリケーションを準備されたアプリケーションサーバなどに置くプロセスである。ここれは、サーバを準備する(たとえば、ライブラリ、デーモンなどをインストールする)プロセスも含み得る。これは、クラウドプロバイダによって、ハイパーバイザ層(たとえば、サーバ、ストレージ、ネットワークハードウェア、および仮想化)の下で管理されることが多い。よって、顧客は、(たとえば、(たとえば、オンデマンドでスピンアップされ得る)セルフサービス仮想マシン上の)ハンドリング(OS)、ミドルウェア、および/またはアプリケーション展開などを担ってもよい。
【0069】
いくつかの例では、IaaSプロビジョニングは、使用されるコンピュータまたは仮想ホストを取得すること、さらには、必要なライブラリまたはサービスをそれらにインストールすることを指すことがある。ほとんどの場合、展開はプロビジョニングを含まず、プロビジョニングは最初に実行される必要があり得る。
【0070】
いくつかの場合において、IaaSプロビジョニングには2つの異なる課題がある。第1に、何かが動作する前にインフラストラクチャの初期セットをプロビジョニングするという最初の課題がある。第2に、すべてがプロビジョニングされた後に既存のインフラストラクチャを発展させる(たとえば、新しいサービスを追加する、サービスを変更する、サービスを削除するなど)という課題がある。いくつかの場合において、これらの2つの課題は、インフラストラクチャの構成を宣言的に定義することを可能にすることによって対処してもよい。言い換えれば、インフラストラクチャ(たとえば、どのコンポーネントが必要であり、それらがどのようにやり取りするか)は、1つ以上の構成ファイルによって定義され得る。よって、インフラストラクチャの全体的なトポロジ(たとえば、どのリソースがどのリソースに依存するのか、およびそれらが各々どのように連携するのか)は、宣言的に記述され得る。いくつかの例では、トポロジが定義されると、構成ファイルに記述されている異なるコンポーネントを作成および/または管理するワークフローが生成され得る。
【0071】
いくつかの例では、インフラストラクチャは、相互接続された多くの要素を有し得る。たとえば、コアネットワークとしても知られている1つ以上の仮想プライベートクラウド(VPC)(たとえば、構成可能なおよび/または共有されるコンピューティングリソースの、潜在的にオンデマンドのプール)が存在し得る。いくつかの例では、ネットワークのセキュリティがどのようにセットアップされるかを定義するためにプロビジョニングされる1つ以上のセキュリティグループルール、および1つ以上の仮想マシン(VM)も存在し得る。ロードバランサ、データベースなどの他のインフラストラクチャ要素もプロビジョニングされ得る。所望されるおよび/または追加されるインフラストラクチャ要素が増えるにつれて、インフラストラクチャは漸進的に進化し得る。
【0072】
いくつかの例では、さまざまな仮想コンピューティング環境にわたってインフラストラクチャコードの展開を可能にするために、連続的な展開技術が採用されてもよい。これに加えて、記載されている技術は、これらの環境内でインフラストラクチャ管理を可能にし得る。いくつかの例では、サービスチームが、1つ以上の、ただし多くの場合多くの、異なるプロダクション環境(たとえば、時には世界全体に及ぶ、多種多様な地理的場所にわたる)に展開されることが所望されるコードを書き込み得る。しかしながら、いくつかの例では、コードが展開されるインフラストラクチャを最初にセットアップしなければならない。いくつかの例では、プロビジョニングは手動で行うことができ、プロビジョニングツールを利用してリソースをプロビジョニングしてもよく、および/または、インフラストラクチャがプロビジョニングされると展開ツールを利用してコードを展開してもよい。
【0073】
図10は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの例示的なパターンを示すブロック
図1000である。サービスオペレータ1002は、仮想クラウドネットワーク(VCN)1006とセキュアホストサブネット1008とを含み得るセキュアホストテナンシ1004に通信可能に結合され得る。いくつかの例では、サービスオペレータ1002は、1つ以上のクライアントコンピューティングデバイスを使用していてもよい。クライアントコンピューティングデバイスは、Microsoft Windows Mobile(登録商標)などのソフトウェア、および/またはiOS、Windows Phone、Android、BlackBerry 8、Palm OSなどのさまざまなモバイルオペレーティングシステムを実行し、インターネット、電子メール、ショートメッセージサービス(SMS)、Blackberry(登録商標)、または他の通信プロトコルに対応する、ポータブルハンドヘルドデバイス(たとえば、iPhone(登録商標)、携帯電話、iPad(登録商標)、コンピューティングタブレット、携帯情報端末(PDA))またはウェアラブルデバイス(たとえば、Google Glass(登録商標)ヘッドマウントディスプレイ)であってもよい。これに代えて、クライアントコンピューティングデバイスは、例として、さまざまなバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinux(登録商標)オペレーティングシステムを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む汎用パーソナルコンピュータであってもよい。クライアントコンピューティングデバイスは、限定されないがたとえばGoogle Chrome OSなどのさまざまなGNU/Linux(登録商標)オペレーティングシステムを含む、さまざまな市販のUNIX(登録商標)またはUNIX(登録商標)系オペレーティングシステムのうちのいずれかを実行するワークステーションコンピュータであってもよい。これに代えてまたはこれに加えて、クライアントコンピューティングデバイスは、VCN1006および/またはインターネットにアクセスできるネットワークを介して通信可能なその他の電子デバイス、たとえば、シンクライアントコンピュータ、インターネット対応のゲームシステム(たとえば、Kinect(登録商標)ジェスチャ入力デバイスを有するまたは有さないMicrosoft Xboxのゲームコンソール)、および/またはパーソナルメッセージングデバイスであってもよい。
【0074】
VCN1006は、ローカルピアリングゲートウェイ(LPG)1010を含み得る。LPG1010は、SSH VCN1012に含まれるLPG1010を介してセキュアシェル(SSH)VCN1012に通信可能に結合され得る。SSH VCN1012はSSHサブネット1014を含み得、SSH VCN1012は、制御プレーンVCN1016に含まれるLPG1010を介して制御プレーンVCN1016に通信可能に結合され得る。また、SSH VCN1012は、LPG1010を介してデータプレーンVCN1018に通信可能に結合され得る。制御プレーンVCN1016およびデータプレーンVCN1018は、IaaSプロバイダによって所有および/または操作され得るサービステナンシ1019に含まれ得る。
【0075】
制御プレーンVCN1016は、周辺ネットワーク(たとえば、企業イントラネットと外部ネットワークとの間の企業ネットワークの部分)として機能する制御プレーンデミリタライズドゾーン(DMZ)層1020を含み得る。DMZベースのサーバは、制限された責任を有し、セキュリティ侵害を抑制するのを助け得る。これに加えて、DMZ層1020は、1つ以上のロードバランサ(LB)サブネット1022と、アプリサブネット1026を含み得る制御プレーンアプリ層1024と、データベース(DB)サブネット1030(たとえばフロントエンドDBサブネットおよび/またはバックエンドDBサブネット)を含み得る制御プレーンデータ層1028とを含み得る。制御プレーンDMZ層1020に含まれるLBサブネット1022は、制御プレーンアプリ層1024に含まれるアプリサブネット1026と、制御プレーンVCN1016に含まれ得るインターネットゲートウェイ1034とに通信可能に結合され得、アプリサブネット1026は、制御プレーンデータ層1028に含まれるDBサブネット1030と、サービスゲートウェイ1036と、ネットワークアドレス変換(NAT)ゲートウェイ1038とに通信可能に結合され得る。制御プレーンVCN1016は、サービスゲートウェイ1036およびNATゲートウェイ1038を含み得る。
【0076】
制御プレーンVCN1016は、アプリサブネット1026を含み得るデータプレーンミラーアプリ層1040を含み得る。データプレーンミラーアプリ層1040に含まれるアプリサブネット1026は、計算インスタンス1044を実行し得る仮想ネットワークインターフェイスコントローラ(VNIC)1042を含み得る。計算インスタンス1044は、データプレーンミラーアプリ層1040のアプリサブネット1026を、データプレーンアプリ層1046に含まれ得るアプリサブネット1026に通信可能に結合し得る。
【0077】
データプレーンVCN1018は、データプレーンアプリ層1046と、データプレーンDMZ層1048と、データプレーンデータ層1050とを含み得る。データプレーンDMZ層1048は、データプレーンアプリ層1046のアプリサブネット1026およびデータプレーンVCN1018のインターネットゲートウェイ1034に通信可能に結合され得るLBサブネット1022を含み得る。アプリサブネット1026は、データプレーンVCN1018のサービスゲートウェイ1036およびデータプレーンVCN1018のNATゲートウェイ1038に通信可能に結合され得る。データプレーンデータ層1050も、データプレーンアプリ層1046のアプリサブネット1026に通信可能に結合され得るDBサブネット1030を含み得る。
【0078】
制御プレーンVCN1016およびデータプレーンVCN1018のインターネットゲートウェイ1034は、パブリックインターネット1054に通信可能に結合され得るメタデータ管理サービス1052に通信可能に結合され得る。パブリックインターネット1054は、制御プレーンVCN1016およびデータプレーンVCN1018のNATゲートウェイ1038に通信可能に結合され得る。制御プレーンVCN1016およびデータプレーンVCN1018のサービスゲートウェイ1036は、クラウドサービス1056に通信可能に結合され得る。
【0079】
いくつかの例では、制御プレーンVCN1016またはデータプレーンVCN1018のサービスゲートウェイ1036は、パブリックインターネット1054を通過することなくクラウドサービス1056にアプリケーションプログラミングインターフェイス(API)呼び出しを行い得る。サービスゲートウェイ1036からクラウドサービス1056へのAPI呼び出しは、一方向であり得る。すなわち、サービスゲートウェイ1036は、クラウドサービス1056にAPI呼び出しを行い得、クラウドサービス1056は、要求されたデータをサービスゲートウェイ1036に送信し得る。しかしながら、クラウドサービス1056は、サービスゲートウェイ1036へのAPI呼び出しを開始しなくてもよい。
【0080】
いくつかの例では、セキュアホストテナンシ1004は、サービステナンシ1019に直接に接続され得、サービステナンシ1019は、そうでなければ分離されてもよい。セキュアホストサブネット1008は、他の態様では分離されたシステムを介して双方向通信を可能にし得るLPG1010を通じてSSHサブネット1014と通信し得る。セキュアホストサブネット1008をSSHサブネット1014に接続することで、セキュアホストサブネット1008にサービステナンシ1019内の他のエンティティへのアクセスが与えられてもよい。
【0081】
制御プレーンVCN1016は、サービステナンシ1019のユーザが所望のリソースをセットアップまたはそうでなければプロビジョニングすることを可能にしてもよい。制御プレーンVCN1016においてプロビジョニングされる所望のリソースは、データプレーンVCN1018において展開またはそうでなければ使用されてもよい。いくつかの例では、制御プレーンVCN1016は、データプレーンVCN1018から分離され得、制御プレーンVCN1016のデータプレーンミラーアプリ層1040は、データプレーンミラーアプリ層1040およびデータプレーンアプリ層1046に含まれ得るVNIC1042を介して、データプレーンVCN1018のデータプレーンアプリ層1046と通信し得る。
【0082】
いくつかの例では、システムのユーザまたは顧客は、メタデータ管理サービス1052に要求を通信し得るパブリックインターネット1054を通じて、たとえば作成、読出、更新、または削除(CRUD)動作などの要求を行い得る。メタデータ管理サービス1052は、インターネットゲートウェイ1034を通じて制御プレーンVCN1016に要求を通信し得る。この要求は、制御プレーンDMZ層1020に含まれるLBサブネット1022によって受信され得る。LBサブネット1022は、要求が有効であると判断してもよく、この判断に応答して、LBサブネット1022は、制御プレーンアプリ層1024に含まれるアプリサブネット1026に要求を送信し得る。要求が検証され、パブリックインターネット1054への呼び出しを必要とする場合、パブリックインターネット1054への呼び出しは、パブリックインターネット1054への呼び出しを行い得るNATゲートウェイ1038に送信されてもよい。要求によって格納されることが所望され得るメモリは、DBサブネット1030に格納され得る。
【0083】
いくつかの例では、データプレーンミラーアプリ層1040は、制御プレーンVCN1016とデータプレーンVCN1018との間の直接通信を容易にし得る。たとえば、構成の変更、更新、または他の適切な修正が、データプレーンVCN1018に含まれるリソースに適用されることが所望される場合がある。VNIC1042を介して、制御プレーンVCN1016は、データプレーンVCN1018に含まれるリソースと直接通信し得、それによって、構成に対する変更、更新、または他の適切な修正を実行し得る。
【0084】
いくつかの実施形態では、制御プレーンVCN1016およびデータプレーンVCN1018は、サービステナンシ1019に含まれ得る。この場合、システムのユーザまたは顧客は、制御プレーンVCN1016またはデータプレーンVCN1018のいずれも所有または操作しなくてもよい。代わりに、IaaSプロバイダが、制御プレーンVCN1016およびデータプレーンVCN1018を所有または操作してもよく、これらの両方がサービステナンシ1019に含まれてもよい。この実施形態は、ユーザまたは顧客が他のユーザのまたは他の顧客のリソースとやり取りすることを防止し得るネットワークの分離を可能にし得る。また、この実施形態は、システムのユーザまたは顧客が、所望のセキュリティレベルを有さない可能性があるパブリックインターネット1054に格納のために依存する必要なく、データベースを非公式に格納することを可能にしてもよい。
【0085】
他の実施形態では、制御プレーンVCN1016に含まれるLBサブネット1022は、サービスゲートウェイ1036から信号を受信するように構成され得る。この実施形態では、制御プレーンVCN1016およびデータプレーンVCN1018は、パブリックインターネット1054を呼び出すことなく、IaaSプロバイダの顧客によって呼び出されるように構成されてもよい。顧客が使用するデータベースはIaaSプロバイダによって制御されてもよく、パブリックインターネット1054から分離され得るサービステナンシ1019上に格納されてもよいので、IaaSプロバイダの顧客はこの実施形態を所望する場合がある。
【0086】
図11は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック
図1100である。サービスオペレータ1102(たとえば
図10のサービスオペレータ1002)は、仮想クラウドネットワーク(VCN)1106(たとえば
図10のVCN1006)およびセキュアホストサブネット1108(たとえば
図10のセキュアホストサブネット1008)を含み得るセキュアホストテナンシ1104(たとえば
図10のセキュアホストテナンシ1004)に通信可能に結合され得る。VCN1106は、SSH VCN1112に含まれるLPG1010を介してセキュアシェル(SSH)VCN1112(たとえば
図10のSSH VCN1012)に通信可能に結合され得るローカルピアリングゲートウェイ(LPG)1110(たとえば
図10のLPG1010)を含み得る。SSH VCN1112は、SSHサブネット1114(たとえば
図10のSSHサブネット1014)を含み得、SSH VCN1112は、制御プレーンVCN1116に含まれるLPG1110を介して制御プレーンVCN1116(たとえば
図10の制御プレーンVCN1016)に通信可能に結合され得る。制御プレーンVCN1116は、サービステナンシ1119(たとえば
図10のサービステナンシ1019)に含まれ得、データプレーンVCN1118(たとえば
図10のデータプレーンVCN1018)は、システムのユーザまたは顧客によって所有または操作され得る顧客テナンシ1121に含まれ得る。
【0087】
制御プレーンVCN1116は、LBサブネット1122(たとえば
図10のLBサブネット1022)を含み得る制御プレーンDMZ層1120(たとえば
図10の制御プレーンDMZ層1020)と、アプリサブネット1126(たとえば
図10のアプリサブネット1026)を含み得る制御プレーンアプリ層1124(たとえば
図10の制御プレーンアプリ層1024)と、(たとえば
図10のDBサブネット1030と同様の)データベース(DB)サブネット1130を含み得る制御プレーンデータ層1128(たとえば
図10の制御プレーンデータ層1028)とを含み得る。制御プレーンDMZ層1120に含まれるLBサブネット1122は、制御プレーンアプリ層1124に含まれるアプリサブネット1126と、制御プレーンVCN1116に含まれ得るインターネットゲートウェイ1134(たとえば
図10のインターネットゲートウェイ1034)とに通信可能に結合され得、アプリサブネット1126は、制御プレーンデータ層1128に含まれるDBサブネット1130と、サービスゲートウェイ1136(たとえば
図10のサービスゲートウェイ)と、ネットワークアドレス変換(NAT)ゲートウェイ1138(たとえば
図10のNATゲートウェイ1038)とに通信可能に結合され得る。制御プレーンVCN1116は、サービスゲートウェイ1136およびNATゲートウェイ1138を含み得る。
【0088】
制御プレーンVCN1116は、アプリサブネット1126を含み得るデータプレーンミラーアプリ層1140(たとえば
図10のデータプレーンミラーアプリ層1040)を含み得る。データプレーンミラーアプリ層1140に含まれるアプリサブネット1126は、(たとえば
図10の計算インスタンス1044と同様の)計算インスタンス1144を実行し得る仮想ネットワークインターフェイスコントローラ(VNIC)1142(たとえば1042のVNIC)を含み得る。計算インスタンス1144は、データプレーンミラーアプリ層1140に含まれるVNIC1142とデータプレーンアプリ層1146に含まれるVNIC1142とを介して、データプレーンミラーアプリ層1140のアプリサブネット1126と、データプレーンアプリ層1146(たとえば
図10のデータプレーンアプリ層1046)に含まれ得るアプリサブネット1126との間の通信を容易にし得る。
【0089】
制御プレーンVCN1116に含まれるインターネットゲートウェイ1134は、パブリックインターネット1154(たとえば
図10のパブリックインターネット1054)に通信可能に結合され得るメタデータ管理サービス1152(たとえば
図10のメタデータ管理サービス1052)に通信可能に結合され得る。パブリックインターネット1154は、制御プレーンVCN1116に含まれるNATゲートウェイ1138に通信可能に結合され得る。制御プレーンVCN1116に含まれるサービスゲートウェイ1136は、クラウドサービス1156(たとえば
図10のクラウドサービス1056)に通信可能に結合され得る。
【0090】
いくつかの例では、データプレーンVCN1118は、顧客テナンシ1121に含まれ得る。この場合、IaaSプロバイダは、顧客ごとに制御プレーンVCN1116を提供してもよく、IaaSプロバイダは、顧客ごとに、サービステナンシ1119に含まれる固有の計算インスタンス1144をセットアップしてもよい。各計算インスタンス1144は、サービステナンシ1119に含まれる制御プレーンVCN1116と顧客テナンシ1121に含まれるデータプレーンVCN1118との間の通信を可能にしてもよい。計算インスタンス1144は、サービステナンシ1119に含まれる制御プレーンVCN1116においてプロビジョニングされるリソースが、顧客テナンシ1121に含まれるデータプレーンVCN1118において展開またはそうでなければ使用されることを可能にしてもよい。
【0091】
他の例では、IaaSプロバイダの顧客は、顧客テナンシ1121に存在するデータベースを有してもよい。この例では、制御プレーンVCN1116は、アプリサブネット1126を含み得るデータプレーンミラーアプリ層1140を含み得る。データプレーンミラーアプリ層1140は、データプレーンVCN1118に常駐し得るが、データプレーンミラーアプリ層1140は、データプレーンVCN1118に存在しなくてもよい。すなわち、データプレーンミラーアプリ層1140は、顧客テナンシ1121へのアクセスを有してもよいが、データプレーンミラーアプリ層1140は、データプレーンVCN1118に存在しなくてもよく、またはIaaSプロバイダの顧客によって所有もしくは操作されなくてもよい。データプレーンミラーアプリ層1140は、データプレーンVCN1118への呼び出しを行うように構成されてもよいが、制御プレーンVCN1116に含まれる任意のエンティティへの呼び出しを行うように構成されなくてもよい。顧客は、制御プレーンVCN1116においてプロビジョニングされるデータプレーンVCN1118内のリソースを展開またはそうでなければ使用することを所望する場合があり、データプレーンミラーアプリ層1140は、顧客のリソースの所望の展開または他の使用を容易にし得る。
【0092】
いくつかの実施形態では、IaaSプロバイダの顧客は、データプレーンVCN1118にフィルタを適用し得る。この実施形態では、顧客は、データプレーンVCN1118が何にアクセスできるかを判断し得、顧客は、データプレーンVCN1118からのパブリックインターネット1154へのアクセスを制限してもよい。IaaSプロバイダは、データプレーンVCN1118の任意の外部ネットワークまたはデータベースへのアクセスにフィルタを適用することまたはそうでなければ当該アクセスを制御することができなくてもよい。顧客テナンシ1121に含まれるデータプレーンVCN1118上に顧客によってフィルタおよび制御を適用することで、データプレーンVCN1118を他の顧客およびパブリックインターネット1154から分離するのを助けることができる。
【0093】
いくつかの実施形態では、パブリックインターネット1154上、制御プレーンVCN1116上、またはデータプレーンVCN1118上に存在しない場合があるサービスにアクセスするために、クラウドサービス1156がサービスゲートウェイ1136によって呼び出され得る。クラウドサービス1156と制御プレーンVCN1116またはデータプレーンVCN1118との間の接続は、ライブまたは連続的でなくてもよい。クラウドサービス1156は、IaaSプロバイダによって所有または操作される異なるネットワーク上に存在してもよい。クラウドサービス1156は、サービスゲートウェイ1136から呼び出しを受信するように構成されてもよく、パブリックインターネット1154から呼び出しを受信しないように構成されてもよい。いくつかのクラウドサービス1156は、他のクラウドサービス1156から分離されてもよく、制御プレーンVCN1116は、制御プレーンVCN1116と同じリージョンにない場合があるクラウドサービス1156から分離されてもよい。たとえば、制御プレーンVCN1116は「リージョン1」に位置してもよく、クラウドサービス「展開10」はリージョン1および「リージョン2」に位置してもよい。展開10への呼び出しが、リージョン1に位置する制御プレーンVCN1116に含まれるサービスゲートウェイ1136によって行われる場合、この呼び出しはリージョン1の展開10に送信されてもよい。この例では、制御プレーンVCN1116、またはリージョン1の展開10は、リージョン2の展開10に通信可能に結合されなくてもよく、またはそうでなければリージョン2の展開10と通信していなくてもよい。
【0094】
図12は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック
図1200である。サービスオペレータ1202(たとえば
図10のサービスオペレータ1002)は、仮想クラウドネットワーク(VCN)1206(たとえば
図10のVCN1006)およびセキュアホストサブネット1208(たとえば
図10のセキュアホストサブネット1008)を含み得るセキュアホストテナンシ1204(たとえば
図10のセキュアホストテナンシ1004)に通信可能に結合され得る。VCN1206は、SSH VCN1212に含まれるLPG1210を介してSSH VCN1212(たとえば
図10のSSH VCN1012)に通信可能に結合され得るLPG1210(たとえば
図10のLPG1010)を含み得る。SSH VCN1212は、SSHサブネット1214(たとえば
図10のSSHサブネット1014)を含み得、SSH VCN1212は、制御プレーンVCN1216に含まれるLPG1210を介して制御プレーンVCN1216(たとえば
図10の制御プレーンVCN1016)に通信可能に結合され得、データプレーンVCN1218に含まれるLPG1210を介してデータプレーンVCN1218(たとえば
図10のデータプレーン1018)に通信可能に結合され得る。制御プレーンVCN1216およびデータプレーンVCN1218は、サービステナンシ1219(たとえば
図10のサービステナンシ1019)に含まれ得る。
【0095】
制御プレーンVCN1216は、ロードバランサ(LB)サブネット1222(たとえば
図10のLBサブネット1022)を含み得る制御プレーンDMZ層1220(たとえば
図10の制御プレーンDMZ層1020)と、(たとえば
図10のアプリサブネット1026と同様の)アプリサブネット1226を含み得る制御プレーンアプリ層1224(たとえば
図10の制御プレーンアプリ層1024)と、DBサブネット1230を含み得る制御プレーンデータ層1228(たとえば
図10の制御プレーンデータ層1028)とを含み得る。制御プレーンDMZ層1220に含まれるLBサブネット1222は、制御プレーンアプリ層1224に含まれるアプリサブネット1226と、制御プレーンVCN1216に含まれ得るインターネットゲートウェイ1234(たとえば
図10のインターネットゲートウェイ1034)とに通信可能に結合され得、アプリサブネット1226は、制御プレーンデータ層1228に含まれるDBサブネット1230と、サービスゲートウェイ1236(たとえば
図10のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ1238(たとえば
図10のNATゲートウェイ1038)とに通信可能に結合され得る。制御プレーンVCN1216は、サービスゲートウェイ1236およびNATゲートウェイ1238を含み得る。
【0096】
データプレーンVCN1218は、データプレーンアプリ層1246(たとえば
図10のデータプレーンアプリ層1046)と、データプレーンDMZ層1248(たとえば
図10のデータプレーンDMZ層1048)と、データプレーンデータ層1250(たとえば
図10のデータプレーンデータ層1050)とを含み得る。データプレーンDMZ層1248は、データプレーンアプリ層1246の信頼できるアプリサブネット1260および信頼できないアプリサブネット1262と、データプレーンVCN1218に含まれるインターネットゲートウェイ1234とに通信可能に結合され得るLBサブネット1222を含み得る。信頼できるアプリサブネット1260は、データプレーンVCN1218に含まれるサービスゲートウェイ1236と、データプレーンVCN1218に含まれるNATゲートウェイ1238と、データプレーンデータ層1250に含まれるDBサブネット1230とに通信可能に結合され得る。信頼できないアプリサブネット1262は、データプレーンVCN1218に含まれるサービスゲートウェイ1236と、データプレーンデータ層1250に含まれるDBサブネット1230とに通信可能に結合され得る。データプレーンデータ層1250は、データプレーンVCN1218に含まれるサービスゲートウェイ1236に通信可能に結合され得るDBサブネット1230を含み得る。
【0097】
信頼できないアプリサブネット1262は、テナント仮想マシン(VM)1266(1)~(N)に通信可能に結合され得る1つ以上のプライマリVNIC1264(1)~(N)を含み得る。各テナントVM1266(1)~(N)は、それぞれの顧客テナンシ1270(1)~(N)に含まれ得るそれぞれのコンテナエグレスVCN1268(1)~(N)に含まれ得るそれぞれのアプリサブネット1267(1)~(N)に通信可能に結合され得る。それぞれのセカンダリVNIC1272(1)~(N)は、データプレーンVCN1218に含まれる信頼できないアプリサブネット1262とコンテナエグレスVCN1268(1)~(N)に含まれるアプリサブネットとの間の通信を容易にし得る。各コンテナエグレスVCN1268(1)~(N)は、パブリックインターネット1254(たとえば
図10のパブリックインターネット1054)に通信可能に結合され得るNATゲートウェイ1238を含み得る。
【0098】
制御プレーンVCN1216に含まれ、かつ、データプレーンVCN1218に含まれるインターネットゲートウェイ1234は、パブリックインターネット1254に通信可能に結合され得るメタデータ管理サービス1252(たとえば
図10のメタデータ管理システム1052)に通信可能に結合され得る。パブリックインターネット1254は、制御プレーンVCN1216に含まれ、データプレーンVCN1218に含まれるNATゲートウェイ1238に通信可能に結合され得る。制御プレーンVCN1216に含まれ、データプレーンVCN1218に含まれるサービスゲートウェイ1236は、クラウドサービス1256に通信可能に結合され得る。
【0099】
いくつかの実施形態では、データプレーンVCN1218は、顧客テナンシ1270と統合され得る。この統合は、コードの実行時のサポートを望む場合など、いくつかの場合においてIaaSプロバイダの顧客にとって有用または望ましいことがある。顧客は、破壊的であり得る、他の顧客リソースと通信し得る、またはそうでなければ望ましくない影響を引き起こし得る、実行すべきコードを提供し得る。これに応答して、IaaSプロバイダは、顧客がIaaSプロバイダに与えたコードを実行するか否かを判断してもよい。
【0100】
いくつかの例では、IaaSプロバイダの顧客は、IaaSプロバイダへの一時的なネットワークアクセスを許可し、ある機能をデータプレーン層アプリ1246にアタッチするよう要求してもよい。機能を実行するためのコードはVM1266(1)~(N)において実行されてもよく、当該コードは、データプレーンVCN1218上の他のどこかで動作するように構成されなくてもよい。各VM1266(1)~(N)は1つの顧客テナンシ1270に接続されてもよい。VM1266(1)~(N)に含まれるそれぞれのコンテナ1271(1)~(N)はコードを実行するように構成されてもよい。この場合、二重分離があってもよく(たとえば、コンテナ1271(1)~(N)はコードを実行し、コンテナ1271(1)~(N)は、信頼できないアプリサブネット1262に含まれる少なくともVM1266(1)~(N)に含まれてもよい)、これは、誤ったコードまたはそうでなければ望ましくないコードがIaaSプロバイダのネットワーを損傷すること、または異なる顧客のネットワークを損傷することを防ぐのを助け得る。コンテナ1271(1)~(N)は、顧客テナンシ1270に通信可能に結合されてもよく、顧客テナンシ1270との間でデータを送信または受信するように構成されてもよい。コンテナ1271(1)~(N)は、データプレーンVCN1218内の任意の他のエンティティとの間でデータを送信または受信するように構成されなくてもよい。コードの実行が完了すると、IaaSプロバイダはコンテナ1271(I)~(N)をキルするかまたはそうでなければ廃棄してもよい。
【0101】
いくつかの実施形態では、信頼できるアプリサブネット1260は、IaaSプロバイダによって所有または操作され得るコードを実行してもよい。この実施形態では、信頼できるアプリサブネット1260は、DBサブネット1230に通信可能に結合されてもよく、DBサブネット1230においてCRUD動作を実行するように構成されてもよい。信頼できないアプリサブネット1262は、DBサブネット1230に通信可能に結合されてもよいが、この実施形態では、信頼できないアプリサブネットは、DBサブネット1230において読出動作を実行するように構成されてもよい。各顧客のVM1266(1)~(N)に含まれ得、顧客からのコードを実行し得るコンテナ1271(1)~(N)は、DBサブネット1230に通信可能に結合されなくてもよい。
【0102】
他の実施形態では、制御プレーンVCN1216およびデータプレーンVCN1218は、直接通信可能に結合されなくてもよい。この実施形態では、制御プレーンVCN1216とデータプレーンVCN1218との間に直接通信がなくてもよい。しかしながら、通信は、少なくとも1つの方法を通して間接的に行われ得る。制御プレーンVCN1216とデータプレーンVCN1218との間の通信を容易にし得るLPG1210が、IaaSプロバイダによって確立されてもよい。別の例では、制御プレーンVCN1216またはデータプレーンVCN1218は、サービスゲートウェイ1236を介してクラウドサービス1256への呼び出しを行い得る。たとえば、制御プレーンVCN1216からクラウドサービス1256への呼び出しは、データプレーンVCN1218と通信し得るサービスの要求を含み得る。
【0103】
図13は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック
図1300である。サービスオペレータ1302(たとえば
図10のサービスオペレータ1002)は、仮想クラウドネットワーク(VCN)1306(たとえば
図10のVCN1006)およびセキュアホストサブネット1308(たとえば
図10のセキュアホストサブネット1008)を含み得るセキュアホストテナンシ1304(たとえば
図10のセキュアホストテナンシ1004)に通信可能に結合され得る。VCN1306は、SSH VCN1312に含まれるLPG1310を介してSSH VCN1312(たとえば
図10のSSH VCN1012)に通信可能に結合され得るLPG1310(たとえば
図10のLPG1010)を含み得る。SSH VCN1312は、SSHサブネット1314(たとえば
図10のSSHサブネット1014)を含み得、SSH VCN1312は、制御プレーンVCN1316に含まれるLPG1310を介して制御プレーンVCN1316(たとえば
図10の制御プレーンVCN1016)に通信可能に結合され得、データプレーンVCN1318に含まれるLPG1310を介してデータプレーンVCN1318(たとえば
図10のデータプレーン1018)に通信可能に結合され得る。制御プレーンVCN1316およびデータプレーンVCN1318は、サービステナンシ1319(たとえば
図10のサービステナンシ1019)に含まれ得る。
【0104】
制御プレーンVCN1316は、LBサブネット1322(たとえば
図10のLBサブネット1022)を含み得る制御プレーンDMZ層1320(たとえば
図10の制御プレーンDMZ層1020)と、アプリサブネット1326(たとえば
図10のアプリサブネット1026)を含み得る制御プレーンアプリ層1324(たとえば
図10の制御プレーンアプリ層1024)と、DBサブネット1330(たとえば
図12のDBサブネット1230)を含み得る制御プレーンデータ層1328(たとえば
図10の制御プレーンデータ層1028)とを含み得る。制御プレーンDMZ層1320に含まれるLBサブネット1322は、制御プレーンアプリ層1324に含まれるアプリサブネット1326と、制御プレーンVCN1316に含まれ得るインターネットゲートウェイ1334(たとえば
図10のインターネットゲートウェイ1034)とに通信可能に結合され得、アプリサブネット1326は、制御プレーンデータ層1328に含まれるDBサブネット1330と、サービスゲートウェイ1336(たとえば
図10のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ1338(たとえば
図10のNATゲートウェイ1038)とに通信可能に結合され得る。制御プレーンVCN1316は、サービスゲートウェイ1336およびNATゲートウェイ1338を含み得る。
【0105】
データプレーンVCN1318は、データプレーンアプリ層1346(たとえば
図10のデータプレーンアプリ層1046)と、データプレーンDMZ層1348(たとえば
図10のデータプレーンDMZ層1048)と、データプレーンデータ層1350(たとえば
図10のデータプレーンデータ層1050)とを含み得る。データプレーンDMZ層1348は、データプレーンアプリ層1346の信頼できるアプリサブネット1360(たとえば
図12の信頼できるアプリサブネット1260)および信頼できないアプリサブネット1362(たとえば
図12の信頼できないアプリサブネット1262)と、データプレーンVCN1318に含まれるインターネットゲートウェイ1334とに通信可能に結合され得るLBサブネット1322を含み得る。信頼できるアプリサブネット1360は、データプレーンVCN1318に含まれるサービスゲートウェイ1336と、データプレーンVCN1318に含まれるNATゲートウェイ1338と、データプレーンデータ層1350に含まれるDBサブネット1330とに通信可能に結合され得る。信頼できないアプリサブネット1362は、データプレーンVCN1318に含まれるサービスゲートウェイ1336と、データプレーンデータ層1350に含まれるDBサブネット1330とに通信可能に結合され得る。データプレーンデータ層1350は、データプレーンVCN1318に含まれるサービスゲートウェイ1336に通信可能に結合され得るDBサブネット1330を含み得る。
【0106】
信頼できないアプリサブネット1362は、信頼できないアプリサブネット1362内に常駐するテナント仮想マシン(VM)1366(1)~(N)に通信可能に結合され得るプライマリVNIC1364(1)~(N)を含み得る。各テナントVM1366(1)~(N)は、それぞれのコンテナ1367(1)~(N)においてコードを実行し得、コンテナエグレスVCN1368に含まれ得るデータプレーンアプリ層1346に含まれ得るアプリサブネット1326に通信可能に結合され得る。それぞれのセカンダリVNIC1372(1)~(N)は、データプレーンVCN1318に含まれる信頼できないアプリサブネット1362とコンテナエグレスVCN1368に含まれるアプリサブネットとの間の通信を容易にし得る。コンテナエグレスVCNは、パブリックインターネット1354(たとえば
図10のパブリックインターネット1054)に通信可能に結合され得るNATゲートウェイ1338を含み得る。
【0107】
制御プレーンVCN1316に含まれ、かつ、データプレーンVCN1318に含まれるインターネットゲートウェイ1334は、パブリックインターネット1354に通信可能に結合され得るメタデータ管理サービス1352(たとえば
図10のメタデータ管理システム1052)に通信可能に結合され得る。パブリックインターネット1354は、制御プレーンVCN1316に含まれ、データプレーンVCN1318に含まれるNATゲートウェイ1338に通信可能に結合され得る。制御プレーンVCN1316に含まれ、データプレーンVCN1318に含まれるサービスゲートウェイ1336は、クラウドサービス1356に通信可能に結合され得る。
【0108】
いくつかの例では、
図13のブロック
図1300のアーキテクチャによって示されるパターンは、
図12のブロック
図1200のアーキテクチャによって示されるパターンの例外と見なされてもよく、IaaSプロバイダが顧客と直接通信できない場合(たとえば切断された領域)、IaaSプロバイダの顧客にとって望ましいことがある。顧客ごとにVM1366(1)~(N)に含まれるそれぞれのコンテナ1367(1)~(N)は、顧客によってリアルタイムでアクセスされ得る。コンテナ1367(1)~(N)は、コンテナエグレスVCN1368に含まれ得るデータプレーンアプリ層1346のアプリサブネット1326に含まれるそれぞれのセカンダリVNIC1372(1)~(N)への呼び出しを行うように構成されてもよい。セカンダリVNIC1372(1)~(N)はNATゲートウェイ1338に呼び出しを送信し得、NATゲートウェイ1338はこの呼び出しをパブリックインターネット1354に送信してもよい。この例では、顧客によってリアルタイムでアクセスされ得るコンテナ1367(1)~(N)は、制御プレーンVCN1316から分離され得、データプレーンVCN1318に含まれる他のエンティティから分離され得る。コンテナ1367(1)~(N)は、他の顧客からのリソースからも分離されてもよい。
【0109】
他の例では、顧客は、コンテナ1367(1)~(N)を使用してクラウドサービス1356を呼び出し得る。この例では、顧客は、コンテナ1367(1)~(N)において、クラウドサービス1356にサービスを要求するコードを実行してもよい。コンテナ1367(1)~(N)はこの要求をセカンダリVNIC1372(1)~(N)に送信し得、セカンダリVNIC1372(1)~(N)はその要求をNATゲートウェイに送信し得、NATゲートウェイはその要求をパブリックインターネット1354に送信し得る。パブリックインターネット1354は、インターネットゲートウェイ1334を介して、制御プレーンVCN1316に含まれるLBサブネット1322に要求を送信し得る。要求が有効であると判断したことに応答して、LBサブネットはその要求をアプリサブネット1326に送信し得、アプリサブネット1326はその要求をサービスゲートウェイ1336を介してクラウドサービス1356に送信し得る。
【0110】
なお、図に示されるIaaSアーキテクチャ1000,1100,1200,1300は、図示される以外のコンポーネントを有してもよい。さらに、図示される実施形態は、本開示の実施形態を組み込み得るクラウドインフラストラクチャシステムのいくつかの例に過ぎない。いくつかの他の実施形態では、IaaSシステムは、図示されるよりも多いもしくは少ないコンポーネントを有してもよく、2つ以上のコンポーネントを組み合わせてよく、または、コンポーネントの異なる構成もしくは配置を有してもよい。
【0111】
特定の実施形態では、本明細書に記載されているIaaSシステムは、セルフサービスであり、サブスクリプションベースであり、弾力的にスケーラブルであり、信頼性が高く、可用性が高く、セキュアなやり方で顧客に与えられる、アプリケーション、ミドルウェア、およびデータベースサービス製品一式を含み得る。このようなIaaSシステムの一例は、本願の譲受人が提供するオラクルクラウドインフラストラクチャ(Oracle Cloud Infrastructure:OCI)である。
【0112】
図14は、本開示のさまざまな実施形態が実現され得る例示的なコンピュータシステム1400を示す。システム1400は、上述のコンピュータシステムのうちのいずれかを実現するために使用され得る。図示されるように、コンピュータシステム1400は、バスサブシステム1402を介していくつかの周辺サブシステムと通信する処理ユニット1404を含む。これらの周辺サブシステムは、処理加速ユニット1406と、I/Oサブシステム1408と、ストレージサブシステム1418と、通信サブシステム1424とを含み得る。ストレージサブシステム1418は、有形のコンピュータ読取可能記憶媒体1422およびシステムメモリ1410を含む。
【0113】
バスサブシステム1402は、コンピュータシステム1400のさまざまなコンポーネントおよびサブシステムを意図されるように互いに通信させるためのメカニズムを提供する。バスサブシステム1402は1つのバスとして概略的に示されているが、バスサブシステムの代替の実施形態は複数のバスを利用してもよい。バスサブシステム1402は、さまざまなバスアーキテクチャのうちのいずれかを用いる、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のうちのいずれかであってもよい。たとえば、そのようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバス、およびIEEE P1386.1規格に従って製造されるメザニンバスとして実現され得る周辺コンポーネントインターコネクト(PCI)バスを含み得る。
【0114】
1つ以上の集積回路(たとえば従来のマイクロプロセッサまたはマイクロコントローラ)として実現され得る処理ユニット1404は、コンピュータシステム1400の動作を制御する。1つ以上のプロセッサが処理ユニット1404に含まれてもよい。これらのプロセッサは、シングルコアプロセッサまたはマルチコアプロセッサを含み得る。特定の実施形態では、処理ユニット1404は、シングルコアプロセッサもしくはマルチコアプロセッサが各処理ユニットに含まれる1つ以上の独立した処理ユニット1432および/または1434として実現され得る。他の実施形態では、処理ユニット1404はまた、2つのデュアルコアプロセッサを1つのチップに統合することによって形成されるクアッドコア処理ユニットとして実現され得る。
【0115】
さまざまな実施形態では、処理ユニット1404は、プログラムコードに応答してさまざまなプログラムを実行し得、同時に実行される複数のプログラムまたはプロセスを維持し得る。任意の所与の時間に、実行すべきプログラムコードの一部またはすべてが、プロセッサ1404および/またはストレージサブシステム1418に常駐し得る。適切なプログラミングを通して、プロセッサ1404は上記のさまざまな機能を提供し得る。コンピュータシステム1400はこれに加えて、デジタル信号プロセッサ(DSP)、特殊目的プロセッサ、および/またはその他を含み得る処理加速ユニット1406を含み得る。
【0116】
I/Oサブシステム1408は、ユーザインターフェイス入力デバイスおよびユーザインターフェイス出力デバイスを含み得る。ユーザインターフェイス入力デバイスは、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システム付きの音声入力デバイス、マイク、および他のタイプの入力デバイスを含み得る。ユーザインターフェイス入力デバイスは、たとえば、ユーザが、ジェスチャおよび発話コマンドを使用するナチュラルユーザインターフェイスを通して、Microsoft Xbox(登録商標)360ゲームコントローラなどの入力デバイスを制御し、それとやり取りすることを可能にする、Microsoft Kinect(登録商標)モーションセンサなどのモーション感知および/またはジェスチャ認識デバイスを含み得る。ユーザインターフェイス入力デバイスはまた、ユーザからの目の動き(たとえば、写真撮影中および/またはメニュー選択中の「まばたき」)を検出し、目のジェスチャを入力デバイス(たとえばGoogle Glass(登録商標))への入力として変換する、Google Glass(登録商標)まばたき検出器などのアイジェスチャ認識デバイスを含み得る。これに加えて、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを通して音声認識システム(たとえばSiri(登録商標)ナビゲータ)とやり取りすることを可能にする音声認識感知デバイスを含み得る。
【0117】
ユーザインターフェイス入力デバイスはまた、限定されないが、3次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレイヤー、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線追跡デバイスなどの聴覚/視覚デバイスを含み得る。これに加えて、ユーザインターフェイス入力デバイスは、たとえば、コンピュータ断層撮影装置、磁気共鳴撮像装置、ポジトロン断層撮影装置、医療用超音波検査装置などの医療用撮像入力デバイスを含み得る。ユーザインターフェイス入力デバイスはまた、たとえば、MIDIキーボード、デジタル楽器などの音声入力デバイスを含み得る。
【0118】
ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、表示灯、または音声出力デバイスなどの非視覚的ディスプレイなどを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを用いるものなどのフラットパネルデバイス、投影デバイス、タッチスクリーンなどであってもよい。一般的に、「出力デバイス」という語を使用する場合は、コンピュータシステム1400からユーザまたは他のコンピュータに情報を出力するための可能なすべてのタイプのデバイスおよびメカニズムを含むことを意図している。たとえば、ユーザインターフェイス出力デバイスは、限定されないが、モニタ、プリンタ、スピーカ、ヘッドホン、カーナビゲーションシステム、プロッタ、音声出力デバイス、およびモデムなどの、テキスト、図形、および音声/映像情報を視覚的に伝えるさまざまなディスプレイデバイスを含み得る。
【0119】
コンピュータシステム1400は、現在はシステムメモリ1410内にあるものとして示されているソフトウェア要素を含むストレージサブシステム1418を含み得る。システムメモリ1410は、処理ユニット1404上でロード可能および実行可能なプログラム命令、ならびにこれらのプログラムの実行中に生成されたデータを格納し得る。
【0120】
コンピュータシステム1400の構成およびタイプに応じて、システムメモリ1410は、揮発性(ランダムアクセスメモリ(RAM)など)および/または不揮発性(読出専用メモリ(ROM)、フラッシュメモリなど)であってもよい。RAMは典型的には、処理ユニット1404に直ちにアクセス可能である、ならびに/または処理ユニット1404によって現在操作および実行されている、データおよび/またはプログラムモジュールを含む。いくつかの実現例では、システムメモリ1410は、スタティックランダムアクセスメモリ(SRAM)またはダイナミックランダムアクセスメモリ(DRAM)などの複数の異なるタイプのメモリを含み得る。いくつかの実現例では、起動中などにコンピュータシステム1400内の要素間で情報を転送するのを助ける基本的なルーチンを含む基本入出力システム(BIOS)が、典型的にはROMに格納されてもよい。限定ではなく例として、システムメモリ1410はまた、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などを含み得るアプリケーションプログラム1412と、プログラムデータ1414と、オペレーティングシステム1416とを示している。例として、オペレーティングシステム1416は、さまざまなバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinux(登録商標)オペレーティングシステム、さまざまな市販のUNIX(登録商標)またはUNIX(登録商標)系オペレーティングシステム(限定されないがさまざまなGNU/Linux(登録商標)オペレーティングシステム、Google Chrome(登録商標)OSなどを含む)、および/またはiOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)14 OS、およびPalm(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含み得る。
【0121】
ストレージサブシステム1418はまた、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を格納するための有形のコンピュータ読取可能記憶媒体を提供し得る。プロセッサによって実行されると上記機能を提供するソフトウェア(プログラム、コードモジュール、命令)がストレージサブシステム1418に格納され得る。これらのソフトウェアモジュールまたは命令は、処理ユニット1404によって実行され得る。ストレージサブシステム1418はまた、本開示に従って使用されるデータを格納するためのリポジトリを提供し得る。
【0122】
ストレージサブシステム1400はまた、コンピュータ読取可能記憶媒体1422にさらに接続され得るコンピュータ読取可能記憶媒体リーダ1420を含み得る。システムメモリ1410とともに、また、オプションとしてシステムメモリ1410と組み合わされて、コンピュータ読取可能記憶媒体1422は、コンピュータ読取可能情報を一時的におよび/またはより恒久的に含む、格納する、送信する、および取り出すための、遠隔の、ローカルな、固定された、および/または取り外し可能な記憶装置に記憶媒体を加えたものを包括的に表し得る。
【0123】
コードまたはコードの一部を含むコンピュータ読取可能記憶媒体1422はまた、限定されないが、情報の格納および/または送信のための任意の方法または技術で実現される、揮発性および不揮発性、取り外し可能なおよび取り外し可能でない媒体などの、記憶媒体および通信媒体を含む、当該技術において周知のまたは使用されている任意の適切な媒体を含み得る。これは、RAM、ROM、電子的に消去可能プログラマブルROM(EEPROM)、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)、または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または他の有形のコンピュータ読取可能媒体などの、有形のコンピュータ読取可能記憶媒体を含み得る。これはまた、データ信号、データ伝送、または所望の情報を送信するために使用することができ、コンピューティングシステム1400によってアクセスすることができる任意の他の媒体などの、非有形のコンピュータ読取可能媒体を含み得る。
【0124】
例として、コンピュータ読取可能記憶媒体1422は、取り外し可能でない不揮発性磁気媒体に対する読出および書込を行うハードディスクドライブ、取り外し可能な不揮発性磁気ディスクに対する読出および書込を行う磁気ディスクドライブ、ならびに、CD ROM、DVD、およびBlu-Ray(登録商標)ディスク、または他の光学媒体などの取り外し可能な不揮発性光ディスクに対する読出および書込を行う光ディスクドライブを含み得る。コンピュータ読取可能記憶媒体1422は、限定されないが、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープなどを含み得る。コンピュータ読取可能記憶媒体1422はまた、フラッシュメモリベースのSSD、エンタープライズフラッシュドライブ、ソリッドステートROMなどの不揮発性メモリに基づくソリッドステートドライブ(SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAMなどの揮発性メモリに基づくSSD、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、およびDRAMとフラッシュメモリベースのSSDとの組み合わせを使用するハイブリッドSSDを含み得る。ディスクドライブおよびこれらに関連付けられたコンピュータ読取可能媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージをコンピュータシステム1400に提供し得る。
【0125】
通信サブシステム1424は、他のコンピュータシステムおよびネットワークに対するインターフェイスを提供する。通信サブシステム1424は、他のシステムとコンピュータシステム1400との間でデータを送受信するためのインターフェイスの役割を果たす。たとえば、通信サブシステム1424は、コンピュータシステム1400がインターネットを介して1つ以上のデバイスに接続することを可能にし得る。いくつかの実施形態では、通信サブシステム1424は、(たとえば携帯電話技術、3G、4GもしくはEDGE(enhanced data rates for global evolution)などの高度データネットワーク技術、WiFi(登録商標)(IEEE 802.11系規格、または他の移動通信技術、またはそれらの任意の組み合わせを使用して)無線音声および/またはデータネットワークにアクセスするための無線周波数(RF)トランシーバーコンポーネント、グローバルポジショニングシステム(GPS)受信機コンポーネント、および/または他のコンポーネントを含み得る。いくつかの実施形態では、通信サブシステム1424は、無線インターフェイスに加えてまたはその代わりに、有線ネットワーク接続性(たとえばイーサネット)を提供し得る。
【0126】
いくつかの実施形態では、通信サブシステム1424はまた、コンピュータシステム1400を使用し得る1人以上のユーザの代わりに、構造化および/または非構造化データフィード1426、イベントストリーム1428、イベント更新1430などの形態の入力通信を受信してもよい。
【0127】
例として、通信サブシステム1424は、Twitter(登録商標)フィード、Facebook(登録商標)更新、Rich Site Summary(RSS)フィードなどのウェブフィード、および/または1つ以上の第三者情報源からのリアルタイム更新などの、ソーシャルネットワークおよび/または他の通信サービスのユーザからのデータフィード1426をリアルタイムで受信するように構成されてもよい。
【0128】
これに加えて、通信サブシステム1424はまた、明確な終わりがなく本質的に連続的または無限であってもよい、リアルタイムイベントのイベントストリーム1428および/またはイベント更新1430を含み得る、連続データストリームの形態のデータを受信するように構成されてもよい。連続データを生成するアプリケーションの例としては、たとえば、センサデータアプリケーション、金融ティッカー、ネットワーク性能測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通監視などが挙げられ得る。
【0129】
通信サブシステム1424はまた、構造化および/または非構造化データフィード1426、イベントストリーム1428、イベント更新1430などを、コンピュータシステム1400に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに出力するように構成されてもよい。
【0130】
コンピュータシステム1400は、ハンドヘルドポータブルデバイス(たとえば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえば、Google Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他任意のデータ処理システムを含む、さまざまなタイプのうちの1つとすることができる。
【0131】
コンピュータおよびネットワークには常に変化しているという性質があるので、図に示されるコンピュータシステム1400の説明は、具体的な一例を意図しているに過ぎない。図に示されるシステムよりも多いまたは少ないコンポーネントを有するその他多数の構成が可能である。たとえば、カスタマイズされたハードウェアが使用されてもよく、および/または特定の要素がハードウェア、ファームウェア、ソフトウェア(アプレットを含む)、もしくは組み合わせで実現され得る。さらに、ネットワーク入出力デバイスなどの他のコンピューティングデバイスに対する接続が採用されてもよい。本明細書に提供されている開示および教示に基づいて、当業者は、各種実施形態を実現するための他のやり方および/または方法を理解するであろう。
【0132】
クラウドサービスという語は、クラウドサービスプロバイダ(CSP)によって提供されるシステムおよびインフラストラクチャ(クラウドインフラストラクチャ)を使用してCSPによってユーザまたは顧客がオンデマンドで(たとえばサブスクリプションモデルを介して)利用できるようになるサービスを指すために一般に用いられる。典型的に、CSPのインフラストラクチャを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは別のものである。よって、顧客は、CSPによって提供されるクラウドサービスを、それらのサービスのための別個のハードウェアおよびソフトウェアリソースを購入する必要なしに利用することができる。クラウドサービスは、加入している顧客がそれらのサービスを提供するのに使用されるインフラストラクチャの調達に投資する必要なしに、アプリケーションおよびコンピューティングリソースへの容易でスケーラブルなアクセスを顧客に提供するように設計されている。
【0133】
さまざまなタイプのクラウドサービスを提供するいくつかのクラウドサービスプロバイダがある。サービスとしてのソフトウェア(Software-as-a-Service:SaaS)、サービスとしてのプラットフォーム(Platform-as-a-Service:PaaS)、サービスとしてのインフラストラクチャ(Infrastructure-as-a-Service:IaaS)などを含むさまざまな異なるタイプまたはモデルのクラウドサービスがある。
【0134】
顧客は、CSPによって提供される1つ以上のクラウドサービスに加入することができる。顧客は、個人、組織、企業などの任意のエンティティとすることができる。顧客がCSPによって提供されるサービスに加入または登録すると、その顧客のテナンシまたはアカウントが作成される。そして、顧客はこのアカウントを介して、アカウントに関連付けられた、加入した1つ以上のクラウドリソースにアクセスすることができる。
【0135】
上述のように、サービスとしてのインフラストラクチャ(IaaS)は、ある特定のタイプのクラウドコンピューティングサービスである。IaaSモデルでは、CSPは、顧客が自身のカスタマイズ可能なネットワークを構築し、顧客リソースを展開するために使用することができるインフラストラクチャ(クラウドサービスプロバイダインフラストラクチャまたはCSPIと呼ばれる)を提供する。よって、顧客のリソースおよびネットワークは、CSPによって提供されるインフラストラクチャによって分散環境でホストされている。これは、顧客のリソースおよびネットワークが顧客によって提供されるインフラストラクチャによってホストされている従来のコンピューティングとは異なる。
【0136】
CSPIは、さまざまなホストマシンを含む相互接続された高性能の計算リソースと、メモリリソースと、基幹ネットワークまたはアンダーレイネットワークとも呼ばれる物理ネットワークを形成するネットワークリソースとを含み得る。CSPIのリソースは、1つ以上の地理的領域に地理的に分散され得る1つ以上のデータセンターに分散され得る。これらの物理リソースによって仮想化ソフトウェアが実行されて、仮想化分散環境が提供され得る。仮想化は、物理ネットワーク上にオーバーレイネットワーク(ソフトウェアベースネットワーク、ソフトウェア定義ネットワーク、または仮想ネットワークとしても知られている)を作成する。CSPI物理ネットワークは、物理ネットワークの上に1つ以上のオーバーレイネットワークまたは仮想ネットワークを作成するための基礎を提供する。仮想ネットワークまたはオーバーレイネットワークは、1つ以上の仮想クラウドネットワーク(VCN)を含み得る。仮想ネットワークは、ソフトウェア仮想化技術(たとえば、ハイパーバイザ、ネットワーク仮想化デバイス(NVD)(たとえばスマートNIC)によって実行される機能、トップオブラック(TOR)スイッチ、NVDによって実行される1つ以上の機能を実現するスマートTOR、および他のメカニズム)を使用して実現されて、物理ネットワークの上で動作可能なネットワーク抽象化層を作成する。仮想ネットワークは、ピアツーピアネットワーク、IPネットワークなどを含むさまざまな形態を取ることができる。仮想ネットワークは典型的に、レイヤ3IPネットワークまたはレイヤ2VLANのいずれかである。この仮想ネットワーキングまたはオーバーレイネットワーキングの方法は、しばしば仮想レイヤ3ネットワーキングまたはオーバーレイレイヤ3ネットワーキングと呼ばれる。仮想ネットワークのために開発されたプロトコルの例としては、IP-in-IP(または汎用ルーティングカプセル化(GRE))、仮想拡張可能LAN(VXLAN-IETF RFC7348)、仮想プライベートネットワーク(VPN)(たとえばMPLSレイヤ3仮想プライベートネットワーク(RFC4364))、VMwareのNSX、GENEVE(汎用ネットワーク仮想化カプセル化)などが挙げられる。
【0137】
IaaSの場合、CSPによって提供されるインフラストラクチャ(CSPI)は、パブリックネットワーク(たとえばインターネット)を介して仮想化コンピューティングリソースを提供するように構成され得る。IaaSモデルでは、クラウドコンピューティングサービスプロバイダは、インフラストラクチャコンポーネント(たとえば、サーバ、ストレージデバイス、ネットワークノード(たとえばハードウェア)、展開ソフトウェア、プラットフォーム仮想化(たとえばハイパーバイザ層)など)をホストし得る。いくつかの場合において、IaaSプロバイダはまた、それらのインフラストラクチャコンポーネントに付随するさまざまなサービス(たとえば、課金、監視、ロギング、セキュリティ、ロードバランシングおよびクラスタリングなど)を提供してもよい。よって、これらのサービスはポリシー駆動型であり得るので、IaaSユーザは、ロードバランシングを駆動するポリシーを実現して、アプリケーションの可用性および性能を維持することが可能であり得る。CSPIは、顧客が高可用性のホスト型分散環境で広範なアプリケーションおよびサービスを構築して実行することを可能にするインフラストラクチャおよび一連の補完的なクラウドサービスを提供する。CSPIは、顧客のオンプレミスネットワークからなどのさまざまなネットワーク拠点からセキュアにアクセスできる柔軟な仮想ネットワークにおける高性能の計算リソースおよび能力ならびに記憶容量を提供する。顧客がCSPによって提供されるIaaSサービスに加入または登録すると、その顧客のために作成されるテナンシは、CSPI内のセキュアな分離されたパーティションとなり、この中で顧客は自身のクラウドリソースを作成、整理、および管理することができる。
【0138】
顧客は、CSPIによって提供される計算リソース、メモリリソース、およびネットワーキングリソースを使用して、自身の仮想ネットワークを構築することができる。これらの仮想ネットワーク上に、計算インスタンスなどの1つ以上の顧客リソースまたはワークロードを展開することができる。たとえば、顧客は、CSPIによって提供されるリソースを使用して、仮想クラウドネットワーク(VCN)と呼ばれる1つまたは複数のカスタマイズ可能なプライベート仮想ネットワークを構築することができる。顧客は、顧客VCN上に、計算インスタンスなどの1つ以上の顧客リソースを展開することができる。計算インスタンスは、仮想マシン、ベアメタルインスタンスなどの形態を取ることができる。よって、CSPIは、顧客が高可用性の仮想ホスト型環境で広範なアプリケーションおよびサービスを構築して実行することを可能にするインフラストラクチャおよび一連の補完的なクラウドサービスを提供する。顧客は、CSPIによって提供される基礎となる物理リソースを管理または制御しないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御し、場合によっては一部のネットワーキングコンポーネント(たとえばファイアウォール)を限定的に制御する。
【0139】
CSPは、顧客およびネットワーク管理者がCSPIリソースを使用してクラウドに展開されたリソースを構成、アクセス、および管理することを可能にするコンソールを提供してもよい。特定の実施形態では、コンソールは、CSPIにアクセスしてCSPIを管理するために使用することができるウェブベースのユーザインターフェイスを提供する。いくつかの実現例では、コンソールは、CSPによって提供されるウェブベースのアプリケーションである。
【0140】
CSPIは、シングルテナンシアーキテクチャまたはマルチテナンシアーキテクチャをサポートしてもよい。シングルテナンシアーキテクチャでは、ソフトウェア(たとえばアプリケーション、データベース)またはハードウェアコンポーネント(たとえばホストマシンもしくはサーバ)が、単一の顧客またはテナントにサービスを提供する。マルチテナンシアーキテクチャでは、ソフトウェアまたはハードウェアコンポーネントが、複数の顧客またはテナントにサービスを提供する。よって、マルチテナンシアーキテクチャでは、CSPIリソースは複数の顧客またはテナントの間で共有される。マルチテナンシの状況では、各テナントのデータが分離されて他のテナントには見えない状態のままであるように、CSPIにおいて予防措置および保護措置が取られる。
【0141】
物理ネットワークでは、ネットワークエンドポイント(「エンドポイント」)とは、物理ネットワークに接続され、自身が接続されているネットワークと双方向に通信するコンピューティングデバイスまたはシステムを指す。物理ネットワーク内のネットワークエンドポイントは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、または他のタイプの物理ネットワークに接続され得る。物理ネットワーク内の従来のエンドポイントの例としては、モデム、ハブ、ブリッジ、スイッチ、ルータ、および他のネットワーキングデバイス、物理コンピュータ(またはホストマシン)などが挙げられる。物理ネットワーク内の各物理デバイスは、当該デバイスと通信するために使用され得る固定ネットワークアドレスを有する。この固定ネットワークアドレスは、レイヤ2アドレス(たとえばMACアドレス)、固定レイヤ3アドレス(たとえばIPアドレス)などであり得る。仮想化環境または仮想ネットワークでは、エンドポイントは、物理ネットワークのコンポーネントによってホストされている(たとえば物理ホストマシンによってホストされている)仮想マシンなどのさまざまな仮想エンドポイントを含み得る。仮想ネットワーク内のこれらのエンドポイントは、オーバーレイレイヤ2アドレス(たとえばオーバーレイMACアドレス)およびオーバーレイレイヤ3アドレス(たとえばオーバーレイIPアドレス)などのオーバーレイアドレスによってアドレス指定される。ネットワークオーバーレイは、ネットワーク管理者がソフトウェア管理を用いて(たとえば、仮想ネットワークの制御プレーンを実現するソフトウェアを介して)ネットワークエンドポイントに関連付けられたオーバーレイアドレスを移動できるようにすることによって、柔軟性を可能にする。したがって、物理ネットワークとは異なり、仮想ネットワークでは、ネットワーク管理ソフトウェアを用いてオーバーレイアドレス(たとえばオーバーレイIPアドレス)をあるエンドポイントから別のエンドポイントに移動することができる。仮想ネットワークは物理ネットワークの上に構築されているので、仮想ネットワーク内のコンポーネント間の通信は、仮想ネットワークおよび基礎となる物理ネットワークの両方を伴う。このような通信を容易にするために、CSPIのコンポーネントは、仮想ネットワーク内のオーバーレイアドレスを基幹ネットワーク内の実際の物理アドレスにマッピングする、またはその反対にマッピングするマッピングを学習して格納するように構成されている。そして、これらのマッピングは、通信を容易にするために使用される。仮想ネットワーク内のルーティングを容易にするために顧客トラフィックはカプセル化される。
【0142】
したがって、物理アドレス(たとえば物理IPアドレス)は物理ネットワーク内のコンポーネントに関連付けられ、オーバーレイアドレス(たとえばオーバーレイIPアドレス)は仮想ネットワーク内のエンティティに関連付けられる。物理IPアドレスおよびオーバーレイIPアドレスは、いずれも実IPアドレスの一種である。これらは、複数の実IPアドレスにマッピングされる仮想IPアドレスとは別のものである。仮想IPアドレスは、仮想IPアドレスと複数の実IPアドレスとの間の1対多マッピングを提供する。
【0143】
クラウドインフラストラクチャまたはCSPIは、世界中の1つ以上のリージョン内の1つ以上のデータセンターにおいて物理的にホストされている。CSPIは、物理ネットワークまたは基幹ネットワーク内のコンポーネントと、物理ネットワークコンポーネントの上に構築された仮想ネットワーク内にある仮想化コンポーネント(たとえば、仮想ネットワーク、計算インスタンス、仮想マシンなど)とを含み得る。特定の実施形態では、CSPIは、レルム、リージョン、および可用性ドメインにおいて編成されホストされている。リージョンは典型的には、1つ以上のデータセンターを含むローカライズされた地理的地域である。リージョンは一般的に互いに独立しており、広大な距離で(たとえば国またはさらには大陸間で)で分離され得る。たとえば、第1のリージョンはオーストラリアにあり、別のリージョンは日本にあり、さらに別のリージョンはインドにある、などであってもよい。CSPIリソースは、各リージョンが自身の独立したCSPIリソースのサブセットを有するように、リージョン間で分割される。各リージョンは、計算リソース(たとえば、ベアメタルサーバ、仮想マシン、コンテナおよび関連のインフラストラクチャなど)、ストレージリソース(たとえば、ブロックボリュームストレージ、ファイルストレージ、オブジェクトストレージ、アーカイブストレージ)、ネットワーキングリソース(たとえば、仮想クラウドネットワーク(VCN)、ロードバランシングリソース、オンプレミスネットワークへの接続)、データベースリソース、エッジネットワーキングリソース(たとえばDNS)、ならびにアクセス管理および監視リソースなどの、一連のコアインフラストラクチャサービスおよびリソースを提供し得る。各リージョンは一般的に、当該リージョンをレルム内の他のリージョンに接続する複数のパスを有する。
【0144】
一般に、近くにあるリソースの使用は遠くにあるリソースの使用よりも高速であるため、アプリケーションは、それが最も頻繁に使用されるリージョンに展開される(すなわち、そのリージョンに関連付けられたインフラストラクチャ上に展開される)。また、大規模な気象系または地震などのリージョン全体の事象のリスクを軽減するための冗長性、法的管轄区域、税領域、および他のビジネス基準または社会的基準などのさまざまな要件を満たすための冗長性などのさまざまな理由で、異なるリージョンにアプリケーションが展開され得る。
【0145】
リージョン内のデータセンターは、さらに編成され、可用性ドメイン(AD)に細分化され得る。可用性ドメインは、あるリージョン内に位置する1つ以上のデータセンターに対応してもよい。リージョンは、1つ以上の可用性ドメインで構成され得る。このような分散環境では、CSPIリソースは、仮想クラウドネットワーク(VCN)のようにリージョン固有である、または計算インスタンスのように可用性ドメイン固有である。
【0146】
あるリージョン内のADは、互いに分離され、フォールトトレラントであり、同時に障害が起きることはほとんどないように構成されている。これは、あるリージョン内の1つのADにおける障害が同じリージョン内の他のADの可用性に影響を与える可能性がほとんどないように、ネットワーキング、物理ケーブル、ケーブルパス、ケーブルエントリポイントなどの重要なインフラストラクチャリソースをADが共有しないことによって達成される。同じリージョン内のADが低遅延・広帯域ネットワークによって互いに接続され得ることにより、他のネットワーク(たとえば、インターネット、顧客のオンプレミスネットワークなど)への高可用性接続を提供することができ、複数のADにおいて高可用性およびディザスタリカバリの双方のための複製システムを構築することができる。クラウドサービスは、複数のADを使用して、高可用性を確保し、リソース障害から保護する。IaaSプロバイダによって提供されるインフラストラクチャが発展するにつれて、より多くのリージョンおよびADが追加の容量とともに追加され得る。可用性ドメイン間のトラフィックは、通常は暗号化される。
【0147】
特定の実施形態では、リージョンはレルムにグループ化される。レルムは、リージョンの論理集合である。レルムは互いに分離されており、データを共有しない。同じレルム内のリージョンは互いに通信し得るが、異なるレルム内のリージョン互いに通信できない。CSPの顧客のテナンシまたはアカウントは、1つのレルムに存在し、そのレルムに属する1つ以上のリージョンにまたがることができる。典型的には、顧客がIaaSサービスに加入すると、レルム内の顧客指定リージョン(「ホーム」リージョンと呼ばれる)において、その顧客のためのテナンシまたはアカウントが作成される。顧客は、自身のテナンシをレルム内の1つ以上の他のリージョンに拡張することができる。顧客は、自身のテナンシが存在するレルム内にないリージョンにはアクセスできない。
【0148】
IaaSプロバイダは複数のレルムを提供することができ、各レルムは特定の一組の顧客またはユーザを対象とする。たとえば、商用顧客に商用レルムが提供され得る。別の例として、特定の国またはその国の顧客にレルムが提供され得る。さらに別の例として、政府に政府レルムが提供される、などであり得る。たとえば、政府レルムは特定の政府を対象とし得、商用レルムよりも高いセキュリティレベルを有し得る。たとえば、オラクルクラウドインフラストラクチャ(OCI)は、現在、商用リージョンのためのレルム、ならびに政府クラウドリージョンのための2つのレルム(たとえばFedRAMP認定済みおよびIL5認定済み)を提供している。
【0149】
特定の実施形態では、ADは1つ以上のフォルトドメインに細分化され得る。フォルトドメインは、アンチアフィニティを提供するためのAD内のインフラストラクチャリソースのグループ化である。フォルトドメインは、計算インスタンスが1つのAD内の同じ物理ハードウェア上に存在しないように、当該インスタンスを分散させることができる。これはアンチアフィニティとして知られている。フォルトドメインとは、単一障害点を共有するハードウェアコンポーネントのセット(コンピュータ、スイッチ、およびその他)を指す。計算プールは、フォルトドメインに論理的に分割される。このため、1つのフォルトドメインに影響を与えるハードウェア障害または計算ハードウェア保守イベントは、他のフォルトドメイン内のインスタンスには影響を与えない。実施形態に応じて、各ADのフォルトドメイン数は異なり得る。たとえば、特定の実施形態では、各ADは3つのフォルトドメインを含む。フォルトドメインは、AD内の論理データセンターとして機能する。
【0150】
顧客がIaaSサービスに加入すると、CSPIからのリソースがその顧客に対してプロビジョニングされ、その顧客のテナンシに関連付けられる。顧客は、これらのプロビジョニングされたリソースを使用して、プライベートネットワークを構築し、これらのネットワーク上にリソースを展開することができる。CSPIによってクラウド内にホストされている顧客ネットワークは、仮想クラウドネットワーク(VCN)と呼ばれる。顧客は、自身に割り当てられたCSPIリソースを使用して1つ以上の仮想クラウドネットワーク(VCN)をセットアップすることができる。VCNとは、仮想またはソフトウェア定義プライベートネットワークである。顧客のVCNにおいて展開される顧客リソースは、計算インスタンス(たとえば、仮想マシン、ベアメタルインスタンス)および他のリソースを含み得る。これらの計算インスタンスは、アプリケーション、ロードバランサ、データベースなどのさまざまな顧客ワークロードを表し得る。VCN上に展開される計算インスタンスは、インターネットなどのパブリックネットワークを介して公的にアクセス可能なエンドポイント(「パブリックエンドポイント」)と通信することができ、同じVCNまたは他のVCN(たとえば、顧客の他のVCN、もしくは顧客に属さないVCN)内の他のインスタンスと通信することができ、顧客のオンプレミスデータセンターまたはネットワークと通信することができ、サービスエンドポイントおよび他のタイプのエンドポイントと通信することができる。
【0151】
CSPは、CSPIを使用してさまざまなサービスを提供してもよい。いくつかの例では、CSPIの顧客自身がサービスプロバイダのように振る舞い、CSPIリソースを使用してサービスを提供してもよい。サービスプロバイダは、識別情報(たとえば、IPアドレス、DNS名およびポート)によって特徴付けられるサービスエンドポイントを公開してもよい。顧客のリソース(たとえば計算インスタンス)は、特定のサービスについての特定のサービスによって公開されたサービスエンドポイントにアクセスすることによって、その特定のサービスを消費することができる。これらのサービスエンドポイントは一般に、ユーザが、エンドポイントに関連付けられたパブリックIPアドレスを使用して、インターネットなどのパブリック通信ネットワークを介して公的にアクセス可能なエンドポイントである。公的にアクセス可能なネットワークエンドポイントは、パブリックエンドポイントと呼ばれることもある。
【0152】
特定の実施形態では、サービスプロバイダは、サービスのエンドポイント(サービスエンドポイントと呼ばれることもある)を介して当該サービスを公開してもよい。そして、サービスの顧客は、このサービスエンドポイントを使用してサービスにアクセスすることができる。特定の実現例では、サービスのために提供されるサービスエンドポイントには、そのサービスを消費するつもりの複数の顧客がアクセスすることができる。他の実現例では、ある顧客のみがある専用のサービスエンドポイントを使用してサービスにアクセスできるように、その専用のサービスエンドポイントがその顧客に提供されてもよい。
【0153】
特定の実施形態では、VCNが作成されると、当該VCNは、当該VCNに割り当てられるプライベートオーバーレイIPアドレスの範囲(たとえば、10.0/16)であるプライベートオーバーレイ・クラスレスドメイン間ルーティング(CIDR)アドレス空間に関連付けられる。VCNは、関連付けられたサブネット、ルートテーブル、およびゲートウェイを含む。VCNは、1つのリージョン内に常駐するが、そのリージョンの可用性ドメインの1つまたは複数またはすべてにまたがることができる。ゲートウェイは、VCNのために構成され、VCNとVCN外部の1つ以上のエンドポイントとの間のトラフィックの通信を可能にする仮想インターフェイスである。異なるタイプのエンドポイント間の通信を可能にするように、1つ以上の異なるタイプのゲートウェイがVCNのために構成されてもよい。
【0154】
VCNは、1つ以上のサブネットなどの1つ以上のサブネットワークに細分化され得る。よって、サブネットは、VCN内に作成可能な構成単位または下位区分である。VCNは1つまたは複数のサブネットを有し得る。VCN内の各サブネットは、そのVCN内の他のサブネットと重複せず、当該VCNのアドレス空間内のアドレス空間サブセットを表すオーバーレイIPアドレスの連続範囲(たとえば、10.0.0.0/24および10.0.1.0/24)に関連付けられる。
【0155】
各計算インスタンスは、当該計算インスタンスがVCNのサブネットに参加することを可能にする仮想ネットワークインターフェイスカード(VNIC)に関連付けられる。VNICは、物理ネットワークインターフェイスカード(NIC)の論理的表現である。一般的に、VNICは、エンティティ(たとえば計算インスタンス、サービス)と仮想ネットワークとの間のインターフェイスである。VNICはサブネットに存在し、1つ以上の関連付けられたIPアドレスと、関連付けられたセキュリティルールまたはポリシーとを有する。VNICは、スイッチ上のレイヤ2ポートに相当する。VNICは、計算インスタンスと、VCN内のサブネットとにアタッチされている。計算インスタンスに関連付けられたVNICは、計算インスタンスがVCNのサブネットの一部であることを可能にし、計算インスタンスが、計算インスタンスと同じサブネット上にあるエンドポイントと通信する(たとえばパケットを送受信する)こと、VCN内の異なるサブネット内のエンドポイントと通信すること、またはVCN外部のエンドポイントと通信することを可能にする。よって、計算インスタンスに関連付けられたVNICは、計算インスタンスがVCNの内部および外部のエンドポイントにどのように接続するかを決定する。計算インスタンスのVNICは、その計算インスタンスが作成されてVCN内のサブネットに追加されると、作成されて当該計算インスタンスに関連付けられる。計算インスタンスのセットを含むサブネットの場合、サブネットは、計算インスタンスのセットに対応するVNICを含み、各VNICはコンピュータインスタンスのセット内の計算インスタンスにアタッチされている。
【0156】
各計算インスタンスには、当該計算インスタンスに関連付けられた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アドレスの連続範囲からのアドレスである。
【0157】
特定の実施形態では、計算インスタンスに、プライベートオーバーレイIPアドレスに加えて、パブリックサブネットにある場合はたとえば1つ以上のパブリックIPアドレスなどの追加のオーバーレイIPアドレスがオプションとして割り当てられてもよい。これら複数のアドレスは、同じVNIC上で、または計算インスタンスに関連付けられた複数のVNIC上で割り当てられる。しかしながら、各インスタンスは、インスタンス起動中に作成され、インスタンスに割り当てられたオーバーレイプライベートIPアドレスに関連付けられているプライマリVNICを有する。このプライマリVNICは削除することができない。セカンダリVNICと呼ばれる追加のVNICを、プライマリVNICと同じ可用性ドメイン内の既存のインスタンスに追加することができる。すべてのVNICは、インスタンスと同じ可用性ドメイン内にある。セカンダリVNICは、プライマリVNICと同じVCN内のサブネットにあり得、または、同じVCNもしくは異なるVCN内の異なるサブネットにあり得る。
【0158】
計算インスタンスは、パブリックサブネットにある場合、パブリックIPアドレスがオプションとして割り当てられてもよい。サブネットは、当該サブネットを作成するときに、パブリックサブネットまたはプライベートサブネットのいずれかとして指定することができる。プライベートサブネットとは、当該サブネット内のリソース(たとえば計算インスタンス)および関連付けられたVNICがパブリックオーバーレイIPアドレスを有することができないことを意味する。パブリックサブネットとは、サブネット内のリソースおよび関連付けられたVNICがパブリックIPアドレスを有することができることを意味する。顧客は、サブネットがリージョンまたはレルム内の1つの可用性ドメインに存在するか複数の可用性ドメインにわたって存在するかを指定することができる。
【0159】
上述のように、VCNは1つ以上のサブネットに細分化されてもよい。特定の実施形態では、VCNのために構成された仮想ルータ(VCN VRまたは単にVRと呼ばれる)がVCNのサブネット間の通信を可能にする。VCN内のサブネットの場合、VRは、サブネット(すなわち、そのサブネット上の計算インスタンス)がVCN内部の他のサブネット上のエンドポイントおよびVCN外部の他のエンドポイントと通信することを可能にする、そのサブネットの論理ゲートウェイを表す。VCN VRは、VCN内のVNICと、VCNに関連付けられた仮想ゲートウェイ(「ゲートウェイ」)との間のトラフィックをルーティングするように構成された論理エンティティである。ゲートウェイは、
図1に関して以下にさらに説明される。VCN VRは、レイヤ3/IPレイヤの概念である。一実施形態では、VCNに対して1つのVCN VRがあり、VCN VRは、IPアドレスによってアドレス指定される無制限の数のポートを潜在的に有し、VCNのサブネットごとに1つのポートがある。このように、VCN VRは、VCN VRがアタッチされているVCN内のサブネットごとに異なるIPアドレスを有する。VRはまた、VCNのために構成されたさまざまなゲートウェイに接続されている。特定の実施形態では、サブネットのオーバーレイIPアドレス範囲からの特定のオーバーレイIPアドレスが、そのサブネットのVCN VRのポートのために確保されている。たとえば、アドレス範囲10.0/16および10.1/16がそれぞれ関連付けられている2つのサブネットを有するVCNを考える。アドレス範囲10.0/16を有するVCN内の第1のサブネットの場合、この範囲からのアドレスが、そのサブネットのVCN VRのポートのために確保されている。いくつかの例では、当該範囲からの第1のIPアドレスはVCN VRのために確保されていてもよい。たとえば、オーバーレイIPアドレス範囲10.0/16を有するサブネットの場合、IPアドレス10.0.0.1がそのサブネットのVCN VRのポートのために確保されていてもよい。アドレス範囲10.1/16を有する同じVCN内の第2のサブネットの場合、VCN VRは、IPアドレス10.1.0.1を有するその第2のサブネットのポートを有してもよい。VCN VRは、VCN内のサブネットごとに異なるIPアドレスを有する。
【0160】
いくつかの他の実施形態では、VCN内の各サブネットは、VRに関連付けられた、確保されたまたはデフォルトのIPアドレスを使用してサブネットによってアドレス指定可能な、自身の関連付けられたVRを有してもよい。確保されたまたはデフォルトのIPアドレスは、たとえば、そのサブネットに関連付けられたIPアドレスの範囲からの第1のIPアドレスであってもよい。サブネット内のVNICは、このデフォルトのまたは確保されたIPアドレスを使用して、サブネットに関連付けられたVRと通信(たとえばパケットを送受信)することができる。このような実施形態では、VRは、そのサブネットのイングレス/エグレスポイントである。VCN内のサブネットに関連付けられたVRは、VCN内の他のサブネットに関連付けられた他のVRと通信することができる。VRは、VCNに関連付けられたゲートウェイと通信することもできる。サブネットのVR機能は、サブネット内のVNICのVNIC機能を実行する1つ以上のNVD上で動作している、または当該NVDによって実行される。
【0161】
ルートテーブル、セキュリティルール、およびDHCPオプションが、VCNのために構成されてもよい。ルートテーブルは、VCNの仮想ルートテーブルであり、ゲートウェイまたは特別に構成されたインスタンスを経由してVCN内部のサブネットからVCN外部の宛先にトラフィックをルーティングするためのルールを含む。VCNとの間でどのようにパケットを転送/ルーティングするかを制御するために、VCNのルートテーブルをカスタマイズすることができる。DHCPオプションとは、インスタンスをブートアップすると当該インスタンスに自動的に与えられる構成情報を指す。
【0162】
VCNのために構成されたセキュリティルールは、VCNのためのオーバーレイファイアウォールルールを表す。セキュリティルールは、イングレスおよびエグレスルールを含み、VCN内のインスタンスに出入りすることが許可されるトラフィックのタイプを(たとえばプロトコルおよびポートに基づいて)指定することができる。顧客は、所与のルールがステートフルであるかステートレスであるかを選択することができる。たとえば、顧客は、ソースCIDR0.0.0.0/0および宛先TCPポート22を有するステートフルなイングレスルールをセットアップすることによって、任意の場所からインスタンスのセットへの着信SSHトラフィックを許可することができる。セキュリティルールは、ネットワークセキュリティグループまたはセキュリティリストを使用して実現することができる。ネットワークセキュリティグループは、そのグループ内のリソースのみに適用されるセキュリティルールのセットからなる。一方、セキュリティリストは、当該セキュリティリストを使用する任意のサブネット内のすべてのリソースに適用されるルールを含む。デフォルトセキュリティルールを有するデフォルトセキュリティリストがVCNに与えられてもよい。VCNのために構成されたDHCPオプションは、VCN内のインスタンスをブートアップすると当該インスタンスに自動的に与えられる構成情報を提供する。
【0163】
特定の実施形態では、VCNの構成情報は、VCN制御プレーンによって決定され格納される。VCNの構成情報は、たとえば、VCNに関連付けられたアドレス範囲、VCN内のサブネットおよび関連付けられた情報、VCNに関連付けられた1つ以上のVR、VCN内の計算インスタンスおよび関連付けられたVNIC、VCNに関連付けられたさまざまな仮想化ネットワーク機能(たとえば、VNIC、VR、ゲートウェイ)を実行するNVD、VCNのステート情報、および他のVCN関連情報、に関する情報を含み得る。特定の実施形態では、VCN配信サービスは、VCN制御プレーンによって格納された構成情報またはその一部をNVDに公開する。配信された情報を使用して、NVDによって格納され使用される情報(たとえば、転送テーブル、ルーティングテーブルなど)を更新して、VCN内の計算インスタンスとの間でパケットを転送してもよい。
【0164】
特定の実施形態では、VCNおよびサブネットの作成はVCN制御プレーン(CP)によって処理され、計算インスタンスの起動は計算制御プレーンによって処理される。計算制御プレーンは、計算インスタンスの物理リソースの割り当てを担い、次にVCN制御プレーンを呼び出してVNICを作成し、VNICを計算インスタンスにアタッチする。VCN CPはまた、パケット転送およびルーティング機能を実行するように構成されたVCNデータプレーンに、VCNデータマッピングを送信する。
【0165】
顧客は、CSPIによってホストされているリソースを使用して1つ以上のVCNを作成してもよい。顧客VCN上に展開される計算インスタンスは、異なるエンドポイントと通信してもよい。これらのエンドポイントは、CSPIによってホストされているエンドポイントおよびCSPI外部のエンドポイントを含み得る。
【0166】
CSPIを使用してクラウドベースのサービスを実現するためのさまざまな異なるアーキテクチャが
図15、
図16、
図17、
図18および
図19に示されており、以下に説明される。
図15は、特定の実施形態に係る、CSPIによってホストされているオーバーレイまたは顧客VCNを示す分散環境1500のハイレベル図である。
図15に示される分散環境は、オーバーレイネットワーク内の複数のコンポーネントを含む。
図15に示される分散環境1500は一例に過ぎず、特許請求の範囲に記載されている実施形態の範囲を不当に限定することを意図していない。多くの変形例、代替例、および修正例が可能である。たとえば、いくつかの実現例では、
図15に示される分散環境は、
図1に示されるよりも多いもしくは少ないシステムもしくはコンポーネントを有してもよく、2つ以上のシステムを組み合わせてもよく、またはシステムの異なる構成もしくは配置を有してもよい。
【0167】
図15の例に示されるように、分散環境1500は、顧客が加入して仮想クラウドネットワーク(VCN)を構築するために使用することができるサービスおよびリソースを提供するCSPI1501を含む。特定の実施形態では、CSPI1501は、加入している顧客にIaaSサービスを提供する。CSPI1501内のデータセンターは、1つ以上のリージョンに編成されてもよい。リージョンの一例である「リージョンUS」1502が
図15に示されている。顧客は、リージョン1502のために顧客VCN1504を構成している。顧客は、VCN1504上にさまざまな計算インスタンスを展開してもよく、計算インスタンスは仮想マシンまたはベアメタルインスタンスを含み得る。インスタンスの例としては、アプリケーション、データベース、ロードバランサなどが挙げられる。
【0168】
図15に示される実施形態では、顧客VCN1504は2つのサブネット、すなわち「サブネット-1」および「サブネット-2」を含み、各サブネットは自身のCIDR IPアドレス範囲を有する。
図15において、サブネット-1のオーバーレイIPアドレス範囲は10.0/16であり、サブネット-2のアドレス範囲は10.1/16である。VCN仮想ルータ1505は、VCN1504のサブネット間の通信およびVCN外部の他のエンドポイントとの通信を可能にするVCNの論理ゲートウェイを表す。VCN VR1505は、VCN1504内のVNICとVCN1504に関連付けられたゲートウェイとの間のトラフィックをルーティングするように構成されている。VCN VR1505は、VCN1504の各サブネットにポートを提供する。たとえば、VR1505は、IPアドレス10.0.0.1を有するポートをサブネット-1に提供し、IPアドレス10.1.0.1を有するポートをサブネット-2に提供してもよい。
【0169】
各サブネット上に複数の計算インスタンスが展開されてもよく、計算インスタンスは仮想マシンインスタンスおよび/またはベアメタルインスタンスとすることができる。サブネット内の計算インスタンスは、CSPI1501内の1つ以上のホストマシンによってホストされてもよい。計算インスタンスは、当該計算インスタンスに関連付けられたVNICを介してサブネットに参加する。たとえば、
図15に示されるように、計算インスタンスC1は、当該計算インスタンスに関連付けられたVNICを介してサブネット-1の一部である。同様に、計算インスタンスC2は、C2に関連付けられたVNICを介してサブネット-1の一部である。同様に、仮想マシンインスタンスまたはベアメタルインスタンスであり得る複数の計算インスタンスがサブネット-1の一部であってもよい。各計算インスタンスには、その関連付けられたVNICを介して、プライベートオーバーレイIPアドレスおよびMACアドレスが割り当てられる。たとえば、
図15において、計算インスタンスC1はオーバーレイIPアドレス10.0.0.2およびMACアドレスM1を有し、計算インスタンスC2はプライベートオーバーレイIPアドレス10.0.0.3およびMACアドレスM2を有する。計算インスタンスC1およびC2を含むサブネット-1内の各計算インスタンスは、サブネット-1のVCN VR1505のポートのIPアドレスであるIPアドレス10.0.0.1を使用するVCN VR1505へのデフォルトルートを有する。
【0170】
サブネット-2上には、仮想マシンインスタンスおよび/またはベアメタルインスタンスを含む複数の計算インスタンスを展開することができる。たとえば、
図15に示されるように、計算インスタンスDlおよびD2は、それぞれの計算インスタンスに関連付けられたVNICを介してサブネット-2の一部である。
図15に示される実施形態では、計算インスタンスD1はオーバーレイIPアドレス10.1.0.2およびMACアドレスMM1を有し、計算インスタンスD2はプライベートオーバーレイIPアドレス10.1.0.3およびMACアドレスMM2を有する。計算インスタンスD1およびD2を含むサブネット-2内の各計算インスタンスは、サブネット-2のVCN VR1505のポートのIPアドレスであるIPアドレス10.1.0.1を使用するVCN VR1505へのデフォルトルートを有する。
【0171】
VCN A1504はまた、1つ以上のロードバランサを含み得る。たとえば、ロードバランサは、サブネットに対して提供されてもよく、サブネット上の複数の計算インスタンス間でトラフィックをロードバランシングするように構成されてもよい。ロードバランサはまた、VCN内のサブネット間でトラフィックをロードバランシングするように提供されてもよい。
【0172】
VCN1504上に展開される特定の計算インスタンスは、さまざまな異なるエンドポイントと通信することができる。これらのエンドポイントは、CSPI1600によってホストされているエンドポイントおよびCSPI1600の外部のエンドポイントを含み得る。CSPI1501によってホストされているエンドポイントは、特定の計算インスタンスと同じサブネット上のエンドポイント(たとえば、サブネット-1内の2つの計算インスタンス間の通信)、異なるサブネット上であるが同じVCN内のエンドポイント(たとえば、サブネット-1内の計算インスタンスとサブネット-2内の計算インスタンスとの間の通信)、同じリージョン内の異なるVCN内のエンドポイント(たとえば、サブネット-1内の計算インスタンスと、同じリージョン1506もしくは1510内のVCN内のエンドポイントとの間の通信、サブネット-1内の計算インスタンスと、同じリージョン内のサービスネットワーク1510内のエンドポイントとの間の通信)、または異なるリージョン内のVCN内のエンドポイント(たとえば、サブネット-1内の計算インスタンスと、異なるリージョン1508内のVCN内のエンドポイントとの間の通信)を含み得る。CSPI1501によってホストされているサブネット内の計算インスタンスはまた、CSPI1501によってホストされていない(すなわちCSPI1501の外部の)エンドポイントと通信し得る。これらの外部エンドポイントは、顧客のオンプレミスネットワーク1516内のエンドポイント、他のリモートクラウドホスト型ネットワーク1518内のエンドポイント、インターネットなどのパブリックネットワークを介してアクセス可能なパブリックエンドポイント1514、および他のエンドポイントを含む。
【0173】
同じサブネット上の計算インスタンス間の通信は、ソース計算インスタンスおよび宛先計算インスタンスに関連付けられたVNICを使用して容易になる。たとえば、サブネット-1内の計算インスタンスC1が、サブネット-1内の計算インスタンスC2にパケットを送信したい場合がある。ソース計算インスタンスから送出され、その宛先が同じサブネット内の別の計算インスタンスであるパケットの場合、当該パケットはまず、ソース計算インスタンスに関連付けられたVNICによって処理される。ソース計算インスタンスに関連付けられたVNICによって実行される処理は、パケットヘッダからパケットの宛先情報を決定すること、ソース計算インスタンスに関連付けられたVNICのために構成された任意のポリシー(たとえばセキュリティリスト)を識別すること、パケットのネクストホップを決定すること、必要に応じて任意のパケットカプセル化/デカプセル化機能を実行すること、そして、パケットの意図された宛先への通信を容易にすることを目的としてパケットをネクストホップに転送/ルーティングすることを含み得る。宛先計算インスタンスがソース計算インスタンスと同じサブネットにある場合、ソース計算インスタンスに関連付けられたVNICは、宛先計算インスタンスに関連付けられたVNICを識別し、処理のためにパケットをそのVNICに転送するように構成されている。そして、宛先計算インスタンスに関連付けられたVNICは、実行され、パケットを宛先計算インスタンスに転送する。
【0174】
サブネット内の計算インスタンスから同じVCNの異なるサブネット内のエンドポイントにパケットを通信する場合、当該通信は、ソース計算インスタンスおよび宛先計算インスタンスに関連付けられたVNICと、VCN VRとによって容易になる。たとえば、
図15のサブネット-1内の計算インスタンスC1がサブネット-2内の計算インスタンスD1にパケットを送信したい場合、当該パケットはまず、計算インスタンスC1に関連付けられたVNICによって処理される。計算インスタンスC1に関連付けられたVNICは、VCN VRのデフォルトルートまたはポート10.0.0.1を使用してパケットをVCN VR1505にルーティングするように構成されている。VCN VR1505は、ポート10.1.0.1を使用してパケットをサブネット-2にルーティングするように構成されている。そして、パケットは、D1に関連付けられたVNICによって受信および処理され、VNICはパケットを計算インスタンスD1に転送する。
【0175】
VCN1504内の計算インスタンスからVCN1504の外部のエンドポイントにパケットを通信する場合、当該通信は、ソース計算インスタンスに関連付けられたVNICと、VCN VR1505と、VCN1504に関連付けられたゲートウェイとによって容易になる。1つ以上のタイプのゲートウェイがVCN1504に関連付けられてもよい。ゲートウェイは、VCNと別のエンドポイントとの間のインターフェイスであり、当該別のエンドポイントはVCNの外部にある。ゲートウェイは、レイヤ3/IPレイヤの概念であり、VCNがVCN外部のエンドポイントと通信することを可能にする。よって、ゲートウェイは、VCNと他のVCNまたはネットワークとの間のトラフィックフローを容易にする。異なるタイプのエンドポイントとの異なるタイプの通信を容易にするように、さまざまな異なるタイプのゲートウェイがVCNのために設定され得る。ゲートウェイに応じて、通信はパブリックネットワーク(たとえばインターネット)を介してもよく、またはプライベートネットワークを介してもよい。これらの通信にはさまざまな通信プロトコルが使用され得る。
【0176】
たとえば、計算インスタンスC1は、VCN1504の外部のエンドポイントと通信したい場合がある。パケットはまず、ソース計算インスタンスC1に関連付けられたVNICによって処理され得る。VNIC処理は、パケットの宛先がClのサブネット-1の外部にあると判断する。C1に関連付けられたVNICは、パケットをVCN1504のVCN VR1505に転送し得る。そして、VCN VR1505はパケットを処理し、当該処理の一部として、パケットの宛先に基づいて、VCN1504に関連付けられた特定のゲートウェイをパケットのネクストホップとして決定する。そして、VCN VR1505は、この特定の識別されたゲートウェイにパケットを転送し得る。たとえば、宛先が顧客のオペプレミスネットワーク内のエンドポイントである場合、パケットは、VCN VR1505によって、VCN1504のために構成された動的ルーティングゲートウェイ(DRG)ゲートウェイ1522に転送され得る。そして、パケットがゲートウェイからネクストホップに転送されることにより、意図された最終宛先へのパケットの通信が容易になり得る。
【0177】
さまざまな異なるタイプのゲートウェイがVCNのために構成され得る。VCNのために構成され得るゲートウェイの例が
図15に示されており、以下に説明される。
図15の実施形態に示されるように、動的ルーティングゲートウェイ(DRG)1522が顧客VCN1504に追加または関連付けられてもよく、顧客VCN1504と別のエンドポイントとの間のプライベートネットワークトラフィック通信のためのパスを提供する。当該別のエンドポイントは、顧客のオンプレミスネットワーク1516、CSPI1501の異なるリージョン内のVCN1508、またはCSPI1501によってホストされていない他のリモートクラウドネットワーク1518であり得る。顧客オンプレミスネットワーク1516は、顧客のリソースを使用して構築された顧客ネットワークまたは顧客データセンターであってもよい。顧客オンプレミスネットワーク1516へのアクセスは、一般に厳しく制限される。顧客オンプレミスネットワーク1516と、CSPI1501によってクラウド内に展開またはホストされる1つ以上のVCN1504との両方を有する顧客の場合、当該顧客は、自身のオンプレミスネットワーク1516および自身のクラウドベースのVCN1504が互いに通信可能であることを所望する場合がある。これによって、顧客は、CSPI1501によってホストされている自身のVCN1504と自身のオンプレミスネットワーク1516とを含む拡張ハイブリッド環境を構築することができる。DRG1522がこの通信を可能にする。このような通信を可能にするために、通信チャネル1524がセットアップされる。当該チャネルの一方のエンドポイントは顧客オンプレミスネットワーク1516内にあり、他方のエンドポイントはCSPI1501内にあり顧客VCN1504に接続される。通信チャネル1524は、インターネットなどのパブリック通信ネットワーク、またはプライベート通信ネットワークを介することができる。インターネットなどのパブリック通信ネットワークを介するIPsec VPN技術、パブリックネットワークの代わりにプライベートネットワークを使用するオラクルのFastConnect技術などのさまざまな異なる通信プロトコルが使用されてもよい。通信チャネル1524の1つのエンドポイントを形成する顧客オンプレミスネットワーク1516内のデバイスまたは機器は、
図15に示されるCPE1526などの顧客構内機器(CPE)と呼ばれる。CSPI1501側では、エンドポイントは、DRG1522を実行するホストマシンであってもよい。
【0178】
特定の実施形態では、リモートピアリング接続(RPC)をDRGに追加することができ、これによって顧客は、1つのVCNを異なるリージョン内の別のVCNとピアリングすることができる。このようなRPCを使用して、顧客VCN1504は、DRG1522を使用して別のリージョン内のVCN1508に接続することができる。また、DRG1522を使用して、マイクロソフト(登録商標)Azureクラウド、アマゾン(登録商標)AWSクラウドなどの、CSPI1501によってホストされていない他のリモートクラウドネットワーク1518と通信し得る。
【0179】
図15に示されるように、VCN1504上の計算インスタンスがインターネットなどのパブリックネットワークを介してアクセス可能なパブリックエンドポイント1514と通信することを可能にするインターネットゲートウェイ(IGW)1520が、顧客VCN1504のために構成され得る。IGW15120は、VCNをインターネットなどのパブリックネットワークに接続するゲートウェイである。IGW1520は、VCN1504などのVCN内のパブリックサブネット(パブリックサブネット内のリソースはパブリックオーバーレイIPアドレスを有する)がインターネットなどのパブリックネットワーク1514上でパブリックエンドポイント1512に直接アクセスすることを可能にする。IGW1520を使用して、接続は、VCN1504内のサブネットから、またはインターネットから、開始され得る。
【0180】
ネットワークアドレス変換(NAT)ゲートウェイ1528が顧客のVCN1504のために構成され得、専用のパブリックオーバーレイIPアドレスを有さない顧客のVCN内のクラウドリソースがインターネットにアクセスすることを可能にし、それらのリソースを直接着信インターネット接続(たとえばL4~L7接続)に曝すことなくそのようにアクセスすることを可能にする。これによって、VCN1504内のプライベートサブネット-1などのVCN内のプライベートサブネットが、インターネット上でパブリックエンドポイントにプライベートアクセスすることが可能になる。NATゲートウェイでは、接続はプライベートサブネットからパブリックインターネットにのみ開始することができ、インターネットからプライベートサブネットに開始することはできない。
【0181】
特定の実施形態では、サービスゲートウェイ(SGW)1526が顧客VCN1504のために構成され得、VCN1504とサービスネットワーク1510内にサポートされているサービスエンドポイントとの間のプライベートネットワークトラフィックのパスを提供する。特定の実施形態では、サービスネットワーク1510は、CSPによって提供されてもよく、さまざまなサービスを提供し得る。このようなサービスネットワークの一例は、顧客が使用できるさまざまなサービスを提供するオラクルのサービスネットワーク(Services Network)である。たとえば、顧客VCN1504のプライベートサブネット内の計算インスタンス(たとえばデータベースシステム)は、パブリックIPアドレスまたはインターネットへのアクセスを必要とすることなく、サービスエンドポイント(たとえばオブジェクトストレージ(Object Storage))にデータをバックアップすることができる。特定の実施形態では、VCNはSGWを1つのみ有することができ、接続はVCN内のサブネットからのみ開始することができ、サービスネットワーク1510からは開始することができない。VCNを別のVCNとピアリングすると、この他方のVCN内のリソースは典型的にはSGWにアクセスできない。また、FastConnectまたはVPN ConnectでVCNに接続されているオンプレミスネットワーク内のリソースは、そのVCNのために構成されたサービスゲートウェイを使用することができる。
【0182】
特定の実現例では、SGW1526は、サービスクラスレスドメイン間ルーティング(CIDR)ラベルの概念を使用する。当該ラベルは、関心のあるサービスまたはサービスのグループについてのすべてのリージョナルパブリックIPアドレス範囲を表す文字列である。顧客は、SGWおよびサービスへのトラフィックを制御するための関連するルートルールを構成する際にサービスCIDRラベルを使用する。顧客は、サービスのパブリックIPアドレスが将来変更されてもセキュリティルールを調整する必要なしに、セキュリティルールを構成する際にサービスCIDRラベルをオプションとして利用することができる。
【0183】
ローカルピアリングゲートウェイ(LPG)1532は、顧客VCN1504に追加可能であり、VCN1504が同じリージョン内の別のVCNとピアリングすることを可能にするゲートウェイである。ピアリングとは、トラフィックがインターネットなどのパブリックネットワークをトラバースすることなく、または顧客のオンプレミスネットワーク1516を通してトラフィックをルーティングすることなく、VCNがプライベートIPアドレスを使用して通信することを意味する。好ましい実施形態では、VCNは、VCNが確立するピアリングごとに別個のLPGを有する。ローカルピアリングまたはVCNピアリングは、異なるアプリケーション間またはインフラストラクチャ管理機能間のネットワーク接続性を確立するために使用される一般的なやり方である。
【0184】
サービスネットワーク1510内のサービスのプロバイダなどのサービスプロバイダは、異なるアクセスモデルを使用してサービスへのアクセスを提供し得る。パブリックアクセスモデルによれば、サービスは、インターネットなどのパブリックネットワークを介して顧客VCN内の計算インスタンスによって公的にアクセス可能なパブリックエンドポイントとして公開されてもよく、および/または、SGW1526を介して非公式にアクセス可能であってもよい。特定のプライベートアクセスモデルによれば、サービスは、顧客のVCN内のプライベートサブネット内のプライベートIPエンドポイントとしてアクセス可能になる。これは、プライベートエンドポイント(PE)アクセスと呼ばれ、サービスプロバイダがそのサービスを顧客のプライベートネットワーク内のインスタンスとして公開することを可能にする。プライベートエンドポイントリソースは、顧客のVCN内のサービスを表す。各PEは、顧客のVCN内で顧客によって選択されたサブネット内のVNIC(PE-VNICと呼ばれ、1つ以上のプライベートIPを有する)として現れる。よって、PEは、VNICを使用してプライベートな顧客VCNサブネット内でサービスを提示する方法を提供する。エンドポイントはVNICとして公開されるので、ルーティングルール、セキュリティリストなどのVNICに関連付けられたすべての特徴がPE VNICに利用可能となる。
【0185】
サービスプロバイダは、自身のサービスを登録することによって、PEを通じたアクセスを可能にすることができる。プロバイダは、ポリシーを、顧客テナンシへのサービスの可視性を制限するサービスに関連付けることができる。プロバイダは、特にマルチテナントサービスの場合、1つの仮想IPアドレス(VIP)の下で複数のサービスを登録することができる。同じサービスを表す複数のそのようなプライベートエンドポイントが(複数のVCN内に)あってもよい。
【0186】
そして、プライベートサブネット内の計算インスタンスは、PE VNICのプライベートIPアドレスまたはサービスDNS名を使用して、サービスにアクセスすることができる。顧客VCN内の計算インスタンスは、顧客VCN内のPEのプライベートIPアドレスにトラフィックを送信することによって、サービスにアクセスすることができる。プライベートアクセスゲートウェイ(PAGW)1530は、顧客サブネットプライベートエンドポイントとの間のすべてのトラフィックのイングレス/エグレスポイントとして機能するサービスプロバイダVCN(たとえばサービスネットワーク1510内のVCN)にアタッチされ得るゲートウェイリソースである。PAGW1530は、プロバイダが、内部IPアドレスリソースを利用することなくPE接続の数をスケーリングすることを可能にする。プロバイダは、1つのVCNに登録された任意の数のサービスに対して1つのPAGWを構成するだけでよい。プロバイダは、サービスを、1以上の顧客の複数のVCN内のプライベートエンドポイントとして表すことができる。顧客から見ると、PE VNICは、顧客のインスタンスにアタッチされているのではなく、顧客がやり取りしたいサービスにアタッチされているように見える。プライベートエンドポイントに向かうトラフィックは、PAGW1530を介してサービスにルーティングされる。これらは、顧客からサービスへのプライベート接続(C2S接続)と呼ばれる。
【0187】
また、PE概念を用いて、トラフィックがFastConnect/IPSecリンクおよび顧客VCN内のプライベートエンドポイントを通過することを可能にすることによって、サービスのプライベートアクセスを顧客のオンプレミスネットワークおよびデータセンターに拡張することができる。また、トラフィックがLPG1532と顧客のVCN内のPEとの間を通過することを可能にすることによって、サービスのプライベートアクセスを顧客のピアリングしたVCNに拡張することができる。
【0188】
顧客は、サブネットレベルでVCN内のルーティングを制御することができるので、VCN1504などの顧客のVCN内のどのサブネットが各ゲートウェイを使用するかを指定することができる。VCNのルートテーブルを使用して、トラフィックが特定のゲートウェイを通じてVCNから出ることが許可されているか否かを判断する。たとえば、特定の場合において、顧客VCN1504内のパブリックサブネットのルートテーブルは、IGW1520を通じて非ローカルトラフィックを送信し得る。同じ顧客VCN1504内のプライベートサブネットのルートテーブルは、SGW1526を通じてCSPサービスに向かうトラフィックを送信し得る。残りのすべてのトラフィックはNATゲートウェイ1528を介して送信されてもよい。ルートテーブルは、VCNから出るトラフィックのみを制御する。
【0189】
VCNに関連付けられたセキュリティリストは、インバウンド接続を介してゲートウェイを介してVCNに入ってくるトラフィックを制御するために使用される。サブネット内のすべてのリソースは、同じルートテーブルおよびセキュリティリストを使用する。セキュリティリストは、VCNのサブネット内のインスタンスに出入りすることが許可されている特定のタイプのトラフィックを制御するために使用されてもよい。セキュリティリストルールは、イングレス(インバウンド)およびエグレス(アウトバウンド)ルールを含み得る。たとえば、イングレスルールは、許可されたソースアドレス範囲を指定してもよく、エグレスルールは、許可された宛先アドレス範囲を指定してもよい。セキュリティルールは、特定のプロトコル(たとえば、TCP、ICMP)、特定のポート(たとえば、SSHのための22、ウィンドウズ(登録商標)RDPのための3389)などを指定してもよい。特定の実現例では、インスタンスのオペレーティングシステムが、セキュリティリストルールと一致する自身のファイアウォールルールを実施してもよい。ルールはステートフルであってもよく(たとえば、接続が追跡され、応答トラフィックのための明確なセキュリティリストルールなしで応答が自動的に許可される)、またはステートレスであってもよい。
【0190】
顧客VCNからの(すなわち、VCN1504上に展開されたリソースまたは計算インスタンスによる)アクセスは、パブリックアクセス、プライベートアクセス、または専用アクセスと分類され得る。パブリックアクセスとは、パブリックIPアドレスまたはNATを使用してパブリックエンドポイントにアクセスするアクセスモデルを指す。プライベートアクセスは、プライベートIPアドレスを有するVCN1504内の顧客ワークロード(たとえばプライベートサブネット内のリソース)が、インターネットなどのパブリックネットワークをトラバースすることなくサービスにアクセスすることを可能にする。特定の実施形態では、CSPI1501は、プライベートIPアドレスを有する顧客VCNワークロードが、サービスゲートウェイを使用してサービス(のパブリックサービスエンドポイント)にアクセスすることを可能にする。よって、サービスゲートウェイは、顧客のVCNと顧客のプライベートネットワークの外部に常駐するサービスのパブリックエンドポイントとの間に仮想リンクを確立することによって、プライベートアクセスモデルを提供する。
【0191】
これに加えて、CSPIは、FastConnectパブリックピアリングなどの技術を使用して、専用のパブリックアクセスを提供してもよい。当該アクセスでは、顧客オンプレミスインスタンスは、FastConnect接続を使用して、かつインターネットなどのパブリックネットワークをトラバースすることなく、顧客VCN内の1つ以上のサービスにアクセスすることができる。CSPIはまた、FastConnectプライベートピアリングを使用して、専用のプライベートアクセスを提供してもよい。当該アクセスでは、プライベートIPアドレスを有する顧客オンプレミスインスタンスは、FastConnect接続を使用して顧客のVCNワークロードにアクセスすることができる。FastConnectは、パブリックインターネットを使用して顧客のオンプレミスネットワークをCSPIおよびそのサービスに接続する代わりとなるネットワーク接続性である。FastConnectは、インターネットベースの接続と比較して、より高い帯域幅オプションおよびより信頼性が高く一貫したネットワーキング体験を有する専用のプライベート接続を作成する、容易で、柔軟で、経済的な方法を提供する。
【0192】
図15およびそれに付随する上記の説明は、例示的な仮想ネットワークにおけるさまざまな仮想化コンポーネントを説明している。上述のように、仮想ネットワークは、基礎となる物理ネットワークまたは基幹ネットワーク上に構築される。
図16は、特定の実施形態に係る、仮想ネットワークの基礎を提供するCSPI1600内の物理ネットワークにおける物理コンポーネントの簡略化されたアーキテクチャ図を示す。図示のように、CSPI1600は、クラウドサービスプロバイダ(CSP)によって提供されるコンポーネントおよびリソース(たとえば、計算リソース、メモリリソース、およびネットワーキングリソース)を含む分散環境を提供する。これらのコンポーネントおよびリソースを使用して、加入している顧客、すなわち、CSPによって提供される1つ以上のサービスに加入している顧客にクラウドサービス(たとえばIaaSサービス)を提供する。顧客が加入しているサービスに基づいて、CSPI1600のリソース(たとえば、計算リソース、メモリリソース、およびネットワーキングリソース)のサブセットが顧客に対してプロビジョニングされる。そして顧客は、CSPI1600によって提供される物理的な計算リソース、メモリリソース、およびネットワーキングリソースを使用して、自身のクラウドベースの(すなわちCSPIホスト型の)カスタマイズ可能なプライベート仮想ネットワークを構築することができる。上述のように、これらの顧客ネットワークは仮想クラウドネットワーク(VCN)と呼ばれる。顧客は、これらの顧客VCN上に、計算インスタンスなどの1つ以上の顧客リソースを展開することができる。計算インスタンスは、仮想マシン、ベアメタルインスタンスなどの形態を取ることができる。CSPI1600は、顧客が高可用性のホスト型環境で広範なアプリケーションおよびサービスを構築して実行することを可能にするインフラストラクチャおよび一連の補完的なクラウドサービスを提供する。
【0193】
図16に示される例示的な実施形態では、CSPI1600の物理コンポーネントは、1つ以上の物理ホストマシンまたは物理サーバ(たとえば1602,1606,1608)と、ネットワーク仮想化デバイス(NVD)(たとえば1610,1612)と、トップオブラック(TOR)スイッチ(たとえば1614,1616)と、物理ネットワーク(たとえば1618)と、物理ネットワーク1618内のスイッチとを含む。物理ホストマシンまたはサーバは、VCNの1つ以上のサブネットに参加するさまざまな計算インスタンスをホストし、実行し得る。計算インスタンスは、仮想マシンインスタンスおよびベアメタルインスタンスを含み得る。たとえば、
図15に示されるさまざまな計算インスタンスは、
図16に示される物理ホストマシンによってホストされ得る。VCN内の仮想マシン計算インスタンスは、1つのホストマシンによって実行されてもよく、または複数の異なるホストマシンによって実行され得る。また、物理ホストマシンは、仮想ホストマシン、コンテナベースのホストまたは機能などをホストし得る。
図15に示されるVNICおよびVCN VRは、
図16に示されるNVDによって実行され得る。
図15に示されるゲートウェイは、
図16に示されるホストマシンおよび/またはNVDによって実行され得る。
【0194】
ホストマシンまたはサーバは、ホストマシン上で仮想化環境を作成し可能にするハイパーバイザ(仮想マシンモニタまたはVMMとも呼ばれる)を実行し得る。仮想化または仮想化環境は、クラウドベースのコンピューティングを容易にする。1つ以上の計算インスタンスは、ホストマシン上のハイパーバイザによってそのホストマシン上で作成され、実行され、管理され得る。ホストマシン上のハイパーバイザは、ホストマシンの物理コンピューティングリソース(たとえば、計算リソース、メモリリソース、およびネットワーキングリソース)を、ホストマシンによって実行されるさまざまな計算インスタンス間で共有することを可能にする。
【0195】
たとえば、
図16に示されるように、ホストマシン1602および1608はハイパーバイザ1660および1666をそれぞれ実行する。これらのハイパーバイザは、ソフトウェア、ファームウエア、またはハードウェア、またはそれらの組み合わせを使用して実現され得る。典型的には、ハイパーバイザは、ホストマシンのオペレーティングシステム(OS)上にあるプロセスまたはソフトウェア層であり、OSはホストマシンのハードウェアプロセッサ上で実行される。ハイパーバイザは、ホストマシンの物理コンピューティングリソース(たとえば、プロセッサ/コア、メモリリソース、ネットワーキングリソースなどの処理リソース)を、ホストマシンによって実行されるさまざまな仮想マシン計算インスタンス間で共有することを可能にすることによって、仮想化環境を提供する。たとえば、
図16では、ハイパーバイザ1660は、ホストマシン1602のOS上にあってもよく、ホストマシン1602のコンピューティングリソース(たとえば、処理リソース、メモリリソース、およびネットワーキングリソース)を、ホストマシン1602によって実行される計算インスタンス(たとえば仮想マシン)間で共有することを可能にする。仮想マシンは自身のオペレーティングシステム(ゲストオペレーティングシステムと呼ばれる)を有することができ、当該オペレーティングシステムはホストマシンのOSと同じであってもよく、または異なっていてもよい。ホストマシンによって実行される仮想マシンのオペレーティングシステムは、同じホストマシンによって実行される別の仮想マシンのオペレーティングシステムと同じであってもよく、または異なっていてもよい。よって、ハイパーバイザは、ホストマシンの同じコンピューティングリソースを共有しながら、複数のオペレーティングシステムを互いに並行して実行することを可能にする。
図16に示されるホストマシンは、同じタイプのハイパーバイザを有してもよく、または異なるタイプのハイパーバイザを有してもよい。
【0196】
計算インスタンスは、仮想マシンインスタンスまたはベアメタルインスタンスとすることができる。
図16では、ホストマシン1602上の計算インスタンス1668およびホストマシン1608上の計算インスタンス1674は、仮想マシンインスタンスの一例である。ホストマシン1606は、顧客に提供されるベアメタルインスタンスの一例である。
【0197】
特定の例では、ホストマシン全体が単一の顧客に対してプロビジョニングされてもよく、そのホストマシンによってホストされている1つ以上の計算インスタンス(仮想マシンまたはベアメタルインスタンスのいずれか)のすべてがその同じ顧客に属する。他の例では、ホストマシンは複数の顧客(すなわち複数のテナント)間で共有されてもよい。このようなマルチテナンシシナリオでは、ホストマシンは、異なる顧客に属する仮想マシン計算インスタンスをホストしてもよい。これらの計算インスタンスは、異なる顧客の異なるVCNのメンバであってもよい。特定の実施形態では、ベアメタル計算インスタンスは、ハイパーバイザなしのベアメタルサーバによってホストされている。ベアメタル計算インスタンスがプロビジョニングされる場合、単一の顧客またはテナントは、当該ベアメタルインスタンスをホストしているホストマシンの物理CPU、メモリ、およびネットワークインターフェイスの制御を維持し、ホストマシンは他の顧客またはテナントと共有されない。
【0198】
上述したように、VCNの一部である各計算インスタンスは、計算インスタンスがVCNのサブネットのメンバになることを可能にするVNICに関連付けられる。計算インスタンスに関連付けられたVNICは、計算インスタンスとの間のパケットまたはフレームの通信を容易にする。計算インスタンスが作成されると、VNICが当該計算インスタンスに関連付けられる。特定の実施形態では、ホストマシンによって実行される計算インスタンスの場合、その計算インスタンスに関連付けられたVNICは、ホストマシンに接続されたNVDによって実行される。たとえば、
図16では、ホストマシン1602は、VNIC1676に関連付けられた仮想マシン計算インスタンス1668を実行し、VNIC1676は、ホストマシン1602に接続されたNVD1610によって実行される。別の例として、ホストマシン1606によってホストされているベアメタルインスタンス1672は、ホストマシン1606に接続されたNVD1612によって実行されるVNIC1680に関連付けられる。さらに別の例として、VNIC1684は、ホストマシン1608によって実行される計算インスタンス1674に関連付けられ、VNIC1684は、ホストマシン1608に接続されたNVD1612によって実行される。
【0199】
ホストマシンによってホストされている計算インスタンスの場合、そのホストマシンに接続されたNVDも、計算インスタンスがメンバであるVCNに対応するVCN VRを実行する。たとえば、
図16に示される実施形態では、NVD1610は、計算インスタンス1668がメンバであるVCNに対応するVCN VR1677を実行する。NVD1612も、ホストマシン1606および1608によってホストされている計算インスタンスに対応するVCNに対応する1つ以上のVCN VR1683を実行し得る。
【0200】
ホストマシンは、当該ホストマシンを他のデバイスに接続することを可能にする1つ以上のネットワークインターフェイスカード(NIC)を含み得る。ホストマシン上のNICは、当該ホストマシンを別のデバイスに通信可能に接続することを可能にする1つ以上のポート(またはインターフェイス)を提供し得る。たとえば、ホストマシン上およびNVD上に設けられた1つ以上のポート(またはインターフェイス)を使用して、当該ホストマシンを当該NVDに接続してもよい。また、ホストマシンを別のホストマシンなどの他のデバイスに接続してもよい。
【0201】
たとえば、
図16では、ホストマシン1602は、ホストマシン1602のNIC1632によって提供されるポート1634とNVD1610のポート1636との間に延在するリンク1620を使用してNVD1610に接続されている。ホストマシン1606は、ホストマシン1606のNIC1644によって提供されるポート1646とNVD1612のポート1648との間に延在するリンク1624を使用してNVD1612に接続されている。ホストマシン1608は、ホストマシン1608のNIC1650によって提供されるポート1652とNVD1612のポート1654との間に延在するリンク1626を使用してNVD1612に接続されている。
【0202】
そしてNVDは、通信リンクを介して、物理ネットワーク1618(スイッチファブリックとも呼ばれる)に接続されているトップオブラック(TOR)スイッチに接続されている。特定の実施形態では、ホストマシンとNVDとの間のリンク、およびNVDとTORスイッチとの間のリンクは、イーサネットリンクである。たとえば、
図16では、NVD1610および1612は、リンク1628および1630を使用してTORスイッチ1614および1616にそれぞれ接続されている。特定の実施形態では、リンク1620,1624,1626,1628および1630はイーサネットリンクである。TORに接続されているホストマシンおよびNVDの集合体はラックと呼ばれることもある。
【0203】
物理ネットワーク1618は、TORスイッチが互いに通信することを可能にする通信ファブリックを提供する。物理ネットワーク1618は多層ネットワークとすることができる。特定の実現例では、物理ネットワーク1618はスイッチの多層Closネットワークであり、TORスイッチ1614および1616は、多層およびマルチノード物理スイッチングネットワーク1618のリーフレベルノードを表す。2層ネットワーク、3層ネットワーク、4層ネットワーク、5層ネットワーク、および一般的に「n」層ネットワークを含むがこれらに限定されない異なるClosネットワーク構成が可能である。Closネットワークの一例が
図19に示されており、以下に説明される。
【0204】
ホストマシンとNVDとの間には、1対1構成、多対1構成、1対多構成などのさまざまな異なる接続構成が可能である。1対1構成の実現例では、各ホストマシンが自身の別個のNVDに接続されている。たとえば、
図16では、ホストマシン1602は、ホストマシン1602のNIC1632を介してNVD1610に接続されている。多対1構成では、複数のホストマシンが1つのNVDに接続されている。たとえば、
図16では、ホストマシン1606および1608は、それぞれNIC1644および1650を介して同じNVD1612に接続されている。
【0205】
1対多構成では、1つのホストマシンが複数のNVDに接続されている。
図17は、ホストマシンが複数のNVDに接続されているCSPI1700内の一例を示す。
図17に示されるように、ホストマシン1702は、複数のポート1706および1708を含むネットワークインターフェイスカード(NIC)1704を含む。ホストマシン1700は、ポート1706およびリンク1720を介して第1のNVD1710に接続され、ポート1708およびリンク1722を介して第2のNVD1712に接続されている。ポート1706および1708はイーサネットポートであってもよく、ホストマシン1702とNVD1710および1712との間のリンク1720および1722はイーサネットリンクであってもよい。そしてNVD1710は第1のTORスイッチ1714に接続され、NVD1712は第2のTORスイッチ1716に接続されている。NVD1710および1712とTORスイッチ1714および1716との間のリンクは、イーサネットリンクであってもよい。TORスイッチ1714および1716は、多層物理ネットワーク1718内の層-0スイッチングデバイスを表す。
【0206】
図17に示される配置は、物理スイッチネットワーク1718からホストマシン1702への2つの別個の物理ネットワークパス、すなわち、TORスイッチ1714をトラバースしてNVD1710およびホストマシン1702に至る第1のパス、ならびにTORスイッチ1716をトラバースしてNVD1712およびホストマシン1702に至る第2のパスを提供する。これら別個のパスは、ホストマシン1702の改善された可用性(高可用性と呼ばれる)を提供する。一方のパスに問題がある(たとえば一方のパスのリンクがダウンした)場合、またはデバイスに問題がある(たとえば特定のNVDが機能していない)場合、他方のパスがホストマシン1702との間の通信に使用され得る。
【0207】
図17に示される構成では、ホストマシンは、ホストマシンのNICによって提供される2つの異なるポートを使用して2つの異なるNVDに接続されている。他の実施形態では、ホストマシンは、複数のNVDへのホストマシンの接続を可能にする複数のNICを含み得る。
【0208】
再び
図16を参照して、NVDは、1つ以上のネットワークおよび/またはストレージ仮想化機能を実行する物理デバイスまたはコンポーネントである。NVDは、1つ以上の処理ユニット(たとえば、CPU、ネットワーク処理ユニット(NPU)、FPGA、パケット処理パイプラインなど)と、キャッシュを含むメモリと、ポートとを有するいずれのデバイスであってもよい。さまざまな仮想化機能は、NVDの1つ以上の処理ユニットによって実行されるソフトウェア/ファームウエアによって実行されてもよい。
【0209】
NVDは、さまざまな異なる形態で実現され得る。たとえば、特定の実施形態では、NVDは、内蔵プロセッサを搭載したスマートNICまたはインテリジェントNICと呼ばれるインターフェイスカードとして実現される。スマートNICは、ホストマシン上のNICとは別個のデバイスである。
図16では、NVD1610はホストマシン1602に接続されたスマートNICとして実現されてもよく、NVD1612はホストマシン1606および1608に接続されたスマートNICとして実現され得る。
【0210】
しかしながら、スマートNICは、NVDの一実現例に過ぎない。さまざまな他の実現例が可能である。たとえば、いくつかの他の実現例では、NVDまたはNVDによって実行される1つ以上の機能が、CSPI1600の1つ以上のホストマシン、1つ以上のTORスイッチ、および他のコンポーネントに組み込まれてもよく、またはそれらによって実行されてもよい。たとえば、NVDはホストマシンにおいて具体化され、NVDによって実行される機能は当該ホストマシンによって実行されてもよい。別の例として、NVDはTORスイッチの一部であってもよく、またはTORスイッチは、パブリッククラウドに使用されるさまざまな複雑なパケット変換をTORスイッチが実行することを可能にするNVDによって実行される機能を実行するように構成されてもよい。NVDの機能を実行するTORは、スマートTORと呼ばれることもある。ベアメタル(BM)インスタンスではなく仮想マシン(VM)インスタンスが顧客に提供されるさらに他の実現例では、NVDによって提供される機能は、ホストマシンのハイパーバイザの内部で実現され得る。いくつかの他の実現例では、NVDの機能の一部は、一連のホストマシン上で動作する集中型サービスにオフロードされてもよい。
【0211】
図16に示されるようにスマートNICとして実現される場合などの特定の実施形態では、NVDは、当該NVDを1つ以上のホストマシンおよび1つ以上のTORスイッチに接続することを可能にする複数の物理ポートを含み得る。NVD上のポートは、ホスト向きポート(「サウスポート(south port)」とも呼ばれる)またはネットワーク向きもしくはTOR向きポート(「ノースポート(north port)」とも呼ばれる)と分類され得る。NVDのホスト向きポートは、NVDをホストマシンに接続するために使用されるポートである。
図16のホスト向きポートの例としては、NVD1610上のポート1636、ならびにNVD1612上のポート1648および1654が挙げられる。NVDのネットワーク向きポートは、NVDをTORスイッチに接続するために使用されるポートである。
図16のネットワーク向きポートの例としては、NVD1610上のポート1656、およびNVD1612上のポート1658が挙げられる。
図16に示されるように、NVD1610は、NVD1610のポート1656からTORスイッチ1614に延在するリンク1628を使用してTORスイッチ1614に接続されている。同様に、NVD1612は、NVD1612のポート1658からTORスイッチ1616に延在するリンク1630を使用してTORスイッチ1616に接続されている。
【0212】
NVDは、ホスト向きポートを介してホストマシンからパケットおよびフレーム(たとえば、ホストマシンによってホストされている計算インスタンスによって生成されたパケットおよびフレーム)を受信し、必要なパケット処理を実行した後、NVDのネットワーク向きポートを介して当該パケットおよびフレームをTORスイッチに転送し得る。NVDは、NVDのネットワーク向きポートを介してTORスイッチからパケットおよびフレームを受信し得、必要なパケット処理を実行した後、NVDのホスト向きポートを介して当該パケットおよびフレームをホストマシンに転送し得る。
【0213】
特定の実施形態では、NVDとTORスイッチとの間に複数のポートおよび関連付けられたリンクがあってもよい。これらのポートおよびリンクを集約して、複数のポートまたはリンクのリンクアグリゲータグループ(LAGと呼ばれる)を形成してもよい。リンクを集約することで、2つのエンドポイント間の(たとえばNVDとTORスイッチとの間の)複数の物理リンクを1つの論理リンクとして扱うことが可能になる。所与のLAG内のすべての物理リンクは、同じ速度で全二重モードで動作し得る。LAGは、2つのエンドポイント間の接続の帯域幅および信頼性を高めるのに役立つ。LAG内の物理リンクのうちの1つがダウンすると、LAG内の他の物理リンクのうちの1つにトラフィックが動的かつ透過的に再び割り当てられる。集約された物理リンクは、個々の各リンクよりも高い帯域幅を達成する。LAGに関連付けられた複数のポートは、1つの論理ポートとして扱われる。トラフィックをLAGの複数の物理リンク間でロードバランシングすることができる。2つのエンドポイント間に1つ以上のLAGが構成されてもよい。2つのエンドポイントは、NVDとTORスイッチとの間、ホストマシンとNVDとの間などであってもよい。
【0214】
NVDは、ネットワーク仮想化機能を実現または実行する。これらの機能は、NVDによって実行されるソフトウェア/ファームウエアによって実行される。ネットワーク仮想化機能の例としては、限定されないが、パケットのカプセル化およびデカプセル化機能、VCNネットワークを作成するための機能、VCNセキュリティリスト(ファイアウォール)機能などのネットワークポリシーを実現するための機能、VCN内の計算インスタンスとの間のパケットのルーティングおよび転送を容易にする機能などが挙げられる。特定の実施形態では、パケットを受信すると、NVDは、パケットを処理し、パケットをどのように転送またはルーティングするかを判断するためのパケット処理パイプラインを実行するように構成されている。このパケット処理パイプラインの一部として、NVDは、VCN内の計算インスタンスに関連付けられたVNICの実行、VCNに関連付けられた仮想ルータ(VR)の実行、仮想ネットワーク内の転送またはルーティングを容易にするためのパケットのカプセル化およびデカプセル化、特定のゲートウェイ(たとえばローカルピアリングゲートウェイ)の実行、セキュリティリストの実現、ネットワークセキュリティグループ、ネットワークアドレス変換(NAT)機能(たとえばホスト単位でのパブリックIPからプライベートIPへの変換)、スロットル機能、および他の機能など、オーバーレイネットワークに関連付けられた1つ以上の仮想機能を実行し得る。
【0215】
特定の実施形態では、NVD内のパケット処理データパスは複数のパケットパイプラインを含み、その各々が一連のパケット変換ステージで構成されてもよい。特定の実現例では、パケットを受信すると、当該パケットはパースされ、1つのパイプラインに分類される。そしてパケットは、パケットがドロップされるまたはNVDのインターフェイスを介して送出されるまで、ステージからステージへと線形的に処理される。これらのステージは、基本的な機能パケット処理ビルディングブロック(たとえば、ヘッダの検証、スロットルの実施、新しいレイヤ2ヘッダの挿入、L4ファイアウォールの実施、VCNカプセル化/デカプセル化など)を提供するので、既存のステージを構成することによって新しいパイプラインを構築することができ、新しいステージを作成してそれらを既存のパイプラインに挿入することによって新しい機能を追加することができる。
【0216】
NVDは、VCNの制御プレーンおよびデータプレーンに対応する制御プレーン機能およびデータプレーン機能の両方を実行し得る。制御プレーン機能は、データをどのように転送するかを制御するネットワークを構成する(たとえば、ルートおよびルートテーブルをセットアップする、VNICを構成するなど)ために使用される機能を含む。特定の実施形態では、すべてのオーバーレイと基板とのマッピングを一元的に計算し、当該マッピングをNVDに、ならびにDRG、SGW、IGW等のさまざまなゲートウェイなどの仮想ネットワークエッジデバイスに公開するVCN制御プレーンが提供される。同じメカニズムを使用してファイアウォールルールも公開されてもよい。特定の実施形態では、NVDは、そのNVDに関連しているマッピングのみを取得する。データプレーン機能は、制御プレーンを使用してセットアップされた構成に基づいてパケットを実際にルーティング/転送するための機能を含む。VCNデータプレーンは、顧客のネットワークパケットが基幹ネットワークをトラバースする前に当該パケットをカプセル化することによって実現される。カプセル化/デカプセル化機能はNVD上で実現される。特定の実施形態では、NVDは、ホストマシンに出入りするすべてのネットワークパケットを傍受し、ネットワーク仮想化機能を実行するように構成されている。
【0217】
上述のように、NVDは、VNICおよびVCN VRを含むさまざまな仮想化機能を実行する。NVDは、VNICに接続された1つ以上のホストマシンによってホストされている計算インスタンスに関連付けられたVNICを実行し得る。たとえば、
図16に示されるように、NVD1610は、NVD1610に接続されたホストマシン1602によってホストされている計算インスタンス1668に関連付けられたVNIC1676のための機能を実行する。別の例として、NVD1612は、ホストマシン1606によってホストされているベアメタル計算インスタンス1672に関連付けられたVNIC1680を実行し、ホストマシン1608によってホストされている計算インスタンス1674に関連付けられたVNIC1684を実行する。ホストマシンは、異なる顧客に属する異なるVCNに属する計算インスタンスをホストし得、ホストマシンに接続されたNVDは、計算インスタンスに対応するVNICを実行し得る(すなわち、VNICに関連する機能を実行し得る)。
【0218】
NVDはまた、計算インスタンスのVCNに対応するVCN仮想ルータを実行する。たとえば、
図16に示される実施形態では、NVD1610は、計算インスタンス1668が属するVCNに対応するVCN VR1677を実行する。NVD1612は、ホストマシン1606および1608によってホストされている計算インスタンスが属する1つ以上のVCNに対応する1つ以上のVCN VR1683を実行する。特定の実施形態では、そのVCNに対応するVCN VRは、そのVCNに属する少なくとも1つの計算インスタンスをホストするホストマシンに接続されたすべてのNVDによって実行される。ホストマシンが、異なるVCNに属する計算インスタンスをホストする場合、そのホストマシンに接続されたNVDは、それらの異なるVCNに対応するVCN VRを実行し得る。
【0219】
VNICおよびVCN VRに加えて、NVDは、さまざまなソフトウェア(たとえばデーモン)を実行し、NVDによって実行されるさまざまなネットワーク仮想化機能を容易にする1つ以上のハードウェアコンポーネントを含み得る。簡単にするために、これらのさまざまなコンポーネントは、
図16に示される「パケット処理コンポーネント」としてグループ化されている。たとえば、NVD1610はパケット処理コンポーネント1686を含み、NVD1612はパケット処理コンポーネント1688を含む。たとえば、NVDのパケット処理コンポーネントは、NVDのポートおよびハードウェアインターフェイスとやり取りすることによって、NVDによって受信されNVDを使用して通信されるすべてのパケットを監視し、ネットワーク情報を格納するように構成されたパケットプロセッサを含み得る。ネットワーク情報は、たとえば、NVDによって処理される異なるネットワークフローを識別するネットワークフロー情報、およびフローごとの情報(たとえばフローごとの統計)を含み得る。特定の実施形態では、ネットワークフロー情報はVNIC単位で格納され得る。パケットプロセッサは、パケットごとの操作を実行するだけでなく、ステートフルNATおよびL4ファイアウォール(FW)を実現し得る。別の例として、パケット処理コンポーネントは、NVDによって格納された情報を1つ以上の異なる複製ターゲットストアに複製するように構成された複製エージェントを含み得る。さらに別の例として、パケット処理コンポーネントは、NVDのロギング機能を実行するように構成されたロギングエージェントを含み得る。パケット処理コンポーネントはまた、NVDの性能および健全性を監視するための、さらに場合によっては、NVDに接続された他のコンポーネントのステートおよび健全性を監視するソフトウェアを含み得る。
【0220】
図15は、VCNと、VCN内のサブネットと、サブネット上に展開される計算インスタンスと、計算インスタンスに関連付けられたVNICと、VCNのVRと、VCNのために構成されたゲートウェイのセットとを含む、例示的な仮想ネットワークまたはオーバーレイネットワークのコンポーネントを示す。
図15に示されるオーバーレイコンポーネントは、
図16に示される物理コンポーネントのうちの1つ以上によって実行またはホストされてもよい。たとえば、VCN内の計算インスタンスは、
図16に示される1つ以上のホストマシンによって実行またはホストされてもよい。ホストマシンによってホストされている計算インスタンスの場合、その計算インスタンスに関連付けられたVNICは、典型的には、そのホストマシンに接続されたNVDによって実行される(すなわち、VNIC機能は、そのホストマシンに接続されたNVDによって提供される)。VCNのVCN VR機能は、そのVCNの一部である計算インスタンスをホストまたは実行するホストマシンに接続されたすべてのNVDによって実行される。VCNに関連付けられたゲートウェイは、1つ以上の異なるタイプのNVDによって実行されてもよい。たとえば、特定のゲートウェイはスマートNICによって実行されてもよく、他のゲートウェイは1つ以上のホストマシンまたはNVDの他の実現例によって実行されてもよい。
【0221】
上述のように、顧客VCN内の計算インスタンスはさまざまな異なるエンドポイントと通信してもよく、当該エンドポイントは、ソース計算インスタンスと同じサブネット内にあり得るか、異なるサブネットであるがソース計算インスタンスと同じVCN内にあり得るか、または、ソース計算インスタンスのVCNの外部のエンドポイントを有し得る。これらの通信は、計算インスタンスに関連付けられたVNICと、VCN VRと、VCNに関連付けられたゲートウェイとを使用して容易になる。
【0222】
VCN内の同じサブネット上の2つの計算インスタンス間の通信の場合、当該通信は、ソース計算インスタンスおよび宛先計算インスタンスに関連付けられたVNICを使用して容易になる。ソース計算インスタンスおよび宛先計算インスタンスは、同じホストマシンによってホストされてもよく、または異なるホストマシンによってホストされてもよい。ソース計算インスタンスから送出されるパケットは、ソース計算インスタンスをホストするホストマシンから、そのホストマシンに接続されたNVDに転送されてもよい。NVD上で、パケットはパケット処理パイプラインを使用して処理され、これは、ソース計算インスタンスに関連付けられたVNICの実行を含み得る。パケットの宛先エンドポイントは同じサブネット内にあるので、ソース計算インスタンスに関連付けられたVNICを実行すると、パケットは、宛先計算インスタンスに関連付けられたVNICを実行するNVDに転送され、NVDは次に、パケットを処理して宛先計算インスタンスに転送する。ソース計算インスタンスおよび宛先計算インスタンスに関連付けられたVNICは、(たとえば、ソース計算インスタンスおよび宛先計算インスタンスの両方が同じホストマシンによってホストされている場合は)同じNVD上で実行されてもよく、または(たとえば、ソース計算インスタンスおよび宛先計算インスタンスが異なるNVDに接続された異なるホストマシンによってホストされている場合は)異なるNVD上で実行されてもよい。VNICは、NVDによって格納されたルーティング/転送テーブルを使用して、パケットのネクストホップを決定してもよい。
【0223】
サブネット内の計算インスタンスから同じVCN内の異なるサブネット内のエンドポイントにパケットを通信する場合、ソース計算インスタンスから送出されるパケットは、ソース計算インスタンスをホストするホストマシンから、そのホストマシンに接続されたNVDに通信される。NVD上で、パケットはパケット処理パイプラインを使用して処理され、これは、1つ以上のVNIC、およびVCNに関連付けられたVRの実行を含み得る。たとえば、パケット処理パイプラインの一部として、NVDは、ソース計算インスタンスに関連付けられたVNICに対応する機能を実行するか呼び出す(VNICを実行するとも呼ばれる)。VNICによって実行される機能は、パケット上のVLANタグに注目することを含み得る。パケットの宛先がサブネットの外部にあるので、次にVCN VR機能がNVDによって呼び出されて実行される。そして、VCN VRは、宛先計算インスタンスに関連付けられたVNICを実行するNVDにパケットをルーティングする。そして、宛先計算インスタンスに関連付けられたVNICは、パケットを処理し、パケットを宛先計算インスタンスに転送する。ソース計算インスタンスおよび宛先計算インスタンスに関連付けられたVNICは、(たとえば、ソース計算インスタンスおよび宛先計算インスタンスの両方が同じホストマシンによってホストされている場合は)同じNVD上で実行されてもよく、または(たとえば、ソース計算インスタンスおよび宛先計算インスタンスが異なるNVDに接続された異なるホストマシンによってホストされている場合は)異なるNVD上で実行されてもよい。
【0224】
パケットの宛先がソース計算インスタンスの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によって実行されてもよい。そして、パケットは、ゲートウェイによって処理され、意図された宛先エンドポイントへのパケットの通信を容易にするネクストホップに転送される。たとえば、
図16に示される実施形態では、計算インスタンス1668から送出されるパケットは、(NIC1632を使用して)リンク1620を介してホストマシン1602からNVD1610に通信されてもよい。NVD1610上では、VNIC1676がソース計算インスタンス1668に関連付けられたVNICであるため、VNIC1676が呼び出される。VNIC1676は、パケット内のカプセル化情報を調べ、意図された宛先エンドポイントへのパケットの通信を容易にすることを目的としてパケットを転送するためのネクストホップを決定し、次に、決定したネクストホップにパケットを転送するように構成されている。
【0225】
VCN上に展開される計算インスタンスは、さまざまな異なるエンドポイントと通信することができる。これらのエンドポイントは、CSPI1600によってホストされているエンドポイントおよびCSPI1600の外部のエンドポイントを含み得る。CSPI1600によってホストされているエンドポイントは、同じVCN内の、または顧客のVCNもしくは顧客に属さないVCNであり得る他のVCN内のインスタンスを含み得る。CSPI1600によってホストされているエンドポイント間の通信は、物理ネットワーク1618を介して実行されてもよい。計算インスタンスはまた、CSPI1600によってホストされていない、またはCSPI1600の外部にあるエンドポイントと通信してもよい。これらのエンドポイントの例としては、顧客のオンプレミスネットワークもしくはデータセンター内のエンドポイント、またはインターネットなどのパブリックネットワークを介してアクセス可能なパブリックエンドポイントが挙げられる。CSPI1600の外部のエンドポイントとの通信は、さまざまな通信プロトコルを使用してパブリックネットワーク(たとえばインターネット)(
図16には図示せず)またはプライベートネットワーク(
図16には図示せず)を介して実行されてもよい。
【0226】
図16に示されるCSPI1600のアーキテクチャは一例に過ぎず、限定することを意図していない。代替の実施形態では変形例、代替例、および修正例が可能である。たとえば、いくつかの実現例では、CSPI1600は、
図16に示されるよりも多いもしくは少ないシステムもしくはコンポーネントを有してもよく、2つ以上のシステムを組み合わせてもよく、またはシステムの異なる構成もしくは配置を有してもよい。
図16に示されるシステム、サブシステム、および他のコンポーネントは、それぞれのシステムの1つ以上の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)で、ハードウェアを使用して、またはそれらの組み合わせで、実現され得る。ソフトウェアは非一時的な記憶媒体上に(たとえばメモリデバイス上に)に格納されてもよい。
【0227】
図18は、特定の実施形態に係る、マルチテナンシをサポートするためのI/O仮想化を提供するためのホストマシンとNVDとの間の接続性を示す。
図18に示されるように、ホストマシン1802は、仮想化環境を提供するハイパーバイザ1804を実行する。ホストマシン1802は2つの仮想マシンインスタンス、すなわち、顧客/テナント#1に属するVM1 1806および顧客/テナント#2に属するVM2 1808を実行する。ホストマシン1802は、リンク1814を介してNVD1812に接続されている物理NIC1810を含む。計算インスタンスの各々は、NVD1812によって実行されるVNICにアタッチされている。
図18の実施形態では、VM1 1806はVNIC-VM1 1820にアタッチされ、VM2 1808はVNIC-VM2 1822にアタッチされている。
【0228】
図18に示されるように、NIC1810は、2つの論理NIC、すなわち、論理NIC A1816および論理NIC B1818を含む。各仮想マシンは、自身の論理NICにアタッチされ、自身の論理NICとともに動作するように構成されている。たとえば、VM1 1806は論理NIC A1816にアタッチされ、VM2 1808は論理NIC B1818にアタッチされている。ホストマシン1802は、複数のテナントによって共有される1つの物理NIC1810しか含んでいないが、論理NICにより、各テナントの仮想マシンは、自身のホストマシンおよびNICを有していると信じている。
【0229】
特定の実施形態では、各論理NICには、自身のVLAN IDが割り当てられる。よって、テナント#1の論理NIC A1816には特定のVLAN IDが割り当てられ、テナント#2の論理NIC B1818には異なるVLAN IDが割り当てられる。VM1 1806からパケットが通信されると、テナント#1に割り当てられたタグがハイパーバイザによってパケットにアタッチされ、次にパケットがリンク1814を介してホストマシン1802からNVD1812に通信される。同様に、VM2 1808からパケットが通信されると、テナント#2に割り当てられたタグがハイパーバイザによってパケットにアタッチされ、次にパケットがリンク1814を介してホストマシン1802からNVD1812に通信される。したがって、ホストマシン1802からNVD1812に通信されるパケット1824は、特定のテナントおよび関連付けられたVMを識別する、関連付けられたタグ1826を有する。NVD上で、ホストマシン1802から受信されたパケット1824に対して、当該パケットに関連付けられたタグ1826は、当該パケットがVNIC-VM1 1820によって処理されるべきかVNIC-VM2 1822によって処理されるべきかを判断するために使用される。そしてパケットは、対応するVNICによって処理される。
図18に示される構成は、各テナントの計算インスタンスが、自身のホストマシンおよびNICを有していると信じることを可能にする。
図18に示されるセットアップは、マルチテナンシをサポートするためのI/O仮想化を提供する。
【0230】
図19は、特定の実施形態に係る物理ネットワーク1900の簡略化されたブロック図を示す。
図19に示される実施形態は、Closネットワークとして構築されている。Closネットワークは、高い二分割帯域幅および最大リソース利用を維持しながら接続冗長性を提供するように設計された特定のタイプのネットワークトポロジである。Closネットワークは、一種の非ブロッキングの、多段または多層スイッチングネットワークであり、段または層の数は、2,3,4,5などとすることができる。
図19に示される実施形態は、層1,2および3を含む3層ネットワークである。TORスイッチ1904はClosネットワーク内の層-0スイッチを表す。1つ以上のNVDがTORスイッチに接続されている。層-0スイッチは、物理ネットワークのエッジデバイスとも呼ばれる。層-0スイッチは、リーフスイッチとも呼ばれる層-1スイッチに接続されている。
図19に示される実施形態では、「n」個の層-0 TORスイッチのセットが「n」個の層-1スイッチのセットに接続され、ともにポッドを形成する。あるポッド内の各層-0スイッチは、当該ポッド内のすべての層-1スイッチに相互接続されるが、ポッド間のスイッチの接続性はない。特定の実現例では、2つのポッドはブロックと呼ばれる。各ブロックは、「n」個の層-2スイッチ(スパインスイッチと呼ばれることもある)のセットによってサービスを提供されるか、または当該セットに接続されている。いくつかのブロックが物理ネットワークトポロジ内にあり得る。そして層-2スイッチは、「n」個の層-3スイッチ(スーパースパインスイッチと呼ばれることもある)に接続されている。物理ネットワーク1900を介したパケットの通信は典型的に、1つ以上のレイヤ3通信プロトコルを使用して実行される。典型的に、TOR層を除く物理ネットワークのすべての層はnウェイ冗長であり、したがって高可用性を実現することができる。物理ネットワークのスケーリングを有効にするために物理ネットワーク内のスイッチの相互の可視性を制御するポリシーを、ポッドおよびブロックに対して指定してもよい。
【0231】
Closネットワークの特徴は、ある層-0スイッチから別の層-0スイッチに(または、層-0スイッチに接続されたNVDから層-0スイッチに接続された別のNVDに)到達するための最大ホップカウントが固定されていることである。たとえば、3層のClosネットワークでは、あるNVDから別のNVDにパケットが到達するために最大で7個のホップが必要であり、ソースNVDおよびターゲットNVDはClosネットワークのリーフ層に接続されている。同様に、4層のClosネットワークでは、あるNVDから別のNVDにパケットが到達するために最大で9個のホップが必要であり、ソースNVDおよびターゲットNVDはClosネットワークのリーフ層に接続されている。よって、Closネットワークアーキテクチャはネットワーク全体の遅延を一定に保つ。これは、データセンター内およびデータセンター間の通信に重要である。Closトポロジは水平方向にスケーリングされ、費用対効果が高い。さまざまな層により多くのスイッチ(たとえば、より多くのリーフスイッチおよびスパインスイッチ)を追加することによって、かつ、隣接層におけるスイッチ間のリンク数を増やすことによって、ネットワークの帯域幅/スループット容量を容易に増加させることができる。
【0232】
特定の実施形態では、CSPI内の各リソースには、クラウド識別子(CID)と呼ばれる固有の識別子が割り当てられる。この識別子は、リソースの情報の一部として含まれ、たとえばコンソールを介してまたはAPIを通じてリソースを管理するために使用することができる。CIDの例示的なシンタックスは、
ocid1.<RESOURCE TYPE>.<REALM>.[REGION][.FUTURE USE].<UNIQUE ID>
である。式中、
「ocid1」は、CIDのバージョンを示すリテラル文字列である。
【0233】
「resource type」は、リソースのタイプ(たとえば、インスタンス、ボリューム、VCN、サブネット、ユーザ、グループなど)である。
【0234】
「realm」は、リソースが存在するレルムである。例示的な値は、商用レルムの「c1」、政府クラウドレルムの「c2」、または連邦政府クラウドレルムの「c3」などである。各レルムは自身のドメイン名を有し得る。
【0235】
「region」は、リソースが存在するリージョンである。リージョンがリソースに適用されない場合、この部分は空白であってもよい。
【0236】
「future use」は、将来使用するために確保されている。
「unique ID」は、IDの固有部分である。フォーマットはリソースまたはサービスのタイプによって異なり得る。
【0237】
本開示の特定の実施形態を説明したが、さまざまな修正例、代替例、代替構成、および均等物も本開示の範囲内に包含される。本開示の実施形態は、特定の具体的なデータ処理環境内の動作に制限されず、複数のデータ処理環境内で自由に動作することができる。これに加えて、特定の一連のトランザクションおよびステップを用いて本開示の実施形態を説明したが、本開示の範囲は説明された一連のトランザクションおよびステップに限定されないことは、当業者に明らかであるはずである。上述した実施形態のさまざまな特徴および態様は、個別にまたは共同で使用されてもよい。
【0238】
さらに、ハードウェアとソフトウェアとの特定の組み合わせを用いて本開示の実施形態を説明したが、ハードウェアとソフトウェアとの他の組み合わせも本開示の範囲内にあることが認識されるべきである。本開示の実施形態は、ハードウェアのみで、またはソフトウェアのみで、またはそれらの組み合わせを用いて、実現され得る。本明細書に記載されているさまざまなプロセスは、同じロセッサまたは任意の組み合わせの異なるプロセッサ上で実現することができる。したがって、コンポーネントまたはモジュールが特定の動作を実行するように構成されると記載されている場合、そのような構成は、たとえば、その動作を実行するように電子回路を設計することによって、その動作を実行するようにプログラム可能な電子回路(マイクロプロセッサなど)をプログラムすることによって、またはそれらの任意の組み合わせによって、達成することができる。プロセスは、プロセス間通信のための従来技術を含むさまざまな技術を用いて通信することができるが、これに限定されず、プロセスの異なるペアが異なる技術を使用してもよく、またはプロセスの同じペアが異なる時間に異なる技術を使用してもよい。
【0239】
したがって、明細書および図面は、限定的ではなく例示的であるとみなされるべきである。しかしながら、特許請求の範囲に記載されたより広義の精神および範囲から逸脱することなく、追加、削減、削除、ならびに他の修正および変更をそれらに対して行ってもよいことが明らかであろう。ゆえに、本開示の特定の実施形態を説明したが、これらは限定することを意図していない。さまざまな修正および均等物が添付の特許請求の範囲に含まれる。
【0240】
開示されている実施形態を説明する文脈における(特に、添付の特許請求の範囲の文脈における)「a」および「an」および「the」という語、ならびに同様の指示対象の使用は、本明細書において特に明記しない限り、または文脈上明らかに矛盾のない限り、単数および複数の両方を含むと解釈されるべきである。「備える」、「有する」、「含む」、および「含有する」という語は、特に記載されていない限り、非限定的な語であると解釈されるべきである(すなわち、「…を含むがこれらに限定されない」ことを意味する)。「接続される」という語は、何かが介在している場合であっても、一部または全部が含まれている、取り付けられている、または結合されていると解釈されるべきである。本明細書における値の範囲の記載は、本明細書において特に明記しない限り、その範囲内に含まれる個別の各値に個々に言及することを省略する方法であることが意図されているに過ぎず、個別の各値は本明細書において個別に記載されているかのように本明細書に組み込まれる。本明細書に記載されている方法はすべて、本明細書において特に明記しない限り、または文脈上明らかに矛盾のない限り、任意の適切な順序で実行することができる。本明細書に提供されているあらゆる例、または例示的な言い回し(たとえば「~など」)の使用は、本開示の実施形態をより明らかにすることを意図しているに過ぎず、特にクレームされていない限り、本開示の範囲を限定するものではない。明細書中のすべての言い回しは、クレームされていない要素が本開示を実施するのに必須の要素であることを示す言い回しであると解釈されるべきではない。
【0241】
「X、Y、またはZのうちの少なくとも1つ」というフレーズなどの離接的な言い回しは、特に具体的に明記されていない限り、項目、用語などがX、Y、もしくはZ、またはそれらの任意の組合せ(たとえば、X、Y、および/もしくはZ)のいずれかであり得ることを提示するために一般的に使用される文脈内で理解されることが意図されている。ゆえに、このような離接的な言い回しは、概して、特定の実施形態が、Xのうちの少なくとも1つ、Yのうちの少なくとも1つ、またはZのうちの少なくとも1つが各々存在することが必要であることを含意することを意図しておらず、またそのように含意すべきではない。
【0242】
本開示を実施するために知られている最良の形態を含む、本開示の好ましい実施形態が本明細書に記載されている。上記の説明を読むと、これらの好ましい実施形態の変形例が当業者に明らかになるであろう。当業者は、このような変形例を適宜採用することができるはずであり、本開示は、本明細書に具体的に記載されている以外の方法で実施されてもよい。したがって、本開示は、適用される法律によって許可される、本明細書に添付された特許請求の範囲に記載されている主題のすべての修正例および均等物を含む。さらに、そのすべての可能な変形例における上述の要素の任意の組み合わせは、本明細書に特に示されていない限り、本開示に包含される。
【0243】
本明細書において引用されている刊行物、特許出願、および特許を含むすべての参考文献は、各文献が引用により援用されることが個別にかつ具体的に示され、その全体が本明細書に記載された場合と同じ程度に、引用により本明細書に援用される。
【0244】
上記の明細書では、本開示の態様をその具体的な実施形態を参照して説明しているが、当業者は、本開示がそれらに限定されないことを認識するであろう。上述した開示のさまざまな特徴および態様は、個別にまたは共同で使用されてもよい。さらに、実施形態は、本明細書のより広義の精神および範囲から逸脱することなく、本明細書に説明されているものを超える任意の数の環境および用途で利用することができる。したがって、明細書および図面は、限定的ではなく例示的であると見なされるべきである。
【国際調査報告】