IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧

<>
  • 特許-パケットキャプチャ装置および方法 図1
  • 特許-パケットキャプチャ装置および方法 図2
  • 特許-パケットキャプチャ装置および方法 図3
  • 特許-パケットキャプチャ装置および方法 図4
  • 特許-パケットキャプチャ装置および方法 図5
  • 特許-パケットキャプチャ装置および方法 図6
  • 特許-パケットキャプチャ装置および方法 図7
  • 特許-パケットキャプチャ装置および方法 図8
  • 特許-パケットキャプチャ装置および方法 図9
  • 特許-パケットキャプチャ装置および方法 図10
  • 特許-パケットキャプチャ装置および方法 図11
  • 特許-パケットキャプチャ装置および方法 図12
  • 特許-パケットキャプチャ装置および方法 図13
  • 特許-パケットキャプチャ装置および方法 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】パケットキャプチャ装置および方法
(51)【国際特許分類】
   H04L 43/18 20220101AFI20241203BHJP
【FI】
H04L43/18
【請求項の数】 8
(21)【出願番号】P 2023547952
(86)(22)【出願日】2021-09-14
(86)【国際出願番号】 JP2021033670
(87)【国際公開番号】W WO2023042245
(87)【国際公開日】2023-03-23
【審査請求日】2024-02-21
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100098394
【弁理士】
【氏名又は名称】山川 茂樹
(74)【代理人】
【識別番号】100153006
【弁理士】
【氏名又は名称】小池 勇三
(74)【代理人】
【識別番号】100064621
【弁理士】
【氏名又は名称】山川 政樹
(74)【代理人】
【識別番号】100121669
【弁理士】
【氏名又は名称】本山 泰
(72)【発明者】
【氏名】鵜澤 寛之
(72)【発明者】
【氏名】八田 彩希
(72)【発明者】
【氏名】吉田 周平
(72)【発明者】
【氏名】関原 悠介
(72)【発明者】
【氏名】大輝 晶子
(72)【発明者】
【氏名】池田 奈美子
【審査官】佐賀野 秀一
(56)【参考文献】
【文献】特開2018-088716(JP,A)
【文献】米国特許出願公開第2016/0127276(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 43/18
(57)【特許請求の範囲】
【請求項1】
監視対象のネットワークを流れるパケットのうち、外部からのキャプチャ開始指示によって第1のフローテーブルに登録された対象フローの条件と合致するパケットを蓄積してキャプチャファイルに変換するように構成された第1のキャプチャ機能部と、
前記キャプチャ開始指示の到来から前記第1のフローテーブルに前記対象フローの条件が登録されるまでに要する期間内に前記ネットワークから受信するパケットを蓄積してキャプチャファイルに変換するように構成された第2のキャプチャ機能部とを備えることを特徴とするパケットキャプチャ装置。
【請求項2】
請求項1記載のパケットキャプチャ装置において、
前記第1のキャプチャ機能部は、
前記対象フローの条件を記憶するように構成された前記第1のフローテーブルと、
前記ネットワークから受信したパケットのうち、前記第1のフローテーブルに登録された条件と合致するパケットのみを通過させるように構成された第1のフィルタ部と、
前記第1のフィルタ部を通過したパケットを蓄積するように構成された第1のバッファ部と、
前記第1のバッファ部に蓄積されたパケットをキャプチャファイルに変換するように構成された第1のキャプチャファイル生成部と、
前記キャプチャ開始指示によって指定された対象フローの条件を前記第1のフローテーブルに登録するように構成されたキャプチャ制御部とを備え、
前記第2のキャプチャ機能部は、
前記ネットワークから受信したパケットを蓄積するように構成されたリングバッファ構造の第2のバッファ部と、
前記第2のバッファ部に蓄積されたパケットをキャプチャファイルに変換するように構成された第2のキャプチャファイル生成部とを備え、
前記キャプチャ制御部は、前記第1のフローテーブルへの登録完了時に前記第2のバッファ部に対してパケットの蓄積停止を指示し、
前記第2のキャプチャファイル生成部は、前記第2のバッファ部に蓄積されたパケットから生成したキャプチャファイルの出力完了時に前記第2のバッファ部に対してパケットの蓄積再開を指示することを特徴とするパケットキャプチャ装置。
【請求項3】
請求項1記載のパケットキャプチャ装置において、
前記第2のキャプチャ機能部は、蓄積したパケットのうち、前記対象フローの条件と合致するパケットのみを選択的にキャプチャファイルに変換することを特徴とするパケットキャプチャ装置。
【請求項4】
請求項3記載のパケットキャプチャ装置において、
前記第1のキャプチャ機能部は、
前記対象フローの条件を記憶するように構成された前記第1のフローテーブルと、
前記ネットワークから受信したパケットのうち、前記第1のフローテーブルに登録された条件と合致するパケットのみを通過させるように構成された第1のフィルタ部と、
前記第1のフィルタ部を通過したパケットを蓄積するように構成された第1のバッファ部と、
前記第1のバッファ部に蓄積されたパケットをキャプチャファイルに変換するように構成された第1のキャプチャファイル生成部と、
前記キャプチャ開始指示によって指定された対象フローの条件を前記第1のフローテーブルと前記第2のキャプチャ機能部の第2のフローテーブルとに登録するように構成されたキャプチャ制御部とを備え、
前記第2のキャプチャ機能部は、
前記対象フローの条件を記憶するように構成された前記第2のフローテーブルと、
前記ネットワークから受信したパケットを蓄積するように構成されたリングバッファ構造の第2のバッファ部と、
前記第2のバッファ部に蓄積されたパケットのうち、前記第2のフローテーブルに登録された条件と合致するパケットのみを選択的にキャプチャファイルに変換するように構成された第2のキャプチャファイル生成部とを備えることを特徴とするパケットキャプチャ装置。
【請求項5】
請求項1記載のパケットキャプチャ装置において、
前記第1のキャプチャ機能部は、前記ネットワークからパケットを受信する度に前記第1のフローテーブルに登録された条件とパケットとの照合を行い、照合結果を前記第2のキャプチャ機能部に出力し、
前記第2のキャプチャ機能部は、前記キャプチャ開始指示の到来から前記第1のフローテーブルに前記対象フローの条件が登録されるまでに要する期間内に前記ネットワークから受信するパケットのうち、前記第1のフローテーブルに登録された条件と合致しないという前記照合結果が得られたパケットのみを蓄積してキャプチャファイルに変換することを特徴とするパケットキャプチャ装置。
【請求項6】
請求項5記載のパケットキャプチャ装置において、
前記第1のキャプチャ機能部は、
前記対象フローの条件を記憶するように構成された前記第1のフローテーブルと、
前記ネットワークから受信したパケットのうち、前記第1のフローテーブルに登録された条件と合致するパケットのみを通過させると同時に、前記照合結果を前記第2のキャプチャ機能部に出力するように構成された第1のフィルタ部と、
前記第1のフィルタ部を通過したパケットを蓄積するように構成された第1のバッファ部と、
前記第1のバッファ部に蓄積されたパケットをキャプチャファイルに変換するように構成された第1のキャプチャファイル生成部と、
前記キャプチャ開始指示によって指定された対象フローの条件を前記第1のフローテーブルに登録するように構成されたキャプチャ制御部とを備え、
前記第2のキャプチャ機能部は、
前記ネットワークから受信したパケットのうち、前記第1のフローテーブルに登録された条件と合致しないという前記照合結果が得られたパケットのみを通過させるように構成された第2のフィルタ部と、
前記第2のフィルタ部を通過したパケットを蓄積するように構成されたリングバッファ構造の第2のバッファ部と、
前記第2のバッファ部に蓄積されたパケットをキャプチャファイルに変換するように構成された第2のキャプチャファイル生成部とを備えることを特徴とするパケットキャプチャ装置。
【請求項7】
請求項1乃至6のいずれか1項に記載のパケットキャプチャ装置において、
前記第1のキャプチャ機能部と前記第2のキャプチャ機能部の各々が出力するキャプチャファイルを記憶するための記憶部と、
前記キャプチャファイルを前記記憶部に書き込む際に、前記第1のキャプチャ機能部が生成したキャプチャファイルの書き込みを優先するように制御するように構成された調停部とをさらに備えることを特徴とするパケットキャプチャ装置。
【請求項8】
監視対象のネットワークを流れるパケットのうち、外部からのキャプチャ開始指示によってフローテーブルに登録された対象フローの条件と合致するパケットを第1のバッファ部に蓄積する第1のステップと、
前記第1のバッファ部に蓄積されたパケットをキャプチャファイルに変換する第2のステップと、
前記キャプチャ開始指示の到来から前記フローテーブルに前記対象フローの条件が登録されるまでに要する期間内に前記ネットワークから受信するパケットを第2のバッファ部に蓄積する第3のステップと、
前記第2のバッファ部に蓄積されたパケットをキャプチャファイルに変換する第4のステップとを含むことを特徴とするパケットキャプチャ方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、監視対象のネットワークを流れるパケットを採取するパケットキャプチャ装置および方法に関するものである。
【背景技術】
【0002】
NFV(Network Functions Virtualization)/SDN(Software Defined Networking)における仮想化技術の進展に伴い、VM(Virtual Machine)等を用いた様々なサービスが提供されている。パケットキャプチャ装置は、特定フローのパケット、例えば送信元MAC(Media Access Control)アドレスと宛先MACアドレスとIP(Internet Protocol)アドレス等を組み合わせたルールが同一のパケットの集合体を選択的に取り込むことができる。このようなパケットキャプチャ装置は、上記のサービス提供時における品質の解析、障害の解析に必須な装置の1つである。
【0003】
図14に、特許文献1に開示されたパケットキャプチャ装置の構成を示す。パケットキャプチャ装置200は、監視対象のネットワーク(NW)100から、ミラーリングパケットを受信する。フィルタ部201は、キャプチャ対象を選別する。フィルタ部201における選別とは、キャプチャ対象として指定されたフローと合致したパケットを選別する処理である。
【0004】
パケットを選別する目的のために、フィルタ部201は、指定されたキャプチャ対象フローの条件が登録されたフローテーブル202を備える。フィルタ部201は、パケットが入力されると、フローテーブル202に記録されたキャプチャ対象フローの条件とパケットとの照合を行い、条件と合致したパケットを通過させ、条件と合致しないパケットを廃棄する。
【0005】
バッファ部203は、フィルタ部201を通過したパケットを蓄積する。キャプチャファイル生成部204は、バッファ部203に蓄積されたパケットデータが所定データ量に到達するか、もしくは所定時間が経過すると、パケットデータをpcap(packet capture)形式のキャプチャファイルに変換する。キャプチャファイルは、記憶部205に保存される。
【0006】
キャプチャ制御部206は、外部からのキャプチャ対象フローの指定に基づいて対象フローの条件をフローテーブル202に追加したりフローテーブル202から削除したりする。
【0007】
特定フローの障害解析を目的としたパケットキャプチャにおいては、障害検出直後からのパケットの取り込みが必要となる。しかしながら、従来のパケットキャプチャ装置200においては、障害発生を契機として外部からキャプチャ開始指示が通知されたとしても、当該通知の受信処理と通知に基づく対象フローの条件登録処理とが完了してからでなければパケットの取り込みが開始されない。このため、パケット取り込み開始までにタイムラグが発生し、障害発生直後のパケットを取り込むことが出来ず、障害解析が困難になるという課題があった。
【先行技術文献】
【特許文献】
【0008】
【文献】特許第4955722号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明は、上記課題を解決するためになされたもので、外部からキャプチャ開始指示が発出されたときに従来のキャプチャ機能のタイムラグ中に流入するパケットを取りこぼすことなく取り込むことが可能なパケットキャプチャ装置および方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明のパケットキャプチャ装置は、監視対象のネットワークを流れるパケットのうち、外部からのキャプチャ開始指示によって第1のフローテーブルに登録された対象フローの条件と合致するパケットを蓄積してキャプチャファイルに変換するように構成された第1のキャプチャ機能部と、前記キャプチャ開始指示の到来から前記第1のフローテーブルに前記対象フローの条件が登録されるまでに要する期間内に前記ネットワークから受信するパケットを蓄積してキャプチャファイルに変換するように構成された第2のキャプチャ機能部とを備えることを特徴とするものである。
【0011】
また、本発明のパケットキャプチャ装置の1構成例において、前記第1のキャプチャ機能部は、前記対象フローの条件を記憶するように構成された前記第1のフローテーブルと、前記ネットワークから受信したパケットのうち、前記第1のフローテーブルに登録された条件と合致するパケットのみを通過させるように構成された第1のフィルタ部と、前記第1のフィルタ部を通過したパケットを蓄積するように構成された第1のバッファ部と、前記第1のバッファ部に蓄積されたパケットをキャプチャファイルに変換するように構成された第1のキャプチャファイル生成部と、前記キャプチャ開始指示によって指定された対象フローの条件を前記第1のフローテーブルに登録するように構成されたキャプチャ制御部とを備え、前記第2のキャプチャ機能部は、前記ネットワークから受信したパケットを蓄積するように構成されたリングバッファ構造の第2のバッファ部と、前記第2のバッファ部に蓄積されたパケットをキャプチャファイルに変換するように構成された第2のキャプチャファイル生成部とを備え、前記キャプチャ制御部は、前記第1のフローテーブルへの登録完了時に前記第2のバッファ部に対してパケットの蓄積停止を指示し、前記第2のキャプチャファイル生成部は、前記第2のバッファ部に蓄積されたパケットから生成したキャプチャファイルの出力完了時に前記第2のバッファ部に対してパケットの蓄積再開を指示することを特徴とするものである。
【0012】
また、本発明のパケットキャプチャ装置の1構成例において、前記第2のキャプチャ機能部は、蓄積したパケットのうち、前記対象フローの条件と合致するパケットのみを選択的にキャプチャファイルに変換することを特徴とするものである。
【0013】
また、本発明のパケットキャプチャ装置の1構成例において、前記第1のキャプチャ機能部は、前記対象フローの条件を記憶するように構成された前記第1のフローテーブルと、前記ネットワークから受信したパケットのうち、前記第1のフローテーブルに登録された条件と合致するパケットのみを通過させるように構成された第1のフィルタ部と、前記第1のフィルタ部を通過したパケットを蓄積するように構成された第1のバッファ部と、前記第1のバッファ部に蓄積されたパケットをキャプチャファイルに変換するように構成された第1のキャプチャファイル生成部と、前記キャプチャ開始指示によって指定された対象フローの条件を前記第1のフローテーブルと前記第2のキャプチャ機能部の第2のフローテーブルとに登録するように構成されたキャプチャ制御部とを備え、前記第2のキャプチャ機能部は、前記対象フローの条件を記憶するように構成された前記第2のフローテーブルと、前記ネットワークから受信したパケットを蓄積するように構成されたリングバッファ構造の第2のバッファ部と、前記第2のバッファ部に蓄積されたパケットのうち、前記第2のフローテーブルに登録された条件と合致するパケットのみを選択的にキャプチャファイルに変換するように構成された第2のキャプチャファイル生成部とを備えることを特徴とするものである。
【0014】
また、本発明のパケットキャプチャ装置の1構成例において、前記第1のキャプチャ機能部は、前記ネットワークからパケットを受信する度に前記第1のフローテーブルに登録された条件とパケットとの照合を行い、照合結果を前記第2のキャプチャ機能部に出力し、前記第2のキャプチャ機能部は、前記キャプチャ開始指示の到来から前記第1のフローテーブルに前記対象フローの条件が登録されるまでに要する期間内に前記ネットワークから受信するパケットのうち、前記第1のフローテーブルに登録された条件と合致しないという前記照合結果が得られたパケットのみを蓄積してキャプチャファイルに変換することを特徴とするものである。
【0015】
また、本発明のパケットキャプチャ装置の1構成例において、前記第1のキャプチャ機能部は、前記対象フローの条件を記憶するように構成された前記第1のフローテーブルと、前記ネットワークから受信したパケットのうち、前記第1のフローテーブルに登録された条件と合致するパケットのみを通過させると同時に、前記照合結果を前記第2のキャプチャ機能部に出力するように構成された第1のフィルタ部と、前記第1のフィルタ部を通過したパケットを蓄積するように構成された第1のバッファ部と、前記第1のバッファ部に蓄積されたパケットをキャプチャファイルに変換するように構成された第1のキャプチャファイル生成部と、前記キャプチャ開始指示によって指定された対象フローの条件を前記第1のフローテーブルに登録するように構成されたキャプチャ制御部とを備え、前記第2のキャプチャ機能部は、前記ネットワークから受信したパケットのうち、前記第1のフローテーブルに登録された条件と合致しないという前記照合結果が得られたパケットのみを通過させるように構成された第2のフィルタ部と、前記第2のフィルタ部を通過したパケットを蓄積するように構成されたリングバッファ構造の第2のバッファ部と、前記第2のバッファ部に蓄積されたパケットをキャプチャファイルに変換するように構成された第2のキャプチャファイル生成部とを備えることを特徴とするものである。
【0016】
また、本発明のパケットキャプチャ装置の1構成例は、前記第1のキャプチャ機能部と前記第2のキャプチャ機能部の各々が出力するキャプチャファイルを記憶するための記憶部と、前記キャプチャファイルを前記記憶部に書き込む際に、前記第1のキャプチャ機能部が生成したキャプチャファイルの書き込みを優先するように制御するように構成された調停部とをさらに備えることを特徴とするものである。
【0017】
また、本発明のパケットキャプチャ方法は、監視対象のネットワークを流れるパケットのうち、外部からのキャプチャ開始指示によってフローテーブルに登録された対象フローの条件と合致するパケットを第1のバッファ部に蓄積する第1のステップと、前記第1のバッファ部に蓄積されたパケットをキャプチャファイルに変換する第2のステップと、前記キャプチャ開始指示の到来から前記フローテーブルに前記対象フローの条件が登録されるまでに要する期間内に前記ネットワークから受信するパケットを第2のバッファ部に蓄積する第3のステップと、前記第2のバッファ部に蓄積されたパケットをキャプチャファイルに変換する第4のステップとを含むことを特徴とするものである。
【発明の効果】
【0018】
本発明によれば、第1のキャプチャ機能部に加えて、キャプチャ開始指示の到来から第1のフローテーブルに対象フローの条件が登録されるまでに要する期間内にネットワークから受信するパケットを蓄積してキャプチャファイルに変換する第2のキャプチャ機能部を設ける。第2のキャプチャ機能部を設けたことにより、本発明では、キャプチャ開始指示の前から予めパケットを第2のキャプチャ機能部で蓄積しているので、例えばネットワークの障害発生の検出等を契機として、外部からキャプチャ開始指示が発出されたときに、第1のキャプチャ機能部のタイムラグ中に流入するパケットを取りこぼすことなく取り込むことが可能となる。
【図面の簡単な説明】
【0019】
図1図1は、本発明の第1の実施例に係るパケットキャプチャ装置の構成を示すブロック図である。
図2図2は、本発明の第1の実施例に係る短期キャプチャ機能部の動作を説明するフローチャートである。
図3図3は、本発明の第1の実施例に係る通常キャプチャ機能部のキャプチャ制御部の動作を説明するフローチャートである。
図4図4は、本発明の第1の実施例に係る通常キャプチャ機能部のフィルタ部とバッファ部とキャプチャファイル生成部の動作を説明するフローチャートである。
図5図5は、本発明の第1の実施例に係る調停部の動作を説明するフローチャートである。
図6図6は、本発明の第1の実施例に係るパケットキャプチャ装置の動作例を示す図である。
図7図7は、本発明の第2の実施例に係るパケットキャプチャ装置の構成を示すブロック図である。
図8図8は、本発明の第2の実施例に係る短期キャプチャ機能部の動作を説明するフローチャートである。
図9図9は、本発明の第2の実施例に係る通常キャプチャ機能部のキャプチャ制御部の動作を説明するフローチャートである。
図10図10は、本発明の第3の実施例に係るパケットキャプチャ装置の構成を示すブロック図である。
図11図11は、本発明の第3の実施例に係る通常キャプチャ機能部のフィルタ部とバッファ部とキャプチャファイル生成部の動作を説明するフローチャートである。
図12図12は、本発明の第3の実施例に係る短期キャプチャ機能部の反転フィルタ部の動作を説明するフローチャートである。
図13図13は、本発明の第1~第3の実施例に係るパケットキャプチャ装置を実現するコンピュータの構成例を示すブロック図である。
図14図14は、従来のパケットキャプチャ装置の構成を示すブロック図である。
【発明を実施するための形態】
【0020】
[第1の実施例]
以下、本発明の実施例について図面を参照して説明する。図1は本発明の第1の実施例に係るパケットキャプチャ装置の構成を示すブロック図である。
本実施例のパケットキャプチャ装置1は、外部からのキャプチャ開始指示に基づいて特定フローの条件と合致するパケットを取り込むための通常キャプチャ機能部2(第1のキャプチャ機能部)に加えて、通常キャプチャ機能部2が取り込み開始するまでのタイムラグ期間中に入力されるパケットを取り込むための短期キャプチャ機能部3(第2のキャプチャ機能部)を新たに備える点が従来と異なる。
【0021】
さらに、パケットキャプチャ装置1は、通常キャプチャ機能部2と短期キャプチャ機能部3の各々が出力するキャプチャファイルを記憶するための記憶部4と、キャプチャファイルを記憶部4に書き込む際に、通常キャプチャ機能部2が生成したキャプチャファイルの書き込みを優先するように制御する調停部5とを備えている。
【0022】
通常キャプチャ機能部2は、キャプチャ対象フローの条件を記憶するフローテーブル20と、監視対象のネットワーク100から受信したパケットのうち、フローテーブル20に登録された条件と合致するパケットのみを通過させるフィルタ部21(第1のフィルタ部)と、フィルタ部21を通過したパケットを蓄積するバッファ部22(第1のバッファ部)と、バッファ部22に蓄積されたパケットをキャプチャファイルに変換するキャプチャファイル生成部23(第1のキャプチャファイル生成部)と、外部からのキャプチャ開始指示によって指定されたキャプチャ対象フローの条件をフローテーブル20に登録するキャプチャ制御部24とを備えている。
【0023】
短期キャプチャ機能部3は、ネットワーク100から受信したパケットを蓄積するリングバッファ部30(第2のバッファ部)と、リングバッファ部30に蓄積されたパケットをキャプチャファイルに変換する短期キャプチャファイル生成部31(第2のキャプチャファイル生成部)とを備えている。
【0024】
図2は短期キャプチャ機能部3の動作を説明するフローチャート、図3は通常キャプチャ機能部2のキャプチャ制御部24の動作を説明するフローチャート、図4は通常キャプチャ機能部2のフィルタ部21とバッファ部22とキャプチャファイル生成部23の動作を説明するフローチャートである。
【0025】
短期キャプチャ機能部3は、外部から通知されるキャプチャ対象フローを予め知ることはできない。このため、短期キャプチャ機能部3は、通常キャプチャ機能部2のキャプチャ制御部24から蓄積停止の指示があるまで、全てのフローのパケットを取り込む。
【0026】
具体的には、短期キャプチャ機能部3は、リングバッファ部30を有する。リングバッファ部30は、ネットワーク100を流れるパケットをコピーしたミラーリングパケットを蓄積する(図2ステップS100)。
【0027】
ミラーリングパケットは、ネットワーク100上の機器のミラーリング機能によって生成される。リングバッファ部30が満杯になると、蓄積された最も古いパケットが最新のパケットで上書きされる。このようなリングバッファ部30によるパケットの蓄積が継続的に行われる。
【0028】
なお、本実施例では、通常キャプチャ機能部2が取り込み開始するまでのタイムラグ期間中に入力されるパケットを短期キャプチャ機能部3で取り込む。したがって、リングバッファ部30は、通常キャプチャ機能部2のタイムラグよりも長い時間分のパケットを蓄積可能な容量を備えている必要がある。
【0029】
一方、通常キャプチャ機能部2のキャプチャ制御部24は、外部から特定フローのキャプチャ開始指示を受信すると(図3ステップS200においてYES)、キャプチャ対象フローの条件をフローテーブル20に登録する(図3ステップS201)。キャプチャ対象フローの条件は、例えば送信元MACアドレスと宛先MACアドレスとIPアドレス等の情報を含む。これら対象フローの条件は、外部から受信したキャプチャ開始指示に付加されている。
【0030】
フローテーブル20への登録完了後、キャプチャ制御部24は、短期キャプチャ機能部3のリングバッファ部30に対して停止指示信号を出力し(図3ステップS202)、短期キャプチャ機能部3の短期キャプチャファイル生成部31と通常キャプチャ機能部2のキャプチャファイル生成部23とに対してファイル生成指示信号を出力する(図3ステップS203)。
【0031】
短期キャプチャ機能部3のリングバッファ部30は、キャプチャ制御部24から停止指示信号が入力されたことにより(図2ステップS101においてYES)、パケットの蓄積を停止する(図2ステップS102)。
【0032】
短期キャプチャ機能部3の短期キャプチャファイル生成部31は、キャプチャ制御部24からファイル生成指示信号が入力されたことにより(図2ステップS103においてYES)、リングバッファ部30に蓄積されたパケットを取り出してpcap形式のキャプチャファイルに変換する(図2ステップS104)。
【0033】
短期キャプチャファイル生成部31は、生成したキャプチャファイルを調停部5に転送する(図2ステップS105)。短期キャプチャファイル生成部31は、キャプチャファイルの転送完了後、リングバッファ部30部に対してパケット蓄積の再開指示信号を出力する(図2ステップS106)。
【0034】
リングバッファ部30は、短期キャプチャファイル生成部31から再開指示信号が入力されたことにより、パケットの蓄積を再開する(図2ステップS107)。
【0035】
一方、通常キャプチャ機能部2のフィルタ部21は、ネットワーク100からミラーリングパケットを受信する度に、フローテーブル20に登録されたキャプチャ対象フローの条件とパケットとの照合を行い、条件と合致したパケットを通過させ、条件と合致しないパケットを廃棄する(図4ステップS300)。
【0036】
通常キャプチャ機能部2のバッファ部22は、フィルタ部21を通過したパケットを蓄積する(図4ステップS301)。バッファ部22の代表例としては、FIFO(First In, First Out)バッファがある。
【0037】
通常キャプチャ機能部2のキャプチャファイル生成部23は、キャプチャ制御部24からファイル生成指示信号が入力されると(図4ステップS302においてYES)、ファイル生成条件が満たされたときに(図4ステップS303)、バッファ部22に蓄積されたパケットを取り出してpcap形式のキャプチャファイルに変換する(図4ステップS304)。
【0038】
ファイル生成条件は、バッファ部22に蓄積されたパケットが所定量に到達することと、所定時間が経過することのいずれかである。これらのいずれをファイル生成条件とするかは予め設定されている。
こうして、バッファ部22に蓄積されたパケットが所定量に到達する度に、あるいは所定時間が経過する度に、キャプチャファイル生成部23によってキャプチャファイルが生成される。
【0039】
キャプチャファイル生成部23は、生成したキャプチャファイルを調停部5に転送する(図4ステップS305)。なお、キャプチャ制御部24からファイル生成指示信号が入力された後は、後述するファイル停止指示信号が入力されるまで、ステップS302は常に判定YESとなる。
【0040】
次に、通常キャプチャ機能部2のキャプチャ制御部24は、外部から特定フローのキャプチャ停止指示を受信すると(図3ステップS204においてYES)、キャプチャ停止が指定されたキャプチャ対象フローの条件をフローテーブル20から削除する(図3ステップS205)。
【0041】
フローテーブル20の削除完了後、キャプチャ制御部24は、通常キャプチャ機能部2のキャプチャファイル生成部23に対してファイル停止指示信号を出力する(図3ステップS206)。
【0042】
通常キャプチャ機能部2のキャプチャファイル生成部23は、キャプチャ制御部24からファイル停止指示信号が入力されると(図4ステップS306においてYES)、キャプチャファイル生成を停止する(図4ステップS307)。
【0043】
次に、調停部5の動作を図5を用いて説明する。調停部5は、通常キャプチャ機能部2から転送されたキャプチャファイルと短期キャプチャ機能部3から転送されたキャプチャファイルとを記憶部4に格納する。ここで、調停部5は、通常キャプチャ機能部2から転送されたキャプチャファイルがある場合には(図5ステップS400においてYES)、通常キャプチャ機能部2から転送されたキャプチャファイルの記憶部4への格納を優先する(図5ステップS401)。
【0044】
また、調停部5は、通常キャプチャ機能部2からのキャプチャファイル転送がなく、短期キャプチャ機能部3から転送されたキャプチャファイルがある場合には(図5ステップS402においてYES)、短期キャプチャ機能部3から転送されたキャプチャファイルを記憶部4に格納する(図5ステップS403)。
【0045】
図6は本実施例のパケットキャプチャ装置1の動作例を示す図である。ここでは、フローテーブル20に登録された対象フローの条件に合致するフロー#Aのパケットをパケットキャプチャ装置1に取り込む例で説明する。
【0046】
上記のとおり、短期キャプチャ機能部3のリングバッファ部30は、全てのフローのパケットを蓄積する。図6の時間幅TWは、リングバッファ部30がパケットを蓄積可能な期間を示しており、リングバッファ部30の容量に対応する。
【0047】
時刻t1において外部から特定フローのキャプチャ開始指示が入力されると、タイムラグが経過した後の時刻t2においてリングバッファ部30によるパケット蓄積が停止する。タイムラグは、キャプチャ開始指示が到来してからフローテーブル20にキャプチャ対象フローの条件が登録されるまでに要する時間である。
【0048】
上記のとおり、フローテーブル20にキャプチャ対象フローの条件が登録されると、キャプチャ制御部24からリングバッファ部30に対して停止指示信号が出力され、短期キャプチャファイル生成部31とキャプチャファイル生成部23に対してファイル生成指示信号が出力される。
【0049】
したがって、時刻t2においてリングバッファ部30によるパケットの蓄積が停止し、以後は通常キャプチャ機能部2によって対象フローのパケットが蓄積され、キャプチャファイルが生成される。通常キャプチャ機能部2によるキャプチャファイルは、外部からキャプチャ停止指示があるまで継続的に生成される。
【0050】
一方で、短期キャプチャ機能部3が記憶部4に転送するキャプチャファイルは、通常キャプチャ機能部2が対象フローのパケットを蓄積中の状態においては既に生成が完了した状態である。
【0051】
そこで、調停部5は、通常キャプチャ機能部2によって連続的に生成されるキャプチャファイルの転送を優先し、通常キャプチャ機能部2がキャプチャファイルを転送しない時間帯において、短期キャプチャ機能部3から転送されたキャプチャファイルを記憶部4に格納する。
【0052】
以上のように、本実施例では、キャプチャ開始指示の前から予めパケットを短期キャプチャ機能部3で蓄積しているので、例えばネットワークの障害発生の検出等を契機として、外部からキャプチャ開始指示が発出されたときに、通常キャプチャ機能部2のタイムラグ中に流入するパケットを取りこぼすことなく取り込むことが可能となる。
【0053】
なお、調停部5へのキャプチャファイル転送が完了すると、短期キャプチャファイル生成部31がリングバッファ部30部に対して再開指示信号を出力し、リングバッファ部30がパケットの蓄積を再開する。したがって、次のキャプチャ開始指示が到来する前からパケットの蓄積を再開しているので、次のキャプチャ開始指示が外部から到来したとき、到来直後からのパケットの取り込みが可能となる。
【0054】
[第2の実施例]
次に、本発明の第2の実施例について説明する。図7は本発明の第2の実施例に係るパケットキャプチャ装置の構成を示すブロック図である。本実施例のパケットキャプチャ装置1aは、通常キャプチャ機能部2a(第1のキャプチャ機能部)と、短期キャプチャ機能部3a(第2のキャプチャ機能部)と、調停部5と、記憶部4とを備えている。
【0055】
通常キャプチャ機能部2aは、フローテーブル20と、フィルタ部21と、バッファ部22と、キャプチャファイル生成部23と、外部からのキャプチャ開始指示によって指定されたキャプチャ対象フローの条件をフローテーブル20と短期キャプチャ機能部3aのフローテーブル32とに登録するキャプチャ制御部24aとを備えている。
【0056】
短期キャプチャ機能部3aは、リングバッファ部30と、リングバッファ部30に蓄積されたパケットのうち、キャプチャ対象フローの条件と合致するパケットのみを選択的にキャプチャファイルに変換する短期キャプチャファイル生成部31aと、フローテーブル32とを備えている。
【0057】
本実施例では、短期キャプチャファイル生成部31aが、リングバッファ部30部に蓄積されたパケットの中からキャプチャ対象フローのデータのみを選別してキャプチャファイル化する点が第1の実施例と異なる。
【0058】
図8は短期キャプチャ機能部3aの動作を説明するフローチャート、図9は通常キャプチャ機能部2aのキャプチャ制御部24aの動作を説明するフローチャートである。
短期キャプチャ機能部3aのリングバッファ部30の動作(図8ステップS100~S102,S107)は、第1の実施例と同じである。
【0059】
通常キャプチャ機能部2aのキャプチャ制御部24aは、外部から特定フローのキャプチャ開始指示を受信すると(図9ステップS200においてYES)、キャプチャ対象フローの条件をフローテーブル20と短期キャプチャ機能部3aのフローテーブル32とに登録する(図9ステップS201a)。こうして、フローテーブル20と同じ内容がフローテーブル32に登録される。第1の実施例で説明したとおり、キャプチャ対象フローの条件は、外部から受信したキャプチャ開始指示に付加されている。
【0060】
フローテーブル20,32への登録完了後、キャプチャ制御部24aは、短期キャプチャ機能部3aのリングバッファ部30に対して停止指示信号を出力し(図9ステップS202)、短期キャプチャ機能部3aの短期キャプチャファイル生成部31aと通常キャプチャ機能部2aのキャプチャファイル生成部23とに対してファイル生成指示信号を出力する(図9ステップS203)。
【0061】
短期キャプチャ機能部3aの短期キャプチャファイル生成部31aは、キャプチャ制御部24aからファイル生成指示信号が入力されたことにより(図8ステップS103においてYES)、リングバッファ部30に蓄積されたパケットを取り出してキャプチャファイルに変換する(図8ステップS104a)。
【0062】
このとき、短期キャプチャファイル生成部31aは、リングバッファ部30から取り出したパケットとフローテーブル32に登録されたキャプチャ対象フローの条件との照合を行い、条件と合致したパケットのみを選択的にキャプチャファイルに変換する。
【0063】
短期キャプチャファイル生成部31aは、生成したキャプチャファイルを調停部5に転送し(図8ステップS105)、転送完了後、リングバッファ部30部に対してパケット蓄積の再開指示信号を出力する(図8ステップS106)。
【0064】
通常キャプチャ機能部2aのキャプチャ制御部24aは、外部から特定フローのキャプチャ停止指示を受信すると(図9ステップS204においてYES)、キャプチャ停止が指定されたキャプチャ対象フローの条件をフローテーブル20とフローテーブル32とから削除する(図9ステップS205a)。
【0065】
フローテーブル20,32の削除完了後、キャプチャ制御部24aは、通常キャプチャ機能部2aのキャプチャファイル生成部23に対してファイル停止指示信号を出力する(図9ステップS206)。
【0066】
通常キャプチャ機能部2aのフィルタ部21とバッファ部22とキャプチャファイル生成部23の動作(図4)、および記憶部4と調停部5の動作(図5)は、第1の実施例と同じである。
【0067】
第1の実施例で説明したとおり、短期キャプチャ機能部3のリングバッファ部30部は、キャプチャ対象フロー以外のパケットも含む、全てのフローのパケットを蓄積する。このため、第1の実施例の短期キャプチャ機能部3は、全てのフローのパケットをキャプチャファイルに変換する。
【0068】
一方、本実施例の短期キャプチャファイル生成部31aは、リングバッファ部30から取り出したパケットとフローテーブル32に登録されたキャプチャ対象フローの条件との照合を行い、条件と合致したパケットのみを選択的にキャプチャファイルに変換する。このような選択的なファイル変換により、本実施例では、キャプチャ対象でないフローのパケットをキャプチャファイル化しないようにすることができる。その結果、本実施例では、キャプチャファイルを用いた障害解析が容易になるだけでなく、記憶部4の容量を低減することも可能となる。
【0069】
[第3の実施例]
次に、本発明の第3の実施例について説明する。図10は本発明の第3の実施例に係るパケットキャプチャ装置の構成を示すブロック図である。本実施例のパケットキャプチャ装置1bは、通常キャプチャ機能部2b(第1のキャプチャ機能部)と、短期キャプチャ機能部3b(第2のキャプチャ機能部)と、調停部5と、記憶部4とを備えている。
【0070】
通常キャプチャ機能部2bは、フローテーブル20と、ネットワーク100からパケットを受信する度にフローテーブル20に登録された条件とパケットとの照合を行い、照合結果を短期キャプチャ機能部3bに出力するフィルタ部21bと、バッファ部22と、キャプチャファイル生成部23と、キャプチャ制御部24とを備えている。
【0071】
短期キャプチャ機能部3bは、リングバッファ部30と、短期キャプチャファイル生成部31と、ネットワーク100から受信したパケットのうち、フローテーブル20に登録された条件と合致しないという照合結果が得られたパケットのみを通過させる反転フィルタ部33(第2のフィルタ部)とを備えている。
【0072】
本実施例では、通常キャプチャ機能部2bのフィルタ部21bが、フローテーブル20に登録されたキャプチャ対象フローの条件とミラーリングパケットとの照合結果を出力する点と、短期キャプチャ機能部3bが反転フィルタ部33を新たに備える点が第1の実施例と異なる。
【0073】
図11は通常キャプチャ機能部2bのフィルタ部21bとバッファ部22とキャプチャファイル生成部23の動作を説明するフローチャート、図12は短期キャプチャ機能部3bの反転フィルタ部33の動作を説明するフローチャートである。
【0074】
通常キャプチャ機能部2bのフィルタ部21bは、ネットワーク100からミラーリングパケットを受信する度に、フローテーブル20に登録されたキャプチャ対象フローの条件とパケットとの照合を行い、条件と合致したパケットを通過させ、条件と合致しないパケットを廃棄する。同時に、フィルタ部21bは、照合結果(合致/合致しない)を短期キャプチャ機能部3bに出力する(図11ステップS300b)。
【0075】
短期キャプチャ機能部3bの反転フィルタ部33は、ネットワーク100からミラーリングパケットを受信する度にフィルタ部21bから照合結果を受信し(図12ステップS500)、キャプチャ対象フローの条件と合致しないという照合結果が得られたパケットのみを後段のリングバッファ部30に出力する(図12ステップS501,S502)。
【0076】
短期キャプチャ機能部3bのリングバッファ部30と短期キャプチャファイル生成部31の動作(図2)、通常キャプチャ機能部2bのバッファ部22とキャプチャファイル生成部23の動作(図11ステップS301~S307)、通常キャプチャ機能部2bのキャプチャ制御部24の動作(図3)、および記憶部4と調停部5の動作(図5)は、第1の実施例と同じである。
【0077】
第1の実施例で説明したとおり、通常キャプチャ機能部2bのタイムラグは、キャプチャ開始指示が到来してからフローテーブル20にキャプチャ対象フローの条件が登録されるまでに要する時間である。フローテーブル20にキャプチャ対象フローの条件が登録されると、キャプチャ制御部24からリングバッファ部30に対して停止指示信号が出力され、短期キャプチャファイル生成部31とキャプチャファイル生成部23に対してファイル生成指示信号が出力される。
【0078】
フローテーブル20にキャプチャ対象フローの条件が登録されるまでは、キャプチャ対象フローのパケットについては、条件と合致しないという照合結果がフィルタ部21bから出力される。したがって、反転フィルタ部33は、キャプチャ対象フローのパケットを後段のリングバッファ部30に出力する。フィルタ部21bは、キャプチャ対象フローのパケットを後段のバッファ部22に出力しない。
【0079】
通常キャプチャ機能部2bのタイムラグが経過してフローテーブル20にキャプチャ対象フローの条件が登録されると、キャプチャ対象フローのパケットについて、条件と合致するという照合結果がフィルタ部21bから出力される。このため、反転フィルタ部33は、キャプチャ対象フローのパケットを廃棄して後段のリングバッファ部30に出力しないようになる。一方で、フィルタ部21bは、キャプチャ対象フローのパケットをバッファ部22に出力する。
【0080】
すなわち、通常キャプチャ機能部2bのタイムラグが経過するまでは、キャプチャ対象フローのパケットは、短期キャプチャ機能部3bでのみ蓄積され、タイムラグ経過後は通常キャプチャ機能部2bでのみ蓄積されるようになり、短期キャプチャ機能部3bと通常キャプチャ機能部2bとで重複して対象フローのパケットを蓄積することを防ぐことが可能となる。
【0081】
本実施例では、通常キャプチャ機能部2bと短期キャプチャ機能部3bとで同一フローに対するキャプチャ期間が重複しなくなるだけでなく、既に通常キャプチャ機能部2bにおいてキャプチャ中のデータが短期キャプチャ機能部3から出力されることが無くなる。このため、リングバッファ部30部が効率的にパケットを保持できるようになると共に、記憶部4の容量を低減することも可能となる。
【0082】
第1~第3の実施例で説明したパケットキャプチャ装置1,1a,1bは、CPU(Central Processing Unit)、記憶装置及びインタフェースを備えたコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。このコンピュータの構成例を図13に示す。
【0083】
コンピュータは、CPU300と、記憶装置301と、インタフェース装置(I/F)302とを備えている。I/F302には、パケット受信の回路とキャプチャデータの出力先の装置等が接続される。このようなコンピュータにおいて、本発明のパケットキャプチャ方法を実現させるためのプログラムは記憶装置301に格納される。CPU300は、記憶装置301に格納されたプログラムに従って第1~第3の実施例で説明した処理を実行する。
【0084】
また、第1~第3の実施例で説明したパケットキャプチャ装置1,1a,1bの一部をASIC(application specific integrated circuit)あるいはFPGA(field-programmable gate array)などのハードウェアロジックで構成してもよい。
【産業上の利用可能性】
【0085】
本発明は、例えばネットワークの通信障害の原因を解析する技術に適用することができる。
【符号の説明】
【0086】
1,1a,1b…パケットキャプチャ装置、2,2a,2b…通常キャプチャ機能部、3,3a,3b…短期キャプチャ機能部、4…記憶部、5…調停部、20,32…フローテーブル、21,21b…フィルタ部、22…バッファ部、23…キャプチャファイル生成部、24,24a…キャプチャ制御部、30…リングバッファ部、31,31a…短期キャプチャファイル生成部、33…反転フィルタ部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14