(57)【要約】【課題】  多量のトラフィックが流れる高速なネットワークにおいても攻撃トラフィックや過大トラフィックのような不適切なトラフィックを検出可能で、また、該トラフィックの遮断や帯域制御を自動的に行えるネットワーク制御装置またはシステムを提供する。【解決手段】  一つ以上のネットワーク１０３〜１０５に接続する手段と、ネットワークを流れるパケットをモニタする手段１０６と、モニタする手段１０６によって得られたパケット中の任意の一つ又は二つ以上の組み合わせ１１９のフィールドの値が同一であるパケットの数を積算する手段１１６と、積算したパケットの数が指定のしきい値を超えたときに、前記任意の一つ又は二つ以上の組み合わせとは異なる任意の一つ又は二つ以上の組み合わせのフィールドの値から指定のしきい値を超えた数のパケットの特性を推定するパケット推定手段１１６とを備えたネットワーク制御装置１０１。【選択図】        図１
2006314077.tif 000002
【特許請求の範囲】
【請求項１】
パケットを送受信するネットワークを制御するネットワーク制御装置であって、
パケットのフロー情報に含まれる複数の項目のうち、任意の複数の項目による第１の項目グループが一致するパケットをカウントする第１カウント部と、
前記フロー情報のうち前記第１の項目グループ以外の項目が一致するパケットをカウントする第２カウント部と、
前記第１カウント部によるカウントが所定値を超えたときに、当該第１カウント部によるカウントと前記第２カウント部によるカウントとによって異常種類を判定する特定トラフィック検出部とを有する。
【請求項２】
請求項１のネットワーク制御装置であって、
回線からパケットを受信するパケット受信部と、
前記パケット受信部で受信したパケットからフロー情報を取得するフロー情報取得部とを有する。
【請求項３】
請求項１のネットワーク制御装置であって、
前記フロー情報は、送信元IPアドレスと宛先IPアドレスと送信元ポート番号と宛先ポート番号のうち少なくとも一つの項目を含む。
【請求項４】
請求項１のネットワーク制御装置であって、
前記特定トラフィック検出部は、前記第１カウント部でカウントしている送信元アドレスの項目と宛先ポート番号の項目とを含む前記第１の項目グループが一致するパケットのカウントが所定値を超えたとき、前記第２カウント部でカウントしている送信元アドレスの項目と送信元ポート番号の項目とを含む第２の項目グループが一致するパケットのカウントが所定値を超えたか否かを判定する。
【請求項５】
請求項４のネットワーク制御装置であって、
前記特定トラフィック検出部は、前記第２の項目グループが一致するパケットのカウントが所定値を超えたと判定したとき、当該パケットの異常種類をネットワークワームと判定する。
【請求項６】
請求項１のネットワーク制御装置であって、
前記特定トラフィック検出部は、前記第１カウント部でカウントしている宛先アドレスの項目と宛先ポート番号とを含む前記第１の項目グループが一致するパケットのカウントが所定値を超えたとき、前記第２カウント部でカウントしている送信元アドレスの項目と送信元ポート番号の項目とを含む第２の項目グループが一致するパケットのカウントが所定値を超えたか否かを判定する。
【請求項７】
請求項６のネットワーク制御装置であって、
前記特定トラフィック検出部は、前記第２の項目グループが一致するパケットのカウントが所定値を超えたと判定したとき、当該パケットの異常種類をＤＤｏＳと判定する。
【請求項８】
請求項１のネットワーク制御装置であって、
前記特定トラフィック検出部は、前記第１カウント部でカウントしている送信元アドレスの項目と宛先ポート番号の項目とを含む前記第１の項目グループが一致するパケットのカウントが所定値を超えたとき、前記第２カウント部でカウントしている宛先アドレスが一致するパケットのカウントが所定条件か否かを判定する。
【請求項９】
請求項８のネットワーク制御装置であって、
前記特定トラフィック検出部は、前記第２カウント部でカウントしている宛先アドレスが一致するパケットのカウントが前記所定条件であると判定したとき、当該パケットの異常種類をネットワークワームと判定する。
【請求項１０】
請求項１のネットワーク制御装置であって、
前記特定トラフィック検出部は、前記第１カウント部でカウントしている宛先アドレスの項目と宛先ポート番号の項目とを含む前記第１の項目グループが一致するパケットのカウントが所定値を超えたとき、前記第２カウント部でカウントしている送信元アドレスのカウントが所定条件か否かを判定する。
【請求項１１】
請求項１０のネットワーク制御装置であって、
前記特定トラフィック検出部は、前記第２カウント部でカウントしている送信元アドレスが一致するパケットのカウントが前記所定条件であると判定したとき、当該パケットの異常種類をＤＤｏＳと判定する。
【請求項１２】
一つ以上のネットワークに接続する接続手段と、
前記ネットワークを流れるパケットをモニタするモニタ手段と、
前記モニタする手段によって得られたパケット中の任意の一つ又は二つ以上のフィールドを含む第１の組み合わせのフィールドの値が同一であるパケットの数を積算する第１組み合わせ積算手段と、
積算したパケットの数が指定のしきい値を超えたときに、前記第１の組み合わせとは異なる任意の一つ又は二つ以上のフィールドを含む第２の組み合わせのフィールドの値から前記指定のしきい値を超えた数のパケットの特性を推定するパケット推定手段とを備えたネットワーク制御装置。
【請求項１３】
請求項１２のネットワーク制御装置であって、
前記第１の組み合わせのフィールドの値が同一であるパケットにおいて、当該第１の組み合わせに含まれないフィールドの値の出現数を積算する出現数積算手段を備え、
前記パケット推定手段は、前記第２の組み合わせのフィールドの値と前記出現数積算手段で積算した出現数のいずれか一方、または、両方により前記パケットの特性を推定する。
【請求項１４】
請求項１２または１３のネットワーク制御装置であって、
前記第１組み合わせ積算手段は、前記パケット数の積算値を保持する領域を前記フィールドの値の組み合わせのハッシュ値から求め、得られた前記領域が他の項目の組み合わせの積算値の保持に既に利用されていた場合は、前記他の項目組み合わせの積算値を減算し、前記積算値が０となったときのみ前記項目組み合わせのパケット数の積算に利用する。
【請求項１５】
請求項１２から１４のいずれかのネットワーク制御装置であって、
前記モニタ手段は、サンプリングしたパケットをモニタする。
【請求項１６】
請求項１２から１５のいずれかのネットワーク制御装置であって、
複数のネットワークに接続され、前記ネットワークの間でパケットの転送を行う手段と、
前記パケットに対する転送可否や使用ネットワーク帯域の制御を行うフロー制御手段とを備え、
前記フロー制御手段は、前記パケット判別手段により得られた特性に応じて設定を変更する。
【請求項１７】
請求項１２から１６のいずれかのネットワーク制御装置であって、
前記パケット判別手段により得られた特性に従って、前記パケット判別手段で判別の対象となったパケットの制御方法を指示するためのフロー制御情報を送信する手段を備える。
【請求項１８】
請求項１７のネットワーク制御装置、及び、複数のネットワークに接続され、前記ネットワークの間でパケットの転送を行う手段と、前記パケットのモニタ情報を送信する手段と、前記パケットに対する転送可否や使用ネットワーク帯域の制御を行うフロー制御手段と、前記フロー制御手段に対する設定情報を受信する手段とを備えたパケット転送装置から構成され、前記ネットワーク制御装置は前記モニタ情報を前記パケット転送装置から受信し、フロー制御情報を前記パケット転送装置に対して送信するネットワーク制御システム。
【請求項１９】
ネットワークを制御するネットワーク制御方法であって、
接続したネットワークを流れるパケットをモニタし、
モニタによって得られたパケット中の任意の一つ又は二つ以上のフィールドを含む第１の組み合わせのフィールドの値が同一であるパケットの数を積算し、
積算したパケットの数が指定のしきい値を超えたときに、前記第1の組み合わせとは異なる任意の一つ又は二つ以上のフィールドを含む第２の組み合わせのフィールドの値から前記指定のしきい値を超えた数のパケットの特性を推定する。
【請求項２０】
請求項１９のネットワーク制御方法であって、
前記第1の組み合わせのフィールドの値が同一であるパケットにおいて、当該第１の組み合わせに含まれないフィールドの値の出現数を積算し、
前記第２の組み合わせのフィールドの値及び前記積算した出現数から前記指定のしきい値を超えたパケットの特性を推定する。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野は、ネットワーク上のパケットをネットワーク間で転送するネットワーク制御装置およびシステムに関し、特に大量のトラフィックの中から不適切なトラフィックを効率よく検出し、該トラフィックの転送を制御することができるネットワーク制御装置およびシステムに関する。
【背景技術】
【０００２】
インターネットやＬＡＮの利用が普及するとともに、それらのネットワークの安定した運用の重要性が増している。特にインターネットにおいては不特定多数のユーザが様々なアプリケーションを利用する。そのため、インターネットサービスプロバイダが想定する以上の過負荷トラフィック、あるいは、攻撃やネットワークワームの流布などの不正行為によるトラフィックが発生する可能性が高く、これらをどのように検知、制御し、通常の通信の安定性を確保するかが課題となっている。
【０００３】
このような課題に対処するための代表的な技術の一つとして、侵入検知システムが知られている。侵入検知システムは、不正なパケットのパターンを事前にデータベースとして保持しておき、受信したパケットと該データベース内容の比較を行うことで不正なパケットを検知するシステムである。侵入検知システムは、検査対象パケットと膨大な不正パケットのデータベースとの比較を行うため、その処理速度が問題となることがあるが、たとえば、保護対象ネットワーク内に存在するサーバの種類に応じて比較対象とするデータベース内容をあらかじめ絞り込んでおくことで処理を高速化する方法などが開示されている（例えば、特許文献１参照）。
【０００４】
また、ネットワークが輻輳を起こすような過大なトラフィックが発生した場合の対処技術としては、ユーザやコンピュータといった単位で監視対象をあらかじめ決めておき、該監視対象ごとのトラフィック量などの情報を計測して、輻輳発生時に前記トラフィック量が多い監視対象のトラフィックに対して帯域制限を行う方法などが開示されている（例えば、特許文献２参照）。
【０００５】
さらに、最近では、インターネットのバックボーンネットワークなどの膨大なトラフィックが流れるネットワークにおいて、所定の特徴を持ち、大きな帯域を占有するトラフィックを高速に抽出するためにバスケット解析を応用したトラフィックの解析方法などが開示されている（例えば、特許文献３参照）。バスケット解析とは、データマイニング手法の一つで、小売店等で一緒に買われることが多い商品の組み合わせを見つけるためのデータ解析である。
【０００６】
【特許文献１】特開２００３−２２３３７５公報
【特許文献２】特開２００１−２１７８４２公報
【特許文献３】特開２００５−２８５０４８公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１の技術は、パターンマッチングにより不正なパケットの検知を行う侵入検知システムにおいて、マッチングを行うパターンを削減することにより処理の高速化を図ろうというものである。例えば組織ネットワークの入口程度のトラフィックで、限定されたサービスしか利用しないネットワークでは有効と考えられる。しかし、パケット毎のパターンマッチング処理を行っているという点で処理速度の限界はあり、インターネットのバックボーンネットワーク程度のトラフィックに対応するのは困難であるという課題があった。
【０００８】
また、特許文献２の技術は、監視対象を事前に決めておき、該監視対象の利用トラフィック量をデータベースにより管理しようというものである。限定された監視対象の環境で利用する分には問題ないかもしれない。しかし、不特定多数のコンピュータ等のトラフィックが通過するインターネットのバックボーンネットワークに適用しようとすると、監視対象を事前に決めておくという運用が困難となり、仮に適用するにしても膨大なメモリ等のリソースが必要になってしまうという課題があった。
【０００９】
また、特許文献３の技術は、特許文献１の技術や特許文献２の技術で問題となる処理性能やメモリ等の必要リソース量の問題を解決しているかもしれない。しかし、抽出したトラフィックの特性（例えば、ＤＤｏＳ攻撃、ネットワークワームの拡散、Ｐ２Ｐファイル交換など）を精度よく判定するために必要な情報の取得までは配慮されていない。そのため、抽出したトラフィックに対して遮断等の制御を行おうとした場合に、抽出されたトラフィックに対して誤った制御を行ってしまうことを防ぐことが難しいという課題があった。
【００１０】
そこで、インターネットのバックボーンネットワークのような膨大なトラフィックが流れるネットワークにおいても不正なトラフックを高速に抽出してその特性を判定可能なネットワーク制御装置およびシステムを検討した。
【００１１】
また、監視対象を制限することなく、過大なトラフィックを発生するネットワーク上の装置を少ないメモリリソースで抽出可能なネットワーク制御装置およびシステムを検討した。
【００１２】
また、抽出されて特性が判定されたトラフィックに対して、事前に設定された制御ポリシーに従って自動的に制御を行うことが可能なネットワーク制御装置およびシステムを検討した。
【課題を解決するための手段】
【００１３】
上記課題を考慮して、例えば、転送するパケットのヘッダ部分に含まれる項目の任意の組み合わせ毎にパケット数を積算する手段と、該手段による積算値が所定のしきい値を超えたかどうかを判定する手段を設け、前記パケット数が前記しきい値を超えた時に、前記項目の組み合わせと前記項目の組み合わせとは異なる組み合わせの積算値から前記転送するパケットの種別を判定する技術を提供する。
【００１４】
また、上記課題を考慮して、例えば、前記パケット数を積算する手段において、項目組み合わせと積算値の組み合わせを保持する領域の割り当てに前記項目組み合わせのハッシュ値を用いる割り当て手段と、前記割り当て手段が既に他の項目組み合わせの積算で使用中の領域を割り当てた場合に、前記領域の積算値を減算する手段を設け、前記積算値が前記減算の結果０となったときに、後から現れた項目組み合わせが前記領域を上書き利用する技術を提供する。
【００１５】
また、上記課題を考慮して、トラフィック中の特定のパケットに対して転送可否や使用帯域を制御するフロー制御手段と、前記パケットの種別の判定結果に応じて前記フロー制御手段の設定を変更する技術を提供する。
【００１６】
すなわち、本明細書では少なくとも、一つ以上のネットワークに接続する手段と、前記ネットワークを流れるパケットをモニタする手段と、前記モニタする手段によって得られたパケット中の任意の一つ又は二つ以上の組み合わせのフィールドの値が同一であるパケットの数を積算する手段と、積算したパケットの数が指定のしきい値を超えたときに、前記任意の一つ又は二つ以上の組み合わせとは異なる任意の一つ又は二つ以上の組み合わせのフィールドの値から前記指定のしきい値を超えた数のパケットの特性を推定するパケット推定手段とを備えたネットワーク制御装置を開示している。
【００１７】
その他の課題、手段、効果は、実施例の詳細説明と共に明らかにされる。
【発明の効果】
【００１８】
上記手段によれば、パケットのパターンマッチングを行わずに、不正なパケットを抽出し、その特性を判定できるため、トラフィックの多い高速なネットワークにも適用できるようになるという効果がある
また、上記手段によれば、特定トラフィックの検出のために限られた記憶領域しか使用できない場合であっても、監視対象パケットを特に制限することなく頻出するトラフィックのパケットを抽出できるようになるという効果がある。
【００１９】
また、上記手段によれば、特定トラフィックを検出したときに、前記トラフィックをあらかじめ指定されたルールに従って制御できるようになるため、高速なネットワークにおいても不正なトラフィックに対して迅速に遮断あるいは帯域制限などの対策を行えるようになるという効果がある。
【発明を実施するための最良の形態】
【００２０】
本発明の実施に好適な実施形態を説明する。ただし、本発明はこの実施形態に限定されない。
【００２１】
ネットワーク制御装置及びシステム並びに制御方法の実施例について、図面を用いて説明する。
【実施例１】
【００２２】
実施例１を説明する。図１は、本実施形態の一実施例によるネットワーク制御装置の構成図を示したものである。図中、１０１は本実施形態によるネットワーク制御装置、１０２はネットワーク制御装置１０１に指示を与えたり状態を表示させたりするための入出力装置、１０３、１０４、１０５はネットワーク制御装置１０１に接続されるネットワークである。
【００２３】
ネットワーク制御装置１０１は、パケット転送処理部１０６と特定トラフィック検出・制御部１０７で構成される。接続インタフェース１０８は、パケット転送処理部１０６と特定トラフィック検出・制御部１０７を接続し、パケット転送処理部１０６と特定トラフィック検出・制御部１０７の間でデータ交換を可能とする。
【００２４】
パケット転送処理部１０６は、ＣＰＵ１０９、メモリ１１０、ネットワーク１０３、１０４、１０５との間でパケットの送受信を行うパケット送受信部１１１、前記パケットの遮断や帯域制限を行うフロー制御部１１２から構成される。メモリ１１０には、前記パケットに含まれる送信先アドレスに応じて転送すべきネットワークを決定するための経路テーブル１１３、パケット送受信部１１１が受信したパケットを一時的に格納しておくためのパケットバッファ１１４が含まれる。また、フロー制御部１１２には、前記パケットに対して行うべき遮断や帯域制限のルールを格納するためのフロー制御情報メモリ１１５が含まれる。
【００２５】
特定トラフィック検出・制御部１０７は、ＣＰＵ１１６、メモリ１１７から構成される。メモリ１１７には、パケット転送処理部１０６から送られるトラフィック情報を格納するトラフィック情報バッファ１１８、前記トラフィック情報からパケット転送処理部１０６が転送したパケットの統計値を格納するためのパケットカウントテーブル１１９、前記統計値の判定を行うのに必要なしきい値を格納するためのしきい値テーブル１２０、前記統計情報が前記しきい値を超えたときに行うべき処理を記述した制御ポリシテーブル１２１が含まれる。
【００２６】
以上の構成において、パケット転送処理部１０６は、ネットワーク１０３、１０４、１０５からパケットを受信すると、該パケットに関するトラフィック情報を生成して特定トラフィック検出・制御部１０７に渡すと共に、経路テーブル１１３の内容に従って前記パケットを転送先ネットワークに送信する。特定トラフィック検出・制御部１０７は、前記トラフィック情報を統計的に処理しながら不正なトラフィックを検出し、必要に応じて前記不正なトラフィックの遮断や帯域制限を行うための設定情報を生成してパケット転送処理部１０６のフロー制御情報メモリ１１５に設定するように動作する。
【００２７】
以下、ネットワーク制御装置１０１の動作の一例を、図５のフローチャートを用いて詳細に説明する。まず、ネットワーク１０３、１０４、１０５のいずれかからパケット５０１がパケット送受信部１１１に届いたときのパケット転送処理部１０６の処理を詳細に説明する。
【００２８】
パケット送受信部１１１にパケット５０１が届くと、パケット受信処理を開始する（ステップ５０２）。具体的には、パケット送受信部１１１が受信したパケット５０１の内容をパケットバッファ１１４に書き込むとともに、パケット５０１の到着をＣＰＵ１０９に割り込み信号等により通知する。この時、フロー制御情報メモリ１１５には、パケット５０１を遮断する、あるいは帯域制限するというルールは設定されていないものとする。
【００２９】
次に、ＣＰＵ１０９は、パケットバッファ１１４に格納されたパケットの内容からトラフィック情報を生成する（ステップ５０３）。前記トラフィック情報は、前記パケットのＩＰヘッダ、および、ＴＣＰヘッダまたはＵＤＰヘッダに含まれる送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポート番号、宛先ポート番号、プロトコル番号を取りだして生成される。トラフィック情報の要素はこれらに限定されるわけではなく、必要に応じて他の要素を加えてもよい。生成された前記トラフィック情報は、メモリ１１０内に一時的に保持しておく。
【００３０】
次に、ＣＰＵ１０９は、メモリ１１０内に一時的に格納されている前記トラフィック情報をトラフィック情報５０５として特定トラフィック検出・制御部１０７へ送信する（ステップ５０４）。
【００３１】
図６は、トラフィック情報５０５の内容の一例を示したものである。１パケット分のトラフィック情報は、送信元ＩＰアドレス６０２、宛先ＩＰアドレス６０３、送信元ポート番号６０４、宛先ポート番号６０５、プロトコル番号６０６から構成され、これらの組が複数格納された構造となっている。格納されているパケット数は、パケット数６０１に示される。
【００３２】
なお、１パケット分のトラフィック情報は前記の５種類に限定するものではなく、必要に応じてＩＰヘッダ、および、ＴＣＰヘッダまたはＵＤＰヘッダに含まれる他の項目の値、または、ＴＣＰヘッダまたはＵＤＰヘッダの後ろに続くデータの一部であってもよい。
【００３３】
さらには、Ｌ２ＴＰやＰＰＰなどのトンネリングプロトコルのパケットに格納されたＩＰパケット中のＩＰヘッダ、および、ＴＣＰヘッダまたはＵＤＰヘッダに含まれる他の項目の値、または、ＴＣＰヘッダまたはＵＤＰヘッダの後ろに続くデータの一部であってもよい。
【００３４】
さらには、ＩＰパケットを格納するレイヤ２パケットのイーサネット（イーサネットは登録商標）ヘッダやＭＰＬＳラベルの情報であってもよい。
【００３５】
さらには、一つのパケットの先頭から指定のバイト数分（例えば２５６バイト）の内容をそのまま格納するようにしてもよい。
【００３６】
なお、トラフィック情報５０５に複数のパケットの情報を格納できるようにしているのは、パケット転送処理部１０６から特定トラフィック検出・制御部１０７へのデータ転送回数を減らして性能を向上させるためであり、トラフィック情報５０５に格納するパケットの情報の数は任意である。
【００３７】
また、ステップ５０３におけるパケットからのトラフィック情報の取り出しは、受信パケット全てではなく、適当なサンプリング処理により選択されたパケットに対してのみ行うようにしても良い。これにより、膨大なトラフィックが流れる高速ネットワークにおいても処理可能となる。
【００３８】
さらに、前記サンプリング処理において、特定の特徴を持ったパケットについては全てをサンプリングしてトラフィック情報の取り出しの対象としても良い。特定の特徴とは、例えば、ＴＣＰパケットにおいてＳＹＮフラグが立っているパケットである。これにより、高速ネットワークにおいて対象とする不適切なトラフィックの検知精度を向上させることができる。
【００３９】
次に、ＣＰＵ１０９は、ステップ５０３で生成されたトラフィック情報が適当な数だけメモリ１１０内に集まった時に、それらをトラフィック情報５０５に構成して特定トラフィック検出・制御部１０７へ送信すると共に、メモリ１１０内に蓄えられた前記トラフィック情報を削除する（ステップ５０４）。特定トラフィック検出・制御部１０７への具体的な送信方法としては、例えば、ＣＰＵ１０９が接続インタフェース１０８を通してメモリ１１８内に設けられたトラフィック情報バッファ１１８にトラフィック情報５０５を直接書き込むと共に、該書き込み処理の完了を、ＣＰＵ１１６へ接続インタフェース１０８
を経由した割り込み信号により通知する方法などがある。
【００４０】
次に、ＣＰＵ１０９は、パケットバッファ１１４に格納されているパケットの転送先ネットワークを、経路テーブル１１３を参照して決定する（ステップ５０６）。経路テーブル１１３には、パケットの宛先ＩＰアドレスに対応してどのネットワーク（本実施例では、ネットワーク１０３、１０４、１０５のいずれか）に送信すべきかが記述されているので、パケット５０１から宛先ＩＰアドレスを取り出し、該ＩＰアドレスを経路テーブル１１３から検索することで転送先ネットワークを決定することができる。
【００４１】
最後に、パケットバッファ１１４に格納されているパケットを、ステップ５０６で決定した転送先ネットワークへパケット５０８として送信する（ステップ５０７）。
【００４２】
一方、特定トラフィック検出・制御部１０７では、ステップ５０４の処理によりＣＰＵ１１６にトラフィック情報５０５の転送が通知されると、ＣＰＵ１１６は、トラフィック情報５０５の分析処理を行い、不適切なトラフィックを検出した場合に該トラフィックの遮断、あるいは、帯域制限を行うためのフロー制御設定情報５１０を生成してパケット転送処理部１０６へ送信する処理を行う（ステップ５０９）。
【００４３】
フロー制御設定情報５１０を受け取ったパケット転送処理部１０６は、ＣＰＵ１０９がフロー制御設定情報５１０の内容をフロー制御設定メモリ１１５に書き込む（ステップ５１１）。以後、フロー制御部１１２は、フロー制御設定情報５１０で指定されたパケットに対して、遮断や帯域制限等のフロー制御設定情報５１０で指定された制御を行うようになる。以上が、ネットワーク制御装置１０１の全体フローの説明である。
【００４４】
次に、ステップ５０９に示した特定トラフィック検出・制御部１０７によるトラフィック情報分析処理の詳細について、図７、図８、図９のフローチャートを用いてさらに詳細に説明する。
【００４５】
図７は、ステップ５０９におけるＣＰＵ１１６の詳細動作を示したフローチャートである。ＣＰＵ１１６は、まず、トラフィック情報バッファ１１８に格納されたトラフィック情報から、１パケット分のトラフィック情報を取得し（ステップ７０１）、該トラフィック情報の分析を行いパケットカウントテーブル１１９の更新処理を行う（ステップ７０２）。
【００４６】
パケットカウントテーブル１１９の構造を図２に示す。本実施例におけるトラフィック情報分析処理では、トラフィック情報を構成する各項目の任意の組み合わせを生成し、前記項目の組み合わせを含むパケット数の積算処理を行うことで特徴的なトラフィックを抽出するという分析方式を用いている。パケットカウントテーブル１１９は、前記積算処理の結果を保持するためのテーブルである。本実施例の場合、前記トラフィック情報を構成する項目は、送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポート番号、宛先ポート番号の４種類とし、前記４種類の項目から任意のｎ項目（１≦ｎ≦４）の組み合わせを生成する。パケットカウントテーブル１１９は、ｎ＝１の場合の積算値を格納する項目数１テーブル２０１、ｎ＝２の場合の積算値を格納する項目数２テーブル２０２、ｎ＝３の場合の積算値を格納する項目数３テーブル２０３、ｎ＝４の場合の積算値を格納する項目数４テーブル２０４で構成される。なお、各テーブルを第１カウント部、第２カウント部などと表現することもある。
【００４７】
なお、本実施例では処理対象項目を前記４種類としているが、検知したいトラフィックの特性に応じてさらに別の項目を加えたり、あるいは削除したりしてもよい。例えば、ＴＣＰセッションの確立、切断処理に関連するトラフィックを抽出するためにＴＣＰヘッダ中のフラグ情報を含めてもよい。あるいは、トラフィックの特性をより正確に把握するために、ＴＣＰヘッダまたはＵＤＰヘッダの後ろに続くアプリケーションデータの先頭何バイト分かを含めてもよい。あるいは、ＭＰＬＳラベルが付いている場合に、前記ＭＰＬＳラベルの値も含め、ＬＳＰ毎にトラフィックの分析を行えるようにしてもよい。あるいは、Ｌ２ＴＰなどのトンネリングプロトコルを使用しているときに、トンネル識別子を含め、トンネル毎にその中を通過するトラフィックの分析を行えるようにしてもよい。
【００４８】
ここで、ステップ７０２におけるパケットカウントテーブル１１９更新処理の詳細について、別のフローチャートを用いて説明する。図９は、ステップ７０２の詳細処理内容を示すフローチャートである。
【００４９】
ＣＰＵ１１６は、まず前記４種類の項目から任意のｎ個から選び出した項目組み合わせを生成する（ステップ９０１）。生成する項目組み合わせは、数学的に得られる全ての組み合わせでも良いが、処理負荷の軽減による高速化を目的として、一部の組み合わせに限定してもよい。
【００５０】
次にステップ９０１で生成された項目組み合わせの中から一つを選択し、前記選択された項目組み合わせを含むパケット数を積算するためのパケットカウントテーブル１１９内のエントリを決定する（ステップ９０２）。前記選択された項目組み合わせが一つの項目からなるものであれば、項目数１テーブル２０１より、二つの項目からなるものであれば項目数２テーブル２０２より、三つの項目からなるものであれば項目数３テーブル２０３より、四つの項目からなるものであれば項目数４テーブル２０４より選択する。選択のアルゴリズムとしては、例えば前記選択された項目組み合わせに対して適当なハッシュ関数を適用し、得られたハッシュ値をエントリ数で割った余りをエントリ番号とする方法などがある。
【００５１】
ステップ９０２で使用するエントリが決定したら、該エントリの現状の内容を確認する（ステップ９０３）。
【００５２】
もし、前記エントリが未使用であった場合は、前記エントリ内の項目の種類フィールドと値フィールドに前記選択された項目組み合わせ内容を書き込み、カウンタ値フィールドを０にした後（ステップ９０４）、前記エントリ内のパケット数フィールドに１を加える（ステップ９０５）。
【００５３】
また、ステップ９０３の結果、前記エントリが前記選択された項目組み合わせですでに使用中であれば、そのまま前記エントリ内のカウンタ値に１を加えるためにステップ９０５へジャンプする。
【００５４】
一方、ステップ９０３の結果、前記エントリが、別項目の組み合わせで既に使用中であった場合は、前記エントリ内のパケット数から１を引き（ステップ９０６）、結果が０となった場合はステップ９０４へスキップし、そうでなければステップ９０８へスキップする（ステップ９０７）。これは、異なる項目の組み合わせがパケットカウントテーブル１１９内の同一エントリを使おうとした場合に、頻出する組み合わせの方がパケットカウントテーブル１１９内に残り易くするための処理である。
【００５５】
次に、ＣＰＵ１１６は、前記エントリ内のパケット数フィールドの値が所定のしきい値を超えているかどうかを確認する（ステップ９０８）。前記所定のしきい値は、しきい値テーブル１２０に格納されている。しきい値テーブル１２０の内容は図３に示す通りである。しきい値は複数定義することができ、それぞれにしきい値レベルと呼ぶレベル番号を定義することができる。図３の例では、しきい値レベルは１から５の５段階が定義されているが、段階数はこれに限定されるものではない。しきい値テーブル１２０の内容は入出力装置１０２を通して事前に設定しておくものとする。
【００５６】
ステップ９０８にて、前記パケット数フィールドの値がしきい値テーブル１２０のしきい値フィールドに定義されている値のいずれかと一致した場合、ＣＰＵ１１６は、しきい値越えが発生したと判断し、しきい値越え情報を生成する（ステップ９０９）。しきい値越え情報の内容は図８に示す通りで、しきい値越えが発生したエントリが含まれるテーブルの種類（本実施例の場合、項目数１テーブル２０１から項目数４テーブル２０４のいずれか）を示すテーブル種別８０１、前記エントリの番号を示すエントリ番号８０２、しきい値テーブル１２０において前記しきい値越えが発生したときのしきい値に対応するしきい値レベル８０３、分析対象となっているトラフィック情報に含まれる送信元ＩＰアドレス８０４、宛先ＩＰアドレス８０５、送信元ポート番号８０６、宛先ポート番号８０７、プロトコル番号８０８から構成される。生成されたしきい値越え情報は、メモリ１１７内に一時的に格納される。
【００５７】
ステップ９０２からステップ９０９までの処理は、ステップ９０１で生成された項目組み合わせの全てに対して実行されるまで繰り返す（ステップ９１０）。以上がステップ７０２の詳細動作説明である。
【００５８】
図７のフローチャートに戻り、ステップ７０２が完了すると、ステップ９０７にて生成されたしきい値越え情報がメモリ１１７に存在するかどうかを確認する（ステップ７０３）。もし、存在していたら、該しきい値越え情報が不適切なトラフィックであるかどうかを判定する処理を実行する（ステップ７０４）。本実施例では、不適切なトラフィックとしてネットワークワームの拡散トラフィックと、ネットワーク上のコンピュータ等に対するＤＤｏＳ攻撃トラフィックを判定可能としている。
【００５９】
ここで、ステップ７０４における問題トラフィック判別処理の詳細を、別のフローチャートを用いて説明する。図１０は、ステップ７０４の詳細処理内容を示すフローチャートである。
【００６０】
ＣＰＵ１１６は、まず、前記しきい値越え情報の中のテーブル種別８０１とエントリ番号８０２で特定されるパケットカウントテーブル１１９中のエントリに含まれる項目の種類フィールドの内容を確認する（ステップ１００１）。
【００６１】
前記テーブル種別８０１が項目数２テーブルを示しており、前記エントリに含まれる種類フィールドの値が送信元ＩＰアドレスと宛先ポート番号であった場合、前記しきい値越え情報が示すトラフィックはネットワークワームの拡散トラフィックの可能性があると判断し、これを確認するためのステップ１００２以降の処理を実行する。
【００６２】
ネットワークワームに感染したコンピュータは、ワームを拡散するためのトラフィックをランダムな多数のコンピュータに対して送信する場合が多く、かつ、該トラフィックは特定のポート番号宛である場合が普通である。そのため、送信元ＩＰアドレスと宛先ポート番号の組み合わせが同一であるパケットが多数観測された場合、前記パケットはネットワークワームの拡散トラフィックの可能性があると判定できる。
【００６３】
ただし、前記パケットが本当にネットワークワームの拡散トラフィックである可能性が高いと判定するためには、パケットカウントテーブル１１９中の他のエントリ内容も確認する必要がある。例えば、特定の２台のコンピュータ間で通常の１対１通信を行っていた場合も、同様に送信元ＩＰアドレスと宛先ポート番号の組み合わせが同一であるパケットが多数観測されるためである。
【００６４】
そこで、このような正常トラフィックとネットワークワームの拡散トラフィックを区別するために、項目数３テーブル２０３内のエントリに前記しきい値越え情報の送信元ＩＰアドレスと宛先ポート番号を含み、さらに三つ目の項目として種類フィールドが宛先ＩＰアドレスであるエントリを検索する（ステップ１００２）。
【００６５】
ステップ１００２において前記エントリが見つかり、かつ、該エントリのパケット数フィールドの値が通常通信と判定するのに十分大きな値であった場合、前記トラフィックは通常通信であると判断し（ステップ１００３）、そうでなければ、前記トラフィックはネットワークワーム拡散トラフィックであると判定する（ステップ１００４）。
【００６６】
また、ステップ１００１において、前記テーブル種別８０１が項目数２テーブルを示しており、前記エントリに含まれる種類フィールドの値が宛先ＩＰアドレスと宛先ポート番号であった場合、前記しきい値越え情報が示すトラフィックはＤＤｏＳ攻撃トラフィックの可能性があると判断し、これを確認するためのステップ１００５以降の処理を実行する。
【００６７】
ＤＤｏＳ攻撃を受けているコンピュータには、多数の他のコンピュータから同一のポート番号に対して通信要求が送られてくる。そのため、宛先ＩＰアドレスと宛先ポート番号の組み合わせが同一であるパケットが多数観測された場合、前記パケットはＤＤｏＳ攻撃トラフィックの可能性があると判定できる。
【００６８】
ただし、前記パケットが本当にＤＤｏＳ攻撃トラフィックである可能性が高いと判定するためには、パケットカウントテーブル１１９中の他のエントリ内容も確認する必要がある。例えば、特定の２台のコンピュータ間で通常の１対１通信を行っていた場合も、同様に宛先ＩＰアドレスと宛先ポート番号の組み合わせが同一であるパケットが多数観測されるためである。
【００６９】
そこで、このような正常トラフィックとＤＤｏＳ攻撃トラフィックを区別するために、項目数３テーブル２０３内のエントリに前記しきい値越え情報の宛先ＩＰアドレスと宛先ポート番号を含み、さらに三つ目の項目として種類フィールドが送信元ＩＰアドレスであるエントリを検索する（ステップ１００５）。
【００７０】
ステップ１００５において前記エントリが見つかり、かつ、該エントリのパケット数フィールドの値が通常通信と判定するのに十分大きな値であった場合、前記トラフィックは通常通信であると判断し（ステップ１００６）、そうでなければ前記トラフィックはＤＤｏＳ攻撃トラフィックであると判定する（ステップ１００７）。以上が、ステップ７０４の詳細動作説明である。
【００７１】
本実施例では、検知可能な問題トラフィックの例としてネットワークワーム拡散トラフィックとＤＤｏＳ攻撃トラフィックの判定方法を示しているが、本実施形態により検知可能な問題トラフィックはこれらに限定されるものではなく、パケットカウントテーブル１１９の分析により、例えば、特定のコンピュータが過大なトラフィックを生成しているときに、該トラフィックの元となっているアプリケーションの種類（例えばＰ２Ｐファイル交換など）を推定することもできる。
【００７２】
図７のフローチャートに戻り、ステップ７０２で生成されたしきい値越え情報がステップ７０４により問題トラフィックであると判定された場合（ステップ７０５）、ＣＰＵ１１６は、前記問題トラフィックに対する制御方法が制御ポリシテーブル１２１に記載されているかどうかを検索する（ステップ７０６）。
【００７３】
図４は、制御ポリシテーブル１２１の構成を示した図である。制御ポリシテーブル１２１は、ネットワークワーム拡散トラフィックやＤＤｏＳ攻撃トラフィック等のトラフィック種別毎にフィルタによる遮断や帯域制限等の制御内容を定義するテーブルである。さらに、前記トラフィック種別に対してＩＰアドレスやポート番号等による限定条件を設定することができ、これにより同一のトラフィック種別に対し、異なる限定条件ごとに異なる制御内容を定義することを可能とするものである。制御ポリシテーブル１２１の内容は、入出力装置１０２を通して事前に設定しておくものとする。
【００７４】
ステップ７０６では、ステップ７０４で判定された問題トラフィックの種別と、ステップ７０２で生成されたしきい値越え情報に含まれる情報（しきい値レベル８０４からプロトコル番号８０９）に合致するトラフィック種別と限定条件を持ったエントリを制御ポリシテーブル１２１から検索する。
【００７５】
ステップ７０６で前記問題トラフィックに合致する制御ポリシテーブル１２１のエントリが見つかったら（ステップ７０７）、ＣＰＵ１１６は、前記エントリに書かれた制御内容に応じたフロー制御設定情報５１０を生成し、パケット転送処理部１０６へ送信する（ステップ７０８）。この時、問題トラフィックを発見したことをレポート情報として入出力装置１０２に表示したり、あるいはメモリ１１７中に記録する等の処理を行っても良い
。
【００７６】
以上で、ステップ７０１で取得した１パケット分のトラフィック情報に対する分析処理を完了する。トラフィック情報バッファ１１８内に未処理のトラフィック情報が残っていたら、ステップ７０２以降を繰り返し、全パケット分のトラフィック情報の処理を完了したらステップ５０９を終了する（ステップ７０９）。以上が特定トラフィック検出・制御部１０７におけるトラフィック情報分析の詳細処理内容である。
【００７７】
本実施例によれば、ネットワーク間でパケットの転送を行うネットワーク制御装置において、高速なネットワークに接続されていても転送するパケットから問題トラフィックと考えられるトラフィックを効率よく抽出し、かつ、該トラフィックに対して遮断や帯域制御等の対策を自動的に行えるようになるという効果がある。
【実施例２】
【００７８】
実施例２を説明する。図１１は、本実施形態の第二の実施例によるネットワーク制御システムの構成図を示したものである。図中、１１０１はネットワーク１０３、１０４、１０５の間のパケット転送を行うパケット転送処理装置、１１０２はパケット転送処理装置から受け取った情報を分析するネットワーク制御装置である。
【００７９】
パケット転送装置処理１１０１は、ＣＰＵ１１０３、メモリ１１０４、ネットワーク１０３、１０４、１０５、ネットワーク制御装置１１０２との間でパケットの送受信を行うパケット送受信部１１０５、フロー制御部１１０６から構成される。メモリ１１０４には、前記パケットに含まれる送信先アドレスに応じて転送すべきネットワークを決定するための経路テーブル１１０７、パケット送受信部１１０５が受信したパケットを一時的に格納しておくためのパケットバッファ１１０８が含まれる。また、フロー制御部１１０６には、前記パケットに対して行うべきフィルタリングや帯域制限のルールを格納するための
フロー制御情報メモリ１１０９が含まれる。
【００８０】
ネットワーク制御装置１１０２は、ＣＰＵ１１１０、メモリ１１１１、パケット転送装置処理１１０１との間のパケット転送を行うパケット送受信部１１１２から構成される。メモリ１１１１には、パケット転送処理装置１１０１から送られるトラフィック情報を格納するトラフィック情報バッファ１１１３、前記トラフィック情報からパケット転送処理装置１１０１が転送したパケットの統計値を格納するためのパケットカウントテーブル１１１４、前記統計値の判定を行うのに必要なしきい値を格納するためのしきい値テーブル１１１５、前記統計情報が前記しきい値を超えたときに行うべき処理を記述した制御ポリシテーブル１１１６が含まれる。
【００８１】
以上の構成において、パケット転送処理装置１１０１は、ネットワーク１０３、１０４、１０５からパケットを受信すると、該パケットに関するトラフィック情報を生成してネットワーク制御装置１１０２に送信すると共に、経路テーブル１１０７の内容に従って前記パケットを転送先ネットワークに送信すると。ネットワーク制御装置１１０２は、前記トラフィック情報を統計的に処理しながら不正なトラフィックを検出し、必要に応じて前記不正なトラフィックのフィルタリングや帯域制限を行うための設定情報を生成してパケット転送処理装置１１０１に送信し、パケット転送処理装置１１０１内のフロー制御部１１０６に設定するように動作する。
【００８２】
以下、図１１のネットワーク制御システムの詳細動作の一例を、図１２のフローチャートを用いて説明する。まず、ネットワーク１０３、１０４、１０５のいずれかからパケット１２０１がパケット送受信部１１０５に届いたときのパケット転送処理装置１１０１の処理を詳細に説明する。
【００８３】
パケット送受信部１１０５にパケット１２０１が届くと、パケット受信処理を開始する（ステップ１２０２）。具体的には、パケット送受信部１１０５が受信したパケット１２０１の内容をパケットバッファ１１０８に書き込むとともに、パケット１２０１の到着をＣＰＵ１１０３に割り込み信号等により通知する。この時、フロー制御情報メモリ１１０９には、パケット１２０１を遮断する、あるいは帯域制限するというルールは設定されていないものとする。
【００８４】
次に、ＣＰＵ１１０３は、パケットバッファ１１０８に格納されたパケットの内容からトラフィック情報を生成する（ステップ１２０３）。前記トラフィック情報の生成方法は、図５のフローチャートのステップ５０３と同様であり、その内容は図６に示したトラフィック情報５０５の内容と同一である。あるいは、トラフィック情報１２０５は、前記パケットを単にミラーリングしたものであってもよい。
【００８５】
次に、ＣＰＵ１０９は、前記トラフィック情報をトラフィック情報１２０５としてパケット送受信部１１０５を通してネットワーク制御装置１１０２へ送信する（ステップ１２０４）。この時、フロー制御情報メモリ１１０９には、トラフィック情報１２０５を遮断する、あるいは帯域制限するというルールは設定されていないものとする。
【００８６】
ステップ１２０４では、適当なパケット数分のトラフィック情報をまとめてネットワーク制御装置１１０２へ送信するという点も、図５のフローチャートのステップ５０４と同様である。
【００８７】
次に、ＣＰＵ１１０３は、パケットバッファ１１０８に格納されているパケットの転送先ネットワークを経路テーブル１１０７を参照して決定する（ステップ１２０６）。経路テーブル１１０７の内容は、図１に示した実施例１の経路テーブル１１３の内容と同様である。
【００８８】
最後に、パケットバッファ１１０８に格納されているパケットを、ステップ１２０６で決定した転送先ネットワークへパケット１２０８として送信する（ステップ１２０７）。
【００８９】
一方、ネットワーク制御装置１１０２では、ステップ１２０４の処理によりトラフィック情報１２０５を受信すると、パケット送受信部１１１２が受信したトラフィック情報１２０５の内容をトラフィック情報バッファ１１１３へ格納すると共に、トラフィック情報１２０５の受信をＣＰＵ１１１０に割り込み信号等により通知する（ステップ１２０９）。
【００９０】
ＣＰＵ１１１０にトラフィック情報１２０５の転送が通知されると、ＣＰＵ１１１０は、トラフィック情報１２０５の分析処理を行い、不適切なトラフィックを検出した場合に該トラフィックの遮断、あるいは、帯域制限を行うためのフロー制御設定情報１２１１を生成し、パケット送受信部１１１２を通してパケット転送処理装置１１０１へ送信する処理を行う（ステップ１２１０）。
【００９１】
フロー制御設定情報１２１１を受け取ったパケット転送処理装置１１０１は、ＣＰＵ１１０３がフロー制御設定情報１２１１の内容をフロー制御設定メモリ１１０９に書き込む（ステップ１２１２）。以後、フロー制御部１１０６は、フロー制御設定情報１２１１で指定されたパケットに対して遮断や帯域制限等のフロー制御設定情報１２１１で指定された制御を行うようになる。
【００９２】
ネットワーク制御装置１１０２によるトラフィック情報分析処理（ステップ１２１０）の内容は、実施例１における特定トラフィック検出・制御部１０７によるトラフィック情報分析処理（図５のステップ５０９）と同様であり、詳細説明は省略する。パケットカウントテーブル１１１３、しきい値テーブル１１１５、制御ポリシテーブル１１１６の内容は、それぞれ図１に示したパケットカウントテーブル１１９、しきい値テーブル１２０、制御ポリシテーブル１２１の内容と同様である。
【００９３】
以上が、本実施例によるネットワーク制御システムの全体フローの説明である。
【００９４】
本実施例によれば、転送したトラフィックに関する情報などを、ネットワークを通して外部に送信する機能を備えた既存のパケット転送装置に対し、前記トラフィックに関する情報を収集して分析する装置を付加するだけで、問題トラフィックと考えられるトラフィックを高速に抽出し、かつ、該トラフィックに対して遮断や帯域制御等の対策を自動的に行えるネットワーク制御システムを容易に構成できるようになるという効果がある。
【実施例３】
【００９５】
実施例３を説明する。図１３は、図２に示した実施例１におけるパケットカウントテーブル１１９の他の実施形態を示した図であり、パケットカウントテーブル１１９と同様にトラフィック情報を構成する各項目の任意の組み合わせを生成し、前記項目の組み合わせを含むパケット数の積算処理を行うためのテーブルである。
【００９６】
本実施例の場合、前記トラフィック情報を構成する項目は、送信元ＩＰアドレス（ｓｒｃ  ｉｐ）、宛先ＩＰアドレス（ｄｓｔ  ｉｐ）、送信元ポート番号（ｓｒｃ  ｐｏｒｔ）、宛先ポート番号（ｄｓｔ  ｐｏｒｔ）の４種類とし、前記４種類の項目から任意のｎ項目（１≦ｎ≦４）の組み合わせを生成する。
【００９７】
なお、本実施例では処理対象項目を前記４種類としているが、検知したいトラフィックの特性に応じてさらに別の項目を加えたり、あるいは削除したりしてもよい。例えば、ＴＣＰセッションの確立、切断処理に関連するトラフィックを抽出するためにＴＣＰヘッダ中のフラグ情報を含めてもよい。あるいは、トラフィックの特性をより正確に把握するために、ＴＣＰヘッダまたはＵＤＰヘッダの後ろに続くアプリケーションデータの先頭何バイト分かを含めてもよい。あるいは、ＭＰＬＳラベルが付いている場合に、前記ＭＰＬＳラベルの値も含め、ＬＳＰ毎にトラフィックの分析を行えるようにしてもよい。あるいは、Ｌ２ＴＰなどのトンネリングプロトコルを使用しているときに、トンネル識別子を含め、トンネル毎にその中を通過するトラフィックの分析を行えるようにしてもよい。
【００９８】
パケットカウントテーブル１３００では、組み合わせ項目数に関係なく、すべてのエントリが前記トラフィック情報を構成する項目のフィールドを持ち、前記項目のうち、組み合わせを構成する項目であれば前記フィールドには前記項目の値を格納し、それ以外の項目であれば、前記組み合わせを持つパケット数のカウント中に出現した値の種類数を格納する。そのため、前記各項目に対応したフィールドには、前記フィールドに格納される数値が前記項目の値なのか、出現種類数なのかを示す属性フィールドを持つ。
【００９９】
たとえば、図１３においてエントリ番号４のエントリでは、送信元ＩＰアドレスがＺ、宛先ＩＰアドレスがＹ、宛先ポート番号がｄであるパケットが２０個出現し、前記２０個のパケットに含まれていた送信元ポート番号の種類が８種類であったことを表している。
【０１００】
パケットカウントテーブル１３００を使用する場合、図７に示したパケットカウントテーブル更新処理（ステップ７０２）のフローチャートは、図１４に示すものとなる。以下、図１４を用い、パケットカウントテーブル１３００を使用した場合のステップ７０２の処理について説明する。
【０１０１】
まず、ＣＰＵ１１６は、ステップ１４０１にて補助テーブル１５００の初期化処理を行う。
【０１０２】
補助テーブル１５００は、図１５に示す構造を持ったテーブルで、前記項目の組み合わせのそれぞれに対応するエントリから構成される。一つの前記エントリには、前記組み合わせに含まれない項目について新規に出現した値があるかどうかを示す新規出現フラグと、前記項目の組み合わせについてパケット数をカウントしているパケットカウントテーブル１３００中のエントリ番号を格納するフィールドから構成される。
【０１０３】
補助テーブル１５００の初期化処理とは、前記エントリの全てについて前記新規出現フラグの全ての値を０とし、前記エントリ番号のフィールドをエントリ番号無しを表す値とする処理である。
【０１０４】
次に、ＣＰＵ１１６は、前記４種類の項目から任意のｎ個から選び出した項目組み合わせを生成する（ステップ１４０２）。生成する項目組み合わせは、数学的に得られる全ての組み合わせでも良いが、処理負荷の軽減による高速化を目的として、一部の組み合わせに限定してもよい。
【０１０５】
次にステップ１４０２で生成された項目組み合わせの中から一つを選択し、前記選択された項目組み合わせを含むパケット数を積算するためのパケットカウントテーブル１３００内のエントリを決定する（ステップ１４０３）。選択のアルゴリズムとしては、例えば前記選択された項目組み合わせに対して適当なハッシュ関数を適用し、得られたハッシュ値をエントリ数で割った余りをエントリ番号とする方法などがある。
【０１０６】
ステップ１４０３で使用するエントリが決定したら、該エントリの現状の内容を確認する（ステップ１４０４）。
【０１０７】
もし、前記エントリが未使用であった場合は、前記エントリ内の各項目のうち、前記組み合わせに含まれる項目についてその属性フィールドを「値」として前記項目の値を書き込み、前記組み合わせに含まれない項目についてはその属性フィールドを「出現種類数」としてその値を０とする。そして、パケット数フィールドを０にする（ステップ１４０５）。
【０１０８】
次に、補助テーブル１５００の更新処理を行う（ステップ１４０６）。具体的には、前記組み合わせから任意の一つの項目を取り除いた組み合わせに対応する補助テーブル１５００中のエントリの新規出現フラグのうち、前記取り除いた項目に対応するフィールドの値を１とする。この処理を前記組み合わせから任意の一つの項目を取り除いたすべての組み合わせについて実施する。ステップ１４０６の処理は、ある項目の組み合わせに対し、前記組み合わせに含まれない項目に新たな値が出現したことを記憶しておく役目をする。
【０１０９】
次に、ステップ１４０３で選択されたエントリ内のパケット数フィールドに１を加え（ステップ１４０７）、補助テーブル１５００中の前記組み合わせに対応するエントリのエントリ番号フィールドにステップ１４０３で選択されたパケットカウントテーブル１３００のエントリのエントリ番号を格納する（ステップ１４０８）。
【０１１０】
一方、ステップ１４０４の結果、前記エントリが前記選択された項目組み合わせですでに使用中であれば、そのまま前記エントリ内のパケット数に１を加えるためにステップ１４０７へジャンプする。前記エントリがすでに前記選択された項目組み合わせですでに使用中ということは、過去に出現した項目の組み合わせということであるから、補助テーブル１５００の新規出現フラグを更新する必要はなく、したがってステップ１４０６を実行する必要はない。
【０１１１】
一方、ステップ１４０４の結果、前記エントリが、別項目の組み合わせで既に使用中であった場合は、前記エントリ内のパケット数から１を引き（ステップ１４０９）、結果が０となった場合はステップ１４０５へスキップし、そうでなければステップ１４１１へスキップする（ステップ１４１０）。これは、異なる項目の組み合わせがパケットカウントテーブル１３００内の同一エントリを使おうとした場合に、頻出する組み合わせの方がパケットカウントテーブル１３００内に残り易くするための処理である。
【０１１２】
次に、ＣＰＵ１１６は、前記エントリ内のパケット数フィールドの値が所定のしきい値を超えているかどうかを確認する（ステップ１４１１）。前記所定のしきい値は、しきい値テーブル１２０に格納されている。
【０１１３】
ステップ１４１１にて、前記パケット数フィールドの値がしきい値テーブル１２０のしきい値フィールドに定義されている値のいずれかと一致した場合、ＣＰＵ１１６は、しきい値越えが発生したと判断し、しきい値越え情報を生成する（ステップ１４１２）。本実施例におけるしきい値越え情報の内容は、図８に示すしきい値越え情報からテーブル種別８０１を除いたものである。生成されたしきい値越え情報は、メモリ１１７内に一時的に格納される。
【０１１４】
ステップ１４０３からステップ１４１２までの処理は、ステップ１４０２で生成された項目組み合わせの全てに対して実行されるまで繰り返す（ステップ１４１３）。
【０１１５】
最後に、補助テーブル１５００を参照し、パケットカウントテーブル１３００中の各エントリで属性フィールドの値が「出現種類数」となっている項目の値を更新する（ステップ１４１４）。具体的には、補助テーブル１５００の各エントリのエントリ番号フィールドで示されるパケットカウントテーブル１３００のエントリに対し、前記補助テーブル１５００のエントリの新規出現フラグが１となっている項目に対応する値を１増加する。これを補助テーブル１５００の全エントリについて実行する。
【０１１６】
以上が本実施例によるパケットカウントテーブル１３００を使用した場合のステップ７０２の詳細動作説明である。
【０１１７】
さらに、本実施例によるパケットカウントテーブル１３００を使用する場合、図７に示した問題トラフィック判別処理（ステップ７０４）のフローチャートは、図１６に示すものに置き換わる。以下、図１６を用い、パケットカウントテーブル１３００を使用した場合のステップ７０４の処理について説明する。
【０１１８】
ＣＰＵ１１６は、まず、前記しきい値越え情報の中のエントリ番号８０２で特定されるパケットカウントテーブル１３００中のエントリに含まれる項目のうち、属性フィールドが「値」となっている項目の組み合わせを確認する（ステップ１６０１）。
【０１１９】
前記エントリに含まれる項目で属性フィールドが「値」となっている項目の組み合わせが送信元ＩＰアドレスと宛先ポート番号であった場合、前記しきい値越え情報が示すトラフィックはネットワークワームの拡散トラフィックの可能性があると判断し、これを確認するためのステップ１６０２以降の処理を実行する。
【０１２０】
ネットワークワームに感染したコンピュータは、ワームを拡散するためのトラフィックをランダムな多数のコンピュータに対して送信する場合が多く、かつ、該トラフィックは特定のポート番号宛である場合が普通である。そのため、送信元ＩＰアドレスと宛先ポート番号の組み合わせが同一であるパケットが多数観測された場合、前記パケットはネットワークワームの拡散トラフィックの可能性があると判定できる。
【０１２１】
ところが、例えば、特定の２台のコンピュータ間で通常の１対１通信を行っていた場合も、同様に送信元ＩＰアドレスと宛先ポート番号の組み合わせが同一であるパケットが多数観測される。そこで、このような正常トラフィックとネットワークワームの拡散トラフィックを区別するために、前記エントリ中に示される宛先ＩＰアドレスの出現種類数を確認する（ステップ１６０２）。
【０１２２】
ステップ１６０２において前記出現種類数が前記しきい値と等しいか、近い値であった場合、前記トラフィックは不特定多数のコンピュータに対して同一宛先ポート番号のパケットを送信していたことを意味し、前記トラフィックはネットワークワーム拡散トラフィックである可能性が高いと判定する（ステップ１６０３）。
【０１２３】
また、ステップ１６０１において、前記エントリに含まれる項目で属性フィールドが「値」となっている項目の組み合わせが宛先ＩＰアドレスと宛先ポート番号であった場合、前記しきい値越え情報が示すトラフィックはＤＤｏＳ攻撃トラフィックの可能性があると判断し、これを確認するためのステップ１６０４以降の処理を実行する。
【０１２４】
ＤＤｏＳ攻撃を受けているコンピュータには、多数の他のコンピュータから同一のポート番号に対して通信要求が送られてくる。そのため、宛先ＩＰアドレスと宛先ポート番号の組み合わせが同一であるパケットが多数観測された場合、前記パケットはＤＤｏＳ攻撃トラフィックの可能性が高いと判定できる。
【０１２５】
ところが、例えば、特定の２台のコンピュータ間で通常の１対１通信を行っていた場合も、同様に宛先ＩＰアドレスと宛先ポート番号の組み合わせが同一であるパケットが多数観測される。そこで、このような正常トラフィックとＤＤｏＳ攻撃トラフィックを区別するために、前記エントリ中に示される送信元ＩＰアドレスの出現種類数を確認する（ステップ１６０４）。
【０１２６】
ステップ１６０４において前記出現種類数が前記しきい値と等しいか、近い値であった場合、前記トラフィックは不特定多数のコンピュータから同一宛先ＩＰアドレス、かつ、同一宛先ポート番号のパケットが送信されていたことを意味し、前記トラフィックはＤＤｏＳ攻撃トラフィックの可能性が高い判定する（ステップ１６０５）。
【０１２７】
以上が本実施例によるパケットカウントテーブル１３００を使用した場合のステップ７０４の詳細動作説明である。
【０１２８】
本実施例によれば、項目の組み合わせごとのパケット数のカウントと同時に組み合わせに含まれない項目の出現種類数をカウントできるため、問題トラフィックの判別をより少ないＣＰＵ負荷で高速に実行できるようになるという効果がある。さらに、基本的な問題トラフィック判別処理を高速化できることで、他の項目の組み合わせに対するパケット数のカウント情報を併用したより高精度の問題トラフィック判別処理も実用的なＣＰＵ負荷と処理速度で実行できるようになるという効果がある。
【０１２９】
例えば、ステップ７０４であるトラフィックがＤＤｏＳ攻撃である可能性が高いと判定されたとき、これが本当の攻撃なのか多数のコンピュータからの通常のアクセスが大量に発生しているだけなのかを他の項目の組み合わせに対するカウント情報を併用することで識別可能となる。この場合、他の項目の組み合わせとは攻撃対象となっているコンピュータから送信される逆向きのトラフィックであり、具体的には、送信元ＩＰアドレスが攻撃と判定されたトラフィックの宛先ＩＰアドレスであり、送信元ポート番号が前記攻撃と判定されたトラフィックの宛先ポート番号となっている２項目の組み合わせで、宛先ＩＰアドレスの出現種類数が多数あるものである。前記他の組み合わせのカウント情報をパケットカウントテーブル１３００から検索し、そのパケット数がＤＤｏＳ攻撃の判定に利用した項目組み合わせのパケット数と同等以上であれば、応答パケットが相当数返されていることを意味し、ＤＤｏＳ攻撃ではなく通常のアクセスが集中している可能性が高いと判断できる。
【０１３０】
なお、上記の説明では実施例１で示した構成（図１の構成）においてパケットカウントテーブル１１９を本実施例によるパケットカウントテーブル１３００で置き換えた場合の例について示したが、実施例２で示した構成（図１１）においてパケットカウントテーブル１１１４を本実施例によるパケットカウントテーブル１３００に置き換えても同様の効果がある。
【０１３１】
以上実施例で説明したが、本発明の他の実施形態１は、パケット中の任意の一つ又は二つ以上の組み合わせのフィールドの値が同一であるパケットの数を積算する手段は、前記パケット数の積算値を保持する領域を前記フィールドの値の組み合わせのハッシュ値から求め、得られた前記領域が他の項目の組み合わせの積算値の保持に既に利用されていた場合は、前記他の項目組み合わせの積算値を減算し、前記積算値が０となったときのみ前記項目組み合わせのパケット数の積算に利用するようにしたネットワーク制御装置である。
【０１３２】
本発明の他の実施形態２は、前記モニタする手段は、装置管理者の指定の割合でパケットをサンプリングしたものだけをモニタするネットワーク制御装置である。
【０１３３】
本発明の他の実施形態３は、前記モニタする手段は、装置管理者の指定の特徴を持つパケットは全てサンプリングするネットワーク制御装置である。
【０１３４】
本発明の他の実施形態４は、複数のネットワークに接続され、前記ネットワークの間でパケットの転送を行う手段と、前記パケットに対する転送可否や使用ネットワーク帯域の制御を行うフロー制御手段を備え、前記パケット判別手段により得られた特性に応じて前記フロー制御手段の設定を変更するネットワーク制御装置である。
【０１３５】
本発明の他の実施形態５は、パケット判別手段により得られた特性に従って、前記パケット判別手段で判別の対象となったパケットの制御方法を指示するためのフロー制御情報を送信する手段を備えたネットワーク制御装置である。
【０１３６】
本発明の他の実施形態６は、複数のネットワークに接続され、前記ネットワークの間でパケットの転送を行う手段と、前記パケットのモニタ情報を送信する手段と、前記パケットに対する転送可否や使用ネットワーク帯域の制御を行うフロー制御手段と、前記フロー制御手段に対する設定情報を受信する手段を備えたパケット転送装置と、上記ネットワーク制御装置から構成され、前記ネットワーク制御装置は前記モニタ情報を前記パケット転送装置から受信し、フロー制御情報を前記パケット転送装置に対して送信することを特徴とするネットワーク制御システムである。
【０１３７】
本発明の他の実施形態７は、接続したネットワークを流れるパケットをモニタし、モニタによって得られたパケット中の任意の一つ又は二つ以上の組み合わせのフィールドの値が同一であるパケットの数を積算し、積算したパケットの数が指定のしきい値を超えたときに、前記任意の一つ又は二つ以上の組み合わせとは異なる任意の一つ又は二つ以上の組み合わせのフィールドの値から前記指定のしきい値を超えた数のパケットの特性を推定するネットワーク制御方法である。
【図面の簡単な説明】
【０１３８】
【図１】実施例１のネットワーク制御装置の構成の一例を示す図。
【図２】実施例１におけるパケットカウントテーブルの内容の一例を示す図。
【図３】実施例１におけるしきい値テーブルの内容の一例を示す図。
【図４】実施例１における制御ポリシテーブルの内容の一例を示す図。
【図５】実施例１のネットワーク制御装置の動作の一例を示すフローチャート。
【図６】実施例１におけるトラフィック情報の内容の一例を示す図。
【図７】実施例１におけるトラフィック情報分析処理の詳細の一例を示すフローチャート。
【図８】実施例１におけるしきい値越え情報の内容の一例を示す図。
【図９】実施例１におけるパケットカウントテーブル更新処理の詳細の一例を示すフローチャート。
【図１０】実施例１における問題トラフィック判別処理の詳細の一例を示すフローチャート。
【図１１】実施例２のネットワーク制御システムの構成を示す図。
【図１２】実施例２のネットワーク制御システムの動作の一例を示すフローチャート。
【図１３】実施例３におけるパケットカウントテーブルの内容の一例を示す図。
【図１４】実施例３におけるパケットカウントテーブル更新処理の詳細の一例を示すフローチャート。
【図１５】実施例３における補助テーブルの内容の一例を示す図。
【図１６】実施例３における問題トラフィック判別処理の詳細の一例を示すフローチャート。
【符号の説明】
【０１３９】
１０１  ネットワーク制御装置
１０２  入出力装置
１０３、１０４、１０５  ネットワーク
１０６  パケット転送部
１０７  特定トラフィック検出・制御部
１０８  接続インタフェース
１０９、１１６  ＣＰＵ
１１０、１１７  メモリ
１１１  パケット送受信部
１１２  フロー制御部
１１３  経路テーブル
１１４  パケットバッファ
１１５  フロー制御情報メモリ
１１８  トラフィック情報バッファ
１１９  パケットカウントテーブル
１２０  しきい値テーブル
１２１  制御ポリシテーブル
【図１】
2006314077.tif 000003
【図２】
2006314077.tif 000004
【図３】
2006314077.tif 000005
【図４】
2006314077.tif 000006
【図５】
2006314077.tif 000007
【図６】
2006314077.tif 000008
【図７】
2006314077.tif 000009
【図８】
2006314077.tif 000010
【図９】
2006314077.tif 000011
【図１０】
2006314077.tif 000012
【図１１】
2006314077.tif 000013
【図１２】
2006314077.tif 000014
【図１３】
2006314077.tif 000015
【図１４】
2006314077.tif 000016
【図１５】
2006314077.tif 000017
【図１６】
2006314077.tif 000018