説明

ファイアウォール装置およびファイアウォール装置の制御方法

【課題】負荷分散装置を用いずに処理能力の向上を図ることを課題とする。
【解決手段】ファイアウォール装置は、受信された要求パケット又は応答パケットにラベルが付加されているか否かを判定する。ファイアウォール装置は、ラベルが付加されていないと判定された要求パケット及び応答パケットのセッション情報を生成して記憶部に格納するとともに、各セッション情報を他のファイアウォール装置に通知する。ファイアウォール装置は、ラベルが付加されていると判定された要求パケット、又は、ラベルが付加されていないと判定された要求パケットにラベルを付加した要求パケットを、第2の装置に対して送信する。ファイアウォール装置は、ラベルが付加されていると判定された応答パケット、又は、ラベルが付加されていないと判定された応答パケットのセッション情報が記憶部に記憶されている場合にラベルを付加した応答パケットを、第1の装置に対して送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ファイアウォール装置およびファイアウォール装置の制御方法に関する。
【背景技術】
【0002】
従来、ネットワークのセキュリティを高めることを目的として、ファイアウォール装置が利用されている。例えば、ファイアウォール装置は、企業内の内部ネットワークと外部ネットワークの境界に設置され、外部ネットワークから内部ネットワークへの悪意をもった不正利用や進入等を防ぐ役割をする。このようなファイアウォール装置は、処理負荷が高くなった場合には、受信したパケットを破棄して、不正利用や進入等を防ぐ。
【0003】
また、Webサーバなどを有するネットワークでは、負荷分散装置に複数のWebサーバ装置を並列に接続し、各Webサーバの負荷に応じてクライアント装置からのアクセスを振り分けることで、Webサーバの処理能力を拡張することも行われている。このようなネットワークにおいては、各WebサーバでHTTP(Hypertext Transfer Protocol)通信などのセッション情報を共有し、障害が発生したWebサーバのセッション情報について他のWebサーバが維持する従来技術も知られている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−146663号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、複数のファイアウォール装置を用いた場合に、負荷分散装置がなければ各ファイアウォール装置の処理能力の向上が図れないという問題がある。
【0006】
例えば、複数のファイアウォール装置を用いてネットワークを構築する場合、負荷分散装置と複数のファイアウォール装置各々とを接続する、つまり、負荷分散装置と各ファイアウォール装置とを並列に接続することが考えられる。この場合、負荷分散装置は、受信したパケットの送信先となるファイアウォール装置を、各ファイアウォール装置の負荷状況に基づいて決定する。このように、各ファイアウォール装置の処理能力の向上を図るには、負荷分散装置を用いて各ファイアウォール装置の負荷分散を実行することになる。
【0007】
開示の技術は、上記に鑑みてなされたものであって、負荷分散装置を用いずに処理能力の向上を図ることができるファイアウォール装置およびファイアウォール装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本願の開示するファイアウォール装置およびファイアウォール装置の制御方法は、一つの態様において、判定部と生成部と通知部と送信部と応答部とを有する。判定部は、第1の装置から第2の装置へ送信された要求パケット、または、前記要求パケットの応答として第2装置から第1装置へ送信された応答パケットを受信する。そして、判定部は、受信されたパケットに他のファイアウォール装置で処理されたことを示す識別子が付加されているか否かを判定する。生成部は、前記識別子が付加されていないと判定された要求パケットのセッション情報および前記応答パケットのセッション情報を生成する。通知部は、前記生成された各セッション情報を記憶部に格納するとともに、前記各セッション情報を他のファイアウォール装置に通知する。送信部は、前記識別子が付加されていると判定された要求パケット、または、前記識別子が付加されていないと判定された要求パケットに前記識別子を付加した要求パケットを、前記第2の装置に対して送信する。応答部は、前記識別子が付加されていると判定された応答パケット、または、前記識別子が付加されていないと判定された応答パケットのセッション情報が前記記憶部に記憶されている場合に前記識別子を付加した応答パケットを、前記第1の装置に対して送信する。
【発明の効果】
【0009】
本願の開示するファイアウォール装置およびファイアウォール装置の制御方法の一つの態様によれば、負荷分散装置を用いずに処理能力の向上を図ることができるという効果を奏する。
【図面の簡単な説明】
【0010】
【図1】図1は、実施例1に係るシステムの全体構成例を示す図である。
【図2】図2は、実施例1に係るファイアウォール装置の構成を示す機能ブロック図である。
【図3】図3は、セッション管理テーブルに記憶される情報の例を示す図である。
【図4】図4は、状態管理テーブルに記憶される情報の例を示す図である。
【図5】図5は、ラベルを付加したパケットの例を示す図である。
【図6】図6は、ファイアウォール装置が要求パケットを受信した場合の処理の流れを示すフローチャートである。
【図7】図7は、ファイアウォール装置が応答パケットを受信した場合の処理の流れを示すフローチャートである。
【図8】図8は、ファイアウォール装置のハードウェア構成の例を示す図である。
【発明を実施するための形態】
【0011】
以下に、本願の開示するファイアウォール装置およびファイアウォール装置の制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例1】
【0012】
実施例1では、開示するファイアウォール装置を直列に接続したシステムの全体構成、ファイアウォール装置の構成、処理の流れ等について説明する。なお、ここで説明する各装置の数等をあくまで例示であり、図示されるものに限定されない。
【0013】
[システムの全体構成]
図1は、実施例1に係るシステムの全体構成例を示す図である。図1に示すように、このシステムは、内部ネットワークと外部ネットワークとの境界に、ファイアウォール装置10とファイアウォール装置11とファイアウォール装置12とが直列に接続される。
【0014】
内部ネットワークは、例えば企業ネットワークなどの閉域網であり、クライアント装置1とクライアント装置2とクライアント装置3とを有する。各クライアント装置は、例えばパーソナルコンピュータなどの装置であり、UDP(User Datagram Protocol)の上位プロトコルであるRTP(Real-time Transport Protocol)などで、外部ネットワークのサーバ装置に対して、データ転送を要求する。
【0015】
外部ネットワークは、例えばインターネットなどのネットワークであり、クライアント装置からデータ転送に応じて、音声や映画などのデータストリームを提供するサーバ装置などを有する。
【0016】
ファイアウォール装置10、ファイアウォール装置11、ファイアウォール装置12は、内部ネットワークと外部ネットワークの境界に設置され、外部ネットワークから内部ネットワークへの悪意をもった不正利用や進入等を防ぐ役割をする。例えば、各ファイアウォール装置は、クライアント装置から外部ネットワークに対して送信されたデータ転送などの要求パケットを受信した場合に、当該要求パケットが通過できるようにフィルタ等の設定を変更する。このようして、各ファイアウォール装置は、クライアント装置と外部ネットワークの通信を可能にするとともに、この通信以外の不正な通信を遮断することもできる。
【0017】
そして、これらのファイアウォール装置は、クライアント装置から外部ネットワークへ送信された要求パケット、または、要求パケットの応答として外部ネットワークからクライアント装置へ送信された応答パケットを受信する。続いて、各ファイアウォール装置は、受信されたパケットに他のファイアウォール装置で処理されたことを示す識別子が付加されているか否かを判定する。そして、各ファイアウォール装置は、識別子が付加されていないと判定された要求パケットのセッション情報および応答パケットのセッション情報を生成する。各ファイアウォール装置は、生成された各セッション情報を記憶部に格納するとともに、各セッション情報を他のファイアウォール装置に通知する。
【0018】
また、各ファイアウォール装置は、識別子が付加されていると判定された要求パケット、または、識別子が付加されていないと判定された要求パケットに識別子を付加した要求パケットを、外部ネットワークに対して送信する。また、各ファイアウォール装置は、識別子が付加されていると判定された応答パケット、または、識別子が付加されていないと判定された応答パケットのセッション情報が記憶部に記憶されている場合に識別子を付加した応答パケットを、クライアント装置に対して送信する。
【0019】
このように、ファイアウォール装置の処理の拡張を構成するネットワークにおいて、直列型で複数のファイアウォール装置を配置した場合でも、いずれかのファイアウォール装置だけで通信の通過や遮断を実施することができる。したがって、セッション管理しているパケットのファイウォール処理の負荷を軽減することができ、負荷分散装置を用いずに各ファイアウォール装置の処理能力の向上を図ることができる。
【0020】
[ファイアウォール装置の構成]
次に、図1に示したファイアウォール装置の構成について説明する。なお、ファイアウォール装置10、ファイアウォール装置11、ファイアウォール装置12は、同様の構成を有するので、ここでは、ファイアウォール装置20として説明する。なお、一般的なファイアウォールとしての機能については省略する。
【0021】
図2は、実施例1に係るファイアウォール装置の構成を示す機能ブロック図である。図2に示すように、ファイアウォール装置20は、パケット制御部21と、セッション管理テーブル22と、状態管理テーブル23と、ラベル処理部25と、セッション管理部26と、状態管理部27とを有する。なお、各テーブルは、例えば半導体メモリ素子やハードウェアなどの記憶装置に記憶される。また、各処理部は、例えばCPU(Central Processing Unit)などの電子回路やFPGA(Field-Programmable Gate Array)などの集積回路で実行される。
【0022】
パケット制御部21は、内部インタフェース部21aと外部インタフェース部21bとを有し、これらによってクライアント装置と外部ネットワークとの間でやり取りされるパケットを送受信する。
【0023】
内部インタフェース部21aは、NIC(Network Interface Card)などのインタフェースであり、クライアント装置から外部ネットワークに送信された要求パケットを受信して、ラベル処理部25に出力する。例えば、図1に示したファイアウォール装置10の場合、内部インタフェース部21aは、クライアント装置から要求パケットを受信する。また、ファイアウォール装置11の場合、内部インタフェース部21aは、ファイアウォール装置10から要求パケットを受信する。
【0024】
外部インタフェース部21bは、NICなどのインタフェースであり、クライアント装置から外部ネットワークに送信された要求パケットに対する応答パケットを受信して、ラベル処理部25に出力する。例えば、図1に示したファイアウォール装置12の場合、外部インタフェース部21bは、外部ネットワークのサーバ装置から応答パケットを受信する。また、ファイアウォール装置11の場合、外部インタフェース部21bは、ファイアウォール装置12から応答パケットを受信する。
【0025】
セッション管理テーブル22は、通過を許可するパケットの送信元と宛先とを対応付けたセッション情報を記憶するテーブルである。ここで記憶される情報は、セッション管理部26等によって生成されたり、削除されたりする。図3は、セッション管理テーブルに記憶される情報の例を示す図である。図3に示すように、セッション管理テーブル22は、「セッションID、tcp(Transmission Control Protocol)/udp、プロトコル、ポート番号(src-port、dst-port)、IP(Internet Protocol)アドレス(送信元、宛先)」を対応付けて記憶する。
【0026】
ここで記憶される「セッションID」は、セッション情報を識別する識別子であり、「tcp/udp」は、セッションを使用するトランスポート層のプロトコルがtcpかudpかを示す。「プロトコル」は、tcpやudp上で利用され、セッションを利用したデータ転送に用いられるプロトコルを示す。「ポート番号」は、セッションを利用したデータ転送を実行する際の用いるポート番号であり、「src-port」がパケットを受信するポート番号であり、「dst-port」がパケットを送信するポート番号である。「IPアドレス」は、セッションを利用したデータ転送を実行する端末のIPアドレスであり、「送信元」がパケット送信元の端末のIPアドレスであり、「宛元」がパケット送信先の端末のIPアドレスである。
【0027】
図3の場合、セッションIDが2000312のセッションは、udpでありプロトコルがrtpであるパケットのセッション情報である。このセッションは、受信ポート番号が24538、送信先ポート番号が5004で、送信元の端末のIPアドレスがIP(A)で、宛先の端末のIPアドレスがIP(B)であるパケットを通過させることを示す。また、セッションIDが2000313のセッションは、udpでありプロトコルがrtpであるパケットのセッション情報である。このセッションは、受信ポート番号が5004、送信先ポート番号が24538で、送信元の端末のIPアドレスがIP(B)で、宛先の端末のIPアドレスがIP(A)であるパケットを通過させることを示す。つまり、要求パケットのセッションがセッションID=2000312のセッションであり、応答パケットのセッションがセッションID=2000313のセッションである。
【0028】
状態管理テーブル23は、ファイアウォール装置の処理負荷や接続位置を記憶するテーブルである。図4は、状態管理テーブルに記憶される情報の例を示す図である。図4に示すように、状態管理テーブル23は、「CPU(Central Processing Unit)負荷率、処理位置(内部ネットワークからの通信フロー、外部ネットワークからの通信フロー)」を記憶する。
【0029】
ここで記憶される「CPU使用率」は、ファイアウォール装置20のCPU使用率であり、負荷監視部27aによって定期的に更新される。「処理位置(内部ネットワークからの通信フロー)」は、内部ネットワークから外部ネットワークに向けて何番目の位置する装置であるかを示す。「処理位置(外部ネットワークからの通信フロー)」は、外部ネットワークから内部ネットワークに向けて何番目の位置する装置であるかを示す。なお、「処理位置」は、管理者等によって格納されていてもよく、各ファイアウォール装置がネットワークトポロジを生成して自動で格納してもよい。
【0030】
例えば、図1のファイアウォール装置11では、「処理位置(内部ネットワークからの通信フロー)」が「First」、「処理位置(外部ネットワークからの通信フロー)」が「Last」となる。また、ファイアウォール装置12では、「処理位置(内部ネットワークからの通信フロー)」が「Middle」、「処理位置(外部ネットワークからの通信フロー)」が「Middle」となる。また、ファイアウォール装置13では、「処理位置(内部ネットワークからの通信フロー)」が「Last」、「処理位置(外部ネットワークからの通信フロー)」が「First」となる。なお、Firstと判定される装置とLastと判定される装置との間にある装置は全てMiddleとなる。
【0031】
ラベル処理部25は、ラベルチェック部25aとラベル付加部25bとラベル削除部25cとを有し、これらによって、パケットに対してラベルの付加や削除を実行する処理部である。
【0032】
ラベルチェック部25aは、受信されたパケットに他のファイアウォール装置で処理されたことを示す識別子が付加されているか否かを判定する処理部である。例えば、ラベルチェック部25aは、パケット制御部21によって受信された要求パケットまたは応答パケットに、ラベルが付加されているか否かを判定する。そして、ラベルチェック部25aは、ラベルが付加されていないパケットについてはラベル付加部25bに出力し、ラベルが付加されているパケットについてはラベル削除部25cに出力する。
【0033】
ラベル付加部25bは、ラベルチェック部25aから受信したパケットについて、当該パケットを通過させる場合に、当該パケットにラベルを付加する処理部である。例えば、ラベル付加部25bは、ラベルが付加されていない要求パケットを受信した場合には、セッション管理テーブル22に記憶されるCPU使用率を参照し、CPU使用率が閾値を超えない場合には、要求パケットを通過させると判定する。また、ラベル付加部25bは、位置判定部27bから取得した「処理位置(内部ネットワークからの通信フロー)」が「Last」である場合には、CPU使用率が閾値を超える場合であっても、要求パケットを通過させると判定する。
【0034】
そして、ラベル付加部25bは、当該要求パケットにラベルを付加し、要求パケットを通過させることをセッション管理部26に通知する。その後、セッション管理部26等によってセッション情報が送信された後、ラベル付加部25bは、ラベルを付加した要求パケットを宛先に対して送信する。
【0035】
一方、ラベル付加部25bは、「処理位置(内部ネットワークからの通信フロー)」が「Last」以外であり、CPU使用率が閾値を超える場合には、当該要求パケットを宛先に対して送信する。つまり、この場合には、ラベル付加部25bは、要求パケットに対してファイアウォール処理を実行することなく、後続のファイアウォール装置に送信する。
【0036】
なお、要求パケットを通過させるまたは遮断するファイアウォール処理の判定基準としては、様々な手法を用いることができる。例えば、ラベル付加部25bは、予め通過可能なプロトコル等を記憶しておき、そのプロトコルを用いたパケットである場合には、通過させると判定することもできる。また、ラベル付加部25bは、遮断する宛先や送信元を予め記憶しておき、該当する要求パケットについては遮断すると判定することもできる。
【0037】
また、ラベル付加部25bは、ラベルが付加されていない応答パケットを受信すると、セッション管理テーブル22に記憶されるCPU使用率を参照し、CPU使用率が閾値を超えない場合には、ファイアウォール処理を実行すると判定する。すると、ラベル付加部25bは、応答パケットから「tcp/udp、プロトコル、受信および宛先のポート番号、送信元および宛先のIPアドレス」を抽出する。そして、ラベル付加部25bは、抽出した情報がセッション管理テーブル22に記憶されている場合に、応答パケットを通過させると判定し、記憶されていない場合に、応答パケットを遮断すると判定する。また、ラベル付加部25bは、位置判定部27bから取得した「処理位置(外部ネットワークからの通信フロー)」が「Last」である場合には、CPU使用率が閾値を超える場合であっても、ファイアウォール処理を実行する。そして、ラベル付加部25bは、通過させると判定した応答パケットにラベルを付加して、宛先に対して送信する。
【0038】
一方、ラベル付加部25bは、「処理位置(外部ネットワークからの通信フロー)」が「Last」以外であり、CPU使用率が閾値を超える場合には、当該応答パケットを宛先に対して送信する。つまり、この場合には、ラベル付加部25bは、応答パケットに対してファイアウォール処理を実行することなく、後続のファイアウォール装置に送信する。
【0039】
図5は、ラベルを付加したパケットの例を示す図である。図5に示すように、このパケットは、MAC(Media Access Control)ヘッダとラベルヘッダとIPヘッダとデータ部とを有する。MACヘッダには、送信元のMACアドレスや宛先のMACアドレスが格納され、ラベルヘッダには、ラベル付加部25bによって付加されたれラベルが格納され、IPヘッダには、送信元のIPアドレスや宛先のIPアドレスが格納される。データ部には、送受信対象のデータが格納される。なお、ポート番号やIPアドレス、tcp/udpなどは、IPヘッダやMACヘッダに格納される。
【0040】
ラベル削除部25cは、ラベルが付加されたパケットが受信された場合に、所定の条件を満たすパケットについては、付加されているラベルを削除する処理部である。例えば、ラベル削除部25cは、ラベルが付加された要求パケットを受信した場合、位置判定部27bから「処理位置(内部ネットワークからの通信フロー)」を取得する。そして、ラベル削除部25cは、「処理位置」が「Last」以外の「Middle」などである場合には、当該要求パケットから該当するセッション情報をセッション管理テーブル22から特定する。その後、ラベル削除部25cは、当該要求パケットのラベルを削除することなく、特定したセッション情報を用いて宛先に対して送信する。つまり、この場合には、ラベル付加部25bは、要求パケットに対してファイアウォール処理を実行することなく、後続のファイアウォール装置に送信する。
【0041】
一方、ラベル削除部25cは、「処理位置(内部ネットワークからの通信フロー)」が「Last」である場合には、要求パケットに付加されているラベルを削除する。その後、ラベル削除部25cは、ラベルが削除された要求パケットを宛先に送信する。
【0042】
また、ラベル削除部25cは、ラベルが付加された応答パケットを受信した場合、位置判定部27bから「処理位置(外部ネットワークからの通信フロー)」を取得する。そして、ラベル削除部25cは、「処理位置」が「Last」以外の「Middle」などである場合には、当該応答パケットから該当するセッション情報をセッション管理テーブル22から特定する。その後、ラベル削除部25cは、当該応答パケットのラベルを削除することなく、特定したセッション情報を用いて、宛先に対して送信する。つまり、この場合には、ラベル付加部25bは、応答パケットに対してファイアウォール処理を実行することなく、後続のファイアウォール装置に送信する。
【0043】
一方、ラベル削除部25cは、「処理位置(外部ネットワークからの通信フロー)」が「Last」である場合には、応答パケットに付加されているラベルを削除する。その後、ラベル削除部25cは、ラベルが削除された応答パケットを宛先に送信する。
【0044】
図2に戻り、セッション管理部26は、セッション情報生成部26aとセッション情報共有部26bとを有し、これらによって、通過を許可するパケットのセッション情報を管理する処理部である。
【0045】
セッション情報生成部26aは、ラベル付加部25bから要求パケットを通過させることが通知された場合に、当該要求パケットのセッション情報および当該要求パケットに対する応答パケットのセッション情報を生成する。そして、セッション情報生成部26aは、生成した各セッション情報をセッション管理テーブル22に格納する処理部である。つまり、セッション情報生成部26aは、ファイアウォール処理によって要求パケットを通過させると判定された場合には、要求パケットのセッション情報だけでなく、想定される応答パケットのセッション情報も生成する。
【0046】
例えば、セッション情報生成部26aは、ラベル付加部25bによってラベルが付加された要求パケットから「tcp/udp、プロトコル、受信および宛先のポート番号、送信元および宛先のIPアドレス」を抽出する。そして、セッション情報生成部26aは、抽出した情報を識別する識別としてセッションIDを付加し、セッションIDと抽出した情報とを対応付けてセッション管理テーブル22に格納する。
【0047】
さらに、セッション情報生成部26aは、受信ポート番号と宛先ポート番号とを反転させ、送信元IPアドレスと宛先IPアドレスとを反対にしたセッション情報を生成する。つまり、セッション情報生成部26aは、要求パケットに対する応答パケットのセッション情報を生成してセッション管理テーブル22に格納する。そして、セッション情報生成部26aは、セッション情報を生成したことをセッション情報共有部26bに通知する。
【0048】
一例を挙げると、セッション情報生成部26aが、要求パケットから「udp、rtp、src-port=24538、dst-port=5004、送信元IPアドレス=IP(A)、宛先IPアドレス=IP(B)」を抽出したとする。この場合、セッション情報生成部26aが、抽出したこれらの情報にセッションIDとして2000312を割り与え、要求パケットのセッション情報としてセッション管理テーブル22に格納する。さらに、セッション情報生成部26aは、要求パケットの送信元と宛先とを反転させた情報として、「udp、rtp、src-port=5004、dst-port=24538、送信元IPアドレス=IP(B)、宛先IPアドレス=IP(A)」を生成する。そして、セッション情報生成部26aが、抽出したこれらの情報にセッションIDとして2000313を割り与え、要求パケットに対する応答パケットのセッション情報としてセッション管理テーブル22に格納する。
【0049】
セッション情報共有部26bは、セッション情報生成部26aによってセッション情報がセッション管理テーブル22に格納された場合に、格納されたセッション情報を読み出して、他のファイアウォール装置にマルチキャストで送信する処理部である。一例を挙げると、セッション情報共有部26bは、図3に示したセッションIDが2000312のセッション情報と200313のセッション情報各々を読出し、読み出した各セッション情報を通知するパケットを生成する。そして、セッション情報共有部26bは、生成したパケットの宛先を各ファイアウォール装置として送信する。
【0050】
また、セッション情報共有部26bは、他のファイアウォール装置からセッション情報が付加されたパケット受信した場合には、当該パケットからセッション情報を抽出する。そして、セッション情報共有部26bは、抽出したセッションごとにセッションIDを付加してセッション管理テーブル22に格納する処理部である。
【0051】
図2に戻り、状態管理部27は、負荷監視部27aと位置判定部27bとを有し、これらによって、ファイアウォール装置20の処理負荷や接続位置を管理する処理部である。負荷監視部27aは、ファイアウォール装置のCPU使用率を定期的に取得して、状態管理テーブル23の格納する処理部である。なお、ここでは、ファイアウォール装置の処理負荷としてCPU使用率を監視する場合で説明したが、これに限定されるものではない。例えば、状態管理部27は、ディスク使用率、メモリ使用量、ネットワーク使用量などを監視してもよく、これらを組み合わせて監視してもよい。
【0052】
位置判定部27bは、ラベル付加部25bやラベル削除部25cなどの要求に応じて、状態管理テーブル23に記憶される処理位置を取得して応答する処理部である。例えば、位置判定部27bは、要求パケットを受信したラベル付加部25bまたはラベル削除部25cから、通信フローの位置を要求された場合には、状態管理テーブル23の「内部ネットワークの通信フロー」に格納される情報を読み出して応答する。また、位置判定部27bは、応答パケットを受信したラベル付加部25bまたはラベル削除部25cから、通信フローの位置を要求された場合には、状態管理テーブル23の「外部ネットワークの通信フロー」に格納される情報を読み出して応答する。
【0053】
[処理の流れ]
次に、図6と図7を用いて、ファイアウォール装置20が実行する処理の流れを説明する。ここでは、図6を用いて要求パケット受信時の処理の流れと、図7を用いて応答パケット受信時の処理の流れを説明する。
【0054】
(要求パケット受信時)
図6は、ファイアウォール装置が要求パケットを受信した場合の処理の流れを示すフローチャートである。図6に示すように、ファイアウォール装置20のパケット制御部21は、内部インタフェース部21aを介して要求パケットを受信する(S101肯定)。すると、ラベルチェック部25aは、要求パケットにラベルが付加されているか否かを判定する(S102)。
【0055】
ラベルが付加されていない場合(S102否定)、ラベル付加部25bは、状態管理テーブル23のCPU使用率を参照して、CPUがbusyであるか否かを判定する(S103)。つまり、ラベル付加部25bは、CPU使用率が閾値を超えるか否かを判定する。そして、CPUがbusyでない場合(S103否定)、ラベル付加部25bは、パケットを通過許可と判定し(S104)、判定対象の要求パケットにラベルを付加する(S105)。
【0056】
その後、セッション情報生成部26aが、要求パケットのセッション情報と応答パケットのセッション情報を生成してセッション管理テーブル22に格納し、セッション情報共有部26bが、各セッション情報を他のファイアウォール装置に送信する(S106)。
【0057】
そして、ラベル削除部25cによって処理位置がLastでないと判定された場合(S107否定)、パケット制御部21は、ラベルが付加された要求パケットを、外部インタフェース部21bを介して宛先に送信する(S108)。
【0058】
一方、ラベル削除部25cは、位置判定部27bから取得した処理位置がLastであった場合(S107肯定)、要求パケットに付加されたラベルを削除する(S109)。そして、パケット制御部21は、ラベルが削除された要求パケットを、外部インタフェース部21bを介して宛先に送信する(S108)。
【0059】
また、S103において、ラベル付加部25bは、状態管理テーブル23のCPU使用率を参照して結果、CPUがbusyであると判定した場合(S103肯定)、位置判定部27bから処理位置を取得して、処理位置がLastであるか否かを判定する(S110)。
【0060】
そして、ラベル付加部25bは、処理位置がLastである場合には(S110肯定)、S104以降の処理を実行する。また、処理位置がLastでない場合には(S110否定)、パケット制御部21は、ファイアウォール処理を実施することなく、外部インタフェース部21bを介して、要求パケットを宛先に送信する(S108)。
【0061】
また、S102において、要求パケットにラベルが付加されていると判定された場合(S102肯定)、ラベル削除部25cは、S107以降の処理を実行する。
【0062】
(応答パケット受信時)
図7は、ファイアウォール装置が応答パケットを受信した場合の処理の流れを示すフローチャートである。図7に示すように、ファイアウォール装置20のパケット制御部21は、外部インタフェース部21bを介して応答パケットを受信する(S201肯定)。すると、ラベルチェック部25aは、応答パケットにラベルが付加されているか否かを判定する(S202)。
【0063】
ラベルが付加されていない場合(S202否定)、ラベル付加部25bは、状態管理テーブル23のCPU使用率を参照して、CPUがbusyであるか否かを判定する(S203)。そして、CPUがbusyでない場合(S203否定)、ラベル付加部25bは、当該応答パケットのセッション情報がセッション管理テーブル22に記憶されているか否かを判定する(S204)。一方、ラベルが付加されている場合(S202肯定)、ファイアウォール装置20は、S207を実行する。
【0064】
そして、ラベル付加部25bは、当該応答パケットのセッション情報がセッション管理テーブル22に記憶されている場合(S204肯定)、応答パケットを通過許可と判定し(S205)、応答パケットにラベルを付加する(S206)。
【0065】
その後、ラベル削除部25cによって処理位置がLastでないと判定された場合(S207否定)、パケット制御部21は、ラベルが付加された応答パケットを、内部インタフェース部21aを介して宛先に送信する(S208)。
【0066】
一方、ラベル削除部25cは、位置判定部27bから取得した処理位置がLastであった場合(S207肯定)、応答パケットに付加されたラベルを削除する(S209)。そして、パケット制御部21は、ラベルが削除された応答パケットを、内部インタフェース部21aを介して宛先に送信する(S208)。
【0067】
また、S204において、ラベル付加部25bは、当該応答パケットのセッション情報がセッション管理テーブル22に記憶されていないと判定した場合(S204否定)、通過が許可できない応答パケットと判定する。その結果、ラベル付加部25bは、応答パケットを破棄して(S210)、処理を終了する。
【0068】
また、S203において、ラベル付加部25bは、状態管理テーブル23のCPU使用率を参照した結果、CPUがbusyであると判定した場合(S203肯定)、位置判定部27bから処理位置を取得して、処置位置がLastであるか否かを判定する(S211)。
【0069】
そして、ラベル付加部25bは、処理位置がLastである場合には(S211肯定)、S204以降の処理を実行する。また、処理位置がLastでない場合には(S211否定)、パケット制御部21は、ファイアウォール処理を実施することなく、内部インタフェース部21aを介して、応答パケットを宛先に送信する(S208)。
【0070】
[実施例1による効果]
直列に接続された実施例1の各ファイアウォール装置は、要求パケットを処理した場合に、要求パケットのセッション情報と応答パケットのセッション情報とを送信することで、各ファイアウォール装置で同じセッション情報を保持することができる。また、各ファイアウォール装置は、要求パケットまたは応答パケットを処理した場合に、処理したことを示すラベルを付加して後続のファイアウォール装置に送信するので、同じパケットを2回処理することを防止できる。また、各ファイアウォール装置は、自装置の処理負荷が高い場合には、自装置で処理せずに他のファイアウォール装置に処理を委託することができる。
【0071】
このように、ファイアウォール装置を直列に接続した場合でも、いずれかの装置でファイウォール処理を実施することができ、処理された場合には、処理されたパケットの経路を共有できる。この結果、負荷分散装置を用いずとも、ファイアウォール装置の処理負荷を分散することができ、ファイアウォール装置の処理能力の向上を図ることができる。また、要求パケットおよび応答パケットの各セッション情報を共有することで、要求パケットと応答パケットの処理を、それぞれ別々のファイアウォール装置で実施することもできる。
【0072】
また、ファイアウォール装置の処理の拡張を構成するネットワークにおいて、直列型で複数の装置を配置することができる。また、処理済みのパケットではラベルが付加され直列型の最終尾の装置でラベルが削除されることにより、従来必要であった前段の負荷分散装置が不要になる。また、装置の冗長性を変更する場合も直列型の装置配置を変更するのみであり、システム構成の見直しが必要なく追加や削除が可能となる。
【実施例2】
【0073】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【0074】
(パケット)
実施例1では、クライアント装置が外部ネットワークのサーバに対して送信されるパケットを要求パケットとし、外部ネットワークのサーバが要求パケットに対して応答したパケットを応答パケットして説明したが、これに限定されるものではない。例えば、外部ネットワーク側からクライアント装置へ送信されたパケットを要求パケットとすることもできる。また、実施例1では、UDPのRTPを例にしたが、これに限定されるものではなく、様々なプロトコルを用いることができる。
【0075】
(バイパス機能)
また、各ファイアウォール装置のインタフェースは、バイパス機能を有していてもよい。これにより、電源障害やソフト異常などにより装置が停止した場合は、2つのインタフェースを自動的にリレーにより連結する。この結果、なんらかの異常でファイアウォール装置が停止した場合は、バイパスモードでパケットを通過して通信停止を防ぐ働きをすることもできる。
【0076】
(システム)
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0077】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、例えば、ラベル削除部25cを有しない構成など、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0078】
(ハードウェア構成)
図8は、ファイアウォール装置のハードウェア構成の例を示す図である。図8に示すように、コンピュータ100は、CPU102、入力装置103、出力装置104、通信インタフェース105、媒体読取装置106、HDD(Hard Disk Drive)107、RAM(Random Access Memory)108を有する。また、図7に示した各部は、バス101で相互に接続される。
【0079】
入力装置103は、マウスやキーボードであり、出力装置104は、ディスプレイなどであり、通信インタフェース105は、NIC(Network Interface Card)などのインタフェースである。HDD107は、図2に示した各テーブルに記憶される各情報を記憶する。記録媒体の例としてHDD107を例に挙げたが、ROM(Read Only Memory)、RAM、CD−ROM等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記憶媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。CPU102は、図2に示した各機能を実行する。
【0080】
また、HDD107に、図2に示した各処理部の制御を実行するファイアウォール処理プログラム107aを格納しておく。そして、CPU102が、ファイアウォール処理プログラム107aを読み出してRAM108に展開することで、図2等で説明した各機能を実行するファイアウォール処理プロセス108aを動作させることもできる。すなわち、ファイアウォール処理プロセス108aは、図2に記載したラベル処理部25、セッション管理部26、状態管理部27と同様の機能を実行する。このようにコンピュータ100は、プログラムを読み出して実行することでファイアウォール装置の機能を実行する情報処理装置として動作する。
【0081】
また、コンピュータ100は、媒体読取装置106によって記録媒体からファイアウォール処理プログラム107aを読み出し、読み出されたファイアウォール処理プログラム107aを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、コンピュータ100によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【0082】
1、2、3 クライアント装置
10、11、12、20 ファイアウォール装置
21 パケット制御部
21a 内部インタフェース部
21b 外部インタフェース部
22 セッション管理テーブル
23 状態管理テーブル
25 ラベル処理部
25a ラベルチェック部
25b ラベル付加部
25c ラベル削除部
26 セッション管理部
26a セッション情報生成部
26b セッション情報共有部
27 状態管理部
27a 負荷監視部
27b 位置判定部

