説明

パケット通過制御方法

【課題】パケット通過制御装置における堅牢性の高いパケット通過制御方法を提供する。
【解決手段】パケット通過制御部2のフィルタリング記憶部14に、通信開始要求パケットおよび通信開始応答パケットに対応する第1および第2フィルタリング情報14a、14b、ならびに両方向のパケットの通過許可を示す第3フィルタリング情報14cを登録し、前記各パケットが前記対応する各フィルタリング情報と一致している場合に、中央演算処理部を介さずに通過処理を行う。前記第2および第3フィルタリング情報14b、14cは、前記第1フィルタリング情報14aより優先度の高い情報として優先的にフィルタリング記憶部14のSPIエントリに登録される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ファイヤーウォールやルータなどの機能であるSPI(Stateful Packet Inspection)の技術を用いたパケット通過制御装置におけるパケット通過制御方法に関するものである。
【背景技術】
【0002】
ファイヤーウォールを通過するパケットのデータを読み取り、内容を判断して動的にポートを開放・閉鎖する技術としてSPIが存在する。この技術は、通常ソフトウエアを用いてCPUなどの中央演算装置で処理されている。さらに、中央演算装置におけるSPI処理を軽減する方法として、下記の特許文献1が公開されている。
【特許文献1】特許第4137948号
【発明の開示】
【発明が解決しようとする課題】
【0003】
前記特許文献1では、中央演算装置におけるSPI処理を軽減することのできる、パケット通過制御装置及びその方法を提供している。しかしながら、パケットのデータを読み取り、その内容を判断して動的にポート開放を行う手段において、伝送制御プロトコル(TCP)における通信開始判定のための状態監視が不十分であり、堅牢性が低いという問題がある。
【0004】
本発明は、前記した従来技術に鑑みてなされたものであり、その目的は、パケット通過制御装置における堅牢性の高いパケット通過制御方法を提供することにある。
【課題を解決するための手段】
【0005】
上記目的を達成するために、本発明は、パケット通過制御部と中央演算処理部とを備え、一方の通信ネットワーク経路から受信したパケットを他方の通信ネットワーク経路へ通過させるか否かを制御するパケット通過制御装置におけるパケット通過制御方法であって、
【0006】
パケットのフィルタ規則適合判定条件を示す全ての通信種別のパケットについてパケットの通過許可、廃棄、中央演算処理転送のいずれかを示す第1フィルタリング情報を前記パケット通過制御部のフィルタリング記憶部に登録し、
【0007】
受信した通信開始要求パケットが前記第1フィルタリング情報に一致する場合に、前記他方の通信ネットワーク経路から前記一方の通信ネットワーク経路への通信開始応答パケットについて、前記中央演算処理転送を示す第2フィルタリング情報を前記フィルタリング記憶部に登録し、
【0008】
前記通信開始応答パケットが前記第2フィルタリング情報に一致する場合には、前記フィルタリング記憶部に登録された前記第2フィルタリング情報を削除し、前記一方の通信ネットワーク経路から前記他方の通信ネットワーク経路への通過、および前記他方の通信ネットワーク経路から前記一方の通信ネットワーク経路への通過、の両方の通過許可を示す第3フィルタリング情報を前記フィルタリング記憶部に登録し、
【0009】
前記パケット通過制御部の通過処理手段が、前記受信したパケットに関連する一連のパケット処理について、前記フィルタリング記憶部に登録された前記第3フィルタリング情報に一致するか否かを判定し、一致している場合には前記中央演算処理部を介さずに通過処理を行なうようにした点に特徴がある。
【0010】
また、本発明は、パケット通過制御部と中央演算処理部とを備え、一方の通信ネットワーク経路から受信したパケットを他方の通信ネットワーク経路へ通過させるか否かを制御するパケット通過制御装置におけるパケット通過制御方法であって、
【0011】
最も優先度の低いフィルタリング情報として、パケットのフィルタ規則適合判定条件を示す全ての通信種別のパケットについてパケットの通過許可、廃棄、中央演算処理転送のいずれかを示す制御種別である第1フィルタリング情報を前記パケット通過制御部のフィルタリング記憶部に登録し、
【0012】
前記パケット通過制御部の中央演算処理部転送手段が、通信開始要求パケットを受信した際に、当該パケットの通信種別と制御種別が、前記フィルタリング記憶部に登録されている前記第1フィルタリングに一致する場合に、その受信したパケットの少なくとも通信種別を前記中央演算処理部へ転送し、
【0013】
前記中央演算処理部の第2フィルタリング情報登録手段が、前記他方の通信ネットワーク経路から前記一方の通信ネットワーク経路への通信開始応答パケットについて、前記制御種別が中央演算処理部への転送を示す第2フィルタリング情報を、前記第1フィルタリング情報より優先度の高い情報として優先的に前記フィルタリング記憶部に登録し、
【0014】
前記中央演算処理部転送手段が、前記フィルタリング記憶部に登録された前記第2フィルタリング情報に一致するか否かを前記優先度順に判定し、一致している場合には前記第2フィルタリング情報の制御種別に従い、その受信したパケットの少なくとも通信種別を前記中央演算処理部へ転送し、
【0015】
前記中央演算処理部転送手段が、前記一方の通信ネットワーク経路から前記他方の通信ネットワーク経路への通信開始完了パケットについて、前記フィルタリング記憶部に登録された前記第1フィルタリング情報に一致するか否かを前記優先度順に判定し、一致している場合には前記第1フィルタリング情報の制御種別に従い、その受信したパケットの少なくとも通信種別を前記中央演算処理部へ転送し、
【0016】
前記中央演算処理部の第3フィルタリング情報登録手段が、前記フィルタリング記憶部に登録された前記第2フィルタリング情報を削除し、前記一方の通信ネットワーク経路から前記他方の通信ネットワーク経路への通過、および前記他方の通信ネットワーク経路から前記一方の通信ネットワーク経路への通過、の両方の通過許可を示す第3フィルタリング情報を、前記第1フィルタリング情報より優先度の高い情報として優先的に前記フィルタリング記憶部に登録し、
【0017】
前記パケット通過制御部の通過処理手段が、前記受信したパケットに関連する一連のパケット処理について、前記フィルタリング記憶部に登録された前記第3フィルタリング情報に一致するか否かを前記優先度順に判定し、一致している場合には前記中央演算処理部を介さずに通過処理を行なうようにした点に他の特徴がある。
【発明の効果】
【0018】
本発明によれば、通過処理手段、フィルタリング記憶部などを有するパケット通過制御部を、例えば1つのチップとしてまとめた回路構成とし、通過処理手段にパケットフィルタリングの処理を任せてCPUの処理軽減を行なう場合であっても、中央演算処理部が行う従来のパケットフィルタリングより堅牢性の高い通信を実現できる。
【0019】
また、パケット通過制御部のフィルタリング記憶部に、第1、第2、第3フィルタリング情報を登録することに関して、通信開始要求パケットについては前記第1フィルタリング情報と一致するか否かを判断し、一致する場合には第2フィルタリング情報を登録し、通信開始応答パケットが前記第2フィルタリング情報に一致するか否かを判断し、一致する場合には一方の通信ネットワーク経路から他方の通信ネットワーク経路への通過、および前記他方の通信ネットワーク経路から前記一方の通信ネットワーク経路への通過、の両方の通過許可を示す前記第3フィルタリング情報をフィルタリング記憶部に登録し、前記受信したパケットに関連する一連のパケット処理について、前記第3フィルタリング情報に一致するか否かを判定し、一致している場合には前記中央演算処理部を介さずに通過処理を行なうようにしたので、中央演算処理部が行う従来のパケットフィルタリングより堅牢性の高いパケット通過制御方法を提供することができる。
【発明を実施するための最良の形態】
【0020】
以下に、本発明を図面を参照して詳細に説明する。図1は、本発明のパケット通過制御方法の一実施形態が実施されるパケット通過制御装置の構成を示すブロック図である。
【0021】
図示されているように、パケット通過制御装置1は、例えばファイアーウォールやルータなどに組み込まれるパケット通過制御部2および中央演算処理部3から構成されている。
【0022】
前記パケット通過制御装置1は、WAN側のI/F(interface)11、LAN側のI/F(interface)12、フィルタリング処理部(中央演算処理部転送手段、通過処理手段)13、フィルタリング記憶部14および中央演算処理インタフェース(CPU/IF)15から構成されている。ここで、前記フィルタリング処理部13は、少なくともパケットの通過、廃棄、CPU転送の処理を行なう。また、前記フィルタリング記憶部14はフィルタリング情報が記録される記憶部である。また、前記中央演算処理インタフェース15は、CPU(中央演算処理部)16へ送信される情報を受付ける処理を行う。そしてこれらI/F(WAN)11、I/F(LAN)12、フィルタリング処理部13、フィルタリング記憶部14、中央演算処理インタフェース15は、転送処理の高速化を図るために半導体素子で構成したパケット通過制御部として、例えば1つのチップとしてまとめて回路構成されている。
【0023】
前記フィルタリング情報とは、パケットの通信種別<通信サービス(TCP、UDP、HTTP、FTPなどのサービス)、フラグ種別(SYN、FINなど)、宛先IPアドレス、宛先ポート番号、送信元IPアドレス、送信元ポート番号などのフィルタ規則適合判定条件>を示す情報や、通過許可、廃棄、CPU転送の制御種別の情報であり、このフィルタイリング情報に基づいてフィルタリング処理部13がフィルタリングの処理を行う。
【0024】
次に、前記中央演算処理部3は、CPU16およびテーブル記憶部17から構成されている。CPU16は、機能的には、第1フィルタリング登録手段、第2フィルタリング情報登録手段、第2フィルタリング削除手段、第3フィルタリング登録手段、第3フィルタリング削除手段等を有し、主にフィルタリング処理部13で行うフィルタリング処理から外れた(つまりCPU転送された)パケットをパケット通過制御部から受信し、受信したフレームに対する転送先を検出する等のSPI処理を、予め内部で動作するソフトウエアに基づいて行う。また、テーブル記憶部17は、フィルタリングテーブルを有し、ネットワーク管理者などのユーザによって登録されたフィルタリング情報を記憶している。そして、SPI処理を行う際には、CPU16は、中央演算処理インタフェース15を介してフィルタリング処理部13から受付けたパケットの情報のみのフィルタリング処理を、テーブル記憶部17に記録されているフィルタリング情報に基づいて行なう。
【0025】
次に、前記フィルタリング記憶部14の構成について説明する。図2は、該フィルタリング記憶部14の構成を示す。
【0026】
図2に示されているように、フィルタリング記憶部14には、CPU転送候補エントリ、SPIエントリおよびフィルタエントリからなる3種類のフィルタリング情報が記録される。前記CPU転送候補エントリは、CPU16へ転送すると予め決められた特定のパケットについてのフィルタリング情報であり、例えばARPのパケットなどの、他の装置へ転送せずに自装置で処理するパケットに関するフィルタリング情報である。また、前記SPIエントリは、CPU16が動的に生成したフィルタリング情報であり、例えば、内部ネットワークのA装置から外部ネットワークのB装置へのHTTP接続を許可している場合において、当該パケットを受信した際に、B装置からA装置に対する返答のパケットが通過できるように、動的に生成した、B装置→A装置の通信方向のHTTP接続の通過を示すフィルタリング情報などである。また、前記フィルタエントリは、ユーザ登録作業によって予めテーブル記憶部17に記録されたものであり、パケット通過制御装置1の起動時などにCPU16によって自動的に書込まれる。また、このフィルタエントリにより1つセッションの通信開始要求パケット(SYN)などを検出する。なお、図においてはCPU転送候補エントリ、SPIエントリ、フィルタエントリの順に優先度が与えられている。優先度とはSPI処理として受信したパケットに一致するか否かを判定するための優先順位である。
【0027】
図3は、フィルタリング記憶部14の構成とその中に形成されるフィルタリング情報登録状況テーブルとを示す図である。該フィルタリング情報登録状況テーブルとは、CPU16がフィルタリング記憶部14に登録したフィルタリング情報を記憶するためのテーブルである。
【0028】
次に、フィルタリング情報のフィルタリング記憶部14への第1の登録処理について説明する。
【0029】
パケット通過制御装置1が起動する際やCPU16の保持するフィルタリング情報登録状況テーブルの初期化の指示があった場合には、まず、CPU16はテーブル記憶部17からフィルタリング情報(第1フィルタリング情報)を読み込む。このフィルタリング情報は、図2で示したCPU転送候補エントリ及びフィルタエントリの各フィルタリング情報である。前記起動や初期化の際に、CPU16は、テーブル記憶部17から読み込んだフィルタリング情報(CPU転送候補エントリ、フィルタエントリ)をフィルタリング記憶部14に登録する。この登録において、フィルタエントリの制御種別が「通過」となっている情報については、「CPU転送」と書き換えて登録する。
【0030】
CPU16はSPIエントリとなるフィルタリング情報についても登録処理を行う。このSPIエントリは、上記したように、パケット通過制御装置1がフィルタリングの処理を開始して動作している際に、セッションの通信開始要求パケット(SYN)、通信開始応答パケット(SYN&ACK)と通信開始完了パケット(ACK)の受信に基づいてCPU16が動的に生成したフィルタリング情報であり、CPU16はこの生成を行なうと、CPU転送候補エントリとフィルタエントリとの間にSPIエントリを登録していく。つまり、フィルタリング情報の中でCPU転送候補エントリを最も優先度を高く登録し、またSPIエントリを次に優先度を高く登録し、また最も優先度の低いフィルタリング情報としてフィルタエントリを登録する。CPU16はフィルタリング記憶部14に登録したフィルタリング情報については、登録したか否かを示すフラグなどをフィルタリング情報登録状況テーブルに書込んで記憶する。また優先度の順番などについてもフィルタリング情報登録状況テーブルに書込んで記憶する。
【0031】
さて、前記特許文献1に記載されているパケット通過制御方法では、例えば図8に示されるようになっていた。
【0032】
CPU16は初期化の指示を受け付けた場合や起動時において、テーブル記憶部17からCPU転送候補エントリとフィルタエントリの各制御情報を読み取って、フィルタリング記憶部14にCPU/IF15を介して登録する。この最初のフィルタリング情報の登録が完了すると、SPIの処理を伴うパケットフィルタリングの処理を開始する。
【0033】
図示されているように、LAN側のI/F12が通信開始要求パケット(パケットA)を受け付けると、パケット通過制御部(2)はフィルタリング記憶部14に記録されているフィルタリング情報を優先度の高い順に参照し、パケットAと一致するフィルタリング情報があるか否かを判定する。ここで、一致するフィルタリング情報があると判定されると、その制御情報はCPU転送(フィルタエントリの制御種別が通過である場合には、登録時に書き換えられて全てCPU転送となっている)であるので、パケットAをCPU16に転送する。CPU16は、パケットAを受信すると、該パケットAに関するSPIエントリを生成する処理を開始する。この時、CPU16はSPIエントリ(11)(12)を生成する。ここに、SPIエントリ(11)は、パケットAを初回(SYN)のセッションとする当該セッションにおける他のパケットのうちI/F11からI/F12へ通過するパケットのためのフィルタリング情報である。また、SPIエントリ(12)は、パケットAを初回(SYN)のセッションとした当該セッションのパケットのうちI/F12からI/F11へ通過するパケット(FIN,RST=0)のためのフィルタリング情報である。CPU16は、この生成したSPIエントリ(11)(12)をフィルタリング記憶部14に登録する。
【0034】
次に、パケットAを初回(SYN)のセッションとした場合の当該セッションの他のパケットをI/F(WAN)11やI/F(LAN)12で受信する。フィルタリング処理部13はそれらの一連のパケットについてフィルタリング処理を行い、これらのパケットの通信種別が前記SPIエントリ(11)またはSPIエントリ(12)と一致すると、これらのSPIエントリ(11)(12)の制御種別が「通過」となっているので、前記パケットはCPU16に転送されずに、I/F(WAN)11で受信したパケットについては直接にI/F(LAN)12から出力し、逆にI/F(LAN)12で受信したパケットについては直接にI/F(WAN)11から出力する。
【0035】
以上のように、特許文献1に記された方法では、通信開始要求パケットAが予め登録されていた最初のフィルタリング情報と一致すると、SPIエントリ(11)(12)が生成・登録され、パケットAを初回(SYN)のセッションとした場合の当該セッションの他のパケットはI/F(WAN)11とI/F(LAN)12の間を直接伝送されるようになっている。このため、特許文献1に記載の方法は、前記したように、伝送制御プロトコル(TCP)における通信開始判定のための状態監視が不十分であり、堅牢性が低いという問題があった。
【0036】
本発明は、この問題を解消または軽減するものであり、本発明の一実施形態を以下に説明する。図4と図5はパケット通過制御装置1の処理フローの概要を示す図であり、図5は図4の続きの図である。また、図6はパケット通過制御装置1が受信するパケットと、そのパケットの受信に基づいて動的に生成したSPIエントリとを示すテーブルである。以下に、図4、5、6を用いてパケット通過制御装置1の動作(処理フロー)について説明する。
【0037】
まず、CPU16は初期化の指示を受付けた場合や起動時において、パケット通過制御装置テーブル記憶部17からCPU転送候補エントリとフィルタエントリの各フィルタリング情報を読み取って、フィルタリング記憶部14にCPU/IF15を介して登録する。この時CPU転送候補エントリを優先度を高く、またフィルタエントリをCPU転送候補エントリよりもフィルタ規則適用の優先度を低く登録する。そしてCPU16はその優先度の順番をフィルタリング情報登録状況テーブルに記録する。
【0038】
最初のフィルタリング情報の登録が完了すると、SPIの処理を伴うパケットフィルタリングの処理を開始する。いま、パケットAをLAN側のI/F12により受付けたとする(ステップS1)と、パケットAは図6に示すように、受信論理I/FがI/F(LAN)12、送信論理I/FがI/F(WAN)11、送信元IPアドレス(S−IP)がIP−x、宛先IPアドレス(D−IP)がIP−y、送信元ポート番号(S−Port)がPort−x、宛先ポート番号(D−Port)がPort−y、またTCPフラグがSYNのパケットである。
【0039】
フィルタリング処理部13はこのパケットAを受付けると、次に、フィルタリング記憶部14に記録されているフィルタリング情報を優先度の高い順に順次参照し、該フィルタリング情報と受信したパケットAの通信種別(通信サービス、フラグ種別、宛先IPアドレス、宛先ポート番号、送信元IPアドレス、送信元ポート番号など)と比較して、パケットAと一致するフィルタリング情報があるか否かを判定する。ここで、フィルタリング記憶部14に記録されているフィルタエントリは全ての通信種別に一致し、制御種別はCPU転送(フィルタエントリの制御種別が通過である場合には、登録時に書き換えられて全てCPU転送となっている)であるので、パケットAをCPU16に転送する(ステップS2)。
【0040】
CPU16はパケットAを受信すると、そのパケットAに関するSPIエントリを生成する処理を開始する。この時、CPU16は、図6に示すようなSPIエントリ(1)を生成する。このSPIエントリ(1)は、受信論理I/FがI/F(WAN)11、送信論理I/FがI/F(LAN)12、送信元IPアドレス(S−IP)がIP−y、宛先IPアドレス(D−IP)がIP−x、送信元ポート番号(S−Port)がPort−y、宛先ポート番号(D−Port)がPort−xであるパケットを通過させ、またTCPフラグがSYN&ACKであるパケットを通過させるフィルタリング情報(第2フィルタリング情報)である。
【0041】
CPU16は監視状態を遷移して、上記のSPIエントリ(1)を生成すると、該SPIエントリ(1)をフィルタリング記憶部14に登録する(ステップS3)。この時、CPU16は、フィルタエントリより優先度が高く、またCPU転送候補エントリよりも優先度が低い位置(アドレス:番地)に登録する。また、CPU16は登録したSPIエントリ(1)の優先度の情報をフィルタリング情報登録状況テーブルにより記憶しておく。
【0042】
CPU16はSPIエントリ(1)を登録すると、パケットAについて、フィルタリング情報登録状況テーブルで記憶しているフィルタリング情報に基づいてフィルタリング処理を行う。フィルタリング情報登録状況テーブルで記憶しているフィルタリング情報には、全ての通信種別と一致するフィルタエントリ(制御種別=通過)が記録されているので、CPU16はパケットAをCPU/IF15を介してI/F(WAN)11に転送し、WAN側の通信ネットワークに送信する(ステップS4)。
【0043】
その後、フィルタリング処理部13は通信開始応答パケット(パケットB)を受付ける(ステップS5)と、フィルタリング記憶部14に記録されているフィルタリング情報を優先度の高い順に順次参照し、受信したパケットBの通信種別(通信サービス、フラグ種別、宛先IPアドレス、宛先ポート番号、送信元IPアドレス、送信元ポート番号など)と比較して、パケットBと一致するフィルタリング情報があるか否かを判定する。ここで、パケットBはSPIエントリ(1)と一致し、制御種別がCPU転送であるので、パケットBはCPU16に転送される(ステップS6)。
【0044】
CPU16はパケットBを受信すると、そのパケットBに関するSPIエントリを生成する処理の状態を遷移させ、パケットBについて、フィルタリング情報登録状況テーブルで記憶しているフィルタリング情報に基づいてフィルタリング処理を行う。フィルタリング情報登録状況テーブルで記憶しているフィルタリング情報には、パケットBの通信種別と一致するフィルタエントリ(制御種別=通過)が記録されているので、CPU16はパケットAをCPU/IF15を介してI/F(LAN)12に転送し、LAN側の通信ネットワークに送信する(ステップS7)。
【0045】
次に、フィルタリング処理部13は通信開始完了パケット(パケットC)を受付ける(ステップS8)と、フィルタリング記憶部14に記録されているフィルタリング情報を優先度の高い順に順次参照し、受信したパケットCの通信種別(通信サービス、フラグ種別、宛先IPアドレス、宛先ポート番号、送信元IPアドレス、送信元ポート番号など)と比較して、パケットCと一致するフィルタリング情報があるか否かを判定する。ここで、フィルタリング記憶部14に記録されているフィルタエントリは全ての通信種別に一致し、制御種別はCPU転送であるので、パケットCをCPU16に転送する(ステップS9)。
【0046】
CPU16はパケットCを受信すると、そのパケットCに関するSPIエントリを生成する処理の状態をさらに遷移させる。つまり、監視状態を終了する。この時CPU16はSPIエントリ(1)を削除し、合わせてフィルタリング記憶部14に登録したSPIエントリ(1)も削除する。さらに、フィルタリング情報登録状況テーブルに記憶しているSPIエントリ(1)の優先度の情報も削除する(ステップS10)。つまり、前記第2フィルタリング情報を削除する。
【0047】
その後、CPU16は、図6で示すようなSPIエントリ(2)とSPIエントリ(3)とSPIエントリ(4)、つまり第3フィルタリング情報を生成する。SPIエントリ(2)は、受信論理I/FがI/F(WAN)11、送信論理I/FがI/F(LAN)12、送信元IPアドレス(S−IP)がIP−y、宛先IPアドレス(D−IP)がIP−x、送信元ポート番号(S−Port)がPort−y、宛先ポート番号(D−Port)がPort−x、またプロトコルがTCPであり、TCPフラグがSYN/ACK/PSH/URGであるか、またはFIN、RST=0のパケットである。つまり、パケットAを初回のセッションとした当該セッションのパケットのうちI/F(WAN)11からI/F(LAN)12へ通過するパケット(FIN、RST=0)のためのフィルタリング情報である。
【0048】
またSPIエントリ(3)は、受信論理I/FがI/F(LAN)12、送信論理I/FがI/F(WAN)11、送信元IPアドレス(S−IP)がIP−x、宛先IPアドレス(D−IP)がIP−y、送信元ポート番号(S−Port)がPort−x、宛先ポート番号(D−Port)がPort−y、またプロトコルがTCPであり、TCPフラグがSYN/ACK/PSH/URGであるか、またはFIN、RST=0のパケットである。つまり、パケットAを初回のセッションとした当該セッションのパケットのうちI/F(LAN)12からI/F(WAN)11へ通過するパケット(FIN、RST=0)のためのフィルタリング情報である。
【0049】
さらにSPIエントリ(4)は、受信論理I/FがI/F(WAN)11、送信論理I/FがI/F(LAN)12、送信元IPアドレス(S−IP)がIP−y、宛先IPアドレス(D−IP)がIP−x、送信元ポート番号(S−Port)がPort−y、宛先ポート番号(D−Port)がPort−x、またプロトコルがTCPであり、TCPフラグがFIN=1、またはRST=1のパケットである。つまり、パケットAを初回のセッションとした当該セッションのパケットのうちI/F(WAN)11で受信したFIN=1、またはRST=1のパケットをCPU転送するためのフィルタリング情報である。
【0050】
そして、CPU16は生成したSPIエントリ(2)と(3)と(4)とをフィルタリング記憶部14に登録する(ステップS11)。この時CPU16は、フィルタエントリより優先度が高く、またCPU転送候補エントリよりも優先度が低い位置(アドレス:番地)に登録する。またCPU16は登録したSPIエントリ(2)(3)(4)の優先度の情報をフィルタリング情報登録状況テーブルにより記憶しておく。
【0051】
SPIエントリ(2)(3)(4)を登録すると、パケットCについて、フィルタリング情報登録状況テーブルで記憶しているフィルタリング情報に基づいてフィルタリング処理を行う。フィルタリング情報登録状況テーブルで記憶しているフィルタリング情報には、全ての通信種別と一致するフィルタエントリ(制御種別=通過)が記録されているので、CPU16はパケットCをCPU/IF15を介してI/F(WAN)11に転送し、WAN側の通信ネットワークに送信する(ステップS12)。
【0052】
次にパケットAを初回(SYN)のセッションとした場合の当該セッションの他のパケットがI/F(WAN)11やI/F(LAN)12で受信する。フィルタリング処理部13はそれらの一連のパケットについてフィルタリング処理を行なう。このフィルタリング処理は上記同様にフィルタリング記憶部14に登録されているフィルタリング情報と比較して行う。ここで、パケットAを初回(SYN)のセッションとした場合の当該セッションの他のパケットはSPIエントリ(2)またはSPIエントリ(3)と一致する。またこのSPIエントリ(2)(3)は制御種別が“通過”となっている。従って、フィルタリング処理部13は、パケットAを初回(SYN)のセッションとした場合の当該セッションの他のパケットを受信した場合には、CPU16に転送せず、I/F(WAN)11で受信したパケットについてはダイレクトにI/F(LAN)12から出力し、またI/F(LAN)12で受信したパケットについてはダイレクトにI/F(WAN)11から出力する。つまりパケットAをセッションの初回に受信したパケットとして、それ以降の同一セッションのパケットについてはパケット通過制御部でSPIの処理(双方向のハードウェア転送の処理)を行なう(ステップS13)。
【0053】
次に、図5に示されているように、パケットAを初回(SYN)のセッションとした場合の当該セッションの最後(FIN)のパケットDをI/F(LAN)12で受信したとする(ステップS14)。この場合、フィルタリング処理部13はフィルタリング記憶部14に登録されているフィルタリング情報と比較する。ここで、SPIエントリ(2)はFIN=1となっているパケットについてはフィルタの対象外であるので、フィルタリング処理部13は優先度に従って順次フィルタエントリまで確認する。そして、フィルタエントリにおいて通信種別の一致するエントリ(パケットAを処理したフィルタエントリと同一のエントリ)が存在し、その制御種別がCPU転送であるので、パケットDをCPU/IF15を介してCPU16へ転送する(ステップS15)。CPU16はSPIの状態を遷移させ、パケットDについての制御種別がフィルタリング情報登録状況テーブルにおいて“通過”となっているので、I/F(WAN)11へ出力する(ステップS16)。
【0054】
さらに続けて、I/F(WAN)11へ出力したパケットAを初回(SYN)のセッションとした場合の当該セッションの最後(FIN)のパケットに応答するパケットEをI/F(WAN)11で受信したとする(ステップS17)。この場合、フィルタリング処理部13はフィルタリング記憶部14に登録されているフィルタリング情報と比較する。ここで、SPIエントリ(3)はFIN=1となっているパケットについてはフィルタの対象外であるので、パケットEはSPIエントリ(4)に一致し、その制御種別がCPU転送であるので、パケットEをCPU/IF15を介してCPU16へ転送する(ステップS18)。CPU16はSPIの状態を遷移させ、パケットEについての制御種別がフィルタリング情報登録状況テーブルにおいて“通過”となっているので、I/F(LAN)12へ出力する(ステップS19)。
【0055】
また、CPU16は、I/F(LAN)12で受信したTCPフラグがFINであるパケットDをI/F(WAN)11へ出力した後にTCPフラグがFINであるパケットEをI/F(WAN)11で受信したため、そのパケットに関するセッションのSPIエントリ(2)、(3)及び(4)を、パケットEのI/F(LAN)12への送出後、所定の時間経過した際にフィルタリング記憶部14から削除する処理を行なう(ステップS20)。
【0056】
以上の処理により、フィルタリング処理部13、フィルタリング記憶部14などを有するパケット通過制御部2を、例えば1つのチップとしてまとめて回路構成し、フィルタリング処理部13にSPIの処理を任せた場合であっても、CPUで状態監視を行うSPI処理と同等の堅牢性の高い通信を実現ができる。
【0057】
図7は、本発明の要部の機能ブロック図である。図において、10は前記フィルタリング処理部13およびCPU/IF15からなる中央演算処理部転送手段を示し、他の図1と同符号は、図1と同一または同等物を示す。
【0058】
本発明は、パケット通過制御部2と中央演算処理部3とを備え、一方の通信ネットワーク経路から受信したパケットを他方の通信ネットワーク経路へ通過させるか否かを制御するパケット通過制御装置におけるパケット通過制御方法であり、以下の方法が実施される。
【0059】
(1)まず、テーブル記憶部17から読み出された、パケットのフィルタ規則適合判定条件を示す全ての通信種別のパケットについてパケットの通過許可、廃棄、中央演算処理転送のいずれかを示す制御種別である中央演算処理転送を示す第1フィルタリング情報14aを、最も優先度の低いフィルタリング情報として、前記パケット通過制御部のフィルタリング記憶部14に登録する。
【0060】
(2)前記パケット通過制御部の中央演算処理部転送手段10は、一方の通信ネットワーク経路から他方の通信ネットワーク経路への通信開始要求パケット(パケットA)を受信すると、当該パケットの通信種別と制御種別が、前記フィルタリング記憶部14に登録されている前記第1フィルタリング情報14aに一致するか否かを判定し、一致する場合に、その受信したパケットの少なくとも通信種別10aを前記中央演算処理部3へ転送する。
【0061】
(3)上記の転送があると、前記中央演算処理部3の第2フィルタリング情報生成・登録手段3aが、前記他方の通信ネットワーク経路から前記一方の通信ネットワーク経路への通信開始応答パケット(パケットB)についての、前記制御種別が中央演算処理転送を示す第2フィルタリング情報14bを生成し、前記第1フィルタリング情報より優先度の高い情報として優先的に前記フィルタリング記憶部14に登録する。
【0062】
(4)次に、前記中央演算処理部転送手段10は、受信した前記他方の通信ネットワーク経路から前記一方の通信ネットワーク経路への通信開始応答パケット(パケットB)が、前記フィルタリング記憶部14に登録された前記第2フィルタリング情報14bに一致するか否かを前記優先度順に判定し、一致している場合には前記第2フィルタリング情報の制御種別に従い、その受信したパケットの少なくとも通信種別10bを前記中央演算処理部3へ転送する。
【0063】
(5)次に、前記中央演算処理部転送手段10は、受信した前記一方の通信ネットワーク経路から前記他方の通信ネットワーク経路への通信開始完了パケット(パケットC)が、前記フィルタリング記憶部14に登録された前記第1フィルタリング情報14aに一致するか否かを前記優先度順に判定し、一致している場合には前記第1フィルタリング情報の制御種別に従い、その受信したパケットの少なくとも通信種別10cを前記中央演算処理部3へ転送する。
【0064】
(6)前記(4)と(5)の通信種別10bと10cの転送があると、前記中央演算処理部3の第3フィルタリング情報生成・登録手段3bが、前記フィルタリング記憶部14に登録された前記第2フィルタリング情報14bを削除し、前記一方の通信ネットワーク経路から前記他方の通信ネットワーク経路への通過、および前記他方の通信ネットワーク経路から前記一方の通信ネットワーク経路への通過、の両方の通過許可を示す第3フィルタリング情報14cを、前記第1フィルタリング情報より優先度の高い情報として優先的に前記フィルタリング記憶部14に登録する。
【0065】
(7)前記パケット通過制御部2の通過処理手段(図示せず)が、前記受信したパケットに関連する一連のパケット処理について、前記フィルタリング記憶部14に登録された前記第3フィルタリング情報14cに一致するか否かを前記優先度順に判定し、一致している場合には前記中央演算処理部3を介さずに通過処理を行なう。
【0066】
なお、図7の第1、第2及び第3フィルタリング情報14a、14bおよび14cは、それぞれ、図4のフィルタエントリ、SPIエントリ(1)およびSPIエントリ(2)(3)(4)に対応する。
【0067】
以上、本発明を実施形態により説明したが、本発明は前記した実施形態に限定されず、本発明の思想及び範囲から逸脱しない範囲内での変更は可能であり、この変更は本発明に含まれることは明らかである。例えば、図4のステップS8の後のパケットCについての「フィルタエントリに一致」の判定を省略してもよい。
【図面の簡単な説明】
【0068】
【図1】パケット通過制御装置の構成を示すブロック図である。
【図2】フィルタリング記憶部の構成の説明図である。
【図3】フィルタリング情報登録状況テーブルとフィルタリング記憶部の構成の説明図である。
【図4】TCPセッション開始時のパケット通過制御装置の処理フローである。
【図5】TCPセッション停止時のパケット通過制御装置の処理フローである。
【図6】パケット通過制御装置が受信するパケットとそのパケットの受信に基づいて動的に生成されるSPIエントリを示す図である。
【図7】本発明の要部の機能ブロック図である。
【図8】従来のパケット通過制御装置の処理フローである。
【符号の説明】
【0069】
1・・・パケット通過制御装置、2・・・パケット通過制御部、3・・・中央演算処理部、11・・・I/F(WAN)、12・・・I/F(LAN)、13・・・フィルタリング処理部、14・・・フィルタリング記憶部、15・・・CPU/IF、16・・・CPU、17・・・テーブル記憶部、10・・・中央演算処理部転送手段。

