(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-13
(54)【発明の名称】クラウドベースのクロスドメインシステム-仮想データダイオード
(51)【国際特許分類】
H04L 45/00 20220101AFI20241106BHJP
H04L 41/40 20220101ALI20241106BHJP
【FI】
H04L45/00
H04L41/40
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024530473
(86)(22)【出願日】2022-11-16
(85)【翻訳文提出日】2024-07-09
(86)【国際出願番号】 US2022079946
(87)【国際公開番号】W WO2023097155
(87)【国際公開日】2023-06-01
(32)【優先日】2021-11-23
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-11-23
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-11-23
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】アドグラ,エデン・グレイル
(72)【発明者】
【氏名】キューネル,トーマス・ベルナー
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA15
5K030HA08
5K030HC14
5K030HD06
5K030JA11
5K030LB05
5K030LD19
(57)【要約】
いくつかの態様において、ネットワークインターフェースカード(NIC)は、非接続ネットワークと関連付けられているネットワークインターフェースカードの第1のノードにおいて、非接続ネットワークを宛先とし、第1の通信プロトコルを使用して送られたメッセージを受信するようにしてもよい。ネットワークインターフェースカードは、単方向通信用に設定されている第2の通信プロトコルを使用して、ネットワークインターフェースカードの第1のノードから第2のノードにメッセージを送るようにしてもよい。ネットワークインターフェースカードは、メッセージを第2のノードで受信するようにしてもよい。ネットワークインターフェースカードは、第2のノードから、第3の通信プロトコルを使用して、メッセージを非接続ネットワークの送信先ノードに送るようにしてもよい。他の多くの態様が記載される。
【特許請求の範囲】
【請求項1】
コンピュータが実行する方法であって、
仮想ネットワークと関連付けられているネットワークインターフェースカード(NIC)の第1の処理ノードにおいて、前記仮想ネットワークを宛先とし、第1の通信プロトコルを使用して送られたメッセージを受信することを含み、前記ネットワークインターフェースカードは、物理ネットワーク上で動作している前記仮想ネットワークを実装するように構成されているネットワーク仮想化デバイスを備えており、
前記方法は、
単方向通信用に設定されている第2の通信プロトコルを使用して、前記ネットワークインターフェースカードの前記第1の処理ノードから第2の処理ノードに前記メッセージを送ることと、
前記メッセージを前記第2の処理ノードで受信することと、
前記第2の処理ノードから、第3の通信プロトコルを使用して、前記メッセージを前記仮想ネットワークの送信先リソースに送ることと、
をさらに含む、コンピュータが実行する方法。
【請求項2】
前記第2の通信プロトコルは、ユーザデータグラムプロトコル(UDP)である、請求項1に記載の方法。
【請求項3】
前記ネットワークインターフェースカードは、スマートネットワークインターフェースカード(スマートNIC)を含む、請求項1または請求項2に記載の方法。
【請求項4】
前記仮想ネットワークは、仮想クラウドネットワークを含む、請求項1~請求項3のいずれか1項に記載の方法。
【請求項5】
前記仮想ネットワークは、パブリックネットワークに接続されないように構成されている、請求項1~請求項4のいずれか1項に記載の方法。
【請求項6】
前記メッセージは、前記第2の処理ノードを出た後、前記送信先リソースに到達する前にフィルタチェーンを通過するように構成されている、請求項1~請求項5のいずれか1項に記載の方法。
【請求項7】
ネットワーク用ケーブルを使用して、前記第1の処理ノードと前記第2の処理ノードとの間の接続が確立される、請求項1~請求項6のいずれか1項に記載の方法。
【請求項8】
前記ネットワーク用ケーブルを使用して確立された前記接続は、双方向通信が可能である、請求項7に記載の方法。
【請求項9】
1つまたは複数の非一時的機械可読媒体において有形で具現化され、1つまたは複数のデータプロセッサに命令を実行させるように構成されている命令を含むコンピュータプログラム製品であって、
前記1つまたは複数のデータプロセッサが実行する命令は、
仮想ネットワークと関連付けられているネットワークインターフェースカード(NIC)の第1の処理ノードにおいて、前記仮想ネットワークを宛先とし、第1の通信プロトコルを使用して送られたメッセージを受信することを含み、前記ネットワークインターフェースカードは、物理ネットワーク上で動作している前記仮想ネットワークを実装するように構成されているネットワーク仮想化デバイスを備えており、
単方向通信用に設定されている第2の通信プロトコルを使用して、前記ネットワークインターフェースカードの前記第1の処理ノードから第2の処理ノードに前記メッセージを送ることと、
前記メッセージを前記第2の処理ノードで受信することと、
前記第2の処理ノードから、第3の通信プロトコルを使用して、前記メッセージを前記仮想ネットワークの送信先リソースに送ることと、
をさらに含む、コンピュータプログラム製品。
【請求項10】
前記第2の通信プロトコルは、ユーザデータグラムプロトコル(UDP)である、請求項9に記載のコンピュータプログラム製品。
【請求項11】
前記ネットワークインターフェースカードは、スマートネットワークインターフェースカード(スマートNIC)を含む、請求項9または請求項10に記載のコンピュータプログラム製品。
【請求項12】
前記仮想ネットワークは、仮想クラウドネットワークを含む、請求項9~請求項11のいずれか1項に記載のコンピュータプログラム製品。
【請求項13】
前記仮想ネットワークは、パブリックネットワークに接続されないように構成されている、請求項9~請求項12のいずれか1項に記載のコンピュータプログラム製品。
【請求項14】
前記メッセージは、前記第2の処理ノードを出た後、前記送信先リソースに到達する前にフィルタチェーンを通過するように構成されている、請求項9~請求項13のいずれか1項に記載のコンピュータプログラム製品。
【請求項15】
ネットワーク用ケーブルを使用して、前記第1の処理ノードと前記第2の処理ノードとの間の接続が確立される、請求項9~請求項14のいずれか1項に記載のコンピュータプログラム製品。
【請求項16】
仮想ネットワークと関連付けられているネットワークインターフェースカード(NIC)であって、
第1の処理ノードと、
第2の処理ノードと、
コンピュータ実行可能命令を格納するメモリと、
前記第1の処理ノード、前記第2の処理ノード、および前記メモリにアクセスするとともに、前記コンピュータ実行可能命令を実行するように構成されている1つまたは複数のプロセッサと、
を備え、
前記1つまたは複数のプロセッサは、少なくとも
前記第1の処理ノードにおいて、前記仮想ネットワークを宛先とし、第1の通信プロトコルを使用して送られたメッセージを受信し、前記ネットワークインターフェースカードは、物理ネットワーク上で動作している前記仮想ネットワークを実装するように構成されているネットワーク仮想化デバイスを備えており、
単方向通信用に設定されている第2の通信プロトコルを使用して、前記第1の処理ノードから前記第2の処理ノードに前記メッセージを送り、
前記メッセージを前記第2の処理ノードで受信し、
前記第2の処理ノードから、第3の通信プロトコルを使用して、前記メッセージを前記仮想ネットワークの送信先リソースに送る、ネットワークインターフェースカード。
【請求項17】
前記第2の通信プロトコルは、ユーザデータグラムプロトコル(UDP)である、請求項16に記載のネットワークインターフェースカード。
【請求項18】
前記ネットワークインターフェースカードは、スマートネットワークインターフェースカード(スマートNIC)を含む、請求項16または請求項17に記載のネットワークインターフェースカード。
【請求項19】
前記仮想ネットワークは、仮想クラウドネットワークを含む、請求項16~請求項18のいずれか1項に記載のネットワークインターフェースカード。
【請求項20】
前記メッセージは、前記第2の処理ノードを出た後、前記送信先リソースに到達する前にフィルタチェーンを通過するように構成されている、請求項16~請求項19のいずれか1項に記載のネットワークインターフェースカード。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2021年11月23日に出願された米国特許出願第17/534,187号「CLOUD BASED CROSS DOMAIN SYSTEM - VIRTUAL DATA DIODE」(代理人整理番号第088325-1259513(296100US)号)、2021年11月23日に出願された米国特許出願第17/534,194号「CLOUD BASED CROSS DOMAIN SYSTEM - CDSaaS」(代理人整理番号第088325-1259518(296110US)号)、および2021年11月23日に出願された米国特許出願第17/534,196号「CLOUD BASED CROSS DOMAIN SYSTEM - CDS WITH DISAGGREGATED PARTS」(代理人整理番号第088325-1260117(296120US)号)に対する優先権を主張するものであり、そのすべての開示内容を本明細書において援用する。
【0002】
分野
本開示は、ネットワークセキュリティに関する。特に、本開示は、クロスドメインソリューションに関する。
【背景技術】
【0003】
背景
専用ネットワークに入るデータを制御および検査するハードウェア実装クロスドメインソリューションのための技術が存在する。ただし、このような技術は、保守および運用が困難である。
【発明の概要】
【0004】
簡単な概要
特別なハードウェアの必要なく、専用ネットワークへのセキュアな一方向トラフィックを可能にするソフトウェア実装クラウドベースのクロスドメインシステムのための技術が提供される。
【0005】
一実施形態において、1つまたは複数のコンピュータから成るシステムは、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組み合わせをシステムにインストールすることによって、特定の動作またはアクションを実行するように構成可能であり、1つまたは複数のコンピュータは、動作時、システムにアクションを実行させる。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されると、装置にアクションを実行させる命令を含むことによって、特定の動作またはアクションを実行するように構成可能である。一般的な一態様は、コンピュータが実行する方法を含む。また、コンピュータが実行する方法は、非接続ネットワークと関連付けられているネットワークインターフェースカード(NIC)の第1のノードにおいて、非接続ネットワークを宛先とし、第1の通信プロトコルを使用して送られたメッセージまたはデータを受信することを含む。また、方法は、単方向通信用に設定されている第2の通信プロトコルを使用して、ネットワークインターフェースカードの第1のノードから第2のノードにメッセージまたはデータを送ることを含む。また、方法は、メッセージまたはデータを第2のノードで受信することを含む。また、方法は、第2のノードから、第3の通信プロトコルを使用して、メッセージまたはデータを非接続ネットワークの送信先ノードに送ることを含む。本態様の他の実施形態は、上記方法のアクションを実行するように各々構成されている対応するコンピュータシステム、装置、ならびに1つもしくは複数のコンピュータ記憶装置に記録されているコンピュータプログラムを含む。
【0006】
一般的な一態様において、第2の通信プロトコルは、ユーザデータグラムプロトコル(UDP)である。
【0007】
一般的な一態様において、ネットワークインターフェースカードは、スマートネットワークインターフェースカード(スマートNIC)を含む。スマートNICは、そのインターフェースのうちの1つに到達したメッセージまたはデータを処理して、別のインターフェースに転送することができる。プロセスとしては、入力メッセージの解析または/およびスマートNICで設定可能なルールに従う変換を行うソフトウェアおよび/またはハードウェアの形態が可能である。
【0008】
一般的な一態様において、非接続ネットワークは、仮想クラウドネットワークを含む。
一般的な一態様において、非接続ネットワークは、インターネットに接続されていない。
【0009】
一般的な一態様において、メッセージは、第2のノードを出た後、送信先ノードに到達する前にフィルタチェーンを通過する。
【0010】
一般的な一態様において、第1のノードと第2のノードとの間の接続は、Ethernetケーブル等のネットワーク用リンクを使用して確立される。
【0011】
一般的な一態様において、ネットワークリンクを使用して確立された接続は、双方向通信が可能である。
【0012】
一般的な一態様は、1つまたは複数の非一時的機械可読媒体において有形で具現化され、1つまたは複数のデータプロセッサに命令を実行させるように構成されている命令を含むコンピュータプログラム製品であって、1つまたは複数のデータプロセッサが実行する命令は、非接続ネットワークと関連付けられているネットワークインターフェースカード(NIC)の第1のノードにおいて、非接続ネットワークを宛先とし、第1の通信プロトコルを使用して送られたメッセージを受信することを含む、コンピュータプログラム製品を含む。また、方法は、単方向通信用に設定されている第2の通信プロトコルを使用して、ネットワークインターフェースカードの第1のノードから第2のノードにメッセージを送ることを含む。また、方法は、メッセージを第2のノードで受信することを含む。また、方法は、第2のノードから、第3の通信プロトコルを使用して、メッセージを非接続ネットワークの送信先ノードに送ることを含む。本態様の他の実施形態は、上記方法のアクションを実行するように各々構成されている対応するコンピュータシステム、装置、ならびに1つもしくは複数のコンピュータ記憶装置に記録されているコンピュータプログラムを含む。
【0013】
一般的な一態様は、非接続ネットワークと関連付けられているネットワークインターフェースカード(NIC)であって、第1のノード、第2のノード、コンピュータ実行可能命令を格納するメモリ、ならびに1つもしくは複数のプロセッサを備える、ネットワークインターフェースカードを含む。第1のノード、第2のノード、およびメモリにアクセスするとともに、コンピュータ実行可能命令を実行するように構成されている1つまたは複数のプロセッサは、少なくとも、第1のノードにおいて、非接続ネットワークを宛先とし、第1の通信プロトコルを使用して送られたメッセージを受信する。また、1つまたは複数のプロセッサは、単方向通信用に設定されている第2の通信プロトコルを使用して、第1のノードから第2のノードにメッセージを送るように構成されている。また、1つまたは複数のプロセッサは、メッセージを第2のノードで受信するように構成されている。また、1つまたは複数のプロセッサは、第2のノードから、第3の通信プロトコルを使用して、メッセージを非接続ネットワークの送信先ノードに送るように構成されている。本態様の他の実施形態は、上記方法のアクションを実行するように各々構成されている対応するコンピュータシステム、装置、ならびに1つもしくは複数のコンピュータ記憶装置に記録されているコンピュータプログラムを含む。
【0014】
特別なハードウェアの必要なく、専用ネットワークへのセキュアな一方向トラフィックを可能にするサービス型ソフトウェア(SaaS)プロビジョニングのクラウドベースのクロスドメインソリューションのための技術が提供される。
【0015】
一実施形態においては、仮想クラウドネットワークのコンピュータデバイスによって、データパイプライン用の複数のフィルタから1つまたは複数のフィルタが選択され得る。複数のフィルタは、マルウェアフィルタ、コンテンツフィルタ、シグネチャフィルタ、コンテンツアナライザのうちの少なくとも1つを含む。フィルタは、機械学習および人工知能アルゴリズムを使用して、静的な設定または動的な更新が可能である。仮想クラウドネットワークのコンピューティングデバイスによって、データパイプライン中の1つまたは複数の選択されたフィルタの順序が決定され得る。仮想クラウドネットワークのコンピューティングデバイスによって、ネットワークインターフェースカード(NIC)から、データパイプライン中のメッセージが受信され得る。ネットワークインターフェースカードは、一方向伝達デバイスとして構成可能である。データパイプライン中のメッセージは、決定された順序の1つまたは複数の選択されたフィルタにメッセージを通すことによりフィルタリングされ得る。仮想クラウドネットワークのコンピューティングデバイスによって、ロギングネットワークを介して、データパイプラインで発生しているイベントのログが提供され得る。このようなイベントログには、送信者および受信者、データ型、ファイルの場合の名称もしくは構造化データの場合の値、タイムスタンプ、ならびに通過、拒否、警告等のフィルタリングの決定等、データの参照を含み得る。本態様の他の実施形態は、上記方法のアクションを実行するように各々構成されている対応するコンピュータシステム、装置、ならびに1つもしくは複数のコンピュータ記憶装置に記録されているコンピュータプログラムを含む。
【0016】
一般的な一態様において、決定された順序は、メッセージの送信元に少なくとも部分的に基づいて決定されたものである。
【0017】
一般的な一態様において、1つまたは複数の選択されたフィルタは、メッセージの送信元に少なくとも部分的に基づいて選択されたものである。
【0018】
一般的な一態様において、複数の1つまたは複数のフィルタは、同じメッセージの送信元に対して選択されたものである。
【0019】
一般的な一態様において、ネットワークインターフェースカードは、ソフトウェアベースの一方向伝達デバイスを含む。
【0020】
一般的な一態様において、方法は、決定された順序の1つまたは複数の選択されたフィルタによりメッセージが処理された後、データパイプラインから、1つまたは複数の選択されたフィルタを変更することをさらに含む。
【0021】
一般的な一態様において、コンピューティングデバイスは、クラウドで動作する仮想マシンである。
【0022】
一般的な一態様は、1つまたは複数の非一時的機械可読媒体において有形で具現化され、1つまたは複数のデータプロセッサに命令を実行させるように構成されている命令を含むコンピュータプログラム製品であって、1つまたは複数のデータプロセッサが実行する命令は、データパイプライン用の複数のフィルタから1つまたは複数のフィルタを選択することを含み、複数のフィルタは、マルウェアフィルタ、コンテンツフィルタ、シグネチャフィルタ、コンテンツアナライザのうちの少なくとも1つを含む、コンピュータプログラム製品を含む。
【0023】
フィルタは、機械学習および人工知能によって設定されるように適応可能である。これらのフィルタのモデルは、フィードバックループの一部として動的に更新可能である。フィードバックループは、システムを通じて送られ、その旨マーキングされたテストデータによりトレーニング可能である。テストデータには、良好と見なされるデータおよび不良と見なされるデータを含み得る。アルゴリズムは、テストデータに基づいて調節可能である。いくつかの状況において、データ自体はエンドユーザに伝達されず、フィルタロジックによりデプロイされた機械学習/AIモデルを調整するためのテストデータに過ぎない。テストデータは、新たなマルウェアまたは脅威の発見に際して、引き続き送ることができる。テストデータは、非トラステッドネットワーク側から送ることも可能であるし、トラステッドネットワークから注入することも可能である。テストデータの送信元が信頼できるかの判定が暗号化手段により実現され得る。トラステッド送信機は、テストデータを含むメッセージに秘密鍵で署名することができる。テストデータを処理して機械学習モデルを更新する機械学習システムは、対応する公開鍵を設定可能であり、また、送信機の信頼性を確認可能となり得る。いくつかの実施形態において、AIモデルのトレーニングは、クロスドメインソリューションのフィルタリングシステムの外側で発生し得る。完全にトレーニングされたモデルは、セキュアなチャネルを介して、クロスドメインソリューションのフィルタリングシステムにアップロードされ得る。モデルは、フィルタリングシステムを通過するコンテンツのフィルタリングにおいて使用され得る。
【0024】
また、データパイプライン中の1つまたは複数の選択されたフィルタの順序を決定することを含む。また、一方向伝達デバイスとして構成されているネットワークインターフェースカード(NIC)から、データパイプライン中のメッセージを受信することを含む。また、決定された順序の選択されたフィルタにデータパイプライン中のメッセージを通すことによりメッセージをフィルタリングし、ロギングネットワークを介して、データパイプラインで発生しているイベントのログを提供することを含む。本態様の他の実施形態は、上記方法のアクションを実行するように各々構成されている対応するコンピュータシステム、装置、ならびに1つもしくは複数のコンピュータ記憶装置に記録されているコンピュータプログラムを含む。
【0025】
一般的な一態様は、ネットワークインターフェースカード(NIC)を備えるデータパイプラインを含む。ネットワークインターフェースカードは、一方向伝達デバイスとして構成されている。また、データパイプラインは、マルウェアフィルタ、コンテンツフィルタ、シグネチャフィルタ、コンテンツアナライザのうちの少なくとも1つを含む複数のフィルタを含む。また、データパイプラインは、複数のフィルタのうちの1つまたは複数のフィルタを含むように構成されている仮想クラウドネットワークを具備する。ネットワークインターフェースコントローラから仮想クラウドネットワークにより受信されたメッセージは、設定時に決定された順序でデータパイプラインの1つまたは複数のフィルタを順次通過する。また、データパイプラインは、データパイプラインで発生しているイベントのログを提供するためのロギングネットワークを具備することができる。本態様の他の実施形態は、上記方法のアクションを実行するように各々構成されている対応するコンピュータシステム、装置、ならびに1つもしくは複数のコンピュータ記憶装置に記録されているコンピュータプログラムを含む。
【0026】
分散部分を有するクロスドメインソリューションのための技術が提供される。
一実施形態においては、非接続ネットワークのコンピューティングデバイスによって、一組のフィルタ種別を提示するように構成されているアプリケーションプログラミングインターフェース(API)が生成される。アプリケーションプログラミングインターフェースを介して、一組のフィルタ種別からの一揃えの1つまたは複数のフィルタ種別が受信される。アプリケーションプログラミングインターフェースを介して、選択されたフィルタ種別の順序が受信される。非接続ネットワークのコンピューティングデバイスにより、アプリケーションプログラミングインターフェースを介して受信されたコマンドに応答して、上記順序の一揃えのフィルタを含むデータパイプラインが生成される。非接続ネットワークのコンピューティングデバイスにより、一方向伝達デバイスで受信されたメッセージを上記順序の選択されたフィルタに通すことによってメッセージが解析される。非接続ネットワークのロギングネットワークによって、データパイプラインで発生しているイベントのログが受信される。イベントのログは、アプリケーションプログラミングインターフェースを介して提示される。データパイプラインは、アプリケーションプログラミングインターフェースを介して終了コマンドを受信した際に終了となる。本態様の他の実施形態は、上記方法のアクションを実行するように各々構成されている対応するコンピュータシステム、装置、ならびに1つもしくは複数のコンピュータ記憶装置に記録されているコンピュータプログラムを含む。
【0027】
一般的な一態様において、1つまたは複数のフィルタ種別は、マルウェアフィルタ、コンテンツフィルタ、シグネチャフィルタ、コンテンツアナライザのうちの1つまたは複数を含む。
【0028】
一般的な一態様において、方法は、一方向伝達デバイスを介して、非接続ネットワークからトラステッドリポジトリにメッセージを送ることをさらに含む。
【0029】
一般的な一態様において、一方向伝達デバイスは、ソフトウェアベースの一方向伝達デバイスである。
【0030】
一般的な一態様において、イベントのログは、オペレーティングシステム(OS)レベル、アプリケーションレベル、およびペイロードレベルで発生するイベントのログを含む。
【0031】
一般的な一態様において、非接続ネットワークは、仮想クラウドネットワークを含む。
一般的な一態様において、一方向伝達デバイスは、スマートネットワークインターフェースカード(スマートNIC)である。
【0032】
一般的な一態様は、1つまたは複数の非一時的機械可読媒体において有形で具現化され、1つまたは複数のデータプロセッサに命令を実行させるように構成されている命令を含むコンピュータプログラム製品であって、1つまたは複数のデータプロセッサが実行する命令は、一組のフィルタ種別を提示するように構成されているアプリケーションプログラミングインターフェース(API)を生成することを含む、コンピュータプログラム製品を含む。また、アプリケーションプログラミングインターフェースを介して、一組のフィルタ種別からの一揃えの1つまたは複数のフィルタ種別を受信することを含む。また、アプリケーションプログラミングインターフェースを介して、選択されたフィルタ種別の順序を受信することを含む。また、アプリケーションプログラミングインターフェースを介して受信されたコマンドに応答して、上記順序の一揃えのフィルタを含むデータパイプラインを生成することを含む。また、一方向伝達デバイスで受信されたメッセージを上記順序の選択されたフィルタに通すことによってメッセージを解析することを含む。また、非接続ネットワークのロギングネットワークを介して、データパイプラインで発生しているイベントのログを受信することを含む。また、アプリケーションプログラミングインターフェースを介してイベントのログを提示し、アプリケーションプログラミングインターフェースを介して終了コマンドを受信した際に、データパイプラインを終了することを含む。
【0033】
一般的な一態様は、システムであって、複数の命令を格納するように構成されているメモリと、メモリにアクセスするとともに、複数の命令を実行するように構成されている1つまたは複数のプロセッサと、を備え、1つまたは複数のプロセッサは、少なくとも、一組のフィルタ種別を提示するように構成されているアプリケーションプログラミングインターフェース(API)を生成する、システムを含む。また、アプリケーションプログラミングインターフェースを介して、一組のフィルタ種別からの一揃えの1つまたは複数のフィルタ種別を受信する。また、選択されたフィルタ種別の順序を受信する。また、アプリケーションプログラミングインターフェースを介して受信されたコマンドに応答して、上記順序の一揃えのフィルタを含むデータパイプラインを生成する。また、一方向伝達デバイスで受信されたメッセージを上記順序の選択されたフィルタに通すことによってメッセージを解析する。また、非接続ネットワークのロギングネットワークを介して、データパイプラインで発生しているイベントのログを受信する。また、アプリケーションプログラミングインターフェースを介してイベントのログを提示し、アプリケーションプログラミングインターフェースを介して終了コマンドを受信した際に、データパイプラインを終了する。
【図面の簡単な説明】
【0034】
【
図1】ある実施形態に係る、ハードウェア実装非接続ネットワークの簡易図である。
【
図2】ある実施形態に係る、ハードウェア実装非接続ネットワークによる通信のためのプロセスを示す図である。
【
図3】ある実施形態に係る、ドメイン間のアクセスの制御に使用可能なクラウドベースのクロスドメインソリューションの簡易表現を示す図である。
【
図4】ある実施形態に係る、クラウドベースのドメインサービスを使用してドメイン間のアクセスを制御するためのプロセスを示す図である。
【
図5】ある実施形態に係る、ユーザデータグラムプロトコル(UDP)の簡易図である。
【
図6】ある実施形態に係る、ユーザデータグラムプロトコル(UDP)による通信のためのプロセスを示す図である。
【
図7】ある実施形態に係る、ソフトウェア実装クロスドメインソリューションを含むデータパイプラインの図である。
【
図8】ある実施形態に係る、ソフトウェア実装クロスドメインソリューションを含むデータパイプラインを使用する通信のための方法を示す図である。
【
図9A】一実施形態に係る、クラウドネットワークを設定するためのユーザインターフェース(UI)を示す図である。
【
図9B】一実施形態に係る、クロスドメインソリューションを設定するためのユーザインターフェース(UI)を示す図である。
【
図10】ある実施形態に係る、ソフトウェア実装クロスドメインソリューションのための方法を示す図である。
【
図11】ある実施形態に係る、サービス型ソフトウェア(SaaS)ベースのクロスドメインソリューションのための方法を示す図である。
【
図12】ある実施形態に係る、分散部分を有するクロスドメインソリューションのための方法を示す図である。
【
図13】ある実施形態に係る、クラウドサービスプロバイダインフラによりホストされる仮想またはオーバーレイクラウドネットワークを示す分散環境の高レベル図である。
【
図14】ある実施形態に係る、CSPI内の物理ネットワーク中の物理的構成要素の簡易アーキテクチャ図である。
【
図15】ある実施形態に係る、ホストマシンが複数のネットワーク仮想化デバイス(NVD)に接続されているCSPI内の例示的な構成を示す図である。
【
図16】ある実施形態に係る、マルチテナンシをサポートするI/O仮想化を提供するためのホストマシンとNVDとの間の接続を示す図である。
【
図17】ある実施形態に係る、CSPIにより提供される物理ネットワークの簡易ブロック図である。
【
図18】少なくとも1つの実施形態に係る、サービス型クラウドインフラシステムを実装するためのあるパターンを示すブロック図である。
【
図19】少なくとも1つの実施形態に係る、サービス型クラウドインフラシステムを実装するための別のパターンを示すブロック図である。
【
図20】少なくとも1つの実施形態に係る、サービス型クラウドインフラシステムを実装するための別のパターンを示すブロック図である。
【
図21】少なくとも1つの実施形態に係る、サービス型クラウドインフラシステムを実装するための別のパターンを示すブロック図である。
【
図22】少なくとも1つの実施形態に係る、例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0035】
詳細な説明
以下の本明細書においては、種々実施形態が記載される。説明を目的として、実施形態の完全な理解を可能にするため、特定の構成および詳細が記載される。ただし、当業者には、これらの具体的詳細なく実施形態が実現され得ることも明らかとなるであろう。さらに、実施形態の説明が不明瞭とならないように、周知の特徴については省略される場合もあるし、簡略化される場合もある。
【0036】
本開示の実施形態は、クラウドベースのクロスドメインソリューションを実現するための技術を提供する。いくつかの例において、クロスドメインソリューションは、2つ以上のセキュリティドメイン間の情報のアクセスまたは伝達を制限することができる。提案のシステムは、非接続ネットワークと関連付けられているネットワークインターフェースカード(NIC)により実現され得る。
【0037】
非接続ネットワークとしては、非セキュアネットワークとの通信から隔離されているセキュアなコンピュータネットワークが可能である。非接続ネットワークは、アウトバウンドトラフィックを禁止しつつ、インバウンドトラフィックを許可するように構成可能である。一実施態様においては、第1の通信プロトコルで送られたメッセージがNICの第1のノードで受信され得る。受信されたメッセージは、第2の通信プロコルを使用して、ネットワークインターフェースカードの第2のノードに転送され得る。第2のネットワーク通信プロトコルとしては、ユーザデータグラムプロトコル(UDP)等、一方向通信用に設定されている任意のプロトコルが可能である。メッセージは第1のノードから第2のノードで受信され得るが、第2のプロトコルは、他方向のトラフィックを許可しない。第2のノードでトラフィックが受信されると、メッセージは、第3の通信プロトコルの使用により、非接続ネットワークの送信先ノードに転送される。
【0038】
クロスドメインソリューションは、物理的な隔離(たとえば、エアギャップ)または一方向通信を強制するハードウェア(たとえば、BITW(bump-in-the-wire)/データダイオード)によって非セキュアなネットワーク(たとえば、インターネット等のパブリックネットワーク)から分離されている非接続ネットワークを含み得る。このようなネットワークは、セキュアである一方、システムが扱いにくい上に維持費が高く、特別なハードウェアが含まれることから、一般的には限られた状況(たとえば、軍用もしくは政府のネットワーク、産業用制御システム、または安全を最重視すべきシステム)において使用される。また、クラウドネットワークの場合は、物理的な隔離もハードウェア実装一方向通信も実現不可能である。
【0039】
ソフトウェア実装クロスドメインソリューションの使用によって、データを非接続ネットワークへと物理的に移動させる不都合(たとえば、エアギャップ)も一方向通信を物理的に強制するハードウェア(たとえば、データダイオード)の必要もなく、クラウドベースの非接続ネットワークを生成することができる。非接続リージョンのNICに入るトラフィックは、一方向プロトコルの使用により、NIC内で遮断および送信され得る。このプロトコルは、一方向トラフィックの強制によって、非接続ネットワーク内の情報が侵害の影響を受けにくくする。いくつかの状況において、クロスドメインソリューションは、非接続ネットワークからネットワークの外側のトラステッド送信元への別個の一方向通信経路を含み得る。
【0040】
第2のノードから送られたメッセージは、非接続ネットワーク内の送信先ノードに到達する前に、一連のフィルタを通過し得る。フィルタは、メッセージの解析によって、侵入から非接続ネットワークを保護することができる。フィルタは、クライアントがセキュリティの必要性に基づいて適当な一組のフィルタを選択できるように、アプリケーションプログラミングインターフェース(API)を介して設定可能となり得る。また、クライアントは、クラウドベースのドメインシステムの期間を選択することができる。いくつかの実施態様においては、ネットワークに侵入する試みに対抗するため、フィルタの順序または使用される個々のフィルタがメッセージ間で変更され得る。
【0041】
従来のクロスドメインソリューションは、カスタムハードウェアを使用して実現される。ハードウェアは、設計費が高く、維持が困難となり得る。従来のクロスドメインソリューションにおけるフィルタの追加またはフィルタの順序の変更には、フィルタを含むハードウェアの除去、変更、および交換が必要となる。クラウドベースのクロスドメインシステムは、クラウドにおいて完全または部分的に実現され得る。たとえば、クロスドメインソリューションは、データダイオード等のハードウェア強制一方向通信およびクラウド実装コンテンツフィルタを使用することができる。あるいは、クロスドメインソリューションは、ソフトウェア強制一方向通信およびハードウェア実装コンテンツフィルタを含んでいてもよい。クラウドベースのクロスドメインソリューションによれば、クロスドメインソリューションを柔軟に構成することができる。
【0042】
クラウドベースのクロスドメインソリューションシステムは、柔軟性をもたらし得ることから、さまざまな使用事例に適応可能である。たとえば、異なる送信元からのトラフィックには異なるメッセージ設定を適用して、信頼できる送信元からのメッセージに適用されるフィルタの数を少なくすることができる。フィルタの順序のメッセージ間または一定の間隔での変更によって、攻撃者がフィルタを回避できるメッセージを設計しようとする試みを複雑にすることができる。また、いくつかの状況においては、クロスドメインソリューションで受信されるメッセージの部分集合に対してのみ、一方向通信を強制可能である。
【0043】
クロスドメインソリューションで受信されるメッセージに関するデータの使用によって、人工知能および/または機械学習(AI/ML)のコンテンツフィルタモデルをトレーニングすることができる。データは、パケットの起点、既知のウィルスもしくはマルウェアの特性、またはトラフィックパターンを含み得る。AI/MLコンテンツフィルタは、その他のコンテンツフィルタにより供給される情報に基づいて、ある送信元からのパケットが疑わしいか信頼できるかを判定することができる。たとえば、特定のインターネットプロトコル(IP)アドレスからのトラフィックがマルウェアを含むものと一貫してフラグ付けされている場合、AI/MLフィルタは、当該IPアドレスまたは同じ起点からのパケットに追加のフィルタリングを行うようにしてもよい。AI/MLフィルタは、クロスドメインソリューションが新たな脅威に適応し得るように、マルウェアまたはウィルスを含むものとコンテンツフィルタによりフラグ付けされたパケットから取得された情報を使用して、既知または未知のウィルスを識別することができる。また、AI/MLフィルタは、トラフィックパターンを使用して脅威を識別することができる。たとえば、送信元からのトラフィックの実質的な増加は、潜在的な脅威を示し得る。
【0044】
AI/MLモデルは、トラステッド送信元から送られた「テストまたは学習データ」とマーキングされたデータによって、継続的にトレーニング可能である。テストデータは、通過をブロックまたは許可すべき参照データを含み得る。このため、新たなマルウェアまたは許可されていないコンテンツが検出された場合、テストデータは、マルウェアのシグネチャもしくは起点等の別の特性ならびに現実のペイロードとしてトラステッドネットワークに伝達される場合にこのようなデータをブロックする学習アルゴリズムのヒントを含むことができる。テストデータは、マルウェアのパターンを示すことも可能であるし、構造化データ中の特定の属性(たとえば、ある範囲を超えるMQTTデータのデータ範囲)を規定することも可能である。
【0045】
いくつかの状況において、学習データの送信元は、信頼できるものである必要がある。テストデータの送信元(送信機)の信頼性は、暗号化法を使用することにより確立され得る。一実施形態において、テストデータは、AI/MLアルゴリズムの公開鍵を使用して暗号化された後、送信機でしか把握していない秘密鍵で署名され得る。フィルタと関連付けられているAI/MLアルゴリズムには、テストデータの送信元の対応する公開鍵を設定可能であり、その秘密鍵を使用してデータ自体を復号化した後、トレーニングデータのシグネチャを確認できるようにする。AI/ML学習は、画像等のペイロードに対するコンテンツフィルタリングへの拡張によって、解像度、メタデータ、またはコンテンツを既知のパターンに制限することができる。さらに、AI/MLアルゴリズムは、画像の変更または再符号化をフィルタに指示することによって、隠れたマルウェアあるいは望ましくないコンテンツを除去することができる。
【0046】
クラウド実装クロスドメインソリューションの利点として、このクロスドメインソリューションは、クライアントへのサービスとして公開可能である。クロスドメインソリューションは、顧客(たとえば、クライアント)によるクラウドドメインサービスのモニタリングまたは監視を可能にし得る。顧客は、フィルタおよび/またはフィルタの順序を選択するようにクロスドメインソリューションを設定可能であり、また、クロスドメインソリューションを通過するトラフィックを指定可能である。たとえば、顧客は、ある送信元をホワイトリストに登録することによって、非接続ネットワークとホワイトリストに登録された送信元との間の二方向通信を可能にし得る。クラウドベースのクロスドメインソリューションによれば、ハードウェアベースのクロスドメインソリューションでは不可能な使用の柔軟性をもたらすことができる。また、クラウドベースのクロスドメインソリューションは、高価で柔軟性に欠ける特別なハードウェアなしに実現され得る。
【0047】
一実例において、顧客は、クラウドベースのクロスドメインソリューションを設定するためのAPIを提示されると、クラウドベースのクロスドメインソリューションの期間および一連のフィルタを選択する。この場合、顧客は、クラウドベースの分散ネットワークに対して1カ月の期間と、マルウェアフィルタに続いてコンテンツフィルタと、を選択する。
【0048】
設定後は、送信元ノードから、非接続ネットワークの内側の送信先ノードを宛先とするメッセージが送られる。メッセージは、伝送制御プロトコル/インターネットプロトコル(TCP/IP)により送られ、NICの第1のノードで受信される。NICを通過するため、メッセージは、TCP/IPから一方向通信に適したプロトコルへと変換され得る。また、通信プロトコルは、一方向通信に対してのみ設定されるように修正され得る。NICは、第1のノードにおいて、メッセージを一方向通信プロトコル(この場合は、ユーザデータグラムプロトコル(UDP))に変換し、当該NICの第2のノードに転送する。
【0049】
メッセージがストリーミングプロトコル(たとえば、リアルタイムメッセージングプロトコル(RTMP))を介して送られる状況においては、メッセージが第2のノードに転送される前に、第1のノードが送信先ノードであるかのように、メッセージ全体が第1のノードで傍受される。この場合、メッセージはストリーミングされず、メッセージパケットが受信されると、UDP等のコネクションレスプロトコルを介して、メッセージパケットの受け入れ、格納、および第2のノードへの転送がなされる。
【0050】
第2のノードにおいて、メッセージは、セキュアなネットワークにおいて採用されているネットワークプロトコルの使用により、セキュアなネットワークの内側の送信先ノードに転送される。この場合、セキュアなネットワークは、TCP/IPを使用するが、ファイル転送プロトコル(FTP)、TCP/IP、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)、ポストオフィスプロトコル(POP3)、インターネットメッセージアクセスプロトコル(IMAP)、簡易メール転送プロトコル(SMTP)等の第3のプロトコルを内部通信に使用することも可能である。
【0051】
メッセージは、第2のノードを出た後、送信先ノードに到達する前に、一連の設定可能なフィルタを通過する。この場合、メッセージは、マルウェアフィルタによる走査によって、ネットワークを侵害し得る如何なるマルウェアも含まず、コンテンツフィルタによって、ネットワークに到達したメッセージが適当な種類のコンテンツであることが確認される。メッセージは、すべてのフィルタを通過した後、その送信先ノードに転送される。
【0052】
図1は、いくつかの実施形態に係る、ハードウェア実装非接続ネットワークの簡易
図100である。非接続ネットワークとしては、物理ネットワーク接続および無線ネットワーク接続を除去することにより他のネットワークから物理的に隔離されているコンピュータネットワークが可能である。データは、サムドライブ等の物理的な記憶媒体により、これらのエアギャップされたネットワーク間で移動する。これらのネットワークはセキュアである一方、サムドライブによるデータの伝達は煩雑である。他の非接続ネットワークでは、当該非接続ネットワークへの一方向トラフィックを許可するデータダイオードを使用するが、非接続ネットワークからの機密情報のブロードキャストは阻止される。
【0053】
簡易
図100は、いくつかの実施形態に係る、ルータA104に接続されているコンピュータデバイスAを示している。コンピュータデバイスA102としては、パソコン、サーバコンピュータ、仮想マシン、タブレットデバイス、携帯電話、またはその他任意のコンピュータデバイスが可能である。コンピュータデバイスA104は、たとえばネットワークケーブルによるルータA104への物理的な接続が可能であり、または無線(たとえば、WiFi)によるルータA104への接続が可能である。いくつかの実施態様において、コンピュータデバイスA102は、ルータAを通じて、インターネットまたはプライベートネットワークに接続可能である。
【0054】
コンピュータA102は、ルータA104とルータB110との間の通信を介して、コンピュータデバイスB106に接続可能である。データダイオード108を含むネットワークケーブル112がルータA104およびルータB110を接続可能である。ハードウェアのデータダイオードは、物理的手段(たとえば、光送信機(レーザもしくは発光ダイオード(LED)であることが多い)ならびに受信機、光電トランジスタ等の感光性半導体で構成された光リンク)(たとえば、データダイオード108)によって一方向性を強制し得る。他の一方向システムの利用によって、一方向伝達デバイスの機能を実現することも可能である。一方向伝達システムにおいては、データダイオード108の第1の端子114で受信されたメッセージがダイオードの第2の端子116に受け渡され得る一方、第2の端子116から第1の端子114にメッセージが送られることはない。
【0055】
いくつかの実施態様において、非接続ネットワークは、データダイオード108の第2の端子116の背後に存在する。メッセージは、データダイオード108を介して、非接続ネットワークに送られ得る。ただし、メッセージがデータダイオードを介して非接続端子から出ることはない。これらの実施態様において、ルータB110およびコンピュータデバイスB106は、外側のネットワークから隔離されているものの、コンピュータデバイスB106は依然として、ルータB110を通じて非接続ネットワークの内側の他のデバイスに接続可能である。たとえば、コンピュータBとしては、機密情報を含むネットワークの一部も可能であって、ネットワークの外側に情報を送れることがセキュリティ上の脅威をもたらす可能性もある。
【0056】
他の実施態様において、非接続ネットワークは、データダイオード108の第1の端子114の背後に存在する。これらの実施態様においては、データダイオード108を介して、非接続ネットワークから外側のネットワークにメッセージが送られ得る一方、非接続ネットワークがメッセージを受信することはない。このようなネットワークは、システムがインバウンド攻撃を受けずに結果を公衆に提供可能でなければならない電子投票システムにおける使用も可能である。
【0057】
図2は、ある実施形態に係る、ハードウェア実装非接続ネットワークによる通信のためのプロセスを示している。このプロセスは、論理フロー図として示され、その各動作は、ハードウェア、コンピュータ命令、またはこれらの組み合わせにて実現され得る。コンピュータ命令の背景において、これらの動作は、1つまたは複数のコンピュータ可読記憶媒体に格納され、1つまたは複数のプロセッサによって実行されると、記載の動作を実行するコンピュータ実行可能命令を表し得る。一般的に、コンピュータ実行可能命令は、特定の機能の実行または特定のデータ型の実装を行うルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。動作の記載の順序は、何ら限定的な解釈が意図されず、このプロセスの実現には、任意数の記載の動作の任意の順序および/または並列での組み合わせが可能である。
【0058】
プロセス200をより詳細に説明すると、ブロック202においては、コンピュータデバイスA102によってメッセージが生成される。メッセージは、コンピュータデバイスA102から、当該メッセージをその送信先に転送可能なルータA104に送られ得る。コンピュータデバイスA102としては、パソコン、モバイルデバイス、タブレット、またはサーバコンピュータが可能である。ルータA104は、メッセージの伝送を可能にするケーブル(たとえば、Ethernetケーブル)により、コンピュータデバイスA102に対して物理的に接続され得る。あるいは、メッセージは、電波(たとえば、WiFi)を介して、コンピュータデバイスA102からルータA104に送られ得る。
【0059】
ブロック204において、コンピュータデバイスA102により送られたメッセージは、データダイオード108を通過した後、第2のコンピュータデバイスB106に送られる。メッセージは、データダイオード108(たとえば、BITW)を含むネットワークケーブル112(たとえば、Ethernetケーブル)を介して、ルータA104からルータB110に転送され得る。データダイオード108は、データの一方向伝達を可能にし得ることから、ルータA104により送られたメッセージを含むデータは、データダイオード108を通過してルータB110に到達し得る。ルータB110は、ルータA104から受信されたメッセージをコンピュータデバイスB106に転送することができる。
【0060】
ブロック206においては、コンピュータデバイスB106により生成された応答がデータダイオード108によって阻止される。ルータA104からルータB110に至るメッセージは、データダイオード108を通過し得るものの、データダイオード108による一方向伝達制限によって、ルータB110からルータA104に至るメッセージは阻止される。このように、コンピュータデバイスB106は、発信メッセージを送れないため、他のコンピュータデバイスから分離され得る。
【0061】
図3は、ある実施形態に係る、ドメイン間のアクセスの制御に使用可能なクラウドベースのクロスドメインソリューション300の簡易表現を示している。クロスドメインソリューションは、ネットワーク間の制限付き二方向通信を可能にする実施態様または非接続ネットワークを含む実施態様を含み得る。
【0062】
図4は、ある実施形態に係る、クラウドベースのドメインサービスを使用してドメイン間のアクセスを制御するためのプロセスを示している。このプロセスは、論理フロー図として示され、その各動作は、ハードウェア、コンピュータ命令、またはこれらの組み合わせにて実現され得る。コンピュータ命令の背景において、これらの動作は、1つまたは複数のコンピュータ可読記憶媒体に格納され、1つまたは複数のプロセッサによって実行されると、記載の動作を実行するコンピュータ実行可能命令を表し得る。一般的に、コンピュータ実行可能命令は、特定の機能の実行または特定のデータ型の実装を行うルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。動作の記載の順序は、何ら限定的な解釈が意図されず、このプロセスの実現には、任意数の記載の動作の任意の順序および/または並列での組み合わせが可能である。
【0063】
プロセス400をより詳細に説明すると、ブロック402においては、ネットワーク306を介して、ドメインA302から制限ゲートウェイ304にメッセージが送られ得る。メッセージは、ドメインA302内の顧客プレミス308において生成され得る。制限ゲートウェイ304としては、スマートネットワークインターフェースカード(スマートNIC)が可能であり、ネットワーク306としては、プライベートネットワークまたはインターネットが可能である。
【0064】
ブロック404においては、制限ゲートウェイによるメッセージの解析によって、ドメインA302からのメッセージにドメインB310へのアクセスを許可すべきかを判定することができる。制限ゲートウェイ304は、予め定められたアクセスポリシーを使用して、メッセージにアクセスを許可すべきかを判定することができる。
【0065】
また、制限ゲートウェイ304は、ドメインB310へのアクセスを許可する前に、フィルタを使用して、メッセージを解析することができる。フィルタには、メッセージ中のマルウェアおよびウィルスをチェックするマルウェアフィルタを含み得る。また、制限ゲートウェイ304は、メッセージの出所を証明する暗号的に確認可能なシグネチャを当該メッセージが有するかを判定するシグネチャフィルタを具備することができる。また、フィルタには、メッセージの有効性を判定するコンテンツアナライザを含み得る。コンテンツアナライザは、たとえば帯域外または帯域内で受信されたチェックサムを見かけ上の関連ペイロードでチェックすることができる。メッセージ中のデータは、データの有効性を証明するチェックサムを含み得る。チェックサムは、データ自体に付随し得る。また、チェックサムは、別個のメッセージにおいて、データの一部として伝達され得る。また、フィルタには、メッセージにドメインB310へのアクセスを許可すべきかを判定するようにトレーニングされた人工知能または機械学習フィルタを含み得る。
【0066】
ブロック406において、制限ゲートウェイ304は、メッセージにアクセスを許可すべきと判定した後、メッセージをドメインB310に転送することができる。第2のドメインとしては、仮想クラウドネットワーク312が可能である。いくつかの実施態様において、メッセージの送信先ノードとしては、仮想クラウドネットワーク312のワークロード314が可能である。ワークロード314は、仮想マシン、データベース、コンテナ、およびアプリケーションを含み得る。
【0067】
図5は、ある実施形態に係る、ユーザデータグラムプロトコル(UDP)の簡易
図500である。通信プロトコルは、一方向または二方向通信を許可し得るが、非接続ネットワークは、ハードウェアを使用して、一方向通信を強制するようにしてもよい。
図5の例においては、UDP等のプロトコルによって一方向通信が強制され得る。
【0068】
図500をより詳細に説明すると、送信機506および受信機502としては、ネットワーク通信が可能なコンピューティングデバイスが可能である。送信機506および受信機502としては、パソコン、サーバコンピュータ、モバイルデバイス、タブレットデバイス等が可能である。送信機506および受信機502は、クロスドメインソリューションを含み得る。送信機506としては、クロスドメインソリューションの第1のドメインが可能であり、受信機502としては、クロスドメインソリューションの第2のドメインが可能である。受信機502としては、非接続リージョン508の一部が可能である。非接続リージョン508としては、他のネットワークから隔離されたネットワークが可能である。非接続リージョン508のデバイスは、他のネットワークからトラフィックを受信し得る一方、非接続リージョン508から他のネットワークにトラフィックを送ることはできないように構成可能である。
【0069】
送信機506および受信機502は、物理的接続を含む任意の通信リンクによって接続可能である(たとえば、ネットワークケーブルまたは光ファイバケーブルによって接続可能である)。送信機506および受信機502は、無線接続可能である(たとえば、WiFiにより接続可能である)。メッセージ504a~504cとしては、送信機506と受信機502との間で送られるトラフィックが可能である。UDPを介して送られるトラフィック(メッセージ508a~508cを含む)は、ハンドシェイキングダイアログなしで送られ得る。送信機506は、受信機502からのリクエストなしにメッセージ504a~504cを受信機502に送ることができる。
【0070】
図6は、ある実施形態に係る、ユーザデータグラムプロトコル(UDP)による通信のためのプロセスを示している。このプロセスは、論理フロー図として示され、その各動作は、ハードウェア、コンピュータ命令、またはこれらの組み合わせにて実現され得る。コンピュータ命令の背景において、これらの動作は、1つまたは複数のコンピュータ可読記憶媒体に格納され、1つまたは複数のプロセッサによって実行されると、記載の動作を実行するコンピュータ実行可能命令を表し得る。一般的に、コンピュータ実行可能命令は、特定の機能の実行または特定のデータ型の実装を行うルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。動作の記載の順序は、何ら限定的な解釈が意図されず、このプロセスの実現には、任意数の記載の動作の任意の順序および/または並列での組み合わせが可能である。
【0071】
プロセス600をより詳細に説明すると、ブロック602においては、送信機506がUDPストリームを開始可能である。ストリームは、送信機506から受信機502に送られる一連のパケットから成り得る。送信機506は、受信機502からリクエストを受信することなく送信を開始可能である。受信機502は、送信機506により送られたパケットを受信するように構成可能である。受信機502は、メッセージを送信機506に送れないように構成可能である。UDPストリームとしては、一方向通信用に設定され得る任意の通信プロトコルで送られるメッセージのストリームが可能である。
【0072】
ブロック604において、送信機506により送られたメッセージ508a~508cは、受信機502により受信される。受信機502は、送信機506に応答することなくメッセージ508a~508cを受信可能である。メッセージ508a~508cとしては、エラーチェックおよびセキュリティ用の送信元ポート番号、送信先ポート番号、およびチェックサムを含むパケットが可能である。送信機506は、受信機502からの通信なく、応答1 508aから始まる連続ストリームでメッセージ508a~508cを送ることができる。送信機506は、応答を送ると、メッセージが受信機502に到達した旨の確認を受信することなく、送信を停止可能である。送信機506は、如何なるメッセージも受信し得ないように構成可能である。
【0073】
図7は、ある実施形態に係る、ソフトウェア実装クロスドメインソリューションを含むデータパイプラインの
図700である。
【0074】
図700をより詳細に説明すると、スマートネットワークインターフェースカード(スマートNIC)706は、データパイプラインの一部として、二組のノード(第1のノード704a~704cおよび第2のノード708a~708c)を含む。第1のノード704aおよび704b間の通信は、一方向トラフィック用に設定された通信プロトコル(たとえば、UDP)を使用することにより生じ得る。第1のノード704a~704cで受信されたメッセージ702a~702cは、第2のノード708a~708cに受け渡され得る一方、第1のノード704a~704cは、第2のノード708a~708cから送られたメッセージを無視するように構成可能である。
【0075】
いくつかの実施態様において、スマートNIC706は、当該スマートNIC706からトラステッドリポジトリ722への通信のためのセキュアな経路を含み得る。ホストマシン718からセキュアな第1のノード726で受信されたメッセージは、一方向通信プロトコルの使用によって、セキュアな第2のノード728に受け渡され得る。メッセージは、セキュアな第2のノード728で受信されると、一方向または二方向通信プロトコルの使用によって、トラステッドリポジトリ722に転送され得る。
【0076】
ホストマシン718は、マルウェアフィルタ710、コンテンツアナライザ714、コンテンツフィルタ730、コンテンツ再生フィルタ732、検証器734、人工知能/機械学習フィルタ716、およびシグネチャフィルタ712を含む1つまたは複数のフィルタを具備することができる。フィルタは、第2のノード708a~708cから受信されたメッセージが順次通過するチェーン状に配置され得る。ホストマシン718としては、仮想コンピュータデバイスも可能であるし、ベアメタルコンピュータデバイスも可能である。いくつかの状況においては、メッセージが第1のノードに到達する前に1つまたは複数のフィルタを通過し得る。第1のノードと第2のノードとの間には、1つまたは複数のフィルタが配置され得る。第1のノードから第2のノードに移動するメッセージは、これら1つまたは複数のフィルタを通過し得る。
【0077】
マルウェアフィルタ710は、データパイプラインを通過するメッセージ中のマルウェアまたはウィルスをチェックすることができる。マルウェアまたはウィルスを含むメッセージは、非接続ネットワークに達する前に拒否され得る。コンテンツフィルタ730は、禁止ワード、禁止バイトシーケンス、ファイルの断片、またはコンテンツフィルタのロジックによって禁止される他のコンテンツをチェックすることができる。コンテンツフィルタ730は、メッセージの転送前にメッセージから禁止コンテンツを除去することも可能であるし、メッセージを拒否することも可能である。シグネチャフィルタ712は、メッセージをチェックして、メッセージの出所を証明する暗号的に確認可能なシグネチャを当該メッセージが有するかを判定することができる。コンテンツアナライザ714は、メッセージを解析して、メッセージの有効性を判定することができる。たとえば、コンテンツアナライザ714は、帯域外または帯域内で受信されたチェックサムを関連メッセージでチェックすることができる。人工知能/機械学習フィルタ716としては、トレーニング済みの機械学習アルゴリズムを使用して、メッセージにデータパイプラインの通過を許可すべきかを判定するフィルタが可能である。
【0078】
ハードウェア実装クロスドメインソリューションにおいて、ホストマシン718に含まれるようなフィルタとしては、再配置が困難な固定順序のものが可能である。ソフトウェア実装クロスドメインソリューションにおいて、個々のフィルタの順序は、メッセージの種類およびメッセージ送信元に応じて変更され得る。信頼できる送信元からのメッセージは、通過するフィルタの数を少なくすることができる一方、信頼できない送信元からのメッセージは、通過するフィルタの数を多くすることができる。いくつかの状況において、フィルタの順序すなわちフィルタチェーンにおけるフィルタのリストは、メッセージ間で変更され得る。
【0079】
また、ホストマシン718は、スマートNIC706と当該ホストマシン718との間のデータパイプラインで発生しているイベントに関する情報を提供するロギングネットワーク720を具備することができる。スマートNIC706においては、第2のノード708a~708cまたはセキュアな第1のノード726からロギングネットワークに情報が提供され得る。ホストマシン718においては、フィルタで発生しているイベントに関する情報がロギングネットワークに提供され得る。
【0080】
ロギングネットワークとしては、コンポーネントから、オペレーティングシステム(OS)レベル、アプリケーションレベル、およびペイロードレベルにてデータパイプラインで発生しているイベントのログを受け入れるセキュリティ情報・イベント管理(SIEM)システムにログを送るためのネットワークバスが可能である。SIEMシステムは、ログの使用によって、解析の実行、データストリーム中の潜在的なマルウェアに関する警告の生成、および問題のデータの隔離等の改善措置の実行をなすことができる。
【0081】
また、ホストマシン718は、スマートNIC706を通じて(セキュアな第1のノード726およびセキュアな第2のノード728を介して)メッセージをトラステッドリポジトリ722に提供する独立したリバースパイプラインを具備することができる。リバースパイプライン用のメッセージは、フィルタから、ホストマシン718のセキュアハッシュアルゴリズム(SHA)検証システム724に提供される。セキュアハッシュアルゴリズム検証システム724は、スマートNIC706を通じて、メッセージをトラステッドリポジトリ722に提供することができる。
【0082】
独立したリバースパイプラインは、データパイプラインと別個であって、トラステッドリポジトリ722を使用するトラステッドシステムがフィルタによって除外されるメッセージについて学習するのを補助する際に使用可能である。また、リバースパイプラインにより提供される情報は、フィルタによって不適切に除外された有効メッセージについての学習に使用可能である。トラステッドシステムは、不適切に除外されたメッセージに関する情報を使用して、不適切な除外の原因となっている問題を修正することによりスループットを向上させることができる。
【0083】
図8は、ある実施形態に係る、ソフトウェア実装クロスドメインソリューションを含むデータパイプラインを使用する通信のためのプロセスを示している。このプロセスは、論理フロー図として示され、その各動作は、ハードウェア、コンピュータ命令、またはこれらの組み合わせにて実現され得る。コンピュータ命令の背景において、これらの動作は、1つまたは複数のコンピュータ可読記憶媒体に格納され、1つまたは複数のプロセッサによって実行されると、記載の動作を実行するコンピュータ実行可能命令を表し得る。一般的に、コンピュータ実行可能命令は、特定の機能の実行または特定のデータ型の実装を行うルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。動作の記載の順序は、何ら限定的な解釈が意図されず、このプロセスの実現には、任意数の記載の動作の任意の順序および/または並列での組み合わせが可能である。
【0084】
方法800をより詳細に説明すると、ブロック802においては、第1のドメインから、スマートネットワークインターフェースカード706(スマートNIC)の第1のノード704a~704cにおいて、メッセージ702a~702cがデータパイプラインの一部として受信され得る。スマートNICデバイスとしては、2つの論理的および/または物理的インターフェースと、インターフェースの一方に入るデータを処理して他方のインターフェースに転送するハードウェアで構成された処理システムと、を含むデバイスが可能である。データを処理することは、データの解析、再フォーマット、集約等がなされることを意味し得る。ハードウェアは、データにより呼び出されるソフトウェアベースのアルゴリズムを実行するマイクロプロセッサを含み得る。メッセージ702a~702cは、第1の通信プロトコルの使用により送られ、いくつかの実施態様において、第1のノード704a~704cは、2つ以上の通信プロトコルで送られたメッセージを受信するように構成可能である。いくつかの実施態様において、第1のノード704a~704cは、すべての入力トラフィックを受信するように構成可能である。
【0085】
ブロック804においては、一方向通信プロトコル(たとえば、UDP)によって、第1のノード704a~704cから第2のノード708a~708cにメッセージ702a~702cが送られ得る。スマートNIC706がクロスドメインソリューションとなり得るのは、メッセージ702a~702cが第1のドメインから第1のノード704a~704cで受信され、第2のノード708a~708cから第2のドメインに転送され得るためである。
【0086】
いくつかの実施態様において、一方向通信プロトコルによれば、データパイプライン中のメッセージが第1のノード704a~704cから第2のノード708a~708cに送られ得る一方、第2のノード708a~708cから第1のノード704a~704cへとメッセージが送られることはない。いくつかの実施態様においては、第2のノード708a~708cから第1のノード704a~704cに送られた如何なるメッセージも受け入れられない。一方向通信プロトコルの使用により送られたパケットとして第2のノード708a~708cで受信されたメッセージ702a~702cは、第2のドメインの送信先ノードに送られ得る転送可能なペイロードとして解体および再構成され得る。
【0087】
第1のノード704a~704cで受信された非ストリーミングメッセージは、メッセージの受信に際して、受け入れ、格納、および第2のノード708a~708cへの転送がなされ得る。ストリーミングメッセージは、第1のノード704a~704cが送信先ノードであるかのように、第1のノード704a~704cで傍受され得る。ストリーミングメッセージは、一方向通信プロトコルにより規定されたフォーマットに再構築され、第2のノード708a~708cに転送され得る。ストリーミングメッセージは、再構成され、第2のノード708a~708cが起点であるかのように、第2のノード708a~708cから送信先ノードに転送され得る。
【0088】
ブロック806において、メッセージは、データパイプラインの一部として、第2のドメインに達する前に、一連のフィルタを通過し得る。フィルタには、メッセージ中のマルウェアおよびウィルスをチェックするマルウェアフィルタ710と、メッセージの出所を証明する暗号的に確認可能なシグネチャを当該メッセージが有するかを判定するシグネチャフィルタ712と、メッセージの有効性を判定するコンテンツアナライザ714と、メッセージに第2のドメインへのアクセスを許可すべきかを判定するようにトレーニングされた人工知能/機械学習フィルタ716と、を含み得る。コンテンツフィルタ710~716は、ホストマシン718においてホストされ、ホストマシンとしては、仮想マシンまたはベアメタルサーバが可能である。フィルタとしては、メッセージペイロードの受け入れ、メッセージペイロードの拒否、またはメッセージペイロードの異なるフォーマットへの変換を行い得るモジュールが可能である。
【0089】
いくつかの実施態様においては、クライアントがデータパイプラインを生成できるように、アプリケーションプログラミングインターフェース(API)がクライアントに提供され得る。データパイプラインは、メッセージの解析に使用可能な一連のコンテンツフィルタを含み得る。クライアントは、APIを介して、一連のコンテンツフィルタを選択可能である。データパイプラインの生成の一部として、クライアントは、APIを介して、クロスドメインソリューション(CDS)の属性を規定することができる。データパイプラインは、規定された属性に少なくとも部分的に基づいて構成可能である。付加的な一実施態様において、クライアントは、APIの使用により、一連のコンテンツフィルタの順序を選択することができる。コンテンツフィルタの順序は、可変であって、メッセージ間で変化し得る。また、クライアントは、複数の一連のコンテンツフィルタを選択可能であり、所与のメッセージに対する一連のフィルタは、当該メッセージの信頼性のインジケータに基づいて変化し得る。たとえば、既知のインターネットプロトコル(IP)アドレスからのメッセージは、より少ないコンテンツフィルタによって解析され得る。
【0090】
いくつかの実施態様においては、コンテンツフィルタ710~716により生成されたイベントがデータパイプラインの一部としてロギングネットワーク720に提供され得る。ロギングネットワーク720で受信されたイベントは、データパイプラインで発生しているイベントのログとして、ホストマシン718により提供され得る。イベントのログは、セキュリティ情報・イベント管理(SIEM)システムで受け入れられ、ログまたはログに関する情報は、APIを介してクライアントに提供され得る。
【0091】
ブロック808において、データパイプライン中のメッセージは、第2のドメインの送信先ノードに転送され得る。いくつかの実施態様においては、メッセージの受信後、クライアントがAPIを使用してデータパイプラインを終了することができる。いくつかの実施態様において、クライアントは、個々のメッセージについて、データパイプラインを生成し、終了することができる。
【0092】
いくつかの実施態様においては、セキュアなパイプラインによって、メッセージに関する情報がトラステッドリポジトリ722に提供され得る。一実施形態においては、メッセージに関する情報(この場合、セキュアハッシュアルゴリズム検証システム724からの情報)がセキュアなパイプラインにおいてセキュアな第1のノード726に提供され得る。セキュアな第1のノード726は、第1のノード704a~704cのように構成可能であり、一方向通信プロトコルの使用によって、セキュアな第1のノード726からセキュアな第2のノード728にメッセージが送られ得る。メッセージは、セキュアな第2のノード728で受信され得るが、このセキュアな第2のノード728は、第2のノード708a~708cのように構成可能である。セキュアな第2のノード728で受信されたメッセージは、トラステッドリポジトリ722に転送され得る。
【0093】
図9Aは、一実施形態に係る、クラウドネットワークを設定するためのユーザインターフェース(UI)900を示している。ユーザは、コンピューティングデバイスでユーザインターフェースにアクセスすることにより、クラウドネットワークを設定可能である。クラウドネットワークは、クロスドメインソリューションゲートウェイを含むように構成可能である。ユーザは、クロスドメインソリューションゲートウェイボタン902を選択することにより、クロスドメインソリューションゲートウェイメニューを選択可能である。
【0094】
図9Bは、一実施形態に係る、クロスドメインソリューションを設定するためのユーザインターフェース(UI)901を示している。クロスドメインソリューションとしては、仮想クロスドメインソリューションが可能である。仮想クロスドメインソリューションとしては、アプリケーションプログラミングインターフェース(API)を介して生成された電化製品が可能である。ユーザは、「クロスドメインソリューションゲートウェイを生成」ボタン904を選択することにより、クロスドメインソリューションゲートウェイを生成可能である。ユーザは、ユーザインターフェース901を使用することによりゲートウェイを設定可能である。たとえば、ユーザは、クロスドメインソリューションの方向を選択可能である。また、ユーザは、クロスドメインソリューションにより接続されるネットワークまたはサブネットワークを選択可能である。また、ユーザは、UIを通じて、クロスドメインシステムで受信されたメッセージを走査し得る1つまたは複数のフィルタを選択可能である。ユーザは、UIを通じて、フィルタシーケンスを提供可能である。
【0095】
図10は、ある実施形態に係る、ソフトウェア実装クロスドメインソリューションのための方法を示している。いくつかの実施態様においては、ネットワークインターフェースカードによって、
図10の1つまたは複数のプロセスブロックが実行されるようになっていてもよい。いくつかの実施態様において、ネットワークインターフェースカードとしては、スマートネットワークインターフェースカード(たとえば、スマートNIC)が可能である。いくつかの実施態様においては、ネットワークインターフェースカードと別個またはネットワークインターフェースカードを含む別のデバイスまたはデバイス群によって、
図10の1つまたは複数のプロセスブロックが実行されるようになっていてもよい。
【0096】
プロセス1000をより詳細に説明すると、ブロック1010においては、非接続ネットワークと関連付けられているネットワークインターフェースカード(NIC)の第1のノードにおいて、非接続ネットワークを宛先とし、第1の通信プロトコルを使用して送られたメッセージが受信される。第1のノードは、
図4の第1のノード404a~404cに類似し、メッセージは、プライベートネットワークまたはインターネット等のパブリックネットワークから受信され得る。第1のノードは、第2のノードにより送られたメッセージを受信し得ないように構成可能である。
【0097】
ブロック1020において、メッセージは、第2の通信プロコルの使用によって、ネットワークインターフェースカードの第1のノードから第2のノードに送られる。第2の通信プロトコルは、単方向(たとえば、一方向)通信用に設定可能である。いくつかの実施態様において、第2の通信プロトコルとしては、ユーザデータグラムプロトコル(UDP)が可能である。第2の通信プロトコルとしては、一方向の排他的な通信を可能にするように構成され得る任意の通信プロトコルが可能である。第2のノードは、
図7に関して上述した第2のノード708a~708cに類似し得る。
【0098】
第1のノードおよび第2のノードは、Ethernetケーブルまたは光ファイバケーブル等のネットワークケーブルによって接続され得る。いくつかの実施態様において、第1のノードおよび第2のノードを接続するネットワークケーブルは、ダイオードを含まない。いくつかの実施態様において、第2の通信プロトコルとしては、第1の通信プロトコルと同じものが可能である。いくつかの実施態様において、第1のノードおよび第2のノードは、無線で接続されている。第1のノードおよび第2のノードは、別個のデバイスに配置され得る。
【0099】
ブロック1030において、メッセージは、第2のノードで受信される。いくつかの実施態様において、第2のノードは、当該第2のノードから第1のノードにメッセージが送られることのないように構成されている。いくつかの実施態様において、第1のノードおよび第2のノードは、異なるデバイスに配置され得る。第1のノードおよび第2のノードは、無線接続を介して通信可能である。
【0100】
ブロック1040において、メッセージは、第3の通信プロトコルの使用によって、第2のノードから非接続ネットワークの送信先ノードに送られる。いくつかの実施態様において、非接続ネットワークは、パブリックネットワーク(たとえば、インターネット)から隔離され得る。いくつかの実施態様において、非接続ネットワークは、メッセージを受信するようにだけ構成され、当該非接続ネットワークの外側の送信先ノードにメッセージを送ることはできない。いくつかの実施態様において、非接続ネットワークは、仮想クラウドネットワークを含む。いくつかの実施態様において、メッセージは、第2のノードを出た後、送信先ノードに到達する前にフィルタチェーンを通過する。フィルタチェーンは、マルウェアフィルタ、コンテンツフィルタ、シグネチャフィルタ、コンテンツアナライザのうちの1つまたは複数を含み得る。前述のフィルタは、人工知能および/または機械学習(AI/ML)の使用により、新たなマルウェアまたは攻撃に適応可能である。いくつかの実施形態においては、トラステッド送信元からトレーニングまたはテストデータがインラインで送られる。他の実施形態においては、他の場所で生成された予備トレーニング済みのAI/MLモデルのトラステッド送信元からのアップロードによって、フィルタリングを実行する。いくつかの実施態様において、第3の通信プロトコルとしては、第1または第2の通信プロトコルと同じプロトコルが可能である。
【0101】
プロセス1000は、任意単一の実施態様あるいは後述の実施態様ならびに/または本明細書の他の場所に記載の1つもしくは複数の他のプロセスとの関連での実施態様の任意の組み合わせ等、付加的な実施態様を含んでいてもよい。
【0102】
図10は、プロセス1000の例示的なブロックを示しているが、いくつかの実施態様において、プロセス1000は、
図10に示されるものよりも多いブロック、少ないブロック、異なるブロック、または異なる構成のブロックを含んでいてもよい。この追加または代替として、プロセス1000のブロックのうちの2つ以上が並列に実行されるようになっていてもよい。
【0103】
図11は、ある実施形態に係る、サービス型ソフトウェア(SaaS)ベースのクロスドメインソリューションのための方法を示している。いくつかの実施態様においては、仮想クラウドネットワークのコンピュータデバイスによって、
図11の1つまたは複数のプロセスブロックが実行されるようになっていてもよい。いくつかの実施態様においては、ネットワークインターフェースカードと別個またはネットワークインターフェースカードを含む別のデバイスまたはデバイス群によって、
図11の1つまたは複数のプロセスブロックが実行されるようになっていてもよい。
【0104】
ブロック1110の選択においては、仮想クラウドネットワークのコンピュータデバイスによって、データパイプライン用の複数のフィルタから1つまたは複数のフィルタが選択される。複数のフィルタは、マルウェアフィルタ、コンテンツフィルタ、シグネチャフィルタ、コンテンツアナライザ、AI/MLのうちの少なくとも1つを含み、フィルタを更新可能であることがAPIを介して顧客に公開され得る。顧客は、システムを通じて、マーキングされたトレーニング(テスト)データを送ることができる。別の実施形態においては、クラウドサービスプロバイダ、非接続ネットワークの所有者、セキュリティアナリスト、または他のトラステッド送信元等の他の送信元が学習およびトレーニングデータをAI/MLシステムに送ることができる。顧客は、送信元を選択するとともに、頻度、適用可能なフィルタ、および/または監視期間等の基準を規定するようにしてもよい。顧客(たとえば、クライアントまたはユーザ)は、データパイプライン用の複数のフィルタを選択可能である。いくつかの他の実施形態において、顧客は、AI/MLモデルを予備トレーニングし、トレーニングデータの代わりに、トレーニング済みのモデルを送るようにしてもよい。いくつかの実施態様において、仮想クラウドネットワークは、仮想マシンである。いくつかの実施態様において、1つまたは複数の選択されたフィルタは、メッセージの送信元に少なくとも部分的に基づいて選択されたものである。いくつかの実施態様において、複数の1つまたは複数のフィルタは、同じメッセージの送信元に対して選択されたものである。
【0105】
ブロック1120においては、データパイプライン中の1つまたは複数の選択されたフィルタの順序が決定される。顧客(たとえば、クライアントまたはユーザ)は、順序を決定可能である。いくつかの実施態様において、決定された順序は、メッセージの送信元に少なくとも部分的に基づいて決定されたものである。いくつかの実施態様において、1つまたは複数の選択されたフィルタの順序は、メッセージの送信元に少なくとも部分的に基づいて決定される。フィルタには、人工知能および/または機械学習(AI/ML)フィルタを含み得る。AI/MLフィルタは、予備トレーニング済みの人工知能または機械学習モデルを使用可能である。また、AI/MLフィルタは、非接続ネットワークから取得されたトレーニングデータでトレーニングされた人工知能または機械学習モデルを使用可能である。トレーニングデータは、パケットの起点、既知のウィルスもしくはマルウェアの特性、または非接続ネットワークで受信されたトラフィックのトラフィックパターンを含み得る。AI/MLフィルタは、コンテンツフィルタによりフラグ付けされたパケットを含むトレーニングデータでトレーニング可能である。フラグ付けされたパケットとしては、マルウェアまたはウィルスを含むものと識別されたパケットが可能である。AI/MLフィルタは、フラグ付けされたパケットの使用により、マルウェアまたはウィルスを含むパケットを識別するようにトレーニング可能である。
【0106】
ブロック1130においては、一方向伝達デバイスとして構成されているネットワークインターフェースカード(NIC)から、データパイプライン中のメッセージが受信される。いくつかの実施態様において、ネットワークインターフェースカードは、ソフトウェアベースの一方向伝達デバイスを含む。ネットワークインターフェースカードとしては、単一のデバイスも可能であるし、1つまたは複数のデバイスも可能である。
【0107】
ブロック1140において、データパイプライン中のメッセージは、決定された順序の1つまたは複数の選択されたフィルタに当該メッセージを通すことによりフィルタリングされる。順序は、メッセージの送信元に基づいて変化し得る。いくつかの状況において、フィルタの数は、メッセージによって決まり得る。また、フィルタの順序は、メッセージ間で異なり得る。また、フィルタの数は、メッセージごとに異なり得る。
【0108】
ブロック1150においては、ロギングネットワークを介して、データパイプラインで発生しているイベントのログが提供される。ログは、一組のトラステッドリポジトリに提供され得るが、いくつかの実施態様においては、アプリケーションプログラミングインターフェース(API)を介して、ログからの情報がクライアントに提供され得る。
【0109】
プロセス1100は、任意単一の実施態様あるいは後述の実施態様ならびに/または本明細書の他の場所に記載の1つもしくは複数の他のプロセスとの関連での実施態様の任意の組み合わせ等、付加的な実施態様を含んでいてもよい。
【0110】
いくつかの実施態様において、プロセス1100は、決定された順序の1つまたは複数の選択されたフィルタによりメッセージが処理された後、データパイプラインから、1つまたは複数の選択されたフィルタを除去することを含む。
【0111】
図11は、プロセス1100の例示的なブロックを示しているが、いくつかの実施態様において、プロセス1100は、
図11に示されるものよりも多いブロック、少ないブロック、異なるブロック、または異なる構成のブロックを含んでいてもよい。この追加または代替として、プロセス1100のブロックのうちの2つ以上が並列に実行されるようになっていてもよい。
【0112】
図12は、ある実施形態に係る、分散部分を有するクロスドメインソリューションのためのプロセス1200を示している。いくつかの実施態様においては、非接続ネットワークのコンピューティングデバイスによって、
図12の1つまたは複数のプロセスブロックが実行されるようになっていてもよい。いくつかの実施態様においては、ネットワークインターフェースカードと別個またはネットワークインターフェースカードを含む別のデバイスまたはデバイス群によって、
図12の1つまたは複数のプロセスブロックが実行されるようになっていてもよい。
【0113】
ブロック1210においては、非接続ネットワークのコンピューティングデバイスによって、一組のフィルタ種別を提示するように構成されているアプリケーションプログラミングインターフェース(API)が生成される。いくつかの実施態様において、APIとしては、
図9に関して上述したユーザインターフェース等のユーザインターフェース(たとえば、コンソール)が可能である。フィルタ種別は、マルウェアフィルタ、コンテンツフィルタ、シグネチャフィルタ、コンテンツアナライザ、機械学習フィルタ、または人工知能フィルタのうちの1つまたは複数を含み得る。APIとしては、サービス型クロスドメインソリューションの提供の一部が可能である。フィルタには、1つまたは複数の人工知能および/または機械学習(AI/ML)フィルタを含み得る。AI/MLフィルタは、予備トレーニング済みの人工知能および/または機械学習モデルを使用可能である。また、AI/MLフィルタは、非接続ネットワークから取得されたトレーニングデータでトレーニングされた人工知能および/または機械学習モデルを使用可能である。トレーニングデータは、パケットの起点、既知のウィルスもしくはマルウェアの特性、または非接続ネットワークで受信されたトラフィックのトラフィックパターンを含み得る。AI/MLフィルタは、コンテンツフィルタによりフラグ付けされたパケットを含むトレーニングデータでトレーニング可能である。フラグ付けされたパケットとしては、マルウェアまたはウィルスを含むものと識別されたパケットが可能である。AI/MLフィルタは、フラグ付けされたパケットの使用により、マルウェアまたはウィルスを含むパケットを識別するようにトレーニング可能である。
【0114】
ブロック1220においては、アプリケーションプログラミングインターフェースを介して、一組のフィルタ種別からの一揃えの1つまたは複数のフィルタ種別が受信される。一揃えの1つまたは複数のフィルタ種別は、顧客(たとえば、クライアントまたはユーザ)により提供され得る。1つまたは複数のフィルタ種別は、クロスドメインソリューションの設定の一部として選択され得る。クロスドメインソリューションは、アプリケーションプログラミングインターフェース(API)を介して設定可能である。APIは、ウェブサービス(たとえば、サービス型クロスドメインソリューション(CDSaaS))を通じてユーザに提供され得る。APIは、1つまたは複数のクロスドメインソリューションインスタンスの構成、生成、または修正に使用され得る。いくつかの実施態様において、一揃えのフィルタ種別は、メッセージ間で変化し得る。いくつかの実施態様において、一揃えのフィルタ種別は、メッセージの送信元に部分的に基づき得る。
【0115】
ブロック1230においては、アプリケーションプログラミングインターフェースを介して、選択されたフィルタ種別の順序が受信される。1つまたは複数のフィルタ種別の順序は、顧客(たとえば、クライアントまたはユーザ)により提供され得る。1つまたは複数のフィルタ種別の順序は、クロスドメインソリューションの設定の一部として選択され得る。クロスドメインソリューションは、サービス型クロスドメインソリューションとして提供され得る。いくつかの実施態様において、フィルタ種別の順序は、メッセージ間で変化し得る。いくつかの実施態様において、フィルタ種別の順序は、メッセージの送信元に部分的に基づき得る。
【0116】
ブロック1240においては、非接続ネットワークのコンピューティングデバイスにより、アプリケーションプログラミングインターフェースを介して受信されたコマンドに応答して、上記順序の一揃えのフィルタを含むデータパイプラインが生成される。いくつかの実施態様において、非接続ネットワークとしては、仮想クラウドネットワークが可能である。顧客(たとえば、クライアントまたはユーザ)は、サービス型クロスドメインソリューションの提供の一部として、仮想クラウドネットワークを設定可能である。
【0117】
ブロック1250においては、非接続ネットワークのコンピューティングデバイスにより、一方向伝達デバイスで受信されたメッセージを上記順序の選択されたフィルタに通すことによってメッセージが解析される。一方向伝達デバイスとしては、ソフトウェアベースの一方向伝達デバイスが可能である。いくつかの実施態様において、一方向伝達デバイスとしては、スマートネットワークインターフェースカード(スマートNIC)が可能である。
【0118】
ブロック1260においては、非接続ネットワークのロギングネットワークによって、データパイプラインで発生しているイベントのログが受信される。イベントのログは、オペレーティングシステム(OS)レベル、アプリケーションレベル、およびペイロードレベルで発生するイベントを含み得る。
【0119】
ブロック1270において、イベントのログは、アプリケーションプログラミングインターフェースを介して提示される。
【0120】
ブロック1280において、データパイプラインは、アプリケーションプログラミングインターフェースを介して終了コマンドを受信した際に終了となる。
【0121】
プロセス1200は、任意単一の実施態様あるいは後述の実施態様ならびに/または本明細書の他の場所に記載の1つもしくは複数の他のプロセスとの関連での実施態様の任意の組み合わせ等、付加的な実施態様を含んでいてもよい。
【0122】
いくつかの実施態様において、プロセス1200は、一方向伝達デバイスを介して、非接続ネットワークからトラステッドリポジトリにメッセージを送ることを含む。
【0123】
図12は、プロセス1200の例示的なブロックを示しているが、いくつかの実施態様において、プロセス1200は、
図12に示されるものよりも多いブロック、少ないブロック、異なるブロック、または異なる構成のブロックを含んでいてもよい。この追加または代替として、プロセス1200のブロックのうちの2つ以上が並列に実行されるようになっていてもよい。
【0124】
クラウドサービス(cloud service)という用語は一般的に、クラウドサービスプロバイダ(CSP)が提供するシステムおよびインフラ(クラウドインフラ)の使用により、CSPによって、ユーザまたは顧客がオンデマンドで(たとえば、サブスクリプションモデルによって)利用可能となるサービスを表すのに用いられる。通常、CSPのインフラを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは別個である。このため、顧客は、サービス用の別個のハードウェアおよびソフトウェアリソースを購入する必要なく、CSPが提供するクラウドサービスを利用可能である。クラウドサービスは、サービスの提供に使用されるインフラの調達に顧客が投資する必要なく、登録している顧客に対して、アプリケーションおよびコンピューティングリソースへの簡単かつスケーラブルなアクセスを提供するように設計されている。
【0125】
さまざまな種類のクラウドサービスを提供するクラウドサービスプロバイダは複数存在する。クラウドサービスには、サービス型ソフトウェア(SaaS)、サービス型プラットフォーム(PaaS)、サービス型インフラ(IaaS)等、さまざまな異なる種類またはモデルが存在する。
【0126】
顧客は、CSPが提供する1つまたは複数のクラウドサービスに登録することができる。顧客としては、個人、組織、企業等、如何なるエンティティも可能である。CSPが提供するサービスに顧客が登録または加入した場合は、当該顧客に対してテナンシまたはアカウントが生成される。そして、顧客は、このアカウントにより、当該アカウントと関連付けられている1つまたは複数の登録先クラウドリソースにアクセスすることができる。
【0127】
上述の通り、サービス型インフラ(IaaS)は、ある特定の種類のクラウドコンピューティングサービスである。IaaSモデルにおいて、CSPは、顧客がそれぞれのカスタマイズ可能なネットワークを構築して顧客リソースをデプロイするのに使用可能なインフラ(クラウドサービスプロバイダインフラまたはCSPIと称する)を提供する。このように、顧客のリソースおよびネットワークは、CSPが提供するインフラにより分散環境においてホストされる。これは、顧客が提供するインフラによって顧客のリソースおよびネットワークがホストされる従来のコンピューティングとは異なる。
【0128】
CSPIは、基盤ネットワークまたは基本ネットワークとも称する物理ネットワークを構成するさまざまなホストマシン、メモリリソース、およびネットワークリソースを含む相互接続された高性能コンピュートリソースを含み得る。CSPIのリソースは、1つまたは複数の地理的領域に跨って地理的に分散し得る1つまたは複数のデータセンタに跨って分散し得る。これらの物理的リソースにより仮想化ソフトウェアが実行され、仮想化分散環境を提供し得る。仮想化によって、物理ネットワーク上に(ソフトウェアベースネットワーク、ソフトウェア定義ネットワーク、または仮想ネットワークとしても知られる)オーバーレイネットワークが生成される。CSPI物理ネットワークは、物理ネットワーク上に1つまたは複数のオーバーレイまたは仮想ネットワークを生成するための基礎となる。仮想またはオーバーレイネットワークには、1つまたは複数の仮想クラウドネットワーク(VCN)を含み得る。仮想ネットワークは、ソフトウェア仮想化技術(たとえば、ハイパーバイザ、ネットワーク仮想化デバイス(NVD)(たとえば、スマートNIC)により実行される機能、トップオブラック(TOR)スイッチ、NVDにより実行される1つもしくは複数の機能を実現するスマートTOR、ならびに他のメカニズム)の使用により実現され、物理ネットワーク上で動作し得るネットワーク抽象化レイヤを生成する。仮想ネットワークは、ピアツーピアネットワーク、IPネットワーク等を含む多くの形態が可能である。仮想ネットワークは通常、レイヤ3 IPネットワークまたはレイヤ2 VLANである。この仮想またはオーバーレイネットワーキングの方法は、仮想またはオーバーレイレイヤ3ネットワーキングと称することが多い。仮想ネットワーク用に開発されたプロトコルの例としては、IP-in-IP(または、GRE(Generic Routing Encapsulation))、VXLAN-IETF RFC 7348(Virtual Extensible LAN)、VPN(Virtual Private Network)(たとえば、MPLS Layer-3 Virtual Private Networks(RFC 4364))、VMwareのNSX、GENEVE(Generic Network Virtualization Encapsulation)等が挙げられる。
【0129】
IaaSの場合、CSPが提供するインフラ(CSPI)は、パブリックネットワーク(たとえば、インターネット)を介して仮想化コンピューティングリソースを提供するように構成可能である。IaaSモデルにおいては、クラウドコンピューティングサービスプロバイダがインフラコンポーネント(たとえば、サーバ、記憶装置、ネットワークノード(たとえば、ハードウェア)、デプロイメントソフトウェア、プラットフォーム仮想化(たとえば、ハイパーバイザレイヤ)等)をホスト可能である。また、場合により、IaaSプロバイダは、これらのインフラコンポーネントに付随する多様なサービス(たとえば、課金、モニタリング、ロギング、セキュリティ、負荷分散、およびクラスタリング等)を供給するようにしてもよい。したがって、これらのサービスがポリシー駆動であり得ることから、IaaSユーザは、負荷分散を推進するポリシーの実装によって、アプリケーションの可用性および性能を維持可能となり得る。CSPIは、ホストされている高可用性の分散環境において顧客が広範なアプリケーションおよびサービスを構築して動作させ得るようにするインフラおよび一組の補完的なクラウドサービスを提供する。CSPIは、顧客のオンプレミスネットワーク等のさまざまなネットワーク上の場所から安全にアクセスし得る柔軟な仮想ネットワークにおいて、高性能のコンピュートリソースおよび機能、ならびに記憶容量を提供する。CSPが提供するIaaSサービスに顧客が登録または加入した場合、当該顧客に対して生成されるテナンシは、顧客がそれぞれのクラウドリソースを生成、編成、および管理し得るCSPI内の隔離されたセキュアなパーティションである。
【0130】
顧客は、CSPIが提供するコンピュート、メモリ、およびネットワーク用リソースを使用して、それぞれの仮想ネットワークを構築することができる。これらの仮想ネットワーク上には、コンピュートインスタンス等の1つまたは複数の顧客リソースまたはワークロードがデプロイされ得る。たとえば、顧客は、CSPIが提供するリソースを使用して、1つまたは複数のカスタマイズ可能なプライベート仮想ネットワーク(仮想クラウドネットワーク(VCN)と称する)を構築することができる。顧客は、コンピュートインスタンス等の1つまたは複数の顧客リソースを顧客VCNにデプロイすることができる。コンピュートインスタンスは、仮想マシン、ベアメタルインスタンス等の形態が可能である。このように、CSPIは、ホストされている高可用性の仮想環境において顧客が広範なアプリケーションおよびサービスを構築して動作させ得るようにするインフラおよび一組の補完的なクラウドサービスを提供する。顧客は、CSPIが提供する基礎的な物理的リソースの管理も制御も行わない一方、オペレーティングシステム、ストレージ、およびデプロイされたアプリケーションの制御は行う。一部のネットワーク用コンポーネント(たとえば、ファイアウォール)については、制御が制限される可能性もある。
【0131】
CSPは、顧客およびネットワーク管理者がCSPIリソースを使用して、クラウドにデプロイされたリソースを設定、アクセス、および管理できるようにするコンソールを提供し得る。ある実施形態において、コンソールは、CSPIのアクセスおよび管理に使用可能なウェブベースのユーザインターフェースを提供する。いくつかの実施態様において、コンソールは、CSPが提供するウェブベースのアプリケーションである。
【0132】
CSPIは、シングルテナンシまたはマルチテナンシアーキテクチャをサポートし得る。シングルテナンシアーキテクチャにおいては、ソフトウェア(たとえば、アプリケーション、データベース)またはハードウェアコンポーネント(たとえば、ホストマシンまたはサーバ)が単一の顧客またはテナントにサーブする。マルチテナンシアーキテクチャにおいては、ソフトウェアまたはハードウェアコンポーネントが複数の顧客またはテナントにサーブする。このため、マルチテナンシアーキテクチャにおいては、複数の顧客またはテナント間でCSPIリソースが共有される。マルチテナンシの状況においては、各テナントのデータが隔離され、他のテナントから見えないように、CSPI内で予防措置が講じられるとともに保護措置が講じられる。
【0133】
物理ネットワークにおいて、ネットワークエンドポイント(「エンドポイント」)は、物理ネットワークに接続され、接続先のネットワークと通信するコンピューティングデバイスまたはシステムを表す。物理ネットワークのネットワークエンドポイントは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、または他種の物理ネットワークに接続されていてもよい。物理ネットワークにおける従来のエンドポイントの例としては、モデム、ハブ、ブリッジ、スイッチ、ルータ、および他のネットワーク用デバイス、物理コンピュータ(または、ホストマシン)等が挙げられる。物理ネットワークの各物理デバイスは、デバイスとの通信に使用され得る固定ネットワークアドレスを有する。この固定ネットワークアドレスとしては、レイヤ2アドレス(たとえば、MACアドレス)、固定レイヤ3アドレス(たとえば、IPアドレス)等が可能である。仮想化環境または仮想ネットワークにおいて、エンドポイントには、物理ネットワークの構成要素によりホストされる(たとえば、物理ホストマシンによりホストされる)仮想マシン等のさまざまな仮想エンドポイントを含み得る。これら仮想ネットワークのエンドポイントは、オーバーレイレイヤ2アドレス(たとえば、オーバーレイMACアドレス)およびオーバーレイレイヤ3アドレス(たとえば、オーバーレイIPアドレス)等のオーバーレイアドレスによりアドレス指定される。ネットワークオーバーレイによれば、ネットワーク管理者がソフトウェア管理を使用して(たとえば、仮想ネットワークの制御プレーンを実装するソフトウェアを介して)ネットワークエンドポイントと関連付けられているオーバーレイアドレスを移動できるようにすることで柔軟性がもたらされる。したがって、物理ネットワークと異なり、仮想ネットワークにおいては、ネットワーク管理ソフトウェアの使用によって、オーバーレイアドレス(たとえば、オーバーレイIPアドレス)があるエンドポイントから別のエンドポイントに移動し得る。仮想ネットワークが物理ネットワーク上に構築されていることから、仮想ネットワークの構成要素間の通信には、仮想ネットワークおよび基礎となる物理ネットワークの両者を含む。このような通信を容易化するため、CSPIの構成要素は、仮想ネットワーク中のオーバーレイアドレスから基盤ネットワーク中の実際の物理アドレスへのマッピングおよびその逆を行うマッピングを学習および格納するように構成されている。そして、これらのマッピングの使用により通信を容易化する。また、顧客トラフィックのカプセル化によって、仮想ネットワークにおけるルーティングを容易化する。
【0134】
したがって、物理アドレス(たとえば、物理IPアドレス)が物理ネットワークの構成要素と関連付けられ、オーバーレイアドレス(たとえば、オーバーレイIPアドレス)が仮想ネットワークのエンティティと関連付けられる。物理IPアドレスおよびオーバーレイIPアドレスはいずれも、現実のIPアドレスの一種である。これらは、仮想IPアドレスとは別個であって、仮想IPアドレスは複数の現実のIPアドレスにマッピングされる。仮想IPアドレスは、当該仮想IPアドレスと複数の現実のIPアドレスとの間の1対多マッピングを与える。
【0135】
クラウドインフラまたはCSPIは、世界中の1つまたは複数のリージョンにおける1つまたは複数のデータセンタにおいて物理的にホストされる。CSPIは、物理もしくは基盤ネットワークの構成要素ならびに物理ネットワークの構成要素上に構築されている仮想ネットワーク中の仮想化構成要素(たとえば、仮想ネットワーク、コンピュートインスタンス、仮想マシン等)を含み得る。ある実施形態において、CSPIは、レルム、リージョン、および可用性ドメインにおいて編成およびホストされる。リージョンは通常、1つまたは複数のデータセンタを含む局所的な地理的エリアである。リージョンは一般的に、互いに独立しており、たとえば国あるいは大陸を跨ぐ長い距離で分離され得る。たとえば、第1のリージョンがオーストラリアにあり、別のリージョンが日本にあり、さらに別のリージョンがインドにあってもよい。CSPIリソースは、各リージョンがそれぞれの独立したCSPIリソースの部分集合を有するようにリージョン間で分割される。各リージョンは、コンピュートリソース(たとえば、ベアメタルサーバ、仮想マシン、コンテナ、および関連するインフラ等)、ストレージリソース(たとえば、ブロックボリュームストレージ、ファイルストレージ、オブジェクトストレージ、アーカイブストレージ)、ネットワーク用リソース(たとえば、仮想クラウドネットワーク(VCN)、負荷分散リソース、オンプレミスネットワークへの接続)、データベースリソース、エッジネットワーク用リソース(たとえば、DNS)、ならびにアクセス管理およびモニタリングリソース等の一組のコアインフラサービスおよびリソースを提供し得る。各リージョンは一般的に、それぞれをレルムの他のリージョンに接続する複数の経路を有する。
【0136】
一般的に、アプリケーションは、最も頻繁に使用されるリージョンにデプロイされる(すなわち、当該リージョンと関連付けられているインフラにデプロイされる)。近くのリソースを使用する方が遠くのリソースを使用するよりも高速となるためである。また、アプリケーションは、大規模な気象系または地震等のリージョン全体のイベントのリスクを軽減するための冗長性、法域、税務分野、ならびに他のビジネスもしくは社会的基準等のさまざまな要件を満たすための冗長性等、さまざまな理由で異なるリージョンにデプロイされ得る。
【0137】
リージョン内のデータセンタは、さらに編成され、可用性ドメイン(AD)に細分され得る。可用性ドメインは、リージョン内に配置されている1つまたは複数のデータセンタに対応し得る。リージョンは、1つまたは複数の可能性ドメインで構成され得る。このような分散環境において、CSPIリソースは、仮想クラウドネットワーク(VCN)等のリージョン固有またはコンピュートインスタンス等の可用性ドメイン固有である。
【0138】
リージョン内のADは互いに隔離され、フォールトトレラントであり、同時に障害が発生する可能性が非常に低くなるように設定されている。これは、ネットワーク、物理ケーブル、ケーブルパス、ケーブルエントリポイント等の重要なインフラリソースをADが共有しないことにより実現される。このため、リージョン内のあるADで障害が発生しても、同じリージョン内のその他のADの可用性に影響が及ぶ可能性は低くなる。同じリージョン内のADは、低レイテンシで高帯域幅のネットワークにより互いに接続され得るため、他のネットワーク(たとえば、インターネット、顧客のオンプレミスネットワーク等)への高可用性接続を可能にし、高可用性および障害回復の両者のため、複製システムを複数のADに構築可能となる。クラウドサービスでは、複数のADを使用して、高可用性を確保するとともに、リソース障害に対する保護を図る。IaaSプロバイダが提供するインフラが成長するにつれて、より多くのリージョンおよびADに容量が追加され得る。また、可用性ドメイン間のトラフィックは通例、暗号化されている。
【0139】
ある実施形態においては、リージョンがレルムとしてグループ化されている。レルムは、リージョンの論理的集合である。レルムは、互いに隔離されており、如何なるデータも共有しない。同じレルムのリージョンは互いに通信可能であるが、異なるレルムのリージョンは不可能である。CSPを使用する顧客のテナンシまたはアカウントは、単一のレルムに存在し、当該レルムに属する1つまたは複数のリージョンに分散し得る。通常、顧客がIaaSサービスに登録した場合は、レルム内の顧客固有のリージョン(「ホーム」リージョンと称する)において、当該顧客のテナンシまたはアカウントが生成される。顧客は、レルム内の1つまたは複数の他のリージョンに跨って当該顧客のテナンシを拡張することができる。顧客は、当該顧客のテナンシが存在するレルムにないリージョンにはアクセスできない。
【0140】
IaaSプロバイダは、特定の一組の顧客またはユーザに各々対応する複数のレルムを提供可能である。たとえば、商用顧客に対しては商用レルムが提供され得る。別の例として、特定の国に関しては、当該国内の顧客に対してレルムが提供され得る。さらに別の例として、政府に対しては政府レルムが提供され、以下同様である。たとえば、政府レルムは、特定の政府に対応し、商用レルムよりもセキュリティのレベルを高くすることができる。たとえば、OCI(Oracle Cloud Infrastructure)は現在、商用リージョン用に対して1つ、政府クラウドリージョンに対して2つのレルム(たとえば、FedRAMP認証およびIL5認証)を提供している。
【0141】
ある実施形態においては、ADが1つまたは複数のフォールトドメインに細分され得る。フォールトドメインは、アンチアフィニティを提供するAD内のインフラリソースのグループである。フォールトドメインは、単一のAD内の同じ物理ハードウェア上とならないようにコンピュートインスタンスを分散させることができる。これがアンチアフィニティとして知られている。フォールトドメインは、単一の障害点を共有する一組のハードウェアコンポーネント(コンピュータ、スイッチ等)を表す。コンピュートプールが論理的に、フォールトドメインに分割される。このため、あるフォールトドメインに影響を及ぼすハードウェア障害またはコンピュートハードウェア保守イベントが他のフォールトドメインのインスタンスに影響を及ぼすことはない。実施形態に応じて、ADごとのフォールトドメインの数は異なり得る。たとえば、ある実施形態において、各ADは、3つのフォールトドメインを含む。フォールトドメインは、AD内の論理的なデータセンタとして作用する。
【0142】
顧客がIaaSサービスに登録した場合は、顧客に対してCSPIからのリソースのプロビジョニングがなされ、顧客のテナンシと関連付けられる。顧客は、プロビジョニングがなされたこれらのリソースを使用して、プライベートネットワークを構築するとともに、これらのネットワーク上でリソースをデプロイすることができる。CSPIによってクラウドでホストされる顧客ネットワークは、仮想クラウドネットワーク(VCN)と称する。顧客は、割り当てられたCSPIリソースを使用して、1つまたは複数の仮想クラウドネットワーク(VCN)を設定することができる。VCNは、仮想またはソフトウェア定義のプライベートネットワークである。顧客のVCNにおいてデプロイされる顧客リソースには、コンピュートインスタンス(たとえば、仮想マシン、ベアメタルインスタンス)および他のリソースを含み得る。これらのコンピュートインスタンスは、アプリケーション、負荷分散器、データベース等のさまざまな顧客ワークロードを表し得る。VCNにデプロイされたコンピュートインスタンスは、インターネット等のパブリックネットワークを介してアクセス可能なパブリックエンドポイント(「パブリックエンドポイント」)、同じVCNもしくは他のVCN(たとえば、顧客の他のVCNもしくは顧客に属さないVCN)中の他のインスタンス、顧客のオンプレミスデータセンタもしくはネットワーク、ならびにサービスエンドポイントおよび他種のエンドポイントと通信可能である。
【0143】
CSPは、CSPIを使用して、さまざまなサービスを提供することができる。場合によっては、CSPIの顧客自身がサービスプロバイダのように振る舞い、CSPIリソースを使用してサービスを提供することができる。サービスプロバイダは、識別情報(たとえば、IPアドレス、DNS名およびポート)により特性化されたサービスエンドポイントを公開し得る。顧客のリソース(たとえば、コンピュートインスタンス)は、特定のサービスに対して当該サービスが公開するサービスエンドポイントにアクセスすることによって、特定のサービスを消費することができる。これらのサービスエンドポイントは一般的に、インターネット等のパブリック通信ネットワークを介して、エンドポイントと関連付けられているパブリックIPアドレスの使用によりユーザがパブリックにアクセスし得るエンドポイントである。また、パブリックにアクセス可能なネットワークエンドポイントは、パブリックエンドポイントと称する場合もある。
【0144】
ある実施形態において、サービスプロバイダは、サービスのエンドポイント(サービスエンドポイントと称する場合もある)を介して、サービスを公開することができる。そして、サービスの顧客は、このサービスエンドポイントを使用して、サービスにアクセスすることができる。ある実施態様においては、サービスに対して与えられたサービスエンドポイントに対して、当該サービスを消費する意図の複数の顧客がアクセス可能である。他の実施態様においては、顧客に対して専用のサービスエンドポイントが与えられ、当該顧客のみが当該専用サービスエンドポイントを使用してサービスにアクセスできるようにしてもよい。
【0145】
ある実施形態において、VCNが生成された場合、これは、VCNに割り当てられている広範なプライベートオーバーレイIPアドレスであるプライベートオーバーレイCIDR(Classless Inter-Domain Routing)アドレス空間と関連付けられる(たとえば、10.0/16)。VCNは、関連するサブネット、ルートテーブル、およびゲートウェイを含む。VCNは、単一のリージョン内に存在するが、1つもしくは複数またはすべてのリージョンの可用性ドメインに及ぶ可能性もある。ゲートウェイは、VCNに対して設定された仮想インターフェースであり、VCNとVCNの外側の1つまたは複数のエンドポイントとの間のトラフィックの通信を可能にする。VCNに対しては、1つまたは複数の異なる種類のゲートウェイが設定されることにより、異なる種類のエンドポイント間の通信を可能にし得る。
【0146】
VCNは、1つまたは複数のサブネット等の1つまたは複数のサブネットワークに細分され得る。したがって、サブネットは、VCN内に生成され得る設定単位または下位区分である。VCNは、1つまたは複数のサブネットを有し得る。VCN内の各サブネットは、当該VCNの他のサブネットと重なり合わず、VCNのアドレス空間内のアドレス空間サブセットを表す連続範囲のオーバーレイIPアドレス(たとえば、10.0.0.0/24および10.0.1.0/24)と関連付けられている。
【0147】
各コンピュートインスタンスは、VCNのサブネットへの当該コンピュートインスタンスの参加を可能にする仮想ネットワークインターフェースカード(VNIC)と関連付けられている。VNICは、物理的なネットワークインターフェースカード(NIC)の論理的表現である。一般的に、VNICは、エンティティ(たとえば、コンピュートインスタンス、サービス)と仮想ネットワークとの間のインターフェースである。VNICは、サブネットに存在し、1つまたは複数の関連するIPアドレスを有するとともに、関連するセキュリティルールまたはポリシーを有する。VNICは、スイッチ上のレイヤ2ポートに相当する。VNICは、コンピュートインスタンスおよびVCN内のサブネットに付随する。コンピュートインスタンスと関連付けられているVNICによれば、コンピュートインスタンスがVCNのサブネットの一部になり得るとともに、コンピュートインスタンスと同じサブネット上のエンドポイント、VCNの異なるサブネットのエンドポイント、またはVCNの外側のエンドポイントとコンピュートインスタンスが通信可能(たとえば、パケットを送受信可能)となる。したがって、コンピュートインスタンスと関連付けられているVNICは、VCNの内側および外側のエンドポイントとのコンピュートインスタンスのつながり方を決定する。コンピュートインスタンスに対するVNICは、コンピュートインスタンスが生成され、VCN内のサブネットに追加された場合に、生成され、当該コンピュートインスタンスと関連付けられる。一組のコンピュートインスタンスを含むサブネットの場合、このサブネットは、一組のコンピュートインスタンスに対応するVNICを含み、各VNICは、一組のコンピュートインスタンスのうちのあるコンピュートインスタンスに付随する。
【0148】
各コンピュートインスタンスには、当該コンピュートインスタンスと関連付けられている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アドレスのうちのアドレスである。
【0149】
ある実施形態においては、プライベートオーバーレイIPアドレスのほか、たとえばパブリックサブネットの場合の1つまたは複数のパブリックIPアドレス等の付加的なオーバーレイIPアドレスが任意選択としてコンピュートインスタンスに割り当てられていてもよい。これら複数のアドレスは、同じVNICまたはコンピュートインスタンスと関連付けられている複数のVNICに対して割り当てられている。ただし、各インスタンスは、インスタンスの起動時に生成され、インスタンスに割り当てられたオーバーレイプライベートIPアドレスと関連付けられている一次VNICを有する(この一次VNICは、削除不可能である)。一次VNICと同じ可用性ドメインにおいては、二次VNICと称する付加的なVNICを既存のインスタンスに追加可能である。VNICはすべて、このインスタンスと同じ可用性ドメインにある。二次VNICは、一次VNICと同じVCNのサブネットに存在することも可能であるし、同じVCNまたは異なるVCNの異なるサブネットに存在することも可能である。
【0150】
コンピュートインスタンスは、パブリックサブネットに存在する場合、任意選択としてパブリックIPアドレスが割り当てられ得る。サブネットは、生成の時点でパブリックサブネットまたはプライベートサブネットとして指定され得る。プライベートサブネットは、当該サブネット中のリソース(たとえば、コンピュートインスタンス)および関連するVNICがパブリックオーバーレイIPアドレスを有し得ないことを意味する。パブリックサブネットは、当該サブネット中のリソースおよび関連するVNICがパブリックIPアドレスを有し得ることを意味する。顧客は、リージョンまたはレルムの単一の可用性ドメインまたは複数の可用性ドメインに存在するようにサブネットを指定することができる。
【0151】
上述の通り、VCNは、1つまたは複数のサブネットに細分され得る。ある実施形態においては、VCNに対して設定された仮想ルータ(VR)(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のポートに対して予約されている。たとえば、VCNに2つのサブネットがあり、それぞれにアドレス範囲10.0/16および10.1/16が関連付けられているものとする。アドレス範囲が10.0/16のVCN内の第1のサブネットに関しては、この範囲のアドレスが当該サブネットのVCN VRのポートに対して予約されている。場合によっては、この範囲の最初のIPアドレスがVCN VRに対して予約されていてもよい。たとえば、オーバーレイIPアドレス範囲が10.0/16のサブネットに関しては、IPアドレス10.0.0.1が当該サブネットのVCN VRのポートに対して予約されていてもよい。アドレス範囲が10.1/16の同じVCN内の第2のサブネットに関して、VCN VRは、当該第2のサブネットに対して、IPアドレスが10.1.0.1のポートを有していてもよい。VCN VRは、VCNのサブネットの各々について、異なるIPアドレスを有する。
【0152】
いくつかの他の実施形態において、VCN内の各サブネットは、それ自体の関連するVRを有していてもよく、このVRは、当該VRと関連付けられている予約済みまたはデフォルトのIPアドレスの使用によってサブネットによりアドレス指定可能である。予約済みまたはデフォルトのIPアドレスは、たとえば当該サブネットと関連付けられているIPアドレスの範囲の最初のIPアドレスであってもよい。サブネット中のVNICは、このデフォルトまたは予約済みのIPアドレスを使用して、サブネットと関連付けられているVRと通信可能である(たとえば、パケットを送受信可能である)。このような実施形態において、VRは、当該サブネットの入力/出力点である。VCN内のサブネットと関連付けられているVRは、VCN内の他のサブネットと関連付けられている他のVRと通信可能である。また、VRは、VCNと関連付けられているゲートウェイと通信可能である。サブネットのVR機能は、サブネット中のVNICのVNIC機能を実行する1つもしくは複数のNVD上で動作しているか、または、1つもしくは複数のNVDにより実行されている。
【0153】
VCNに対しては、ルートテーブル、セキュリティルール、およびDHCPオプションが設定され得る。ルートテーブルは、VCNの仮想ルートテーブルであり、ゲートウェイまたは特別に設定されたインスタンスを経由してVCN内のサブネットからVCNの外側の送信先にトラフィックをルーティングするルールを含む。VCNのルートテーブルは、VCNに対するパケットの転送/ルーティングの方法を制御するようにカスタマイズ可能である。DHCPオプションは、起動時にインスタンスに対して自動的に与えられる設定情報を表す。
【0154】
VCNに対して設定されたセキュリティルールは、VCNのオーバーレイファイアウォールルールを表す。セキュリティルールには、入力および出力ルールを含み、VCN内のインスタンスに入出力可能なトラフィックの種類を(たとえば、プロトコルおよびポートに基づいて)指定することができる。顧客は、所与のルールがステートフルかステートレスかを選定可能である。たとえば、顧客は、送信元CIDR0.0.0.0/0および送信先TCPポート22のステートフルな入力ルールを設定することにより、任意の場所から一組のインスタンスへの入力SSHトラフィックを許可することができる。セキュリティルールは、ネットワークセキュリティグループまたはセキュリティリストを使用することにより実現され得る。ネットワークセキュリティグループは、当該グループのリソースにしか当てはまらない一組のセキュリティルールから成る。一方、セキュリティリストは、当該セキュリティリストを使用する任意のサブネットのすべてのリソースに当てはまるルールを含む。VCNには、デフォルトのセキュリティルールを含むデフォルトのセキュリティリストが提供され得る。VCNに対して設定されたDHCPオプションは、起動時にVCNのインスタンスに対して自動的に与えられる設定情報を提供する。
【0155】
ある実施形態において、VCNの設定情報は、VCN制御プレーンにより決定および格納される。VCNの設定情報には、たとえばVCNと関連付けられているアドレス範囲、VCN内のサブネットおよび関連情報、VCNと関連付けられている1つもしくは複数のVR、VCN中のコンピュートインスタンスおよび関連VNIC、VCNと関連付けられているさまざまな仮想化ネットワーク機能(たとえば、VNIC、VR、ゲートウェイ)を実行するNVD、VCNの状態情報、ならびに他のVCN関連情報に関する情報を含み得る。ある実施形態において、VCN配信サービスは、VCN制御プレーンまたはその一部により格納された設定情報をNVDに公開する。配信された情報は、NVDにより格納され、VCNのコンピュートインスタンスに対するパケットの転送に使用される情報(たとえば、転送テーブル、ルーティングテーブル等)の更新に使用され得る。
【0156】
ある実施形態において、VCNおよびサブネットの生成は、VCN制御プレーン(CP)により処理され、コンピュートインスタンスの起動は、コンピュート制御プレーンにより処理される。コンピュート制御プレーンは、コンピュートインスタンスの物理的リソースの割り当てを担った後、VCN制御プレーンを呼び出して、VNICを生成するとともにコンピュートインスタンスに付随させる。また、VCN CPは、パケット転送およびルーティング機能を実行するように構成されているVCNデータプレーンに対してVCNデータマッピングを送る。ある実施形態において、VCN VPは、VCNデータプレーンへのアップデートの供給を担う配信サービスを提供する。VCN制御プレーンの例については、
図18、
図19、
図20、および
図21にも示され(参照番号1816、1916、2016、および2116参照)、後述される。
【0157】
顧客は、CSPIがホストするリソースを使用して1つまたは複数のVCNを生成することができる。顧客VCNにデプロイされたコンピュートインスタンスは、さまざまなエンドポイントと通信可能である。これらのエンドポイントには、CSPIがホストするエンドポイントおよびCSPIの外側のエンドポイントを含み得る。
【0158】
CSPIを使用してクラウドベースのサービスを実装するための種々異なるアーキテクチャが
図13、
図14、
図15、
図16、
図17、
図18、
図19、
図20、および
図22に示されるとともに後述される。
図13は、ある実施形態に係る、CSPIによりホストされるオーバーレイまたは顧客VCNを示す分散環境1300の高レベル図である。
図13に示される分散環境は、オーバーレイネットワークの複数の構成要素を含む。
図13に示される分散環境1300は一例に過ぎず、特許請求の範囲に係る実施形態の範囲を過度に制限することは意図されない。多くの変形、代替、および改良が可能である。たとえば、いくつかの実施態様において、
図13に示される分散環境は、
図1に示されるものよりシステムまたは構成要素が多くても少なくてもよいし、2つ以上のシステムを組み合わせるようにしてもよいし、システムの構成または配置が異なっていてもよい。
【0159】
図13の例に示される通り、分散環境1300は、顧客が登録してそれぞれの仮想クラウドネットワーク(VCN)を構築するのに使用可能なサービスおよびリソースを提供するCSPI1301を含む。ある実施形態において、CSPI1301は、登録している顧客にIaaSサービスを提供する。CSPI1301内のデータセンタは、1つまたは複数のリージョンとして編成されていてもよい。
図13には、1つの例示的なリージョン「リージョンUS」1302が示されている。顧客は、リージョン1302に対して顧客VCN1304を設定済みである。顧客は、さまざまなコンピュートインスタンスをVCN1304にデプロイするようにしてもよく、これらのコンピュートインスタンスには、仮想マシンまたはベアメタルインスタンスを含み得る。インスタンスの例としては、アプリケーション、データベース、負荷分散器等が挙げられる。
【0160】
図13に示される実施形態において、顧客VCN1304は、2つのサブネットすなわち「サブネット1」および「サブネット2」を含み、各サブネットがそれ自体のCIDR IPアドレス範囲を有する。
図13においては、サブネット1のオーバーレイIPアドレス範囲が16.0/16であり、サブネット2のアドレス範囲が16.1/16である。VCN仮想ルータ1305は、VCN1304のサブネット間およびVCNの外側の他のエンドポイントとの通信を可能にするVCNの論理的ゲートウェイを表す。VCN VR1305は、VCN1304中のVNICとVCN1304に関連するゲートウェイとの間でトラフィックをルーティングするように構成されている。VCN VR1305は、VCN1304の各サブネットにポートを提供する。たとえば、VR1305は、IPアドレス10.0.0.1のポートをサブネット1に、IPアドレス10.1.0.1のポートをサブネット2に提供するようにしてもよい。
【0161】
複数のコンピュートインスタンスが各サブネットにデプロイされるようになっていてもよく、コンピュートインスタンスとしては、仮想マシンインスタンスおよび/またはベアメタルインスタンスが可能である。サブネット中のコンピュートインスタンスは、CSPI1301内の1つまたは複数のホストマシンによりホストされていてもよい。コンピュートインスタンスは、当該コンピュートインスタンスと関連付けられているVNICを介してサブネットに参加する。たとえば、
図13に示されるように、コンピュートインスタンスC1は、当該コンピュートインスタンスと関連付けられているVNICを介して、サブネット1の一部である。同様に、コンピュートインスタンスC2は、C2と関連付けられているVNICを介して、サブネット1の一部である。同様に、複数のコンピュートインスタンス(仮想マシンインスタンスであってもよいし、ベアメタルインスタンスであってもよい)がサブネット1の一部であってもよい。各コンピュートインスタンスには、その関連するVNICを介して、プライベートオーバーレイIPアドレスおよびMACアドレスが割り当てられている。たとえば、
図13において、コンピュートインスタンスC1は、オーバーレイIPアドレスが10.0.0.2、MACアドレスがM1である一方、コンピュートインスタンスC2は、プライベートオーバーレイIPアドレスが10.0.0.3、MACアドレスがM2である。サブネット1の各コンピュートインスタンス(コンピュートインスタンスC1およびC2を含む)は、サブネット1に対するVCN VR 6 1305のポートのIPアドレスであるIPアドレス10.0.0.1を使用するVCN VR 6 1305へのデフォルトのルートを有する。
【0162】
サブネット2は、仮想マシンインスタンスおよび/またはベアメタルインスタンスを含む複数のコンピュートインスタンスがデプロイされ得る。たとえば、
図13に示されるように、コンピュートインスタンスD1およびD2は、当該コンピュートインスタンスそれぞれと関連付けられているVNICを介して、サブネット2の一部である。
図13に示される実施形態において、コンピュートインスタンスD1は、オーバーレイIPアドレスが10.1.0.2、MACアドレスがMM1である一方、コンピュートインスタンスD2は、プライベートオーバーレイIPアドレスが10.1.0.3、MACアドレスがMM2である。サブネット2の各コンピュートインスタンス(コンピュートインスタンスD1およびD2を含む)は、サブネット2に対するVCN VR1305のポートのIPアドレスであるIPアドレス10.1.0.1を使用するVCN VR 6 1305へのデフォルトのルートを有する。
【0163】
また、VCN A1304は、1つまたは複数の負荷分散器を具備していてもよい。たとえば、サブネットに対して負荷分散器が与えられ、サブネット上の複数のコンピュートインスタンス間でトラフィックを負荷分散するように構成されていてもよい。また、VCNのサブネット間でトラフィックを負荷分散する負荷分散器が与えられていてもよい。
【0164】
VCN1304にデプロイされた特定のコンピュートインスタンスは、さまざまな異なるエンドポイントと通信可能である。これらのエンドポイントには、CSPI1600がホストするエンドポイントおよびCSPI1600の外側のエンドポイントを含み得る。CSPI1301によりホストされるエンドポイントには、特定のコンピュートインスタンスと同じサブネット上のエンドポイント(たとえば、サブネット1の2つのコンピュートインスタンス間の通信)、同じVCN内の異なるサブネット上のエンドポイント(たとえば、サブネット1のコンピュートインスタンスとサブネット2のコンピュートインスタンスとの間の通信)、同じリージョンにおける異なるVCN中のエンドポイント(たとえば、サブネット1のコンピュートインスタンスと同じリージョン1306もしくは1310におけるVCN中のエンドポイントとの間の通信、サブネット1のコンピュートインスタンスと同じリージョンにおけるサービスネットワーク1310中のエンドポイントとの間の通信)、または異なるリージョンにおけるVCN中のエンドポイント(たとえば、サブネット1のコンピュートインスタンスと異なるリージョン1308におけるVCN中のエンドポイントとの間の通信)を含み得る。また、CSPI1301がホストするサブネット中のコンピュートインスタンスは、CSPI1301がホストしていない(すなわち、CSPI1301の外側の)エンドポイントと通信し得る。これら外側のエンドポイントには、顧客のオンプレミスネットワーク1316中のエンドポイント、ホストされている他のリモートクラウドネットワーク1318内のエンドポイント、インターネット等のパブリックネットワークを介してアクセス可能なパブリックエンドポイント1314、および他のエンドポイントを含む。
【0165】
同じサブネット上のコンピュートインスタンス間の通信は、送信元コンピュートインスタンスおよび送信先コンピュートインスタンスと関連付けられているVNICの使用により容易化される。たとえば、サブネット1のコンピュートインスタンスC1は、サブネット1のコンピュートインスタンスC2にパケットを送りたい場合がある。送信元コンピュートインスタンスを起点とし、送信先が同じサブネット中の別のコンピュートインスタンスであるパケットの場合、このパケットは最初に、送信元コンピュートインスタンスと関連付けられているVNICによって処理される。送信元コンピュートインスタンスと関連付けられているVNICにより実行される処理には、パケットヘッダによるパケットの送信先情報の決定、送信元コンピュートインスタンスと関連付けられているVNICに対して設定された任意のポリシー(たとえば、セキュリティリスト)の識別、パケットのネクストホップの決定、必要に応じたパケットのカプセル化/カプセル解除機能の実行、およびパケットの目的の送信先への通信を容易化するためのネクストホップへのパケットの転送/ルーティングを含み得る。送信先コンピュートインスタンスが送信元コンピュートインスタンスと同じサブネットにある場合、送信元コンピュートインスタンスと関連付けられているVNICは、送信先コンピュートインスタンスと関連付けられているVNICを識別し、パケットを当該VNICに転送して処理するように構成されている。その後、送信先コンピュートインスタンスと関連付けられているVNICの実行によって、パケットを送信先コンピュートインスタンスに転送する。
【0166】
あるサブネット中のコンピュートインスタンスから同じVCNの異なるサブネット中のエンドポイントにパケットが送られる場合、この通信は、送信元および送信先コンピュートインスタンスと関連付けられているVNICならびにVCN VRによって容易化される。たとえば、
図13におけるサブネット1のコンピュートインスタンスC1がサブネット2のコンピュートインスタンスD1にパケットを送りたい場合、このパケットは最初に、コンピュートインスタンスC1と関連付けられているVNICにより処理される。コンピュートインスタンスC1と関連付けられているVNICは、デフォルトのルートまたはVCN VR1305のポート10.0.0.1を使用して、パケットをVCN VRへとルーティングするように構成されている。VCN VR1305は、ポート10.1.0.1を使用して、パケットをサブネット2へとルーティングするように構成されている。そして、D1と関連付けられているVNICによりパケットが受信されて処理されると、このVNICがパケットをコンピュートインスタンスD1に転送する。
【0167】
VCN1304のコンピュートインスタンスからVCN1304の外側のエンドポイントにパケットが送られる場合、この通信は、送信元コンピュートインスタンスと関連付けられているVNIC、VCN VR1305、およびVCN1304と関連付けられているゲートウェイによって容易化される。VCN1304とは、1つまたは複数の種類のゲートウェイが関連付けられていてもよい。ゲートウェイは、VCNとVCNの外側の別のエンドポイントとの間のインターフェースである。ゲートウェイは、レイヤ3/IPレイヤの概念であり、VCNがVCNの外側のエンドポイントと通信できるようにする。このように、ゲートウェイは、VCNと他のVCNまたはネットワークとの間のトラフィックの流れを促進する。VCNに対しては、さまざまな異なる種類のゲートウェイが設定されることにより、異なる種類のエンドポイントとの異なる種類の通信を容易化し得る。通信は、ゲートウェイに応じて、パブリックネットワーク(たとえば、インターネット)経由であってもよいし、プライベートネットワーク経由であってもよい。これらの通信に対しては、さまざまな通信プロトコルが使用され得る。
【0168】
たとえば、コンピュートインスタンスC1は、VCN1304の外側のエンドポイントと通信したい場合がある。パケットは最初、送信元コンピュートインスタンスC1と関連付けられているVNICにより処理され得る。VNICの処理によって、パケットの送信先がC1のサブネット1の外側であるものと判定される。C1と関連付けられているVNICは、パケットをVCN1304のVCN VR1305に転送するようにしてもよい。その後、VCN VR1305は、パケットを処理するが、その処理の一部として、パケットの送信先に基づいて、VCN1304と関連付けられている特定のゲートウェイをパケットのネクストホップとして決定する。そして、VCN VR1305は、識別された特定のゲートウェイにパケットを転送するようにしてもよい。たとえば、送信先が顧客のオンプレミスネットワーク内のエンドポイントである場合、パケットは、VCN VR1305により、VCN1304に対して設定されたDRG(Dynamic Routing Gateway)ゲートウェイ1322に転送されるようになっていてもよい。そして、ゲートウェイからネクストホップへのパケットの転送により、パケットの最終目的の送信先への伝達を容易化することができる。
【0169】
VCNに対しては、さまざまな異なる種類のゲートウェイが設定され得る。VCNに対して設定され得るゲートウェイの例については、
図13に示されるとともに後述される。VCNと関連付けられているゲートウェイの例については、
図18、
図19、
図20、および
図21にも示され(たとえば、参照番号1834、1836、1838、1934、1936、1938、2034、2036、2038、2134、2136、および2138により参照されるゲートウェイ)、後述される。
図13の実施形態に示されるように、DRG(Dynamic Routing Gateway)1322が顧客VCN1304に追加または関連付けされ、顧客VCN1304と別のエンドポイントとの間のプライベートネットワークトラフィック通信の経路を提供し得るが、この別のエンドポイントとしては、顧客のオンプレミスネットワーク1316、CSPI1301の異なるリージョンにおけるVCN1308、またはCSPI1301がホストしていない他のリモートクラウドネットワーク1318が可能である。顧客オンプレミスネットワーク1316は、顧客のリソースを使用して構築された顧客のネットワークであってもよいし、顧客のデータセンタであってもよい。顧客オンプレミスネットワーク1316へのアクセスは一般的に、厳しく制限されている。顧客は、オンプレミスネットワーク1316ならびにCSPI1301によってクラウドでデプロイもしくはホストされている1つもしくは複数のVCN1304の両者を有する場合、オンプレミスネットワーク1316およびクラウドベースのVCN1304を互いに通信できるようにしたい場合がある。これにより、顧客は、CSPI1301によりホストされている顧客のVCN1304およびオンプレミスネットワーク1316を含む拡張ハイブリッド環境を構築することができる。この通信を可能にするのは、DRG1322である。このような通信を可能にするため、チャネルの一方のエンドポイントが顧客オンプレミスネットワーク1316に存在し、他方のエンドポイントがCSPI1301に存在するとともに顧客VCN1304に接続されるように、通信チャネル1324が設定される。通信チャネル1324は、インターネット等のパブリック通信ネットワークまたはプライベート通信ネットワークを経由し得る。インターネット等のパブリック通信ネットワーク上のIPsec VPN技術、パブリックネットワークの代わりにプライベートネットワークを使用するOracleのFastConnect技術等、さまざまな異なる通信プロトコルが用いられるようになっていてもよい。通信チャネル1324の一方のエンドポイントを構成する顧客オンプレミスネットワーク1316のデバイスまたは機器は、
図13に示されるCPE1326等、顧客プレミス機器(CPE)と称する。CSPI1301側において、エンドポイントは、DRG1322を実行するホストマシンであってもよい。
【0170】
ある実施形態においては、リモートピアリング接続(RPC)をDRGに追加可能であり、顧客は、あるVCNを異なるリージョンの別のVCNとピアリング可能である。このようなRPCを使用することにより、顧客VCN1304は、DRG1322を使用して、別のリージョンのVCN1308とつながることができる。また、DRG1322の使用により、Microsoft Azureクラウド、Amazon AWSクラウド等、CSPI1301がホストしていない他のリモートクラウドネットワーク1318と通信可能である。
【0171】
図13に示されるように、インターネットゲートウェイ(IGW)1320は、顧客VCN1304に対して設定されていてもよく、VCN1304上のコンピュートインスタンスは、インターネット等のパブリックネットワークを介してアクセス可能なパブリックエンドポイント1314と通信することができる。IGW15120は、VCNをインターネット等のパブリックネットワークに接続するゲートウェイである。IGW1320によれば、VCN1304等のVCN内のパブリックサブネットは(当該パブリックサブネット中のリソースがパブリックオーバーレイIPアドレスを有する場合)、インターネット等のパブリックネットワーク1314上のパブリックエンドポイント1312に直接アクセス可能となる。IGW1320を使用することにより、VCN1304内のサブネットまたはインターネットから接続が開始され得る。
【0172】
顧客のVCN1304に対するネットワークアドレス変換(NAT)ゲートウェイ1328の設定により、専用のパブリックオーバーレイIPアドレスを有さない顧客のVCN中のクラウドリソースによるインターネットへのアクセスを可能にし得るが、この場合、これらのリソースが直接入力インターネット接続(たとえば、L4-L7接続)に曝されることはない。これにより、VCN内のプライベートサブネット(VCN1304のプライベートサブネット1等)は、インターネット上のパブリックエンドポイントにプライベートアクセス可能となる。NATゲートウェイにおいては、プライベートサブネットからパブリックインターネットに向かってしか接続が開始されず、インターネットからプライベートサブネットに向かっては開始され得ない。
【0173】
ある実施形態においては、顧客VCN1304に対してサービスゲートウェイ(SGW)1326が設定され得るが、これは、VCN1304とサービスネットワーク1310においてサポートされているサービスエンドポイントとの間のプライベートネットワークトラフィックの経路を提供する。ある実施形態においては、サービスネットワーク1310がCSPにより提供されていてもよく、また、さまざまなサービスを提供可能である。このようなサービスネットワークの一例は、OracleのServices Networkであって、顧客が使用できるさまざまなサービスを提供する。たとえば、顧客VCN1304のプライベートサブネット中のコンピュートインスタンス(たとえば、データベースシステム)は、パブリックIPアドレスもインターネットへのアクセスも必要なく、データをサービスエンドポイント(たとえば、Object Storage)にバックアップ可能である。ある実施形態においては、VCNがSGWを1つだけ有することができ、接続は、サービスネットワーク1310からではなく、VCN内のサブネットからしか開始され得ない。VCNが別のVCNとピアリングされた場合、他方のVCN中のリソースは通常、SGWにアクセスできない。また、FastConnectまたはVPN ConnectでVCNに接続されているオンプレミスネットワーク中のリソースは、当該VCNに対して設定されたサービスゲートウェイを使用可能である。
【0174】
ある実施態様において、SGW1326は、サービスCIDR(Classless Inter-Domain Routing)ラベルの概念を使用するが、これは、関心サービスまたはサービス群のリージョナルパブリックIPアドレス範囲をすべて表す文字列である。顧客は、SGWおよび関連するルーティングルールを設定してサービスへのトラフィックを制御する場合にサービスCIDRラベルを使用する。顧客は、任意選択として、サービスのパブリックIPアドレスが将来的に変化する場合でも、調整の必要なくセキュリティルールを設定する際にラベルを利用可能である。
【0175】
ローカルピアリングゲートウェイ(LPG)1332は、顧客VCN1304に追加可能なゲートウェイであり、VCN1304が同じリージョンの別のVCNとピアリングできるようにする。ピアリングは、VCNがプライベートIPアドレスを使用して通信することを意味するが、トラフィックがインターネット等のパブリックネットワークを通過したり、トラフィックを顧客のオンプレミスネットワーク1316にルーティングしたりすることはない。好適な実施形態において、VCNは、確立するピアリングごとに別個のLPGを有する。ローカルピアリングまたはVCNピアリングは、異なるアプリケーションまたはインフラ管理機能間のネットワーク接続の確立に使用される一般的な方法である。
【0176】
サービスプロバイダ(サービスネットワーク1310におけるサービスのプロバイダ等)は、さまざまなアクセスモデルを使用して、サービスへのアクセスを提供することができる。パブリックアクセスモデルによれば、サービスは、インターネット等のパブリックネットワークを介して顧客VCN中のコンピュートインスタンスがパブリックにアクセス可能なパブリックエンドポイントとして公開される場合、および/または、SGW1326を介してプライベートにアクセス可能な場合がある。特定のプライベートアクセスモデルによれば、サービスは、顧客のVCNのプライベートサブネット中のプライベートIPエンドポイントとしてアクセス可能となる。これは、プライベートエンドポイント(PE)アクセスと称し、サービスプロバイダは、顧客のプライベートネットワークにおけるインスタンスとして、それぞれのサービスを公開することができる。プライベートエンドポイントのリソースは、顧客のVCN内のサービスを表す。各PEは、顧客のVCNにおいて顧客が選定したサブネットのVNICとして認識される(PE-VNICと称し、1つまたは複数のプライベートIPを有する)。このため、PEは、VNICを使用してプライベート顧客VCNサブネット内のサービスを提示する方法を提供する。エンドポイントはVNICとして公開されることから、ルーティングルール、セキュリティリスト等、VNICと関連付けられているすべての機能がPE VNICに利用可能となる。
【0177】
サービスプロバイダは、それぞれのサービスの登録によって、PEを通じたアクセスを可能にし得る。プロバイダは、サービスの可視性を顧客テナンシに制限するポリシーをサービスと関連付けることができる。プロバイダは、特にマルチテナントサービスの場合、単一の仮想IPアドレス(VIP)の下で複数のサービスを登録可能である。同じサービスを表すこのようなプライベートエンドポイントが(複数のVCNに)複数存在していてもよい。
【0178】
そして、プライベートサブネット中のコンピュートインスタンスは、PE VNICのプライベートIPアドレスまたはサービスDNS名を使用して、サービスにアクセスすることができる。顧客VCN中のコンピュートインスタンスは、顧客VCN中のPEのプライベートIPアドレスにトラフィックを送ることによって、サービスにアクセスすることができる。プライベートアクセスゲートウェイ(PAGW)1330は、顧客サブネットプライベートエンドポイントに対するすべてのトラフィックの入力/出力点として作用するサービスプロバイダVCN(たとえば、サービスネットワーク1310におけるVCN)に付随し得るゲートウェイリソースである。PAGW1330によれば、プロバイダは、その内部IPアドレスリソースを使用することなく、PE接続の数をスケーリング可能となる。プロバイダは、単一のVCNに登録されている任意数のサービスに対して1つのPAGWを設定しさえすればよい。プロバイダは、1つまたは複数の顧客の複数のVCNにおけるプライベートエンドポイントとしてサービスを表すことができる。顧客から見て、PE VNICは、顧客のインスタンスに付随するのではなく、顧客が相互作用を望むサービスに付随しているように見える。プライベートエンドポイントを送信先とするトラフィックは、PAGW1330を介してサービスにルーティングされる。これらは、顧客-サービス間プライベート接続(C2S接続)と称する。
【0179】
また、PEの概念の使用により、FastConnect/IPsecリンクおよび顧客VCN中のプライベートエンドポイントをトラフィックが流れ得るようにして、サービスのプライベートアクセスを顧客のオンプレミスネットワークおよびデータセンタに拡張することができる。また、LPG1332と顧客VCN中のPEとの間にトラフィックが流れ得るようにして、サービスのプライベートアクセスを顧客のピアリングVCNに拡張することができる。
【0180】
顧客は、サブネットレベルでVCNのルーティングを制御可能であることから、顧客のVCN(VCN1304等)において各ゲートウェイを使用するサブネットを指定することができる。VCNから特定のゲートウェイを通るトラフィックが許可されているかを決定するには、VCNのルートテーブルが使用される。たとえば、特定のインスタンスにおいて、顧客VCN1304内のパブリックサブネットのルートテーブルは、IGW1320を通じて非ローカルトラフィックを送るようにしてもよい。同じ顧客VCN1304内のプライベートサブネットのルートテーブルは、SGW1326を通じてCSPサービスを送信先とするトラフィックを送るようにしてもよい。その他すべてのトラフィックは、NATゲートウェイ1328を介して送られるようになっていてもよい。ルートテーブルは、VCNから出て行くトラフィックしか制御しない。
【0181】
インバウンド接続を介してゲートウェイ経由でVCNに入るトラフィックの制御には、VCNと関連付けられているセキュリティリストが使用される。サブネット中のすべてのリソースが同じルートテーブルおよびセキュリティリストを使用する。セキュリティリストの使用によって、VCNのサブネット中のインスタンスに入出力可能な特定種類のトラフィックを制御することができる。セキュリティリストルールには、入力(インバウンド)および出力(アウトバウンド)のルールを含み得る。たとえば、入力ルールは、許可される送信元アドレス範囲を指定し得る一方、出力ルールは、許可される送信先アドレス範囲を指定し得る。セキュリティルールでは、特定のプロトコル(たとえば、TCP、ICMP)、特定のポート(たとえば、SSHの22、Windows RDPの3389)等を指定し得る。ある実施態様において、インスタンスのオペレーティングシステムは、セキュリティリストルールに合わせた独自のファイアウォールルールを強制し得る。ルールは、ステートフル(たとえば、接続が追跡され、応答トラフィックに対する明示的なセキュリティリストルールなく、応答が自動的に許可される)であってもよいし、ステートレスであってもよい。
【0182】
顧客VCNからの(すなわち、VCN1304にデプロイされたリソースまたはコンピュートインスタンスによる)アクセスは、パブリックアクセス、プライベートアクセス、または専用アクセスとして分類され得る。パブリックアクセスは、パブリックエンドポイントへのアクセスにパブリックIPアドレスまたはNATが使用されるアクセスモデルを表す。プライベートアクセスによれば、プライベートIPアドレスを有するVCN1304の顧客ワークロード(たとえば、プライベートサブネット中のリソース)は、インターネット等のパブリックネットワークを通過することなくサービスにアクセス可能となる。ある実施形態において、CSPI1301は、プライベートIPアドレスを有する顧客VCNワークロードがサービスゲートウェイを使用してサービス(のパブリックサービスエンドポイント)にアクセスできるようにする。したがって、サービスゲートウェイは、顧客のVCNと顧客のプライベートネットワークの外側に存在するサービスのパブリックエンドポイントとの間に仮想リンクを確立することによって、プライベートアクセスモデルを提供する。
【0183】
また、CSPIは、顧客オンプレミスインスタンスがFastConnect接続を使用して、インターネット等のパブリックネットワークを通過することなく、顧客VCN中の1つまたは複数のサービスにアクセスし得るFastConnectパブリックピアリング等の技術を使用することにより、専用パブリックアクセスを提供し得る。また、CSPIは、プライベートIPアドレスを有する顧客オンプレミスインスタンスがFastConnect接続を使用して顧客のVCNワークロードにアクセスし得るFastConnectプライベートピアリングを使用することにより、専用プライベートアクセスを提供し得る。FastConnectは、パブリックインターネットを使用して顧客のオンプレミスネットワークをCSPIおよびそのサービスに接続する代わりのネットワーク接続である。FastConnectは、インターネットベースの接続と比較して、帯域幅オプションおよび信頼性が高く、ネットワーキング体験が一貫した専用のプライベート接続を生成するための簡単かつ柔軟で経済的な方法を提供する。
【0184】
図13および上記付随する説明は、例示的な仮想ネットワークにおけるさまざまな仮想化コンポーネントを記載する。上述の通り、仮想ネットワークは、基礎的な物理ネットワークまたは基盤ネットワーク上に構築される。
図14は、ある実施形態に係る、仮想ネットワークの基本となるCSPI1400内の物理ネットワーク中の物理的構成要素の簡易アーキテクチャ図である。図示のように、CSPI1400は、クラウドサービスプロバイダ(CSP)が提供するコンポーネントおよびリソース(たとえば、コンピュート、メモリ、およびネットワーク用リソース)を含む分散環境を提供する。これらのコンポーネントおよびリソースは、登録している顧客すなわちCSPが提供する1つまたは複数のサービスに登録済みの顧客に対してクラウドサービス(たとえば、IaaSサービス)を提供するのに使用される。顧客には、顧客が登録したサービスに基づいて、CSPI1400のリソースの部分集合(たとえば、コンピュート、メモリ、およびネットワーク用リソース)のプロビジョニングがなされる。そして、顧客は、CSPI1400が提供する物理的なコンピュート、メモリ、およびネットワーク用リソースを使用して、それぞれのクラウドベース(すなわち、CSPIがホストする)カスタマイズ可能なプライベート仮想ネットワークを構築することができる。前述の通り、これらの顧客ネットワークは、仮想クラウドネットワーク(VCN)と称する。顧客は、コンピュートインスタンス等の1つまたは複数の顧客リソースをこれらの顧客VCNにデプロイすることができる。コンピュートインスタンスは、仮想マシン、ベアメタルインスタンス等の形態が可能である。CSPI1400は、ホストされている高可用性の環境において顧客が広範なアプリケーションおよびサービスを構築して動作させ得るようにするインフラおよび一組の補完的なクラウドサービスを提供する。
【0185】
図14に示される例示的な実施形態において、CSPI1400の物理的構成要素には、1つもしくは複数の物理ホストマシンもしくは物理サーバ(たとえば、1402、1406、1408)、ネットワーク仮想化デバイス(NVD)(たとえば、1410、1412)、トップオブラック(TOR)スイッチ(たとえば、1414、1416)、ならびに物理ネットワーク(たとえば、1418)および物理ネットワーク1418のスイッチを含む。物理ホストマシンまたはサーバは、VCNの1つまたは複数のサブネットに参加するさまざまなコンピュートインスタンスをホストおよび実行することができる。コンピュートインスタンスには、仮想マシンインスタンスおよびベアメタルインスタンスを含み得る。たとえば、
図13に示されるさまざまなコンピュートインスタンスは、
図14に示される物理ホストマシンによりホストされていてもよい。VCN中の仮想マシンコンピュートインスタンスは、1つのホストマシンにより実行されるようになっていてもよいし、複数の異なるホストマシンにより実行されるようになっていてもよい。また、物理ホストマシンは、仮想ホストマシン、コンテナベースのホストまたは機能等をホストすることができる。
図13に示されるVNICおよびVCN VRは、
図14に示されるNVDにより実行されるようになっていてもよい。
図13に示されるゲートウェイは、
図14に示されるホストマシンおよび/またはNVDにより実行されるようになっていてもよい。
【0186】
ホストマシンまたはサーバは、当該ホストマシン上に仮想化環境を生成して使用可能にするハイパーバイザ(仮想マシンモニタまたはVMMとも称する)を実行するようにしてもよい。仮想化または仮想化環境は、クラウドベースのコンピューティングを容易化する。ホストマシン上のハイパーバイザによって、1つまたは複数のコンピュートインスタンスが当該ホストマシン上で生成、実行、および管理され得る。ホストマシン上のハイパーバイザは、ホストマシンが実行するさまざまなコンピュートインスタンス間でのホストマシンの物理的コンピューティングリソース(たとえば、コンピュート、メモリ、およびネットワーク用リソース)の共有を可能にする。
【0187】
たとえば、
図14に示されるように、ホストマシン1402および1408はそれぞれ、ハイパーバイザ1460および1466を実行する。これらのハイパーバイザは、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組み合わせにより実現されていてもよい。通常、ハイパーバイザは、ホストマシンのオペレーティングシステム(OS)上に配置され、ホストマシンのハードウェアプロセッサ上で実行されるプロセスまたはソフトウェアレイヤである。ハイパーバイザは、ホストマシンが実行するさまざまな仮想マシンコンピュートインスタンス間でのホストマシンの物理的コンピューティングリソース(たとえば、プロセッサ/コア、メモリリソース、ネットワーク用リソース等の処理用リソース)の共有を可能にすることによって、仮想化環境を提供する。たとえば、
図14において、ハイパーバイザ1460は、ホストマシン1402のOS上に配置されていてもよく、ホストマシン1402が実行するコンピュートインスタンス(たとえば、仮想マシン)間でのホストマシン1402のコンピューティングリソース(たとえば、処理、メモリ、およびネットワーク用リソース)の共有を可能にする。仮想マシンは、それ自体のオペレーティングシステム(ゲストオペレーティングシステムと称する)を有し得るが、これは、ホストマシンのOSと同じであってもよいし、異なっていてもよい。ホストマシンが実行する仮想マシンのオペレーティングシステムは、同じホストマシンが実行する別の仮想マシンのオペレーティングシステムと同じであってもよいし、異なっていてもよい。このように、ハイパーバイザは、ホストマシンの同じコンピューティングリソースを共有しつつ、複数のオペレーティングシステムが互いに並行して実行され得るようにする。
図14に示されるホストマシンは、同じ種類のハイパーバイザを有していてもよいし、異なる種類のハイパーバイザを有していてもよい。
【0188】
コンピュートインスタンスとしては、仮想マシンインスタンスまたはベアメタルインスタンスが可能である。
図14において、ホストマシン1402上のコンピュートインスタンス1468およびホストマシン1408上のコンピュートインスタンス1474は、仮想マシンインスタンスの例である。ホストマシン1406は、顧客に提供されるベアメタルインスタンスの一例である。
【0189】
ある場合には、単一の顧客に対してホストマシン全体のプロビジョニングがなされ、当該ホストマシンがホストする1つまたは複数のコンピュートインスタンス(仮想マシンまたはベアメタルインスタンス)すべてが当該同じ顧客に属する。他の場合には、複数の顧客(すなわち、複数のテナント)間でホストマシンが共有され得る。このようなマルチテナンシのシナリオにおいて、ホストマシンは、異なる顧客に属する仮想マシンコンピュートインスタンスをホストするようにしてもよい。これらのコンピュートインスタンスは、異なる顧客の異なるVCNの要素であってもよい。ある実施形態において、ベアメタルコンピュートインスタンスは、ハイパーバイザを含まないベアメタルサーバによりホストされる。ベアメタルコンピュートインスタンスのプロビジョニングがなされた場合は、ベアメタルインスタンスをホストするホストマシンの物理CPU、メモリ、およびネットワークインターフェースの制御を単一の顧客またはテナントが維持するため、ホストマシンは、他の顧客またはテナントと共有されない。
【0190】
前述の通り、VCNの一部である各コンピュートインスタンスは、当該コンピュートインスタンスをVCNのサブネットの要素とし得るVNICと関連付けられている。コンピュートインスタンスと関連付けられているVNICは、コンピュートインスタンスに対するパケットまたはフレームの伝達を容易化する。VNICは、コンピュートインスタンスの生成時に当該コンピュートインスタンスと関連付けられる。ある実施形態において、ホストマシンが実行するコンピュートインスタンスの場合、当該コンピュートインスタンスと関連付けられているVNICは、ホストマシンに接続されているNVDにより実行される。たとえば、
図14において、ホストマシン1402は、VNIC1476と関連付けられている仮想マシンコンピュートインスタンス1468を実行し、VNIC1476は、ホストマシン1402に接続されているNVD1410により実行される。別の例において、ホストマシン1406がホストするベアメタルインスタンス1472は、ホストマシン1406に接続されているNVD1412により実行されるVNIC1480と関連付けられている。さらに別の例において、VNIC1484は、ホストマシン1408が実行するコンピュートインスタンス1474と関連付けられており、VNIC1484は、ホストマシン1408に接続されているNVD1412により実行される。
【0191】
ホストマシンがホストするコンピュートインスタンスの場合、当該ホストマシンに接続されているNVDは、コンピュートインスタンスが要素であるVCNに対応するVCN VRも実行する。たとえば、
図14に示される実施形態において、NVD1410は、コンピュートインスタンス1468が要素であるVCNに対応するVCN VR1477を実行する。また、NVD1412は、ホストマシン1406および1408がホストするコンピュートインスタンスに対応するVCNに対応する1つまたは複数のVCN VR1483を実行するようにしてもよい。
【0192】
ホストマシンは、当該ホストマシンの他のデバイスへの接続を可能にする1つまたは複数のネットワークインターフェースカード(NIC)を具備し得る。ホストマシン上のNICは、ホストマシンの別のデバイスへの通信接続を可能にする1つまたは複数のポート(または、インターフェース)を提供し得る。たとえば、ホストマシンおよびNVDに設けられた1つまたは複数のポート(または、インターフェース)によって、ホストマシンがNVDに接続されていてもよい。また、ホストマシンは、別のホストマシン等の他のデバイスに接続されていてもよい。
【0193】
たとえば、
図14においては、ホストマシン1402のNIC1432が提供するポート1434とNVD1410のポート1436との間に延びているリンク1420の使用によって、ホストマシン1402がNVD1410に接続されている。また、ホストマシン1406のNIC1444が提供するポート1446とNVD1412のポート1448との間に延びているリンク1424の使用によって、ホストマシン1406がNVD1412に接続されている。また、ホストマシン1408のNIC1450が提供するポート1452とNVD1412のポート1454との間に延びているリンク1426の使用によって、ホストマシン1408がNVD1412に接続されている。
【0194】
一方、NVDは、通信リンクを介してトップオブラック(TOR)スイッチに接続され、これが物理ネットワーク1418(スイッチファブリックとも称する)に接続されている。ある実施形態において、ホストマシンとNVDとの間およびNVDとTORスイッチとの間のリンクは、Ethernetリンクである。たとえば、
図14においては、リンク1428および1430の使用によって、NVD1410および1412がそれぞれ、TORスイッチ1414および1416に接続されている。ある実施形態において、リンク1420、1424、1426、1428、および1430は、Ethernetリンクである。TORに接続されているホストマシンおよびNVDの集合は、ラックと称する場合もある。
【0195】
物理ネットワーク1418は、TORスイッチ相互の通信を可能にする通信ファブリックを提供する。物理ネットワーク1418としては、多層ネットワークが可能である。ある実施態様において、物理ネットワーク1418は、スイッチの多層Closネットワークであり、TORスイッチ1414および1416は、多層マルチノード物理スイッチングネットワーク1418のリーフレベルノードを表す。さまざまなClosネットワーク構成が可能であり、2層ネットワーク、3層ネットワーク、4層ネットワーク、9層ネットワーク、および一般的に「n」層ネットワークが挙げられるが、これらに限定されない。Closネットワークの一例が
図17に示されるとともに後述される。
【0196】
ホストマシンとNVDとの間には、1対1構成、多対1構成、1対多構成等、さまざまな異なる接続構成が可能である。1対1構成の一実施態様においては、各ホストマシンがそれ自体の別個のNVDに接続される。たとえば、
図14において、ホストマシン1402は、当該ホストマシン1402のNIC1432を介して、NVD1410に接続されている。多対1構成においては、複数のホストマシンが1つのNVDに接続される。たとえば、
図14において、ホストマシン1406および1408はそれぞれ、NIC1444および1450を介して、同じNVD1412に接続されている。
【0197】
1対多構成においては、1つのホストマシンが複数のNVDに接続される。
図15は、ホストマシンが複数のNVDに接続されているCSPI1500内の一例を示している。
図15に示されるように、ホストマシン1502は、複数のポート1506および1508を含むネットワークインターフェースカード(NIC)1504を備える。ホストマシン1502は、ポート1506およびリンク1520を介して第1のNVD1510に接続されるとともに、ポート1508およびリンク1522を介して第2のNVD1512に接続されている。ポート1506および1508は、Ethernetポートであってもよく、ホストマシン1502とNVD1510および1512との間のリンク1520および1522は、Ethernetリンクであってもよい。そして、NVD1510が第1のTORスイッチ1514に接続され、NVD1512が第2のTORスイッチ1516に接続されている。NVD1510および1512とTORスイッチ1514および1516との間のリンクは、Ethernetリンクであってもよい。TORスイッチ1514および1516は、多層物理ネットワーク1518の層0スイッチングデバイスを表す。
【0198】
図15に示される構成は、物理スイッチネットワーク1518からホストマシン1502までの2つの別個の物理ネットワーク経路(TORスイッチ1514を通過してNVD1510ひいてはホストマシン1502に至る第1の経路およびTORスイッチ1516を通過してNVD1512ひいてはホストマシン1502に至る第2の経路)を提供する。これら別個の経路は、ホストマシン1502の可用性を増強し得る(高可用性と称する)。経路の一方に問題がある場合(たとえば、経路の一方のリンクがダウンした場合)またはデバイスの一方に問題がある場合(たとえば、特定のNVDが機能していない場合)は、他方の経路がホストマシン1502との通信に用いられるようになっていてもよい。
【0199】
図15に示される構成において、ホストマシンは、当該ホストマシンのNICが提供する2つの異なるポートの使用によって、2つの異なるNVDに接続されている。他の実施形態においては、複数のNVDへの接続を可能にする複数のNICをホストマシンが具備していてもよい。
【0200】
図14を再び参照して、NVDは、1つまたは複数のネットワークおよび/またはストレージ仮想化機能を実行する物理デバイスまたはコンポーネントである。NVDは、1つまたは複数の処理ユニット(たとえば、CPU、ネットワーク処理ユニット(NPU)、FPGA、パケット処理パイプライン等)、キャッシュを含むメモリ、およびポートを有する如何なるデバイスであってもよい。さまざまな仮想化機能は、NVDの1つまたは複数の処理ユニットが実行するソフトウェア/ファームウェアにより実行されるようになっていてもよい。
【0201】
NVDは、さまざまな異なる形態で実現されていてもよい。たとえば、ある実施形態においては、内蔵プロセッサが搭載されたスマートNICまたはインテリジェントNICと称するインターフェースカードとしてNVDが実現される。スマートNICは、ホストマシン上のNICとは別個のデバイスである。
図14において、NVD1410および1412は、ホストマシン1402ならびにホストマシン1406および1408にそれぞれ接続されているスマートNICとして実現されていてもよい。
【0202】
ただし、スマートNICは、NVDの実施態様の一例に過ぎない。さまざまな他の実施態様が可能である。たとえば、いくつかの他の実施態様においては、NVDまたはNVDが実行する1つもしくは複数の機能が1つもしくは複数のホストマシン、1つもしくは複数のTORスイッチ、ならびにCSPI1400の他の構成要素に組み込まれていてもよいし、これらにより実行されるようになっていてもよい。たとえば、NVDがホストマシンにおいて具現化され、NVDが実行する機能がホストマシンにより実行されるようになっていてもよい。別の例としては、NVDがTORスイッチの一部であってもよいし、パブリッククラウドに使用される種々複雑なパケット変換をTORスイッチが実行できるようにするNVDが実行する機能をTORスイッチが実行するように構成されていてもよい。NVDの機能を実行するTORは、スマートTORと称する場合もある。さらに他の実施態様において、ベアメタル(BM)インスタンスではなく仮想マシン(VM)インスタンスが顧客に提供される場合、NVDが実行する機能は、ホストマシンのハイパーバイザの内側において実現されていてもよい。いくつかの他の実施態様においては、ホストマシン群で動作する集中型サービスに対して、NVDの機能の一部がオフロードされるようになっていてもよい。
【0203】
図14に示されるようにスマートNICとして実現される場合等、ある実施形態においては、1つもしくは複数のホストマシンならびに1つもしくは複数のTORスイッチへの接続を可能にする複数の物理ポートをNVDが備えていてもよい。NVD上のポートは、ホスト側ポート(「サウスポート」とも称する)またはネットワーク側もしくはTOR側ポート(「ノースポート」とも称する)として分類され得る。NVDのホスト側ポートは、NVDのホストマシンへの接続に使用されるポートである。
図14におけるホスト側ポートの例としては、NVD1410上のポート1436ならびにNVD1412上のポート1448および1454が挙げられる。NVDのネットワーク側ポートは、NVDのTORスイッチへの接続に使用されるポートである。
図14におけるネットワーク側ポートの例としては、NVD1410上のポート1456およびNVD1412上のポート1458が挙げられる。
図14に示されるように、NVD1410は、当該NVD1410のポート1456からTORスイッチ1414まで延びているリンク1428によって、TORスイッチ1414に接続されている。同様に、NVD1412は、当該NVD1412のポート1458からTORスイッチ1416まで延びているリンク1430によって、TORスイッチ1416に接続されている。
【0204】
NVDは、ホスト側ポートを介して、ホストマシンからのパケットおよびフレーム(たとえば、ホストマシンがホストするコンピュートインスタンスにより生成されたパケットおよびフレーム)を受信し、必要なパケット処理を実行した後、当該NVDのネットワーク側ポートを介して、パケットおよびフレームをTORスイッチに転送することができる。NVDは、TORスイッチから、当該NVDのネットワーク側ポートを介してパケットおよびフレームを受信し、必要なパケット処理を実行した後、当該NVDのホスト側ポートを介して、パケットおよびフレームをホストマシンに転送することができる。
【0205】
ある実施形態においては、NVDとTORスイッチとの間に複数のポートおよび関連するリンクが存在していてもよい。これらのポートおよびリンクは、複数のポートまたはリンクから成るリンクアグリゲータグループ(LAGと称する)を構成するように集約されていてもよい。リンクの集約によれば、2つのエンドポイント間(たとえば、NVDとTORスイッチとの間)の複数の物理リンクが単一の論理リンクとして処理され得る。所与のLAGにおける物理リンクはすべて、同じ速度の全二重モードで動作するようになっていてもよい。LAGは、2つのエンドポイント間の接続の帯域幅および信頼性の増大に役立つ。LAGの物理リンクのうちの1つがダウンした場合、トラフィックは、LAGのその他の物理リンクのうちの1つへと動的かつ透過的に再割り当てされる。集約された物理リンクは、各々の個々のリンクよりも広い帯域幅を提供する。LAGと関連付けられている複数のポートは、単一の論理ポートとして処理される。トラフィックは、LAGの複数の物理リンクに跨って負荷分散され得る。1つまたは複数のLAGが2つのエンドポイント間に設定されていてもよい。2つのエンドポイントは、たとえばNVDとTORスイッチとの間であってもよいし、ホストマシンとNVDとの間であってもよい。
【0206】
NVDは、ネットワーク仮想化機能を実現または実行する。これらの機能は、NVDが実行するソフトウェア/ファームウェアにより実行される。ネットワーク仮想化機能の例としては、パケットカプセル化およびカプセル解除機能、VCNネットワークを生成するための機能、VCNセキュリティリスト(ファイアウォール)機能等のネットワークポリシーを実現するための機能、VCN中のコンピュートインスタンスに対するパケットのルーティングおよび転送を容易化する機能等が挙げられるが、これらに限定されない。ある実施形態においては、パケットの受信に際して、パケットを処理するとともにパケットの転送またはルーティングの方法を決定するためのパケット処理パイプラインをNVDが実行するように構成されている。このパケット処理パイプラインの一部として、NVDは、VCN中のcisと関連付けられているVNICの実行、VCNと関連付けられている仮想ルータ(VR)の実行、仮想ネットワークにおける転送またはルーティングを容易化するためのパケットのカプセル化およびカプセル解除、あるゲートウェイ(たとえば、ローカルピアリングゲートウェイ)の実行、セキュリティリスト、ネットワークセキュリティグループ、ネットワークアドレス変換(NAT)機能(たとえば、ホスト単位でのパブリックIPからプライベートIPへの変換)の実現、スロットリング機能、および他の機能等、オーバーレイネットワークと関連付けられている1つまたは複数の仮想機能を実行するようにしてもよい。
【0207】
ある実施形態において、NVDのパケット処理データ経路は、一連のパケット変換ステージで各々構成されている複数のパケットパイプラインを備えていてもよい。ある実施態様においては、パケットの受信に際して、パケットが解析され、単一のパイプラインに分類される。その後、パケットは、破棄されるか、または、NVDのインターフェースを介して送り出されるまで、1ステージずつ直線的に処理される。これらのステージは、基本的な機能的パケット処理構築ブロック(たとえば、ヘッダの検証、スロットルの強制、新たなレイヤ2ヘッダの挿入、L4ファイアウォールの強制、VCNカプセル化/カプセル解除等)を提供するため、既存のステージを組み立てることにより新たなパイプラインが構成され、新たなステージを生成して既存のパイプラインに挿入することにより新たな機能が追加され得る。
【0208】
NVDは、VCNの制御プレーンおよびデータプレーンに対応する制御プレーン機能およびデータプレーン機能の両者を実行し得る。VCN制御プレーンの例については、
図18、
図19、
図20、および
図21にも示され(参照番号1816、1916、2016、および2116参照)、後述される。VCNデータプレーンの例については、
図18、
図19、
図20、および
図21に示され(参照番号1818、1918、2018、および2118参照)、後述される。制御プレーン機能には、ネットワークの設定(たとえば、ルーティングおよびルートテーブルの設定、VNICの設定等)に使用され、データの転送方法を制御する機能を含む。ある実施形態においては、すべてのオーバーレイ-基盤マッピングを集中的に演算して、NVDおよび仮想ネットワークエッジデバイス(DRG、SGW、IGW等のさまざまなゲートウェイ等)に公開するVCN制御プレーンが提供される。また、同じメカニズムによって、ファイアウォールルールも公開され得る。ある実施形態において、NVDは、当該NVDに関連するマッピングのみを取得する。データプレーン機能には、制御プレーンを使用して設定された構成に基づくパケットの実際のルーティング/転送のための機能を含む。VCNデータプレーンは、基盤ネットワークを通過する前の顧客のネットワークパケットをカプセル化することにより実現される。カプセル化/カプセル解除の機能は、NVD上で実現される。ある実施形態において、NVDは、ホストマシンに入出力されるすべてのネットワークパケットを傍受して、ネットワーク仮想化機能を実行するように構成されている。
【0209】
前述の通り、NVDは、VNICおよびVCN VRを含むさまざまな仮想化機能を実行する。NVDは、VNICに接続されている1つまたは複数のホストマシンがホストするコンピュートインスタンスと関連付けられているVNICを実行し得る。たとえば、
図14に示されるように、NVD1410は、当該NVD1410に接続されているホストマシン1402がホストするコンピュートインスタンス1468と関連付けられているVNIC1476の機能を実行する。別の例として、NVD1412は、ホストマシン1406がホストするベアメタルコンピュートインスタンス1472と関連付けられているVNIC1480を実行するとともに、ホストマシン1408がホストするコンピュートインスタンス1474と関連付けられているVNIC1484を実行する。ホストマシンは、異なる顧客に属する異なるVCNに属するコンピュートインスタンスをホストすることができ、ホストマシンに接続されているNVDは、これらのコンピュートインスタンスに対応するVNICを実行することができる(すなわち、VNIC関連機能を実行することができる)。
【0210】
また、NVDは、コンピュートインスタンスのVCNに対応するVCN仮想ルータを実行する。たとえば、
図14に示される実施形態において、NVD1410は、コンピュートインスタンス1468が属するVCNに対応するVCN VR1477を実行する。NVD1412は、ホストマシン1406および1408がホストするコンピュートインスタンスが属する1つまたは複数のVCNに対応する1つまたは複数のVCN VR1483を実行する。ある実施形態において、当該VCNに対応するVCN VRは、当該VCNに属する少なくとも1つのコンピュートインスタンスをホストするホストマシンに接続されているすべてのNVDにより実行される。異なるVCNに属するコンピュートインスタンスをホストマシンがホストする場合、当該ホストマシンに接続されているNVDは、上記異なるVCNに対応するVCN VRを実行し得る。
【0211】
NVDは、VNICおよびVCN VRのほか、さまざまなソフトウェア(たとえば、デーモン)を実行するようにしてもよく、また、当該NVDが実行するさまざまなネットワーク仮想化機能を容易化する1つまたは複数のハードウェアコンポーネントを具備していてもよい。簡略化のため、これらのさまざまな構成要素は、
図14に示される「パケット処理コンポーネント」として一体的にグループ化されている。たとえば、NVD1410がパケット処理コンポーネント1486を備え、NVD1412がパケット処理コンポーネント1488を備える。たとえば、NVDのパケット処理コンポーネントは、NVDのポートおよびハードウェアインターフェースと相互作用して、NVDの使用により受信および通信されるすべてのパケットをモニタリングするとともに、ネットワーク情報を格納するように構成されているパケットプロセッサを具備していてもよい。ネットワーク情報には、たとえばNVDによって処理されるさまざまなネットワークフローを識別するネットワークフロー情報およびフローごとの情報(たとえば、フローごとの統計量)を含み得る。ある実施形態においては、ネットワークフロー情報がVNICごとに格納され得る。パケットプロセッサは、パケット単位の操作を実行するほか、ステートフルNATおよびL4ファイアウォール(FW)を実現し得る。別の例として、パケット処理コンポーネントは、NVDにより格納された情報を1つまたは複数の異なる複製ターゲットストアに複製するように構成されている複製エージェントを含んでいてもよい。さらに別の例として、パケット処理コンポーネントは、NVDに対するロギング機能を実行するように構成されているロギングエージェントを含んでいてもよい。また、パケット処理コンポーネントは、NVDの性能および健全性をモニタリングし、場合によっては、NVDに接続されている他のコンポーネントの状態および健全性をモニタリングするためのソフトウェアを含んでいてもよい。
【0212】
図13は、VCN、VCN内のサブネット、サブネットにデプロイされたコンピュートインスタンス、コンピュートインスタンスと関連付けられているVNIC、VCNのVR、およびVCNに対して設定された一組のゲートウェイを含む例示的な仮想またはオーバーレイネットワークの構成要素を示している。
図13に示されるオーバーレイの構成要素は、
図14に示される物理的構成要素のうちの1つまたは複数により実行またはホストされ得る。たとえば、VCN中のコンピュートインスタンスは、
図14に示される1つまたは複数のホストマシンにより実行またはホストされ得る。ホストマシンがホストするコンピュートインスタンスの場合、当該コンピュートインスタンスと関連付けられているVNICは通常、当該ホストマシンに接続されているNVDにより実行される(すなわち、VNIC機能は、当該ホストマシンに接続されているNVDにより提供される)。VCNのVCN VR機能は、当該VCNの一部であるコンピュートインスタンスをホストまたは実行するホストマシンに接続されているすべてのNVDにより実行される。VCNと関連付けられているゲートウェイは、1つまたは複数の異なる種類のNVDにより実行され得る。たとえば、あるゲートウェイがスマートNICにより実行され得る一方、他のゲートウェイは、1つもしくは複数のホストマシンまたはNVDの他の実施態様により実行され得る。
【0213】
上述の通り、顧客VCN中のコンピュートインスタンスは、さまざまな異なるエンドポイントと通信可能であり、エンドポイントとしては、送信元コンピュートインスタンスと同じサブネット内のもの、異なるサブネットではあるが送信元コンピュートインスタンスと同じVCN内のもの、または送信元コンピュートインスタンスのVCNの外側のエンドポイントが可能である。これらの通信は、コンピュートインスタンスと関連付けられているVNIC、VCN VR、およびVCNと関連付けられているゲートウェイの使用により容易化される。
【0214】
VCN中の同じサブネット上の2つのコンピュートインスタンス間の通信に関して、この通信は、送信元および送信先コンピュートインスタンスと関連付けられているVNICの使用により容易化される。送信元および送信先コンピュートインスタンスは、同じホストマシンによりホストされていてもよいし、異なるホストマシンによりホストされていてもよい。送信元コンピュートインスタンスを起点とするパケットは、送信元コンピュートインスタンスをホストするホストマシンから、当該ホストマシンに接続されているNVDに転送され得る。NVD上では、パケット処理パイプラインの使用によりパケットが処理されるが、これには、送信元コンピュートインスタンスと関連付けられているVNICの実行を含み得る。パケットの送信先エンドポイントが同じサブネット内であるため、送信元コンピュートインスタンスと関連付けられているVNICの実行によって、パケットは、送信先コンピュートインスタンスと関連付けられているVNICを実行するNVDに転送される。その後、NVDがパケットを処理して、送信先コンピュートインスタンスに転送する。送信元および送信先コンピュートインスタンスと関連付けられているVNICは、(たとえば、同じホストマシンによって、送信元および送信先の両コンピュートインスタンスがホストされている場合)同じNVD上で実行されるようになっていてもよいし、(たとえば、異なるNVDに接続されている異なるホストマシンによって、送信元および送信先コンピュートインスタンスがホストされている場合)異なるNVD上で実行されるようになっていてもよい。VNICは、NVDにより格納されているルーティング/転送テーブルを使用して、パケットのネクストホップを決定するようにしてもよい。
【0215】
あるサブネット中のコンピュートインスタンスから同じVCNの異なるサブネット中のエンドポイントにパケットが送られる場合、送信元コンピュートインスタンスを起点とするパケットは、送信元コンピュートインスタンスをホストするホストマシンから、当該ホストマシンに接続されているNVDに送られる。NVD上では、パケット処理パイプラインの使用によりパケットが処理されるが、これには、1つもしくは複数のVNICならびにVCNと関連付けられているVRの実行を含み得る。たとえば、パケット処理パイプラインの一部として、NVDは、送信元コンピュートインスタンスと関連付けられているVNICに対応する機能の実行または呼び出し(VNICの実行とも称する)を行う。VNICが実行する機能には、パケット上のVLANタグの確認を含み得る。パケットの送信先がサブネットの外側であることから、次は、NVDによりVCN VR機能が呼び出されて実行される。そして、VCN VRは、送信先コンピュートインスタンスと関連付けられているVNICを実行するNVDへとパケットをルーティングする。その後、送信先コンピュートインスタンスと関連付けられているVNICは、パケットを処理して、送信先コンピュートインスタンスに転送する。送信元および送信先コンピュートインスタンスと関連付けられているVNICは、(たとえば、同じホストマシンによって、送信元および送信先の両コンピュートインスタンスがホストされている場合)同じNVD上で実行されるようになっていてもよいし、(たとえば、異なるNVDに接続されている異なるホストマシンによって、送信元および送信先コンピュートインスタンスがホストされている場合)異なるNVD上で実行されるようになっていてもよい。
【0216】
パケットの送信先が送信元コンピュートインスタンスのVCNの外側である場合、送信元コンピュートインスタンスを起点とするパケットは、送信元コンピュートインスタンスをホストするホストマシンから、当該ホストマシンに接続されているNVDに送られる。NVDは、送信元コンピュートインスタンスと関連付けられているVNICを実行する。パケットの送信先エンドポイントがVCNの外側であることから、パケットはその後、当該VCNのVCN VRにより処理される。NVDはVCN VR機能を呼び出すが、その結果、VCNと関連付けられている適当なゲートウェイを実行するNVDにパケットが転送される。たとえば、送信先が顧客のオンプレミスネットワーク内のエンドポイントである場合、パケットは、VCN VRにより、VCNに対して設定されたDRGゲートウェイを実行するNVDに転送され得る。VCN VRは、送信元コンピュートインスタンスと関連付けられているVNICを実行するNVDと同じNVD上で実行されるようになっていてもよいし、異なるNVDにより実行されるようになっていてもよい。ゲートウェイはNVDにより実行され得るが、これは、スマートNICであってもよいし、ホストマシンであってもよいし、NVDの他の実施態様であってもよい。その後、パケットは、ゲートウェイにより処理され、目的とする送信先エンドポイントへのパケットの伝達を容易化するネクストホップに転送される。たとえば、
図14に示される実施形態においては、リンク1420を介して(NIC1432の使用によって)、コンピュートインスタンス1468を起点とするパケットがホストマシン1402からNVD1410に送られるようになっていてもよい。NVD1410では、VNIC1476が呼び出されるが、これは、送信元コンピュートインスタンス1468と関連付けられているためである。VNIC1476は、パケットにカプセル化されている情報を調べ、目的とする送信先エンドポイントへのパケットの伝達を容易化するためにパケットを転送するネクストホップを決定した後、パケットを決定したネクストホップに転送するように構成されている。
【0217】
VCNにデプロイされたコンピュートインスタンスは、さまざまな異なるエンドポイントと通信可能である。これらのエンドポイントには、CSPI1400がホストするエンドポイントおよびCSPI1400の外側のエンドポイントを含み得る。CSPI1400がホストするエンドポイントは、同じVCNまたは他のVCN(顧客のVCNであってもよいし、顧客に属さないVCNであってもよい)のインスタンスを含み得る。CSPI1400がホストするエンドポイント間の通信は、物理ネットワーク1418を介して実行されるようになっていてもよい。また、コンピュートインスタンスは、CSPI1400がホストしていない(すなわち、CSPI1400の外側の)エンドポイントと通信し得る。このようなエンドポイントの例としては、顧客のオンプレミスネットワークもしくはデータセンタ内のエンドポイントまたはインターネット等のパブリックネットワークを介してアクセス可能なパブリックエンドポイントが挙げられる。CSPI1400の外側のエンドポイントとの通信は、パブリックネットワーク(たとえば、インターネット)(
図14に示されず)を介して実行されるようになっていてもよいし、さまざまな通信プロトコルの使用によりプライベートネットワーク(
図14に示されず)を介して実行されるようになっていてもよい。
【0218】
図14に示されるCSPI1400のアーキテクチャは一例に過ぎず、何ら限定は意図されない。代替実施形態においては、変形、代替、および改良が可能である。たとえば、いくつかの実施態様において、CSPI1400は、
図14に示されるものよりシステムまたは構成要素が多くても少なくてもよいし、2つ以上のシステムを組み合わせるようにしてもよいし、システムの構成または配置が異なっていてもよい。
図14に示されるシステム、サブシステム、および他の構成要素は、それぞれのシステムの1つまたは複数の処理ユニット(たとえば、プロセッサ、コア)が実行するソフトウェア(たとえば、コード、命令、プログラム)にて実装されていてもよいし、ハードウェアを使用して実装されていてもよいし、これらの組み合わせにて実装されていてもよい。ソフトウェアは、非一時的記憶媒体(たとえば、メモリデバイス)に格納されていてもよい。
【0219】
図16は、ある実施形態に係る、マルチテナンシをサポートするI/O仮想化を提供するためのホストマシンとNVDとの間の接続を示している。
図16に示されるように、ホストマシン1602は、仮想化環境を提供するハイパーバイザ1604を実行する。ホストマシン1602は、2つの仮想マシンインスタンス(顧客/テナント#1に属するVM1 1606および顧客/テナント#2に属するVM2 1608)を実行する。ホストマシン1602は、リンク1614を介してNVD1612に接続されている物理NIC1610を備える。各々のコンピュートインスタンスは、NVD1612が実行するVNICに付随する。
図16の実施形態においては、VM1 1606がVNIC-VM1 1620に付随し、VM2 1608がVNIC-VM2 1622に付随する。
【0220】
図16に示されるように、NIC1610は、2つの論理NIC(論理NIC A1616および論理NIC B1618)を備える。各仮想マシンは、それ自体の論理NICに付随して協働するように構成されている。たとえば、VM1 1606が論理NIC A1616に付随し、VM2 1608が論理NIC B1618に付随する。ホストマシン1602は、複数のテナントが共有する物理NIC1610を1つしか備えていないが、論理NICのため、各テナントの仮想マシンは、それぞれがホストマシンおよびNICを有するものと認識する。
【0221】
ある実施形態において、各論理NICには、それ自体のVLAN IDが割り当てられている。このため、テナント#1については特定のVLAN IDが論理NIC A1616に割り当てられ、テナント#2については別個のVLAN IDが論理NIC B1618に割り当てられている。パケットがVM1 1606から送られると、ハイパーバイザによって、テナント#1に割り当てられているタグがパケットに付随し、パケットはその後、リンク1614を介して、ホストマシン1602からNVD1612に送られる。同様に、パケットがVM2 1608から送られると、ハイパーバイザによって、テナント#2に割り当てられているタグがパケットに付随し、パケットはその後、リンク1614を介して、ホストマシン1602からNVD1612に送られる。したがって、ホストマシン1602からNVD1612に送られたパケット1624には、特定のテナントおよび関連するVMを識別するタグ1626が関連付けられている。NVD上では、ホストマシン1602から受信されたパケット1624に関して、当該パケットと関連付けられているタグ1626の使用により、VNIC-VM1 1620またはVNIC-VM2 1622のいずれによりパケットが処理されるべきかを判定する。そして、対応するVNICによりパケットが処理される。
図16に示される構成によれば、各テナントのコンピュートインスタンスは、それぞれがホストマシンおよびNICを有するものと認識することができる。
図16に示される設定は、マルチテナンシをサポートするためのI/O仮想化を提供する。
【0222】
図17は、ある実施形態に係る、物理ネットワーク1700の簡易ブロック図である。
図17に示される実施形態は、Closネットワークとして構造化されている。Closネットワークは、広い二分割帯域幅およびリソースの最大利用を維持しつつ、接続の冗長性を与えるように設計された特定種類のネットワークトポロジである。Closネットワークは、非ブロック型マルチステージまたは多層スイッチングネットワークの一種であり、ステージまたは層の数としては、2つ、3つ、4つ、5つ等が可能である。
図17に示される実施形態は、層1、2、および3を含む3層ネットワークである。TORスイッチ1704は、Closネットワークにおける層0スイッチを表す。TORスイッチには、1つまたは複数のNVDが接続されている。層0スイッチは、物理ネットワークのエッジデバイスとも称する。層0スイッチは、リーフスイッチとも称する層1スイッチに接続されている。
図17に示される実施形態においては、一組の「n」個の層0TORスイッチが一組の「n」個の層1スイッチに接続され、一体的にポッドを構成する。あるポッド中の各層0スイッチは、当該ポッド中のすべての層1スイッチに相互接続されているが、ポッド間のスイッチの接続はない。ある実施態様においては、2つのポッドをブロックと称する。各ブロックは、一組の「n」個の層2スイッチ(スパインスイッチと称する場合もある)によるサーブまたは層2スイッチへの接続がなされる。物理ネットワークトポロジには、複数のブロックが存在し得る。そして、層2スイッチは、「n」個の層3スイッチ(スーパースパインスイッチと称する場合もある)に接続されている。物理ネットワーク1700を介するパケットの通信は通常、1つまたは複数のレイヤ3通信プロトコルの使用により実行される。通常は、TORレイヤを除く物理ネットワークのすべてのレイヤがn通りの冗長性を有することから、高可用性を実現可能である。物理ネットワークのスケーリングを可能にするため、ポッドおよびブロックに対するポリシーの指定によって、物理ネットワークにおけるスイッチ相互の可視性を制御するようにしてもよい。
【0223】
Closネットワークの特徴として、ある層0スイッチから別の層0スイッチに達する(または、層0スイッチに接続されているNVDから層0スイッチに接続されている別のNVDに達する)最大ホップカウントが固定されている。たとえば、3層Closネットワークにおいて、あるNVDから別のNVDにパケットが達するのに必要なホップは、最大でも7つであり、送信元および目標NVDがClosネットワークのリーフ層に接続されている。同様に、4層Closネットワークにおいて、あるNVDから別のNVDにパケットが達するのに必要なホップは、最大でも9つであり、送信元および目標NVDがClosネットワークのリーフ層に接続されている。このため、Closネットワークアーキテクチャは、ネットワーク全体で一貫したレイテンシを維持するが、これは、データセンタ内およびデータセンタ間の通信に重要である。Closトポロジは水平方向にスケーリング可能であり、コスト効率に優れている。ネットワークの帯域幅/スループット容量は、さまざまな層により多くのスイッチ(たとえば、より多くのリーフおよびスパインスイッチ)を追加するとともに、隣り合う層のスイッチ間のリンクの数を増やすことによって、容易に増大可能である。
【0224】
ある実施形態において、CSPI内の各リソースには、クラウド識別子(CID)と称する一意の識別子が割り当てられている。この識別子は、リソースの情報の一部として含まれており、たとえばコンソールまたはAPIを介してリソースを管理する際に使用可能である。CIDの例示的な構文は、以下の通りである。
ocid1.<RESOURCE TYPE>.<REALM>.[REGION][.FUTURE USE].<UNIQUE ID>
ここで、
ocid1は、CIDのバージョンを示す文字列であり、
RESOURCE TYPEは、リソースの種類(たとえば、インスタンス、ボリューム、VCN、サブネット、ユーザ、グループ等)であり、
REALMは、リソースが存在するレルムであり(例示的な値は、商用レルムの場合の「c1」、政府クラウドレルムの場合の「c2」、または連邦政府クラウドレルムの場合の「c3」等であり、各レルムは、それ自体のドメイン名を有し得る)、
REGIONは、リソースが存在するリージョンであり(リージョンをリソースに適用できない場合、この部分は空白となり得る)、
FUTURE USEは、将来の使用に対する予約であり、
UNIQUE IDは、IDの一意の部分である(フォーマットは、リソースまたはサービスの種類に応じて異なり得る)。
【0225】
上述の通り、サービス型インフラ(IaaS)は、ある特定の種類のクラウドコンピューティングである。IaaSは、パブリックネットワーク(たとえば、インターネット)を介して仮想化コンピューティングリソースを提供するように構成可能である。IaaSモデルにおいては、クラウドコンピューティングプロバイダがインフラコンポーネント(たとえば、サーバ、記憶装置、ネットワークノード(たとえば、ハードウェア)、デプロイメントソフトウェア、プラットフォーム仮想化(たとえば、ハイパーバイザレイヤ)等)をホスト可能である。また、場合により、IaaSプロバイダは、これらのインフラコンポーネントに付随する多様なサービス(たとえば、課金、モニタリング、ロギング、負荷分散、およびクラスタリング等)を供給するようにしてもよい。したがって、これらのサービスがポリシー駆動であり得ることから、IaaSユーザは、負荷分散を推進するポリシーの実装によって、アプリケーションの可用性および性能を維持可能となり得る。
【0226】
場合により、IaaSの顧客は、インターネット等のワイドエリアネットワーク(WAN)を通じてリソースおよびサービスにアクセスし、クラウドプロバイダのサービスを使用して、アプリケーションスタックのその他の要素をインストールすることができる。たとえば、ユーザは、IaaSプラットフォームにログインして、仮想マシン(VM)の生成、オペレーティングシステム(OS)の各VMへのインストール、データベース等のミドルウェアのデプロイ、ワークロードおよびバックアップ用のストレージバケットの生成、さらには企業向けソフトウェアの当該VMへのインストールを行うことができる。そして、顧客は、プロバイダのサービスを使用して、ネットワークトラフィックの分散、アプリケーションの問題のトラブルシューティング、性能のモニタリング、障害回復の管理等、さまざまな機能を実行することができる。
【0227】
ほとんどの場合、クラウドコンピューティングモデルには、クラウドプロバイダの参加が必要となる。クラウドプロバイダは、IaaSの提供(たとえば、供与、賃貸、販売)に特化したサードパーティサービスであってもよいが、そうである必要はない。また、エンティティは、プライベートクラウドをデプロイして、それ自体のインフラサービスプロバイダになることも考えられる。
【0228】
いくつかの例において、IaaSデプロイメントは、準備されたアプリケーションサーバ等に新たなアプリケーションまたはアプリケーションの新たなバージョンを置くプロセスである。また、サーバを準備する(たとえば、ライブラリ、デーモン等をインストールする)プロセスも含み得る。これは、クラウドプロバイダによって、ハイパーバイザレイヤ(たとえば、サーバ、ストレージ、ネットワークハードウェア、および仮想化)の下で管理されることが多い。このため、顧客は、(たとえば、(オンデマンドでスピンアップ可能な)セルフサービスの仮想マシン上での)ハンドリング(OS)、ミドルウェア、および/またはアプリケーションのデプロイメント等を担い得る。
【0229】
いくつかの例において、IaaSプロビジョニングは、使用するコンピュータまたは仮想ホストを取得することを表し、これらに必要なライブラリまたはサービスをインストールすることさえ表し得る。ほとんどの場合、デプロイメントにはプロビジョニングを含まず、プロビジョニングは最初に実行することが必要となり得る。
【0230】
場合により、IaaSプロビジョニングには2つの異なる課題が存在する。第一に、最初の課題として、何かが動作する前のインフラの初期セットのプロビジョニングがある。第二に、すべてのプロビジョニングの後、既存のインフラを発展させる課題(たとえば、新たなサービスの追加、サービスの変更、サービスの削除等)がある。場合により、これら2つの課題は、インフラの設定の宣言による定義を可能にすることによって対処され得る。言い換えると、インフラ(たとえば、必要なコンポーネントおよびコンポーネントの相互作用の様態)は、1つまたは複数の設定ファイルにより規定され得る。このため、インフラの全体的なトポロジ(たとえば、リソースの依存関係および各リソースが一体的に作用する様態)は、宣言により記述され得る。場合により、トポロジが規定されると、設定ファイルに記述されているさまざまなコンポーネントを形成および/または管理するワークフローが生成され得る。
【0231】
いくつかの例において、インフラは、相互接続された多くの要素を有し得る。たとえば、コアネットワークとしても知られる1つまたは複数の仮想プライベートクラウド(VPC)(たとえば、設定可能および/または共有コンピューティングリソースの潜在的オンデマンドプール)が存在し得る。また、いくつかの例においては、1つまたは複数のインバウンド/アウトバウンドトラフィックグループルールが存在して、ネットワークのインバウンドおよび/もしくはアウトバウンドトラフィックが設定される様態ならびに1つもしくは複数の仮想マシン(VM)を規定するようなプロビジョニングがなされ得る。また、負荷分散器、データベース等の他のインフラ要素のプロビジョニングもなされ得る。より多くのインフラ要素の要望および/または追加がある場合は、インフラが少しずつ発展し得る。
【0232】
場合によっては、連続デプロイメント技術の採用によって、さまざまな仮想コンピューティング環境に及ぶインフラコードのデプロイメントが可能となり得る。また、記載の技術は、これらの環境内でのインフラ管理を可能にし得る。いくつかの例において、サービスチームは、(たとえば、地理的に異なるさまざまな場所、場合により全世界に及ぶ)1つまたは複数の(ただし、多数であることが多い)異なる生成環境へのデプロイメントが望ましいコードを記述することができる。ただし、いくつかの例において、コードがデプロイされるインフラは、最初に設定する必要がある。場合によっては、プロビジョニングの手動による実行、リソースのプロビジョニングへのプロビジョニングツールの利用、および/またはインフラのプロビジョニング後のコードのデプロイメントへのデプロイメントツールの利用も可能である。
【0233】
図18は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの例示的なパターンを示すブロック
図1800である。サービスオペレータ1802は、仮想クラウドネットワーク(VCN)1806およびセキュアホストサブネット1808を含み得るセキュアホストテナンシ1804に通信結合され得る。いくつかの例において、サービスオペレータ1802は、1つまたは複数のクライアントコンピューティングデバイスを使用していてもよく、これらは、Microsoft Windows Mobile(登録商標)等のソフトウェアおよび/またはiOS、Windows Phone、Android、BlackBerry 8、Palm OS等の多様なモバイルオペレーティングシステムを実行するとともに、インターネット、電子メール、ショートメッセージサービス(SMS)、BlackBerry(登録商標)、または他の通信プロトコルを使用可能な携帯型手持ち式デバイス(たとえば、iPhone(登録商標)、携帯電話、iPad(登録商標)、コンピューティングタブレット、個人用デジタル補助装置(PDA))またはウェアラブルデバイス(たとえば、Google Glass(登録商標)ヘッドマウントディスプレイ等)であってもよい。あるいは、クライアントコンピューティングデバイスとしては、汎用パソコンが可能であり、一例として、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinux(登録商標)オペレーティングシステムのさまざまなバージョンを実行するパソコンおよび/またはラップトップコンピュータが挙げられる。クライアントコンピューティングデバイスとしては、多様な市販のUNIX(登録商標)またはUNIX類似オペレーティングシステムのいずれかを実行するワークステーションコンピュータが可能であり、たとえばGoogle Chrome OS等の多様なGNU/Linuxオペレーティングシステムが挙げられるが、これらに限定されない。この代替または追加として、クライアントコンピューティングデバイスは、VCN1806および/またはインターネットにアクセスし得るネットワークを介して通信可能なシンクライアントコンピュータ、インターネット対応ゲームシステム(たとえば、Kinect(登録商標)ジェスチャ入力装置の有無を問わないMicrosoft Xboxゲームコンソール)、および/またはパーソナルメッセージングデバイス等、その他任意の電子デバイスであってもよい。
【0234】
VCN1806は、セキュアシェル(SSH)VCN1812に含まれるローカルピアリングゲートウェイ(LPG)1810を介してSSH VCN1812に通信結合され得るLPG1810を具備することができる。SSH VCN1812は、SSHサブネット1814を具備することができ、また、SSH VCN1812は、制御プレーンVCN1816に含まれるLPG1810を介して制御プレーンVCN1816に通信結合され得る。また、SSH VCN1812は、LPG1810を介してデータプレーンVCN1818に通信結合され得る。制御プレーンVCN1816およびデータプレーンVCN1818は、IaaSプロバイダにより所有および/または運用され得るサービステナンシ1819に含まれ得る。
【0235】
制御プレーンVCN1816は、境界ネットワーク(たとえば、企業イントラネットと外部ネットワークとの間の企業ネットワークの一部)として機能する制御プレーン緩衝領域(DMZ)層1820を具備することができる。DMZベースのサーバは、責任が限定され、侵害を抑制するのに役立ち得る。また、DMZ層1820は、1つまたは複数の負荷分散器(LB)サブネット1822、アプリサブネット1826を含み得る制御プレーンアプリ層1824、データベース(DB)サブネット1830(たとえば、フロントエンドDBサブネットおよび/またはバックエンドDBサブネット)を含み得る制御プレーンデータ層1828を具備することができる。制御プレーンDMZ層1820に含まれるLBサブネット1822は、制御プレーンアプリ層1824に含まれるアプリサブネット1826および制御プレーンVCN1816に含まれ得るインターネットゲートウェイ1834に通信結合され、アプリサブネット1826は、制御プレーンデータ層1828に含まれるDBサブネット1830、サービスゲートウェイ1836、およびネットワークアドレス変換(NAT)ゲートウェイ1838に通信結合され得る。制御プレーンVCN1816は、サービスゲートウェイ1836およびNATゲートウェイ1838を具備することができる。
【0236】
制御プレーンVCN1816は、アプリサブネット1826を含み得るデータプレーンミラーアプリ層1840を具備することができる。データプレーンミラーアプリ層1840に含まれるアプリサブネット1826は、コンピュートインスタンス1844を実行し得る仮想ネットワークインターフェースコントローラ(VNIC)1842を具備することができる。コンピュートインスタンス1844は、データプレーンミラーアプリ層1840のアプリサブネット1826を、データプレーンアプリ層1846に含まれ得るアプリサブネット1826に通信結合し得る。
【0237】
データプレーンVCN1818は、データプレーンアプリ層1846、データプレーンDMZ層1848、およびデータプレーンデータ層1850を具備することができる。データプレーンDMZ層1848は、データプレーンアプリ層1846のアプリサブネット1826およびデータプレーンVCN1818のインターネットゲートウェイ1834に通信結合され得るLBサブネット1822を具備することができる。アプリサブネット1826は、データプレーンVCN1818のサービスゲートウェイ1836およびデータプレーンVCN1818のNATゲートウェイ1838に通信結合され得る。また、データプレーンデータ層1850は、データプレーンアプリ層1846のアプリサブネット1826に通信結合され得るDBサブネット1830を具備することができる。
【0238】
制御プレーンVCN1816およびデータプレーンVCN1818のインターネットゲートウェイ1834は、パブリックインターネット1854に通信結合され得るメタデータ管理サービス1852に通信結合され得る。パブリックインターネット1854は、制御プレーンVCN1816およびデータプレーンVCN1818のNATゲートウェイ1838に通信結合され得る。制御プレーンVCN1816およびデータプレーンVCN1818のサービスゲートウェイ1836は、クラウドサービス1856に通信結合され得る。
【0239】
いくつかの例において、制御プレーンVCN1816およびデータプレーンVCN1818のサービスゲートウェイ1836は、パブリックインターネット1854を介さずにクラウドサービス1856へのアプリケーションプログラミングインターフェース(API)呼び出しを行うことができる。サービスゲートウェイ1836からクラウドサービス1856へのAPI呼び出しとしては、単方向が可能である。サービスゲートウェイ1836は、クラウドサービス1856へのAPI呼び出しを行うことができ、クラウドサービス1856は、要求されたデータをサービスゲートウェイ1836に送ることができる。ただし、クラウドサービス1856は、サービスゲートウェイ1836へのAPI呼び出しを開始しなくてもよい。
【0240】
いくつかの例において、セキュアホストテナンシ1804は、サービステナンシ1819に直接接続され、さもなければ隔離され得る。セキュアホストサブネット1808は、当該目的以外では隔離されるシステムを介する双方向通信を可能にし得るLPG1810を通じてSSHサブネット1814と通信することができる。セキュアホストサブネット1808をSSHサブネット1814に接続することによって、セキュアホストサブネット1808は、サービステナンシ1819内の他のエンティティにアクセス可能となる。
【0241】
制御プレーンVCN1816は、サービステナンシ1819のユーザによる所望のリソースの設定あるいはプロビジョニングを可能にし得る。制御プレーンVCN1816においてプロビジョニングがなされた所望のリソースは、データプレーンVCN1818においてデプロイあるいは使用されるようになっていてもよい。いくつかの例において、制御プレーンVCN1816は、データプレーンVCN1818から隔離可能であり、制御プレーンVCN1816のデータプレーンミラーアプリ層1840は、当該データプレーンミラーアプリ層1840およびデータプレーンアプリ層1846に含まれ得るVNIC1842を介して、データプレーンVCN1818のデータプレーンアプリ層1846と通信可能である。
【0242】
いくつかの例において、システムのユーザすなわち顧客は、パブリックインターネット1854を通じて要求を行う(たとえば、動作の生成、読み出し、更新、または消去(CRUD)を行う)ことができ、パブリックインターネット1854は、リクエストをメタデータ管理サービス1852に送ることができる。メタデータ管理サービス1852は、インターネットゲートウェイ1834を通じて、リクエストを制御プレーンVCN1816に送ることができる。リクエストは、制御プレーンDMZ層1820に含まれるLBサブネット1822により受信され得る。LBサブネット1822は、リクエストが有効であるものと判定するようにしてもよく、この判定に応答して、LBサブネット1822は、制御プレーンアプリ層1824に含まれるアプリサブネット1826にリクエストを送信することができる。リクエストが検証され、パブリックインターネット1854への呼び出しが必要になった場合、パブリックインターネット1854への呼び出しは、パブリックインターネット1854への呼び出しを行い得るNATゲートウェイ1838に送信されるようになっていてもよい。リクエストによる格納が望ましいと考えられるメタデータは、DBサブネット1830に格納され得る。
【0243】
いくつかの例において、データプレーンミラーアプリ層1840は、制御プレーンVCN1816とデータプレーンVCN1818との間の直接通信を容易化し得る。たとえば、設定の変更、更新、または他の好適な修正は、データプレーンVCN1818に含まれるリソースに適用されるのが望ましいと考えられる。制御プレーンVCN1816は、VNIC1842を介して、データプレーンVCN1818に含まれるリソースと直接通信することにより、リソースの設定の変更、更新、または他の好適な修正を実行することができる。
【0244】
いくつかの実施形態において、制御プレーンVCN1816およびデータプレーンVCN1818は、サービステナンシ1819に含まれ得る。この場合、システムのユーザすなわち顧客は、制御プレーンVCN1816またはデータプレーンVCN1818のいずれかを所有していなくてもよいし、いずれかを動作させないようにしてもよい。代わりに、IaaSプロバイダは、制御プレーンVCN1816およびデータプレーンVCN1818の両者を所有していてもよいし、両者を動作させるようにしてもよく、両者がサービステナンシ1819に含まれていてもよい。本実施形態は、ユーザすなわち顧客の他のユーザすなわち他の顧客のリソースとの相互作用を阻止し得るネットワークの隔離を可能にし得る。また、本実施形態は、格納に対して所望のレベルの脅威阻止を有し得ないパブリックインターネット1854に依拠する必要なく、システムのユーザすなわち顧客によるデータベースのプライベートな格納を可能にし得る。
【0245】
他の実施形態において、制御プレーンVCN1816に含まれるLBサブネット1822は、サービスゲートウェイ1836から信号を受信するように構成可能である。本実施形態において、制御プレーンVCN1816およびデータプレーンVCN1818は、パブリックインターネット1854を呼び出すことなく、IaaSプロバイダの顧客によって呼び出されるように構成されていてもよい。IaaSプロバイダの顧客は、当該顧客が使用するデータベースがIaaSプロバイダにより制御され、パブリックインターネット1854から隔離され得るサービステナンシ1819に格納され得ることから、本実施形態を望むと考えられる。
【0246】
図19は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック
図1900である。サービスオペレータ1902(たとえば、
図18のサービスオペレータ1802)は、仮想クラウドネットワーク(VCN)1906(たとえば、
図18のVCN1806)およびセキュアホストサブネット1908(たとえば、
図18のセキュアホストサブネット1808)を含み得るセキュアホストテナンシ1904(たとえば、
図18のセキュアホストテナンシ1804)に通信結合され得る。VCN1906は、セキュアシェル(SSH)VCN1912(たとえば、
図18のSSH VCN1812)に含まれるローカルピアリングゲートウェイ(LPG)1810(たとえば、
図18のLPG1810)を介してSSH VCN1912に通信結合され得るLPG1910を具備することができる。SSH VCN1912は、SSHサブネット1914(たとえば、
図18のSSHサブネット1814)を具備することができ、また、SSH VCN1912は、制御プレーンVCN1916(たとえば、
図18の制御プレーンVCN1816)に含まれるLPG1910を介して制御プレーンVCN1916に通信結合され得る。制御プレーンVCN1916は、サービステナンシ1919(たとえば、
図18のサービステナンシ1819)に含まれ、データプレーンVCN1918(たとえば、
図18のデータプレーンVCN1818)は、システムのユーザすなわち顧客により所有または運用され得る顧客テナンシ1921に含まれ得る。
【0247】
制御プレーンVCN1916は、LBサブネット1922(たとえば、
図18のLBサブネット1822)を含み得る制御プレーンDMZ層1920(たとえば、
図18の制御プレーンDMZ層1820)と、アプリサブネット1926(たとえば、
図18のアプリサブネット1826)を含み得る制御プレーンアプリ層1924(たとえば、
図18の制御プレーンアプリ層1824)と、(たとえば、
図18のデータベース(DB)サブネット1830に類似する)DBサブネット1930を含み得る制御プレーンデータ層1928(たとえば、
図18の制御プレーンデータ層1828)と、を具備することができる。制御プレーンDMZ層1920に含まれるLBサブネット1922は、制御プレーンアプリ層1924に含まれるアプリサブネット1926および制御プレーンVCN1916に含まれ得るインターネットゲートウェイ1934(たとえば、
図18のインターネットゲートウェイ1834)に通信結合され、アプリサブネット1926は、制御プレーンデータ層1928に含まれるDBサブネット1930、サービスゲートウェイ1936(たとえば、
図18のサービスゲートウェイ1836)、およびネットワークアドレス変換(NAT)ゲートウェイ1938(たとえば、
図18のNATゲートウェイ1838)に通信結合され得る。制御プレーンVCN1916は、サービスゲートウェイ1936およびNATゲートウェイ1938を具備することができる。
【0248】
制御プレーンVCN1916は、アプリサブネット1926を含み得るデータプレーンミラーアプリ層1940(たとえば、
図18のデータプレーンミラーアプリ層1840)を具備することができる。データプレーンミラーアプリ層1940に含まれるアプリサブネット1926は、(たとえば、
図18のコンピュートインスタンス1844に類似する)コンピュートインスタンス1944を実行し得る仮想ネットワークインターフェースコントローラ(VNIC)1942(たとえば、VNIC1842)を具備することができる。コンピュートインスタンス1944は、データプレーンミラーアプリ層1940に含まれるVNIC1942およびデータプレーンアプリ層1946(たとえば、
図18のデータプレーンアプリ層1846)に含まれるVNIC1942を介するデータプレーンミラーアプリ層1940のアプリサブネット1926とデータプレーンアプリ層1946に含まれ得るアプリサブネット1926との間の通信を容易化し得る。
【0249】
制御プレーンVCN1916に含まれるインターネットゲートウェイ1934は、パブリックインターネット1954(たとえば、
図18のパブリックインターネット1854)に通信結合され得るメタデータ管理サービス1952(たとえば、
図18のメタデータ管理サービス1852)に通信結合され得る。パブリックインターネット1954は、制御プレーンVCN1916に含まれるNATゲートウェイ1938に通信結合され得る。制御プレーンVCN1916に含まれるサービスゲートウェイ1936は、クラウドサービス1956(たとえば、
図18のクラウドサービス1856)に通信結合され得る。
【0250】
いくつかの例において、データプレーンVCN1918は、顧客テナンシ1921に含まれ得る。この場合、IaaSプロバイダは、顧客ごとに制御プレーンVCN1916を提供するようにしてもよく、また、IaaSプロバイダは、顧客ごとに、サービステナンシ1919に含まれる一意のコンピュートインスタンス1944を設定するようにしてもよい。各コンピュートインスタンス1944は、サービステナンシ1919に含まれる制御プレーンVCN1916と顧客テナンシ1921に含まれるデータプレーンVCN1918との間の通信を可能にし得る。コンピュートインスタンス1944によれば、顧客テナンシ1921に含まれるデータプレーンVCN1918において、サービステナンシ1919に含まれる制御プレーンVCN1916においてプロビジョニングがなされているリソースのデプロイメントあるいは使用が可能となり得る。
【0251】
他の例において、IaaSプロバイダの顧客は、顧客テナンシ1921に存在するデータベースを有していてもよい。本例において、制御プレーンVCN1916は、アプリサブネット1926を含み得るデータプレーンミラーアプリ層1940を具備することができる。データプレーンミラーアプリ層1940は、データプレーンVCN1918に存在し得るが、データプレーンVCN1918に存在していなくてもよい。すなわち、データプレーンミラーアプリ層1940は、顧客テナンシ1921にアクセス可能であってもよいが、データプレーンVCN1918に存在していなくてもよいし、IaaSプロバイダの顧客による所有または運用がなされていなくてもよい。データプレーンミラーアプリ層1940は、データプレーンVCN1918への呼び出しを行うように構成されていてもよいが、制御プレーンVCN1916に含まれる如何なるエンティティへの呼び出しも行わないように構成されていてもよい。顧客は、制御プレーンVCN1916においてプロビジョニングがなされているデータプレーンVCN1918中のリソースのデプロイメントあるいは使用を望むと考えられ、データプレーンミラーアプリ層1940は、顧客が望むリソースのデプロイメントまたは他の使用を容易化し得る。
【0252】
いくつかの実施形態において、IaaSプロバイダの顧客は、フィルタをデータプレーンVCN1918に適用することができる。本実施形態において、顧客は、データプレーンVCN1918がアクセスし得る対象を決定することができ、また、顧客は、データプレーンVCN1918からパブリックインターネット1954へのアクセスを制限するようにしてもよい。IaaSプロバイダは、フィルタを適用できなくてもよいし、任意の外部ネットワークまたはデータベースへのデータプレーンVCN1918のアクセスを制御できなくてもよい。顧客テナンシ1921に含まれるデータプレーンVCN1918に対する顧客によるフィルタおよび制御の適用は、他の顧客およびパブリックインターネット1954からのデータプレーンVCN1918の隔離に役立ち得る。
【0253】
いくつかの実施形態において、クラウドサービス1956は、サービスゲートウェイ1936による呼び出しによって、パブリックインターネット1954、制御プレーンVCN1916、またはデータプレーンVCN1918のいずれにも存在し得ないサービスにアクセス可能となる。クラウドサービス1956と制御プレーンVCN1916またはデータプレーンVCN1918との間の接続は、ライブでなくてもよいし、連続でなくてもよい。クラウドサービス1956は、IaaSプロバイダが所有または運用する異なるネットワーク上に存在していてもよい。クラウドサービス1956は、サービスゲートウェイ1936からの呼び出しを受信するように構成されていてもよく、また、パブリックインターネット1954からの呼び出しを受信しないように構成されていてもよい。一部のクラウドサービス1956は、他のクラウドサービス1956から隔離されていてもよく、制御プレーンVCN1916は、当該制御プレーンVCN1916と同じリージョンにあり得ないクラウドサービス1956から隔離されていてもよい。たとえば、制御プレーンVCN1916は、「リージョン1」に配置されていてもよく、クラウドサービス「デプロイメント18」は、リージョン1および「リージョン2」に配置されていてもよい。デプロイメント18への呼び出しがリージョン1に配置されている制御プレーンVCN1916に含まれるサービスゲートウェイ1936により行われた場合、呼び出しは、リージョン1のデプロイメント18に送信されるようになっていてもよい。本例において、制御プレーンVCN1916またはリージョン1のデプロイメント18は、リージョン2のデプロイメント18に通信結合されていなくてもよいし、リージョン2のデプロイメント18と連通していなくてもよい。
【0254】
図20は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック
図2000である。サービスオペレータ2002(たとえば、
図18のサービスオペレータ1802)は、仮想クラウドネットワーク(VCN)2006(たとえば、
図18のVCN1806)およびセキュアホストサブネット2008(たとえば、
図18のセキュアホストサブネット1808)を含み得るセキュアホストテナンシ2004(たとえば、
図18のセキュアホストテナンシ1804)に通信結合され得る。VCN2006は、SSH VCN2012(たとえば、
図18のSSH VCN1812)に含まれるLPG2010(たとえば、
図18のLPG1810)を介してSSH VCN2012に通信結合され得るLPG2010を具備することができる。SSH VCN2012は、SSHサブネット2014(たとえば、
図18のSSHサブネット1814)を具備することができ、また、SSH VCN2012は、制御プレーンVCN2016(たとえば、
図18の制御プレーンVCN1816)に含まれるLPG2010を介して制御プレーンVCN2016に通信結合され得るとともに、データプレーンVCN2018(たとえば、
図18のデータプレーンVCN1818)に含まれるLPG2010を介してデータプレーンVCN2018に通信結合され得る。制御プレーンVCN2016およびデータプレーンVCN2018は、サービステナンシ2019(たとえば、
図18のサービステナンシ1819)に含まれ得る。
【0255】
制御プレーンVCN2016は、負荷分散器(LB)サブネット2022(たとえば、
図18のLBサブネット1822)を含み得る制御プレーンDMZ層2020(たとえば、
図18の制御プレーンDMZ層1820)と、(たとえば、
図18のアプリサブネット1826に類似する)アプリサブネット2026を含み得る制御プレーンアプリ層2024(たとえば、
図18の制御プレーンアプリ層1824)と、DBサブネット2030を含み得る制御プレーンデータ層2028(たとえば、
図18の制御プレーンデータ層1828)と、を具備することができる。制御プレーンDMZ層2020に含まれるLBサブネット2022は、制御プレーンアプリ層2024に含まれるアプリサブネット2026および制御プレーンVCN2016に含まれ得るインターネットゲートウェイ2034(たとえば、
図18のインターネットゲートウェイ1834)に通信結合され、アプリサブネット2026は、制御プレーンデータ層2028に含まれるDBサブネット2030、サービスゲートウェイ2036(たとえば、
図18のサービスゲートウェイ)、およびネットワークアドレス変換(NAT)ゲートウェイ2038(たとえば、
図18のNATゲートウェイ1838)に通信結合され得る。制御プレーンVCN2016は、サービスゲートウェイ2036およびNATゲートウェイ2038を具備することができる。
【0256】
データプレーンVCN2018は、データプレーンアプリ層2046(たとえば、
図18のデータプレーンアプリ層1846)、データプレーンDMZ層2048(たとえば、
図18のデータプレーンDMZ層1848)、およびデータプレーンデータ層2050(たとえば、
図18のデータプレーンデータ層1850)を具備することができる。データプレーンDMZ層2048は、データプレーンアプリ層2046のトラステッドアプリサブネット2060および非トラステッドアプリサブネット2062ならびにデータプレーンVCN2018に含まれるインターネットゲートウェイ2034に通信結合され得るLBサブネット2022を具備することができる。トラステッドアプリサブネット2060は、データプレーンVCN2018に含まれるサービスゲートウェイ2036、データプレーンVCN2018に含まれるNATゲートウェイ2038、およびデータプレーンデータ層2050に含まれるDBサブネット2030に通信結合され得る。非トラステッドアプリサブネット2062は、データプレーンVCN2018に含まれるサービスゲートウェイ2036およびデータプレーンデータ層2050に含まれるDBサブネット2030に通信結合され得る。データプレーンデータ層2050は、データプレーンVCN2018に含まれるサービスゲートウェイ2036に通信結合され得るDBサブネット2030を具備することができる。
【0257】
非トラステッドアプリサブネット2062は、テナント仮想マシン(VM)2066(1)~2066(N)に通信結合され得る1つまたは複数の一次VNIC2064(1)~2064(N)を具備することができる。各テナントVM2066(1)~2066(N)は、顧客テナンシ2070(1)~2070(N)それぞれに含まれ得るコンテナ出力VCN2068(1)~2068(N)それぞれに含まれ得るアプリサブネット2067(1)~2067(N)それぞれに通信結合され得る。二次VNIC2072(1)~2072(N)はそれぞれ、データプレーンVCN2018に含まれる非トラステッドアプリサブネット2062とコンテナ出力VCN2068(1)~2068(N)に含まれるアプリサブネットとの間の通信を容易化し得る。各コンテナ出力VCN2068(1)~2068(N)は、パブリックインターネット2054(たとえば、
図18のパブリックインターネット1854)に通信結合され得るNATゲートウェイ2038を具備することができる。
【0258】
制御プレーンVCN2016およびデータプレーンVCN2018に含まれるインターネットゲートウェイ2034は、パブリックインターネット2054に通信結合され得るメタデータ管理サービス2052(たとえば、
図18のメタデータ管理システム1852)に通信結合され得る。パブリックインターネット2054は、制御プレーンVCN2016およびデータプレーンVCN2018に含まれるNATゲートウェイ2038に通信結合され得る。制御プレーンVCN2016およびデータプレーンVCN2018に含まれるサービスゲートウェイ2036は、クラウドサービス2056に通信結合され得る。
【0259】
いくつかの実施形態において、データプレーンVCN2018は、顧客テナンシ2070と一体化され得る。この一体化は、コードの実行にサポートを望む可能性がある場合等に、IaaSプロバイダの顧客に有用または所望となり得る。顧客は、実行するコードを与えるようにしてもよく、このコードは、破壊的なものとなる可能性もあるし、他の顧客リソースと通信する可能性もあるし、あるいは望ましくない影響をもたらす可能性もある。これに応答して、IaaSプロバイダは、顧客により当該IaaSプロバイダに与えられたコードを実行するかを判定するようにしてもよい。
【0260】
いくつかの例において、IaaSプロバイダの顧客は、IaaSプロバイダへの一時的なネットワークアクセスを許可し、データプレーンアプリ層2046に付与される機能を要求するようにしてもよい。この機能を実行するコードは、VM2066(1)~2066(N)において実行されるようになっていてもよく、また、データプレーンVCN2018上の他の場所で実行するようには構成されていなくてもよい。各VM2066(1)~2066(N)は、1つの顧客テナンシ2070に接続されていてもよい。VM2066(1)~2066(N)に含まれるコンテナ2071(1)~2071(N)はそれぞれ、コードを実行するように構成されていてもよい。この場合は、二重の隔離が存在する可能性があり(たとえば、コードを実行するコンテナ2071(1)~2071(N)は、少なくとも非トラステッドアプリサブネット2062に含まれるVM2066(1)~2066(N)に含まれていてもよい)、誤ったコードあるいは望ましくないコードによるIaaSプロバイダのネットワークまたは異なる顧客のネットワークの損傷を防止するのに役立ち得る。コンテナ2071(1)~2071(N)は、顧客テナンシ2070に通信結合されていてもよく、また、顧客テナンシ2070に対してデータを送信または受信するように構成されていてもよい。コンテナ2071(1)~2071(N)は、データプレーンVCN2018中の他の如何なるエンティティに対するデータの送信または受信も行わないように構成されていてもよい。コードの実行の完了時、IaaSプロバイダは、コンテナ2071(1)~2071(N)を無効化するようにしてもよいし、廃棄するようにしてもよい。
【0261】
いくつかの実施形態において、トラステッドアプリサブネット2060は、IaaSプロバイダが所有または運用し得るコードを実行するようにしてもよい。本実施形態において、トラステッドアプリサブネット2060は、DBサブネット2030に通信結合されていてもよく、また、DBサブネット2030においてCRUD動作を実行するように構成されていてもよい。非トラステッドアプリサブネット2062は、DBサブネット2030に通信結合されていてもよいが、本実施形態においては、DBサブネット2030において読み出し動作を実行するように構成されていてもよい。各顧客のVM2066(1)~2066(N)に含まれ、顧客からのコードを実行し得るコンテナ2071(1)~2071(N)は、DBサブネット2030と通信結合されていなくてもよい。
【0262】
他の実施形態において、制御プレーンVCN2016およびデータプレーンVCN2018は、直接通信結合されていなくてもよい。本実施形態においては、制御プレーンVCN2016とデータプレーンVCN2018との間に直接的な通信が存在していなくてもよい。ただし、少なくとも1つの方法によって間接的に通信を行うことができる。制御プレーンVCN2016とデータプレーンVCN2018との間の通信を容易化し得るLPG2010がIaaSプロバイダにより確立されていてもよい。別の例において、制御プレーンVCN2016またはデータプレーンVCN2018は、サービスゲートウェイ2036を介して、クラウドサービス2056への呼び出しを行うことができる。たとえば、制御プレーンVCN2016からクラウドサービス2056への呼び出しには、データプレーンVCN2018と通信し得るサービスのリクエストを含み得る。
【0263】
図21は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック
図2100である。サービスオペレータ2102(たとえば、
図18のサービスオペレータ1802)は、仮想クラウドネットワーク(VCN)2106(たとえば、
図18のVCN1806)およびセキュアホストサブネット2108(たとえば、
図18のセキュアホストサブネット1808)を含み得るセキュアホストテナンシ2104(たとえば、
図18のセキュアホストテナンシ1804)に通信結合され得る。VCN2106は、SSH VCN2112(たとえば、
図18のSSH VCN1812)に含まれるLPG2110(たとえば、
図18のLPG1810)を介してSSH VCN2112に通信結合され得るLPG2110を具備することができる。SSH VCN2112は、SSHサブネット2114(たとえば、
図18のSSHサブネット1814)を具備することができ、また、SSH VCN2112は、制御プレーンVCN2116(たとえば、
図18の制御プレーンVCN1816)に含まれるLPG2110を介して制御プレーンVCN2116に通信結合され得るとともに、データプレーンVCN2118(たとえば、
図18のデータプレーンVCN1818)に含まれるLPG2110を介してデータプレーンVCN2118に通信結合され得る。制御プレーンVCN2116およびデータプレーンVCN2118は、サービステナンシ2119(たとえば、
図18のサービステナンシ1819)に含まれ得る。
【0264】
制御プレーンVCN2116は、LBサブネット2122(たとえば、
図18のLBサブネット1822)を含み得る制御プレーンDMZ層2120(たとえば、
図18の制御プレーンDMZ層1820)と、アプリサブネット2126(たとえば、
図18のアプリサブネット1826)を含み得る制御プレーンアプリ層2124(たとえば、
図18の制御プレーンアプリ層1824)と、DBサブネット2130(たとえば、
図20のDBサブネット2030)を含み得る制御プレーンデータ層2128(たとえば、
図18の制御プレーンデータ層1828)と、を具備することができる。制御プレーンDMZ層2120に含まれるLBサブネット2122は、制御プレーンアプリ層2124に含まれるアプリサブネット2126および制御プレーンVCN2116に含まれ得るインターネットゲートウェイ2134(たとえば、
図18のインターネットゲートウェイ1834)に通信結合され、アプリサブネット2126は、制御プレーンデータ層2128に含まれるDBサブネット2130、サービスゲートウェイ2136(たとえば、
図18のサービスゲートウェイ)、およびネットワークアドレス変換(NAT)ゲートウェイ2138(たとえば、
図18のNATゲートウェイ1838)に通信結合され得る。制御プレーンVCN2116は、サービスゲートウェイ2136およびNATゲートウェイ2138を具備することができる。
【0265】
データプレーンVCN2118は、データプレーンアプリ層2146(たとえば、
図18のデータプレーンアプリ層1846)、データプレーンDMZ層2148(たとえば、
図18のデータプレーンDMZ層1848)、およびデータプレーンデータ層2150(たとえば、
図18のデータプレーンデータ層1850)を具備することができる。データプレーンDMZ層2148は、データプレーンアプリ層2146のトラステッドアプリサブネット2160(たとえば、
図20のトラステッドアプリサブネット2060)および非トラステッドアプリサブネット2162(たとえば、
図20の非トラステッドアプリサブネット2062)ならびにデータプレーンVCN2118に含まれるインターネットゲートウェイ2134に通信結合され得るLBサブネット2122を具備することができる。トラステッドアプリサブネット2160は、データプレーンVCN2118に含まれるサービスゲートウェイ2136、データプレーンVCN2118に含まれるNATゲートウェイ2138、およびデータプレーンデータ層2150に含まれるDBサブネット2130に通信結合され得る。非トラステッドアプリサブネット2162は、データプレーンVCN2118に含まれるサービスゲートウェイ2136およびデータプレーンデータ層2150に含まれるDBサブネット2130に通信結合され得る。データプレーンデータ層2150は、データプレーンVCN2118に含まれるサービスゲートウェイ2136に通信結合され得るDBサブネット2130を具備することができる。
【0266】
非トラステッドアプリサブネット2162は、非トラステッドアプリサブネット2162内に存在するテナント仮想マシン(VM)2166(1)~2166(N)に通信結合され得る一次VNIC2164(1)~2164(N)を具備することができる。各テナントVM2166(1)~2166(N)は、コンテナ2167(1)~2167(N)それぞれにおいてコードを実行可能であるとともに、コンテナ出力VCN2168に含まれ得るデータプレーンアプリ層2146に含まれ得るアプリサブネット2126に通信結合され得る。二次VNIC2172(1)~2172(N)はそれぞれ、データプレーンVCN2118に含まれる非トラステッドアプリサブネット2162とコンテナ出力VCN2168に含まれるアプリサブネットとの間の通信を容易化し得る。コンテナ出力VCNは、パブリックインターネット2154(たとえば、
図18のパブリックインターネット1854)に通信結合され得るNATゲートウェイ2138を具備することができる。
【0267】
制御プレーンVCN2116およびデータプレーンVCN2118に含まれるインターネットゲートウェイ2134は、パブリックインターネット2154に通信結合され得るメタデータ管理サービス2152(たとえば、
図18のメタデータ管理システム1852)に通信結合され得る。パブリックインターネット2154は、制御プレーンVCN2116およびデータプレーンVCN2118に含まれるNATゲートウェイ2138に通信結合され得る。制御プレーンVCN2116およびデータプレーンVCN2118に含まれるサービスゲートウェイ2136は、クラウドサービス2156に通信結合され得る。
【0268】
いくつかの例において、
図21のブロック
図2100のアーキテクチャにより示されるパターンは、
図20のブロック
図2000のアーキテクチャにより示されるパターンの例外と考えられ、IaaSプロバイダが顧客と直接通信できない(たとえば、非接続リージョンである)場合に、IaaSプロバイダの顧客に望ましいと考えられる。顧客ごとにVM2166(1)~2166(N)に含まれるコンテナ2167(1)~2167(N)はそれぞれ、顧客によるリアルタイムでのアクセスが可能である。コンテナ2167(1)~2167(N)は、コンテナ出力VCN2168に含まれ得るデータプレーンアプリ層2146のアプリサブネット2126に含まれる二次VNIC2172(1)~2172(N)それぞれへの呼び出しを行うように構成されていてもよい。二次VNIC2172(1)~2172(N)は、呼び出しをNATゲートウェイ2138に送信可能であり、NATゲートウェイ2138は、呼び出しをパブリックインターネット2154に送信するようにしてもよい。本例において、顧客によるリアルタイムでのアクセスが可能なコンテナ2167(1)~2167(N)は、制御プレーンVCN2116から隔離され得るとともに、データプレーンVCN2118に含まれる他のエンティティからも隔離され得る。また、コンテナ2167(1)~2167(N)は、他の顧客のリソースからも隔離され得る。
【0269】
他の例において、顧客は、コンテナ2167(1)~2167(N)を使用して、クラウドサービス2156を呼び出すことができる。本例において、顧客は、コンテナ2167(1)~2167(N)において、クラウドサービス2156にサービスを要求するコードを実行することができる。コンテナ2167(1)~2167(N)は、このリクエストを二次VNIC2172(1)~2172(N)に送信可能であり、二次VNIC2172(1)~2172(N)は、リクエストをNATゲートウェイに送信可能であり、NATゲートウェイは、リクエストをパブリックインターネット2154に送信可能である。パブリックインターネット2154は、インターネットゲートウェイ2134を介して、制御プレーンVCN2116に含まれるLBサブネット2122にリクエストを送信可能である。リクエストが有効である旨の判定に応答して、LBサブネットは、リクエストをアプリサブネット2126に送信可能であり、アプリサブネット2126は、サービスゲートウェイ2136を介して、リクエストをクラウドサービス2156に送信可能である。
【0270】
当然のことながら、図面に示されるIaaSアーキテクチャ1800、1900、2000、2100は、図示以外の構成要素を有していてもよい。さらに、図面に示される実施形態は、本開示の一実施形態を包含し得るクラウドインフラシステムの一例に過ぎない。いくつかの他の実施形態において、IaaSシステムは、有する構成要素が図示より多くても少なくてもよいし、2つ以上の構成要素を組み合わせるようにしてもよいし、構成要素の構成または配置が異なっていてもよい。
【0271】
ある実施形態において、本明細書に記載のIaaSシステムは、セルフサービスかつサブスクリプションベースの弾力的に拡張可能かつ確実で可用性が高くセキュアな方法で顧客に送達される一連のアプリケーション、ミドルウェア、およびデータベースサービスを含んでいてもよい。本譲受人が提供するOCI(Oracle Cloud Infrastructure)がこのようなIaaSシステムの一例である。
【0272】
図22は、種々実施形態が実現され得る例示的なコンピュータシステム2200を示している。システム2200は、上述のコンピュータシステムのいずれかの実現に用いられるようになっていてもよい。図面に示される通り、コンピュータシステム2200は、バスサブシステム2202を介して多くの周辺サブシステムと通信する処理ユニット2204を具備する。周辺サブシステムには、処理加速ユニット2206、I/Oサブシステム2208、ストレージサブシステム2218、および通信サブシステム2224を含み得る。ストレージサブシステム2218は、有形コンピュータ可読記憶媒体2222およびシステムメモリ2210を具備する。
【0273】
バスサブシステム2202は、コンピュータシステム2200のさまざまな構成要素およびサブシステムを目的通り互いに通信させるためのメカニズムを提供する。バスサブシステム2202は、単一のバスとして模式的に示されるが、バスサブシステムの代替実施形態では複数のバスを利用するようにしてもよい。バスサブシステム2202は、多様なバスアーキテクチャのいずれかを使用するメモリバスもしくはメモリコントローラ、周辺機器用バス、ならびにローカルバスを含む複数種類のバス構造のいずれかであってもよい。たとえば、このようなアーキテクチャには、IEEE P1386.1標準に従って製造されたメザニンバスとして実現され得る業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオエレクトロニクス規格協会(VESA)ローカルバス、および周辺機器相互接続(PCI)バスを含み得る。
【0274】
1つまたは複数の集積回路(たとえば、従来のマイクロプロセッサまたはマイクロコントローラ)として実現され得る処理ユニット2204は、コンピュータシステム2200の動作を制御する。処理ユニット2204には、1つまたは複数のプロセッサが含まれていてもよい。これらのプロセッサには、シングルコアまたはマルチコアプロセッサを含み得る。ある実施形態において、処理ユニット2204は、シングルコアまたはマルチコアプロセッサが各々に含まれる1つまたは複数の独立した処理ユニット2232および/または2234として実現されるようになっていてもよい。また、他の実施形態において、処理ユニット2204は、2つのデュアルコアプロセッサを単一のチップに統合することにより形成されたクアッドコア処理ユニットとして実現されていてもよい。
【0275】
種々実施形態において、処理ユニット2204は、プログラムコードに応答して多様なプログラムを実行するとともに、複数の同時実行プログラムまたはプロセスを維持することができる。任意所与の時間において、実行されるプログラムコードの一部または全部がプロセッサ2204および/またはストレージサブシステム2218に存在し得る。好適なプログラミングにより、プロセッサ2204は、上述のさまざまな機能を提供可能である。また、コンピュータシステム2200は、デジタル信号プロセッサ(DSP)、専用プロセッサ、および/または類似物を含み得る処理加速ユニット2206を具備していてもよい。
【0276】
I/Oサブシステム2208は、ユーザインターフェース入力装置およびユーザインターフェース出力装置を具備していてもよい。ユーザインターフェース入力装置には、キーボード、マウスもしくはトラックボール等のポインティングデバイス、ディスプレイに組み込まれたタッチパッドもしくはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを有するオーディオ入力装置、マイク、ならびに他種の入力装置を含み得る。ユーザインターフェース入力装置には、たとえばジェスチャおよび音声コマンドを使用する自然なユーザインターフェースを通じたMicrosoft Xbox(登録商標)360ゲームコントローラ等の入力装置に対するユーザの制御および相互作用を可能にするMicrosoft Kinect(登録商標)運動センサ等の運動検知および/またはジェスチャ認識デバイスを含み得る。また、ユーザインターフェース入力装置には、ユーザの眼の活動(たとえば、撮影中および/またはメニュー選択中の「瞬き」)を検出し、眼のジェスチャを入力装置(たとえば、Google Glass(登録商標))への入力として変換するGoogle Glass(登録商標)瞬き検出器等の眼ジェスチャ認識デバイスを含み得る。また、ユーザインターフェース入力装置には、音声コマンドを介したユーザによる音声認識システム(たとえば、Siri(登録商標)ナビゲータ)との相互作用を可能にする音声認識検知デバイスを含み得る。
【0277】
また、ユーザインターフェース入力装置には、3次元(3D)マウス、ジョイスティックもしくはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルビデオカメラ、ポータブルメディアプレーヤ、ウェブカメラ、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザ距離計、および視線追跡デバイス等の聴覚/視覚デバイスを含み得るが、これらに限定されない。また、ユーザインターフェース入力装置には、たとえばコンピュータトモグラフィ、磁気共鳴イメージング、陽電子放出トモグラフィ、医療用超音波検査デバイス等の医療用撮像入力装置を含み得る。また、ユーザインターフェース入力装置には、たとえばMIDIキーボード、デジタル楽器等のオーディオ入力装置を含み得る。
【0278】
ユーザインターフェース出力装置には、ディスプレイサブシステム、表示灯、またはオーディオ出力装置等の非視覚的ディスプレイを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを使用するようなフラットパネルデバイス、投射装置、タッチスクリーン等であってもよい。一般的に、用語「出力装置(output device)」の使用は、コンピュータシステム2200からユーザまたは他のコンピュータに情報を出力するための考え得るすべての種類のデバイスおよびメカニズムを含むことが意図される。たとえば、ユーザインターフェース出力装置には、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力装置、およびモデム等、テキスト、グラフィックス、およびオーディオ/ビデオ情報を視覚的に伝達する多様な表示装置を含み得るが、これらに限定されない。
【0279】
コンピュータシステム2200は、本開示に記載の実施形態の機能を提供するソフトウェアおよびデータ構成体を格納するための有形一時的コンピュータ可読記憶媒体を提供するストレージサブシステム2218を備えていてもよい。ソフトウェアは、処理ユニット2204の1つまたは複数のコアまたはプロセッサによって実行されると、上述の機能を提供するプログラム、コードモジュール、命令、スクリプト等を含み得る。また、ストレージサブシステム2218は、本開示に従って使用されるデータを格納するためのリポジトリを提供するようにしてもよい。
【0280】
図22の例に示すように、ストレージサブシステム2218は、システムメモリ2210、コンピュータ可読記憶媒体2222、およびコンピュータ可読記憶媒体リーダ2220を含むさまざまな構成要素を具備することができる。システムメモリ2210は、処理ユニット2204によるロードおよび実行が可能なプログラム命令を格納していてもよい。また、システムメモリ2210は、命令の実行時に使用されるデータおよび/またはプログラム命令の実行時に生成されるデータを格納するようにしてもよい。さまざまな異なる種類のプログラムがシステムメモリ2210にロードされるようになっていてもよく、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS)、仮想マシン、コンテナ等が挙げられるが、これらに限定されない。
【0281】
また、システムメモリ2210は、オペレーティングシステム2216を格納するようにしてもよい。オペレーティングシステム2216の例としては、さまざまなバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/もしくはLinuxオペレーティングシステム、多様な市販のUNIX(登録商標)もしくはUNIX類似オペレーティングシステム(多様なGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OS等を含むが、これらに限定されない)、ならびに/またはiOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)OS、およびPalm(登録商標)OSオペレーティングシステム等のモバイルオペレーティングシステムが挙げられる。コンピュータシステム2200が1つまたは複数の仮想マシンを実行するある実施態様において、仮想マシンは、それぞれのゲストオペレーティングシステム(GOS)と併せて、システムメモリ2210にロードされ、処理ユニット2204の1つまたは複数のプロセッサまたはコアにより実行されるようになっていてもよい。
【0282】
システムメモリ2210は、コンピュータシステム2200の種類に応じて、さまざまな構成が可能である。たとえば、システムメモリ2210は、揮発性メモリ(ランダムアクセスメモリ(RAM)等)および/または不揮発性メモリ(リードオンリーメモリ(ROM)、フラッシュメモリ等)であってもよい。また、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、およびその他を含む異なる種類のRAM構成が与えられていてもよい。いくつかの実施態様において、システムメモリ2210は、起動時等にコンピュータシステム2200内の要素間で情報を伝達するのに役立つ基本ルーチンを含む基本入出力システム(BIOS)を具備していてもよい。
【0283】
コンピュータ可読記憶媒体2222は、リモート、ローカル、固定、および/または取り外し可能な記憶装置のほか、コンピュータシステム2200により使用されるコンピュータ可読情報(コンピュータシステム2200の処理ユニット2204により実行可能な命令を含む)を一時的および/または恒久的に包含、格納するための記憶媒体を表し得る。
【0284】
コンピュータ可読記憶媒体2222には、当技術分野において公知または使用されている任意適当な媒体を含むことができ(記憶媒体および通信媒体を含む)、情報の格納および/または伝送のための任意の方法または技術において実現されている揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体が挙げられるが、これらに限定されない。これには、RAM、ROM、電子的消去可能プログラマブルROM(EEPROM)、フラッシュメモリ等のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)等の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ等の磁気記憶装置、または他の有形コンピュータ可読媒体等の有形コンピュータ可読記憶媒体を含み得る。
【0285】
一例として、コンピュータ可読記憶媒体2222には、非リムーバブル不揮発性磁気媒体に対して読み書きを行うハードディスクドライブと、リムーバブル不揮発性磁気ディスクに対して読み書きを行う磁気ディスクドライブと、CD-ROM、DVD、Blu-Ray(登録商標)ディスク、または他の光学媒体等のリムーバブル不揮発性光ディスクに対して読み書きを行う光ディスクドライブと、を含み得る。コンピュータ可読記憶媒体2222には、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープ等を含み得るが、これらに限定されない。また、コンピュータ可読記憶媒体2222には、フラッシュメモリベースのSSD、エンタープライズフラッシュドライブ、半導体ROM等の不揮発性メモリに基づく半導体ドライブ(SSD)、半導体RAM、ダイナミックRAM、スタティックRAM、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、ならびにDRAMおよびフラッシュメモリベースのSSDの組み合わせを使用するハイブリッドSSD等の揮発性メモリに基づくSSDを含み得る。ディスクドライブおよびそれぞれの関連するコンピュータ可読媒体は、コンピュータシステム2200に対するコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージを提供し得る。
【0286】
処理ユニット2204の1つまたは複数のプロセッサまたはコアにより実行可能な機械可読命令は、非一時的コンピュータ可読記憶媒体に格納されていてもよい。非一時的コンピュータ可読記憶媒体は、揮発性メモリ記憶装置および/または不揮発性記憶装置を含む物理的に有形のメモリまたは記憶装置を含み得る。非一時的コンピュータ可読記憶媒体の例としては、磁気記憶媒体(たとえば、ディスクもしくはテープ)、光学記憶媒体(たとえば、DVD、CD)、さまざまな種類のRAM、ROM、もしくはフラッシュメモリ、ハードドライブ、フロッピー(登録商標)ドライブ、取り外し可能なメモリドライブ(たとえば、USBドライブ)、または他の種類の記憶装置が挙げられる。
【0287】
通信サブシステム2224は、他のコンピュータシステムおよびネットワークに対するインターフェースを提供する。通信サブシステム2224は、コンピュータシステム2200と他のシステムとの間のデータの送受信のためのインターフェースとして機能する。たとえば、通信サブシステム2224は、コンピュータシステム2200がインターネットを介して1つまたは複数のデバイスにつながることを可能にし得る。いくつかの実施形態において、通信サブシステム2224は、(たとえば、携帯電話技術、3G、4G、またはEDGE(Enhanced Data Rates for Global Evolution)、WiFi(IEEE 802.11ファミリ標準)等の高度なデータネットワーク技術、もしくは他の移動通信技術、またはこれらの任意の組み合わせを使用する)無線音声および/またはデータネットワーク、全地球測位システム(GPS)受信機コンポーネント、および/または他のコンポーネントにアクセスするための無線周波数(RF)トランシーバコンポーネントを具備することができる。いくつかの実施形態において、通信サブシステム2224は、無線インターフェースの追加または代替として、有線ネットワーク接続(たとえば、Ethernet)を提供し得る。
【0288】
また、いくつかの実施形態において、通信サブシステム2224は、コンピュータシステム2200を使用し得る1人または複数人のユーザに代わって、構造化および/または非構造化データフィード2226、イベントストリーム2228、イベントアップデート2230等の形態の入力情報を受信可能である。
【0289】
一例として、通信サブシステム2224は、ソーシャルネットワークならびに/またはTwitter(登録商標)フィード、Facebook(登録商標)アップデート、RSS(Rich Site Summary)フィード等のウェブフィード、ならびに/または1つもしくは複数のサードパーティ情報源からのリアルタイムアップデート等、他の通信サービスのユーザからデータフィード2226をリアルタイムで受信するように構成されていてもよい。
【0290】
また、通信サブシステム2224は、連続データストリームの形態のデータを受信するように構成されていてもよく、これには、リアルタイムイベントおよび/またはイベントアップデート2230のイベントストリーム2228を含み得るが、これは、連続的であってもよいし、明示的な終わりのない事実上の無限であってもよい。連続データを生成するアプリケーションの例としては、たとえばセンサデータアプリケーション、金融ティッカー、ネットワーク性能測定ツール(たとえば、ネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通モニタリング等が挙げられる。
【0291】
また、通信サブシステム2224は、コンピュータシステム2200に結合されている1つまたは複数のストリーミングデータ源コンピュータと連通し得る1つまたは複数のデータベースに対して、構造化および/または非構造化データフィード2226、イベントストリーム2228、イベントアップデート2230等を出力するように構成されていてもよい。
【0292】
コンピュータシステム2200としては、携帯型手持ち式デバイス(たとえば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA等)、ウェアラブル装置(Google Glass(登録商標)ヘッドマウントディスプレイ等)、PC、ワークステーション、メインフレーム、キオスク、サーバラック、または任意の他のデータ処理システムを含むさまざまな種類のうちの1つが可能である。
【0293】
コンピュータおよびネットワークの絶えず変化する性質のため、図示のコンピュータシステム2200に関する記述は、具体例としての意図しかない。図示のシステムよりも構成要素が多いか少ないかに関わらず、他の多くの構成が可能である。たとえば、カスタマイズされたハードウェアの使用ならびに/またはハードウェア、ファームウェア、ソフトウェア(アプレットを含む)、もしくは組み合わせにおける特定の要素の実装も考えられる。さらに、ネットワーク入出力装置等の他のコンピューティングデバイスへの接続が採用されるようになっていてもよい。本明細書に記載の開示および教示内容に基づいて、当業者であれば、種々実施形態を実現する他の手法および/または方法が認識されよう。
【0294】
以上、特定の実施形態を説明したが、種々改良、変更、代替構成、および同等物についても本開示の範囲に含まれる。実施形態は、ある特定のデータ処理環境内での動作に限定されず、複数のデータ処理環境内で自由に動作し得る。また、特定の一連のトランザクションおよびステップを使用して実施形態を説明したが、当業者には、本開示の範囲が記載の一連のトランザクションおよびステップに限定されないことが明らかであろう。上述の実施形態の種々特徴および態様が個別に使用されるようになっていてもよいし、一体的に使用されるようになっていてもよい。
【0295】
さらに、ハードウェアおよびソフトウェアの特定の組み合わせを使用して実施形態を説明したが、ハードウェアおよびソフトウェアの他の組み合わせについても本開示の範囲に含まれることが認識されよう。実施形態は、ハードウェアにおいてのみ実現されていてもよいし、ソフトウェアにおいてのみ実現されていてもよいし、これらの組み合わせを使用することにより実現されていてもよい。本明細書に記載のさまざまなプロセスは、同じプロセッサ上で実現することも可能であるし、任意の組み合わせの異なるプロセッサ上で実現することも可能である。したがって、コンポーネントまたはモジュールがある動作を実行するように構成されているものとして記載される場合、このような構成は、たとえばこの動作を実行するように電子回路を設計すること、この動作を実行するようにプログラム可能電子回路(マイクロプロセッサ等)をプログラムすること、またはこれらの任意の組み合わせによって達成され得る。プロセスは、多様な技術を使用することにより通信可能であって、プロセス間通信のための従来の技術が挙げられるが、これらに限定されない。また、プロセスの異なる組が異なる技術を使用するようにしてもよいし、プロセスの同じ組が異なる時間に異なる技術を使用するようにしてもよい。
【0296】
したがって、本明細書および図面は、何ら限定するものではなく、例示として捉えられるものとする。ただし、特許請求の範囲に記載の広範な思想および範囲から逸脱することなく、追加、差分、消去、ならびに他の改良および変更がなされ得ることは明らかである。このため、本開示の特定の実施形態を説明したが、これらには何ら限定の意図はない。種々改良および同等物が以下の特許請求の範囲に含まれる。
【0297】
開示の実施形態を説明する文脈(特に、以下の特許請求の範囲の文脈)における用語「a」、「an」、および「the」、ならびに同様の指示対象の使用は、本明細書における別段の指示または文脈上の明確な矛盾のない限り、単数形および複数形の両者を網羅するように解釈されるものとする。用語「備える(comprising)」、「有する(having)」、「具備する(including)」、および「含む(containing)」は、別段の断りのない限り、オープンエンドの用語(すなわち、「~を含むが、これらに限定されない」を意味する)として解釈されるものとする。用語「接続されている(connected)」は、何かが介在している場合であっても、一部または全部が含まれている、取り付けられている、または一体的に結合されているものとして解釈されるものとする。本明細書における値の範囲の記述は、本明細書における別段の指示のない限り、その範囲に含まれる別個の各値を個別に参照する簡潔な方法として機能することが意図されるに過ぎず、別個の各値は、本明細書において個別の記述があるかのように本明細書に組み込まれる。本明細書における別段の指示または文脈上の明確な矛盾のない限り、本明細書に記載のすべての方法が任意好適な順序で実行され得る。本明細書に記載のありとあらゆる例または例示的な表現(たとえば、「~等(such as)」)の使用は、実施形態の理解を容易にする意図しかなく、別段の主張のない限り、本開示の範囲を制限するものではない。本明細書における如何なる表現も、特許請求されていない要素が本開示の実施に不可欠であることを示すものとは解釈されないものとする。
【0298】
特に記載のない限り、句「X、Y、Zのうち少なくとも1つ(at least one of X, Y, or Z)」等の選言的表現は、項目、用語等がX、Y、Zのいずれかまたはこれらの任意の組み合わせ(たとえば、X、Y、および/またはZ)であり得ることを提示するために一般的に使用されるような文脈内での理解が意図される。したがって、このような選言的表現は一般的に、ある実施形態がXのうちの少なくとも1つ、Yのうちの少なくとも1つ、またはZのうちの少なくとも1つの各々の存在を要することを暗示する意図ではなく、そのように暗示しないものとする。
【0299】
本明細書においては、本開示の実行に対して知られている最良の形態を含む本開示の好適な実施形態が記載される。当業者には、上記説明を読むことにより、これら好適な実施形態の変形例が明らかとなり得る。当業者は、このような変形例を必要に応じて採用できるものとし、本開示は、本明細書の具体的な記載と異なるように実施され得る。したがって、本開示は、適用法の許す限り、本明細書に添付の特許請求の範囲に記述されている主題のすべての改良および同等物を含む。さらに、本明細書における別段の指示のない限り、上述の要素の考え得るすべての変形例における如何なる組み合わせも本開示に含まれる。
【0300】
本明細書に引用の刊行物、特許出願、および特許を含むすべての参考文献は、各参考文献の援用が個別かつ具体的に指示され、そのすべての内容が本明細書に記載されるのと同じ程度に本明細書に援用される。
【0301】
上記明細書においては、特定の実施形態を参照して本開示の態様が記載されるが、当業者であれば、本開示がこれに限定されないことを認識するであろう。上述の本開示の種々特徴および態様が個別に使用されるようになっていてもよいし、一体的に使用されるようになっていてもよい。さらに、実施形態は、本明細書の広範な思想および範囲から逸脱することなく、本明細書に記載の環境および用途を越えて、任意数の環境および用途において利用され得る。したがって、本明細書および図面は、何ら限定するものではなく、例示として捉えられるものとする。
【0302】
条項1:コンピュータが実行する方法であって、
仮想クラウドネットワークのコンピュータデバイスが、データパイプライン用の複数のフィルタから1つまたは複数のフィルタを選択することを含む。
【0303】
複数のフィルタは、
マルウェアフィルタ、
コンテンツフィルタ、
シグネチャフィルタ、
コンテンツアナライザ、
機械学習フィルタ、または
人工知能フィルタ、
のうちの少なくとも1つを含む。
【0304】
方法は、仮想クラウドネットワークのコンピューティングデバイスが、データパイプライン中の1つまたは複数の選択されたフィルタの順序を決定することをさらに含む。
【0305】
方法は、仮想クラウドネットワークのコンピューティングデバイスが、一方向伝達デバイスとして構成されているネットワークインターフェースカード(NIC)から、データパイプライン中のメッセージを受信することをさらに含む。
【0306】
方法は、仮想クラウドネットワークのコンピューティングデバイスが、決定された順序の1つまたは複数の選択されたフィルタにデータパイプライン中のメッセージを通すことによりメッセージをフィルタリングすることをさらに含む。
【0307】
方法は、仮想クラウドネットワークのコンピューティングデバイスが、ロギングネットワークを介して、データパイプラインで発生しているイベントのログを提供することをさらに含む。
【0308】
条項2:条項1に記載の方法であって、決定された順序は、メッセージの送信元に少なくとも部分的に基づいて決定されたものである。
【0309】
条項3:条項1に記載の方法であって、1つまたは複数の選択されたフィルタは、メッセージの送信元に少なくとも部分的に基づいて選択されたものである。
【0310】
条項4:条項1に記載の方法であって、複数の1つまたは複数のフィルタは、同じメッセージの送信元に対して選択されたものである。
【0311】
条項5:条項1に記載の方法であって、ネットワークインターフェースカードは、ソフトウェアベースの一方向伝達デバイスを含む。
【0312】
条項6:条項1に記載の方法であって、決定された順序の1つまたは複数の選択されたフィルタによりメッセージが処理された後、データパイプラインから、1つまたは複数の選択されたフィルタを除去することをさらに含む。
【0313】
条項7:条項1に記載の方法であって、仮想クラウドネットワークは、仮想マシンである。
【0314】
条項8:1つまたは複数の非一時的機械可読媒体において有形で具現化され、1つまたは複数のデータプロセッサに命令を実行させるように構成されている命令を含むコンピュータプログラム製品であって、
1つまたは複数のデータプロセッサが実行する命令は、データパイプライン用の複数のフィルタから1つまたは複数のフィルタを選択することを含む。
【0315】
複数のフィルタは、
マルウェアフィルタ、
コンテンツフィルタ、
シグネチャフィルタ、
コンテンツアナライザ、
機械学習フィルタ、または
人工知能フィルタ、
のうちの少なくとも1つを含む。
【0316】
1つまたは複数のデータプロセッサが実行する命令は、データパイプライン中の1つまたは複数の選択されたフィルタの順序を決定することをさらに含む。
【0317】
1つまたは複数のデータプロセッサが実行する命令は、一方向伝達デバイスとして構成されているネットワークインターフェースカード(NIC)から、データパイプライン中のメッセージを受信することをさらに含む。
【0318】
1つまたは複数のデータプロセッサが実行する命令は、決定された順序の選択されたフィルタにデータパイプライン中のメッセージを通すことによりメッセージをフィルタリングすることをさらに含む。
【0319】
1つまたは複数のデータプロセッサが実行する命令は、ロギングネットワークを介して、データパイプラインで発生しているイベントのログを提供することをさらに含む。
【0320】
条項9:条項8に記載のコンピュータプログラム製品であって、決定された順序は、メッセージの送信元に少なくとも部分的に基づいて決定されたものである。
【0321】
条項10:条項8に記載のコンピュータプログラム製品であって、1つまたは複数の選択されたフィルタは、メッセージの送信元に少なくとも部分的に基づいて選択されたものである。
【0322】
条項11:条項8に記載のコンピュータプログラム製品であって、複数の1つまたは複数のフィルタは、同じメッセージの送信元に対して選択されたものである。
【0323】
条項12:条項8に記載のコンピュータプログラム製品であって、ネットワークインターフェースカードは、ソフトウェアベースの一方向伝達デバイスを含む。
【0324】
条項13:条項8に記載のコンピュータプログラム製品であって、1つまたは複数のデータプロセッサが実行する命令は、決定された順序の1つまたは複数の選択されたフィルタによりメッセージが処理された後、データパイプラインから、1つまたは複数の選択されたフィルタを除去することをさらに含む。
【0325】
条項14:条項8に記載の非一時的コンピュータ可読記憶媒体であって、仮想クラウドネットワークは、仮想マシンである。
【0326】
条項15:データパイプラインであって、
データパイプラインの一部として、一方向伝達デバイスとして構成されているネットワークインターフェースカード(NIC)を備える。
【0327】
データパイプラインは、
マルウェアフィルタ、
コンテンツフィルタ、
シグネチャフィルタ、
コンテンツアナライザ、
機械学習フィルタ、または
人工知能フィルタ、
のうちの少なくとも1つを含む複数のフィルタをさらに備える。
【0328】
データパイプラインは、複数のフィルタのうちの1つまたは複数のフィルタを含むように構成されている仮想クラウドネットワークをさらに備える。ネットワークインターフェースコントローラから仮想クラウドネットワークにより受信されたメッセージは、設定時に決定された順序でデータパイプラインの1つまたは複数のフィルタを順次通過する。
【0329】
データパイプラインは、データパイプラインで発生しているイベントのログを提供するためのロギングネットワークをさらに備える。
【0330】
条項16:条項15に記載のデータパイプラインであって、決定された順序は、メッセージの送信元に少なくとも部分的に基づいて決定されたものである。
【0331】
条項17:条項15に記載のデータパイプラインであって、1つまたは複数の選択されたフィルタは、メッセージの送信元に少なくとも部分的に基づいて選択されたものである。
【0332】
条項18:条項15に記載のデータパイプラインであって、複数の1つまたは複数のフィルタは、同じメッセージの送信元に対して選択されたものである。
【0333】
条項19:条項15に記載のデータパイプラインであって、ネットワークインターフェースカードは、ソフトウェアベースの一方向伝達デバイスを含む。
【0334】
条項20:条項15に記載のデータパイプラインであって、決定された順序の1つまたは複数の選択されたフィルタによりメッセージが処理された後、データパイプラインから、1つまたは複数の選択されたフィルタを除去することをさらに含む。
【0335】
条項21:コンピュータが実行する方法であって、
非接続ネットワークのコンピューティングデバイスが、一組のフィルタ種別を提示するように構成されているアプリケーションプログラミングインターフェース(API)を提供することを含む。
【0336】
方法は、アプリケーションプログラミングインターフェースを介して、一組のフィルタ種別からの一揃えの1つまたは複数のフィルタ種別を受信することをさらに含む。
【0337】
方法は、アプリケーションプログラミングインターフェースを介して、一揃えのフィルタ種別の順序を受信することをさらに含む。
【0338】
方法は、非接続ネットワークのコンピューティングデバイスが、アプリケーションプログラミングインターフェースを介して受信されたコマンドに応答して、上記順序の一揃えのフィルタを含むデータパイプラインを生成することをさらに含む。
【0339】
方法は、非接続ネットワークのコンピューティングデバイスが、一方向伝達デバイスで受信されたメッセージを上記順序の一揃えのフィルタに通すことによってメッセージを解析することをさらに含む。
【0340】
方法は、非接続ネットワークのロギングネットワークが、データパイプラインで発生しているイベントのログを受信することをさらに含む。
【0341】
方法は、アプリケーションプログラミングインターフェースを介して、イベントのログを提示することをさらに含む。
【0342】
方法は、アプリケーションプログラミングインターフェースを介して終了コマンドを受信した際に、データパイプラインを終了することをさらに含む。
【0343】
条項22:条項21に記載の方法であって、1つまたは複数のフィルタ種別は、マルウェアフィルタ、コンテンツフィルタ、シグネチャフィルタ、コンテンツアナライザ、機械学習フィルタ、または人工知能フィルタのうちの1つまたは複数を含む。
【0344】
条項23:条項21に記載の方法であって、一方向伝達デバイスを介して、非接続ネットワークからトラステッドリポジトリにメッセージを送ることをさらに含む。
【0345】
条項24:条項21に記載の方法であって、一方向伝達デバイスは、ソフトウェアベースの一方向伝達デバイスである。
【0346】
条項25:条項21に記載の方法であって、イベントのログは、オペレーティングシステム(OS)レベル、アプリケーションレベル、およびペイロードレベルで発生するイベントのログを含む、
条項26:条項21に記載の方法であって、非接続ネットワークは、仮想クラウドネットワークを含む。
【0347】
条項27:条項21に記載の方法であって、一方向伝達デバイスは、スマートネットワークインターフェースカード(スマートNIC)である。
【0348】
条項28:1つまたは複数の非一時的機械可読媒体において有形で具現化され、1つまたは複数のデータプロセッサに命令を実行させるように構成されている命令を含むコンピュータプログラム製品であって、
1つまたは複数のデータプロセッサが実行する命令は、一組のフィルタ種別を提示するように構成されているアプリケーションプログラミングインターフェース(API)を提供することを含む。
【0349】
1つまたは複数のデータプロセッサが実行する命令は、アプリケーションプログラミングインターフェースを介して、一組のフィルタ種別からの一揃えの1つまたは複数のフィルタ種別を受信することをさらに含む。
【0350】
1つまたは複数のデータプロセッサが実行する命令は、アプリケーションプログラミングインターフェースを介して、一揃えのフィルタ種別の順序を受信することをさらに含む。
【0351】
1つまたは複数のデータプロセッサが実行する命令は、アプリケーションプログラミングインターフェースを介して受信されたコマンドに応答して、上記順序の一揃えのフィルタを含むデータパイプラインを生成することをさらに含む。
【0352】
1つまたは複数のデータプロセッサが実行する命令は、一方向伝達デバイスで受信されたメッセージを上記順序の一揃えのフィルタに通すことによってメッセージを解析することをさらに含む。
【0353】
1つまたは複数のデータプロセッサが実行する命令は、非接続ネットワークのロギングネットワークを介して、データパイプラインで発生しているイベントのログを受信することをさらに含む。
【0354】
1つまたは複数のデータプロセッサが実行する命令は、アプリケーションプログラミングインターフェースを介して、イベントのログを提示することをさらに含む。
【0355】
1つまたは複数のデータプロセッサが実行する命令は、アプリケーションプログラミングインターフェースを介して終了コマンドを受信した際に、データパイプラインを終了することをさらに含む。
【0356】
条項29:条項28に記載のコンピュータプログラム製品であって、1つまたは複数のフィルタ種別は、マルウェアフィルタ、コンテンツフィルタ、シグネチャフィルタ、コンテンツアナライザ、機械学習フィルタ、または人工知能フィルタのうちの1つまたは複数を含む。
【0357】
条項30:条項28に記載のコンピュータプログラム製品であって、一組の命令は、一方向伝達デバイスを介して、非接続ネットワークからトラステッドリポジトリにメッセージを送ることをさらに含む。
【0358】
条項31:条項28に記載のコンピュータプログラム製品であって、一方向伝達デバイスは、ソフトウェアベースの一方向伝達デバイスである。
【0359】
条項32:条項28に記載のコンピュータプログラム製品であって、イベントのログは、オペレーティングシステム(OS)レベル、アプリケーションレベル、およびペイロードレベルで発生するイベントのログを含む、
条項33:条項28に記載のコンピュータプログラム製品であって、非接続ネットワークは、仮想クラウドネットワークを含む。
【0360】
条項34:条項28に記載のコンピュータ可読記憶媒体であって、一方向伝達デバイスは、スマートネットワークインターフェースカード(スマートNIC)である。
【0361】
条項35:システムであって、
複数の命令を格納するように構成されているメモリを備える。
【0362】
システムは、メモリにアクセスするとともに、複数の命令を実行するように構成されている非接続ネットワークのコンピュータデバイスの1つまたは複数のプロセッサをさらに備える。
【0363】
1つまたは複数のプロセッサは、少なくとも、一組のフィルタ種別を提示するように構成されているアプリケーションプログラミングインターフェース(API)を提供する。
【0364】
1つまたは複数のプロセッサは、少なくとも、アプリケーションプログラミングインターフェースを介して、一組のフィルタ種別からの一揃えの1つまたは複数のフィルタ種別を受信する。
【0365】
1つまたは複数のプロセッサは、少なくとも、一揃えのフィルタ種別の順序を受信する。
【0366】
1つまたは複数のプロセッサは、少なくとも、アプリケーションプログラミングインターフェースを介して受信されたコマンドに応答して、上記順序の一揃えのフィルタを含むデータパイプラインを生成する。
【0367】
1つまたは複数のプロセッサは、少なくとも、一方向伝達デバイスで受信されたメッセージを上記順序の一揃えのフィルタに通すことによってメッセージを解析する。
【0368】
1つまたは複数のプロセッサは、少なくとも、非接続ネットワークのロギングネットワークを介して、データパイプラインで発生しているイベントのログを受信する。
【0369】
1つまたは複数のプロセッサは、少なくとも、アプリケーションプログラミングインターフェースを介して、イベントのログを提示する。
【0370】
1つまたは複数のプロセッサは、少なくとも、アプリケーションプログラミングインターフェースを介して終了コマンドを受信した際に、データパイプラインを終了する。
【0371】
条項36:条項35に記載のシステムであって、1つまたは複数のフィルタ種別は、マルウェアフィルタ、コンテンツフィルタ、シグネチャフィルタ、コンテンツアナライザ、機械学習フィルタ、または人工知能フィルタのうちの1つまたは複数を含む。
【0372】
条項37:条項35に記載のシステムであって、一方向伝達デバイスを介して、非接続ネットワークからトラステッドリポジトリにメッセージを送ることをさらに含む。
【0373】
条項38:条項35に記載のシステムであって、一方向伝達デバイスは、ソフトウェアベースの一方向伝達デバイスである。
【0374】
条項39:条項35に記載のシステムであって、イベントのログは、オペレーティングシステム(OS)レベル、アプリケーションレベル、およびペイロードレベルで発生するイベントのログを含む、
条項40:条項35に記載のシステムであって、非接続ネットワークは、仮想クラウドネットワークを含む。
【国際調査報告】