(57)【要約】【課題】フィルタ規則設定のための情報を少なくできるパケットフィルタ装置の提供。【解決手段】入力パケットから比較対象となるパラメータを抽出し記憶する入力情報集合レジスタ２１と、エントリ毎にパラメータを短縮化して記憶したフィルタ規則テーブル２５と、フィルタ規則テーブル２５に記憶されたパラメータを入力情報集合レジスタ２１に記憶されたパラメータと比較可能な情報に展開するテーブル情報展開手段２４と、テーブル情報展開手段２４によって展開された情報を記憶するフィルタ規則レジスタ２３−１と、入力情報集合レジスタ２１に記憶されたパラメータとフィルタ規則レジスタ２３−１に記憶された情報とを互いに比較し、一致するかどうかを判定する一致判定手段２２−１とを備え、設定に不要な情報を除外し、フィルタ規則テーブル２５のエントリ容量を削減することができる。【選択図】図１
2006246302.tif 000002
【特許請求の範囲】
【請求項１】
入力パケットから比較対象となるパラメータを抽出し記憶する入力情報集合レジスタと、エントリ毎にパラメータを短縮化して記憶したフィルタ規則テーブルと、前記フィルタ規則テーブルに記憶されたパラメータを前記入力情報集合レジスタに記憶されたパラメータと比較可能な情報に展開するテーブル情報展開手段と、前記テーブル情報展開手段によって展開された情報を記憶するフィルタ規則レジスタと、前記入力情報集合レジスタに記憶されたパラメータと前記フィルタ規則レジスタに記憶された情報とを互いに比較し、一致するかどうかを判定する一致判定手段とを備えたパケットフィルタ装置。
【請求項２】
前記フィルタ規則テーブルに記憶された情報が、有効な前記パラメータの種別と前記パラメータのパラメータ値とが対になって構成されていることを特徴とする請求項１記載のパケットフィルタ装置。
【請求項３】
前記フィルタ規則テーブルに記憶された情報が、前記パラメータの有効を示す情報と前記パラメータのパラメータ値との対、および、前記パラメータの無効を示す情報と前記無効なパラメータの連続する数の情報との対とで構成されていることを特徴とする請求項１記載のパケットフィルタ装置。
【請求項４】
前記フィルタ規則テーブルに記憶された情報が、前記パラメータの有効または無効を示すビット列と前記有効なパラメータのパラメータ値とで構成されていることを特徴とする請求項１記載のパケットフィルタ装置。
【請求項５】
前記フィルタ規則レジスタと前記一致判定手段とをそれぞれ複数備え、複数の前記エントリに対し、前記一致判定手段が同時に判定することを特徴とする請求項１記載のパケットフィルタ装置。
【請求項６】
前記フィルタ規則テーブルのエントリ番号とエントリ長とメモリ上のアドレスとをそれぞれ管理するメモリ管理手段を更に備え、前記フィルタ規則テーブルのエントリ順を制御可能にしたことを特徴とする請求項１記載のパケットフィルタ装置。
【請求項７】
複数の個別パラメータ判定手段を更に備え、それぞれの前記個別パラメータ判定手段が、前記入力パケットからそれぞれの前記個別パラメータ判定手段に対応する前記個別パラメータの情報を抽出する個別情報抽出手段と、予め定めた前記個別パラメータの情報を記憶した個別パラメータテーブルと、前記個別情報抽出手段で抽出された前記個別パラメータの情報が前記個別パラメータテーブルに記憶された前記個別パラメータの情報と一致するかどうかを判定する一致比較手段と、前記一致比較手段の出力に基づいて予め定めた判定結果出力を前記入力情報集合レジスタに出力する判定結果出力手段とを備えることを特徴とする請求項１記載のパケットフィルタ装置。
【請求項８】
前記判定結果出力手段がコードを出力し、前記コードを前記入力情報集合レジスタに記憶すると共に、前記フィルタ規則テーブルに記憶された情報もコードであることを特徴とする請求項７記載のパケットフィルタ装置。
【請求項９】
請求項１〜８のいずれか１項に記載されたパケットフィルタ装置を備えたネットワーク端末装置。
【請求項１０】
請求項１〜８のいずれか１項に記載されたパケットフィルタ装置を備えたネットワーク中継装置。
【請求項１１】
請求項１〜８のいずれか１項に記載されたパケットフィルタ装置を搭載した半導体集積回路装置。
【請求項１２】
入力パケットを受信するステップと、前記受信した入力パケットからヘッダパラメータを抽出し、入力情報集合レジスタに記憶するステップと、フィルタ規則テーブルに記憶された短縮化された情報を前記入力情報集合レジスタに記憶された情報と比較可能な情報に展開するステップと、前記展開された情報をフィルタ規則レジスタに記憶するステップと、前記入力情報集合レジスタに記憶された情報を前記フィルタ規則レジスタに記憶された情報と比較し、一致するかどうかを判定するステップと、前記判定するステップで一致したとき一致信号を出力するステップとを備えたパケットフィルタ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークインタフェースを通じてイーサネット（登録商標）などのフレームを受信処理する装置などで用いられるような、ある一定の条件を満たすパケットを転送あるいは廃棄するパケットフィルタリング機能を実現するパケットフィルタ装置、および、それを用いた装置、並びに、パケットフィルタ方法に関するものである。
【背景技術】
【０００２】
一般に、ネットワークに接続された端末装置間でやりとりされる通信データの先頭部分には、送信先の相手アドレス番号や自身のアドレス番号等の情報からなるヘッダが設けられている。ヘッダの各情報を参照してマッチングをとるといったデータ処理は、ネットワーク中継装置におけるルーティング処理やフィルタリング処理において必要とされ、ネットワーク中継装置の高速化に伴ってハードウェア処理で高速に実現する技術が提案されている（例えば、特許文献１参照）。
【０００３】
この技術は、内容検索型メモリ（ＣＡＭとも呼ばれ、あるデータを指定すると、内部のデータベースを検索し、指定されたデータのアドレスを検出する特殊なメモリ）を用いて高速化を実現している。一般に、ＣＡＭのワード（エントリ）長には限りがあるため、パケットフィルタ条件を多種の情報から設定する場合、十分な条件を設定できない場合がある。
【０００４】
そこで、ヘッダパラメータの種別毎にテーブルを構成した第１のＣＡＭと、この第１のＣＡＭにおけるアドレスの集合でフィルタ規則テーブルを構成した第２のＣＡＭとを用いて、パラメータが多種にわたっても適切にフィルタ規則を設定できるようにしている。
【０００５】
図１０はこのような技術を用いた従来のフィルタ回路の構成を示すブロック図である。
【０００６】
従来のフィルタ回路では、図１０に示すように、パケットフィルタ規則を構成する各種情報の種別毎に設けられたそれぞれの個別情報判定ＣＡＭ（第１の内容検索型メモリ）１０−１、１０−２、１０−３を有している。個別情報判定ＣＡＭ１０−１、１０−２、１０−３は、それぞれ、入力パケットのパケットヘッダから当該種別の情報（検索ワード）を抽出するラッチ回路１０１−１、１０１−２、１０１−３と、当該種別の情報（被検索ワード）を格納するための複数のエントリを有するＣＡＭセルアレイ１０２−１、１０２−２、１０２−３と、ラッチ回路１０１−１、１０１−２、１０１−３から出力された情報と一致する情報を保持しているエントリが存在するとき、その一致エントリのアドレスを出力する一致アドレス出力回路１０３−１、１０３−２、１０３−３とを備えている。
【０００７】
各個別情報判定ＣＡＭ１０−１、１０−２、１０−３は、それぞれが対応する情報に関しての一致検索を実施し、その結果をレジスタ２０に供給する。
【０００８】
レジスタ２０は、個別情報判定ＣＡＭ１０−１、１０−２、１０−３から出力された一致エントリアドレスをそれぞれ一旦格納し、それらを所定の順序でフィルタ条件判定ＣＡＭ（第２の内容検索型メモリ）３０に出力する。フィルタ条件判定ＣＡＭ３０は、個別情報判定ＣＡＭ１０−１、１０−２、１０−３の一致エントリアドレスの集合をパケットフィルタ規則として格納するＣＡＭセルアレイ３０１と、レジスタ２０から出力された一致エントリアドレスの集合がＣＡＭセルアレイ３０１のパケットフィルタ規則に一致したとき、一致信号を出力する一致信号出力回路３０２とを備えており、この構成により、パケットフィルタ規則が多種類の情報から構成されている場合であっても、限られたエントリビット長のＣＡＭでパケットフィルタ機能を高速化することを可能にしている。
【特許文献１】特開２０００−１５１６２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ところで、ネットワークへの各種機器の接続は、今後、家電製品や携帯端末といった各種端末装置が予想される。そこで、パケットフィルタ機能としては、高速化と同時に低コスト化（回路規模のコンパクト化）が強く求められる。内容検索型メモリ（ＣＡＭ）は、検索を高速で行える半面、価格が高い。そのため、大規模なネットワーク中継装置ではよく使用されるが、端末装置や小規模な中継装置においては、価格が高いことが原因で、余り使用しないのが一般的である。ＣＡＭを使用しない場合には、通常のＲＡＭなどのメモリを用いて全体の回路を構成することになる。
【００１０】
一方、流入するパケットの中で第三者からの攻撃パケットや、自装置には不要なパケットなどはフィルタリングしたいという要請がある。その場合、特定の送信元アドレスからの情報しか受け取らないとか、特定のプロトコル、特定のポート番号、特定の優先度、特定の宛先アドレスしか受け取らないと言ったきめ細かなフィルタ規則の設定を要求されると、ヘッダパラメータの種類が益々増え、これを増やすとテーブルを構成するメモリ量（＝回路規模）も大幅に増大するという課題に直面する。
【００１１】
図１１は、従来のフィルタ規則テーブルを示す図である。従来のフィルタ規則テーブルでは、パラメータの種別（Ｐ１〜Ｐ１５）の数だけ、それぞれのエントリ（ビット）を確保する必要がある。パラメータの種別が増えても、また、同じ廃棄や転送の処理であっても、全てのパラメータを設定する必要はないため、図１１において、例えば、Ｄｏｎ‘ｔ  Ｃａｒｅを設定した領域は無駄となる。なお、図１１において、Ｃ＊（＊は数字）は、フィルタ規則を構成するそれぞれのパラメータの値を示している。
【００１２】
本発明は、このような従来の問題に鑑みてなされたものであり、設定に不要なパラメータの情報をフィルタ規則テーブルから除外し、記憶させる情報を少なくすることが可能で低価格で構成できるパケットフィルタ装置、および、パケットフィルタ方法を提供することを目的とするものである。
【課題を解決するための手段】
【００１３】
本発明のパケットフィルタ装置は、入力パケットから比較対象となるパラメータを抽出し記憶する入力情報集合レジスタと、エントリ毎にパラメータを短縮化して記憶したフィルタ規則テーブルと、フィルタ規則テーブルに記憶されたパラメータを入力情報集合レジスタに記憶されたパラメータと比較可能な情報に展開するテーブル情報展開手段と、テーブル情報展開手段によって展開された情報を記憶するフィルタ規則レジスタと、入力情報集合レジスタに記憶されたパラメータとフィルタ規則レジスタに記憶された情報とを互いに比較し、一致するかどうかを判定する一致判定手段とを備えた構成を有する。
【００１４】
この構成により、設定に不要なパラメータをフィルタ規則テーブルから除外することができ、フィルタ規則テーブルを有効に活用することができるようになる。
【００１５】
また、本発明のパケットフィルタ装置は、フィルタ規則テーブルに記憶された情報が、有効なパラメータの種別とパラメータのパラメータ値とが対になって構成されている。
【００１６】
この構成により、設定に不要な無効パラメータの情報をフィルタ規則テーブルから除外することができ、フィルタ規則テーブルを有効に活用することができることになる。
【００１７】
また、本発明のパケットフィルタ装置は、フィルタ規則テーブルに記憶された情報が、パラメータの有効を示す情報とパラメータのパラメータ値との対、およびパラメータの無効を示す情報と無効なパラメータの連続する数の情報との対とで構成されている。
【００１８】
この構成により、連続して不要なパラメータが並んだ場合、その不要なパラメータの数を記憶するだけでよくなり、その分、エントリ構造を簡素化することが可能になる。
【００１９】
また、本発明のパケットフィルタ装置は、フィルタ規則テーブルに記憶された情報が、パラメータの有効または無効を示すビット列と有効なパラメータのパラメータ値とで構成されている。
【００２０】
この構成により、パラメータの種類が著しく増えた場合でも、エントリ毎にパラメータの有効、無効を示すビット列を記憶するだけで、エントリの構成を簡素化することができる。
【００２１】
また、本発明のパケットフィルタ装置は、フィルタ規則レジスタと一致判定手段とをそれぞれ複数備え、複数のエントリに対し、一致判定手段が同時に判定する構成を有する。
【００２２】
この構成により、複数のエントリを同時に一致判定することができるようになり、一致比較にかかる時間を短縮することができる。
【００２３】
また、本発明のパケットフィルタ装置は、フィルタ規則テーブルのエントリ番号とエントリ長とメモリ上のアドレスとをそれぞれ管理するメモリ管理手段を更に備え、フィルタ規則テーブルのエントリ順を制御可能にした構成を有する。
【００２４】
この構成により、フィルタ規則テーブルのエントリ順を自由に制御することができ、一致比較順序を自由に設定することが可能になる。
【００２５】
また、本発明のパケットフィルタ装置は、複数の個別パラメータ判定手段を更に備え、それぞれの個別パラメータ判定手段が、入力パケットからそれぞれの個別パラメータ判定手段に対応する個別パラメータの情報を抽出する個別情報抽出手段と、予め定めた個別パラメータの情報を記憶した個別パラメータテーブルと、個別情報抽出手段で抽出された個別パラメータの情報が個別パラメータテーブルに記憶された個別パラメータの情報と一致するかどうかを判定する一致比較手段と、一致比較手段の出力に基づいて予め定めた判定結果出力を入力情報集合レジスタに出力する判定結果出力手段とを備えた構成を有する。
【００２６】
この構成により、入力パケットからそれぞれの個別パラメータの情報を抽出し、それらをそれぞれの一致比較部で個別パラメータテーブルに記憶された個別パラメータの情報と比較し、一致するかどうかを判定し、結果を入力情報集合レジスタに出力し、記憶することができ、全体の処理を素早く実行することか可能になる。
【００２７】
また、本発明のパケットフィルタ装置は、判定結果出力手段がコードを出力し、コードを入力情報集合レジスタに記憶すると共に、フィルタ規則テーブルに記憶された情報もコードである構成を有する。
【００２８】
この構成により、フィルタ規則テーブルのエントリ構造を簡素化できると同時に、フィルタ規則テーブルで重複するパラメータ値を、個別パラメータテーブルの一つのエントリにまとめることができる。
【００２９】
さらに、本発明のパケットフィルタ方法は、入力パケットを受信するステップと、受信した入力パケットからヘッダパラメータを抽出し、入力情報集合レジスタに記憶するステップと、フィルタ規則テーブルに記憶された短縮化された情報を入力情報集合レジスタに記憶された情報と比較可能な情報に展開するステップと、展開された情報をフィルタ規則レジスタに記憶するステップと、入力情報集合レジスタに記憶された情報をフィルタ規則レジスタに記憶された情報と比較し、一致するかどうかを判定するステップと、判定するステップで一致したとき一致信号を出力するステップとを備えた構成を有する。
【００３０】
この構成により、フィルタ規則テーブルに短縮化された情報を記憶しておき、その情報から入力情報集合レジスタに記憶された情報と比較可能な情報に展開し、展開された情報をもとに入力情報集合レジスタに記憶された情報がフィルタ規則レジスタに記憶された情報と一致するかどうかを比較することができ、フィルタ規則テーブルに記憶する情報を短縮化することができ、それだけフィルタ規則テーブルを有効に活用することができる。
【発明の効果】
【００３１】
本発明のパケットフィルタ装置は、入力パケットから比較対象となるパラメータを抽出し記憶する入力情報集合レジスタと、エントリ毎にパラメータを短縮化して記憶したフィルタ規則テーブルと、フィルタ規則テーブルに記憶されたパラメータを入力情報集合レジスタに記憶されたパラメータと比較可能な情報に展開するテーブル情報展開手段と、テーブル情報展開手段によって展開された情報を記憶するフィルタ規則レジスタと、入力情報集合レジスタに記憶されたパラメータとフィルタ規則レジスタに記憶された情報とを互いに比較し、一致するかどうかを判定する一致判定手段とを備えたものであり、設定に不要なパラメータをフィルタ規則テーブルから除外することができ、フィルタ規則テーブルを有効に活用することができるようになる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の実施の形態におけるパケットフィルタ装置、およびパケットフィルタ方法について、図面を参照しながら説明する。
【００３３】
（実施の形態１）
図１は、本発明の実施の形態１におけるフィルタ装置の概略構成を示すブロック図である。
【００３４】
本発明の実施の形態１におけるフィルタ装置は、図１に示すように、パケットフィルタ規則を構成する各種パラメータの種別毎に設けられて各パラメータの判定を行う個別パラメータ判定部１−１，１−２、〜１−ｎと、個別パラメータ判定部１−１，１−２、〜１−ｎでの判定結果のエントリの内容を判定するフィルタ規則判定部２とを備えている。
【００３５】
個別パラメータ判定部１−１、１−２、〜１−ｎは、入力パケットのパケットヘッダから該当する種別のパラメータの情報を抽出する個別情報抽出部１１−１、１１−２、〜１１−ｎと、被検索ワードを格納するための複数のエントリを有する個別パラメータテーブル１３−１、１３−２、〜１３−ｎと、個別情報抽出部１１−１、１１−２、〜１１−ｎが抽出した情報と個別パラメータテーブル１３−１、１３−２、〜１３−ｎのエントリ情報とを互いに比較し、一致するかどうかを判断する一致比較部１２−１、１２−２、〜１２−ｎと、一致したエントリが存在したとき、その一致したエントリ情報をコード化して出力する判定結果出力部１４−１、１４−２、〜１４−ｎとを備えている。
【００３６】
フィルタ規則は、個別パラメータ判定部１−１、１−２、〜１−ｎから出力されたコードの集合により構成する。このとき、出力されるコードは、エントリのアドレスを示してもよいし、独自に体系化したコードを用いても良い。
【００３７】
フィルタ規則判定部２は、個別パラメータ判定部１−１、１−２、〜１−ｎの判定結果出力部１４−１、１４−２、〜１４−ｎより出力されたコードの集合を記憶する入力情報集合レジスタ２１と、フィルタ規則を格納するための複数のエントリを有するフィルタ規則テーブル２５と、フィルタ規則テーブル２５のエントリ順を制御するエントリ制御部２７と、フィルタ規則テーブル２５に格納されたエントリの情報を入力情報集合レジスタ２１に記憶されたコードの集合と比較可能な状態に展開するテーブル情報展開部２４と、テーブル情報展開部２４によって展開され、入力情報集合レジスタ２１に記憶されたコードの集合と比較可能な状態でフィルタ規則のそれぞれのエントリの情報を格納したフィルタ規則レジスタ２３−１、〜２３−ｎと、入力情報集合レジスタ２１に記憶された情報とフィルタ規則レジスタ２３−１、〜２３−ｎに記憶された情報とを互いに比較し、一致するかどうかを判断する一致比較部２２−１、〜２２−ｎと、入力情報集合レジスタ２１に記憶された情報とフィルタ規則レジスタ２３−１、〜２３−ｎに記憶された情報とが互いに一致したとき、一致信号を出力する一致信号出力部２６とを備えている。
【００３８】
なお、フィルタ規則レジスタ２３−１、〜２３−ｎと一致比較部２２−１、〜２２−ｎのそれぞれの構成数は、要求される処理速度と要求される回路規模の関係によって決定されるものであり、１〜ｎまでの任意の値を取りうる。
【００３９】
また、エントリ制御部２７は、フィルタ規則テーブル２５に記憶された情報のエントリ番号、エントリ長、メモリ上のアドレスなどを管理可能に構成され、この管理情報に基づいてフィルタ規則テーブル２５のエントリ順を制御可能なように構成されている。
【００４０】
図２は、本発明の実施の形態１におけるフィルタ装置において使用する個別パラメータテーブル１３−１、１３−２、〜１３−ｎの一例を示した図である。
【００４１】
図２において、パラメータ番号Ｐ１は、Ｅｔｈｅｒｎｅｔ（登録商標）ヘッダの宛先ＭＡＣアドレス、Ｐ２は、Ｅｔｈｅｒｎｅｔ（登録商標）ヘッダの送信元ＭＡＣアドレス、Ｐ３は、Ｅｔｈｅｒｎｅｔ（登録商標）ヘッダのＥｔｈｅｒタイプ、Ｐ４は、ＩＰｖ４ヘッダのＴＯＳフィールド、Ｐ５は、ＩＰｖ４ヘッダのＦｌａｇｍｅｎｔフィールド、Ｐ６は、ＩＰｖ４ヘッダのプロトコル番号、Ｐ７は、送信元ＩＰｖ４アドレス、Ｐ８は、宛先ＩＰｖ４アドレス、Ｐ９は、ＩＰｖ６ヘッダのＴｒａｆｆｉｃ  Ｃｌａｓｓ、Ｐ１０は、ＩＰｖ６ヘッダのフローラベル、Ｐ１１は、ＩＰｖ６ヘッダのＮｅｘｔ  ｈｅａｄｅｒ  Ｆｉｅｌｄ、Ｐ１２は、送信元ＩＰｖ６アドレス、Ｐ１３は、宛先ＩＰｖ６アドレス、Ｐ１４は、送信元ポート番号、Ｐ１５は、宛先ポート番号を示している。
【００４２】
なお、図２においては、パラメータ番号としてＰ１からＰ１５までの１５種類のパラメータを例にあげているが、その他にも、ＶＬＡＮのＴａｇ  Ｃｏｎｔｏｒｏｌ  Ｉｎｆｏｒｍａｔｉｏｎや、ＰＰＰｏＥのセッション番号、ＰＰＰプロトコル番号、ＩＰｓｅｃのＳｅｃｕｒｉｔｙ  Ｐａｒａｍｅｔｅｒ  Ｉｎｄｅｘ、ＴＣＰのコントロールビットといった既存のプロトコルのヘッダパラメータや、今後新しく追加されるプロトコルで規定されるヘッダパラメータの全て、または、その一部を個別パラメータの対象としてもよい。
【００４３】
個別パラメータテーブル１３−１、１３−２、〜１３−ｎのエントリ数は、その必要数に応じて予め決めておく。例えば、Ｐ４のＴＯＳフィールドや、Ｐ９のＴｒａｆｆｉｃ  Ｃｌａｓｓは、優先度付けされたパケットの識別に使用されるので、優先度を３つのクラスに分けると規定した場合には３エントリでよいとか、特定の端末からのパケットのみを通過させたい場合は、サポートする端末数を１６台と規定した場合、Ｐ７の送信元ＩＰｖ４アドレスとＰ１２の送信元ＩＰｖ６アドレスのエントリは１６個でよいとか、特定のプロトコルの通信を遮断したい場合において、サポートするプロトコルが８種類程度であれば、Ｐ６のプロトコル番号のエントリは８個でよいとかと言った具合に決定すればよい。
【００４４】
図３は、本実施の形態１におけるフィルタ装置において使用するフィルタ規則テーブル２５の一例を示した図である。
【００４５】
フィルタ規則は、個別パラメータのパラメータ種別（Ｐ１〜Ｐ１５）と、当該個別パラメータテーブルのエントリを指し示すコード（Ｃ＊、＊は数字）をセットで記憶することで記憶容量を削減している。
【００４６】
すなわち、図１１に示す従来のものでは、全てのパラメータ毎に４ビットの領域を確保しているが、本実施の形態１において使用するフィルタ規則テーブル２５では、図３に示すように、それぞれ設定に必要な１つのヘッダパラメータ当たり、パラメータ種別を示す４ビットとコードを示す４ビットの８ビットを確保すればよいようにしている。
【００４７】
例えば、１５種類のヘッダパラメータが設定可能であって、このうちフィルタ規則を構成するのに４つのパラメータしか必要としないとすると、従来の場合には、１つのエントリ当たり、４ビット×１５＝６０ビット必要であるのに対して、本実施の形態１では、８ビット×４＝３２ビットあればよいことになる。つまり、限られたメモリ容量でより多くのエントリを確保することができる。
【００４８】
なお、フィルタ規則テーブル２５の各エントリに示されたＡＣＴＩＯＮは、各エントリに一致した信号の振る舞いを指定したものである。
【００４９】
本実施の形態１のフィルタ装置の後段に、ルーティング回路や優先制御回路を設けることにより、一般的なフィルタ装置の振る舞いである廃棄、転送の指示の他に、出力先のポートを指定して転送したり、出力順序を優先付けして複数のパケットバッファに対しどのバッファに格納すればよいかなどを指示したりして転送することができる。
【００５０】
図４は、本実施の形態１におけるフィルタ装置の動作を概念的に説明する図である。
【００５１】
図４（ａ）に示すように、入力パケットがそのヘッダにＥｔｈｅｒｎｅｔ（登録商標）ヘッダとＩＰｖ４ヘッダとＴＣＰヘッダとを含む場合において、個別パラメータテーブル１３−１、１３−２、〜１３−ｎとして図２に示す１５種類のヘッダパラメータがあって、図４（ｂ）に示すように、宛先ＭＡＣアドレス（Ｐ１）、送信元ＭＡＣアドレス（Ｐ２）、Ｅｔｈｅｒタイプ（Ｐ３）、ＴＯＳフィールド（Ｐ４）、Ｆｌａｇｍｅｎｔフィールド（Ｐ５）、プロトコル番号（Ｐ６）、送信元ＩＰｖ４アドレス（Ｐ７）、宛先ＩＰｖ４アドレス（Ｐ８）、送信元ポート番号（Ｐ１４）、宛先ポート番号（Ｐ１５）がそれぞれ検索対象とする。
【００５２】
そこで、入力パケットを個別情報抽出部１１−１、１１−２、〜１１−ｎで抽出した個別パラメータについて、個別パラメータテーブル１３−１、１３−２、〜１３−ｎを検索し、一致比較部１２−１、１２−２、〜１２−ｎで比較し、判定結果出力部１４−１、１４−２、〜１４−ｎで判定した結果をコードで出力し、図４（ｃ）に示すように、入力情報集合レジスタ２１に記憶する。
【００５３】
次に、テーブル情報展開部２４を用いて、図４（ｅ）に示すフィルタ規則テーブル２５から、図４（ｄ）に示すように、フィルタ規則レジスタ２３−１、２３−２、〜２３−ｎに、それぞれ一つのエントリの情報を展開する。
【００５４】
フィルタ規則レジスタ２３−１、２３−２、〜２３−ｎには、入力情報集合レジスタ２１と一致比較可能なように１５種類のパラメータのコードを記憶できる領域が確保されているが、実際に設定に必要なパラメータはＰ１、Ｐ６、Ｐ８、Ｐ１４の４種類であるので、図４（ｅ）に示すフィルタ規則テーブル２５のエントリ０には、４種類の情報しか記憶されていない。
【００５５】
入力情報集合レジスタ２１に記憶された情報とフィルタ規則レジスタ２３−１、２３−２、〜２３−ｎに記憶された情報とを比較し、一致しなければ、次のエントリの情報をフィルタ規則レジスタ２３−１、２３−２、〜２３−ｎに記憶する。最終エントリまで一致比較を繰り返し、一致したエントリがあれば一致信号を出力する。
【００５６】
図５はこのような本実施の形態１におけるフィルタ装置の動作を示すフロー図であり、本実施の形態の動作を図５を用いて説明する。
【００５７】
本実施の形態１におけるフィルタ装置では、図５に示すように、パケットを受信すると（Ｓ５０１）、まず、個別情報抽出部１１−１、１１−２、〜１１−ｎは、受信したパケットのプロトコルを解析し、ヘッダパラメータとして個別パラメータテーブル１３−１、１３−２、〜１３−ｎの検索対象となっているパラメータがあるかどうかを判定し、検索対象となっているパラメータがあれば、それぞれそれらのパラメータの情報を抽出し、次に一致比較部１２−１、１２−２、〜１２−ｎは、個別情報抽出部１１−１、１１−２、〜１１−ｎが抽出したパラメータの情報を基に、個別パラメータテーブル１３−１、１３−２、〜１３−ｎを検索する（Ｓ５０２）。
【００５８】
個別パラメータテーブル１３−１、１３−２、〜１３−ｎを検索し、一致比較部１２−１、１２−２、〜１２−ｎにおいて一致情報が得られれば、それを基に判定結果出力部１４−１、１４−２、〜１４−ｎよりそれぞれ所定の検索結果出力を出力し、それらを入力情報集合レジスタ２１のそれぞれの所定の位置に格納する（Ｓ５０３）。
【００５９】
そして、個別情報抽出部１１−１、１１−２、〜１１−ｎは、受信したパケットに、さらに検索対象となるパラメータが存在するかどうかを判定し（Ｓ５０４）、検索対象となるパラメータが存在した場合（Ｓ５０４のＹＥＳ）には、再びステップＳ５０２に戻り、個別パラメータテーブル１３−１、１３−２、〜１３−ｎの検索、および検索結果の入力情報集合レジスタ２１への記憶を繰り返す。
【００６０】
Ｓ５０４で、検索対象となるパラメータが存在しなくなった場合（Ｓ５０４のＮＯ）には、フィルタ規則テーブル２５のエントリ情報をフィルタ規則レジスタ２３−１、２３−２、〜２３−ｎの所定位置に格納する（Ｓ５０５）。
【００６１】
フィルタ規則テーブル２５のエントリ情報がフィルタ規則レジスタ２３−１、２３−２、〜２３−ｎの所定位置に格納されると（Ｓ５０５）、格納されたエントリ情報と入力情報集合レジスタ２１に記憶された情報とが互いに一致するかどうかを一致比較部２２−１、２２−２、〜２２−ｎで比較する（Ｓ５０６）。
【００６２】
一致比較部２２−１、２２−２、〜２２−ｎでの比較施の結果、一致したエントリがある場合（Ｓ５０７のＹＥＳ）には、一致比較部２２−１、２２−２、〜２２−ｎよりそれぞれ一致信号を出力し、一致信号出力部２６より所定の一致信号を出力し（Ｓ５０９）、その状態で検索を終了する（Ｓ５１０）。
【００６３】
一致比較部２２−１、２２−２、〜２２−ｎでの比較施の結果、一致しなかった場合（Ｓ５０７のＮＯ）には、比較した対象が最終のエントリであったかどうかを判断し（Ｓ５０８）、最終のエントリであった場合（Ｓ５０８のＹＥＳ）には、その状態で検索を終了し（Ｓ５１０）、最終のエントリでなかった場合（Ｓ５０８のＮＯ）には、Ｓ５０５に戻って、フィルタ規則テーブル２５の次のエントリ情報をフィルタ規則レジスタ２３−１、〜２３−ｎに格納し、以降、同様の動作を繰り返す。
【００６４】
このように、本実施の形態１によれば、個別パラメータ判定部１−１、１−２、〜１−ｎを複数設け、これらの個別パラメータ判定部１−１、１−２、〜１−ｎに設けた個別情報抽出部１１−１、１１−２、〜１１−ｎにおいて、それぞれ個別パラメータを抽出し、それらの個別パラメータの情報をそれぞれ個別パラメータテーブル１３−１、１３−２、〜１３−ｎに記憶された情報と一致するかどうかを比較し、その結果を判定結果出力部１４−１、１４−２、〜１４−ｎを介して入力情報集合レジスタ２１に記憶するようにしており、この過程において、それぞれ個別パラメータを個別パラメータ毎に一致比較しており、個別パラメータの情報が予め記憶されたエントリ情報と一致するかどうかを比較的早く判断することができる。
【００６５】
そして、入力情報集合レジスタ２１に記憶された情報は、次にフィルタ規則判定部２を構成する一致比較部２２−１、２２−２、〜２２−ｎによって、フィルタ規則レジスタ２３−１、２３−２、〜２３−ｎに記憶されたエントリ情報と一致するかどうか判断されるのであるが、この場合、フィルタ規則レジスタ２３−１、２３−２、〜２３−ｎに記憶された情報は、フィルタ規則テーブル２５に記憶された各パラメータの種別とパラメータの内容の対の情報を基にテーブル情報展開部２４によって入力情報集合レジスタ２１に記憶された情報と比較可能な状態に展開されたものであり、入力情報集合レジスタ２１に記憶された情報と容易に比較することができる。
【００６６】
すなわち、フィルタ規則テーブル２５に記憶された情報は、元々、各パラメータの種別とそのパラメータの内容を対にした情報であり、内容のない無効の情報を含んでいないため、情報量としては従来に比しその分少なくて済み、フィルタ規則テーブル２５の記録容量を有効に活用することができる。
【００６７】
なお、本実施の形態１において、一致信号出力部２６より出力される一致信号をもとに、入力される情報を全て廃棄するか、通過させるかを決定するように構成すれば、一致するものだけを通過させ、それ以外のものを全て廃棄するフィルタ装置などを容易に構成することができる。
【００６８】
そして、このようにして構成したフィルタ装置は、センタ局などと有線、無線で通信可能なネットワークの端末装置や、センタ局や端末機あるいは中間局同士で通信可能な中継装置に使用することができ、また、このようなフィルタ装置は、半導体集積回路として容易に構成することができる。
【００６９】
また、本実施の形態１におけるフィルタ装置は、入力されたパケット情報の識別を目的としたクラシファイア回路に使用することも可能であり、この場合には、一致信号出力部２６からの出力を基に、そのパケットに所望の処理を施すことも可能である。
【００７０】
また、読み出し頻度の異なる複数のパケットバッファを出力先として指定できる回路に用いる場合には、一致信号出力部２６からの出力を基に、それらの回路の優先制御を実施することも可能である。
【００７１】
（実施の形態２）
次に、本発明の実施の形態２におけるフィルタ装置について説明する。
【００７２】
本実施の形態２において、全体のブロック図、個別パラメータテーブルの構成、全体の動作は、それぞれ実施の形態１と同様、図１、図２、図５に示す通りであり、これらの説明を省略し、実施の形態１と異なる点にのみ説明する。
【００７３】
本実施の形態２では、フィルタ規則テーブル２５のエントリ構造を、実施の形態１と若干異ならせている。
【００７４】
図６は、本実施の形態２で使用するフィルタ規則テーブル２５のエントリ構造を示している。本実施の形態２では、図６に示すように、設定に必要なパラメータに対して、パラメータが有効であるという情報と当該有効な個別パラメータのエントリを指し示すコードとをセットにして記憶し、設定に不要なパラメータに対しては、パラメータが無効であるという情報と無効なパラメータが連続していくつ並ぶかと言う情報とをセットにして記憶するようにしている。そして、フィルタ規則テーブル２５に記憶された情報を、テーブル情報展開部２４を用いて入力情報集合レジスタ２１に記憶された情報と一致判定可能な情報に展開し、フィルタ規則レジスタ２３−１、２３−２、〜２３−ｎのそれぞれ所定の位置に記憶するようにしている。
【００７５】
例えば、図６において、パラメータが有効であるという情報を“１”、無効であるという情報を“０”で示すと、フィルタ規則テーブルのエントリ０は、最初の“１”で、先頭のパラメータ１（Ｐ１）は有効で、次の“Ｃ１”で、この有効な個別パラメータのエントリを指し示すコードであるパラメータ値が“Ｃ１”であることを意味し、次の“０”と“４”で、パラメータ２（Ｐ２）からパラメータ５（Ｐ５）までは、連続して４つのパラメータが無効であることを意味している。したがって、さらに、パラメータ６（Ｐ６）は、有効でパラメータ値が“Ｃ０“、パラメータ７（Ｐ７）は無効、パラメータ８（Ｐ８）は有効でパラメータ値が”Ｃ０“、パラメータ９（Ｐ９）からパラメータ１３（Ｐ１３）までは、連続して５つのパラメータが無効、パラメータ１４（Ｐ１４）は有効でパラメータ値が”Ｃ１“、パラメータ１５（Ｐ１５）は無効であることを示している。
【００７６】
このように、本実施の形態２によれば、パラメータが有効であるかどうかという情報とパラメータ値がいくつであるかという情報とをセットで記憶し、パラメータが無効である場合には、無効であるという情報と無効であるパラメータがいくつ連続するかと言う数の情報とをセットにして記憶するようにしており、パラメータが連続して無効であるという場合に、その情報量を極力少なくすることができ、その分、全体の情報量を少なくすることが可能である。
【００７７】
すなわち、仮に、１５種類のヘッダパラメータが設定可能であって、このうちフィルタ規則を構成するのに４つのパラメータしか必要としない場合、従来のフィルタ規則テーブルのエントリ０では、４ビット×１５＝６０ビット必要であるのに対し、本実施の形態２で使用するフィルタ規則テーブルのエントリ０では、５ビット×８＝４０ビットあればよいことになり、限られたメモリ容量でより多くのエントリを確保することができることになる。
【００７８】
（実施の形態３）
次に、本発明の実施の形態３におけるフィルタ装置について説明する。
【００７９】
本実施の形態３において、全体のブロック図、個別パラメータテーブルの構成、全体の動作は、それぞれ実施の形態１、２と同様、図１、図２、図５に示す通りであり、これらの説明を省略し、実施の形態１、２と異なる点にのみ説明する。
【００８０】
本実施の形態３では、やはり、フィルタ規則テーブル２５のエントリ構造を、実施の形態１、２と異ならせている。
【００８１】
図７は、本実施の形態３で使用するフィルタ規則テーブル２５のエントリ構造を示している。本実施の形態３では、図７に示すように、フィルタ規則テーブル２５の各エントリにおいて、パラメータの有効、無効を示すビットマップを先頭に記憶し、それに続いて有効なパラメータのパラメータ値を記憶している。
【００８２】
そして、この場合も、フィルタ規則テーブル２５に記憶された情報を、テーブル情報展開部２４を用いて入力情報集合レジスタ２１に記憶された情報と一致判定可能な情報に展開し、フィルタ規則レジスタ２３−１、２３−２、〜２３−ｎのそれぞれ所定の位置に記憶するようにしている。
【００８３】
例えば、パラメータが有効であるという情報を“１”、無効であるという情報を“０”で示し、１５種類のヘッダパラメータが設定可能であるとすると、図７に示すように、フィルタ規則テーブル２５のエントリ０は、パラメータ１（Ｐ１）とパラメータ６（Ｐ６）とパラメータ８（Ｐ８）とパラメータ１４（Ｐ１４）が有効であるから、有効、無効を示すビットマップは、二進表記で“１００００１０１０００００１０”、１６進表記で“０ｘ４２８２となり、したがって、エントリの先頭に１５ビットの領域を確保して、ここに上記表記の内容を格納し、有効なパラメータのパラメータ値Ｃ１、Ｃ０、Ｃ０、Ｃ1をそれぞれその後に連続して格納する。
【００８４】
このように、本実施の形態によれば、エントリの先頭に１５ビットの領域を確保して、ここにパラメータの有効、無効を示すビットマップを記憶し、その後に有効なパラメータのパラメータ値をそれぞれ連続して記憶しているため、この場合も無効なパラメータを記憶するのに多くの領域を必要とせず、それだけメモリを有効に活用することができる。
【００８５】
すなわち、例えば、１５種類のヘッダパラメータが設定可能であって、このうちフィルタ規則を構成するのに４つのパラメータしか必要としない場合でも、従来のフィルタ規則テーブルのエントリ０では、４ビット×１５＝６０ビット必要であるのに対して、本実施の形態３では、フィルタ規則テーブルのエントリ０に、１５ビット＋４ビット×４＝３１ビットあればよいことになり、それだけ少ない容量で必要な情報のエントリを確保することができることになる。
【００８６】
（実施の形態４）
次に、本発明の実施の形態４におけるフィルタ装置について説明する。
【００８７】
図８は、本発明の実施の形態４におけるフィルタ装置の構成を示すブロック図である。
【００８８】
本実施の形態４におけるフィルタ装置では、図８に示すように、実施の形態１で示した個別パラメータ判定部１−１、１−２、〜１−ｎを有せず、フィルタ規則判定部８のみを有している。
【００８９】
本実施の形態４におけるフィルタ規則判定部８は、入力パケットのヘッダパラメータを記憶する入力情報集合レジスタ８１と、フィルタ規則を格納するための複数のエントリを有するフィルタ規則テーブル８５と、フィルタ規則テーブル８５のエントリの順番を制御するエントリ制御手段８７と、フィルタ規則テーブル８５に格納されたエントリの情報を入力情報集合レジスタ８１と比較可能な状態に展開するテーブル情報展開手段８４と、フィルタ規則の一つのエントリの情報を格納したフィルタ規則レジスタ８３−１、８３−２、〜８３−ｎと、入力情報集合レジスタ８１の情報とフィルタ規則レジスタ８３−１、８３−２、〜８３−ｎの情報とを比較し、一致するかどうかを判定する一致比較部８２−１、８２−２、〜８２−ｎと、入力情報集合レジスタ８１の情報とフィルタ規則レジスタ８３−１、８３−２、〜８３−ｎの情報が一致したとき、一致信号を出力する一致信号出力部８６とを備えている。
【００９０】
次に、本実施の形態におけるフィルタ装置について、その動作を説明する。
【００９１】
図９は、本実施の形態４におけるフィルタ装置の動作を示すフロー図である。
【００９２】
図９に示すように、入力情報集合レジスタ８１がパケットを受信すると（Ｓ９０１）、全体の処理が開始され、先ず、入力情報集合レジスタ８１は入力パケットのヘッダパラメータを抽出し、入力情報集合レジスタ８１に格納する（Ｓ９０２）。
【００９３】
入力パケットのヘッダパラメータが入力情報集合レジスタ８１にそれぞれ格納されると、次に、フィルタ規則テーブル８５のエントリ情報がテーブル情報展開部８４によって入力情報集合レジスタ８１に格納された情報と比較可能な情報に展開され、フィルタ規則レジスタ８３−１、８３−２、〜８３−ｎの所定の位置にそれぞれ格納される（Ｓ９０３）。そして、フィルタ規則テーブル８５のエントリ情報がフィルタ規則レジスタ８３−１、８３−２、〜８３−ｎに格納されると、一致比較部８２−１、８２−２、〜８２−ｎで、入力情報集合レジスタ８１の情報がフィルタ規則レジスタ８３−１、８３−２、〜８３−ｎの情報と比較され、両者が一致するかどうかの一致判定を実施する（Ｓ９０４）。
【００９４】
一致判定の結果、一致した情報がある場合（Ｓ９０５のＹＥＳ）は、一致信号出力部８６を介して一致信号を出力し（Ｓ９０６）、その状態で検索を終了する（Ｓ９０７）。
【００９５】
一致判定の結果、一致した情報がない場合（Ｓ９０５のＮＯ）は、そのフィルタ規則テーブル８５のエントリが最終のエントリかどうかを判定し（Ｓ９０８）、最終エントリではない場合（Ｓ９０８のＮＯ）は、再び、ステップＳ９０３に戻り、フィルタ規則テーブル８５の次のエントリの情報をフィルタ規則レジスタ８３−１、〜８３−ｎの所定の位置に記憶し、入力情報集合レジスタ８１の情報と一致比較する（Ｓ９０４）。そして、Ｓ９０８での判定結果が最終のエントリの場合は、その状態で検索を終了する（Ｓ９０７）。
【００９６】
このように、本実施の形態４では、これまでの実施の形態のような個別パラメータ判定部を有しないが、フィルタ規則テーブル８５に記憶された情報を、テーブル情報展開部８４を用いて、入力情報集合レジスタ８１に記憶された情報と比較可能な情報に展開し、その状態で、フィルタ規則レジスタ８３−１、８３−２、〜８３−ｎに記憶し、入力情報集合レジスタ８１に記憶された情報をフィルタ規則レジスタ８３−１、８３−２、〜８３−ｎに記憶された情報と比較するようにしており、フィルタ規則テーブル８５には、上記展開前の情報、すなわち、実施の形態１と同じように、パラメータの種類とそのパラメータの値とを対にして記憶しておいたり、実施の形態２と同じように、パラメータの有効、無効の情報と無効のパラメータは連続していくつ続くかと言う情報を記憶しておいたり、実施の形態３と同じように、パラメータの有効、無効の情報をビットマップで先に記憶しておき、その後に有効なパラメータの値を順次記憶しておいたり、要するに、それぞれのパラメータの情報を圧縮、あるいは、短縮された状態で記憶しておくことができ、フィルタ規則テーブル８５のメモリ容量を実施の形態１、２、３と同じように有効に活用することができる。
【００９７】
そして、本実施の形態４では、個別パラメータ判定部を有しないため、入力パケットのヘッダパラメータにおいて、その種類が多い場合には、それらを判別し比較するのに時間を要するが、種類が少ない場合には、その時間をほとんど問題にせず、処理することができるという効果を有する。
【産業上の利用可能性】
【００９８】
本発明のパケットフィルタ装置は、入力パケットから比較対象となるパラメータを抽出し記憶する入力情報集合レジスタと、エントリ毎にパラメータを短縮化して記憶したフィルタ規則テーブルと、フィルタ規則テーブルに記憶されたパラメータを入力情報集合レジスタに記憶されたパラメータと比較可能な情報に展開するテーブル情報展開手段と、テーブル情報展開手段によって展開された情報を記憶するフィルタ規則レジスタと、入力情報集合レジスタに記憶されたパラメータとフィルタ規則レジスタに記憶された情報とを互いに比較し、一致するかどうかを判定する一致判定手段とを備えたものであり、設定に不要なパラメータをフィルタ規則テーブルから除外することができ、フィルタ規則テーブルを有効に活用することができるようになる。したがって、本発明によれば、ハードウェア量を抑制したい端末装置向けのフィルタ装置として有用であり、また、半導体集積回路装置に内蔵する場合でも、ハードウェア量が少ないことから、コストを抑えた半導体集積回路装置を容易に得られ、製造面でも有用である。
【図面の簡単な説明】
【００９９】
【図１】本発明の実施の形態１におけるフィルタ装置の構成を示す概略ブロック図
【図２】本発明の実施の形態１におけるフィルタ装置において使用する個別パラメータテーブルの一例を示す図
【図３】本発明の実施の形態１におけるフィルタ装置において使用するフィルタ規則テーブルの一例を示す図
【図４】本発明の実施の形態１におけるフィルタ装置の動作の概念を説明する図
【図５】本発明の実施の形態１におけるフィルタ装置の動作を示すフロー図
【図６】本発明の実施の形態２におけるフィルタ装置において使用するフィルタ規則テーブルの一例を示す図
【図７】本発明の実施の形態３におけるフィルタ装置において使用するフィルタ規則テーブルの一例を示す図
【図８】本発明の実施の形態４におけるフィルタ装置の構成を示す概略ブロック図
【図９】本発明の実施の形態４におけるフィルタ装置の動作を示すフロー図
【図１０】従来のフィルタ装置の構成を示す概略ブロック図
【図１１】従来のフィルタ装置において使用するフィルタ規則テーブルの一例を示す図
【符号の説明】
【０１００】
１    個別パラメータ判定部
２、８    フィルタ規則判定部
１１−１〜１１−ｎ    個別情報抽出部
１２−１〜１２−ｎ、２２−１〜２２−ｎ、８２−１〜８２−ｎ    一致比較部
１３−１〜１３−ｎ    個別パラメータテーブル
１４−１〜１４−ｎ    判定結果出力部
２１、８１    入力情報集合レジスタ
２３−１〜２３−ｎ、８３−１〜８３−ｎ    フィルタ規則レジスタ
２４、８４    テーブル情報展開部
２５、８５    フィルタ規則テーブル
２６、８６    一致信号出力部
２７、８７    エントリ制御部
【図１】
2006246302.tif 000003
【図２】
2006246302.tif 000004
【図３】
2006246302.tif 000005
【図４】
2006246302.tif 000006
【図５】
2006246302.tif 000007
【図６】
2006246302.tif 000008
【図７】
2006246302.tif 000009
【図８】
2006246302.tif 000010
【図９】
2006246302.tif 000011
【図１０】
2006246302.tif 000012
【図１１】
2006246302.tif 000013