(57)【要約】【課題】  パケットの解析処理を中継装置で行う場合において、中継処理に及ぶ悪影響を抑制する。【解決手段】  本発明は、パケット交換方式のネットワークに用いる中継装置３に関する。この装置３は、パケットを送受信する複数の送受信部と、送受信部が受信したパケットを中継する中継処理部３１０と、送受信部が受信したパケットを捕捉する捕捉処理部３１１と、捕捉されたパケットを解析する解析処理と、その解析に必要なデータを含む転送パケットを生成して送受信部から外部装置４Ａ，４Ｂに送信させるリダイレクト処理のいずれか一方を、選択的に実行するデータ処理部３１３と、を備える。【選択図】      図２
2012227805.tif 000002
【特許請求の範囲】
【請求項１】
パケット交換方式のネットワークに用いる中継装置であって、
パケットを送受信する複数の送受信部と、
前記送受信部が受信した前記パケットを中継する中継処理部と、
前記送受信部が受信した前記パケットを捕捉する捕捉処理部と、
捕捉された前記パケットを解析する解析処理と、その解析に必要なデータを生成して前記送受信部から外部装置に送信させるリダイレクト処理のいずれか一方を、選択的に実行するデータ処理部と、
を備えていることを特徴とする中継装置。
【請求項２】
捕捉された前記パケットから次の（ａ）及び（ｂ）に分類される各データを生成する分類処理部を更に備えている請求項１に記載の中継装置。
（ａ）  パケットの内容を特定するためのパケットデータ
（ｂ）  同種の複数のパケットの履歴を特定するためのフローデータ
【請求項３】
前記パケットデータは、捕捉された前記パケットの受信時刻と、当該パケットのパケット長と、当該パケットの所定長さの先頭部分とを含むデータ構造である請求項２に記載の中継装置。
【請求項４】
前記フローデータは、捕捉された前記パケットの受信時刻と、当該パケットの送信元、宛先及び種別を識別可能な識別情報とを含むデータ構造である請求項２又は３に記載の中継装置。
【請求項５】
前記各処理部における処理の優先度を設定可能なタスク管理部を更に備え、
前記タスク管理部は、前記中継処理部による中継処理の優先度を他の前記処理部による処理の優先度よりも高めに設定する請求項１〜４のいずれか１項に記載の中継装置。
【請求項６】
前記送受信部は、優先度が異なる複数のキューを有する送信バッファを有しており、
前記データ処理部は、前記中継処理部により中継処理された送信パケットと同等以下の優先度キューに、前記リダイレクト処理で生成された前記データを含む転送パケットを入力する請求項１〜５のいずれか１項に記載の中継装置。
【請求項７】
パケット交換方式のネットワークに用いる中継装置を、パケットの捕捉又は解析装置として機能させるためのコンピュータプログラムであって、
受信したパケットを中継するステップと、
受信したパケットを捕捉するステップと、
捕捉された前記パケットを解析する解析処理と、その解析に必要なデータを外部装置に送信するリダイレクト処理とのいずれかを、選択するステップと、
を含むことを特徴とするコンピュータプログラム。
【請求項８】
パケット交換方式のネットワークの中継ノードを構成する中継装置と、前記ネットワークに接続された１又は複数の通信端末とを備えた通信システムであって、
前記通信端末には、パケットの解析を行うパケット解析装置が含まれており、
前記中継装置は、前記パケットを送受信する複数の送受信部と、
前記送受信部が受信した前記パケットを中継する中継処理部と、
前記送受信部が受信した前記パケットを捕捉する捕捉処理部と、
捕捉された前記パケットを解析する解析処理と、その解析に必要なデータを含む転送パケットを生成して前記送受信部から前記パケット解析装置に送信させるリダイレクト処理とのいずれかを、選択的に実行するデータ処理部と、を有することを特徴とする通信システム。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットの解析機能を有する中継装置、この中継装置を有する通信システム、及び、その解析機能を中継装置に実行させるためのコンピュータプログラムに関する。
【背景技術】
【０００２】
インターネットを利用した通信では様々な障害が発生する。例えば、ネット配信による動画の乱れや静止、所定のウェブページを閲覧した時に生じるエラーメッセージやレスポンスの遅延、所定の相手方への電子メールの不達、ファイル転送プロトコル（ＦＴＰ）でのログイン不可などの障害である。
かかるネットワーク障害は、特定のサーバに対するトラフィックの集中や、パケット通信が可能なパーソナルコンピュータ等の端末装置（以下、「通信端末」という。）又はパケット中継を行うルータに対するネットワーク設定の誤りが原因であることが多い。
【０００３】
そこで、パケットキャプチャソフト（ＬＡＮアナライザともいう。）を通信端末にインストールし、そのソフトを用いてネットワーク障害の原因を分析することが行われている（非特許文献１参照）。
かかるパケットキャプチャソフトは、ネットワークから所望のパケットを捕捉（キャプチャ）し、捕捉したパケットの内容をヒューマンリーダブルに画面表示するツールであり、ワイヤーシャーク（Wireshark ：登録商標）が最も一般的に知られている。
【０００４】
このパケットキャプチャソフトを使用すれば、例えば、ネットワークに流れるパケットのヘッダ情報をリスト表示したり、所定のプロトコルに従って送受信されるパケットのシーケンスをラダー表示したり、プロトコルのコマンドやデータ内容等に問題がある異常なパケットをフィルタリングすることができる。
従って、これらの機能により、ネットワーク中の異常なトラフィックの発生や、パケットの送信間隔の揺らぎから通信が輻輳しているか否かなどを分析することができる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】「パケットキャプチャ実践技術  Wiresharkによるパケット解析  応用編」  竹下恵著  株式会社リックテレコム発行  １０〜１２頁
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上記のようなパケットキャプチャ機能をコンピュータに実装する場合、捕捉したパケットの内容及び履歴を解析する解析処理も並行して行うことになると、プロセッサの演算負荷が非常に高くなる。
このため、パケットの捕捉だけでなく解析処理までを例えばホームゲートウェイなどのブロードバンドルータに単純に実装すると、ルータ本来の機能である中継処理の性能が低下する可能性がある。
【０００７】
また、この場合、捕捉したパケットを解析対象のデータとしてそのまま保存すると、捕捉したパケットのサイズ分のバッファ容量が必要となる。例えば、１００Ｍｂｐｓの通信インタフェースの場合には、１２０秒ほどで概ね１Ｇバイトものバッファ容量が必要であり、極めて大容量のバッファを中継装置に搭載せねばならないという問題もある。
【０００８】
本発明は、かかる従来の問題点に鑑み、パケットの解析処理を中継装置で行う場合において、中継処理に及ぶ悪影響を抑制すること第１の目的とする。
また、本発明は、パケットの捕捉処理を中継装置で行う場合において、当該中継装置のバッファ容量を低減することを第２の目的とする。
【課題を解決するための手段】
【０００９】
（１）  本発明の中継装置は、パケット交換方式のネットワークに用いる中継装置であって、パケットを送受信する複数の送受信部と、前記送受信部が受信した前記パケットを中継する中継処理部と、前記送受信部が受信した前記パケットを捕捉する捕捉処理部と、捕捉された前記パケットを解析する解析処理と、その解析に必要なデータを生成して前記送受信部から外部装置に送信させるリダイレクト処理のいずれか一方を、選択的に実行するデータ処理部と、を備えていることを特徴とする。
【００１０】
本発明の中継装置によれば、データ処理部が、捕捉されたパケットを解析する解析処理と、その解析に必要なデータを生成して送受信部から外部装置に送信させるリダイレクト処理のいずれか一方を選択的に実行するので、例えば、中継処理を行うパケット数が比較的少ない場合に解析処理を選択し、多い場合には演算負荷の少ないリダイレクト処理を選択するなどにより、中継処理に及ぶ悪影響を抑えつつ、パケットの解析処理を行うことができる。従って、前記第１の目的が達成される。
【００１１】
なお、本明細書において、パケットの「解析処理」とは、各パケットの内容（制御パケットのヘッダ情報等）から通信エラーの発生を分析する「ミクロ解析」、又は、同種の複数のパケットの履歴からトラフィック状況やシーケンスエラーなどを分析する「フロー解析」若しくはこれらの双方を含むものとする。
【００１２】
（２）  本発明の中継装置において、捕捉された前記パケットから次の２種類のデータをそれぞれ分類して抽出する分類処理部を更に備えていることが好ましい。
（ａ）  パケットの内容を特定するためのパケットデータ
（ｂ）  同種の複数のパケットの履歴を特定するためのフローデータ
捕捉されたパケットを上記パケットデータとフローデータに分類すれば、捕捉されたパケットに対して行う解析処理の種別（上記ミクロ解析やフロー解析）に応じた効率的なデータの生成が可能となる。
【００１３】
（３）  例えば、前記パケットデータの場合には、パケットの内容（制御パケットのヘッダ情報等）を特定するためのデータであるから、捕捉された前記パケットの受信時刻と、当該パケットのパケット長と、当該パケットの所定長さの先頭部分とを含むデータ構造とすればよい。
この場合、捕捉されたパケットの先頭部分以外の部分をバッファに保存する必要がないので、すべてのデータ内容をバッファリングする場合に比べて、パケットの捕捉処理を行う中継装置のバッファ容量を低減できる。従って、前記第２の目的が達成される。
【００１４】
（４）  一方、フローデータの場合には、同種の複数のパケットの履歴を特定できればよいので、送信元、宛先及び種別が同じパケットがやり取りされた時間が判明すれば十分である。そこで、前記フローデータの場合には、捕捉された前記パケットの受信時刻と、当該パケットの送信元、宛先及び種別を識別可能な識別情報（実施形態における「フローＩｄ」）とを含むデータ構造とすることが好ましい。
この場合、上記識別情報を極めて小さいデータ量にできるので、パケットの捕捉処理を行う中継装置のバッファ容量を低減できる。従って、前記第２の目的が達成される。
【００１５】
（５）  本発明の中継装置において、前記各処理部における処理の優先度を設定可能なタスク管理部を更に備えていることが好ましい。
この場合、前記タスク管理部により、前記中継処理部による中継処理の優先度を他の前記処理部による処理の優先度よりも高めに設定するようにすれば、中継処理部による中継処理がその他の処理によって阻害されるのを確実に防止することができる。
【００１６】
（６）  また、本発明の中継装置において、前記送受信部が、優先度が異なる複数のキューを有する送信バッファを有している場合には、前記データ処理部は、前記中継処理部により中継処理された送信パケットと同等以下の優先度キューに、前記リダイレクト処理で生成された前記データを含む転送パケットを入力することが好ましい。
このようにすれば、リダイレクト処理によって生成されたデータの転送が原因で中継処理された送信パケットの送信が阻害されなくなり、リダイレクト処理を行う場合の中継処理への悪影響を抑えることができる。
【００１７】
（７）  本発明のコンピュータプログラムは、パケット交換方式のネットワークに用いる中継装置を、パケットの捕捉又は解析装置として機能させるためのコンピュータプログラムであって、受信したパケットを中継するステップと、受信したパケットを捕捉するステップと、捕捉された前記パケットを解析する解析処理と、その解析に必要なデータを生成して外部装置に送信するリダイレクト処理とのいずれかを、選択するステップと、を含むことを特徴とする。
【００１８】
上記の通り、本発明のコンピュータプログラムは、本発明の中継装置と実質同一の発明であり、当該装置と同じ作用効果を奏する。
なお、本発明のコンピュータプログラムは、上述の（２）〜（７）に記載された事項を含んでいてもよい。
【００１９】
（８）  本発明の通信システムは、パケット交換方式のネットワークの中継ノードを構成する中継装置と、前記ネットワークに接続された１又は複数の通信端末とを備えた通信システムであって、前記通信端末には、パケットの解析を行うパケット解析装置が含まれており、前記中継装置が本発明の中継装置であることを特徴とする。
【００２０】
上記の通り、本発明の通信システム、本発明の中継装置を有するネットワークを利用した通信システムであり、当該装置と同じ作用効果を奏する。
なお、本発明の通信システムは、上述の（２）〜（７）に記載された中継装置を採用することにしてもよい。
【発明の効果】
【００２１】
以上の通り、本発明によれば、パケットの解析処理を中継装置で行う場合において、中継処理に及ぶ悪影響を抑制することができる。
また、本発明によれば、パケットの捕捉処理を中継装置で行う場合において、当該中継装置のバッファ容量を低減することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明に係る中継装置の一例であるルータを適用した通信システムの全体構成図である。
【図２】ルータの内部構成を示すブロック図である。
【図３】パケットプロセッサの処理手順を示す概略的なフローチャートである。
【図４】ルールテーブルの一例を示す図である。
【図５】フローテーブルの一例を示す図である。
【図６】パケットデータとフローデータのデータ構造を示す図である。
【図７】同方向に一連のフローデータの例とそのシーケンス図である。
【図８】双方向に一連のフローデータの例とそのシーケンス図である。
【発明を実施するための形態】
【００２３】
以下、図面を参照しつつ、本発明の実施形態を説明する。
〔システムの全体構成〕
図１は、本発明の中継装置の一例であるルータ３を適用した通信システムの全体構成図である。
図１に示すように、この通信システムは、通信事業者側の光回線終端装置であるＯＬＴ１、宅側の光回線終端装置であるＯＮＵ２、ホームゲートウェイやブロードバンドルータ等よりなるルータ３、及び、例えばＩＰ（Internet Protocol）に基づくパケット通信が可能な複数の通信端末４などを備えている。
【００２４】
ＯＬＴ１とＯＮＵ２は光カプラを介して光ファイバによって接続されており、ＯＬＴ１は広域ネットワーク６と接続されている。本実施形態の広域ネットワーク６はインターネットである。
なお、図１のシステム構成例では、ＦＴＴＨを想定してＯＮＵ２よりなる回線終端装置を例示しているが、その他の回線終端装置として、ＡＤＳＬモデムやＣＡＴＶモデムを採用することもできる。
【００２５】
ＯＮＵ２とルータ３とは、イーサネットケーブル（注記：「イーサネット」は登録商標である。）７などの通信回線を介して互いに接続されている。
ルータ３は、ＩＰパケットのルーティング機能を有する中継装置であり、１つのＷＡＮポートと１又は複数のＬＡＮポートとを有する。なお、図例では、ＬＡＮポートが２つあるルータ３を例示しているが、その数は２つに限定されない。
【００２６】
ルータ３のＬＡＮポートには、イーサネットケーブル９などの通信回線を介して各種の通信端末４が接続されている。この通信端末４は、例えば、ＩＰ通信が可能なパーソナルコンピュータ（ＰＣ）、サーバコンピュータ或いはテレビなどの家電製品よりなる。
また、ＯＬＴ１側の広域ネットワーク６にも通信端末４が接続されており、この通信端末４は、例えばクラウドサーバ等よりなる。
【００２７】
図１に示す「ＬＡＮ１」は、ルータ３の一方のＬＡＮポートに接続された構内ネットワークであり、「ＬＡＮ２」は、ルータ３の他方のＬＡＮポートに接続された構内ネットワークである。
これらの構内ネットワークＬＡＮ１，ＬＡＮ２は、１又は複数のスイッチングハブ１０を用いて多段接続することによって構成されており、当該ネットワークの終端部分に通信端末４を有する。
【００２８】
本実施形態では、ネットワークに接続された複数の通信端末４のうち、ＬＡＮ２のサーバ４Ａと広域ネットワーク６のクラウドサーバ４Ｂの少なくとも一方に、ＩＰパケットの解析処理を行うためのコンピュータプログラムがインストールされている。
従って、これらの端末４Ａ，４Ｂは、ＩＰパケットの「パケット解析装置」として機能することができる。
【００２９】
一方、ルータ３は、パケット解析装置４Ａ，４Ｂやその他の通信端末４が行うネットワーク機器の管理及び監視の対象機器であり、その解析装置４Ａ，４Ｂや通信端末４の制御プログラムによって操作されるエージェントプログラムが当該ルータ３にインストールされている。
このルータ３のエージェントプログラムは、ルータ３でルーティングされるＩＰパケットに対してパケットの捕捉処理や解析処理などを行うことができる。
【００３０】
ルータ３のエージェントプログラムは、パケットの捕捉処理を行った場合には、捕捉したＩＰパケットに関する所定のデータ（後述のパケットデータＰＤやフローデータＦＤ）を含む転送パケットを生成し、ルータ３を制御するパケット解析装置４Ａ，４Ｂ宛にその転送パケットを送信する。
また、ルータ３のエージェントプログラムは、パケットの解析処理を行った結果、通信エラーを検出した場合には、そのエラーのログ情報を含む送信パケットを生成し、ルータ３を制御する通信端末４宛にその送信パケットを送信する。
【００３１】
また、本実施形態のルータ３は、ＩＰパケットの中継機能の他に、ＩＰパケットの動的フィルタリング機能、ＮＡＴ機能、ＤＨＣＰ機能、ＰＰＰｏＥ機能、ＡＲＰ機能及びＱｏＳの優先制御機能などを備えている。
なお、「パケット」は、レイヤ３の通信で使われるＰＤＵの呼び名として用いる場合もあるが、本明細書では、コンピュータ間の通信に使用するデータを送る単位の意味（従って、ＰＤＵと同じ。）でも使用している。従って、「ＩＰパケット」を単に「パケット」ということがある。
【００３２】
〔ルータの内部構成〕
図２は、ルータ３の内部構成を示すブロック図である。
図２に示すように、ルータ３は、第１インタフェース部３０１、第１送受信ドライバ３０２、捕捉用受信バッファ３０３，第１送信バッファ３０４、第２インタフェース部３０５、第２送受信ドライバ３０６、中継用受信バッファ３０７、第２送信バッファ３０８及びパケットプロセッサ３０９などを備えている。
【００３３】
第１インタフェース部３０１は、ＷＡＮポートを有する所定のインタフェース規格のトランシーバであり、第１送受信ドライバ３０２は、第１インタフェース部３０１にパケットの送受信を行わせる駆動回路よりなる。
第１送受信ドライバ３０２は、第１インタフェース部３０１から受けた受信パケットを捕捉用受信バッファ３０３と中継用受信バッファ３０７に渡し、第１送信バッファ３０４から受けた送信パケットを第１インタフェース部３０１から外部に送出する。
【００３４】
第２インタフェース部３０５は、ＬＡＮポートを有する所定のインタフェース規格のトランシーバであり、第２送受信ドライバ３０６は、第２インタフェース部３０５にパケットの送受信を行わせる駆動回路よりなる。
第２送受信ドライバ３０６は、第２インタフェース部３０５から受けた受信パケットを捕捉用受信バッファ３０３と中継用受信バッファ３０７に渡し、第２送信バッファ３０８から受けた送信パケットを第２インタフェース部３０５から外部に送出する。
【００３５】
第１及び第２の送信バッファ３０４，３０８は、優先度が異なる複数のキューＨ，Ｌを有している。
この複数のキューＨ，Ｌのうち、高優先度キューＨは、当該ルータ３で中継処理が行われた後の高優先度の送信パケットを格納するための送信キューであり、低優先度キューＬは、当該ルータ３で中継処理が行われた後の低優先度の送信パケット及びデータ処理部３１３のリダイレクト処理で生成された転送パケットを格納するための送信キューである。
【００３６】
なお、第１インタフェース部３０１、第１送受信ドライバ３０２、捕捉用受信バッファ３０３及び第１送信バッファ３０４は、ＷＡＮ側の「送受信部」を構成している。
また、第２インタフェース部３０５、第２送受信ドライバ３０６、中継用受信バッファ３０７及び第２送信バッファ３０８は、ＬＡＮ側の「送受信部」を構成している。
【００３７】
〔パケットプロセッサの機能部〕
パケットプロセッサ３０９は、中継処理部３１０、捕捉処理部３１１、分類処理部３１２、データ処理部３１３及びタスク管理部３１４を備えている。
これらの処理部や管理部は、ＲＯＭやＲＡＭ等の周知の記憶装置（図示せず。）に記憶されたコンピュータプログラム（具体的には、前記エージェントプログラム）をプロセッサ３０９が読み出し、それを実行することによって実現される機能部である。
【００３８】
上記処理部や管理部を実現する所定のコンピュータプログラムは、上記の通り、図示しない記憶装置にインストールされているが、このコンピュータプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの記録媒体に格納して販売又は譲渡することができる。
また、このコンピュータプログラムの販売又は譲渡は、サーバコンピュータからネットワーク経由でダウンロードすることによって行こともできる。
【００３９】
中継用受信バッファ３０７は、各送受信ドライバ３０２，３０６から受けたすべての受信パケットを所定量蓄積し、蓄積した受信パケットを中継処理部３１０に出力する。
中継処理部３１０は、バッファ３０７から入力された受信パケットに対して、所定のルーティング処理やＮＡＴ（Network Address Translation）によるアドレス情報及びポート情報の変換を行って送信パケットを生成すると、ＱｏＳの優先度設定に従って送信パケットを送信バッファ３０４，３０８に入力する。
【００４０】
すなわち、中継処理部３１０は、高優先に指定された送信パケットの場合には、宛先アドレスに対応するいずれかの送信バッファ３０４，３０８の高優先度キューＨに入力し、低優先に指定された送信パケットの場合には、宛先アドレスに対応するいずれかの送信バッファ３０４，３０８の低優先度キューＬに入力する。
【００４１】
捕捉用受信バッファ３０３は、各受信ドライバ３０２，３０６から受けたすべての受信パケットを所定量蓄積し、蓄積した受信パケットを捕捉処理部３１１に出力する。
捕捉処理部３１１は、バッファ３０３から入力された受信パケットを受信時刻で並べ替えるなどの所定の処理を行って、すべての受信パケットを分類処理部３１２に送る。
【００４２】
分類処理部３１２は、捕捉処理部３１１から受けたすべての受信パケットからヘッダ情報を抽出し、そのヘッダ情報にルールテーブルＲＴとフローテーブルＦＴを適用して「パケットデータＰＤ」と「フローデータＦＤ」を生成する。
分類処理部３１２は、それらのデータＰＤ，ＦＤをデータバッファ３１５に一時的に記憶させる。なお、分類処理部３１２は、パケットデータＰＤ又はフローデータＦＤのいずれにも分類できないデータについては、これを「未登録データＵＤ」としてデータバッファ３１５に記憶させる。
【００４３】
データ処理部３１３は、データバッファ３１５に記憶されたパケットデータＰＤ又はフローデータＦＤを読み出して、捕捉されたパケットの「解析処理」又は「リダイレクト処理」のいずれかを選択的に行う。
本実施形態のデータ処理部３１３が行う「解析処理」には、パケットの内容から通信エラーの発生を分析する「ミクロ解析」と、同種の複数のパケットの履歴からトラフィック状況やシーケンスエラーなどを分析する「フロー解析」の双方が含まれる。
【００４４】
本実施形態のリダイレクト処理は、上記解析処理に必要なデータ（パケットデータＰＤとフローデータＦＤ）を含む転送パケットを生成し、この転送パケットを、パケットの解析処理が可能な他の外部装置４Ａ，４Ｂ（図１参照）に送信する処理である。
データ処理部３１３は、上記リダイレクト処理を行った場合に生成した転送パケットの送信に高優先度キューＨを使用せず、その転送パケットを必ず宛先アドレスに対応するいずれかの送信バッファ３０４，３０８の低優先度キューＬに入力する。
【００４５】
データ処理部３１３は、例えば、中継用受信バッファ３０７でのバッファ量などに基づいて、中継処理部３１０が処理すべきパケット数を常に把握している。
データ処理部３１３は、上記パケット数が所定の閾値未満である場合には、パケットの「解析処理」を行い、上記パケット数が所定の閾値以上である場合には、その「解析処理」よりもプロセッサ３０９に対する演算負荷が少ない「リダイレクト処理」を行うようになっている。
【００４６】
タスク管理部３１４は、例えば、ＬＡＮ側の通信端末４（パケット解析装置４Ａでもよい。）からの制御信号によって動作し、その制御信号に基づいてプロセッサ３０９内の各処理部３１０〜３１３における処理の優先度を設定する。
従って、ルータ３のユーザは、ＬＡＮ側の通信端末４から上記制御信号を含むパケットをルータ３に送信することにより、各処理部３１０〜３１３における処理の優先度を手動で設定できる。
【００４７】
本実施形態では、中継処理部３１０による中継処理が、他の処理部３１１〜３１３による処理よりも高い優先度に設定される。
なお、タスク管理部３１４に対する優先度の設定は、例えば、中継用受信バッファ３０７の蓄積量が少ない所定の時間帯（例えば、夜間）に、中継処理の優先を自動的に解除するというように、ルータ３の通信状況に応じて動的に、各処理部３１０〜３１３による処理の優先度を変動させることにしてもよい。
【００４８】
〔具体的な処理内容〕
図３は、パケットプロセッサ３０９の処理手順を示す概略的なフローチャートである。
以下、この図３と以後の図４〜図８を参照しつつ、プロセッサ３０９の各処理部３１１〜３１３が行う具体的な処理の内容を説明する。
図３に示すように、ルータ３のプロセッサ３０９は、各送受信部で受信された受信パケットに対し、パケットの捕捉（ステップＳ１）、ヘッダの抽出（ステップＳ２）、データの分類及び生成（ステップＳ３）及びデータの処理（Ｓ４）の順で情報処理を行う。
【００４９】
＜パケットの捕捉＞
このうち、パケットの捕捉（ステップＳ１）は、上述の通り捕捉処理部３１１が行う処理である。捕捉処理部３１１は、捕捉用受信バッファ３０３が蓄積した所定量の受信パケットを順次取り込む。
【００５０】
＜ヘッダの抽出＞
ヘッダの抽出（ステップＳ２）は、分類処理部３１２が行う処理である。
図３に示すように、分類処理部３１２は、捕捉処理部３１１から受けた各パケットから必要なレイヤＬ２〜Ｌ５のヘッダ情報を抽出する。
【００５１】
＜データの分類及び生成＞
データの分類及び生成（Ｓ３）は、分類処理部３１２が行う処理である。
図３に示すように、分類処理部３１２は、抽出されたパケットのヘッダ情報をキーとしてルールテーブルＲＴとフローテーブルＦＴをサーチすることにより、２種類のパケットデータＰＤ及びフローデータＦＤ（サーチでヒットしない場合は未登録データＵＤ）を分類して生成し、これらのデータＰＤ，ＦＤ，ＵＤをデータバッファ３１５の対応する格納領域にそれぞれ記憶させる。
【００５２】
図４は、ルールテーブルＲＴの一例を示す図であり、図５は、フローテーブルＦＴの一例を示す図である。
図４に示すように、ルールテーブルＲＴは、例えば番号１〜２５６までの「ルール」のエントリを備え、各ルールは図５のフローＩｄと対応している。各ルールには複数（図例では８つ）の「サブルール」が含まれており、このサブルールには「項目」とその値（Value）を定義することができる。
【００５３】
従って、サブルールの項目と値を適宜設定することにより、各ルールの番号（フローＩｄ）に対応するパケットの内容を定義することができる。
例えば、図４の例では、ルール１のサブルール１で「destIp」（宛先ＩＰアドレス）の値を定義し、サブルール２で「srcIP」（送信元ＩＰアドレス）の値を定義し、サブルール３で「destPort」（宛先ポート番号）の値を定義し、サブルール４で「srcPort」（送信元ポート番号）の値を定義するようになっている。
【００５４】
なお、図４では図示していないが、各ルールのサブルール５以後に所定のプロトコルとそのプロトコルで用いるコマンドなどを定義することにより、各々のルール（フローＩｄ）によってサーチしたいパケットの「種別」を定義することができる。
図５に示すように、フローテーブルＦＴは、フローＩｄに対応する処理内容が定義されたテーブルである。例えば、図５の例では、フローＩｄ＝１のパケットの場合には、パケットを「パケットデータとして残す」処理が行われる。
【００５５】
また、フローＩｄ＝２の場合には、パケットを「フローデータとして残す」処理が行われ、フローＩｄ＝３の場合は「破棄する」処理が行われる。
なお、上記ルールテーブルＲＴとフローテーブルＦＴの設定は、例えば、ルータ３のユーザが、ＬＡＮ側の通信端末４から各テーブルＲＴ，ＦＴの項目内容や設定値を含むパケットをルータ３に送信することによって行うことができる。
【００５６】
ここで、「パケットデータＰＤ」とは、例えば、ＴＣＰのシーケンス番号の整合性をチェックするようなミクロ解析の場合に必要となる、パケットの内容を特定するためのデータのことをいう。また、「フローデータＦＤ」とは、例えば、一連のパケットフローの連関をチェックするフロー解析の場合に必要となる、送受信ノードが同じである同種の複数のパケットの履歴を特定するためのデータのことをいう。
なお、例えば、ＨＴＴＰのリクエストとレスポンスのように、ＴＣＰパケットでありかつフロー間の連関の解析（リクエストという１つのフローとレスポンスという別のフローの間の解析）が必要なパケットもあり、かかるパケットはパケットデータＰＤとフローデータＦＤの双方に指定される。
【００５７】
分類処理部３１２は、ルールテーブルＲＴを上から順番にサーチして、各パケットから抽出したヘッダ情報がどのルールにマッチするかを判定する。
その結果、マッチしたルール（＝フローＩｄ）がある場合には、そのフローＩｄに対して行うべき処理をフローテーブルＦＴから読み出し、読み出した処理を当該フローＩｄのパケットに対して実行する。また、分類処理部３１２は、マッチしたルール（＝フローＩｄ）がない場合には、未登録データＵＤを生成する。
【００５８】
図６は、パケットデータＰＤとフローデータＦＤのデータ構造を示す図である。
図６（ａ）に示すように、パケットデータＰＤは、捕捉されたパケットの受信時刻と、当該パケットのパケット長と、当該パケットの所定長さ（図例では１２８バイト）の先頭部分とを含むデータ構造となっている。これらのデータの順序は図示のものに限定されない。なお、未登録データＵＤのデータ構造も、パケットデータＰＤと同様である。
【００５９】
また、図６（ｂ）に示すように、フローデータＦＤは、捕捉されたパケットの受信時刻と、当該パケットの前記フローＩｄとを含むデータ構造となっている。なお、これらのデータの順序も図示のものに限定されない。
上述の通り、各フローＩｄには、ルールテーブルＲＴ（図４）によってパケットの送信元、宛先及び種別が割り当てられているので、当該フローＩｄは、パケットの送信元、宛先及び種別を識別可能な識別情報である。
【００６０】
このように、本実施形態のルータ３によれば、ミクロ解析のためのパケットデータＰＤが、捕捉されたパケットの所定長さの先頭部分以外の部分を省略したデータになっているので、パケットのすべてのデータ内容をバッファリングする場合に比べて、データバッファ３１５の容量を低減することができる。
また、フロー解析のためのフローデータＦＤが受信時刻とフローＩｄとから構成されており、そのうちのフローＩｄのデータ量が非常に小さいので、この点でもデータバッファ３１５の容量を低減することができる。
【００６１】
例えば、通信速度が１００Ｍｂｐｓである場合に、１つで１５００バイトのパケットのフローをそのまま捕捉してバッファリングすると、１時間分で約４３Ｇバイトものバッファ容量が必要となる。
これに対して、受信時刻の格納部に３バイト、フローＩｄの格納部に１バイトの容量を設定するとすれば、同じ１時間分のフローデータＦＤのバッファリングに必要な容量は、１００Ｍバイトで足りる。
【００６２】
＜データの処理＞
図３のデータの処理（Ｓ４）は、データ処理部３１３が行う処理である。
前述の通り、データ処理部３１３は、データバッファ３１５に格納されたパケットデータＰＤとフローデータＦＤに対して、パケットの解析処理或いはリダイレクト処理のいずれかを行う。また、パケットの解析処理にはミクロ解析とフロー解析とが含まれている。
【００６３】
データ処理部３１３は、「ミクロ解析」を行う場合、データバッファ３１５から所定のフローＩｄのパケットデータＰＤを読み出し、そのパケットデータＰＤに含まれている制御情報の値等に基づいて、パケットに誤りがあるかどうかを解析する。
例えば、ＴＣＰパケットのヘッダ情報には、当該パケットが格納しているデータが元のデータのどの部分に当たるかを示す、３２ビットの数値で表された「シーケンス番号」が含まれている。
【００６４】
このシーケンス番号は、コネクションの開始時の「初期シーケンス番号」とデータの先頭からのバイト数とで決定されるもので、コネクションの初期のシーケンス番号が「１００００」の場合、最初の１バイト目のデータを転送するＴＣＰパケットのシーケンス番号は、「１０００１」になり、先頭から１０００バイト目のデータを転送するＴＣＰパケットのシーケンス番号は、「１１０００」になる。
従って、かかるシーケンス番号の連続性をチェックすることにより、ある端末同士の通信が途切れた場合に、その原因がどちらにあるかを解析することができる。
【００６５】
データ処理部３１３は、「フロー解析」を行う場合、データバッファ３１５から所定のフローＩｄの一連のフローデータＦＤを読み出し、そのフローデータＦＤ間の時間間隔をチェックすることにより、ネットワーク機器の接続状態の健全性や、ネットワークの輻輳などを解析する。
【００６６】
図７は、同方向に一連のフローデータＦＤの例とそのシーケンス図である。
図７（ａ）の例では、フローＩｄ＝１のパケットがマルチキャストで送信されるＲＴＰ（Real-time Transport Protocol）パケットである場合を想定している。
図７（ａ）に示すように、タイムスタンプの値が１００〜１６０μ秒までの間は、フローＩｄ＝１のフローデータＦＤ同士の時間間隔が一定（２０μ秒）であるが、それ以後のエントリで時間間隔が大幅に遅れている。従って、この場合、サーバからの通信が輻輳していると推定できる。
【００６７】
図８は、双方向に一連のフローデータＦＤの例とそのシーケンス図である。
図８（ａ）の例では、フローＩｄ＝２のパケットがＩＣＭＰパケットのエコー要求であり、フローＩｄ＝３のパケットがＩＣＭＰパケットのエコー応答である場合を想定している。
図８（ａ）に示すように、タイムスタンプの値が１００〜２２０μ秒までの間は、フローＩｄ＝２のエコー要求とフローＩｄ＝３のエコー応答の間の時間間隔が一定（２０μ秒）であるが、３００μ秒以後にエコー応答が来なくなっている。従って、この場合、３００μ秒前後の時間帯に、何らかの理由でサーバの通信が切断したと推定できる。
【００６８】
データ処理部３１３は、上記のような「ミクロ解析」や「フロー解析」を行った結果、所定の通信エラーを検出した場合には、そのエラーのログ情報を生成する。
データ処理部３１３は、エラーのログ情報を生成すると、更にそのログ情報を含む送信パケットを生成する。データ処理部３１３は、送信パケットの宛先を、ルータ３を制御する通信端末４宛とし、第１送信バッファ３０４又は第２送信バッファ３０８の低優先度キューＬに入力する。
【００６９】
一方、データ処理部３１３は、「リダイレクト処理」を行う場合は、データバッファ３１５から少なくとも１つパケットデータＰＤ或いはフローデータＦＤを読み出し、そのデータを含む転送パケットを生成する。
また、データ処理部３１３は、転送パケットの宛先を、ネットワーク中のパケット解析装置である通信端末４Ａ，４Ｂ宛とし、第１送信バッファ３０４又は第２送信バッファ３０８の低優先度キューＬに入力する。
【００７０】
この場合、データ処理部３１３は、フローデータＦＤよりもパケットデータＰＤの方を優先して転送パケットを生成する。
その理由は、パケットデータＰＤはリアルタイム性が重視されるミクロ解析に利用されるので、統計的なデータであるフローデータＦＤに比べて、より迅速にパケット解析装置４Ａ，４Ｂに転送すべきだからである。
【００７１】
なお、パケットデータＰＤには、ルータ３配下のネットワーク管理者以外には秘匿すべきヘッダ情報が含まれている。従って、リダイレクト処理の結果生成された転送パケットについては、セキュリティ上の観点から、ルータ３が管理するローカルＩＰアドレス以外を宛先とするのを禁止し、ルータ３の外側の通信端末４（図１のサーバ４Ｂ）には送信しないという実装を採用することにしてもよい。
【００７２】
〔ルータの効果〕
以上の通り、本実施形態のルータ３によれば、データ処理部３１３が、捕捉されたパケットを解析する解析処理と、その解析に必要なデータを含む転送パケットを生成して送受信部から外部装置４Ａ，４Ｂに送信させるリダイレクト処理のいずれか一方を選択的に実行可能であり、中継処理を行うパケット数が比較的少ない場合に解析処理を選択し、多い場合には演算負荷の少ないリダイレクト処理を選択するので、中継処理への悪影響を抑えつつ、パケットの解析処理を行うことができる。
【００７３】
また、プロセッサ３０９の分類処理部３１２が、捕捉されたパケットを、そのパケットの内容を特定するためのパケットデータＰＤと、同種の複数のパケットの履歴を特定するためのフローデータＦＤとに分類し、パケットデータＰＤについては必要な先頭部分を残すデータ構造でバッファリングし、かつ、フローデータＦＤについては送信元、宛先及び種別を識別可能なフローＩｄを含むデータ構造でバッファリングする。
このため、パケットのすべてのデータ内容をバッファリングする場合に比べて、パケットの捕捉処理を行うルータ３のバッファ容量を低減することができる。
【００７４】
〔その他の変形例〕
上述の実施形態では、回線終端装置（図１ではＯＮＵ２）とは別の装置であるルータ３に本発明を適用しているが、回線終端装置とルータ３とを一体化したホームゲートウェイの場合には、この装置に本発明を適用することにしてもよい。
【００７５】
上述の実施形態では、パケットデータＰＤとフローデータＦＤの双方を生成しているが、これらの一方のみを生成してパケットの解析処理やリダイレクト処理を行うことにしてもよい。
また、上述の実施形態では、リダイレクト処理で得られたパケットデータＰＤとフローデータＦＤを含む転送パケットをネットワークのパケット解析装置４Ａ，４Ｂに転送しているが、ルータ３がＵＳＢ規格などの他の送受信インタフェースを有する場合には、メモリスティック等の記憶メディアにそれらのデータＰＤ，ＦＤを送信してもよい。
【００７６】
かかるパケットデータＰＤやフローデータＦＤを記憶した記憶メディアを、パケット解析装置４Ａ，４Ｂに差し込んでデータＰＤ，ＦＤの取り込みを行えば、当該解析装置４Ａ，４Ｂにてパケットの解析処理を行うことができる。
また、上述の実施形態では、図１に示すように、イーサネットケーブル９で構内ネットワークＬＡＮ１，ＬＡＮ２を構成しているが、ルータ３に無線ＬＡＮ対応のインタフェースを設け、構内のパケット解析装置４Ａとの通信を無線で行うようにしてもよい。
【００７７】
今回開示した実施形態（上述の各変形例を含む。）はすべての点で例示であって制限的なものではない。本発明の権利範囲は、上述の実施形態ではなく、特許請求の範囲と均等の範囲内でのすべての変更が含まれる。
【符号の説明】
【００７８】
３      ルータ（中継装置）
４      通信端末
４Ａ    パケット解析装置
４Ｂ    パケット解析装置
３０１    第１インタフェース部（送受信部）
３０２    第１送受信ドライバ  （送受信部）
３０３    捕捉用受信バッファ（送受信部）
３０４    第１送信バッファ（送受信部）
３０５    第２インタフェース部（送受信部）
３０６    第２送受信ドライバ（送受信部）
３０７    中継用受信バッファ（送受信部）
３０８    第２送信バッファ（送受信部）
３０９    パケットプロセッサ
３１０    中継処理部
３１１    捕捉処理部
３１２    分類処理部
３１３    データ処理部
３１４    タスク管理部
ＰＤ    パケットデータ
ＦＤ    フローデータ
【図１】
2012227805.tif 000003
【図２】
2012227805.tif 000004
【図３】
2012227805.tif 000005
【図４】
2012227805.tif 000006
【図５】
2012227805.tif 000007
【図６】
2012227805.tif 000008
【図７】
2012227805.tif 000009
【図８】
2012227805.tif 000010