(57)【要約】【目的】上位優先パケットフィルタリングにおいて、一定時間内における処理量を向上させる。【構成】ＩＰパケットと動作モードを複数行にわたって記憶装置に格納するアクセスリスト作成ステップと、前記アクセスリストをアクセス元とアクセス先に分類し動作モードを付加するフィルタリングテーブル展開ステップと、前記フィルタリングテーブルの中から入力パケットと一致する行を検索し一致する行の中における最上位の行を選択結果とするアドレス検索ステップと、を有する事を特徴とするパケットフィルタリング方法。【選択図】図１０
2008294895.tif 000002
【特許請求の範囲】
【請求項１】
入力パケットのフィルタリングを行う通信制御装置であって、予め用意されたパケットパターンリストと入力パケットを比較し、該パケットパターンリスト内に複数の該当パケットが存在する場合に、パケットパターンリストの最も上位に配置されている該当パケットを採用する上位優先パケットフィルタリングアルゴリズムにおいて、
ＩＰパケットと動作モードを複数行にわたって記憶装置に格納するアクセスリスト作成ステップと、
前記アクセスリストをアクセス元とアクセス先に分類し動作モードを付加するフィルタリングテーブル展開ステップと、
前記フィルタリングテーブルの中から入力パケットと一致する行を検索し一致する行の中における最上位の行を選択結果とするアドレス検索ステップと、
を有する事を特徴とするパケットフィルタリング方法。
【請求項２】
前記フィルタリングテーブル展開ステップは、前記アクセスリストの上位行から順に展開することを特徴とする請求項１に記載のパケットフィルタリング方法。
【請求項３】
前記フィルタリングテーブル展開ステップは、下位の行の展開は上位の行の展開結果に上書きしないことを特徴とする請求項１に記載のパケットフィルタリング方法。
【請求項４】
前記アドレス検索ステップは、送信元アドレスと送信先アドレスをそれぞれ個別に前記フィルタリングテーブルと比較することを特徴とする請求項１に記載のパケットフィルタリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御装置、パケットフィルタリング方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、ルータがファイアウォールを実現するセキュリティ技術や帯域平滑技術の必須機能ブロックとして、パケットフィルタリングがある。これらはパケットの処理内容についてはアプリケーションに依存するものではあるが、その前処理としてパケットを抽出（パケットフィルタリング）する機能が必須となる。
【０００３】
パケットフィルタリングは、ルータなどパケット処理をする装置に入力されたパケットの内、所定の条件（以下、「フィルタ条件」と記す。）に合致するパケットや制限に抵触しないパケットを選別して出力する機能である。当該機能を有するパケット処理装置は、パケットのヘッダに含まれているプロトコルやアドレスなどの情報を参照して通過させるか否かを決定する。あるパケットが通過を拒否された場合は、破棄されたり、あるいはその旨が送信元に通知されたりする（例えば、特許文献１参照。）。
【０００４】
一般的に、ＩＰ（Ｉｎｔｅｒｎｅｔ 
Ｐｒｏｔｏｃｏｌ）パケットのフィルタリングを具現化する手法として、アクセス制御リストが使用される。すなわち、目的のパケットを抽出する場合は、ユーザが抽出したいパケットパターンを設定する必要がある。
【０００５】
アクセス制御リストは、実装によって記載方法が異なるが、その一例を図１に示す。図１に示す様に、リストにはフィルタリングパターンが行毎に記載されている。具体的には、各行の先頭の項目から順に、行番号、送信元アドレスとポート番号、送信先アドレスとポート番号、処理内容が記載されている。ポート番号は省略が可能である。
【０００６】
パケット処理装置は、アクセス制御リストの使用に際して、最も上の行に記載されている情報から参照し、最初に一致した情報が記載されている行の指定内容（Ｄｒｏｐ又はＦＷＤ）に応じて、ＩＰパケットの破棄又は通過を決定する。したがって、多数のＩＰパケットが有する情報をアクセス制御リストの上部に記載することにより、適切な上位優先方式が実現できる。このため、アクセス制御リストにおける情報の記載順序は、短時間で適切なパケットフィルタリングを行う上で重要である。近年、当該記載順序による高速化がＪＡＶＡ（登録商標）プロセッサにより実現されている（例えば特許文献２参照。）。
【０００７】
当該アクセス制御リストはそのパターンが複数になった場合、１つのパケット入力に対して、アクセス制御リスト内の複数のパターンがヒットする場合が有るため、このような複数パターンのヒットに対してのルール付けが必要である。
【０００８】
当該ルールの例として、ヒットしたパターンに関して、リストの上位（行番号の小さいもの）を優先させる上位優先手段や、ヒットしたパターンにおいてより多くのパラメータにヒットしたものを優先させるロングマッチ手段が知られている。
【０００９】
【特許文献１】特開平１０−１３３９７７号公報
【特許文献２】特開２００４−１８０１５９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
従来のパケット処理は図２に示すように、アクセス制御リストの入力Ｓ２０１、アクセス制御リストの展開Ｓ２０３、パターンの照合Ｓ２０５、パケット処理Ｓ２０７といった手順でなされていたが、静的動作であり処理が複雑であるＳ２０１及びＳ２０３と、動的動作であり処理が単純であるＳ２０５及びＳ２０７を、それぞれの動的、静的といった特徴を利用せずに、ソフトウエア処理、もしくはハードウエア処理で全て為されていた。
【００１１】
従って、ある一定時間内における処理量（パフォーマンス）を向上させるのが困難であり、より高性能なＣＰＵが必要になるなど、産業上における実現にはコストがかかっていた。
【００１２】
本発明は、複数パターンのヒットが発生した場合に、アクセス制御リストの上位のパターンを優先するという上位優先手段について、前記問題点に鑑み、前記パケットフィルタリング処理を、ソフトウエア処理とハードウエア処理に分割し、それぞれに最適な処理を割り当てることによりパフォーマンスを向上させることを目的とする。
【課題を解決するための手段】
【００１３】
前記課題を解決するために本発明は、入力パケットのフィルタリングを行う通信制御装置であって、予め用意されたパケットパターンリストと入力パケットを比較し、該パケットパターンリスト内に複数の該当パケットが存在する場合に、パケットパターンリストの最も上位に配置されている該当パケットを採用する上位優先パケットフィルタリングアルゴリズムにおいて、ＩＰパケットと動作モードを複数行にわたって記憶装置に格納するアクセスリスト作成ステップと、前記アクセスリストをアクセス元とアクセス先に分類し動作モードを付加するフィルタリングテーブル展開ステップと、前記フィルタリングテーブルの中から入力パケットと一致する行を検索し一致する行の中における最上位の行を選択結果とするアドレス検索ステップと、を有する事を特徴とするパケットフィルタリング方法とする。
【００１４】
また、前記フィルタリングテーブル展開ステップは、前記アクセスリストの上位行から順に展開することを特徴とするパケットフィルタリング方法とする。
【００１５】
また、前記フィルタリングテーブル展開ステップは、下位の行の展開は上位の行の展開結果に上書きしないことを特徴とするパケットフィルタリング方法とする。
【００１６】
また、前記アドレス検索ステップは、送信元アドレスと送信先アドレスをそれぞれ個別に前記フィルタリングテーブルと比較することを特徴とするパケットフィルタリング方法とする。
【発明の効果】
【００１７】
本発明による上位優先パケットフィルタリングアルゴリズムの機械的実現方法によれば、ルータなどパケット制御装置の管理者によるアクセス制御リストの入力、上位優先アルゴリズムに従ったパケットパターンの展開、前記パケットパターンと入力パケットの照合、照合結果を受けてのパケット処理、といった一連の動作を効率良く実現することが可能となる。
【実施例】
【００１８】
以下、図面を参照して、本発明の一実施の形態について詳細に説明する。
【００１９】
本発明における処理手順では、まず入力されたパケット信号を分類するためのフィルタリングテーブルを作成する。パケットの要素は送信元のＩＰアドレスとサブネットアドレス、および送信先のＩＰアドレスとサブネットアドレスである。この場合、入力されたパケットを識別するためのパターンを分類すると図３に示す９通りが考えられる。以下、説明の中において、ＳＲＣは送信元、ＤＳＴは送信先の意味である。
【００２０】
つまり、入力されたパケットの送信元及び送信先が定義されたものでは無い場合に利用するＵＮＨＩＴ＿ＴＢＬ、送信元サブネットアドレスのみを定義したＳＲＣＳＵＢ＿ＴＢＬ、送信先サブネットアドレスのみを定義したＤＳＴＳＵＢ＿ＴＢＬ、送信元サブネットアドレスと送信先サブネットアドレスを定義したＳＲＣＳＵＢ＿ＤＳＴＳＵＢ＿ＴＢＬ、送信元ＩＰアドレスのみを定義したＳＲＣＩＰ＿ＴＢＬ、送信先ＩＰアドレスのみを定義したＤＳＴＩＰ＿ＴＢＬ、送信元ＩＰアドレスおよび送信先ＩＰアドレスを定義したＳＲＣＩＰ＿ＤＳＴＩＰ＿ＴＢＬ、送信元ＩＰアドレスおよび送信先サブネットアドレスを定義したＳＲＣＩＰ＿ＤＳＴＳＵＢ＿ＴＢＬ、送信元サブネットアドレスおよび送信先ＩＰアドレスを定義したＳＲＣＳＵＢ＿ＤＳＴＩＰ＿ＴＢＬの９通りである。
【００２１】
次にフィルタリングテーブルの各要素について、その要素が含むパケットパターンを明らかにするために図４に示す展開ルール表を作成する。例えば送信先のＩＰアドレスが記されたテーブルであるところのＤＳＴＩＰ＿ＴＢＬが含むパケットパターンは、「＊，ＤＳＴＩＰ」と、全ての要素を包括する「＊，＊」と、サブネットアドレスはＩＰアドレスを包括するものであるから「＊，ＤＳＴＳＵＢ」である。同様に例えばＳＲＣＩＰ＿ＤＳＴＩＰ＿ＴＢＬが含むパケットパターンは、サブネットアドレスがＩＰアドレスを包括することによれば表中の全パターンが含まれることになる。
【００２２】
次に、前記図４に示した展開ルール表を図５に示す４パターンに分類し、これをアドレス検索テーブルとする。つまり、入力パケットパターンのＳＲＣ側のＩＰアドレスについて記述されたテーブル（Ｎｏ．１）、同ＤＳＴ側のＩＰアドレスについて記述されたテーブル（Ｎｏ．２）、同ＳＲＣ側のサブネットアドレスについて記述されたテーブル（Ｎｏ．３）、同ＤＳＴ側のサブネットアドレスについて記述されたテーブル（Ｎｏ．４）に分類する。
【００２３】
パケットが入力された際には、該入力パケットのＳＲＣ側およびＤＳＴ側について、それぞれをアドレス検索テーブルから検索する。一つの入力パケットが複数のアドレス検索テーブルに該当する場合も考慮し、図６に示す選択ルール表を作成する。
【００２４】
図６は、図５のアドレス検索テーブルの要素４つについて、入力パケットがヒットする場合には１を、ヒットしない場合には０を記述した選択ルール表で、もので、要素が４つであるから計１６パターンとなる。それぞれのパターンについて、図４を参照し、図３に示すフィルタリングテーブル名を右側に記述している。
【００２５】
以上のような表の作成を前処理とした上で、図７に示すような具体的な入力パターン例を用いて処理を説明する。該具体例は、あらかじめ入力された２行のアクセスリスト＃１と＃２を元に、３行のパケット入力それぞれの処理がＤＲＯＰなのかＦＷＤなのかを決定する手順である。
【００２６】
図７のアクセスリスト＃１と＃２によれば、図５のアドレス検索テーブルは、
ＳｒｃＩＰアドレス検索テーブル＝１９２．１６８．１．１
ＤｓｔＩＰアドレス検索テーブル＝１９２．１６８．２．１
Ｓｒｃサブネット検索テーブル＝１９２．１６８．１．０／２４
Ｄｓｔサブネット検索テーブル＝１９２．１６８．２．０／２４
となる。
【００２７】
次に、アクセスリストの要素の全組み合わせをフィルタリングテーブルに照らし合わせて抽出すると図８のようになる。
【００２８】
次に、アクセスリスト＃１と＃２について、図４に注目する。まず、＃１はＳＲＣがＩＰであり、ＤＳＴがサブネットであることから、図４においてアクセスリスト上のパケットパターンの該当位置はＳＲＣＩＰ＿ＤＳＴＳＵＢの列ということになる。ＳＲＣＩＰ＿ＤＳＴＳＵＢの列を要素として持つフィルタリングテーブルは同図４によればＳＲＣＩＰ＿ＤＳＴＩＰ＿ＴＢＬとＳＲＣＩＰ＿ＤＳＴＳＵＢ＿ＴＢＬであることがわかる。
【００２９】
＃１はＤＲＯＰであると定義しているので、図８の要素において該当する次の２行はＤＲＯＰと決定される。
（１９２．１６８．１．１，１９２．１６８．２．０／２４）＝ＤＲＯＰ
（１９２．１６８．１．１，１９２．１６８．２．１）＝ＤＲＯＰ
【００３０】
続いて＃２はＳＲＣがサブネットであり、ＤＳＴがＩＰであることから、図４においてアクセスリスト上のパケットパターンの該当位置はＳＲＣＳＵＢ＿ＤＳＴＩＰの列ということになる。ＳＲＣＳＵＢ＿ＤＳＴＩＰの列を要素として持つフィルタリングテーブルは同図４によればＳＲＣＩＰ＿ＤＳＴＩＰ＿ＴＢＬとＳＲＣＳＵＢ＿ＤＳＴＩＰ＿ＴＢＬであることがわかる。
【００３１】
＃２はＦＷＤであると定義しているので、図８の要素において該当する次の２行はＦＷＤとされるが、
（１９２．１６８．１．１，１９２．１６８．２．１）＝ＦＷＤ
（１９２．１６８．１．０／２４，１９２．１６８．１．１）＝ＦＷＤ
本発明ではアクセスリストは上位優先と定義しており、＃２で定義される処理内容よりも、＃１で定義される処理内容が優先される。従って、
（１９２．１６８．１．１，１９２．１６８．２．１）＝ＤＲＯＰ
と決定される。
【００３２】
以上をまとめると、＃１と＃２によれば、入力されるパケット信号に対して、処理内容を図９のように定義できる。
【００３３】
次に、図７に示す具体的なパケット入力に対して、それぞれどのような処理が決定されるかを説明する。
【００３４】
１行目の（１９２．１６８．１．１，１９２．１６８．２．１）という入力があった場合は、ＳＲＣＩＰ＿ＤＳＴＩＰ型であり、フィルタリングテーブル２に該当するため、ＤＲＯＰ処理を実行する。２行目の（１９２．１６８．１．１００，１９２．１６８．２．１）という入力があった場合は、アドレス１９２．１６８．１．１００が１９２．１６８．１のサブネットにあたるため、ＳＲＣＳＵＢ＿ＤＳＴＩＰ型であり、フィルタリングテーブル４に該当するため、ＦＷＤ処理を実行する。３行目の（１０．１．１．１，１０．２．１．１）という入力があった場合は、定義されていないアドレス、定義されていないサブネットであるから、図３におけるＵＮＨＩＴ＿ＦＬＧ型であり、これはフィルタリングテーブルで定義されていないため、システムで予め定義されたＵＮＨＩＴ＿ＦＬＧ時の処理内容に従うことになる。
【００３５】
以上説明したように、本発明では、展開ルール表に基づいて、あらかじめ入力されたアクセスリストから自動的に選択ルール表を展開し、通信によってパケットが入力された場合に、選択ルール表と入力パケットを照合し、入力パケットに該当する選択ルール内のパケットパターンに対応付けられた処理を行うものである。
【００３６】
産業上で利用する場合は図１０のような処理手順を取ることができる。フィルタリングテーブル１００１と展開ルール表作成１００３と選択ルール表作成１００５は、通信路で送受信されるパケットのフォーマットに則ってソフトウエアにて自動的に作成する。本実施例の場合は、１にＳＲＣ側ＩＰアドレスもしくはサブネットアドレス、２にＤＳＴ側ＩＰアドレスもしくはサブネットアドレスという二つの要素から成っている場合について説明した。
【００３７】
次にアクセスリスト入力１０７によってシステム管理者等により処理の約束事を記述し、１００５により作成された選択ルール表と、該アクセスリストにより処理テーブル作成１００９を行う。１００９により処理データベース１０１３が作成される。処理データベースには例えば、要素「ＳＲＣＩＰ＿ＤＳＴＩＰ＿ＴＢＬ，ＤＲＯＰ」や要素「ＳＲＣＳＵＢ＿ＤＳＴＩＰ＿ＴＢＬ，ＦＷＤ」などが含まれる。該処理データベース作成までをソフトウエア処理にて自動化することが可能である。
【００３８】
次に、通信路等から入力されたパケット入力１０１１のパケットと、処理データベース１０１３に含まれるデータベースとを比較照合し、該当する処理内容にて処理実行１０１５を行う。当該比較照合処理を専用ハードウエアで行うことにより、前記ソフトウエア処理と併せて、パケットの処理パフォーマンスは飛躍的に向上する。
【００３９】
本実施例ではＩＰｖ４プロトコルで説明したが、ＩＰｖ６等であっても同様な処理で自動化できる。
【００４０】
本実施例では選択されたフィルタリングテーブルがＵＮＨＩＴ＿ＴＢＬであった場合の処理を具体的に記述していないが、これはシステム管理者等によって任意の処理に設定することが可能である。
【図面の簡単な説明】
【００４１】
【図１】アクセス制御リストの一例
【図２】パケットフィルタリングの処理手順
【図３】フィルタリングテーブル
【図４】展開ルール表
【図５】アドレス検索テーブル
【図６】選択ルール表
【図７】アクセスリストとパケット入力の一例
【図８】アクセスパターンの全組み合わせ表
【図９】図８のそれぞれの要素に対する処理内容
【図１０】産業上における利用例
【符号の説明】
【００４２】
１００１…フィルタリングテーブル、  １００３…展開ルール表、
１００５…選択ルール表、  １００７…アクセスリスト入力、
１００９…処理テーブル作成、  １０１１…パケット入力、
１０１３…処理データベース、  １０１５…処理実行
【図１】
2008294895.tif 000003
【図２】
2008294895.tif 000004
【図３】
2008294895.tif 000005
【図４】
2008294895.tif 000006
【図５】
2008294895.tif 000007
【図６】
2008294895.tif 000008
【図７】
2008294895.tif 000009
【図８】
2008294895.tif 000010
【図９】
2008294895.tif 000011
【図１０】
2008294895.tif 000012