説明

パケット捕捉装置及びコンピュータプログラム

【課題】 ルータ越えのパケットの捕捉と、ルータの配下にある通信端末の接続確認とを行えるとともに、通信サービスの料金の高騰化やその提供範囲の縮小化を抑制できるパケット捕捉装置を提供する。
【解決手段】 本発明は、ネットワークを流れるパケットを捕捉するパケット捕捉装置5に関する。この装置5は、グローバルアドレスが割り当てられないWANポート5Aと、ローカルアドレスを割り当て可能なLANポート5Bと、WAN側とLAN側との間でルータ3を越えて送受信されるパケットである第1パケットP1をWANポート5Aから捕捉する捕捉部52と、ルータ3を越えないパケットである第2パケットP2をLANポート5Bから送受信する通信制御部54とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを流れるパケットを捕捉するパケット捕捉装置と、その捕捉をコンピュータに実行させるためのコンピュータプログラムに関する。
【背景技術】
【0002】
インターネットを利用した通信では様々な障害が発生する。例えば、ネット配信による動画の乱れや静止、所定のウェブページを閲覧した時に生じるエラーメッセージやレスポンスの遅延、所定の相手方への電子メールの不達、ファイル転送プロトコル(FTP)でのログイン不可などの障害である。
かかるネットワーク障害は、特定のサーバに対するトラフィックの集中や、パケット通信が可能なパーソナルコンピュータ等の端末装置(以下、「通信端末」という。)又はパケット中継を行うルータに対するネットワーク設定の誤りが原因であることが多い。
【0003】
そこで、パケットキャプチャソフト(LANアナライザともいう。)を通信端末にインストールし、そのソフトを用いてネットワーク障害の原因を分析することが行われている(非特許文献1参照)。
かかるパケットキャプチャソフトは、ネットワークから所望のパケットを捕捉(キャプチャ)し、捕捉したパケットの内容をヒューマンリーダブルに画面表示するツールであり、ワイヤーシャーク(Wireshark :登録商標)が最も一般的に知られている。
【0004】
このパケットキャプチャソフトを使用すれば、例えば、ネットワークに流れるパケットのヘッダ情報をリスト表示したり、所定のプロトコルに従って送受信されるパケットのシーケンスをラダー表示したり、プロトコルのコマンドやデータ内容等に問題がある異常なパケットをフィルタリングすることができる。
従って、これらの機能により、ネットワーク中の異常なトラフィックの発生や、パケットの送信間隔の揺らぎから通信が輻輳しているか否かなどを分析することができる。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】「パケットキャプチャ実践技術 Wiresharkによるパケット解析 応用編」 竹下恵著 株式会社リックテレコム発行 10〜12頁
【発明の概要】
【発明が解決しようとする課題】
【0006】
図10は、上記のようなパケットキャプチャ機能を有する通信端末(以下、「パケット捕捉装置」という。)のネットワークに対する接続位置のバリエーションを示す図である。
なお、図10において、「ONU(Optical Network Unit)」は宅側の光回線終端装置であり、「OLT(Optical Line Terminal)」は通信事業者側の光回線終端装置であり、「ルータ」は宅側に設置された例えばブロードバンドルータよりなる。
【0007】
図10(a)の接続例1は、パケット捕捉装置をルータのLAN側に接続した例であり、図10(b)の接続例2は、タップやリピータハブ等を介してパケット捕捉装置をルータのWAN側(ONUとルータの間)に接続した例である。また、図10(c)の接続例3は、パケット捕捉装置を通信事業者側のOLTに接続した例である。
【0008】
上記バリエーションのうち、接続例1の場合には、WAN側からLAN側又はその逆にルータを通過するパケット(以下、「ルータ越えパケット」ということがある。)については、ルータでスイッチされるためにパケット捕捉装置には届かない。
このため、接続例1のパケット捕捉装置では、パケット捕捉装置を宅側に設けているにも拘わらず、宅側のルータ配下の通信端末が送受信するルータ越えパケットを捕捉できないという欠点がある。
【0009】
これに対して、接続例2の場合には、パケット捕捉装置がルータのWAN側に接続されているため、宅側のルータ配下の通信端末が送受信するルータ越えパケットを捕捉することができる。
しかし、例えば、宅側のルータ配下の通信端末の接続確認を行うために、所定の要求パケット(例えば、pingコマンドのICMPパケット)をパケット捕捉装置から送信する場合には、当該捕捉装置にもグローバルIPアドレスを割り当てる必要がある。
【0010】
このため、グローバルIPアドレスの取得に伴うコストが通信サービスの料金に還元され、一般ユーザーにとってより高価な通信サービスになるという欠点がある。
また、グローバルIPアドレスは有限の資源であり、1つのサービスプロバイダが管理するグローバルIPアドレスの数にも限りがあるため、パケット捕捉装置を設置するごとにグローバルIPアドレスの付与が必要となるのでは、当該プロバイダによる通信サービスの提供範囲が縮小するという欠点もある。
【0011】
また、接続例3では、パケット捕捉装置が通信事業者のOLTに接続されているため、ルータ配下の通信端末からのパケットを受信できるが、パケット捕捉装置が送信したパケットはルータのファイアウォールにブロックされる。
このため、接続例3のパケット捕捉装置では、所定の要求パケットをルータ配下の通信端末に送信できないので、その接続確認を行うことができない。
【0012】
本発明は、かかる従来の問題点に鑑み、ルータ越えのパケットの捕捉と、ルータの配下にある通信端末の接続確認とを行えるとともに、通信サービスの料金の高騰化やその提供範囲の縮小化を抑制できるパケット捕捉装置を提供することを目的とする。
【課題を解決するための手段】
【0013】
(1) 本発明のパケット捕捉装置は、ネットワークを流れるパケットを捕捉するパケット捕捉装置であって、グローバルアドレスが割り当てられないWANポートと、ローカルアドレスを割り当て可能なLANポートと、WAN側とLAN側との間でルータを越えて送受信される前記パケットである第1パケットを前記WANポートから捕捉する捕捉部と、前記ルータを越えない前記パケットである第2パケットを前記LANポートから送受信する通信制御部と、を備えていることを特徴とする。
【0014】
本発明のパケット捕捉装置によれば、WAN側とLAN側との間でルータを越えて送受信されるパケットである第1パケットをWANポートから捕捉し、ルータを越えないパケットである第2パケットをLANポートから送受信するので、ルータ越えのパケットの捕捉と、ルータの配下の通信端末の接続確認とを1つのパケット捕捉装置にて行うことができる。
また、本発明のパケット捕捉装置によれば、第1パケットの捕捉ポイントであるWANポートにグローバルアドレスが割り当てられないので、パケット捕捉装置の設置に伴うアドレス取得によって通信サービスの料金が高騰化したり、通信サービスの提供範囲が縮小化したりするのを抑制することができる。
【0015】
なお、ルータの配下の通信端末に対する接続確認は、セッション確立用のパケット(例えば、pingコマンドのICMPパケット)をLANポートから送信し、その返信があるか否かによって行うことができる。
【0016】
(2) 本発明のパケット捕捉装置において、捕捉された前記第1パケットを用いて次の(a)又は(b)若しくはこれらの双方の解析を行うパケット解析部を更に設けることが好ましい。
(a) 第1パケットの内容から通信エラーの発生を分析するミクロ解析
(b) 同種の複数の第1パケットの履歴からトラフィック状況又はシーケンスエラーを分析するフロー解析
かかるパケット解析部を設けるようにすれば、第1パケットについて生じるネットワーク障害の原因の分析を当該パケット捕捉装置にて行うことができる。
【0017】
(3) ところで、パケット通信に用いるルータでは、通常、NAT(Network Address Translation)等のアドレス変換機能が実装されている。
例えば、NATは、TCPやUDPのポート番号を動的に変換することで、1つのグローバルIPアドレスで複数の通信端末の同時に接続を可能にする技術である。従って、ルータを越える第1パケットは、通常、NAT等によってアドレスの変換が行われるため、WAN側から見た場合にどの通信端末と接続中であるかを認識できない。
【0018】
そこで、本発明のパケット捕捉装置において、パケット通信を行う複数の通信端末が前記ルータのLAN側に含まれる場合に、前記第1パケットと前記通信端末との対応付けを行う端末特定部を、更に備えていることが好ましい。
【0019】
(4) 具体的には、前記通信制御部が、前記第1パケットの中継時に前記ルータが行うアドレス変換に用いる変換テーブルを前記ルータから取得可能である場合には、前記端末特定部は、前記第1パケットに記されたアドレス情報及びポート情報と、取得された前記変換テーブルのアドレス情報及びポート情報とに基づいて、前記対応付けを行うようにすればよい。
この場合、変換テーブルをルータから取得するために、管理者権限でルータにログインする必要があるが、すべての種類のパケットに対応できる利点がある。
【0020】
(5) 更に具体的には、前記端末特定部は、エントリごとの定義項目として、前記通信端末のローカル識別情報(例えば、ローカルアドレス)と、これに対応付けた前記第1パケットのアドレス情報及びポート情報とを含む端末対応テーブルを生成することが好ましい。
この場合、捕捉された前記第1パケットのアドレス情報及びポート情報と一致する前記エントリを前記端末対応テーブルの中からサーチすることにより、前記第1パケットに対応する前記通信端末を特定することができる。
【0021】
(6) 本発明のパケット捕捉装置において、前記捕捉部が、前記アドレス変換によって変換されない前記通信端末の固有識別情報を含む前記第1パケットを捕捉可能である場合には、前記端末特定部は、前記第1パケットに記された前記固有識別情報に基づいて、前記対応付けを行うことができる。
この場合、固有識別情報を設定した通信端末しか対応付けを行えないが、変換テーブルをルータから取得する必要がないので、ルータにログインできない場合でも対応付けを行うことができる。
【0022】
なお、ルータでのアドレス変換によって変換されない通信端末の固有識別情報の設定方法としては、例えば、HTTPパケットのリクエストパケットに埋め込まれている、HTTPのヘッダ情報の一部を構成する「ユーザエージェント」に、所定の通信端末固有の文字列を設定することが考えられる。
【0023】
(7) 上記固有識別情報を利用した対応付けを行う場合には、前記端末特定部は、エントリごとの定義項目として、前記通信端末のローカル識別情報及び前記固有識別情報と、これに対応付けた前記第1パケットのアドレス情報及びポート情報とを含む端末対応テーブルを生成することが好ましい。
この場合、捕捉された前記第1パケットのアドレス情報及びポート情報と一致する前記エントリを前記端末対応テーブルの中からサーチすることにより、前記第1パケットに対応する前記通信端末を特定することができる。
【0024】
(8) また、この場合、前記端末特定部は、前記第1パケットに記されたポート情報に基づいて、当該第1パケットに対応付けた前記通信端末が使用する通信アプリケーションを特定することにしてもよい。
【0025】
(9) 本発明のパケット捕捉装置において、前記通信制御部が、前記通信端末が送受信した所定時間ごとの前記第1パケットのトラフィック情報である端末統計データを当該通信端末からそれぞれ取得可能である場合には、前記端末特定部は、前記捕捉部で捕捉された前記第1パケットの所定時間ごとのトラフィック情報である捕捉統計データと、取得された前記端末統計データとに基づいて、前記対応付けを行うこともできる。
【0026】
この場合、各通信端末からトラフィック情報の計測値(端末統計データ)を取得する必要があるが、変換テーブルをルータから取得する必要がないので、ルータにログインできない場合でも対応付けを行うことができる。
なお、上記「トラフィック情報」としては、例えば、パケット数や、ヘッダ情報から特定されるパケット長などがある。
【0027】
(10) ここで、所定時間内において、ルータの配下にあるいずれか1つの通信端末がルータを越えるパケットを送信した場合には、それ以外の通信端末の端末統計データは、同定済み及び未同定の捕捉統計データの合計値よりも小さくなる。従って、上記捕捉統計データ及び端末統計データを用いた対応付けは、より具体的には、次の「フロー同定処理」によって行うことができる。
すなわち、前記端末特定部は、特定の前記通信端末に属するすべての同定済みの前記捕捉統計データと未同定の前記捕捉統計データとの合計値が、特定の前記通信端末についての前記端末統計データよりも大きい場合に、当該特定の前記通信端末を未同定の前記捕捉統計データの端末候補から外す処理を、その端末候補が1つだけ残るまで継続するフロー同定処理を行うことにより、未同定の捕捉統計データ(第1パケット)を1つの通信端末と対応付けることができる。
【0028】
(11) それらの統計データを用いた対応付けを行う場合にも、前記端末特定部は、エントリごとの定義項目として、前記通信端末のローカル識別情報(例えば、ローカルアドレス)と、これに対応付けた前記第1パケットのアドレス情報及びポート情報とを含む端末対応テーブルを生成することが好ましい。
この場合、捕捉された前記第1パケットのアドレス情報及びポート情報と一致する前記エントリを前記端末対応テーブルの中からサーチすることにより、前記第1パケットに対応する前記通信端末を特定することができる。
【0029】
(12) また、前記端末対応テーブルにおいて、前記第1パケットのアドレス情報及びポート情報が一致する複数の未同定の前記エントリが存在する場合には、前記端末特定部は、前記フロー同定処理を行って未同定の前記エントリがどの前記通信端末に属するかを判定すればよい。
【0030】
(13) 本発明のパケット捕捉装置において、前記端末対応テーブルに、前記エントリの定義項目として、前記第1パケットの受信時刻が記されるタイムスタンプが更に含まれている場合には、前記端末特定部は、現在時刻と前記タイムスタンプの値との差が所定値以上である前記エントリを前記端末対応テーブルから削除することが好ましい。
その理由は、ルータが行うアドレス変換ではポート情報が動的に変更され、いったん特定した通信端末と第1パケットとの対応づけが何時までも通用するものではないので、所定時間が経過した古い対応付けのエントリを使用すべきではないからである。
【0031】
(14) 本発明のコンピュータプログラムは、グローバルアドレスが割り当てられないWANポートと、ローカルアドレスを割り当て可能なLANポートとを備えたパケット通信が可能なコンピュータを、ネットワークを流れるパケットの捕捉装置として機能させるコンピュータプログラムであって、WAN側とLAN側との間でルータを越えて送受信される前記パケットである第1パケットを前記WANポートから捕捉するステップと、前記ルータを越えない前記パケットである第2パケットを前記LANポートから送受信するステップと、を含むことを特徴とする。
【0032】
上記の通り、本発明のコンピュータプログラムは、本発明のパケット捕捉装置と実質同一の発明であり、当該装置と同じ作用効果を奏する。
なお、本発明のコンピュータプログラムにおいて、上述の(2)〜(13)に記述した各処理を含めることにしてもよい。
【発明の効果】
【0033】
以上の通り、本発明によれば、ルータ越えのパケットの捕捉をグローバルアドレスが割り当てられないWANポートから行い、パケットの送受信をローカルアドレスの割り当てが可能なLANポートから行うので、ルータ越えのパケットの捕捉と、ルータの配下にある通信端末の接続確認とを行えるとともに、グローバルアドレスの取得によって通信サービスの料金が高騰化したり、通信サービスの提供範囲が縮小化したりするのを抑制することができる。
【図面の簡単な説明】
【0034】
【図1】本発明のパケット捕捉装置を適用した通信システムの全体構成図である。
【図2】ルータの内部構成を示すブロック図である。
【図3】NATテーブル(変換テーブル)の一例を示す図である。
【図4】パケット捕捉装置の内部構成を示すブロック図である。
【図5】端末対応テーブルの一例を示す図である。
【図6】第1の変形例で用いる端末対応テーブルを示す図である。
【図7】第2の変形例で用いる複数のテーブルを示す図である。
【図8】フロー同定処理の具体例を示す説明図である。
【図9】フロー同定処理の具体例を示す説明図である。
【図10】パケット捕捉装置のネットワークに対する接続位置のバリエーションを示す図である。
【発明を実施するための形態】
【0035】
以下、図面を参照しつつ、本発明の実施形態を説明する。
〔システムの全体構成〕
図1は、本発明のパケット捕捉装置5を適用した通信システムの全体構成図である。
図1に示すように、この通信システムは、通信事業者側の光回線終端装置であるOLT1、宅側の光回線終端装置であるONU2、ブロードバンドルータ等の中継装置よりなるルータ3、例えばIP(Internet Protocol)に基づくパケット通信が可能な複数の通信端末4、及び、パケット捕捉装置5などを備えている。
【0036】
OLT1とONU2は光カプラを介して光ファイバによって接続されており、OLT1は広域ネットワーク6と接続されている。本実施形態の広域ネットワーク6はインターネットである。
なお、図1のシステム構成例では、FTTHを想定してONU2よりなる回線終端装置を例示しているが、その他の回線終端装置として、ADSLモデムやCATVモデムを採用することもできる。
【0037】
ONU2とルータ3とは、イーサネットケーブル(注記:「イーサネット」は登録商標である。)7などの通信回線を介して互いに接続されている。また、このケーブル7の途中には、タップ又はリピータハブ等よりなるハブ8が設けられている。
このハブ8は、ONU2とルータ3との間で送受信されるイーサネットケーブル7を流れるすべてのIPパケットを、パケット捕捉装置5が接続されたポートにそのまま流す機能を有する。
【0038】
ルータ3は、IPパケットのルーティング機能を有する中継装置であり、1つのWANポート3Aと1又は複数のLANポート3Bとを有する。なお、図例では、ルータ3にLANポート3Bが2つ設けられているが、その数は2つに限定されない。
ルータ3のLANポート3Bには、イーサネットケーブル9などの通信回線を介して各種の通信端末4が接続されている。この通信端末4は、例えば、IP通信が可能なパーソナルコンピュータ(PC)、サーバコンピュータ或いはテレビなどの家電製品よりなる。
【0039】
図1に示す「LAN1」は、ルータ3の一方のLANポート3Bに接続された構内ネットワークであり、「LAN2」は、ルータ3の他方のLANポート3Bに接続された構内ネットワークである。
これらの構内ネットワークLAN1,LAN2は、1又は複数のスイッチングハブ10を用いて多段接続することによって構成されており、当該ネットワークの終端部分に通信端末4を有する。
【0040】
本実施形態のパケット捕捉装置(以下、単に「捕捉装置」ということがある。)5は、ONU2とルータ3の間を流れる、WAN側とLAN側との間で送受信されるルータ越えのパケット(具体的には、IPパケット)を捕捉するための装置であり、1つのWANポート5Aと1つのLANポート5Bとを有する。
また、図1の例では、捕捉装置5のWANポート5Aは、ハブ8のキャプチャ用ポートに接続されており、捕捉装置5のLANポート5Bは、LAN2に含まれるスイッチングハブ10に接続されている。
【0041】
なお、以下において、ONU2とルータ3の間を流れる通信パケットP1を「第1パケット」といい、捕捉装置5のLANポート5Bから送受信される通信パケットP2を「第2パケット」という。
また、「パケット」は、レイヤ3の通信で使われるPDUの呼び名として用いる場合もあるが、本明細書では、コンピュータ間の通信に使用するデータを送る単位の意味(従って、PDUと同じ。)でも使用している。更に、本明細書において、LAN側からWAN側に流れるパケットを「上りパケット」といい、WAN側からLAN側に流れるパケットを「下りパケット」という。
【0042】
〔ルータの基本的機能〕
本実施形態のルータ3は、インターネット6との常時接続を可能とするため、IPパケットの中継機能の他に、IPパケットの動的フィルタリング機能、NAT機能、DHCP機能、PPPoE機能、ARP機能などを備えている。
【0043】
このうち、動的フィルタリングは、TCPやUDPのセッションをルータ3が管理し、ルータ3内部(LAN側)のクライアントがインターネットのWebサーバにアクセスしているときに、そのWebサーバからの応答パケットだけを通過させるように制御する機能である。
また、WAN側からACK信号付きのIPパケットを受信すると、これに対応するデータがLAN側から送信されたかどうかセッションログから確認し、WAN側から送信されたIPパケットとセッションログが矛盾する場合にはパケットを遮断して、LAN内部の端末を不正アクセスから保護する「ステートフルインスペクション」が行われる。
【0044】
NATは、1つのグローバルIPアドレスを複数の端末で共有するため、構内でのみ通用するローカルIPアドレスと、インターネット上のグローバルIPアドレスを透過的に相互変換するアドレス変換方式である。
NATは、TCP又はUDPのポート番号も動的に変換することで、1つのグローバルIPアドレスで複数のマシンからの同時接続を可能とする。ポート番号の変換が行われるため、WAN側からLAN内部のマシンに接続を開始することはできない。もっとも、pingのICMPパケットの場合は、「query ID」を変換することでNATを通過する。
【0045】
PPPoEは、イーサネットを通してPPP機能を利用するためのプロトコルである。通常のPPPと異なり、ネットワークカード(NIC)の持つ固有のMACアドレスによって双方のコンピュータを識別し、その間に仮想回線を展開する。
PPPoEを利用すると、LAN上からもユーザー認証やIPアドレスの割り当てなどが可能になるので、これを利用すれば、ADSLやCATV、光ファイバなどによる常時接続サービスにおいて、接続するプロバイダを簡単に切り替えられる。
【0046】
TCP/IPネットワークでイーサネットフレームを送信するには、宛先のMACアドレスを指定する必要がある。ARPは、MACアドレスを宛先のIPアドレスから求めるためのプロトコルである。
宛先のMACアドレスが分からない場合、送信元はIPアドレスのMACアドレスを問い合わせるARPリクエストをブロードキャストで送信する。このリクエストに対して、指定されたIPアドレスを持っているマシンがMACアドレスを通知するARPリプライを返す。これにより、送信元は入手したMACアドレスを宛先として、イーサネットフレームを作成する。
【0047】
〔ルータの内部構成〕
図2は、ルータ3の内部構成を示すブロック図である。
図2に示すように、ルータ3は、WAN側からLAN側に向かって順に、第1インタフェース部31、第1通信制御部32、中継処理部33、第2通信制御部34、第2インタフェース部35及びNATテーブル(変換テーブル)36を備えている。
【0048】
第1インタフェース部31は、前記WANポート3Aを有するイーサネット仕様の接続インタフェースであり、第1通信制御部32は、第1インタフェース部31におけるパケットの送受信を制御する。
第1通信制御32は、宛先IPアドレスがLAN側の端末であるパケットについては、それを中継処理部33に渡す。
【0049】
第2インタフェース部35は、前記LANポート3Bを有するイーサネット仕様の接続インタフェースであり、第2通信制御部35は、第2インタフェース部35におけるパケットの送受信を制御する。
第2通信制御部34は、宛先IPアドレスがWAN側の端末であるパケットについては、それを中継処理部33に渡す。
【0050】
中継処理部33は、一方の通信制御部32(又は34)からパケットを受けると、そのパケットからアドレス情報とポート情報を抽出し、NATテーブル36を参照して、抽出したアドレス情報とポート情報の変換を行う。
また、中継処理部33は、変換後のアドレス情報とポート情報を記したパケットを他方の通信制御部34(又は32)に渡す。
【0051】
図3は、NATテーブル(変換テーブル)の一例を示す図である。
図3に示す各変数の意味は、次の通りである。
「Private IP」 :LAN側端末のIPアドレス
「Port1」 : LAN側端末のポート番号
「Pseudo Port」:疑似ポート番号
「Peer IP」 :WAN側端末のIPアドレス
「Port2」 : WAN側端末のポート番号
【0052】
「srcIP」 :送信元のIPアドレス
「srcPort」 :送信元のポート番号
「destIP」 :宛先のIPアドレス
「destPort」 :宛先のポート番号
なお、図3において、値が「0」のポートは閉鎖していることを意味する。また、図3では省略しているが、NATテーブル36には、「TCP」や「UDP」などのプロトコルの種別を示す項目も含まれる。
【0053】
ここで、例えば、図3の上から第2番目のエントリに着目し、このエントリに一致する上りパケットを中継処理部33が受けたとする。
この場合、中継処理部33は、宛先のIPアドレスdestIPの値(61.228.126.144)と宛先のポート番号destPort の値(14702)はそのままで、かつ、送信元のIPアドレスsrcIP の値をルータ3に設定された値とし、送信元のポート番号srcPortを擬似ポート番号の値(50239)に置き代えて、WAN側に送出するIPパケットを生成する。
【0054】
逆に、中継処理部33は、宛先と送信元とが入れ替わった下りパケットを受けると、下り方向では宛先に指定されている擬似ポート番号の値(50239)と一致する、ローカルIPアドレスと真のローカルポート番号を、NATテーブル36から割り出し、そのアドレスとポート番号を宛先として、LAN側に送出するIPパケットを生成する。
【0055】
〔パケット捕捉装置の内部構成〕
図4は、パケット捕捉装置5の内部構成を示すブロック図である。
図4に示すように、本実施形態の捕捉装置5は、第1インタフェース部51、捕捉部52、制御部53、通信制御部54、第2インタフェース部55、端末対応テーブル56、そのテーブル56の格納領域を有する記憶部57を備えている。
【0056】
第1インタフェース部51は、前記WANポート5Aを有する例えばイーサネット仕様の接続インタフェースであり、このWANポート5Aには、グローバルIPアドレスが割り当てられない。
従って、捕捉部52は、第1インタフェース部51における通信パケットの受信のみを行い、WANポート5Aに流れ込む第1パケットP1を含むすべての通信パケットを取り込む。捕捉部52は、取り込んだ通信パケットを制御部53に渡す。
【0057】
第2インタフェース部55は、前記LANポート5Bを有する例えばイーサネット仕様の接続インタフェースであり、このLANポート5Bには、所定のローカルIPアドレスを動的又は固定的に割り当て可能である。
従って、通信制御部54は、第2インタフェース部55における第2パケットP2を含む通信パケットの送受信を制御する。通信制御部54は、宛先MACアドレスが自装置である通信パケットについては、それを制御部53に渡す。
【0058】
〔端末対応テーブル〕
図5は、端末対応テーブル56の一例を示す図である。
端末対応テーブル56は、後述する「端末特定処理」に使用するものである。端末対応テーブル56は、エントリごとの定義項目として、LAN側の通信端末4のローカルな識別情報であるローカルIPアドレスを記す「端末情報」と、この端末情報と対応する第1パケット(図5の例では上り方向)の「アドレス情報」及び「ポート情報」である、「srcIP」、「srcPort」、「destIp」及び「destPort」とが含まれている。
【0059】
また、各エントリには、第1パケットP1の時刻情報である「Timestamp」も含まれている。この「Timestamp」は捕捉装置5が第1パケットP1を受信した時刻のことである。
制御部53は、記憶部57に格納されたコンピュータプログラムを読み出して実行することによって実現される処理として、「端末特定処理」、「接続確認処理」及び「パケット解析処理」を実行する。以下、これらの処理の内容を説明する。
【0060】
なお、捕捉装置5の制御部53による各処理を実現する所定のコンピュータプログラムは、上記の通り、捕捉装置5の記憶部57にインストールされているが、このコンピュータプログラムは、CD−ROM、DVD−ROMなどの記録媒体に格納して販売又は譲渡することができる。
また、このコンピュータプログラムの販売又は譲渡は、サーバコンピュータからネットワーク経由でダウンロードすることによって行こともできる。
【0061】
〔端末特定処理〕
制御部53による「端末特定処理」は、ルータ3のLAN側に複数の通信端末4が含まれる場合に、第1パケットP1と通信端末4との対応付けを行う処理である。
本実施形態の制御部53は、この端末特定処理を、ルータ3が保持している前記NATテーブル36を参照することによって行う。
【0062】
すなわち、制御部53は、接続要求のための制御パケットをルータ3宛で送信するように通信制御部54に指令を与え、管理者権限でルータ3にログインすることにより、ルータ3が保持しているNATテーブル36を任意に参照可能となっている。
従って、この処理の例では、ルータ3の管理者IDとパスワードの情報をパケット捕捉装置5に設定しておく必要がある。
【0063】
このように、ルータ3のNATテーブル36を捕捉装置5から参照可能である場合には、制御部53は、次のステップS1〜ステップS4の処理を実行する。
なお、以下の記述では、上りパケットの場合を想定しているが、下りパケットの場合には、src側をdest側に読み替え、かつ、dest側をsrc側に読み替えた処理となる。
【0064】
(ステップS1)
まず、制御部53は、捕捉部52が捕捉した通信パケットから上りの第1パケットP1を抽出し、その第1パケットの「srcIP」、「srcPort」、「destIp」、「destPort」の値を取り出す。
(ステップS2)
次に、制御部53は、記憶部57の端末対応テーブル56(図5)にアクセスし、「srcIP」、「srcPort」、「destIp」及び「destPort」の値(アドレス情報とポート情報の値)が同じである、第1パケットP1のエントリが存在するか否かを判定する。
【0065】
(ステップS3−1): エントリが存在しない場合
上記判定の結果、端末対応テーブル56にエントリが存在しない場合は、制御部53は次の処理a)〜d)を行う。
a) ルータ3にアクセスしてNATテーブル36を参照する。
b) NATテーブル36を参照することで、第1パケットP1がどの通信端末4のものかを特定する。
【0066】
この特定は、例えば、「srcPort」、「destIP」及び「destPort」の値をキーとしてNATテーブル36をサーチし、「PseudoPort」、「PeerIP」及び「Port2」の値がマッチするエントリのローカルIPアドレスを特定することによって行うことができる。
c) 特定したローカルIPアドレスと、これに対応する第1パケットP1の「srcIP」、「srcPort」、「destIp」、「destPort」を、端末対応テーブル56のエントリに登録する。
d) 第1パケットP1の受信時刻で「Timestamp」の値を更新する。
【0067】
(ステップS3−2):エントリが存在する場合
上記判定の結果、端末対応テーブル56にエントリが存在する場合には、制御部53は次の処理e)〜f)を行う。
e) エントリに含まれるローカルIPアドレスを、当該第1パケットP1に対応する通信端末4として特定する。
f) 第1パケットP1の受信時刻で「Timestamp」の値を更新する。
【0068】
(ステップS4):エントリの削除
また、制御部53は、端末対応テーブル56の「Timestamp」の値を定期的にスキャンし、現在時刻と「Timestamp」の値を比較する。
そして、制御部53は、一定時間以上経過しているエントリ、すなわち、現在時刻と「Timestamp」の値の差が所定値以上であるか否かを判定し、この判定結果が肯定的となる古いエントリを端末対応テーブル56から削除する。
【0069】
〔接続確認処理〕
制御部53による「接続確認処理」は、ルータ3の配下にある各通信端末4がLANに接続されているか否かを確認する処理である。
この処理は、例えば、pingコマンドのICMPパケットをLANポート5Bから送信するように通信制御部54に指示することによって行われる。
この場合、特定の通信端末4から返信があれば、その通信端末4が正常にLAN1又はLA2に接続されていると判定でき、返信がなければ接続されていないと判定できる。
【0070】
〔パケット解析処理〕
制御部53による「パケット解析処理」には、第1パケットP1の内容から通信エラーの発生を分析する「ミクロ解析」と、同種の複数の第1パケットP1の履歴からトラフィック状況やシーケンスエラーなどを分析する「フロー解析」とがある。
【0071】
制御部53は、上記「ミクロ解析」を行う場合、第1パケットP1の制御情報の値等に基づいて、パケットに誤りがあるかどうかを解析する。
例えば、TCPパケットのヘッダ情報には、当該パケットが格納しているデータが元のデータのどの部分に当たるかを示す、32ビットの数値で表された「シーケンス番号」が含まれている。
【0072】
このシーケンス番号は、コネクションの開始時の「初期シーケンス番号」とデータの先頭からのバイト数とで決定されるもので、コネクションの初期のシーケンス番号が「10000」の場合、最初の1バイト目のデータを転送するTCPパケットのシーケンス番号は、「10001」になり、先頭から1000バイト目のデータを転送するTCPパケットのシーケンス番号は、「11000」になる。
従って、かかるシーケンス番号の連続性をチェックすることにより、ある端末同士の通信が途切れた場合に、その原因がどちらにあるかを解析することができる。
【0073】
一方、制御部53は、上記「フロー解析」を行う場合、同種の複数の第1パケットP1を所定時間に渡って収集し、そのパケット間の時間間隔をチェックすることにより、ネットワーク機器の接続状態の健全性や、ネットワークの輻輳などを解析する。
例えば、マルチキャストで送信されるRTP(Real-time Transport Protocol)パケットの場合には、ある時点でパケット間の時間間隔が大幅に遅れたことを検出できれば、サーバからの通信が輻輳していると推定できる。
【0074】
また、例えば、ICMPパケットのエコー要求とそのエコー応答の場合には、ある時点でエコー応答が来なくなったことを検出できれば、その時点において何らかの理由でサーバの通信が切断したと推定できる。
制御部53は、上記のような「ミクロ解析」や「フロー解析」を行った結果、所定の通信エラーを検出した場合には、そのエラーのログ情報を含む送信パケットを生成し、その送信パケットを、パケット捕捉装置5の制御端末である通信端末4に送信する。
【0075】
〔パケット捕捉装置の効果〕
以上の通り、本実施形態のパケット捕捉装置5によれば、ルータ3を越えるパケットである第1パケットP1をWANポート5Aから捕捉し、ルータ3を越えないパケットである第2パケットP2をLANポート5Bから送受信するので、ルータ越えのパケットの捕捉と、ルータ3の配下の通信端末4の接続確認とを1つのパケット捕捉装置5を用いて行うことができる。
【0076】
また、本実施形態のパケット捕捉装置5によれば、第1パケットP1の捕捉ポイントであるWANポート5BにグローバルIPアドレスが割り当てられないので、パケット捕捉装置5の設置に伴うアドレス取得の必要がない。このため、通信サービスの料金が高騰化したり、通信サービスの提供範囲が縮小化したりするのを抑制できるという利点もある。
更に、本実施形態のパケット捕捉装置5によれば、制御部53が、第1パケットP1と通信端末4との対応付けを行うことができるので、ルータ3のLAN側に複数の通信端末4が含まれていても、宛先又は送信元の通信端末4が明らかなパケットを捕捉することができる。
【0077】
〔第1の変形例〕
第1の変形例は、制御部53が行う他の「端末特定処理」に関するものであり、この変形例では、NATによって変換されない通信端末4固有の「固有識別情報」を利用して端末特定処理を行う。かかる固有識別情報としては、例えば、HTTPヘッダ情報の一部を構成する「ユーザエージェント」がある。
【0078】
このユーザエージェントの情報を通信端末4に設定しておけば、通信端末4は、その情報をHTTPリクエストパケットに埋め込んでインターネット6に送信する。
このHTTPのヘッダ情報はNATで変換されないため、第1パケットP1の捕捉ポイントである捕捉装置5のWANポート5Bにおいて捕捉された第1パケットP1から抽出したユーザエージェントの情報とアドレス情報とから、通信端末4の特定が可能となる。
【0079】
図6は、第1の変形例で用いる端末対応テーブル56Aを示す図である。
この変形例の端末対応テーブル56Aが上述の実施形態で使用した図5の端末対応テーブル56と異なる点は、ローカルIPアドレスの他に、上記固有識別情報が記される「UserAgent」の項目が端末情報に加えられている点にある。
【0080】
以上を前提として、パケット捕捉装置5の制御部53は、次のステップT1〜ステップT3の処理を実行する。
なお、以下の記述でも、上りパケットの場合を想定しているが、下りパケットの場合には、src側をdest側に読み替え、かつ、dest側をsrc側に読み替えた処理となる。
【0081】
(ステップT1)
まず、制御部53は、捕捉部52が捕捉した通信パケットから上りの第1パケットP1を抽出し、その第1パケットの「srcIP」、「srcPort」、「destIp」、「destPort」の値を取り出す。
(ステップT2)
次に、制御部53は、端末対応テーブル56A(図6)にアクセスし、「srcIP」、「srcPort」、「destIp」、「destPort」の値が同じである、第1パケットP1のエントリが端末対応テーブル56Aに存在するか否かを判定する。
【0082】
(ステップT2−1): エントリが存在しない場合
上記判定の結果、端末対応テーブル56Aにエントリが存在しない場合は、制御部53は次の処理a)〜b)を行う。
a) 第1パケットP1がHTTPリクエストパケットの場合は、そのパケットからユーザエージェントの情報を取得し、端末対応テーブル56Aにエントリを追加する。
b) 第1パケットP1がHTTPリクエストパケットでない場合は、そのパケットを不明(Unknown)なパケットに分類する。
【0083】
(ステップT2−2): エントリが存在する場合
上記判定の結果、端末対応テーブル56Aにエントリが存在する場合には、制御部53は次の処理c)〜d)を行う。
c) エントリに含まれるローカルIPアドレスを、当該第1パケットに対応する通信端末4として特定する。
d) 第1パケットP1の受信時刻で「Timestamp」の値を更新する。
【0084】
なお、第1の変形例において、制御部53は、第1パケットP1のポート情報(具体的には、「srcPort」や「destPort」の値)に基づいて、当該第1パケットP1に対応付けた通信端末4が使用する通信アプリケーションを特定することも可能である。
このように、第1パケットP1のポート情報を利用すれば、端末特定処理にて特定された通信端末4が如何なるフロー(すなわち、通信アプリケーション)を使用中かが判明するので、フローごとのネットワーク異常の検出に役立てることができる。
【0085】
(ステップT3):エントリの削除
第1の変形例の場合も、制御部53は、端末対応テーブル56Aの「Timestamp」の値を定期的にスキャンし、現在時刻と「Timestamp」の値を比較する。
そして、制御部53は、一定時間以上経過しているエントリ、すなわち、現在時刻と「Timestamp」の値の差が所定値以上であるか否かを判定し、この判定結果が肯定的となる古いエントリを端末対応テーブル56Aから削除する。
【0086】
〔第2の変形例〕
第2の変形例も、制御部53が行う他の「端末特定処理」に関するものであり、この変形例では、捕捉装置5がキャプチャした所定時間ごとの上り下り方向別のパケット数(パケットフロー)である「捕捉統計データ」と、各通信端末4がカウントした所定時間ごとの上り下り方向別のバケット数(パケットフロー)である「端末統計データ」を利用して端末特定処理を行う。
LAN側の各通信端末4が、自身で送受信するパケット数を計測している場合には、この変形例による端末特定処理が可能である。
【0087】
図7は、第2の変形例で用いる複数のテーブルを示す図である。
図7に示す3つのテーブル56,57,58のうち、図7(a)の端末対応テーブル56は、上述の実施形態の場合と同じものである。
図7(b)のキャプチャフローテーブル57は、エントリ(Flow ID)が端末対応テーブル56のエントリ(Entry ID)と対応している。エントリ(Flow ID)の定義項目である各々の「Period」には、所定時間(例えば10秒)ごとに捕捉装置5がキャプチャした、上り下り方向別のパケット数(捕捉統計データ)が記される。
【0088】
図7(c)の端末フローテーブル58は、各通信端末4におけるパケット数の計測値を「Period」ごとに収集した表になっている。すなわち、端末フローテーブル58の縦列はLAN側の端末(j)を示し、「Period」には、その端末(j)が所定時間(例えば10秒)ごとに送信又は受信したパケット数(端末統計データ)が記される。
【0089】
以上を前提として、パケット捕捉装置5の制御部53は、次のステップU1〜ステップU7の処理を実行する。
なお、以下の記述でも、上りパケットの場合を想定しているが、下りパケットの場合には、src側をdest側に読み替え、かつ、dest側をsrc側に読み替えた処理となる。
【0090】
(ステップU1)
まず、制御部53は、捕捉部52が捕捉した通信パケットから上りの第1パケットP1を抽出し、その第1パケットP1の「srcIP」、「srcPort」、「destIp」、「destPort」の値を取り出す。
(ステップU2)
次に、制御部53は、端末対応テーブル56(図7(a))にアクセスし、「srcIP」、「srcPort」、「destIp」、「destPort」の値が同じである、第1パケットP1のエントリが端末対応テーブル56に存在するか否かを判定する。
【0091】
(ステップU2−1):エントリが存在しかつ端末情報が1つの場合
上記判定の結果、端末対応テーブル56にエントリが存在しかつ端末情報としてローカルIPアドレスが1つだけ登録されている場合には、制御部53は、キャプチャフローテーブル57における同一のエントリ(Flow ID) のPeriodを1つインクリメントする。
(ステップU2−2):エントリが存在しかつ端末情報が複数の場合
また、上記判定の結果、端末対応テーブル56にエントリが存在するが、その端末情報に2つ以上のローカルIPアドレスの端末が登録されている場合には、制御部53は、キャプチャフローテーブル57の同一のエントリ(Flow ID)のPeriodを1つインクリメントした上で、処理をステップU3に移行する。
【0092】
(ステップU2−3):エントリが存在しない場合
上記判定の結果、端末対応テーブル56にエントリが存在しない場合には、制御部53は次の処理a)〜c)を行う。
a) 捕捉した第1パケットP1のアドレス情報及びポート情報(「srcIP」、「srcPort」、「destIp」、「destPort」の値)にて、端末対応テーブル56のエントリを追加する。
【0093】
b) この際、端末情報には、候補となるすべての通信端末4のローカルIPアドレス(例えば、パケット捕捉装置5が、LAN側に定期的に送信する制御パケット(ARPやPINGなど)により検出される候補端末)を入れる。
c) 制御部53は、キャプチャフローテーブル57にもエントリ(Flow ID)を追加した上で、処理をステップU3に移行する。
【0094】
(ステップU3)
制御部53は、現在時刻が当該「Period」の終了時刻を経過しているか否かを判定する。
この判定の結果、終了している場合は処理をステップU4に移行し、終了していない場合は上記ステップU1〜ステップU2−3の処理を繰り返す。
【0095】
(ステップU4)
制御部53は、LAN側の通信端末4にデータ要求のための制御パケットを送信し、通信端末4が計測したパケットフローのデータ(端末統計データ)を取得する。
制御部53は、取得できた通信端末4について、図7(c)の端末フローテーブル58を作成する。
【0096】
(ステップU5)
制御部53は、次のステップU5−1〜ステップU5−3よりなる「フロー同定処理」を行う。
(ステップU5−1)
上記フロー同定処理では、制御部53は、端末対応テーブル56において、端末情報として登録されているすべてのローカルIPアドレスを候補とする。
【0097】
(ステップU5−2)
また、フロー同定処理では、制御部53は、端末情報として複数のローカルIPアドレスの端末が登録されているエントリ(Flow ID)のフロー(これを、「未同定フロー(i)」とする。)が、実際にはどの端末(j)に属するか否かを判定する。
この判定は、例えば次のようにして行う。すなわち、ある「Period」を基準として、端末(j)に属するすべての同定済みフローのキャプチャフローテーブル57におけるパケット数と、未同定フロー(i)のパケット数との合計値を算出する。
【0098】
算出した合計値が、端末(j)の端末フローテーブル58におけるパケット数よりも大きい場合には、未同定フロー(i)が端末(j)に属さないと判定し、端末(j)を未同定フロー(i)の端末候補から外す。
【0099】
(ステップU5−3)
上記の判定を候補が1つだけ残るまで繰り返し、残った端末(j)を未同定フロー(i)に対応づける。
(ステップU6)
同定が完了したフローの、src とdestをスワップしたフロー(この場合は、下りフローとなる。)を同じ端末として同定し、端末対応テーブル56を更新する。
【0100】
(ステップU7):エントリの削除
第2の変形例の場合も、制御部53は、端末対応テーブル56の「Timestamp」の値を定期的にスキャンし、現在時刻と「Timestamp」の値を比較する。
そして、制御部53は、一定時間以上経過しているエントリ、すなわち、現在時刻と「Timestamp」の値の差が所定値以上であるか否かを判定し、この判定結果が肯定的となる古いエントリを端末対応テーブル56から削除する。
【0101】
図8及び図9は、上記フロー同定処理の具体例を示す説明図である。
図8において、(a)は特定のピリオド(例えば、Period 1)での実際のフロー状況の一例を示す図であり、(b)は当該状況における捕捉統計データと端末統計データの内容を示す表であり、(c)は当該状況におけるフロー同定処理の内容を示す図である。
また、図9において、(a)は別のピリオド(例えば、Period 2)での実際のフロー状況の一例を示す図であり、(b)は当該状況における捕捉統計データと端末統計データの内容を示す表であり、(c)は当該状況におけるフロー同定処理の内容を示す図である。
【0102】
ここで、図8(a)に示すフロー状況(以下、「第1状況」とする。)では、ルータ3の配下の2つの端末A,Bのうち、端末Aのみが、特定のピリオドにおいて上り方向のパケットを送信したものとし、図9(a)に示すフロー状況(以下、「第2状況」とする。)では、別のピリオドにおいて端末A,Bの双方が上り方向のパケットを送信したものとする。
なお、図8及び図9では、Flow ID=1のパケットを「Flow 1」、Flow ID=2のパケットを「Flow 2」と記載している。
【0103】
図8(a)の第1状況では、特定のピリオドに、端末AのみがFlow 1(パケット数=10)の送信を開始している。このため、図8(b)の捕捉統計データとして、端末情報がA,Bのいずれにも定まらない、パケット数が「10」である未同定のFlow 1のエントリが存在している。
また、この場合、図8(b)の端末統計データとしては、端末Aのパケット数が「10」でかつ端末Bのパケット数が「0」となる。
【0104】
そこで、図8(c)に示すように、制御部53は、端末A及び端末Bの同定済みの捕捉統計データの値をいずれも「0」とし、端末A及び端末Bの未同定の捕捉統計データの値をいずれも「10」として、端末A,Bのそれぞれについて、同定済みの捕捉統計データと未同定の捕捉統計データの合計値を、端末統計データの値と対比する。
そして、制御部53は、その合計値が端末統計データの値よりも大きい端末を、未同定であるFlow 1の候補から外す処理を行うことにより、端末A,BのいずれがFlow 1に属するかを判定する。
【0105】
図8(c)の例では、端末Aの場合には、同定済みの捕捉統計データ=0でかつ未同定の捕捉統計データ=10であるから、その合計値=10となるが、端末Aの端末統計データ=10であるから、端末AはFlow 1に対応する候補として残される。
これに対して、端末Bの場合には、同定済みの捕捉統計データ=0でかつ未同定の捕捉統計データ=10であるから、その合計値=10となるが、端末Bの端末統計データ=0であるから、端末BはFlow 1に対応する候補から外される。
【0106】
なお、図8の例では、ルータ3の配下に2つの端末A,Bがある単純な場合を想定したが、端末Aのみが上り送信するピリオドであれば、ルータ3の配下に3つ以上の通信端末がある場合にも、同様にFlow 1を端末Aと対応付けることができる。
すなわち、当該ピリオドにおいて、端末Aのみが上り送信していた場合には、それ以外の端末の端末統計データはすべて「0」になり、端末統計データの値が必ず同定済み及び未同定の捕捉統計データの合計値よりも小さくなるので、その他の端末はFlow 1に対応する候補から外されることになる。
【0107】
従って、同定済みの捕捉統計データと未同定の捕捉統計データの合計値が、端末統計データよりも大きくなる端末を、Flow 1に対応する候補から外す処理を、候補が1つだけ残るまで繰り返すことにより、Flow 1を端末Aと対応付けることができる。
【0108】
一方、図9(a)の第2状況では、図8(c)のフロー同定処理によってFlow 1が端末Aと対応することが判明しているものとする。
また、この第2状況では、第1状況とは別のピリオドに、端末AがFlow 1(パケット数=20)を送信しており、端末BがFlow 2(パケット数=10)の送信を開始している。このため、図9(b)の捕捉統計データとして、端末情報がAに定まっている、パケット数が「20」である同定済みのFlow 1のエントリと、端末情報がA,Bのいずれにも定まらない、パケット数が「10」である未同定のFlow 2のエントリが存在している。
また、この場合、図9(b)の端末統計データでは、端末Aのパケット数が「20」でかつ端末Bのパケット数が「10」となる。
【0109】
そこで、図9(c)に示すように、制御部53は、端末Aの同定済みの捕捉統計データの値を「20」とし、端末Aの未同定の捕捉統計データの値を「10」とし、端末Bの同定済みの捕捉統計データの値を「0」とし、端末Bの未同定の捕捉統計データの値を「10」として、端末A,Bのそれぞれについて、同定済みの捕捉統計データと未同定の捕捉統計データの合計値を、端末統計データの値と対比する。
そして、制御部53は、その合計値が端末統計データよりも大きい端末を、未同定であるFlow 2の候補から外す処理を行うことにより、端末A,BのいずれがFlow 2に属するかを判定する。
【0110】
図9(c)の例では、端末Aの場合には、同定済みの捕捉統計データ=20でかつ未同定の捕捉統計データ=10であるから、その合計値=30となるが、端末Aの端末統計データ=20であるから、端末AはFlow 2に対応する候補から外される。
これに対して、端末Bの場合には、同定済みの捕捉統計データ=0でかつ未同定の捕捉統計データ=10であるから、その合計値=10となるが、端末Bの端末統計データ=10であるから、端末BはFlow 2に対応する候補として残される。
【0111】
なお、図9の例においても、ルータ3の配下に2つの端末A,Bがある単純な場合を想定したが、端末Bのみが上り送信するピリオドであれば、ルータ3の配下に3つ以上の通信端末がある場合にも、同様にFlow 2を端末Bと対応付けることができる。
すなわち、当該ピリオドにおいて、端末Bのみが上り送信していた場合には、それ以外の端末の端末統計データは、必ず、同定済み及び未同定の捕捉統計データの合計値よりも小さくなるので、その他の端末はFlow 2に対応する候補から外されることになる。
【0112】
このように、ある特定のピリオドにおいて、ルータ3の配下にあるいずれか1つの通信端末4がルータ3を越えるパケットを送信した場合には、それ以外の通信端末4の端末統計データは、同定済み及び未同定の捕捉統計データの合計値よりも小さくなる。
従って、特定の通信端末4に属するすべての同定済みの捕捉統計データと未同定の捕捉統計データとの合計値が、特定の通信端末4についての端末統計データよりも大きい場合に、当該特定の通信端末4を未同定の捕捉統計データの端末候補から外す処理を、その端末候補が1つだけ残るまで継続する「フロー同定処理」を行うことにより、未同定のフロー(捕捉統計データ)を1つの通信端末と対応付けることができる。
【0113】
なお、上記第2の変形例では、第1パケットP1の「トラフィック情報」を表す量として当該パケットの「パケット数」を採用しているが、このパケット数の代わりにパケット長を用いることにしてもよい。
【0114】
〔その他の変形例〕
上述の実施形態では、パケット捕捉装置5の制御部53が「パケット解析処理」を行っているが、この処理を他の通信端末4で行うようにしてもよい。
この場合には、捕捉装置5では第1パケットP1の捕捉だけを行い、捕捉したパケットを、パケット解析処理を実行する所定の通信端末4に向けてリダイレクトするようにすればよい。
【0115】
また、上述の実施形態では、図1に示すように、パケット捕捉装置5をイーサネットケーブルで構内ネットワークLAN2と有線接続しているが、パケット捕捉装置5のLAN側の第2インタフェース部55を無線LAN対応のインタフェースで構成し、パケット捕捉装置5と構内ネットワークとの通信を無線で行うようにしてもよい。
【0116】
今回開示した実施形態(上述の各変形例を含む。)はすべての点で例示であって制限的なものではない。本発明の権利範囲は、上述の実施形態ではなく、特許請求の範囲と均等の範囲内でのすべての変更が含まれる。
【符号の説明】
【0117】
3 ルータ
4 通信端末
5 パケット捕捉装置
5A WANポート
5B LANポート
51 第1インタフェース部
52 捕捉部
53 制御部(端末特定部、パケット解析部)
54 通信制御部
55 第2インタフェース部
56 端末対応テーブル
57 記憶部

