JP2017527216A - 選択されたネットワークトラフィックの収集と分析 - Google Patents

選択されたネットワークトラフィックの収集と分析 Download PDF

Info

Publication number
JP2017527216A
JP2017527216A JP2017512009A JP2017512009A JP2017527216A JP 2017527216 A JP2017527216 A JP 2017527216A JP 2017512009 A JP2017512009 A JP 2017512009A JP 2017512009 A JP2017512009 A JP 2017512009A JP 2017527216 A JP2017527216 A JP 2017527216A
Authority
JP
Japan
Prior art keywords
packet
mirrored
original packet
original
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017512009A
Other languages
English (en)
Inventor
ジャーン,ミーン
ルゥ,グオハン
ユエン,リーホワ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2017527216A publication Critical patent/JP2017527216A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本明細書において、ネットワークの挙動を調査するための追跡システムが記載される。動作中、ネットワーク内の各スイッチ(またはスイッチのいくつかのサブセット内の各スイッチ)は、それが処理する各元のパケットが1つまたは複数のパケット検出ルールを満たすか否かを判定することができる。ルールを満たす場合、スイッチはミラーリングされたパケットを生成し、そのパケットをロードバランサーのマルチプレクサーに送信し、そのマルチプレクサーは代わりに、ミラーリングされたパケットをさらに解析するために処理モジュールに転送する。スイッチによってホストされるパケット検出ルールは、あらゆる環境特有の目的に基づいて、最も関心のあるパケットのサブセットを選択するように設計することができる。この挙動の結果として、追跡システムは、情報が多すぎて圧倒されるということなく、ネットワークの望ましくない(および望ましい可能性のある)挙動を、効果的かつ迅速に特定することができる。

Description