【特許請求の範囲】
【請求項1】
第1の装置から第2の装置へ送信される要求パケット、または、前記要求パケットの応答として第2装置から第1装置へ送信される応答パケットを受信した場合に、受信されたパケットに他のファイアウォール装置で処理されたことを示す識別子が付加されているか否かを判定する判定部と、
前記識別子が付加されていないと判定された要求パケットのセッション情報および前記応答パケットのセッション情報を生成する生成部と、
前記生成された各セッション情報を記憶部に格納し、前記各セッション情報を他のファイアウォール装置に通知する通知部と、
前記識別子が付加されていると判定された要求パケット、または、前記識別子が付加されていないと判定された要求パケットに前記識別子を付加した要求パケットを、前記第2の装置に対して送信する送信部と、
前記識別子が付加されていると判定された応答パケット、または、前記識別子が付加されていないと判定された応答パケットのセッション情報が前記記憶部に記憶されている場合に前記識別子を付加した応答パケットを、前記第1の装置に対して送信する応答部と、
を有することを特徴とするファイアウォール装置。
【請求項2】
前記生成部は、前記識別子が付加されていないと判定された場合かつ自装置の処理負荷が所定値を超えない場合に、前記各セッション情報を生成し、
前記送信部は、自装置の処理負荷が所定値を超える場合には、前記要求パケットに前記識別子を付加することなく、前記第2の装置に対して送信することを特徴とする請求項1に記載のファイアウォール装置。
【請求項3】
前記送信部は、前記識別子が付加された要求パケットを送信するのに際して、複数のファイアウォール装置のうち自装置が前記要求パケットの経路上で前記第2装置に最も隣接する装置である場合に、前記識別子を削除して送信することを特徴とする請求項1または2に記載のファイアウォール装置。
【請求項4】
前記応答部は、前記識別子が付加された応答パケットを送信するのに際して、複数のファイアウォール装置のうち自装置が前記応答パケットの経路上で前記第1装置に最も隣接する装置である場合に、前記識別子を削除して送信することを特徴とする請求項1または2に記載のファイアウォール装置。
【請求項5】
ファイアウォール装置に、
第1の装置から第2の装置へ送信された要求パケット、または、前記要求パケットの応答として第2装置から第1装置へ送信された応答パケットを受信した場合に、受信されたパケットに他のファイアウォール装置で処理されたことを示す識別子が付加されているか否かを判定し、
前記識別子が付加されていないと判定した要求パケットのセッション情報および前記応答パケットのセッション情報を生成し、
前記生成した各セッション情報を記憶部に格納するとともに、前記各セッション情報を他のファイアウォール装置に通知し、
前記識別子が付加されていると判定した要求パケット、または、前記識別子が付加されていないと判定した要求パケットに前記識別子を付加した要求パケットを、前記第2の装置に対して送信し、
前記識別子が付加されていると判定した応答パケット、または、前記識別子が付加されていないと判定した応答パケットのセッション情報が前記記憶部に記憶されている場合に前記識別子を付加した応答パケットを、前記第1の装置に対して送信する、
処理を実行させることを特徴とするファイアウォール装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−16044(P2013−16044A)
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願番号】特願2011−148626(P2011−148626)
【出願日】平成23年7月4日(2011.7.4)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】