(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】管理装置、管理方法及び管理プログラム
(51)【国際特許分類】
H04L 43/026 20220101AFI20241106BHJP
【FI】
H04L43/026
(21)【出願番号】P 2022581157
(86)(22)【出願日】2021-02-15
(86)【国際出願番号】 JP2021005544
(87)【国際公開番号】W WO2022172456
(87)【国際公開日】2022-08-18
【審査請求日】2023-07-21
【新規性喪失の例外の表示】特許法第30条第2項適用 https://www.ieice-taikai.jp/2020general/jpn/program.html(2020年電子情報通信学会総合大会ウェブサイト) ウェブサイトの掲載日 2020年3月3日 https://www.ieice-taikai.jp/2021general/jpn/webpro/_html/cs.html#b_6(2021年電子情報通信学会総合大会Web版プログラム) ウェブサイトの掲載日 2021年2月15日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】森岡 千晴
(72)【発明者】
【氏名】西岡 孟朗
(72)【発明者】
【氏名】三好 勇樹
(72)【発明者】
【氏名】林 裕平
(72)【発明者】
【氏名】鎌村 星平
【審査官】速水 雄太
(56)【参考文献】
【文献】米国特許第07281085(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
41/00-101/695
(57)【特許請求の範囲】
【請求項1】
フロー統計情報キャッシュテーブルである二つのテーブルを記憶する記憶部と、
前記二つのテーブルを、登録用テーブルと出力用テーブルとに分けて、フロー情報である各フローのinnerヘッダに関する統計情報を少なくとも含む情報を管理し、所定の変更条件を満たした場合に、前記登録用テーブルと前記出力用テーブルとを切り替えるテーブル変更処理を行い、前記出力用テーブルに記録された前記innerヘッダの統計情報を少なくとも含むxFlowパケットの出力を指示する管理部と、
入力を受け付けたカプセル化パケットまたはカプセル化パケットのヘッダサンプルから前記innerヘッダに関する統計情報を生成し、該生成した前記innerヘッダの統計情報を、前記登録用テーブルに登録または更新する登録部と、
前記管理部による指示を受け付け、前記出力用テーブルのデータを基に、フローごとに前記xFlowパケットを生成して、出力先に出力する出力部と、
を有することを特徴とする管理装置。
【請求項2】
フロー統計情報キャッシュテーブルである二つのテーブルを記憶する記憶部と、
前記二つのテーブルを、登録用テーブルと出力用テーブルとに分けて、フロー情報である各フローのinnerヘッダに関する統計情報を少なくとも含む情報を管理し、所定の変更条件を満たした場合に、前記登録用テーブルのデータを前記出力用テーブルに移行するテーブル変更処理を行い、前記出力用テーブルに記録された前記innerヘッダの統計情報を少なくとも含むxFlowパケットの出力を指示する管理部と、
入力を受け付けたカプセル化パケットまたはカプセル化パケットのヘッダサンプルから前記innerヘッダに関する統計情報を生成し、該生成した前記innerヘッダの統計情報を、前記登録用テーブルに登録または更新する登録部と、
前記管理部による指示を受け付け、前記出力用テーブルのデータを基に、フローごとに前記xFlowパケットを生成して、出力先に出力する出力部と、
を有することを特徴とする管理装置。
【請求項3】
前記変更条件は、最後に前記テーブル変更処理を行った時間、及び/または、前記登録用テーブルに登録されたフロー数、を基に設定されることを
特徴とする請求項1または2に記載の管理装置。
【請求項4】
管理装置が実行する管理方法であって、
前記管理装置は、フロー統計情報キャッシュテーブルである二つのテーブルを記憶する記憶部を有し、
前記二つのテーブルを、登録用テーブルと出力用テーブルとに分けて、各フローのinnerヘッダに関する統計情報を少なくとも含む情報をフロー情報として管理する工程と、
入力を受け付けたカプセル化パケットまたはカプセル化パケットのヘッダサンプルから前記innerヘッダに関する統計情報を生成し、該生成した前記innerヘッダの統計情報を、前記登録用テーブルに登録または更新する工程と、
所定の変更条件を満たした場合に、前記登録用テーブルと前記出力用テーブルとを切り替えるテーブル変更処理を行い、前記出力用テーブルに記録された前記innerヘッダの統計情報を少なくとも含むxFlowパケットの出力を指示する工程と、
前記xFlowパケットの出力の指示を受け付け、前記出力用テーブルのデータを基に、フローごとに前記xFlowパケットを生成して、出力先に出力する工程と、
を含んだことを特徴とする管理方法。
【請求項5】
管理装置が実行する管理方法であって、
前記管理装置は、フロー統計情報キャッシュテーブルである二つのテーブルを記憶する記憶部を有し、
前記二つのテーブルを、登録用テーブルと出力用テーブルとに分けて、各フローのinnerヘッダに関する統計情報を少なくとも含む情報をフロー情報として管理する工程と、
入力を受け付けたカプセル化パケットまたはカプセル化パケットのヘッダサンプルから前記innerヘッダに関する統計情報を生成し、該生成した前記innerヘッダの統計情報を、前記登録用テーブルに登録または更新する工程と、
所定の変更条件を満たした場合に、前記登録用テーブルのデータを前記出力用テーブルに移行するテーブル変更処理を行い、前記出力用テーブルに記録された前記innerヘッダの統計情報を少なくとも含むxFlowパケットの出力を指示する工程と、
前記xFlowパケットの出力の指示を受け付け、前記出力用テーブルのデータを基に、フローごとに前記xFlowパケットを生成して、出力先に出力する工程と、
を含んだことを特徴とする管理方法。
【請求項6】
コンピュータを、請求項1~3のいずれか一つに記載の管理装置として機能させるための管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、管理装置、管理方法及び管理プログラムに関する。
【背景技術】
【0002】
ネットワークの監視やトラヒックの傾向分析のため、パケットのサンプリングを行い、ヘッダ情報から算出した統計情報や、ヘッダ部分そのもの(ヘッダサンプル)を転送することによりトラヒックの集計・分析等を行うxFlow技術がある。このxFlow技術において、カプセル化パケットのinnerヘッダの統計情報をフロー毎に合算してフロー統計情報キャッシュテーブルへ登録し、フロー毎に出力条件を満たすかを監視し、出力条件を満たしたフローについて合算したinnerヘッダの統計情報を含むxFlowパケットを生成して出力する技術がある。
【先行技術文献】
【非特許文献】
【0003】
【文献】三好 勇樹, 他, “xFlowパケット内のヘッダサンプルフォーマット変換方式”, 電子情報通信学会 2020年3月, 総合大会 B-6-36.
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術では、フロー情報の登録・更新処理と、出力したフロー情報の削除処理とが同じフロー統計情報キャッシュテーブルで行われるため、フロー情報の登録・更新処理と、削除処理の競合により性能低下が生じるといった問題があった。特に、入力されるカプセル化パケットまたはカプセル化パケットのヘッダサンプルが急増すると、それに伴いフロー情報の登録・更新処理が増加するため競合が増え、性能が著しく低下する問題があった。
【0005】
本発明は、上記に鑑みてなされたものであって、フロー情報の登録・更新処理、削除処理の競合による性能低下を回避できる管理装置、管理方法及び管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本発明に係る管理装置は、フロー統計情報キャッシュテーブルである二つのテーブルを記憶する記憶部と、二つのテーブルを、登録用テーブルと出力用テーブルとに分けて、フロー情報である各フローのinnerヘッダに関する統計情報を少なくとも含む情報を管理し、所定の変更条件を満たした場合に、登録用テーブルと出力用テーブルとを切り替えるテーブル変更処理を行い、出力用テーブルに記録されたinnerヘッダの統計情報を少なくとも含むxFlowパケットの出力を指示する管理部と、入力を受け付けたカプセル化パケットまたはカプセル化パケットのヘッダサンプルからinnerヘッダに関する統計情報を生成し、該生成したinnerヘッダの統計情報を、登録用テーブルに登録または更新する登録部と、管理部による指示を受け付け、出力用テーブルのデータを基に、フローごとにxFlowパケットを生成して、出力先に出力する出力部と、を有することを特徴とする。
【0007】
また、本発明に係る管理装置は、フロー統計情報キャッシュテーブルである二つのテーブルを記憶する記憶部と、二つのテーブルを、登録用テーブルと出力用テーブルとに分けて、フロー情報である各フローのinnerヘッダに関する統計情報を少なくとも含む情報を管理し、所定の変更条件を満たした場合に、登録用テーブルのデータを出力用テーブルに移行するテーブル変更処理を行い、出力用テーブルに記録されたinnerヘッダの統計情報を少なくとも含むxFlowパケットの出力を指示する管理部と、入力を受け付けたカプセル化パケットまたはカプセル化パケットのヘッダサンプルからinnerヘッダに関する統計情報を生成し、該生成したinnerヘッダの統計情報を、登録用テーブルに登録または更新する登録部と、管理部による指示を受け付け、出力用テーブルのデータを基に、フローごとにxFlowパケットを生成して、出力先に出力する出力部と、を有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、フロー情報の登録・更新処理、削除処理の競合による性能低下を回避できる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施の形態1に係る管理装置の一例を模式的に示す図である。
【
図2】
図2は、テーブルA及びテーブルBのデータ構成の一例を示す図である。
【
図3】
図3は、管理装置における処理の流れを説明する図である。
【
図4】
図4は、管理装置における処理の流れを説明する図である。
【
図5】
図5は、xFlowパケットの形式を説明する図である。
【
図6】
図6は、
図1に示すテーブル管理部が実行する管理処理の処理手順を示すフローチャートである。
【
図7】
図7は、
図1に示す出力部が実行するxFlowパケットの生成・出力処理の処理手順を示すフローチャートである。
【
図8】
図8は、従来の統計型xFlowパケット生成・出力処理を説明する図である。
【
図9】
図9は、実施の形態2に係る管理装置の一例を模式的に示す図である。
【
図10】
図10は、
図9に示すテーブル管理部が実行する管理処理の処理手順を示すフローチャートである。
【
図11】
図11は、プログラムが実行されることにより、管理装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【0010】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【0011】
[実施の形態1]
実施の形態1では、フロー統計情報キャッシュテーブルを2つ有し、登録用テーブルと出力用テーブルとを別個に設定して、フロー情報の登録・更新処理と、出力したフロー情報の削除処理とを、それぞれ別のフロー統計情報キャッシュテーブルで実行する。このため、本実施の形態1によれば、フロー情報の登録・更新処理と削除処理との競合が生じないため、フロー情報の登録・更新、削除処理の競合による性能低下を回避できる。
【0012】
[管理装置]
次に、本実施の形態1に係る管理装置について説明する。
図1は、実施の形態1に係る管理装置の一例を模式的に示す図である。
【0013】
図1に示す管理装置10は、ネットワークの監視やトラヒックの傾向分析のため、サンプリングされたカプセル化パケットまたはカプセル化パケットのヘッダ情報の入力を受け付け、ヘッダ情報から算出したinnerヘッダの統計情報やヘッダサンプルのデータを管理する。そして、管理装置10は、フローごとに合算したinnerヘッダの統計情報を少なくとも含むxFlowパケットを生成して、分析装置などの出力先に出力する。
【0014】
管理装置10は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、CPU(Central Processing Unit)等を含むコンピュータ等に所定のプログラムが読み込まれて、CPUが所定のプログラムを実行することで実現される。また、管理装置10は、有線接続、或いは、ネットワーク等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースを有する。例えば、管理装置10は、NIC(Network Interface Card)等を有し、LAN(Local Area Network)やインターネットなどの電気通信回線を介した他の装置との間の通信を行う。
【0015】
管理装置10は、記憶部11、登録部12、テーブル管理部13(管理部)及び出力部14を有する。
【0016】
記憶部11は、フロー統計情報キャッシュテーブルであるテーブルA及びテーブルBを記憶する。テーブルA及びテーブルBは、データ構成が同じフロー統計情報キャッシュテーブルである。テーブルA及びテーブルBは、テーブル管理部13(後述)によって、登録用テーブル、出力用テーブルのいずれかに設定される。登録用テーブルは、登録部12(後述)によって、フロー情報として各フローのinnerヘッダに関する統計情報とフロー識別情報が少なくとも登録されるフロー統計情報キャッシュテーブルである。出力用テーブルは、各フローのinnerヘッダに関する統計情報とフロー識別情報が少なくとも記録されるとともに、xFlowパケット生成時に出力部14によって参照されるフロー統計情報キャッシュテーブルである。
【0017】
図2は、テーブルA及びテーブルBのデータ構成の一例を示す図である。
図2に示すように、テーブルA及びテーブルBは、通番ごとに、フロー識別情報と、innerヘッダの統計情報との項目を有する。フロー識別情報は、カプセル化パケットの所定のパケットヘッダ情報であり、例えば、innerヘッダ情報である。また、フロー識別情報は、outerヘッダ情報を含んでもよい。また、フロー識別情報であるinnerヘッダ及びouterヘッダは、ハッシュ化されていてもよい。innerヘッダの統計情報は、フロー識別情報が同一のフロー毎のinnerヘッダに関する統計情報であり、例えば、フロー識別情報が同一のパケットについて合算したパケット数やパケットデータ量である。
【0018】
続いて、登録部12、テーブル管理部13及び出力部14の機能及び処理を説明する。
図3及び
図4は、管理装置10における処理の流れを説明する図である。
【0019】
登録部12は、入力を受け付けたカプセル化パケットまたはカプセル化パケットのヘッダサンプルからinnerヘッダに関する統計情報を生成し、該生成したinnerヘッダの統計情報を、登録用テーブルに登録または更新する。具体的には、登録部12は、登録フェーズにおいて(
図3の(1))、カプセル化パケットまたはカプセル化パケットのヘッダサンプルの入力を受け付けると、カプセル化パケットのヘッダ情報を取得して、outerヘッダ情報とinnerヘッダ情報とを分離し、ヘッダ情報の一部であるフロー識別情報に基づいてフローを識別する(
図3のステップS1)。この際、登録部12は、xFlowヘッダ付きのパケットが入力された場合には、xFlowヘッダを除去してから、ヘッダ情報を取得する。登録部12は、例えば、特開2019-097069号公報に記載の方法を用いて、ヘッダ情報を判別してもよい。
【0020】
登録部12は、入力されたパケットのフロー識別情報が、登録用テーブルへ新規登録するものであるか、及び、すでに登録されているものであるかを、登録用テーブル(
図3のテーブルA)を参照して判定し、すでに登録されている場合は当該フローのinnerヘッダの統計情報を取得する(
図3のステップS2)。登録部12は、新規登録の場合は当該パケットからinnerヘッダの統計情報を生成し(
図3のステップS3-1)、登録用テーブル(
図3のテーブルA)へフロー情報の登録を行う(
図3のステップS4-1)。すでに登録されている場合は、登録部12は、当該パケットからinnerヘッダの統計情報を生成し、それを
図3のステップS2で登録用テーブル(
図3のテーブルA)から取得した当該フローのinnerヘッダの統計情報と合算してinnerヘッダの統計情報を生成し(
図3のステップS3-2)、登録用テーブル(
図3のテーブルA)へフロー情報の更新を行う(
図3のステップS4-2)。
図3のステップS4-2で、
図3のステップS2の後にテーブル変更処理が行われる等により登録用テーブルに当該フローのフロー情報が登録されていない場合は、
図3のステップS4-1と同様に、合算したinnerヘッダの統計情報ではなく、当該パケットから生成したinnerヘッダの統計情報を含むフロー情報を登録用テーブルへ登録する。
【0021】
テーブル管理部13は、所定のテーブル変更条件(変更条件)を満たすか否かを判定する。テーブル変更条件は、例えば、最後にテーブル変更処理を行った時間を基に設定される。テーブル変更は、例えば、一定時間ごとに実行される。また、テーブル変更条件は、例えば、最後にテーブル変更処理を行った時間から所定の時間が経過したことであってもよい。また、テーブル変更条件は、例えば、登録用テーブルが新たに設定された時間から所定の時間が経過したことであってもよい。また、テーブル変更条件は、例えば、出力用テーブルに登録された情報をすべて送信したこと、かつ、最後に、出力用テーブルを初期化した時間から所定の時間が経過したことであってもよい。また、テーブル管理部13は、テーブル変更条件として、登録用テーブルに登録されたフロー数を基に設定される条件を適用してもよい。テーブル変更条件は、例えば、登録用テーブルに登録されたフロー数が所定の閾値に達することである。
【0022】
テーブル管理部13は、所定のテーブル変更条件を満たすと判定した場合(
図3の(2))、出力用テーブルであるテーブルBを初期化した後に、登録部12が保持している登録用テーブル情報をテーブルAからテーブルBへ設定変更し(
図4の(5-1))、出力部14が保持している出力用テーブル情報をテーブルBからテーブルAへ設定変更する(
図4の(5-2))ことで、登録部12及び出力部14が参照するテーブルを切り替える。このように、テーブル変更条件を満たすごとに、登録部12から参照するテーブルがテーブルAからB、またはテーブルBからテーブルAへと切り替わる。また、テーブル変更条件を満たすごとに、出力部14から参照するテーブルがテーブルBからA、またはテーブルBからテーブルAへと切り替わる。テーブル管理部13は、登録用テーブルに対応するテーブルの識別情報と出力用テーブルに対応するテーブルの識別情報とが登録されたテーブル情報とを更新する。テーブル管理部13は、テーブル変更条件を満たすごとに、テーブルA,Bを登録用テーブルと出力用テーブルとに適宜設定する。
【0023】
そして、テーブル管理部13は、例えば、最後にテーブル変更処理を行った時間に基づいて決定した次回のテーブル変更条件を更新する(
図4の(5-3))。
【0024】
そして、テーブル管理部13は、出力部14に、innerヘッダの統計情報を少なくとも含むxFlowパケットの出力を指示する(
図4の(6))。なお、登録部12は、カプセル化パケットまたはカプセル化パケットのヘッダサンプルの入力にしたがい、ヘッダ情報及びinnerヘッダの統計情報を、登録用テーブルに設定されたテーブルBに登録する。
【0025】
出力部14は、出力フェーズ(
図4の(7))において、出力用テーブル(テーブルA)からinnerヘッダの統計情報を含むフロー情報を取得し(
図4のステップS11)、フロー情報を有したxFlowパケットを生成して(
図4のステップS12)、生成したxFlowパケットを、出力先の分析装置に出力する(
図4のステップS13)。出力部14は、フロー毎に、ステップS11~ステップS13の処理を行う。
【0026】
出力部14は、xFlowパケットの出力先における処理内容に応じた形式のxFlowパケットを生成する。
図5は、xFlowパケットの形式を説明する図である。
図5に示すように、例えば、出力部14は、出力先の分析装置に合わせて、innerヘッダの統計情報のみを有する形式P1のxFlowパケットを生成する。また、管理装置10では、ヘッダサンプルを予め保持しておき、出力先の分析装置やフロー識別情報と出力形式とを対応づけたテーブルを保持することで、innerヘッダの統計情報にinnerヘッダサンプルを付与した形式P2、または、innerヘッダの統計情報にinnerヘッダサンプルとouterヘッダサンプルとを付与した形式P3のxFlowパケットを生成することもできる。
【0027】
このように、管理装置10では、テーブル管理部13が、二つのテーブルを、登録用テーブルと出力用テーブルとに分けて、フロー情報である各フローのinnerヘッダに関する統計情報を少なくとも含む情報を管理し、所定の変更条件を満たした場合に、出力用テーブルに記録されたinnerヘッダの統計情報を少なくとも含むxFlowパケットの出力を指示する。管理装置10では、登録用テーブル及び出力用テーブルとして、テーブルA及びテーブルBを交互に切り替えながら、登録用テーブルへの登録処理及び出力用テーブルのデータを使用したxFlowパケットの生成・出力処理を、繰り返す。したがって、管理装置10は、フロー単位で、xFlowパケットの出力タイミングを計ることや、フロー単位で、テーブルからのフロー情報を削除することはない。
【0028】
[管理処理]
次に、テーブル管理部13が実行する管理処理について説明する。
図6は、
図1に示すテーブル管理部13が実行する管理処理の処理手順を示すフローチャートである。
【0029】
図6に示すように、テーブル管理部13は、スタート時に、登録用テーブルと出力用テーブルを初期化する(ステップS21)。テーブル管理部13は、テーブル変更条件を満たすか否かを判定する(ステップS22)。テーブル変更条件を満たさない場合(ステップS22:No)、テーブル管理部13は、ステップS22に戻り、テーブル変更条件を満たすまで判定処理を繰り返す。
【0030】
テーブル変更条件を満たす場合(ステップS22:Yes)、テーブル管理部13は、テーブル変更処理を行う(ステップS23)。テーブル変更処理は、出力用テーブルを初期化した後に、登録用テーブルと出力用テーブルとを切り替える処理である。具体的には、出力用テーブルがテーブルBであり、登録用テーブルがテーブルAである場合、テーブル管理部13は、登録部12が保持している登録用テーブル情報をテーブルAからテーブルBへ設定変更し、出力部14が保持している出力用テーブル情報をテーブルBからテーブルAへ設定変更することで、登録部12及び出力部14が参照するテーブルを切り替える。これとともに、テーブル管理部13は、登録用テーブル及び出力用テーブルの情報、この場合には、登録用テーブルがテーブルBであり、出力用テーブルがテーブルAであるという情報とを更新する。そして、テーブル管理部13は、最後にテーブル変更処理を行った時間に基づいて決定した次回のテーブル変更条件を更新する(ステップS24)。
【0031】
続いて、テーブル管理部13は、出力部14に、xFlowパケットの出力を指示する(ステップS25)。そして、テーブル管理部13は、ステップS22に戻り、処理を続ける。
【0032】
[xFlowパケットの生成・出力処理]
次に、出力部14が実行するxFlowパケットの生成・出力処理について説明する。
図7は、
図1に示す出力部14が実行するxFlowパケットの生成・出力処理の処理手順を示すフローチャートである。
【0033】
図7に示すように、出力部14は、テーブル管理部13からxFlowパケット出力指示の入力を受け付ける(ステップS31)。なお、出力部14は、テーブル管理部13からの出力指示とともに受け付けた出力用テーブルの情報の変更指示にしたがって、出力用テーブル情報をテーブルAからテーブルBに変更する。そして、出力部14は、切り替えた出力用テーブルからinnerヘッダの統計情報を含むフロー情報を取得し(ステップS32)、フロー情報を有したxFlowパケットを生成する(ステップS33)。そして出力部14は、生成したxFlowパケットを、出力先の分析装置に出力する(ステップS34)。
【0034】
出力部14は、出力用テーブルに登録されている全フローについてxFlowパケットを出力したか否かを判定する(ステップS35)。全フローのxFlowパケットを出力していない場合(ステップS35:No)、次のフローについてxFlowパケットを出力するため、ステップS32に戻り、処理を継続する。このように、出力部14は、出力指示を受けた場合、フロー毎に、カプセル化パケットのinnerヘッダの統計情報を合算したxFlowパケットを生成して、各フローの出力先である分析装置に、各xFlowパケットを出力する。そして、全フローのxFlowパケットを出力した場合(ステップS35:Yes)、xFlowパケットの出力処理を終了する。なお、出力部14は、出力用テーブルに登録されている全フローの情報をまとめて取得した後に、xFlowパケットの生成及び出力をしてもよい。
【0035】
[実施の形態1の効果]
図8は、従来の統計型xFlowパケット生成・出力処理を説明する図である。
図8に示すように、従来技術では、フロー情報の登録・更新処理と、出力したフロー情報の削除処理とが同じフロー統計情報キャッシュテーブルで行われため、フロー情報の登録処理とフロー情報の削除処理との競合により性能低下が生じるといった問題があった。また、従来技術では、フロー単位で、出力条件を満たすか否かを判定するために経過時間などを監視していた。このため、従来技術では、入力フロー数の増加にともない、タイマー管理等の出力条件監視の処理負荷が増大するという問題があった。
【0036】
これに対し、本実施の形態1では、フロー情報の登録・更新処理を行うキャッシュテーブル(登録用テーブル)と、出力したフロー情報の削除処理を行うキャッシュテーブル(出力用テーブル)とを別個に設定するため、フロー情報の登録・更新処理とフロー情報の削除処理との競合が生じない。そのため、本実施の形態によれば、フロー情報の登録・更新処理とフロー情報の削除処理との競合による性能低下が生じない。
【0037】
また、本実施の形態1では、フローごとに出力条件を満たすか否かを判定するのではなく、キャッシュテーブルの変更条件のみを監視するため、従来技術よりも、監視の処理負荷を低減できる。本実施の形態によれば、入力フロー数の急増に伴い処理負荷が急激に大きくなる影響を低減できる。
【0038】
そして、本実施の形態1によれば、出力したフロー情報を、テーブル変更処理(
図6のステップS23)において、出力用テーブルの初期化により削除するため、フロー毎に、出力したフロー情報を削除する従来の技術よりも、フロー情報の削除処理の負荷を低減できる。
【0039】
また、攻撃検知等のためにはパケット到着後、一定時間以内に後段の分析装置へxFlowパケットを出力する必要がある。従来の技術では、フロー単位に最大無通信時間や最大通信時間を経過すると出力する。本実施の形態では、最後にテーブル変更処理を行った時間、すなわち、最後に出力用テーブルを初期化した時間からの経過時間をテーブル変更条件に含めている。本実施の形態1では、最後にテーブル変更処理を行った時間からの経過時間を、最大無通信時間や最大通信時間に基づいた時間に設定することにより、xFlowパケットの出力タイミングを適正に保持することができる。
【0040】
なお、実施の形態1では、テーブルA,Bの2つのテーブルを、登録用テーブルと出力用テーブルとに切り替える場合を説明したが、テーブルの数は、2つ以上であってもよい。例えば、3つのテーブルA,B,Cを用いる場合、登録用テーブルがテーブルAであり、出力用テーブルがテーブルBであり、テーブルCは初期化状態となっている状態から、変更条件を満たすと、登録用テーブルがテーブルCとされ、出力用テーブルがテーブルAとされ、テーブルBが初期化される。この場合、必要なテーブルのキャッシュメモリ領域は増えるが、テーブル変更条件を満たしたら出力用テーブルを初期化する前に、予め初期化されているテーブルを登録用テーブルに設定できるため、登録用テーブル変更に要する時間を短縮できる。
【0041】
[変形例]
テーブル変更処理を行う時間間隔が長いほど、同一フローのパケットのinnerヘッダの統計情報をより多く合算できるため、出力するxFlowパケット総数を削減できるが、この場合、入力フロー数も多くなり、テーブル変更処理前に登録用テーブルへ登録可能なフロー数を超過する可能性がある。
【0042】
そこで、テーブル管理部13は、テーブル変更条件として、最後にテーブル変更処理を行った時間を基に設定される条件に加え、登録用テーブルに登録されたフロー数を基に設定される条件を追加してもよい。例えば、登録用テーブルに登録されたフロー数が所定の閾値に達することも、テーブル変更条件に加えてもよい。
【0043】
具体的には、管理装置10は、登録部12で登録用テーブルに登録したフロー数をカウントし(カウンタ:k)、kが所定の閾値を超えると、テーブル管理部13へ登録用テーブルの登録超過を通知する。
【0044】
テーブル管理部13では、登録用テーブルの登録超過通知を受信すると、登録超過フラグ(初期値は「0」)を「1」に設定する。そして、テーブル管理部13は、最後に出力用テーブルを初期化した時間から所定の時間を経過したという第1の条件、登録超過フラグが「1」であるという第2の条件のいずれかの条件を満たすと、テーブル変更処理を行う。すなわち、テーブル変更条件は、登録用テーブルが新たに設定された時間から所定の時間経過したこと、または、登録用テーブルに登録されたフロー数が所定の閾値に達することである。
【0045】
なお、テーブル管理部13は、テーブル変更処理後、登録超過フラグの値を「0」に設定し、カウンタkを「0」に設定するよう登録部12へ通知する。
【0046】
この変形例によれば、登録用テーブルへ登録可能なフロー数を超過する前にテーブルを変更することが可能となり、入力フロー数が急増してもフロー情報を取りこぼすことなく登録することができる。
【0047】
また、変形例では、xFlowパケット出力先の分析装置がバーストで受信可能なxFlowパケット数に制限がある場合、出力先の分析装置が受信可能な連続パケット数に基づいて、登録フロー数の閾値を設定する。これにより、変形例2では、1回のテーブル変更を契機に出力用テーブルからフロー情報を取得して出力されるxFlowパケット数を制限でき、出力先の分析装置での受信バッファ溢れを低減することができる。
【0048】
[実施の形態2]
実施の形態1では、テーブル変更処理として、登録用テーブルと出力用テーブルに設定するテーブルを切り替えた場合について説明したが、実施の形態2では、テーブル変更処理として、出力用テーブルを初期化した後に、登録用テーブルのデータを出力用テーブルに移行する方法を説明する。
【0049】
図9は、実施の形態2に係る管理装置の一例を模式的に示す図である。
図9に示す管理装置210は、
図1に示すテーブル管理部13に代えて、テーブル管理部213を有する。
【0050】
テーブル管理部213は、所定のテーブル変更条件を満たすか否かを判定する。テーブル変更は、例えば、一定時間ごとに実行される。また、テーブル変更条件は、例えば、最後にテーブル変更処理を行った時間から所定の時間が経過したことであってもよい。また、テーブル変更条件は、例えば、登録用テーブルの情報を出力用テーブルへ移行した時間から所定の時間が経過したことでもよい。また、テーブル変更条件は、例えば、出力用テーブルに登録された情報をすべて送信したこと、かつ、最後に、出力用テーブルを初期化した時間から所定の時間が経過したことであってもよい。また、テーブル変更条件は、登録用テーブルに登録されたフロー数が所定の閾値に達することであってもよい。また、テーブル変更条件は、例えば、登録用テーブルの情報を出力用テーブルへ移行した時間から所定の時間経過したこと、及び、登録用テーブルに登録されたフロー数が所定の閾値に達することのどちらかの条件を満たすことであってもよい。
【0051】
テーブル管理部213は、所定のテーブル変更条件を満たすと判定した場合、出力用テーブルを初期化し、登録用テーブルのデータを出力用テーブルに移行した後に、登録用テーブルを初期化する。そして、テーブル管理部213は、出力部14に、innerヘッダの統計情報を少なくとも含むxFlowパケットの出力を指示する。
【0052】
なお、本実施の形態2では、登録用テーブルと出力用テーブルとを切り替えることがないため、登録用テーブルは、例えばテーブルAに固定され、出力用テーブルは、例えばテーブルBに固定される。したがって、実施の形態2では、実施の形態1における、テーブル管理部213から登録部12及び出力部14へ参照先テーブルの設定変更を指示する処理、及び、登録部12及び出力部14における登録用テーブルまたは出力用テーブル情報の設定変更処理が不要となる。
【0053】
[管理処理]
次に、テーブル管理部213が実行する管理処理について説明する。
図10は、
図9に示すテーブル管理部213が実行する管理処理の処理手順を示すフローチャートである。
【0054】
図10に示すステップS41及びステップS42は、
図6に示すステップS21及びステップS22と同じ処理である。テーブル変更条件を満たす場合(ステップS42:Yes)、テーブル管理部213は、テーブル変更処理を行う(ステップS43)。テーブル変更処理は、登録用テーブルのデータを出力用テーブルに移行した後に、登録用テーブルを初期化する。
【0055】
テーブル管理部213は、テーブル変更条件を更新する(ステップS44)。例えば、テーブル管理部213は、テーブル変更処理を行った時間に基づいて決定した次回のテーブル変更条件を更新する。テーブル変更条件が、最後にテーブル変更処理を行った時間から所定の時間が経過したことである場合、テーブル管理部213は、次回テーブル変更処理を行う時間に書き換える。また、テーブル変更条件が、登録用テーブルに登録されたフロー数が所定の閾値に達することである場合、テーブル管理部213は、登録超過フラグを初期値「0」にする。
【0056】
続いて、テーブル管理部213は、出力部14に、xFlowパケットの出力を指示する(ステップS45)。
【0057】
[実施の形態2の効果]
このように、実施の形態2では、テーブル変更処理として、登録用テーブルのデータを出力用テーブルに移行した後に、登録用テーブルを初期化する処理を行うことで、実施の形態1と同様の効果を奏する。
【0058】
[実施の形態のシステム構成について]
管理装置10,210の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、管理装置10,210の機能の分散及び統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。
【0059】
また、管理装置10,210において行われる各処理は、全部または任意の一部が、CPU、GPU(Graphics Processing Unit)、及び、CPU、GPUにより解析実行されるプログラムにて実現されてもよい。また、管理装置10において行われる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
【0060】
また、実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。もしくは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述及び図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。
【0061】
[プログラム]
図11は、プログラムが実行されることにより、管理装置10,210が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0062】
メモリ1010は、ROM1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0063】
ハードディスクドライブ1090は、例えば、OS(Operating System)1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、管理装置10,210の各処理を規定するプログラムは、コンピュータ1000により実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、管理装置10,210における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0064】
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0065】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0066】
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【0067】
10,210 管理装置
11 記憶部
12 登録部
13,213 テーブル管理部
14 出力部