(57)【特許請求の範囲】
【請求項１】
データ解析機能を有するルータ装置であって、
入力されたパケットのヘッダから所定のデータ要素を抽出し、前記抽出されたデータ要素が第１シグネチャテーブルに登録されているシグネチャに一致するか判定することによって、前記パケットに対してさらなる解析が必要か判断するルータ基本機能部と、
前記ルータ基本機能部から前記パケットを受信すると、前記パケットのペイロードから所定のビット長のビットシーケンスを抽出し、前記抽出されたビットシーケンスが第２シグネチャテーブルに登録されているシグネチャに一致するか判定することによって、前記パケットに対してさらなる解析が必要か判断する１以上のＤＰＩ部と、
前記ＤＰＩ部から前記パケットを受信すると、前記パケットが第３シグネチャテーブルに登録されているシグネチャに一致するビットシーケンスを含むか判定することによって、前記パケットを解析するパケット分析機能部と、
を有するルータ装置であって、
前記１以上のＤＰＩ部の各ＤＰＩ部は、前記パケットのペイロードから固有のビット長のビットシーケンスを検索するよう設定されるルータ装置。
【請求項２】
前記シグネチャは、検索対象となる前記データ要素及び／又は前記ビットシーケンスと一致した場合に前記データ要素及び／又は前記ビットシーケンスに対して実行されるべき付随処理と関連付けされる、請求項１記載のルータ装置。
【請求項３】
前記１以上のＤＰＩ部の個数は、前記ペイロードにおいて検索されるべきビットシーケンスの異なるビット長の個数に対応する、請求項２記載のルータ装置。
【請求項４】
前記第２シグネチャテーブルに登録されているシグネチャのビット長は、前記第３シグネチャテーブルに登録されているシグネチャのビット長より小さい、請求項３記載のルータ装置。
【請求項５】
前記パケット分析機能部は、前記パケットが第３シグネチャテーブルに登録されているシグネチャに一致するビットシーケンスを含むと判定した場合、前記一致したシグネチャと関連する付随処理とを、前記シグネチャに対応する前記ルータ基本機能部の第１シグネチャテーブル又は前記１以上のＤＰＩ部の第２シグネチャテーブルに設定する検索条件設定部を有する、請求項２乃至４何れか一項記載のルータ装置。
【請求項６】
前記一致したシグネチャと関連する付随処理とが、前記ルータ基本機能部の第１シグネチャテーブルに設定され、
前記ルータ基本機能部は、前記さらなる解析のため前記１以上のＤＰＩ部に送信した転送済みパケットを記憶し、前記抽出されたデータ要素が前記第１シグネチャテーブルに登録されているシグネチャに一致せず、かつ前記パケットが前記転送済みパケットである場合、前記パケットに対してさらなる解析が不要であると判断する、請求項５記載のルータ装置。
【請求項７】
前記一致したシグネチャと関連する付随処理とが、前記１以上のＤＰＩ部の第２シグネチャテーブルに設定され、
前記１以上のＤＰＩ部は、前記さらなる解析のため前記パケット分析機能部に送信した転送済みパケットを記憶し、前記抽出されたビットシーケンスが前記第２シグネチャテーブルに登録されているシグネチャに一致せず、かつ前記パケットが前記転送済みパケットである場合、前記パケットに対してさらなる解析が不要であると判断する、請求項５記載のルータ装置。
【請求項８】
ルータ装置によるデータ解析方法であって、
前記ルータ装置のルータ基本機能部が、入力されたパケットのヘッダから所定のデータ要素を抽出し、前記抽出されたデータ要素が第１シグネチャテーブルに登録されているシグネチャに一致するか判定することによって、前記パケットに対してさらなる解析が必要か判断するステップと、
前記ルータ装置の１以上のＤＰＩ部が、前記ヘッダに対する判定に基づき前記パケットに対してさらなる解析が必要であると判断すると、前記パケットのペイロードから所定のビット長のビットシーケンスを抽出し、前記抽出されたビットシーケンスが第２シグネチャテーブルに登録されているシグネチャに一致するか判定することによって、前記パケットに対してさらなる解析が必要か判断するステップと、
前記ルータ装置のパケット分析機能部が、前記ペイロードに対する判定に基づき前記パケットに対してさらなる解析が必要であると判断すると、前記パケットが第３シグネチャテーブルに登録されているシグネチャに一致するビットシーケンスを含むか判定することによって、前記パケットを解析するステップと、
を有する方法であって、
前記１以上のＤＰＩ部の各ＤＰＩ部は、前記パケットのペイロードから固有のビット長のビットシーケンスを検索するよう設定される方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰネットワークにおいてパケットを解析するルータ装置及びデータ解析方法に関する。
【背景技術】
【０００２】
現在のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークでは、データが保存されているサーバ（ＨＴＴＰサーバやＦＴＰサーバなど）とユーザ端末（携帯端末やパーソナルコンピュータなど）との間で、又はユーザ端末間で、動画、画像、音楽などの各種マルチメディア情報が通信されたり、またウェブアプリケーションサービスなどの各種サービスが提供されている。このようなＩＰネットワークでは、通常、サーバとユーザ端末との間にある、又はユーザ端末間にあるルータやスイッチなどのＩＰネットワーク中継装置が、通信フローを制御及び解析している。
【０００３】
このような通信フローを解析する１つの方法として、ＤＰＩ（Ｄｅｅｐ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎ）という技術が知られている。ＤＰＩ処理では、ＩＰネットワーク中継装置を通過するパケットのペイロードパターンに対して、予め指定されたパターンに対するパターンマッチングを実行することによってパケットが識別される。このようなＤＰＩ処理を利用するパケット解析装置は、ネットワークの光ファイバなどを分岐したものからデータを入力し解析を行うか、ルータとルータとの間に設置されるか、ルータなどの装置においてコピーされたパケットを受信し解析を行っている。
【０００４】
具体的なＤＰＩパケット解析のための方法として、典型的には、フルプロセッシングタイプとフローベースプロセッシングタイプの２つのＤＰＩパケット解析方法が知られている。フルプロセッシングタイプのＤＰＩパケット解析方法は、ルータに入力されるすべてのフローを解析するものであり、図１に示されるように、典型的には２種類の実装が利用されている。図１の上部に示される実装では、ルータ基本機能部が、入力されるトラヒックフローの一部をＤＰＩプロセッサにわたし、ＤＰＩが一部のトラヒックを解析する。他方、図１の下部に示される実装では、すべてのトラヒックがＤＰＩプロセッサにより解析される。
【０００５】
他方、フローベースプロセッシングタイプのＤＰＩパケット解析方法は、ルータ基本機能部が、入力されるトラヒックフローの最初の一部のパケットのみをＤＰＩプロセッサにわたす。一般に、トラヒックフローの最初の部分は、当該トラヒックの特徴的な動きやビット列が存在する可能性が高いためである。ＤＰＩプロセッサは、受信したパケットを解析し、受信したパケットがＤＰＩ処理の対象であると判断すると、当該パケットの送信者と宛先とのアドレス及びポート番号を特定してルータ基本機能部に通知する。ルータ基本機能部は、ＤＰＩプロセッサにより通知された送信者と宛先とのアドレス及びポート番号に基づき、以降に入力されるトラヒックフローを解析する。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】ＮｅｔＯｐｔｉｃｓ  ＴＡＰ（ｈｔｔｐ：／／ｗｗｗ．ｂｉｔｒｉｅｖｅ．ｃｏ．ｊｐ／ｎｅｔｏｐｔｉｃｓ／ｎｅｔｏｐｔｉｃｓ  ｔａｐ．ｈｔｍｌ
【非特許文献２】ファイアウォールの基礎から応用（ｈｔｔｐ：／／ｗｗｗ．ｓｏｉ．ｗｉｄｅ．ａｄ．ｊｐ／ｃｌａｓｓ／２００６００３１／ｓｌｉｄｅｓ／１８／５０．ｈｔｍｌ）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したような従来のシステムでは、ＤＰＩ処理のようなパケットペイロードの特定のビットシーケンスを検索する複雑な処理は、パケット転送のための固定位置にある固定長のビットシーケンスしか参照しないＩＰルータには困難であった。このため、ルータとは別のＤＰＩ装置を用意し、当該ＤＰＩ装置にパケットを転送するため、ルータ間にデータ分岐用のタップやスイッチを挿入するか、ＤＰＩ装置自体をルータ間に挿入することによってＤＰＩパケット解析処理が実装されていた。
【０００８】
しかしながら、この場合、ＤＰＩ装置を導入するため通信回線を一度切断する必要があり、またＤＰＩ装置が故障した場合には通信回線が全断するなどのおそれがあった。
【０００９】
また、上述したパケット解析処理を単一のＤＰＩプロセッサに実行させる場合、ＤＰＩプロセッサに大きな処理負荷がかかり、パフォーマンスが低下する可能性もある。
【００１０】
従って、上述した問題点を鑑み、本発明の課題は、複数のＤＰＩプロセッサを用いて高速かつ複雑なパケット解析処理を実現すると共に、ＤＰＩプロセッサのアドオンによりルータへの機能増設及び外部装置へのリダイレクトを容易に実現することである。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明の一特徴は、データ解析機能を有するルータ装置であって、入力されたパケットのヘッダから所定のデータ要素を抽出し、前記抽出されたデータ要素が第１シグネチャテーブルに登録されているシグネチャに一致するか判定することによって、前記パケットに対してさらなる解析が必要か判断するルータ基本機能部と、前記ルータ基本機能部から前記パケットを受信すると、前記パケットのペイロードから所定のビット長のビットシーケンスを抽出し、前記抽出されたビットシーケンスが第２シグネチャテーブルに登録されているシグネチャに一致するか判定することによって、前記パケットに対してさらなる解析が必要か判断する１以上のＤＰＩ部と、前記ＤＰＩ部から前記パケットを受信すると、前記パケットが第３シグネチャテーブルに登録されているシグネチャに一致するビットシーケンスを含むか判定することによって、前記パケットを解析するパケット分析機能部とを有するルータ装置に関する。
【発明の効果】
【００１２】
本発明によると、複数のＤＰＩプロセッサを用いて高速かつ複雑なパケット解析処理を実現すると共に、ＤＰＩプロセッサのアドオンによりルータへの機能増設及び外部装置へのリダイレクトを容易に実現することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、従来技術によるパケット解析方法（フルプロセッシング）を説明する概略図である。
【図２】図２は、従来技術によるパケット解析方法（フローベースプロセッシング）を説明する概略図である。
【図３】図３は、本発明の第１実施例によるルータ装置の構成を示す図である。
【図４】図４は、本発明の第１実施例によるルータ装置の動作を示すシーケンス図である。
【図５】図５は、本発明の第２実施例によるルータ装置の構成を示す図である。
【図６】図６は、本発明の第２実施例によるルータ装置の動作を示すシーケンス図である。
【発明を実施するための形態】
【００１４】
以下、図面に基づいて本発明の実施の形態を説明する。
【００１５】
図３〜４を参照して、本発明の第１実施例によるルータ装置を説明する。まず、図３を参照して、本発明の第１実施例によるルータ装置の構成を説明する。図３は、本発明の第１実施例によるルータ装置の構成を示す図である。
【００１６】
図３に示されるように、ルータ装置１０は、入力部１１０と、出力部１２０と、ルータ基本機能部１３０と、１次ＤＰＩ部１４０−１〜Ｎ次ＤＰＩ部１４０−Ｎ（以下において、ＤＰＩ部１４０と総称される）と、パケット分析機能部１５０とを有する。
【００１７】
入力部１１０は、外部装置（図示せず）からの入力信号を受信し、受信した入力信号からパケットデータフローを抽出し、ルータ基本機能部１３０に送信する。抽出されたパケットデータフローの各パケットは、制御データを収容するヘッダと、実データを収容するペイロードとから構成される。ヘッダは、典型的には、固定長のデータであり、当該データの固定位置に送信元ＩＰアドレス（ＳＩＰ）、宛先ＩＰアドレス（ＤＩＰ）、ＩＰプロトコルタイプ（ＰＲ）、送信元ポート番号（ＳＰＴ）及び宛先ポート番号（ＤＰＴ）という５つの要素（５タプル）を含んでいる。
【００１８】
出力部１２０は、ルータ基本機能部１３０、ＤＰＩ部１４０及びパケット分析機能部１５０から出力されたパケットデータを適切な転送先に送信する。
【００１９】
ルータ基本機能部１３０は、ルーティングテーブルを参照して、入力部１１０から受信したパケットデータフローの各パケットを適切な転送先にルーティングすると共に、ルータシグネチャテーブルを参照して、当該テーブルに登録されている検索対象の５タプルに一致するパケットを検出する。ルータシグネチャテーブルには、検索条件となるヘッダの５タプルと、検索条件に一致したパケットに対して実行すべき処理内容（ＡＣＴ）とが登録されている。例えば、ルータシグネチャテーブルに登録される各検索条件は、「ＳＩＰ＝"ａａａ"；ＤＩＰ＝"ｂｂｂ"；ＰＲ＝"ｃｃｃ"；ＳＰＴ＝"ｄｄｄ"；ＤＰＴ＝"ｅｅｅ"→ＡＣＴ＝"ｆｆｆ"」から構成されてもよい。この場合、当該検索条件は、ＳＩＰが "ａａａ"、ＤＩＰが"ｂｂｂ"、ＰＲが"ｃｃｃ"、ＳＰＴが"ｄｄｄ"、かつＤＰＴが"ｅｅｅ"である場合、付随条件である処理"ｆｆｆ"が実行されることを表している。
【００２０】
このようなルータシグネチャテーブルを参照して、ルータ基本機能部１３０は、入力部１１０から送信されるパケットデータフローの各パケットのヘッダを確認し、確認したヘッダの５タプルが登録されている検索条件の５タプルに一致するか判断する。確認したヘッダの５タプルが検索条件の５タプルに一致しない場合、ルータ基本機能部１３０は、当該パケットを通常のパケットであると判断し、ルーティングテーブルを参照して転送先を指定して出力部１２０に転送する。他方、検索条件の５タプルに一致したパケットが検出されると、ルータ基本機能部１３０は、検出されたパケットに対して付随条件"ｆｆｆ"に対応する処理を実行する。この付随条件の処理内容としては、典型的には、ＤＰＩ部１４０に転送する、所定の処理を実行して出力部１２０に転送する、などが設定されてもよい。ＤＰＩ部１４０にパケットを転送する場合、ルータ基本機能部１３０は、１次ＤＰＩ部１４０−１〜Ｎ次ＤＰＩ部１４０−Ｎのそれぞれに並列的にパケットを転送する。
【００２１】
各ＤＰＩ部１４０は、典型的には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）とメモリとを備える個別のプロセッサ装置から構成され、互いに独立して動作可能とされる。また、ＤＰＩ部１４０は、ＤＰＩ部１４０及びパケット分析機能部１５０とのロードバランスを考慮して、必要に応じて増設されてもよい。ルータ基本機能部１３０からパケットを受信すると、各ＤＰＩ部１４０は、各自のＤＰＩシグネチャテーブルを参照して、当該テーブルに登録されているＤＰＩシグネチャに一致する文字列が受信したパケットのペイロードにあるか検索する。
【００２２】
ここで、各ＤＰＩ部１４０に設定されるＤＰＩシグネチャのビット長は予め設定される。すなわち、１次ＤＰＩ部１４０−１にはビット長ｍ１のＤＰＩシグネチャが設定され、２次ＤＰＩ部１４０−２にはビット長ｍ２のＤＰＩシグネチャが設定され、・・・、Ｎ次ＤＰＩ部１４０−１にはビット長ｍＮのＤＰＩシグネチャが設定される。各ＤＰＩ部１４０は、受信したパケットのペイロードに含まれている設定されたビット長のビットシーケンスをチェックし、設定されているＤＰＩシグネチャに一致するものがあるか判断する。例えば、ｉ次ＤＰＩ部１４０−ｉのビット長ｍｉが５であって（ｍｉ＝５）、"ａｂｃｄｅ"のＤＰＩシグネチャが設定されている場合、ｉ次ＤＰＩ部１４０−ｉは、受信したパケットのペイロードに含まれるビット長５の各ビットシーケンスをチェックし、設定されたＤＰＩシグネチャに一致するものがあるか判断する。このように、各ＤＰＩ部１４０に固有のビット長を設定し、設定されたビット長のビットシーケンスのみを検索させる。この場合、設定することを所望するＤＰＩシグネチャのビット長の種類に応じた個数のＤＰＩ部１４０を設けることによって、すなわち、１以上のＤＰＩ部が前記ペイロードにおいて検索されるべきビットシーケンスの異なるビット長の個数に対応して設けられることによって、複数種類の任意のビット長のビットシーケンスを高速かつ簡易に検索することが可能になる。
【００２３】
なお、ＤＰＩシグネチャに設定されるビットシーケンスのビットは、任意の文字を示すワイルドカード"＊"を含むものであってもよい。すなわち、"ａｂ＊ｄｅ"がＤＰＩシグネチャとして設定されている場合、"ａｂｃｄｅ"，"ａｂａｄｅ"，"ａｂｂｄｅ"なども検索条件に一致することになる。また、ＤＰＩシグネチャテーブルに複数のＤＰＩシグネチャが設定され、このうち２以上のＤＰＩシグネチャが一致した場合に、検索条件に一致したと設定するようにしてもよい。
【００２４】
ＤＰＩシグネチャテーブルには、検索条件となるビット長ｍのビットシーケンスと、検索条件に一致したパケットに対して実行すべき処理内容（ＡＣＴ）とが登録されている。例えば、ＤＰＩシグネチャテーブルに登録される各検索条件は、ビット長ｘのビットシーケンス「"ａ１ａ２・・・ａｍ"→ＡＣＴ＝"ｇｇｇ"」から構成されてもよい。この場合、ビットシーケンスが"ａ１ａ２・・・ａｍ"である場合、付随条件である処理"ｇｇｇ"が実行されることを表している。
【００２５】
このようなＤＰＩシグネチャテーブルを参照して、ＤＩＰ部１４０は、ルータ基本機能部１３０から送信されるパケットのペイロードに含まれるビット長ｘのビットシーケンスを確認し、確認した各ビットシーケンスが登録されている検索条件のシグネチャに一致するか判断する。確認した各ビットシーケンスが検索条件のシグネチャに一致しない場合、ＤＰＩ部１４０は、当該パケットをルータ基本機能部１３０に送り返し、出力部１２０を介し適切な転送先に転送する。他方、検索条件のシグネチャに一致したビットシーケンスが検出されると、ＤＰＩ部１４０は、検出されたパケットに対して付随条件"ｇｇｇ"に対応する処理を実行する。この付随条件の処理内容としては、典型的には、パケット分析機能部１５０に転送する、所定の処理を実行してルータ基本機能部１３０を介し出力部１２０に転送する、などが設定されてもよい。
【００２６】
パケット分析機能部１５０は、ＤＰＩ部１４０からパケットを受信すると、パケット分析シグネチャテーブルを参照して、当該テーブルに登録されているシグネチャに一致する文字列が受信したパケットにあるか検索する。パケット分析シグネチャテーブルには、検索条件となる１以上のシグネチャが登録されている。パケット分析シグネチャテーブルに登録されているシグネチャは、異なるビット長のビットシーケンスが登録可能であり、典型的には、ＤＰＩ部１４０により検索されるビットシーケンスのビット長ｍより大きなビット長ｎが登録される（ｍ＜ｎ）。すなわち、相対的に短いシグネチャはＤＰＩ部１４０により検索され、相対的に長いシグネチャはパケット分析機能部１５０により検索されることになる。短いシグネチャの検索は、一定長のパケットに含まれる検索対象のビットシーケンスがより多く含まれることになるため、シグネチャとビットシーケンスとの比較回数も増大し、計算量が多くなる。このような相対的に短いシグネチャの検索処理をＤＰＩ部１４０に任せることによって、パケット分析機能部１５０の処理負荷を低減することが可能となる。また、パケット分析機能部１５０の処理負荷に応じて、ＤＰＩ部１４０を自由に増設することによって、ＤＰＩ部１４０とパケット分析機能部１５０との間の適切なロードバランスを実現することが可能になる。
【００２７】
パケット分析シグネチャテーブルには、検索条件となるシグネチャと、検索条件に一致したパケットに対して実行すべき処理内容（ＡＣＴ）とが登録されている。例えば、パケット分析シグネチャテーブルに登録される各検索条件は、「"ｂ１ｂ２・・・ｂｎ"→ＡＣＴ＝"ｈｈｈ"」から構成されてもよい。この場合、ビットシーケンスが"ｂ１ｂ２・・・ｂｎ"である場合、付随条件である処理"ｈｈｈ"が実行されることを表している。
【００２８】
このようなパケット分析シグネチャテーブルを参照して、パケット分析機能部１５０は、当該テーブルに登録されている各シグネチャに対して、当該シグネチャに一致するパケットに含まれるビットシーケンスがあるか検索する。具体的には、ＤＰＩ部１４０から送信されるパケットをシグネチャのビット長ｎのビットシーケンスに分解し、分解されたビットシーケンスに当該シグネチャに一致するものがあるか検索する。パケットに含まれるビット長ｎの各ビットシーケンスがシグネチャに一致しない場合、パケット分析機能部１５０は、当該パケットをルータ基本機能部１３０に送り返し、出力部１２０を介し適切な転送先に転送する。登録されているシグネチャに一致するビットシーケンスが検出された場合、パケット分析機能部１５０は、当該シグネチャに対応する付随条件となる処理を実行する。この付随条件の処理内容としては、典型的には、パケットを破棄する、ＱｏＳを制御する、などが設定されてもよい。なお、これらの処理は、パケット分析機能部１５０によって実行されてもよいし、又は他の装置により実行されてもよい。
【００２９】
なお、図示された実施例では、単一のパケット分析機能部１５０が設けられたが、本発明はこれに限定されず、複数のパケット分析機能部１５０が設けられてもよい。この場合、ＤＰＩ部１４０は、パケット分析機能部１５０に転送すべきパケットが検出されると、各パケット分析機能部１５０のトラヒック量を確認し、トラヒック量の少ないパケット分析機能部１５０に検出したパケットを転送するようにしてもよい。あるいは、ＤＰＩ部１４０は、各ＤＰＩ部に対して転送先として予め設定されているパケット分析機能部１５０に検出したパケットを転送するようにしてもよい。
【００３０】
次に、図４を参照して、本発明の第１実施例によるルータ装置における処理を説明する。図４は、本発明の第１実施例によるルータ装置の動作を示す示すシーケンス図である。
【００３１】
図４に示されるように、外部装置からパケットデータフローを受信すると、入力部１１０は、受信したパケットデータフローからパケットを抽出し、ルータ基本機能部１３０に転送する。
【００３２】
ステップＳ１０１において、ルータ基本機能部１３０は、転送されたパケットのヘッダから、所定のビット長を有する所定のビット位置に配置された送信元ＩＰアドレス（ＳＩＰ）、宛先ＩＰアドレス（ＤＩＰ）、ＩＰプロトコルタイプ（ＰＲ）、送信元ポート番号（ＳＰＴ）及び宛先ポート番号（ＤＰＴ）の５タプルを抽出し、ルータシグネチャテーブルを参照して、抽出したタプルが当該テーブルに登録されているシグネチャに一致するか検索する。抽出したタプルが何れのシグネチャにも一致しない場合（Ｓ１０１：Ｎ）、ルータ基本機能部１３０は、受信したパケットが通常のパケットであると判断し、ルーティングテーブルを参照して、出力部１２０を介しパケットを対応する転送先に送信する。他方、抽出したタプルに一致するシグネチャが検出された場合（Ｓ１０１：Ｙ）、当該フローは、ステップＳ１０２に移行する。
【００３３】
ステップＳ１０２において、ルータ基本機能部１３０は、ルータシグネチャテーブルを参照して、検出されたシグネチャの付随条件に対応する処理を特定し、当該パケットに対して特定された処理を実行し、ＤＰＩ部１４０に転送する。
【００３４】
ステップＳ１０３において、ルータ基本機能部１３０からパケットを受信すると、各ＤＰＩ部１４０−ｉは、受信したパケットのペイロードに含まれるパケット長ｍｉのビットシーケンスを抽出し、各自のＤＰＩシグネチャテーブルに登録されているシグネチャに一致するビットシーケンスを検索する。登録されているシグネチャに一致するビットシーケンスがない場合（Ｓ１０３：Ｎ）、ＤＰＩ部１４０−ｉは、受信したパケットをルータ基本機能部１３０を介し出力部１２０に転送する。他方、登録されているシグネチャに一致するビットシーケンスが検出された場合（Ｓ１０３：Ｙ）、当該フローは、ステップＳ１０４に移行する。
【００３５】
ステップＳ１０４において、ＤＰＩ部１４０−ｉは、ＤＰＩシグネチャテーブルを参照して、検出されたシグネチャの付随条件に対応する処理を特定し、当該パケットに対して特定された処理を実行し、パケット分析機能部１５０に転送する。
【００３６】
ステップＳ１０５において、ＤＰＩ部１４０−ｉからパケットを受信すると、パケット分析機能部１５０は、パケット分析シグネチャテーブルを参照して、当該テーブルに登録されている各シグネチャに対して、当該シグネチャに一致するビットシーケンスが受信したパケットに含まれているか検索する。登録されているシグネチャに一致するビットシーケンスがない場合（Ｓ１０５：Ｎ）、パケット分析機能部１５０は、受信したパケットをルータ基本機能部１３０を介し出力部１２０に転送する。他方、登録されているシグネチャに一致するビットシーケンスが検出された場合（Ｓ１０５：Ｙ）、当該フローは、ステップＳ１０６に移行する。
【００３７】
ステップＳ１０６において、パケット分析機能部１５０は、パケット分析シグネチャテーブルを参照して、検出されたシグネチャの付随条件に対応する処理を特定し、当該パケットに対して特定された処理を実行する。
【００３８】
上述した第１実施例によると、複数のＤＰＩプロセッサを利用した階層化されたＤＰＩ処理を実行することによって、ＤＰＩプロセッサを用いて高速かつ複雑なパケット解析処理を実現することが可能になると共に、ＤＰＩプロセッサのアドオンによりルータへの機能増設及び外部装置へのリダイレクトを容易に実現することが可能となる。
【００３９】
次に、図５〜６を参照して、本発明の第２実施例によるルータ装置を説明する。第１実施例では、ルータ基本機能部１３０、ＤＰＩ部１４０−ｉ及びパケット分析機能部１５０のそれぞれが、検索条件となるシグネチャを予め登録したテーブルを有していた。第２実施例では、パケット分析機能部２５０のみが検索条件のシグネチャが予め登録されたテーブルを有し、ルータ基本機能部２３０及びＤＰＩ部２４０−ｉの各自のテーブルには、初期的には検索条件のシグネチャが登録されておらず、パケット分析機能部２５０からの検索条件設定指示によって順次検索条件が登録される。
【００４０】
まず、図５を参照して、本発明の第２実施例によるルータ装置の構成を説明する。図５は、本発明の第２実施例によるルータ装置の構成を示す図である。
【００４１】
図５に示されるように、ルータ装置２０は、入力部２１０と、出力部２２０と、ルータ基本機能部２３０と、１次ＤＰＩ部２４０−１〜Ｎ次ＤＰＩ部２４０−Ｎ（以下において、ＤＰＩ部２４０と総称される）と、パケット分析機能部２５０とを有する。上述したように、本実施例では、ルータ基本機能部２３０とＤＰＩ部２４０とは、初期的には各自のテーブルにシグネチャが登録されておらず、パケット分析機能部２５０のみが、予め登録されたシグネチャを有するパケット分析シグネチャテーブルを有している。ルータ装置２０に入力されたパケットは、初期的にはパケット分析機能部２５０にわたされて解析され、パケット分析機能部２５０においてシグネチャに一致した場合、当該シグネチャが対応するルータ基本機能部２３０とＤＰＩ部２４０に検索条件として設定される。以降、ルータ装置２０が同じパケットを受信すると、当該パケットはルータ基本機能部２３０又はＤＰＩ部２４０において検出されることになる。このようにして、パケット分析機能部２５０において未解析なパケットが入力される毎にパケット分析機能部２５０において解析され、解析結果に応じてルータ基本機能部２３０とＤＰＩ部２４０のテーブルが更新されるため、パケット分析機能部２５０における解析処理を順次ルータ基本機能部２３０とＤＰＩ部２４０に分担させることが可能となる。なお、入力部２１０と出力部２２０とは、第１実施例の入力部１１０と出力部１２０と同様であり、重複した説明は省く。
【００４２】
入力部２１０は、外部装置（図示せず）からの入力信号を受信し、受信した入力信号からパケットデータフローを抽出し、ルータ基本機能部２３０に送信する。
【００４３】
出力部２２０は、ルータ基本機能部２３０、ＤＰＩ部２４０及びパケット分析機能部２５０から出力されたパケットデータを適切な送信先に送信する。
【００４４】
ルータ基本機能部２３０は、ルーティングテーブルを参照して、入力部２１０から受信したパケットデータフローの各パケットを適切な転送先にルーティングすると共に、ルータシグネチャテーブルを参照して、当該テーブルに登録されている検索対象の５タプルに一致するパケットを検出する。本実施例では、初期的にはルータシグネチャテーブルには、検索条件となるシグネチャは登録されていない。従って、最初に受信したパケットに対して、ルータ基本機能部２３０は、検出処理を実行することなく受信したパケットをＤＰＩ部２４０に単に転送すると共に、さらに当該パケットを転送済みパケットとして記憶する。
【００４５】
以降に受信されるパケットについては、ルータ基本機能部２３０は、後述されるようにパケット分析機能部２５０からの指示に従って更新されたルータシグネチャテーブルを参照して、当該テーブルに登録されている検索対象の５タプルに一致するパケットがあるか検索する。一致するパケットが検出された場合、ルータ基本機能部２３０は、当該シグネチャの付随条件に対応する処理を実行する。他方、一致するパケットが検出されなかった場合、ルータ基本機能部２３０はさらに、当該パケットが転送済みパケットとして記憶されているか判断する。
【００４６】
転送済みパケットとして記憶されていた場合、ルータ基本機能部２３０は、当該パケットは以前にＤＰＩ部２４０及び／又はパケット分析機能部２５０に転送されたが、設定されたシグネチャに該当せず通常のパケットであると判断されたものであると判断し、ルーティングテーブルを参照して転送先を指定して出力部２２０に転送する。他方、転送済みパケットとして記憶されていない場合、ルータ基本機能部２３０は、当該パケットはＤＰＩ部２４０及び／又はパケット分析機能部２５０により未解析なパケットであると判断し、ＤＰＩ部２４０に転送し、さらに転送済みパケットとして記憶する。
【００４７】
各ＤＰＩ部２４０は、ルータ基本機能部２３０からパケットを受信すると、各自のＤＰＩシグネチャテーブルを参照して、当該テーブルに登録されているＤＰＩシグネチャに一致する文字列が受信したパケットのペイロードにあるか検索する。本実施例では、初期的にはＤＩＰシグネチャテーブルには、検索条件となるシグネチャは登録されていない。従って、最初に受信したパケットに対して、ＤＰＩ部２４０は、検出処理を実行することなく受信したパケットをパケット分析機能部２５０に単に転送すると共に、さらに当該パケットを転送済みパケットとして記憶する。
【００４８】
以降に受信されるパケットについては、ＤＰＩ部２４０は、後述されるようにパケット分析機能部２５０からの指示に従って更新されたＤＰＩシグネチャテーブルを参照して、当該テーブルに登録されている検索対象のシグネチャに一致するパケットがあるか検索する。一致するパケットが検出された場合、ＤＰＩ部２４０は、当該シグネチャの付随条件に対応する処理を実行する。他方、一致するパケットが検出されなかった場合、ＤＰＩ部２４０は、当該パケットが転送済みパケットとして記憶されているか判断する。
【００４９】
転送済みパケットとして記憶されていた場合、ＤＰＩ部２４０は、当該パケットは以前にパケット分析機能部２５０に転送されたが、通常のパケット又は他のＤＰＩ部２４０の対象パケットであると判断されたものであると判断し、ルータ基本機能部２３０を介し転送先を指定して出力部２２０に転送する。他方、転送済みパケットとして記憶されていない場合、ＤＰＩ部２４０は、当該パケットはパケット分析機能部２５０により未解析なパケットであると判断し、パケット分析機能部２５０に転送し、転送済みパケットとして記憶する。
【００５０】
パケット分析機能部２５０は、ルータ基本機能部２３０のルータシグネチャテーブル及びＤＰＩ部２４０のＤＰＩシグネチャテーブルに検索条件を設定するための検索条件設定部２５１を有する。パケット分析機能部２５０は、ＤＰＩ部２４０からパケットを受信すると、パケット分析シグネチャテーブルを参照して、当該テーブルに登録されているシグネチャに一致する文字列が受信したパケットにあるか検索する。パケット分析シグネチャテーブルには、検索条件となる１以上のシグネチャが登録されている。また、パケット分析シグネチャテーブルには、検索条件となるビットシーケンスと、検索条件に一致したパケットに対して実行すべき処理内容（ＡＣＴ）とが登録されている。パケット分析機能部２５０は、当該テーブルに登録されている各シグネチャに対して、当該シグネチャに一致するパケットに含まれるビットシーケンスがあるか検索する。具体的には、ＤＰＩ部２４０から送信されるパケットをシグネチャのビット長ｎのビットシーケンスに分解し、分解されたビットシーケンスに当該シグネチャに一致するものがあるか検索する。パケットに含まれるビット長ｎの各ビットシーケンスがシグネチャに一致しない場合、パケット分析機能部２５０は、当該パケットをルータ基本機能部２３０に送り返し、出力部２２０を介し適切な転送先に転送する。登録されているシグネチャに一致するビットシーケンスが検出された場合、パケット分析機能部２５０は、当該シグネチャに対応する付随条件となる処理を実行すると共に、検索条件設定部２５１に当該シグネチャと対応する付随条件とを通知する。
【００５１】
検索条件設定部２５１は、通知されたシグネチャと付随条件とをルータ基本機能部２３０とＤＰＩ部２４０の対応する要素に設定するよう指示する。すなわち、通知されたシグネチャがヘッダの５タプルに関するものである場合、検索条件設定部２５１は、通知されたシグネチャと付随条件とをルータ基本機能部２３０に通知し、ルータシグネチャテーブルに登録するよう指示する。また、通知されたシグネチャがペイロードのビット長ｍｉのビットシーケンスに関するものである場合、検索条件設定部２５１は、通知されたシグネチャと付随条件とをｉ次ＤＰＩ部２４０−ｉに通知し、ＤＰＩシグネチャテーブルに登録するよう指示する。
【００５２】
次に、図６を参照して、本発明の第２実施例によるルータ装置における処理を説明する。図６は、本発明の第２実施例によるルータ装置の動作を示す示すシーケンス図である。
【００５３】
図６に示されるように、外部装置からパケットデータフローを受信すると、入力部２１０は、受信したパケットデータフローからパケットを抽出し、ルータ基本機能部２３０に転送する。
【００５４】
ステップＳ２０１において、ルータ基本機能部２３０は、転送されたパケットのヘッダから、所定のビット長を有する所定のビット位置に配置された送信元ＩＰアドレス（ＳＩＰ）、宛先ＩＰアドレス（ＤＩＰ）、ＩＰプロトコルタイプ（ＰＲ）、送信元ポート番号（ＳＰＴ）及び宛先ポート番号（ＤＰＴ）の５タプルを抽出し、ルータシグネチャテーブルを参照して、抽出したタプルが当該テーブルに登録されているシグネチャに一致するか検索すると共に、一致しない場合にはさらに当該パケットが転送済みパケットであるか判断する。抽出したタプルが何れのシグネチャにも一致しておらず、かつ当該パケットがパケット分析機能部２５０への転送済みパケットである場合（Ｓ２０１：Ｎ）、ルータ基本機能部２３０は、受信したパケットが通常のパケットであると判断し、ルーティングテーブルを参照して、出力部２２０を介しパケットを対応する転送先に送信する。他方、抽出したタプルに一致するシグネチャが検出されたか、又は当該パケットが転送済みパケットでない場合（Ｓ２０１：Ｙ）、当該フローは、ステップＳ２０２に移行する。
【００５５】
ステップＳ２０２において、抽出したタプルに一致するシグネチャが検出された場合には、ルータ基本機能部２３０は、ルータシグネチャテーブルを参照して、検出されたシグネチャの付随条件に対応する処理を特定し、当該パケットに対して特定された処理を実行し、必要に応じてＤＰＩ部２４０に転送する。また、当該パケットが転送済みパケットでない場合には、ルータ基本機能部２３０は、当該パケットをＤＰＩ部２４０に転送する。ＤＰＩ部２４０への転送後、ルータ基本機能部２３０は、当該パケットを転送済みパケットとして記憶する。
【００５６】
ステップＳ２０３において、ルータ基本機能部２３０からパケットを受信すると、各ＤＰＩ部２４０−ｉは、受信したパケットのペイロードに含まれるパケット長ｍｉのビットシーケンスを抽出し、ＤＰＩシグネチャテーブルに登録されているシグネチャに一致するビットシーケンスを検索すると共に、一致しない場合にはさらに当該パケットが転送済みパケットであるか判断する。抽出したビットシーケンスが何れのシグネチャにも一致しておらず、かつ当該パケットがパケット分析機能部２５０への転送済みパケットである場合（Ｓ２０３：Ｎ）、ＤＰＩ部２４０は、受信したパケットが通常のパケットか、又は他のＤＰＩ部２４０による処理対象のパケットであると判断し、出力部２２０を介しパケットを対応する転送先に送信する。他方、抽出したビットシーケンスに一致するシグネチャが検出されたか、又は当該パケットが転送済みパケットでない場合（Ｓ２０３：Ｙ）、当該フローは、ステップＳ２０４に移行する。
【００５７】
ステップＳ２０４において、抽出したビットシーケンスに一致するシグネチャが検出された場合には、ＤＰＩ部２４０は、ＤＰＩシグネチャテーブルを参照して、検出されたシグネチャの付随条件に対応する処理を特定し、当該パケットに対して特定された処理を実行し、必要に応じてパケット分析機能部２５０に転送する。また、当該パケットが転送済みパケットでない場合には、ＤＰＩ部２４０は、当該パケットをパケット分析機能部２５０に転送する。パケット分析機能部２５０への転送後、ＤＰＩ部２４０は、当該パケットを転送済みパケットとして記憶する。
【００５８】
ステップＳ２０５において、ＤＰＩ部２４０−ｉからパケットを受信すると、パケット分析機能部２５０は、パケット分析シグネチャテーブルを参照して、当該テーブルに登録されている各シグネチャに対して、当該シグネチャに一致するビットシーケンスが受信したパケットに含まれているか検索する。登録されているシグネチャに一致するビットシーケンスがない場合（Ｓ２０５：Ｎ）、パケット分析機能部２５０は、受信したパケットをルータ基本機能部２３０を介し出力部２２０に転送する。他方、登録されているシグネチャに一致するビットシーケンスが検出された場合（Ｓ２０５：Ｙ）、パケット分析機能部２５０は、検索条件設定部２５１に検出されたシグネチャと当該シグネチャの付随条件とを通知する。
【００５９】
ステップＳ２０６において、検索条件設定部２５１は、通知されたシグネチャと付随条件とがルータ基本機能部２３０とＤＰＩ部２４０の何れに関連するものであるか決定し、決定した要素に当該シグネチャと付随条件とをテーブルに登録するよう指示する。すなわち、検索条件がヘッダに関するものである場合、検索条件設定部２５１は、当該シグネチャと付随条件とをルータ基本機能部２３０に設定する。他方、検索条件がペイロードに関するものであって、シグネチャのビット長がｍｉである場合、検索条件設定部２５１は、当該シグネチャと付随条件とをｉ次ＤＰＩ部２４０−ｉに設定する。
【００６０】
ステップＳ２０７において、パケット分析機能部２５０は、パケット分析シグネチャテーブルを参照して、当該パケットに対して付随条件に対応する処理を実行する。
【００６１】
第２実施例によると、初期的にはパケット分析機能部２５０にしかシグネチャが設定されていない場合でも、パケットを順次解析するに従って、ルータ基本機能部２３０及びＤＰＩ部２４０にシグネチャを自動的に設定することが可能となる。これにより、パケット分析機能部２５０のみに検索条件のシグネチャを設定しさえすればよく、設定作業の省力化が可能となる。
【００６２】
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６３】
１０，２０  ルータ装置
１１０，２１０  入力部
１２０，２２０  出力部
１３０，２３０  ルータ基本機能部
１４０，２４０  ＤＰＩ部
１５０，２５０  パケット分析機能部
２５１  検索条件設定部
【図１】
0005667009.tif 000002
【図２】
0005667009.tif 000003
【図３】
0005667009.tif 000004
【図４】
0005667009.tif 000005
【図５】
0005667009.tif 000006
【図６】
0005667009.tif 000007