説明

ゲートウェイ装置およびパケットフィルタリング方法

【課題】パケットフィルタリング処理を高速に行うことができるゲートウェイ装置を得ること。
【解決手段】フィルタリング処理を行うFILTER判定処理部34を備え、動的NAPT変換処理を行うゲートウェイ装置であって、動的NAPT変換処理対象のWAN側から受信した受信パケットからプロトコル識別子、宛先アドレスおよび宛先ポート番号を抽出し、抽出結果を、プレフィルタ条件の各エントリと比較し、一致するエントリがある場合には仮通過パケットと判定し、一致するエントリがない場合には、受信パケットを破棄する第2の完全一致判定部14、を備え、FILTER判定処理部34は仮通過パケットに対してフィルタリング処理を実施する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パケットフィルタリングを行うゲートウェイ装置に関する。
【背景技術】
【0002】
従来のパケットフィルタリング手法では、パケットフィルタリング装置にあらかじめ適用すべきパケットフィルタ条件を優先度順にソートして設定しておく。そして、ゲートウェイ装置は、フィルタリング判定すべきパケットを受信すると、パケット毎にパケットフィルタ条件の優先度の高いエントリから順に逐一どのエントリに合致するかを比較する。そして、最初に条件に合致したエントリの動作に従って、そのパケットに対して通過・遮断処理を実行するというパケットフィルタリング処理を行っていた。
【0003】
また、下記特許文献1では、高速なパケットフィルタリング処理を実施するパケットフィルタリング方法が提案されている。このパケットフィルタリング方法では、パケット転送装置が、パケットのフィールド値と適用すべき処理をペアにした情報をフィールド値キャッシュとして保持し、受信したパケット毎にフィールド値キャッシュとして保持されているフィールド値と照合し、以前にパケットフィルタリング判定を実施したパケットと同一のフィールド値を持つパケットであるか、を判定する。フィールド値キャッシュが存在しなければ、上記の従来のパケットフィルタリング手法と同様にパケットフィルタ条件のエントリと逐一比較を行い、その時得られた適用すべき処理をフィールド値キャッシュに登録する。
【0004】
そして、さらに、後続のパケットに対して、登録したフィールド値キャッシュとの照合を実施する。このため、フィールド値キャッシュが存在する場合、上記の従来のパケットフィルタリング手法にくらべ、フィールド値キャッシュに関連付けられた適用すべき処理を高速に得ることができる。
【0005】
また、下記特許文献2では、パケットフィルタリング判定処理を高速化するために、フィルタ条件の各エントリに対し並列に条件適合の判定を行い、条件に適合したエントリの中からもっとも優先度の高いエントリを選択することにより、高速なパケットフィルタリング処理を実施する方法が開示されている。
【0006】
さらに、パケットフィルタリングを行う装置では、DDOS(Distributed Denial of Service)攻撃についても考慮しておくことが望ましい。下記特許文献3では、パケットフィルタリング機能を有するゲートウェイ(加入者終端)装置がDDOS攻撃を受けた場合、よりWAN(Wide Area Network)側網に近い加入者終端集合装置にDDOSパケットを転送しないよう要求を通知して、DDOS攻撃を回避する方法が提案されている。
【0007】
【特許文献1】特開2005―347969号公報
【特許文献2】特開2007―166513号公報
【特許文献3】特開2006―254269号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
一方、家庭内に配置される宅内ゲートウェイ装置(以下、ホームゲートウェイという)も、外部ネットワーク(WAN側)から内部ネットワーク(LAN(Local Area Network)側)への侵入を防御するためパケットフィルタリング機能を有している。しかし、近年、ネットワーク回線の高速化に伴い、DDOS攻撃パケットをホームゲートウェイでフィルタリングする際に以下のような問題点が発生する。
【0009】
ホームゲートウェイは、DDOS攻撃パケットを遮断する必要があるが、ユーザによりアクセスが許可されている正当なアクセスのパケットはDDOS攻撃中にも導通させる必要がある。一般的にDDOS攻撃パケットは送信元IPアドレスを偽装してアクセスしてWAN側より到着する。しかし、それ以外に正当アクセスのパケットとDDOS攻撃パケットの違いはなく、ホームゲートウェイで両者のパケットの差異(特徴点)を抽出して検出することは困難である。したがって、ホームゲートウェイは、到着した各パケットを上述したパケットフィルタ条件と比較する手法によって、パケットがDDOS攻撃パケットであるか否かを判定し、遮断または通過の処理を行うことになる。
【0010】
またDDOS攻撃時には非常に多量のパケットが到着する。たとえば、最悪ケースでは1Gbps回線に64ByteのDDOS攻撃のショートフレームが到着する。この場合、ホームゲートウェイで上記のパケットフィルタ条件と比較する処理を全てのパケットに対して行うには、非常に高速の判定処理(たとえば、非常に短い時間[200万packet/s]で完了する)を実行する必要がある。
【0011】
しかし一般的なホームゲートウェイが有するCPU(Central Processing Unit)で、パケットフィルタリングを実現しつつこのような高速の処理を実現するのは困難である。このため、上記従来のパケットフィルタ条件と比較する手法では、バッファオーバーフローが発生し、ラインレートのスループットを保証することができない、という問題点があった。
【0012】
また、上記特許文献1のフィールド値キャッシュを用いて高速処理を図る技術では、各パケットが通過させるべき正常トラヒックで、かつ既存のフィールド値キャッシュにエントリが登録されている後続パケットを対象とする場合のみ高速に通過と判定することができる。しかし、DDOSパケットは送信元アドレス・送信元ポートを無秩序に偽装して送信されるため、フィールド値キャッシュとの比較判定により高速に通過と判定できない。このためDDOSパケットに対しては、依然としてパケットフィルタ条件と逐一比較する手法を採用する必要があり、判定処理が遅くなる。
【0013】
また、DDOS攻撃時にはDDOSパケットと導通させるべき正常パケットが混在する。フィールド値キャッシュによる比較処理と、キャッシュ判定で通過と判定できなかった場合さらにパケットフィルタ条件と逐一比較する処理において、この2つの処理を直列で実行する構成とした場合、DDOS攻撃時にはより大量に到着するDDOSパケットの逐一比較処理で多くの処理時間を必要とする。
【0014】
したがって、フィールド値キャッシュ比較処理と逐一比較処理を直列に実行する構成とした場合、DDOS攻撃時にはフィールド値キャッシュによる比較処理を実行する時間もなくなり、導通させるべき(フィールド値キャッシュにエントリが存在する既存コネクションの)正常トラヒックのパケットにもパケット廃棄が発生してしまう、という問題があった。
【0015】
また、フィールド値キャッシュ比較処理と逐一比較処理を並行に実行する構成としても、大量のDDOSパケットと正常トラヒックの先頭パケットは、逐一比較処理の実行で競合することになるので、正常トラヒックでも新規コネクションの受け付けができなくなる、という問題があった。
【0016】
近年、フィールド値抽出処理や比較処理など一部の処理をH/Wで実行し、残りの処理をパケット転送専用のCPUで実現し、ワイヤレートの処理能力を持つネットワークプロセッサが出現している。
【0017】
しかし、正常トラヒックのパケットのみを入力しキャッシュ比較処理だけを実行する場合は、パケット廃棄が発生せず、十分な性能を持つネットワークプロセッサでも、上記の理由により、DDOSパケットを入力すると正常トラヒックのパケット処理で廃棄が発生したり、あるいは正常トラヒックでも新規コネクションの受け付けができなくなる、という問題があった。
【0018】
また、一般にホームゲートウェイにユーザが設定するパケットフィルタ条件は、<発アドレスの範囲,着アドレス(宛先アドレス)の範囲,プロトコル(プロトコルの識別子),発ポート番号の範囲,着ポート番号(宛先ポート番号)の範囲>というように、フローを識別するためのパケットの任意のフィールドの組み合わせとなる。このように範囲指定を含むフィールドで構成されるパケットフィルタ条件を、ハードウェアで高速に比較できるフィールド値キャッシュ(たとえばHash値)演算で実現しようとすると、範囲内の全ての数値について<発アドレス,着アドレス,プロトコル,発ポート番号,着ポート番号>のキーを持つ個別のエントリに展開する必要がある。しかし、個別のエントリに展開すると、フィールド値キャッシュに登録すべきエントリ数は各項目の範囲数の積となる。このため、フィールド値キャッシュに登録すべきエントリ数が爆発的に増大し、フィールド値キャッシュへのエントリ登録が実質的に困難になる、という問題があった。
【0019】
また、上記特許文献2に記載の技術では、フィルタ条件の各エントリに対し並列に条件適合の判定を行うことにより処理の高速化を図っている。しかし、並列化処理の数に制約があるホームゲートウェイでは、大量のパケットが到来するDDOS攻撃の際に処理が追いつかずスループットが低下する可能性がある、という問題があった。
【0020】
また、上記特許文献3に記載の技術では、よりWAN(Wide Area Network)側網に近い加入者終端集合装置にDDOSパケットを転送しないよう要求を通知して、DDOS攻撃を回避している。そのため、上位の加入者終端集合装置の処理に頼ることになり自装置単独ではパケット廃棄を実現できない、という問題があった。
【0021】
また、上記特許文献3に記載の技術では、よりWAN(Wide Area Network)側網に近い加入者終端集合装置にDDOSパケットを転送しないよう要求を通知して、DDOS攻撃を回避している。そのため、上位の加入者終端集合装置の処理に頼ることになり自装置でパケットを廃棄する処理を行っていない、という問題があった。
【0022】
本発明は、上記に鑑みてなされたものであって、通過させるべきパケットは可能な限り通過させ、また、遮断すべきパケットは自装置で確実に廃棄するパケットフィルタリング処理を、高速に行うことができるゲートウェイ装置およびパケットフィルタリング方法を得ることを目的とする。
【課題を解決するための手段】
【0023】
上述した課題を解決し目的を達成するために、本発明では、受信したパケットに対して、あらかじめ設定されたフィルタリング条件に基づいて、通過判定は不正確だが廃棄判定は正確かつ高速処理が可能なプレフィルタリング処理と、通過判定と廃棄判定ともに正確だが低速処理となる逐一パケットフィルタリング処理の、2段階のフィルタリング処理を実行する手段を備えることを特徴とする。
【0024】
また、LANおよびWANに接続され、前記LAN側から前記WAN側へパケットを転送する際に動的NAPT変換処理を行うゲートウェイ装置であって、前記フィルタリング処理手段の処理実施前に、動的NAPT変換処理対象のWAN側から受信した動的NAPT受信パケットからプロトコル識別子、宛先アドレスおよび宛先ポート番号を抽出し、前記抽出結果を、通過を許可すべきプロトコル識別子、宛先アドレスおよび宛先ポート番号の組み合わせがあらかじめ格納されているプレフィルタ条件の各エントリと比較する、高速なプレフィルタリング処理を備えることを特徴とする。
【0025】
また、比較の結果、抽出したプロトコル識別子、宛先アドレスおよび宛先ポート番号の組み合わせと一致するエントリがあると判断した場合には、前記動的NAPT受信パケットを仮通過パケットと判定し、低速な逐一パケットフィルタリング処理に処理を移行してさらに続行させる通過判定手段を備えることを特徴とする。
【0026】
また、高速処理が可能なプレフィルタリング処理と、低速処理となる逐一パケットフィルタリング処理の処理は並列とし、低速な逐一パケットフィルタリング処理に処理を移行後は実行中でも、高速なプレフィルタリング処理は後続のパケットを処理可能とする構成を備えることを特徴とする。
【0027】
また、一致するエントリがないと判断した場合には、前記動的NAPT受信パケットを、低速な逐一パケットフィルタリング処理を実行することなく、高速に破棄する通過判定手段を備えることを特徴とする。
【発明の効果】
【0028】
この発明によれば、エントリがフィールド値キャッシュに存在する既存のコネクションはパケット導通を維持しつつ、DDOSパケットのフィルタリングを実現できる。また、動的NAPTインタフェース上で受信するDDOSパケットが、高速処理が可能なプレフィルタリング処理で廃棄される限りにおいて、導通させるべき新規コネクションの受付も実現できる。これにより、通過させるべきパケットは可能な限り通過させ、また、遮断すべきパケットは自装置で確実に廃棄するパケットフィルタリング処理を実現できる、という効果を奏する。
【発明を実施するための最良の形態】
【0029】
以下に、本発明にかかるゲートウェイ装置およびパケットフィルタリング方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【0030】
実施の形態1.
図1は、本発明にかかるゲートウェイ装置の実施の形態1の機能構成例を示す図である。図1に示すように本実施の形態のゲートウェイ装置は、転送処理部1と、制御処理部2と、で構成される。また、転送処理部1は、パケット分類フィールド値抽出処理部11と、第1の完全一致判定部12と、パケット編集処理部13と、第2の完全一致判定部14と、で構成される。また、制御処理部2は、L2IPスタック21と、転送制御IPスタック22、L3IPスタック23と、で構成される。
【0031】
さらに、L2IPスタック21は、ARP(Address Resolution Protocol)処理部31と、PPPoE(Point to Point Protocol over Ethernet(登録商標))処理部32と、VLAN(Virtual LAN)処理部33と、で構成される。転送制御IPスタック22は、FILTER判定処理部34とFLOW情報管理部35で構成される。L3IPスタック23は、FW(FIREWALL)条件管理部36と、NAT管理部37と、DSCP更新値管理部38と、ルーティングテーブル管理部39と、で構成される。
【0032】
図2は、本実施の形態のFIREWALL条件(パケットフィルタ条件)エントリの一例を示す図である。本実施の形態では、ユーザがゲートウェイ装置にFIREWALL条件を登録しておき、必要に応じてユーザが変更することとする。図2に示すように、本実施の形態のFIREWALL条件は、受信I/F(インタフェース),発アドレス,着アドレス,プロトコル,発ポート,着ポート,動作の項目を含んでおり、図2の1段が1つのエントリに対応する。受信I/Fは、パケットを受信したI/Fであり、ここでは、どのネットワーク(たとえば、LAN)に対応する受信I/Fであるかを示すこととし、ネットワーク名を示すこととする。図2の受信I/F,発アドレス,着アドレス,プロトコル,発ポート,着ポートの項目は、エントリごとの条件を示しており、動作の項目は、それらの条件に合致する場合のゲートウェイ装置の動作を示している。ここでは、動作は、drop(破棄)とpass(通過)の2種類を示している。
【0033】
また、ここでは、本実施の形態のゲートウェイ装置は、WAN#1〜WAN#3の3つのWANとLANに接続されていることとする。1段目から5段目までのエントリはWAN#1から受信したパケットに対するエントリであり、6段目のエントリはWAN#2から受信したパケットに対するエントリであり、7段目のエントリはWAN#3から受信したパケットに対するエントリである。また2段目から4段目のエントリは、範囲条件(たとえば、発アドレスが、133.9.3.100−133.9.3.200の範囲)を含むFIREWALL条件エントリとなっている。
【0034】
また、本実施の形態では、FW条件管理部36と、NAT管理部37と、DSCP更新値管理部38と、ルーティングテーブル管理部39が、それぞれユーザから自身の処理に関連するフィルタリング条件を受付けて、受け付けた条件をFILTER判定処理部34に出力することとする。すなわち、FW条件管理部36と、NAT管理部37と、DSCP更新値管理部38と、ルーティングテーブル管理部39は、処理ごとのフィルタリング条件を受け付ける手段と考えることができる。そして、FILTER判定処理部34は、これらの条件を収集して、結合し、結合結果をFILTER条件として保持することとする。
【0035】
図3は、本実施の形態の静的NAPT(Network Address Port Translation)条件のエントリの一例を示す図である。本実施の形態では、静的NAPT条件のエントリをユーザがゲートウェイ装置にあらかじめ登録しておき、必要に応じてユーザが変更することとする。図3に示すように、本実施の形態の静的NAPT条件は、受信I/F,着アドレス,プロトコル,着ポート,動作,NAPT,NAPT先アドレス,NAPT先ポートの項目を含んでおり、1段が1つのエントリに対応する。本実施の形態のNAT管理部37はこのような静的NAPT条件エントリに基づいて後述のようにNAT処理を行うこととする。1段目と2段目のエントリは、WAN#1に関するエントリであり、3段目と4段目のエントリは、WAN#3に関するエントリである。
【0036】
図4は、本実施の形態のFILTER条件エントリの一例を示す図である。本実施の形態のFILTER条件エントリは、前述のようにFW条件管理部36と、NAT管理部37と、DSCP更新値管理部38と、ルーティングテーブル管理部39から出力された条件を結合したものである。たとえば、ここでは、図2で例示したFIREWALL条件エントリと図3に示した静的NAPT条件エントリを結合して生成したとする。図4に示すように、FILTER条件を示す部分(FILTER)と条件と合致した場合に行う動作を示す部分(ACTION)に分けて生成する。図4の1段目から4段目は、図3の静的NAPTエントリの1段目から4段目に対応し、図4の5段目から11段目は図2のFIREWALL条件エントリに対応している。なお、図2〜図4で示した各エントリは、優先度の高いエントリから順に格納されていることとする。
【0037】
図5は、本実施の形態の第2の完全一致判定部14が実施する処理で用いるPREフィルタ設定エントリの一例を示す図である。図5に示すように、PREフィルタ設定エントリは、FILTER条件エントリと同様の項目を含んでいる。第2の完全一致判定部14の処理については後述するが、本実施の形態の第2の完全一致判定部14は、FILTER判定処理部34が従来の手法によるパケットフィルタリングを行う前に、通過すべきパケットの候補、すなわち、仮通過パケットを選択し、仮通過パケット以外を仮通過判定手段として機能する。
【0038】
図6は、本実施の形態の第2の完全一致判定部14の機能構成例を示す図である。図6に示すように、本実施の形態の第2の完全一致判定部14は、受信I/F判定部41と、PRE−FILTER判定部42−1〜42−3と、で構成される。受信I/F判定部41は、動的NAPT実行I/Fに対応するネットワークから受信したパケットである場合には、PRE−FILTER判定部42−1〜42−3へ出力し、動的NAPT実行I/Fに対応しないネットワークから受信したパケットを直接FILTER判定処理部34へ出力する。
【0039】
図7−1,図7−2は、本実施の形態のFLOW情報管理部35が生成するフロー情報エントリの一例を示す図である。図7−3は、図7−1,7−2の例で仮定しているネットワーク構成例を示す図である。図7−1は、パケットを識別するためのフィールド値情報(FLOW)の一例を示しており、識別番号(No),方向,受信I/F,発アドレス,着アドレス,プロトコル,発ポート,着ポートの項目を含んでいる。図7−2は、パケットを編集するためのIPヘッダ編集情報(MODIFY)と出力先ネクストホップ情報の一例を示している。MODIFYは、識別番号(No),方向,発アドレス,発ポート,着アドレス,着ポートを含み、FLOWは、宛先MAC(Media Access Controlアドレス)と出力IF(インタフェース)を含んでいる。図7−1,7−2に示すように、フロー情報エントリは順方向と逆方向で1対となり、1対に対して同一識別番号を付している。また、図7−1で示したフィールド値情報(FLOW)はフィールド値エントリとして第1の完全一致判定部12が保持し、図7−2で示したIPヘッダ編集情報(MODIFY)と出力先ネクストホップ情報は、編集情報エントリとしてパケット編集処理部13が保持する。
【0040】
また、図7−3に示すように、この例のネットワーク構成は、本実施の形態のゲートウェイ装置100と、通信装置201〜204と、SIP(Session Initiation Protocol)サーバであるSIP210と、を備えている。ゲートウェイ装置100は、通信装置201とはLANを介して接続され、通信装置202とはWAN#1およびインターネットを介して、SIP210とはWAN#1を介して、通信装置203とはWAN#2を介して、通信装置204とはWAN#3を介して、それぞれ接続されている。
【0041】
つづいて、本実施の形態の動作について説明する。ここでは、図7−3に示したネットワーク構成を仮定することとする。まず、本実施の形態のゲートウェイ装置にパケットフロー(<送信元アドレス・送信元ポート番号・プロトコル・宛先アドレス・宛先ポート番号>が全て同一であるパケットの組)の最初のパケットを受信し、パケット分類フィールド値抽出処理部11がパケット種別(たとえば、ARPパケット,PPPoE制御パケットなど)を判定する。
【0042】
パケット分類フィールド値抽出処理部11は、受信したパケットの種別がARPパケットやPPPoE制御パケットなど転送制御に関係するパケットであると判定した場合、ARPパケットはARP処理部31へ、PPPoE制御パケットはPPPoE処理部32へ、それぞれ転送する。
【0043】
そして、ARP処理部31は、転送されたARPパケットに対するARP応答パケットの生成する処理など、所定のARP処理を実施する。また、PPPoE処理部32は、転送されたPPPoE制御パケットに対する応答処理など所定のPPPoE処理を実施する。
【0044】
また、パケット分類フィールド値抽出処理部11は、受信したパケットの種別がIP(Internet Protocol)/UDP(User Datagram Protocol)/TCP(Transmission Control Protocol)など、転送制御に関係しないデータパケットであると判定した場合、さらにそのパケットが属するパケットフローを識別するフィールド値:<送信元アドレス・送信元ポート番号・プロトコル番号・宛先アドレス・宛先ポート番号>をデータパケットから抽出し、抽出したフィールド値とそのパケットを第1の完全一致判定部12に転送する。
【0045】
第1の完全一致判定部12は、パケット分類フィールド値抽出処理部11が抽出したフィールド値に一致するエントリが、自身が保持するフィールド値エントリに登録されているかを判定する。ここでは、受信したパケットは、パケットフローの最初のパケットであり、エントリに登録されていないものとする。この場合、第1の完全一致判定部12は、そのパケットを第2の完全一致判定部14へ転送する。
【0046】
ここで、FW条件管理部36はあらかじめ登録された図2のようなFIREWALL条件エントリを保持し、また、NAT管理部37はあらかじめ登録された図3のような静的NAPT条件エントリを保持しているとする。
【0047】
また、NAT管理部37では、LANからWAN#1の方向、および、LANからWAN#3の方向へ転送されるパケットに対し動的NAPTを実行するよう設定されていることとする。すなわちWAN#1とWAN#3が動的NAPT実行I/Fとなるよう設定されているものとする。
【0048】
また、FILTER判定処理部34は、FIREWALL条件エントリと静的NAPT条件エントリを読み出して結合し、図4のような形式のFILTERエントリを生成して保持する。この際、静的NAPT条件エントリに基づいて生成されるエントリ(図4の1段目から4段目)については、静的NAPT条件エントリに発アドレス・発ポート番号が含まれないため(一般に静的NAPT条件エントリでは発アドレス・発ポート番号を指定しない)ため、FILTERエントリとするときに発アドレスおよび発ポート番号をany(そのパラメタのとり得る全ての値に適合する条件)とする。静的NAPT条件エントリに基づくエントリ(図4の5段目から11段目)については、FIREWALL条件エントリにそのまま登録する。
【0049】
生成されたFILTER条件のうち、FILTERの部分は、どのようなパケットを振り分けるための条件を記述する部分であり、ACTIONは、条件に合致したパケットに対してどのような動作を実行するかを記述する部分である。図4に示したように、FIREWALL条件エントリはエントリごとにFILTERとACTIONが対応付けられている。
【0050】
またFILTER判定処理部34は、図4のFILTER条件エントリから、動的NAPT実行I/Fに対応するエントリを選択し、選択したエントリに基づいて次のように第2の完全一致判定部14にPRE−FILTER条件エントリを生成して登録する。
【0051】
まず、FILTER条件エントリから、受信I/Fが動的NAPT実行I/Fであり、かつ、動作がpass(通過)であるエントリのみを抽出する。そして、そのエントリから<プロトコル,着アドレス,着ポート番号>を抽出する。ここで、着アドレスが範囲指定されている(anyも含む)場合、着アドレスの範囲条件に動的NAPT実行I/Fのアドレスが含まれていれば、着アドレスをその動的NAPT実行I/Fのアドレス(この場合は、localhostとする)に変換した後に、PRE−FILTERエントリを生成する。着アドレスの範囲条件に動的NAPT実行I/Fのアドレスが含まれていなければ、PRE−FILTERエントリとして登録しない。また、着ポート番号が範囲で指定されている場合には、その範囲の先頭の値から最後の値まで個別に展開してPRE−FILTER条件エントリとして生成する。PRE−FILTER条件エントリの発アドレスおよび発ポートについては、条件比較項目に含めない(N/Aとする)。
【0052】
たとえば、図4のFILTERエントリのうち、受信I/FがWAN#1(動的NAPT実行I/F)のエントリについて、動作がpassであるエントリは1段目,2段目,6段目,8段目である。したがって、FILTER判定処理部34は、受信I/FがWAN#1のエントリについては、1段目,2段目,6段目,8段目の<プロトコル,着アドレス,着ポート番号>を抽出する。このうち、6段目と8段目の着アドレスは、anyであり範囲指定されているため、着アドレスをWAN#1のI/Fアドレスであるlocalhostに変換する。
【0053】
また、図4の6段目と8段目のエントリは、着ポートについても範囲指定となっている。このため、着ポートをその範囲の先頭の値から最後の値までに展開してPRE−FILTERエントリとして生成する。たとえば、図4の6段目のエントリについては、着ポート番号の50000−50500という範囲指定を、図5の3〜7段目に示すように50000,50001,50002,…,50500の着ポート番号に展開して個別のPRE−FILTERエントリとして生成する。同様に、図4の8段目のエントリについては、100−1024というという範囲指定を、図5の8〜12段目に示すように100,101,102…,1024の着ポート番号に展開して個別のPRE−FILTER条件エントリとして生成する。
【0054】
このようにして生成したPRE−FILTER条件エントリを受信I/Fごとに第2の完全一致判定部41のPRE−FILTER判定部42−1〜42−3が保持するPRE−FILTER条件エントリとして登録する。本実施の形態では、動的NAPT実行I/FであるWAN#1についてのPRE−FILTER条件エントリはPRE−FILTER判定部42−1が保持し、WAN#3についてのPRE−FILTER条件エントリはPRE−FILTER判定部42−2が保持することとする。
【0055】
このように、受信I/Fが動的NAPT実行I/Fでありかつ動作が通過であるFILTER条件エントリを選択し、さらに発アドレス・発ポート条件などの限定条件は条件比較から外してPRE−FILTERエントリを生成する。このため第2の完全一致判定部14のPRE−FILTER判定部42−1〜42−3が保持するPRE−FILTER条件エントリには、動的NAPT実行I/Fで外部からのアクセスを許可するべき各フローの先頭パケットの<プロトコル・着アドレス・着ポート番号>の候補が全て登録される。受信I/Fが動的NAPT実行I/Fの場合について、PRE−FILTER判定部42−1〜42−3による判定を行うのは、動的NAPT実行I/Fの場合にはFILTER条件として着アドレス,着ポートが範囲で指定されることが多いため、静的NAPT実行I/Fの場合に比べ、FILTER条件との比較処理の負荷が高いからである。
【0056】
ここで、パケット受信処理の説明に戻る。第2の完全一致判定部14は、第1の完全一致判定部12から転送されたパケット(先頭パケットが転送されるため、以下先頭パケットという)を受け取ると、まず、受信I/F判定部41が、その先頭パケットの受信I/Fが動的NAPT実行I/Fであるかを判定する。受信I/Fが動的NAPT実行I/Fであれば、その受信I/Fに対応するPRE−FILTER判定部42−1〜42−3へパケットを転送する。そして、PRE−FILTER判定部42−1〜42−3は、転送された先頭パケットの<プロトコル・着アドレス・着ポート番号>と、各々が保持しているPRE−FILTER条件エントリを比較し、一致するエントリがない場合には、その先頭パケットを廃棄する。
【0057】
たとえば、転送された先頭パケットの受信I/Fが動的NAPT実行I/FであるWAN#1であった場合、WAN#1に対応するPRE−FILTER判定部42−1に先頭パケットを転送する。PRE−FILTER判定部42−1は、その先頭パケットの<プロトコル・着アドレス・着ポート番号>が、保持しているPRE−FILTER条件エントリと一致するかを判定し、一致するエントリがない場合には、その先頭パケットを廃棄する。なぜなら、PRE−FILTER判定部42−1が保持するPRE−FILTER条件エントリには、前述の通り受信I/FがWAN#1であり、外部からのアクセスを許可するべき先頭パケットの<プロトコル・着アドレス・着ポート番号>が全て登録されており、登録されていない(エントリと一致しない)パケットは全て破棄して良いと判断することができるためである。
【0058】
また、PRE−FILTER判定部42−1〜42−3は、転送された先頭パケットの<プロトコル・着アドレス・着ポート番号>と一致するPRE−FILTER条件エントリがあった場合にはその先頭パケットを仮通過パケットと判定し、PRE−FILTERエントリの生成時に切り捨てた発アドレス・発ポート条件などを満たすかなどさらに詳細な判定を行うため、その先頭パケットをFILTER判定処理部34に転送する。
【0059】
また、受信I/F判定部41は、先頭パケットの受信I/Fが動的NAPT実行I/Fでないと判定した場合は、FILTER判定処理部34にその先頭パケットを転送する。
【0060】
このように、受信I/F判定部41が、先頭パケットの受信I/Fが動的NAPT実行I/Fかを判定し、動的NAPT実行I/Fであった場合にPRE−FILTER条件判定部42−1〜42−3を経由することにより、廃棄すべき先頭パケットを、FILTER判定処理部34を経ずに廃棄することができる。これにより、先頭パケットの受信I/Fが動的NAPT実行I/Fの場合に、効率的に遮断すべきパケットを検出し、高速に先頭パケットを廃棄できる。
【0061】
また、FILTER判定処理部34に転送される先頭パケットは、受信I/Fが動的NAPT実行I/Fでないか、または、受信I/Fが動的NAPT実行I/Fであり、かつ通過と判断された先頭パケット(仮通過パケット)のみである。FILTER判定処理部34は、これらの先頭パケットについて、図4に例示したFILTER条件エントリの内容と一致するか、を優先度の高いエントリから順に判定する。判定の結果、FILTER条件エントリの条件に合致するFILTERエントリが存在し、そのエントリの動作が遮断の場合、FILTER判定処理部34は、その先頭パケットを廃棄する。また、FILTER条件エントリの条件に合致するFILTERエントリが存在し、エントリの動作が通過の場合、FILTER判定処理部34は、その先頭パケットをFLOW情報管理部35に転送する。
【0062】
FLOW情報管理部35は、図7−1,7−2に示すような第1の完全一致判定部12が保持するフロー情報エントリを生成する。具体的には、FILTER判定処理部34から転送された先頭パケットから<送信元アドレス・送信元ポート番号・プロトコル番号・宛先アドレス・宛先ポート番号>を抽出し、フィールド値FLOW(図7のFLOW)として生成する。
【0063】
また、FLOW情報管理部35は、FILTER判定処理部34が保持するFILTER条件エントリ,NAT管理部37,DSCP値更新管理部38から情報を収集して図7−2のIPヘッダ編集情報(MODIFY)を生成し、ARP処理部31,PPPoE処理部32,VLAN処理部33,ルーティングテーブル管理部39から情報を収集して出力先ネクストホップ情報(NEXTHOP)を生成する。そして、FLOW情報管理部35は、これらを統合して図7−2に示すようなパケット編集情報エントリを生成する。なお、NAT管理部37はNAT処理に関する必要情報を、DSCP更新値管理部38はTOS/DSCPに関する必要情報を、ARP処理部31はARP処理に関する必要情報を,PPPoE処理部32はPPPoE処理に関する必要情報を、VLAN処理部33はVALN処理に関する必要情報を、ルーティングテーブル管理部39はルーティング情報を、それぞれ保持し所定の処理により必要な場合には更新していることとする。
【0064】
さらに、FLOW情報管理部35は、図7−1で示したフィールド値(FLOW)を第1の完全一致判定部12に出力し、図7−2で示したIPヘッダ編集情報(MODIFY)と出力先ネクストホップ情報(NEXTHOP)を、パケット編集処理部13へ出力する。第1の完全一致判定部12,パケット編集処理部13は、出力された情報をそれぞれフィールド値エントリ,編集情報エントリとして保持する。
【0065】
そして、FLOW情報管理部35は、最後に先頭パケットを、パケット分類フィールド値抽出処理部11に戻す。
【0066】
パケット分類フィールド値抽出処理部11は、FLOW情報管理部35から戻された先頭パケットから、1度目と同様にフィールド値:<送信元アドレス・送信元ポート番号・プロトコル・宛先アドレス・宛先ポート番号>を抽出し、抽出したフィールド値とそのパケットを第1の完全一致判定部12に転送する。
【0067】
第1の完全一致判定部12は、抽出されたフィールド値:<送信元アドレス・送信元ポート番号・プロトコル・宛先アドレス・宛先ポート番号>に該当するエントリがFILTER条件エントリに存在するか再度判定する。2回目の判定では、上記の処理により、その先頭パケットに対応するフィールド値エントリを生成済みであるため、第1の完全一致判定部12は、該当するエントリが登録されていると判定する。そして、第1の完全一致判定部12は、パケット編集処理部13にその先頭パケットを転送する。
【0068】
パケット編集処理部13は、保持している編集情報エントリに基づいて転送された先頭パケットの所定の箇所を編集する。たとえば、NAPT処理を行う場合は送信元アドレス・ポート番号または宛先アドレス・宛先ポート番号を更新したり、TOS/DSCP値更新処理を行う場合は、TOS/DSCPフィールドを更新したりする。なお、図7−2の例では、TOS/DSCP値更新の情報を示していないが、図7−2は一例であり、これに限らず、パケットに必要な編集処理に応じて編集項目を設定すればよい。
【0069】
また、パケット編集処理部13は、出力先ネクストホップ情報に基づいて送信元・宛先MACアドレスを更新したり、必要な場合にはPPPoEヘッダでカプセリングしたりする。なお、どのような編集処理が必要であるかについては、パケットの種別ごとに設定することとする。最後に、パケット編集処理部13は、編集したパケットを外部へ送信する。
【0070】
また先頭パケットと同一のフローに属する後続のパケットも同様の手順により転送処理部1内で処理され、外部へ送信される。
【0071】
以上のように、本実施の形態では、各フローの先頭パケットに対し第2の完全一致判定部14が動的NAPT実行I/Fでありかつ通過させるべき先頭パケットを抽出してFILTER判定処理部34に転送し、通過させるべきでない先頭パケットを廃棄するようにした。このため、動的NAPT実行I/Fに到着するDDOSパケットの多くを第2の完全一致判定部14が破棄することができ、FILTER判定処理部34が逐次判定により通過と破棄を判定する場合に比べ、破棄すべきパケットを効率よく高速に廃棄することができ、より多くの正常フローの先頭パケットを処理することが可能となる。したがって、動的NAPT実行I/Fに、通過させるべき正常フローの先頭パケットと廃棄すべきパケットが混在して到着するような状況でも、従来技術に比べより多くの正常フローの先頭パケットを通過させることができる。
【0072】
さらに、本実施の形態では、第2の完全一致判定部14が各フローの後続パケットに対して、図2に示すFIREWALLエントリや図3に示す静的NAPTエントリと逐次比較を実施することなくフィールド値エントリに基づいて通過/破棄を判定し、通過させるパケットはただちにパケット編集処理部13へ転送する。このため、一度先頭パケットに対し通過と判定した後は、そのパケットと同一フローの後続パケットに対しても高速に処理できる。
【0073】
さらに、第2の完全一致判定部14と第1の完全一致判定部12のいずれも高速に判定できるHASH演算による比較により行い、動的NAPT実行I/Fに到着するDDOSパケットが全て第2の完全一致判定部14で廃棄される場合、DDOSパケットを廃棄する場合の総処理時間(パケット分類フィールド値抽出部11と第2の完全一致判定部14と第1の完全一致判定部12の総計)と、正常フローの後続パケットが通過する場合の総処理時間(パケット分類フィールド値抽出部11と第2の完全一致判定部14とパケット編集とパケット送信の処理時間の総計)が、共にワイヤレートのパケットの到着時間より短くなるように、これらの処理をH/W的に実現することで、DDOSパケットがワイヤレートで到着する場合でも正常フローのパケットを全て確実に通過させることができる。
【0074】
また、本実施の形態では、FW条件管理部36,NAT管理部37が、図2に示すFIREWALL条件エントリ,図3に示す静的NAPTエントリをそれぞれ受信I/Fごとに登録している。そして、それらのエントリに基づいて第2の完全一致判定部14は、受信I/Fごとに独立したPRE−FILTER判定部42−1〜42−3を設けている。このため、対象I/F以外のFIREWALLエントリおよび静的NAPTエントリの登録とは無関係に動作する。その結果、図2に示すようなインターネットに接続され動的NAPTを実行するI/FであるWAN#1に対する外部からのアクセスに対してはパケットフィルタリングを実施し、私設網に接続されたWAN#2に対する外部からのアクセスを全て許可するような場合でも、他の受信I/Fの処理と無関係に自身の処理対象の受信I/Fからの入力パケットに対してのみパケットフィルタリングを実施することができる。
【0075】
また、本実施の形態では、着ポートが範囲指定されている場合に展開して第2の完全一致判定部14が保持するようにしている。このため、範囲指定を持つFIREWALL条件に対しても適切なパケットフィルタリングを実施することができる。
【0076】
また、本実施の形態では、第2の完全一致判定部14が通過させた先頭パケットに対し、再度FILTER判定処理部34が逐次比較を実施するようにしている。これにより最終的には、ユーザが設定する図2に示すFIREWALL条件や図3に示す静的NAPT条件に合致するパケットフィルタリング処理を実現できる。
【0077】
実施の形態2.
図8は、本発明にかかるゲートウェイ装置の実施の形態2の機能構成例を示す図である。本実施の形態のゲートウェイ装置は、制御処理部2aと転送処理部1aとで構成される。制御処理部2aは、実施の形態1と同様のL2IPスタック21およびL3IPスタック23と、転送制御IPスタック22aと、L4IPスタック24と、VoIP機能部25と、で構成される。また、転送処理部1aは、実施の形態1の転送処理部1の第2の完全一致判定部14を第3の完全一致判定部15に替える以外は実施の形態1の転送制御部1と同様である。実施の形態1と同様の機能を有する構成要素は同一の符号を付して説明を省略する。
【0078】
また、本実施の形態の転送制御IPスタック22aは、実施の形態1の転送制御IPスタック22に廃棄パケットカウンタ50を追加する以外は実施の形態1の転送制御IPスタック22と同様である。
【0079】
L4IPスタック24は、UDP処理部51とTCP処理部52とで構成され、VoIP(Voice over Internet Protocol)機能部25は、SIP処理部53と、VoIP管理部54と、RTP(Real-time Transport Protocol)/RTCP(RTP Control Protocol)処理部55と、DSP(Digital Signal Processor)処理部56と、で構成される。
【0080】
図9は、本実施の形態の第3の完全一致判定部15の機能構成例を示す図である。本実施の形態の第3の完全一致判定部15は、実施の形態1の第2の完全一致判定部14にカウンタ57−1〜57−6,DDOS−FILTER判定部58−1〜58−3を追加する以外は、実施の形態1の第2の完全一致判定部14と同様である。
【0081】
実施の形態1では、動的NAPT実行I/Fに到着するDDOSパケットをPRE−FILTERで廃棄できるようにしたが、本実施の形態ではDDOS攻撃時にもVoIP着呼処理を実施できるようにしている。以下、実施の形態1と異なる部分について説明する。
【0082】
つづいて、本実施の形態の動作について説明する。通常、ゲートウェイ装置はVoIP着呼を受け入れるためSIP用着ポート番号についてはFIREWALL条件で通過と設定する。このため、VoIP機能部25は、ゲートウェイ装置がVoIP着呼を受け付けるSIPサーバアドレスを発アドレスとし、VoIP着呼を受け付けるWAN側のI/Fアドレスを着アドレスとし、VoIP着呼を受け付けるSIPポート番号を着ポート番号とし、動作を通過としたエントリ(以下、SIPエントリという)をFW条件管理部36が保持するFIREWALL条件エントリに登録しておく。また、これらのVoIP着呼に関連するエントリはVoIP管理部54が保持していることとする。
【0083】
このように登録されたFIREWALL条件エントリは、実施の形態1と同様に、FILTER判定処理部34が静的NAPTエントリと結合する。そして、FILTER判定処理部34は、結合したエントリを第3の完全一致判定部15のPRE−FILTER判定部42−1〜42−3に登録する。
【0084】
また、VoIP管理部54は、上記のSIPエントリを第3の完全一致判定部15のDDOS−FILETER判定部58−1〜58−3に出力し、第3の完全一致判定部15のDDOS−FILETER判定部58−1〜58−3は、出力されたエントリをDDOS−FILTERエントリとして保持する。
【0085】
つぎに、本実施の形態のゲートウェイ装置が、DDOS攻撃を受けたとする。DDOS攻撃パケットは、実施形態1で説明したように第1の完全一致判定部12のフィールド値エントリには登録されていない。したがって、第1の完全一致判定部12は、DDOS攻撃パケットを第3の完全一致判定部15に転送する。
【0086】
第3の完全一致判定部15の受信I/F判定部41は、実施の形態1と同様に転送されたパケットの受信I/Fが動的NAPT実行I/Fかを判定する。DDOS攻撃時で無い場合には、実施の形態1と同様にPRE−FILTER判定部42−1〜42−3が対応する受信I/Fについての判定を行い、破棄すべきパケットは破棄する。
【0087】
ここで、PRE−FILTER判定部42−1〜42−3が保持するPRE−FILTERエントリには、SIP用着ポート番号は、通過と設定されているとする。このため、DDOSパケットのうち、着ポート番号がSIP用ポート番号でないDDOSパケットはPRE−FILTER判定部42−1〜42−3が破棄する。また、カウンタ57−1はPRE−FILTER判定部42−1が廃棄したパケットを計数する。同様にカウンタ57−2はPRE−FILTER判定部42−2が廃棄したパケットを、カウンタ57−3はPRE−FILTER判定部42−3が廃棄したパケットをそれぞれ計数する。
【0088】
また、着ポート番号がSIP用ポート番号のDDOS攻撃パケットはPRE−FILTER42−1〜42−3を通過し、FILTER判定処理部34へ転送される。しかし、通過したDDOS攻撃パケットは、発アドレスがSIPサーバアドレスでないためFILTER判定処理部34で廃棄される。
【0089】
廃棄パケットカウンタ50は、FILTER判定処理部34が破棄したパケット数を計数する。廃棄パケットカウンタ50は、第3の完全一致判定部15のカウンタ57−1〜57−6が計数した計数結果を収集し、収集した計数結果とFILTER判定部34が破棄したパケット数を合計し、合計破棄パケット数を算出する。
【0090】
さらに、廃棄パケットカウンタ50は、一定期間毎に合計破棄パケット数に基づいてその一定期間の間に廃棄したパケットの総数を求める。カウンタ57−1〜57−6および廃棄パケットカウンタ50が廃棄したパケット数を初期値に戻さずに計数しているときには、一定期間毎の計数結果の差分をとってその期間に到着したパケット数を求める。なお、廃棄パケットカウンタ50は、差分を求めた後に現在の合計破棄パケット数は前回合計破棄パケット数として保持しておくこととする。そして、その差分が所定のしきい値以上であった場合にDDOS攻撃中であると検知する。なお、一定期間ごとにカウンタ57−1〜57−6および廃棄パケットカウンタ50のカウンタ値を初期化して0にする場合には、計数値がそのまま一定期間ごとの廃棄パケット数となるため、合計破棄パケット数がその期間に到着したパケット数となる。この場合は、差分を求めずに合計破棄パケット数をしきい値と比較する。
【0091】
廃棄パケットカウンタ50は、DDOS攻撃を検知すると、受信I/F判定部41に、パケットの出力先を、より強力な条件を設定しているDDOS−FILTER判定部58−1〜58−3へ切り替えるよう通知する。
【0092】
DDOS−FILTER判定部58−1〜58−3は、DDOS攻撃中でもSIPコネクションを通過させるために、SIPコネクションの<プロトコル番号・送信元アドレス・宛先アドレス・宛先ポート番号>を通過と登録したSIPエントリを保持している。DDOS−FILTER判定部58−1〜58−3は、SIPエントリに一致しないパケットは廃棄する。このため、DDOS−FILTER判定部58−1〜58−3は、送信元アドレスが、登録されているSIPサーバアドレスからのSIPポート宛パケットは通過するが、送信元アドレスがSIPサーバアドレス以外のパケットは破棄する。これによりDDOS−FILTER判定部58−1〜58−3は、DDOS攻撃パケットを完全に破棄することができる。また、カウンタ57−4〜57−6は、それぞれDDOS−FILTER判定部58−1〜58−3が破棄したパケット数を計数する。
【0093】
また、DDOS−FILTER判定部58−1〜58−3の以上の処理により、FILTER判定処理部34にはSIPエントリとして登録されているSIPサーバアドレスからの正当なSIPコネクションの先頭パケットのみが転送される。したがって、ゲートウェイ装置は登録されているSIPサーバアドレスからのSIPコネクションを確実に受け付けることができる。
【0094】
また、FLOW情報管理部35は、SIPエントリについても、実施の形態1と同様の手順で、フロー情報を生成し、フィールド値(FLOW)を第1の完全一致判定部12に出力しIPヘッダ編集情報(MODIFY)と出力先ネクストホップ情報(NEXTHOP)を、パケット編集処理部13へ出力する。ただしSIPコネクションはゲートウェイ装置で終端するため、順方向のNEXTHOP情報は自装置宛となる。
【0095】
このようにして、SIPフローの先頭パケットの処理が行われ、実施の形態1と同様にパケット分類フィールド値抽出処理部11に先頭パケットが戻される。そして、その先頭パケットは、第1の完全一致判定部12とパケット編集処理部13を経由して、UDP処理部51に出力される。UDP処理部51は、所定のUDP処理を行いSIPメッセージとしてSIP処理部53に通知する。
【0096】
そして、SIP処理部53は、SIP手順を終端する。また、SIP処理部53は、VoIPが使用するRTP/RTCP用のコネクションを所定の手順で取得し、取得したRTP/RTCP用のコネクションをVoIP管理部54に通知する。
【0097】
VoIP管理部54は、通知されたRTP/RTCP用のコネクション情報をFLOW情報管理部35に通知する。FLOW情報管理部35は、実施形態1で述べたFILTER判定処理部34で通過判定された場合と同様にフロー情報を生成し、フィールド値(FLOW)を第1の完全一致判定部12に出力しIPヘッダ編集情報(MODIFY)と出力先ネクストホップ情報(NEXTHOP)を、パケット編集処理部13へ出力する。
【0098】
このようにしてVoIPで使用するRTP/RTCPのフローに属するパケットは、最初から第1の完全一致判定部12に対応するフィールド値エントリが登録されている。したがって、このVoIPで使用するRTP/RTCPフローに属するパケットについては、先頭パケットであっても最初から通過する。
【0099】
なお、本実施の形態では、VoIPで使用するRTP/RTCPフローを例として説明したが、VoIPに限らず、制御セッションを確立して制御セッションによりコネクション情報を取得し、取得したコネクション情報に基づいてデータセッションが確立されてパケットが送信されるパケット処理の場合には、VoIPと同様に、制御セッションのコネクション情報を取得してその情報をFLOW情報管理部35に通知するようにすればよい。
【0100】
また、廃棄パケットカウンタ50は、一定期間毎に求めている差分が、所定のしきい値未満になった場合に、DDOS攻撃が終了したと検知する。そして、廃棄パケットカウンタ50は、DDOS攻撃が終了したと検知すると、受信I/F判定部41に、DDOS攻撃検知前と同様に、PRE−FILTER判定部42−1〜42−3へパケットを出力するよう通知する。
【0101】
なお、本実施の形態では、廃棄パケットカウンタ50は、カウンタ57−1〜57−6の計数結果を収集するようにしたが、DDOS攻撃検知の前およびDDOS攻撃終了の検知後は、カウンタ57−1〜57−3の計数結果を収集し、DDOS攻撃検知後(DDOS攻撃中)は、カウンタ57−4〜57−6の計数結果を収集するようにしてもよい。
【0102】
なお、本実施の形態では、DDOS−FILTER判定部58−1〜58−3を、PRE−FILTER判定部42−1〜42−3と同様に受信I/Fごとに設けることとし、各々が対応する受信I/Fのパケットを処理することとするが、これに限らず、1つの判定部とするなど、設ける数はいくつでもよい。
【0103】
以上のように、本実施の形態では、PRE−FILTER判定部42−1〜42−3およびFILTER判定処理部34が廃棄したパケット数を求め、パケット数の差分が所定のしきい値以上となった場合にDDOS攻撃を検知したと判断するようにした。このため、DDOS攻撃を検知することが可能になる。
【0104】
DDOS攻撃を検知すると、第3の完全一致判定部15は、パケットをPRE−FILTER判定部42−1〜42−3より強力な条件を保持するDDOS−FILTER判定部58−1〜58−3がパケットの通過/廃棄の判定を行うようにした。これによりDDOS攻撃検出時には、DDOS攻撃パケットを第3の完全一致判定部15を含む転送処理部1a内で確実に廃棄できる。
【0105】
また、本実施の形態では、DDOS攻撃パケットは第3の完全一致判定部15内で閉じて廃棄されるため、FILTER判定処理部34がDDOS攻撃パケットに対して逐次比較を実施する必要がなくなる。これによりFILTER判定部34を含む制御処理部2aの処理負荷を著しく軽減できる。さらに、制御処理部2aの処理負荷が軽減することにより、制御処理部2aが、リアルタイム性を必要とするDSP処理を専用のH/Wを用いずにS/W的に実現することが可能となる。これによりDSP処理のH/Wに要する回路規模または部材点数を削減することができる。
【0106】
また、本実施の形態では、VoIP機能部25が、DDOS攻撃検出時にも通過させるエントリとして発アドレスがSIPサーバである正当なSIPコネクションのエントリをあらかじめ設定し、先頭のSIPパケットを通過させるようにした。これによりDDOS攻撃検出時にもSIPパケットを確実に通過させることができる。
【0107】
また、本実施の形態では、SIP処理部53は、SIP手順により交渉したRTP/RTCP用フロー情報を取得し、取得したRTP/RTCP用フロー情報をあらかじめ第1の完全一致判定部12に登録するようにした。このため、DDOS攻撃検出時にもRTP/RTCPパケットを最初から確実に通過させることができる。
【0108】
また、本実施の形態では、第3の完全一致判定部15のDDOS−FILTER判定部58−1〜58−3も、全て完全一致判定により実現している。これにより、本発明にかかるFILTER処理は単一のHash演算比較装置により実現することが可能となり回路規模あるいは部材点数を削減できる。
【0109】
また、本実施の形態では、制御処理部2aが、DDOS攻撃の終了を検知すると、第3の完全一致判定部15の処理をPRE−FILTER判定部42−1〜42−3の処理に戻すようにした。このため、DDOS攻撃終了検出時には、従来どおりユーザが設定するFIREWALL条件、静的NAPT条件に一致した通過・廃棄判定を実現できる。
【産業上の利用可能性】
【0110】
以上のように、本発明にかかるゲートウェイ装置およびパケットフィルタリング方法は、パケットフィルタリングを行うゲートウェイ装置に有用であり、特に、DDOS攻撃中にも正常パケットを処理するゲートウェイ装置に適している。
【図面の簡単な説明】
【0111】
【図1】本発明にかかるゲートウェイ装置の実施の形態1の機能構成例を示す図である。
【図2】実施の形態1のFIREWALL条件(パケットフィルタ条件)エントリの一例を示す図である。
【図3】実施の形態1の静的NAPT(Network Address Port Translation)条件のエントリの一例を示す図である。
【図4】実施の形態1のFILTER条件エントリの一例を示す図である。
【図5】実施の形態1のPREフィルタ設定エントリの一例を示す図である。
【図6】実施の形態1の第2の完全一致判定部の機能構成例を示す図である。
【図7−1】実施の形態1のFLOW情報管理部が生成するフロー情報エントリの一例を示す図である。
【図7−2】実施の形態1のFLOW情報管理部が生成するフロー情報エントリの一例を示す図である。
【図7−3】図7−1,7−2の例で仮定しているネットワーク構成例を示す図である。
【図8】本発明にかかるゲートウェイ装置の実施の形態2の機能構成例を示す図である。
【図9】実施の形態2の第3の完全一致判定部の機能構成例を示す図である。
【符号の説明】
【0112】
1,1a 転送処理部
2,2a 制御処理部
11 パケット分類フィールド値抽出処理部
12 第1の完全一致判定部
13 パケット編集処理部
14 第2の完全一致判定部
15 第3の完全一致判定部
21 L2IPスタック
22 転送制御IPスタック
23 L3IPスタック
24 L4IPスタック
25 VoIP機能部
31 ARP処理部
32 PPPoE処理部
33 VLAN処理部
34 FILTER判定処理部
35 FLOW情報管理部
36 FW条件管理部
37 NAT管理部
38 DSCP更新値管理部
39 ルーティングテーブル管理部
41 受信I/F判定部
42−1〜42−3 PRE−FILTER判定部
50 廃棄パケットカウンタ
51 UDP処理部
52 TCP処理部
53 SIP処理部
54 VoIP管理部
55 RTP/RTCP処理部
56 DSP処理部
57−1〜57−6 カウンタ
58−1〜58−3 DDOS−FILTER判定部
100 ゲートウェイ装置
201〜204 通信装置
210 SIP