【特許請求の範囲】
【請求項1】
ネットワークを流れるパケットを捕捉するパケット捕捉装置であって、
グローバルアドレスが割り当てられないWANポートと、
ローカルアドレスを割り当て可能なLANポートと、
WAN側とLAN側との間でルータを越えて送受信される前記パケットである第1パケットを前記WANポートから捕捉する捕捉部と、
前記ルータを越えない前記パケットである第2パケットを前記LANポートから送受信する通信制御部と、
を備えていることを特徴とするパケット捕捉装置。
【請求項2】
捕捉された前記第1パケットを用いて次の(a)又は(b)若しくはこれらの双方の解析を行うパケット解析部を更に備えている請求項1に記載のパケット捕捉装置。
(a) 第1パケットの内容から通信エラーの発生を分析するミクロ解析
(b) 同種の複数の第1パケットの履歴からトラフィック状況又はシーケンスエラーを分析するフロー解析
【請求項3】
パケット通信を行う複数の通信端末が前記ルータのLAN側に含まれる場合に、前記第1パケットと前記通信端末との対応付けを行う端末特定部を、更に備えている請求項1又は2に記載のパケット捕捉装置。
【請求項4】
前記通信制御部は、前記第1パケットの中継時に前記ルータが行うアドレス変換に用いる変換テーブルを前記ルータから取得可能であり、
前記端末特定部は、前記第1パケットに記されたアドレス情報及びポート情報と、取得された前記変換テーブルのアドレス情報及びポート情報とに基づいて、前記対応付けを行う請求項3に記載のパケット捕捉装置。
【請求項5】
前記端末特定部は、エントリごとの定義項目として、前記通信端末のローカル識別情報と、これに対応付けた前記第1パケットのアドレス情報及びポート情報とを含む端末対応テーブルを生成し、
捕捉された前記第1パケットのアドレス情報及びポート情報と一致する前記エントリを前記端末対応テーブルの中からサーチすることにより、前記第1パケットに対応する前記通信端末を特定する請求項4に記載のパケット捕捉装置。
【請求項6】
前記捕捉部は、前記アドレス変換によって変換されない前記通信端末の固有識別情報を含む前記第1パケットを捕捉可能であり、
前記端末特定部は、前記第1パケットに記された前記固有識別情報に基づいて、前記対応付けを行う請求項3に記載のパケット捕捉装置。
【請求項7】
前記端末特定部は、エントリごとの定義項目として、前記通信端末のローカル識別情報及び前記固有識別情報と、これに対応付けた前記第1パケットのアドレス情報及びポート情報とを含む端末対応テーブルを生成し、
捕捉された前記第1パケットのアドレス情報及びポート情報と一致する前記エントリを前記端末対応テーブルの中からサーチすることにより、前記第1パケットに対応する前記通信端末を特定する請求項6に記載のパケット捕捉装置。
【請求項8】
前記端末特定部は、前記第1パケットに記されたポート情報に基づいて、当該第1パケットに対応付けた前記通信端末が使用する通信アプリケーションを特定する請求項6又は7に記載のパケット捕捉装置。
【請求項9】
前記通信制御部は、前記通信端末が送受信した所定時間ごとの前記第1パケットのトラフィック情報である端末統計データを当該通信端末からそれぞれ取得可能であり、
前記端末特定部は、前記捕捉部で捕捉された前記第1パケットの所定時間ごとのトラフィック情報である捕捉統計データと、取得された前記端末統計データとに基づいて、前記対応付けを行う請求項3に記載のパケット捕捉装置。
【請求項10】
前記端末特定部は、特定の前記通信端末に属するすべての同定済みの前記捕捉統計データと未同定の前記捕捉統計データとの合計値が、特定の前記通信端末についての前記端末統計データよりも大きい場合に、当該特定の前記通信端末を未同定の前記捕捉統計データの端末候補から外す処理を、その端末候補が1つだけ残るまで継続するフロー同定処理を行う請求項9に記載のパケット捕捉装置。
【請求項11】
前記端末特定部は、エントリごとの定義項目として、前記通信端末のローカル識別情報と、これに対応付けた前記第1パケットのアドレス情報及びポート情報とを含む端末対応テーブルを生成し、
捕捉された前記第1パケットのアドレス情報及びポート情報と一致する前記エントリを前記端末対応テーブルの中からサーチすることにより、前記第1パケットに対応する前記通信端末を特定する請求項9又は10に記載のパケット捕捉装置。
【請求項12】
前記第1パケットのアドレス情報及びポート情報が一致する複数の未同定の前記エントリが存在する場合には、前記端末特定部は、前記フロー同定処理を行って未同定の前記エントリがどの前記通信端末に属するかを判定する請求項11に記載のパケット捕捉装置。
【請求項13】
前記端末特定テーブルには、前記エントリごとの定義項目として、前記第1パケットの受信時刻が記されるタイムスタンプが更に含まれており、前記端末特定部は、現在時刻と前記タイムスタンプの値との差が所定値以上である前記エントリを前記端末対応テーブルから削除する請求項5,7又は11に記載のパケット捕捉装置。
【請求項14】
グローバルアドレスが割り当てられないWANポートと、ローカルアドレスを割り当て可能なLANポートとを備えたパケット通信が可能なコンピュータを、ネットワークを流れるパケットの捕捉装置として機能させるコンピュータプログラムであって、
WAN側とLAN側との間でルータを越えて送受信される前記パケットである第1パケットを前記WANポートから捕捉するステップと、
前記ルータを越えない前記パケットである第2パケットを前記LANポートから送受信するステップと、
を含むことを特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate