説明

フローサンプリング方法およびフローサンプリングシステム

【課題】コストを抑えると共に、偏りの少ないフローサンプリングを実現する。
【解決手段】アクセスリスト機能を有するルータ1と、フローの統計的な解析を行なう解析装置2とから構成されるフローサンプリングシステムであって、解析装置2は、サンプリングレートを含むサンプリングパラメータを設定し、フローサンプリングのビット数に対応し各ビット間で重複しない複数のランダムビットマスクを生成し、生成した複数のランダムビットマスクをアクセスリストに変換してルータ1に適用し、ルータ1は、アクセスリストに基づいてフローサンプリングを行ない、解析装置2は、ルータ1でフローサンプリングされたフローの統計的な解析を行なう。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アクセスリスト機能を有するルータおよびフローの統計的な解析を行なう解析装置を用いるフローサンプリング方法およびフローサンプリングシステムに関する。
【背景技術】
【0002】
従来から、観測した膨大な量のトラヒックデータをリアルタイムで処理するためのサンプリング技術が提案されている。サンプリング方法には、パケットサンプリングとフローサンプリングの2種類が存在する。パケットサンプリングは、ハードウェア実装が容易であるという利点があり、非特許文献1を中心として数多くの製品が存在する。一方、フローサンプリングは、フロー統計量の推定精度が高いという利点がある。このフローサンプリングについては、非特許文献3や非特許文献4に具体的な技術が開示されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Sampled NetFlow, http://www.cisco.com/en/US/docs/ios/12_0s/feature/guide/12s_sanf.html
【非特許文献2】P.Tune and D.Veitch, “Towards Optimal Sampling for Flow Size Estimation,” ACM SIGCOMM IMC, Oct. 2008.
【非特許文献3】NetFlow Input Filters, http://www.cisco.com/en/US/docs/ios/12_3t/12_3t4/feature/guide/gtnfinpf.html
【非特許文献4】小林,西野,木村,石橋,“フロー計測技術による大規模VoIPトラヒック品質計測システムの提案,” 信学技法,NS2008-89,Nov. 2008.
【非特許文献5】C.Estan, K.Keys, D.Moore and G.Varghese, “Building a better NetFlow,” ACM SIGCOMM IMC, Sep. 2003.
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、パケットサンプリングは、フロー統計量(例えば、フロー当たりのパケット数)の推定精度が悪いという欠点を有している。この欠点を克服するために、パケットの特定のフィールド情報を利用する手法が提案されている。非特許文献2は、2種類のパケットサンプリング、すなわち、TCPのSYNパケットのサンプリングと、SYN以外のパケットのサンプリングを行うDual Samplingを提案している。しかし、TCPに特化しているため、TCP以外のプロトコル(例えば、UDP)には適用することができない。
【0005】
一方、フローサンプリングは、フロー単位でサンプリングを行うため、基本的に、全パケットのヘッダ情報を参照してフローを判断しなければならない。非特許文献3や非特許文献4に開示されている手法では、基本的に専用のハードウェアを必要とするため、コストが高い。また、特定のプロトコルフィールドのような単純なアクセスリストでは、フロー統計量の推定結果に偏りが生じる恐れがある。この偏りを解消するために、非特許文献5に開示されているように、フローを定義するパラメータ(例えば、5-tuple情報)をハッシュ関数にかけ、その値から決定する手法が考えられる。しかし、任意のプロトコルフィールドをハッシュ関数にかけるハードウェアが必要となり、現状では簡易に実現することはできない。
【0006】
本発明は、このような事情に鑑みてなされたものであり、実現のためのコストを抑えると共に、偏りの少ないフローサンプリングを実現することができるフローサンプリング方法およびフローサンプリングシステムを提供することを目的とする。
【課題を解決するための手段】
【0007】
(1)上記の目的を達成するために、本発明は、以下のような手段を講じた。すなわち、本発明のフローサンプリング方法は、アクセスリスト機能を有するルータおよびフローの統計的な解析を行なう解析装置を用いるフローサンプリング方法であって、前記解析装置において、サンプリングレートを含むサンプリングパラメータを設定するステップと、フローサンプリングのビット数に対応し各ビット間で重複しない複数のランダムビットマスクを生成するステップと、前記生成された複数のランダムビットマスクをアクセスリストに変換して前記ルータに適用するステップと、前記ルータにおいて、フローサンプリングを行なうステップと、前記解析装置において、前記ルータでフローサンプリングされたフローの統計的な解析を行なうステップと、を少なくとも含むことを特徴としている。
【0008】
このように、フローサンプリングのサンプリングレートに対応し、相互に完全一致しない複数のランダムビットマスクを生成し、その複数のランダムビットマスクをアクセスリストに変換してルータに適用し、ルータにおいて、フローサンプリングを行なうので、安価な機器のみでフローサンプリングを行なうことが可能となる。また、複数のランダムビットマスクを用いるため、偏りの少ないフローサンプリングを実現することが可能となる。
【0009】
(2)また、本発明のフローサンプリング方法は、前記ルータにおけるフローサンプリングが開始してから第1の所定時間が経過したかどうかを判定するステップと、前記判定の結果、前記ルータにおけるフローサンプリングが開始してから第1の所定時間が経過したときに、再度複数のランダムビットマスクを生成するステップと、をさらに含むことを特徴としている。
【0010】
このように、ルータにおけるフローサンプリングが開始してから第1の所定時間が経過したかどうかを判定し、判定の結果、ルータにおけるフローサンプリングが開始してから第1の所定時間が経過したときに、再度複数のランダムビットマスクを生成するので、設定したサンプリングレートに近づけることが可能となり、より精度の高いフローサンプリングを実施することが可能となる。
【0011】
(3)また、本発明のフローサンプリング方法は、前記ルータにおけるフローサンプリングが開始してから第2の所定時間が経過したかどうかを判定するステップと、前記判定の結果、前記ルータにおけるフローサンプリングが開始してから第2の所定時間が経過したときに、前記解析装置においてビット毎のエントロピーを計算するステップと、前記エントロピーが大きいビットから順に前記ランダムビットマスクの生成に使用することを特徴としている。
【0012】
このように、ルータにおけるフローサンプリングが開始してから第2の所定時間が経過したかどうかを判定し、判定の結果、ルータにおけるフローサンプリングが開始してから第2の所定時間が経過したときに、解析装置においてビット毎のエントロピーを計算し、エントロピーが大きいビットから順にランダムビットマスクの生成に使用するので、例えば、IPアドレスを構成するビットが、高いエントロピーである場合、偏りの少ないフローサンプリングを実現することが可能となる。
【0013】
(4)また、本発明のフローサンプリングシステムは、アクセスリスト機能を有するルータと、フローの統計的な解析を行なう解析装置とから構成されるフローサンプリングシステムであって、前記解析装置は、サンプリングレートを含むサンプリングパラメータを設定し、フローサンプリングのサンプリングレートに対応し、相互に完全一致しない複数のランダムビットマスクを生成し、前記生成した複数のランダムビットマスクをアクセスリストに変換して前記ルータに適用し、前記ルータは、前記アクセスリストに基づいてフローサンプリングを行ない、前記解析装置は、前記ルータでフローサンプリングされたフローの統計的な解析を行なうことを特徴としている。
【0014】
このように、フローサンプリングのビット数に対応し各ビット間で重複しない複数のランダムビットマスクを生成し、その複数のランダムビットマスクをアクセスリストに変換してルータに適用し、ルータにおいて、フローサンプリングを行なうので、安価な機器のみでフローサンプリングを行なうことが可能となる。また、複数のランダムビットマスクを用いるため、偏りの少ないフローサンプリングを実現することが可能となる。
【発明の効果】
【0015】
本発明によれば、フローサンプリングのサンプリングレートに対応し、相互に完全一致しない複数のランダムビットマスクを生成し、その複数のランダムビットマスクをアクセスリストに変換してルータに適用し、ルータにおいて、フローサンプリングを行なうので、安価な機器のみでフローサンプリングを行なうことが可能となる。また、複数のランダムビットマスクを用いるため、偏りの少ないフローサンプリングを実現することが可能となる。
【図面の簡単な説明】
【0016】
【図1】本実施形態に係るフローサンプリングシステムの概略構成を示す図である。
【図2】第1の実施形態に係る動作手順を示すフローチャートである。
【図3】第2の実施形態に係る動作手順を示すフローチャートである。
【図4】第3の実施形態に係る動作手順を示すフローチャートである。
【発明を実施するための形態】
【0017】
図1は、本実施形態に係るフローサンプリングシステムの概略構成を示す図である。このフローサンプリングシステムは、ルータ1、解析装置2から構成されている。ルータ100は、網1と網2とを中継し、ルータ1にフローを提供する。ルータ1は、アクセスリストフィルタリング機能を有している。解析装置2は、例えば、汎用PCで構成され、ルータ1でサンプリングされたフローを解析する機能を有し、エントロピー計算用の0/1カウントバッファを備えている。なお、アクセスリスト(access control list)とは、一般的に、受信したフロー(パケット)が正規のものであるか、不正なものであるか判断するために用いるリストで、「ACL(アクル)」とも呼称されるものである。そして、アクセスリストフィルタリングとは、送信元と送信先のIPアドレス、ポート番号、プロトコルなどを指定してフィルタリングする機能である。
【0018】
解析装置2は、後述するように、サンプリングレートを含むサンプリングパラメータを設定し、フローサンプリングのサンプリングレートに対応し、相互に完全一致しない複数のランダムビットマスクを生成する。そして、生成した複数のランダムビットマスクをアクセスリストに変換してルータ1に適用する。ルータ1は、アクセスリストに基づいてフローサンプリングを行なう。解析装置2は、ルータ1でフローサンプリングされたフローの統計的な解析を行なう。以下、本実施形態に係るフローサンプリングシステムの動作手順について説明する。
【0019】
[第1の実施形態]
図2は、第1の実施形態に係る動作手順を示すフローチャートである。手順1として、解析装置2は、サンプリングレート1/R、サンプリングインターバルT、インターバル閾値S、フローサンプリングに利用可能なプロトコルフィールドのビット数A(但し、Aは一般的にはIPアドレスが該当し、IPv4では、送信元と宛先IPアドレスの両方を使用する場合64となる。)、サンプリングレートの精度1/εを決定する(ステップS1)。
【0020】
次に、手順2として、解析装置2は、次式を満たすように、Niを定める(ステップS2)。
【0021】
【数1】