本願発明の一実施例は、例えば、選択されたネットワークトラフィックの収集と分析に関する。
[0001]ネットワーク内で発生する障害の原因やその他の異常事象を判定することは困難な場合がある。この難しさは、現代のネットワークの複雑さと、そのようなネットワークがいつでも処理する膨大な量の情報からもたらされる。経験豊富な分析者は、例えば、それらのコンポーネントによって記録された制御情報を調べることによって、故障の可能性が高いと仮定されたネットワークのコンポーネントの挙動を調べることによって、この問題に対処することができる。しかし、分析者は、検査された情報によって問題の原因が明らかになると自信を持つことはできない。分析者は、この懸念に対処するために分析の範囲を広げてもよいが、そのような戦術は分析者があまりにも多くの情報に圧倒される結果となる可能性がある。
[0002]本明細書では、ネットワークの挙動を調査するための追跡システムについて説明する。動作中、ネットワーク内の各スイッチ(またはネットワーク内の少なくともいくつかのスイッチの各々)は、それが処理する各元のパケットが1つまたは複数のパケット検出ルールを満たすか否かを判定することができる。ルールを満たす場合、スイッチはミラーリングされたパケットを生成することができる。ミラーリングされたパケットは、少なくとも元のパケットの情報のサブセットを含む。次に、スイッチはミラーリングされたパケットを負荷分散マルチプレクサーに転送することができる。スイッチはまた、元のパケットを変更されていない形式で元のパケットで指定されたターゲット宛先に送信する。
[0003]ミラーリングされたパケットを受信すると、マルチプレクサーは、少なくとも1つの負荷分散の考慮事項に基づいて、候補となる処理モジュールのセットから処理モジュールを選択することができる。次に、マルチプレクサーは、ミラーリングされたパケットを選択された処理モジュールに送信し、そこで1つまたは複数の処理エンジンを使用して分析される。
[0004]スイッチによってホストされるパケット検出ルールは、アプリケーション特有の目的を考慮して、高い関心値とみなされるパケットのサブセットを選択するように設計できる。この挙動の結果として、追跡システムは、情報が多すぎて分析者が圧倒されることなく、ネットワークの望ましくない挙動(および望ましい可能性のある挙動)を効果的かつ迅速に特定することができる。
[0005]上記のアプローチは、様々なタイプのシステム、デバイス、コンポーネント、方法、コンピューター可読記憶媒体、データ構造、グラフィカルユーザーインターフェイス表示、製造品などで明示することができる。
[0006]本概要は、概念の選択を簡略化した形で紹介するために提供されており、これらの概念は、以下の詳細な説明でさらに説明される。本概要は、特許請求される主題の重要な特徴または本質的な特徴を特定することを意図するものではなく、特許請求される主題の範囲を限定するために使用されることも意図していない。
[0007]追跡システムの一例の概要を示す図である。追跡システムは、分析のために選択された情報をネットワークから抽出する [0008]図1の追跡システムの1つの非限定的な実装形態を示す図である。 [0009]ミラーリング機能を実行するように構成されたネットワークにおけるスイッチの1つの実装形態を示す図である。そのように構成されたスイッチは、図1の追跡システムによって使用されるミラーリング機能の1つのコンポーネントである。 [0010]図1の追跡システムの別のコンポーネントに対応するマルチプレクサーの1つの実装形態を示す図である。 [0011]図3のスイッチの多重化挙動を示す図である。 [0012]図4のマルチプレクサーの多重化挙動を示す図である。 [0013]図4のマルチプレクサーが、1つの実装形態により、その多重化機能を実行するために利用することができる、例示的なテーブルデータ構造を示す図である。 [0014]図3のスイッチによって出力される情報の例を示す図である。 [0015]図4のマルチプレクサーによって出力される情報の一例を示す図である。 [0016]図1の追跡システムの別のコンポーネントである処理モジュールの1つの実装形態を示す図である。 [0017]図1の追跡システムと対話するコンポーネントである、消費エンティティの1つの実装形態を示す図である。 [0018]図1の追跡システムの別のコンポーネントである管理モジュールの1つの実装形態を示す図である。 [0019]図3のスイッチの動作の1つの方法を説明するプロセスを示す図である。 [0020]図3のスイッチのコンポーネントであるマッチングモジュールの動作の1つの方法を説明するプロセスを示す図である。 [0021]図4のマルチプレクサーの動作の1つの方法を説明するプロセスを示す図である。 [0022]図10の処理モジュールの動作の1つの方法を説明するプロセスを示す図である。 [0023]図11の消費エンティティの動作の1つの方法を説明するプロセスを示す図である。 [0024]図12の管理モジュールの動作の1つの方法を説明するためのプロセスを示す図である。 [0025]上記の図面に示された特徴の任意の態様を実施するために使用することができる例示的なコンピューティング機能を示す図である。
[0026]同じ番号が、本開示および図面を全体通じて、同様のコンポーネントおよび特徴を参照するために使用される。100番台の数字は、図1において最初に見出される特徴を指し、200番台の数字は、図2において最初に見出される特徴を指し、300番台の数字は、図3において最初に見出される特徴を指す、などである。
[0027]本開示は以下のように構成されている。セクションAは、例えば、ネットワークを通じて流れる特定のタイプのパケットを選択的に抽出することによって、ネットワークトラフィックを選択的に収集および分析するための例示的な追跡システムを説明する。セクションBは、セクションAの追跡システムの動作を説明する例示的な方法を説明する。セクションCは、セクションAおよびBで説明した特徴の任意の態様を実装するために使用できる例示的なコンピューティング機能を説明する。
[0028]前置き事項として、図面のいくつかは、機能、モジュール、特徴、要素などと様々に呼ばれる1つまたは複数の構造的コンポーネントの文脈における概念を記述する。図面に示された様々なコンポーネントは、例えばコンピューター機器上で動作するソフトウェア、ハードウェア(例えば、チップ実装された論理機能)など、および/またはそれらの任意の組み合わせなど、任意の物理的および有形のメカニズムによる任意の方法で実装することできる。ある場合では、図面中の様々なコンポーネントの別個のユニットへの説明された分離は、実際の実装形態において対応する明確な物理的および有形のコンポーネントの使用を反映することができる。代わりに、または加えて、図に示された任意の単一のコンポーネントは、複数の実際の物理コンポーネントによって実装されてもよい。代わりに、または加えて、図面における任意の2つ以上の別個のコンポーネントの描写は、単一の実際の物理的コンポーネントによって実行される異なる機能を反映することができる。以下に説明する図19のフローチャートは、図に示される機能の1つの例示的な物理的実装形態に関する追加の詳細を提供する。
[0029]他の図は、フローチャート形式の概念を説明している。この形式では、特定の操作は、特定の順序で実行される個別のブロックを構成するものとして記述されている。そのような実装形態は例示的であり、限定的ではない。本明細書で説明される特定のブロックは、一緒にグループ化され、単一の動作で実行され、特定のブロックは複数のコンポーネントブロックに分割され、特定のブロックは、本明細書に示されるものとは異なる順序で(ブロックを並列に実行する方法を含んで)実行され得る。フローチャートに示されるブロックは、例えば、コンピューター機器、ハードウェア(例えば、チップ実装論理機能)上で動作するソフトウェア、および/またはそれらの任意の組み合わせにより、任意の物理的および有形のメカニズムによって任意の方法で実施することができる。
[0030]用語に関しては、「構成される(configured to)」という語句は、識別された動作を実行するためにあらゆる種類の物理的および有形の機能を構成することができる任意の方法を包含する。機能は、例えば、コンピューター機器上で動作するソフトウェア、ハードウェア(例えば、チップ実装論理機能)など、および/またはそれらの任意の組み合わせを使用して動作を実行するように構成することができる。
[0031]用語「論理(logic)」は、タスクを実行するための物理的および有形の機能を含む。例えば、フローチャートに示される各動作は、その動作を実行するための論理コンポーネントに対応する。動作は、例えば、コンピューター機器上で動作するソフトウェア、ハードウェア(例えば、チップ実装された論理機能)など、および/またはそれらの任意の組み合わせを使用して実行することができる。コンピューティング機器によって実装される場合、論理コンポーネントは、実装されているが、コンピューティングシステムの物理的部分である電気コンポーネントを表す。
[0032]以下の説明は、1つまたは複数の特徴を「オプション」として識別することができる。このタイプの表現は、オプションとみなされるかもしれない特徴の網羅的な表示として解釈されるべきではなく、つまり、他の特徴は、字句では明示的に特定されていないが、オプションと見なすことができる。さらに、あらゆる単一のエンティティの記述は、複数のそのようなエンティティの使用を排除することを意図しておらず、同様に、複数のエンティティの記述は、単一のエンティティの使用を排除することを意図していない。さらに、記述は、識別された機能を実行するか、または特定されたメカニズムを実装する代替方法として、特定の特徴を説明する場合があるが、これらの特徴を任意の組み合わせで組み合わせることもできる。最後に、用語「例としての(exemplary)」または「例示的な(illustrative)」は、潜在的に多数ある実装形態のうちの1つの実装形態を指す。
A.説明的な追跡システム
A.1.概要
[0033]図1は、追跡システム102の一例の概要を示す。追跡システム102は、ネットワーク104を介して送信される選択されたパケットに関する情報を抽出し、次にそれらのパケットを分析する。1つの使用シナリオでは、分析者は、追跡システム102によって提供される情報を使用して、異常なまたは望ましくない事象を調査することができる。他の場合には、分析者は、追跡システム102に提供された情報を使用して、ネットワーク104における望ましい挙動を調査することができる。全体として、追跡システム102によって提供される情報は、どのような事象が調査されているかの原因に関する洞察を提供することができる。
[0034]他の潜在的利点の中でも、追跡システム102がネットワーク104から情報を選び出す選択性は、人間の分析者または他の消費者に提示される「ノイズ」の量を減少させ、それによってその人の調査を容易にする。それはまた、追跡システムのスケーラビリティーと全体的な効率にも寄与する。以下に説明する追跡システム102の他の態様は、追跡システム102によって提供されるパケット収集機能のスケーラビリティーおよび効率にさらに寄与する。
[0035]ネットワーク104は、代表的なスイッチ106などの複数のハードウェアスイッチで構成されている。例えば、各スイッチは、特定用途向け集積回路(ASIC)などによって提供される論理機能によって実装されてもよい。図示されていないが、ネットワーク104は、加えて、または代わりに、1つまたは複数のソフトウェア実装スイッチを含むことができる。各スイッチは、どのような方法で構築されても、1つまたは複数のルーティングの考慮事項に基づいて、ソースから受信した入力パケットを宛先にルーティングする主要な機能を実行する。ソースは、マルチホップパスに沿った別の「アップストリーム」スイッチ、またはパケットの根源の開始点に対応することができる。同様に、宛先は、パスに沿った別のスイッチ、またはパケットの最終宛先に対応することができる。
[0036]ネットワーク104は、図1に高レベル形式でのみ示されている。実際には、ネットワーク104は任意のトポロジを有することができる。このトポロジは、ネットワーク104内のスイッチの選択と、これらのスイッチの配置(および相互接続)を決定する。さらに、ネットワーク104は、任意の環境で使用することができる。ある場合には、例えば、ネットワーク104を使用して、データセンター内でパケットをルーティングし、外部エンティティとデータセンターとの間でパケットをルーティングすることができる。別の場合には、ネットワーク104は、企業環境で使用されてもよい。別の場合には、ネットワーク104は、例えば、2つ以上の環境(例えば、2つ以上のデータセンターの間など)間で情報をルーティングすることによって、データをルーティングすることができる。さらに他の用途も可能である。
[0037]追跡システム102は、2つの主要なコンポーネントである、ミラーリング機能、および収集および分析(CA)フレームワーク108を有する。ミラーリング機能は、ネットワーク104内の各スイッチのすべてによって提供されるミラーリングメカニズムを集合的に表す。他の実装形態では、スイッチのサブセットは、スイッチの全てではないが、ミラーリングメカニズムを含む。各ミラーリングメカニズムは、そのホスティングスイッチが1つまたは複数のパケット検出ルールに一致する元のパケットを受信すると、ミラーリングされたパケットを生成する。ミラーリングされたパケットは、元のパケットのヘッダー情報など、元のパケットから抽出された情報のサブセットを含む。ミラーリングされたパケットは、新しい宛先アドレス(元のパケットの元の宛先アドレスと比較して)を指定する新しいヘッダーも含む。次に、スイッチは、ミラーリングメカニズムによって割り当てられたアドレスに従って、ミラーリングされたパケットをCAフレームワーク108に渡す。次に、CAフレームワーク108は、実装形態特有の様々な方法でミラーリングされたパケットを処理する。
[0038]より具体的には、スイッチは、1つまたは複数のマルチプレクサー110のセットから選択されたマルチプレクサーにミラーリングされたパケットを送信することができる。次に、選択されたマルチプレクサーは、ミラーリングされたパック化されたパケットを、少なくとも1つの負荷分散の考慮事項に基づいて、処理モジュール(PM)のセットの1つに送信する。次に、選択された処理モジュールは、1つまたは複数の処理エンジンを使用して、ミラーリングされたパケットを(他の以前に受信されたミラーリングされたパケットと共に)処理することができる。
[0039]少なくとも1つの消費エンティティ114は、ミラーリングされたパケットを取得するために処理モジュール112と対話することができる。次に、消費エンティティ114は、1つまたは複数の処理エンジンを使用して、ミラーリングされたパケットについて任意のアプリケーション特有の分析を実行することができる。ある場合では、消費エンティティ114は、コンピューティングデバイス上で実行される自動的方法で動作する解析プログラムに対応することができる。別の場合では、消費エンティティ114は、人間の分析者の指示の下で、コンピューティングデバイス上で実行される分析プログラムに対応することができる。いくつかのシナリオでは、消費エンティティ114はまた、特定のアプリケーションと関連している。この関連性を考慮すると、消費エンティティは、ネットワーク内の事象に特に着目しており、それ自体の用途に影響を与える可能性がある。
[0040]管理モジュール116は、追跡システム102の任意の態様を制御することができる。例えば、管理モジュール116は、ネットワーク104を通じて流れる特定のタイプのパケットをキャプチャするのに使用するために、ネットワーク104内のスイッチに、特定のパケット検出ルールをロードするように指示することができる。管理モジュール116は、任意の消費エンティティと対話することもできる。例えば、消費エンティティ114は、ネットワーク内の問題を識別し、それに応答して、スイッチにパケット検出ルールを伝搬するように管理モジュール116に要求することができ、これらのルールの結果として生成されたミラーリングされたパケットは、消費エンティティ114が問題の原因を識別するのを助ける。
[0041]上記の説明を明確にするために、図1は、ミラーリングされた対応物とともにネットワーク104を通じた1つの元のパケットの流れを示す。後述のサブセクション(下記)は、図1の代表的なフローを説明する際に導入された各操作に関する追加の例示的な詳細を提供する。
[0042]図示されているように、任意のソースエンティティ118は、それを任意の宛先エンティティ122に送信する最終的な意図で、元のパケット(Po)120をネットワーク104に送信する。例えば、限定するものではないが、ソースエンティティ118は第1のコンピューティングデバイスに対応し、宛先エンティティ122は第2のコンピューティングデバイスに対応することができる。より具体的には、例えば、宛先エンティティ122は、特定のアプリケーションをホストするデータセンターに配置されたサーバーコンピューティングデバイスに対応することができる。ソースエンティティ118は、任意の目的のためにアプリケーションと対話したい任意のコンピューティングデバイスに対応することができる。
[0043]パケットは、その用語が本明細書で使用されるように、任意の情報単位を指す。1つの特定の実装形態では、元のパケット120は、IPプロトコルによって指定されたヘッダーおよびペイロードを有するインターネットプロトコル(IP)パケットに対応する。より具体的には、元のパケットは、宛先エンティティを識別する仮想IP(VIP)アドレスを提供することができる。宛先エンティティ122は、代わりに、直接IP(DIP)アドレスに関連付けられてもよい。他の機能の中でも、ネットワーク104内の少なくとも1つのコンポーネントは、VIPアドレスを宛先エンティティ122の適切なDIPアドレスにマッピングする。
[0044]ネットワーク104は、任意のルーティングプロトコルを使用して、元のパケット120をそのスイッチングファブリックを通じて、ソースエンティティ118から宛先エンティティ122にルーティングすることができる。ルートを確立する際に役割を果たすことができるこのようなプロトコルの1つは、RFC4271で定義されているようなボーダーゲートウェイプロトコル(BGP)である。さらに、元のパケット120上で動作するネットワーク104内の異なるコンポーネントは、元のパケット120がそのルートを通過する際に、元のパケット120に(またはそこから)様々なカプセル化ヘッダーを付加する(または取り除く)ことに留意する。
[0045]より具体的には、図1は、元のパケット120が複数のセグメントまたはホップを有するパス124を通過する単なる実例を示す。第1のセグメントでは、元のパケット120がスイッチ106にルーティングされる。第2のセグメントでは、元のパケット120は別のスイッチ126にルーティングされる。第3のセグメントでは、元のパケット120は別のスイッチ128にルーティングされる。第4のセグメントでは、元のパケット120は宛先エンティティ122にルーティングされる。実際には、パス124は、任意の数のホップ(単一ホップを含む)を有することができ、スイッチによって定義されたスイッチングファブリック内の任意のスイッチを通過することができる。さらに、上述したように、ネットワーク104は、1つまたは複数のトンネリングプロトコルを使用して、元のパケットを他の包囲パケットにカプセル化することができる。そのような提供内容は本質的に環境特有であり、説明を容易にするために図1からは除かれている。
[0046]各スイッチ上(またはスイッチの各サブセット上)のミラーリングメカニズムは、元のパケットを分析して、最初に1つまたは複数のパケット検出ルールを満たしているか否かを判定する。そうであれば、ミラーリングメカニズムは、元のパケット自体を元のままにして、パス124に沿った元のパケットのルーティングを妨害することなく、元のパケットに対応するミラーリングパケットを生成する。
[0047]例えば、スイッチ106の動作を考える。(他のスイッチは、元のパケット120を処理するときに、同じ挙動を示す。)スイッチ106は、最初に、元のパケット120が少なくとも1つのパケット検出ルールと一致すると判定すると仮定する。次に、それはミラーリングされたパケット130を生成する。次に、スイッチ106は、ミラーリングされたパケット130をパス132に沿って(マルチプレクサー110のうちの1つに対応する)指定された宛先に転送することができる。より具体的には、パス132に沿った異なる伝搬エンティティは、カプセル化ヘッダーをミラーリングされたパケット130に付加する(または取り除く)ことができる。しかし、説明を簡単にするために、図1は、ミラーリングされた情報を単にミラーリングされたパケット130と呼ぶ。
[0048]より具体的には、1つの実装形態では、スイッチ106は、マルチプレクサー110のセットの中のマルチプレクサーを選択するために、少なくとも1つの耐負荷考慮事項を適用することができる。例えば、スイッチ106がマルチプレクサー134を選択すると仮定する。他の実装形態では、CAフレームワーク108は、単一のマルチプレクサーを提供することができ、その場合、スイッチ106は、複数の利用可能なマルチプレクサーの中から選択することなく、ミラーリングされたパケット130をそのマルチプレクサーに送信する。
[0049]マルチプレクサー134は、少なくとも1つの耐負荷考慮事項に基づいて、ミラーリングされたパケット130を処理モジュール112の1つにさらにルーティングする機能を実行する。マルチプレクサー134はまた、ネットワーク104を通じるフローに関係するミラーリングされたパケットが同じ処理モジュールに送信されるように、ターゲット処理モジュールを選択する。マルチプレクサー134自体は、任意の方法で実装することができる。ある場合では、マルチプレクサー134は、特定用途向け集積回路(ASIC)によって提供される論理機能などの、ハードウェアにより実装されたマルチプレクサーに対応することができる。別の場合では、マルチプレクサー134は、サーバーコンピューティングデバイス上で動作する多重化プログラムのようなソフトウェアにより実装されたマルチプレクサーに対応する。他の場合には、マルチプレクサー110の集合は、ハードウェアマルチプレクサーとソフトウェアマルチプレクサーとの組み合わせを含むことができる。
[0050]マルチプレクサー134が、ミラーリングされたパケット130を特定の処理モジュール136にルーティングするものと仮定する。一実装形態では、処理モジュール136は、サーバーコンピューティングデバイスに対応することができる。受信時に、処理モジュール136は、ミラーリングされたパケット130に対して様々な動作を実行することができる。このような機能の1つでは、処理モジュール136は、ミラーリングされたパケットを、同じパス124(存在する場合)に関係する他のパケットと関連付けることができ、次にミラーリングされたパケットをスイッチによって作成された順序でソートする。例えば、元のパケットがパス124の通過を完了すると、処理モジュール136は、スイッチ106、126、および128によって生成されたミラーリングされたパケットのシーケンスに対応するパケットシーケンス138を生成することができる。
[0051]消費エンティティ114は、処理モジュール136によって記憶された任意のパケット関連情報を抽出し、次にその情報を任意の方法で解析することができる。以下の記述は、消費エンティティ114によって実行され得る分析の例を提供する。図1は、具体的に、消費エンティティ114が、ネットワーク104を通じる元のパケット120のパス124に関連付けられたシーケンス138を少なくとも抽出するか、または別の方法でアクセスすることを示している。他の場合には、消費エンティティ114は、パケットのシーケンスではなく、特定のミラーリングされたパケットを要求および受信することができる。
A.2.特定のネットワーク環境の例
[0052]図2は、図1の追跡システム102の1つの非限定的な実装形態を含む環境202を示す。環境202は、複数のサーバーなどの複数のコンピューティングデバイス204を含むデータセンターに対応する。ネットワーク206は、データセンター内のコンピューティングデバイス204がそのデータセンター内の他のコンピューティングデバイスと通信することを可能にする。ネットワーク206はまた、外部エンティティ208がコンピューティングデバイス204と対話することを可能にする。インターネットなどのワイドエリアネットワーク210は、データセンターのネットワーク206をエンティティ208と結合することができる。
[0053]ネットワーク206は、任意のトポロジを有することができる。図2の特定の非限定的な例に示すように、ネットワーク206は、ファットツリー階層トポロジ内に複数のスイッチを含む。限定するものではないが、スイッチは、コアスイッチ212、アグリゲーションスイッチ214、トップオブラック(TOR)スイッチ216などを含むことができる。さらに、ネットワーク206は、コンピューティングデバイス204をコンテナ218および220などのコンテナに編成することができる。実際のデータセンターには、より多くのスイッチとコンピューティングユニットが含まれている場合があり、図2は、データセンター環境の機能の代表的かつ単純なサンプルのみを示している。
[0054]ネットワーク206内のすべてのスイッチ、またはその一部のサブセットは、ミラーリングメカニズムを含む。ミラーリングメカニズムは、(元のパケットが1つまたは複数のパケット検出ルールを満たしていると仮定して)元のパケットを処理するときにミラーリングされたパケットを生成する。次に、ミラーリングメカニズムは、ミラーリングされたパケットを収集および分析(CA)フレームワーク222に転送する。
[0055]より具体的には、CAフレームワーク222は、ミラーリングされたパケットの収集および分析を処理するための専用機器を提供することができる。言い換えれば、CAフレームワーク222は、ネットワーク206を通じる元のパケットのルーティングにおいていかなる役割も果たしていない可能性がある。(しかし、他の実装形態では、CAフレームワーク222は元のパケットをルーティングし、ミラーリングされたパケットを処理するという二重の役割を果たすことができる。)ある場合には、CAフレームワーク222は、1つまたは複数のマルチプレクサー224を含む。マルチプレクサーは、ハードウェアマルチプレクサーに対応することができ、より具体的には、多重化役割を実行するように再構成されたハードウェアスイッチに対応することができる。代わりに、または加えて、マルチプレクサー224の少なくともサブセットは、ソフトウェアにより実装されたマルチプレクサー(例えば、1つまたは複数のサーバーコンピューティングデバイスに対応する)に対応してもよい。
[0056]マルチプレクサー224は、ネットワーク206のトップレベルスイッチ212および/または他のスイッチに結合することができる。さらに、マルチプレクサー224は、1つまたは複数の処理モジュール226に直接結合されてもよい。あるいは、図2に示すように、マルチプレクサー224は、任意の接続トポロジを使用して、スイッチ228を介して処理モジュールに接続することができる。
A.3.ミラーリング機能を有する例示的なスイッチ
[0057]図3はミラーリング機能を有する例示的なスイッチ302を示しており、これは元のパケットのミラーリングされた対応物であるパケットを生成して転送する能力を有することを意味する。上述したように、スイッチ302は、ハードウェアユニット(例えば、ASIC)として実装することができる。
[0058]高レベルの観点から、スイッチ302は、3つの主な機能を実行する機能を含むことができる。機能304は、スイッチ302が、受信した元のパケットをターゲット宛先に転送する従来の役割を実行することを可能にする。機能306は、スイッチの動作のミラーリング態様を実行する。そして機能308は、様々な管理機能を実行する。より具体的には、説明を容易にするために、図3は、これら3つの機能(304、306、308)を3つの別々のドメインとして示している。しかしながら、いくつかの実装形態では、単一の物理的モジュールが、図3に示された別個のドメインに起因する2つ以上の機能を実行してもよい。
[0059]機能304から開始して、受信モジュール310は任意のソースから元のパケット120を受信する。ソースは、図1のソースエンティティ118または別の「アップストリーム」のスイッチに対応することができる。ルート選択モジュール312は、次のホップ314に対応して、元のパケットの次の宛先を選択する。次のホップ314は、代わりに、元のパケットの最終的なターゲット宛先、またはマルチホップパスに沿った別の「ダウンストリーム」スイッチに対応してもよい。ルート選択モジュール312は、次のホップ314の選択にあたって、データストア316において提供されるルーティング情報を求めることができる。ルート選択モジュール312はまた、BGPのような次のホップ314を選択する際に任意のプロトコルを使用することができる。送信モジュール318は、元のパケットを次のホップ314に送信する。図3には明示されていないが、送信モジュール318は、次のホップ314に送信する前に、元のパケットを別のパケットにカプセル化するために任意のカプセル化プロトコルを使用することができる。
[0060]ミラーリング機能306に関して、マッチングモジュール320は、受信された元のパケット120が、データストア322に記憶されているパケット検出ルールのいずれかと一致するか否かを判定する。例示的なルールを以下に示す。ミラーリングモジュール324は、元のパケット120が任意の1つまたは複数のパケット検出ルールを満たす場合に、ミラーリングされたパケット326を生成する。上述したように、ミラーリングモジュール324は、元のパケットのヘッダーなどの元のパケット120から情報のサブセットを抽出することによって、ミラーリングされたパケット326を生成することができる。ミラーリングモジュール324はまた、元のパケット120を処理する過程でスイッチ302自体によって生成されたメタデータなど、元のパケット120には存在しない情報を追加することもできる。いくつかの実装形態では、ミラーリングモジュール324は、カリフォルニア州サンノゼのシスコシステムズ社によって提供されるEncapsulated Remote Switched Port Analyzer(ERSPAN)技術のような、ミラーリングされたパケット326を作成するために利用可能なパケットコピー技術を使用することができる。
[0061]マルチプレクサー選択モジュール328は、ミラーパケット326を送信する(図1の)マルチプレクサー110のセットの中のマルチプレクサーを選択する。図3の文脈では、マルチプレクサー選択モジュール328がマルチプレクサー332を選択すると仮定する。例えば、マルチプレクサー選択モジュール328は、ハッシュアルゴリズムを使用して、元のパケットのIPヘッダーのヘッダー内に提供された異なる情報アイテム(ミラーリングされたパケットにコピーされた情報である)などの、ミラーリングされたパケットによって搬送される情報アイテムの任意のタプルをハッシュすることができる。ハッシング演算は、代わりに特定のマルチプレクサーにマッピングされるハッシュ結果を生成する。ミラーリングメカニズムを持つすべてのスイッチは、同じハッシュ関数を使用する。全体的に、ハッシュ操作は、利用可能なマルチプレクサー110のセットにわたってミラーリングされたパケットを広げる効果を有する。データストア330は、マルチプレクサー選択モジュール328がその動作を実行する際に参照する情報を提供することができ、例えば、データストア330は、例えば、それぞれのアドレスを提供することによって、利用可能なマルチプレクサー110を識別することができる。
[0062]送信モジュール334は、ミラーリングされたパケットをマルチプレクサー332に送信する。ある場合には、送信モジュール334は、ミラーリングされたパケットをトンネリングパケットにカプセル化するために任意のトンネリングプロトコル(GRE(Generic Routing Encapsulation))を使用して、ミラーリングされたパケットをトンネリングパケットにカプセル化し、次にトンネリングプロトコルヘッダーの「先頭に」多重化IPヘッダーを追加することができる。GREは、例えばRFC2784に記載されている。送信モジュール318は、カプセル化されたミラーリングされたパケット336を生成する。
[0063]管理機能308に関して、スイッチ302は、他のそれぞれのタスクを処理するための他の制御モジュール338を含むことができる。例えば、ルーティング管理モジュールは、スイッチ302の存在をネットワーク内の他のスイッチにブロードキャストし、他のスイッチの存在を決定し、データストア(316,330)内のルーティング情報を更新するなどのタスクを実行することができる。インターフェイスモジュール340は、管理モジュール116から管理情報および他の命令を受信することができる。
[0064]ここで、マッチングモジュール320をより詳細に参照すると、そのコンポーネントは、元のパケット120を異なるタイプのパケット検出ルールと比較することができる。以下の説明は、パケット検出ルールの代表的な例を提供する。そのようなリストは、限定ではなく例示の精神で提供され、他の実装形態は、以下に述べられていないパケット検出ルールの追加タイプに依存することができる。
[0065]第1の種類のパケット検出ルールは、例えば、元のパケット120のヘッダーおよび/または本体内の、指定されたプロトコル関連の1つまたは複数の情報項目を含むなど、プロトコル関連の特性を表す場合、元のパケット120がミラーリングされることを指定することができる。その情報は、例えば、伝送制御プロトコル(TCP)などのトランスポートレベルエラーチェックプロトコルによって生成されるフラグに対応することができる。別の場合では、トリガー条件は、BGPなどのルーティングプロトコルによって生成された1つまたは複数の情報アイテムに対応することができる。
[0066]第2の種類のパケット検出ルールは、元のパケット120が、例えば、アプリケーション関連の1つまたは複数の情報アイテムを含むことによって、特定のアプリケーションを起源とすることを表す場合、元のパケット120がミラーリングされることを指定することができる。アプリケーション関連情報項目(複数可)は、フラグ、コード、アドレスなどに対応することができる。アプリケーションは、通常の実行中に生成するパケットに情報項目(複数可)を追加することができる。
[0067]第3の種類のパケット検出ルールは、ユーザーが作成したパケット検出ルールに対応する。この種のルールは、元のパケットがユーザー指定の一致条件を満たす場合にミラーリングされることを指定する。ユーザーは、ネットワーク管理者、テストエンジニア、アプリケーションまたはシステム開発者、ネットワーク104のエンドユーザーなどに対応することができる。例えば、ユーザーは、識別されたヘッダー情報を含むあらゆるパケットがミラーリングされるべきである、と指定するルールを作っても良い。
[0068]第4の種類のパケット検出ルールは、元のパケット120が、スイッチ302が元のパケット120を処理したときに特定の条件または状況に遭遇したことを表す場合に、ミラーリングされるべきであることを指定することができる。例えば、ルールは、スイッチ302によって追加された元のパケット内の情報項目を検出するとトリガーされてもよく、その情報項目は、元のパケット120を処理するときにスイッチ302がエラー条件または他の事象に遭遇したことを示す。
[0069]より具体的には、例えば、元のパケット120を転送するためにスイッチ302によって使用される機能304は、連続した元のパケット120に対して一連の動作が実行される処理パイプラインとして実装することができる。1つまたは複数の段階で、エラー検出機能342は、元のパケット120の処理におけるエラー条件を検出することができる。例えば、分析の受信またはルート選択フェーズ中に、エラー検出機能342は、元のパケット120が破損しており、意味的に解釈することができないため、次のホップ314に転送することができないと判定することができる。それに応答して、エラー検出機能342は、フラグまたは他の情報項目を元のパケット120に付加し、それがドロップされることを示すことができる。次に、機能304の処理パイプラインの後の段階は、元のパケット120をドロップする明示的なステップを実行することができる。
[0070]しかし、ドロップが発生する前に、マッチングモジュール320は、追加された情報アイテムの存在を検出することができ、それに応答して、ミラーリングモジュール324は、元のパケット120に情報を追加してミラーリングすることができる(述べたように、そのパケットは最終的にドロップされるが)。このようなミラーリングされたパケットは、分析中にパケットドロップの原因を特定するのに有用な情報を提供する。
[0071]マッチングモジュール320は、必ずしも受信段階ではなく、スイッチ302によって実行される処理の任意の段階で、マッチングモジュール320が元のパケット120をパケット検出ルールと比較できることを全体的に示す入力344を含む。このように、状況によっては、元のパケット120は、最初の受信時に、パケット検出ルールをトリガーする特定の情報フィールドを含むことができないが、スイッチ302自体は、その処理の後の段階でトリガー情報項目を追加してもよく、マッチングモジュール320に、修正されたパケットをルールの1つと後で首尾よく一致させるよう促す。
[0072]さて、追跡システム102は、パケットドロップを検出するための追加の技術を提供することができる。例えば、処理モジュールまたは消費エンティティは、ネットワークの元のパケットの通過のパスに沿って生成されたミラーリングされたパケットのシーケンスを分析することによって、パケットドロップの存在を検出することができる。元のパケットが意図された最終的な宛先に到達しなかったことによって証明されるように、パケットドロップはシーケンスの早すぎる切り捨てにおいてそれ自体を明示することができる。または、シーケンスは、ホップ宛先がパケットを受信することが期待されていたが、そうではなかったことを示すシーケンス内の「ホール」を明らかにすることができる(その場合、パケットは最終的に最終宛先に到達した可能性があるが)。
[0073]他の状況では、スイッチ302は元のパケット120にメタデータ情報を追加して、元のパケット120を処理するときに他の何らかの条件にスイッチ302が遭遇したことを示すことができ、その場合にその条件は必ずしもエラーに関連するわけではない。
[0074]第5の種類のパケット検出ルールは、元のパケット120が、ミラーリングされるべき識別されたサービスタイプを指定する場合、ミラーリングされるべきであることを指定することができる。例えば、そのタイプのパケット検出ルールは、元のパケット120などによって指定された差別化サービスコードポイント(DSCP)値に基づいて元のパケット120をミラーリングすることを決定することができる。
[0075]第6の種類のパケット検出ルールは、元のパケット120がピング関連アプリケーションによって生成された場合にミラーリングされることを指定することができる。より具体的には、ピング関連アプリケーションは、元のパケットをターゲットエンティティに送信することによって動作し、その際ターゲットエンティティは、元のパケットへの応答の送信を要求される。
[0076]繰り返すが、他の環境で追加のタイプのパケット検出ルールを適用することができる。例えば、特定のIPソースおよび/または宛先アドレス、またはTCPもしくはUDPソースおよび/または宛先ポートなどの検出時に、他のルールがトリガーされてもよい。さらに、いくつかの場合では、元のパケット120内の単一の情報アイテムの検出時に、元のパケット120内の単一のフラグなどのパケット検出ルールをトリガーすることができる。しかし、他の場合には、元のパケット120内の2つ以上の情報項目の組み合わせ、例えば元のパケット120内の2つのフラグの組合せの検出時に、パケット検出ルールがトリガーされてもよい。さらに上記のいずれの場合も、情報項目は、元のパケット120のヘッダーおよび/または本文に現れることがある。代わりに、または加えて、パケット検出ルールは、元のパケット120の他の特性(複数可)、すなわち、元のパケットのヘッダーまたは本体中の特定の情報項目の有無以外のいくつかの特性によってトリガーされてもよい。例えば、元のパケット120が破損しているか、または何らかの他のエラーがあるか、または他の一致条件を満たすことを検出したときにルールはトリガーすることができる。
[0077]しばらく図の順序を先に移り、図5は、図3のマルチプレクサー選択モジュール328によって実行される多重化機能を示す。そこに示されているように、マルチプレクサー選択モジュール328は、いくつかの拡散アルゴリズム506(元のパケットのIPヘッダーのあるタプルで動作するハッシングアルゴリズムなど)を使用して、元のパケット502をマルチプレクサー504のセットの1つにマッピングする。
[0078]より具体的には、ある場合には、各マルチプレクサーは、それ自身の固有のVIPアドレスによって表されてもよい。したがって、マルチプレクサー選択モジュール328は、異なるVIPアドレスの中から選択する効果を有する。別の場合では、マルチプレクサーの集合は異なる直接DIPアドレスを有するが、同じVIPアドレスを有することができる。ミラーリングされたパケットをマルチプレクサー間に分散させるために、任意の負荷分散プロトコル(Equal−Cost Multi−Path Routing(ECMP)など)を使用できる。ECMPはRFC2991で定義されている。
[0079]図8は、ミラーリング可能なスイッチ302の出力で生成されるカプセル化されたミラーリングされたパケット336の例示的な構造を示す。カプセル化されたミラーリングされたパケット336は、例えば少なくとも元のパケット120のヘッダーを提供することによって、例えば元のパケット120内の情報のサブセットに対応して、ミラーリングモジュール324によって生成される、上記で指定されたミラーリングされたパケット326を含む。カプセル化外部フィールドは、GREトンネリングヘッダーなどのミラートンネリングヘッダー802を含む。次のカプセル化外部フィールドは、ミラーIPヘッダー804を含む。他の実装形態は、ミラーリングされたパケット326をカプセル化する他の方法を採用することができる。
A.4.例示的なマルチプレクサー
[0080]図4は、マルチプレクサー402の1つの実装形態を示す。マルチプレクサー402は、図1に示すマルチプレクサー110のセットの1つに対応し得る。または、マルチプレクサー402は、追跡システム102によって提供される唯一のマルチプレクサーに対応してもよい。マルチプレクサー402は、ハードウェアにより実装されたデバイスまたはソフトウェアにより実装されたデバイス、またはそれらのいくつかの組み合わせに対応することができる。前者の場合、ハードウェアマルチプレクサーは、多重化機能を実行するために再プログラムされ再利用される一般商品スイッチに対応することができる。または、ハードウェアマルチプレクサーは、以下に説明する機能を実行するように構成されたカスタム設計されたコンポーネントに対応することができる。
[0081]マルチプレクサー402は、多重化機能を管理するための機能406と共に、実際の多重化機能を実行するための機能404を含む。例えば、機能404は、ミラーリングされたパケット412を受信するための受信モジュール410を含むことができる。(より正確には、ミラーリングされたパケット412は、スイッチ302の出力で生成されたカプセル化されたミラーリングされたパケット336の種類に対応するが、下記では簡潔さのため単に「ミラーリングパケット」412と呼ばれる。)機能404はまた、1セットの候補処理モジュール112の中から処理モジュールを選択するためのPM選択モジュール414を含むことができる。PM選択モジュール414は、その動作を実行する際にデータストア416内のルーティング情報を求める。PM選択モジュール414が、ミラーリングされたパケット412をPM418に送信することを選択すると仮定する。送信モジュール420は、ミラーリングされたパケット412をPM418に送信する。そうすることで、送信モジュール420は、ミラーリングされたパケット412をトンネリングプロトコルヘッダー(GREヘッダーなど)にカプセル化し、その情報をさらに別の外部IPヘッダーにカプセル化して、カプセル化されたミラーリングされたパケット422を生成することができる。制御関連モジュール424は、マルチプレクサーの動作の任意の態様を管理することができる。例えば、制御関連モジュール424は、PMのアドレスを識別するデータストア416に記憶するためのアドレス情報を提供することができる。インターフェイスモジュール426は、例えば、マルチプレクサー402の動作を構成するために使用される管理モジュール116からの制御命令を受信することによって、(図1の)管理モジュール116と対話する。
[0082]PM選択モジュール414は、任意の負荷分散の考慮事項に基づいて、PM112のセットからPMを選択することができる。1つのアプローチでは、PM選択モジュール414は、ハッシングアルゴリズムを使用して、ミラーリングされたパケットにもキャプチャされた情報である元のパケットのヘッダーに含まれる情報項目をハッシュする。結果として生じるハッシュは、処理モジュール112の1つにマッピングされる。ハッシュアルゴリズムはまた、同じパケットフローに関係するパケットが同じ処理モジュールにマッピングされることを保証する。追跡システム102は、元のパケット(ハッシュアルゴリズムへの入力キーとして機能する)から、元のパケットがネットワーク104を通じるパスを通過する際に同じままであるか、またはハッシュアルゴリズムによって作用されたときに同じ出力ハッシュ値を生成する、入力情報項目を選択することによって、この結果を達成することができる。さらに、追跡システム102は、すべてのマルチプレクサー110に対して同じハッシングアルゴリズムを展開する。
[0083]図6は、図4のPM選択モジュール414によって実行される多重化機能を示す。そこに示されているように、PM選択モジュール414は、(上述したハッシュアルゴリズムのような)いくつかの拡散アルゴリズム606を使用して、受信したミラーパケット602をPM604のセットの1つにマッピングする。
[0084]ある場合には、各処理モジュール112は、それ自身の固有のVIPアドレスによって表されてもよい。したがって、PM選択モジュール414は、異なるVIPアドレスの中から選択する効果を有する。別の場合には、処理モジュール112の集合は異なる直接アドレス(DIP)であるが、同じVIPアドレスを有することができる。任意の負荷分散プロトコル(ECMPなど)を使用して、ミラーリングされたパケットを処理モジュール112の間に広めることができる。
[0085]図7は、PM選択モジュール414がその多重化機能を実行するために使用できる例示的なテーブルデータ構造702を示す。データストア416は、テーブルデータ構造702を記憶することができる。より具体的には、図7は、マルチプレクサー402が、ハードウェアスイッチを再プログラミングし、再利用することによって生成される実装形態に対応する。その場合、スイッチは、これらのテーブルの本来の機能ではない多重化機能をサポートするために、再プログラミングおよび再利用可能な1セットのテーブルを有することができる。
[0086]より具体的には、一実装形態では、テーブルデータ構造702は、テーブルT、テーブルT、テーブルT、およびテーブルTを含む4つのリンクされたテーブルのセットを含む。図7は、テーブル内のいくつかの代表的なエントリを示しており、高レベルの方法で示されている実際には、エントリはどのような形式も取ることができる。マルチプレクサー402が、例えば、ミラーリングされたパケット412に対応する、任意のソースからのパケットを受信すると仮定する。パケットは、パケットが向けられる宛先に関連する特定のアドレスを指定するヘッダーを有する。PM選択モジュール414は、最初に、入力アドレスをインデックスとして使用して、第1のテーブルT内のエントリ(entry)を突き止める。そのエントリは、次に、第2のテーブルTの別のエントリ(entry)を指す。そのエントリは、次に、第3のテーブルTのエントリの連続するブロック704を指す。PM選択モジュール414は、任意の選択論理に基づいて、ブロック704内のエントリの1つを選択する。例えば、上述の説明のように、PM選択モジュール414は、元のパケットのIPヘッダーから抽出された1つまたは複数の情報項目をハッシュして、ハッシュ結果を生成することができ、そのハッシュ結果は、ブロック704のエントリに関連付けられたビンの1つに入り、そのビンに関連するエントリを選択する。第3のテーブルT内の選択されたエントリ(例えば、entryy2)は、第4のテーブルT内のエントリ(entry)を指す。
[0087]この段階では、PM選択モジュール414は、特定のPMモジュールに関連付けられたアドレスを生成するために、第4のテーブル内のentryによって与えられた情報を使用することができる。次に、送信モジュール420は、例えばカプセル化されたミラーリングされたパケット422に対応する、新しいパケットにパケットをカプセル化する。次に、送信モジュール420は、カプセル化されたミラーリングされたパケット422を選択されたPMに送信する。
[0088]一実装形態では、テーブルTはL3テーブルに対応し、テーブルTはグループテーブルに対応し、テーブルTはECMPテーブルに対応し、テーブルTはトンネリングテーブルに対応してもよい。これらは、商品ハードウェアスイッチが本質的に提供することができる表であるが、図7に指定された方法で互いにリンクされてはいない。また、上記で指定された種類のマッピング情報で満たされていない。より具体的には、いくつかの実装形態では、これらのテーブルは、ネットワーク内のネイティブパケット転送機能を実行する際に使用されるエントリを有するスロット、および空き(未使用)スロットを含む。追跡システム102は、上記の特定の方法でテーブルをリンクすることができ、次に未使用のスロットにエントリをロードして多重化目的のマッピング情報のインスタンスを集合的に提供することができる。
[0089]図9は、マルチプレクサー402の出力で生成される、カプセル化されたミラーリングされたパケット422の例示的な構造を示す。カプセル化されたミラーリングされたパケット422は、その第1の部分として、スイッチ302の出力で生成される、カプセル化されたミラーリングされたパケット336を含む。より具体的には、カプセル化されたミラーリングされたパケット422は、ミラーリングされたパケット326と、ミラートンネリングヘッダー802と、ミラーIPヘッダー804とを含む。さらに、カプセル化されたミラーリングされたパケット422は、GREトンネリングヘッダーなどの新しいカプセル化ロードバランサートンネリングヘッダー902を含む。次のカプセル化外部フィールドは、ロードバランサーIPヘッダー904を含む。他の実装形態は、ミラーリングされたパケット情報をマルチプレクサー402の出力でミラーリングされたパケット情報をカプセル化する他の方法を採用することができる。
[0090]最終的な解説として、マルチプレクサー110は、特にマルチプレクサー110が再利用されたハードウェアスイッチまたは他のハードウェアデバイスに対応する場合、高いスループットを有する。この特性は、追跡システム104が高トラフィック量を処理することを可能にする1つの特徴であり、この特性はまた、追跡システム104のスケーラビリティーを促進する。
A.5.例示的な処理モジュール
[0091]図10は、図1の追跡システム102の別のコンポーネントである処理モジュール1002の1つの実装形態を示す。処理モジュール1002は、マルチプレクサー110からミラーリングされたパケットのストリームを受信する。上述したように、マルチプレクサー110は、ネットワーク104を通じる同じパスに関係するミラーリングされたパケットを同じ処理モジュールに転送する。したがって、一実装形態では、処理モジュール1002によって受信されるミラーリングされたパケットのストリームは、他の処理モジュールによって処理されるフローに関するミラーリングされたパケットを含まない。
[0092]カプセル解除モジュール1004は、受信したミラーリングされたパケットから外部ヘッダーを除去する。例えば、図9のカプセル化されたミラーリングされたパケット422に関して、カプセル解除モジュール1004は、(図3の)ミラーリングモジュール324によって生成された元のミラーパケット326を残すために、ヘッダー(802、804、902、904)を除去する。しかしながら、以下の説明を簡単にするために、処理モジュール1002によって処理されるミラーリングされた情報は、以降、単にミラーリングされたパケットと呼ばれる。他の実装形態では、処理モジュール1002は、外部ヘッダーに提供される少なくともいくつかの情報を、この情報が有用な診断情報を提供する限り、保持することができる。
[0093]処理モジュール1002は、ミラーリングされたパケットのストリーム上で動作する1つまたは複数の処理エンジン1006の集合を含むことができる。例えば、少なくとも1つのトレースアセンブリモジュール1008は、ネットワーク104を通じる同じフローまたはパスに関するミラーリングパケットの集合をまとめてグループ化することができる。図1の例では、例えば、トレースアセンブリモジュール1008は、ミラーリングされたパケットシーケンス138を生成するために、スイッチ106、126および128によって生成されたミラーリングされたパケットを単一のグループに組み立てることができる。トレースアセンブリモジュール1008は、ミラーリングされたパケットを、それらが作成された順序に従ってグループ内で順序付けすることもできる。トレースアセンブリモジュール1008は、タイムスタンプ、シーケンス番号、および/またはミラーリングされたパケットによってキャプチャされた他の情報を参照することによって、その機能を実行することができる。
[0094]少なくとも1つのフィルタおよび選択(FS)モジュール1010は、受信されたミラーリングされたパケットのストリームから1つまたは複数のタイプのパケットを取り出すことができる。例えば、FSモジュール1010は、特定のTCPフラグ、または特定のエラー条件、または特定のアプリケーションなどに関係するパケットなどを取り出すことができる。FSモジュール1010は、例えば、正規表現機能または同様のものを使用することによって、受信したミラーリングされたパケットにおいて提供された情報をマッチングルールと照合することによってその機能を実行することができる。
[0095]アーカイブモジュール1012は、受信された未処理のミラーリングされたパケットおよび/または他の処理エンジン1006によって生成された任意のより高いレベルの情報を記憶する。アーカイブモジュール1012は、そのような情報を、単一のサイトまたは複数のサイトにまたがる分散型で提供される、1つまたは複数の物理ストレージメカニズムに対応するデータストア1014に記憶することができる。例えば、ある場合では、アーカイブモジュール1004は、処理モジュール1002によって受信された未処理のミラーリングされたパケットのすべてを記憶することができる。加えて、または代わりに、アーカイブモジュール1012は、トレースアセンブリモジュール1008によって生成されたトレースを記憶することができる。加えて、または代わりに、アーカイブモジュール1012は、FSモジュール1010によって識別されたミラーリングされたパケットの選択されたサブセットを記憶することができる。
[0096]より具体的には、アーカイブモジュール1012は、ミラーリングされたパケットを消費する消費エンティティの予測されるニーズに応じて、異なるタイプのミラーリングされたパケットに対して異なる方法でミラーリングされたパケットを記憶することができる。いくつかの場合では、アーカイブモジュール1012は、ミラーリングされたパケットの完全なトレースを記録することができる。他の場合には、アーカイブモジュール1012は、これらのパスのための完全なトレースを必ずしも記憶する必要はなく、パス内で生成された特定のミラーリングされたパケットを記憶することができる。例えば、特定のスイッチでパケットドロップが発生したことを示す明示的な情報がキャプチャされた場合、アーカイブモジュール1012は、パケットドロップの時点までのホップシーケンス全体をキャプチャすることを控えることができる。
[0097]インターフェイスモジュール1016は、図1の消費エンティティ114などの任意の消費エンティティが、処理モジュール1002によって収集され処理される任意の情報を検索することを可能にする。ある場合には、消費エンティティ114は、収集された情報を受信および分析するために任意の特性のコンピューティングデバイスを使用している人間の分析者に対応することができる。代わりに、または加えて、消費エンティティ114は、自動分析プログラムに対応することができる。
[0098]ある場合では、消費エンティティ114は、データストア1014にアーカイブされた情報を受信することができる。代わりに、または加えて、消費エンティティ114は、ミラーリングされたパケットを、処理モジュール1002によって受信されると、そのような情報のリアルタイムストリームとして受信することができる。ある場合では、インターフェイスモジュール1016は、任意の消費エンティティが1つまたは複数のアプリケーションプログラミングインターフェイス(API)を介してリソースと対話することを可能にする。例えば、インターフェイスモジュール1016は、異なるモードの情報抽出のために異なるAPIを提供することができる。APIはまた、消費エンティティが、抽出された所望のミラーリングされたパケットなどにおける使用のためのフィルタリング基準を指定することを可能にする。
[0099]インターフェイスモジュール1016はまた、消費エンティティから命令を受信してもよい。例えば、(例えば、消費エンティティによって実装されるような)自動解析プログラムは、分析プログラムの情報ニーズに基づいて、記録モジュールが記録する情報のタイプおよび特性を自動的かつ動的に変更するようアーカイブモジュール1012に指示することができる。
[00100]別のインターフェイスモジュール1018は、処理モジュール1002と(図1の)管理モジュール116との間の通信を行うためのメカニズムを提供する。例えば、その分析に基づいて、処理モジュール1002は、管理モジュール116に命令を自動的に送信し、管理モジュール116に代わりに、ネットワーク104内のスイッチに更新されたパケット検出ルールを送信するように命令することができる。新たなパケット検出ルールは、ミラーリングされたパケットの処理モジュール1002へのフローを変更する。例えば、処理モジュール1002は、管理モジュール116に、例えば、選択基準の制限をより少なくまたはより多くすることによって、受信するミラーリングされたパケットの量を増減するための新しいセットのルールを提供するように依頼することができる。加えて、または代わりに、処理モジュール1002は、受信しているタイプの情報に動的に反応することができる。つまり、任意のアプリケーション特有の理由により、パケット検出ルールの変更に影響を与え、特定のタイプの追加のタイプのパケット、または特定のタイプのパケットのより少ない数のキャプチャを行うようにすることができる。例えば、処理モジュール1002は、一定の量の証拠を収集して、フラッド攻撃が現在発生していることを示唆することができ、その後、管理モジュール116に、それが受信されたミラーリングされたパケットの量を再び絞って、フラッディング攻撃の存在をさらに確認するよう要求することができる。
[00101]管理モジュール116は、任意のアプリケーション特有の理由のために、同様に、インターフェイスモジュール1018を使用して、処理モジュール1002に命令を送信することができる。例えば、管理モジュール116は、性能データを処理モジュール1002に事前に求めることができる。管理モジュール116は、性能データを使用して、上述した方法のいずれかでミラーリング機能の挙動を変更することができる。管理モジュール116と処理モジュール1002との間のさらに別の環境特有の対話が実行されてもよい。
A.6.例示的な消費エンティティ
[00102]図11は、図1のコンテキストで導入された消費エンティティ114の1つの実装形態を示す。上述のように、消費エンティティ114は、ミラーリングされたパケットに関する分析を実行する際に人間の分析者が用いる、コンピューティングデバイスに対応することができる。代わりに、または加えて、消費エンティティは、任意のタイプのコンピューティングデバイスを実行する1つまたは複数の分析プログラムに対応することができる。
[00103]消費エンティティ114は、例えば、処理モジュール112によって提供される1つまたは複数のAPIを通じて、処理モジュール112と対話するためのインターフェイスモジュール1102を含む。消費エンティティ114は、処理モジュール112によってキャプチャされ、処理される、任意の情報を取得することができる。ある場合では、消費エンティティ114は、処理モジュール112の集合全体に情報要求を行うことができ、所望の情報を保持する特定の処理モジュール(1つまたは複数)は、所望の情報を提供することによって応答する。代わりに、または加えて、処理モジュール112は、消費エンティティ114にミラーリングされたパケット情報を自動的に提供することができる。例えば、消費エンティティ114は、所望のパケット関連情報を受信する目的で1つまたは複数の事象ハンドラを登録することができる。処理モジュール112は、遭遇したときに所望の情報を提供することによって、これらの事象ハンドラに応答することができる。消費エンティティ114は、収集した情報をデータストア1104に記憶することができる。上述したように、消費エンティティ114は、命令および他のフィードバックを処理モジュール112に送信することもできる。
[00104]消費エンティティ114は、受信したミラーリングパケット情報を解析するための1つまたは複数のアプリケーション特有の処理エンジン1106を提供することができる。ある場合では、例えば、処理エンジンは、収集されたミラーパケットのヘッダー内のTCPヘッダー情報を検査することができる。その情報は、通信するエンティティ間に確立された接続の数を示す。処理エンジンは、フラッド攻撃または他の異常条件が発生したか否かを判定するために、接続数をしきい値と比較できる。
[00105]別の処理エンジンは、壊れたリンク、または失われたもしくは破損した情報フローに寄与している可能性がある誤動作コンポーネントに対してネットワーク104を調べることができる。そのような処理エンジンは、パケットの切り捨てが早すぎるシーケンス(例えば、パケットが意図された宛先に到達しなかった場合)を特定することなどによる様々な証拠に基づいて、および/または欠落したホップ、異常ルートなどを含むパケットのシーケンスに基づいて、故障の存在を判定することができる。加えて、または代わりに、処理エンジンは、BGPまたはその他のルーティング情報、スイッチによって追加されたエラー条件メタデータ、ピング関連パケット情報などのいずれの証拠も調べることができる。つまり、BGP情報はリンクの故障や不正挙動など、ネットワーク内のルーティング問題を直接明らかにすることができる。エラー条件情報は、特定の交換機がその破損または他の要因のためにパケットをドロップしたことを明らかにすることができる。ピング関連パケット情報は、ネットワーク内の2つのエンティティ間の接続性の問題を明らかにすることができる。上述したように、ピングアプリケーションは、リモートエンティティにテストメッセージを送信し、リモートエンティティによるピングメッセージに対する応答をリッスンすることによってリモートエンティティへの接続の品質をテストするアプリケーションに対応する。
[00106]さらに他のタイプの処理エンジン1106を消費エンティティ114によって使用することができ、上記の例は、説明の精神で記述したものであって、限定するものではない。
[00107]処理エンジンは、ルールベースのエンジン、人工知能エンジン、機械訓練モデルなど、任意の方法で実装することができる。例えば、1つのルールベース処理エンジンは、診断ルールのセットを反映するマッピングテーブルまたは分岐アルゴリズムを採用することができる。各ルールは、IF−THEN形式で構成することができる。すなわち、証拠集合{X,X,...,X}がキャプチャされたミラーリングされたパケットに存在する場合、ネットワークは異常Yの被害を受けている可能性が高い、ということを指定することができる。これらのルールの特定の性質は、監視されているネットワーク104の性質、分析の目的、および/または他の要因に応じて、本質的に環境特有である。
[00108]いくつかの場合では、処理エンジンは一連のテストを動的に実行することもでき、後続のテストは、前のテスト(1つまたは複数)の結果によってトリガーされ、前のテスト(複数可)で生成された結論に依存する場合がある。
[00109]少なくとも1つのアクション行使モジュール1108は、処理エンジン1106のいずれかによって提供される分析の結果に基づいてアクションを取ることができる。例えば、1つのアクション行使モジュールは、人間の分析者に、例えば、アラート信号、検出された障害の原因のテキストによる説明などを、任意の形式で分析の結果を通知することができる。別の場合では、アクション行使モジュールは、不正挙動であると判定されたネットワーク104の一部の性能を事前に無効にしたり、変更したりすることができる。例えば、その種類のアクション行使モジュールは、特定のサーバーや攻撃されている他のリソースへの通信ルートを無効にしたり、悪意のある疑いのあるエンティティを起源とするトラフィックをブロックしたりすることができる。
[00110]インターフェイスモジュール1110は、消費エンティティ114が管理モジュール116と対話することを可能にする。例えば、消費エンティティ114は、少なくとも処理モジュール112がそうする理由と同じ理由で管理モジュール116に要求を送信することができる。例えば、処理エンジンは、受信しているパケットのタイプを変更したり、受信しているパケットの量を変更したりすることがある。この目的のために、処理エンジンは、ネットワーク104内のスイッチに更新されたパケット検出ルールを送信するように命令し、管理モジュール116に要求を行うことができる。更新されたルールは、スイッチによって有効にされると、処理エンジンの目的を達成する。
[00111]図1および図11に関する最後の注記として、これらの図は、消費エンティティから分離されたエージェントとしての処理モジュール112を示す。他の実装形態では、処理モジュール112によって実行されるものとして上で説明した1つまたは複数の機能は、代わりに消費エンティティによって実行することができる。実際、いくつかの実装形態では、処理モジュール112は完全に取り除くことができ、消費エンティティはミラーリングされたパケットをマルチプレクサー110から直接受信することができる。
A.7.例示的な管理モジュール
[00112]最後に、図12は、管理モジュール116の1つの実装形態を示している。管理モジュール116は、ネットワークスイッチ、マルチプレクサー110、処理モジュール112などの様々な動作を制御するために、少なくとも1つの制御モジュール1202を使用することができる。例えば、制御モジュール1202は、パケット検出ルールの複数セットをスイッチに提供することができ、それによりスイッチのその後のミラーリング挙動を管理する。制御モジュール1202は、管理者からの明示的な指示、消費エンティティに関連付けられた人間の分析者による明示的な要求、任意の処理モジュールまたは消費エンティティによる自動化された要求などの1つまたは複数の要因に基づいて新しいルールを生成することができる。
[00113]ある場合では、管理モジュール116は、すべてのスイッチに同じセットのパケット検出ルールをロードするように指示する他の場合には、管理モジュール116は、パケット検出ルールの異なるそれぞれのセットをロードするように異なるサブセットのスイッチに指示することができる。管理モジュール116は、例えばトラフィックが多いスイッチなどによって生成されたミラーリングされたパケットの量を抑えるためなど、環境に特有のあらゆる理由で後者の手法を採用することができる。
[00114]管理モジュール116は、少なくとも1つの性能監視モジュール1204を含むこともできる。そのコンポーネントは、ネットワーク104および追跡システム102の様々なコンポーネントの挙動に関するフィードバック情報を受信する。この情報に基づいて、性能監視モジュール1204は、ネットワーク104および追跡システム102の性能レベルを反映する1つまたは複数の性能関連指標を生成することができる。例えば、性能監視モジュール1204は、追跡システム102によって作成されている、ミラーリングされたパケットの量を判定することができる。ミラーリングされたパケットは、さまざまな方法で元のパケットと区別できる。例えば、スイッチ上で提供される各ミラーリングメカニズムは、それが作成するミラーリングされたパケットにサービスのタイプ(TOS)フラグを追加して、パケットをミラーリングされたパケットとして識別することができる。
[00115]制御モジュール1202は、性能監視モジュール1204によって提供される性能データに基づいて、スイッチに伝搬するルールを更新することもできる。例えば、制御モジュール1202は、ミラーリングされたパケットの量を抑えて、追跡システム102のミラーリング挙動が元のパケットのフローに悪影響を及ぼさないように、ピークトラフィック負荷の期間中のネットワーク104の輻輳を低減することができる。
[00116]管理モジュール116は、他の管理操作を実行する任意の他の機能1206を含むこともできる。例えば、図12では明示的に述べられていないが、機能1206は、ルーティング情報をコンパイルしスイッチに送信することができる。そのルーティング情報は、スイッチがネットワーク104を通じて元のパケットおよびミラーリングされたパケットをルーティングする方法を決定する。
[00117]最後に、管理モジュール116は、ネットワーク104内のスイッチと対話するためのインターフェイスモジュール1208、マルチプレクサー110と対話するためのインターフェイスモジュール1210、処理モジュール112と対話するためのインターフェイスモジュール1212と、消費エンティティと対話するためのインターフェイスモジュール1214とを含む、追跡システム102の様々な行為者と対話するための多数のインターフェイスを含むことができる。
B.例示的なプロセス
[00118]図13から18は、セクションAの追跡システム102の動作をフローチャート形式で説明するプロセスを示す。追跡システム102の動作の根底にある原則は既にセクションAで説明されているので、このセクションでは特定の動作を要約して扱う。
[00119]まず図13を参照すると、この図は、図3のスイッチ302の動作の1つの方法を説明するプロセス1302を示す。ブロック1302において、スイッチ302は、ネットワーク104を介して送信される元のパケットを受信する。ブロック1306において、スイッチ302は、元のパケットをミラーリングするか否かを決定する。ブロック1308において、スイッチは、元のパケットをミラーリングすることが決定されたと仮定して、元のパケットに基づいてミラーリングされたパケットを生成する。ミラーリングされたパケットは、少なくとも元のパケットで提供された情報のサブセットを含む。ミラーリングされたパケットは、少なくとも元のパケットの情報のサブセットを含む。ブロック1310において、スイッチ302は、少なくとも1つの負荷分散の考慮事項に基づいて候補マルチプレクサー110のセットから選択的にマルチプレクサーを選択する。この動作は、いくつかの実装形態では、追跡システム102が単一のマルチプレクサーのみを提供することができ、そのため、その場合には、マルチプレクサー間の多重化が必要でないという意味でオプションである。ブロック1312において、スイッチ302は、ミラーリングされたパケットを選択された(またはデフォルトの)負荷分散マルチプレクサーに送信する。ブロック1314において、スイッチ302は、元のパケットを、元のパケットによって指定されたターゲット宛先に送信する。上記の動作は、説明を簡単にするために連続した形で説明されるが、これらの動作のうちの任意のものは、動作1312および1314のように、並列に実行することもできる。
[00120]図14は、図3のスイッチ302のコンポーネントであるマッチングモジュール320の動作の1つの方法を説明するプロセス1402を示す。ブロック1404において、マッチングモジュール320は、少なくとも1つのパケット検出ルールに関して元のパケットを分析する。ブロック1406において、マッチングモジュール320は、元のパケットがパケット検出ルールを満たすか否かを判定する。ブロック1408において、マッチングモジュール320は、元のパケットがパケット検出ルールを満たす場合、元のパケットをミラーリングする命令を生成する。実際には、マッチングモジュール320は、図3の動作を実行することができる。一連のパケット検出ルールに関して、図14に示されている。
[00121]図15は、図4のマルチプレクサー402の動作の1つの方法を説明するプロセス1502を示す。ブロック1504において、マルチプレクサー402は、ミラーリングされたパケットを受信する。ブロック1506において、マルチプレクサー402は、少なくとも1つの負荷分散選択の考慮事項に基づいて、処理モジュール候補のセットから処理モジュールを選択する。例えば、マルチプレクサー402は、同じフローに属するパケットが同じ処理モジュールに送信されることを保証しながら、処理モジュール候補の中から選択するために、上述のハッシング技術を使用することができる。ブロック1508において、マルチプレクサー402は、選択された処理モジュールにミラーリングされたパケットを送信する。
[00122]図16は、図10の処理モジュール1002の動作の1つの方法を説明するプロセス1602を示す。ブロック1604において、処理モジュール1002は、マルチプレクサー110からミラーリングされたパケットを受信する。ブロック1606において、処理モジュール1002は、ミラーリングされたパケット上で、これに限定されるものではないが、関係する(例えば同一のフローに関連する)ミラーリングされたパケットのシーケンスの組み立て、特定のミラーリングされたパケットのフィルタリングおよび選択、ミラーリングされたパケットおよび/または処理モジュール1002によって実行された分析結果のアーカイブ、などの任意の操作を行うことができる。
[00123]図17は、図11の消費エンティティ114の1つの非限定的かつ代表的な動作方法を説明するプロセス1702を示す。ブロック1704において、消費エンティティ114は、ミラーリングされたパケットの分析を開始するか否かを決定する。例えば、消費エンティティ114が、ネットワーク104と対話する特定のアプリケーションに関連付けられているか、またはTCP関連アプリケーションもしくはBGP関連アプリケーションなど、ネットワーク104において何らかの役割を果たすと仮定する。1つの動作モードでは、そのようなアプリケーションは、追跡システム102とは独立して、故障または他の望ましくない事象がネットワーク104で発生したと判定することができる。それに応答して、アプリケーションは、特定のタイプのミラーリングされたパケットの収集を開始するようにスイッチに要求することができる。すなわち、アプリケーションは、管理モジュール116にそのような要求を行うことができ、管理モジュール116は代わりに、スイッチによって適用されたときに所望のパケットをキャプチャする最終効果を有する1つまたは複数のパケット検出ルールを、スイッチに送信する。別の動作モードでは、アプリケーションは、異常条件に最初に遭遇することなく、通常の動作過程で特定のパケットを収集するようにスイッチに要求することができる。さらに他の動作モードも可能である。
[00124]ブロック1706において、消費エンティティ114は、処理モジュール112によって提供されるミラーリングされたパケットおよび/または分析結果を受信する。ブロック1706において、消費エンティティ114は、プッシュ技術、プル技術、またはそれらの組み合わせを使用して情報を取得することができる。ブロック1708において、消費エンティティ114は、ミラーリングされたパケットを分析して、ネットワーク104で発生した、または現在ネットワーク104で発生している事象に関する第1の結論に達する。その後、この第1の結論に基づいて、消費エンティティ114は、1つまたは複数のアクションを取ることができ、その例は図17に要約される。
[00125]例えば、ブロック1710において、消費エンティティ114は、人間の分析者、管理者、または他のネットワーク104内のあらゆる異常条件のエンティティに通知することができる。消費エンティティ114は、これらの結果を伝えるために任意のユーザーインターフェイス表示を使用することができる。代わりに、または加えて、ブロック1712において、消費エンティティ114は、その分析の結果を記録することができる。代わりに、または加えて、ブロック1714において、消費エンティティ114は、ネットワーク104の任意の部分の挙動を無効にするか、またはそうでなければ変更するなど、任意の他のアクションを取ることができる。
[00126]加えて、または代わりに、ブロック1716において、消費エンティティ114は、第1の結論を使用して、別のラウンドの分析をトリガーすることができる。その第2ラウンドの分析は、第1の結論を入力データとして使用することができる。このような反復調査は、人間の分析者または自動化されたプログラムが所望の最終結論に達するまで何回でも繰り返すことができる。ブロック1716の分析は、消費エンティティ114が処理モジュール112から既に受信したミラーリングされたパケット情報に関して行われることに留意する。
[00127]加えて、または代わりに、ブロック1718において、消費エンティティ114は、処理モジュール112と対話して、処理モジュール112から追加のパケット関連情報を得ることができる。加えて、または代わりに、消費エンティティ114は、管理モジュール116と対話して、スイッチにロードされたパケット検出ルールを変更するように要求することができる。この変更は、次に、消費エンティティ114が処理モジュール112から受信するパケットのタイプおよび/または量を変更する。次に、消費エンティティ114は、追加のパケット関連情報を受信したときに上記で説明した任意の動作を繰り返すことができる。
[00128]最後に、図18は、図12の管理モジュール116の動作の1つの方法を説明するプロセス1802を示す。ブロック1804において、管理モジュール116は、ネットワーク104内のスイッチ、マルチプレクサー110、処理モジュール112などのような追跡システム102のコンポーネントに様々な命令を送信することができる。例えば、管理モジュール116は、更新されたパケット検出ルールのセットをスイッチに送信することができ、その後スイッチがパケットミラーリング挙動を特定の方法で制御する。ブロック1806において、管理モジュール116は、スイッチ、マルチプレクサー110、処理モジュール112、消費エンティティなどのような様々なエンティティからのフィードバックを受信する。上述した方法で、管理モジュール116は、続いて、フィードバックを使用して、それが様々なエージェントに送信する命令、すなわちブロック1804の後続の実行におけるものを更新することができる。管理モジュール116は、図18には示されていない他の管理機能を実行することもできる。
C.代表的なコンピューティング機能
[00129]図19は、上述の図に示される追跡機能の任意の態様を実施するために使用され得るコンピューティング機能1902を示す。例えば、図19に示すコンピューティング機能1902のタイプは、ソフトウェアにより実装されたマルチプレクサー(図1の追跡システム102で使用される場合)、任意のパケット処理モジュール、管理モジュール116、任意の消費エンティティ(消費エンティティ114など)などのいずれかを実装するために使用することができる。すべての場合において、コンピューティング機能1902は、1つまたは複数の物理的および有形の処理メカニズムを表す。
[00130]コンピューティング機能1902は、1つまたは複数の中央処理装置(CPU)および/または1つまたは複数のグラフィカル処理装置(GPU)などの1つまたは複数の処理装置1904を含むことができる。
[00131]コンピューティング機能1902は、コード、設定、データなどの任意の種類の情報を記憶するための任意のストレージリソース1906も含むことができる。限定されないが、例えば、ストレージリソース1906は、任意のタイプのRAM、任意のタイプのROM、フラッシュデバイス、ハードディスク、光ディスクなどのいずれかを含むことができる。より一般的には、任意のストレージリソースは、情報を記憶するための任意の技術を使用することができる。さらに、任意のストレージリソースは、情報の揮発性または不揮発性の保持を提供することができる。さらに、任意のストレージリソースは、コンピューティング機能1902の固定または取り外し可能なコンポーネントを表すことができる。コンピューティング機能1902は、処理デバイス1904が任意のストレージリソースまたはストレージリソースの組み合わせに記憶された命令を実行するとき、上記の機能のいずれかを実行することができる。
[00132]用語に関して、ストレージリソース1906の任意のもの、またはストレージリソース1906の任意の組み合わせは、コンピューター可読媒体と見なすことができる。多くの場合、コンピューター可読媒体は、何らかの形態の物理的および有形のエンティティを表す。コンピューター可読媒体という用語はまた、例えば、物理的なコンジットおよび/または空中または他の無線媒体などを介して送信または受信される伝搬された信号を包含する。しかしながら、特定の用語「コンピューター可読記憶媒体」および「コンピューター可読媒体デバイス」は、他のすべての形態のコンピューター可読媒体を含むが、伝播信号自体を明示的に除外する。
[00133]コンピューティング機能1902はまた、ハードディスクドライブメカニズム、光ディスクドライブメカニズムなどの任意のストレージリソースと対話するための1つまたは複数のドライブメカニズム1908を含む。
[00134]コンピューティング機能1902はまた、(入力デバイス1912を介して)様々な入力を受信し、(出力デバイス1914を介して)様々な出力を提供するための入出力モジュール1910を含む。例示的な入力デバイスは、キーボードデバイス、マウス入力デバイス、タッチスクリーン入力デバイス、デジタル化パッド、1つまたは複数のビデオカメラ、1つまたは複数の深度カメラ、自由空間ジェスチャ認識メカニズム、1つまたは複数のマイクロフォン、音声認識メカニズム、任意の動き検出メカニズム(例えば、加速度計、ジャイロスコープなど)などを含むことができる。1つの特定の出力メカニズムは、表示デバイス1916および関連するグラフィカルユーザーインターフェイス(GUI)1918を含むことができる。他の出力デバイスは、プリンタ、モデル生成メカニズム、触覚出力メカニズム、(出力情報を記憶するための)アーカイブメカニズムなどを含むことができる。コンピューティング機能1902はまた、1つまたは複数の通信コンジット1922を介して他のデバイスとデータを交換するための1つまたは複数のネットワークインターフェイス1920を含むことができる。1つまたは複数の通信バス1924は、上述のコンポーネントを互いに通信可能に結合する。
[00135]通信コンジット1922は、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク(例えば、インターネット)、ポイントツーポイント接続など、またはそれらの任意の組み合わせなどにより、任意の方法で実装することができる。通信コンジット(複数可)1922は、任意のプロトコルまたはプロトコルの組み合わせによって管理されるハードワイヤードリンク、無線リンク、ルーター、ゲートウェイ機能、ネームサーバーなどの任意の組み合わせを含むことができる。
[00136]代わりに、または加えて、前のセクションで説明した機能のいずれかを、少なくとも部分的に1つまたは複数のハードウェア論理コンポーネントで実行することができる。例えば、限定するものではないが、コンピューティング機能1902は、フィールド・プログラマブル・ゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システム・オン・チップ・システム(SOC)、複合プログラマブル論理デバイス(CPLD)などの1つまたは複数を使用して実装することができる。
[00137]最後に、主題は構造的特徴および/または方法論的行為に特有の言語で記載されているが、添付の特許請求項に定義された主題は必ずしも上記の特定の特徴または行為に限定されないことが理解されるであろう。むしろ、上記の特定の特徴および動作は、請求項を実施する例示的な形態として開示される。

