(57)【要約】【課題】多数のフィルタルールを設定した場合でもパケット転送性能の低下を抑えるパケットフィルタシステムを得る。【解決手段】パケットフィルタシステム１は、直列に接続された複数のパケットフィルタ装置１０を有し、各パケットフィルタ装置１０は、パケットを入力し、入力したパケットを解析して、パケットの通過許否の判定を自装置で行うべきか否かを判断し、自装置で通過許否の判定を行わない場合はパケットを出力し、自装置で通過許否の判定を行う場合は、パケットを通過させるか廃棄するかを判定し、パケットを通過させる場合はパケットを出力し、複数のパケットフィルタ装置１０のうちのいずれかのパケットフィルタ装置１０において、ネットワークから入力されたパケットに対する通過許否の判定が行われる。【選択図】図１
2011172126.tif 000002
【特許請求の範囲】
【請求項１】
直列に接続された複数のパケットフィルタ装置を有し、
各パケットフィルタ装置は、
直列接続において入力元となるパケットフィルタ装置又はネットワークからパケットを入力し、入力した入力パケットを解析して、入力パケットの通過許否の判定を自装置で行うべきか否かを判断し、自装置で通過許否の判定を行わない場合は直列接続において出力先となるパケットフィルタ装置又はネットワークに入力パケットを出力し、自装置で通過許否の判定を行う場合は、入力パケットを通過させるか廃棄するかを判定し、入力パケットを通過させる場合は直列接続において出力先となるパケットフィルタ装置又はネットワークに入力パケットを出力し、
前記複数のパケットフィルタ装置のうちのいずれかのパケットフィルタ装置において、ネットワークから入力されたパケットに対する通過許否の判定が行われることを特徴とするパケットフィルタシステム。
【請求項２】
各パケットフィルタ装置は、
入力元となるパケットフィルタ装置又はネットワークからパケットを入力する入力インタフェース部と、
自装置で通過許否の判定を行うパケットを選別するための選別基準が示される処理要否選択ルール情報を記憶する処理要否選択ルール情報記憶部と、
前記処理要否選択ルール情報に基づいて入力パケットを解析し、自装置で通過許否の判定を行うべき入力パケットを処理対象パケットとして選別する処理要否選択部と、
通過許否の判定を行うための通過許否判定基準が示されるフィルタルール情報を記憶するフィルタルール情報記憶部と、
前記フィルタルール情報に基づいて処理対象パケットを解析し、処理対象パケットを通過させるか廃棄するかを判定するフィルタ部と、
前記フィルタ部により通過と判定された処理対象パケット及び前記処理要否選択部により処理対象パケットとして選別されなかった入力パケットを出力先となるパケットフィルタ装置又はネットワークに出力する出力インタフェース部とを有することを特徴とする請求項１に記載のパケットフィルタシステム。
【請求項３】
各パケットフィルタ装置において、
前記処理要否選択ルール情報記憶部は、
所定の通信アドレスの集合から前記複数のパケットフィルタ装置の台数に基づいて区画された通信アドレスの範囲が示される処理要否選択ルール情報を記憶し、
前記処理要否選択部は、
入力パケットの通信アドレスと前記処理要否選択ルール情報に示される通信アドレスの範囲とを比較し、入力パケットの通信アドレスが前記処理要否選択ルール情報に示される通信アドレスの範囲内であれば当該入力パケットを処理対象パケットとして選別することを特徴とする請求項２に記載のパケットフィルタシステム。
【請求項４】
各パケットフィルタ装置において、
前記処理要否選択ルール情報記憶部は、
特定の値が示される処理要否選択ルール情報を記憶し、
前記処理要否選択部は、
入力パケットの通信アドレスに対して特定の一方向演算を行い、得られた演算値が前記処理要否選択ルール情報に示される前記特定の値に一致すれば当該入力パケットを処理対象パケットとして選別することを特徴とする請求項２に記載のパケットフィルタシステム。
【請求項５】
前記パケットフィルタシステムは、更に、
複数の一方向演算関数の中から、所定の通信アドレスの集合を前記複数のパケットフィルタ装置に最も均等に分散させることができる一方向演算関数を選択し、選択した一方向演算関数を用いて前記通信アドレスの集合に含まれている通信アドレスを前記複数のパケットフィルタ装置に分散させて各パケットフィルタ装置のフィルタルール情報及び処理要否選択ルール情報を生成する管理装置を有することを特徴とする請求項４に記載のパケットフィルタシステム。
【請求項６】
前記パケットフィルタシステムは、更に、
前記複数のパケットフィルタ装置の稼働前に各パケットフィルタ装置のフィルタルール情報を生成し、各パケットフィルタ装置にフィルタルール情報を設定するとともに、前記複数のパケットフィルタ装置の稼働中に、いずれかのパケットフィルタ装置に設定されているフィルタルール情報を変更する管理装置を有することを特徴とする請求項２〜５のいずれかに記載のパケットフィルタシステム。
【請求項７】
前記管理装置は、
前記複数のパケットフィルタ装置の稼働前に各パケットフィルタ装置の処理要否選択ルール情報を生成し、各パケットフィルタ装置の処理要否選択ルール情報に合わせて各パケットフィルタ装置のフィルタルール情報を生成することを特徴とする請求項６に記載のパケットフィルタシステム。
【請求項８】
複数のパケットフィルタ装置が直列に接続され、前記複数のパケットフィルタ装置のうちのいずれかのパケットフィルタ装置において、ネットワークから入力されたパケットに対する通過許否の判定が行われるパケットフィルタシステム
に含まれるパケットフィルタ装置であって、
直列接続において入力元となるパケットフィルタ装置又はネットワークからパケットを入力し、入力した入力パケットを解析して、入力パケットの通過許否の判定を自装置で行うべきか否かを判断し、自装置で通過許否の判定を行わない場合は直列接続において出力先となるパケットフィルタ装置又はネットワークに入力パケットを出力し、自装置で通過許否の判定を行う場合は、入力パケットを通過させるか廃棄するかを判定し、入力パケットを通過させる場合は直列接続において出力先となるパケットフィルタ装置又はネットワークに入力パケットを出力することを特徴とするパケットフィルタ装置。
【請求項９】
前記パケットフィルタ装置は、
入力元となるパケットフィルタ装置又はネットワークからパケットを入力する入力インタフェース部と、
自装置で通過許否の判定を行うパケットを選別するための選別基準が示される処理要否選択ルール情報を記憶する処理要否選択ルール情報記憶部と、
前記処理要否選択ルール情報に基づいて入力パケットを解析し、自装置で通過許否の判定を行うべき入力パケットを処理対象パケットとして選別する処理要否選択部と、
通過許否の判定を行うための通過許否判定基準が示されるフィルタルール情報を記憶するフィルタルール情報記憶部と、
前記フィルタルール情報に基づいて処理対象パケットを解析し、処理対象パケットを通過させるか廃棄するかを判定するフィルタ部と、
前記フィルタ部により通過と判定された処理対象パケット及び前記処理要否選択部により処理対象パケットとして選別されなかった入力パケットを出力先となるパケットフィルタ装置又はネットワークに出力する出力インタフェース部とを有することを特徴とする請求項８に記載のパケットフィルタ装置。
【請求項１０】
前記処理要否選択ルール情報記憶部は、
所定の通信アドレスの集合から前記複数のパケットフィルタ装置の台数に基づいて区画された通信アドレスの範囲が示される処理要否選択ルール情報を記憶し、
前記処理要否選択部は、
入力パケットの通信アドレスと前記処理要否選択ルール情報に示される通信アドレスの範囲とを比較し、入力パケットの通信アドレスが前記処理要否選択ルール情報に示される通信アドレスの範囲内であれば当該入力パケットを処理対象パケットとして選別することを特徴とする請求項９に記載のパケットフィルタ装置。
【請求項１１】
前記処理要否選択ルール情報記憶部は、
特定の値が示される処理要否選択ルール情報を記憶し、
前記処理要否選択部は、
入力パケットの通信アドレスに対して特定の一方向演算を行い、得られた演算値が前記処理要否選択ルール情報に示される前記特定の値に一致すれば当該入力パケットを処理対象パケットとして選別することを特徴とする請求項９に記載のパケットフィルタ装置。
【請求項１２】
複数のパケットフィルタ装置が直列に接続され、前記複数のパケットフィルタ装置のうちのいずれかのパケットフィルタ装置において、ネットワークから入力されたパケットに対する通過許否の判定が行われるパケットフィルタシステム
に含まれるパケットフィルタ装置に、
直列接続において入力元となるパケットフィルタ装置又はネットワークからパケットを入力する入力ステップと、
自装置で通過許否の判定を行うパケットを選別するための選別基準が示される処理要否選択ルール情報を所定の記憶領域から読み込む処理要否選択ルール情報読み込みステップと、
前記処理要否選択ルール情報に基づいて入力パケットを解析し、自装置で通過許否の判定を行うべき入力パケットを処理対象パケットとして選別する処理要否選択ステップと、
通過許否の判定を行うための通過許否判定基準が示されるフィルタルール情報を所定の記憶領域から読み込むフィルタルール情報読み込みステップと、
前記フィルタルール情報に基づいて処理対象パケットを解析し、処理対象パケットを通過させるか廃棄するかを判定するフィルタステップと、
前記フィルタステップにより通過と判定された処理対象パケット及び前記処理要否選択ステップにより処理対象パケットとして選別されなかった入力パケットを直列接続において出力先となるパケットフィルタ装置又はネットワークに出力する出力ステップとを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、ネットワークの中継装置において、通過させるべきパケットと廃棄すべきパケットとを選別するパケットフィルタ技術に関する。
【背景技術】
【０００２】
パケットフィルタ装置は、自身を通過しようとするパケットと、あらかじめ設定されたフィルタルールとを比較し、そのパケットを転送するか廃棄するかを選択する装置である。ネットワークの境界に設置し、ネットワーク間の通信を制限するために用いることが多い。
【０００３】
図２に一般的なパケットフィルタ装置１０００の構成を示す。
パケットフィルタ装置１０００は、フィルタルール情報記憶部１０１０とフィルタ部１０２０から構成され、入力と出力の２つのネットワークインタフェースを持つ。
フィルタルール情報記憶部１０１０は、フィルタルール情報（以下、単にフィルタルールという）を保持する部位で、フィルタルールには、パケットの送信元・送信先ＩＰアドレスやポート番号、プロトコルなどの条件が記載されている。
フィルタ部１０２０は、入力インタフェースから入ってきたパケットの内容と、フィルタルール情報記憶部１０１０から取り出したフィルタルールとの比較を行い、パケットの内容がフィルタルールと合致する場合にパケットの転送または廃棄を行う。どちらの動作を行うかはフィルタルールに依存する。
転送の場合、パケットを出力インタフェースへと送出し、廃棄の場合はパケットを消去する。
【０００４】
パケットフィルタ装置１０００の基本的な動作を説明する。
パケットフィルタ装置１０００によるフィルタリングの方法には、フィルタルールに合致するパケットのみ転送する「デフォルト拒否」と、フィルタルールに合致しないパケットのみ転送する「デフォルト許可」の２種類がある。
ここでは、「デフォルト拒否」の場合について説明する。
【０００５】
パケットフィルタ装置１０００に到達したパケットは、フィルタ部１０２０へ入力される。
フィルタ部１０２０は、フィルタルール情報記憶部１０１０からフィルタルールを読み込み、到達したパケットの内容との比較を行う。
パケットの内容がフィルタルールに合致する場合はパケットを転送し、合致しない場合はパケットを廃棄する。
「デフォルト拒否」の場合、フィルタルールには、転送するべきパケットの送信元ＩＰアドレスやポート番号が記述されている。
【０００６】
フィルタルール情報記憶部１０１０には複数のフィルタルールを登録することができる。
この場合、フィルタ部１０２０は、登録されているすべてのフィルタルールに対して順に比較を行い、いずれかのフィルタルールに合致する場合、パケットの転送を許可する。
このため、フィルタルール情報記憶部１０１０に登録されているフィルタルール数に応じて、比較処理にかかる時間が長くなる。
【０００７】
パケットフィルタ装置１０００のフィルタルール検索処理の高速化を目的とする技術として、特許文献１では、ハードウェア処理によるハードフィルタを用いる方法が開示されている。
ハードフィルタには、比較処理を高速に実行することができるが、複雑なフィルタルールに対応するためには回路規模が大きくなるという課題がある。
特許文献１の方法では、この課題に対して、１つのフィルタルールを分割して比較することで、複雑な条件のフィルタルールでも小さな回路規模で検索を行うことができるとしている。
【０００８】
特許文献２では、複数のフィルタルールが設定されている場合の検索処理高速化の方法として、１度処理を実行したパケットの内容をキャッシュテーブルに登録し、次に到達したパケットからはキャッシュテーブルを優先的に比較するという方法が開示されている。
キャッシュテーブルで検索が合致する場合、フィルタルールを順に検索するよりも速く検索が終了するため、同じフィルタルールに合致するパケットが連続して到達した場合、２つ目以降のパケットのフィルタルール検索処理が高速化される。
【０００９】
また、パケットフィルタ装置に特定していないが、ネットワーク装置の負荷を低減する技術として、特許文献３では、ネットワーク装置を直列に接続して負荷を分散させる方法が開示されている。
特許文献３の方法は、複数のネットワーク機器を直列に接続し、装置の処理負荷が高いときは他の装置へパケットを転送し、処理を分散させることで１台あたりの処理負荷を低減させる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００１−１６８９１１号公報
【特許文献２】特開２０００−２６１７８７号公報
【特許文献３】特表２００９−５０４０２２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
特許文献１の方式は、単一のフィルタルールに対しては高速な処理が可能だが、複数のフィルタルールを設定する場合、フィルタルール数分の回路が必要となり、フィルタルール数に比例して回路規模が増大してしまうため、多数のフィルタルールを設定することは現実的でない。
特許文献２の方式は、同一パケットが連続して到達するような環境では高速化の効果があるが、様々な種類のパケットがランダムに到達するような環境では、キャッシュテーブルにヒットする確率が低下し、あまり効果がない。
特許文献３の方式は、単純にパケットフィルタ装置に適用した場合、パケットフィルタ装置１台あたりの処理速度は変わらない。パケットフィルタ装置では、フィルタルール数が増大すると、パケット転送性能が極端に低下するため、フィルタルール数が同じパケットフィルタ装置を直列に接続しても、フィルタルール数が多い場合には効果的でない。
このように、従来の方法では、多数のフィルタルールを設定する場合に高いパケット転送性能を確保できないという課題がある。
【００１２】
本発明は、上記に鑑みてなされたものであって、多数のフィルタルールを設定した場合でもパケット転送性能の低下を抑えるパケットフィルタ技術を得ることを主な目的とする。
【課題を解決するための手段】
【００１３】
本発明に係るパケットフィルタシステムは、
直列に接続された複数のパケットフィルタ装置を有し、
各パケットフィルタ装置は、
直列接続において入力元となるパケットフィルタ装置又はネットワークからパケットを入力し、入力した入力パケットを解析して、入力パケットの通過許否の判定を自装置で行うべきか否かを判断し、自装置で通過許否の判定を行わない場合は直列接続において出力先となるパケットフィルタ装置又はネットワークに入力パケットを出力し、自装置で通過許否の判定を行う場合は、入力パケットを通過させるか廃棄するかを判定し、入力パケットを通過させる場合は直列接続において出力先となるパケットフィルタ装置又はネットワークに入力パケットを出力し、
前記複数のパケットフィルタ装置のうちのいずれかのパケットフィルタ装置において、ネットワークから入力されたパケットに対する通過許否の判定が行われることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、パケットフィルタ処理を複数のパケットフィルタ装置へ分散させ、１台あたりの処理件数を減らすことができるため、多数のフィルタルール情報を設定するような場合においても、高いパケット転送性能を確保したパケットフィルタを実現することができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１に係るパケットフィルタシステムの構成例を示す図。
【図２】従来のパケットフィルタ装置の構成例を示す図。
【図３】実施の形態１に係るパケットフィルタ装置の構成例を示す図。
【図４】実施の形態１に係る管理装置の構成例を示す図。
【図５】実施の形態１に係るパケットフィルタ装置の動作例を示すフローチャート図。
【図６】実施の形態１に係る処理要否選択ルールの例を示す図。
【図７】実施の形態１に係る処理要否選択部の動作例を示すフローチャート図。
【図８】実施の形態２に係る処理要否選択ルールの例を示す図。
【図９】実施の形態２に係る処理要否選択部の動作例を示すフローチャート図。
【図１０】実施の形態１及び２に係るパケットフィルタ装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【００１６】
実施の形態１．
本実施の形態では、直列に接続した複数のパケットフィルタ装置を用いてフィルタリングを実施する方法を説明する。
まず、構成について説明する。
【００１７】
図１は、本実施の形態に係るパケットフィルタシステム１の構成例を示す。
本実施の形態に係るパケットフィルタシステム１では、複数のパケットフィルタ装置１０を直列に接続する。
直列に接続した複数のパケットフィルタ装置１０が全体で１つのパケットフィルタ装置のように振舞う。
パケットフィルタシステム１では、入力と出力の２つのネットワークインタフェースを持ち、入力インタフェースから入力されたパケットに対してフィルタ処理を実行し、出力インタフェースからパケットを出力する。
また、パケットフィルタシステム１には、管理装置１１が含まれる。
管理装置１１は、各パケットフィルタ装置１０に対して設定を実行する装置である。
管理装置１１は設定時のみ必要で、運用時に常時接続されている必要はない。
各パケットフィルタ装置１０間および管理装置１１は例えばイーサネット（登録商標）で接続されている。
【００１８】
図３は、本実施の形態に係るパケットフィルタ装置１０の構成例を示す。
【００１９】
パケットフィルタ装置１０は、パケット入力インタフェース１０７（入力インタフェース部）とパケット出力インタフェース１０８（出力インタフェース部）と管理入力インタフェース１０９の３つのネットワークインタフェースを持つ。
パケット入力インタフェース１０７は、入力元となるパケットフィルタ装置１０（自装置の前段にあるパケットフィルタ装置１０）又はネットワークからパケットの入力を受け付け、また、パケット出力インタフェース１０８は、出力先となるパケットフィルタ装置１０（自装置の後段にあるパケットフィルタ装置１０）又はネットワークにパケットを転送する。
管理入力インタフェース１０９は、フィルタルール更新の指示を受け付ける。
【００２０】
フィルタルール情報記憶部１０１とフィルタ部１０２は従来のパケットフィルタ装置１０００と同様である。
つまり、フィルタルール情報記憶部１０１には、パケットの通過許否の判定を行うための通過許否判定基準が示されるフィルタルール情報を記憶する。
また、フィルタ部１０２は、フィルタルール情報に基づいて処理対象パケットを解析し、処理対象パケットを通過させるか廃棄するかを判定する。
【００２１】
処理要否選択ルール情報記憶部１０３は、処理要否選択部１０４で処理要否の選択を行うための処理要否選択ルール情報（以下、単に処理要否選択ルールともいう）を記憶している。
つまり、自装置で通過許否の判定を行うパケットを選別するための選別基準が示される処理要否選択ルール情報を記憶している。
【００２２】
処理要否選択部１０４は、入力されるパケットに対して、自装置でフィルタ処理が必要かどうかを判断する。
より具体的には、処理要否選択部１０４は、処理要否選択ルール情報に基づいて入力パケットを解析し、自装置で通過許否の判定を行うべき入力パケットを処理対象パケットとして選別する。
【００２３】
フィルタルール更新部１０５はフィルタルール情報記憶部１０１に登録されているフィルタルールを更新する。
【００２４】
なお、本実施の形態で説明するパケットフィルタシステム１は、入力されるパケットの送信元ＩＰアドレスを条件にフィルタリングを行い、フィルタルールは「デフォルト拒否」であるとする。
すなわち、転送可能として許可する複数のＩＰアドレスをフィルタルールとして設定し、フィルタルール中に存在するＩＰアドレスを送信元ＩＰアドレスとして持つパケットのみを転送し、その他のパケットは廃棄する。
【００２５】
図４は、本実施の形態に係る管理装置１１の構成例を示す。
【００２６】
本実施の形態の管理装置１１は、パケットフィルタシステム１全体のフィルタルールを登録するフィルタルール情報記憶部１０１と、パケットフィルタシステム１を構成する各パケットフィルタ装置１０へフィルタルールを設定するフィルタルール設定部１０６から構成される。
また、管理装置１１は、パケットフィルタ装置１０へフィルタルールを設定するための管理出力インタフェース１１０を持つ。
【００２７】
次に、動作について説明する。
【００２８】
まず、パケットフィルタシステム１の管理者が、管理装置１１へパケットフィルタシステム１全体のフィルタルールを設定する。
フィルタルールは管理装置１１のフィルタルール情報記憶部１０１へ登録される。
管理装置１１のフィルタルール設定部１０６は、原則として、パケットフィルタシステム１の運用前（各パケットフィルタ装置１０の稼働前）に、後述する方法に従い、通信アドレスを分散させて各パケットフィルタ装置１０のフィルタルールを生成し、また、フィルタルールに合わせた処理要否選択ルールを生成し、各パケットフィルタ装置１０にフィルタルール及び処理要否選択ルールを設定する。
パケットフィルタ装置１０のフィルタルール更新部１０５は、管理装置１１からのフィルタルールを受け取ると、パケットフィルタ装置１０のフィルタルール情報記憶部１０１を更新する。
なお、パケットフィルタシステム１の運用中（各パケットフィルタ装置１０の稼働中）に、管理装置１１から動的にフィルタルールを追加または削除してもよい。
この場合に、フィルタルールの変更に伴い処理要否選択ルールの変更が必要であれば、管理装置１１は、処理要否選択ルールもフィルタルールの変更に合わせて変更し、対象となるパケットフィルタ装置１０に変更後の処理要否選択ルールを設定する。
【００２９】
フィルタリングの対象となるパケットは、まずパケットフィルタシステム１の入力インタフェースへ到達する。
パケットフィルタシステム１の入力インタフェースは、初段の装置であるパケットフィルタ装置１０−Ａのパケット入力インタフェース１０７となっており、パケットはパケットフィルタ装置１０−Ａのパケット入力インタフェース１０７に到達する。
パケットフィルタ装置１０−Ａでは、処理要否選択部１０４が、自身に登録されている処理要否選択ルール１２とフィルタルールに従いパケットを選別し、転送するか廃棄するかを決定する。
転送する場合、パケットはパケットフィルタ装置１０−Ａのパケット出力インタフェース１０８から送出され、後段の装置であるパケットフィルタ装置１０−Ｂへと転送される。
以下、パケットフィルタ装置１０−Ｂ、１０−Ｃ、１０−Ｄも同様に選別を行い、最終的にすべてのパケットフィルタ装置１０で転送された場合、すなわち、パケットフィルタ装置１０−Ｄのパケット出力インタフェース１０８からパケットが送出された場合、パケットはパケットフィルタシステム１のパケット出力インタフェース１０８から送出される。
途中いずれかのパケットフィルタ装置１０でパケットが廃棄と判断された場合、パケットはその段階で廃棄される。
以上が、本実施の形態におけるパケットフィルタシステム１の動作である。
【００３０】
次に、各パケットフィルタ装置１０内部の動作を、図５を用いて説明する。
どのパケットフィルタ装置１０も処理内容は同じである。
【００３１】
パケットフィルタ装置１０に到達したパケットは、パケット入力インタフェース１０７に入力され（ステップＳ１０）（入力ステップ）、処理要否選択部１０４に渡される。
処理要否選択部１０４は、処理要否選択ルール情報記憶部１０３から処理要否選択ルールを読み込む（ステップＳ１１）（処理要否選択ルール情報読み込みステップ）。
処理要否選択部１０４は、入力したパケットの内容が、処理要否選択ルールに合致するか否かを判断し（ステップＳ１２）（処理要否選択ステップ）、入力したパケットの内容が、処理要否選択ルールに合致する場合（ステップＳ１２でＹＥＳ）は、処理要否選択部１０４は、パケットをフィルタ部１０２へ渡す。
合致しない場合は転送と判断する。
【００３２】
次に、フィルタ部１０２では、従来のパケットフィルタ装置１０と同様の動作を実行する。
フィルタ部１０２は、まず、フィルタルール情報記憶部１０１からフィルタルールを読み込む（ステップＳ１３）（フィルタルール情報読み込みステップ）。
次に、読み込んだフィルタルールと入力されたパケット（処理対象パケット）の内容とを比較し、パケットの内容がフィルタルールに合致するかどうか検査する（ステップＳ１４）（フィルタステップ）。
フィルタルールに合致する場合（ステップＳ１４でＹＥＳ）は、フィルタ部１０２は、パケット転送と判定し、合致しない場合（ステップＳ１４でＮＯ）は、パケット廃棄と判定する。
【００３３】
ステップＳ１２またはステップＳ１４で転送と判断されたパケットは、パケットフィルタ装置１０のパケット出力インタフェース１０８から送出される（ステップＳ１５）。
ステップＳ１４で廃棄と判断されたパケットは削除される（ステップＳ１６）。
このように、パケット出力インタフェース１０８から送出されるパケットは、フィルタ部１０２により通過（転送）と判定された処理対象パケット及び処理要否選択部１０４により処理対象パケットとして選別されなかった入力パケットである。
以上が、本実施の形態におけるパケットフィルタ装置１０内部の動作である。
なお、図５では、パケットの入力があった後に、処理要否選択ルール及びフィルタルールを読み込むことにしているが、パケット入力前に予め両ルールを読み込んでいてもよい。
【００３４】
次に、本実施の形態における処理要否選択ルールについて説明する。
【００３５】
本実施の形態で用いる処理要否選択ルールは、入力されるパケットの送信元ＩＰアドレス範囲である。
管理装置１１において、フィルタルール設定部１０６が、パケットフィルタシステム１を構成する全パケットフィルタ装置１０で、全ＩＰアドレス範囲を網羅するように各パケットフィルタ装置１０にＩＰアドレス範囲を設定する。
具体的には、フィルタルール設定部１０６は、全ＩＰアドレス範囲（通信アドレスの集合）を、パケットフィルタシステム１を構成するパケットフィルタ装置１０の台数で分割（区画）する。
本実施の形態では、４台のパケットフィルタ装置１０を用いているので、全ＩＰアドレス範囲を４分割する。
ＩＰｖ４の場合、全ＩＰアドレス範囲は０．０．０．０〜２５５．２５５．２５５．２５５であるので、たとえば、図６に示すとおり、パケットフィルタ装置１０−Ａでは０．０．０．０〜６３．２５５．２５５．２５５、パケットフィルタ装置１０−Ｂでは６４．０．０．０〜１２７．２５５．２５５．２５５、パケットフィルタ装置１０−Ｃでは１２８．０．０．０〜１９１．２５５．２５５．２５５、パケットフィルタ装置１０−Ｄでは１９２．０．０．０〜２５５．２５５．２５５．２５５というようにＩＰアドレス範囲を分割し、それぞれを処理要否選択ルール１２とする。
【００３６】
本実施の形態における、処理要否選択部１０４の動作について、図７を用いて説明する。
【００３７】
処理要否選択部１０４は、ステップＳ１０１において、入力されたパケットの送信元ＩＰアドレスを取得する。
次に、処理要否選択部１０４は、取得した送信元ＩＰアドレスが、処理要否選択ルール情報記憶部１０３に登録されている処理要否選択ルール１２に合致するかどうかを調べる。
具体的には、処理要否選択ルール１２に設定されているＩＰアドレスの範囲内にパケットの送信元ＩＰアドレスが含まれているかどうかを調べる（ステップＳ１０２）。
パケットの送信元ＩＰアドレスが、処理要否選択ルール１２に設定されているＩＰアドレスの範囲内にある場合、処理要否選択部１０４は、当該パケットに対してフィルタ処理が必要と判断し（ステップＳ１０３）、範囲内にない場合はフィルタ処理が不要と判断する（ステップＳ１０４）。
以上が、本実施の形態における処理要否選択部１０４の動作である。
【００３８】
次に、本実施の形態におけるフィルタルールについて説明する。
フィルタルールは、管理装置１１によってパケットフィルタシステム１を構成する各パケットフィルタ装置１０に設定される。
各パケットフィルタ装置１０に設定するフィルタルールは、各パケットフィルタ装置１０の処理要否選択ルール情報記憶部１０３に登録されている処理要否選択ルール１２に応じて決定する。
たとえば、「送信元ＩＰアドレス：１０．１．２．３」というフィルタルールは、ＩＰアドレスが０．０．０．０〜６３．２５５．２５５．２５５の範囲内であるため、パケットフィルタ装置１０−Ａに設定する。
また、「送信元ＩＰアドレス：２１０．１．２．３」というフィルタルールは、ＩＰアドレスが１９２．０．０．０〜２５５．２５５．２５５．２５５の範囲内であるため、パケットフィルタ装置１０−Ｄに設定する。
このように、ＩＰアドレス範囲によってフィルタルールを設定するパケットフィルタ装置１０を分けることにより、パケットフィルタ装置１０一台あたりに設定されるフィルタルール数を削減し、すべてのフィルタルールを検索する場合と比較してフィルタルール検索にかかる時間を短縮する。
【００３９】
また、フィルタルールが「デフォルト拒否」の場合、単純にフィルタルールを分散させると、問題が発生するが、本実施の形態の方式を用いることでこの問題を回避できる。
たとえば、パケットフィルタ装置１０−Ａ〜１０−Ｄに単純にフィルタルールを分散させた場合を考える。
ここで、パケットフィルタ装置１０−Ｄに設定されているフィルタルールと合致するパケットＸがパケットフィルタ装置１０−Ａに到達したとすると、パケットフィルタ装置１０−ＡにはパケットＸに合致するフィルタルールが存在しないため、パケットＸはパケットフィルタ装置１０−Ａで廃棄されてしまい、期待する動作とは異なる動作になる。
しかし、本実施の形態の方式では、各パケットフィルタ装置１０が、自装置で処理するパケットのＩＰアドレス範囲を限定しているため、パケットフィルタ装置１０−Ａ，１０−Ｂ，１０−ＣはパケットＸをそのまま転送し、パケットフィルタ装置１０−Ｄでフィルタルールと合致し、正しく転送と判断される。
【００４０】
以上説明した通り、本実施の形態の方法によれば、フィルタルールを複数のパケットフィルタ装置１０へ分散させ、１台あたりのフィルタルール数を減らすことができるため、多数のフィルタルールを設定するような場合においても、高いパケット転送性能を確保したパケットフィルタを実現することができる。
【００４１】
なお、上記説明では、全ＩＰアドレス範囲を均等に分割したものを処理要否選択ルール１２として各パケットフィルタ装置１０へ設定するとしたが、フィルタルールの全ＩＰアドレス範囲中の分布を考慮して、ＩＰアドレス範囲を不均等に分割したものを処理要否選択ルール１２として設定してもよい。
こうすることにより、各パケットフィルタ装置１０間でフィルタルール数が均等になるように設定することが可能になる。
【００４２】
また、上記説明では、ＩＰアドレスとしてＩＰｖ４アドレスを用いたが、ＩＰｖ６アドレスを用いる場合も同様の方法でフィルタルールを構成することが可能である。
【００４３】
以上、本実施の形態では、複数のパケットフィルタ装置を備えたパケットフィルタ方法であって、上記パケットフィルタ装置を直列に多段接続することを説明した。
【００４４】
また、本実施の形態では、直列に多段接続された複数のパケットフィルタ装置と、上記パケットフィルタ装置のすべてと接続され、上記複数のパケットフィルタ装置を管理する管理装置とを備えたパケットフィルタ方法であって、上記管理装置を用いて上記複数のパケットフィルタ装置へフィルタルールを分散して設定することを説明した。
【００４５】
また、本実施の形態では、上記管理装置は、フィルタルールに記述されている送信元ＩＰアドレスの範囲によって当該フィルタルールを設定する上記パケットフィルタ装置を決定し、上記パケットフィルタ装置は、入力パケットの送信元ＩＰアドレス範囲によってフィルタ処理の実行要否を判断し、処理が必要と判断した場合のみフィルタ処理を実行し、処理が不要と判断した場合は入力パケットをそのまま出力することを説明した。
【００４６】
また、本実施の形態では、上記管理装置は、上記パケットフィルタ装置の動作中に動的にフィルタルールを追加または削除することを説明した。
【００４７】
実施の形態２．
本実施の形態では、直列に接続した複数のパケットフィルタ装置１０を用いてフィルタリングを実施する方法の、実施の形態１とは異なる方法を説明する。
【００４８】
まず、構成について説明する。
パケットフィルタシステム１としての構成およびパケットフィルタ装置１０および管理装置１１の内部構成は上記実施の形態１と同じであり、ここでは説明を省略する。
パケットフィルタシステム１としての動作およびパケットフィルタ装置１０の内部動作は上記実施の形態１と同じであり、ここでは説明を省略する。
上記実施の形態１と異なるのは、処理要否選択ルール情報記憶部１０３に登録されている処理要否選択ルール１２と、処理要否選択部１０４の動作である。
【００４９】
本実施の形態における処理要否選択ルール１２は、パケットの送信元ＩＰアドレスのハッシュ値である。たとえば、ハッシュ関数を「後ろ８ビットを４で割った余り」とすると、ＩＰアドレスを４種類（０，１，２，３）のハッシュ値に分類することができる。
このそれぞれのハッシュ値を処理要否選択ルール１２として各パケットフィルタ装置１０に設定する。
たとえば、パケットフィルタ装置１０−Ａにハッシュ値０を設定したとすると、パケットフィルタ装置１０−Ａにおける処理要否選択ルールは「パケットの送信元ＩＰアドレスのハッシュ値が０である」となる（図８）。
【００５０】
本実施の形態の処理要否選択部１０４の動作を、図９を用いて説明する。
【００５１】
処理要否選択部１０４は、ステップＳ２０１において、入力されたパケットの送信元ＩＰアドレスのハッシュ値を計算する（一方向演算を行う）。
処理要否選択部１０４は、得られたハッシュ値が処理要否選択ルール情報記憶部１０３に登録されている処理要否選択ルール１２で設定されたハッシュ値と一致するかどうか調べる。
ハッシュ値が一致した場合、処理要否選択部１０４は、当該パケットに対してフィルタ処理が必要と判断し（ステップＳ１０３）、一致しない場合はフィルタ処理が不要と判断する（ステップＳ１０４）。
以上が、本実施の形態の処理要否選択部１０４の動作である。
【００５２】
次に、本実施の形態のフィルタルールについて説明する。
フィルタルールは、実施の形態１と同様、管理装置１１によってパケットフィルタシステム１を構成する各パケットフィルタ装置１０に設定される。
どのフィルタルールをどのパケットフィルタ装置１０に設定するかは、上記のハッシュ値を用いて決定する。
フィルタルールの送信元ＩＰアドレスのハッシュ値を計算し、得られたハッシュ値が設定されているパケットフィルタ装置１０へそのフィルタルールを設定する。
たとえば、ハッシュ関数を「後ろ８ビットを４で割った余り」として、図８に示すような処理要否選択ルール１２を設定したとき、「送信元ＩＰアドレス：１０．１．２．４」というフィルタルールは、ハッシュ値０であるため、パケットフィルタ装置１０−Ａに設定する。
各パケットフィルタ装置１０でハッシュ値を計算するために使うハッシュ関数は、管理装置１１から各パケットフィルタ装置１０へ設定する。
この際、管理装置１１にあらかじめ候補となるハッシュ関数を複数登録しておき、全フィルタルールのハッシュ値を計算した結果を考慮して、フィルタルール数が各パケットフィルタ装置１０間で最も均等になるようなハッシュ関数を選定するようにしてもよい。
そして、管理装置１１は、選定したハッシュ関数（一方向演算関数）を用いてフィルタルールの対象となるＩＰアドレスを複数のパケットフィルタ装置１０に分散させて各パケットフィルタ装置１０のフィルタルール及び処理要否選択ルールを生成する。
【００５３】
以上説明した通り、本実施の形態の方法によれば、フィルタルールを複数のパケットフィルタ装置１０へ分散させ、１台あたりのフィルタルール数を減らすことができるため、多数のフィルタルールを設定するような場合においても、高いパケット転送性能を確保したパケットフィルタを実現することができる。
処理要否選択ルール１２としてハッシュ値を用いることで、実施の形態１のようにパケットの送信元ＩＰアドレスの範囲を比較するよりも高速に処理要否の判定を行うことができる可能性がある。
【００５４】
以上、本実施の形態では、管理装置は、フィルタルールに記述されている送信元ＩＰアドレスのハッシュ値によって当該フィルタルールを設定するパケットフィルタ装置を決定し、上記パケットフィルタ装置は、入力パケットの送信元ＩＰアドレスのハッシュ値によってフィルタ処理の実行要否を判断し、処理が必要と判断した場合のみフィルタ処理を実行し、処理が不要と判断した場合は入力パケットをそのまま出力することを説明した。
【００５５】
また、本実施の形態では、上記管理装置は、あらかじめ設定された複数のハッシュ関数の中から、フィルタルールが最も均等に上記複数のパケットフィルタ装置へ分散するようなハッシュ関数を選択することを説明した。
【００５６】
最後に、実施の形態１及び２に示したパケットフィルタ装置１０及び管理装置１１のハードウェア構成例について説明する。
図１０は、実施の形態１及び２に示すパケットフィルタ装置１０及び管理装置１１のハードウェア資源の一例を示す図である。
なお、図１０の構成は、あくまでもパケットフィルタ装置１０及び管理装置１１のハードウェア構成の一例を示すものであり、パケットフィルタ装置１０及び管理装置１１のハードウェア構成は図１０に記載の構成に限らず、他の構成であってもよい。
【００５７】
図１０において、パケットフィルタ装置１０及び管理装置１１は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。
ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。
更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）と接続していてもよい。また、磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード（登録商標）読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
実施の形態１及び２で説明したフィルタルール情報記憶部１０１及び処理要否選択ルール情報記憶部１０３は、例えば、磁気ディスク装置９２０により実現される。
通信ボード９１５、キーボード９０２、マウス９０３、ＦＤＤ９０４などは、入力部、入力装置の一例である。
また、通信ボード９１５、表示装置９０１などは、出力装置の一例である。
【００５８】
通信ボード９１５は、パケット入力インタフェース１０７、パケット出力インタフェース１０８、管理入力インタフェース１０９、管理出力インタフェースを構成する。
通信ボード９１５は、例えば、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）、ＳＡＮ（ストレージエリアネットワーク）などに接続されていても構わない。
【００５９】
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、プログラム群９２３、ファイル群９２４が記憶されている。
プログラム群９２３のプログラムは、ＣＰＵ９１１がオペレーティングシステム９２１を利用しながら実行する。
【００６０】
また、ＲＡＭ９１４には、ＣＰＵ９１１に実行させるオペレーティングシステム９２１のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、ＲＡＭ９１４には、ＣＰＵ９１１による処理に必要な各種データが格納される。
【００６１】
また、ＲＯＭ９１３には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラムが格納され、磁気ディスク装置９２０にはブートプログラムが格納されている。
パケットフィルタ装置１０及び管理装置１１の起動時には、ＲＯＭ９１３のＢＩＯＳプログラム及び磁気ディスク装置９２０のブートプログラムが実行され、ＢＩＯＳプログラム及びブートプログラムによりオペレーティングシステム９２１が起動される。
【００６２】
上記プログラム群９２３には、実施の形態１及び２の説明において「〜部」（「フィルタルール情報記憶部１０１」及び「処理要否選択ルール情報記憶部１０３」以外、以下同様）として説明している機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
【００６３】
ファイル群９２４には、実施の形態１及び２の説明において、「〜の判断」、「〜の計算」、「〜の比較」、「〜の評価」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・表示などのＣＰＵの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１及び２で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００６４】
また、実施の形態１及び２の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、実施の形態１及び２で説明したフローチャートに示すステップ、手順、処理により、パケットフィルタ方法を実現することができる。
また、「〜部」として説明しているものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、実施の形態１及び２の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態１及び２の「〜部」の手順や方法をコンピュータに実行させるものである。
【００６５】
このように、実施の形態１及び２に示すパケットフィルタ装置１０及び管理装置１１は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【００６６】
１  パケットフィルタシステム、１０  パケットフィルタ装置、１１  管理装置、１０１  フィルタルール情報記憶部、１０２  フィルタ部、１０３  処理要否選択ルール情報記憶部、１０４  処理要否選択部、１０５  フィルタルール更新部、１０６  フィルタルール設定部、１０７  パケット入力インタフェース、１０８  パケット出力インタフェース、１０９  管理入力インタフェース、１１０  管理出力インタフェース、１０００  パケットフィルタ装置、１０１０  フィルタルール情報記憶部、１０２０  フィルタ部。
【図１】
2011172126.tif 000003
【図２】
2011172126.tif 000004
【図３】
2011172126.tif 000005
【図４】
2011172126.tif 000006
【図５】
2011172126.tif 000007
【図６】
2011172126.tif 000008
【図７】
2011172126.tif 000009
【図８】
2011172126.tif 000010
【図９】
2011172126.tif 000011
【図１０】
2011172126.tif 000012