JP2006246302A - パケットフィルタ装置、およびそれを用いた装置、並びに、パケットフィルタ方法 - Google Patents
パケットフィルタ装置、およびそれを用いた装置、並びに、パケットフィルタ方法 Download PDFInfo
- Publication number
- JP2006246302A JP2006246302A JP2005061984A JP2005061984A JP2006246302A JP 2006246302 A JP2006246302 A JP 2006246302A JP 2005061984 A JP2005061984 A JP 2005061984A JP 2005061984 A JP2005061984 A JP 2005061984A JP 2006246302 A JP2006246302 A JP 2006246302A
- Authority
- JP
- Japan
- Prior art keywords
- information
- parameter
- filter rule
- stored
- filter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】フィルタ規則設定のための情報を少なくできるパケットフィルタ装置の提供。
【解決手段】入力パケットから比較対象となるパラメータを抽出し記憶する入力情報集合レジスタ21と、エントリ毎にパラメータを短縮化して記憶したフィルタ規則テーブル25と、フィルタ規則テーブル25に記憶されたパラメータを入力情報集合レジスタ21に記憶されたパラメータと比較可能な情報に展開するテーブル情報展開手段24と、テーブル情報展開手段24によって展開された情報を記憶するフィルタ規則レジスタ23−1と、入力情報集合レジスタ21に記憶されたパラメータとフィルタ規則レジスタ23−1に記憶された情報とを互いに比較し、一致するかどうかを判定する一致判定手段22−1とを備え、設定に不要な情報を除外し、フィルタ規則テーブル25のエントリ容量を削減することができる。
【選択図】図1
【解決手段】入力パケットから比較対象となるパラメータを抽出し記憶する入力情報集合レジスタ21と、エントリ毎にパラメータを短縮化して記憶したフィルタ規則テーブル25と、フィルタ規則テーブル25に記憶されたパラメータを入力情報集合レジスタ21に記憶されたパラメータと比較可能な情報に展開するテーブル情報展開手段24と、テーブル情報展開手段24によって展開された情報を記憶するフィルタ規則レジスタ23−1と、入力情報集合レジスタ21に記憶されたパラメータとフィルタ規則レジスタ23−1に記憶された情報とを互いに比較し、一致するかどうかを判定する一致判定手段22−1とを備え、設定に不要な情報を除外し、フィルタ規則テーブル25のエントリ容量を削減することができる。
【選択図】図1
Description
本発明は、ネットワークインタフェースを通じてイーサネット(登録商標)などのフレームを受信処理する装置などで用いられるような、ある一定の条件を満たすパケットを転送あるいは廃棄するパケットフィルタリング機能を実現するパケットフィルタ装置、および、それを用いた装置、並びに、パケットフィルタ方法に関するものである。
一般に、ネットワークに接続された端末装置間でやりとりされる通信データの先頭部分には、送信先の相手アドレス番号や自身のアドレス番号等の情報からなるヘッダが設けられている。ヘッダの各情報を参照してマッチングをとるといったデータ処理は、ネットワーク中継装置におけるルーティング処理やフィルタリング処理において必要とされ、ネットワーク中継装置の高速化に伴ってハードウェア処理で高速に実現する技術が提案されている(例えば、特許文献1参照)。
この技術は、内容検索型メモリ(CAMとも呼ばれ、あるデータを指定すると、内部のデータベースを検索し、指定されたデータのアドレスを検出する特殊なメモリ)を用いて高速化を実現している。一般に、CAMのワード(エントリ)長には限りがあるため、パケットフィルタ条件を多種の情報から設定する場合、十分な条件を設定できない場合がある。
そこで、ヘッダパラメータの種別毎にテーブルを構成した第1のCAMと、この第1のCAMにおけるアドレスの集合でフィルタ規則テーブルを構成した第2のCAMとを用いて、パラメータが多種にわたっても適切にフィルタ規則を設定できるようにしている。
図10はこのような技術を用いた従来のフィルタ回路の構成を示すブロック図である。
従来のフィルタ回路では、図10に示すように、パケットフィルタ規則を構成する各種情報の種別毎に設けられたそれぞれの個別情報判定CAM(第1の内容検索型メモリ)10−1、10−2、10−3を有している。個別情報判定CAM10−1、10−2、10−3は、それぞれ、入力パケットのパケットヘッダから当該種別の情報(検索ワード)を抽出するラッチ回路101−1、101−2、101−3と、当該種別の情報(被検索ワード)を格納するための複数のエントリを有するCAMセルアレイ102−1、102−2、102−3と、ラッチ回路101−1、101−2、101−3から出力された情報と一致する情報を保持しているエントリが存在するとき、その一致エントリのアドレスを出力する一致アドレス出力回路103−1、103−2、103−3とを備えている。
各個別情報判定CAM10−1、10−2、10−3は、それぞれが対応する情報に関しての一致検索を実施し、その結果をレジスタ20に供給する。
レジスタ20は、個別情報判定CAM10−1、10−2、10−3から出力された一致エントリアドレスをそれぞれ一旦格納し、それらを所定の順序でフィルタ条件判定CAM(第2の内容検索型メモリ)30に出力する。フィルタ条件判定CAM30は、個別情報判定CAM10−1、10−2、10−3の一致エントリアドレスの集合をパケットフィルタ規則として格納するCAMセルアレイ301と、レジスタ20から出力された一致エントリアドレスの集合がCAMセルアレイ301のパケットフィルタ規則に一致したとき、一致信号を出力する一致信号出力回路302とを備えており、この構成により、パケットフィルタ規則が多種類の情報から構成されている場合であっても、限られたエントリビット長のCAMでパケットフィルタ機能を高速化することを可能にしている。
特開2000−151627号公報
ところで、ネットワークへの各種機器の接続は、今後、家電製品や携帯端末といった各種端末装置が予想される。そこで、パケットフィルタ機能としては、高速化と同時に低コスト化(回路規模のコンパクト化)が強く求められる。内容検索型メモリ(CAM)は、検索を高速で行える半面、価格が高い。そのため、大規模なネットワーク中継装置ではよく使用されるが、端末装置や小規模な中継装置においては、価格が高いことが原因で、余り使用しないのが一般的である。CAMを使用しない場合には、通常のRAMなどのメモリを用いて全体の回路を構成することになる。
一方、流入するパケットの中で第三者からの攻撃パケットや、自装置には不要なパケットなどはフィルタリングしたいという要請がある。その場合、特定の送信元アドレスからの情報しか受け取らないとか、特定のプロトコル、特定のポート番号、特定の優先度、特定の宛先アドレスしか受け取らないと言ったきめ細かなフィルタ規則の設定を要求されると、ヘッダパラメータの種類が益々増え、これを増やすとテーブルを構成するメモリ量(=回路規模)も大幅に増大するという課題に直面する。
図11は、従来のフィルタ規則テーブルを示す図である。従来のフィルタ規則テーブルでは、パラメータの種別(P1〜P15)の数だけ、それぞれのエントリ(ビット)を確保する必要がある。パラメータの種別が増えても、また、同じ廃棄や転送の処理であっても、全てのパラメータを設定する必要はないため、図11において、例えば、Don‘t Careを設定した領域は無駄となる。なお、図11において、C*(*は数字)は、フィルタ規則を構成するそれぞれのパラメータの値を示している。
本発明は、このような従来の問題に鑑みてなされたものであり、設定に不要なパラメータの情報をフィルタ規則テーブルから除外し、記憶させる情報を少なくすることが可能で低価格で構成できるパケットフィルタ装置、および、パケットフィルタ方法を提供することを目的とするものである。
本発明のパケットフィルタ装置は、入力パケットから比較対象となるパラメータを抽出し記憶する入力情報集合レジスタと、エントリ毎にパラメータを短縮化して記憶したフィルタ規則テーブルと、フィルタ規則テーブルに記憶されたパラメータを入力情報集合レジスタに記憶されたパラメータと比較可能な情報に展開するテーブル情報展開手段と、テーブル情報展開手段によって展開された情報を記憶するフィルタ規則レジスタと、入力情報集合レジスタに記憶されたパラメータとフィルタ規則レジスタに記憶された情報とを互いに比較し、一致するかどうかを判定する一致判定手段とを備えた構成を有する。
この構成により、設定に不要なパラメータをフィルタ規則テーブルから除外することができ、フィルタ規則テーブルを有効に活用することができるようになる。
また、本発明のパケットフィルタ装置は、フィルタ規則テーブルに記憶された情報が、有効なパラメータの種別とパラメータのパラメータ値とが対になって構成されている。
この構成により、設定に不要な無効パラメータの情報をフィルタ規則テーブルから除外することができ、フィルタ規則テーブルを有効に活用することができることになる。
また、本発明のパケットフィルタ装置は、フィルタ規則テーブルに記憶された情報が、パラメータの有効を示す情報とパラメータのパラメータ値との対、およびパラメータの無効を示す情報と無効なパラメータの連続する数の情報との対とで構成されている。
この構成により、連続して不要なパラメータが並んだ場合、その不要なパラメータの数を記憶するだけでよくなり、その分、エントリ構造を簡素化することが可能になる。
また、本発明のパケットフィルタ装置は、フィルタ規則テーブルに記憶された情報が、パラメータの有効または無効を示すビット列と有効なパラメータのパラメータ値とで構成されている。
この構成により、パラメータの種類が著しく増えた場合でも、エントリ毎にパラメータの有効、無効を示すビット列を記憶するだけで、エントリの構成を簡素化することができる。
また、本発明のパケットフィルタ装置は、フィルタ規則レジスタと一致判定手段とをそれぞれ複数備え、複数のエントリに対し、一致判定手段が同時に判定する構成を有する。
この構成により、複数のエントリを同時に一致判定することができるようになり、一致比較にかかる時間を短縮することができる。
また、本発明のパケットフィルタ装置は、フィルタ規則テーブルのエントリ番号とエントリ長とメモリ上のアドレスとをそれぞれ管理するメモリ管理手段を更に備え、フィルタ規則テーブルのエントリ順を制御可能にした構成を有する。
この構成により、フィルタ規則テーブルのエントリ順を自由に制御することができ、一致比較順序を自由に設定することが可能になる。
また、本発明のパケットフィルタ装置は、複数の個別パラメータ判定手段を更に備え、それぞれの個別パラメータ判定手段が、入力パケットからそれぞれの個別パラメータ判定手段に対応する個別パラメータの情報を抽出する個別情報抽出手段と、予め定めた個別パラメータの情報を記憶した個別パラメータテーブルと、個別情報抽出手段で抽出された個別パラメータの情報が個別パラメータテーブルに記憶された個別パラメータの情報と一致するかどうかを判定する一致比較手段と、一致比較手段の出力に基づいて予め定めた判定結果出力を入力情報集合レジスタに出力する判定結果出力手段とを備えた構成を有する。
この構成により、入力パケットからそれぞれの個別パラメータの情報を抽出し、それらをそれぞれの一致比較部で個別パラメータテーブルに記憶された個別パラメータの情報と比較し、一致するかどうかを判定し、結果を入力情報集合レジスタに出力し、記憶することができ、全体の処理を素早く実行することか可能になる。
また、本発明のパケットフィルタ装置は、判定結果出力手段がコードを出力し、コードを入力情報集合レジスタに記憶すると共に、フィルタ規則テーブルに記憶された情報もコードである構成を有する。
この構成により、フィルタ規則テーブルのエントリ構造を簡素化できると同時に、フィルタ規則テーブルで重複するパラメータ値を、個別パラメータテーブルの一つのエントリにまとめることができる。
さらに、本発明のパケットフィルタ方法は、入力パケットを受信するステップと、受信した入力パケットからヘッダパラメータを抽出し、入力情報集合レジスタに記憶するステップと、フィルタ規則テーブルに記憶された短縮化された情報を入力情報集合レジスタに記憶された情報と比較可能な情報に展開するステップと、展開された情報をフィルタ規則レジスタに記憶するステップと、入力情報集合レジスタに記憶された情報をフィルタ規則レジスタに記憶された情報と比較し、一致するかどうかを判定するステップと、判定するステップで一致したとき一致信号を出力するステップとを備えた構成を有する。
この構成により、フィルタ規則テーブルに短縮化された情報を記憶しておき、その情報から入力情報集合レジスタに記憶された情報と比較可能な情報に展開し、展開された情報をもとに入力情報集合レジスタに記憶された情報がフィルタ規則レジスタに記憶された情報と一致するかどうかを比較することができ、フィルタ規則テーブルに記憶する情報を短縮化することができ、それだけフィルタ規則テーブルを有効に活用することができる。
本発明のパケットフィルタ装置は、入力パケットから比較対象となるパラメータを抽出し記憶する入力情報集合レジスタと、エントリ毎にパラメータを短縮化して記憶したフィルタ規則テーブルと、フィルタ規則テーブルに記憶されたパラメータを入力情報集合レジスタに記憶されたパラメータと比較可能な情報に展開するテーブル情報展開手段と、テーブル情報展開手段によって展開された情報を記憶するフィルタ規則レジスタと、入力情報集合レジスタに記憶されたパラメータとフィルタ規則レジスタに記憶された情報とを互いに比較し、一致するかどうかを判定する一致判定手段とを備えたものであり、設定に不要なパラメータをフィルタ規則テーブルから除外することができ、フィルタ規則テーブルを有効に活用することができるようになる。
以下、本発明の実施の形態におけるパケットフィルタ装置、およびパケットフィルタ方法について、図面を参照しながら説明する。
(実施の形態1)
図1は、本発明の実施の形態1におけるフィルタ装置の概略構成を示すブロック図である。
図1は、本発明の実施の形態1におけるフィルタ装置の概略構成を示すブロック図である。
本発明の実施の形態1におけるフィルタ装置は、図1に示すように、パケットフィルタ規則を構成する各種パラメータの種別毎に設けられて各パラメータの判定を行う個別パラメータ判定部1−1,1−2、〜1−nと、個別パラメータ判定部1−1,1−2、〜1−nでの判定結果のエントリの内容を判定するフィルタ規則判定部2とを備えている。
個別パラメータ判定部1−1、1−2、〜1−nは、入力パケットのパケットヘッダから該当する種別のパラメータの情報を抽出する個別情報抽出部11−1、11−2、〜11−nと、被検索ワードを格納するための複数のエントリを有する個別パラメータテーブル13−1、13−2、〜13−nと、個別情報抽出部11−1、11−2、〜11−nが抽出した情報と個別パラメータテーブル13−1、13−2、〜13−nのエントリ情報とを互いに比較し、一致するかどうかを判断する一致比較部12−1、12−2、〜12−nと、一致したエントリが存在したとき、その一致したエントリ情報をコード化して出力する判定結果出力部14−1、14−2、〜14−nとを備えている。
フィルタ規則は、個別パラメータ判定部1−1、1−2、〜1−nから出力されたコードの集合により構成する。このとき、出力されるコードは、エントリのアドレスを示してもよいし、独自に体系化したコードを用いても良い。
フィルタ規則判定部2は、個別パラメータ判定部1−1、1−2、〜1−nの判定結果出力部14−1、14−2、〜14−nより出力されたコードの集合を記憶する入力情報集合レジスタ21と、フィルタ規則を格納するための複数のエントリを有するフィルタ規則テーブル25と、フィルタ規則テーブル25のエントリ順を制御するエントリ制御部27と、フィルタ規則テーブル25に格納されたエントリの情報を入力情報集合レジスタ21に記憶されたコードの集合と比較可能な状態に展開するテーブル情報展開部24と、テーブル情報展開部24によって展開され、入力情報集合レジスタ21に記憶されたコードの集合と比較可能な状態でフィルタ規則のそれぞれのエントリの情報を格納したフィルタ規則レジスタ23−1、〜23−nと、入力情報集合レジスタ21に記憶された情報とフィルタ規則レジスタ23−1、〜23−nに記憶された情報とを互いに比較し、一致するかどうかを判断する一致比較部22−1、〜22−nと、入力情報集合レジスタ21に記憶された情報とフィルタ規則レジスタ23−1、〜23−nに記憶された情報とが互いに一致したとき、一致信号を出力する一致信号出力部26とを備えている。
なお、フィルタ規則レジスタ23−1、〜23−nと一致比較部22−1、〜22−nのそれぞれの構成数は、要求される処理速度と要求される回路規模の関係によって決定されるものであり、1〜nまでの任意の値を取りうる。
また、エントリ制御部27は、フィルタ規則テーブル25に記憶された情報のエントリ番号、エントリ長、メモリ上のアドレスなどを管理可能に構成され、この管理情報に基づいてフィルタ規則テーブル25のエントリ順を制御可能なように構成されている。
図2は、本発明の実施の形態1におけるフィルタ装置において使用する個別パラメータテーブル13−1、13−2、〜13−nの一例を示した図である。
図2において、パラメータ番号P1は、Ethernet(登録商標)ヘッダの宛先MACアドレス、P2は、Ethernet(登録商標)ヘッダの送信元MACアドレス、P3は、Ethernet(登録商標)ヘッダのEtherタイプ、P4は、IPv4ヘッダのTOSフィールド、P5は、IPv4ヘッダのFlagmentフィールド、P6は、IPv4ヘッダのプロトコル番号、P7は、送信元IPv4アドレス、P8は、宛先IPv4アドレス、P9は、IPv6ヘッダのTraffic Class、P10は、IPv6ヘッダのフローラベル、P11は、IPv6ヘッダのNext header Field、P12は、送信元IPv6アドレス、P13は、宛先IPv6アドレス、P14は、送信元ポート番号、P15は、宛先ポート番号を示している。
なお、図2においては、パラメータ番号としてP1からP15までの15種類のパラメータを例にあげているが、その他にも、VLANのTag Contorol Informationや、PPPoEのセッション番号、PPPプロトコル番号、IPsecのSecurity Parameter Index、TCPのコントロールビットといった既存のプロトコルのヘッダパラメータや、今後新しく追加されるプロトコルで規定されるヘッダパラメータの全て、または、その一部を個別パラメータの対象としてもよい。
個別パラメータテーブル13−1、13−2、〜13−nのエントリ数は、その必要数に応じて予め決めておく。例えば、P4のTOSフィールドや、P9のTraffic Classは、優先度付けされたパケットの識別に使用されるので、優先度を3つのクラスに分けると規定した場合には3エントリでよいとか、特定の端末からのパケットのみを通過させたい場合は、サポートする端末数を16台と規定した場合、P7の送信元IPv4アドレスとP12の送信元IPv6アドレスのエントリは16個でよいとか、特定のプロトコルの通信を遮断したい場合において、サポートするプロトコルが8種類程度であれば、P6のプロトコル番号のエントリは8個でよいとかと言った具合に決定すればよい。
図3は、本実施の形態1におけるフィルタ装置において使用するフィルタ規則テーブル25の一例を示した図である。
フィルタ規則は、個別パラメータのパラメータ種別(P1〜P15)と、当該個別パラメータテーブルのエントリを指し示すコード(C*、*は数字)をセットで記憶することで記憶容量を削減している。
すなわち、図11に示す従来のものでは、全てのパラメータ毎に4ビットの領域を確保しているが、本実施の形態1において使用するフィルタ規則テーブル25では、図3に示すように、それぞれ設定に必要な1つのヘッダパラメータ当たり、パラメータ種別を示す4ビットとコードを示す4ビットの8ビットを確保すればよいようにしている。
例えば、15種類のヘッダパラメータが設定可能であって、このうちフィルタ規則を構成するのに4つのパラメータしか必要としないとすると、従来の場合には、1つのエントリ当たり、4ビット×15=60ビット必要であるのに対して、本実施の形態1では、8ビット×4=32ビットあればよいことになる。つまり、限られたメモリ容量でより多くのエントリを確保することができる。
なお、フィルタ規則テーブル25の各エントリに示されたACTIONは、各エントリに一致した信号の振る舞いを指定したものである。
本実施の形態1のフィルタ装置の後段に、ルーティング回路や優先制御回路を設けることにより、一般的なフィルタ装置の振る舞いである廃棄、転送の指示の他に、出力先のポートを指定して転送したり、出力順序を優先付けして複数のパケットバッファに対しどのバッファに格納すればよいかなどを指示したりして転送することができる。
図4は、本実施の形態1におけるフィルタ装置の動作を概念的に説明する図である。
図4(a)に示すように、入力パケットがそのヘッダにEthernet(登録商標)ヘッダとIPv4ヘッダとTCPヘッダとを含む場合において、個別パラメータテーブル13−1、13−2、〜13−nとして図2に示す15種類のヘッダパラメータがあって、図4(b)に示すように、宛先MACアドレス(P1)、送信元MACアドレス(P2)、Etherタイプ(P3)、TOSフィールド(P4)、Flagmentフィールド(P5)、プロトコル番号(P6)、送信元IPv4アドレス(P7)、宛先IPv4アドレス(P8)、送信元ポート番号(P14)、宛先ポート番号(P15)がそれぞれ検索対象とする。
そこで、入力パケットを個別情報抽出部11−1、11−2、〜11−nで抽出した個別パラメータについて、個別パラメータテーブル13−1、13−2、〜13−nを検索し、一致比較部12−1、12−2、〜12−nで比較し、判定結果出力部14−1、14−2、〜14−nで判定した結果をコードで出力し、図4(c)に示すように、入力情報集合レジスタ21に記憶する。
次に、テーブル情報展開部24を用いて、図4(e)に示すフィルタ規則テーブル25から、図4(d)に示すように、フィルタ規則レジスタ23−1、23−2、〜23−nに、それぞれ一つのエントリの情報を展開する。
フィルタ規則レジスタ23−1、23−2、〜23−nには、入力情報集合レジスタ21と一致比較可能なように15種類のパラメータのコードを記憶できる領域が確保されているが、実際に設定に必要なパラメータはP1、P6、P8、P14の4種類であるので、図4(e)に示すフィルタ規則テーブル25のエントリ0には、4種類の情報しか記憶されていない。
入力情報集合レジスタ21に記憶された情報とフィルタ規則レジスタ23−1、23−2、〜23−nに記憶された情報とを比較し、一致しなければ、次のエントリの情報をフィルタ規則レジスタ23−1、23−2、〜23−nに記憶する。最終エントリまで一致比較を繰り返し、一致したエントリがあれば一致信号を出力する。
図5はこのような本実施の形態1におけるフィルタ装置の動作を示すフロー図であり、本実施の形態の動作を図5を用いて説明する。
本実施の形態1におけるフィルタ装置では、図5に示すように、パケットを受信すると(S501)、まず、個別情報抽出部11−1、11−2、〜11−nは、受信したパケットのプロトコルを解析し、ヘッダパラメータとして個別パラメータテーブル13−1、13−2、〜13−nの検索対象となっているパラメータがあるかどうかを判定し、検索対象となっているパラメータがあれば、それぞれそれらのパラメータの情報を抽出し、次に一致比較部12−1、12−2、〜12−nは、個別情報抽出部11−1、11−2、〜11−nが抽出したパラメータの情報を基に、個別パラメータテーブル13−1、13−2、〜13−nを検索する(S502)。
個別パラメータテーブル13−1、13−2、〜13−nを検索し、一致比較部12−1、12−2、〜12−nにおいて一致情報が得られれば、それを基に判定結果出力部14−1、14−2、〜14−nよりそれぞれ所定の検索結果出力を出力し、それらを入力情報集合レジスタ21のそれぞれの所定の位置に格納する(S503)。
そして、個別情報抽出部11−1、11−2、〜11−nは、受信したパケットに、さらに検索対象となるパラメータが存在するかどうかを判定し(S504)、検索対象となるパラメータが存在した場合(S504のYES)には、再びステップS502に戻り、個別パラメータテーブル13−1、13−2、〜13−nの検索、および検索結果の入力情報集合レジスタ21への記憶を繰り返す。
S504で、検索対象となるパラメータが存在しなくなった場合(S504のNO)には、フィルタ規則テーブル25のエントリ情報をフィルタ規則レジスタ23−1、23−2、〜23−nの所定位置に格納する(S505)。
フィルタ規則テーブル25のエントリ情報がフィルタ規則レジスタ23−1、23−2、〜23−nの所定位置に格納されると(S505)、格納されたエントリ情報と入力情報集合レジスタ21に記憶された情報とが互いに一致するかどうかを一致比較部22−1、22−2、〜22−nで比較する(S506)。
一致比較部22−1、22−2、〜22−nでの比較施の結果、一致したエントリがある場合(S507のYES)には、一致比較部22−1、22−2、〜22−nよりそれぞれ一致信号を出力し、一致信号出力部26より所定の一致信号を出力し(S509)、その状態で検索を終了する(S510)。
一致比較部22−1、22−2、〜22−nでの比較施の結果、一致しなかった場合(S507のNO)には、比較した対象が最終のエントリであったかどうかを判断し(S508)、最終のエントリであった場合(S508のYES)には、その状態で検索を終了し(S510)、最終のエントリでなかった場合(S508のNO)には、S505に戻って、フィルタ規則テーブル25の次のエントリ情報をフィルタ規則レジスタ23−1、〜23−nに格納し、以降、同様の動作を繰り返す。
このように、本実施の形態1によれば、個別パラメータ判定部1−1、1−2、〜1−nを複数設け、これらの個別パラメータ判定部1−1、1−2、〜1−nに設けた個別情報抽出部11−1、11−2、〜11−nにおいて、それぞれ個別パラメータを抽出し、それらの個別パラメータの情報をそれぞれ個別パラメータテーブル13−1、13−2、〜13−nに記憶された情報と一致するかどうかを比較し、その結果を判定結果出力部14−1、14−2、〜14−nを介して入力情報集合レジスタ21に記憶するようにしており、この過程において、それぞれ個別パラメータを個別パラメータ毎に一致比較しており、個別パラメータの情報が予め記憶されたエントリ情報と一致するかどうかを比較的早く判断することができる。
そして、入力情報集合レジスタ21に記憶された情報は、次にフィルタ規則判定部2を構成する一致比較部22−1、22−2、〜22−nによって、フィルタ規則レジスタ23−1、23−2、〜23−nに記憶されたエントリ情報と一致するかどうか判断されるのであるが、この場合、フィルタ規則レジスタ23−1、23−2、〜23−nに記憶された情報は、フィルタ規則テーブル25に記憶された各パラメータの種別とパラメータの内容の対の情報を基にテーブル情報展開部24によって入力情報集合レジスタ21に記憶された情報と比較可能な状態に展開されたものであり、入力情報集合レジスタ21に記憶された情報と容易に比較することができる。
すなわち、フィルタ規則テーブル25に記憶された情報は、元々、各パラメータの種別とそのパラメータの内容を対にした情報であり、内容のない無効の情報を含んでいないため、情報量としては従来に比しその分少なくて済み、フィルタ規則テーブル25の記録容量を有効に活用することができる。
なお、本実施の形態1において、一致信号出力部26より出力される一致信号をもとに、入力される情報を全て廃棄するか、通過させるかを決定するように構成すれば、一致するものだけを通過させ、それ以外のものを全て廃棄するフィルタ装置などを容易に構成することができる。
そして、このようにして構成したフィルタ装置は、センタ局などと有線、無線で通信可能なネットワークの端末装置や、センタ局や端末機あるいは中間局同士で通信可能な中継装置に使用することができ、また、このようなフィルタ装置は、半導体集積回路として容易に構成することができる。
また、本実施の形態1におけるフィルタ装置は、入力されたパケット情報の識別を目的としたクラシファイア回路に使用することも可能であり、この場合には、一致信号出力部26からの出力を基に、そのパケットに所望の処理を施すことも可能である。
また、読み出し頻度の異なる複数のパケットバッファを出力先として指定できる回路に用いる場合には、一致信号出力部26からの出力を基に、それらの回路の優先制御を実施することも可能である。
(実施の形態2)
次に、本発明の実施の形態2におけるフィルタ装置について説明する。
次に、本発明の実施の形態2におけるフィルタ装置について説明する。
本実施の形態2において、全体のブロック図、個別パラメータテーブルの構成、全体の動作は、それぞれ実施の形態1と同様、図1、図2、図5に示す通りであり、これらの説明を省略し、実施の形態1と異なる点にのみ説明する。
本実施の形態2では、フィルタ規則テーブル25のエントリ構造を、実施の形態1と若干異ならせている。
図6は、本実施の形態2で使用するフィルタ規則テーブル25のエントリ構造を示している。本実施の形態2では、図6に示すように、設定に必要なパラメータに対して、パラメータが有効であるという情報と当該有効な個別パラメータのエントリを指し示すコードとをセットにして記憶し、設定に不要なパラメータに対しては、パラメータが無効であるという情報と無効なパラメータが連続していくつ並ぶかと言う情報とをセットにして記憶するようにしている。そして、フィルタ規則テーブル25に記憶された情報を、テーブル情報展開部24を用いて入力情報集合レジスタ21に記憶された情報と一致判定可能な情報に展開し、フィルタ規則レジスタ23−1、23−2、〜23−nのそれぞれ所定の位置に記憶するようにしている。
例えば、図6において、パラメータが有効であるという情報を“1”、無効であるという情報を“0”で示すと、フィルタ規則テーブルのエントリ0は、最初の“1”で、先頭のパラメータ1(P1)は有効で、次の“C1”で、この有効な個別パラメータのエントリを指し示すコードであるパラメータ値が“C1”であることを意味し、次の“0”と“4”で、パラメータ2(P2)からパラメータ5(P5)までは、連続して4つのパラメータが無効であることを意味している。したがって、さらに、パラメータ6(P6)は、有効でパラメータ値が“C0“、パラメータ7(P7)は無効、パラメータ8(P8)は有効でパラメータ値が”C0“、パラメータ9(P9)からパラメータ13(P13)までは、連続して5つのパラメータが無効、パラメータ14(P14)は有効でパラメータ値が”C1“、パラメータ15(P15)は無効であることを示している。
このように、本実施の形態2によれば、パラメータが有効であるかどうかという情報とパラメータ値がいくつであるかという情報とをセットで記憶し、パラメータが無効である場合には、無効であるという情報と無効であるパラメータがいくつ連続するかと言う数の情報とをセットにして記憶するようにしており、パラメータが連続して無効であるという場合に、その情報量を極力少なくすることができ、その分、全体の情報量を少なくすることが可能である。
すなわち、仮に、15種類のヘッダパラメータが設定可能であって、このうちフィルタ規則を構成するのに4つのパラメータしか必要としない場合、従来のフィルタ規則テーブルのエントリ0では、4ビット×15=60ビット必要であるのに対し、本実施の形態2で使用するフィルタ規則テーブルのエントリ0では、5ビット×8=40ビットあればよいことになり、限られたメモリ容量でより多くのエントリを確保することができることになる。
(実施の形態3)
次に、本発明の実施の形態3におけるフィルタ装置について説明する。
次に、本発明の実施の形態3におけるフィルタ装置について説明する。
本実施の形態3において、全体のブロック図、個別パラメータテーブルの構成、全体の動作は、それぞれ実施の形態1、2と同様、図1、図2、図5に示す通りであり、これらの説明を省略し、実施の形態1、2と異なる点にのみ説明する。
本実施の形態3では、やはり、フィルタ規則テーブル25のエントリ構造を、実施の形態1、2と異ならせている。
図7は、本実施の形態3で使用するフィルタ規則テーブル25のエントリ構造を示している。本実施の形態3では、図7に示すように、フィルタ規則テーブル25の各エントリにおいて、パラメータの有効、無効を示すビットマップを先頭に記憶し、それに続いて有効なパラメータのパラメータ値を記憶している。
そして、この場合も、フィルタ規則テーブル25に記憶された情報を、テーブル情報展開部24を用いて入力情報集合レジスタ21に記憶された情報と一致判定可能な情報に展開し、フィルタ規則レジスタ23−1、23−2、〜23−nのそれぞれ所定の位置に記憶するようにしている。
例えば、パラメータが有効であるという情報を“1”、無効であるという情報を“0”で示し、15種類のヘッダパラメータが設定可能であるとすると、図7に示すように、フィルタ規則テーブル25のエントリ0は、パラメータ1(P1)とパラメータ6(P6)とパラメータ8(P8)とパラメータ14(P14)が有効であるから、有効、無効を示すビットマップは、二進表記で“100001010000010”、16進表記で“0x4282となり、したがって、エントリの先頭に15ビットの領域を確保して、ここに上記表記の内容を格納し、有効なパラメータのパラメータ値C1、C0、C0、C1をそれぞれその後に連続して格納する。
このように、本実施の形態によれば、エントリの先頭に15ビットの領域を確保して、ここにパラメータの有効、無効を示すビットマップを記憶し、その後に有効なパラメータのパラメータ値をそれぞれ連続して記憶しているため、この場合も無効なパラメータを記憶するのに多くの領域を必要とせず、それだけメモリを有効に活用することができる。
すなわち、例えば、15種類のヘッダパラメータが設定可能であって、このうちフィルタ規則を構成するのに4つのパラメータしか必要としない場合でも、従来のフィルタ規則テーブルのエントリ0では、4ビット×15=60ビット必要であるのに対して、本実施の形態3では、フィルタ規則テーブルのエントリ0に、15ビット+4ビット×4=31ビットあればよいことになり、それだけ少ない容量で必要な情報のエントリを確保することができることになる。
(実施の形態4)
次に、本発明の実施の形態4におけるフィルタ装置について説明する。
次に、本発明の実施の形態4におけるフィルタ装置について説明する。
図8は、本発明の実施の形態4におけるフィルタ装置の構成を示すブロック図である。
本実施の形態4におけるフィルタ装置では、図8に示すように、実施の形態1で示した個別パラメータ判定部1−1、1−2、〜1−nを有せず、フィルタ規則判定部8のみを有している。
本実施の形態4におけるフィルタ規則判定部8は、入力パケットのヘッダパラメータを記憶する入力情報集合レジスタ81と、フィルタ規則を格納するための複数のエントリを有するフィルタ規則テーブル85と、フィルタ規則テーブル85のエントリの順番を制御するエントリ制御手段87と、フィルタ規則テーブル85に格納されたエントリの情報を入力情報集合レジスタ81と比較可能な状態に展開するテーブル情報展開手段84と、フィルタ規則の一つのエントリの情報を格納したフィルタ規則レジスタ83−1、83−2、〜83−nと、入力情報集合レジスタ81の情報とフィルタ規則レジスタ83−1、83−2、〜83−nの情報とを比較し、一致するかどうかを判定する一致比較部82−1、82−2、〜82−nと、入力情報集合レジスタ81の情報とフィルタ規則レジスタ83−1、83−2、〜83−nの情報が一致したとき、一致信号を出力する一致信号出力部86とを備えている。
次に、本実施の形態におけるフィルタ装置について、その動作を説明する。
図9は、本実施の形態4におけるフィルタ装置の動作を示すフロー図である。
図9に示すように、入力情報集合レジスタ81がパケットを受信すると(S901)、全体の処理が開始され、先ず、入力情報集合レジスタ81は入力パケットのヘッダパラメータを抽出し、入力情報集合レジスタ81に格納する(S902)。
入力パケットのヘッダパラメータが入力情報集合レジスタ81にそれぞれ格納されると、次に、フィルタ規則テーブル85のエントリ情報がテーブル情報展開部84によって入力情報集合レジスタ81に格納された情報と比較可能な情報に展開され、フィルタ規則レジスタ83−1、83−2、〜83−nの所定の位置にそれぞれ格納される(S903)。そして、フィルタ規則テーブル85のエントリ情報がフィルタ規則レジスタ83−1、83−2、〜83−nに格納されると、一致比較部82−1、82−2、〜82−nで、入力情報集合レジスタ81の情報がフィルタ規則レジスタ83−1、83−2、〜83−nの情報と比較され、両者が一致するかどうかの一致判定を実施する(S904)。
一致判定の結果、一致した情報がある場合(S905のYES)は、一致信号出力部86を介して一致信号を出力し(S906)、その状態で検索を終了する(S907)。
一致判定の結果、一致した情報がない場合(S905のNO)は、そのフィルタ規則テーブル85のエントリが最終のエントリかどうかを判定し(S908)、最終エントリではない場合(S908のNO)は、再び、ステップS903に戻り、フィルタ規則テーブル85の次のエントリの情報をフィルタ規則レジスタ83−1、〜83−nの所定の位置に記憶し、入力情報集合レジスタ81の情報と一致比較する(S904)。そして、S908での判定結果が最終のエントリの場合は、その状態で検索を終了する(S907)。
このように、本実施の形態4では、これまでの実施の形態のような個別パラメータ判定部を有しないが、フィルタ規則テーブル85に記憶された情報を、テーブル情報展開部84を用いて、入力情報集合レジスタ81に記憶された情報と比較可能な情報に展開し、その状態で、フィルタ規則レジスタ83−1、83−2、〜83−nに記憶し、入力情報集合レジスタ81に記憶された情報をフィルタ規則レジスタ83−1、83−2、〜83−nに記憶された情報と比較するようにしており、フィルタ規則テーブル85には、上記展開前の情報、すなわち、実施の形態1と同じように、パラメータの種類とそのパラメータの値とを対にして記憶しておいたり、実施の形態2と同じように、パラメータの有効、無効の情報と無効のパラメータは連続していくつ続くかと言う情報を記憶しておいたり、実施の形態3と同じように、パラメータの有効、無効の情報をビットマップで先に記憶しておき、その後に有効なパラメータの値を順次記憶しておいたり、要するに、それぞれのパラメータの情報を圧縮、あるいは、短縮された状態で記憶しておくことができ、フィルタ規則テーブル85のメモリ容量を実施の形態1、2、3と同じように有効に活用することができる。
そして、本実施の形態4では、個別パラメータ判定部を有しないため、入力パケットのヘッダパラメータにおいて、その種類が多い場合には、それらを判別し比較するのに時間を要するが、種類が少ない場合には、その時間をほとんど問題にせず、処理することができるという効果を有する。
本発明のパケットフィルタ装置は、入力パケットから比較対象となるパラメータを抽出し記憶する入力情報集合レジスタと、エントリ毎にパラメータを短縮化して記憶したフィルタ規則テーブルと、フィルタ規則テーブルに記憶されたパラメータを入力情報集合レジスタに記憶されたパラメータと比較可能な情報に展開するテーブル情報展開手段と、テーブル情報展開手段によって展開された情報を記憶するフィルタ規則レジスタと、入力情報集合レジスタに記憶されたパラメータとフィルタ規則レジスタに記憶された情報とを互いに比較し、一致するかどうかを判定する一致判定手段とを備えたものであり、設定に不要なパラメータをフィルタ規則テーブルから除外することができ、フィルタ規則テーブルを有効に活用することができるようになる。したがって、本発明によれば、ハードウェア量を抑制したい端末装置向けのフィルタ装置として有用であり、また、半導体集積回路装置に内蔵する場合でも、ハードウェア量が少ないことから、コストを抑えた半導体集積回路装置を容易に得られ、製造面でも有用である。
1 個別パラメータ判定部
2、8 フィルタ規則判定部
11−1〜11−n 個別情報抽出部
12−1〜12−n、22−1〜22−n、82−1〜82−n 一致比較部
13−1〜13−n 個別パラメータテーブル
14−1〜14−n 判定結果出力部
21、81 入力情報集合レジスタ
23−1〜23−n、83−1〜83−n フィルタ規則レジスタ
24、84 テーブル情報展開部
25、85 フィルタ規則テーブル
26、86 一致信号出力部
27、87 エントリ制御部
2、8 フィルタ規則判定部
11−1〜11−n 個別情報抽出部
12−1〜12−n、22−1〜22−n、82−1〜82−n 一致比較部
13−1〜13−n 個別パラメータテーブル
14−1〜14−n 判定結果出力部
21、81 入力情報集合レジスタ
23−1〜23−n、83−1〜83−n フィルタ規則レジスタ
24、84 テーブル情報展開部
25、85 フィルタ規則テーブル
26、86 一致信号出力部
27、87 エントリ制御部
Claims (12)
- 入力パケットから比較対象となるパラメータを抽出し記憶する入力情報集合レジスタと、エントリ毎にパラメータを短縮化して記憶したフィルタ規則テーブルと、前記フィルタ規則テーブルに記憶されたパラメータを前記入力情報集合レジスタに記憶されたパラメータと比較可能な情報に展開するテーブル情報展開手段と、前記テーブル情報展開手段によって展開された情報を記憶するフィルタ規則レジスタと、前記入力情報集合レジスタに記憶されたパラメータと前記フィルタ規則レジスタに記憶された情報とを互いに比較し、一致するかどうかを判定する一致判定手段とを備えたパケットフィルタ装置。
- 前記フィルタ規則テーブルに記憶された情報が、有効な前記パラメータの種別と前記パラメータのパラメータ値とが対になって構成されていることを特徴とする請求項1記載のパケットフィルタ装置。
- 前記フィルタ規則テーブルに記憶された情報が、前記パラメータの有効を示す情報と前記パラメータのパラメータ値との対、および、前記パラメータの無効を示す情報と前記無効なパラメータの連続する数の情報との対とで構成されていることを特徴とする請求項1記載のパケットフィルタ装置。
- 前記フィルタ規則テーブルに記憶された情報が、前記パラメータの有効または無効を示すビット列と前記有効なパラメータのパラメータ値とで構成されていることを特徴とする請求項1記載のパケットフィルタ装置。
- 前記フィルタ規則レジスタと前記一致判定手段とをそれぞれ複数備え、複数の前記エントリに対し、前記一致判定手段が同時に判定することを特徴とする請求項1記載のパケットフィルタ装置。
- 前記フィルタ規則テーブルのエントリ番号とエントリ長とメモリ上のアドレスとをそれぞれ管理するメモリ管理手段を更に備え、前記フィルタ規則テーブルのエントリ順を制御可能にしたことを特徴とする請求項1記載のパケットフィルタ装置。
- 複数の個別パラメータ判定手段を更に備え、それぞれの前記個別パラメータ判定手段が、前記入力パケットからそれぞれの前記個別パラメータ判定手段に対応する前記個別パラメータの情報を抽出する個別情報抽出手段と、予め定めた前記個別パラメータの情報を記憶した個別パラメータテーブルと、前記個別情報抽出手段で抽出された前記個別パラメータの情報が前記個別パラメータテーブルに記憶された前記個別パラメータの情報と一致するかどうかを判定する一致比較手段と、前記一致比較手段の出力に基づいて予め定めた判定結果出力を前記入力情報集合レジスタに出力する判定結果出力手段とを備えることを特徴とする請求項1記載のパケットフィルタ装置。
- 前記判定結果出力手段がコードを出力し、前記コードを前記入力情報集合レジスタに記憶すると共に、前記フィルタ規則テーブルに記憶された情報もコードであることを特徴とする請求項7記載のパケットフィルタ装置。
- 請求項1〜8のいずれか1項に記載されたパケットフィルタ装置を備えたネットワーク端末装置。
- 請求項1〜8のいずれか1項に記載されたパケットフィルタ装置を備えたネットワーク中継装置。
- 請求項1〜8のいずれか1項に記載されたパケットフィルタ装置を搭載した半導体集積回路装置。
- 入力パケットを受信するステップと、前記受信した入力パケットからヘッダパラメータを抽出し、入力情報集合レジスタに記憶するステップと、フィルタ規則テーブルに記憶された短縮化された情報を前記入力情報集合レジスタに記憶された情報と比較可能な情報に展開するステップと、前記展開された情報をフィルタ規則レジスタに記憶するステップと、前記入力情報集合レジスタに記憶された情報を前記フィルタ規則レジスタに記憶された情報と比較し、一致するかどうかを判定するステップと、前記判定するステップで一致したとき一致信号を出力するステップとを備えたパケットフィルタ方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005061984A JP2006246302A (ja) | 2005-03-07 | 2005-03-07 | パケットフィルタ装置、およびそれを用いた装置、並びに、パケットフィルタ方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005061984A JP2006246302A (ja) | 2005-03-07 | 2005-03-07 | パケットフィルタ装置、およびそれを用いた装置、並びに、パケットフィルタ方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006246302A true JP2006246302A (ja) | 2006-09-14 |
Family
ID=37052204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005061984A Pending JP2006246302A (ja) | 2005-03-07 | 2005-03-07 | パケットフィルタ装置、およびそれを用いた装置、並びに、パケットフィルタ方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006246302A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4861539B1 (ja) * | 2010-06-02 | 2012-01-25 | パナソニック株式会社 | 通信制御装置およびパケットフィルタリング方法 |
-
2005
- 2005-03-07 JP JP2005061984A patent/JP2006246302A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4861539B1 (ja) * | 2010-06-02 | 2012-01-25 | パナソニック株式会社 | 通信制御装置およびパケットフィルタリング方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7237058B2 (en) | Input data selection for content addressable memory | |
EP2100406B1 (en) | Method and apparatus for implementing multicast routing | |
JP3489573B2 (ja) | パケット処理装置 | |
US7933268B1 (en) | IP multicast forwarding in MAC bridges | |
US7869411B2 (en) | Compact packet operation device and method | |
JP4547349B2 (ja) | ネットワーク型ルーティング機構 | |
US11729300B2 (en) | Generating programmatically defined fields of metadata for network packets | |
US7440460B2 (en) | Apparatus and method for forwarding mixed data packet types in a high-speed router | |
US7881324B2 (en) | Steering data communications packets for transparent bump-in-the-wire processing among multiple data processing applications | |
JP2002314571A (ja) | スイッチングノードのための分類およびタグ付け規則 | |
WO2016107122A1 (zh) | RapidIO报文和以太网报文之间的转换方法和设备 | |
US20060072565A1 (en) | Frame switching device | |
US10757230B2 (en) | Efficient parsing of extended packet headers | |
US7373412B2 (en) | Apparatus for selecting and sorting packets from a packet data transmission network | |
EP2958284A2 (en) | A method of forming a hash input from packet contents and an apparatus thereof | |
US8050262B2 (en) | System and method for parsing frames | |
EP1777889B1 (en) | Method of processing information packets and telecommunication apparatus using the same | |
CN101099347A (zh) | 可掩码内容可寻址存储器 | |
US7145911B2 (en) | Method and system for parallel hash transformation for an address input | |
JP5050978B2 (ja) | 伝送情報転送装置及び方法 | |
US7564841B2 (en) | Apparatus and method for performing forwarding table searches using consecutive symbols tables | |
US7352748B1 (en) | Updating of routing data in a network element | |
JP2006246302A (ja) | パケットフィルタ装置、およびそれを用いた装置、並びに、パケットフィルタ方法 | |
EP3942751B1 (en) | Method and system for processing network traffic using expanded labels | |
JP4879728B2 (ja) | 検索装置およびデータ処理装置 |