説明

ルータ装置及びデータ解析方法

【課題】複数のDPIプロセッサを用いて高速かつ複雑なパケット解析処理を実現すると共に、DPIプロセッサのアドオンによりルータへの機能増設及び外部装置へのリダイレクトを容易に実現する。
【解決手段】ルータ装置において、入力パケットのヘッダから所定のデータ要素を抽出し、第1シグネチャテーブルに登録されているシグネチャに一致するか判定し、さらなる解析が必要か判断するルータ基本機能部130と、前記ルータ基本機能部から前記パケットを受信すると、ペイロードから所定のビット長のビットシーケンスを抽出し、第2シグネチャテーブルに登録されているシグネチャに一致するか判定し、さらなる解析が必要か判断する1以上のDPI部140−1〜Nと、前記DPI部から前記パケットを受信すると、第3シグネチャテーブルに登録されているシグネチャに一致するビットシーケンスを含むか判定するパケット分析機能部150を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、IPネットワークにおいてパケットを解析するルータ装置及びデータ解析方法に関する。
【背景技術】
【0002】
現在のIP(Internet Protocol)ネットワークでは、データが保存されているサーバ(HTTPサーバやFTPサーバなど)とユーザ端末(携帯端末やパーソナルコンピュータなど)との間で、又はユーザ端末間で、動画、画像、音楽などの各種マルチメディア情報が通信されたり、またウェブアプリケーションサービスなどの各種サービスが提供されている。このようなIPネットワークでは、通常、サーバとユーザ端末との間にある、又はユーザ端末間にあるルータやスイッチなどのIPネットワーク中継装置が、通信フローを制御及び解析している。
【0003】
このような通信フローを解析する1つの方法として、DPI(Deep Packet Inspection)という技術が知られている。DPI処理では、IPネットワーク中継装置を通過するパケットのペイロードパターンに対して、予め指定されたパターンに対するパターンマッチングを実行することによってパケットが識別される。このようなDPI処理を利用するパケット解析装置は、ネットワークの光ファイバなどを分岐したものからデータを入力し解析を行うか、ルータとルータとの間に設置されるか、ルータなどの装置においてコピーされたパケットを受信し解析を行っている。
【0004】
具体的なDPIパケット解析のための方法として、典型的には、フルプロセッシングタイプとフローベースプロセッシングタイプの2つのDPIパケット解析方法が知られている。フルプロセッシングタイプのDPIパケット解析方法は、ルータに入力されるすべてのフローを解析するものであり、図1に示されるように、典型的には2種類の実装が利用されている。図1の上部に示される実装では、ルータ基本機能部が、入力されるトラヒックフローの一部をDPIプロセッサにわたし、DPIが一部のトラヒックを解析する。他方、図1の下部に示される実装では、すべてのトラヒックがDPIプロセッサにより解析される。
【0005】
他方、フローベースプロセッシングタイプのDPIパケット解析方法は、ルータ基本機能部が、入力されるトラヒックフローの最初の一部のパケットのみをDPIプロセッサにわたす。一般に、トラヒックフローの最初の部分は、当該トラヒックの特徴的な動きやビット列が存在する可能性が高いためである。DPIプロセッサは、受信したパケットを解析し、受信したパケットがDPI処理の対象であると判断すると、当該パケットの送信者と宛先とのアドレス及びポート番号を特定してルータ基本機能部に通知する。ルータ基本機能部は、DPIプロセッサにより通知された送信者と宛先とのアドレス及びポート番号に基づき、以降に入力されるトラヒックフローを解析する。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】NetOptics TAP(http://www.bitrieve.co.jp/netoptics/netoptics tap.html
【非特許文献2】ファイアウォールの基礎から応用(http://www.soi.wide.ad.jp/class/20060031/slides/18/50.html)
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述したような従来のシステムでは、DPI処理のようなパケットペイロードの特定のビットシーケンスを検索する複雑な処理は、パケット転送のための固定位置にある固定長のビットシーケンスしか参照しないIPルータには困難であった。このため、ルータとは別のDPI装置を用意し、当該DPI装置にパケットを転送するため、ルータ間にデータ分岐用のタップやスイッチを挿入するか、DPI装置自体をルータ間に挿入することによってDPIパケット解析処理が実装されていた。
【0008】
しかしながら、この場合、DPI装置を導入するため通信回線を一度切断する必要があり、またDPI装置が故障した場合には通信回線が全断するなどのおそれがあった。
【0009】
また、上述したパケット解析処理を単一のDPIプロセッサに実行させる場合、DPIプロセッサに大きな処理負荷がかかり、パフォーマンスが低下する可能性もある。
【0010】
従って、上述した問題点を鑑み、本発明の課題は、複数のDPIプロセッサを用いて高速かつ複雑なパケット解析処理を実現すると共に、DPIプロセッサのアドオンによりルータへの機能増設及び外部装置へのリダイレクトを容易に実現することである。
【課題を解決するための手段】
【0011】
上記課題を解決するため、本発明の一特徴は、データ解析機能を有するルータ装置であって、入力されたパケットのヘッダから所定のデータ要素を抽出し、前記抽出されたデータ要素が第1シグネチャテーブルに登録されているシグネチャに一致するか判定することによって、前記パケットに対してさらなる解析が必要か判断するルータ基本機能部と、前記ルータ基本機能部から前記パケットを受信すると、前記パケットのペイロードから所定のビット長のビットシーケンスを抽出し、前記抽出されたビットシーケンスが第2シグネチャテーブルに登録されているシグネチャに一致するか判定することによって、前記パケットに対してさらなる解析が必要か判断する1以上のDPI部と、前記DPI部から前記パケットを受信すると、前記パケットが第3シグネチャテーブルに登録されているシグネチャに一致するビットシーケンスを含むか判定することによって、前記パケットを解析するパケット分析機能部とを有するルータ装置に関する。
【発明の効果】
【0012】
本発明によると、複数のDPIプロセッサを用いて高速かつ複雑なパケット解析処理を実現すると共に、DPIプロセッサのアドオンによりルータへの機能増設及び外部装置へのリダイレクトを容易に実現することができる。
【図面の簡単な説明】
【0013】
【図1】図1は、従来技術によるパケット解析方法(フルプロセッシング)を説明する概略図である。
【図2】図2は、従来技術によるパケット解析方法(フローベースプロセッシング)を説明する概略図である。
【図3】図3は、本発明の第1実施例によるルータ装置の構成を示す図である。
【図4】図4は、本発明の第1実施例によるルータ装置の動作を示すシーケンス図である。
【図5】図5は、本発明の第2実施例によるルータ装置の構成を示す図である。
【図6】図6は、本発明の第2実施例によるルータ装置の動作を示すシーケンス図である。
【発明を実施するための形態】
【0014】
以下、図面に基づいて本発明の実施の形態を説明する。
【0015】
図3〜4を参照して、本発明の第1実施例によるルータ装置を説明する。まず、図3を参照して、本発明の第1実施例によるルータ装置の構成を説明する。図3は、本発明の第1実施例によるルータ装置の構成を示す図である。
【0016】
図3に示されるように、ルータ装置10は、入力部110と、出力部120と、ルータ基本機能部130と、1次DPI部140−1〜N次DPI部140−N(以下において、DPI部140と総称される)と、パケット分析機能部150とを有する。
【0017】
入力部110は、外部装置(図示せず)からの入力信号を受信し、受信した入力信号からパケットデータフローを抽出し、ルータ基本機能部130に送信する。抽出されたパケットデータフローの各パケットは、制御データを収容するヘッダと、実データを収容するペイロードとから構成される。ヘッダは、典型的には、固定長のデータであり、当該データの固定位置に送信元IPアドレス(SIP)、宛先IPアドレス(DIP)、IPプロトコルタイプ(PR)、送信元ポート番号(SPT)及び宛先ポート番号(DPT)という5つの要素(5タプル)を含んでいる。
【0018】
出力部120は、ルータ基本機能部130、DPI部140及びパケット分析機能部150から出力されたパケットデータを適切な転送先に送信する。
【0019】
ルータ基本機能部130は、ルーティングテーブルを参照して、入力部110から受信したパケットデータフローの各パケットを適切な転送先にルーティングすると共に、ルータシグネチャテーブルを参照して、当該テーブルに登録されている検索対象の5タプルに一致するパケットを検出する。ルータシグネチャテーブルには、検索条件となるヘッダの5タプルと、検索条件に一致したパケットに対して実行すべき処理内容(ACT)とが登録されている。例えば、ルータシグネチャテーブルに登録される各検索条件は、「SIP="aaa";DIP="bbb";PR="ccc";SPT="ddd";DPT="eee"→ACT="fff"」から構成されてもよい。この場合、当該検索条件は、SIPが "aaa"、DIPが"bbb"、PRが"ccc"、SPTが"ddd"、かつDPTが"eee"である場合、付随条件である処理"fff"が実行されることを表している。
【0020】
このようなルータシグネチャテーブルを参照して、ルータ基本機能部130は、入力部110から送信されるパケットデータフローの各パケットのヘッダを確認し、確認したヘッダの5タプルが登録されている検索条件の5タプルに一致するか判断する。確認したヘッダの5タプルが検索条件の5タプルに一致しない場合、ルータ基本機能部130は、当該パケットを通常のパケットであると判断し、ルーティングテーブルを参照して転送先を指定して出力部120に転送する。他方、検索条件の5タプルに一致したパケットが検出されると、ルータ基本機能部130は、検出されたパケットに対して付随条件"fff"に対応する処理を実行する。この付随条件の処理内容としては、典型的には、DPI部140に転送する、所定の処理を実行して出力部120に転送する、などが設定されてもよい。DPI部140にパケットを転送する場合、ルータ基本機能部130は、1次DPI部140−1〜N次DPI部140−Nのそれぞれに並列的にパケットを転送する。
【0021】
各DPI部140は、典型的には、CPU(Central Processing Unit)とメモリとを備える個別のプロセッサ装置から構成され、互いに独立して動作可能とされる。また、DPI部140は、DPI部140及びパケット分析機能部150とのロードバランスを考慮して、必要に応じて増設されてもよい。ルータ基本機能部130からパケットを受信すると、各DPI部140は、各自のDPIシグネチャテーブルを参照して、当該テーブルに登録されているDPIシグネチャに一致する文字列が受信したパケットのペイロードにあるか検索する。
【0022】
ここで、各DPI部140に設定されるDPIシグネチャのビット長は予め設定される。すなわち、1次DPI部140−1にはビット長mのDPIシグネチャが設定され、2次DPI部140−2にはビット長mのDPIシグネチャが設定され、・・・、N次DPI部140−1にはビット長mのDPIシグネチャが設定される。各DPI部140は、受信したパケットのペイロードに含まれている設定されたビット長のビットシーケンスをチェックし、設定されているDPIシグネチャに一致するものがあるか判断する。例えば、i次DPI部140−iのビット長mが5であって(m=5)、"abcde"のDPIシグネチャが設定されている場合、i次DPI部140−iは、受信したパケットのペイロードに含まれるビット長5の各ビットシーケンスをチェックし、設定されたDPIシグネチャに一致するものがあるか判断する。このように、各DPI部140に固有のビット長を設定し、設定されたビット長のビットシーケンスのみを検索させる。この場合、設定することを所望するDPIシグネチャのビット長の種類に応じた個数のDPI部140を設けることによって、すなわち、1以上のDPI部が前記ペイロードにおいて検索されるべきビットシーケンスの異なるビット長の個数に対応して設けられることによって、複数種類の任意のビット長のビットシーケンスを高速かつ簡易に検索することが可能になる。
【0023】
なお、DPIシグネチャに設定されるビットシーケンスのビットは、任意の文字を示すワイルドカード"*"を含むものであってもよい。すなわち、"ab*de"がDPIシグネチャとして設定されている場合、"abcde","abade","abbde"なども検索条件に一致することになる。また、DPIシグネチャテーブルに複数のDPIシグネチャが設定され、このうち2以上のDPIシグネチャが一致した場合に、検索条件に一致したと設定するようにしてもよい。
【0024】
DPIシグネチャテーブルには、検索条件となるビット長mのビットシーケンスと、検索条件に一致したパケットに対して実行すべき処理内容(ACT)とが登録されている。例えば、DPIシグネチャテーブルに登録される各検索条件は、ビット長xのビットシーケンス「"a・・・a"→ACT="ggg"」から構成されてもよい。この場合、ビットシーケンスが"a・・・a"である場合、付随条件である処理"ggg"が実行されることを表している。
【0025】
このようなDPIシグネチャテーブルを参照して、DIP部140は、ルータ基本機能部130から送信されるパケットのペイロードに含まれるビット長xのビットシーケンスを確認し、確認した各ビットシーケンスが登録されている検索条件のシグネチャに一致するか判断する。確認した各ビットシーケンスが検索条件のシグネチャに一致しない場合、DPI部140は、当該パケットをルータ基本機能部130に送り返し、出力部120を介し適切な転送先に転送する。他方、検索条件のシグネチャに一致したビットシーケンスが検出されると、DPI部140は、検出されたパケットに対して付随条件"ggg"に対応する処理を実行する。この付随条件の処理内容としては、典型的には、パケット分析機能部150に転送する、所定の処理を実行してルータ基本機能部130を介し出力部120に転送する、などが設定されてもよい。
【0026】
パケット分析機能部150は、DPI部140からパケットを受信すると、パケット分析シグネチャテーブルを参照して、当該テーブルに登録されているシグネチャに一致する文字列が受信したパケットにあるか検索する。パケット分析シグネチャテーブルには、検索条件となる1以上のシグネチャが登録されている。パケット分析シグネチャテーブルに登録されているシグネチャは、異なるビット長のビットシーケンスが登録可能であり、典型的には、DPI部140により検索されるビットシーケンスのビット長mより大きなビット長nが登録される(m<n)。すなわち、相対的に短いシグネチャはDPI部140により検索され、相対的に長いシグネチャはパケット分析機能部150により検索されることになる。短いシグネチャの検索は、一定長のパケットに含まれる検索対象のビットシーケンスがより多く含まれることになるため、シグネチャとビットシーケンスとの比較回数も増大し、計算量が多くなる。このような相対的に短いシグネチャの検索処理をDPI部140に任せることによって、パケット分析機能部150の処理負荷を低減することが可能となる。また、パケット分析機能部150の処理負荷に応じて、DPI部140を自由に増設することによって、DPI部140とパケット分析機能部150との間の適切なロードバランスを実現することが可能になる。
【0027】
パケット分析シグネチャテーブルには、検索条件となるシグネチャと、検索条件に一致したパケットに対して実行すべき処理内容(ACT)とが登録されている。例えば、パケット分析シグネチャテーブルに登録される各検索条件は、「"b・・・b"→ACT="hhh"」から構成されてもよい。この場合、ビットシーケンスが"b・・・b"である場合、付随条件である処理"hhh"が実行されることを表している。
【0028】
このようなパケット分析シグネチャテーブルを参照して、パケット分析機能部150は、当該テーブルに登録されている各シグネチャに対して、当該シグネチャに一致するパケットに含まれるビットシーケンスがあるか検索する。具体的には、DPI部140から送信されるパケットをシグネチャのビット長nのビットシーケンスに分解し、分解されたビットシーケンスに当該シグネチャに一致するものがあるか検索する。パケットに含まれるビット長nの各ビットシーケンスがシグネチャに一致しない場合、パケット分析機能部150は、当該パケットをルータ基本機能部130に送り返し、出力部120を介し適切な転送先に転送する。登録されているシグネチャに一致するビットシーケンスが検出された場合、パケット分析機能部150は、当該シグネチャに対応する付随条件となる処理を実行する。この付随条件の処理内容としては、典型的には、パケットを破棄する、QoSを制御する、などが設定されてもよい。なお、これらの処理は、パケット分析機能部150によって実行されてもよいし、又は他の装置により実行されてもよい。
【0029】
なお、図示された実施例では、単一のパケット分析機能部150が設けられたが、本発明はこれに限定されず、複数のパケット分析機能部150が設けられてもよい。この場合、DPI部140は、パケット分析機能部150に転送すべきパケットが検出されると、各パケット分析機能部150のトラヒック量を確認し、トラヒック量の少ないパケット分析機能部150に検出したパケットを転送するようにしてもよい。あるいは、DPI部140は、各DPI部に対して転送先として予め設定されているパケット分析機能部150に検出したパケットを転送するようにしてもよい。
【0030】
次に、図4を参照して、本発明の第1実施例によるルータ装置における処理を説明する。図4は、本発明の第1実施例によるルータ装置の動作を示す示すシーケンス図である。
【0031】
図4に示されるように、外部装置からパケットデータフローを受信すると、入力部110は、受信したパケットデータフローからパケットを抽出し、ルータ基本機能部130に転送する。
【0032】
ステップS101において、ルータ基本機能部130は、転送されたパケットのヘッダから、所定のビット長を有する所定のビット位置に配置された送信元IPアドレス(SIP)、宛先IPアドレス(DIP)、IPプロトコルタイプ(PR)、送信元ポート番号(SPT)及び宛先ポート番号(DPT)の5タプルを抽出し、ルータシグネチャテーブルを参照して、抽出したタプルが当該テーブルに登録されているシグネチャに一致するか検索する。抽出したタプルが何れのシグネチャにも一致しない場合(S101:N)、ルータ基本機能部130は、受信したパケットが通常のパケットであると判断し、ルーティングテーブルを参照して、出力部120を介しパケットを対応する転送先に送信する。他方、抽出したタプルに一致するシグネチャが検出された場合(S101:Y)、当該フローは、ステップS102に移行する。
【0033】
ステップS102において、ルータ基本機能部130は、ルータシグネチャテーブルを参照して、検出されたシグネチャの付随条件に対応する処理を特定し、当該パケットに対して特定された処理を実行し、DPI部140に転送する。
【0034】
ステップS103において、ルータ基本機能部130からパケットを受信すると、各DPI部140−iは、受信したパケットのペイロードに含まれるパケット長mのビットシーケンスを抽出し、各自のDPIシグネチャテーブルに登録されているシグネチャに一致するビットシーケンスを検索する。登録されているシグネチャに一致するビットシーケンスがない場合(S103:N)、DPI部140−iは、受信したパケットをルータ基本機能部130を介し出力部120に転送する。他方、登録されているシグネチャに一致するビットシーケンスが検出された場合(S103:Y)、当該フローは、ステップS104に移行する。
【0035】
ステップS104において、DPI部140−iは、DPIシグネチャテーブルを参照して、検出されたシグネチャの付随条件に対応する処理を特定し、当該パケットに対して特定された処理を実行し、パケット分析機能部150に転送する。
【0036】
ステップS105において、DPI部140−iからパケットを受信すると、パケット分析機能部150は、パケット分析シグネチャテーブルを参照して、当該テーブルに登録されている各シグネチャに対して、当該シグネチャに一致するビットシーケンスが受信したパケットに含まれているか検索する。登録されているシグネチャに一致するビットシーケンスがない場合(S105:N)、パケット分析機能部150は、受信したパケットをルータ基本機能部130を介し出力部120に転送する。他方、登録されているシグネチャに一致するビットシーケンスが検出された場合(S105:Y)、当該フローは、ステップS106に移行する。
【0037】
ステップS106において、パケット分析機能部150は、パケット分析シグネチャテーブルを参照して、検出されたシグネチャの付随条件に対応する処理を特定し、当該パケットに対して特定された処理を実行する。
【0038】
上述した第1実施例によると、複数のDPIプロセッサを利用した階層化されたDPI処理を実行することによって、DPIプロセッサを用いて高速かつ複雑なパケット解析処理を実現することが可能になると共に、DPIプロセッサのアドオンによりルータへの機能増設及び外部装置へのリダイレクトを容易に実現することが可能となる。
【0039】
次に、図5〜6を参照して、本発明の第2実施例によるルータ装置を説明する。第1実施例では、ルータ基本機能部130、DPI部140−i及びパケット分析機能部150のそれぞれが、検索条件となるシグネチャを予め登録したテーブルを有していた。第2実施例では、パケット分析機能部250のみが検索条件のシグネチャが予め登録されたテーブルを有し、ルータ基本機能部230及びDPI部240−iの各自のテーブルには、初期的には検索条件のシグネチャが登録されておらず、パケット分析機能部250からの検索条件設定指示によって順次検索条件が登録される。
【0040】
まず、図5を参照して、本発明の第2実施例によるルータ装置の構成を説明する。図5は、本発明の第2実施例によるルータ装置の構成を示す図である。
【0041】
図5に示されるように、ルータ装置20は、入力部210と、出力部220と、ルータ基本機能部230と、1次DPI部240−1〜N次DPI部240−N(以下において、DPI部240と総称される)と、パケット分析機能部250とを有する。上述したように、本実施例では、ルータ基本機能部230とDPI部240とは、初期的には各自のテーブルにシグネチャが登録されておらず、パケット分析機能部250のみが、予め登録されたシグネチャを有するパケット分析シグネチャテーブルを有している。ルータ装置20に入力されたパケットは、初期的にはパケット分析機能部250にわたされて解析され、パケット分析機能部250においてシグネチャに一致した場合、当該シグネチャが対応するルータ基本機能部230とDPI部240に検索条件として設定される。以降、ルータ装置20が同じパケットを受信すると、当該パケットはルータ基本機能部230又はDPI部240において検出されることになる。このようにして、パケット分析機能部250において未解析なパケットが入力される毎にパケット分析機能部250において解析され、解析結果に応じてルータ基本機能部230とDPI部240のテーブルが更新されるため、パケット分析機能部250における解析処理を順次ルータ基本機能部230とDPI部240に分担させることが可能となる。なお、入力部210と出力部220とは、第1実施例の入力部110と出力部120と同様であり、重複した説明は省く。
【0042】
入力部210は、外部装置(図示せず)からの入力信号を受信し、受信した入力信号からパケットデータフローを抽出し、ルータ基本機能部230に送信する。
【0043】
出力部220は、ルータ基本機能部230、DPI部240及びパケット分析機能部250から出力されたパケットデータを適切な送信先に送信する。
【0044】
ルータ基本機能部230は、ルーティングテーブルを参照して、入力部210から受信したパケットデータフローの各パケットを適切な転送先にルーティングすると共に、ルータシグネチャテーブルを参照して、当該テーブルに登録されている検索対象の5タプルに一致するパケットを検出する。本実施例では、初期的にはルータシグネチャテーブルには、検索条件となるシグネチャは登録されていない。従って、最初に受信したパケットに対して、ルータ基本機能部230は、検出処理を実行することなく受信したパケットをDPI部240に単に転送すると共に、さらに当該パケットを転送済みパケットとして記憶する。
【0045】
以降に受信されるパケットについては、ルータ基本機能部230は、後述されるようにパケット分析機能部250からの指示に従って更新されたルータシグネチャテーブルを参照して、当該テーブルに登録されている検索対象の5タプルに一致するパケットがあるか検索する。一致するパケットが検出された場合、ルータ基本機能部230は、当該シグネチャの付随条件に対応する処理を実行する。他方、一致するパケットが検出されなかった場合、ルータ基本機能部230はさらに、当該パケットが転送済みパケットとして記憶されているか判断する。
【0046】
転送済みパケットとして記憶されていた場合、ルータ基本機能部230は、当該パケットは以前にDPI部240及び/又はパケット分析機能部250に転送されたが、設定されたシグネチャに該当せず通常のパケットであると判断されたものであると判断し、ルーティングテーブルを参照して転送先を指定して出力部220に転送する。他方、転送済みパケットとして記憶されていない場合、ルータ基本機能部230は、当該パケットはDPI部240及び/又はパケット分析機能部250により未解析なパケットであると判断し、DPI部240に転送し、さらに転送済みパケットとして記憶する。
【0047】
各DPI部240は、ルータ基本機能部230からパケットを受信すると、各自のDPIシグネチャテーブルを参照して、当該テーブルに登録されているDPIシグネチャに一致する文字列が受信したパケットのペイロードにあるか検索する。本実施例では、初期的にはDIPシグネチャテーブルには、検索条件となるシグネチャは登録されていない。従って、最初に受信したパケットに対して、DPI部240は、検出処理を実行することなく受信したパケットをパケット分析機能部250に単に転送すると共に、さらに当該パケットを転送済みパケットとして記憶する。
【0048】
以降に受信されるパケットについては、DPI部240は、後述されるようにパケット分析機能部250からの指示に従って更新されたDPIシグネチャテーブルを参照して、当該テーブルに登録されている検索対象のシグネチャに一致するパケットがあるか検索する。一致するパケットが検出された場合、DPI部240は、当該シグネチャの付随条件に対応する処理を実行する。他方、一致するパケットが検出されなかった場合、DPI部240は、当該パケットが転送済みパケットとして記憶されているか判断する。
【0049】
転送済みパケットとして記憶されていた場合、DPI部240は、当該パケットは以前にパケット分析機能部250に転送されたが、通常のパケット又は他のDPI部240の対象パケットであると判断されたものであると判断し、ルータ基本機能部230を介し転送先を指定して出力部220に転送する。他方、転送済みパケットとして記憶されていない場合、DPI部240は、当該パケットはパケット分析機能部250により未解析なパケットであると判断し、パケット分析機能部250に転送し、転送済みパケットとして記憶する。
【0050】
パケット分析機能部250は、ルータ基本機能部230のルータシグネチャテーブル及びDPI部240のDPIシグネチャテーブルに検索条件を設定するための検索条件設定部251を有する。パケット分析機能部250は、DPI部240からパケットを受信すると、パケット分析シグネチャテーブルを参照して、当該テーブルに登録されているシグネチャに一致する文字列が受信したパケットにあるか検索する。パケット分析シグネチャテーブルには、検索条件となる1以上のシグネチャが登録されている。また、パケット分析シグネチャテーブルには、検索条件となるビットシーケンスと、検索条件に一致したパケットに対して実行すべき処理内容(ACT)とが登録されている。パケット分析機能部250は、当該テーブルに登録されている各シグネチャに対して、当該シグネチャに一致するパケットに含まれるビットシーケンスがあるか検索する。具体的には、DPI部240から送信されるパケットをシグネチャのビット長nのビットシーケンスに分解し、分解されたビットシーケンスに当該シグネチャに一致するものがあるか検索する。パケットに含まれるビット長nの各ビットシーケンスがシグネチャに一致しない場合、パケット分析機能部250は、当該パケットをルータ基本機能部230に送り返し、出力部220を介し適切な転送先に転送する。登録されているシグネチャに一致するビットシーケンスが検出された場合、パケット分析機能部250は、当該シグネチャに対応する付随条件となる処理を実行すると共に、検索条件設定部251に当該シグネチャと対応する付随条件とを通知する。
【0051】
検索条件設定部251は、通知されたシグネチャと付随条件とをルータ基本機能部230とDPI部240の対応する要素に設定するよう指示する。すなわち、通知されたシグネチャがヘッダの5タプルに関するものである場合、検索条件設定部251は、通知されたシグネチャと付随条件とをルータ基本機能部230に通知し、ルータシグネチャテーブルに登録するよう指示する。また、通知されたシグネチャがペイロードのビット長mのビットシーケンスに関するものである場合、検索条件設定部251は、通知されたシグネチャと付随条件とをi次DPI部240−iに通知し、DPIシグネチャテーブルに登録するよう指示する。
【0052】
次に、図6を参照して、本発明の第2実施例によるルータ装置における処理を説明する。図6は、本発明の第2実施例によるルータ装置の動作を示す示すシーケンス図である。
【0053】
図6に示されるように、外部装置からパケットデータフローを受信すると、入力部210は、受信したパケットデータフローからパケットを抽出し、ルータ基本機能部230に転送する。
【0054】
ステップS201において、ルータ基本機能部230は、転送されたパケットのヘッダから、所定のビット長を有する所定のビット位置に配置された送信元IPアドレス(SIP)、宛先IPアドレス(DIP)、IPプロトコルタイプ(PR)、送信元ポート番号(SPT)及び宛先ポート番号(DPT)の5タプルを抽出し、ルータシグネチャテーブルを参照して、抽出したタプルが当該テーブルに登録されているシグネチャに一致するか検索すると共に、一致しない場合にはさらに当該パケットが転送済みパケットであるか判断する。抽出したタプルが何れのシグネチャにも一致しておらず、かつ当該パケットがパケット分析機能部250への転送済みパケットである場合(S201:N)、ルータ基本機能部230は、受信したパケットが通常のパケットであると判断し、ルーティングテーブルを参照して、出力部220を介しパケットを対応する転送先に送信する。他方、抽出したタプルに一致するシグネチャが検出されたか、又は当該パケットが転送済みパケットでない場合(S201:Y)、当該フローは、ステップS202に移行する。
【0055】
ステップS202において、抽出したタプルに一致するシグネチャが検出された場合には、ルータ基本機能部230は、ルータシグネチャテーブルを参照して、検出されたシグネチャの付随条件に対応する処理を特定し、当該パケットに対して特定された処理を実行し、必要に応じてDPI部240に転送する。また、当該パケットが転送済みパケットでない場合には、ルータ基本機能部230は、当該パケットをDPI部240に転送する。DPI部240への転送後、ルータ基本機能部230は、当該パケットを転送済みパケットとして記憶する。
【0056】
ステップS203において、ルータ基本機能部230からパケットを受信すると、各DPI部240−iは、受信したパケットのペイロードに含まれるパケット長mのビットシーケンスを抽出し、DPIシグネチャテーブルに登録されているシグネチャに一致するビットシーケンスを検索すると共に、一致しない場合にはさらに当該パケットが転送済みパケットであるか判断する。抽出したビットシーケンスが何れのシグネチャにも一致しておらず、かつ当該パケットがパケット分析機能部250への転送済みパケットである場合(S203:N)、DPI部240は、受信したパケットが通常のパケットか、又は他のDPI部240による処理対象のパケットであると判断し、出力部220を介しパケットを対応する転送先に送信する。他方、抽出したビットシーケンスに一致するシグネチャが検出されたか、又は当該パケットが転送済みパケットでない場合(S203:Y)、当該フローは、ステップS204に移行する。
【0057】
ステップS204において、抽出したビットシーケンスに一致するシグネチャが検出された場合には、DPI部240は、DPIシグネチャテーブルを参照して、検出されたシグネチャの付随条件に対応する処理を特定し、当該パケットに対して特定された処理を実行し、必要に応じてパケット分析機能部250に転送する。また、当該パケットが転送済みパケットでない場合には、DPI部240は、当該パケットをパケット分析機能部250に転送する。パケット分析機能部250への転送後、DPI部240は、当該パケットを転送済みパケットとして記憶する。
【0058】
ステップS205において、DPI部240−iからパケットを受信すると、パケット分析機能部250は、パケット分析シグネチャテーブルを参照して、当該テーブルに登録されている各シグネチャに対して、当該シグネチャに一致するビットシーケンスが受信したパケットに含まれているか検索する。登録されているシグネチャに一致するビットシーケンスがない場合(S205:N)、パケット分析機能部250は、受信したパケットをルータ基本機能部230を介し出力部220に転送する。他方、登録されているシグネチャに一致するビットシーケンスが検出された場合(S205:Y)、パケット分析機能部250は、検索条件設定部251に検出されたシグネチャと当該シグネチャの付随条件とを通知する。
【0059】
ステップS206において、検索条件設定部251は、通知されたシグネチャと付随条件とがルータ基本機能部230とDPI部240の何れに関連するものであるか決定し、決定した要素に当該シグネチャと付随条件とをテーブルに登録するよう指示する。すなわち、検索条件がヘッダに関するものである場合、検索条件設定部251は、当該シグネチャと付随条件とをルータ基本機能部230に設定する。他方、検索条件がペイロードに関するものであって、シグネチャのビット長がmである場合、検索条件設定部251は、当該シグネチャと付随条件とをi次DPI部240−iに設定する。
【0060】
ステップS207において、パケット分析機能部250は、パケット分析シグネチャテーブルを参照して、当該パケットに対して付随条件に対応する処理を実行する。
【0061】
第2実施例によると、初期的にはパケット分析機能部250にしかシグネチャが設定されていない場合でも、パケットを順次解析するに従って、ルータ基本機能部230及びDPI部240にシグネチャを自動的に設定することが可能となる。これにより、パケット分析機能部250のみに検索条件のシグネチャを設定しさえすればよく、設定作業の省力化が可能となる。
【0062】
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0063】
10,20 ルータ装置
110,210 入力部
120,220 出力部
130,230 ルータ基本機能部
140,240 DPI部
150,250 パケット分析機能部
251 検索条件設定部

【特許請求の範囲】
【請求項1】
データ解析機能を有するルータ装置であって、
入力されたパケットのヘッダから所定のデータ要素を抽出し、前記抽出されたデータ要素が第1シグネチャテーブルに登録されているシグネチャに一致するか判定することによって、前記パケットに対してさらなる解析が必要か判断するルータ基本機能部と、
前記ルータ基本機能部から前記パケットを受信すると、前記パケットのペイロードから所定のビット長のビットシーケンスを抽出し、前記抽出されたビットシーケンスが第2シグネチャテーブルに登録されているシグネチャに一致するか判定することによって、前記パケットに対してさらなる解析が必要か判断する1以上のDPI部と、
前記DPI部から前記パケットを受信すると、前記パケットが第3シグネチャテーブルに登録されているシグネチャに一致するビットシーケンスを含むか判定することによって、前記パケットを解析するパケット分析機能部と、
を有するルータ装置。
【請求項2】
前記シグネチャは、検索対象となる前記データ要素及び/又は前記ビットシーケンスと一致した場合に前記データ要素及び/又は前記ビットシーケンスに対して実行されるべき付随処理と関連付けされる、請求項1記載のルータ装置。
【請求項3】
前記1以上のDPI部の個数は、前記ペイロードにおいて検索されるべきビットシーケンスの異なるビット長の個数に対応する、請求項2記載のルータ装置。
【請求項4】
前記第2シグネチャテーブルに登録されているシグネチャのビット長は、前記第3シグネチャテーブルに登録されているシグネチャのビット長より小さい、請求項3記載のルータ装置。
【請求項5】
前記パケット分析機能部は、前記パケットが第3シグネチャテーブルに登録されているシグネチャに一致するビットシーケンスを含むと判定した場合、前記一致したシグネチャと関連する付随処理とを、前記シグネチャに対応する前記ルータ基本機能部の第1シグネチャテーブル及び/又は前記1以上のDPI部の第2シグネチャテーブルに設定する検索条件設定部を有する、請求項2乃至4何れか一項記載のルータ装置。
【請求項6】
前記ルータ基本機能部は、前記さらなる解析のため前記1以上のDPI部に送信した転送済みパケットを記憶し、前記抽出されたデータ要素が前記第1シグネチャテーブルに登録されているシグネチャに一致せず、かつ前記パケットが前記転送済みパケットである場合、前記パケットに対してさらなる解析が不要であると判断する、請求項5記載のルータ装置。
【請求項7】
前記1以上のDPI部は、前記さらなる解析のため前記パケット分析機能部に送信した転送済みパケットを記憶し、前記抽出されたビットシーケンスが前記第2シグネチャテーブルに登録されているシグネチャに一致せず、かつ前記パケットが前記転送済みパケットである場合、前記パケットに対してさらなる解析が不要であると判断する、請求項5記載のルータ装置。
【請求項8】
ルータ装置によるデータ解析方法であって、
入力されたパケットのヘッダから所定のデータ要素を抽出し、前記抽出されたデータ要素が第1シグネチャテーブルに登録されているシグネチャに一致するか判定することによって、前記パケットに対してさらなる解析が必要か判断するステップと、
前記ヘッダに対する判定に基づき前記パケットに対してさらなる解析が必要であると判断すると、前記パケットのペイロードから所定のビット長のビットシーケンスを抽出し、前記抽出されたビットシーケンスが第2シグネチャテーブルに登録されているシグネチャに一致するか判定することによって、前記パケットに対してさらなる解析が必要か判断するステップと、
前記ペイロードに対する判定に基づき前記パケットに対してさらなる解析が必要であると判断すると、前記パケットが第3シグネチャテーブルに登録されているシグネチャに一致するビットシーケンスを含むか判定することによって、前記パケットを解析するステップと、
を有する方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−38610(P2013−38610A)
【公開日】平成25年2月21日(2013.2.21)
【国際特許分類】
【出願番号】特願2011−173412(P2011−173412)
【出願日】平成23年8月8日(2011.8.8)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】