説明

パケットキャプチャ処理方法及び装置

【課題】パケットキャプチャ処理方法及び装置に関し、高負荷時においても、ネットワークに流れるパケットデータを全て採取して分析することを可能にし、厳密な測定結果を得る。
【解決手段】第1の処理装置10におけるパケットキャプチャの処理負荷が大きくなると、第1の処理装置10は、それ以降に受信されるパケットデータのセッションを識別し、各パケットデータをセッション単位で、他の代行処理用の第2の処理装置20に転送し、パケットデータを分散させて分析する。第1の及び第2の処理装置10,20は、それぞれパケットデータを分析した分析結果を、第3の処理装置30へ転送し、第3の処理装置30は、分析結果を集約し統計処理を行い、ネットワーク品質等を測定する。該測定結果等は、マネージメント管理端末40が第3の処理装置30にアクセスし、該マネージメント管理端末40によって参照される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パケットキャプチャ処理方法及び装置に関する。ネットワークに流れる様々なパケットデータに対して、何らかの要因により、ネットワークに流入するパケットデータが増え、ネットワークの許容量を超えて過負荷状態となった場合、パケットデータは、中継ルータで待ち行列に溜め込まれ、処理待ちとなる。
【0002】
しかし、中継ルータの待ち行列の容量には限りがあり、待ち行列にパケットを溜め込むことができない場合は、パケットデータの転送待ちによる遅延や廃棄等が発生する。この状況が輻輳である。本発明は、このような状況が発生するネットワークの平常時又は輻輳時の品質を調査し、分析を行うために、ネットワークに流れるパケットデータを採取して、ネットワークの品質の測定を行うためのパケットキャプチャ処理方法及び装置に関する。
【背景技術】
【0003】
ネットワークの品質を測定するパケットキャプチャ処理装置において、図5の(a)に示すように、ネットワークのパケットデータ量(トラヒック量)がパケットキャプチャ処理装置の処理能力を超えて流入する場合がある。処理能力を超えて流入されたパケットデータに対しては、計測漏れとなり、パケットキャプチャ処理装置は、パケット廃棄が発生したとして処理するため、パケット廃棄率を過大に計測してしまう傾向があった。
【0004】
上述の問題を防ぐため、パケットキャプチャ処理装置で、例えば、図5の(b)に示すように、処理能力の範囲内でサンプリング測定を行い、該サンプリング測定の結果を基に統計処理を行って品質計測を実施するなどの手法が用いられていた。
【0005】
なお、関連する技術として、下記特許文献1乃至3の技術がある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2003−204358号公報
【特許文献2】特開2001−103090号公報
【特許文献3】特開2010−34721号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述のように、従来の処理装置では、図5の(a)に示すように、処理能力を超えた際には、その間のパケットを計測対象とせず、計測漏れとする手法、又は図5の(b)に示すように、高負荷時にはサンプリング測定を行うなどの手法が用いられていた。或いは、高負荷時には、分析項目を絞る、特定の情報のみを収集する、特定のパケットのみを収集する等の手法等が提案されていた。
【0008】
しかし、これらの手法では、ネットワークに流れるパケットデータを全て採取するものではなく、一部のパケットデータを省略して分析しているため、ネットワークに流れるパケットデータを厳密に分析することができず、正確な測定結果を得ることができないものであった。本発明は、高負荷時においても、ネットワークに流れるパケットデータを全て採取して分析することを可能にし、厳密な測定結果を得ることができるパケットキャプチャ処理方法及び装置を提供する。
【課題を解決するための手段】
【0009】
上記課題を解決するパケットキャプチャ処理方法は、自装置の処理能力が予め定めた閾値を超えるパケットデータが受信されたか否かを判定するステップと、自装置の処理能力が予め定めた閾値を超えるパケットデータが受信されたとき、受信パケットデータが、既に自装置で処理しているセッションの後続のパケットデータか否かを判定し、自装置で処理しているセッションの後続のパケットデータである場合、該受信パケットデータを自装置で処理し、自装置で処理しているセッションのパケットデータでない場合、該受信パケットデータを、セッション対応に、他のパケットキャプチャ処理装置へ転送するステップと、を含むものである。
【0010】
また、上記課題を解決するパケットキャプチャ処理装置は、自装置の処理能力が予め定めた閾値を超えるパケットデータが受信されたか否かを判定する流量監視手段と、自装置の処理能力が予め定めた閾値を超えるパケットデータが受信されたとき、受信パケットデータが、既に自装置で処理しているセッションの後続のパケットデータか否かを判定し、自装置で処理しているセッションの後続のパケットデータである場合、該受信パケットデータを自装置で処理し、自装置で処理しているセッションのパケットデータでない場合、該受信パケットデータを、セッション対応に、他のパケットキャプチャ処理装置へ転送するセッション分散手段と、を備えたものである。
【発明の効果】
【0011】
ネットワークに流れるパケットデータに対して、高負荷時においても、サンプリング計測を行うことなく、他の処理装置と分散処理を行って、全てのパケットデータを採取して分析することが可能となり、厳密な測定結果を得ることが可能となる。
【図面の簡単な説明】
【0012】
【図1】開示のパケットキャプチャ処理装置の分散処理の実施例を示す図である。
【図2】各セッションのパケットデータの流れの一例及びパケットデータの分散処理の動作フロー例を示す図である。
【図3】転送パケットの最適化の具体例を示す図である。
【図4】第1、第2及び第3の処理装置の機能ブロックの構成例を示す図である。
【図5】処理能力を超えるトラヒック量が流入された場合の従来の処理例を示す図である。
【発明を実施するための形態】
【0013】
開示のパケットキャプチャ処理装置は、パケット通信網を構成する、例えばルータやスイッチ等に接続される。そして、ルータ間、又はスイッチ間の伝送路で送受信するパケットを捕捉する。例えばルータやスイッチは、伝送路に送出するパケットを複製し、これをパケットキャプチャ処理装置に転送する。及び・又は、ルータやスイッチは、伝送路から受信したパケットを複製し、これをパケットキャプチャ処理装置に転送する。
【0014】
他のキャプチャ方法として、開示のパケットキャプチャ処理装置は、ルータ間、又はスイッチ間の伝送路に配置され、受信したパケットを複製して、一方を伝送路に送信し、他方を自装置内に保持する。
【0015】
図1に開示のパケットキャプチャ処理装置による分散処理の実施例を示す。パケットキャプチャ処理装置10,10’,10”は、例えば、上記パケット通信網の一例としてのローカルエリアネットワーク(LAN)に流れる各セッションa〜fのパケットデータを採取(キャプチャ)し、分析を行う。なお以下の説明では、「パケットキャプチャ処理装置」を単に「処理装置」と略称する。なお、ここで言うセッションは、同一の送信元装置から同一の受信先装置までの一連の通信である。
【0016】
ここで、第1の処理装置10におけるパケット分析の処理負荷が大きくなり、該処理負荷が第1の処理装置10の処理能力閾値を超えることが予想される状態となったとする。すると、第1の処理装置10は、それ以降に受信されるパケットデータのセッションを識別し、各パケットデータをセッション単位で振り分け、他の代行処理用の第2の処理装置20に転送し、第2の処理装置20によりパケットデータをセッション単位で分散させて分析する。
【0017】
第1の処理装置10及び第2の処理装置20は、それぞれパケットデータを分析した分析結果を、第3の処理装置30へ転送し、該第3の処理装置30は、第1の処理装置10及び第2の処理装置20から転送された分析結果を集約し統計処理を行い、ネットワーク品質等を測定する。該測定結果等は、マネージメント管理端末40が第3の処理装置30にアクセスし、該マネージメント管理端末40によって参照される。
【0018】
他の処理装置10’、10”も同様に、処理負荷が大きくなり、処理能力閾値を超えることが予想される状態となると、以降受信されるパケットデータを、セッション単位で振り分け、代行処理用の第2の処理装置20に転送し、第2の処理装置20によりパケットデータをセッション単位で分散処理させる。即ち、同一セッションのパケットデータは、同一の処理装置で処理されるようにし、同一セッションのパケットデータが別々の処理装置に転送されることがないように分散する。
【0019】
図2の(a)は、第1の処理装置10でキャプチャしようとするネットワーク上の各セッションのパケットデータの流れの一例を示している。図2の(a)において、a1,a2はそれぞれセッションaの第1番目と第2番目の受信パケットデータを示している。また、b1,b2はそれぞれセッションbの第1番目と第2番目の受信パケットデータを示している。
【0020】
c1,c2はセッションcの第1番目と第2番目の受信パケットデータを示している。d1,d2はセッションdの第1番目と第2番目の受信パケットデータを示している。e1,e2,e3はセッションeの第1番目と第2番目と第3番目の受信パケットデータを示している。f1はセッションfの第1番目の受信パケットデータを示している。
【0021】
各パケットデータは、図2の(a)に示すように左側から順番に第1の処理装置10で受信され、ここで、セッションcの第1番目のパケットデータc1の受信後に高負荷が発生し、セッションdの第2番目のパケットデータd2の受信後に高負荷が解除されたものとする。
【0022】
図2の(b)は、該パケットデータを分散処理する動作フロー例を示している。第1の処理装置10では、パケットデータを受信すると(2−1)、第1の処理装置10で高負荷が発生している状態か否かを判定する(2−2)。高負荷が発生している状態か否かは、例えば、第1の処理装置10のCPU使用率や流入する転送パケット量(PPS:Packet Per Second)等を基に判定する構成とすることができる。
【0023】
高負荷が発生していない場合、第1の処理装置10は、受信したパケットデータのセッションを識別し、該セッションのパケットデータを第2の処理装置20に既に転送しているか否かを判定する(2−3)。セッションの識別は、具体的には、パケットに含まれる宛先アドレス(Destination Address:DA)、送信元アドレス(Source Address:SA)、セッション識別子などを抽出し、これらの組合せ、又は全てにより該パケットのセッションを識別する。
【0024】
受信したパケットデータが、既に第2の処理装置20に転送済みのセッションの後続のパケットデータでない場合、該受信パケットデータを第1の処理装置10の待ち行列(キュー)Q1に格納する(2−4)。具体的には、転送を決定したセッションが有った場合、該セッションを識別するための情報を保持しておき、受信したパケットから抽出した情報に基づく該パケットのセッションと、保持したセッション情報とを比較して転送済みセッションであるかを判定する。
【0025】
受信したパケットデータが、既に第2の処理装置20に転送した受信パケットのセッションの後続のパケットデータであった場合、受信したパケットデータを第2の処理装置20へ転送し、該パケットデータを第2の処理装置20の待ち行列(キュー)Q2に格納させる(2−6)。
【0026】
一方、高負荷が発生している場合、第1の処理装置10は、受信したパケットデータのセッションを識別し、該セッションのパケットデータを第1の処理装置10で既に受信しているか否かを判定する(2−5)。既に受信しているか否かの判定は、前記した高負荷が発生していない場合に記載の方法を用いることができる。
【0027】
受信したパケットデータが、既に第1の処理装置10で受信済みのセッションの後続のパケットデータでない場合、該受信したパケットデータを第2の処理装置20へ転送し、第2の処理装置20の待ち行列(キュー)Q2に格納させる(2−6)。
【0028】
受信したパケットデータが、既に第1の処理装置10で受信済みのセッションの後続のパケットデータである場合、該受信したパケットデータを第1の処理装置10の待ち行列(キュー)Q1に格納する(2−4)。
【0029】
上述の分散処理のフロー例によって、図2の(a)に示すパケットデータが具体的にどのように分散されるかを説明する。高負荷が発生する前に受信されたパケットデータa1,a2,b1,c1は、それぞれ第1の処理装置10の待ち行列(キュー)Q1に順番に格納される。
【0030】
次に、高負荷発生後に受信したパケットデータc2は、そのセッションcのパケットデータc1を既に第1の処理装置10で受信済みであるので、該パケットデータc2は、第1の処理装置10の待ち行列(キュー)Q1に格納される。
【0031】
次に受信されるパケットデータd1は、そのセッションdのパケットデータを第1の処理装置10では未だ受信していないので、該パケットデータd1は、第2の処理装置20の待ち行列(キュー)Q2に格納される。
【0032】
次に受信されるパケットデータb2は、そのセッションbのパケットデータb1を第1の処理装置10既に受信しているので、該パケットデータb2は、第1の処理装置10の待ち行列(キュー)Q1に格納される。
【0033】
次に受信されるパケットデータe1は、そのセッションeのパケットデータを第1の処理装置10では未だ受信していないので、該パケットデータe1は、第2の処理装置20の待ち行列(キュー)Q2に格納される。
【0034】
次に受信されるパケットデータd2は、そのセッションdのパケットデータを第1の処理装置10では受信していないので、該パケットデータd2は、第2の処理装置20の待ち行列(キュー)Q2に格納される。
【0035】
次に受信されるパケットデータe2は、高負荷の解除後であっても、そのセッションeのパケットデータe1を第2の処理装置20に転送済みであるのでので、該パケットデータe2は、第2の処理装置20の待ち行列(キュー)Q2に格納される。
【0036】
次に受信されるパケットデータf1は、高負荷の解除後であり、そのセッションfのパケットデータを第2の処理装置20に転送していないので、該パケットデータf1は、第1の処理装置10の待ち行列(キュー)Q1に格納される。
【0037】
次に受信されるパケットデータe3は、高負荷の解除後であっても、そのセッションeのパケットデータe1,e2を第2の処理装置20に転送済みであるのでので、該パケットデータe3は、第2の処理装置20の待ち行列(キュー)Q2に格納される。
【0038】
前述したパケットキャプチャ処理方法は、第1の処理装置10が受信したパケットデータを分散処理のためにそのままの状態で代行処理用の第2の処理装置20へ転送するものであった。パケットデータが転送される第2の処理装置20では、パケットを受信すると該パケットをオペレーティングシステム(OS)に渡す。オペレーティングシステム(OS)は、該パケットの種別を識別して各種別に対応したアプリケーションソフトウェアを起動し、該受信パケットを該アプリケーションソフトウェア処理する。
【0039】
そのため、上述の分散処理のパケットデータをそのまま代行処理用の第2の処理装置20へ転送する手法では、パケット毎の転送処理、及びパケット毎のオペレーティングシステム(OS)起動等によるオーバーヘッド処理の負荷が掛かり、第1及び第2の処理装置10,20での処理負荷が大きくなってしまう。
【0040】
そこで上述のセッション単位に分散したパケットデータのうち、分析や測定に利用されるデータ部分のみを抽出し、分析や測定に不要なデータを廃棄し、該分析や測定に利用されるデータ部分のみを結合して転送パケットの最適化を行う。こうすることにより、パケット毎の転送処理やパケット毎のオペレーティングシステム(OS)起動等のオーバーヘッド処理の負荷を軽減することが可能となる。
【0041】
転送パケットの最適化として、具体的には、例えば、セッション単位に分散した各パケットデータのペイロード部のデータを廃棄し、各パケットデータのヘッダ部のデータを結合する。該結合したデータをロングパケットに変換して、代行処理用の第2の処理装置20に転送する。
【0042】
こうすることにより、ヘッダ情報などのオーバーヘッドとなる部分のデータ比率が高いロングパケットを使用して転送効率の向上を図ることができ、第1の処理装置10では、全てのパケットを処理するより、分散処理により処理負荷を軽減することができる。
【0043】
図3に転送パケットの最適化の具体例を示す。図3の(a)は、第1の処理装置10から第2の処理装置20へ転送するパケットデータの一例を示している。図3の(a)に示すように、パケットデータd1,e1,d2,e2,e3を転送するものとする。
【0044】
第1の処理装置10は、それらの各パケットデータのうち、ペイロード部3−2のデータを削除し、ヘッダ部3−1のみのデータを図3の(b)に示すように記憶部3−3に格納する。第1の処理装置10は、記憶部3−3に格納したヘッダ部のみのデータを結合してロングパケットに変換する。
【0045】
図3の(b)は、第2の処理装置20へ転送する各セッションのパケットデータを混在させてロングパケットに変換する実施例を示した。これに対して、図3の(c)に示すように、第2の処理装置20へ転送する各セッションのパケットデータを、セッション単位で分別し、セッション単位で振り分けて記憶部に格納する構成とすることができる。
【0046】
すなわち、図3の(c)に示すように、セッションdのデータパケットd1,d2のみを第1の記憶部3−4に格納し、セッションeのデータパケットe1,e2,e3のみを第2の記憶部3−5に格納する。そして、第1の記憶部3−4に格納されたセッションdのデータパケットを結合してロングパケットに変換し、第2の記憶部3−5に格納されたセッションeのデータパケットを結合してロングパケットに変換する。こうすることにより、第2の処理装置20では、受信したロングパケットがセッション対応のものとなり、セッション単位での分析等の処理を効率良く行うことが可能となる。
【0047】
図4に第1、第2及び第3の処理装置の機能ブロックの構成例を示す。第1の処理装置10は、受信制御部(キャプチャエンジン)11、セッション管理部12、流量監視部13、セッション分散部14、パケット分析部15、分析結果編集部16、送信制御部17、パケット最適化部18を備える。
【0048】
受信制御部(キャプチャエンジン)11は、ネットワークを流れるパケットデータの採取を制御する。セッション管理部12は、受信パケットデータの送信元IPアドレス及び宛て先IPアドレスを基にセッションを識別し、受信パケットデータをセッション単位に管理する。
【0049】
流量監視部13は、パケットデータの流量を監視し、予め設定された閾値を基に高負荷発生を判定し、その判定結果をセッション管理部12に通知する。高負荷発生の判定は、処理装置の処理能力に対して予め設定した閾値(例えば、処理能力の限界値の90%)、又は予め設定した転送パケット量(PPS)の閾値を超えた場合に、高負荷発生と判定する構成とすることができる。
【0050】
セッション分散部14は、セッション管理部12の管理のもとに、受信パケットデータをセッション単位で自装置のパケット分析部15に送出し、又は他の第2若しくは第3の処理装置に転送して、分析処理を分散化させる。パケット分析部15は、受信パケットデータをセッション単位で分析処理する。分析結果編集部16は、パケット分析部15で分析された分析結果を編集し、送信制御部17に渡す。
【0051】
パケット最適化部18は、セッション単位で分散した各パケットデータのペイロード部のデータを廃棄し、各パケットデータのヘッダ部のデータを結合し、結合したデータをロングパケットに変換し、送信制御部17に渡す。
【0052】
送信制御部17は、分析結果編集部16で編集された分析結果を、第3の処理装置30の品質データ集約統計処理部38へ送信する。また、送信制御部17は、セッション分散部14で分散化され、パケット最適化部18でロングパケットに変換されたパケットデータを、転送先の第2の処理装置20又は第3の処理装置30へ送信する。
【0053】
第2の処理装置20は、第1の処理装置10で受信されたパケットデータを分散処理する機能ブロックとして、受信制御部(キャプチャエンジン)21、パケット分析部25、分析結果編集部26、及び送信制御部27を備える。
【0054】
第2の処理装置20では、第1の処理装置10の送信制御部18から送信されたパケットデータを、受信制御部(キャプチャエンジン)21で受信し、パケット分析部25によりセッション単位で受信パケットデータの分析処理を行う。パケット分析部25の分析結果は、分析結果編集部26により編集され、送信制御部27に渡される。送信制御部27は、分析結果編集部26で編集された分析結果を、第3の処理装置30の品質データ集約統計処理部38へ送信する。
【0055】
なお、上述したように、第1の処理装置10で受信されたパケットデータを分散処理するための機能ブロックを、独立した第2の処理装置20内に設ける構成のほかに、分析結果を集約し統計処理を行う第3の処理装置30内にそれらの機能ブロック設ける構成とすることができる。
【0056】
第3の処理装置30でパケットデータの分析の分散処理を行う場合、第3の処理装置30内には、受信制御部(キャプチャエンジン)31、パケット分析部35、分析結果編集部36、及び送信制御部37を備える。それらの機能は、第2の処理装置20における受信制御部(キャプチャエンジン)21、パケット分析部25、分析結果編集部26、及び送信制御部27と同様であるので、重複した説明は省略する。
【符号の説明】
【0057】
10 第1の処理装置
20 代行処理用の第2の処理装置
30 集約し統計処理を行う第3の処理装置
10’,10” 他の処理装置

