(57)【要約】【課題】コストを抑えると共に、偏りの少ないフローサンプリングを実現する。【解決手段】アクセスリスト機能を有するルータ１と、フローの統計的な解析を行なう解析装置２とから構成されるフローサンプリングシステムであって、解析装置２は、サンプリングレートを含むサンプリングパラメータを設定し、フローサンプリングのビット数に対応し各ビット間で重複しない複数のランダムビットマスクを生成し、生成した複数のランダムビットマスクをアクセスリストに変換してルータ１に適用し、ルータ１は、アクセスリストに基づいてフローサンプリングを行ない、解析装置２は、ルータ１でフローサンプリングされたフローの統計的な解析を行なう。【選択図】図１
2010233147.tif 000002
【特許請求の範囲】
【請求項１】
アクセスリスト機能を有するルータおよびフローの統計的な解析を行なう解析装置を用いるフローサンプリング方法であって、
前記解析装置において、
サンプリングレートを含むサンプリングパラメータを設定するステップと、
フローサンプリングのサンプリングレートに対応し、相互に完全一致しない複数のランダムビットマスクを生成するステップと、
前記生成された複数のランダムビットマスクをアクセスリストに変換して前記ルータに適用するステップと、
前記ルータにおいて、フローサンプリングを行なうステップと、
前記解析装置において、前記ルータでフローサンプリングされたフローの統計的な解析を行なうステップと、を少なくとも含むことを特徴とするフローサンプリング方法。
【請求項２】
前記ルータにおけるフローサンプリングが開始してから第１の所定時間が経過したかどうかを判定するステップと、
前記判定の結果、前記ルータにおけるフローサンプリングが開始してから第１の所定時間が経過したときに、再度複数のランダムビットマスクを生成するステップと、をさらに含むことを特徴とする請求項１記載のフローサンプリング方法。
【請求項３】
前記ルータにおけるフローサンプリングが開始してから第２の所定時間が経過したかどうかを判定するステップと、
前記判定の結果、前記ルータにおけるフローサンプリングが開始してから第２の所定時間が経過したときに、前記解析装置においてビット毎のエントロピーを計算するステップと、
前記エントロピーが大きいビットから順に前記ランダムビットマスクの生成に使用することを特徴とする請求項１または請求項２記載のフローサンプリング方法。
【請求項４】
アクセスリスト機能を有するルータと、フローの統計的な解析を行なう解析装置とから構成されるフローサンプリングシステムであって、
前記解析装置は、
サンプリングレートを含むサンプリングパラメータを設定し、フローサンプリングのサンプリングレートに対応しサンプリングレートに対応し、相互に完全一致しない複数のランダムビットマスクを生成し、前記生成した複数のランダムビットマスクをアクセスリストに変換して前記ルータに適用し、
前記ルータは、前記アクセスリストに基づいてフローサンプリングを行ない、
前記解析装置は、前記ルータでフローサンプリングされたフローの統計的な解析を行なうことを特徴とするフローサンプリングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクセスリスト機能を有するルータおよびフローの統計的な解析を行なう解析装置を用いるフローサンプリング方法およびフローサンプリングシステムに関する。
【背景技術】
【０００２】
従来から、観測した膨大な量のトラヒックデータをリアルタイムで処理するためのサンプリング技術が提案されている。サンプリング方法には、パケットサンプリングとフローサンプリングの２種類が存在する。パケットサンプリングは、ハードウェア実装が容易であるという利点があり、非特許文献１を中心として数多くの製品が存在する。一方、フローサンプリングは、フロー統計量の推定精度が高いという利点がある。このフローサンプリングについては、非特許文献３や非特許文献４に具体的な技術が開示されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Sampled NetFlow, http://www.cisco.com/en/US/docs/ios/12_0s/feature/guide/12s_sanf.html
【非特許文献２】P.Tune and D.Veitch, “Towards Optimal Sampling for Flow Size Estimation,” ACM SIGCOMM IMC, Oct. 2008.
【非特許文献３】NetFlow Input Filters, http://www.cisco.com/en/US/docs/ios/12_3t/12_3t4/feature/guide/gtnfinpf.html
【非特許文献４】小林，西野，木村，石橋，“フロー計測技術による大規模VoIPトラヒック品質計測システムの提案，” 信学技法，NS2008-89，Nov. 2008.
【非特許文献５】C.Estan, K.Keys, D.Moore and G.Varghese, “Building a better NetFlow,” ACM SIGCOMM IMC, Sep. 2003.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、パケットサンプリングは、フロー統計量（例えば、フロー当たりのパケット数）の推定精度が悪いという欠点を有している。この欠点を克服するために、パケットの特定のフィールド情報を利用する手法が提案されている。非特許文献２は、２種類のパケットサンプリング、すなわち、ＴＣＰのＳＹＮパケットのサンプリングと、ＳＹＮ以外のパケットのサンプリングを行うＤｕａｌ  Ｓａｍｐｌｉｎｇを提案している。しかし、ＴＣＰに特化しているため、ＴＣＰ以外のプロトコル（例えば、UDP）には適用することができない。
【０００５】
一方、フローサンプリングは、フロー単位でサンプリングを行うため、基本的に、全パケットのヘッダ情報を参照してフローを判断しなければならない。非特許文献３や非特許文献４に開示されている手法では、基本的に専用のハードウェアを必要とするため、コストが高い。また、特定のプロトコルフィールドのような単純なアクセスリストでは、フロー統計量の推定結果に偏りが生じる恐れがある。この偏りを解消するために、非特許文献５に開示されているように、フローを定義するパラメータ（例えば、5-tuple情報）をハッシュ関数にかけ、その値から決定する手法が考えられる。しかし、任意のプロトコルフィールドをハッシュ関数にかけるハードウェアが必要となり、現状では簡易に実現することはできない。
【０００６】
本発明は、このような事情に鑑みてなされたものであり、実現のためのコストを抑えると共に、偏りの少ないフローサンプリングを実現することができるフローサンプリング方法およびフローサンプリングシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
（１）上記の目的を達成するために、本発明は、以下のような手段を講じた。すなわち、本発明のフローサンプリング方法は、アクセスリスト機能を有するルータおよびフローの統計的な解析を行なう解析装置を用いるフローサンプリング方法であって、前記解析装置において、サンプリングレートを含むサンプリングパラメータを設定するステップと、フローサンプリングのビット数に対応し各ビット間で重複しない複数のランダムビットマスクを生成するステップと、前記生成された複数のランダムビットマスクをアクセスリストに変換して前記ルータに適用するステップと、前記ルータにおいて、フローサンプリングを行なうステップと、前記解析装置において、前記ルータでフローサンプリングされたフローの統計的な解析を行なうステップと、を少なくとも含むことを特徴としている。
【０００８】
このように、フローサンプリングのサンプリングレートに対応し、相互に完全一致しない複数のランダムビットマスクを生成し、その複数のランダムビットマスクをアクセスリストに変換してルータに適用し、ルータにおいて、フローサンプリングを行なうので、安価な機器のみでフローサンプリングを行なうことが可能となる。また、複数のランダムビットマスクを用いるため、偏りの少ないフローサンプリングを実現することが可能となる。
【０００９】
（２）また、本発明のフローサンプリング方法は、前記ルータにおけるフローサンプリングが開始してから第１の所定時間が経過したかどうかを判定するステップと、前記判定の結果、前記ルータにおけるフローサンプリングが開始してから第１の所定時間が経過したときに、再度複数のランダムビットマスクを生成するステップと、をさらに含むことを特徴としている。
【００１０】
このように、ルータにおけるフローサンプリングが開始してから第１の所定時間が経過したかどうかを判定し、判定の結果、ルータにおけるフローサンプリングが開始してから第１の所定時間が経過したときに、再度複数のランダムビットマスクを生成するので、設定したサンプリングレートに近づけることが可能となり、より精度の高いフローサンプリングを実施することが可能となる。
【００１１】
（３）また、本発明のフローサンプリング方法は、前記ルータにおけるフローサンプリングが開始してから第２の所定時間が経過したかどうかを判定するステップと、前記判定の結果、前記ルータにおけるフローサンプリングが開始してから第２の所定時間が経過したときに、前記解析装置においてビット毎のエントロピーを計算するステップと、前記エントロピーが大きいビットから順に前記ランダムビットマスクの生成に使用することを特徴としている。
【００１２】
このように、ルータにおけるフローサンプリングが開始してから第２の所定時間が経過したかどうかを判定し、判定の結果、ルータにおけるフローサンプリングが開始してから第２の所定時間が経過したときに、解析装置においてビット毎のエントロピーを計算し、エントロピーが大きいビットから順にランダムビットマスクの生成に使用するので、例えば、ＩＰアドレスを構成するビットが、高いエントロピーである場合、偏りの少ないフローサンプリングを実現することが可能となる。
【００１３】
（４）また、本発明のフローサンプリングシステムは、アクセスリスト機能を有するルータと、フローの統計的な解析を行なう解析装置とから構成されるフローサンプリングシステムであって、前記解析装置は、サンプリングレートを含むサンプリングパラメータを設定し、フローサンプリングのサンプリングレートに対応し、相互に完全一致しない複数のランダムビットマスクを生成し、前記生成した複数のランダムビットマスクをアクセスリストに変換して前記ルータに適用し、前記ルータは、前記アクセスリストに基づいてフローサンプリングを行ない、前記解析装置は、前記ルータでフローサンプリングされたフローの統計的な解析を行なうことを特徴としている。
【００１４】
このように、フローサンプリングのビット数に対応し各ビット間で重複しない複数のランダムビットマスクを生成し、その複数のランダムビットマスクをアクセスリストに変換してルータに適用し、ルータにおいて、フローサンプリングを行なうので、安価な機器のみでフローサンプリングを行なうことが可能となる。また、複数のランダムビットマスクを用いるため、偏りの少ないフローサンプリングを実現することが可能となる。
【発明の効果】
【００１５】
本発明によれば、フローサンプリングのサンプリングレートに対応し、相互に完全一致しない複数のランダムビットマスクを生成し、その複数のランダムビットマスクをアクセスリストに変換してルータに適用し、ルータにおいて、フローサンプリングを行なうので、安価な機器のみでフローサンプリングを行なうことが可能となる。また、複数のランダムビットマスクを用いるため、偏りの少ないフローサンプリングを実現することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態に係るフローサンプリングシステムの概略構成を示す図である。
【図２】第１の実施形態に係る動作手順を示すフローチャートである。
【図３】第２の実施形態に係る動作手順を示すフローチャートである。
【図４】第３の実施形態に係る動作手順を示すフローチャートである。
【発明を実施するための形態】
【００１７】
図１は、本実施形態に係るフローサンプリングシステムの概略構成を示す図である。このフローサンプリングシステムは、ルータ１、解析装置２から構成されている。ルータ１００は、網１と網２とを中継し、ルータ１にフローを提供する。ルータ１は、アクセスリストフィルタリング機能を有している。解析装置２は、例えば、汎用ＰＣで構成され、ルータ１でサンプリングされたフローを解析する機能を有し、エントロピー計算用の０／１カウントバッファを備えている。なお、アクセスリスト（access control list）とは、一般的に、受信したフロー（パケット）が正規のものであるか、不正なものであるか判断するために用いるリストで、「ACL(アクル)」とも呼称されるものである。そして、アクセスリストフィルタリングとは、送信元と送信先のＩＰアドレス、ポート番号、プロトコルなどを指定してフィルタリングする機能である。
【００１８】
解析装置２は、後述するように、サンプリングレートを含むサンプリングパラメータを設定し、フローサンプリングのサンプリングレートに対応し、相互に完全一致しない複数のランダムビットマスクを生成する。そして、生成した複数のランダムビットマスクをアクセスリストに変換してルータ１に適用する。ルータ１は、アクセスリストに基づいてフローサンプリングを行なう。解析装置２は、ルータ１でフローサンプリングされたフローの統計的な解析を行なう。以下、本実施形態に係るフローサンプリングシステムの動作手順について説明する。
【００１９】
［第１の実施形態］
図２は、第１の実施形態に係る動作手順を示すフローチャートである。手順１として、解析装置２は、サンプリングレート１／Ｒ、サンプリングインターバルＴ、インターバル閾値Ｓ、フローサンプリングに利用可能なプロトコルフィールドのビット数Ａ（但し、Ａは一般的にはＩＰアドレスが該当し、ＩＰｖ４では、送信元と宛先ＩＰアドレスの両方を使用する場合６４となる。）、サンプリングレートの精度１／εを決定する（ステップＳ１）。
【００２０】
次に、手順２として、解析装置２は、次式を満たすように、Ｎｉを定める（ステップＳ２）。
【００２１】
【数１】
2010233147.tif 000003
ただし、Ｎｉ（ｉ＝１，２，・・・，Ｂ）、Ｎ１＜Ｎ２＜・・・＜ＮＢ、α＜１／εである。
【００２２】
次に、手順３として、ＡビットからＮｉビット分をランダムに選択して、ランダムビットマスクを生成する（ステップＳ３）。この際、Ｎｉ＜＝Ａ／２ならば、ビットマスクに使用するビットを、Ｎｉ＞Ａ／２ならばビットマスクにしないビットを選択する。これにより、ビットマスク生成のために選択すべきビット数は高々“Ａ／２”となる。さらに値｛０，１｝をランダムに割り当てる。
【００２３】
このとき、決定したＮｉビットに対するビットマスクの重複チェックを行う（ステップＳ４）。Ｎｊ（ｊ＝１，２，・・・，ｉ−１）に対するビットマスクが、Ｎｉビットに対するビットマスクの一部に完全一致する場合、ステップＳ３へ遷移して、再度ランダムな割り当てを行なう。一方、ステップＳ４において、Ｎｊ（ｊ＝１，２，・・・，ｉ−１）に対するビットマスクが、Ｎｉビットに対するビットマスクの一部と完全一致しなくなったら、ステップＳ５へ遷移する。このようにして、各Ｎｉビット間で重複のないＢ個のビットマスクを生成する。
【００２４】
手順４として、解析装置２は、ビットマスクをルータ１に適用して、フローサンプリングを実施する（ステップＳ５）。すなわち、解析装置２は、生成されたＮｉ（ｉ＝１，２，・・・，Ｂ）それぞれに対するビットマスクを、アクセスリストに変換し、ルータ１へ適用し、フローサンプリングを行う。
【００２５】
以上説明したように、第１の実施形態によれば、ランダムビットマスクを生成し、その複数のランダムビットマスクをアクセスリストに変換してルータ１に適用し、ルータ１において、フローサンプリングを行なうので、安価な機器のみでフローサンプリングを行なうことが可能となる。また、複数のランダムに生成されたビットマスクを用いるため、偏りの少ないフローサンプリングを実現することが可能となる。
【００２６】
［第２の実施形態］
図３は、第２の実施形態に係る動作手順を示すフローチャートである。ステップＳ１からステップＳ５までは、図２に示した第１の実施形態と同様である。第２の実施形態では、フローサンプリング開始から時間Ｔ（第１の所定時間）が経過したかどうかを判断する（ステップＳ６）。フローサンプリング開始から時間Ｔが経過していない場合は、ステップＳ５へ遷移してフローサンプリングを継続する。一方、ステップＳ６において、フローサンプリング開始から時間Ｔが経過した場合は、ステップＳ３へ遷移し、解析装置２において、各Ａビットの０／１カウントバッファを更新する。更新は、フローが終了した時点でも良い。
【００２７】
以上説明したように、第２の実施形態によれば、ルータ１におけるフローサンプリングが開始してから時間Ｔ（第１の所定時間）が経過したかどうかを判定し、判定の結果、ルータ１におけるフローサンプリングが開始してから時間Ｔが経過したときに、再度複数のランダムビットマスクを生成するので、生成されたビットマスクが所望のサンプリングレートとならない場合でも、定期的に更新することで、この影響を和らげることが可能となる。
【００２８】
［第３の実施形態］
図４は、第３の実施形態に係る動作手順を示すフローチャートである。解析装置２は、サンプリングレート１／Ｒ、サンプリングインターバルＴ、インターバル閾値Ｓ、フローサンプリングに利用可能なプロトコルフィールドのビット数Ａ（但し、Ａは一般的にはＩＰアドレスが該当し、ＩＰｖ４では、送信元と宛先ＩＰアドレスの両方を使用する場合６４となる。）、サンプリングレートの精度１／εを決定する（ステップＳ１）。
【００２９】
次に、解析装置２は、第１の実施形態で示した数式を満たすように、Ｎｉを定める（ステップＳ２）。ただし、Ｎｉ（ｉ＝１，２，・・・，Ｂ）、Ｎ１＜Ｎ２＜・・・＜ＮＢ、α＜１／εである。
【００３０】
次に、手順５として、最初のフローサンプリング開始から、時間ｎＴ（ｎ＜Ｓ）が経過したかどうかを判断し（ステップ７）、時間ｎＴが経過していないならば、ＡビットからＮｉビット分をランダムに選択して、ランダムビットマスクを生成する（ステップＳ３）。この際、Ｎｉ＜＝Ａ／２ならば、ビットマスクに使用するビットを、Ｎｉ＞Ａ／２ならばビットマスクにしないビットを選択する。これにより、ビットマスク生成のために選択すべきビット数は高々“Ａ／２”となる。さらに値｛０，１｝をランダムに割り当てる。
【００３１】
このとき、決定したＮｉビットに対するビットマスクの重複チェックを行う（ステップＳ４）。Ｎｊ（ｊ＝１，２，・・・，ｉ−１）に対するビットマスクが、Ｎｉビットに対するビットマスクの一部に完全一致する場合、ステップＳ３へ遷移して、再度ランダムな割り当てを行なう。一方、ステップＳ４において、Ｎｊ（ｊ＝１，２，・・・，ｉ−１）に対するビットマスクが、Ｎｉビットに対するビットマスクの一部と完全一致しなくなったら、ステップＳ５へ遷移する。このようにして、各Ｎｉビット間で重複のないビットマスクを生成する。
【００３２】
一方、ステップＳ７において、最初のフローサンプリング開始から時間ｎＴ（ｎ＞＝Ｓ）が経過した場合は、手順６として、解析装置２は、エントロピーベースのランダムビットマスクを生成する（ステップＳ８）。すなわち、解析装置２は、０／１個数カウンタを用い、ビット毎のエントロピーＥｉ（ｉ＝１，２，・・・，Ａ）を計算する。ｉ番目のビットの０の個数をＭｉ０、１の個数をＭｉ１、ｉ番目のビットが０である確率をｐｉ０、１である確率をｐｉ１とすると、エントロピーは、以下のように計算される。
Ei=-pi0log(pi0)-pi1log(pi1)
pi0=Mi0/(Mi0+Mi1)
pi1=Mi1/(Mi0+Mi1)
【００３３】
このように求められたＡ個のエントロピーの大きなものから順番にＮｉビットのビットマスクに使用する。更に、値｛０，１｝をランダムに割り当ててビットマスクを生成し、ステップＳ５へ遷移する。
【００３４】
解析装置２は、ビットマスクをルータ１に適用して、フローサンプリングを実施する（ステップＳ５）。すなわち、解析装置２は、生成されたＮｉ（ｉ＝１，２，・・・，Ｂ）それぞれに対するビットマスクを、アクセスリストに変換し、ルータ１へ適用し、フローサンプリングを行う。
【００３５】
次に、フローサンプリング開始から時間Ｔ（第１の所定時間）が経過したかどうかを判断する（ステップＳ６）。フローサンプリング開始から時間Ｔが経過していない場合は、ステップＳ５へ遷移してフローサンプリングを継続する。一方、ステップＳ６において、フローサンプリング開始から時間Ｔが経過した場合は、ステップＳ７へ遷移して、同様の処理を実行する。
【００３６】
以上説明したように、ルータ１におけるフローサンプリングが開始してから時間ｎＴ（ｎ＞＝Ｓ）（第２の所定時間）経過後に、解析装置２においてビット毎のエントロピーを計算し、エントロピーが大きいビットから順にランダムビットマスクの生成に使用するので、例えば、ＩＰアドレスを構成するビットが、高いエントロピーである場合、偏りの少ないフローサンプリングを実現することが可能となる。
【００３７】
［第４の実施形態］
最初のフローサンプリング開始から時間ｎＴ（ｎ＞＝Ｓ）が経過している場合は、解析装置２で計算する０／１個数カウンタを使って実際のフローサンプリングレートＲ’を計算することができる。
【００３８】
フローサンプリング後のトラヒックにおけるフロー数（Ｆ）と、Ｒ’とから、全フロー数（ＡＦ）を次式のように推定することができる。
ＡＦ＝Ｒ’×Ｆ
【００３９】
本実施形態によれば、観測したフロー（パケット群）に対して、アクセスリストを適用することによって、ＩＰアドレスを構成するビットのエントロピーが高い場合、偏りの少ないフローサンプリングが実現することができる。
【符号の説明】
【００４０】
１  ルータ
２  解析装置
１００  ルータ
【図１】
2010233147.tif 000004
【図２】
2010233147.tif 000005
【図３】
2010233147.tif 000006
【図４】
2010233147.tif 000007