(57)【要約】【課題】テンプレートを動的に管理するのに必要な所要メモリ量を節約する。【解決手段】テンプレートで定義されたデータ構造で送られてくるＩＰフロー情報の最小通知単位であるレコード内の各情報項目の格納位置を算出して、その結果を各情報項目の抽出順番に、かつテンプレート単位にテンプレート情報管理テーブル１５に保持し、各情報項目の長さ情報として、切り出す長さを一定にして切り出し回数をテンプレート共通情報管理テーブル１６に保持する。ＩＰフロー情報が送られてくると、テンプレート情報管理テーブル１５から各レコードのレコード長より当該レコードの先頭位置を特定し、必要な情報項目の先頭アドレスを読み出し、先頭位置と先頭アドレスで決まる位置から始まるデータを、テンプレート共通情報管理テーブル１６に設定されている、前記の必要な情報項目の切り出し回数だけ取り出す。【選択図】図１
2008211593.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク機器から任意の通知形式で送信されてくるＩＰフロー情報の中から必要なデータをコレクタが収集する方法において、
前記ＩＰフロー情報の送信開始前に送られてくる、通知形式を定義するテンプレートに基づいて、該テンプレートで定義されたデータ構造で送られてくるＩＰフロー情報の最小通知単位であるレコード内の各情報項目の格納位置を算出して、その結果を各情報項目の抽出順番に、かつテンプレート共通にテンプレート情報管理テーブルに保持し、さらに各情報項目の長さ情報として、切り出す長さを一定にして切り出し回数をテンプレート共通情報管理テーブルに保持し、
前記ＩＰフロー情報が送られてくると、前記テンプレート情報管理テーブルから各レコードのレコード長より当該レコードの先頭位置を特定し、必要な情報項目の先頭アドレスを読み出し、前記先頭位置と前記先頭アドレスで決まる位置から始まるデータを、前記テンプレート共通情報管理テーブルに設定されている、前記の必要な情報項目の切り出し回数だけ取り出し、取り出されたデータを集計する
ＩＰフロー情報収集方法。
【請求項２】
ネットワーク機器から、テンプレートで定義されたデータ構造で送られてくるＩＰフロー情報の最小通知単位である各レコードのレコード長を保持し、さらに当該レコード内の各情報項目の、当該レコード内での格納位置を示す先頭アドレスを、情報項目の順番に、かつテンプレート共通に保持する、ＩＰフロー情報毎のテンプレート情報管理テーブルと、
各レコード内の各情報項目の、一定バイト単位での切り出し回数を保持するテンプレート共通情報管理テーブルと、
前記ＩＰフロー情報受付時、必要な情報項目の先頭アドレスを前記テンプレート情報管理テーブルに書き込み、必要な情報項目の切り出し回数を前記テンプレート情報管理テーブルに設定するテンプレート管理手段と、
ＩＰフロー情報が送られてくると、前記テンプレート情報管理テーブルから各レコードのレコード長より当該レコードの先頭位置を特定し、必要な情報項目の先頭アドレスを読み出し、前記先頭位置と前記先頭アドレスで決まる位置から始まるデータを、前記テンプレート共通情報管理テーブルに設定されている、前記の必要な情報項目の切り出し回数だけ取り出すフローデータ抽出手段と、
前記フローデータ抽出手段で取り出されたデータを集計する集計手段と
を有するＩＰフロー情報収集装置。
【請求項３】
コンピュータを、請求項２に記載のＩＰフロー情報収集装置のテンプレート管理手段、フローデータ抽出手段、集計手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク機器から任意の通知形式で送信されてくるＩＰフロー情報の中から必要なデータを収集する方法および装置に関する。
【背景技術】
【０００２】
従来のテンプレート管理技術として、ＮｅｔＦｌｏｗ  ｖ９準拠ＩＰフロー情報収集ツールの一種であるｐｍａｃｃｔでのテンプレート管理方法について説明する。
【０００３】
図６に示すように、従来の技術では、テンプレート管理情報として、テンプレート単位にＮｅｔＦｌｏｗ  ｖ９で規定されている全ての情報項目（Ｉｎｆｏｒｍａｔｉｏｎ  Ｅｌｅｍｅｎｔ（ＩＥ））１２８個分だけ、その情報項目ＩＤ、その情報項目の長さ、およびそのオフセット値（該当の情報項目がレコードの先頭から何バイト目に位置するかを示す先頭アドレス）を格納可能なテンプレート管理テーブルを保持している。
【０００４】
テンプレートを受け付けた時の動作について、図７を用いて説明する。テンプレート受付時には、そのテンプレート内に格納されている全ての情報項目の中から、ネットワーク管理者が指定する、ネットワーク監視や不正トラフィック検出等で必要な情報項目を必要な順番で抽出するために、テンプレート管理テーブルに必要な情報項目の情報を抽出順番の格納場所に書き込んでいく。例えばパケット受信数という情報項目を３番目に抽出する場合、上から３番目の格納場所の情報項目ＩＤ（ＩＥ  ＩＤ）フィールドにパケット受信数の情報項目ＩＤ＝２、情報項目長フィールドにパケット受信数の情報項目長＝４バイト、Ｏｆｆｓｅｔフィールドには、パケット受信数のレコード先頭からの格納位置アドレスとして、情報項目＃１から情報項目＃２までの長さの加算合計値＝８バイトを格納する。また、テンプレート内の全ての構成情報項目の長さの総和＝１６バイトをレコードの長さとして格納する。
【０００５】
フローデータを抽出する時の動作について、図８を用いて説明する。テンプレートＩＤ＝２９０をキーにしてテンプレート管理テーブルから該当のテンプレート定義情報を検索する。検索したテンプレート定義情報の中からレコード長＝１６バイトを読み出す。フローデータは複数のレコードのセットで送信されるために、レコードセットの先頭位置からレコード長＝１６バイトの間隔で各レコードの先頭位置を特定する（１）。必要な情報項目として、例えばパケット受信数を取り出す場合、テンプレート定義情報からパケット受信数のＯｆｆｓｅｔ値＝８バイトを読み出し、レコードの先頭位置から８バイト目がパケット受信数の先頭位置Ａと割り出す（２）。次に、テンプレート定義情報の中から情報項目長＝４バイトを読み出し、前述の受信パケット数の先頭位置Ａから情報項目長＝４バイト分だけデータを取り出す（３）ことで、必要な受信パケット数＝５００９を抽出し、内部メモリに格納できる。
【非特許文献１】「ＮｅｔＦｌｏｗ  Ｓｅｒｖｉｃｅｓ  Ｓｏｌｕｔｉｏｎ  Ｇｕｉｄｅ」  http://www.pmacct.net/pmacct-0.11.2.tar.gz
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来の技術では、テンプレート毎に情報項目ＩＤとその長さ値そのものを保持したり、不要な情報項目も保持するので、メモリ使用効率が悪い。また、データ抽出時に、必要な情報項目を情報項目ＩＤから検索し、その長さ情報を読み出す処理が必要となるので、データアクセスの処理効率も悪い。
【０００７】
以上より、従来の技術では、テンプレート管理方法を大規模ネットワークに適用する場合、非常に多くの数や種類のルータやサーバから多様なテンプレートや大量のフローデータが送出されてき、多様なテンプレート定義情報を管理しながら、パケット毎、あるいは同一パケット内において、テンプレートの切り替えや変更に動的に対応して、大量のＩＰフロー情報の中からネットワーク監視や不正トラフィック検出に必要なデータを抽出する必要があるので、これらの処理をワイヤレートで実行するのは困難である。
【０００８】
本発明の目的は、テンプレートを動的に管理するのに必要な所要メモリ量を節約でき、テンプレート定義情報を参照して必要なフローデータを抽出する処理の効率化を図ることができるＩＰフロー情報収集方法および装置を提供することである。
【課題を解決するための手段】
【０００９】
本発明のＩＰフロー情報収集方法は、
ＩＰフロー情報の送信開始前に送られてくる、通知形式を定義するテンプレートに基づいて、該テンプレートで定義されたデータ構造で送られてくるＩＰフロー情報の最小通知単位であるレコード内の各情報項目の格納位置を算出して、その結果を各情報項目の抽出順番に、かつテンプレート共通にテンプレート情報管理テーブルに保持し、さらに各情報項目の長さ情報として、切り出す長さを一定にして切り出し回数をテンプレート共通情報管理テーブルに保持し、
前記ＩＰフロー情報が送られてくると、前記テンプレート情報管理テーブルから各レコードのレコード長より当該レコードの先頭位置を特定し、必要な情報項目の先頭アドレスを読み出し、前記先頭位置と前記先頭アドレスで決まる位置から始まるデータを、前記テンプレート共通情報管理テーブルに設定されている、前記の必要な情報項目の切り出し回数だけ取り出し、取り出されたデータを集計するものである。
【００１０】
抽出対象の情報項目の種類や数、およびそれらの抽出順番をテンプレート共通に保持することによって、所要メモリ量を節約するとともに、情報項目の長さ情報として、Ｌｅｎｇｔｈ値自体を保持するのではなく、切り出す長さを一定にして切り出し回数を数ビットの情報として保持することで、データアクセス処理の効率化を図る。
【００１１】
以上のようにして適正化されたテンプレート定義情報をＦＰＧＡ（＝Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）やダイナミックリコンフィギャラブルプロセッサの分散内部メモリに保持することによって、データアクセス時のメモリ競合を回避し、パイプライン処理により同時に複数のテンプレートの登録を行なったり、同時に複数の情報項目を抽出することができるので、多様なテンプレートの登録や切り替え、大量のＩＰフロー情報の中からの必要なフローデータ抽出をワイヤレートで処理することが可能である。
【発明の効果】
【００１２】
本発明によれば、テンプレートを動的に管理するのに必要な所要メモリ量を節約でき、テンプレート定義情報を参照して必要なフローデータを抽出する処理の効率化を図ることができる。また、大規模ネットワークを対象にしたネットワーク監視、あるいはサーバやルータへの攻撃トラフィックや帯域占有トラフィックなどの不正トラフィックを検出するのに必要なＩＰフロー情報を大量に、かつ高速に収集し、後段の監視装置、あるいは分析装置に転送することが可能である。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００１４】
図１は、本発明の一実施形態のシステムのブロック図である。
【００１５】
図１において、通信ネットワークにおいて、ルータやサーバ等のネットワーク機器２０からＮｅｔＦｌｏｗや標準化中のＩＰＦＩＸ（IP Flow Information eXport）を用いて通知されてくるＩＰフロー情報の中からコレクタ１０がネットワーク監視や不正トラフィックの検出に必要なフローデータを収集して、集計処理を施し、その結果を監視装置３０に出力する。
【００１６】
コレクタ１０は、受信したパケット内のテンプレートとフローデータを解析するメッセージ解析部１１と、テンプレート受付時にテンプレート定義情報を管理するテンプレート管理部１２と、フローデータ受付時に該当するテンプレート定義情報に基づいて、必要なＩＰフロー情報を抽出するフローデータ抽出部１３と、抽出されたフローデータを集計する集計部１４と、テンプレート情報管理テーブル１５と、テンプレート共通情報管理テーブル１６から構成される。
【００１７】
テンプレート情報管理テーブル１５を図２に示す。
【００１８】
抽出対象として必要な情報項目の種類や数、およびそれらの抽出順番を装置共通に保持する。このため、保持する項目順番が必要な情報項目ＩＤに対応するため、従来技術のように、テンプレート毎に各情報項目ＩＤを保持する必要はない。以上により、テンプレート情報管理テーブル１５には、必要な情報項目のレコード内の格納位置を示す先頭アドレスのみを保持する。
【００１９】
テンプレート共通情報管理テーブル１６を図３に示す。各情報項目の長さは大部分が４バイト以内に収まるため、保持している先頭アドレスから一定の長さ（４バイト）で切り出し、そのままの形で後段の集計部１４に転送する。４バイトを超える項目は、数回の切り出しが必要となる。以上より、テンプレート共通情報管理テーブル１６は、長さ情報の代わりに、抽出順番毎に４バイト単位での切り出し回数を数ビットの情報として保持する。この時、情報項目の長さが切り出しサイズよりも小さい場合には不要なビット情報も含まれるが、それらは除外せずに転送する。なお、必要な情報項目に関する切り出し回数は、収集開始前に予めテンプレート共通情報管理テーブル１６に設定する。
【００２０】
テンプレート受付時におけるテンプレート定義情報の登録処理を、図４を用いて説明する。この動作はテンプレート管理部１２で行なわれる。テンプレート受付時には、そのテンプレート内に格納されている全ての情報項目の中から、ネットワーク管理者が指定する、ネットワーク監視や不正トラフィック検出等で必要な情報項目を必要な抽出順番で抽出するために、テンプレート情報管理テーブル１５に必要な情報項目の先頭アドレスを抽出順番に書き込んでいく。例えばパケット受信数という情報項目を３番目に抽出する場合、上から３番目の格納場所のＯｆｆｓｅｔフィールドには、パケット受信数のレコード先頭からの格納位置アドレスとして、情報項目＃１から情報項目＃２までの長さの加算合計値＝８バイトを格納する（１）。また、テンプレート内の全ての構成情報項目の長さの総和＝２０バイトをレコードの長さとして格納する。
【００２１】
次に、フローデータを抽出する時の動作について、図５を用いて説明する。この動作はフローデータ抽出部１３で行なわれる。テンプレートＩＤ＝２９０をキーにしてテンプレート情報管理テーブル１５から該当のテンプレート定義情報を検索する。検索したテンプレート定義情報の中からレコード長＝２０バイトを読み出す。フローデータは複数のレコードのセットで送信されるので、レコードセットの先頭位置からレコード長＝２０バイトの間隔で各レコードの先頭位置を特定する（１）。次に、特定した各レコード先頭位置からテンプレート定義情報のＯｆｆｓｅｔ値分だけ離れた位置を必要な情報項目の先頭アドレスと見なして（２）、テンプレート共通情報の切り出し回数分だけ一定の長さ４バイトのデータを取り出すことによって、必要な情報項目を取り出すことができる（３）。例えば、必要な情報項目の種類や抽出順番を抽出順番＃１＝ＩＰｖ４送信元アドレス（ＩＰｖ４＿ＳＡ）、抽出順番＃２＝ＩＰｖ４宛先アドレス（ＩＰｖ４＿ＤＡ）、抽出順番＃３＝受信パケット数（ＩＮ＿Ｐｋｔｓ）、抽出順番＃４＝受信バイト数（ＩＮ＿Ｂｙｔｅｓ）とした時に、パケット受信数を取り出す場合、テンプレート定義情報からパケット受信数のＯｆｆｓｅｔ値＝８バイトを読み出し、レコードの先頭位置から８バイト目がパケット受信数の先頭位置と割り出す。次に、テンプレート共通情報の切り出し回数＝１回分だけ一定長４バイトのデータを取り出すことで、必要な受信パケット数＝５００９を抽出できる。
【００２２】
このように本方法を用いれば、テンプレート定義情報を管理するために必要なメモリ量を節約することで、多様なテンプレートに柔軟に対応可能で、かつ大量のテンプレート登録や動的切り替え、あるいは大量のフローデータ抽出時のデータアクセス処理の効率化を図ることで、ＩＰフロー情報の収集処理の高速化ができる。
【００２３】
なお、コレクタ１０の機能は、その機能を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行するものであってもよい。コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータ読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間、動的にプログラムを保持するもの（伝送媒体もしくは伝送波）、その場合のサーバとなるコンピュータ内の揮発性メモリのように、一定時間プログラムを保持しているものを含む。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施形態のシステム構成図である。
【図２】テンプレート情報管理テーブルの例を示す図である。
【図３】テンプレート共通情報管理テーブルの例を示す図である。
【図４】テンプレート受付時の動作の説明図である。
【図５】フローデータ抽出時の動作の説明図である。
【図６】従来のテンプレート定義情報管理方法の説明図である。
【図７】従来のテンプレート定義情報管理方法でテンプレート受付時の動作の説明図である。
【図８】従来のテンプレート定義情報管理方法でのフローデータ抽出時の動作の説明図である。
【符号の説明】
【００２５】
１０    コレクタ
１１    メッセージ解析部
１２    テンプレート管理部
１３    フローデータ抽出部
１４    集計部
１５    テンプレート情報管理テーブル
１６    テンプレート共通情報管理テーブル
２０    ネットワーク機器
３０    監視端末
【図１】
2008211593.tif 000003
【図２】
2008211593.tif 000004
【図３】
2008211593.tif 000005
【図４】
2008211593.tif 000006
【図５】
2008211593.tif 000007
【図６】
2008211593.tif 000008
【図７】
2008211593.tif 000009
【図８】
2008211593.tif 000010