【特許請求の範囲】
【請求項1】
ネットワーク上のパケットデータを受信し分析するパケットキャプチャ処理方法において、
自装置の処理能力が予め定めた閾値を超えるパケットデータが受信されたか否かを判定するステップと、
自装置の処理能力が予め定めた閾値を超えるパケットデータが受信されたとき、受信パケットデータが、既に自装置で処理しているセッションの後続のパケットデータか否かを判定し、自装置で処理しているセッションの後続のパケットデータである場合、該受信パケットデータを自装置で処理し、自装置で処理しているセッションのパケットデータでない場合、該受信パケットデータを、セッション対応に、他のパケットキャプチャ処理装置へ転送するステップと、
を含むことを特徴とするパケットキャプチャ処理方法。
【請求項2】
前記他のパケットキャプチャ処理装置へ転送する受信パケットデータに対して、ペイロード部を廃棄し、複数の受信パケットデータのヘッダ部を結合したロングパケットを編集し、該ロングパケットを前記他のパケットキャプチャ処理装置へ転送するステップを含むことを特徴とする請求項1に記載のパケットキャプチャ処理方法。
【請求項3】
前記ロングパケットを編集する際に、前記受信パケットデータのヘッダ部をセッション単位に結合したロングパケットを編集するステップを含むことを特徴とする請求項2に記載のパケットキャプチャ処理方法。
【請求項4】
ネットワーク上のパケットデータを受信し分析するパケットキャプチャ処理装置において、
自装置の処理能力が予め定めた閾値を超えるパケットデータが受信されたか否かを判定する流量監視手段と、
自装置の処理能力が予め定めた閾値を超えるパケットデータが受信されたとき、受信パケットデータが、既に自装置で処理しているセッションの後続のパケットデータか否かを判定し、既に自装置で処理しているセッションの後続のパケットデータである場合、該受信パケットデータを自装置で処理し、自装置で処理しているセッションのパケットデータでない場合、該受信パケットデータを、セッション対応に、他のパケットキャプチャ処理装置へ転送するセッション分散手段と、
を備えたことを特徴とするパケットキャプチャ処理装置。
【請求項5】
前記他のパケットキャプチャ処理装置へ転送する受信データに対して、ペイロード部を廃棄し、複数の受信パケットデータのヘッダ部を結合したロングパケットを編集するパケット最適化手段を備えたことを特徴とする請求項4に記載のパケットキャプチャ処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate