(58)【調査した分野】(Int.Cl.,DB名)
第1の通信装置と第2の通信装置との間において送受信されるデータの属性と前記第1の通信装置と前記第2の通信装置との間の通信経路とが対応付けられている経路情報テーブルに基づいて、前記第1の通信装置と前記第2の通信装置との間において送受信されるデータに対してセキュリティ機能を提供するセキュリティ装置を経由する第1の経路と前記セキュリティ装置を経由しない第2の経路とのいずれかを前記データの通信経路として選択する通信制御部を備え、
前記通信制御部は、
前記第1の通信装置から前記第2の通信装置へデータが送信される経路と、前記第2の通信装置から前記第1の通信装置へデータが送信される経路とを異なる経路とする、コントロール装置。
第1の通信装置と第2の通信装置との間において送受信されるデータの属性と前記第1の通信装置と前記第2の通信装置との間の通信経路とが対応付けられている経路情報テーブルに基づいて、前記第1の通信装置と前記第2の通信装置との間において送受信されるデータに対してセキュリティ機能を提供するセキュリティ装置を経由する第1の経路と前記セキュリティ装置を経由しない第2の経路とのいずれかを前記データの通信経路として選択する通信制御部を備え、
前記通信制御部は、
前記第1の通信装置と前記第2の通信装置との間のコネクションが確立する前における前記第1の通信装置と前記第2の通信装置との間の通信経路と、前記第1の通信装置と前記第2の通信装置との間のコネクションが確立した後における前記第1の通信装置と前記第2の通信装置との間の通信経路とを異なる経路とする、コントロール装置。
第1の通信装置と第2の通信装置との間において送受信されるデータの属性と前記第1の通信装置と前記第2の通信装置との間の通信経路とが対応付けられている経路情報テーブルに基づいて、前記第1の通信装置と前記第2の通信装置との間において送受信されるデータに対してセキュリティ機能を提供するセキュリティ装置を経由する第1の経路と前記セキュリティ装置を経由しない第2の経路とのいずれかを前記データの通信経路として選択し、
前記データの通信経路を選択する際に、
前記第1の通信装置から前記第2の通信装置へデータが送信される経路と、前記第2の通信装置から前記第1の通信装置へデータが送信される経路とを異なる経路とする、経路制御方法。
【発明を実施するための形態】
【0014】
(実施の形態1)
以下、図面を参照して本発明の実施の形態について説明する。はじめに、
図1を用いて本発明の実施の形態1にかかる経路制御システムの構成例について説明する。経路制御システムは、通信装置10及び20と、セキュリティ装置30と、経路制御装置40とを備えている。
【0015】
通信装置10及び20は、例えば、ルータ装置や、スイッチ装置等であってもよい。通信装置10及び20は、データを受信し、ルーティングテーブルや、スイッチングテーブル等に基づいて、データを送信する。
【0016】
セキュリティ装置30は、通信装置10と通信装置20との間において送受信されるデータに対してセキュリティ機能を提供する。セキュリティ装置30が提供するセキュリティ機能とは、例えば、ファイアウォール機能、ウィルス対策機能、URLフィルタリング機能、IPS機能等であって、これらのうち少なくとも1つの機能を提供する。セキュリティ装置30は、通信装置10もしくは通信装置20から送信されたデータに対して、セキュリティ機能を適用する。
【0017】
経路制御装置40は、データの属性に応じて通信装置10と通信装置20との間の通信経路が定められている経路情報テーブルに基づいてデータの通信経路を選択する。データの属性とは、例えば、データに設定されている送信元識別情報や、プロトコル情報等であってもよい。送信元識別情報は、例えばIPアドレスや、MACアドレス、ポート番号等であってもよい。プロトコル情報は、データ送信を行う際に用いられるUDPもしくはTCP等を識別する情報であってもよい。
【0018】
通信経路には、通信装置10と通信装置20との間をデータが転送される場合に、セキュリティ装置30を経由する経路と、セキュリティ装置30を経由しない経路とが存在する。経路制御装置40は、経路情報テーブルに基づいてデータの通信経路として、セキュリティ装置30を経由する経路と、セキュリティ装置30を経由しない経路とのいずれかを選択する。経路情報テーブルには、データの属性と、通信装置10と通信装置20との間においてデータが転送される経路情報とが対応付けて管理されている。
【0019】
以上説明したように、本発明の実施の形態1にかかる経路制御システムを用いることにより、データ毎にセキュリティ装置30を経由させるか否かを判定することができる。これにより、セキュリティ装置30を経由させるデータの総量を減少させることができるため、セキュリティ装置30の処理負荷を減少させることができる。
【0020】
(実施の形態2)
続いて、
図2を用いて本発明の実施の形態2にかかるネットワーク構成の概要について説明する。本図のネットワークは、サーバ101と、スイッチ102及び106と、フローコントローラ103と、セキュリティシステム104及び105と、クライアント107とから構成される。
【0021】
サーバ101は、クライアント107からのリクエストに応じてサービスを提供する通信ネットワーク上の装置である。スイッチ102及び106は、フローコントローラ103からの指示を受けて通信ネットワーク上を流れるパケットの経路を制御する装置である。
【0022】
セキュリティシステム104およびセキュリティシステム105は、サーバ101とクライアント107との間であって、さらにスイッチ102とスイッチ106との間にある。セキュリティシステム104及び105は、それぞれの装置を介して流れるパケットのヘッダ部やペイロード部を参照して、予め設定されているルールに従い通信を破棄するなどのセキュリティ制御を実行するシステムである。
【0023】
続いて、
図3を用いて、本発明の実施の形態2にかかるフローコントローラ103の構成例について説明する。フローコントローラ103は、スイッチ制御部201と、通信制御部202と、セキュリティシステム制御部203とを備えている。
【0024】
スイッチ制御部201は、スイッチ102及びスイッチ106から定期的に隣接装置の接続状況や通信流量、フロー情報管理テーブルのエントリ数などを取得して経路情報管理テーブル207及び負荷情報管理テーブル210を更新する。さらに、スイッチ制御部201は、スイッチ102及びスイッチ106から転送されたパケットを受信して通信制御部202へ中継する。また、スイッチ制御部201は、通信制御部202からの指示を受けてスイッチ102及びスイッチ106におけるフロー情報管理テーブルを更新させる。フロー情報管理テーブルは、スイッチ102及び106と、セキュリティシステム104及び105とに設けられているテーブルであり、後に詳細を説明する。また、フローコントローラ103内に設けられる経路情報管理テーブル207及び負荷情報管理テーブル210についても、後に詳細を説明する。
【0025】
セキュリティシステム制御部203は、セキュリティシステム104及びセキュリティシステム105から定期的に隣接装置の接続状況や通信流量、フロー情報管理テーブル211のエントリ数などを取得して経路情報管理テーブル207及び負荷情報管理テーブル210を更新する。さらに、セキュリティシステム制御部203は、セキュリティシステム104及びセキュリティシステム105から転送されたパケットを受信して通信制御部202へ中継する。また、セキュリティシステム制御部203は、通信制御部202からの指示を受けてセキュリティシステム104もしくはセキュリティシステム105のフロー情報管理テーブル211を更新させる。
【0026】
通信制御部202は、スイッチ制御部201もしくはセキュリティシステム制御部203から転送されたパケットの内容と、制御ルール管理テーブル208、セッション情報管理テーブル209及び経路情報管理テーブル207の内容とを照らし合わせ、ネットワークやセキュリティシステム104及び105の負荷を軽減する適切な通信経路を決定する。通信制御部202は、決定した通信経路をスイッチ制御部201もしくはセキュリティシステム制御部203に通知する。さらに、通信制御部202は、セッション情報管理テーブル209を定期的に更新しセキュリティシステム104もしくは105から経路変更依頼を受信した場合に、受信した情報とセッション情報管理テーブル209の内容とを照らし合わせ、スイッチ制御部201もしくはセキュリティシステム制御部204に経路の変更を指示する。
【0027】
続いて、
図4を用いて、本発明の実施の形態2にかかるセキュリティシステム104の構成例について説明する。セキュリティシステム105は、セキュリティシステム104と同様の構成であるため詳細な説明を省略する。セキュリティシステム104は、フロー制御可能スイッチ204と、セキュリティ機能部205と、通信パス更新部206とを備えている。
【0028】
フロー制御可能スイッチ204は、スイッチ102及びスイッチ106と同じく、フローコントローラ103からの指示を受けて通信ネットワーク上を流れるパケットの経路を制御する装置である。また、フロー制御可能スイッチ204は、フローコントローラ103からの指示を受けてフロー情報管理テーブル211を更新する。
【0029】
セキュリティ機能部205は、ファイアウォール機能、ウィルス対策機能、IPS機能等を有している。セキュリティ機能部205は、パケットのヘッダ部やペイロード部を参照して、予め設定されているルールに従い通信を破棄するなどの制御を実行する。また、セキュリティ機能部205は、自身を介して流れる通信の状態を所持しており、所持している通信の状態をセキュリティシステム内の通信パス更新部206に対して通知する機能と、通信パス更新部206からの指示を受けて所持している通信の状態を変更可能な機能とを有する装置である。セキュリティ機能部205からフロー制御可能スイッチ204へ出力されるデータと、フロー制御可能スイッチ204からセキュリティ機能部205へ出力されるデータとは、本図に示すようにブリッジ接続を行い、それぞれ異なる経路を通るようにしてもよい。
【0030】
通信パス更新部206は、セキュリティ機能部205から通信の状態に関する情報を受信した場合に、受信した情報と自身のもつ通信パス変更情報管理テーブル212の内容とを照らし合わせ、該当するエントリがあった場合はフローコントローラ103内の通信制御部202に対して通信の経路変更を依頼する。さらに、通信パス更新部206は、セキュリティ機能部205に指示してセキュリティ機能部205の所持する通信の状態を更新可能とする。
【0031】
続いて、
図5を用いて本発明の実施の形態2にかかる具体的なネットワーク構成例について説明する。本図のネットワークは、CL(Client)301と、OSW302と、SS(Security System)303と、SS303_1と、ISW304と、SV(Server)305と、フローコントローラ308とを備えている。
【0032】
CL301は、SV305の提供するサービスを利用するクライアント端末である。CL301は、パーソナルコンピュータ装置や、携帯電話端末等であってもよい。CL301は、OSW302と接続されている。
【0033】
OSW302は、CL301と接続されており、CL301から送信されたデータを対向装置へ転送し、さらに、CL301を送信先とするデータをCL301へ転送する。
【0034】
SV305は、CL301へサービスを提供するサーバ装置である。SV305は、複数のサーバ装置からなるサーバシステムとして構成されてもよく、単一の装置から構成されてもよい。SV305は、ISW304と接続されている。
【0035】
ISW304は、SV305と接続されており、SV305から送信されたデータを対向装置へ転送し、さらに、SV305を送信先とするデータをSV305へ転送する。
【0036】
SS303及びSS303_1は、OSW302とISW304と接続されており、OSW302とISW304との間に配置されている。SS303及びSS303_1は、ファイアウォール機能を有する。
【0037】
フローコントローラ308は、OSW302、ISW304、SS303及びSS303_1を制御し、OSW302とISW304との間の通信経路を設定する。OSW302とISW304との間の通信経路は、SS303もしくはSS303_1を経由してもよく、SS303及びSS303_1を経由せずにOSW302とISW304とが直接接続されてもよい。また、フローコントローラ308は、フローコントローラ103と同様の構成を有している。
【0038】
続いて、
図6を用いて、本発明の実施の形態2にかかるSS303の構成例について説明する。SS303は、SS−SW306と、FW307_1〜3と、通信パス更新部309とを備えている。ここで、SS303_1は、SS303と同様の構成であるため詳細な説明を省略する。SS−SW306は、SS303内において、フロー制御可能スイッチ204と同様の機能を有する。SS−SW306は、フロー情報管理テーブル211の情報を更新する。FW307は、SS303において受信したデータに対してファイアウォール機能を適用する。FW307は、1つのみ配置されてもよく、複数配置されてもよい。本図においては、FW307_1〜3の3つが配置されている例について説明する。通信パス更新部309は、SS303内において通信パス更新部206と同様の機能を有する。通信パス更新部309は、通信パス変更情報管理テーブル212の情報を更新する。
【0039】
さらに、SS−SW306は、OSW302と接続されるポートp1と、ISW304と接続されるポートp9とを有している。さらに、SS−SW306は、FW307_1と接続されるポートp2及びp5と、FW307_2と接続されるp3及びp6と、FW307_3と接続されるp4及びp7とを有している。同様に、OSW302は、SS−SW306と接続されるポートp2と、CL301と接続されるポートp1と、ISW304と接続されるポートp3とを有している。ISW304は、SS−SW306と接続されるポートp5と、SV305と接続されるポートp4と、OSW302と接続されるポートp6とを有している。FW307_1は、SS−SW306と接続されるポートp1及びp1_1を有し、FW307_2は、SS−SW306と接続されるポートp2及びp2_1を有し、FW307_3は、SS−SW306と接続されるポートp3及びp3_1を有している。
【0040】
続いて、SS303内に配置されている情報テーブル及びフローコントローラ308内に配置されている情報テーブルについて説明する。フローコントローラ308は、フローコントローラ103と同様に、各種テーブルを有している。
【0041】
図7に負荷情報管理テーブル210の構成例を示す。負荷情報管理テーブル210は、フローコントローラ308内のスイッチ制御部201およびセキュリティシステム制御部203が、OSW302、ISW304及びSS−SW306からリソースの使用状況などを取得することによって更新される。スイッチ制御部201及びセキュリティシステム制御部203は、OSW302、ISW304及びSS−SW306から情報を取得したタイミングで負荷情報管理テーブル210を更新する。
【0042】
以下に、
図7について説明する。システムIDは、情報の取得先の装置を一意に特定可能な識別子である。たとえば、システムIDは、SS、OSW及びISW等の装置の名称が用いられる。装置種別は、装置の機能により分類される種別を示す。たとえば、装置種別は、FW及びSW等が用いられる。装置IDは、同じ装置種別に属する装置を一意に識別可能な識別子である。Linkは、通信経路を示し、本図においては、それぞれの装置のポート番号を用いて示される。例えば、システムIDとしてOSWが設定され、Linkがp2−p1と設定されている場合、OSW302のポート2と、SS−SW306のポート1との間の通信経路を特定している。種別は、それぞれの装置から取得した負荷情報の種類を示す。負荷情報は、例えば、CPU使用率や、セッションテーブルエントリ数、フローエントリ数、IPパケット損失率、IPパケット遅延率等がある。
【0043】
値は、負荷状況を示している。閾値は、高負荷か否かを識別するために用いられる値である。装置から閾値以上の値を取得した場合、当該装置は高負荷で処理が実行されていると判定される。更新日時は、負荷情報が更新された時間情報を示しており、例えば、ある時点からの経過時間を示してもよい。重みづけは、0から1の間の値が設定され、負荷計算を行う際に使用される。
【0044】
図8に経路情報管理テーブル207の構成例を示す。経路情報管理テーブル207は、フローコントローラ308内のスイッチ制御部201およびセキュリティシステム制御部203が、OSW302、ISW304及びSS−SW306から隣接装置の接続状況を取得し、負荷情報管理テーブルを参照して更新する。スイッチ制御部201及びセキュリティシステム制御部203は、OSW302、ISW304及びSS−SW306から隣接装置の状況を取得したタイミングで経路情報管理テーブル207を更新する。
【0045】
以下に、
図8について説明する。システムID、装置種別及び装置IDは、
図7と同様であるため、詳細な説明を省略する。Inは、ネットワークインタフェースの入力ポートを一意に特定可能な識別子である。Outは、ネットワークインタフェースの出力ポートを一意に特定可能な識別子である。
【0046】
入り口となるシステムとは、データを出力する装置であり、出口となるシステムとは、出力されたデータを受け取るシステムである。経路コストは、入口となるシステムと出口となるシステムとの間のリンクのリンクコストを、「10000/通信帯域(Mbps)」として計算して足し合わせた合計値である。
【0047】
負荷情報は、システムID、装置種別、装置IDが一致する負荷情報管理テーブル210のカラムを参照し、各装置の負荷状況を計算して足し合わせた合計値である。たとえば、システムID、装置種別、装置IDの組が、それぞれ「OSW、SW、1」と「SS、FW、1」とである2点間の負荷は、負荷情報管理テーブル210の1、4、7〜10行目を参照して次のように計算する。
【0048】
負荷情報=0.1×10/80+0.2×2000/65000+0.2×30000/65000+0.7×0.1/3+0.1×100/500=0.191・・
【0049】
上述した負荷情報の算出方法は一例であり、負荷情報の算出方法は、システムに合わせて変更してもよい。
【0050】
図9に制御ルール管理テーブル208の構成例を示す。制御ルール管理テーブル208は、通信経路における制御内容を示す。
【0051】
以下に、
図9について説明する。IDは、制御ルールを一意に特定可能な識別子である。Src IPは、送信元装置のIPアドレスを示す。Src Portは、送信元装置のポート番号を示す。Dst IPは、宛先装置のIPアドレスを示す。Dst Portは、宛先装置のポート番号を示す。Protocolは、通信に用いられているプロトコルを示す。プロトコルは、例えばTCPや、UDP等である。
【0052】
往路は、Src IP、Src Port、Dst IP、Dst Portがマッチするパケットの往路の通信経路を示す。例えば、往路は、通信経路の両端となるスイッチもしくはセキュリティシステムを一意に特定可能な識別子(システムID、装置種別、装置IDをコロンで結合した文字列)をハイフンで結合して記述する。セキュリティシステムについては、システムIDと装置IDとを省略して記載可能とする。複数の通信経路を経由する場合は、経由する順番に各通信経路をカンマで区切り指定する。復路は、Src IP、Src Port、Dst IP、Dst Portがマッチするパケットの復路の通信経路を示す。記載フォーマットは、往路と同様である。また、往路及び復路に記載されているAVは、SS303がウイルス機能部を有する場合に、ウイルス機能部を経由することを示している。
【0053】
Idle Timeoutは、無通信状態が続いた場合のタイムアウト値を示す。例えば、Idle Timeoutの値は、フロー情報管理テーブル211のエントリを生成するタイミングに、制御ルール管理テーブル208のエントリからフロー情報管理テーブル211のIdle Timeoutのカラムに格納されてもよい。Idle Timeoutの単位は、例えば秒とする。
【0054】
Cache Timeoutは、セッション情報管理テーブル209に情報を保持する期間である。Cache Timeoutの値は、セッション情報管理テーブル209のエントリを生成するタイミングに、制御ルール管理テーブル208のエントリからフロー情報管理テーブル211のSession Timeoutのカラムに格納されてもよい。Session Timeoutの単位は、例えば秒とする。
【0055】
Session Update Flagは、該当エントリを参照された場合に、セッション情報管理テーブル209のエントリのSession Timeoutのカラムを更新するかどうかを示すフラグである。たとえば、TCP通信のように、後続する同一セッションの通信が同じSSを経由するようにする場合、1を指定する。
【0056】
図10にセッション情報管理テーブル209の構成例を示す。セッション情報管理テーブル209は、予め作成された制御ルール管理テーブル208と経路情報管理テーブル207とを用いて、通信制御部202が生成するテーブルである。通信制御部202は、受信したパケットと制御ルール管理テーブル208及び経路情報管理テーブル207とを比較参照し、ネットワークやSS303の負荷を軽減する通信経路を決定する。
【0057】
以下に、
図10について説明する。Src IP、Src Port、Dst IP、Dst Port、Protocol、往路及び復路は、
図9と同様であるため詳細な説明を省略する。
【0058】
Priorityは、優先度を示す。たとえば、通信経路として複数行マッチするエントリが見つかった場合、Priorityの値の小さい方を選択する。Priorityは、例えば1〜65535の間の値を用いる。
【0059】
Session Timeoutは、情報の保持期限を示す。セッション情報管理テーブル209のエントリは、Session Timeout列に格納された時刻を経過すると不要になる。通信制御部202は、定期的にセッション情報管理テーブル209を参照し、不要となったエントリを削除する。
【0060】
OSW302、ISW304、SS303が保持するフロー情報管理テーブル211は、フローコントローラ308からの指示を受けてOSW302、ISW304、SS303が生成するテーブルである。
【0061】
通信パス変更情報管理テーブル212は、SS303を経由する通信の経路を動的に変更する場合に用いるテーブルである。例えば、SS303を経由する通信の状態変化に応じて通信経路を動的に変更する場合に使用する。
【0062】
続いて、
図11を用いて本発明の実施の形態2にかかるデータの流れについて説明する。本図は、UDPが用いられている場合のデータの流れを示している。本図においては、IPアドレスが10.0.0.5であるCL301から、DNSサーバであってIPアドレスが192.168.1.4であるSV305宛に、名前解決のリクエスト、具体的には、宛先ポート番号udp/53の通信を行う場合を示している。
【0063】
はじめに、CL301は、OSW302に対して要求パケットを送信する(S400)。OSW302は、受信した要求パケットの情報、例えば、入力ポート、送信元MACアドレス、宛先MACアドレス、プロトコル番号、送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号等をキーとしてフロー情報管理テーブル211を検索し、該当するエントリが存在するかどうかを確認する。この時、フロー情報管理テーブル211には、該当するエントリが存在しないとして、OSW302は、一旦要求パケットを受信バッファへ格納し、要求パケットをフローコントローラ308へ転送する(ステップS401)。つまり、OSW302は、フローコントローラ308に対して、要求パケット及び後続パケットの制御方法について問い合わせを行う。
【0064】
フローコントローラ308は、受信パケットのヘッダ情報をキーとしてセッション情報管理テーブル209を検索し、該当するエントリが存在するかどうかを確認する(S402)。ここで、セッション情報管理テーブル209に該当するエントリが存在しないとして、受信パケットのヘッダ情報をキーとして制御ルール管理テーブル208を検索する。この時、制御ルール管理テーブル208に該当するエントリが存在するとして、該当するエントリの往路及び復路のカラムをキーとして、経路情報管理テーブル207を検索し、最適経路を決定する(S403)。
【0065】
具体的には、フローコントローラ308は、制御ルール管理テーブル208の往路及び復路のカラムのカンマで区切られた情報を順番に参照し、経路情報管理テーブル207の情報を検索する。このようにして、往路のカラムにおけるハイフンの左側の文字列と経路情報管理テーブル207の入口となるシステムの識別情報とを比較し、さらに、往路のカラムにおけるハイフンの右側の文字列と経路情報管理テーブル207の出口となるシステムの装置種別とを比較し、一致する行を抽出する。該当する行が複数存在する場合、負荷情報カラムを参照して最も値が小さい1行のみを抽出する。負荷情報の値が同一となる行が複数存在する場合、経路コストのカラムを参照して最も値の小さい1行のみを抽出する。経路コストが同一となる行が複数存在する場合、最初にマッチした1行のみを抽出する。
【0066】
フローコントローラ308は、該当行の入り口となるシステム及び出口となるシステムのIn及びOutの内容に基づいて、OSW302、ISW304及びSS303のフロー情報管理テーブル211の更新をそれぞれの装置に指示する(S404)。このようにして制御ルール管理テーブル208の往路及び復路のカラムのカンマで区切られた情報をすべて処理して、OSW302、ISW304及びSS303は、フロー情報管理テーブル211を更新する(S405〜S407)。ここで、フロー情報管理テーブル211の構成例について、
図12〜14を用いて説明する。
図12は、OSW302におけるフロー情報管理テーブル211である。
図13は、SS303におけるフロー情報管理テーブル211である。
図14は、ISW304におけるフロー情報管理テーブル211である。
【0067】
Ingress Portは、入力ポートを一意に識別可能な識別子である。Src HWAddrは、送信元装置のMACアドレスである。Dst HWAddrは、宛先装置のMACアドレスである。Src IP、Src Port、Dst IP、Dst Port、Protocolは、前述したものと同様である。dl_typeは、Ethernet(登録商標)のタイプ番号である。Ethernet(登録商標)のタイプ番号は、データリンク層から見て上位のプロトコルを識別するために用いられる番号である。Egress Portは、出力ポートを一意に識別可能な識別子である。Idle Timeoutは、情報の保持期限を示す。
【0068】
図11に戻り、フローコントローラ308は、OSW302、ISW304及びSS303のフロー情報管理テーブル211を更新後、OSW302に対して、OSW302の受信バッファに格納された受信パケットをp2ポートから出力するよう指示する(S408)。次に、OSW302は、フロー情報管理テーブル211に基づいて、受信バッファ内に格納された該当受信パケットをp2ポートから出力し、SS303へフォワードする(S409)。また、OSW302は、フローコントローラ308から転送された受信パケットを受信してもよい。次に、SS−SW306は、フロー情報管理テーブル211に基づいて、Egress Portのカラムに記載のp2ポートよりパケットをFW1にフォワードする(S410)。次に、FW1は、受信したパケットのヘッダ部と、予め設定されていたフィルタ設定とを比較して、通信の転送可否を判断する(S411)。以降では、転送が許可されていたものとして説明を進める。
【0069】
次に、FW1は、要求パケットのヘッダ部および自身のルーティングテーブルを参照して、SS303にパケットをフォワードする(S412)。次に、SS303は、Egress Portのカラムに記載のp9ポートよりパケットをISWにフォワードする(S413)。次に、ISWは、Egress Portのカラムに記載のp4ポートよりパケットをSV305にフォワードする(S414)。次に、SV305は、クライアントからの要求に応じ、応答パケットをISWに送出する(S415)。
【0070】
次に、ISWは、Egress Portのカラムに記載のp6ポートよりパケットをOSWにフォワードする(S416)。次に、0SWは、Egress Portのカラムに記載のp1ポートよりパケットをCL301にフォワードする(S417)。
【0071】
後続パケットは、ステップS405、ステップS406、ステップS407で設定されたフロー情報管理テーブルの内容に従い転送される。OSW302、ISW304、SS303のフロー情報管理テーブルのエントリが削除されるまでは、ステップS409〜ステップS417と同様に処理される。
【0072】
続いて、
図15を用いて本発明の実施の形態2にかかるフローコントローラ308における経路選択処理の流れについて説明する。はじめに、フローコントローラ308は、OSW302から受信したパケットの情報をキーとして、セッション情報管理テーブル209を検索する(S501)。ステップS501において、該当行が存在しない場合、フローコントローラ308は、OSW302から受信したパケットの情報をキーとして制御ルール管理テーブル208を検索する(S502)。該当行が存在しない場合、受信したパケットを破棄する(S503)。
【0073】
ステップS501もしくはステップS502において、該当行が存在する場合、フローコントローラ308は、ステップS501もしくはステップS502において抽出した行の往路及び復路のカラムのカンマで区切られた情報を順番に参照する(S504)。
【0074】
次に、フローコントローラ308は、ステップS504において参照した情報をキーとして経路情報管理テーブル207を検索し、各装置の負荷などを考慮して、最適経路を決定する(S505)。最適経路が一意に特定できなかった場合、受信したパケットを廃棄する(S503)。最適経路が一意に特定できた場合、フローコントローラ308は、決定した最適経路に関する情報をOSW302、SS303及びISW304へ指示するための指示情報を生成する(S506)。次に、フローコントローラ308は、指示情報をOSW302、SS303及びISW304へ送信し、OSW302、SS303及びISW304においてフロー情報管理テーブル211が更新される。(S507)。
【0075】
Idle Timeoutを過ぎると、フロー情報管理テーブル211のエントリは削除され、通信の最適経路の計算(ステップS501〜S507)が実行される。フロー情報管理テーブル211のエントリが削除されると、経路情報管理テーブル207の負荷情報のカラムを元に、負荷の最も少ない経路がフローコントローラ308において再選択されることにより、ネットワークの負荷を平準化することができる。
【0076】
図11のステップS401〜S407までの処理を実行することにより、
図16に示すように、フローコントローラ308は、往路についてはSS303を経由させ、復路についてはSS303を経由させないように経路を制御する。往路のみがSS303を経由することにより、SS303自体のCPU負荷を軽減することができる。さらに、復路の通信がSS303を経由しなくなるため、該当する通信が復路においてISW304とSS303との間及びSS303とOSW302との間において流れなくなり、他の通信にネットワーク帯域を割くことができるようになる。
【0077】
さらに、SS303内の装置が高負荷状態になった場合、
図17に示すように、動的に経路を変更させてもよい。具体的には、SS303の代わりにSS303_1を経由させるように経路を変更させることにより、特定のSSの負荷集中を抑えることができる。
【0078】
DNSの通信のように、通信の全てをファイウォール経由で行わなくても済むケースは多数存在する。特に、同じポートを介して長時間継続してデータのやり取りを行うようなUDPの通信において、本発明は有効である。
【0079】
続いて、
図18を用いて本発明の実施の形態2にかかるデータの流れについて説明する。本図は、TCPが用いられている場合のデータの流れを示している。TCPを用いた場合の通信が、UDPを用いた場合の通信と異なるのは、通信経路を制御してコネクション確立前はセキュリティシステムを経由させ、コネクション確立後はセキュリティシステムを経由させないようにする点である。
【0080】
本図においては、IPアドレスが10.0.0.1であるCL1から、WebサーバでありIPアドレス192.168.1.3であるSV305宛にリクエスト(宛先ポート番号 tcp/80の通信)を行う場合について説明する。
【0081】
本図は、
図11のステップS405〜S407以降の処理を示している。TCPを用いた場合の動作は、コネクション確立まではUDPと同様に、制御ルール管理テーブル208の内容に従って通信経路が制御される。具体的には
図9の制御ルール管理テーブル208のID=3の行の往路及び復路のカラムの情報と経路情報管理テーブルの内容とに基づいて、コネクション確立前の通信経路が決定される。コネクション確立前においては、下記に示す順番でTCPの3Wayハンドシェイクのパケットが各装置を経由して流れる。3Wayハンドシェイクによるパケットの転送が完了後、コネクションが確立される。
【0082】
OSW→SS SW→FW→SS SW→ISW→SV3→ISW→SS SW→FW→SS SW→OSW→CL1→OSW→SS SW→FW→SS SW→ISW→SV3(S601)。また、FWにおいては、フィルタリング処理が実行される。
【0083】
次にコネクション確立後の動作について説明する。SS303内のFW307は、新規のコネクション確立を検知したタイミングで該当する通信のセッション情報(送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号、プロトコル番号、通信の状態)を通信パス更新部309に通知する(S602)。
【0084】
通信パス更新部309は、FW307からの新規コネクション確立の情報(送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号、プロトコル番号、通信の状態)を受信すると、受信した情報と自身の持つ通信パス変更情報管理テーブル212とを照らし合わせて該当する行を検索する(S603)。該当行が見つからなかった場合は、処理を打ち切る。
【0085】
ここで、通信パス変更情報管理テーブル212の具体例を
図19に示す。ステップS603において、該当行が見つかった場合は、該当行(例えば、本図の1行目)のActionのカラムの情報を参照してフローコントローラ308に対して該当する通信の経路変更を依頼する(S604)。具体的には、1行目のActionのカラムは、往路及び復路の経路から、FWを除外することが示されている。
【0086】
ここで、通信パス更新部309とフローコントローラ308との間で送受信される情報の具体例を
図20に示す。以降、該当行が見つかったものとして説明する。通信パス更新部309から経路変更依頼を受信したフローコントローラ308は、受信した情報の送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号、プロトコル番号をキーとして自身のもつセッション情報管理テーブル209に該当する行が存在するかどうかを確認する。
【0087】
該当行が見つからなかった場合は処理を打ち切り、経路情報が変更できなかった旨を通信パス更新部309に通知する。該当行が見つかった場合は、受信した経路変更依頼の内容を基にセッション情報管理テーブル209の該当行の内容を変更する(S605)。
【0088】
変更前と変更後のセッション情報管理テーブル209の内容をそれぞれ
図21及び
図22に示す。フローコントローラ308は、更新したセッション情報管理テーブル209の情報に基づいて、関連するスイッチOSW302、SS1 SW303、ISW304に経路変更の指示を行う(S606)。
【0089】
これより、該当通信の経路はセキュリティシステムを経由しないよう変更される。経路変更後にフローコントローラ308は、経路変更依頼に対する経路変更結果を通信パス更新部309に送信する(S607)。
【0090】
経路変更依頼の結果を取得した通信パス更新部309は、受信した情報を参照し、依頼通りに処理されたかどうかを確認する。依頼通り処理されていなかった場合は処理を打ち切る。依頼通りに処理されていた場合は、該当するセッション情報の削除をFW1に指示する(S608)。
【0091】
通信パス更新部309からの指示を受信したFW1は、自身のセッションテーブルから該当するセッション情報のエントリを削除する(S609)。ステップS609の処理を実施しなかった場合は、コネクション確立後のセッション情報が一定期間FW1のメモリ上に保持されたままになる。以降該当する通信はFW1を経由せず、メモリを無駄に使用したままの状態となるため、不要となったメモリが開放されるよう削除処理を行う。
【0092】
続いて、
図23を用いて、通信パス更新部309における処理の流れについて説明する。初めに、通信パス更新部309は、FW307から受信した複数の新規コネクション確立の情報(送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号、プロトコル番号、通信の状態を1組とする情報)を順番に辿る(S651)。
【0093】
次に、通信パス更新部309は、通信パス変更情報管理テーブル212を参照し、新規コネクション確立の情報(送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号、プロトコル番号、通信の状態)をキーとしてマッチする行を検索する(S652)。マッチする行が存在しない場合は、ステップS651に戻り次の新規コネクション情報を確認する。マッチする行が存在する場合はステップS653に進む。
次に、通信パス更新部309は、通信パス変更情報管理テーブル212の該当行の情報を基に経路変更依頼リストを作成する。具体的には
図20のParameterリストに該当行の情報を格納する(S653)。
【0094】
次に、通信パス更新部309は、ステップS653において生成した経路変更依頼リストに、予め設定しておいた「Request=replace、Retry=0、Retry Interval=0、Delay=0」の情報を加えて、Controllerに経路変更の依頼を行う(S654)。
【0095】
次に、通信パス更新部309は、フローコントローラ308から経路変更依頼の処理結果を受信する(S655)。通信パス更新部309は、フローコントローラ308から受信した処理結果が成功の場合はステップS657に進む(S656)。処理結果が失敗の場合は、処理を終了する(S656)。次に、通信パス更新部309は、該当するセッション情報の削除をFW307に指示する(S657)。通信パス更新部309は、FW307から新規コネクション確立の情報を取得する度にステップS651〜657の処理を繰り返す。
【0096】
以上が通信パス更新部309の動作の流れである。このように、TCPのコネクション確立まではファイアウォールを経由するようにし、TCPのコネクション確立後はファイアウォールを経由しないように通信経路を制御することで、セキュリティを確保しつつ、かつ無駄な通信も削減することができる。
【0097】
本発明により、特定セキュリティシステムへの負荷集中を抑え、ネットワークのボトルネックを緩和することが可能である。接続を維持してデータのやりとりを行うようなTCPの通信でかつ、多くのデータがやりとりされるケースにおいて、本発明は通信量が増えれば増えるほど大きな効果を発揮する。
【0098】
TCPと同じ方法でUDPについても、ファイアウォール機能を有する装置の保持するセッション情報を基に、通信がセキュリティシステムを経由しないよう制御してもよい。例えば、同じIPアドレス、ポート番号の組みで一度データがクライアント、サーバ間で往復したUDPの通信を、ファイアウォール機能を有する装置、通信パス更新部309及びフローコントローラ308で該当セッションの情報をやり取りして、一定期間(フロー情報管理テーブルに該当エントリが存在する間)、セキュリティシステムを経由しないよう通信経路を制御するといった方法がある。
【0099】
(実施の形態3)
続いて、
図24を用いて本発明の実施の形態3にかかるSS701の構成例について説明する。SS701は、ネットワークにおいて
図3におけるSS303と同様の位置に配置される。SS701は、IPS(Intrusion Prevention System)702と、通信パス更新部703と、SS−SW704とを備えている。SS−SW704は、
図3におけるSS−SW306と同様であり、通信パス更新部703は、
図3における通信パス更新部309と同様である。
【0100】
IPS702は、通信のヘッダ部だけでなくペイロード部も参照して、セキュリティ上問題がないかどうかの確認を行う。そのため、IPS702は、ファイアウォール装置と比べると高負荷になり易く、ネットワークのボトルネックとなる可能性の高い装置である。
【0101】
ネットワークのボトルネックを緩和するため、IPS702で例外設定を行い、静的にある特定の通信を検査対象から外す方法があるが、少しでも問題となる可能性のある通信については検査対象から外すことができないなどの理由から、実際の運用では必要以上のチェックを行っているケースがほとんどである。このようにして、過剰な検査によって、IPS702がネットワークのボトルネックとなりやすいのが現状である。そこで、
図25を用いて、このような問題を解決するためのデータの処理の流れについて説明する。
【0102】
図25においては、IPアドレス10.0.0.1を持つCL1からIPアドレス192.168.1.3を持つWebサーバSV305宛にリクエスト(宛先ポート番号tcp/80の通信)を行った場合を例に説明する。
【0103】
本図は、
図11のステップS405〜S407以降の処理を示している。SS701内のIPS機能を有する装置IPS702は、予め定義しておいた
図26に示すルールと自信を介して流れる通信とを比較する。自身を介して流れる通信がパイパス処理してよい1行目のルールとマッチした場合、該当通信の情報(送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号、プロトコル番号、通信の状態)を通信パス更新部703に通知する(S801)。
【0104】
ステップS802〜S808は、
図18におけるステップS603〜S609と同様であるため、詳細な説明を省略する。ここで、通信パス更新部とフローコントローラとの間で送受信される情報の具体例を
図27に示す。また、ステップS804のセッション管理テーブルの更新において、更新前後のセッション情報管理テーブルの内容をそれぞれ
図28及び29に示す。点線で囲まれている箇所が更新部分を示す。
【0105】
このように、必要以上の検査が行われないよう通信経路を動的に変更し、IPS装置を経由しないようすることで、セキュリティシステムおよびネットワークの負荷を軽減することができる。負荷軽減により、ネットワーク全体の性能向上を図ることができると考える。TCPの場合と同じく、同一セッションで多くのデータがやりとりされるケースにおいて、本発明はより大きな効果を発揮する。
【0106】
以下に、本発明の効果について説明する。本発明により、セキュリティ装置の負荷軽減及び通信ネットワーク上のボトルネックの解消が可能で、ネットワーク性能を向上できる。その理由は、UDPでは往路と復路を非対称にして往路だけセキュリティシステムでチェックする、TCPでは接続確立までの通信のみをセキュリティシステムでチェックするなど、経路情報管理テーブル、制御ルール管理テーブルを参照して動的に通信経路を制御し、必要な通信のみがネットワーク上のセキュリティシステムを流れる仕組みを有しているためである。
【0107】
さらに、IPヘッダのToSフィールドなど通常QoSで用いるパケットのヘッダ部にあるフィールドを使うことなくセキュリティ装置の負荷を軽減できる。その理由は、通常QoSで用いるパケットのヘッダ部にあるフィールドを更新せず、フローコントローラ上に存在する予め定義しておいたルール及び定期的に収集しているセキュリティ装置やネットワークの負荷情報を参考に、フローコントローラがネットワーク上のフロー制御可能なスイッチに指示して通信経路の制御を行うためである。
【0108】
さらに、ファイアウォール機能以外のセキュリティ装置(IPS、ウィルス対策、URLフィルタなど)の場合でも、ネットワーク性能を向上できる。その理由は、セキュリティシステム内の通信パス更新部とフローコントローラ内の通信制御部が連携して動的に経路制御を行い、必要な通信のみがネットワーク上のセキュリティシステムを流れる仕組みを有しているためである。
【0109】
さらに、保護対象ネットワーク内にNAT/NAPTの設定が行われている環境でもセキュリティ装置の負荷を軽減できる。その理由は、制御ルール管理テーブルを用いて通信の流れを設定次第で自由に制御できるためである。
【0110】
さらに、特定装置に負荷が集中することなくネットワークの性能を向上できる。その理由は、一旦フロー情報管理テーブルに通信経路の制御情報が格納されると、しばらくは登録されたルールによって同一セッションの通信が制御されるため、フローコントローラにすべての通信が転送されることはないためである。また、フロー情報管理テーブルでの制御情報の保持期間は制御ルール管理テーブルによって随時変更可能であり、フローコントローラに負荷が集中しないように制御可能なためである。
【0111】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【0112】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0113】
この出願は、2012年3月2日に出願された日本出願特願2012−47051を基礎とする優先権を主張し、その開示の全てをここに取り込む。