(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023032853
(43)【公開日】2023-03-09
(54)【発明の名称】フロー情報収集装置及びフロー情報の生成方法
(51)【国際特許分類】
H04L 43/00 20220101AFI20230302BHJP
【FI】
H04L12/70 100Z
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2021139197
(22)【出願日】2021-08-27
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和2年度 新エネルギー・産業技術総合開発機構、「ポスト5G情報通信システム基盤強化研究開発事業/先導研究(委託)/ポスト5Gに向けたフレキシブルネットワークセンサと連携した高度ネットワーク監視・制御技術の研究開発」委託研究、産業技術力強化法第19条の適用を受ける特許出願
(71)【出願人】
【識別番号】504411166
【氏名又は名称】アラクサラネットワークス株式会社
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】下田 誠
(72)【発明者】
【氏名】櫻井 広人
(72)【発明者】
【氏名】佐藤 佳祐
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA14
5K030HD03
5K030JA10
5K030JA11
5K030MC07
5K030MC08
5K030MC09
(57)【要約】
【課題】大局的及び局所的なフローの変化を監視するための情報をアナライザに送信する。
【解決手段】フロー情報収集装置は、フローを監視するアナライザと通信可能に接続し、第1時間範囲単位で、通信の属性が共通するパケットを集約することによってフロー情報を生成し、第1時間範囲より小さい第2時間範囲で、フロー情報の生成に用いた複数のパケットを用いて局所的なフローの特性を解析する解析処理を繰り返し実行することによって、局所的なフローの特性を示す局所解析情報を生成し、フロー情報に付加し、局所解析情報が付加されたフロー情報を含むNetFlowパケットを生成し、アナライザに送信する。
【選択図】
図2B
【特許請求の範囲】
【請求項1】
フロー情報を生成するフロー情報収集装置であって、
演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるネットワークインタフェースを備え、
ネットワーク上のフローを監視するアナライザと通信可能に接続し、
前記演算装置は、
第1時間範囲単位で、通信の属性が共通するパケットを集約することによってフロー情報を生成し、
前記第1時間範囲より小さい第2時間範囲で、前記フロー情報の生成に用いた複数の前記パケットを用いて局所的な前記フローの特性を解析する解析処理を繰り返し実行することによって、局所的な前記フローの特性を示す局所解析情報を生成し、前記フロー情報に付加し、
前記局所解析情報が付加された前記フロー情報を含むNetFlowパケットを生成し、
前記アナライザに前記NetFlowパケットを送信することを特徴とするフロー情報収集装置。
【請求項2】
請求項1に記載のフロー情報収集装置であって、
前記フロー情報は、パケット数の受信レート及びデータ量の受信レートを含み、
前記演算装置は、前記解析処理において、前記パケット数の受信レート及び前記データ量の受信レートの少なくともいずれかのピーク値を算出することを特徴とするフロー情報収集装置。
【請求項3】
請求項1に記載のフロー情報収集装置であって、
前記フロー情報は、パケット数の受信レート及びデータ量の受信レートを含み、
前記演算装置は、前記解析処理において、前記パケット数の受信レート及び前記データ量の受信レートの少なくともいずれかの分散値を算出することを特徴とするフロー情報収集装置。
【請求項4】
請求項1に記載のフロー情報収集装置であって、
前記フロー情報は、パケット数の受信レート及びデータ量の受信レートを含み、
前記演算装置は、前記解析処理において、前記パケットの受信数の増加に起因するバースト及び受信するデータ量の増加に起因するバーストの少なくともいずれかの発生を検知し、発生回数をカウントすることを特徴とするフロー情報収集装置。
【請求項5】
請求項1に記載のフロー情報収集装置であって、
前記フロー情報は、パケット数の受信レート及びデータ量の受信レートを含み、
前記演算装置は、
パケットロス率を算出し、
前記パケットロス率に基づいて、前記パケット数の受信レート及び前記データ量の受信レートを補正し、
前記パケット数の受信レート及び前記データ量の受信レートの少なくともいずれかを用いて前記解析処理を実行することを特徴とするフロー情報収集装置。
【請求項6】
請求項1に記載のフロー情報収集装置であって、
前記記憶装置は、前記第2時間範囲を含み、前記解析処理の処理内容を定義する設定情報を格納し、
前記演算装置は、前記設定情報に基づいて、前記解析処理を実行することを特徴とするフロー情報収集装置。
【請求項7】
フロー情報収集装置が実行するフロー情報の生成方法であって、
前記フロー情報収集装置は、
演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるネットワークインタフェースを有し、
ネットワーク上のフローを監視するアナライザと通信可能に接続し、
前記フロー情報の生成方法は、
前記演算装置が、第1時間範囲単位で、通信の属性が共通するパケットを集約することによってフロー情報を生成する第1のステップと、
前記演算装置が、前記第1時間範囲より小さい第2時間範囲で、前記フロー情報の生成に用いた複数の前記パケットを用いて局所的な前記フローの特性を解析する解析処理を繰り返し実行することによって、局所的な前記フローの特性を示す局所解析情報を生成し、前記フロー情報に付加する第2のステップと、
前記演算装置が、前記局所解析情報が付加された前記フロー情報を含むNetFlowパケットを生成する第3のステップと、
前記演算装置が、前記アナライザに前記NetFlowパケットを送信する第4のステップと、
を含むことを特徴とするフロー情報の生成方法。
【請求項8】
請求項7に記載のフロー情報の生成方法であって、
前記フロー情報は、パケット数の受信レート及びデータ量の受信レートを含み、
前記第2のステップは、前記演算装置が、前記解析処理において、前記パケット数の受信レート及び前記データ量の受信レートの少なくともいずれかのピーク値を算出するステップを含むことを特徴とするフロー情報の生成方法。
【請求項9】
請求項7に記載のフロー情報の生成方法であって、
前記フロー情報は、パケット数の受信レート及びデータ量の受信レートを含み、
前記第2のステップは、前記演算装置が、前記解析処理において、前記パケット数の受信レート及び前記データ量の受信レートの少なくともいずれかの分散値を算出するステップを含むことを特徴とするフロー情報の生成方法。
【請求項10】
請求項7に記載のフロー情報の生成方法であって、
前記フロー情報は、パケット数の受信レート及びデータ量の受信レートを含み、
前記第2のステップは、前記演算装置が、前記解析処理において、前記パケットの受信数の増加に起因するバースト及び受信するデータ量の増加に起因するバーストの少なくともいずれかの発生を検知し、発生回数をカウントするステップを含むことを特徴とするフロー情報の生成方法。
【請求項11】
請求項7に記載のフロー情報の生成方法であって、
前記フロー情報は、パケット数の受信レート及びデータ量の受信レートを含み、
前記第2のステップは、
前記演算装置が、パケットロス率を算出するステップと、
前記演算装置が、前記パケットロス率に基づいて、前記パケット数の受信レート及び前記データ量の受信レートを補正するステップと、
前記演算装置が、前記パケット数の受信レート及び前記データ量の受信レートを用いて前記解析処理を実行するステップと、を含むことを特徴とするフロー情報の生成方法。
【請求項12】
請求項7に記載のフロー情報の生成方法であって、
前記記憶装置は、前記第2時間範囲を含み、前記解析処理の処理内容を定義する設定情報を格納し、
前記第2のステップは、前記演算装置が、前記設定情報に基づいて、前記解析処理を実行するステップを含むことを特徴とするフロー情報の生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークのフローのフロー情報を収集する装置及びフロー情報の生成方法に関する。
【背景技術】
【0002】
ネットワークを監視する手段として、NetFlow(非特許文献1を参照)のモニタリング機能を備えたフロー情報収集装置が、中継装置から送信されるポートミラーリングパケットを収集してフロー情報を生成し、フロー情報をネットワークフロー解析装置(以下、アナライザと呼ぶ)に送信し、アナライザがネットワークフローを解析するシステムがある。
【0003】
上記構成によれば、ネットワーク上のトラフィックが統計情報に変換された後、NetFlowパケットとして送信されるため、アナライザの負荷を低減することができる。
【0004】
また、特許文献1には、NetFlow技術を用いずに、微小時間単位でパケットキャプチャの実施及び停止を切り替えることで、アナライザの負荷を低減しつつ大局的、及び局所的なトラフィックの帯域を同時に測定する方式が記載されている。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【非特許文献1】RFC3954 ”Cisco Systems NetFlow Services Export Version 9”,Cisco Systems,2004年10月
【発明の概要】
【発明が解決しようとする課題】
【0007】
NetFlow技術を用いたネットワークフロー監視システムの欠点として、フロー情報が集計期間単位でトラフィック量が平均化されるため、例えば、マイクロバーストのような局所的なフローの変化を捉えることができないことが挙げられる。
【0008】
解決策の一つとしては、集計期間を短くし、アナライザの解析の分解能を上げる方法が考えられる。しかし、送信するNetFlowパケット数が増大することによってアナライザの負荷が増大する。また、集計期間を過度に短くするとフロー収集効率が低下し、NetFlowの利点を損なう。
【0009】
特許文献1の方式では、(1)パケットキャプチャを一定期間停止するため、局所的なトラフィック量の変化を見逃す可能性があり、また、(2)アナライザが直接パケットキャプチャを行う構成であるため、トラフィック量の増加に伴ってアナライザの負荷が増大する、という課題が存在する。
【0010】
本発明は、アナライザによる大局的及び局所的なフローの変化の監視を実現するフロー情報を送信することを目的とする。
【課題を解決するための手段】
【0011】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、フロー情報を生成するフロー情報収集装置であって、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるネットワークインタフェースを備え、ネットワーク上のフローを監視するアナライザと通信可能に接続し、前記演算装置は、第1時間範囲単位で、通信の属性が共通するパケットを集約することによってフロー情報を生成し、前記第1時間範囲より小さい第2時間範囲で、前記フロー情報の生成に用いた複数の前記パケットを用いて局所的な前記フローの特性を解析する解析処理を繰り返し実行することによって、局所的な前記フローの特性を示す局所解析情報を生成し、前記フロー情報に付加し、前記局所解析情報が付加された前記フロー情報を含むNetFlowパケットを生成し、前記アナライザに前記NetFlowパケットを送信する。
【発明の効果】
【0012】
本発明の一形態によれば、大局的及び局所的なフローの特性を示す情報を格納したフロー情報をアナライザに送信することができる。これによって、アナライザは大局的及び局所的なフローの変化を監視できる。
【図面の簡単な説明】
【0013】
【
図1】実施例1のネットワークフロー監視システムの構成例を示す図である。
【
図2A】実施例1のフロー情報収集装置の構成例を示すブロック図である。
【
図2B】実施例1のフロー情報収集装置の構成例を示すブロック図である。
【
図3】実施例1の局所解析設定情報のデータ構造の一例を示す図である。
【
図4】実施例1のインタフェース統計情報のデータ構造の一例を示す図である。
【
図5A】実施例1のフロー情報DBのデータ構造の一例を示す図である。
【
図5B】実施例1のフロー情報DBのデータ構造の一例を示す図である。
【
図5C】実施例1のフロー情報DBのデータ構造の一例を示す図である。
【
図5D】実施例1のフロー情報DBのデータ構造の一例を示す図である。
【
図6】実施例1のフロー情報記録制御部が実行する処理の概要を説明するフローチャートである。
【
図7A】実施例1のフロー情報記録制御部が実行する局所解析処理の詳細を説明するフローチャートである。
【
図7B】実施例1のフロー情報記録制御部が実行する局所解析処理の詳細を説明するフローチャートである。
【
図8】実施例1のフロー情報記録制御部が実行する受信レートピーク解析処理の詳細を説明するフローチャートである。
【
図9】実施例1のフロー情報記録制御部が実行する受信レート分散解析処理の詳細を説明するフローチャートである。
【
図10】実施例1のフロー情報記録制御部が実行するバースト解析処理の詳細を説明するフローチャートである。
【
図11】実施例1のフロー情報記録制御部が実行する受信レート補正処理の詳細を説明するフローチャートである。
【
図12】実施例1のNetFlowパケット生成部が生成するNetFlowパケットに含まれるフロー情報のデータフォーマットの一例を示す図である。
【
図13】実施例1のフロー情報収集装置が実行するNetFlowパケットの送信処理の一例を説明するフローチャートである。
【
図14A】実施例1のアナライザの構成例を示すブロック図である。
【
図14B】実施例1のアナライザの構成例を示すブロック図である。
【
図15A】実施例1のフロー情報DBのデータ構造の一例を示す図である。
【
図15B】実施例1のフロー情報DBのデータ構造の一例を示す図である。
【
図16】実施例1のNetFlow可視化部が提示する情報の一例を示す図である。
【
図17】実施例2のネットワークフロー監視システムの構成例を示す図である。
【
図18】実施例3のネットワークフロー監視システムの構成例を示す図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施例について図面を用いて説明する。ただし、本実施例は本発明を実現するための一例にすぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【実施例0015】
図1は、実施例1のネットワークフロー監視システム100の構成例を示す図である。
【0016】
ネットワークフロー監視システム100は、中継装置103、フロー情報収集装置101、及びアナライザ102から構成される。
【0017】
中継装置103は、複数のネットワーク111-1、111-2、111-3、WAN112、及びフロー情報収集装置101と接続する。以下の説明では、ネットワーク111-1、111-2、111-3を区別しない場合、ネットワーク111と記載する。中継装置103は、ネットワーク111間、ネットワーク111及びWAN112間で送受信されるパケット120を中継する。また、中継装置103は、中継するパケット120を複製したポートミラーリングパケット121をフロー情報収集装置101に送信する。
【0018】
フロー情報収集装置101は、中継装置103及びアナライザ102と接続する。フロー情報収集装置101は、ポートミラーリングパケット121を用いてフロー情報及び局所解析情報を生成する。フロー情報収集装置101は、フロー情報を含むNetFlowパケット122をアナライザ102に送信する。なお、フロー情報収集装置101は、中継装置103の機能を有してもよい。
【0019】
アナライザ102は、NetFlowパケット122に含まれるフロー情報を用いてネットワークフローを解析する。
【0020】
図2A及び
図2Bは、実施例1のフロー情報収集装置101の構成例を示すブロック図である。
【0021】
まず、ハードウェア構成について説明する。フロー情報収集装置101は、演算装置201、主記憶装置202、補助記憶装置203、リアルタイムクロック204、入出力装置205、ネットワークインタフェース206-1、及びネットワークインタフェース206-2を有する。各ハードウェア要素はバス208を介して互いに接続される。
【0022】
演算装置201は、例えば、CPU(Central Processing Unit)等であり、主記憶装置202等に格納されるプログラムを実行する。演算装置201がプログラムにしたがって処理を実行することによって、特定の機能を実現する機能部(モジュール)として動作する。以下の説明では、機能部を主語に処理を説明する場合、演算装置201が機能部を実現するプログラムを実行していることを示す。
【0023】
なお、フロー情報収集装置101が有する各機能部については、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。
【0024】
主記憶装置202は、例えば、RAM(Random Access Memory)等であり、演算装置201が実行するプログラム及びプログラムが使用する情報を格納する。また、主記憶装置202はワークエリアとしても用いられる。実施例1の主記憶装置202は、各種機能を実現するプログラム群210を格納する。プログラム群210の詳細は後述する。
【0025】
補助記憶装置203は、例えば、ROM(Read Only Memory)、フラッシュメモリ、及びHDD(Hard Disk Drive)等であり、永続的にデータを格納する。実施例2の補助記憶装置203は、BOOT221及びコンフィグレーション222を格納する。BOOT221及びコンフィグレーション222の詳細は後述する。
【0026】
リアルタイムクロック204は、時刻情報を保持する。
【0027】
入出力装置205は、例えば、キーボード、マウス、タッチパネル、及びディスプレイ等である。なお、ネットワークを介して、フロー情報収集装置101を操作できる場合、フロー情報収集装置101は入出力装置205を有していなくてもよい。
【0028】
ネットワークインタフェース206-1は、中継装置103と通信するためのネットワークインタフェースである。フロー情報収集装置101は、ネットワークインタフェース206-1を介してポートミラーリングパケット121を受信する。ネットワークインタフェース206-2は、アナライザ102と通信するためのインタフェースである。以下の説明では、ネットワークインタフェース206-1、206-2を区別しない場合、ネットワークインタフェース206と記載する。
【0029】
次に、ソフトウェア構成について説明する。なお、
図2Bの実線は情報の入出力を表し、点線は情報の参照を表す。
【0030】
BOOT221は、フロー情報収集装置101の起動時に実行されるプログラムである。演算装置201は、補助記憶装置203からBOOT221を読み出し、主記憶装置202にロードし、実行する。BOOT221を実行する演算装置201は、補助記憶装置203に格納されるプログラム群210を主記憶装置202にロードし、実行する。なお、フロー情報収集装置101は、FTP(File Transfer Protocol)等を用いて、ネットワークインタフェース206を介して接続される外部の装置からプログラム群210を取得してもよい。
【0031】
コンフィグレーション222は、プログラム群210に含まれるプログラムを制御するための設定情報である。コンフィグレーション222には、例えば、局所解析設定情報241の初期値が格納される。この場合、演算装置201は、プログラム群210の起動時に、局所解析設定情報241に初期値を設定する。なお、コンフィグレーション222は、予め設定されていてもよいし、アナライザ102が設定してもよい。
【0032】
プログラム群210は、パケット受信部231、パケット判定部232、局所解析設定部233、フロー情報記録制御部234、統計情報収集部235、情報記録部236、フロー情報監視部237、NetFlowパケット生成部238、及びパケット送信部239を含む。
【0033】
情報記録部236は、各種情報を格納するデータストアを管理する。具体的には、情報記録部236は、局所解析設定情報241、フロー情報DB242、インタフェース統計情報243を管理する。局所解析設定情報241、フロー情報DB242、インタフェース統計情報243は、主記憶装置202に格納されてもよいし、補助記憶装置203に格納されてもよい。
【0034】
パケット受信部231は、ネットワークインタフェース206に到達したパケットの受信処理を実行する。
【0035】
パケット判定部232は、受信したパケットを判別し、振り分けを行う。具体的には、パケット判定部232は、ネットワークインタフェース206-1を介して受信したパケット(ポートミラーリングパケット121)である場合、フロー情報記録制御部234にパケットを出力し、ネットワークインタフェース206-2を介して受信したパケット(制御パケット)である場合、局所解析設定部233に受信したパケットを出力する。
【0036】
局所解析設定部233は、パケット判定部232から受信した制御パケットに基づいて、情報記録部236を介して、局所解析設定情報241を設定又は更新する。
【0037】
フロー情報記録制御部234は、パケット判定部232から受信したポートミラーリングパケット121からフロー情報に含める値を抽出し、情報記録部236を介して、抽出した値をフロー情報DB242の該当するフロー情報に記録する。また、フロー情報記録制御部234は、局所解析設定情報241を参照して、フロー情報に対して局所解析処理を実行し、情報記録部236を介して、処理結果をフロー情報DB242に記録する。
【0038】
統計情報収集部235は、ネットワークインタフェース206が保持する統計情報を周期的に取得し、情報記録部236を介して、インタフェース統計情報243に記録する。
【0039】
フロー情報監視部237は、フロー情報DB242から監視期間がタイムアウトしたフロー情報を取り出し、NetFlowパケット生成部238に出力する。
【0040】
NetFlowパケット生成部238は、フロー情報監視部237から受信したフロー情報を含むNetFlowパケット122を生成し、パケット送信部239に出力する。
【0041】
パケット送信部239は、ネットワークインタフェース206-2を介して、NetFlowパケット122をアナライザ102に送信する。
【0042】
図3は、実施例1の局所解析設定情報241のデータ構造の一例を示す図である。
【0043】
局所解析設定情報241は、局所解析有効化フラグ301、受信レート測定期間302、受信パケット数レート閾値303、及び受信バイト数レート閾値304を含む。
【0044】
局所解析有効化フラグ301は、局所解析に関する処理の有効及び無効を制御するフラグを設定するビット列である。局所解析有効化フラグ301には、4つのビット311、312、313、314を含む。各ビットには、有効を表す「1」及び無効を表す「0」のいずれかが設定される。
【0045】
受信レート測定期間302は、局所解析の処理単位となる時間幅(受信レートの測定期間)を格納するフィールドである。
【0046】
受信パケット数レート閾値303及び受信バイト数レート閾値304は、局所解析において使用する閾値を格納するフィールドである。
【0047】
ここで、局所解析有効化フラグ301にて管理する処理の概要を説明する。
【0048】
ビット311に対応する処理では、受信レート測定期間における受信パケット数のレートのピーク値及びピーク発生時刻と、受信レート測定期間における受信バイト数のレートのピーク値及びピーク発生時刻とを測定する。以下の説明では、ビット311に対応する処理を受信レートピーク解析処理と記載する。
【0049】
ビット312に対応する処理では、受信レート測定期間における受信パケット数及びバイト数の各々のレートの分散値を算出する。以下の説明では、ビット312に対応する処理を受信レート分散解析処理と記載する。
【0050】
ビット313に対応する処理では、受信レート測定期間における受信パケット数のレートの増加量が受信パケット数レート閾値を超過した回数と、受信レート測定期間における受信バイト数のレートの増加量が受信バイト数レート閾値を超過した回数とを測定する。以下の説明では、ビット313に対応する処理をバースト解析処理と記載する。
【0051】
ビット314に対応する処理では、受信レート測定期間におけるパケットロス率に応じて受信パケット数及びバイト数の各々のレートを補正する。以下の説明では、ビット314に対応する処理を受信レート補正処理と記載する。
【0052】
図4は、実施例1のインタフェース統計情報243のデータ構造の一例を示す図である。
【0053】
インタフェース統計情報243は、テーブル形式の情報であり、インタフェース番号401、受信パケット数402、及びパケットロス数403を含むエントリを格納する。一つのエントリが一つのネットワークインタフェース206に対応する。なお、エントリに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
【0054】
インタフェース番号401は、ネットワークインタフェース206を一意に識別するための番号を格納するフィールドである。当該番号は、インタフェースの種別を管理するために予め割り当てられている。
【0055】
受信パケット数402及びパケットロス数403は、ネットワークインタフェース206が計測し、管理する統計値を格納するフィールドである。なお、前述した統計値は一例でありこれに限定されない。例えば、エントリは、受信バイト数及び送信パケット数等を格納するフィールドを含んでもよい。
【0056】
【0057】
図5Aに示すように、フロー情報DB242はフローエントリ501を格納する。
図5Aのフロー情報DB242にはN個のフローエントリ501が格納される。一つのエントリが一つのフロー情報に対応する。
【0058】
フローエントリ501は、フロー識別子情報511及び統計情報512を含む。
【0059】
フロー識別子情報511は、フローを識別するための情報を格納するフィールド群である。
図5Bに示すように、フロー識別子情報511は、宛先IPアドレス521、送信元IPアドレス522、プロトコル番号523、宛先ポート番号524、及び送信元ポート番号525を含む。なお、フロー識別子情報511に含まれるフィールドは一例であってこれに限定されない。例えば、VLAN-ID情報及びMACアドレス情報等を含んでもよい。
【0060】
統計情報512は、フローに関する情報を格納するフィールド群である。
図5Cに示すように、統計情報512は、受信パケット数531、受信バイト数532、タイムアウト時間533、及び局所解析情報534を含む。
【0061】
受信パケット数531及び受信バイト数532には、フローエントリ501がフロー情報DB242に登録されてからタイムアウト時間533に設定された時間が経過するまでに受信したパケットの数及びバイト数の集計値が格納される。
【0062】
タイムアウト時間533には、例えば、リアルタイムクロック204から取得した現時刻と、現時刻からフロー監視期間(n秒)経過後の時刻とが格納される。なお、フロー監視期間は、例えば、コンフィグレーション222で定義される。
【0063】
局所解析情報534は、局所解析の実行に必要な一時情報、及び処理結果を格納するフィールド群である。
図5Dに示すように、局所解析情報534は、共通情報を構成するフィールド群、受信レートピーク解析情報を構成するフィールド群、受信レート分散解析情報を構成するフィールド群、バースト解析情報を構成するフィールド群を含む。
【0064】
共通情報は、開始時刻53401、局所受信パケット数53402、局所受信バイト数53403、統計受信パケット数53404、統計パケットロス数53405、受信パケット数レート53406、及び受信バイト数レート53407を含む。受信パケット数レート53406は、パケット数の受信レートを格納するフィールドである。受信バイト数レート53407は、データ量の受信レートを格納するフィールドである。
【0065】
受信レートピーク解析情報は、ビット311に「1」が設定されている場合に実行される受信レートピーク解析処理において使用されるフィールド群であり、受信パケット数ピークレート53408、受信パケット数ピーク時刻53409、受信バイト数ピークレート53410、及び受信バイト数ピーク時刻53411を含む。受信パケット数ピークレート53408は、パケット数の受信レートのピーク値を格納するフィールドである。受信バイト数ピークレート53410は、データ量の受信レートのピーク値を格納するフィールドである。
【0066】
受信レート分散解析情報は、ビット312に「1」が設定されている場合に実行される受信レート分散解析処理において使用されるフィールド群であり、受信パケット数レート分散値53412、受信バイト数レート分散値53413、受信パケット数レート平均値53414、受信パケット数レート測定回数53415、受信バイト数レート平均値53416、及び受信バイト数レート測定回数53417を含む。受信パケット数レート分散値53412は、パケット数の受信レートの分散値を格納するフィールドである。受信バイト数レート分散値53413は、データ量の受信レートの分散値を格納するフィールドである。
【0067】
バースト解析情報は、ビット313に「1」が設定されている場合に実行されるバースト解析処理において使用されるフィールド群であり、受信パケット数バースト発生回数53418、受信バイト数バースト発生回数53419、受信パケット数レート前回値53420、及び受信バイト数レート前回値53421を含む。受信パケット数バースト発生回数53418は、局所的なパケット数の増加に起因したマイクロバーストの発生回数を格納するフィールドである。受信バイト数バースト発生回数53419は、局所的なデータ量の増加に起因したマイクロバーストの発生回数を格納するフィールドである。
【0068】
図6は、実施例1のフロー情報記録制御部234が実行する処理の概要を説明するフローチャートである。
【0069】
フロー情報記録制御部234は、パケット判定部232から受信パケット(ポートミラーリングパケット121)を取得した場合(ステップS601)、受信パケットからフロー識別子情報を抽出する(ステップS602)。
【0070】
フロー情報記録制御部234は、フロー情報DB242を参照し、抽出したフロー識別子情報に一致するフローエントリ501を検索し(ステップS603)、当該フローエントリ501が存在するか否かを判定する(ステップS604)。
【0071】
抽出したフロー識別子情報に一致するフローエントリ501が存在する場合(ステップS604がYES)、フロー情報記録制御部234は、当該フローエントリ501を更新し(ステップS605)、その後、ステップS607に進む。
【0072】
具体的には、フロー情報記録制御部234は、フローエントリ501の受信パケット数531に1を加算し、受信バイト数532に受信パケットのバイト数を加算する。
【0073】
抽出したフロー識別子情報に一致するフローエントリ501が存在しない場合(ステップS604がNO)、フロー情報記録制御部234は、フロー情報DB242にフローエントリ501を登録し(ステップS606)、その後、ステップS607に進む。
【0074】
具体的には、フロー情報記録制御部234は、新規のフローエントリ501をフロー情報DB242に追加し、追加されたフローエントリ501のフロー識別子情報511に抽出されたフロー識別子情報を設定する。フロー情報記録制御部234は、追加されたフローエントリ501の受信パケット数531に1を設定し、受信バイト数532に受信パケットのバイト数を設定する。フロー情報記録制御部234は、現時刻に基づいてタイムアウト時間を算出し、追加されたフローエントリ501のタイムアウト時間533に設定する。
【0075】
ステップS607では、フロー情報記録制御部234は、局所解析処理を実行し(ステップS607)、その後、処理を終了する。
【0076】
図7A及び
図7Bは、実施例1のフロー情報記録制御部234が実行する局所解析処理の詳細を説明するフローチャートである。
【0077】
フロー情報記録制御部234は、局所解析処理を開始できるか否かを判定する(ステップS701)。
【0078】
具体的には、フロー情報記録制御部234は、フローエントリ501の開始時刻53401に時刻が設定され、かつ、受信パケットの受信時刻が開始時刻に受信レート測定期間302に設定された期間を加算した時刻を経過しているか否かを判定する。二つの条件を満たす場合、フロー情報記録制御部234は、局所解析処理を開始できると判定する。本実施例では、フロー情報収集装置101は、フロー監視期間において、当該フロー監視期間より短い期間で局所解析処理を繰り返し実行する。
【0079】
局所解析処理を開始できない場合(ステップS701がNO)、フロー情報記録制御部234は、ステップS712に進む。
【0080】
局所解析処理を開始できる場合(ステップS701がYES)は、フロー情報記録制御部234は、受信パケット数レート及び受信バイト数レートを算出する(ステップS702)。
【0081】
具体的には、フロー情報記録制御部234は、フローエントリ501の局所受信パケット数53402及び局所受信バイト数53403の値を用いて、受信レート測定期間における受信パケット数レート及び受信バイト数レートを算出する。フロー情報記録制御部234は、算出された値を受信パケット数レート53406及び受信バイト数レート53407に設定する。本実施例では、単位時間が1秒であるものとして各レートを算出するものとする。なお、受信レート測定期間を単位時間として扱ってもよい。
【0082】
フロー情報記録制御部234は、受信レート補正処理のビット314が有効化されているか否かを判定する(ステップS703)。
【0083】
具体的には、フロー情報記録制御部234は、局所解析設定情報241を参照し、ビット314の値が「1」であるか否かを判定する。ビット314の値が「1」である場合、フロー情報記録制御部234は、受信レート補正処理のフラグが有効化されていると判定する。
【0084】
受信レート補正処理のビット314が有効化されていない場合(ステップS703がNO)、フロー情報記録制御部234はステップS705に進む。
【0085】
受信レート補正処理のビット314が有効化されている場合(ステップS703がYES)、フロー情報記録制御部234は、受信レート補正処理を実行し(ステップS704)、その後、ステップS705に進む。
【0086】
ステップS705では、フロー情報記録制御部234は、受信レートピーク解析処理のビット311が有効化されているか否かを判定する(ステップS705)。
【0087】
具体的には、フロー情報記録制御部234は、局所解析設定情報241を参照し、ビット311の値が「1」であるか否かを判定する。ビット311の値が「1」である場合、フロー情報記録制御部234は、受信レートピーク解析処理のビット311が有効化されていると判定する。
【0088】
受信レートピーク解析処理のビット311が有効化されていない場合(ステップS705がNO)、フロー情報記録制御部234はステップS707に進む。
【0089】
受信レートピーク解析処理のビット311が有効化されている場合(ステップS705がYES)、フロー情報記録制御部234は、受信レートピーク解析処理を実行し(ステップS706)、その後、ステップS707に進む。
【0090】
ステップS707では、フロー情報記録制御部234は、受信レート分散解析処理のビット312が有効化されているか否かを判定する(ステップS707)。
【0091】
具体的には、フロー情報記録制御部234は、局所解析設定情報241を参照し、ビット312の値が「1」であるか否かを判定する。ビット312の値が「1」である場合、フロー情報記録制御部234は、受信レート分散解析処理のビット312が有効化されていると判定する。
【0092】
受信レート分散解析処理のビット312が有効化されていない場合(ステップS707がNO)、フロー情報記録制御部234はステップS709に進む。
【0093】
受信レート分散解析処理のビット312が有効化されている場合(ステップS707がYES)、フロー情報記録制御部234は、受信レート分散解析処理を実行し(ステップS708)、その後、ステップS709に進む。
【0094】
ステップS709では、フロー情報記録制御部234は、バースト解析処理のビット313が有効化されているか否かを判定する(ステップS709)。
【0095】
具体的には、フロー情報記録制御部234は、局所解析設定情報241を参照し、ビット313の値が「1」であるか否かを判定する。ビット313の値が「1」である場合、フロー情報記録制御部234は、バースト解析処理のビット313が有効化されていると判定する。
【0096】
バースト解析処理のビット313が有効化されていない場合(ステップS709がNO)、フロー情報記録制御部234はステップS711に進む。
【0097】
バースト解析処理のビット313が有効化されている場合(ステップS709がYES)、フロー情報記録制御部234は、バースト解析処理を実行し(ステップS710)、その後、ステップS711に進む。
【0098】
ステップS711では、フロー情報記録制御部234は、共通情報の開始時刻53401、局所受信パケット数53402、及び局所受信バイト数53403を初期化し(ステップS711)、その後、ステップS712に進む。
【0099】
ステップS712では、フロー情報記録制御部234は、開始時刻が未登録であるか否かを判定する(ステップS712)。
【0100】
具体的には、フロー情報記録制御部234は、共通情報の開始時刻53401に値が設定されているか否かを判定する。
【0101】
開始時刻が登録されている場合(ステップS712がNO)、フロー情報記録制御部234はステップS715に進む。
【0102】
開始時刻が未登録である場合(ステップS712がYES)、フロー情報記録制御部234は、共通情報の開始時刻53401に現時刻を設定する(ステップS713)。また、フロー情報記録制御部234は、インタフェース統計情報243を参照し、ネットワークインタフェース206-1に対応するエントリの受信パケット数402及びパケットロス数403の値を取得し、共通情報の統計受信パケット数53404及び統計パケットロス数53405に設定する(ステップS714)。その後、フロー情報記録制御部234はステップS715に進む。
【0103】
ステップS715では、フロー情報記録制御部234は、共通情報の局所受信パケット数53402及び局所受信バイト数53403を更新する(ステップS715)。その後、フロー情報記録制御部234は局所解析処理を終了する。
【0104】
具体的には、フロー情報記録制御部234は、局所受信パケット数53402に1を加算し、局所受信バイト数53403に受信パケットのバイト数を加算する。
【0105】
図8は、実施例1のフロー情報記録制御部234が実行する受信レートピーク解析処理の詳細を説明するフローチャートである。
【0106】
フロー情報記録制御部234は、受信パケット数レート53406の値が受信パケット数ピークレート53408の値より大きいか否かを判定する(ステップS801)。
【0107】
受信パケット数レート53406の値が受信パケット数ピークレート53408の値以下の場合(ステップS801がNO)、フロー情報記録制御部234はステップS803に進む。
【0108】
受信パケット数レート53406の値が受信パケット数ピークレート53408の値より大きい場合(ステップS801がYES)、フロー情報記録制御部234は、受信パケット数ピークレート53408を更新し(ステップS802)、その後、ステップS803に進む。
【0109】
具体的には、フロー情報記録制御部234は、受信パケット数ピークレート53408に受信パケット数レート53406の値を設定し、また、受信パケット数ピーク時刻53409にリアルタイムクロック204から取得した現時刻を設定する。
【0110】
ステップS803では、フロー情報記録制御部234は、受信バイト数レート53407の値が受信バイト数ピークレート53410の値より大きいか否かを判定する(ステップS803)。
【0111】
受信バイト数レート53407の値が受信バイト数ピークレート53410の値以下の場合(ステップS803がNO)、フロー情報記録制御部234は受信レートピーク解析処理を終了する。
【0112】
受信バイト数レート53407の値が受信バイト数ピークレート53410の値より大きい場合(ステップS803がYES)、フロー情報記録制御部234は、受信バイト数ピークレート53410を更新し(ステップS804)、その後、受信レートピーク解析処理を終了する。
【0113】
具体的には、フロー情報記録制御部234は、受信バイト数ピークレート53410に受信バイト数レート53407の値を設定し、受信バイト数ピーク時刻53411にリアルタイムクロック204から取得した現時刻を設定する。
【0114】
図9は、実施例1のフロー情報記録制御部234が実行する受信レート分散解析処理の詳細を説明するフローチャートである。
【0115】
フロー情報記録制御部234は、受信パケット数レート平均値を算出する(ステップS901)。例えば、式(1)に示す逐次更新式を用いて受信パケット数レート平均値を算出する。
【0116】
【0117】
ここで、nは受信パケット数レート測定回数53415の値であり、xn+1は受信パケット数レート53406の値であり、μnは受信パケット数レート平均値53414の値であり、μn+1はステップS901において算出する受信パケット数レート平均値である。
【0118】
フロー情報記録制御部234は、受信パケット数レート分散値を算出する(ステップS902)。例えば、式(2)の逐次更新式を用いて受信パケット数レート分散値を算出する。
【0119】
【0120】
ここで、nは受信パケット数レート測定回数53415の値であり、xn+1は受信パケット数レート53406の値であり、μnは受信パケット数レート平均値53414の値であり、μn+1はステップS901において算出する受信パケット数レート平均値であり、σn
2は受信パケット数レート分散値53412の値であり、σn+1
2はステップS902において算出される受信パケット数レート分散値である。
【0121】
フロー情報記録制御部234は、局所解析情報534の受信パケット数レート平均値53414及び受信パケット数レート分散値53412を更新する(ステップS903)。
【0122】
具体的には、フロー情報記録制御部234は、受信パケット数レート平均値53414にステップS901で算出された値を設定し、受信パケット数レート分散値53412にステップS902で算出された値を設定する。
【0123】
フロー情報記録制御部234は、受信パケット数レートの測定回数をカウントアップする(ステップS904)。
【0124】
具体的には、フロー情報記録制御部234は、受信パケット数レート測定回数53415の値に1を加算する。
【0125】
フロー情報記録制御部234は、受信バイト数レート平均値を算出する(ステップS905)。例えば、式(1)と同様の逐次更新式を用いて受信バイト数レート平均値を算出する。ただし、nは受信バイト数レート測定回数53417の値であり、xn+1は受信バイト数レート53407の値であり、μnは受信バイト数レート平均値53416の値であり、μn+1はステップS905において算出する受信バイト数レート平均値である。
【0126】
フロー情報記録制御部234は、受信バイト数レート分散値を算出する(ステップS906)。例えば、式(2)と同様の逐次更新式を用いて受信バイト数レート分散値を算出する。ただし、nは受信バイト数レート測定回数53417の値であり、xn+1は受信バイト数レート53407の値であり、μnは受信バイト数レート平均値53416の値であり、μn+1はステップS905において算出された受信バイト数レート平均値であり、σn
2は受信バイト数レート分散値53413の値であり、σn+1
2はステップS905において算出される受信バイト数レート分散値である。
【0127】
フロー情報記録制御部234は、局所解析情報534の受信バイト数レート平均値53416及び受信バイト数レート分散値53413を更新する(ステップS907)。
【0128】
具体的には、フロー情報記録制御部234は、受信バイト数レート平均値53416にステップS905で算出された値を設定し、受信バイト数レート分散値53413にステップS906で算出された値を設定する。
【0129】
フロー情報記録制御部234は、受信バイト数レートの測定回数をカウントアップし(ステップS908)、その後、受信レート分散解析処理を終了する。
【0130】
具体的には、フロー情報記録制御部234は、受信バイト数レート測定回数53417の値に1を加算する。
【0131】
図10は、実施例1のフロー情報記録制御部234が実行するバースト解析処理の詳細を説明するフローチャートである。
【0132】
フロー情報記録制御部234は、受信パケット数レート前回値53420及び受信バイト数レート前回値53421に値が登録されているか否かを判定する(ステップS1001)。
【0133】
受信パケット数レート前回値53420及び受信バイト数レート前回値53421に値が登録されていない場合(ステップS1001がNO)、フロー情報記録制御部234は、受信パケット数レート前回値53420及び受信バイト数レート前回値53421を更新し(ステップS1006)、バースト解析処理を終了する。
【0134】
具体的には、フロー情報記録制御部234は、受信パケット数レート前回値53420及び受信バイト数レート前回値53421の各々に、受信パケット数レート53406及び受信バイト数レート53407の値を設定する。
【0135】
受信パケット数レート前回値53420及び受信バイト数レート前回値53421に値が登録されている場合(ステップS1001がYES)、フロー情報記録制御部234は、受信パケット数レートの変化量が閾値より大きいか否かを判定する(ステップS1002)。
【0136】
具体的には、フロー情報記録制御部234は、受信パケット数レート53406の値から受信パケット数レート前回値53420の値を減算し、当該値が受信パケット数レート閾値303の値より大きいか否かを判定する。
【0137】
受信パケット数レートの変化量が閾値以下の場合(ステップS1002がNO)、フロー情報記録制御部234はステップS1004に進む。
【0138】
受信パケット数レートの変化量が閾値より大きい場合(ステップS1002のYes)、フロー情報記録制御部234は、受信パケット数の増加に伴うバーストが発生したと判定し、受信パケット数のバースト発生回数をカウントアップし(ステップS1003)、ステップS1004に進む。
【0139】
具体的には、フロー情報記録制御部234は、受信パケット数バースト発生回数53418の値に1を加算する。
【0140】
ステップS1004では、フロー情報記録制御部234は、受信バイト数レートの変化量が閾値より大きいか否かを判定する(ステップS1004)。
【0141】
具体的には、フロー情報記録制御部234は、受信バイト数レート53407の値から受信バイト数レート前回値53421の値を減算し、当該値が受信バイト数レート閾値304の値より大きいか否かを判定する。
【0142】
受信バイト数レートの変化量が閾値以下の場合(ステップS1004がNO)、フロー情報記録制御部234はステップS1006に進む。
【0143】
受信バイト数レートの変化量が閾値より大きい場合(ステップS1004がYES)、フロー情報記録制御部234は、受信バイト数の増加に伴うバーストが発生したと判定し、受信バイト数のバースト発生回数をカウントアップし(ステップS1005)、その後、ステップS1006に進む。
【0144】
具体的には、フロー情報記録制御部234は、受信バイト数バースト発生回数53419の値に1を加算する。
【0145】
ステップS1006では、フロー情報記録制御部234は、受信パケット数レート前回値53420及び受信バイト数レート前回値53421を更新し(ステップS1006)、バースト解析処理を終了する。
【0146】
具体的には、フロー情報記録制御部234は、受信パケット数レート前回値53420及び受信バイト数レート前回値53421の各々に、受信パケット数レート53406及び受信バイト数レート53407の値を設定する。
【0147】
図11は、実施例1のフロー情報記録制御部234が実行する受信レート補正処理の詳細を説明するフローチャートである。
【0148】
実施例1では、フロー情報収集装置101は、収集性能を超過したポートミラーリングパケット121が送信された場合における負荷制御の手法として、ネットワークインタフェース206で確率的にパケットの廃棄を行うRED(Random Early Detection)を採用しているものとする。
【0149】
フロー情報記録制御部234は、インタフェース統計情報243から、ポートミラーリングパケット121を受信するネットワークインタフェース206の受信パケット数及び統計パケットロス数を取得する(ステップS1101)。
【0150】
具体的には、フロー情報記録制御部234は、インタフェース統計情報243を参照し、インタフェース番号401にポートミラーリングパケット121を受信するネットワークインタフェース206の識別番号が格納されるエントリを検索する。フロー情報記録制御部234は、検索されたエントリの受信パケット数402及びパケットロス数403の値を取得する。
【0151】
フロー情報記録制御部234は、パケットロス数が統計パケットロス数より大きいか否かを判定する(ステップS1102)。
【0152】
具体的には、フロー情報記録制御部234は、パケットロス数403の値が統計パケットロス数53405より大きいか否かを判定する。
【0153】
パケットロス数が統計パケットロス数以下である場合(ステップS1102がNO)、フロー情報記録制御部234は受信レート補正処理を終了する。
【0154】
パケットロス数が統計パケットロス数より大きい場合(ステップS1102がYES)、フロー情報記録制御部234は、フロー情報収集装置101全体のパケットロス率を算出する(ステップS1103)。例えば、式(3)を用いてパケットロス率を算出する。
【0155】
【0156】
ここで、Pは受信パケット数402の値から統計受信パケット数53404の値を減算した値であり、PDはパケットロス数403の値から統計パケットロス数53405の値を減算した値であり、Lはフロー情報収集装置101全体のパケットロス率である。
【0157】
フロー情報記録制御部234は、受信パケットが属するフローのパケットロス率を算出する(ステップS1104)。
【0158】
ネットワークインタフェース206-1ではREDによるパケットの廃棄を行うことから、全てのフローはフロー情報収集装置101全体のパケットロス率と同じ割合でパケットの欠落が発生しているとみなすことができる。そのため、フローのパケットロス率は式(4)のように与えられる。
【0159】
【0160】
ここで、Lflowは受信パケットが属するフローのパケットロス率である。
【0161】
フロー情報記録制御部234は、受信パケット数レート及び受信バイト数レートを補正し(ステップS1105)、その後、受信レート補正処理を終了する。
【0162】
例えば、フロー情報記録制御部234は、式(5)を用いて、補正された受信パケット数レートを算出し、式(6)を用いて、補正された受信バイト数レートを算出する。フロー情報記録制御部234は、算出された受信パケット数レート及び受信バイト数レートを、受信パケット数レート53406及び受信バイト数レート53407に格納する。
【0163】
【0164】
【0165】
ここで、式(5)のRpkt_flowは補正前の受信パケット数レート(受信パケット数レート53406の値)であり、R’pkt_flowは補正後の受信パケット数レートであり、Lflowはフローのパケットロス率である。式(6)のPflowは局所受信パケット数53402の値であり、Bflowは局所受信バイト数53403の値であり、R’pkt_flowは補正後の受信パケット数レートであり、R’Byte_flowは補正後の受信バイト数レートである。
【0166】
図12は、実施例1のNetFlowパケット生成部238が生成するNetFlowパケット122に含まれるフロー情報のデータフォーマットの一例を示す図である。
【0167】
NetFlowパケット122には、Data FlowSet1200としてフロー情報が含まれる。Data FlowSet1200の先頭4バイトは、FlowSet IDとData FlowSetのデータ長を格納する。
【0168】
以降は、アナライザ102へ通知するData FlowSet1200のフィールドと、各フィールドに格納する情報について説明する。
【0169】
宛先IPアドレス1201、送信元IPアドレス1202、宛先ポート番号1203、送信元ポート番号1204、及びプロトコル番号1215の各々には、フロー識別子情報511の宛先IPアドレス521、送信元IPアドレス522、プロトコル番号523、宛先ポート番号524、及び送信元ポート番号525の値が格納される。
【0170】
受信パケット数1205及び受信バイト数1206の各々には、統計情報503の受信パケット数531及び受信バイト数532の値が格納される。
【0171】
受信パケット数ピークレート1207、受信パケット数ピーク時刻1208、受信バイト数ピークレート1209、及び受信バイト数ピーク時刻1210の各々には、局所解析情報534の受信パケット数ピークレート53408、受信パケット数ピーク時刻53409、受信バイト数ピークレート53410、及び受信バイト数ピーク時刻53411の値が格納される。
【0172】
受信パケット数レート分散値1211及び受信バイト数レート分散値1212の各々には、局所解析情報534の受信パケット数レート分散値53412及び受信バイト数レート分散値53413の値が格納される。
【0173】
受信パケット数バースト発生回数1213及び受信バイト数バースト発生回数1214の各々には、局所解析情報534の受信パケット数バースト発生回数53418及び受信バイト数バースト発生回数53419の値が格納される。
【0174】
なお、受信パケット数ピークレート1207から受信バイト数バースト発生回数1214までのフィールドについては、フィールドタイプ値を標準規格外の値を新規に設定した独自拡張である。そのため、独自拡張のフィールドに関しては、標準規格外の範囲で本実施例以外のフィールドタイプ値を設定してもよいし、フィールド長も、例えば8バイトのように変更してもよい。
【0175】
また、Data FlowSet1200は、必ずしも
図12に示したデータフォーマットに限定されない。例えば、受信レート分散解析処理のビット312が無効である場合、受信パケット数レート分散値1211及び受信バイト数レート分散値1212のフィールドを省略したフォーマットでもよい。
【0176】
図13は、実施例1のフロー情報収集装置101が実行するNetFlowパケット122の送信処理の一例を説明するフローチャートである。
【0177】
フロー情報収集装置101は周期的にNetFlowパケット122の送信処理を実行する。
図13では、一つのフローに対するNetFlowパケット122の送信処理を説明する。フロー情報DB242に複数のフローエントリ501が存在する場合、各フローエントリ501について同一の処理が実行される。
【0178】
フロー情報監視部237は、フロー情報DB242に登録されているフローエントリ501のタイムアウト時間533の値(タイムアウト時間)を取得し(ステップS1301)、タイムアウト時間を経過しているか否かを判定する(ステップS1302)。
【0179】
タイムアウト時間を経過していない場合(ステップS1302がNO)、フロー情報監視部237はNetFlowパケット122の送信処理を終了する。
【0180】
タイムアウト時間を経過している場合(ステップS1302がYES)、フロー情報監視部237は、フローエントリ501のフロー識別子情報511及び統計情報512の値を取得し(ステップS1303)、NetFlowパケット生成部238に出力する。また、フロー情報監視部237は、フローエントリ501のフロー識別子情報511及び統計情報512を初期化し(ステップS1304)、フロー情報DB242からフローエントリ501を削除する(ステップS1305)。
【0181】
NetFlowパケット生成部238は、フロー情報監視部237から受信したフロー識別子情報及び統計情報に基づいてData FlowSet1200を含むNetFlowパケット122を生成し(ステップS1306)、パケット送信部239に出力する。Data FlowSet1200のフォーマットは
図12に示すとおりである。
【0182】
パケット送信部239は、NetFlowパケット生成部238から受信したNetFlowパケット122を、ネットワークインタフェース206-2を介してアナライザ102に送信し(ステップS1307)、送信完了をフロー情報監視部237に通知する。フロー情報監視部237は、当該通知を受信した後、NetFlowパケット122の送信処理を終了する。
【0183】
図14A及び
図14Bは、実施例1のアナライザ102の構成例を示すブロック図である。
【0184】
まず、ハードウェアの構成について説明する。アナライザ102は、演算装置1401、主記憶装置1402、補助記憶装置1403、リアルタイムクロック1404、入出力装置1405、及びネットワークインタフェース1406を有する。各ハードウェア要素はバス1408を介して互いに接続される。
【0185】
演算装置1401、主記憶装置1402、補助記憶装置1403、リアルタイムクロック1404、入出力装置1405、及びネットワークインタフェース1406は、演算装置201、主記憶装置202、補助記憶装置203、リアルタイムクロック204、入出力装置205、及びネットワークインタフェース206と同一のものである。
【0186】
次に、ソフトウェアの構成要素について説明する。なお、図中の実線は情報の入出力を表し、点線は情報の参照を表す。
【0187】
BOOT1421はアナライザ102の起動時に実行されるプログラムである。コンフィグレーション1422は、プログラム群1411に含まれるプログラムを制御するための設定情報である。コンフィグレーション1422には、例えば、NetFlow閾値監視部1434、NetFlow可視化部1435、制御パケット生成部1436等の制御情報を含む。コンフィグレーション1422は、予め補助記憶装置1403に格納されてもよいし、入出力装置1405を介して外部から設定してもよい。
【0188】
OS(Operating System)1410は、補助記憶装置1403に格納されており、BOOT1421が主記憶装置1402にOS1410を展開し、実行する。
【0189】
プログラム群1411は、フロー情報収集装置101から受信したNetFlowパケット122を解析する機能を実現するプログラムを含む。プログラム群1411は、補助記憶装置1403に格納されており、OS1410が主記憶装置1402に展開し、実行する。なお、BOOT1421が主記憶装置1402にプログラム群1411を展開し、実行してもよい。
【0190】
プログラム群1411は、パケット受信部1431、NetFlow情報記録制御部1432、情報記録部1433、NetFlow閾値監視部1434、NetFlow可視化部1435、制御パケット生成部1436、及びパケット送信部1437を含む。
【0191】
情報記録部1433は、各種情報を格納するデータストアを管理する。具体的には、情報記録部1433はフロー情報DB1441を管理する。フロー情報DB1441は、主記憶装置1402に格納されてもよいし、補助記憶装置1403に格納されてもよい。
【0192】
パケット受信部1431は、ネットワークインタフェース1406に到達したNetFlowパケット122を受信し、NetFlow情報記録制御部1432に出力する。
【0193】
NetFlow情報記録制御部1432は、NetFlowパケット122からフロー情報を抽出し、受信時刻とともにフロー情報DB1441に記録する。
【0194】
NetFlow閾値監視部1434は、フロー情報に基づいて、フローのトラフィック量を監視し、予め設定された閾値との比較結果に基づいて、トラフィックの増加を検知する。閾値は、例えば、コンフィグレーション1422で与えられてもよい。
【0195】
NetFlow可視化部1435は、フロー情報DB1441に格納されるフロー情報に基づいて、入出力装置1405を介して、フローに関する情報を提示する。例えば、各フローのトラフィック量の時間推移を示すグラフが提示される。なお、本実施例では出力先を入出力装置1405としているが、パケット送信部1437及びネットワークインタフェース1406を介して、HTTP等の通信によって外部装置へ出力する構成でもよい。
【0196】
制御パケット生成部1436は、フロー情報収集装置101の局所解析を制御するための設定情報を含む制御パケットを生成し、パケット送信部1437に出力する。制御パケットに含める設定情報は、コンフィグレーション1422で与えてもよいし、入出力装置1405を介して外部から与えてもよい。また、制御パケット生成部1436の動作契機は、例えば、入出力装置1405によって与えられてもよい。
【0197】
パケット送信部1437は、制御パケット生成部1436が生成した制御パケットを受け取り、ネットワークインタフェース1406を介してフロー情報収集装置101に送信する。
【0198】
図15A及び
図15Bは、実施例1のフロー情報DB1441のデータ構造の一例を示す図である。
【0199】
フロー情報DB1441は、テーブル形式の情報であり、ID1501、受信時刻1502、フロー情報収集装置IPアドレス1503、フロー識別子情報1504、及び統計情報1505を含むエントリを格納する。一つのエントリは、NetFlowパケット122に含まれるData FlowSet1200に対応する。
【0200】
ID1501は、エントリの識別情報を格納するフィールドである。受信時刻1502は、NetFlowパケット122を受信した時刻を格納するフィールドである。フロー情報収集装置IPアドレス1503は、NetFlowパケット122を送信したフロー情報収集装置101のIPアドレスを格納するフィールドである。
【0201】
フロー識別子情報1504は、Data FlowSet1200に含まれるフロー識別子情報を格納するフィールド群である。例えば、宛先IPアドレス1201及び送信元IPアドレス1202等の値が格納される。
【0202】
統計情報1505は、Data FlowSet1200に含まれる統計情報を格納するフィールド群である。例えば、受信パケット数1205、受信バイト数1206、受信パケット数ピークレート1207、受信バイト数ピークレート1209、受信バイト数ピーク時刻1210、受信パケット数バースト発生回数1213、及び受信バイト数バースト発生回数1214等の値が格納される。
【0203】
図16は、実施例1のNetFlow可視化部1435が提示する情報の一例を示す図である。
【0204】
NetFlow可視化部1435は、バースト発生の検知結果として表示画面1600を提示する。表示画面1600には、あるフローに対して単位時間ごとの平均受信レート及びピーク受信レートの推移を表すグラフが表示されており、横軸は時刻、縦軸は受信レートである。単位時間は、例えばコンフィグレーション1422によって与えられる。
図16の表示例では、単位時間を30秒に設定している。なお、単位時間は必ずしもフロー情報収集装置101のフロー監視期間と一致させる必要はなく、フロー監視期間より長い時間を設定してもよい。
【0205】
NetFlow可視化部1435は、フロー情報DB1441に記録されているフロー情報のうち、単位時間内に記録された同一フローのエントリの受信バイト数を積算し、単位時間で除算することで平均受信レートを算出する。
【0206】
NetFlow可視化部1435は、フロー情報DB1441に記録されているフロー情報のうち、単位時間内に記録された同一フローエントリの受信バイト数ピークレートを取得し、最大の受信バイト数ピークレートをピーク受信レートとして採用する。また、NetFlow可視化部1435最大の受信バイト数ピークレートが発生した受信バイト数ピーク時刻を取得し、グラフに表示してもよい。
【0207】
NetFlow閾値監視部1434によるバースト検知では、バーストが発生したと判定するための受信レートをバースト検知閾値として事前に設定し、受信バイト数ピークレートが閾値を超過した場合にバーストの発生と判定する。バースト検知閾値は、例えばコンフィグレーション1422によって与えられる。なお、
図16では、点線1601がバースト検知閾値を表す。
【0208】
バースト発生を検知した場合、例えば、NetFlow可視化部1435はバースト発生を通知する警告を表示してもよい。また、本実施例ではアナライザ102がフロー情報収集装置101以外と接続しない構成としているが、例えばアナライザ102と通信を行う制御装置に対し、バースト検知を表す通知パケットを、Syslog等で送信してもよい。
【0209】
実施例1によれば、フロー情報収集装置101は、フロー情報の収集中に、微小時間範囲の解析を行うことによって、局所的なフローの変化を示す局所解析情報を生成し、フロー情報に付与することができる。これによって、アナライザ102は、従来のフロー情報では把握できなかった、マイクロバースト等の局所的なフローの変化を監視できる。なお、情報の生成に伴うアナライザ102の処理負荷は増大しない。
【0210】
なお、局所解析処理では、受信パケット数及び受信バイト数のいずれか一方のみについて処理を行ってよい。
実施例2では、フロー情報収集装置101に複数のアナライザ102が接続されている点が実施例1と異なる。フロー情報収集装置101は、各アナライザ102に同一のNetFlowパケット122を送信する。
実施例2のフロー情報収集装置101のハードウェア構成及びソフトウェア構成は実施例1と同一である。また、実施例2のフロー情報収集装置101が実行する処理は実施例1と同一である。
実施例2のアナライザ102のハードウェア構成及びソフトウェア構成は実施例1と同一である。また、実施例2のアナライザ102が実行する処理は実施例1と同一である。なお、複数のアナライザ102の各々は、フロー情報の利用目的が異なっていてもよい。例えば、監視する項目を分ける利用方法が考えられる。アナライザ102-1はフロー識別子情報に基づいて大局的なフロー数の推移を監視し、アナライザ102-2は受信バイト数に基づいて大局的なトラフィック量の推移を監視し、アナライザ102-3は受信バイト数ピークレート及び受信バイト数バースト発生回数等に基づいて局所的なトラフィック量の変化を監視する。
なお、フロー情報収集装置101を制御する場合、システム管理者は、例えば、複数のアナライザ102の中の一つのアナライザ102を操作して、制御パケットを送信する。また、コンフィグレーション222に制御パケットを受け付けるアナライザ102のIPアドレスを設定し、パケット判定部232がアナライザ102の制御パケットをフィルタリングしてもよい。