Claims (15)

  1. ネットワークからパケットを収集する方法であって、
    元のパケットをネットワーク内のスイッチで受信するステップと、
    前記元のパケットをミラーリングするか否かを決定するステップと、
    前記元のパケットをミラーリングするとの決定がなされることを条件として、前記元のパケットに基づいてミラーリングされたパケットを生成するステップであって、前記ミラーリングされたパケットが、前記元のパケットに提供された情報の少なくともサブセットを含むステップと、
    前記ミラーリングされたパケットを負荷分散マルチプレクサーに送信するステップと、
    前記元のパケットによって指定されたターゲット宛先に前記元のパケットを送信するステップと
    を含む方法。
  2. 前記元のパケットをミラーリングするか否かを前記決定することが、
    パケット検出ルールに関して前記元のパケットを分析するステップと、
    前記元のパケットが前記パケット検出ルールを満たすか否かを判定するステップと、
    前記元のパケットが前記パケット検出ルールを満たす場合、前記元のパケットをミラーリングするための命令を生成するステップと
    を含む、請求項1に記載の方法。
  3. 前記パケット検出ルールが、指定されたプロトコル関連特性を表す各元のパケットがミラーリングされるべきであることを指定する、請求項2に記載の方法。
  4. 前記パケット検出ルールが、指定されたアプリケーションを起源とする各元のパケットがミラーリングされるべきであることを指定する、請求項2に記載の方法。
  5. 前記パケット検出ルールが、ユーザーが作成したパケット検出ルールに対応し、前記ユーザーが作成したパケット検出ルールは、ユーザーが指定した一致条件を満たす元の各パケットがミラーリングされるべきであることを指定する、請求項2に記載の方法。
  6. 前記パケット検出ルールが、前記パケットを処理する際に前記スイッチが特定の条件に遭遇したことを表す各元のパケットがミラーリングされるべきであることを指定する、請求項2に記載の方法。
  7. 少なくとも1つの負荷分散の考慮事項に基づいて、マルチプレクサー候補のセットから前記マルチプレクサーを選択するステップをさらに含む、請求項1に記載の方法。
  8. 前記マルチプレクサーが、ハードウェアにより実装されたマルチプレクサーである、請求項1に記載の方法。
  9. ネットワークから収集されたパケットを分析するための1つまたは複数のコンピューティングデバイスであって、
    少なくとも1つの処理モジュールから複数のミラーリングされたパケットを受信するためのインターフェイスモジュールであって、
    各ミラーリングされたパケットは、前記元のパケットが、パケット検出ルールのセット中の少なくとも1つのパケット検出ルールを満たすとの条件で、前記ネットワーク内のスイッチによって生成され、元のパケットの処理に応答する前記少なくとも1つの処理モジュールに転送され、ミラーリングされた各パケットは、前記元のパケット内に提供された情報の少なくともサブセットを含む、
    インターフェイスモジュールと、
    前記ミラーリングされたパケットを処理して、前記ネットワーク内で発生した、または発生している事象に関する、少なくとも1つの結論に到達するように構成された、少なくとも1つの処理エンジンと、
    前記少なくとも1つの結論に基づいてアクションを取るように構成されたアクション行使モジュールと
    を含む、コンピューティングデバイス。
  10. ネットワーク内で使用するための、物理デバイスに対応するスイッチであって、
    元のパケットを受信するように構成された受信モジュールと、
    前記元のパケットがパケット検出ルールのセット中の少なくとも1つのパケット検出ルールを満たすか否かを判定することによって、前記元のパケットをミラーリングするか否を決定するように構成された、マッチングモジュールと、
    前記元のパケットをミラーリングするとの決定がなされることを条件として、前記元のパケットに基づいてミラーリングされたパケットを生成するように構成されたミラーリングモジュールであって、前記ミラーリングされたパケットが、前記元のパケットにおいて提供される情報の少なくともサブセットを含む、ミラーリングモジュールと、
    前記ミラーリングされたパケットを負荷分散マルチプレクサーに送信するように構成された、ミラーパケット送信モジュールと、
    前記元のパケットを前記元のパケットによって指定されたターゲット宛先に送信するように構成された、元のパケット送信モジュールと
    を含む、スイッチ。
  11. 前記プロトコル関連特性が、トランスポート層プロトコルによって作成された少なくとも1つの情報項目によって表される、請求項3に記載の方法。
  12. 前記プロトコル関連特性が、ルーティングプロトコルによって作成された少なくとも1つの情報項目によって表される、請求項3に記載の方法。
  13. 前記指定された条件が、前記元のパケットは前記スイッチによってドロップされるべきであることを示す、請求項8に記載の方法。
  14. 前記ミラーリングされたパケットを前記マルチプレクサーで受信するステップと、
    少なくとも1つの負荷分散の考慮事項に基づいて、処理モジュール候補のセットから処理モジュールを選択するステップと、
    前記ミラーリングされたパケットを、選択された前記処理モジュールに送信するステップと
    をさらに含む、請求項1に記載の方法。
  15. 少なくとも1つの負荷分散の考慮事項に基づいて、マルチプレクサー候補のセットから前記マルチプレクサーを選択するように構成されたターゲットマルチプレクサー選択モジュールをさらに含む、請求項10に記載のスイッチ。
