説明

パケットフィルタシステム及びパケットフィルタ装置及びプログラム

【課題】多数のフィルタルールを設定した場合でもパケット転送性能の低下を抑えるパケットフィルタシステムを得る。
【解決手段】パケットフィルタシステム1は、直列に接続された複数のパケットフィルタ装置10を有し、各パケットフィルタ装置10は、パケットを入力し、入力したパケットを解析して、パケットの通過許否の判定を自装置で行うべきか否かを判断し、自装置で通過許否の判定を行わない場合はパケットを出力し、自装置で通過許否の判定を行う場合は、パケットを通過させるか廃棄するかを判定し、パケットを通過させる場合はパケットを出力し、複数のパケットフィルタ装置10のうちのいずれかのパケットフィルタ装置10において、ネットワークから入力されたパケットに対する通過許否の判定が行われる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、ネットワークの中継装置において、通過させるべきパケットと廃棄すべきパケットとを選別するパケットフィルタ技術に関する。
【背景技術】
【0002】
パケットフィルタ装置は、自身を通過しようとするパケットと、あらかじめ設定されたフィルタルールとを比較し、そのパケットを転送するか廃棄するかを選択する装置である。ネットワークの境界に設置し、ネットワーク間の通信を制限するために用いることが多い。
【0003】
図2に一般的なパケットフィルタ装置1000の構成を示す。
パケットフィルタ装置1000は、フィルタルール情報記憶部1010とフィルタ部1020から構成され、入力と出力の2つのネットワークインタフェースを持つ。
フィルタルール情報記憶部1010は、フィルタルール情報(以下、単にフィルタルールという)を保持する部位で、フィルタルールには、パケットの送信元・送信先IPアドレスやポート番号、プロトコルなどの条件が記載されている。
フィルタ部1020は、入力インタフェースから入ってきたパケットの内容と、フィルタルール情報記憶部1010から取り出したフィルタルールとの比較を行い、パケットの内容がフィルタルールと合致する場合にパケットの転送または廃棄を行う。どちらの動作を行うかはフィルタルールに依存する。
転送の場合、パケットを出力インタフェースへと送出し、廃棄の場合はパケットを消去する。
【0004】
パケットフィルタ装置1000の基本的な動作を説明する。
パケットフィルタ装置1000によるフィルタリングの方法には、フィルタルールに合致するパケットのみ転送する「デフォルト拒否」と、フィルタルールに合致しないパケットのみ転送する「デフォルト許可」の2種類がある。
ここでは、「デフォルト拒否」の場合について説明する。
【0005】
パケットフィルタ装置1000に到達したパケットは、フィルタ部1020へ入力される。
フィルタ部1020は、フィルタルール情報記憶部1010からフィルタルールを読み込み、到達したパケットの内容との比較を行う。
パケットの内容がフィルタルールに合致する場合はパケットを転送し、合致しない場合はパケットを廃棄する。
「デフォルト拒否」の場合、フィルタルールには、転送するべきパケットの送信元IPアドレスやポート番号が記述されている。
【0006】
フィルタルール情報記憶部1010には複数のフィルタルールを登録することができる。
この場合、フィルタ部1020は、登録されているすべてのフィルタルールに対して順に比較を行い、いずれかのフィルタルールに合致する場合、パケットの転送を許可する。
このため、フィルタルール情報記憶部1010に登録されているフィルタルール数に応じて、比較処理にかかる時間が長くなる。
【0007】
パケットフィルタ装置1000のフィルタルール検索処理の高速化を目的とする技術として、特許文献1では、ハードウェア処理によるハードフィルタを用いる方法が開示されている。
ハードフィルタには、比較処理を高速に実行することができるが、複雑なフィルタルールに対応するためには回路規模が大きくなるという課題がある。
特許文献1の方法では、この課題に対して、1つのフィルタルールを分割して比較することで、複雑な条件のフィルタルールでも小さな回路規模で検索を行うことができるとしている。
【0008】
特許文献2では、複数のフィルタルールが設定されている場合の検索処理高速化の方法として、1度処理を実行したパケットの内容をキャッシュテーブルに登録し、次に到達したパケットからはキャッシュテーブルを優先的に比較するという方法が開示されている。
キャッシュテーブルで検索が合致する場合、フィルタルールを順に検索するよりも速く検索が終了するため、同じフィルタルールに合致するパケットが連続して到達した場合、2つ目以降のパケットのフィルタルール検索処理が高速化される。
【0009】
また、パケットフィルタ装置に特定していないが、ネットワーク装置の負荷を低減する技術として、特許文献3では、ネットワーク装置を直列に接続して負荷を分散させる方法が開示されている。
特許文献3の方法は、複数のネットワーク機器を直列に接続し、装置の処理負荷が高いときは他の装置へパケットを転送し、処理を分散させることで1台あたりの処理負荷を低減させる。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2001−168911号公報
【特許文献2】特開2000−261787号公報
【特許文献3】特表2009−504022号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
特許文献1の方式は、単一のフィルタルールに対しては高速な処理が可能だが、複数のフィルタルールを設定する場合、フィルタルール数分の回路が必要となり、フィルタルール数に比例して回路規模が増大してしまうため、多数のフィルタルールを設定することは現実的でない。
特許文献2の方式は、同一パケットが連続して到達するような環境では高速化の効果があるが、様々な種類のパケットがランダムに到達するような環境では、キャッシュテーブルにヒットする確率が低下し、あまり効果がない。
特許文献3の方式は、単純にパケットフィルタ装置に適用した場合、パケットフィルタ装置1台あたりの処理速度は変わらない。パケットフィルタ装置では、フィルタルール数が増大すると、パケット転送性能が極端に低下するため、フィルタルール数が同じパケットフィルタ装置を直列に接続しても、フィルタルール数が多い場合には効果的でない。
このように、従来の方法では、多数のフィルタルールを設定する場合に高いパケット転送性能を確保できないという課題がある。
【0012】
本発明は、上記に鑑みてなされたものであって、多数のフィルタルールを設定した場合でもパケット転送性能の低下を抑えるパケットフィルタ技術を得ることを主な目的とする。
【課題を解決するための手段】
【0013】
本発明に係るパケットフィルタシステムは、
直列に接続された複数のパケットフィルタ装置を有し、
各パケットフィルタ装置は、
直列接続において入力元となるパケットフィルタ装置又はネットワークからパケットを入力し、入力した入力パケットを解析して、入力パケットの通過許否の判定を自装置で行うべきか否かを判断し、自装置で通過許否の判定を行わない場合は直列接続において出力先となるパケットフィルタ装置又はネットワークに入力パケットを出力し、自装置で通過許否の判定を行う場合は、入力パケットを通過させるか廃棄するかを判定し、入力パケットを通過させる場合は直列接続において出力先となるパケットフィルタ装置又はネットワークに入力パケットを出力し、
前記複数のパケットフィルタ装置のうちのいずれかのパケットフィルタ装置において、ネットワークから入力されたパケットに対する通過許否の判定が行われることを特徴とする。
【発明の効果】
【0014】
本発明によれば、パケットフィルタ処理を複数のパケットフィルタ装置へ分散させ、1台あたりの処理件数を減らすことができるため、多数のフィルタルール情報を設定するような場合においても、高いパケット転送性能を確保したパケットフィルタを実現することができる。
【図面の簡単な説明】
【0015】
【図1】実施の形態1に係るパケットフィルタシステムの構成例を示す図。
【図2】従来のパケットフィルタ装置の構成例を示す図。
【図3】実施の形態1に係るパケットフィルタ装置の構成例を示す図。
【図4】実施の形態1に係る管理装置の構成例を示す図。
【図5】実施の形態1に係るパケットフィルタ装置の動作例を示すフローチャート図。
【図6】実施の形態1に係る処理要否選択ルールの例を示す図。
【図7】実施の形態1に係る処理要否選択部の動作例を示すフローチャート図。
【図8】実施の形態2に係る処理要否選択ルールの例を示す図。
【図9】実施の形態2に係る処理要否選択部の動作例を示すフローチャート図。
【図10】実施の形態1及び2に係るパケットフィルタ装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【0016】
実施の形態1.
本実施の形態では、直列に接続した複数のパケットフィルタ装置を用いてフィルタリングを実施する方法を説明する。
まず、構成について説明する。
【0017】
図1は、本実施の形態に係るパケットフィルタシステム1の構成例を示す。
本実施の形態に係るパケットフィルタシステム1では、複数のパケットフィルタ装置10を直列に接続する。
直列に接続した複数のパケットフィルタ装置10が全体で1つのパケットフィルタ装置のように振舞う。
パケットフィルタシステム1では、入力と出力の2つのネットワークインタフェースを持ち、入力インタフェースから入力されたパケットに対してフィルタ処理を実行し、出力インタフェースからパケットを出力する。
また、パケットフィルタシステム1には、管理装置11が含まれる。
管理装置11は、各パケットフィルタ装置10に対して設定を実行する装置である。
管理装置11は設定時のみ必要で、運用時に常時接続されている必要はない。
各パケットフィルタ装置10間および管理装置11は例えばイーサネット(登録商標)で接続されている。
【0018】
図3は、本実施の形態に係るパケットフィルタ装置10の構成例を示す。
【0019】
パケットフィルタ装置10は、パケット入力インタフェース107(入力インタフェース部)とパケット出力インタフェース108(出力インタフェース部)と管理入力インタフェース109の3つのネットワークインタフェースを持つ。
パケット入力インタフェース107は、入力元となるパケットフィルタ装置10(自装置の前段にあるパケットフィルタ装置10)又はネットワークからパケットの入力を受け付け、また、パケット出力インタフェース108は、出力先となるパケットフィルタ装置10(自装置の後段にあるパケットフィルタ装置10)又はネットワークにパケットを転送する。
管理入力インタフェース109は、フィルタルール更新の指示を受け付ける。
【0020】
フィルタルール情報記憶部101とフィルタ部102は従来のパケットフィルタ装置1000と同様である。
つまり、フィルタルール情報記憶部101には、パケットの通過許否の判定を行うための通過許否判定基準が示されるフィルタルール情報を記憶する。
また、フィルタ部102は、フィルタルール情報に基づいて処理対象パケットを解析し、処理対象パケットを通過させるか廃棄するかを判定する。
【0021】
処理要否選択ルール情報記憶部103は、処理要否選択部104で処理要否の選択を行うための処理要否選択ルール情報(以下、単に処理要否選択ルールともいう)を記憶している。
つまり、自装置で通過許否の判定を行うパケットを選別するための選別基準が示される処理要否選択ルール情報を記憶している。
【0022】
処理要否選択部104は、入力されるパケットに対して、自装置でフィルタ処理が必要かどうかを判断する。
より具体的には、処理要否選択部104は、処理要否選択ルール情報に基づいて入力パケットを解析し、自装置で通過許否の判定を行うべき入力パケットを処理対象パケットとして選別する。
【0023】
フィルタルール更新部105はフィルタルール情報記憶部101に登録されているフィルタルールを更新する。
【0024】
なお、本実施の形態で説明するパケットフィルタシステム1は、入力されるパケットの送信元IPアドレスを条件にフィルタリングを行い、フィルタルールは「デフォルト拒否」であるとする。
すなわち、転送可能として許可する複数のIPアドレスをフィルタルールとして設定し、フィルタルール中に存在するIPアドレスを送信元IPアドレスとして持つパケットのみを転送し、その他のパケットは廃棄する。
【0025】
図4は、本実施の形態に係る管理装置11の構成例を示す。
【0026】
本実施の形態の管理装置11は、パケットフィルタシステム1全体のフィルタルールを登録するフィルタルール情報記憶部101と、パケットフィルタシステム1を構成する各パケットフィルタ装置10へフィルタルールを設定するフィルタルール設定部106から構成される。
また、管理装置11は、パケットフィルタ装置10へフィルタルールを設定するための管理出力インタフェース110を持つ。
【0027】
次に、動作について説明する。
【0028】
まず、パケットフィルタシステム1の管理者が、管理装置11へパケットフィルタシステム1全体のフィルタルールを設定する。
フィルタルールは管理装置11のフィルタルール情報記憶部101へ登録される。
管理装置11のフィルタルール設定部106は、原則として、パケットフィルタシステム1の運用前(各パケットフィルタ装置10の稼働前)に、後述する方法に従い、通信アドレスを分散させて各パケットフィルタ装置10のフィルタルールを生成し、また、フィルタルールに合わせた処理要否選択ルールを生成し、各パケットフィルタ装置10にフィルタルール及び処理要否選択ルールを設定する。
パケットフィルタ装置10のフィルタルール更新部105は、管理装置11からのフィルタルールを受け取ると、パケットフィルタ装置10のフィルタルール情報記憶部101を更新する。
なお、パケットフィルタシステム1の運用中(各パケットフィルタ装置10の稼働中)に、管理装置11から動的にフィルタルールを追加または削除してもよい。
この場合に、フィルタルールの変更に伴い処理要否選択ルールの変更が必要であれば、管理装置11は、処理要否選択ルールもフィルタルールの変更に合わせて変更し、対象となるパケットフィルタ装置10に変更後の処理要否選択ルールを設定する。
【0029】
フィルタリングの対象となるパケットは、まずパケットフィルタシステム1の入力インタフェースへ到達する。
パケットフィルタシステム1の入力インタフェースは、初段の装置であるパケットフィルタ装置10−Aのパケット入力インタフェース107となっており、パケットはパケットフィルタ装置10−Aのパケット入力インタフェース107に到達する。
パケットフィルタ装置10−Aでは、処理要否選択部104が、自身に登録されている処理要否選択ルール12とフィルタルールに従いパケットを選別し、転送するか廃棄するかを決定する。
転送する場合、パケットはパケットフィルタ装置10−Aのパケット出力インタフェース108から送出され、後段の装置であるパケットフィルタ装置10−Bへと転送される。
以下、パケットフィルタ装置10−B、10−C、10−Dも同様に選別を行い、最終的にすべてのパケットフィルタ装置10で転送された場合、すなわち、パケットフィルタ装置10−Dのパケット出力インタフェース108からパケットが送出された場合、パケットはパケットフィルタシステム1のパケット出力インタフェース108から送出される。
途中いずれかのパケットフィルタ装置10でパケットが廃棄と判断された場合、パケットはその段階で廃棄される。
以上が、本実施の形態におけるパケットフィルタシステム1の動作である。
【0030】
次に、各パケットフィルタ装置10内部の動作を、図5を用いて説明する。
どのパケットフィルタ装置10も処理内容は同じである。
【0031】
パケットフィルタ装置10に到達したパケットは、パケット入力インタフェース107に入力され(ステップS10)(入力ステップ)、処理要否選択部104に渡される。
処理要否選択部104は、処理要否選択ルール情報記憶部103から処理要否選択ルールを読み込む(ステップS11)(処理要否選択ルール情報読み込みステップ)。
処理要否選択部104は、入力したパケットの内容が、処理要否選択ルールに合致するか否かを判断し(ステップS12)(処理要否選択ステップ)、入力したパケットの内容が、処理要否選択ルールに合致する場合(ステップS12でYES)は、処理要否選択部104は、パケットをフィルタ部102へ渡す。
合致しない場合は転送と判断する。
【0032】
次に、フィルタ部102では、従来のパケットフィルタ装置10と同様の動作を実行する。
フィルタ部102は、まず、フィルタルール情報記憶部101からフィルタルールを読み込む(ステップS13)(フィルタルール情報読み込みステップ)。
次に、読み込んだフィルタルールと入力されたパケット(処理対象パケット)の内容とを比較し、パケットの内容がフィルタルールに合致するかどうか検査する(ステップS14)(フィルタステップ)。
フィルタルールに合致する場合(ステップS14でYES)は、フィルタ部102は、パケット転送と判定し、合致しない場合(ステップS14でNO)は、パケット廃棄と判定する。
【0033】
ステップS12またはステップS14で転送と判断されたパケットは、パケットフィルタ装置10のパケット出力インタフェース108から送出される(ステップS15)。
ステップS14で廃棄と判断されたパケットは削除される(ステップS16)。
このように、パケット出力インタフェース108から送出されるパケットは、フィルタ部102により通過(転送)と判定された処理対象パケット及び処理要否選択部104により処理対象パケットとして選別されなかった入力パケットである。
以上が、本実施の形態におけるパケットフィルタ装置10内部の動作である。
なお、図5では、パケットの入力があった後に、処理要否選択ルール及びフィルタルールを読み込むことにしているが、パケット入力前に予め両ルールを読み込んでいてもよい。
【0034】
次に、本実施の形態における処理要否選択ルールについて説明する。
【0035】
本実施の形態で用いる処理要否選択ルールは、入力されるパケットの送信元IPアドレス範囲である。
管理装置11において、フィルタルール設定部106が、パケットフィルタシステム1を構成する全パケットフィルタ装置10で、全IPアドレス範囲を網羅するように各パケットフィルタ装置10にIPアドレス範囲を設定する。
具体的には、フィルタルール設定部106は、全IPアドレス範囲(通信アドレスの集合)を、パケットフィルタシステム1を構成するパケットフィルタ装置10の台数で分割(区画)する。
本実施の形態では、4台のパケットフィルタ装置10を用いているので、全IPアドレス範囲を4分割する。
IPv4の場合、全IPアドレス範囲は0.0.0.0〜255.255.255.255であるので、たとえば、図6に示すとおり、パケットフィルタ装置10−Aでは0.0.0.0〜63.255.255.255、パケットフィルタ装置10−Bでは64.0.0.0〜127.255.255.255、パケットフィルタ装置10−Cでは128.0.0.0〜191.255.255.255、パケットフィルタ装置10−Dでは192.0.0.0〜255.255.255.255というようにIPアドレス範囲を分割し、それぞれを処理要否選択ルール12とする。
【0036】
本実施の形態における、処理要否選択部104の動作について、図7を用いて説明する。
【0037】
処理要否選択部104は、ステップS101において、入力されたパケットの送信元IPアドレスを取得する。
次に、処理要否選択部104は、取得した送信元IPアドレスが、処理要否選択ルール情報記憶部103に登録されている処理要否選択ルール12に合致するかどうかを調べる。
具体的には、処理要否選択ルール12に設定されているIPアドレスの範囲内にパケットの送信元IPアドレスが含まれているかどうかを調べる(ステップS102)。
パケットの送信元IPアドレスが、処理要否選択ルール12に設定されているIPアドレスの範囲内にある場合、処理要否選択部104は、当該パケットに対してフィルタ処理が必要と判断し(ステップS103)、範囲内にない場合はフィルタ処理が不要と判断する(ステップS104)。
以上が、本実施の形態における処理要否選択部104の動作である。
【0038】
次に、本実施の形態におけるフィルタルールについて説明する。
フィルタルールは、管理装置11によってパケットフィルタシステム1を構成する各パケットフィルタ装置10に設定される。
各パケットフィルタ装置10に設定するフィルタルールは、各パケットフィルタ装置10の処理要否選択ルール情報記憶部103に登録されている処理要否選択ルール12に応じて決定する。
たとえば、「送信元IPアドレス:10.1.2.3」というフィルタルールは、IPアドレスが0.0.0.0〜63.255.255.255の範囲内であるため、パケットフィルタ装置10−Aに設定する。
また、「送信元IPアドレス:210.1.2.3」というフィルタルールは、IPアドレスが192.0.0.0〜255.255.255.255の範囲内であるため、パケットフィルタ装置10−Dに設定する。
このように、IPアドレス範囲によってフィルタルールを設定するパケットフィルタ装置10を分けることにより、パケットフィルタ装置10一台あたりに設定されるフィルタルール数を削減し、すべてのフィルタルールを検索する場合と比較してフィルタルール検索にかかる時間を短縮する。
【0039】
また、フィルタルールが「デフォルト拒否」の場合、単純にフィルタルールを分散させると、問題が発生するが、本実施の形態の方式を用いることでこの問題を回避できる。
たとえば、パケットフィルタ装置10−A〜10−Dに単純にフィルタルールを分散させた場合を考える。
ここで、パケットフィルタ装置10−Dに設定されているフィルタルールと合致するパケットXがパケットフィルタ装置10−Aに到達したとすると、パケットフィルタ装置10−AにはパケットXに合致するフィルタルールが存在しないため、パケットXはパケットフィルタ装置10−Aで廃棄されてしまい、期待する動作とは異なる動作になる。
しかし、本実施の形態の方式では、各パケットフィルタ装置10が、自装置で処理するパケットのIPアドレス範囲を限定しているため、パケットフィルタ装置10−A,10−B,10−CはパケットXをそのまま転送し、パケットフィルタ装置10−Dでフィルタルールと合致し、正しく転送と判断される。
【0040】
以上説明した通り、本実施の形態の方法によれば、フィルタルールを複数のパケットフィルタ装置10へ分散させ、1台あたりのフィルタルール数を減らすことができるため、多数のフィルタルールを設定するような場合においても、高いパケット転送性能を確保したパケットフィルタを実現することができる。
【0041】
なお、上記説明では、全IPアドレス範囲を均等に分割したものを処理要否選択ルール12として各パケットフィルタ装置10へ設定するとしたが、フィルタルールの全IPアドレス範囲中の分布を考慮して、IPアドレス範囲を不均等に分割したものを処理要否選択ルール12として設定してもよい。
こうすることにより、各パケットフィルタ装置10間でフィルタルール数が均等になるように設定することが可能になる。
【0042】
また、上記説明では、IPアドレスとしてIPv4アドレスを用いたが、IPv6アドレスを用いる場合も同様の方法でフィルタルールを構成することが可能である。
【0043】
以上、本実施の形態では、複数のパケットフィルタ装置を備えたパケットフィルタ方法であって、上記パケットフィルタ装置を直列に多段接続することを説明した。
【0044】
また、本実施の形態では、直列に多段接続された複数のパケットフィルタ装置と、上記パケットフィルタ装置のすべてと接続され、上記複数のパケットフィルタ装置を管理する管理装置とを備えたパケットフィルタ方法であって、上記管理装置を用いて上記複数のパケットフィルタ装置へフィルタルールを分散して設定することを説明した。
【0045】
また、本実施の形態では、上記管理装置は、フィルタルールに記述されている送信元IPアドレスの範囲によって当該フィルタルールを設定する上記パケットフィルタ装置を決定し、上記パケットフィルタ装置は、入力パケットの送信元IPアドレス範囲によってフィルタ処理の実行要否を判断し、処理が必要と判断した場合のみフィルタ処理を実行し、処理が不要と判断した場合は入力パケットをそのまま出力することを説明した。
【0046】
また、本実施の形態では、上記管理装置は、上記パケットフィルタ装置の動作中に動的にフィルタルールを追加または削除することを説明した。
【0047】
実施の形態2.
本実施の形態では、直列に接続した複数のパケットフィルタ装置10を用いてフィルタリングを実施する方法の、実施の形態1とは異なる方法を説明する。
【0048】
まず、構成について説明する。
パケットフィルタシステム1としての構成およびパケットフィルタ装置10および管理装置11の内部構成は上記実施の形態1と同じであり、ここでは説明を省略する。
パケットフィルタシステム1としての動作およびパケットフィルタ装置10の内部動作は上記実施の形態1と同じであり、ここでは説明を省略する。
上記実施の形態1と異なるのは、処理要否選択ルール情報記憶部103に登録されている処理要否選択ルール12と、処理要否選択部104の動作である。
【0049】
本実施の形態における処理要否選択ルール12は、パケットの送信元IPアドレスのハッシュ値である。たとえば、ハッシュ関数を「後ろ8ビットを4で割った余り」とすると、IPアドレスを4種類(0,1,2,3)のハッシュ値に分類することができる。
このそれぞれのハッシュ値を処理要否選択ルール12として各パケットフィルタ装置10に設定する。
たとえば、パケットフィルタ装置10−Aにハッシュ値0を設定したとすると、パケットフィルタ装置10−Aにおける処理要否選択ルールは「パケットの送信元IPアドレスのハッシュ値が0である」となる(図8)。
【0050】
本実施の形態の処理要否選択部104の動作を、図9を用いて説明する。
【0051】
処理要否選択部104は、ステップS201において、入力されたパケットの送信元IPアドレスのハッシュ値を計算する(一方向演算を行う)。
処理要否選択部104は、得られたハッシュ値が処理要否選択ルール情報記憶部103に登録されている処理要否選択ルール12で設定されたハッシュ値と一致するかどうか調べる。
ハッシュ値が一致した場合、処理要否選択部104は、当該パケットに対してフィルタ処理が必要と判断し(ステップS103)、一致しない場合はフィルタ処理が不要と判断する(ステップS104)。
以上が、本実施の形態の処理要否選択部104の動作である。
【0052】
次に、本実施の形態のフィルタルールについて説明する。
フィルタルールは、実施の形態1と同様、管理装置11によってパケットフィルタシステム1を構成する各パケットフィルタ装置10に設定される。
どのフィルタルールをどのパケットフィルタ装置10に設定するかは、上記のハッシュ値を用いて決定する。
フィルタルールの送信元IPアドレスのハッシュ値を計算し、得られたハッシュ値が設定されているパケットフィルタ装置10へそのフィルタルールを設定する。
たとえば、ハッシュ関数を「後ろ8ビットを4で割った余り」として、図8に示すような処理要否選択ルール12を設定したとき、「送信元IPアドレス:10.1.2.4」というフィルタルールは、ハッシュ値0であるため、パケットフィルタ装置10−Aに設定する。
各パケットフィルタ装置10でハッシュ値を計算するために使うハッシュ関数は、管理装置11から各パケットフィルタ装置10へ設定する。
この際、管理装置11にあらかじめ候補となるハッシュ関数を複数登録しておき、全フィルタルールのハッシュ値を計算した結果を考慮して、フィルタルール数が各パケットフィルタ装置10間で最も均等になるようなハッシュ関数を選定するようにしてもよい。
そして、管理装置11は、選定したハッシュ関数(一方向演算関数)を用いてフィルタルールの対象となるIPアドレスを複数のパケットフィルタ装置10に分散させて各パケットフィルタ装置10のフィルタルール及び処理要否選択ルールを生成する。
【0053】
以上説明した通り、本実施の形態の方法によれば、フィルタルールを複数のパケットフィルタ装置10へ分散させ、1台あたりのフィルタルール数を減らすことができるため、多数のフィルタルールを設定するような場合においても、高いパケット転送性能を確保したパケットフィルタを実現することができる。
処理要否選択ルール12としてハッシュ値を用いることで、実施の形態1のようにパケットの送信元IPアドレスの範囲を比較するよりも高速に処理要否の判定を行うことができる可能性がある。
【0054】
以上、本実施の形態では、管理装置は、フィルタルールに記述されている送信元IPアドレスのハッシュ値によって当該フィルタルールを設定するパケットフィルタ装置を決定し、上記パケットフィルタ装置は、入力パケットの送信元IPアドレスのハッシュ値によってフィルタ処理の実行要否を判断し、処理が必要と判断した場合のみフィルタ処理を実行し、処理が不要と判断した場合は入力パケットをそのまま出力することを説明した。
【0055】
また、本実施の形態では、上記管理装置は、あらかじめ設定された複数のハッシュ関数の中から、フィルタルールが最も均等に上記複数のパケットフィルタ装置へ分散するようなハッシュ関数を選択することを説明した。
【0056】
最後に、実施の形態1及び2に示したパケットフィルタ装置10及び管理装置11のハードウェア構成例について説明する。
図10は、実施の形態1及び2に示すパケットフィルタ装置10及び管理装置11のハードウェア資源の一例を示す図である。
なお、図10の構成は、あくまでもパケットフィルタ装置10及び管理装置11のハードウェア構成の一例を示すものであり、パケットフィルタ装置10及び管理装置11のハードウェア構成は図10に記載の構成に限らず、他の構成であってもよい。
【0057】
図10において、パケットフィルタ装置10及び管理装置11は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)と接続していてもよい。また、磁気ディスク装置920の代わりに、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
実施の形態1及び2で説明したフィルタルール情報記憶部101及び処理要否選択ルール情報記憶部103は、例えば、磁気ディスク装置920により実現される。
通信ボード915、キーボード902、マウス903、FDD904などは、入力部、入力装置の一例である。
また、通信ボード915、表示装置901などは、出力装置の一例である。
【0058】
通信ボード915は、パケット入力インタフェース107、パケット出力インタフェース108、管理入力インタフェース109、管理出力インタフェースを構成する。
通信ボード915は、例えば、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されていても構わない。
【0059】
磁気ディスク装置920には、オペレーティングシステム921(OS)、プログラム群923、ファイル群924が記憶されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921を利用しながら実行する。
【0060】
また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
【0061】
また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
パケットフィルタ装置10及び管理装置11の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
【0062】
上記プログラム群923には、実施の形態1及び2の説明において「〜部」(「フィルタルール情報記憶部101」及び「処理要否選択ルール情報記憶部103」以外、以下同様)として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
【0063】
ファイル群924には、実施の形態1及び2の説明において、「〜の判断」、「〜の計算」、「〜の比較」、「〜の評価」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1及び2で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【0064】
また、実施の形態1及び2の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、実施の形態1及び2で説明したフローチャートに示すステップ、手順、処理により、パケットフィルタ方法を実現することができる。
また、「〜部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、実施の形態1及び2の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態1及び2の「〜部」の手順や方法をコンピュータに実行させるものである。
【0065】
このように、実施の形態1及び2に示すパケットフィルタ装置10及び管理装置11は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【0066】
1 パケットフィルタシステム、10 パケットフィルタ装置、11 管理装置、101 フィルタルール情報記憶部、102 フィルタ部、103 処理要否選択ルール情報記憶部、104 処理要否選択部、105 フィルタルール更新部、106 フィルタルール設定部、107 パケット入力インタフェース、108 パケット出力インタフェース、109 管理入力インタフェース、110 管理出力インタフェース、1000 パケットフィルタ装置、1010 フィルタルール情報記憶部、1020 フィルタ部。