【特許請求の範囲】
【請求項1】
パケット通過制御部と中央演算処理部とを備え、一方の通信ネットワーク経路から受信したパケットを他方の通信ネットワーク経路へ通過させるか否かを制御するパケット通過制御装置におけるパケット通過制御方法であって、
パケットのフィルタ規則適合判定条件を示す全ての通信種別のパケットについてパケットの通過許可、廃棄、中央演算処理転送のいずれかを示す第1フィルタリング情報を前記パケット通過制御部のフィルタリング記憶部に登録し、
受信した通信開始要求パケットが前記第1フィルタリングに一致する場合に、前記他方の通信ネットワーク経路から前記一方の通信ネットワーク経路への通信開始応答パケットについて、前記中央演算処理転送を示す第2フィルタリング情報を前記フィルタリング記憶部に登録し、
前記通信開始応答パケットが前記第2フィルタリング情報に一致する場合には、前記フィルタリング記憶部に登録された前記第2フィルタリング情報を削除し、前記一方の通信ネットワーク経路から前記他方の通信ネットワーク経路への通過、および前記他方の通信ネットワーク経路から前記一方の通信ネットワーク経路への通過、の両方の通過許可を示す第3フィルタリング情報を前記フィルタリング記憶部に登録し、
前記パケット通過制御部の通過処理手段が、前記受信したパケットに関連する一連のパケット処理について、前記フィルタリング記憶部に登録された前記第3フィルタリング情報に一致するか否かを判定し、一致している場合には前記中央演算処理部を介さずに通過処理を行なうことを特徴とするパケット通過制御方法。
【請求項2】
請求項1に記載のパケット通過制御方法において、
前記第2および第3フィルタリング情報を、前記第1フィルタリング情報より優先度の高い情報として優先的に前記フィルタリング記憶部に登録することを特徴とするパケット通過制御方法。
【請求項3】
請求項1または2に記載のパケット通過制御方法において、
前記第1、第2および第3フィルタリング情報を、前記フィルタリング記憶部のSPIエントリに登録することを特徴とするパケット通過制御方法。
【請求項4】
パケット通過制御部と中央演算処理部とを備え、一方の通信ネットワーク経路から受信したパケットを他方の通信ネットワーク経路へ通過させるか否かを制御するパケット通過制御装置におけるパケット通過制御方法であって、
最も優先度の低いフィルタリング情報として、パケットのフィルタ規則適合判定条件を示す全ての通信種別のパケットについてパケットの通過許可、廃棄、中央演算処理転送のいずれかを示す制御種別である第1フィルタリング情報を前記パケット通過制御部のフィルタリング記憶部に登録し、
前記パケット通過制御部の中央演算処理部転送手段が、通信開始要求パケットを受信した際に、当該パケットの通信種別と制御種別が、前記フィルタリング記憶部に登録されている前記第1フィルタリングに一致する場合に、その受信したパケットの少なくとも通信種別を前記中央演算処理部へ転送し、
前記中央演算処理部の第2フィルタリング情報登録手段が、前記他方の通信ネットワーク経路から前記一方の通信ネットワーク経路への通信開始応答パケットについて、前記制御種別が中央演算処理部への転送を示す第2フィルタリング情報を、前記第1フィルタリング情報より優先度の高い情報として優先的に前記フィルタリング記憶部に登録し、
前記中央演算処理部転送手段が、前記フィルタリング記憶部に登録された前記第2フィルタリング情報に一致するか否かを前記優先度順に判定し、一致している場合には前記第2フィルタリング情報の制御種別に従い、その受信したパケットの少なくとも通信種別を前記中央演算処理部へ転送し、
前記中央演算処理部転送手段が、前記一方の通信ネットワーク経路から前記他方の通信ネットワーク経路への通信開始完了パケットについて、前記フィルタリング記憶部に登録された前記第1フィルタリング情報に一致するか否かを前記優先度順に判定し、一致している場合には前記第1フィルタリング情報の制御種別に従い、その受信したパケットの少なくとも通信種別を前記中央演算処理部へ転送し、
前記中央演算処理部の第3フィルタリング情報登録手段が、前記フィルタリング記憶部に登録された前記第2フィルタリング情報を削除し、前記一方の通信ネットワーク経路から前記他方の通信ネットワーク経路への通過、および前記他方の通信ネットワーク経路から前記一方の通信ネットワーク経路への通過、の両方の通過許可を示す第3フィルタリング情報を、前記第1フィルタリング情報より優先度の高い情報として優先的に前記フィルタリング記憶部に登録し、
前記パケット通過制御部の通過処理手段が、前記受信したパケットに関連する一連のパケット処理について、前記フィルタリング記憶部に登録された前記第3フィルタリング情報に一致するか否かを前記優先度順に判定し、一致している場合には前記中央演算処理部を介さずに通過処理を行なうことを特徴とするパケット通過制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2010−109731(P2010−109731A)
【公開日】平成22年5月13日(2010.5.13)
【国際特許分類】
【出願番号】特願2008−280121(P2008−280121)
【出願日】平成20年10月30日(2008.10.30)
【出願人】(000000181)岩崎通信機株式会社 (133)
【出願人】(399040405)東日本電信電話株式会社 (286)
【出願人】(399041158)西日本電信電話株式会社 (215)
【Fターム(参考)】