JP2017512009A 2014-09-03 2015-08-31 選択されたネットワークトラフィックの収集と分析 Pending JP2017527216A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/475,927 2014-09-03
US14/475,927 US20160065423A1 (en) 2014-09-03 2014-09-03 Collecting and Analyzing Selected Network Traffic
PCT/US2015/047633 WO2016036627A1 (en) 2014-09-03 2015-08-31 Collecting and analyzing selected network traffic

Publications (1)

Publication Number Publication Date
JP2017527216A true JP2017527216A (ja) 2017-09-14

Family

ID=54106457

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017512009A Pending JP2017527216A (ja) 2014-09-03 2015-08-31 選択されたネットワークトラフィックの収集と分析

Country Status (11)

Country Link
US (1) US20160065423A1 (ja)
EP (1) EP3189626A1 (ja)
JP (1) JP2017527216A (ja)
KR (1) KR20170049509A (ja)
CN (1) CN106797328A (ja)
AU (1) AU2015312174A1 (ja)
BR (1) BR112017003040A2 (ja)
CA (1) CA2959041A1 (ja)
MX (1) MX2017002881A (ja)
RU (1) RU2017106745A (ja)
WO (1) WO2016036627A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019176309A (ja) * 2018-03-28 2019-10-10 ソフトバンク株式会社 複製モジュール、複製方法、複製プログラム及び監視システム
KR20200078577A (ko) * 2017-10-31 2020-07-01 아브 이니티오 테크놀로지 엘엘시 중복 작업 결과를 사용하는 컴퓨팅 클러스터 관리

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9391716B2 (en) 2010-04-05 2016-07-12 Microsoft Technology Licensing, Llc Data center using wireless communication
US20160142269A1 (en) * 2014-11-18 2016-05-19 Cisco Technology, Inc. Inline Packet Tracing in Data Center Fabric Networks
WO2018137232A1 (zh) * 2017-01-26 2018-08-02 华为技术有限公司 数据处理的方法、控制面节点和用户面节点
US10764209B2 (en) * 2017-03-28 2020-09-01 Mellanox Technologies Tlv Ltd. Providing a snapshot of buffer content in a network element using egress mirroring
US11012327B2 (en) * 2017-06-19 2021-05-18 Keysight Technologies Singapore (Sales) Pte. Ltd. Drop detection and protection for network packet monitoring in virtual processing environments
US10756967B2 (en) 2017-07-20 2020-08-25 Vmware Inc. Methods and apparatus to configure switches of a virtual rack
US10530678B2 (en) 2017-07-20 2020-01-07 Vmware, Inc Methods and apparatus to optimize packet flow among virtualized servers
US11102063B2 (en) 2017-07-20 2021-08-24 Vmware, Inc. Methods and apparatus to cross configure network resources of software defined data centers
US10841235B2 (en) * 2017-07-20 2020-11-17 Vmware, Inc Methods and apparatus to optimize memory allocation in response to a storage rebalancing event
US11190418B2 (en) * 2017-11-29 2021-11-30 Extreme Networks, Inc. Systems and methods for determining flow and path analytics of an application of a network using sampled packet inspection
CN108270699B (zh) * 2017-12-14 2020-11-24 中国银联股份有限公司 报文处理方法、分流交换机及聚合网络
CN108418765B (zh) * 2018-04-08 2021-09-17 苏州盛科通信股份有限公司 远程流量监控负载分担的芯片实现方法和装置
US10924504B2 (en) * 2018-07-06 2021-02-16 International Business Machines Corporation Dual-port mirroring system for analyzing non-stationary data in a network
US10491511B1 (en) * 2018-07-20 2019-11-26 Dell Products L.P. Feedback-based packet routing system
CN108881295A (zh) * 2018-07-24 2018-11-23 瑞典爱立信有限公司 用于检测和解决异常路由的方法和网络设备
US11252040B2 (en) * 2018-07-31 2022-02-15 Cisco Technology, Inc. Advanced network tracing in the data plane
JP7119957B2 (ja) * 2018-11-30 2022-08-17 富士通株式会社 スイッチ装置及び障害検知プログラム
WO2021190746A1 (en) * 2020-03-25 2021-09-30 Huawei Technologies Co., Ltd. Integrated circuit for network data processing, network data logging and a network digital twin
US11714786B2 (en) * 2020-03-30 2023-08-01 Microsoft Technology Licensing, Llc Smart cable for redundant ToR's
US11323381B2 (en) * 2020-04-16 2022-05-03 Juniper Networks, Inc. Dropped packet detection and classification for networked devices
WO2022002843A1 (en) * 2020-07-02 2022-01-06 Telefonaktiebolaget Lm Ericsson (Publ) Ue-initiated in-band policy activation for flow-based policies

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001063838A2 (en) * 2000-02-22 2001-08-30 Top Layer Networks, Inc. System and method for flow mirroring in a network switch
US7486674B2 (en) * 2003-04-28 2009-02-03 Alcatel-Lucent Usa Inc. Data mirroring in a service
US7710867B1 (en) * 2003-05-23 2010-05-04 F5 Networks, Inc. System and method for managing traffic to a probe
US8869267B1 (en) * 2003-09-23 2014-10-21 Symantec Corporation Analysis for network intrusion detection
US7457868B1 (en) * 2003-12-30 2008-11-25 Emc Corporation Methods and apparatus for measuring network performance
US8248928B1 (en) * 2007-10-09 2012-08-21 Foundry Networks, Llc Monitoring server load balancing
US9003429B2 (en) * 2009-09-23 2015-04-07 Aliphcom System and method of enabling additional functions or services of device by use of transparent gateway or proxy
US8606921B2 (en) * 2010-08-10 2013-12-10 Verizon Patent And Licensing Inc. Load balancing based on deep packet inspection
US9864517B2 (en) * 2013-09-17 2018-01-09 Netapp, Inc. Actively responding to data storage traffic

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200078577A (ko) * 2017-10-31 2020-07-01 아브 이니티오 테크놀로지 엘엘시 중복 작업 결과를 사용하는 컴퓨팅 클러스터 관리
JP2021501398A (ja) * 2017-10-31 2021-01-14 アビニシオ テクノロジー エルエルシー 時間間隔カウンタを使用してコンピュータクラスタを管理すること
JP2021503640A (ja) * 2017-10-31 2021-02-12 アビニシオ テクノロジー エルエルシー 複製されたタスク結果を使用してコンピュータクラスタを管理すること
KR102444421B1 (ko) 2017-10-31 2022-09-16 아브 이니티오 테크놀로지 엘엘시 중복 작업 결과를 사용하는 컴퓨팅 클러스터 관리
JP7314127B2 (ja) 2017-10-31 2023-07-25 アビニシオ テクノロジー エルエルシー 時間間隔カウンタを使用してコンピュータクラスタを管理すること
JP2019176309A (ja) * 2018-03-28 2019-10-10 ソフトバンク株式会社 複製モジュール、複製方法、複製プログラム及び監視システム

