(57)【要約】【課題】ネットワークを流れるパケットの蓄積を効率的に行うことを可能とするパケットキャプチャプログラム、パケットキャプチャ装置及びパケットキャプチャ方法を提供する。【解決手段】ネットワークを流れるパケットを記憶する第１の装置に実行させるパケットキャプチャプログラムであって、パケットを取得して第１の記憶部に記憶し、パケットを取得したことに応じてパケットを第２の記憶部に記憶する第２の装置の動作状態を判定し、第２の装置の動作状態が第１の状態にあると判定した場合、第１の記憶部に記憶したパケットを削除し、第２の装置の動作状態が第２の状態にあると判定した場合、パケットを記憶する記憶部を第１の記憶部から第２の記憶部に変更する、処理を第１の装置に実行させる。【選択図】図７
2018074512.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを流れるパケットを記憶する第１の装置に実行させるパケットキャプチャプログラムであって、
前記パケットを取得して第１の記憶部に記憶し、
前記パケットを取得して第２の記憶部に記憶する第２の装置の動作状態を判定し、
前記第２の装置の動作状態が第１の状態にあると判定した場合、前記第１の記憶部に記憶した前記パケットを削除し、前記第２の装置の動作状態が第２の状態にあると判定した場合、前記パケットを記憶する記憶部を前記第１の記憶部から前記第２の記憶部に変更する、
処理を前記第１の装置に実行させることを特徴とするパケットキャプチャプログラム。
【請求項２】
請求項１において、
前記パケットを記憶する記憶部を変更する処理では、前記第２の装置が送信した通知を受信してから第１の時間が経過するまでの間、前記第２の装置が前記第１の状態にあると判定し、直前に受信した前記通知を受信してから前記第１の時間が経過した場合、前記第２の装置が前記第２の状態にあると判定する、
ことを特徴とするパケットキャプチャプログラム。
【請求項３】
請求項２において、
前記通知は、前記第２の装置から所定の時間毎に送信され、
前記第１の時間は、前記所定の時間よりも長い時間である、
ことを特徴とするパケットキャプチャプログラム。
【請求項４】
請求項２において、さらに、
前記第１の装置が有するシステム時間と、前記第２の装置が有するシステム時間との差である第３の時間を算出する、
処理を前記第１の装置に実行させ、
前記パケットを記憶する記憶部を変更する処理では、取得した前記パケットに該パケットの取得時間を付加して前記第１の記憶部に記憶し、
前記パケットを削除する処理では、付加された前記取得時間が、前記第１の時間と前記パケットを記憶する記憶部を変更する処理に要する時間との和である第２の時間と、前記第３の時間とを遡った時間よりも前である前記パケットの削除を行う、
ことを特徴とするパケットキャプチャプログラム。
【請求項５】
請求項４において、
前記第２の装置は、取得した前記パケットに該パケットの取得時間を付加してから前記第２の記憶部に記憶し、さらに、
前記パケットを記憶する記憶部を変更する処理が完了した時間から前記第２の時間と前記第３の時間とを遡った時間から、前記パケットを記憶する記憶部を変更する処理が完了した時間から前記第３の時間が経過した後の時間までの時間帯に含まれる前記取得時間が付加された前記パケットを、前記第１の記憶部及び前記第２の記憶部からそれぞれ抽出し、
前記第１の記憶部から抽出された前記パケットと前記第２の記憶部から抽出された前記パケットとにそれぞれ含まれる同一のパケットが存在するか否かを判定し、
前記同一のパケットが存在する場合、前記第１の記憶部から抽出した前記同一のパケットまたは前記第２の記憶部から抽出した前記同一のパケットを削除する、
処理を前記第１の装置に実行させることを特徴とするパケットキャプチャプログラム。
【請求項６】
請求項５において、
前記同一のパケットが含まれているか否かを判定する処理では、前記第１の記憶部から抽出した前記パケット及び前記第２の記憶部から抽出した前記パケットに、前記取得時間の差が前記第３の時間以下である削除候補パケットがそれぞれ存在する場合、存在した前記削除候補パケットのそれぞれが同一のパケットであるか否かの判定を行い、
前記同一のパケットを削除する処理では、
前記削除候補パケットのそれぞれが同一のパケットである場合、前記第１の記憶部から抽出した前記同一のパケットまたは前記第２の記憶部から抽出した前記同一のパケットを削除する、
ことを特徴とするパケットキャプチャプログラム。
【請求項７】
ネットワークを流れるパケットを記憶するパケットキャプチャ装置であって、
前記パケットを取得して第１の記憶部に記憶する情報蓄積部と、
前記パケットを取得して第２の記憶部に記憶する他の装置の動作状態を判定する状態判定部と、
前記他の装置の動作状態が第１の状態にあると判定した場合、前記第１の記憶部に記憶した前記パケットを削除し、前記他の装置の動作状態が第２の状態にあると判定した場合、前記パケットを記憶する記憶部を前記第１の記憶部から前記第２の記憶部に変更するパケット管理部と、を有する、
ことを特徴とするパケットキャプチャ装置。
【請求項８】
第１の装置が、ネットワークを流れるパケットを取得して前記パケットを第１の記憶部に記憶し、
第２の装置が、前記パケットを取得して前記パケットを第２の記憶部に記憶し、
前記第１の装置が、
前記第２の装置の動作状態を判定し、
前記第２の装置の動作状態が第１の状態にあると判定した場合、前記第１の記憶部に記憶した前記パケットを削除し、前記第２の装置の動作状態が第２の状態にあると判定した場合、前記パケットを記憶する記憶部を前記第１の記憶部から前記第２の記憶部に変更する、
ことを特徴とするパケットキャプチャ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットキャプチャプログラム、パケットキャプチャ装置及びパケットキャプチャ方法に関する。
【背景技術】
【０００２】
例えば、利用者に対してサービスを提供する事業者（以下、単に事業者とも呼ぶ）は、例えば、ネットワークを流れる通信パケット（以下、単にパケットとも呼ぶ）を取得して解析を行い、稼動中のシステムやネットワークについての稼働状態の把握を行う場合がある。
【０００３】
具体的に、事業者は、ネットワーク上にネットワーク分流機器（例えば、ネットワークタップ）を配置する。そして、ネットワーク分流機器は、ネットワークを流れるパケットを取得し、取得したパケットのミラーリングを行う。その後、ネットワーク分流機器は、ミラーリングにより生成したパケットを、パケットの解析を行うパケットキャプチャ装置（以下、単にキャプチャ装置とも呼ぶ）に送信する。これにより、キャプチャ装置は、解析対象のパケットを記憶装置に蓄積することが可能になる。以下、ネットワーク分流機器におけるミラーリング対象のパケット（ネットワーク分流機器がネットワークから取得するパケット）をシステムパケットと呼び、システムパケットのミラーリングにより生成されるパケット（キャプチャ装置が解析を行うパケット）をミラーパケットとも呼ぶ（例えば、特許文献１及び２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−１２８２６０号公報
【特許文献２】特開２０１２−０９４９９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のようにミラーパケットの蓄積を行う場合、事業者は、例えば、ネットワーク分流機器及びキャプチャ装置を冗長構成にする。これにより、事業者は、例えば、キャプチャ装置のうちの一部に故障等が発生した場合であっても、パケットの蓄積を継続して行うことが可能になる。
【０００６】
しかしながら、この場合、各キャプチャ装置は、各ネットワーク分流機器から送信されたミラーパケットの蓄積をそれぞれ行う。そのため、各キャプチャ装置が記憶装置に蓄積するミラーパケットの量は、ミラーパケットの蓄積を行うキャプチャ装置の台数に比例して増加することになる。
【０００７】
これに対し、事業者は、例えば、複数台のキャプチャ装置のうちの一部のキャプチャ装置（以下、運用系のキャプチャ装置とも呼ぶ）のみにミラーパケットの蓄積を行わせる場合がある。そして、事業者は、運用系のキャプチャ装置が故障した場合に、運用系以外のキャプチャ装置（以下、待機系のキャプチャ装置とも呼ぶ）にパケットの蓄積を開始させる。これにより、各キャプチャ装置は、記憶装置に蓄積するミラーパケットの量を削減することが可能になる。
【０００８】
しかしながら、待機系のキャプチャ装置は、ミラーパケットの蓄積を開始するまでに時間を要する場合がある。そのため、待機系のキャプチャ装置は、運用系のキャプチャ装置に故障等が発生した場合に、ネットワーク分流装置が送信したミラーパケットの一部を蓄積できない可能性がある。
【０００９】
そこで、一つの側面では、本発明は、ネットワークを流れるパケットの蓄積を効率的に行うことを可能とするパケットキャプチャプログラム、パケットキャプチャ装置及びパケットキャプチャ方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
実施の形態の一態様では、ネットワークを流れるパケットを記憶する第１の装置に実行させるパケットキャプチャプログラムであって、前記パケットを取得して第１の記憶部に記憶し、前記パケットを取得して第２の記憶部に記憶する第２の装置の動作状態を判定し、前記第２の装置の動作状態が第１の状態にあると判定した場合、前記第１の記憶部に記憶した前記パケットを削除し、前記第２の装置の動作状態が第２の状態にあると判定した場合、前記パケットを記憶する記憶部を前記第１の記憶部から前記第２の記憶部に変更する、処理を前記第１の装置に実行させる。
【発明の効果】
【００１１】
一つの側面によれば、ネットワークを流れるパケットの蓄積を効率的に行うことを可能とする。
【図面の簡単な説明】
【００１２】
【図１】図１は、情報処理システム１０の全体構成を示す図である。
【図２】図２は、キャプチャ装置１のハードウエア構成を示す図である。
【図３】図３は、キャプチャ装置２のハードウエア構成を示す図である。
【図４】図４は、キャプチャ装置１の機能ブロック図である。
【図５】図５は、キャプチャ装置２の機能ブロック図である。
【図６】図６は、第１の実施の形態におけるパケットキャプチャ処理の概略を説明するフローチャート図である。
【図７】図７は、第１の実施の形態におけるパケットキャプチャ処理の概略を説明するフローチャート図である。
【図８】図８は、第１の実施の形態におけるパケットキャプチャ処理の概略を説明する図である。
【図９】図９は、第１の実施の形態におけるパケットキャプチャ処理の概略を説明する図である。
【図１０】図１０は、第１の実施の形態におけるパケットキャプチャ処理の概略を説明する図である。
【図１１】図１１は、第１の実施の形態におけるパケットキャプチャ処理の詳細を説明するフローチャート図である。
【図１２】図１２は、第１の実施の形態におけるパケットキャプチャ処理の詳細を説明するフローチャート図である。
【図１３】図１３は、第１の実施の形態におけるパケットキャプチャ処理の詳細を説明するフローチャート図である。
【図１４】図１４は、第１の実施の形態におけるパケットキャプチャ処理の詳細を説明するフローチャート図である。
【図１５】図１５は、第１の実施の形態におけるパケットキャプチャ処理の詳細を説明するフローチャート図である。
【図１６】図１６は、第１の実施の形態におけるパケットキャプチャ処理の詳細を説明するフローチャート図である。
【図１７】図１７は、第１の実施の形態におけるパケットキャプチャ処理の詳細を説明するフローチャート図である。
【図１８】図１８は、第１の実施の形態におけるパケットキャプチャ処理の詳細を説明するフローチャート図である。
【図１９】図１９は、第１の実施の形態におけるパケットキャプチャ処理の詳細を説明するフローチャート図である。
【図２０】図２０は、第１の実施の形態におけるパケットキャプチャ処理の詳細を説明するフローチャート図である。
【図２１】図２１は、第１の実施の形態におけるパケットキャプチャ処理の詳細を説明するフローチャート図である。
【図２２】図２２は、重複排除情報２３５の具体例を説明する図である。
【図２３】図２３は、Ｓ６１からＳ６４の処理の具体例を説明する図である。
【図２４】図２４は、Ｓ６１からＳ６４の処理の具体例を説明する図である。
【図２５】図２５は、Ｓ６１からＳ６４の処理の具体例を説明する図である。
【図２６】図２６は、Ｓ６１からＳ６４の処理の具体例を説明する図である。
【図２７】図２７は、Ｓ６１からＳ６４の処理の具体例を説明する図である。
【図２８】図２８は、Ｓ６１からＳ６４の処理の具体例を説明する図である。
【発明を実施するための形態】
【００１３】
［情報処理システムの構成］
図１は、情報処理システム１０の全体構成を示す図である。図１に示す情報処理システム１０（以下、パケットキャプチャシステム１０とも呼ぶ）は、キャプチャ装置１（以下、コンピュータ１とも呼ぶ）と、キャプチャ装置２（以下、コンピュータ２とも呼ぶ）と、サーバ装置３と、サーバ装置４とを有する。また、図１に示す情報処理システム１０は、サーバ装置３とサーバ装置４との間のネットワーク上に配置されたネットワーク分流機器１ａと、ネットワーク分流機器２ａとを有する。さらに、図１に示す情報処理システム１０は、キャプチャ装置１がミラーパケットを記憶する記憶装置１ｂと、キャプチャ装置２がミラーパケットを記憶する記憶装置２ｂとを有する。
【００１４】
サーバ装置３及びサーバ装置４は、それぞれ１台以上の物理マシンからなる物理マシン群であり、例えば、事業者が利用者に対してサービスを提供するための処理を行う。そして、サーバ装置３及びサーバ装置４は、必要に応じてシステムパケットの送受信を行う。なお、以下、サーバ装置３及びサーバ装置４がシステムパケットの送受信を行う場合について説明するが、ルータ等のネットワーク機器がシステムパケットの送受信を行うものであってもよい。
【００１５】
ネットワーク分流機器１ａは、例えば、ネットワークタップであり、サーバ装置３またはサーバ装置４が送信したシステムパケットがネットワーク分流機器１ａを経由した場合に、そのシステムパケットを取得する。そして、ネットワーク分流機器１ａは、取得したシステムパケットをミラーリングしてミラーパケットを生成し、生成したミラーパケットをキャプチャ装置１に送信する。
【００１６】
また、ネットワーク分流機器２ａは、例えば、ネットワークタップであり、サーバ装置３またはサーバ装置４が送信したシステムパケットがネットワーク分流機器２ａを経由した場合に、そのシステムパケットを取得する。そして、ネットワーク分流機器２ａは、取得したシステムパケットをミラーリングしてミラーパケットを生成し、生成したミラーパケットをキャプチャ装置２に送信する。
【００１７】
キャプチャ装置１は、ネットワーク分流機器１ａからミラーパケットを受信した場合、受信したミラーパケットを記憶装置１ｂに蓄積する。そして、キャプチャ装置１は、例えば、事業者が操作端末（図示しない）を介してミラーパケットの解析を行う旨の指示を送信した場合に、記憶装置１ｂに記憶されたミラーパケットの解析を行う。
【００１８】
また、キャプチャ装置２は、ネットワーク分流機器２ａからミラーパケットを受信した場合、受信したミラーパケットを記憶装置２ｂに蓄積する。そして、キャプチャ装置２は、例えば、事業者が操作端末（図示しない）を介してミラーパケットの解析を行う旨の指示を送信した場合に、記憶装置２ｂに記憶されたミラーパケットの解析を行う。
【００１９】
さらに、キャプチャ装置１及びキャプチャ装置２は、例えば、所定の時間間隔において、自装置が正常に機能していることを示す通知（以下、生存通知とも呼ぶ）を他方のキャプチャ装置に対して行う。
【００２０】
なお、記憶装置１ｂ及び記憶装置２ｂは、それぞれＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）からなる記憶装置であってよい。また、以下、記憶装置１ｂに蓄積されたミラーパケットをミラーパケットＰＴ１またはパケットＰＴ１とも呼び、記憶装置２ｂに蓄積されたミラーパケットをミラーパケットＰＴ２またはパケットＰＴ２とも呼ぶ。
【００２１】
図１に示すように、事業者は、例えば、ネットワーク分流機器及びキャプチャ装置を冗長構成にする。これにより、事業者は、例えば、キャプチャ装置１やネットワーク分流機器１ａに故障等が発生した場合であっても、キャプチャ装置２やネットワーク分流機器２ａによってミラーパケットの蓄積を継続して行うことが可能になる。
【００２２】
しかしながら、この場合、キャプチャ装置１及びキャプチャ装置２は、ネットワーク分流機器１ａ及びネットワーク分流機器２ａからそれぞれ送信されたミラーパケットの蓄積をそれぞれ行う。そのため、記憶装置１ｂ及び記憶装置２ｂにおいて蓄積されるミラーパケットの量は、ミラーパケットの蓄積を行うキャプチャ装置の台数に比例して増加することになる。
【００２３】
これに対し、事業者は、例えば、キャプチャ装置１及びキャプチャ装置２のうち、運用系のキャプチャ装置であるキャプチャ装置１のみにミラーパケットの蓄積を行わせる。そして、事業者は、キャプチャ装置１が故障した場合に、待機系のキャプチャ装置であるキャプチャ装置２にミラーパケットの蓄積を開始させる。これにより、キャプチャ装置１及びキャプチャ装置２は、蓄積するミラーパケットの量を削減することが可能になる。
【００２４】
しかしながら、待機系のキャプチャ装置であるキャプチャ装置２は、ミラーパケットの蓄積を開始するまでに時間を要する場合がある。そのため、キャプチャ装置２は、キャプチャ装置１に故障等が発生した場合に、ミラーパケットの蓄積を開始するまでの間にネットワーク分流機器２ａから送信されたミラーパケットの一部を蓄積することができない場合がある。
【００２５】
そこで、待機系のキャプチャ装置であるキャプチャ装置２（以下、第１の装置とも呼ぶ）は、ネットワークを流れるミラーパケットを取得したことに応じてミラーパケットを記憶装置２ｂ（以下、第１の記憶部とも呼ぶ）に記憶する。そして、キャプチャ装置２は、運用系のキャプチャ装置であるキャプチャ装置１（以下、第２の装置とも呼ぶ）の動作状態を判定し、キャプチャ装置１の動作状態が第１の状態にあると判定した場合、記憶装置２ｂに記憶したミラーパケットを削除する。
【００２６】
すなわち、キャプチャ装置２は、例えば、キャプチャ装置１の動作状態が正常であると判定した場合、記憶装置２ｂに蓄積したミラーパケットのうち、運用系のキャプチャ装置であるキャプチャ装置１によって同一の内容のミラーケットが蓄積されたものと判定できるミラーパケットを記憶装置２ｂから削除する。これに対し、キャプチャ装置２は、記憶装置２ｂに蓄積したミラーパケットのうち、キャプチャ装置１によって同一の内容のミラーパケットが蓄積されたものと判定できないミラーパケットの削除を行わない。
【００２７】
一方、キャプチャ装置２は、キャプチャ装置１の動作状態が第２の状態にあると判定した場合、ミラーパケットを記憶する記憶装置を、キャプチャ装置１がミラーパケットを蓄積する記憶装置である記憶装置１ｂ（以下、第２の記憶部とも呼ぶ）に変更する。
【００２８】
すなわち、キャプチャ装置２は、例えば、キャプチャ装置１の動作状態が異常であると判定した場合、キャプチャ装置１に代わって運用系のキャプチャ装置として動作するために、削除が行われない記憶装置である記憶装置１ｂに対してミラーパケットの蓄積を開始する。
【００２９】
これにより、キャプチャ装置２は、記憶装置２ｂに蓄積されるミラーパケットの量を抑制しつつ、キャプチャ装置１及びキャプチャ装置２のいずれによっても蓄積されないミラーパケットの発生を防止することが可能になる。そのため、キャプチャ装置２は、ミラーパケットの蓄積を効率的に行うことが可能になる。
【００３０】
［情報処理システムのハードウエア構成］
次に、情報処理システム１０のハードウエア構成について説明する。図２は、キャプチャ装置１のハードウエア構成を示す図である。また、図３は、キャプチャ装置２のハードウエア構成を示す図である。
【００３１】
キャプチャ装置１は、図２に示すように、プロセッサであるＣＰＵ１０１と、メモリ１０２と、外部インターフェース（Ｉ／Ｏユニット）１０３と、記憶媒体１０４とを有する。各部は、バス１０５を介して互いに接続される。
【００３２】
記憶媒体１０４は、例えば、記憶媒体１０４内のプログラム格納領域（図示しない）に、ミラーパケットを蓄積する処理（以下、パケットキャプチャ処理とも呼ぶ）を行うためのプログラム１１０を記憶する。また、記憶媒体１０４は、例えば、パケットキャプチャ処理を行う際に用いられる情報を記憶する情報格納領域１３０（以下、記憶部１３０とも呼ぶ）を有する。
【００３３】
ＣＰＵ１０１は、プログラム１１０の実行時に、プログラム１１０を記憶媒体１０４からメモリ１０２にロードし、プログラム１１０と協働してパケットキャプチャ処理を行う。また、外部インターフェース１０３は、ネットワーク分流機器１ａや記憶装置１ｂと通信を行う。
【００３４】
そして、キャプチャ装置２は、図３に示すように、プロセッサであるＣＰＵ２０１と、メモリ２０２と、外部インターフェース（Ｉ／Ｏユニット）２０３と、記憶媒体２０４とを有する。各部は、バス２０５を介して互いに接続される。
【００３５】
記憶媒体２０４は、例えば、記憶媒体２０４内のプログラム格納領域（図示しない）に、パケットキャプチャ処理を行うためのプログラム２１０を記憶する。また、記憶媒体２０４は、例えば、パケットキャプチャ処理を行う際に用いられる情報を記憶する情報格納領域２３０（以下、記憶部２３０とも呼ぶ）を有する。
【００３６】
ＣＰＵ２０１は、プログラム２１０の実行時に、プログラム２１０を記憶媒体２０４からメモリ２０２にロードし、プログラム２１０と協働してパケットキャプチャ処理を行う。また、外部インターフェース２０３は、ネットワーク分流機器２ａや記憶装置２ｂと通信を行う。
【００３７】
［情報処理システムの機能］
次に、情報処理システム１０の機能について説明する。図４は、キャプチャ装置２の機能ブロック図である。また、図５は、キャプチャ装置１の機能ブロック図である。
【００３８】
初めに、待機系のキャプチャ装置であるキャプチャ装置２の機能ブロック図について説明を行う。キャプチャ装置２のＣＰＵ２０１は、図４に示すように、プログラム２１０と協働することにより、例えば、情報受信部２１１と、情報蓄積部２１２と、状態判定部２１３と、設定変更部２１４と、情報削除部２１５と、重複判定部２１６として動作する。また、情報格納領域２３０には、通知時間情報２３１と、待機時間情報２３２と、切り替え時間情報２３３と、時間差情報２３４と、重複排除情報２３５とが記憶されている。なお、以下、設定変更部２１４及び情報削除部２１５を総称してパケット管理部とも呼ぶ。
【００３９】
情報受信部２１１は、ネットワーク分流機器２ａが送信したミラーパケットを取得（受信）する。そして、情報蓄積部２１２は、情報受信部２１１が取得したミラーパケットを記憶装置２ｂに記憶する。
【００４０】
状態判定部２１３は、例えば、運用系のキャプチャ装置であるキャプチャ装置１の動作状態を判定する。具体的に、状態判定部２１３は、キャプチャ装置２によって送信された生存通知を受信してから第１の時間が経過するまでの間、キャプチャ装置１の動作状態が第１の状態（正常状態）にあると判定する。第１の時間は、例えば、通知時間情報２３１が示す時間と、待機時間情報２３２が示す時間との和である。通知時間情報２３１は、キャプチャ装置１がキャプチャ装置２に対して生存通知を送信する時間間隔を示す情報である。また、待機時間情報２３２は、キャプチャ装置１からの生存通知を受信することなく通知時間情報２３１が示す時間間隔が経過した後、キャプチャ装置１が異常状態になったと判定する前に待機する時間を示す情報である。
【００４１】
一方、状態判定部２１３は、キャプチャ装置１によって送信された生存通知を受信してから第１の時間が経過した場合（キャプチャ装置１によって送信された生存通知を受信することなく第１の時間が経過した場合）、キャプチャ装置１の動作状態が第２の状態（異常状態）にあると判定する。
【００４２】
設定変更部２１４は、キャプチャ装置１の動作状態が第２の状態にあると判定された場合、ミラーパケットを記憶する記憶装置を記憶装置２ｂから記憶装置１ｂに変更する。
【００４３】
情報削除部２１５は、キャプチャ装置２の動作状態が第１の状態にあると判定された場合、記憶装置２ｂに記憶されたミラーパケットを削除する。具体的に、情報削除部２１５は、この場合、付加された取得時間（情報蓄積部２１２が記憶装置２ｂに蓄積した時間）が、現在の時間から第２の時間及び第３の時間を遡った時間よりも前であるミラーパケットの削除を行う。第２の時間は、例えば、第１の時間と、切り替え時間情報２３３が示す時間との和である。切り換え時間情報２３３は、設定変更部２１４がミラーパケットを記憶する記憶装置を記憶装置２ｂから記憶装置１ｂに変更するために要する時間を示す情報である。また、第３の時間は、時間差情報２３４が示す時間である。時間差情報２３４は、キャプチャ装置１が有するシステム時間とキャプチャ装置２が有するシステム時間との時間差を示す情報である。
【００４４】
重複判定部２１６は、記憶装置１ｂに記憶されたミラーパケット及び記憶装置２ｂに記憶されたミラーパケットに、同一の内容のミラーパケット（以下、重複パケットとも呼ぶ）がそれぞれ含まれているか否かを判定する。そして、重複パケットが存在すると判定した場合、情報削除部２１５は、記憶装置１ｂに記憶された重複パケットまたは記憶装置２ｂに記憶された重複パケットの削除を行う。重複排除情報２３５については後述する。
【００４５】
次に、キャプチャ装置１の機能ブロック図について説明を行う。キャプチャ装置１のＣＰＵ１０１は、図５に示すように、プログラム１１０と協働することにより、例えば、情報受信部１１１と、情報蓄積部１１２とを有する。
【００４６】
情報受信部１１１は、ネットワーク分流機器１ａが送信したミラーパケットを取得（受信）する。そして、情報蓄積部１１２は、情報受信部１１１が取得したミラーパケットを記憶装置１ｂに記憶する。
【００４７】
なお、キャプチャ装置１は、状態判定部２１３、設定変更部２１４、情報削除部２１５及び重複判定部２１６と同じ機能を有するものであってもよい。
【００４８】
［第１の実施の形態］
次に、第１の実施の形態について説明する。図６及び図７は、第１の実施の形態におけるパケットキャプチャ処理の概略を説明するフローチャート図である。また、図８から図１０は、第１の実施の形態におけるパケットキャプチャ処理の概略を説明する図である。図８から図１０を参照しながら、図６及び図７に示す第１の実施の形態におけるパケットキャプチャ処理の概略について説明を行う。
【００４９】
キャプチャ装置２は、図６に示すように、ネットワーク分流機器２ａが送信したミラーパケットを取得するまで待機する（Ｓ１のＮＯ）。具体的に、キャプチャ装置２は、ネットワーク分流機器２ａが送信したミラーパケットを受信するまで待機する。
【００５０】
そして、ミラーパケットを取得した場合（Ｓ１のＹＥＳ）、キャプチャ装置２は、図８に示すように、Ｓ１の処理で取得したミラーパケットを記憶装置２ｂに記憶する（Ｓ２）。
【００５１】
一方、キャプチャ装置２は、図７に示すように、例えば、キャプチャ装置１の動作状態を判定するタイミング（以下、状態判定タイミングとも呼ぶ）になるまで待機する（Ｓ１１のＮＯ）。状態判定タイミングは、例えば、定期的なタイミングであってよい。そして、状態判定タイミングになった場合（Ｓ１１のＹＥＳ）、キャプチャ装置２は、キャプチャ装置１の動作状態を判定する（Ｓ１２）。
【００５２】
その結果、キャプチャ装置１の動作状態が第１の状態（正常状態）にあると判定した場合（Ｓ１３のＹＥＳ）、キャプチャ装置２は、図９に示すように、記憶装置２ｂに記憶したミラーパケットを削除する（Ｓ１５）。
【００５３】
具体的に、キャプチャ装置２は、キャプチャ装置１において故障等が発生していないと判定した場合、キャプチャ装置１によって同一の内容のミラーパケットが記憶装置１ｂに蓄積されたものと断定できるミラーパケットの削除を行う。また、キャプチャ装置２は、この場合、キャプチャ装置１によって同一の内容のミラーパケットが記憶装置１ｂに蓄積されたものと断定できないミラーパケットの削除を行わない。
【００５４】
一方、キャプチャ装置１の動作状態が第２の状態（異常状態）にあると判定した場合（Ｓ１３のＮＯ）、キャプチャ装置２は、図１０に示すように、ミラーパケットを記憶する記憶装置を記憶装置２ｂから記憶装置１ｂに変更する（Ｓ１４）。
【００５５】
すなわち、キャプチャ装置２は、キャプチャ装置１において故障等が発生したものと判定した場合、運用系のキャプチャ装置として動作を開始する。具体的に、キャプチャ装置２は、この場合、ミラーパケットの記憶を行う記憶装置を、ミラーパケットの削除が行われる記憶装置２ｂからミラーパケットの削除が行われない記憶装置１ｂに変更する。
【００５６】
これにより、キャプチャ装置２は、記憶装置２ｂに蓄積されるミラーパケットの量を抑制しつつ、キャプチャ装置１及びキャプチャ装置２のいずれによっても蓄積されないミラーパケットの発生を防止することが可能になる。そのため、キャプチャ装置２は、ミラーパケットの蓄積を効率的に行うことが可能になる。
【００５７】
［第１の実施の形態の詳細］
次に、第１の実施の形態の詳細について説明する。図１１から図２１は、第１の実施の形態におけるパケットキャプチャ処理の詳細を説明するフローチャート図である。また、図２２から図２８は、第１の実施の形態におけるパケットキャプチャ処理の詳細を説明する図である。図２２から図２８を参照しながら、図１１から図２１のパケットキャプチャ処理の詳細を説明する。
【００５８】
［パケット蓄積処理］
初めに、パケットキャプチャ処理のうちのミラーパケットを蓄積する処理（以下、パケット蓄積処理とも呼ぶ）について説明を行う。
【００５９】
キャプチャ装置２の情報受信部２１１は、図１１に示すように、ネットワーク分流機器２ａが送信したミラーパケットを取得するまで待機する（Ｓ２１のＮＯ）。そして、ミラーパケットを取得した場合（Ｓ２１のＹＥＳ）、キャプチャ装置２の情報蓄積部２１２は、Ｓ２１の処理で取得したミラーパケットに取得時間を付加する（Ｓ２２）。具体的に、情報蓄積部２１２は、例えば、現在の時間をミラーパケットの取得時間としてミラーパケットに付加する。
【００６０】
その後、情報蓄積部２１２は、Ｓ２２の処理で取得時間を付加したミラーパケットを記憶装置２ｂに記憶する（Ｓ２３）。
【００６１】
また、キャプチャ装置１の情報受信部１１１は、図１２に示すように、ネットワーク分流機器１ａが送信したミラーパケットを取得するまで待機する（Ｓ２０１のＮＯ）。そして、ミラーパケットを取得した場合（Ｓ２０１のＹＥＳ）、キャプチャ装置１の情報蓄積部１１２は、Ｓ２０１の処理で取得したミラーパケットに取得時間を付加する（Ｓ２０２）。具体的に、情報蓄積部１１２は、例えば、現在の時間をミラーパケットの取得時間としてミラーパケットに付加する。
【００６２】
その後、情報蓄積部１１２は、Ｓ２０２の処理で取得時間を付加したミラーパケットを記憶装置１ｂに記憶する（Ｓ２０３）。
【００６３】
［状態判定処理］
次に、キャプチャ装置２におけるパケットキャプチャ処理のうち、キャプチャ装置１の動作状態の判定を行う処理（以下、状態判定処理とも呼ぶ）について説明を行う。
【００６４】
キャプチャ装置２の状態判定部２１３は、図１３に示すように、状態判定タイミングになるまで待機する（Ｓ３１のＮＯ）。そして、状態判定タイミングになった場合（Ｓ３１のＹＥＳ）、状態判定部２１３は、キャプチャ装置１から直前に受信した生存通知を受信してから経過した時間を算出する（Ｓ３２）。
【００６５】
さらに、状態判定部２１３は、Ｓ３２の処理で算出した時間が第１の時間以上であるか否かを判定する（Ｓ３３）。具体的に、状態判定部２１３は、例えば、情報格納領域２３０に記憶された通知時間情報２３１及び待機時間情報２３２を参照して第１の時間を算出し、Ｓ３３の処理を行うものであってよい。
【００６６】
そして、Ｓ３２の処理で算出した時間が第１の時間以上である場合（Ｓ３３のＹＥＳ）、キャプチャ装置２の設定変更部２１４は、ミラーパケットを記憶する記憶装置を記憶装置２ｂから記憶装置１ｂに変更する（Ｓ３４）。その後、情報受信部２１１は、Ｓ３１以降の処理を再度行う。
【００６７】
すなわち、Ｓ３２の処理で算出した時間が第１の時間以上である場合、状態判定部２１３は、キャプチャ装置１がキャプチャ装置２に対して生存通知を送信していないと判定する。そのため、状態判定部２１３は、この場合、キャプチャ装置１において故障等が発生し、キャプチャ装置１におけるミラーパケットの蓄積が行われていない可能性があると判定する。したがって、設定変更部２１４は、この場合、ネットワーク分流機器２ａから送信されるミラーパケットを記憶する記憶装置を、蓄積したミラーパケットの削除が行われる記憶装置２ｂから、蓄積したミラーパケットの削除を行われない記憶装置１ｂに変更する。
【００６８】
これにより、キャプチャ装置２は、キャプチャ装置１によって蓄積されていないミラーパケットが削除されることを防止することが可能になる。
【００６９】
一方、Ｓ３２の処理で算出した時間が第１の時間未満である場合（Ｓ３３のＮＯ）、キャプチャ装置２の情報削除部２１５は、図１４に示すように、第２の時間を算出する（Ｓ４１）。具体的に、情報削除部２１５は、情報格納領域２３０に記憶された通知時間情報２３１、待機時間情報２３２及び切り換え時間情報２３３を参照して、第２の時間を算出するものであってよい。
【００７０】
また、情報削除部２１５は、この場合、第３の時間を算出する（Ｓ４２）。情報削除部２１５は、算出した第３の時間を時間差情報２３４として情報格納領域２３０に記憶するものであってよい。
【００７１】
その後、情報削除部２１５は、記憶装置２ｂに記憶されたミラーパケット（ミラーパケットＰＴ２）のうち、付加された取得時間が現在の時間を基準として第２の時間と第３の時間とを遡った時間よりも前であるミラーパケットの削除を行う（Ｓ４３）。その後、情報受信部２１１は、Ｓ３１以降の処理を再度行う。
【００７２】
すなわち、Ｓ３２の処理で算出した時間が第１の時間未満である場合、状態判定部２１３は、キャプチャ装置１がキャプチャ装置２に対する生存通知の送信を行っていると判定する。そのため、状態判定部２１３は、この場合、キャプチャ装置１の動作状態が正常であり、キャプチャ装置１におけるミラーパケットの蓄積が継続して行われているものと判定する。したがって、情報削除部２１５は、ミラーパケットの蓄積を効率的に行うために、記憶装置２ｂに記憶されたミラーパケットの一部を削除する。
【００７３】
ここで、キャプチャ装置２は、キャプチャ装置１において故障等が発生したものと判定するまでに時間を要する場合がある。具体的に、キャプチャ装置２は、キャプチャ装置１において故障等が発生したものと判定するまでに、通知時間情報２３１が示す時間と待機時間情報２３２が示す時間とを加算した時間を要する場合がある。さらに、キャプチャ装置２は、ネットワーク分流機器２ａから送信されたミラーパケットを記憶する記憶装置を記憶装置２ｂから記憶装置１ｂに変更するために、切り替え時間情報２３３が示す時間を要する。言い換えれば、キャプチャ装置２は、キャプチャ装置１において故障等が発生した場合、ミラーパケットを記憶する記憶装置の変更を完了させるまでに、通知時間情報２３１が示す時間と待機時間情報２３２が示す時間と切り替え時間情報２３３が示す時間とを加算した時間である第２の時間を要する場合がある。
【００７４】
また、キャプチャ装置１とキャプチャ装置２とでは、ミラーパケットに取得時間を付加するために参照されるシステム時間が異なっている可能性がある。そのため、情報削除部２１５は、ミラーパケットの削除を行う範囲を決定する際に、キャプチャ装置１が有するシステム時間とキャプチャ装置２が有するシステム時間との差異（第３の時間）を考慮する必要がある。
【００７５】
そのため、キャプチャ装置２は、Ｓ４３の処理において、例えば、記憶装置２ｂに記憶されたミラーパケットのうち、付加された取得時間が現在の時間を基準として第２の時間と第３の時間とを遡った時間よりも前であるミラーパケットのみを削除する。
【００７６】
これにより、キャプチャ装置２は、記憶装置１ｂ及び記憶装置２ｂのいずれにも蓄積されていないミラーパケットの発生を防止することが可能になる。
【００７７】
なお、キャプチャ装置１（記憶装置１ｂ）は、キャプチャ装置１における故障等の発生に伴ってキャプチャ装置２がミラーパケットを記憶する記憶装置の変更を行った場合、キャプチャ装置１によるミラーパケットの蓄積を中止するものであってよい。これにより、記憶装置１ｂは、同一の内容のパケットを複数回記憶することを防止することが可能になる。
【００７８】
［重複判定処理］
次に、キャプチャ装置２におけるパケットキャプチャ処理のうち、記憶装置１ｂに蓄積されたミラーパケット及び記憶装置２ｂに蓄積されたミラーパケットに、同一のパケット（以下、重複パケットとも呼ぶ）が存在するか否かを判定する処理（以下、重複判定処理とも呼ぶ）について説明を行う。
【００７９】
キャプチャ装置２の重複判定部２１６は、図１５に示すように、重複判定タイミングになるまで待機する（Ｓ５１のＮＯ）。重複判定タイミングは、例えば、Ｓ３４の処理が行われた後の所定のタイミングであってよい。すなわち、重複判定タイミングは、キャプチャ装置１において発生した故障等を検知した場合において、ミラーパケットを蓄積する記憶装置の変更を行われた後のタイミングであってよい。
【００８０】
その後、重複判定タイミングになった場合（Ｓ５１のＹＥＳ）、重複判定部２１６は、第３の時間を算出する（Ｓ５２）。すなわち、キャプチャ装置１とキャプチャ装置２とでは、ミラーパケットに取得時間を付加するために参照されるシステム時間が異なっている可能性がある。そのため、重複判定部２１６は、記憶装置１ｂに蓄積されたミラーパケット及び記憶装置２ｂに蓄積されたミラーパケットに重複パケットが存在するか否かを判定する前に、第３の時間の算出を行う。
【００８１】
なお、重複判定部２１６は、Ｓ５２の処理において、情報格納領域２３０に時間差情報２３４が記憶されている場合、時間差情報２３４が示す時間の取得のみを行うものであってもよい。
【００８２】
そして、重複判定部２１６は、例えば、ミラーパケットを蓄積する記憶装置の変更が完了した時間から第２の時間及び第３の時間を遡った時間を、重複パケットが存在するか否かの判定を行う範囲の開始時間（以下、判定開始時間とも呼ぶ）として特定する（Ｓ５３）。
【００８３】
すなわち、重複パケットであるか否かの判定を行う必要があるミラーパケットに付加された取得時間のうちの最も早い時間は、キャプチャ装置１の故障等が発生した可能性がある最も早い時間である。そして、キャプチャ装置１の故障等が発生した可能性がある最も早い時間は、ミラーパケットを蓄積する記憶装置の変更が完了した時間から第２の時間及び第３の時間を遡った時間よりも後の時間である。そのため、重複判定部２１６は、例えば、ミラーパケットを蓄積する記憶装置の変更が完了した時間から第２の時間及び第３の時間を遡った時間を、判定開始時間として特定する。
【００８４】
そして、重複判定部２１６は、例えば、ミラーパケットを蓄積する記憶装置の変更が完了した時間から第３の時間が経過した後の時間を、重複パケットが存在するか否かの判定を行う範囲の終了時間（以下、判定終了時間とも呼ぶ）として特定する（Ｓ５４）。
【００８５】
すなわち、重複パケットであるか否かの判定を行う必要があるミラーパケットに付加された取得時間のうちの最も遅い時間は、ミラーパケットを蓄積する記憶装置の変更が完了した時間から第３の時間が経過した後の時間よりも前の時間である。そのため、重複判定部２１６は、例えば、ミラーパケットを蓄積する記憶装置の変更が完了した時間から第３の時間が経過した後の時間を、判定終了時間として特定する。
【００８６】
続いて、重複判定部２１６は、記憶装置１ｂに記憶されたミラーパケット（ミラーパケットＰＴ１）のうち、Ｓ５３の処理で特定した判定開始時間からＳ５４の処理で特定した判定終了時間までの時間帯に含まれる取得時間が付加されたパケット群（以下、第１パケット群とも呼ぶ）を抽出する（Ｓ５５）。また、重複判定部２１６は、記憶装置２ｂに記憶されたミラーパケット（ミラーパケットＰＴ２）のうち、Ｓ５３の処理で特定した判定開始時間からＳ５４の処理で特定した判定終了時間までの時間帯に含まれる取得時間が付加されたパケット群（以下、第２パケット群とも呼ぶ）を抽出する（Ｓ５６）。すなわち、重複判定部２１６は、重複パケットが含まれている可能性があるミラーパケットを、記憶装置１ｂ及び記憶装置２ｂのそれぞれから抽出する。
【００８７】
その後、重複判定部２１６は、図１６に示すように、Ｓ５５の処理で抽出された第１パケット群と、Ｓ５６の処理で抽出された第２パケット群とのそれぞれに重複パケットが含まれているか否かを判定する（Ｓ６１）。その結果、重複パケットが含まれていると判定した場合（Ｓ６１のＹＥＳ）、情報削除部２１５は、Ｓ５５の処理で抽出された第１パケット群に含まれる重複パケット、または、Ｓ５６の処理で抽出された第２パケット群に含まれる重複パケットを削除する（Ｓ６２）。
【００８８】
そして、情報蓄積部２１２は、Ｓ５５の処理で抽出された第１パケット群と、Ｓ５６の処理で抽出された第２パケット群とに含まれるミラーパケットを記憶装置１ｂに蓄積する（Ｓ６４）。その後、重複判定部２１６は、Ｓ５１以降の処理を行う。
【００８９】
これにより、情報蓄積部２１２は、重複パケットが記憶装置１ｂに記憶されることを防止することが可能になる。なお、Ｓ６４の処理の後、情報削除部２１５は、記憶装置２ｂに蓄積されたミラーパケットの削除を行うものであってもよい。
【００９０】
［Ｓ６１からＳ６４の処理の詳細］
次に、Ｓ６１からＳ６４の処理の詳細について説明を行う。
【００９１】
重複判定部２１６は、図１７に示すように、Ｓ５６の処理で抽出された第２パケット群にミラーパケットが存在するか否かを判定する（Ｓ７１）。そして、第２パケット群にミラーパケットが存在すると判定した場合（Ｓ７１のＹＥＳ）、重複判定部２１６は、Ｓ５５の処理で抽出された第１パケット群にミラーパケットが存在するか否かを判定する（Ｓ７２）。
【００９２】
その結果、第１パケット群にミラーパケットが存在する場合（Ｓ７２のＹＥＳ）、重複判定部２１６は、図１８に示すように、第１パケット群に含まれるミラーパケットに、第２パケット群に含まれる各ミラーパケットの取得時間から第３の時間を上回る時間を遡った取得時間が付加されたミラーパケットが存在するか否かを判定する（Ｓ８１）。
【００９３】
そして、Ｓ８１の処理においてミラーパケットが存在した場合（Ｓ８２のＹＥＳ）、重複判定部２１６は、Ｓ８２の処理で存在したミラーパケットを第１パケット群及び第２パケット群と異なるパケット群（以下、第３パケット群とも呼ぶ）に追加する。また、この場合、重複判定部２１６は、Ｓ８２の処理で存在したミラーパケットを示す情報を重複排除情報２３５の一部として情報格納領域２３０に記憶する（Ｓ８３）。重複排除情報２３５は、Ｓ５５の処理で抽出された第１パケット群に含まれるミラーパケット及びＳ５６の処理で抽出された第２パケット群に含まれるミラーパケットのうち、重複パケットを排除したミラーパケットを示す情報のみを含む情報である。
【００９４】
すなわち、第２パケット群に含まれるミラーパケットの重複パケットが第１パケット群に存在する場合、その重複パケットの取得時間は、第２パケット群に含まれるミラーパケットの取得時間から第３の時間を遡った時間と、第２パケット群に含まれるミラーパケットの取得時間から第３の時間が経過した後の時間との間に含まれる。そのため、第２パケット群に含まれる各ミラーパケットの取得時間から第３の時間を上回る時間を遡った取得時間が付加されたミラーパケットが第１パケット群に存在する場合、重複判定部２１６は、存在したミラーパケットが第２パケット群に含まれる各ミラーパケットの重複パケットではないと判定する。したがって、重複判定部２１６は、Ｓ８２の処理で存在したミラーパケットを示す情報を、重複排除情報２３５の一部として情報格納領域２３０に記憶する。以下、重複排除情報２３５の具体例について説明を行う。
【００９５】
［重複排除情報の具体例］
図２２は、重複排除情報２３５の具体例を説明する図である。図２２に示す重複排除情報２３５は、重複排除情報２３５に含まれる各情報を識別する「項番」と、重複パケットが排除された後の各ミラーパケットを識別する「パケット識別子」とを項目として有する。また、図２２に示す重複排除情報２３５は、キャプチャ装置２における各ミラーパケットの取得時間が設定される「取得時間」を項目として有する。なお、以下、第１パケット群に含まれるミラーパケットに対応する「パケット識別子」には、「ＰＴ１」を含む情報が設定されるものとし、第２パケット群に含まれるミラーパケットに対応する「パケット識別子」には、「ＰＴ２」を含む情報が設定されるものとする。
【００９６】
具体的に、図２２に示す重複排除情報２３５において、「項番」が「１」である情報には、「パケット識別子」として「ＰＴ２−００１」が設定され、「取得時間」として「２０１６／０８／２４  １１：５４：０５」が設定されている。また、図２２に示す重複排除情報２３５において、「項番」が「３」である情報には、「パケット識別子」として「ＰＴ１−００３」が設定され、「取得時間」として「２０１６／０８／２４  １２：００：１５」が設定されている。図２２に含まれる他の情報については説明を省略する。
【００９７】
図１８に戻り、重複判定部２１６は、Ｓ８２の処理で存在したミラーパケットを第１パケット群から削除する（Ｓ８４）。その後、重複判定部２１６は、Ｓ８１以降の処理を再度行う。
【００９８】
一方、Ｓ８１の処理においてパケットが存在した場合（Ｓ８２のＮＯ）、重複判定部２１６は、図１９に示すように、第２パケット群に含まれるミラーパケットの取得時間のうちの最も早い取得時間から第３の時間を遡った時間を比較開始時間として特定する（Ｓ９１）。また、重複判定部２１６は、この場合、第２パケット群に含まれるミラーパケットの取得時間のうちの最も早い取得時間から第３の時間が経過した後の時間を比較終了時間として特定する（Ｓ９２）。
【００９９】
すなわち、第２パケット群に含まれるミラーパケットの重複パケットが第１パケット群に存在する場合、その重複パケットの取得時間は、第２パケット群に含まれるミラーパケットの取得時間から第３の時間を遡った時間と、第２パケット群に含まれるミラーパケットの取得時間から第３の時間が経過した後の時間との間に含まれる。そのため、重複判定部２１６は、第２パケット群に含まれるミラーパケットの取得時間から第３の時間を遡った時間を比較開始時間とし、第２パケット群に含まれるミラーパケットの取得時間から第３の時間が経過した後の時間を比較終了時間として特定する。
【０１００】
そして、重複判定部２１６は、第１パケット群に含まれるミラーパケットのうち、取得時間がＳ９１の処理で特定した比較開始時間からＳ９２の処理で特定した比較終了時間までの間であるミラーパケット（以下、削除候補パケットとも呼ぶ）を特定する（Ｓ９３）。すなわち、重複判定部２１６は、第１パケット群に含まれるミラーパケットから、第２パケット群に含まれるミラーパケットの重複パケットである可能性があるミラーパケットの特定を行う。
【０１０１】
続いて、重複判定部２１６は、例えば、Ｓ９３の処理で特定したミラーパケットのハッシュ値をそれぞれ算出する（Ｓ９４）。また、重複判定部２１６は、例えば、第２パケット群に含まれるミラーパケットのうちの取得時間が最も早いミラーパケットのハッシュ値を算出する（Ｓ９５）。
【０１０２】
その後、重複判定部２１６は、図２０に示すように、例えば、Ｓ９４の処理で算出したハッシュ値に、Ｓ９５の処理で算出したハッシュ値と同じ値のハッシュ値が存在するか否かを判定する（Ｓ１０１）。そして、Ｓ９４の処理で算出したハッシュ値に、Ｓ９５の処理で算出したハッシュ値と同じ値のハッシュ値が存在する場合（Ｓ１０２のＹＥＳ）、重複判定部２１６は、第２パケット群に含まれるミラーパケットのうちの取得時間が最も早いミラーパケットの内容と、Ｓ１０２の処理で存在したハッシュ値に対応するミラーパケットの内容とが一致するか否かを判定する（Ｓ１０３）。
【０１０３】
すなわち、重複判定部２１６は、ハッシュ値が異なる値である複数のミラーパケットが異なるミラーパケットであると判定できる。また、重複判定部２１６は、ハッシュ値が同じ値であるミラーパケットが同じ内容のミラーパケットである可能性があると判定できる。そのため、重複判定部２１６は、例えば、Ｓ１０２の処理においてハッシュ値が同じであると判定した各ミラーパケットのみについて、内容が一致するか否かの判定を行う。
【０１０４】
これにより、重複判定部２１６は、ミラーパケットの内容が一致するか否かの判定を行うことに伴う処理負担を軽減させることが可能になる。
【０１０５】
そして、内容が一致するミラーパケットが存在すると判定した場合（Ｓ１１１のＹＥＳ）、重複判定部２１６は、図２１に示すように、第１パケット群に含まれるミラーパケットのうち、Ｓ１１１の処理で存在すると判定したミラーパケットを第１パケット群から削除する（Ｓ１１２）。
【０１０６】
すなわち、重複判定部２１６は、この場合、存在すると判定した重複パケットを示す情報を重複排除情報２３５の一部として記憶することなく削除を行う。これにより、重複判定部２１６は、重複パケットを示す情報が重複排除情報２３５に含まれることを防止することが可能になる。
【０１０７】
一方、内容が一致するミラーパケットが存在しないと判定した場合（Ｓ１１１のＮＯ）、重複判定部２１６は、Ｓ１１２の処理を行わない。
【０１０８】
その後、重複判定部２１６は、第２パケット群に含まれるミラーパケットのうち、取得時間が最も早いミラーパケットを第３パケット群に追加する。そして、重複判定部２１６は、第２パケット群に含まれるミラーパケットのうち、取得時間が最も早いミラーパケットを示す情報を、重複排除情報２３５の一部として情報格納領域２３０に記憶する（Ｓ１１３）。また、重複判定部２１６は、Ｓ１０２の処理において、Ｓ９５の処理で算出したハッシュ値と同じ値のハッシュ値が存在しない場合も同様に（Ｓ１０２のＮＯ）、Ｓ１１３の処理を行う。そして、重複判定部２１６は、Ｓ１１３の処理の後、第２パケット群に含まれるミラーパケットのうちの取得時間が最も早いパケットを、第２パケット群から削除する（Ｓ１１４）。その後、重複判定部２１６は、Ｓ７１以降の処理を再度行う。
【０１０９】
一方、図１７に示すＳ７１の処理において、図１５で説明したＳ５６の処理で抽出された第２パケット群にミラーパケットが存在しないと判定した場合（Ｓ７１のＮＯ）、重複判定部２１６は、第１パケット群に含まれるミラーパケットを第３パケット群に追加する。そして、重複判定部２１６は、この場合、第１パケット群に含まれるミラーパケットが示す情報を重複排除情報２３５の一部として情報格納領域２３０に記憶する（Ｓ７３）。
【０１１０】
また、重複判定部２１６は、Ｓ５５の処理で抽出された第１パケット群にミラーパケットが存在しないと判定した場合（Ｓ７２のＮＯ）、第２パケット群に含まれるミラーパケットを第３パケット群に追加する。そして、重複判定部２１６は、この場合、第２パケット群に含まれるミラーパケットが示す情報を重複排除情報２３５の一部として情報格納領域２３０に記憶する（Ｓ７３）。
【０１１１】
その後、重複判定部２１６は、判定開始時間から判定終了時間までの間のミラーパケットとして、第３パケット群に含まれるミラーパケット（重複排除情報２３５に情報が含まれるミラーパケット）を記憶装置１ｂに記憶する（Ｓ７４）。
【０１１２】
なお、Ｓ７３の処理において、重複判定部２１６は、第３パケット群に含まれているミラーパケットのうち、第２パケット群に含まれていたミラーパケットに付加されている取得時間を、キャプチャ装置１のシステム時間に変更するものであってもよい。具体的に、重複判定部２１６は、この場合、重複排除情報２３５に含まれる情報から、「パケット識別子」に「ＰＴ２」を含む情報が設定されている情報を特定する。そして、キャプチャ装置１のシステム時間がキャプチャ装置２のシステム時間よりも進んでいる場合、重複判定部２１６は、特定した情報の「取得時間」に設定された時間に第３の時間を加算した時間を、特定した情報に対応するミラーパケットに付加するものであってよい。また、キャプチャ装置１のシステム時間がキャプチャ装置２のシステム時間よりも遅れている場合、重複判定部２１６は、特定した情報の「取得時間」に設定された時間に第３の時間を減算した時間を、特定した情報に対応するミラーパケットに付加するものであってよい。
【０１１３】
これにより、重複判定部２１６は、記憶装置１ｂに蓄積されるミラーパケットの全てに、キャプチャ装置１のシステム時間による取得時間を付加することが可能になる。そのため、重複判定部２１６は、記憶装置１ｂに蓄積されたミラーパケットの生成順と、記憶装置１ｂに蓄積されたミラーパケットに付加された取得時間の順序を一致させることが可能になる。
【０１１４】
［Ｓ６１からＳ６４の処理の具体例］
次に、Ｓ６１からＳ６４の処理の具体例について説明を行う。図２３から図２８は、Ｓ６１からＳ６４の処理の具体例を説明する図である。
【０１１５】
重複判定部２１６は、図２３（Ａ）に示すように、第１パケット群として、取得時間が早い順に「１」、「２」、「３」、「４」、「５」及び「６」と表記されたミラーパケットを抽出する（Ｓ５５）。以下、「１」、「２」、「３」、「４」、「５」及び「６」と表記されたミラーパケットを、それぞれ「パケット１」、「パケット２」、「パケット３」、「パケット４」、「パケット５」及び「パケット６」とも呼ぶ。また、重複判定部２１６は、図２３（Ａ）に示すように、第２パケット群として、取得時間が早い順に「ａ」、「ｂ」及び「ｃ」と表記されたミラーパケットを抽出する（Ｓ５６）。以下、「ａ」、「ｂ」及び「ｃ」と表記されたミラーパケットを、それぞれ「パケットａ」、「パケットｂ」及び「パケットｃ」とも呼ぶ。
【０１１６】
そして、重複判定部２１６は、第１パケット群に含まれるミラーパケットに、第２パケット群に含まれる各ミラーパケットの取得時間から第３の時間を上回る時間を遡った取得時間が付加されたミラーパケットが存在するか否かを判定する（Ｓ８１）。その結果、例えば、「パケット１」の取得時間が、「パケットａ」、「パケットｂ」及び「パケットｃ」のそれぞれの取得時間から第３の時間を上回る時間を遡った時間であると判定した場合、重複判定部２１６は、図２３（Ｂ）に示すように、「パケット１」を第３パケット群に追加する（Ｓ８２のＹＥＳ、Ｓ８３、Ｓ８４）。
【０１１７】
続いて、重複判定部２１６は、「パケットａ」の重複パケットが第１パケット群に存在するか否かについての判定を行う。具体的に、重複判定部２１６は、「パケットａ」の取得時間から第３の時間を遡った時間を、「パケットａ」の比較開始時間として特定する（Ｓ９１）。また、重複判定部２１６は、「パケットａ」の取得時間から第３の時間が経過した後の時間を、「パケットａ」の比較終了時間として特定する（Ｓ９２）。そして、重複判定部２１６は、第１パケット群に含まれるミラーパケットのうち、取得時間が「パケットａ」の比較開始時間から「パケットａの」比較終了時間までの間であるミラーパケットとして、例えば、図２４（Ａ）の網掛け部分に示すように、「パケット２」、「パケット３」及び「パケット４」を特定する（Ｓ９３）。
【０１１８】
その後、例えば、「パケットａ」と「パケット２」とが重複パケットであると判定した場合、重複判定部２１６は、図２４（Ｂ）に示すように、「パケット２」を削除し、「パケットａ」を第２パケット群から第３パケット群に移動する（Ｓ１０３、Ｓ１１１のＹＥＳ、Ｓ１１２、Ｓ１１３、Ｓ１１４）。
【０１１９】
続いて、重複判定部２１６は、「パケットｂ」の重複パケットが第１パケット群に存在するか否かについての判定を行う。具体的に、重複判定部２１６は、「パケットｂ」の取得時間から第３の時間を遡った時間を、「パケットｂ」の比較開始時間として特定する（Ｓ９１）。また、重複判定部２１６は、「パケットｂ」の取得時間から第３の時間が経過した後の時間を、「パケットｂ」の比較終了時間として特定する（Ｓ９２）。そして、重複判定部２１６は、第１パケット群に含まれるミラーパケットのうち、取得時間が「パケットｂ」の比較開始時間から「パケットａ」の比較終了時間までの間であるミラーパケットとして、図２５（Ａ）の網掛け部分に示すように、「パケット３」、「パケット４」、「パケット５」及び「パケット６」を特定する（Ｓ９３）。
【０１２０】
その後、重複判定部２１６は、例えば、「パケット３」、「パケット４」、「パケット５」及び「パケット６」に「パケットｂ」の重複パケットが存在しないと判定した場合、図２５（Ｂ）に示すように、「パケットｂ」を第２パケット群から第３パケット群に移動する（Ｓ１０３、Ｓ１１１のＮＯ、Ｓ１１３、Ｓ１１４）。
【０１２１】
そして、例えば、「パケット３」の取得時間が、「パケットｃ」の取得時間から第３の時間を上回る時間を遡った時間であると判定した場合、重複判定部２１６は、図２６（Ａ）に示すように、「パケット３」を第３パケット群に含める（Ｓ８１、Ｓ８２のＹＥＳ、Ｓ８３、Ｓ８４）。
【０１２２】
さらに、重複判定部２１６は、「パケットｃ」の重複パケットが第１パケット群に存在するか否かについての判定を行う。具体的に、重複判定部２１６は、「パケットｃ」の取得時間から第３の時間を遡った時間を、「パケットｃ」の比較開始時間として特定する（Ｓ９１）。また、重複判定部２１６は、「パケットｃ」の取得時間から第３の時間が経過した後の時間を、「パケットｃ」の比較終了時間として特定する（Ｓ９２）。そして、重複判定部２１６は、第１パケット群に含まれるミラーパケットのうち、取得時間が「パケットｃ」の比較開始時間から「パケットｃ」の比較終了時間までの間であるミラーパケットとして、例えば、図２６（Ｂ）の網掛け部分に示すように、「パケット４」、「パケット５」及び「パケット６」を特定する（Ｓ９３）。
【０１２３】
その後、例えば、「パケットｃ」と「パケット４」とが重複パケットであると判定した場合、重複判定部２１６は、図２７（Ａ）に示すように、「パケット４」を削除し、「パケットｃ」を第２パケット群から第３パケット群に移動する（Ｓ１０３、Ｓ１１１のＹＥＳ、Ｓ１１２、Ｓ１１３、Ｓ１１４）。
【０１２４】
そして、第２パケット群にミラーパケットが存在しない状態になったため、重複判定部２１６は、図２７（Ｂ）に示すように、第１パケット群に含まれるミラーパケットの全てを第１パケット群から第３パケット群に移動する（Ｓ７３）。
【０１２５】
なお、重複判定部２１６は、Ｓ１１３の処理において、第２パケット群に含まれるミラーパケットの重複パケットが第１パケット群に存在するものと判定した場合に、第２パケット群に含まれるミラーパケットではなく、第１パケット群に含まれるミラーパケットを第３パケット群に含めるものであってよい。
【０１２６】
図２８は、重複パケットが存在する場合に、第１パケット群に含まれるミラーパケットを第３パケット群に含める場合の具体例を説明する図である。重複判定部２１６は、この場合、図２８の網掛け部分に示すように、「パケットａ」及び「パケットｃ」に代えて「パケット２」及び「パケット４」を第３パケット群に追加する。
【０１２７】
このように、キャプチャ装置２は、ネットワークを流れるミラーパケットを取得して記憶装置２ｂに記憶する。そして、キャプチャ装置２は、運用系のキャプチャ装置１の動作状態を判定し、キャプチャ装置１の動作状態が第１の状態にあると判定した場合、記憶装置２ｂに記憶したミラーパケットを削除する。一方、キャプチャ装置２は、キャプチャ装置１の動作状態が第１の状態にあると判定した場合、ミラーパケットを記憶する記憶装置を記憶装置２ｂから記憶装置１ｂに変更する。
【０１２８】
これにより、キャプチャ装置２は、ネットワーク分流機器２ａから取得した全てのミラーパケットを記憶装置２ｂに記憶することなく、キャプチャ装置１及びキャプチャ装置２の両方において蓄積することができなかったミラーパケットの発生を防止することが可能になる。そのため、キャプチャ装置２は、ミラーパケットの蓄積を効率的に行うことが可能になる。
【０１２９】
以上の実施の形態をまとめると、以下の付記のとおりである。
【０１３０】
（付記１）
ネットワークを流れるパケットを記憶する第１の装置に実行させるパケットキャプチャプログラムであって、
前記パケットを取得して第１の記憶部に記憶し、
前記パケットを取得して第２の記憶部に記憶する第２の装置の動作状態を判定し、
前記第２の装置の動作状態が第１の状態にあると判定した場合、前記第１の記憶部に記憶した前記パケットを削除し、前記第２の装置の動作状態が第２の状態にあると判定した場合、前記パケットを記憶する記憶部を前記第１の記憶部から前記第２の記憶部に変更する、
処理を前記第１の装置に実行させることを特徴とするパケットキャプチャプログラム。
【０１３１】
（付記２）
付記１において、
前記パケットを記憶する記憶部を変更する処理では、前記第２の装置が送信した通知を受信してから第１の時間が経過するまでの間、前記第２の装置が前記第１の状態にあると判定し、直前に受信した前記通知を受信してから前記第１の時間が経過した場合、前記第２の装置が前記第２の状態にあると判定する、
ことを特徴とするパケットキャプチャプログラム。
【０１３２】
（付記３）
付記２において、
前記通知は、前記第２の装置から所定の時間毎に送信され、
前記第１の時間は、前記所定の時間よりも長い時間である、
ことを特徴とするパケットキャプチャプログラム。
【０１３３】
（付記４）
付記２において、さらに、
前記第１の装置が有するシステム時間と、前記第２の装置が有するシステム時間との差である第３の時間を算出する、
処理を前記第１の装置に実行させ、
前記パケットを記憶する記憶部を変更する処理では、取得した前記パケットに該パケットの取得時間を付加して前記第１の記憶部に記憶し、
前記パケットを削除する処理では、付加された前記取得時間が、前記第１の時間と前記パケットを記憶する記憶部を変更する処理に要する時間との和である第２の時間と、前記第３の時間とを遡った時間よりも前である前記パケットの削除を行う、
ことを特徴とするパケットキャプチャプログラム。
【０１３４】
（付記５）
付記４において、
前記第２の装置は、取得した前記パケットに該パケットの取得時間を付加してから前記第２の記憶部に記憶し、さらに、
前記パケットを記憶する記憶部を変更する処理が完了した時間から前記第２の時間と前記第３の時間とを遡った時間から、前記パケットを記憶する記憶部を変更する処理が完了した時間から前記第３の時間が経過した後の時間までの時間帯に含まれる前記取得時間が付加された前記パケットを、前記第１の記憶部及び前記第２の記憶部からそれぞれ抽出し、
前記第１の記憶部から抽出された前記パケットと前記第２の記憶部から抽出された前記パケットとにそれぞれ含まれる同一のパケットが存在するか否かを判定し、
前記同一のパケットが存在する場合、前記第１の記憶部から抽出した前記同一のパケットまたは前記第２の記憶部から抽出した前記同一のパケットを削除する、
処理を前記第１の装置に実行させることを特徴とするパケットキャプチャプログラム。
【０１３５】
（付記６）
付記５において、
前記同一のパケットが含まれているか否かを判定する処理では、前記第１の記憶部から抽出した前記パケット及び前記第２の記憶部から抽出した前記パケットに、前記取得時間の差が前記第３の時間以下である削除候補パケットがそれぞれ存在する場合、存在した前記削除候補パケットのそれぞれが同一のパケットであるか否かの判定を行い、
前記同一のパケットを削除する処理では、
前記削除候補パケットのそれぞれが同一のパケットである場合、前記第１の記憶部から抽出した前記同一のパケットまたは前記第２の記憶部から抽出した前記同一のパケットを削除する、
ことを特徴とするパケットキャプチャプログラム。
【０１３６】
（付記７）
ネットワークを流れるパケットを記憶するパケットキャプチャ装置であって、
前記パケットを取得して第１の記憶部に記憶する情報蓄積部と、
前記パケットを取得して第２の記憶部に記憶する他の装置の動作状態を判定する状態判定部と、
前記他の装置の動作状態が第１の状態にあると判定した場合、前記第１の記憶部に記憶した前記パケットを削除し、前記他の装置の動作状態が第２の状態にあると判定した場合、前記パケットを記憶する記憶部を前記第１の記憶部から前記第２の記憶部に変更するパケット管理部と、を有する、
ことを特徴とするパケットキャプチャ装置。
【０１３７】
（付記８）
付記７において、
前記パケット管理部は、前記他の装置が送信した通知を受信してから第１の時間が経過するまでの間、前記他の装置が前記第１の状態にあると判定し、直前に受信した前記通知を受信してから前記第１の時間が経過した場合、前記他の装置が前記第２の状態にあると判定する、
ことを特徴とするパケットキャプチャ装置。
【０１３８】
（付記９）
第１の装置が、ネットワークを流れるパケットを取得して前記パケットを第１の記憶部に記憶し、
第２の装置が、前記パケットを取得して前記パケットを第２の記憶部に記憶し、
前記第１の装置が、
前記第２の装置の動作状態を判定し、
前記第２の装置の動作状態が第１の状態にあると判定した場合、前記第１の記憶部に記憶した前記パケットを削除し、前記第２の装置の動作状態が第２の状態にあると判定した場合、前記パケットを記憶する記憶部を前記第１の記憶部から前記第２の記憶部に変更する、
ことを特徴とするパケットキャプチャ方法。
【０１３９】
（付記１０）
付記９において、
前記パケットを記憶する記憶部を変更する工程では、前記第２の装置が送信した通知を受信してから第１の時間が経過するまでの間、前記第２の装置が前記第１の状態にあると判定し、直前に受信した前記通知を受信してから前記第１の時間が経過した場合、前記第２の装置が前記第２の状態にあると判定する、
ことを特徴とするパケットキャプチャ方法。
【符号の説明】
【０１４０】
１：キャプチャ装置              １ａ：ネットワーク分流機器
１ｂ：記憶装置                  ２：キャプチャ装置
２ａ：ネットワーク分流機器      ２ｂ：記憶装置
３：サーバ装置                  ４：サーバ装置
【図１】
2018074512.tif 000003
【図２】
2018074512.tif 000004
【図３】
2018074512.tif 000005
【図４】
2018074512.tif 000006
【図５】
2018074512.tif 000007
【図６】
2018074512.tif 000008
【図７】
2018074512.tif 000009
【図８】
2018074512.tif 000010
【図９】
2018074512.tif 000011
【図１０】
2018074512.tif 000012
【図１１】
2018074512.tif 000013
【図１２】
2018074512.tif 000014
【図１３】
2018074512.tif 000015
【図１４】
2018074512.tif 000016
【図１５】
2018074512.tif 000017
【図１６】
2018074512.tif 000018
【図１７】
2018074512.tif 000019
【図１８】
2018074512.tif 000020
【図１９】
2018074512.tif 000021
【図２０】
2018074512.tif 000022
【図２１】
2018074512.tif 000023
【図２２】
2018074512.tif 000024
【図２３】
2018074512.tif 000025
【図２４】
2018074512.tif 000026
【図２５】
2018074512.tif 000027
【図２６】
2018074512.tif 000028
【図２７】
2018074512.tif 000029
【図２８】
2018074512.tif 000030