(57)【要約】  データセンタのネットワークトラフィックにおける脅威をモニタリングし報告するネットワークセキュリティに関するシステムおよび方法が開示されている。例えば、１つの実施形態は、第１のカプセル化用コンテキストおよび第１のカプセル化データをカプセル化した第１のチャネルデータカプセル化パケットを第１のセキュリティマイクロサービスが受信する段階と、第１のカプセル化用コンテキストを使用して第１のカプセル化データに対してセキュリティサービスを行う段階と、第２のチャネルデータカプセル化パケットを第２のセキュリティマイクロサービスに第１のセキュリティマイクロサービスが送信する段階であって、第２のチャネルカプセル化パケットは、セキュリティサービス要求を含む、段階と、第２のセキュリティマイクロサービスコンテキストと第２のセキュリティマイクロサービスタイムスタンプと第２のセキュリティマイクロサービス負荷とを含む第２のセキュリティマイクロサービスからの応答を第１のセキュリティマイクロサービスが受信する段階を含む方法を開示する。第１のセキュリティマイクロサービスはさらに、第１のチャネルデータカプセル化パケットに対する応答に含まれるタイムスタンプおよび負荷を生成する。
2019525600.tif 000002
【特許請求の範囲】
【請求項１】
第１のカプセル化用コンテキストおよび第１のカプセル化データをカプセル化した第１のチャネルデータカプセル化パケットを第１のセキュリティマイクロサービスが受信する段階と、
前記第１のカプセル化用コンテキストを使用して前記第１のカプセル化データに対してセキュリティサービスを行う段階と、
第２のチャネルデータカプセル化パケットを第２のセキュリティマイクロサービスに前記第１のセキュリティマイクロサービスが送信する段階であって、前記第２のチャネルデータカプセル化パケットは、セキュリティサービス要求を含む、段階と、
第２のセキュリティマイクロサービスコンテキストと第２のセキュリティマイクロサービスタイムスタンプと第２のセキュリティマイクロサービス負荷とを含む前記第２のセキュリティマイクロサービスからの応答を前記第１のセキュリティマイクロサービスが受信する段階と、
タイムスタンプおよび負荷を前記第１のセキュリティマイクロサービスが生成する段階と、
前記第１のチャネルデータカプセル化パケットに対する応答を前記第１のセキュリティマイクロサービスが送信する段階であって、前記応答は、前記第１のセキュリティマイクロサービスが生成した前記タイムスタンプおよび前記負荷を含む、段階と
を備える
方法。
【請求項２】
前記第１のチャネルデータカプセル化パケットは、ネットワーク環境内において前記第１のチャネルデータカプセル化パケットと関連付けられるデータチャネルを区別するためのカプセル化用識別子を含む、
請求項１に記載の方法。
【請求項３】
前記第１のチャネルデータカプセル化パケットは、カプセル化用ヘッダを含む、
請求項２に記載の方法。
【請求項４】
前記カプセル化用ヘッダは、前記第１のチャネルデータカプセル化パケット内の前記第１のカプセル化用コンテキストの位置と、第１のカプセル化用サービス負荷とを定義する、
請求項３に記載の方法。
【請求項５】
前記カプセル化用ヘッダはさらに、タイムスタンプを定義し、前記第１のセキュリティマイクロサービスは、前記第２のセキュリティマイクロサービスタイムスタンプおよび前記第２のセキュリティマイクロサービス負荷を記録する、
請求項４に記載の方法。
【請求項６】
前記第１のチャネルデータカプセル化パケットは、カプセル化用チェックサムをさらに含む、
請求項３から５のいずれか一項に記載の方法。
【請求項７】
前記第１のセキュリティマイクロサービスは、前記カプセル化用チェックサムを算出するときに前記カプセル化用識別子および前記カプセル化用ヘッダを使用する、
請求項６に記載の方法。
【請求項８】
メモリと、
第１のセキュリティマイクロサービスを実装するための命令を実行するプロセッサと
を備え、
前記第１のセキュリティマイクロサービスは、
第１のカプセル化用コンテキストおよび第１のカプセル化データをカプセル化した第１のチャネルデータカプセル化パケットを受信し、
前記第１のカプセル化用コンテキストを使用して前記第１のカプセル化データに対してセキュリティサービスを行い、
セキュリティサービス要求を含む第２のチャネルデータカプセル化パケットを第２のセキュリティマイクロサービスに送信し、
第２のセキュリティマイクロサービスコンテキストと第２のセキュリティマイクロサービスタイムスタンプと第２のセキュリティマイクロサービス負荷とを含む前記第２のセキュリティマイクロサービスからの応答を受信し、
タイムスタンプおよび負荷を生成し、
前記第１のセキュリティマイクロサービスが生成した前記タイムスタンプおよび前記負荷を含む前記第１のチャネルデータカプセル化パケットに対する応答を送信する、
システム。
【請求項９】
前記第１のチャネルデータカプセル化パケットは、ネットワーク環境内において前記第１のチャネルデータカプセル化パケットと関連付けられるデータチャネルを区別するためのカプセル化用識別子を含む、
請求項８に記載のシステム。
【請求項１０】
前記第１のチャネルデータカプセル化パケットは、カプセル化用ヘッダを含む、
請求項９に記載のシステム。
【請求項１１】
前記カプセル化用ヘッダは、前記第１のチャネルデータカプセル化パケット内の前記第１のカプセル化用コンテキストの位置と、第１のカプセル化用サービス負荷とを定義する、
請求項１０に記載のシステム。
【請求項１２】
前記カプセル化用ヘッダはさらに、タイムスタンプを定義する、
請求項１１に記載のシステム。
【請求項１３】
前記第１のチャネルデータカプセル化パケットは、カプセル化用チェックサムをさらに含む、
請求項１０から１２のいずれか一項に記載のシステム。
【請求項１４】
前記第１のセキュリティマイクロサービスは、前記カプセル化用チェックサムを算出するときに前記カプセル化用識別子および前記カプセル化用ヘッダを使用する、
請求項１３に記載のシステム。
【請求項１５】
前記第１のセキュリティマイクロサービスは、前記第２のセキュリティマイクロサービスタイムスタンプおよび前記第２のセキュリティマイクロサービス負荷を記録する、
請求項８から１４のいずれか一項に記載のシステム。
【請求項１６】
第１のカプセル化用コンテキストおよび第１のカプセル化データをカプセル化した第１のチャネルデータカプセル化パケットを第１のセキュリティマイクロサービスが受信する段階と、
前記第１のカプセル化用コンテキストを使用して前記第１のカプセル化データに対してセキュリティサービスを行う段階と、
第２のチャネルデータカプセル化パケットを第２のセキュリティマイクロサービスに前記第１のセキュリティマイクロサービスが送信する段階であって、前記第２のチャネルデータカプセル化パケットは、セキュリティサービス要求を含む、段階と、
第２のセキュリティマイクロサービスコンテキストと第２のセキュリティマイクロサービスタイムスタンプと第２のセキュリティマイクロサービス負荷とを含む前記第２のセキュリティマイクロサービスからの応答を前記第１のセキュリティマイクロサービスが受信する段階と、
タイムスタンプおよび負荷を前記第１のセキュリティマイクロサービスが生成する段階と、
前記第１のチャネルデータカプセル化パケットに対する応答を前記第１のセキュリティマイクロサービスが送信する段階であって、前記応答は、前記第１のセキュリティマイクロサービスが生成した前記タイムスタンプおよび前記負荷を含む、段階と
を備える方法をプロセッサに実行させるための
プログラム。
【請求項１７】
前記第１のチャネルデータカプセル化パケットは、ネットワーク環境内において前記第１のチャネルデータカプセル化パケットと関連付けられるデータチャネルを区別するためのカプセル化用識別子を含む、
請求項１６に記載のプログラム。
【請求項１８】
前記第１のチャネルデータカプセル化パケットは、カプセル化用ヘッダを含む、
請求項１６または１７に記載のプログラム。
【請求項１９】
前記カプセル化用ヘッダは、前記第１のチャネルデータカプセル化パケット内の前記第１のカプセル化用コンテキストの位置と、第１のカプセル化データとを定義する、
請求項１８に記載のプログラム。
【請求項２０】
前記カプセル化用ヘッダはさらに、タイムスタンプを定義する、
請求項１８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載の実施形態は、概してネットワークセキュリティに関する。特には、記載されている実施形態は、概して、クライアント／サーバ間のデータチャネルで使用するためのチャネルデータカプセル化のシステムおよび方法に関する。
【背景技術】
【０００２】
クラウドコンピューティングサービスの拡大により、様々なクライアントアプリケーションを実行するための計算能力を提供するサーバ群がもたらされた。クライアント／サーバ間の接続の中には、プライベートネットワークを使用するものがある。また、仮想プライベートネットワークを使用して、あたかもプライベートネットワークで直接接続されているかのように、公衆回線を介してデータをやり取りするクライアント／サーバ間の接続もある。クラウドコンピューティングサービスが拡大するに伴い、サーバをホスティングするデータセンタも拡大してきた。いくつかのホスティングされたサーバが、マルチテナントデータセンタにハウジングされ、関連のない可能性のある他のサーバとリソースを共有する。
【０００３】
そのようなデータセンタでは、データセキュリティおよびネットワークトラフィックのモニタリングが必須である。セキュリティのために、サーバとクライアントアプリケーションとの間を移動するデータをモニタリングする必要がある。マルチテナントシナリオを含むそのようなデータセンタ内のデータの流れをモニタリングする上で対処されるべき問題の１つが、マルチテナントセキュリティシステムにおいてどのようにデータを正しいサーバにルーティングするかということである。同じＩＰアドレスと同じＭＡＣアドレスを有する複数のサーバの間では、衝突が起こることがある。そのようなデータセンタにおいて対処されるべき別の問題は、どのようにしてセキュリティマイクロサービス階層中の正しいセキュリティマイクロサービスを介してパケットをルーティングするかということである。
【図面の簡単な説明】
【０００４】
以下の明細書および添付の特許請求を読み、以下の図面を参照することによって、本明細書に開示の実施形態の様々な利点が当業者に明らかとなるであろう。
【０００５】
【図１】メモリからネットワークセキュリティシステムのマイクロサービスをロードし、プロセッサがそれらを実行するためのコンピュータハードウェアを示すブロック図である。
【０００６】
【図２】一実施形態に係る、セキュリティマイクロサービスを使用して３倍スケールアウト要件を実装するスケーラブルなセキュリティアーキテクチャの一実施形態を満たす構成を示す。
【０００７】
【図３】一実施形態に係る、マイクロサービスをスケールアウトすることによって任意のスケールアウト要件を満たす構成を示す。
【０００８】
【図４】一実施形態に係る、ルーティングネットワークを介したアプリケーションと１または複数のサーバとの間のトラフィックをモニタリングするセキュリティサービスを示すブロック図である。
【０００９】
【図５】データパケットのカプセル化を示す。
【００１０】
【図６】クライアント／サーバ間のデータチャネルにおいてチャネルデータカプセル化方法を使用するプロセスの一実施形態である。
【００１１】
【図７】一実施形態に係る、セキュリティマイクロサービス階層を経てからサーバに移動するアプリケーションデータを示すブロックフロー図である。
【発明を実施するための形態】
【００１２】
以下の説明では、数々の具体的な詳細が記載される。しかしながら、本開示の実施形態はこれらの具体的な詳細を用いずとも実行され得ることを理解されたい。他の例では、本説明の理解を曖昧にすることのないよう、周知の回路、構造、および技術は詳細に示されていない。
【００１３】
本明細書において「１つの実施形態」、「一実施形態」、「一例示的実施形態」等と言うとき、その説明される実施形態は、特定の特徴、構造、または特性を含み得るが、全ての実施形態が必ずしもその特定の特徴、構造、または特性を含む必要はないことを示す。さらに、そのような文言は必ずしも同じ実施形態を指すわけではない。さらに、特定の特徴、構造、または特性が一実施形態に関連して説明されるとき、明示的に説明されているか否かに関わらず、他の実施形態に関連するそのような特徴、構造、または特性に影響を及ぼすことは当業者の知識の範囲内であると考える。
【００１４】
クラウドコンピューティング、および、複数のサーバをホスティングするデータセンタの拡大により複数の課題がもたらされ、本明細書に開示の実施形態がそれらの課題に対処する。例えば、アプリケーションおよびサーバが公衆回線を介して通信するとき、それらのインターネットプロトコル（ＩＰ）アドレスが、同じＩＰアドレスを有する他のデバイスと衝突することがある。また、全てのパケットを伝送制御プロトコル／ＩＰ（ＴＣＰ／ＩＰ）ヘッダと共にカプセル化することは、本明細書に開示の実施形態ほど効率的ではない。本明細書に開示の実施形態は、パケットではなくデータチャネルをカプセル化する。さらに、データがＴＣＰ／ＩＰパケットによって送信される場合、ヘッダ情報はデータセンタの最初の受信者によって失われ、データが様々なセキュリティマイクロサービス間を移動する経路を制御するさらなるコンテキスト情報またはルーティング情報はない。一例として、データストリームがネットワークアドレス変換（ＮＡＴ）の境界を越えるとき、物理インタフェースを特定する媒体アクセス制御（ＭＡＣ）アドレスを含むヘッダ情報が失われることがある。
【００１５】
さらに、クラウドアーキテクチャは分散処理にますます依存し、異なる複数の物理サーバのプロセスがプログラム間で情報を送信する。処理済みデータを送信する場合、あるプロセスのソースデータにおいて利用可能なルーティング情報は、その処理済みデータが別のプロセスに送られるときに失われることがある。一例として、ネットワークトラフィックをモニタリングするＴＣＰ／ＩＰ再構築サービスの後に、コンテンツスキャンサービスが動作する。ＴＣＰ／ＩＰ再構築サービスの出力は、もはやパケットを含まない（むしろパケットが運ぶデータストリームを含む）ので、何らかのルーティング情報を、またはそのルーティング情報から導出される情報を、後続の処理要素に提供しない場合がある。
【００１６】
本明細書に開示の実施形態によると、チャネルデータカプセル化を利用して、セキュリティサービスの分散したマイクロサービス間に統一された通信手段を提供するシステム、方法、および装置の実施形態が開示される。チャネルデータカプセル化によって、限定はされないが、ネットワークルーティング負荷の低減、マイクロサービスの動的スケーリング、およびセキュリティサービスのコンポーネントであるマイクロサービスのデプロイについての制約の除去を含む多数の有益な用途が可能になる。
【００１７】
本明細書に開示の実施形態によると、ネットワークパケットが、データチャネルに割り振られ、少なくとも１または複数のネットワークパケットとカプセル化用コンテキストとカプセル化用ヘッダとを含むチャネルデータカプセル化パケットにカプセル化される。チャネルデータカプセル化パケットは、１より多くのネットワークパケットを搬送できる。チャネルデータカプセル化パケットは、データチャネルとそれらの特性とを特定し、サーバアドレスの衝突に対処する情報を含む。チャネルデータカプセル化パケットは、チャネルデータカプセル化パケットのデータがどのセキュリティマイクロサービスにルーティングされるべきかを判断するためのルーティング情報およびセキュリティコンテキストを含む。いくつかの実施形態において、チャネルデータカプセル化パケットには、負荷情報およびタイムスタンプなどのさらなる情報が含まれる。チャネルデータカプセル化パケットは、データセンタのセキュリティマイクロサービスが、データをセキュリティマイクロサービス階層中の次の適切なセキュリティマイクロサービスにルーティングすることを可能にする情報を含む。一例として、少なくとも部分的にカプセル化用コンテキストに基づいて、ＴＣＰ／ＩＰマイクロサービスが、チャネルデータカプセル化パケットを暗号化／復号マイクロサービスまたはＤＰＩマイクロサービスにルーティングする。
【００１８】
カプセル化チャネルデータは、パケット、またはパケットの処理から導出される情報で構成される。いくつかの実施形態において、パケットをパケット解析サービスに運び、その後、再構築されたデータストリームをさらなるセキュリティサービスに運ぶのに、同じカプセル化が使用される。再構築されたデータをカプセル化用コンテキストと共にカプセル化することによって、元のソースパケットから導出された情報が、処理後のデータに対して動作するサービスによって利用されてよく、それらのサービスが利用可能なソースパケットは使用されない。
【００１９】
チャネルデータのカプセル化は、カプセル化データを運ぶために必要なルーティングヘッダ情報で構成されるカプセル化用ヘッダを使用することにより達成される。このヘッダは、カプセル化チャネルデータの受信者を特定するのに十分なイーサネット（登録商標）ヘッダ、ＩＰヘッダ、または他のヘッダで構成されてよい。データセンタ内において、（ＩＰベースの）ホストネットワークを、（これもまたＩＰベースの）管理ハイパーバイザネットワークと共にカプセル化することは一般的に行われることである。一例として、ソフトウェアデファインドネットワーキングは、ＩＰＩＰカプセル化を使用して仮想マシン間の接続を提供し得る。
【００２０】
受信データを処理し、同じチャネルデータカプセル化方式を使用して処理済みデータを送信する全マイクロサービスにわたって維持され得るカプセル化用コンテキストを含むことで、各階層レベルでポリシ状態を維持することなく、カプセル化用コンテキストに関連付けられるポリシをセキュリティサービス階層全体にわたって維持することが可能となる。カプセル化用コンテキストはまた、セキュリティ措置を定義するために使用されてよい。マイクロサービスは、カプセル化用コンテキストに基づいて、実行されるべきセキュリティ動作を判断してよい。一例として、ＤＰＩマイクロサービスが、たとえ元のパケットについて何も知らないとしても、カプセル化用コンテキストに基づいてどの程度のスキャンが必要かを判断してよい。
【００２１】
カプセル化チャネルデータは、タイムスタンプおよび負荷メトリックを含む特性でタギングされてよい。タイムスタンプは、マイクロサービスによる処理の継続時間、マイクロサービスによる処理が開始した時間、または、カプセル化チャネルデータの処理と関連付けられる別の時間特性を指してよい。負荷メトリックは、カプセル化チャネルデータを処理するマイクロサービスの相対的または絶対的な負荷を指してよい。カプセル化チャネルに含まれるコンテンツではなくカプセル化チャネルにタギングすることによって、マイクロサービス間における負荷分散に必要なリアルタイムの情報を維持しながら、ルーティングおよび処理の両方の効率化を実現する。
【００２２】
図１は、マイクロサービスを使用するスケーラブルなマイクロサービスアーキテクチャのコンポーネントの一実施形態を示すブロック図である。ネットワークセキュリティシステムのマイクロサービスが、メモリ（例えば、ランダムアクセスメモリ（ＲＡＭ）などの揮発性メモリおよび／またはディスクなどの不揮発性メモリ）に記憶され、１または複数のハードウェアプロセッサまたはプロセッサコアによって実行される。ネットワークセキュリティシステムのマイクロサービスは、具体的なセキュリティサービスを行うためのコンピュータ実行可能命令で構成され、利用可能な全物理サーバにわたって構成に基づいてデプロイされる。各マイクロサービスは通常、仮想シャーシ１０６のバックプレーンを介して構成とタスクとを受信し、ステータスと統計値と他の情報とをバックプレーンに返す。マイクロサービスの一般的な特性は、メモリが他のマイクロサービスから分離され保護されていることである。このような方式では、他のマイクロサービスに影響を与えることなく、個々のマイクロサービスが別の物理サーバに移動させられてよく、または異常終了してよい。
【００２３】
セキュリティシステムが処理したデータは、データプレーンを使用して、あるマイクロサービスから別の（上位階層の）マイクロサービスに転送される。いくつかの実施形態において、そのような転送の間に、下位のマイクロサービスは、どの上位階層のマイクロサービスを利用するかに関して（構成、現在の統計値、および他の情報に基づいて）決定を下す。そのような決定は、上位階層のマイクロサービスが効率的に利用されることを保証するための負荷分散決定を構成してよい。他の実施形態では、どのマイクロサービスを利用するかの決定は、より中心的なエンティティが下す。
【００２４】
図示するように、ネットワークセキュリティシステムは、（中央演算処理装置（ＣＰＵ）もしくはその１または複数のコア、グラフィックス処理ユニット（ＧＰＵ）もしくはその１または複数のコア、または、加速演算処理装置（ＡＰＵ）もしくはその１または複数のコアなどの）ハードウェアプロセッサ１０２を利用して、メモリ１０４（例えば、ランダムアクセスメモリ（ＲＡＭ）などの揮発性メモリおよび／またはディスクなどの不揮発性メモリ）に記憶されたマイクロサービスを実行する。ネットワークインタフェース１２８（例えば、有線もしくは無線のファブリックまたはインターコネクト）が、データセンタと通信のするための手段を提供する。以下でさらに説明するように、ネットワークセキュリティシステムは、マイクロサービスを使用してトラフィックを検査し、脅威を検出し、その他データセンタを保護してよい。
【００２５】
ここで、上記の機能を提供するネットワークセキュリティシステムの実施形態をより詳細に説明する。ネットワークセキュリティシステムは、データセンタにセキュリティを追加し、または、データセンタのセキュリティを高める。一実施形態において、ネットワークセキュリティシステムは、シードソフトウェアアプリケーションの形で提供される（例えばダウンロードされる）。シードソフトウェアアプリケーションは、データセンタのホスト上でネットワークセキュリティシステムのマイクロサービスをインスタンス化する。本明細書において使用されるとき、マイクロサービスコンテナとは、マイクロサービスが動作する場所、最も顕著なものとしては仮想マシン、を指す。ネットワークセキュリティシステムはデプロイされると、（上記において詳述したような）ハードウェアプロセッサ１０２、メモリ１０４、およびネットワークインタフェース１２８を利用する。多くのシナリオでは、既存のハードウェアを使用し、および／または、特定の機能用の専用のラックデバイスを購入する必要なく、セキュリティが追加／構成されてよい。シードソフトウェアアプリケーションは、多種多様のホストのいずれか１つにインストールされてよい。それらのホストについては、低速か高速か、低コストか高コストか、汎用品かカスタマイズ品か、地理的に分散されているか、冗長方式の一部であるか、または、定期的バックアップを有するシステムの一部であるか、を問わない。
【００２６】
以下でもさらに説明するように、いくつかの実施形態において、ネットワークセキュリティシステムは起動されると、ネットワークインタフェース１２８を利用してデータセンタを探索し、どのようなネットワークセグメントが存在するかと、様々なネットワークセグメントのセキュリティ要件と、どのようなホストおよびハードウェアリソースが利用可能かとを発見し、また、必要に応じてさらなる構成情報を発見する。一実施形態において、データセンタ自体が、ハイパーバイザを備えたいくつかの機械、または物理ハードウェアを有し、ネットワークセキュリティシステム１００はマイクロサービスを提供して、それらの内部仮想マシンまたは物理ハードウェアのうちの１または複数と通信し、それらを保護する。データセンタでの発見を行った後、いくつかの実施形態において、次にネットワークセキュリティシステムは、ユーザインタフェースを介して選択される、または、既存の企業管理ソフトウェアとの接続によって選択される、利用可能なセキュリティツールを提供または提案する。１つの実施形態において、ネットワークセキュリティシステムは構成されると、「インライン」でデプロイされて、データセンタに向かうパケットの実質すべてを受信し、ネットワークセキュリティシステムが疑わしいトラフィックをデータセンタに到着する前に捕捉し阻止することを可能にする。データセンタについて理解した上で、ネットワークセキュリティシステム１００は、マイクロサービスをデプロイして、データセンタの入口だけでなく、データセンタの至るところでトラフィックを検査する。いくつかの実施形態において、ネットワークセキュリティシステムは「コピーのみ」の構成でデプロイされる。当該構成では、ネットワークセキュリティシステムはトラフィックをモニタリングし、脅威を検出し、アラートを発するが、トラフィックをデータセンタに到着する前に捕捉することはない。
【００２７】
再度図１を参照すると、１つの実施形態のハードウェアプロセッサ１０２は、図示されてないが、１または複数のレベルのキャッシュメモリを有する。図示するように、メモリ１０４は、マイクロサービス１０８、１１０、１１２、１１４、１１６、１１８、１２０、および１２２（１０８〜１２２）と、それ自体がマイクロサービスである仮想シャーシ１０６とを記憶している。一実施形態において、マイクロサービスはサイズが小さく、比較的少数の命令で構成される。一実施形態において、マイクロサービスは、互いに独立している。図示するように、マイクロサービス１０８〜１２２は、メモリからロードされ、ハードウェアプロセッサ１０２によって実行されるマイクロサービスである。図２および図３に関連して以下でさらに説明するように、それらのマイクロサービスは、例えば、ＴＣＰ／ＩＰ、ＳＳＬ、ＤＰＩ、またはＤＰＬの検査マイクロサービスといったデータパスセキュリティマイクロサービスを含む。マイクロサービスはまた、例えば、マイクロサービスを管理するためのシャーシコントローラ、構成マイクロサービス、インフラストラクチャ発見マイクロサービス、データを記憶するためのデータベースマイクロサービス、および外部のセキュリティクラウドからポリシの更新を受信するためのポリシ更新マイクロサービスといった管理マイクロサービスと、様々なソースからポリシデータを受信し、図２および図３に関連して以下でさらに説明される例をはじめとするマイクロサービスによって使用されるバイナリのポリシ出力を生成するコンパイラとを含んでよい。
【００２８】
ネットワークセキュリティシステムはネットワークインタフェース１２８を介して、データセンタへの／データセンタからのトラフィックを受信する。１つの実施形態において、ネットワークセキュリティシステムは、トラフィックを検査し、場合によってはトラフィックがデータセンタに到着するか、またはデータセンタを去る前に脅威を捕捉するために、インラインで配置される。代替的な実施形態において、ネットワークセキュリティシステムは、データセンタに向かう、またはデータセンタから出ていくトラフィックをモニタリングする。この場合、ネットワークセキュリティシステムは、脅威を検出し、アラートを発するが、データを阻止することはしない。次にハードウェアプロセッサ１０２は、データに対して様々なデータセキュリティマイクロサービスを実行する。例えば、図２および図３に関連して以下でさらに説明するように、トラフィックは通常、まずセグメントマイクロサービスに入り通過し、以降順に、ＴＣＰ／ＩＰ検査マイクロサービス、ＳＳＬマイクロサービス、ＤＰＩマイクロサービス、ＮＯＸマイクロサービス、およびＤＬＰマイクロサービスに入り通過する。しかしながら、これらのサービスのうちの１または複数は有効でなくてよい。いくつかの実施形態において、セグメントマイクロサービスはネットワークセグメント内に存在し、データパケットのエントリポイントとして機能し、さらなる解析が行われるよう、パケットを適切なマイクロサービスに転送する。本明細書において使用されるデータパスマイクロサービスは、ネットワークトラフィックを検査および解析する、ＴＣＰ、ＴＬＳ、ＤＰＩ、ＮＯＸ、またはＤＬＰなどの様々なマイクロサービスを指す。ＴＣＰマイクロサービスは、例えば第４層〜第６層の任意のネットワークパケットを処理できるパケット処理マイクロサービスを指し、ファイアウォール機能の一部を含む。ＴＬＳマイクロサービスは、例えばトランスポート層のセキュリティマイクロサービスを指し、接続を復号／再暗号化する。ＤＰＩマイクロサービスは、例えばディープパケット検査マイクロサービスを指し、第７層の検査を担う。ＮＯＸマイクロサービスは、例えばネットワークオブジェクトエクストラクタマイクロサービスを指し、ＤＰＩとともに動作して、個々のパケットからオブジェクトを構築し、オブジェクトを他のサービスに引き渡す。ＤＬＰマイクロサービスは、例えばデータ紛失防止マイクロサービスを指し、データ紛失を検出し防止する。一方、コントロールパスマイクロサービスは、管理プレーンにおいてインスタンス化され、管理プレーンを構成するファクトリ、コンパイラ、構成、インフラストラクチャ発見、データベース、メッセンジャ、スケーラ、シャーシコントローラなどの様々なマイクロサービスである。１つの実施形態において、上記マイクロサービスが検出する脅威は、シャーシコントローラマイクロサービスに報告され、シャーシコントローラマイクロサービスは救済措置を講じる。
【００２９】
一実施形態において、マイクロサービス１０８〜１２２は、ネットワークインタフェース１２８を介してインターネットからロードされたコンピュータ実行可能命令を使用して実装される。例えば、一実施形態において、当該マイクロサービスは、ウェブサイトまたはオンラインストアサイトからダウンロードされるコンピュータ実行可能命令を使用して実装される。いくつかの実施形態において、マイクロサービス１０８〜１２２は、メモリ１０４にロードされたコンピュータ実行可能命令を使用して実装される。様々な実施形態において、当該マイクロサービスは、非一時的コンピュータ可読媒体にロードされ、非一時的コンピュータ可読媒体から受信したコンピュータ実行可能命令を使用して実装される。当該非一時的コンピュータ可読媒体とは、限定はされないが、別のディスクドライブ、ＣＤ、ＣＤＲＯＭ、ＤＶＤ、ＵＳＢフラッシュドライブ、フラッシュメモリ、セキュアデジタル（ＳＤ）メモリカード、およびメモリカードを含むデジタルメディアなどである。一例のデジタルメディアから受信したマイクロサービスは、メモリ１０４の中に記憶される。当該実施形態は、この文脈において限定されない。さらなる実施形態において、デジタルメディアは、プロセッサおよびメモリなどのハードウェア要素の組み合わせの構成要素であるデータソースである。
【００３０】
ほとんどの実施形態において、ネットワークセキュリティシステムは、データセンタのコンピュータ上で動作する。しかしながら、代替的な実施形態では、ネットワークセキュリティシステムは、低コストなものから高コストなものに及ぶ、および、低性能なものから高性能なものに及ぶ、多種多様な代替的なコンピューティングプラットフォームのいずれか１つにインストールされ、そこで動作する。いくつかの実施形態において、ネットワークセキュリティシステムは、低コストな汎用品のサーバコンピュータ上にインストールされ、そこで動作し、または、いくつかの実施形態において、ネットワークセキュリティシステムは、低コストなラックマウントサーバ上にインストールされ、そこで動作する。図示するように、ハードウェアプロセッサ１０２は、シングルコアプロセッサである。代替的な実施形態において、ハードウェアプロセッサ１０２は、マルチコアプロセッサである。代替的な実施形態において、ハードウェアプロセッサ１０２は、超並列プロセッサである。
【００３１】
いくつかの実施形態において、仮想シャーシ１０６およびマイクロサービス１０８〜１２２は、保護されるべきデータセンタで使用されている多種多様なハードウェアプラットフォームのうちのいずれかにおいてホスティングされてよい。以下の表１において、複数の例示的なデータセンタ環境を列挙し説明する。それらのうちのいずれか１つが仮想シャーシ１０６およびマイクロサービス１０８〜１２２をホスティングする。
【表１】
2019525600.tif 000003
【００３２】
いくつかの例では、ネットワークセキュリティシステムは、利用可能なリソースを使用しスケールアウトを行って、より高いトラフィックまたは負荷に対応する。例示的な実施形態において、ハードウェアプロセッサ１０２およびメモリ１０４は、必要に応じて動的にスケールアウトされ、またはスケールインされる。スケールアウトする場合はさらにＣＰＵおよびメモリが追加され、スケールインする場合はいくつかのＣＰＵおよび／またはメモリの電源を切る。このスケールアウトは、セキュリティ階層のうちの、さらにＣＰＵおよびメモリを必要とする部分にそれらを割り当てるために行われ、一方、ＣＰＵおよびメモリの既存の割り当てを利用してより高いトラフィックに対応できる部分に対してはさらなるＣＰＵおよびメモリの割り当ては行われない。
【００３３】
マイクロサービスの一般的な特性は、メモリが他のマイクロサービスから分離され保護されていることである。このような方式では、他のマイクロサービスに影響を与えることなく、個々のマイクロサービスが別の物理サーバに移動させられてよく、または異常終了してよい。マイクロサービスは、スレッドとは区別され得る。なぜなら、通常、スレッドは共有メモリ空間内で動作し、スレッドが生み出されたオペレーティングシステムの範囲内に存在するものだからである。
【００３４】
図２は、一実施形態に係る、マイクロサービスを使用して、３倍スケールアウト要件を満たす構成を示している。この例では、１つのマイクロサービス（ＤＰＩ）だけがさらなるリソースを必要としている。図示するように、ＤＬＰマイクロサービス２０４、ＮＯＸマイクロサービス２０６、ＤＰＩマイクロサービス２０８、ＳＳＬ／ＴＬＳマイクロサービス２１０、ＴＣＰ／ＩＰマイクロサービス２１２、およびセグメントマイクロサービス２１４を含むスケーラブルなマイクロサービスアーキテクチャ２００を利用することによって、セキュリティサービス階層の各層が、スケーリングされ、次の階層レベルへの処理済みデータの供給の負荷分散をするよう独立して構成される。図示するように、データセンタ２１６は、データセンタラック２１８を有し、データセンタラック２１８は、物理サーバＡ２２０、物理サーバＢ２２２、および物理サーバＣ２２４を含む。図示するように、データセンタラック２２６は、物理サーバＸ２２８、物理サーバＹ２３０、および物理サーバＺ２３２を含む。ＤＰＩマイクロサービス２０８は、３倍にスケールアウトされており、本例では物理サーバＢ２２２および物理サーバＣ２２４上のマイクロサービス４〜６として実行されるよう割り振られている。スケーラブルなセキュリティアーキテクチャの残りのマイクロサービスは、物理サーバＡ２２０、物理サーバＸ２２８、物理サーバＹ２３０、および物理サーバＺ２３２によって実装されるものとして図示されている。構成マイクロサービス２０２は、セキュリティサービスを受信する各物理サーバ上でソフトウェアコンポーネントとしてデプロイされる構成バックプレーンおよびデータプレーンを作成する。この作成プロセスは、ルーティングルールの構成、（サブネットなどの）ネットワークアドレス空間の予約、および仮想環境の構成という形態をとって、予約したアドレス空間が部分的に、安全であるべきサーバ内外におけるネットワーク通信用のゲートウェイとして利用される。したがって、バックプレーンもデータプレーンも、セキュリティシステムによって管理される仮想ネットワークとみなされてよい。その結果、すべてのセキュリティマイクロサービスはこれらのネットワークを利用して、互いにパケット、コンテンツ、状態、および他の情報を送信し合ってよい。バックプレーンおよびデータプレーンの特性は、セキュリティシステムの外部からのパケットトラフィックを拒否し、物理サーバおよび仮想環境の構成によらず、マイクロサービスの間で情報をルーティングするよう構成される。
【００３５】
図３は、一実施形態に係る、任意のスケールアウト要件を満たす構成を示す。図示するように、スケーラブルなセキュリティアーキテクチャ３００は、構成マイクロサービス３０２、ＤＬＰ（２倍）マイクロサービス３０４（２倍のスケールアウトが必要）、ＮＯＸマイクロサービス３０６、ＤＰＩ（３倍）マイクロサービス３０８（３倍のスケールアウトが必要）、ＳＳＬ／ＴＬＳマイクロサービス３１０、ＴＣＰ／ＩＰ（３倍）マイクロサービス３１２（３倍のスケールアウトが必要）、およびセグメントマイクロサービス３１４を有する。図示するように、構成マイクロサービス３１６は、最下位階層から最上位階層までの１１のマイクロサービス（３１８、３２０、３２２、３２４、３２６、および３２８）をプロビジョニングし、それらがバックプレーンを介して互いに通信し合うよう構成する。マイクロサービスは、データセンタ３３０の物理サーバによって実装される。
【００３６】
図４は、一実施形態に係るシステムレベルのブロック図である。一実施形態によると、１または複数のセキュリティサービス４１０が、ルーティングネットワーク４０８を介してアプリケーション４１６と１または複数のサーバ４０４および４０６との間のトラフィックをモニタリングする。セキュリティサービス４１０は、アプリケーション４１６ならびにサーバ４０４および４０６への／アプリケーション４１６ならびにサーバ４０４および４０６からの、トラフィックを保護するために使用されるマイクロサービス群である。これらのマイクロサービスを、サーバ４０４またはサーバ４０６などの１つの物理サーバにとどめておく必要はない。例えば、セキュリティサービス４１０のうちの１または複数のマイクロサービスがサーバ４０４上で実行されてよく、セキュリティサービス４１０のうちの他のマイクロサービスはサーバ４０６上で実行されてよい。いくつかの実施形態において、セキュリティサービス４１０は、それが保護中ではないサーバ上で実行される。
【００３７】
ルーティングネットワーク４０８は、サーバ４０４とサーバ４０６とセキュリティサービス４１０とアプリケーション４１６との間に接続を提供し、本明細書に開示の実施形態によって用いられるカプセル化プロトコルをサポートしてよい。いくつかの実施形態において、ルーティングネットワーク４０８の一部は、サーバ４０４および４０６のハイパーバイザ構成に応じて構成される。
【００３８】
以下でさらに説明するように、チャネルデータカプセル化パケットに含まれるルーティング情報により、アプリケーション４１６とサーバ４０４および／またはサーバ４０６との間で移動するデータは、正しいサーバにルーティングされ、アプリケーション４１６と他のサーバとの間で移動するデータから切り離された状態に保たれる。したがって、基本的にはプライベートネットワーク４１２であるものが、セキュリティサービス４１０を実行するサーバとサーバ４０４との間に作成され、同様に、基本的にはプライベートネットワーク４１４であるものが、セキュリティサービス４１０を実行するサーバとサーバ４０６との間に作成される。
【００３９】
図５は、一実施形態に係るチャネルデータカプセル化パケットを示す。図示するように、チャネルデータカプセル化パケット５００は、サーバパケットヘッダ５０４、サーバパケットデータ５０６、およびサーバパケットチェックサム５０８を含むサーバパケット５０２と、サーバパケットヘッダ５１２、サーバパケットデータ５１４、およびサーバパケットチェックサム５１６を含むサーバパケット５１０との２つのサーバパケットをカプセル化する。チャネルデータカプセル化パケット５００は、カプセル化用識別子５１８、カプセル化用ヘッダ５２０、カプセル化用コンテキスト５２２、カプセル化用サービス負荷５２４、およびカプセル化用タイムスタンプ５２６をさらに有する。カプセル化用サービス負荷は、応答を下位階層レベルのセキュリティマイクロサービスに送信するときにセキュリティマイクロサービスの現在の負荷を伝えるために使用され、受信する側のセキュリティマイクロサービスが、負荷分散決定の際に複数の上位階層のマイクロサービスから選択を行うことができるようにする。カプセル化用タイムスタンプは、応答の一部としてサービス負荷と同じ方式でセキュリティマイクロサービスに送信されるレイテンシを（直接もしくは間接的に）提供する。いくつかの実施形態において、サービス負荷およびレイテンシの両方が負荷分散決定の際に利用される。チャネルデータカプセル化パケット５００は、カプセル化用チェックサム５２８も有する。いくつかの実施形態において、カプセル化用チェックサム５２８を算出するときに、カプセル化用ヘッダ５２０およびカプセル化用識別子５１８が使用される。カプセル化用チェックサムは、チャネルデータカプセル化パケットの完全性チェックを提供する。いくつかの実施形態において、当該チェックサムは、カプセル化用ヘッダだけを対象とする。図示してあるのはサーバパケット５０２および５１０の２つであるが、これは単に例示を目的としたものであり、任意の数のサーバパケットがサポートされることは言うまでもない。
【００４０】
チャネルデータカプセル化パケット５００が多数の、例えば５から１００の間の数のサーバパケットをカプセル化するとき、これは実質的には個々のデータパケットの送信ではなくデータチャネルの送信である。ゆえに、チャネルデータカプセル化パケット５００は、多数のサーバパケットがカプセル化される場合に効率を高める。例えば、多数のサーバパケットに対して、それらのルーティングを１つ１つ決定するのではなく、ただ１つのルーティング決定が下され得る。さらに、チャネルデータのルーティング先のマイクロサービスを選択するために、ただ１つの負荷分散決定が下されてよい。さらに、大きいがより少ないデータパケットを送信することで、バックプレーンの競合を低減させる。
【００４１】
いくつかの実施形態において、サーバパケット５０２および５１０は実質的に類似したＴＣＰ／ＩＰフォーマットのものである。当該フォーマットは、ルーティングネットワーク４０８がそれらのパケットを受信した際のフォーマットである。代替的な実施形態では、サーバパケット５０２および５１０は、新しいパケットヘッダおよびパケットチェックサムと共にカプセル化される。
【００４２】
カプセル化用識別子５１８は、サーバパケットが受信されたポート番号、サーバパケットが受信されたセキュリティマイクロサービスのインタフェース番号、および、アプリケーションとサーバとの間のデータチャネルを特定するために共に使用されるさらなる情報などのさらなる情報を含む。ゆえに、マルチテナントクラウドコンピューティングデータセンタの２つのサーバが同じＩＰアドレスを共有していたとしても、それらのデータチャネルは、それらのカプセル化用ヘッダ５２０に基づいて区別され得る。
【００４３】
カプセル化用識別子５１８は、カプセル化パケット（例えば、サーバパケット５０２および５１０）がどのようにルーティングされるべきかについての情報を提供する。例えば、１つの実施形態において、カプセル化用識別子５１８は、サーバパケット５０２および５１０が仮想ローカルエリアネットワーク（ＶＬＡＮ）ドメインにしたがってルーティングされるべきであると示す情報を含む。いくつかの実施形態において、カプセル化用識別子５１８は、ネットワーク環境内においてデータチャネルを区別するために使用される。
【００４４】
カプセル化用ヘッダ５２０は、サーバパケットヘッダ５０４および５１２への追加の、またはそれらと整合性のある、その他の情報を含む。例えば、カプセル化用ヘッダ５２０は、チャネルデータカプセル化パケットに含まれるサーバパケットの数を含んでよい。いくつかの実施形態において、サーバパケットヘッダ５０４および５１２は、それらのデータパケットがセキュリティサービスに入ったときの、それらのデータパケットと関連付けられたヘッダと実質的に同じである。一実施形態では、サーバパケットヘッダ５０４および５１２は、ＶＬＡＮヘッダである。一実施形態では、サーバパケットヘッダ５０４および５１２は、ＴＣＰ／ＩＰヘッダである。
【００４５】
カプセル化用コンテキスト５２２は、ルーティングポリシのみならず、応用性のあるポリシで構成される。例えば、一実施形態において、カプセル化用コンテキスト５２２は、パケットをどこへどのようにルーティングするべきかということを説明するのみならず、サーバパケットを処理する際の当該パケットコンテキストの扱い方を示してもいる。
【００４６】
図６は、クライアント／サーバ間のデータチャネルにおいてチャネルデータカプセル化方法を使用するプロセスの一実施形態である。第１のセキュリティマイクロサービスが、データおよびコンテキストを含むカプセル化されたセキュリティサービス要求６０２を受信する。当該データは、処理されるべき１または複数のパケット、データのストリームとして再構築されたパケット、再構築されたデータストリームから抽出されたオブジェクトもしくはコンテンツ、またはセキュリティサービスが行われるべき他のデータで構成されてよい。次に、当該コンテキストが、サービスの結果という形でさらなるデータを生成するセキュリティサービス６０４を行うために利用される。例えば、ＴＣＰ／ＩＰサービスは、再構築されたデータストリームに対応するデータを生成してよい。生成されたデータは、さらなる処理のために、受信したコンテキストとともに６０６として第２のマイクロサービスに送信される。
【００４７】
第１のセキュリティマイクロサービスは、自身が出したセキュリティサービス処理要求６０６に対する応答を、応答、コンテキスト、タイムスタンプ、および負荷を含むカプセル化データ６０８において、第２のセキュリティマイクロサービスから受信する。いくつかの実施形態において、応答は、要求されたサービス処理の一部として生成されたさらなるデータを含む。６０８内のコンテキストは、６０２において受信されたものと同じコンテキストであってよく、または、第２のセキュリティマイクロサービスによる処理の結果、変更されていてもよい。タイムスタンプは、６０６と６０８との間の処理の継続時間を表す。いくつかの実施形態において、受信したタイムスタンプと現在時間との差（経過時間）に基づいて、新しいタイムスタンプが第１のセキュリティマイクロサービスによって算出される。いくつかの実施形態において、タイムスタンプは、タイムスタンプ値を生成した第２のセキュリティマイクロサービスによって算出された継続時間である。受信された負荷値は、セキュリティサービス要求が処理された期間における第２のセキュリティマイクロサービスの負荷を表す。タイムスタンプおよび負荷値が６１０に記録される。いくつかの実施形態において、当該タイムスタンプおよび負荷値は、第１のセキュリティマイクロサービスによるその後のセキュリティサービス要求のための負荷分散決定の際に使用される。
【００４８】
第２のセキュリティマイクロサービスからサービス要求に対する応答を受信した後、第１のセキュリティマイクロサービスは、自身のタイムスタンプおよび負荷６１２を生成し、元のセキュリティサービス要求６０２に対する応答を、生成したタイムスタンプおよび負荷を含めて送信する。この応答６１４はまた、図５において説明したカプセル化の形をとり、第２のセキュリティマイクロサービスから受信したコンテキストも含む。いくつかの実施形態において、第１のセキュリティマイクロサービスは、６１４において送信されたコンテキストを、第１のセキュリティマイクロサービス内での処理、第２のセキュリティマイクロサービスからの応答、またはその２つの組み合わせに基づいて変更する。
【００４９】
図７は、一実施形態に係る、セキュリティマイクロサービス階層を経てからサーバに移動するアプリケーションデータを示すブロックフロー図である。図示するように、当該フローは、アプリケーション７０２からネットワークデータパケットを受信するセキュリティサービス７０４から開始する。セキュリティサービス７０４は、パケットをインタフェースマイクロサービス７０８に転送し（７０６）、インタフェースマイクロサービス７０８は、３つのパケットＡ、Ｂ、およびＣとコンテキストＸとをカプセル化するチャネルデータカプセル化パケット７１０を生成する。図示するように、チャネルデータカプセル化パケット７１０は３つのパケットをカプセル化するが、代替的な実施形態ではカプセル化パケットの数は異なっていてよく、限定はされない。いくつかの実施形態において、コンテキストＸは、少なくともパケットＡ、Ｂ、およびＣのヘッダに基づいて生成される。いくつかの実施形態において、コンテキストＸは、ＩＰアドレス、パケットの送信元および／または送信先のポートおよびＭＡＣアドレスなどのパケットヘッダフィールドを参照して生成される。いくつかの実施形態において、コンテキストＸの生成は、仮想化環境から取得されたインタフェース識別子の利用を含む。コンテキストＸの生成は、テーブルのヘッダフィールドおよび他のデータを参照することによって、ヘッダフィールドおよび他のデータのハッシュを行うことよって、または、共通のセキュリティポリシを適用すれば、共通のコンテキスト、もしくはビットフィールドなどのコンテキストの共通部分をパケットに与えるような別の方法によって、達成されてよい。
【００５０】
コンテキストＸは、パケットＡ、Ｂ、およびＣの生成に関与する、トラフィックストリーム、送信元のマシン（ｓｏｕｒｃｅ  ｍａｃｈｉｎｅ）、またはアプリケーションを説明する識別子とみなされてよい。この識別子は、（テーブル参照として使用されるＩＤなどの）直接的な方法、（データ構造にアクセスするために使用されるポインタなどの）間接的な方法、または、パケットＡ、Ｂ、およびＣの処理に必要なポリシおよび処理に関してマイクロサービスに命令する他の何らかの方法であってよい。一例として、コンテキストＸは、ハッシュを行うことによって、最長プレフィックスマッチによって、または、ＩＰアドレス、ＴＣＰポート、インタフェース名（もしくはＭＡＣアドレス）、もしくは他のパケット特性などのヘッダフィールドを参照することによって生成されてよい。次に、生成されたコンテキストをＤＰＩサービスなどのセキュリティサービスが使用して、どのルールがパケットＡ、Ｂ、およびＣ（および同じトラフィックストリームの一部である他のパケット）のデータをスキャンするときに利用されるべきかを判断してよい。この情報は、（ビットフィールドもしくは他の情報として）コンテキスト内に埋め込まれてよく、（別のサービスがテーブルもしくはデータ構造を参照することなどの）間接的な方法で利用可能であってよく、または、そのような情報の任意の組み合わせに基づいてプログラム的に生成されてよい。
【００５１】
インタフェースマイクロサービス７０８は、チャネルデータカプセル化パケット７１０をＴＣＰ／ＩＰマイクロサービス７１４に送信する（７１２）。図示するように、チャネルデータカプセル化パケット７１６は、コンテキストＸおよびコンテンツＹを含み、コンテキストＸおよびコンテンツＹはチャネルデータカプセル化パケット７１０のパケットＡ、Ｂ、およびＣに対応している。チャネルデータカプセル化パケット７１６のセキュリティ処理を行った後、ＴＣＰ／ＩＰマイクロサービス７１４は、当該パケットをＤＰＩマイクロサービス７２０に送信する（７１８）。図示するように、チャネルデータカプセル化パケット７２２は、コンテキストＸおよびコンテンツＹを含み、コンテキストＸおよびコンテンツＹは、チャネルデータカプセル化パケット７１０のパケットＡ、Ｂ、およびＣに対応している。チャネルデータカプセル化パケット７２２のセキュリティ処理を行った後、ＤＰＩマイクロサービス７２０は、チャネルデータカプセル化パケット７２４を生成し、当該パケットは、図示するように、コンテキストＸ、ＤＰＩ負荷Ｚ、およびＤＰＩタイムスタンプＴを含む。カプセル化チャネルデータは、タイムスタンプおよび負荷メトリックを含む特性でタギングされてよい。タイムスタンプは、マイクロサービスによる処理の継続時間、マイクロサービスによる処理が開始した時間、または、カプセル化チャネルデータの処理と関連付けられる別の時間特性を指してよい。負荷メトリックは、カプセル化チャネルデータを処理するマイクロサービスの相対的または絶対的な負荷を指してよい。
【００５２】
図示するように、ＤＰＩマイクロサービス７２０は、チャネルデータカプセル化パケット７２４を経路７２６でＴＣＰ／ＩＰマイクロサービス７１４に送信する。ＴＣＰ／ＩＰマイクロサービス７１４は、ＤＰＩ負荷情報およびＤＰＩタイムスタンプ情報を使用して、その後の負荷分散決定を通知する。図示するように、ＴＣＰ／ＩＰマイクロサービス７１４は、コンテキストＸ、ＴＣＰ／ＩＰ負荷Ｚ、およびＴＣＰ／ＩＰタイムスタンプＴを含むチャネルデータカプセル化パケット７２８を生成する。図示するように、ＴＣＰ／ＩＰマイクロサービス７１４は、チャネルデータカプセル化パケット７２８を経路７３０でインタフェースマイクロサービス７０８に送信する。インタフェースマイクロサービス７０８は、ＴＣＰ／ＩＰ負荷情報およびＴＣＰ／ＩＰタイムスタンプ情報を使用して、その後の将来の負荷分散決定を通知する。当該フローは、インタフェースマイクロサービス７０８がパケットを経路７３２でセキュリティサービス７０４に送信して完了となり、セキュリティサービス７０４は当該パケットをサーバ７３４に送信する。
【００５３】
セキュリティサービス７０４の有益な点としては、各マイクロサービスがすべての通信に対して同じチャネルデータカプセル化プロトコルを利用でき、それによって、チャネルデータカプセル化用ヘッダによってルーティング可能なデータセンタネットワーク全体にわたるスケーリングが可能になる点が挙げられる。マイクロサービス間で通信することで、元のパケットにもはやアクセスできないすべての後続のマイクロサービスに対して、インタフェースマイクロサービス７０８において生成されたコンテキストＸが維持される。経路７２６および７３０で返されるチャネルデータカプセル化パケット７２４および７２８において負荷データおよびタイムスタンプデータを提供することによって、マイクロサービスは、負荷分散決定を下すために利用されるリアルタイムの負荷情報および処理レイテンシ情報を受信し、そしてそれらを維持することができる。
【００５４】
上述の明細書では、特定の例示的な実施形態が開示されている。しかしながら、添付の特許請求に記載の本発明の大局的な趣旨および範囲から逸脱することなく、当該実施形態に対して様々な修正および変更を施し得ることは明らかである。したがって、本明細書および図面は、限定的な意味でではなく例示的な意味で考えられるべきである。
【００５５】
本明細書に開示のいくつかの実施形態はハードウェア実行ユニットおよび論理回路の文脈におけるデータ処理およびデータ分配を含むが、他の実施形態は、機械によって実行されると、少なくとも１つの実施形態と整合性のある機能を機械に実行させる、非一時的機械可読有形媒体上に記憶されたデータまたは命令を用いて達成され得る。１つの実施形態において、本開示の実施形態と関連付けられた機能は、コンピュータ実行可能命令に具現化される。当該命令は、当該命令でプログラムされた汎用または専用のハードウェアプロセッサに、少なくとも１つの実施形態の段階を実行させるのに使用できる。本発明の実施形態は、少なくとも１つの実施形態に係る１または複数の動作を実行するようコンピュータ（または他の電子デバイス）をプログラムするために使用され得る命令を記憶した機械可読媒体またはコンピュータ可読媒体を含んでよいコンピュータプログラム製品またはソフトウェアとして提供されてよい。あるいは、実施形態の段階は、当該段階を実行するための一定の機能のロジックを含む特定のハードウェアコンポーネントによって、または、プログラムされたコンピュータコンポーネントと一定の機能のハードウェアコンポーネントとの任意の組み合わせによって実行されてよい。
【００５６】
少なくとも１つの実施形態を実行するよう回路をプログラムするために使用される命令は、ＤＲＡＭ、キャッシュ、フラッシュメモリ、または他の記憶装置などの、システムのメモリ内に記憶され得る。さらに、当該命令は、ネットワークを介して、または、他のコンピュータ可読媒体を用いて配布され得る。したがって、機械可読媒体は、機械（例えばコンピュータ）が読み出し可能な形の情報を記憶または送信するための任意のメカニズムを含んでよく、限定はされないが、フロッピー（登録商標）ディスケット、光ディスク、コンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ）および光磁気ディスク、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、磁気カードもしくは光カード、フラッシュメモリ、または、電気信号、光信号、音響信号、もしくは他の形態の伝搬信号（例えば、搬送波、赤外線信号、デジタル信号等）によってインターネットを介して情報を送信する際に使用される有形の機械可読記憶装置である。したがって、非一時的コンピュータ可読媒体は、機械（例えばコンピュータ）が読み出し可能な形態の電子命令または情報を記憶または送信するのに適した任意のタイプの有形な機械可読媒体を含む。 
【図１】
2019525600.tif 000004
【図２】
2019525600.tif 000005
【図３】
2019525600.tif 000006
【図４】
2019525600.tif 000007
【図５】
2019525600.tif 000008
【図６】
2019525600.tif 000009
【図７】
2019525600.tif 000010
【国際調査報告】
2019525600.tif 000011
2019525600.tif 000012
2019525600.tif 000013