【特許請求の範囲】
【請求項1】
あらかじめ設定されたフィルタリング条件に基づいて受信したパケットに対してパケットフィルタリング処理を行うフィルタリング処理手段を備え、LANおよびWANに接続され、前記LAN側から前記WAN側へパケットを転送する際に動的NAPT変換処理を行うゲートウェイ装置であって、
前記フィルタリング処理手段の処理実施前に、動的NAPT変換処理の対象とするWAN側インタフェースから受信した動的NAPT受信パケットからプロトコル識別子、宛先アドレスおよび宛先ポート番号を抽出し、前記抽出結果を、通過を許可すべきプロトコル識別子、宛先アドレスおよび宛先ポート番号の組み合わせがあらかじめ格納されているプレフィルタ条件の各エントリと比較し、比較の結果、抽出したプロトコル識別子、宛先アドレスおよび宛先ポート番号の組み合わせと一致するエントリがあると判断した場合には、前記動的NAPT受信パケットを仮通過パケットと判定し、一方、一致するエントリがないと判断した場合には、前記動的NAPT受信パケットを破棄する仮通過判定手段、
を備え、
前記フィルタリング処理手段は、前記仮通過パケットに対して前記パケットフィルタリング処理を実施することを特徴とするゲートウェイ装置。
【請求項2】
前記フィルタリング処理手段の処理実施前に、受信したパケットから送信元アドレス、送信元ポート番号、プロトコル識別子、宛先アドレスおよび宛先ポート番号を抽出し、前記抽出結果を、あらかじめ保持している送信元アドレス、送信元ポート番号、プロトコル識別子、宛先アドレスおよび宛先ポート番号の組み合わせごとにそのパケットに対する処理内容が格納されているフィールド条件の各エントリと比較し、比較の結果、抽出した送信元アドレス、送信元ポート番号、プロトコル識別子、宛先アドレスおよび宛先ポート番号と一致するエントリが無いと判断した場合には、そのパケットを前記仮通過判定手段に転送し、一方、一致するエントリが有ると判断した場合には、一致したエントリの対応する処理内容に基づいて前記パケットに対する処理を行う先頭パケット判定手段、
をさらに備えることを特徴とする請求項1に記載のゲートウェイ装置。
【請求項3】
前記仮通過判定手段と前記先頭パケット判定手段を同一の演算装置に実装することを特徴とする請求項2に記載のゲートウェイ装置。
【請求項4】
前記フィルタリング処理手段の処理実施前に、動的NAPT変換処理対象のWAN側から受信した動的NAPT受信パケットからプロトコル識別子、送信元アドレス、宛先アドレスおよび宛先ポート番号を抽出し、前記抽出結果を、通過を許可すべきプロトコル識別子、送信元アドレス、宛先アドレスおよび宛先ポート番号の組み合わせがあらかじめ格納されている通過パケット条件の各エントリと比較し、比較の結果、抽出したプロトコル識別子、送信元アドレス、宛先アドレスおよび宛先ポート番号の組み合わせと一致するエントリがあると判断した場合には、前記動的NAPT受信パケットを仮通過パケットと判定し、一方、一致するエントリがないと判断した場合には、前記動的NAPT受信パケットを破棄する通過パケット判定手段と、
前記仮通過判定手段が破棄したパケット数を計数するカウンタと、
前記フィルタリング処理手段が破棄したパケット数を計数し、また、その計数結果と前記カウンタが計測したパケット数とを加算して合計パケット数とし、所定の期間の合計パケット数が所定のしきい値以上となった場合に、DDOS攻撃中と検知する破棄パケット算出手段と、
をさらに備え、
前記破棄パケット算出手段がDDOS攻撃中と検知した場合は、前記仮通過判定手段による処理を停止し、前記通過パケット判定手段による処理を実施し、前記通過パケット判定手段が判定した仮通過パケットを前記フィルタリング処理手段が処理対象とする仮通過パケットとすることを特徴とする請求項1に記載のゲートウェイ装置。
【請求項5】
前記フィルタリング処理手段の処理実施前に、動的NAPT変換処理対象のWAN側から受信した動的NAPT受信パケットからプロトコル識別子、送信元アドレス、宛先アドレスおよび宛先ポート番号を抽出し、前記抽出結果を、通過を許可すべきプロトコル識別子、送信元アドレス、宛先アドレスおよび宛先ポート番号の組み合わせがあらかじめ格納されている通過パケット条件の各エントリと比較し、比較の結果、抽出したプロトコル識別子、送信元アドレス、宛先アドレスおよび宛先ポート番号の組み合わせと一致するエントリがあると判断した場合には、前記動的NAPT受信パケットを仮通過パケットと判定し、一方、一致するエントリがないと判断した場合には、前記動的NAPT受信パケットを破棄する通過パケット判定手段と、
前記仮通過判定手段が破棄したパケット数を計数するカウンタと、
前記フィルタリング処理手段が破棄したパケット数を計数し、また、その計数結果と前記カウンタが計測したパケット数とを加算して合計パケット数とし、所定の期間の合計パケット数が所定のしきい値以上となった場合に、DDOS攻撃中と検知する破棄パケット算出手段と、
をさらに備え、
前記破棄パケット算出手段がDDOS攻撃中と検知した場合は、前記仮通過判定手段による処理を停止し、前記通過パケット判定手段による処理を実施し、前記通過パケット判定手段が判定した仮通過パケットを前記フィルタリング処理手段が処理対象とする仮通過パケットとすることを特徴とする請求項2に記載のゲートウェイ装置。
【請求項6】
前記仮通過判定手段と前記先頭パケット判定手段と前記通過パケット判定手段とのうちいずれか2つ以上の手段を同一の演算装置に実装することを特徴とする請求項5に記載のゲートウェイ装置。
【請求項7】
前記通過パケット判定手段が破棄した廃棄パケット数を計数する破棄パケットカウンタ、
をさらに備え、
前記破棄パケット算出手段は、DDOS攻撃中と検知した場合に、前記フィルタリング処理手段が破棄したパケット数の計数結果と前記破棄パケットカウンタが計測したパケット数とを加算してDDOS攻撃中合計パケット数とし、前記DDOS攻撃中合計パケット数が前記しきい値未満となった場合に、DDOS攻撃終了と検知し、
前記DDOS攻撃終了後に前記通過パケット判定手段による処理を停止し、前記仮通過判定手段による処理を実施し、前記仮通過判定手段が判定した仮通過パケットを前記フィルタリング処理手段が処理対象とする仮通過パケットとすることを特徴とする請求項4、5または6に記載のゲートウェイ装置。
【請求項8】
前記通過パケット条件として、VoIPパケットに対応するエントリを含むことを特徴とする請求項4〜7のいずれか1つに記載のゲートウェイ装置。
【請求項9】
VoIPパケットに関する制御セッションを確立し、確立した制御セッションによりコネクション情報を取得する制御セッション処理手段、
をさらに備え、
前記コネクション情報に基づくエントリをフィールド条件に含めることを特徴とする請求項8に記載のゲートウェイ装置。
【請求項10】
さらに前記LAN側から前記WAN側へパケットを転送する際に動的NAPT変換処理を行う静的NAPT変換処理を実施し、
前記仮通過判定手段は、前記静的NAPT変換処理対象のWAN側から受信した静的NAPT受信パケットを前記フィルタリング処理手段に転送することを特徴とする請求項1〜9のいずれか1つに記載のゲートウェイ装置。
【請求項11】
前記フィルタリング条件に静的NAPT変換テーブルに基づくエントリを含むことを特徴とする請求項10に記載のゲートウェイ装置。
【請求項12】
パケットに施す処理ごとに、各処理に関連する個別フィルタリング条件の入力を受け付けるフィルタリング条件受付手段、
をさらに備え、
前記フィルタリング処理手段は、前記フィルタリング条件受付手段が受け付けた個別フィルタリング条件に基づいてフィルタリング条件を生成することを特徴とする請求項1〜11のいずれか1つに記載のゲートウェイ装置。
【請求項13】
前記フィルタリング条件から動的NAPT変換処理対象でありかつ対応する動作が通過であるエントリを抽出し、前記プレフィルタ条件を、抽出したエントリに基づいて生成することを特徴とする請求項1〜12のいずれか1つに記載のゲートウェイ装置。
【請求項14】
前記フィルタリング条件に含まれる宛先ポート番号が範囲で指定されている場合、前記範囲を展開して個別のエントリとして前記プレフィルタ条件を生成することを特徴とする請求項13に記載のゲートウェイ装置。
【請求項15】
前記仮通過判定手段は、
パケットの送信元のWANである送信元WANを識別する受信インタフェース判定手段、
を備え、
前記プレフィルタ条件を、自身の処理対象の送信元WANに対応する条件とし、前記仮通過パケットの判定および前記動的NAPT受信パケットの破棄を行うインタフェース毎判定手段、
を前記送信元WANごとに備え、
前記受信インタフェース判定手段は、前記識別した送信元WANに対応するインタフェース毎判定手段にそのパケットを転送することを特徴とする請求項1〜14のいずれか1つに記載のゲートウェイ装置。
【請求項16】
前記比較を各フィールドのマスク演算とHash演算を行う演算装置に実装することを特徴とする請求項1〜15のいずれか1つに記載のゲートウェイ装置。
【請求項17】
あらかじめ設定されたフィルタリング条件に基づいて受信したパケットに対してパケットフィルタリング処理を行うフィルタリング処理手段を備え、LANおよびWANに接続され、前記LAN側から前記WAN側へパケットを転送する際に動的NAPT変換処理を行うゲートウェイ装置、におけるパケットフィルタリング方法であって、
前記フィルタリング処理手段の処理実施前に、動的NAPT変換処理対象のWAN側インタフェースから受信した動的NAPT受信パケットからプロトコル識別子、宛先アドレスおよび宛先ポート番号を抽出し、前記抽出結果を、通過を許可すべきプロトコル識別子、宛先アドレスおよび宛先ポート番号の組み合わせが格納されているプレフィルタ条件の各エントリと比較し、比較の結果、抽出したプロトコル識別子、宛先アドレスおよび宛先ポート番号の組み合わせと一致するエントリがあると判断した場合には、前記動的NAPT受信パケットを仮通過パケットと判定し、一方、一致するエントリがないと判断した場合には、前記動的NAPT受信パケットを破棄する仮通過判定ステップと、
前記フィルタリング処理手段が、前記仮通過パケットに対して前記パケットフィルタリング処理を実施するフィルタリング実施ステップと、
を含むことを特徴とするパケットフィルタリング方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7−1】
image rotate

【図7−2】
image rotate

【図7−3】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−11206(P2010−11206A)
【公開日】平成22年1月14日(2010.1.14)
【国際特許分類】
【出願番号】特願2008−169311(P2008−169311)
【出願日】平成20年6月27日(2008.6.27)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】