【特許請求の範囲】
【請求項1】
直列に接続された複数のパケットフィルタ装置を有し、
各パケットフィルタ装置は、
直列接続において入力元となるパケットフィルタ装置又はネットワークからパケットを入力し、入力した入力パケットを解析して、入力パケットの通過許否の判定を自装置で行うべきか否かを判断し、自装置で通過許否の判定を行わない場合は直列接続において出力先となるパケットフィルタ装置又はネットワークに入力パケットを出力し、自装置で通過許否の判定を行う場合は、入力パケットを通過させるか廃棄するかを判定し、入力パケットを通過させる場合は直列接続において出力先となるパケットフィルタ装置又はネットワークに入力パケットを出力し、
前記複数のパケットフィルタ装置のうちのいずれかのパケットフィルタ装置において、ネットワークから入力されたパケットに対する通過許否の判定が行われることを特徴とするパケットフィルタシステム。
【請求項2】
各パケットフィルタ装置は、
入力元となるパケットフィルタ装置又はネットワークからパケットを入力する入力インタフェース部と、
自装置で通過許否の判定を行うパケットを選別するための選別基準が示される処理要否選択ルール情報を記憶する処理要否選択ルール情報記憶部と、
前記処理要否選択ルール情報に基づいて入力パケットを解析し、自装置で通過許否の判定を行うべき入力パケットを処理対象パケットとして選別する処理要否選択部と、
通過許否の判定を行うための通過許否判定基準が示されるフィルタルール情報を記憶するフィルタルール情報記憶部と、
前記フィルタルール情報に基づいて処理対象パケットを解析し、処理対象パケットを通過させるか廃棄するかを判定するフィルタ部と、
前記フィルタ部により通過と判定された処理対象パケット及び前記処理要否選択部により処理対象パケットとして選別されなかった入力パケットを出力先となるパケットフィルタ装置又はネットワークに出力する出力インタフェース部とを有することを特徴とする請求項1に記載のパケットフィルタシステム。
【請求項3】
各パケットフィルタ装置において、
前記処理要否選択ルール情報記憶部は、
所定の通信アドレスの集合から前記複数のパケットフィルタ装置の台数に基づいて区画された通信アドレスの範囲が示される処理要否選択ルール情報を記憶し、
前記処理要否選択部は、
入力パケットの通信アドレスと前記処理要否選択ルール情報に示される通信アドレスの範囲とを比較し、入力パケットの通信アドレスが前記処理要否選択ルール情報に示される通信アドレスの範囲内であれば当該入力パケットを処理対象パケットとして選別することを特徴とする請求項2に記載のパケットフィルタシステム。
【請求項4】
各パケットフィルタ装置において、
前記処理要否選択ルール情報記憶部は、
特定の値が示される処理要否選択ルール情報を記憶し、
前記処理要否選択部は、
入力パケットの通信アドレスに対して特定の一方向演算を行い、得られた演算値が前記処理要否選択ルール情報に示される前記特定の値に一致すれば当該入力パケットを処理対象パケットとして選別することを特徴とする請求項2に記載のパケットフィルタシステム。
【請求項5】
前記パケットフィルタシステムは、更に、
複数の一方向演算関数の中から、所定の通信アドレスの集合を前記複数のパケットフィルタ装置に最も均等に分散させることができる一方向演算関数を選択し、選択した一方向演算関数を用いて前記通信アドレスの集合に含まれている通信アドレスを前記複数のパケットフィルタ装置に分散させて各パケットフィルタ装置のフィルタルール情報及び処理要否選択ルール情報を生成する管理装置を有することを特徴とする請求項4に記載のパケットフィルタシステム。
【請求項6】
前記パケットフィルタシステムは、更に、
前記複数のパケットフィルタ装置の稼働前に各パケットフィルタ装置のフィルタルール情報を生成し、各パケットフィルタ装置にフィルタルール情報を設定するとともに、前記複数のパケットフィルタ装置の稼働中に、いずれかのパケットフィルタ装置に設定されているフィルタルール情報を変更する管理装置を有することを特徴とする請求項2〜5のいずれかに記載のパケットフィルタシステム。
【請求項7】
前記管理装置は、
前記複数のパケットフィルタ装置の稼働前に各パケットフィルタ装置の処理要否選択ルール情報を生成し、各パケットフィルタ装置の処理要否選択ルール情報に合わせて各パケットフィルタ装置のフィルタルール情報を生成することを特徴とする請求項6に記載のパケットフィルタシステム。
【請求項8】
複数のパケットフィルタ装置が直列に接続され、前記複数のパケットフィルタ装置のうちのいずれかのパケットフィルタ装置において、ネットワークから入力されたパケットに対する通過許否の判定が行われるパケットフィルタシステム
に含まれるパケットフィルタ装置であって、
直列接続において入力元となるパケットフィルタ装置又はネットワークからパケットを入力し、入力した入力パケットを解析して、入力パケットの通過許否の判定を自装置で行うべきか否かを判断し、自装置で通過許否の判定を行わない場合は直列接続において出力先となるパケットフィルタ装置又はネットワークに入力パケットを出力し、自装置で通過許否の判定を行う場合は、入力パケットを通過させるか廃棄するかを判定し、入力パケットを通過させる場合は直列接続において出力先となるパケットフィルタ装置又はネットワークに入力パケットを出力することを特徴とするパケットフィルタ装置。
【請求項9】
前記パケットフィルタ装置は、
入力元となるパケットフィルタ装置又はネットワークからパケットを入力する入力インタフェース部と、
自装置で通過許否の判定を行うパケットを選別するための選別基準が示される処理要否選択ルール情報を記憶する処理要否選択ルール情報記憶部と、
前記処理要否選択ルール情報に基づいて入力パケットを解析し、自装置で通過許否の判定を行うべき入力パケットを処理対象パケットとして選別する処理要否選択部と、
通過許否の判定を行うための通過許否判定基準が示されるフィルタルール情報を記憶するフィルタルール情報記憶部と、
前記フィルタルール情報に基づいて処理対象パケットを解析し、処理対象パケットを通過させるか廃棄するかを判定するフィルタ部と、
前記フィルタ部により通過と判定された処理対象パケット及び前記処理要否選択部により処理対象パケットとして選別されなかった入力パケットを出力先となるパケットフィルタ装置又はネットワークに出力する出力インタフェース部とを有することを特徴とする請求項8に記載のパケットフィルタ装置。
【請求項10】
前記処理要否選択ルール情報記憶部は、
所定の通信アドレスの集合から前記複数のパケットフィルタ装置の台数に基づいて区画された通信アドレスの範囲が示される処理要否選択ルール情報を記憶し、
前記処理要否選択部は、
入力パケットの通信アドレスと前記処理要否選択ルール情報に示される通信アドレスの範囲とを比較し、入力パケットの通信アドレスが前記処理要否選択ルール情報に示される通信アドレスの範囲内であれば当該入力パケットを処理対象パケットとして選別することを特徴とする請求項9に記載のパケットフィルタ装置。
【請求項11】
前記処理要否選択ルール情報記憶部は、
特定の値が示される処理要否選択ルール情報を記憶し、
前記処理要否選択部は、
入力パケットの通信アドレスに対して特定の一方向演算を行い、得られた演算値が前記処理要否選択ルール情報に示される前記特定の値に一致すれば当該入力パケットを処理対象パケットとして選別することを特徴とする請求項9に記載のパケットフィルタ装置。
【請求項12】
複数のパケットフィルタ装置が直列に接続され、前記複数のパケットフィルタ装置のうちのいずれかのパケットフィルタ装置において、ネットワークから入力されたパケットに対する通過許否の判定が行われるパケットフィルタシステム
に含まれるパケットフィルタ装置に、
直列接続において入力元となるパケットフィルタ装置又はネットワークからパケットを入力する入力ステップと、
自装置で通過許否の判定を行うパケットを選別するための選別基準が示される処理要否選択ルール情報を所定の記憶領域から読み込む処理要否選択ルール情報読み込みステップと、
前記処理要否選択ルール情報に基づいて入力パケットを解析し、自装置で通過許否の判定を行うべき入力パケットを処理対象パケットとして選別する処理要否選択ステップと、
通過許否の判定を行うための通過許否判定基準が示されるフィルタルール情報を所定の記憶領域から読み込むフィルタルール情報読み込みステップと、
前記フィルタルール情報に基づいて処理対象パケットを解析し、処理対象パケットを通過させるか廃棄するかを判定するフィルタステップと、
前記フィルタステップにより通過と判定された処理対象パケット及び前記処理要否選択ステップにより処理対象パケットとして選別されなかった入力パケットを直列接続において出力先となるパケットフィルタ装置又はネットワークに出力する出力ステップとを実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2011−172126(P2011−172126A)
【公開日】平成23年9月1日(2011.9.1)
【国際特許分類】
【出願番号】特願2010−35517(P2010−35517)
【出願日】平成22年2月22日(2010.2.22)
【出願人】(000006013)三菱電機株式会社 (33,312)
【出願人】(000236056)三菱電機ビルテクノサービス株式会社 (1,792)
【Fターム(参考)】