Also Published As

Publication number Publication date
US20160065423A1 (en) 2016-03-03
MX2017002881A (es) 2017-06-19
CN106797328A (zh) 2017-05-31
EP3189626A1 (en) 2017-07-12
WO2016036627A1 (en) 2016-03-10
AU2015312174A1 (en) 2017-03-16
RU2017106745A (ru) 2018-09-03
KR20170049509A (ko) 2017-05-10
CA2959041A1 (en) 2016-03-10
BR112017003040A2 (pt) 2017-11-21

Similar Documents

Publication Publication Date Title
JP2017527216A (ja) 選択されたネットワークトラフィックの収集と分析
US11128550B2 (en) Logical network traffic analysis
EP3304821B1 (en) Measuring performance of a network using mirrored probe packets
US9935851B2 (en) Technologies for determining sensor placement and topology
Bakhshi State of the art and recent research advances in software defined networking
US10560354B2 (en) End-to-end, in situ packet enrichment for network analytics
JP6598382B2 (ja) ヒューリスティック及びビジネスポリシーに基づく、ネットワークトラフィックフローに対するリソースのインクリメンタルアプリケーション
US9094308B2 (en) Finding latency through a physical network in a virtualized network
JP5684680B2 (ja) フロー統計集約
CN114342342A (zh) 跨多个云的分布式服务链
US11425006B2 (en) Systems, methods and computer program products for scalable, low-latency processing of streaming data
US10862807B2 (en) Packet telemetry data via first hop node configuration
EP3854033B1 (en) Packet capture via packet tagging
JP5894963B2 (ja) 分析サーバ及び分析方法
US9356876B1 (en) System and method for classifying and managing applications over compressed or encrypted traffic
US9521066B2 (en) vStack enhancements for path calculations
WO2020242653A1 (en) Trace routing in virtual networks
Kawale et al. Review on traffic engineering and load balancing techniques in software defined networking
US20240154896A1 (en) Methods, systems, and computer readable media for smartswitch service chaining
KR100454684B1 (ko) 다중 프로토콜 레이블 스위칭 망에서 모의실험과 최적화를이용한 트래픽 엔지니어링 수행방법 및 그를 위한 서버
Abraham et al. A flexible Quagga-based virtual network with FIB aggregation
Ghalwash QoS in SDN-Based Large-Scale Networks
Lynch et al. Implement Closed-Loop Network Decisioning Now with Big Data Analytics and Fuel Future-State SDN Use Cases Through a Common Platform Deployment
Nikkhouy Monitoring Service Chains in the Cloud