(57)【要約】【課題】負荷分散装置を用いずに処理能力の向上を図ることを課題とする。【解決手段】ファイアウォール装置は、受信された要求パケット又は応答パケットにラベルが付加されているか否かを判定する。ファイアウォール装置は、ラベルが付加されていないと判定された要求パケット及び応答パケットのセッション情報を生成して記憶部に格納するとともに、各セッション情報を他のファイアウォール装置に通知する。ファイアウォール装置は、ラベルが付加されていると判定された要求パケット、又は、ラベルが付加されていないと判定された要求パケットにラベルを付加した要求パケットを、第２の装置に対して送信する。ファイアウォール装置は、ラベルが付加されていると判定された応答パケット、又は、ラベルが付加されていないと判定された応答パケットのセッション情報が記憶部に記憶されている場合にラベルを付加した応答パケットを、第１の装置に対して送信する。【選択図】図２
2013016044.tif 000002
【特許請求の範囲】
【請求項１】
第１の装置から第２の装置へ送信される要求パケット、または、前記要求パケットの応答として第２装置から第１装置へ送信される応答パケットを受信した場合に、受信されたパケットに他のファイアウォール装置で処理されたことを示す識別子が付加されているか否かを判定する判定部と、
前記識別子が付加されていないと判定された要求パケットのセッション情報および前記応答パケットのセッション情報を生成する生成部と、
前記生成された各セッション情報を記憶部に格納し、前記各セッション情報を他のファイアウォール装置に通知する通知部と、
前記識別子が付加されていると判定された要求パケット、または、前記識別子が付加されていないと判定された要求パケットに前記識別子を付加した要求パケットを、前記第２の装置に対して送信する送信部と、
前記識別子が付加されていると判定された応答パケット、または、前記識別子が付加されていないと判定された応答パケットのセッション情報が前記記憶部に記憶されている場合に前記識別子を付加した応答パケットを、前記第１の装置に対して送信する応答部と、
を有することを特徴とするファイアウォール装置。
【請求項２】
前記生成部は、前記識別子が付加されていないと判定された場合かつ自装置の処理負荷が所定値を超えない場合に、前記各セッション情報を生成し、
前記送信部は、自装置の処理負荷が所定値を超える場合には、前記要求パケットに前記識別子を付加することなく、前記第２の装置に対して送信することを特徴とする請求項１に記載のファイアウォール装置。
【請求項３】
前記送信部は、前記識別子が付加された要求パケットを送信するのに際して、複数のファイアウォール装置のうち自装置が前記要求パケットの経路上で前記第２装置に最も隣接する装置である場合に、前記識別子を削除して送信することを特徴とする請求項１または２に記載のファイアウォール装置。
【請求項４】
前記応答部は、前記識別子が付加された応答パケットを送信するのに際して、複数のファイアウォール装置のうち自装置が前記応答パケットの経路上で前記第１装置に最も隣接する装置である場合に、前記識別子を削除して送信することを特徴とする請求項１または２に記載のファイアウォール装置。
【請求項５】
ファイアウォール装置に、
第１の装置から第２の装置へ送信された要求パケット、または、前記要求パケットの応答として第２装置から第１装置へ送信された応答パケットを受信した場合に、受信されたパケットに他のファイアウォール装置で処理されたことを示す識別子が付加されているか否かを判定し、
前記識別子が付加されていないと判定した要求パケットのセッション情報および前記応答パケットのセッション情報を生成し、
前記生成した各セッション情報を記憶部に格納するとともに、前記各セッション情報を他のファイアウォール装置に通知し、
前記識別子が付加されていると判定した要求パケット、または、前記識別子が付加されていないと判定した要求パケットに前記識別子を付加した要求パケットを、前記第２の装置に対して送信し、
前記識別子が付加されていると判定した応答パケット、または、前記識別子が付加されていないと判定した応答パケットのセッション情報が前記記憶部に記憶されている場合に前記識別子を付加した応答パケットを、前記第１の装置に対して送信する、
処理を実行させることを特徴とするファイアウォール装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイアウォール装置およびファイアウォール装置の制御方法に関する。
【背景技術】
【０００２】
従来、ネットワークのセキュリティを高めることを目的として、ファイアウォール装置が利用されている。例えば、ファイアウォール装置は、企業内の内部ネットワークと外部ネットワークの境界に設置され、外部ネットワークから内部ネットワークへの悪意をもった不正利用や進入等を防ぐ役割をする。このようなファイアウォール装置は、処理負荷が高くなった場合には、受信したパケットを破棄して、不正利用や進入等を防ぐ。
【０００３】
また、Ｗｅｂサーバなどを有するネットワークでは、負荷分散装置に複数のＷｅｂサーバ装置を並列に接続し、各Ｗｅｂサーバの負荷に応じてクライアント装置からのアクセスを振り分けることで、Ｗｅｂサーバの処理能力を拡張することも行われている。このようなネットワークにおいては、各ＷｅｂサーバでＨＴＴＰ（Hypertext  Transfer  Protocol）通信などのセッション情報を共有し、障害が発生したＷｅｂサーバのセッション情報について他のＷｅｂサーバが維持する従来技術も知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１４６６６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、複数のファイアウォール装置を用いた場合に、負荷分散装置がなければ各ファイアウォール装置の処理能力の向上が図れないという問題がある。
【０００６】
例えば、複数のファイアウォール装置を用いてネットワークを構築する場合、負荷分散装置と複数のファイアウォール装置各々とを接続する、つまり、負荷分散装置と各ファイアウォール装置とを並列に接続することが考えられる。この場合、負荷分散装置は、受信したパケットの送信先となるファイアウォール装置を、各ファイアウォール装置の負荷状況に基づいて決定する。このように、各ファイアウォール装置の処理能力の向上を図るには、負荷分散装置を用いて各ファイアウォール装置の負荷分散を実行することになる。
【０００７】
開示の技術は、上記に鑑みてなされたものであって、負荷分散装置を用いずに処理能力の向上を図ることができるファイアウォール装置およびファイアウォール装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願の開示するファイアウォール装置およびファイアウォール装置の制御方法は、一つの態様において、判定部と生成部と通知部と送信部と応答部とを有する。判定部は、第１の装置から第２の装置へ送信された要求パケット、または、前記要求パケットの応答として第２装置から第１装置へ送信された応答パケットを受信する。そして、判定部は、受信されたパケットに他のファイアウォール装置で処理されたことを示す識別子が付加されているか否かを判定する。生成部は、前記識別子が付加されていないと判定された要求パケットのセッション情報および前記応答パケットのセッション情報を生成する。通知部は、前記生成された各セッション情報を記憶部に格納するとともに、前記各セッション情報を他のファイアウォール装置に通知する。送信部は、前記識別子が付加されていると判定された要求パケット、または、前記識別子が付加されていないと判定された要求パケットに前記識別子を付加した要求パケットを、前記第２の装置に対して送信する。応答部は、前記識別子が付加されていると判定された応答パケット、または、前記識別子が付加されていないと判定された応答パケットのセッション情報が前記記憶部に記憶されている場合に前記識別子を付加した応答パケットを、前記第１の装置に対して送信する。
【発明の効果】
【０００９】
本願の開示するファイアウォール装置およびファイアウォール装置の制御方法の一つの態様によれば、負荷分散装置を用いずに処理能力の向上を図ることができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係るシステムの全体構成例を示す図である。
【図２】図２は、実施例１に係るファイアウォール装置の構成を示す機能ブロック図である。
【図３】図３は、セッション管理テーブルに記憶される情報の例を示す図である。
【図４】図４は、状態管理テーブルに記憶される情報の例を示す図である。
【図５】図５は、ラベルを付加したパケットの例を示す図である。
【図６】図６は、ファイアウォール装置が要求パケットを受信した場合の処理の流れを示すフローチャートである。
【図７】図７は、ファイアウォール装置が応答パケットを受信した場合の処理の流れを示すフローチャートである。
【図８】図８は、ファイアウォール装置のハードウェア構成の例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示するファイアウォール装置およびファイアウォール装置の制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１２】
実施例１では、開示するファイアウォール装置を直列に接続したシステムの全体構成、ファイアウォール装置の構成、処理の流れ等について説明する。なお、ここで説明する各装置の数等をあくまで例示であり、図示されるものに限定されない。
【００１３】
［システムの全体構成］
図１は、実施例１に係るシステムの全体構成例を示す図である。図１に示すように、このシステムは、内部ネットワークと外部ネットワークとの境界に、ファイアウォール装置１０とファイアウォール装置１１とファイアウォール装置１２とが直列に接続される。
【００１４】
内部ネットワークは、例えば企業ネットワークなどの閉域網であり、クライアント装置１とクライアント装置２とクライアント装置３とを有する。各クライアント装置は、例えばパーソナルコンピュータなどの装置であり、ＵＤＰ（User  Datagram  Protocol）の上位プロトコルであるＲＴＰ（Real-time  Transport  Protocol）などで、外部ネットワークのサーバ装置に対して、データ転送を要求する。
【００１５】
外部ネットワークは、例えばインターネットなどのネットワークであり、クライアント装置からデータ転送に応じて、音声や映画などのデータストリームを提供するサーバ装置などを有する。
【００１６】
ファイアウォール装置１０、ファイアウォール装置１１、ファイアウォール装置１２は、内部ネットワークと外部ネットワークの境界に設置され、外部ネットワークから内部ネットワークへの悪意をもった不正利用や進入等を防ぐ役割をする。例えば、各ファイアウォール装置は、クライアント装置から外部ネットワークに対して送信されたデータ転送などの要求パケットを受信した場合に、当該要求パケットが通過できるようにフィルタ等の設定を変更する。このようして、各ファイアウォール装置は、クライアント装置と外部ネットワークの通信を可能にするとともに、この通信以外の不正な通信を遮断することもできる。
【００１７】
そして、これらのファイアウォール装置は、クライアント装置から外部ネットワークへ送信された要求パケット、または、要求パケットの応答として外部ネットワークからクライアント装置へ送信された応答パケットを受信する。続いて、各ファイアウォール装置は、受信されたパケットに他のファイアウォール装置で処理されたことを示す識別子が付加されているか否かを判定する。そして、各ファイアウォール装置は、識別子が付加されていないと判定された要求パケットのセッション情報および応答パケットのセッション情報を生成する。各ファイアウォール装置は、生成された各セッション情報を記憶部に格納するとともに、各セッション情報を他のファイアウォール装置に通知する。
【００１８】
また、各ファイアウォール装置は、識別子が付加されていると判定された要求パケット、または、識別子が付加されていないと判定された要求パケットに識別子を付加した要求パケットを、外部ネットワークに対して送信する。また、各ファイアウォール装置は、識別子が付加されていると判定された応答パケット、または、識別子が付加されていないと判定された応答パケットのセッション情報が記憶部に記憶されている場合に識別子を付加した応答パケットを、クライアント装置に対して送信する。
【００１９】
このように、ファイアウォール装置の処理の拡張を構成するネットワークにおいて、直列型で複数のファイアウォール装置を配置した場合でも、いずれかのファイアウォール装置だけで通信の通過や遮断を実施することができる。したがって、セッション管理しているパケットのファイウォール処理の負荷を軽減することができ、負荷分散装置を用いずに各ファイアウォール装置の処理能力の向上を図ることができる。
【００２０】
［ファイアウォール装置の構成］
次に、図１に示したファイアウォール装置の構成について説明する。なお、ファイアウォール装置１０、ファイアウォール装置１１、ファイアウォール装置１２は、同様の構成を有するので、ここでは、ファイアウォール装置２０として説明する。なお、一般的なファイアウォールとしての機能については省略する。
【００２１】
図２は、実施例１に係るファイアウォール装置の構成を示す機能ブロック図である。図２に示すように、ファイアウォール装置２０は、パケット制御部２１と、セッション管理テーブル２２と、状態管理テーブル２３と、ラベル処理部２５と、セッション管理部２６と、状態管理部２７とを有する。なお、各テーブルは、例えば半導体メモリ素子やハードウェアなどの記憶装置に記憶される。また、各処理部は、例えばＣＰＵ（Central  Processing  Unit）などの電子回路やＦＰＧＡ（Field-Programmable  Gate  Array）などの集積回路で実行される。
【００２２】
パケット制御部２１は、内部インタフェース部２１ａと外部インタフェース部２１ｂとを有し、これらによってクライアント装置と外部ネットワークとの間でやり取りされるパケットを送受信する。
【００２３】
内部インタフェース部２１ａは、ＮＩＣ（Network  Interface  Card）などのインタフェースであり、クライアント装置から外部ネットワークに送信された要求パケットを受信して、ラベル処理部２５に出力する。例えば、図１に示したファイアウォール装置１０の場合、内部インタフェース部２１ａは、クライアント装置から要求パケットを受信する。また、ファイアウォール装置１１の場合、内部インタフェース部２１ａは、ファイアウォール装置１０から要求パケットを受信する。
【００２４】
外部インタフェース部２１ｂは、ＮＩＣなどのインタフェースであり、クライアント装置から外部ネットワークに送信された要求パケットに対する応答パケットを受信して、ラベル処理部２５に出力する。例えば、図１に示したファイアウォール装置１２の場合、外部インタフェース部２１ｂは、外部ネットワークのサーバ装置から応答パケットを受信する。また、ファイアウォール装置１１の場合、外部インタフェース部２１ｂは、ファイアウォール装置１２から応答パケットを受信する。
【００２５】
セッション管理テーブル２２は、通過を許可するパケットの送信元と宛先とを対応付けたセッション情報を記憶するテーブルである。ここで記憶される情報は、セッション管理部２６等によって生成されたり、削除されたりする。図３は、セッション管理テーブルに記憶される情報の例を示す図である。図３に示すように、セッション管理テーブル２２は、「セッションＩＤ、tcp（Transmission  Control  Protocol）/udp、プロトコル、ポート番号（src-port、dst-port）、ＩＰ（Internet  Protocol）アドレス（送信元、宛先）」を対応付けて記憶する。
【００２６】
ここで記憶される「セッションＩＤ」は、セッション情報を識別する識別子であり、「tcp/udp」は、セッションを使用するトランスポート層のプロトコルがtcpかudpかを示す。「プロトコル」は、tcpやudp上で利用され、セッションを利用したデータ転送に用いられるプロトコルを示す。「ポート番号」は、セッションを利用したデータ転送を実行する際の用いるポート番号であり、「src-port」がパケットを受信するポート番号であり、「dst-port」がパケットを送信するポート番号である。「ＩＰアドレス」は、セッションを利用したデータ転送を実行する端末のＩＰアドレスであり、「送信元」がパケット送信元の端末のＩＰアドレスであり、「宛元」がパケット送信先の端末のＩＰアドレスである。
【００２７】
図３の場合、セッションＩＤが2000312のセッションは、udpでありプロトコルがrtpであるパケットのセッション情報である。このセッションは、受信ポート番号が24538、送信先ポート番号が5004で、送信元の端末のＩＰアドレスがＩＰ（Ａ）で、宛先の端末のＩＰアドレスがＩＰ（Ｂ）であるパケットを通過させることを示す。また、セッションＩＤが2000313のセッションは、udpでありプロトコルがrtpであるパケットのセッション情報である。このセッションは、受信ポート番号が5004、送信先ポート番号が24538で、送信元の端末のＩＰアドレスがＩＰ（Ｂ）で、宛先の端末のＩＰアドレスがＩＰ（Ａ）であるパケットを通過させることを示す。つまり、要求パケットのセッションがセッションＩＤ＝2000312のセッションであり、応答パケットのセッションがセッションＩＤ＝2000313のセッションである。
【００２８】
状態管理テーブル２３は、ファイアウォール装置の処理負荷や接続位置を記憶するテーブルである。図４は、状態管理テーブルに記憶される情報の例を示す図である。図４に示すように、状態管理テーブル２３は、「ＣＰＵ（Central  Processing  Unit）負荷率、処理位置（内部ネットワークからの通信フロー、外部ネットワークからの通信フロー）」を記憶する。
【００２９】
ここで記憶される「ＣＰＵ使用率」は、ファイアウォール装置２０のＣＰＵ使用率であり、負荷監視部２７ａによって定期的に更新される。「処理位置（内部ネットワークからの通信フロー）」は、内部ネットワークから外部ネットワークに向けて何番目の位置する装置であるかを示す。「処理位置（外部ネットワークからの通信フロー）」は、外部ネットワークから内部ネットワークに向けて何番目の位置する装置であるかを示す。なお、「処理位置」は、管理者等によって格納されていてもよく、各ファイアウォール装置がネットワークトポロジを生成して自動で格納してもよい。
【００３０】
例えば、図１のファイアウォール装置１１では、「処理位置（内部ネットワークからの通信フロー）」が「First」、「処理位置（外部ネットワークからの通信フロー）」が「Last」となる。また、ファイアウォール装置１２では、「処理位置（内部ネットワークからの通信フロー）」が「Middle」、「処理位置（外部ネットワークからの通信フロー）」が「Middle」となる。また、ファイアウォール装置１３では、「処理位置（内部ネットワークからの通信フロー）」が「Last」、「処理位置（外部ネットワークからの通信フロー）」が「First」となる。なお、Firstと判定される装置とLastと判定される装置との間にある装置は全てMiddleとなる。
【００３１】
ラベル処理部２５は、ラベルチェック部２５ａとラベル付加部２５ｂとラベル削除部２５ｃとを有し、これらによって、パケットに対してラベルの付加や削除を実行する処理部である。
【００３２】
ラベルチェック部２５ａは、受信されたパケットに他のファイアウォール装置で処理されたことを示す識別子が付加されているか否かを判定する処理部である。例えば、ラベルチェック部２５ａは、パケット制御部２１によって受信された要求パケットまたは応答パケットに、ラベルが付加されているか否かを判定する。そして、ラベルチェック部２５ａは、ラベルが付加されていないパケットについてはラベル付加部２５ｂに出力し、ラベルが付加されているパケットについてはラベル削除部２５ｃに出力する。
【００３３】
ラベル付加部２５ｂは、ラベルチェック部２５ａから受信したパケットについて、当該パケットを通過させる場合に、当該パケットにラベルを付加する処理部である。例えば、ラベル付加部２５ｂは、ラベルが付加されていない要求パケットを受信した場合には、セッション管理テーブル２２に記憶されるＣＰＵ使用率を参照し、ＣＰＵ使用率が閾値を超えない場合には、要求パケットを通過させると判定する。また、ラベル付加部２５ｂは、位置判定部２７ｂから取得した「処理位置（内部ネットワークからの通信フロー）」が「Last」である場合には、ＣＰＵ使用率が閾値を超える場合であっても、要求パケットを通過させると判定する。
【００３４】
そして、ラベル付加部２５ｂは、当該要求パケットにラベルを付加し、要求パケットを通過させることをセッション管理部２６に通知する。その後、セッション管理部２６等によってセッション情報が送信された後、ラベル付加部２５ｂは、ラベルを付加した要求パケットを宛先に対して送信する。
【００３５】
一方、ラベル付加部２５ｂは、「処理位置（内部ネットワークからの通信フロー）」が「Last」以外であり、ＣＰＵ使用率が閾値を超える場合には、当該要求パケットを宛先に対して送信する。つまり、この場合には、ラベル付加部２５ｂは、要求パケットに対してファイアウォール処理を実行することなく、後続のファイアウォール装置に送信する。
【００３６】
なお、要求パケットを通過させるまたは遮断するファイアウォール処理の判定基準としては、様々な手法を用いることができる。例えば、ラベル付加部２５ｂは、予め通過可能なプロトコル等を記憶しておき、そのプロトコルを用いたパケットである場合には、通過させると判定することもできる。また、ラベル付加部２５ｂは、遮断する宛先や送信元を予め記憶しておき、該当する要求パケットについては遮断すると判定することもできる。
【００３７】
また、ラベル付加部２５ｂは、ラベルが付加されていない応答パケットを受信すると、セッション管理テーブル２２に記憶されるＣＰＵ使用率を参照し、ＣＰＵ使用率が閾値を超えない場合には、ファイアウォール処理を実行すると判定する。すると、ラベル付加部２５ｂは、応答パケットから「tcp/udp、プロトコル、受信および宛先のポート番号、送信元および宛先のＩＰアドレス」を抽出する。そして、ラベル付加部２５ｂは、抽出した情報がセッション管理テーブル２２に記憶されている場合に、応答パケットを通過させると判定し、記憶されていない場合に、応答パケットを遮断すると判定する。また、ラベル付加部２５ｂは、位置判定部２７ｂから取得した「処理位置（外部ネットワークからの通信フロー）」が「Last」である場合には、ＣＰＵ使用率が閾値を超える場合であっても、ファイアウォール処理を実行する。そして、ラベル付加部２５ｂは、通過させると判定した応答パケットにラベルを付加して、宛先に対して送信する。
【００３８】
一方、ラベル付加部２５ｂは、「処理位置（外部ネットワークからの通信フロー）」が「Last」以外であり、ＣＰＵ使用率が閾値を超える場合には、当該応答パケットを宛先に対して送信する。つまり、この場合には、ラベル付加部２５ｂは、応答パケットに対してファイアウォール処理を実行することなく、後続のファイアウォール装置に送信する。
【００３９】
図５は、ラベルを付加したパケットの例を示す図である。図５に示すように、このパケットは、ＭＡＣ（Media  Access  Control）ヘッダとラベルヘッダとＩＰヘッダとデータ部とを有する。ＭＡＣヘッダには、送信元のＭＡＣアドレスや宛先のＭＡＣアドレスが格納され、ラベルヘッダには、ラベル付加部２５ｂによって付加されたれラベルが格納され、ＩＰヘッダには、送信元のＩＰアドレスや宛先のＩＰアドレスが格納される。データ部には、送受信対象のデータが格納される。なお、ポート番号やＩＰアドレス、tcp/udpなどは、ＩＰヘッダやＭＡＣヘッダに格納される。
【００４０】
ラベル削除部２５ｃは、ラベルが付加されたパケットが受信された場合に、所定の条件を満たすパケットについては、付加されているラベルを削除する処理部である。例えば、ラベル削除部２５ｃは、ラベルが付加された要求パケットを受信した場合、位置判定部２７ｂから「処理位置（内部ネットワークからの通信フロー）」を取得する。そして、ラベル削除部２５ｃは、「処理位置」が「Last」以外の「Middle」などである場合には、当該要求パケットから該当するセッション情報をセッション管理テーブル２２から特定する。その後、ラベル削除部２５ｃは、当該要求パケットのラベルを削除することなく、特定したセッション情報を用いて宛先に対して送信する。つまり、この場合には、ラベル付加部２５ｂは、要求パケットに対してファイアウォール処理を実行することなく、後続のファイアウォール装置に送信する。
【００４１】
一方、ラベル削除部２５ｃは、「処理位置（内部ネットワークからの通信フロー）」が「Last」である場合には、要求パケットに付加されているラベルを削除する。その後、ラベル削除部２５ｃは、ラベルが削除された要求パケットを宛先に送信する。
【００４２】
また、ラベル削除部２５ｃは、ラベルが付加された応答パケットを受信した場合、位置判定部２７ｂから「処理位置（外部ネットワークからの通信フロー）」を取得する。そして、ラベル削除部２５ｃは、「処理位置」が「Last」以外の「Middle」などである場合には、当該応答パケットから該当するセッション情報をセッション管理テーブル２２から特定する。その後、ラベル削除部２５ｃは、当該応答パケットのラベルを削除することなく、特定したセッション情報を用いて、宛先に対して送信する。つまり、この場合には、ラベル付加部２５ｂは、応答パケットに対してファイアウォール処理を実行することなく、後続のファイアウォール装置に送信する。
【００４３】
一方、ラベル削除部２５ｃは、「処理位置（外部ネットワークからの通信フロー）」が「Last」である場合には、応答パケットに付加されているラベルを削除する。その後、ラベル削除部２５ｃは、ラベルが削除された応答パケットを宛先に送信する。
【００４４】
図２に戻り、セッション管理部２６は、セッション情報生成部２６ａとセッション情報共有部２６ｂとを有し、これらによって、通過を許可するパケットのセッション情報を管理する処理部である。
【００４５】
セッション情報生成部２６ａは、ラベル付加部２５ｂから要求パケットを通過させることが通知された場合に、当該要求パケットのセッション情報および当該要求パケットに対する応答パケットのセッション情報を生成する。そして、セッション情報生成部２６ａは、生成した各セッション情報をセッション管理テーブル２２に格納する処理部である。つまり、セッション情報生成部２６ａは、ファイアウォール処理によって要求パケットを通過させると判定された場合には、要求パケットのセッション情報だけでなく、想定される応答パケットのセッション情報も生成する。
【００４６】
例えば、セッション情報生成部２６ａは、ラベル付加部２５ｂによってラベルが付加された要求パケットから「tcp/udp、プロトコル、受信および宛先のポート番号、送信元および宛先のＩＰアドレス」を抽出する。そして、セッション情報生成部２６ａは、抽出した情報を識別する識別としてセッションＩＤを付加し、セッションＩＤと抽出した情報とを対応付けてセッション管理テーブル２２に格納する。
【００４７】
さらに、セッション情報生成部２６ａは、受信ポート番号と宛先ポート番号とを反転させ、送信元ＩＰアドレスと宛先ＩＰアドレスとを反対にしたセッション情報を生成する。つまり、セッション情報生成部２６ａは、要求パケットに対する応答パケットのセッション情報を生成してセッション管理テーブル２２に格納する。そして、セッション情報生成部２６ａは、セッション情報を生成したことをセッション情報共有部２６ｂに通知する。
【００４８】
一例を挙げると、セッション情報生成部２６ａが、要求パケットから「udp、rtp、src-port＝24538、dst-port＝5004、送信元ＩＰアドレス＝ＩＰ（Ａ）、宛先ＩＰアドレス＝ＩＰ（Ｂ）」を抽出したとする。この場合、セッション情報生成部２６ａが、抽出したこれらの情報にセッションＩＤとして2000312を割り与え、要求パケットのセッション情報としてセッション管理テーブル２２に格納する。さらに、セッション情報生成部２６ａは、要求パケットの送信元と宛先とを反転させた情報として、「udp、rtp、src-port＝5004、dst-port＝24538、送信元ＩＰアドレス＝ＩＰ（Ｂ）、宛先ＩＰアドレス＝ＩＰ（Ａ）」を生成する。そして、セッション情報生成部２６ａが、抽出したこれらの情報にセッションＩＤとして2000313を割り与え、要求パケットに対する応答パケットのセッション情報としてセッション管理テーブル２２に格納する。
【００４９】
セッション情報共有部２６ｂは、セッション情報生成部２６ａによってセッション情報がセッション管理テーブル２２に格納された場合に、格納されたセッション情報を読み出して、他のファイアウォール装置にマルチキャストで送信する処理部である。一例を挙げると、セッション情報共有部２６ｂは、図３に示したセッションＩＤが2000312のセッション情報と200313のセッション情報各々を読出し、読み出した各セッション情報を通知するパケットを生成する。そして、セッション情報共有部２６ｂは、生成したパケットの宛先を各ファイアウォール装置として送信する。
【００５０】
また、セッション情報共有部２６ｂは、他のファイアウォール装置からセッション情報が付加されたパケット受信した場合には、当該パケットからセッション情報を抽出する。そして、セッション情報共有部２６ｂは、抽出したセッションごとにセッションＩＤを付加してセッション管理テーブル２２に格納する処理部である。
【００５１】
図２に戻り、状態管理部２７は、負荷監視部２７ａと位置判定部２７ｂとを有し、これらによって、ファイアウォール装置２０の処理負荷や接続位置を管理する処理部である。負荷監視部２７ａは、ファイアウォール装置のＣＰＵ使用率を定期的に取得して、状態管理テーブル２３の格納する処理部である。なお、ここでは、ファイアウォール装置の処理負荷としてＣＰＵ使用率を監視する場合で説明したが、これに限定されるものではない。例えば、状態管理部２７は、ディスク使用率、メモリ使用量、ネットワーク使用量などを監視してもよく、これらを組み合わせて監視してもよい。
【００５２】
位置判定部２７ｂは、ラベル付加部２５ｂやラベル削除部２５ｃなどの要求に応じて、状態管理テーブル２３に記憶される処理位置を取得して応答する処理部である。例えば、位置判定部２７ｂは、要求パケットを受信したラベル付加部２５ｂまたはラベル削除部２５ｃから、通信フローの位置を要求された場合には、状態管理テーブル２３の「内部ネットワークの通信フロー」に格納される情報を読み出して応答する。また、位置判定部２７ｂは、応答パケットを受信したラベル付加部２５ｂまたはラベル削除部２５ｃから、通信フローの位置を要求された場合には、状態管理テーブル２３の「外部ネットワークの通信フロー」に格納される情報を読み出して応答する。
【００５３】
［処理の流れ］
次に、図６と図７を用いて、ファイアウォール装置２０が実行する処理の流れを説明する。ここでは、図６を用いて要求パケット受信時の処理の流れと、図７を用いて応答パケット受信時の処理の流れを説明する。
【００５４】
（要求パケット受信時）
図６は、ファイアウォール装置が要求パケットを受信した場合の処理の流れを示すフローチャートである。図６に示すように、ファイアウォール装置２０のパケット制御部２１は、内部インタフェース部２１ａを介して要求パケットを受信する（Ｓ１０１肯定）。すると、ラベルチェック部２５ａは、要求パケットにラベルが付加されているか否かを判定する（Ｓ１０２）。
【００５５】
ラベルが付加されていない場合（Ｓ１０２否定）、ラベル付加部２５ｂは、状態管理テーブル２３のＣＰＵ使用率を参照して、ＣＰＵがbusyであるか否かを判定する（Ｓ１０３）。つまり、ラベル付加部２５ｂは、ＣＰＵ使用率が閾値を超えるか否かを判定する。そして、ＣＰＵがbusyでない場合（Ｓ１０３否定）、ラベル付加部２５ｂは、パケットを通過許可と判定し（Ｓ１０４）、判定対象の要求パケットにラベルを付加する（Ｓ１０５）。
【００５６】
その後、セッション情報生成部２６ａが、要求パケットのセッション情報と応答パケットのセッション情報を生成してセッション管理テーブル２２に格納し、セッション情報共有部２６ｂが、各セッション情報を他のファイアウォール装置に送信する（Ｓ１０６）。
【００５７】
そして、ラベル削除部２５ｃによって処理位置がLastでないと判定された場合（Ｓ１０７否定）、パケット制御部２１は、ラベルが付加された要求パケットを、外部インタフェース部２１ｂを介して宛先に送信する（Ｓ１０８）。
【００５８】
一方、ラベル削除部２５ｃは、位置判定部２７ｂから取得した処理位置がLastであった場合（Ｓ１０７肯定）、要求パケットに付加されたラベルを削除する（Ｓ１０９）。そして、パケット制御部２１は、ラベルが削除された要求パケットを、外部インタフェース部２１ｂを介して宛先に送信する（Ｓ１０８）。
【００５９】
また、Ｓ１０３において、ラベル付加部２５ｂは、状態管理テーブル２３のＣＰＵ使用率を参照して結果、ＣＰＵがbusyであると判定した場合（Ｓ１０３肯定）、位置判定部２７ｂから処理位置を取得して、処理位置がLastであるか否かを判定する（Ｓ１１０）。
【００６０】
そして、ラベル付加部２５ｂは、処理位置がLastである場合には（Ｓ１１０肯定）、Ｓ１０４以降の処理を実行する。また、処理位置がLastでない場合には（Ｓ１１０否定）、パケット制御部２１は、ファイアウォール処理を実施することなく、外部インタフェース部２１ｂを介して、要求パケットを宛先に送信する（Ｓ１０８）。
【００６１】
また、Ｓ１０２において、要求パケットにラベルが付加されていると判定された場合（Ｓ１０２肯定）、ラベル削除部２５ｃは、Ｓ１０７以降の処理を実行する。
【００６２】
（応答パケット受信時）
図７は、ファイアウォール装置が応答パケットを受信した場合の処理の流れを示すフローチャートである。図７に示すように、ファイアウォール装置２０のパケット制御部２１は、外部インタフェース部２１ｂを介して応答パケットを受信する（Ｓ２０１肯定）。すると、ラベルチェック部２５ａは、応答パケットにラベルが付加されているか否かを判定する（Ｓ２０２）。
【００６３】
ラベルが付加されていない場合（Ｓ２０２否定）、ラベル付加部２５ｂは、状態管理テーブル２３のＣＰＵ使用率を参照して、ＣＰＵがbusyであるか否かを判定する（Ｓ２０３）。そして、ＣＰＵがbusyでない場合（Ｓ２０３否定）、ラベル付加部２５ｂは、当該応答パケットのセッション情報がセッション管理テーブル２２に記憶されているか否かを判定する（Ｓ２０４）。一方、ラベルが付加されている場合（Ｓ２０２肯定）、ファイアウォール装置２０は、Ｓ２０７を実行する。
【００６４】
そして、ラベル付加部２５ｂは、当該応答パケットのセッション情報がセッション管理テーブル２２に記憶されている場合（Ｓ２０４肯定）、応答パケットを通過許可と判定し（Ｓ２０５）、応答パケットにラベルを付加する（Ｓ２０６）。
【００６５】
その後、ラベル削除部２５ｃによって処理位置がLastでないと判定された場合（Ｓ２０７否定）、パケット制御部２１は、ラベルが付加された応答パケットを、内部インタフェース部２１ａを介して宛先に送信する（Ｓ２０８）。
【００６６】
一方、ラベル削除部２５ｃは、位置判定部２７ｂから取得した処理位置がLastであった場合（Ｓ２０７肯定）、応答パケットに付加されたラベルを削除する（Ｓ２０９）。そして、パケット制御部２１は、ラベルが削除された応答パケットを、内部インタフェース部２１ａを介して宛先に送信する（Ｓ２０８）。
【００６７】
また、Ｓ２０４において、ラベル付加部２５ｂは、当該応答パケットのセッション情報がセッション管理テーブル２２に記憶されていないと判定した場合（Ｓ２０４否定）、通過が許可できない応答パケットと判定する。その結果、ラベル付加部２５ｂは、応答パケットを破棄して（Ｓ２１０）、処理を終了する。
【００６８】
また、Ｓ２０３において、ラベル付加部２５ｂは、状態管理テーブル２３のＣＰＵ使用率を参照した結果、ＣＰＵがbusyであると判定した場合（Ｓ２０３肯定）、位置判定部２７ｂから処理位置を取得して、処置位置がLastであるか否かを判定する（Ｓ２１１）。
【００６９】
そして、ラベル付加部２５ｂは、処理位置がLastである場合には（Ｓ２１１肯定）、Ｓ２０４以降の処理を実行する。また、処理位置がLastでない場合には（Ｓ２１１否定）、パケット制御部２１は、ファイアウォール処理を実施することなく、内部インタフェース部２１ａを介して、応答パケットを宛先に送信する（Ｓ２０８）。
【００７０】
［実施例１による効果］
直列に接続された実施例１の各ファイアウォール装置は、要求パケットを処理した場合に、要求パケットのセッション情報と応答パケットのセッション情報とを送信することで、各ファイアウォール装置で同じセッション情報を保持することができる。また、各ファイアウォール装置は、要求パケットまたは応答パケットを処理した場合に、処理したことを示すラベルを付加して後続のファイアウォール装置に送信するので、同じパケットを２回処理することを防止できる。また、各ファイアウォール装置は、自装置の処理負荷が高い場合には、自装置で処理せずに他のファイアウォール装置に処理を委託することができる。
【００７１】
このように、ファイアウォール装置を直列に接続した場合でも、いずれかの装置でファイウォール処理を実施することができ、処理された場合には、処理されたパケットの経路を共有できる。この結果、負荷分散装置を用いずとも、ファイアウォール装置の処理負荷を分散することができ、ファイアウォール装置の処理能力の向上を図ることができる。また、要求パケットおよび応答パケットの各セッション情報を共有することで、要求パケットと応答パケットの処理を、それぞれ別々のファイアウォール装置で実施することもできる。
【００７２】
また、ファイアウォール装置の処理の拡張を構成するネットワークにおいて、直列型で複数の装置を配置することができる。また、処理済みのパケットではラベルが付加され直列型の最終尾の装置でラベルが削除されることにより、従来必要であった前段の負荷分散装置が不要になる。また、装置の冗長性を変更する場合も直列型の装置配置を変更するのみであり、システム構成の見直しが必要なく追加や削除が可能となる。
【実施例２】
【００７３】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【００７４】
（パケット）
実施例１では、クライアント装置が外部ネットワークのサーバに対して送信されるパケットを要求パケットとし、外部ネットワークのサーバが要求パケットに対して応答したパケットを応答パケットして説明したが、これに限定されるものではない。例えば、外部ネットワーク側からクライアント装置へ送信されたパケットを要求パケットとすることもできる。また、実施例１では、ＵＤＰのＲＴＰを例にしたが、これに限定されるものではなく、様々なプロトコルを用いることができる。
【００７５】
（バイパス機能）
また、各ファイアウォール装置のインタフェースは、バイパス機能を有していてもよい。これにより、電源障害やソフト異常などにより装置が停止した場合は、２つのインタフェースを自動的にリレーにより連結する。この結果、なんらかの異常でファイアウォール装置が停止した場合は、バイパスモードでパケットを通過して通信停止を防ぐ働きをすることもできる。
【００７６】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７７】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、例えば、ラベル削除部２５ｃを有しない構成など、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７８】
（ハードウェア構成）
図８は、ファイアウォール装置のハードウェア構成の例を示す図である。図８に示すように、コンピュータ１００は、ＣＰＵ１０２、入力装置１０３、出力装置１０４、通信インタフェース１０５、媒体読取装置１０６、ＨＤＤ（Hard  Disk  Drive）１０７、ＲＡＭ（Random  Access  Memory）１０８を有する。また、図７に示した各部は、バス１０１で相互に接続される。
【００７９】
入力装置１０３は、マウスやキーボードであり、出力装置１０４は、ディスプレイなどであり、通信インタフェース１０５は、ＮＩＣ（Network  Interface  Card）などのインタフェースである。ＨＤＤ１０７は、図２に示した各テーブルに記憶される各情報を記憶する。記録媒体の例としてＨＤＤ１０７を例に挙げたが、ＲＯＭ（Read  Only  Memory）、ＲＡＭ、ＣＤ−ＲＯＭ等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記憶媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。ＣＰＵ１０２は、図２に示した各機能を実行する。
【００８０】
また、ＨＤＤ１０７に、図２に示した各処理部の制御を実行するファイアウォール処理プログラム１０７ａを格納しておく。そして、ＣＰＵ１０２が、ファイアウォール処理プログラム１０７ａを読み出してＲＡＭ１０８に展開することで、図２等で説明した各機能を実行するファイアウォール処理プロセス１０８ａを動作させることもできる。すなわち、ファイアウォール処理プロセス１０８ａは、図２に記載したラベル処理部２５、セッション管理部２６、状態管理部２７と同様の機能を実行する。このようにコンピュータ１００は、プログラムを読み出して実行することでファイアウォール装置の機能を実行する情報処理装置として動作する。
【００８１】
また、コンピュータ１００は、媒体読取装置１０６によって記録媒体からファイアウォール処理プログラム１０７ａを読み出し、読み出されたファイアウォール処理プログラム１０７ａを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、コンピュータ１００によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【００８２】
１、２、３  クライアント装置
１０、１１、１２、２０  ファイアウォール装置
２１  パケット制御部
２１ａ  内部インタフェース部
２１ｂ  外部インタフェース部
２２  セッション管理テーブル
２３  状態管理テーブル
２５  ラベル処理部
２５ａ  ラベルチェック部
２５ｂ  ラベル付加部
２５ｃ  ラベル削除部
２６  セッション管理部
２６ａ  セッション情報生成部
２６ｂ  セッション情報共有部
２７  状態管理部
２７ａ  負荷監視部
２７ｂ  位置判定部
【図１】
2013016044.tif 000003
【図２】
2013016044.tif 000004
【図３】
2013016044.tif 000005
【図４】
2013016044.tif 000006
【図５】
2013016044.tif 000007
【図６】
2013016044.tif 000008
【図７】
2013016044.tif 000009
【図８】
2013016044.tif 000010