ただし、Ni(i=1,2,・・・,B)、N1<N2<・・・<NB、α<1/εである。
【0022】
次に、手順3として、AビットからNiビット分をランダムに選択して、ランダムビットマスクを生成する(ステップS3)。この際、Ni<=A/2ならば、ビットマスクに使用するビットを、Ni>A/2ならばビットマスクにしないビットを選択する。これにより、ビットマスク生成のために選択すべきビット数は高々“A/2”となる。さらに値{0,1}をランダムに割り当てる。
【0023】
このとき、決定したNiビットに対するビットマスクの重複チェックを行う(ステップS4)。Nj(j=1,2,・・・,i−1)に対するビットマスクが、Niビットに対するビットマスクの一部に完全一致する場合、ステップS3へ遷移して、再度ランダムな割り当てを行なう。一方、ステップS4において、Nj(j=1,2,・・・,i−1)に対するビットマスクが、Niビットに対するビットマスクの一部と完全一致しなくなったら、ステップS5へ遷移する。このようにして、各Niビット間で重複のないB個のビットマスクを生成する。
【0024】
手順4として、解析装置2は、ビットマスクをルータ1に適用して、フローサンプリングを実施する(ステップS5)。すなわち、解析装置2は、生成されたNi(i=1,2,・・・,B)それぞれに対するビットマスクを、アクセスリストに変換し、ルータ1へ適用し、フローサンプリングを行う。
【0025】
以上説明したように、第1の実施形態によれば、ランダムビットマスクを生成し、その複数のランダムビットマスクをアクセスリストに変換してルータ1に適用し、ルータ1において、フローサンプリングを行なうので、安価な機器のみでフローサンプリングを行なうことが可能となる。また、複数のランダムに生成されたビットマスクを用いるため、偏りの少ないフローサンプリングを実現することが可能となる。
【0026】
[第2の実施形態]
図3は、第2の実施形態に係る動作手順を示すフローチャートである。ステップS1からステップS5までは、図2に示した第1の実施形態と同様である。第2の実施形態では、フローサンプリング開始から時間T(第1の所定時間)が経過したかどうかを判断する(ステップS6)。フローサンプリング開始から時間Tが経過していない場合は、ステップS5へ遷移してフローサンプリングを継続する。一方、ステップS6において、フローサンプリング開始から時間Tが経過した場合は、ステップS3へ遷移し、解析装置2において、各Aビットの0/1カウントバッファを更新する。更新は、フローが終了した時点でも良い。
【0027】
以上説明したように、第2の実施形態によれば、ルータ1におけるフローサンプリングが開始してから時間T(第1の所定時間)が経過したかどうかを判定し、判定の結果、ルータ1におけるフローサンプリングが開始してから時間Tが経過したときに、再度複数のランダムビットマスクを生成するので、生成されたビットマスクが所望のサンプリングレートとならない場合でも、定期的に更新することで、この影響を和らげることが可能となる。
【0028】
[第3の実施形態]
図4は、第3の実施形態に係る動作手順を示すフローチャートである。解析装置2は、サンプリングレート1/R、サンプリングインターバルT、インターバル閾値S、フローサンプリングに利用可能なプロトコルフィールドのビット数A(但し、Aは一般的にはIPアドレスが該当し、IPv4では、送信元と宛先IPアドレスの両方を使用する場合64となる。)、サンプリングレートの精度1/εを決定する(ステップS1)。
【0029】
次に、解析装置2は、第1の実施形態で示した数式を満たすように、Niを定める(ステップS2)。ただし、Ni(i=1,2,・・・,B)、N1<N2<・・・<NB、α<1/εである。
【0030】
次に、手順5として、最初のフローサンプリング開始から、時間nT(n<S)が経過したかどうかを判断し(ステップ7)、時間nTが経過していないならば、AビットからNiビット分をランダムに選択して、ランダムビットマスクを生成する(ステップS3)。この際、Ni<=A/2ならば、ビットマスクに使用するビットを、Ni>A/2ならばビットマスクにしないビットを選択する。これにより、ビットマスク生成のために選択すべきビット数は高々“A/2”となる。さらに値{0,1}をランダムに割り当てる。
【0031】
このとき、決定したNiビットに対するビットマスクの重複チェックを行う(ステップS4)。Nj(j=1,2,・・・,i−1)に対するビットマスクが、Niビットに対するビットマスクの一部に完全一致する場合、ステップS3へ遷移して、再度ランダムな割り当てを行なう。一方、ステップS4において、Nj(j=1,2,・・・,i−1)に対するビットマスクが、Niビットに対するビットマスクの一部と完全一致しなくなったら、ステップS5へ遷移する。このようにして、各Niビット間で重複のないビットマスクを生成する。
【0032】
一方、ステップS7において、最初のフローサンプリング開始から時間nT(n>=S)が経過した場合は、手順6として、解析装置2は、エントロピーベースのランダムビットマスクを生成する(ステップS8)。すなわち、解析装置2は、0/1個数カウンタを用い、ビット毎のエントロピーEi(i=1,2,・・・,A)を計算する。i番目のビットの0の個数をMi0、1の個数をMi1、i番目のビットが0である確率をpi0、1である確率をpi1とすると、エントロピーは、以下のように計算される。
Ei=-pi0log(pi0)-pi1log(pi1)
pi0=Mi0/(Mi0+Mi1)
pi1=Mi1/(Mi0+Mi1)
【0033】
このように求められたA個のエントロピーの大きなものから順番にNiビットのビットマスクに使用する。更に、値{0,1}をランダムに割り当ててビットマスクを生成し、ステップS5へ遷移する。
【0034】
解析装置2は、ビットマスクをルータ1に適用して、フローサンプリングを実施する(ステップS5)。すなわち、解析装置2は、生成されたNi(i=1,2,・・・,B)それぞれに対するビットマスクを、アクセスリストに変換し、ルータ1へ適用し、フローサンプリングを行う。
【0035】
次に、フローサンプリング開始から時間T(第1の所定時間)が経過したかどうかを判断する(ステップS6)。フローサンプリング開始から時間Tが経過していない場合は、ステップS5へ遷移してフローサンプリングを継続する。一方、ステップS6において、フローサンプリング開始から時間Tが経過した場合は、ステップS7へ遷移して、同様の処理を実行する。
【0036】
以上説明したように、ルータ1におけるフローサンプリングが開始してから時間nT(n>=S)(第2の所定時間)経過後に、解析装置2においてビット毎のエントロピーを計算し、エントロピーが大きいビットから順にランダムビットマスクの生成に使用するので、例えば、IPアドレスを構成するビットが、高いエントロピーである場合、偏りの少ないフローサンプリングを実現することが可能となる。
【0037】
[第4の実施形態]
最初のフローサンプリング開始から時間nT(n>=S)が経過している場合は、解析装置2で計算する0/1個数カウンタを使って実際のフローサンプリングレートR’を計算することができる。
【0038】
フローサンプリング後のトラヒックにおけるフロー数(F)と、R’とから、全フロー数(AF)を次式のように推定することができる。
AF=R’×F
【0039】
本実施形態によれば、観測したフロー(パケット群)に対して、アクセスリストを適用することによって、IPアドレスを構成するビットのエントロピーが高い場合、偏りの少ないフローサンプリングが実現することができる。
【符号の説明】
【0040】
1 ルータ
2 解析装置
100 ルータ

