(57)【要約】【課題】ファイアウォール装置の負荷を低減すること。【解決手段】応答パケットの属性をキーとして、パケットの属性とリクエストパケットが通過したファイアウォール装置とが対応付けられて記述された振り分け情報テーブルを検索し、前記応答パケットの属性に対応付けられたファイアウォール装置を検出し、検出したファイアウォール装置に前記応答パケットを送信する。【選択図】図２
2013132021.tif 000002
【特許請求の範囲】
【請求項１】
複数のファイアウォール装置と接続する負荷分散装置であって、
パケットの属性とリクエストパケットが通過したファイアウォール装置とが対応付けられて記述された振り分け情報テーブルを記憶する記憶部と、
前記リクエストパケットに対する応答パケットを受信する受信部と
前記応答パケットの属性をキーとして、前記振り分け情報テーブルを検索し、前記応答パケットの属性に対応付けられたファイアウォール装置を検出する制御部と
検出したファイアウォール装置に前記応答パケットを送信する送信部と、
を備える負荷分散装置。
【請求項２】
前記複数のファイアウォール装置の異常を検知する検知部、
を更に備え、
前記検知部が前記複数のファイアウォール装置の内の第１のファイアウォール装置の異常を検知した場合に、
前記制御部は、前記振り分け情報の前記第１のファイアウォール装置を前記複数のファイアウォール装置の内の第２のファイアウォール装置に変更することを特徴とする請求項１記載の負荷分散装置。
【請求項３】
前記制御部は、前記振り分け情報の前記第１のファイアウォール装置を前記第２のファイアウォール装置に変更する前に、前記振り分け情報テーブルの内の前記第１のファイアウォール装置と対応付けられているパケットの属性を前記第２のファイアウォール装置に送信することを特徴とする請求項２記載の負荷分散装置。
【請求項４】
前記複数のファイアウォール装置からパケットの属性が記述された振り分け情報を受信する振り分け情報受信部を更に備え、
前記制御部は、受信した振り分け情報と前記振り分け情報を送信したファイアウォール装置に基づいて、前記振り分け情報テーブルを更新することを特徴とする請求項１乃至３のいずれか1項に記載の負荷分散装置。
【請求項５】
複数のファイアウォール装置と接続し、パケットの属性とリクエストパケットが通過したファイアウォール装置とが対応付けられて記述された振り分け情報テーブルを記憶する記憶部を備える負荷分散装置が実行する負荷分散方法であって、
前記リクエストパケットに対する応答パケットを受信し、
前記応答パケットの属性をキーとして、前記振り分け情報テーブルを検索し、前記応答パケットの属性に対応付けられたファイアウォール装置を検出し、
検出したファイアウォール装置に前記応答パケットを送信する、
ことを特徴とする負荷分散方法。
【請求項６】
複数のファイアウォール装置と接続し、パケットの属性とリクエストパケットが通過したファイアウォール装置とが対応付けられて記述された振り分け情報テーブルを記憶する記憶部を備えるコンピュータに、
前記リクエストパケットに対する応答パケットを受信し、
前記応答パケットの属性をキーとして、前記振り分け情報テーブルを検索し、前記応答パケットの属性に対応付けられたファイアウォール装置を検出し、
検出したファイアウォール装置に前記応答パケットを送信する
処理を実行させるプログラム。
【請求項７】
複数のファイアウォール装置と前記複数のファイアウォール装置と接続する第１および第２の負荷分散装置と備えるシステムであって、
前記第１および第２の負荷分散装置は、
パケットの属性とリクエストパケットが通過したファイアウォール装置とが対応付けられて記述された振り分け情報テーブルを記憶する記憶部と、
前記リクエストパケットに対する応答パケットを受信する受信部と
前記応答パケットの属性をキーとして、前記振り分け情報テーブルを検索し、前記応答パケットの属性に対応付けられたファイアウォール装置を検出する制御部と
検出したファイアウォール装置に前記応答パケットを送信する送信部と、
を備え、
前記複数のファイアウォール装置は、受信したリクエストパケットに対するパケットチェックを行い、前記受信したリクエストパケットの通過を許可した場合、前記リクエストパケットの属性が記述された振り分け情報を前記第１および第２の負荷分散装置の少なくとも一方に送信し、
前記振り分け情報を受信した前記第１または前記第２の負荷分散装置の前記制御部は、前記振り分け情報と前記振り分け情報を送信したファイアウォール装置に基づいて、前記振り分け情報テーブルを更新することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負荷分散装置、負荷分散方法、プログラム、およびシステムに関する。
【背景技術】
【０００２】
大容量な高速通信の普及などにより、通信トラフィックが増大すると、外部ネットワークとの境界に設置されるファイアウォールのトラフィック処理能力が通信性能のボトルネックとなるケースが増える。
【０００３】
そのため、このような状況に対応するため、複数のファイアウォールを設置し、負荷分散させて対応している。
【０００４】
図１は、従来のシステムおよび負荷分散を説明する図である。
ここでは、ノード１２０１−１からノード１２０１−２にリクエストパケットが送信され、ノード１２０１−２からノード１２０１−１に応答パケットが送信される例について説明する。
【０００５】
ノード１２０１−１から送信されたリクエストパケットは、インターネット１６０１およびルータ１３０１−１を介してロードバランサ（ＬＢ）１４０１−１に到着する。
【０００６】
ＬＢ１４０１−１は、ＬＢ１４０１−１と接続しているファイアウォール（ＦＷ）１５０１−１〜１５０１−３のうち、リクエストパケットを振り分けるファイアウォールを任意の負荷分散アルゴリズムに用いて決定し、決定したＦＷにリクエストパケットを送信する。ここでは、ＬＢ１４０１−１は、ＦＷ１５０１−１にリクエストパケットを送信したものとする。
【０００７】
ＦＷ１５０１−１は、リクエストパケットの送信元アドレスや送信元ポートなどに基づいて、リクエストパケットを通過させて良いか判断するパケットチェックを実施する。
【０００８】
パケットチェックで問題が無い場合、ＦＷ１５０１−１は、リクエストパケットを通過させる、すなわちＬＢ１４０１−２にリクエストパケットを送信する。さらに、ＦＷ１５０１−１は、リクエストパケットに関するセッション情報が未登録の場合、セッション情報テーブルにセッション情報を追加する。また、ＦＷ１５０１−１は、リクエストパケットに関するセッション情報が登録済みの場合、セッション情報テーブルのセッション情報を更新する。
【０００９】
ＦＷ１５０１−１は、追加または更新したセッション情報をＦＷ１５０１−２、１５０１−３に送信する。
ＦＷ１５０１−２、１５０１−３は、それぞれ自身が保持するセッション情報管理テーブルに受信したセッション情報を反映する。このように、各ＦＷ１５０１が保持するセッション情報は同期し、各ＦＷ１５０１は同一のセッション情報を有する。
【００１０】
ＦＷ１５０１−１を通過したリクエストパケットは、ＬＢ１４０１−２およびルータ１３０１−２を通過し、ノード１２０１−２に到着する。
ノード１２０１−２は、リクエストパケットに対する応答パケットをノード１２０１−１に向けて送信する。
送信された応答パケットは、ルータ１３０１−２を介してＬＢ１４０１−２に到着する。
【００１１】
ＬＢ１４０１−２は、ＬＢ１４０１−２と接続しているＦＷ１５０１−１〜１５０１−３のうち、応答パケットを振り分けるファイアウォールを任意の負荷分散アルゴリズムに用いて決定し、決定したＦＷに応答パケットを送信する。ここでは、ＬＢ１４０１−２は、ＦＷ１５０１−３に応答パケットを送信したものとする。
ＦＷ１５０１−３は、応答パケットを通過させても良いか判断するパケットチェックを実施する。
【００１２】
ここで応答パケットに対するパケットチェックに関して説明すると、ＦＷ１５０１は、ＦＷ１５０１の通過を許可された往きのパケット（リクエストパケット）に対する帰りのパケット（応答パケット）を通過させるようにパケットチェックを行う。
【００１３】
詳細にはＦＷ１５０１−３は、自身が保持するセッション情報テーブルを参照し、応答パケットに対応するセッション情報が記載されているか否かに応じて、パケットを通過させるか否か判定する。
【００１４】
パケットチェックで問題が無い場合、ＦＷ１５０１−３は、応答パケットを通過させる、すなわちＬＢ１４０１−１に応答パケットを送信する。
応答パケットは、ルータ１３０１−１およびインターネット１６０１を介して、ノード１２０１−１に到着する。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２０１０−１０８４７９号公報
【特許文献２】特開２００４−３５０１８８号公報
【特許文献３】特開２００７−３１２４３４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
ファイアウォールの両側に設置された従来のロードバランサは、負荷分散アルゴリズムに従い(優先順位/ラウンドロビン/最小コネクション数/最小クライアント数/CPU負荷/応答時間など)、それぞれ独自に負荷分散を実施している。
【００１７】
そのため、リクエストパケット（往きのパケット）と応答パケット（帰りのパケット）が異なるファイアウォールを通過する場合がある。
【００１８】
このような場合では、各ファイアウォールは、往きのパケットが帰りのパケットとは異なるファイアウォールを通過したとしても、応答パケットに対するパケットチェックを行うため、それぞれのファイアウォールが保持するセッション情報を同期して保持しておく必要があった。
【００１９】
しかしながら、ファイアウォール間でセッション情報の同期を行うと、セッション数の増加に伴うメモリ使用量の圧迫や、セッション情報の更新処理や、同期情報の通信負荷が発生するため、ファイアウォールの負荷が大きくなり、ファイアウォールのリソースが圧迫されるという問題があった。
本発明の課題は、ファイアウォール装置の負荷を低減することである。
【課題を解決するための手段】
【００２０】
実施の形態の負荷分散装置は、複数のファイアウォール装置と接続し、記憶部と、受信部と、制御部と、送信部と、を備える。
前記記憶部は、パケットの属性とリクエストパケットが通過したファイアウォール装置とが対応付けられて記述された振り分け情報テーブルを記憶する。
【００２１】
前記受信部は、前記リクエストパケットに対する応答パケットを受信する。
前記制御部は、前記応答パケットの属性をキーとして、前記振り分け情報テーブルを検索し、前記応答パケットの属性に対応付けられたファイアウォール装置を検出する。
前記送信部は、検出したファイアウォール装置に前記応答パケットを送信する。
【発明の効果】
【００２２】
実施の形態の負荷分散装置によれば、応答パケットをリクエストパケットが通過したファイアウォール装置と同一のファイアウォール装置に振り分けることが出来る。
【００２３】
それにより、ファイアウォール装置は、ファイアウォール装置間でセッション情報を同期して保持する必要が無くなるため、通信負荷やメモリ使用量が少なくなり、負荷が低減されるという効果を奏する。
【図面の簡単な説明】
【００２４】
【図１】従来のシステムおよび負荷分散を説明する図である。
【図２】実施の形態に係るシステムの構成図である。
【図３】実施の形態に係るロードバランサおよびファイアウォールの構成図である。
【図４】セッション情報管理テーブルの例である
【図５】装置情報テーブルの例である。
【図６】セッション情報テーブルの例である。
【図７Ａ】実施の形態に係る振り分け処理のフローチャートである。
【図７Ｂ】実施の形態に係る振り分け処理のフローチャートである。
【図８Ａ】ＬＢ４０１−１に対するセッション情報の更新通知を示す図である。
【図８Ｂ】ＬＢ４０１−２に対するセッション情報の更新通知を示す図である。
【図９】装置情報を示す図である。
【図１０】実施の形態に係る引き継ぎ処理のフローチャートである。
【図１１】情報処理装置（コンピュータ）の構成図である。
【発明を実施するための形態】
【００２５】
以下、図面を参照しながら実施の形態について説明する。
図２は、実施の形態に係るシステムの構成図である。
【００２６】
システム１０１は、ノード２０１−１、２０１−２、ルータ３０１−１、３０１−２、ロードバランサ（ＬＢ）４０１−１、４０１−２、およびファイアウォール（ＦＷ）５０１−１、５０１−２、５０１−３を備える。
ノード２０１は、各種処理を行い、パケットを送信または受信する装置である。
ノード２０１は、例えば、パーソナルコンピュータ、サーバ、携帯電話、または携帯端末等の情報処理装置である。
ノード２０１−１は、インターネット６０１を介してルータ３０１−１と接続している。
ノード２０１−２は、ルータ３０１−２と接続している。
【００２７】
尚、以下の説明または図においてノード２０１−１、２０１−２をそれぞれノード（Ａ）、ルータ（Ｂ）と記載する場合がある。
ルータ３０１は、データを他のネットワークや機器に中継する通信装置である。
ルータ３０１−１は、インターネット６０１を介してノード２０１、およびＬＢ４０１−１と接続している。
ルータ３０１−２は、ノード２０１−２およびＬＢ４０１−２と接続している。
尚、以下の説明または図においてルータ３０１−１、３０１−２をそれぞれルータ（Ａ）、ルータ（Ｂ）と記載する場合がある。
ＬＢ４０１は、ルータ３０１から受信したパケットをＦＷ５０１のいずれかに振り分ける。また、ＬＢ４０１は、ＦＷ５０１から受信したパケットをルータ３０１に送信する。
ＬＢ４０１−１は、ルータ３０１−１、ＦＷ５０１−１〜５０１−３と接続している。
ＬＢ４０１−２は、ルータ３０１−２、ＦＷ５０１−１〜５０１−３と接続している。
【００２８】
尚、以下の説明または図においてＬＢ４０１−１、４０１−２をそれぞれＬＢ（Ａ）、ＬＢ（Ｂ）と記載する場合がある。
ＦＷ５０１は、条件にしたがって、受信したパケットを通過または破棄する。
ＦＷ５０１は、ＬＢ４０１−１、４０１−２と接続している。
尚、以下の説明または図においてＦＷ５０１−１、５０１−２、５０１−３をそれぞれルＦＷ（Ａ）、ＦＷ（Ｂ）、ＦＷ（Ｃ）と記載する場合がある。
【００２９】
図３は、実施の形態に係るロードバランサおよびファイアウォールの構成図である。
ＬＢ４０１−１の構成はＬＢ４０１−２と同様なため、ここではＬＢ４０１−１について説明する。
【００３０】
ＬＢ４０１−１は、セッション情報受信部４０２−１、セッション情報通知部４０３−１、装置情報収集部４０４−１、セッション管理部４０５−１、振分先ＦＷ問合わせ部４０６−１、負荷分散ポリシー管理部４０７−１、パケット送受信部４０８−１、および記憶部４０９−１を備える。
【００３１】
セッション情報受信部４０２−１は、ＦＷ５０１からセッション情報を受信する。
セッション情報通知部４０３−１は、セッション情報をＦＷ５０１に通知する。
【００３２】
装置情報収集部４０４−１は、定期的にＦＷ５０１から装置情報を収集する。装置情報収集部４０４−１は、収集した装置情報を装置情報テーブルに書き込む。装置情報の内容の詳細については後述する。
【００３３】
セッション管理部４０５−１は、ＦＷ５０１から受信したセッション情報を管理し、セッション情報管理テーブル４１１−１の更新を行う。
振分先ＦＷ問合わせ部４０６−１は、セッション情報管理テーブル４１１−１を検索し、パケットの振り分け先のＦＷ５０１を検出する。
【００３４】
負荷分散ポリシー管理部４０７−１は、負荷分散ポリシーに基づいて、パケットの振り分け先のＦＷ５０１を決定する。
パケット送受信部４０８−１は、パケットの送信および受信を行う。
記憶部４０９−１は、セッション情報管理テーブル４１１−１および装置情報テーブル４１２−１を有する。
【００３５】
記憶部４０９−１は、データを格納する装置である。記憶部４０９−１は、例えば、磁気ディスク装置、半導体記憶装置などである。
ここで、セッション情報管理テーブルおよび装置情報テーブルについて説明する。
【００３６】
図４は、セッション情報管理テーブルの例である。
セッション情報管理テーブル４１１−１は、項目として、セッションID、振り分け先、宛先アドレス、送信元アドレス、宛て先ポート、送信元ポート、およびセッション有効フラグを有する。
【００３７】
セッションIDは、セッションを識別する識別子（ＩＤ）である。
振り分け先は、パケットの振り分け先のＦＷを示す。振り分け先には、例えば、振り分け先のＦＷに割り当てられたＩＤ（識別子）が記述される。
【００３８】
宛先アドレスは、パケットの送信先であるノードのＩＰアドレスである。
送信元アドレスは、パケットの送信元であるノードのＩＰアドレスである。
宛て先ポートは、パケットの送信先であるノードが使用しているポートである。
送信元ポートは、パケットの送信元であるノードが使用しているポートである。
セッション有効フラグは、セッションが有効であるか否かを示す。「有効」はセッションが有効であることを示し、「無効」はセッションが無効であることを示す。
【００３９】
図５は、装置情報テーブルの例である。
装置情報テーブル４１２−１は、項目として、装置ＩＤ、ＣＰＵ負荷率、セッション保持数、メモリ利用状況、およびトラフィック（ＰＰＳ）を有する。
装置ＩＤは、ＦＷに割り当てられたＩＤ（識別子）である。
【００４０】
ＣＰＵ負荷率は、Central Processing Unit（ＣＰＵ）の使用率を示す。
セッション保持数は、ＦＷが保持しているセッションの数を示す。
メモリ利用状況は、メモリの使用率を示す。
【００４１】
トラフィック（ＰＰＳ）は、１秒当たりの処理パケット数を示す。トラフィックの単位は、Packet Per Second（ＰＰＳ）である。
ＬＢ４０１−２は、セッション情報受信部４０２−２、セッション情報通知部４０３−２、装置情報収集部４０４−２、セッション管理部４０５−２、振分先ＦＷ問合わせ部４０６−２、負荷分散ポリシー管理部４０７−２、パケット送受信部４０８−２、および記憶部４０９−２を備える。
記憶部４０９−２は、セッション情報管理テーブル４１１−２および装置情報テーブル４１２−２を有する。
【００４２】
セッション情報受信部４０２−２、セッション情報通知部４０３−２、装置情報収集部４０４−２、セッション管理部４０５−２、振分先ＦＷ問合わせ部４０６−２、負荷分散ポリシー管理部４０７−２、パケット送受信部４０８−２、記憶部４０９−２、セッション情報管理テーブル４１１−２、および装置情報テーブル４１２−２は、それぞれ、セッション情報受信部４０２−１、セッション情報通知部４０３−１、装置情報収集部４０４−１、セッション管理部４０５−１、振分先ＦＷ問合わせ部４０６−１、負荷分散ポリシー管理部４０７−１、パケット送受信部４０８−１、記憶部４０９−１、セッション情報管理テーブル４１１−１、および装置情報テーブル４１２−１と同様の機能又は構成を有するため説明は省略する。
【００４３】
ＦＷ５０１−１は、パケット送受信部５０２、タイマ管理部５０３、セッション情報管理部５０４、セッション情報通知部５０５、セッション情報受信部５０６、装置情報通知部５０７、パケットチェック部５０８、および記憶部５０９を備える。
【００４４】
パケット送受信部５０２は、パケットの送信および受信を行う。
タイマ管理部５０３は、セッション情報テーブル５１１のレコードの有効時間を管理する。
セッション情報管理部５０４は、セッション情報テーブル５１１のレコードの生成や削除等の更新処理を行う。
セッション情報通知部５０５は、セッション情報をＬＢ４０１に通知する。
セッション情報受信部５０６は、セッション情報を受信する。
【００４５】
装置情報通知部５０７は、装置情報をＬＢ４０１に通知する。装置情報は、装置ＩＤ、ＣＰＵ負荷率、セッション保持数、トラフィック量を含む。
パケットチェック部５０８は、受信したパケットが通過可能であるか否かチェックする。パケットチェック部５０８は、受信したパケットが通過可能でない場合、受信したパケットを破棄する。
【００４６】
記憶部５０９は、セッション情報テーブル５１１を有する。記憶部５０９は、データを格納する装置である。記憶部５０９は、例えば、磁気ディスク装置、半導体記憶装置などである。
【００４７】
図６は、セッション情報テーブル５１１の例を示す図である。
セッション情報テーブル５１１の各レコードには、セッション情報が記載される。
セッション情報テーブル５１１は、項目として、セッションID、宛先アドレス、送信元アドレス、宛て先ポート、送信元ポート、およびセッション有効フラグを有する。
【００４８】
セッションIDは、セッションを識別する識別子（ＩＤ）である。
宛先アドレスは、パケットの送信先であるノードのＩＰアドレスである。
送信元アドレスは、パケットの送信元であるノードのＩＰアドレスである。
宛て先ポートは、パケットの送信先であるノードが使用しているポートである。
【００４９】
送信元ポートは、パケットの送信元であるノードが使用しているポートである。
セッション有効フラグは、セッションが有効であるか否かを示す。「有効」はセッションが有効であることを示し、「無効」はセッションが無効であることを示す。
尚、ＦＷ５０１−２、５０１−３は、ＦＷ５０１−１と同様の機能又は構成を有するため、説明は省略する。
【００５０】
次に、リクエストパケットの振り分けから応答パケットの振り分けまでの処理の流れを説明する。
【００５１】
図７Ａおよび図７Ｂは、実施の形態に係る振り分け処理のフローチャートである。
図７Ａおよび図７Ｂにおいて、左側はＬＢ４０１−１の処理を示し、真ん中はＦＷ５０１−１の処理を示し、右側はＬＢ４０１−２の処理を示す。
【００５２】
ここでは、ノード２０１−１がリクエストパケット（通信要求）をノード２０１−２に送信し、ノード２０１−２からリクエストパケットに対する応答である応答パケットを受信する場合について説明する。
【００５３】
最初に、ノード２０１−１は、ノード２０１−２へのリクエストパケットを送信する。リクエストパケットは、インターネット６０１およびルータ３０１−１を介して、ＬＢ４０１−１に到着する。
【００５４】
ステップＳ８０１において、パケット送受信部４０８−１は、リクエストパケットを受信し、負荷分散ポリシー管理部４０７−１は、任意の負荷分散アルゴリズムに従って振り分先のＦＷを決定する。
【００５５】
ここでは、負荷分散ポリシー管理部４０７−１は、ＦＷ５０１−１を振り分け先に決定したものとする。パケット送受信部４０８−１は、リクエストパケットをＦＷ５０１−１に送信する。
ステップＳ８０２において、パケット送受信部５０２は、リクエストパケットを受信する。
【００５６】
ステップＳ８０３において、パケットチェック部５０８は、リクエストパケットに対するパケットチェックを行う。すなわち、パケットチェック部５０８は、リクエストパケットを通過させるか否か判定する。リクエストパケットを通過させる場合、制御はステップＳ８０５へ進み、リクエストパケットを通過させない場合、制御はステップＳ８０４へ進む。尚、パケットチェック部５０８は、リクエストパケットに含まれる送信元アドレスや送信元ポートなどの情報が予め定められた条件を満たしているか否かに応じて、リクエストパケットを通過させるか否か判定する。
【００５７】
ステップＳ８０４において、パケットチェック部５０８は、リクエストパケットを破棄する。
ステップＳ８０５において、セッション情報管理部５０４は、セッション情報テーブル５１１にリクエストパケットに関するセッション情報があるか否か判定する。セッション情報がある場合、制御はステップＳ８０６に進み、セッション情報が無い場合、制御はステップＳ８０７に進む。
ステップＳ８０６において、セッション情報管理部５０４は、セッション情報テーブル５１１を更新する。
【００５８】
ステップＳ８０７において、セッション情報管理部５０４は、セッション情報テーブル５１１にリクエストパケットに関するセッション情報を追加する。詳細には、セッション情報管理部５０４は、セッション情報テーブル５１１の宛先アドレス、送信元アドレス、宛て先ポート、送信元ポートに、それぞれリクエストパケットの宛先アドレス、送信元アドレス、宛て先ポート、送信元ポートの記述し、セッションＩＤに割り当てたＩＤを記述し、セッション有効フラグに「有効」を記述する。
【００５９】
ステップＳ８０８において、パケット送受信部５０２は、ＬＢ４０１−２にリクエストパケットを送信する。
ステップＳ８０９において、セッション情報通知部５０５は、ＬＢ４０１−１、４０１−２のセッション管理部４０５−１、４０５−２にセッション情報管理テーブル４１１−１、４１１−２の更新の必要があれば、セッション情報の更新通知を送信する。
【００６０】
ここでは、リクエストパケットに関するセッション情報がセッション情報テーブル５１１に追加され、セッション情報の更新通知がＬＢ４０１−１、４０１−２に送信されたとする。
ここで、セッション情報の更新通知について説明する。
【００６１】
図８Ａは、ＬＢ４０１−１に対するセッション情報の更新通知を示す図である。
図８Ｂは、ＬＢ４０１−２に対するセッション情報の更新通知を示す図である
セッション情報の更新通知は、セッションＩＤ、宛先アドレス、送信元アドレス、宛て先ポート、送信元ポート、セッション通知種別を含む。
【００６２】
セッションIDは、セッションを識別する識別子（ＩＤ）である。
宛先アドレスは、パケットの送信先であるノードのＩＰアドレスである。
送信元アドレスは、パケットの送信元であるノードのＩＰアドレスである。
宛て先ポートは、パケットの送信先であるノードが使用しているポートである。
【００６３】
送信元ポートは、パケットの送信元であるノードが使用しているポートである。
セッション通知種別は、更新通知の種別を示す。セッション通知種別として、追加（add）、削除（del）、または変更（change）が記述される。ＬＢ４０１は、セッション通知種別を参照して、セッション情報管理テーブル４１１のセッション情報を追加、削除、または変更する。
【００６４】
実施の形態において、ＬＢ４０１−１に対するセッション情報の更新通知のセッション情報ＩＤ、宛先アドレスはノード２０１−２のアドレス、送信元アドレスはノード２０１−１のアドレス、宛て先ポートはノード２０１−２のポート番号、送信元ポートはノード２０１−１のポート番号、セッション通知種別は「add」である。
【００６５】
実施の形態において、ＬＢ４０１−２に対するセッション情報の更新通知のセッション情報ＩＤ、宛先アドレスはノード２０１−１のアドレス、送信元アドレスはノード２０１−２のアドレス、宛て先ポートはノード２０１−１のポート番号、送信元ポートはノード２０１−２のポート番号、セッション通知種別は「add」である。
【００６６】
ステップＳ８１０において、セッション情報受信部４０２−１は、セッション情報の更新通知を受信し、セッション管理部４０５−１は、セッション情報の更新通知に基づいてセッション情報管理テーブル４１２−１を更新する。
【００６７】
実施の形態において、セッション情報受信部４０２−１は、セッション情報管理テーブル４１２−１の振り分け先に更新通知の送信元であるＦＷ５０１−１を記述し、セッション情報管理テーブル４１２−１のセッションＩＤ、宛先アドレス、送信元アドレス、宛て先ポート、および送信元ポートに更新通知に含まれるセッションＩＤ、宛先アドレス、送信元アドレス、宛て先ポート、および送信元ポートをそれぞれ記述する。また、セッション情報受信部４０２−１は、セッション情報管理テーブル４１２−１のセッション有効フラグに「有効」を記述する。
【００６８】
ステップＳ８１１において、セッション情報受信部４０２−２は、セッション情報の更新通知を受信し、セッション管理部４０５−２は、セッション情報の更新通知に基づいてセッション情報管理テーブル４１２−２を更新する。
【００６９】
実施の形態において、セッション情報受信部４０２−は、セッション情報管理テーブル４１２−２の振り分け先に更新通知の送信元であるＦＷ５０１−１を記述し、セッション情報管理テーブル４１２−２のセッションＩＤ、宛先アドレス、送信元アドレス、宛て先ポート、および送信元ポートに更新通知に含まれるセッションＩＤ、宛先アドレス、送信元アドレス、宛て先ポート、および送信元ポートをそれぞれ記述する。また、セッション情報受信部４０２−２は、セッション情報管理テーブル４１２−１のセッション有効フラグに「有効」を記述する。
【００７０】
実施の形態において、セッション情報受信部４０２−２は、図８Ｂで示す更新通知を受信し、セッション情報管理テーブル４１２−２を更新したものとする。これにより、ノード２０１−２からノード２０１−１に対するパケットの振り分け先がＦＷ５０１−１であるセッション情報が記述されることになる。
【００７１】
ステップＳ８１２において、パケット送受信部４０８−２は、リクエストパケットを受信し、リクエストパケットをノード２０１−２に送信する。
ノード２０１−２は、リクエストパケットを受信し、各種処理を行う。そして、ノード２０１−２は、ノード２０１−１に対する応答パケットをＬＢ４０１−２に送信する。
【００７２】
ステップＳ８１３において、パケット送受信部４０８−２は、応答パケットを受信する。振分先ＦＷ問合わせ部４０６−２は、応答パケットの振り分け先のＦＷをセッション情報管理テーブル４１１−２から検索する。詳細には、振分先ＦＷ問合わせ部４０６−２は、応答パケットの属性、すなわち応答パケットに含まれる情報である宛先アドレス、送信元アドレス、宛先ポート、送信元ポートを検索キーとして、セッション情報管理テーブル４１１−２を検索する。そして、振分先ＦＷ問合わせ部４０６−２は、セッション情報管理テーブル４１１−２のうち、検索キーに一致するレコードの振り分け先に記述されたＦＷを応答パケットの振り分け先ＦＷとして検出する。振り分け先ＦＷが検出された場合、振分先ＦＷ問合わせ部４０６−２は、検出した振り分け先ＦＷをセッション管理部４０５−２に通知する。
【００７３】
ステップＳ８１４において、振り分け先ＦＷが検出された場合、制御はステップＳ８１５に進み、振り分け先ＦＷが検出されなかった場合、制御はステップＳ８１６に進む。
ステップＳ８１５において、セッション管理部４０５−２は、パケット送受信部４０８−２を介して、応答パケットを検出した振り分け先ＦＷに振り分ける。
【００７４】
上述のようにリクエストパケットは、ＦＷ５０１−１に振り分けられたため、応答パケットの振り分け先として、ＦＷ５０１−１が検出され、応答パケットは、ＦＷ５０１−１に振り分けられたものとする。
【００７５】
ステップＳ８１６において、負荷分散ポリシー管理部４０７−２は、任意の負荷分散アルゴリズムを用いて、振り分け先のＦＷ５０１を決定する。そして、パケット送受信部４０８−２は、決定したＦＷ５０１に応答パケットを送信する。
【００７６】
ステップＳ８１７において、パケット送受信部５０２は、応答パケットを受信する。
ステップＳ８１８において、パケットチェック部５０８は、応答パケットに対するパケットチェックを行う。すなわち、パケットチェック部５０８は、応答パケットを通過させるか否か判定する。応答パケットを通過させる場合、制御はステップＳ８２０へ進み、応答パケットを通過させない場合、制御はステップＳ８１９へ進む。尚、パケットチェック部５０８は、応答パケットに関するセッションの情報がセッション情報テーブル５１１にあるか否かに応じて、応答パケットを通過させるか否か判定する。応答パケットに関するセッションの情報がセッション情報テーブル５１１にある場合、すなわちリクエストパケットを通過させている場合、該リクエストパケットに対する応答パケットも通過させると判定される。
【００７７】
ステップＳ８１９において、パケットチェック部５０８は、応答パケットを破棄する。
ステップＳ８２０において、パケット送受信部５０２は、ＬＢ４０１−１に応答パケットを送信する。
ステップＳ８２１において、パケット送受信部４０８−１は、応答パケットを受信し、応答パケットをノード２０１−１に送信する。
【００７８】
ステップＳ８２２において、セッション情報通知部５０５は、ＬＢ４０１−１、４０１−２のセッション管理部４０５−１、４０５−２にセッション情報管理テーブル４１１−１、４１１−２の更新の必要があれば、セッション情報の更新通知を送信する。
ステップＳ８２３において、セッション情報受信部４０２−１は、セッション情報更新通知を受信し、セッション管理部４０５−１は、セッション情報更新通知に基づいてセッション情報管理テーブルを更新する。
【００７９】
ステップＳ８２４において、セッション情報受信部４０２−２は、セッション情報更新通知を受信し、セッション管理部４０５−２は、セッション情報更新通知に基づいてセッション情報管理テーブルを更新する。
【００８０】
次に、ＦＷが故障等により、動作不能となった場合における他のＦＷへの処理の振り分けおよび情報の引き継ぎについて説明する。
他のＦＷへの処理の振り分けおよび情報の引き継ぎの説明の前に、装置情報の収集について説明する。
【００８１】
ＬＢ４０１の装置情報収集部４０４は、定期的に各ＦＷ５０１の装置情報通知部５０７に装置情報の通知を要求する。要求を受信した装置情報通知部５０７は、装置情報を装置情報収集部４０４に送信する。
【００８２】
図９は、装置情報を示す図である。
装置情報通知部５０７から装置情報収集部４０４に送信される装置情報は、ＣＰＵ負荷率、セッション保持数、メモリ使用状況、トラフィック（ＰＰＳ）を含む。
【００８３】
ＣＰＵ負荷率は、ＦＷのCentral Processing Unit（ＣＰＵ）の使用率を示す。
セッション保持数は、ＦＷが保持しているセッションの数を示す。
メモリ利用状況は、ＦＷのメモリの使用率を示す。
トラフィック（ＰＰＳ）は、ＦＷの１秒当たりの処理パケット数を示す。トラフィックの単位は、Packet Per Second（ＰＰＳ）である。
【００８４】
装置情報を受信した装置情報収集部４０４は、受信した装置情報を装置情報テーブル４１２に反映する。詳細には、装置情報収集部４０４は、装置情報テーブル４１２の装置ＩＤに装置情報の送信元であるＦＷに割り当てられたＩＤ（識別子）を記述し、装置情報テーブル４１２のＣＰＵ負荷率、セッション保持数、メモリ利用状況、およびトラフィック（ＰＰＳ）に装置情報に含まれるＣＰＵ負荷率、セッション保持数、メモリ使用状況、トラフィック（ＰＰＳ）をそれぞれ記述する。
【００８５】
次に他のＦＷへの処理の振り分けおよび情報の引き継ぎについて説明する。
ここでは、ＬＢ４０１−１が異常を検知した場合についての処理について説明する。
【００８６】
図１０は、実施の形態に係る引き継ぎ処理のフローチャートである。
ここで、装置情報収集部４０４−１は、定期的にＦＷ５０１から装置情報を収集しているものとする。
【００８７】
ステップＳ９０１において、装置情報収集部４０４−１は、ＦＷ５０１の異常を検知する。装置情報収集部４０４−１は、ＦＷ５０１から通知される装置情報に基づいて、異常を検知する。装置情報収集部４０４−１は、例えば、ＦＷ５０１から装置情報が通知されない場合や、装置情報に含まれるＣＰＵ負荷率やトラフィック量等が異常な値の場合に、異常を検知と判断する。
【００８８】
実施の形態において、ＦＷ５０１−２に対する異常が検知されたとする。
ステップＳ９０２において、セッション管理部４０５−１は、正常なＦＷ５０１内のいずれかのＦＷ５０１の装置情報通知部５０７に対して、ＬＢ４０１−２にＦＷ５０１−２の異常を通知するよう依頼する。
依頼を受信した装置情報通知部５０７は、ＬＢ４０１−２に対してＦＷ５０１−２の異常を通知する。
【００８９】
ステップＳ９０３において、セッション情報受信部４０２−２は、ＦＷ５０１−２の異常の通知を受信し、セッション管理部４０５−２は、セッション情報管理テーブル４１１−２の内、振り分け先がＦＷ５０１−２であるレコードを削除する。
ステップＳ９０４において、セッション管理部４０５−１は、正常動作中のＦＷ５０１に異常状態のＦＷ５０１−２の処理を引継ぎ可能か否か判定する。
【００９０】
引継ぎ可能か否か判定の判定は、異常状態のＦＷ５０１−２の処理を引き継いだ場合の引き継いだＦＷの負荷を算出し、算出した負荷に基づいて引き継ぎ可能であるか判定する。負荷として、例えば、ＣＰＵ負荷率、セッション保持数、またはメモリ使用状況が用いられる。
【００９１】
例えば、異常状態のＦＷ５０１−２の処理を引き継いだ時、ＦＷ５０１−１のＣＰＵ負荷率、セッション保持数、またはメモリ使用状況が閾値以上となる場合は、ＦＷ５０１−１はリソースに余裕が無くなると判断され、引き継ぎ不可能と判定される。また、異常状態のＦＷ５０１−２の処理を引き継いだ時、ＦＷ５０１−１のＣＰＵ負荷率、セッション保持数、またはメモリ使用状況が閾値未満となる場合は、ＦＷ５０１−１はリソースに余裕があると判断され、引き継ぎ可能と判定される。
【００９２】
尚、処理を引き継いだときのＣＰＵ負荷率、セッション保持数、およびメモリ使用状況は、装置情報テーブル４１２−１に記述された各ＦＷの情報から算出できる。
引継ぎ可能な場合、制御はステップＳ９０６へ進み、引継ぎ可能でない場合、制御はステップＳ９０５へ進む。
【００９３】
実施の形態において、セッション管理部４０５−１は、ＦＷ５０１−１にＦＷ５０１−２の処理を引継ぎ可能か否か判定し、引継ぎ可能であると判定したとする。尚、引継ぎ可能なＦＷを引き継ぎＦＷと呼ぶ。
【００９４】
ステップＳ９０５において、セッション管理部４０５−１は、セッション情報管理テーブル４１１−１の内、振り分け先が異常状態のＦＷであるＦＷ５０１−２となっているレコードを削除する。
【００９５】
ステップＳ９０６において、セッション管理部４０５−１は、セッション情報通知部４０３−１を介して、引き継ぎＦＷ５０１−１に引き継ぎセッション情報を送信する。引き継ぎセッション情報は、セッション情報管理テーブル４１１−１の内の振り分け先がＦＷ５０１−２となっているレコードである。引き継ぎセッション情報には、セッションＩＤ、宛先アドレス、送信元アドレス、宛先ポート、送信元ポート、およびセッション有効フラグが含まれている。
【００９６】
そして、セッション管理部４０５−１は、セッション情報管理テーブル４１１−１の内、振り分け先がＦＷ５０１−２となっているレコードの振り分け先をＦＷ５０１−１に変更する。
【００９７】
ステップＳ９０７において、セッション情報受信部５０６は、引き継ぎセッション情報を受信し、セッション情報管理部５０４は、引き継ぎセッション情報をセッション情報テーブル５１１に追加する。詳細には、セッション情報受信部５０６は、引き継ぎセッション情報に含まれるセッションＩＤ、宛先アドレス、送信元アドレス、宛先ポート、送信元ポート、およびセッション有効フラグをセッション情報テーブル５１１に書き込む。
【００９８】
セッション情報通知部５０５は、セッション情報テーブル５１１に追加したセッション情報をＬＢ４０１−２に通知する。該通知は、ステップＳ８０９で説明したセッション情報の更新通知と同様である。
ステップＳ９０８において、セッション情報受信部４０２−２は、通知を受信し、セッション管理部４０５−２は、受信した通知をセッション情報管理テーブル４１１−２に反映させる。
【００９９】
実施の形態において、セッション情報受信部４０２−は、セッション情報管理テーブル４１２−２の振り分け先に通知の送信元であるＦＷ５０１−１を記述し、セッション情報管理テーブル４１２−２のセッションＩＤ、宛先アドレス、送信元アドレス、宛て先ポート、および送信元ポートに更新通知に含まれるセッションＩＤ、宛先アドレス、送信元アドレス、宛て先ポート、および送信元ポートをそれぞれ記述する。また、セッション情報受信部４０２−２は、セッション情報管理テーブル４１２−１のセッション有効フラグに「有効」を記述する。
【０１００】
上述の処理により、引き継ぎＦＷは、故障したＦＷが有していたセッション情報を引き継ぐことが出来、該セッション情報を用いて、故障したＦＷが行っていた応答パケットのパケットチェックと同等の処理を実施することが出来る。また、ＬＢは、故障したＦＷに振り分けていたパケットを引き継ぎＦＷに振り分けることが出来る。
【０１０１】
したがって、ＦＷの故障が発生しても、システムは継続して運用することが出来る。
実施の形態のＬＢによれば、リクエストパケットが通過したファイアウォールと同一のファイアウォールに応答パケットを振り分けることが出来る。
【０１０２】
それにより、ファイアウォールは、ファイアウォール間でセッション情報を同期して保持する必要が無くなるため、通信負荷やメモリ使用量が少なくなり、負荷が低減されるという効果を奏する。
【０１０３】
また、実施の形態のＬＢによれば、故障したＦＷが担っていた処理を他のＦＷに引き継がせることができる。これにより、ＦＷの故障が発生しても、システムは継続して運用することが出来、システムの耐故障性が向上する。
【０１０４】
図１１は、情報処理装置（コンピュータ）の構成図である。
実施の形態のＬＢ４０１およびＦＷ５０１は、例えば、図１１に示すような情報処理装置１によって実現される。
【０１０５】
情報処理装置１は、Central Processing Unit（CPU）２、メモリ３、入力部４、出力部５、記憶部６、記録媒体駆動部７、およびネットワーク接続部８を備え、それらはバス９により互いに接続されている。
【０１０６】
CPU２は、情報処理装置１全体を制御する中央処理装置である。CPU２は、セッション情報受信部４０２、セッション情報通知部４０３、装置情報収集部４０４、セッション管理部４０５、振分先ＦＷ問合わせ部４０６、負荷分散ポリシー管理部４０７、パケット送受信部４０８、パケット送受信部５０２、タイマ管理部５０３、セッション情報管理部５０４、セッション情報通知部５０５、セッション情報受信部５０６、および装置情報通知部５０７パケットチェック部５０８に対応する。
【０１０７】
メモリ３は、プログラム実行の際に、記憶部６（あるいは可搬記録媒体１０）に記憶されているプログラムあるいはデータを一時的に格納するRead Only Memory(ROM)やRandom Access Memory(RAM)等のメモリである。CPU２は、メモリ３を利用してプログラムを実行することにより、上述した各種処理を実行する。
【０１０８】
この場合、可搬記録媒体１０等から読み出されたプログラムコード自体が実施の形態の機能を実現する。
入力部４は、例えば、キーボード、マウス、タッチパネル等である。
出力部５は、例えば、ディスプレイ、プリンタ等である。
【０１０９】
記憶部６は、例えば、磁気ディスク装置、光ディスク装置、テープ装置等である。情報処理装置１は、記憶部６に、上述のプログラムとデータを保存しておき、必要に応じて、それらをメモリ３に読み出して使用する。記憶部６は、記憶部４０９、５０９に対応する。
【０１１０】
記録媒体駆動部７は、可搬記録媒体１０を駆動し、その記録内容にアクセスする。可搬記録媒体としては、メモリカード、フレキシブルディスク、Compact Disk Read Only Memory(CD-ROM)、光ディスク、光磁気ディスク等、任意のコンピュータ読み取り可能な記録媒体が用いられる。ユーザは、この可搬記録媒体１０に上述のプログラムとデータを格納しておき、必要に応じて、それらをメモリ３に読み出して使用する。
ネットワーク接続部８は、LAN等の任意の通信ネットワークに接続され、通信に伴うデータ変換を行う。
【符号の説明】
【０１１１】
１０１    システム
２０１    ノード
３０１    ルータ
４０１    ＬＢ
４０２    セッション情報受信部
４０３    セッション情報通知部
４０４    装置情報収集部
４０５    セッション管理部
４０６    振分先ＦＷ問合わせ部
４０７    負荷分散ポリシー管理部
４０８    パケット送受信部
４０９    記憶部
４１１    セッション情報テーブル
４１２    装置情報テーブル
５０１    ＦＷ
５０２    パケット送受信部
５０３    タイマ管理部
５０４    セッション情報管理部
５０５    セッション情報通知部
５０６    セッション情報受信部
５０７    装置情報通知部
５０８    パケットチェック部
５０９    記憶部
５１１    セッション情報テーブル
６０１    インターネット
１２０１    ノード
１３０１    ルータ
１４０１    ＬＢ
１５０１    ＦＷ
１６０１    インターネット
１    情報処理装置
２    CPU
３    メモリ
４    入力部
５    出力部
６    記憶部
７    記録媒体駆動部
８    ネットワーク接続部
９    バス
１０    可搬記録媒体
【図１】
2013132021.tif 000003
【図２】
2013132021.tif 000004
【図３】
2013132021.tif 000005
【図４】
2013132021.tif 000006
【図５】
2013132021.tif 000007
【図６】
2013132021.tif 000008
【図７Ａ】
2013132021.tif 000009
【図７Ｂ】
2013132021.tif 000010
【図８Ａ】
2013132021.tif 000011
【図８Ｂ】
2013132021.tif 000012
【図９】
2013132021.tif 000013
【図１０】
2013132021.tif 000014
【図１１】
2013132021.tif 000015