【特許請求の範囲】
【請求項1】
アクセスリスト機能を有するルータおよびフローの統計的な解析を行なう解析装置を用いるフローサンプリング方法であって、
前記解析装置において、
サンプリングレートを含むサンプリングパラメータを設定するステップと、
フローサンプリングのサンプリングレートに対応し、相互に完全一致しない複数のランダムビットマスクを生成するステップと、
前記生成された複数のランダムビットマスクをアクセスリストに変換して前記ルータに適用するステップと、
前記ルータにおいて、フローサンプリングを行なうステップと、
前記解析装置において、前記ルータでフローサンプリングされたフローの統計的な解析を行なうステップと、を少なくとも含むことを特徴とするフローサンプリング方法。
【請求項2】
前記ルータにおけるフローサンプリングが開始してから第1の所定時間が経過したかどうかを判定するステップと、
前記判定の結果、前記ルータにおけるフローサンプリングが開始してから第1の所定時間が経過したときに、再度複数のランダムビットマスクを生成するステップと、をさらに含むことを特徴とする請求項1記載のフローサンプリング方法。
【請求項3】
前記ルータにおけるフローサンプリングが開始してから第2の所定時間が経過したかどうかを判定するステップと、
前記判定の結果、前記ルータにおけるフローサンプリングが開始してから第2の所定時間が経過したときに、前記解析装置においてビット毎のエントロピーを計算するステップと、
前記エントロピーが大きいビットから順に前記ランダムビットマスクの生成に使用することを特徴とする請求項1または請求項2記載のフローサンプリング方法。
【請求項4】
アクセスリスト機能を有するルータと、フローの統計的な解析を行なう解析装置とから構成されるフローサンプリングシステムであって、
前記解析装置は、
サンプリングレートを含むサンプリングパラメータを設定し、フローサンプリングのサンプリングレートに対応しサンプリングレートに対応し、相互に完全一致しない複数のランダムビットマスクを生成し、前記生成した複数のランダムビットマスクをアクセスリストに変換して前記ルータに適用し、
前記ルータは、前記アクセスリストに基づいてフローサンプリングを行ない、
前記解析装置は、前記ルータでフローサンプリングされたフローの統計的な解析を行なうことを特徴とするフローサンプリングシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2010−233147(P2010−233147A)
【公開日】平成22年10月14日(2010.10.14)
【国際特許分類】
【出願番号】特願2009−80942(P2009−80942)
【出願日】平成21年3月30日(2009.3.30)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】