本発明は、パケットヘッダから収集した統計情報またはパケットからコピーされたミラーパケットを、通信状態を解析するためのアナライザに送信するパケット中継装置およびトラフィックモニタシステムに関する。
インターネットでは、従来のベストエフォート型データ通信だけでなく、音声・動画や基幹業務のトランザクションデータなどの通信品質保証が必要なデータも通信されるようになった。また、ADSL(Asymmetric Digital Subscriber Line)、FTTH(Fiber To The Home)等によるアクセス回線のブロードバンド化に伴い、通信されるデータ量も増大している。そして、社会基盤としてのインターネットの重要性が高まるにつれ、インターネット上の通信サービスの品質低下・停止をもたらずDoS(Denial of Service)攻撃やP2P(peer to peer)トラフィックによるネットワークの帯域占有などが大きな社会問題となっている。
このような背景から、キャリア、ISP(Internet Service Provider)などの通信サービス事業者は、ネットワーク上での通信状態を把握するために、通信データ量やパケットのヘッダ情報をはじめとする統計情報の収集や、通信中のパケットからコピーされたミラーリングパケットを解析用のアナライザに送信するミラーリングなどのトラフィックモニタ機能を必要としている。
ネットワーク上での通信状態を把握する目的としては、例えば、通信品質保証サービス提供時の品質保証状況の確認がある。また、限られたネットワーク資源でデータ量の増大に対応するため、ネットワーク資源を有効に活用するトラフィック・エンジニアリングに反映するトラフィック情報の収集がある。また、DoS攻撃の検出・分析、P2Pトラフィックによるネットワークの帯域占有の検出・分析がある。さらに、顧客の需要を予測してネットワーク資源を計画的に準備しておき、帯域や通信サービスへのユーザ要求に対して迅速にネットワーク資源を提供するプロビジョニングや、課金などがある。
これらを実現するため、キャリア、ISPで用いられるルータ・スイッチ等のパケット中継装置には、非特許文献1に記載されたsFlow、非特許文献2に記載されたNetFlow等の統計機能や、非特許文献3に記載されたパケットを複製して解析するためのポートミラーリング機能が備わっている。
いずれのトラフィックモニタ機能を用いる場合でも、パケット中継装置の回線の一つには通信状態を解析するためのアナライザが接続される。パケット中継装置では、パケットヘッダから収集した統計情報をデータとして含む統計パケットまたはパケットから複製したミラーパケットを、トラフィック解析用のアナライザに送信して、トラフィックの解析や監視を行う。
sFlowの場合には、パケット中継装置において、入力パケットの一部をパケット中継装置の運用管理者が設定したサンプリングレートでサンプリングし、サンプリング対象とされたパケットのヘッダ情報とインタフェース毎の統計情報を収集し、このヘッダ情報と統計情報とをデータとして備えるsFlow統計パケットを生成し、生成されたsFlow統計パケットをアナライザへ送信する。
NetFlowの場合には、パケット中継装置において、入力パケットの送信元端末や宛先端末、アプリケーション、品質レベルなどにより分類されるフロー毎のパケットのヘッダ情報とフロー毎の統計情報を収集し、このヘッダ情報と統計情報とをデータとして備えるNetFlow統計パケットを生成し、生成されたNetFlow統計パケットをアナライザへ送信する。
以下、ミラーパケットの複製元パケットまたはsFlow、NetFlowの統計収集対象パケットが流れる監視対象となる回線または論理的なインタフェースをモニタポートと呼ぶ。sFlow統計パケットまたはNetFlow統計パケットを送信する出力回線をアナライザポートと呼ぶ。また、ミラーパケットを送信する出力回線をミラーポートと呼ぶ。
非特許文献4は、日本のインターネットトラフィックが指数関数的に延びていることを示している。非特許文献5のアブストラクトには、DoS攻撃には、大きく分けてlogic攻撃とflooding攻撃があることが、解説されている。非特許文献6には、負荷分散技術であるマルチパスによるロードバランスを記載している。非特許文献7は、帯域監視アルゴリズムとしてのリーキーバケット(漏れのあるバケツ)アルゴリズムが記載されている。
特許文献1は、サンプルパケットをコレクタ装置(本明細書におけるアナライザ)に転送する通信統計処理装置が記載されている。特許文献2も、サンプルしたパケットを分析装置(本明細書におけるアナライザ)に転送するパケット通信装置を開示している。特許文献3には、CAM(Content Addressable Memory)と呼ばれる、データを入力すると入力データに一致するエントリの含まれるアドレスを出力する高速な検索専用のデバイスを用いたフロー検出装置の開示がある。
まず、従来のパケット中継装置でミラーリングする場合のシステム構成を図1および図2を参照して説明する。ここで、図1および図2はミラーリングシステムのハードウェアブロック図である。図1において、パケット中継装置(S0)101は、入力回線102からパケットP0、P1、P2、P3を受信し、出力回線103からこのパケットP0、P1、P2、P3を送信する。
入力回線102から受信したパケットをミラーリングする場合、ミラーリングシステムは、入力回線102をモニタポートとして設定し、ミラーポート110を接続する。ミラーリングシステムは、ミラーポート110にはミラーパケットを解析するためのアナライザ(A0)120を接続する。パケット中継装置(S0)101は、モニタポート102から受信したパケットP0、P1、P2、P3をコピーしたミラーパケットC0、C1、C2、C3を生成し、このミラーパケットC0、C1、C2、C3をミラーポート110から送信する。ミラーポート110から送信されたミラーパケットC0、C1、C2、C3は、ミラーポート110に接続されたアナライザ120に入力される。アナライザ120は、パケットのヘッダ情報や帯域情報が解析される。
図2を参照して、従来のパケット中継装置で、ミラーポートを複数に拡張する場合のシステム構成を説明する。図2において、パケット中継装置(S0)101は、図1のミラーポート110に加え、ミラーポート111、ミラーポート112、ミラーポート113を接続する。ミラーリングシステムは、ミラーポート110にはミラーパケットを解析するためのアナライザ(A0)120を接続し、ミラーポート111にはアナライザ(A1)121を接続し、ミラーポート112にはアナライザ(A2)122を接続し、ミラーポート113にはアナライザ(A3)123を接続する。
パケット中継装置(S0)101は、ミラーポートのポート数分のミラーパケットを生成し、ミラーポート110からミラーパケットC0、C1、C2、C3を送信し、ミラーポート111からもミラーパケットC0、C1、C2、C3を送信し、ミラーポート112からもミラーパケットC0、C1、C2、C3を送信し、ミラーポート113からもミラーパケットC0、C1、C2、C3を送信する。
ミラーポート110から送信されたミラーパケットC0、C1、C2、C3は、ミラーポート110に接続されたアナライザ120に入力され、アナライザ120でパケットのヘッダ情報や帯域情報が解析される。同様に、ミラーポート111から送信されたミラーパケットC0、C1、C2、C3は、ミラーポート111に接続されたアナライザ121に入力される。ミラーポート112から送信されたミラーパケットC0、C1、C2、C3は、ミラーポート112に接続されたアナライザ122に入力される。ミラーポート113から送信されたミラーパケットC0、C1、C2、C3は、ミラーポート113に接続されたアナライザ123に入力される。アナライザ121〜123は、パケットのヘッダ情報や帯域情報が解析される。
次に、従来のパケット中継装置で統計情報を収集する場合のシステム構成を図3を参照して説明する。ここで、図3は統計情報収集システムのハードウェアブロック図である。図3において、従来のパケット中継装置(S0)1701は、入力回線1702からパケットP0、P1、P2、P3を受信し、出力回線1703からこのパケットP0、P1、P2、P3を送信する。入力回線1702から受信したパケットの統計情報を解析するため、統計情報収集システムは、アナライザポート1710に統計情報の集計・編集・表示をするためのアナライザ(A0)120が接続されている。パケット中継装置(S0)101では、モニタポート1702から受信したパケットP0、P1、P2、P3のヘッダ情報と統計情報を含む統計パケットS0、S1、S2、S3を生成し、この統計パケットS0、S1、S2、S3をアナライザポート1710から送信する。アナライザポート1710から送信された統計パケットS0、S1、S2、S3は、アナライザポート1710に接続されたアナライザ1720に入力し、アナライザ1720でパケットのヘッダ情報と統計情報が解析される。
ただし、アナライザの解析性能には限界があり、図3ではS0のみが解析可能で、後続のS1、S2、S3は解析対象から採りこぼされてしまう(×印)。この場合、パケット中継装置(S0)1701が備えるサンプリング機能を用いることで、入力回線1702から受信した全パケットP0、P1、P2、P3のうち一部のパケットをサンプルとした統計パケットのみをアナライザポート1710から送信することができる。図3の場合であれば、P0をサンプルとする統計パケットS0のみをアナライザポート1710から送信することにより、アナライザ1720に対する統計パケットの負荷をアナライザ1720の性能限界以内に抑え、統計パケットの採りこぼしを防ぐことができる。しかし、入力回線1702から受信した全パケットP0、P1、P2、P3のうち一部のパケットの統計情報しか収集できないので、統計の精度は低下してしまう。
また、特定の送信元IPアドレス、宛先IPアドレス、L4プロトコル、送信元ポート、宛先ポートをもつパケットから構成されるフローのみを統計情報の収集対象とすることで、アナライザに対する統計パケットの負荷を抑えることもできる。図3の場合、P0、P1、P2、P3が互いに異なるフローに属するパケットであるものとしよう。ここで、統計情報収集システムは、P0が属するフローのみを統計情報の採集対象としても、アナライザ1720に対する統計パケットの負荷をアナライザ1720の性能限界以内に抑え、統計パケットの採りこぼしを防ぐことができる。しかし、入力回線1702から受信した全フローに属するパケットP0、P1、P2、P3のうち一部のフローに属するパケットの統計情報しか収集できないので、フロー全体の統計情報を得ることはできず、統計情報の採集対象外のフローが異常な挙動を示しても、これを検出して解析することはできない。
ビットレートの帯域監視アルゴリズムを図4を参照して説明する。ここで、図4はビットレートの帯域監視アルゴリズムを説明するフローチャートである。また、帯域監視アルゴリズムとして、リーキーバケットアルゴリズムを説明する。
リーキーバケットアルゴリズムは、ある深さを持った孔の空いた漏れバケツのモデルで、バケツに水が入っている間は監視帯域(孔の大きさ)で水は漏れ続け、パケット入力時にはこのパケットのバイト長分の水が注ぎ込まれる。パケットの到着揺らぎを許容するためにバケツに深さを持ち、バケツが溢れないうちは入力パケットは順守、溢れると違反と判定される。詳細には、図4のフローチャートに従う。
図4において、フローは、パケット中継装置にパケットが入力されることにより、開始される。ここで、TNOW:現時刻、TLST:前回のパケット入力時刻、R:監視帯域(ビットレート/パケットレート)、CNT:バケツ水量、THR:バケツ閾値、LEN:パケットのフレーム長である。パケット中継装置は、前回パケット入力時刻からの経過時間ΔTを計算する(S1401)。パケット中継装置は、ΔTの間にバケツからもれた水量(ΔDEC=ΔT×R)を計算する(S1402)。パケット中継装置は、現在バケツに水が残っているか判定する(S1403)。YESのとき、パケット中継装置は、現在のバケツ水量(NOWCNT)を計算し(S1404)、NOWCNTが、バケツ閾値を超過しているか判定する(S1406)。
ステップ1403でNOのとき、パケット中継装置は、NOWCNT=0として(S1405)、ステップ1406に遷移する。ステップ1406でYESのとき、帯域順守なので、パケット中継装置は、入力パケットのフレーム長相当の水をバケツに追加して(S1408)、バケツ内水量を更新する(S1411)。ステップ1406でNOのとき、帯域違反なので、パケット中継装置は、入力パケットを廃棄して、追加後を意味するCNT2にNOWCNTをセットして(S1410)、ステップ1411に遷移する。ステップ1411でバケツ内水量を更新したあと、パケット中継装置は、TLSTを更新して(S1412)、終了する。
インターネットトラフィックの関数的な増加により、パケット中継装置が収容しなければならないトラフィック量は増大しつつあり、パケット中継装置の収容回線は今後とも高速化すると見込まれる。このトラフィック量の増加率に関しては、半年〜1年で2倍程度というギルダーの法則が経験則として知られているのに対し、アナライザの性能はトラフィック量の増加はCPU性能の向上に依存するため、ムーアの法則という経験則に従うとすれば1年半程度で倍という程度である。実際、ネットワークのバックボーンでは10Gbps、40Gbpsの高速回線が用いられ、さらに100Gbpsの高速回線も実用化の検討が進められているのに対し、アナライザの性能は1Gbps程度に留まっている。このように、アナライザの性能向上は回線の高速化に追いつかないと見込まれ、この性能差は今後ますます拡大すると考えられる。すると、従来のトラフィックモニタ機能では、以下のような課題が生じることとなる。
sFlowの場合には、サンプリングレートをアナライザの性能に合わせて設定することで、解析対象となるトラフィック量がアナライザの解析能力を超えてしまうことを回避している。しかし、ネットワークのトラフィック量の増加に対しアナライザの性能向上が追いつかない場合、解析対象となるトラフィック量がアナライザの解析能力を超えてしまうことを回避するにはサンプリングレートを低く変更せざるを得ない。従って、ネットワークのトラフィック量に対して解析対象とできるトラフィック量の比率が低下するので、解析の統計精度が低下してしまう課題がある。
NetFlowの場合には、フロー毎の統計情報を収集しアナライザへ送信するが、収集できるフロー数には装置毎に制限があるほか、アナライザの性能でフロー数が制限される場合もある。従って、ネットワークのトラフィック量が増大してフロー数が増加すると、ネットワークを流れるフロー数に対して解析対象とできるフロー数の比率が低下してしまう課題がある。例えば、フロー毎の通信品質を確認するには、フロー毎のパケットの全数調査が必要となるのでsFlowよりもNetFlowが適しているが、全フローのうちで通信品質を確認できるフロー数がアナライザの性能によって制限されてしまうという課題がある。
ポートミラーリングの場合には、モニタポートが高速回線である場合、アナライザの解析能力を超える分のミラーパケットは解析することができないという課題がある。
例えば、ポートミラーリングでDoS攻撃の解析を行う場合で説明する。DoS攻撃には、大きく分けてlogic攻撃とflooding攻撃がある。logic攻撃とは、システムのセキュリティホールを利用してサーバが提供する通信サービスの品質低下、停止を引き起こす攻撃の総称であり、これまでに知られている例として、Land(送信元と宛先のIPアドレスが同一であるSYNパケットによる攻撃)、Tiny Fragment(TCPヘッダをフラグメントさせ、第一フラグメントパケットがTCPフラグを含まないようにすることでフィルタを通過させてしまう攻撃)などが知られている。flooding攻撃とは、攻撃者がサーバに大量のパケットを送付することによって正当なクライアントがサーバに接続しにくい状態としたり、サーバの計算資源を占有することによって通信サービスを提供不能としたりする攻撃の総称である。例としては、SYN flooding(SYNパケットを大量に送付することで、攻撃対象サーバのメモリ資源を枯渇させる攻撃)、Smurf(送信元IPアドレスを攻撃対象サーバに詐称し、宛先IPアドレスをブロードキャストとしたping(ICMP echo request)パケットを送信することで、攻撃対象サーバに大量のICMP echo replyが送りつけられる攻撃)などが知られている。
flooding攻撃の場合、大量の攻撃パケットが流れるので、攻撃パケットからコピーされたミラーパケットの一部がアナライザの解析能力不足によって解析できなかったとしても、全体の傾向を把握して解析することは可能である。しかしlogic攻撃の場合、攻撃パケットは1個でも攻撃として成立するので、当該パケットのミラーパケットがアナライザの解析能力不足によって解析できなければ、logic攻撃の解析は困難となる。
同様に、P2Pによる流出ファイルやウイルスの拡散を調査する場合、流出ファイルやウイルスを含むパケットの一部がアナライザの解析能力不足によって解析できなかったとしても、流出ファイルやウイルスが拡散していく様子を統計的に把握することは可能である。しかし、最初にファイルを流出させたパケットやウイルスを仕掛けたパケットのような流出・拡散元パケットを特定して解析するには、パケットのミラーパケットが解析対象から漏れないことが必要である。アナライザの解析能力不足によって当該パケットのミラーパケットが解析対象から漏れてしまうと、流出・拡散元パケットを特定して解析することは困難となる。
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態または適用例として実現することができる。
[適用例1]
適用例1のパケット中継装置は、複数の入力回線と出力回線に接続され、各入力回線から受信したパケットをヘッダ情報によって特定されるいずれかの出力回線から送信するパケット中継装置において、入力回線、出力回線、または受信パケットのヘッダ情報によって識別される入力フローもしくは送信パケットのヘッダ情報によって識別される出力フロー毎に、受信パケットまたは送信パケットからコピーされたミラーパケットを送信する複数のミラーポートから構成されるミラーポートグループを指定するミラーポートグループ指定部と、ミラーパケット毎に前記ミラーポートグループ指定部で指定された複数のミラーポートのうちいずれか一つのミラーポートを選択するミラーポート選択部を備え、ミラーポート選択部で選択されたミラーポートからミラーパケットを送信する。
適用例1のパケット中継装置を用いると、モニタポートが高速回線となった場合でも、複数のミラーポートにアナライザを接続してミラーパケットの負荷を分散することで、アナライザ単体の解析能力を超える分のミラーパケットは解析することができないというポートミラーの課題を解決できる。
[適用例2]
適用例2のパケット中継装置は、複数の入力回線と出力回線に接続され、各入力回線から受信したパケットをヘッダ情報によって特定されるいずれかの出力回線から送信するパケット中継装置において、入力回線、出力回線、論理的な入力インタフェース、論理的な出力インタフェースまたは受信パケットのヘッダ情報の一部または全部の値によって識別される入力フローまたは送信パケットのヘッダ情報の一部または全部の値によって識別される出力フロー毎に、受信パケットまたは送信パケットのヘッダ情報および/または統計情報をデータとして備える統計パケットを生成して、統計パケットを送信する複数のアナライザポートから構成されるアナライザポートグループを指定するアナライザポートグループ指定部と、統計パケット毎に前記アナライザポートグループ指定部で指定された複数のアナライザポートのうちいずれか一つのアナライザポートを選択するアナライザポート選択部を備え、アナライザポート選択部で選択されたアナライザポートから統計パケットを送信する。
適用例2のパケット中継装置を用いると、モニタポートが高速回線となった場合でも、複数のアナライザポートにアナライザを接続して統計パケットの負荷を分散することで、アナライザ単体の解析能力を超える分の統計パケットは解析することができないというsFlowとNetFlowの課題を解決できる。
sFlowの場合には、先述の通り、解析対象となるトラフィック量がアナライザの解析能力を超えてしまうことを回避するにはサンプリングレートを低く変更せざるを得ず、ネットワークのトラフィック量に対して解析対象とできるトラフィック量の比率が低下する。この結果、解析の統計精度が低下してしまう課題がある。ここで、適用例2のパケット中継装置を用いると、統計パケットの負荷が複数のアナライザに分散されるので、サンプリングレートを低く変更せずともアナライザポートとアナライザ台数を増やせば、アナライザ単体の解析能力を超過してしまうことを回避できる。従って、解析の統計精度が低下してしまう課題を解決できる。
NetFlowの場合には、先述の通り、アナライザの性能でフロー数が制限される場合には、ネットワークのトラフィック量が増大してフロー数が増加すると、ネットワークを流れるフロー数に対して解析対象とできるフロー数の比率が低下してしまう課題がある。ここで、適用例2のパケット中継装置を用いると、フロー毎の統計パケットの負荷を複数のアナライザで分散して統計の収集・解析ができるので、アナライザポートとアナライザ台数を増やせば、解析対象とするフロー数の比率を低下させずに済む。
特許文献1では、サンプルパケットを「コレクタ装置」(本実施例における「アナライザ」相当)に転送する点が本発明と同様であるが、本発明の適用例1の特徴である「ミラーパケット毎に前記ミラーポートグループ指定部で指定された複数のミラーポートのうちいずれか一つのミラーポートを選択するミラーポート選択部」に相当する処理部に関する記載は無く、特許文献1の対象外となっている点が本発明と相違している。同様に、本発明の適用例2の特徴である「統計パケット毎に前記アナライザポートグループ指定部で指定された複数のアナライザポートのうちいずれか一つのアナライザポートを選択するアナライザポート選択部」に相当する処理部に関する記載は無く、特許文献1の対象外となっている点が本発明と相違している。
次に、特許文献1の請求項1の条件「パケットフローを識別するためのフロー識別条件を定義した複数のフローエントリからなるフローテーブル」「フロー識別条件と対応して、統計対象とすべきパケットを限定するための統計制御情報を定義した少なくとも1つの統計制御エントリを含む統計制御テーブルを有し、」と本発明の請求項5の条件「受信パケットのヘッダ情報の一部または全部の値、または送信パケットのヘッダ情報の一部または全部の値を入力値、ミラーポートを識別する値を出力値とする関数に基づいた演算によりミラーポートを選択する」または請求項10の条件「受信パケットのヘッダ情報の一部または全部の値、または送信パケットのヘッダ情報の一部または全部の値を入力値、アナライザポートを識別する値を出力値とする関数に基づいた演算によりアナライザポートを選択する」との相違について説明する。なお、特許文献1のフロー識別条件とは、本発明の「受信パケットまたは送信パケットのヘッダ情報の一部または全部の値」として指定する条件と同様の概念と考えられる。
特許文献1と本発明の構成上の相違として、特許文献1では、「フロー識別条件」から「統計対象とすべきパケットを限定」するのに対し、本発明の請求項5または請求項10の条件では「フロー識別条件」から「ミラーポート」または「アナライザポート」を選択する点が異なっている。また効果の相違としては、特許文献1では統計対象とすべきパケットを限定するが、本発明ではモニタポートの負荷が高くなった場合でもモニタポートから受信または送信した全てのパケットのミラーリングが可能である、またはモニタポートから受信または送信した全てのパケットの統計を収集できる点が異なっている。本発明において「フロー識別条件」から「ミラーポート」または「アナライザポート」を選択する際の具体的な構成例は、実施例4と実施例8で説明する。
また、特許文献1の第10図のように、フロー識別条件を定義した複数のフローエントリからなるフローテーブルによってフローを設定する方式では、フロー数が増加するとフローテーブルの容量がネックとなって収集できるフロー数に制限が生じてしまう。これに対し、本発明の請求項5または請求項10のようにフロー識別条件となるヘッダ情報の値を関数に入力してミラーポートまたはアナライザポートを演算する方式の場合、関数を表現する一つの組み合わせ論理を所持すればよい。従って、追加のフローテーブルを必要としないので、収集できるフロー数が追加されたフローテーブルによって制限されないという効果をもつ点が異なる。
次に、特許文献2との相違について、説明する。特許文献2でも、サンプルしたパケットを分析装置(アナライザ相当)に転送する点は本発明と同様であるが、本発明の適用例1の特徴である「ミラーパケット毎に前記ミラーポートグループ指定部で指定された複数のミラーポートのうちいずれか一つのミラーポートを選択するミラーポート選択部」に相当する処理部に関する記載は無く、特許文献2の対象外となっている点が本発明と相違している。同様に、適用例2の特徴である「統計パケット毎に前記アナライザポートグループ指定部で指定された複数のアナライザポートのうちいずれか一つのアナライザポートを選択するアナライザポート選択部」に相当する処理部に関する記載は無く、特許文献2の対象外となっている点が本発明と相違している。
次に、特許文献2の請求項1の条件「ストリーム開始パケット内の情報に従ってパケットコピーを行う条件を生成する手段と、前記サンプリング対象ストリームの条件に適合するパケットをコピーして前記複数のネットワークインタフェースのいずれかから出力する」と本発明の請求項5の条件「受信パケットまたは送信パケットのヘッダ情報の一部または全部の値を入力値、ミラーポートを識別する値を出力値とする関数に基づいた演算によりミラーポートを選択する」または請求項10の条件「受信パケットまたは送信パケットのヘッダ情報の一部または全部の値を入力値、アナライザポートを識別する値を出力値とする関数に基づいた演算によりアナライザポートを選択する」との相違について説明する。特許文献2では、「パケット内の情報」が「フロー識別条件」に相当すると考えられる。
特許文献2と本発明の構成上の相違として、特許文献2では、「フロー識別条件」をサンプリング対象ストリームの条件とサンプリング確率を指定するための手段とするのに対し、本発明の請求項5または請求項10の条件では「ミラーポート」または「アナライザポート」を選択する手段とする点が異なっている。また効果の相違として、特許文献2では統計収集のためにサンプリングを実施することが前提となっており、モニタポートの負荷が高くなった場合には統計パケットの負荷がアナライザの性能を超過しないように、サンプリング対象ストリームの条件をさらに厳しく制限するか、またはサンプリング確率を低くする必要がある。そのため、モニタポートの負荷が高くなると、統計を収集できるパケットの割合は減少してしまう。これに対し、本発明ではサンプリングを前提としておらず、モニタポートの負荷が高くなった場合には複数のアナライザを複数のアナライザポートに接続して分散的に統計収集することにより、モニタポートから受信または送信した全てのパケットの統計を収集できる点が異なっている。
本発明によれば、ネットワーク上での通信状態を確実に把握するパケット中継装置およびトラフィックモニタシステムを提供できる。
以下、本発明の実施の形態について、実施例を用い図面を参照しながら説明する。なお、実質同一部位には同じ参照番号を振り、説明は繰り返さない。
実施例1について、図5ないし図12を参照して、説明する。ここで、図5はミラーリングシステム(トラフィックモニタシステム)のハードウェアブロック図である。図6はパケット中継装置のブロック図である。図7はパケット受信回路から送信されるヘッダ情報を説明する図である。図8はミラー判定部の機能ブロック図である。図9はミラーポートテーブルの構成を説明する図である。図10はミラーリング判定結果の構成を説明する図である。図11はミラーポート選択部の機能ブロック図である。図12はカウンタテーブルの構成を説明する図である。 図5において、パケット中継装置(S1)301は、図2のようにミラーポートのポート数分のミラーパケットを生成するのではなく、ミラーパケットは1パケットずつ生成する。また、パケット中継装置(S1)301は、図2のように全てのミラーパケットC0、C1、C2、C3を全てのミラーポート110〜113から送信するのではなく、ミラーパケット毎に送信するミラーポートを一つ選択する。パケット中継装置(S1)301は、ミラーパケットC0をミラーポート110から送信し、ミラーポート110に接続されたアナライザ120に入力し、アナライザ120でパケットのヘッダ情報や帯域情報が解析される。同様に、ミラーパケットC1は、ミラーポート111から送信され、ミラーポート111に接続されたアナライザ121に入力し、アナライザ121でパケットのヘッダ情報や帯域情報が解析される。ミラーパケットC2は、ミラーポート112から送信され、ミラーポート112に接続されたアナライザ122に入力し、アナライザ122でパケットのヘッダ情報や帯域情報が解析される。ミラーパケットC3は、ミラーポート113から送信され、ミラーポート113に接続されたアナライザ123に入力し、アナライザ123でパケットのヘッダ情報や帯域情報が解析される。
このようにミラーパケットを複数のアナライザに分散するように送信することで、全てのミラーパケットをミラーリング対象としたまま、アナライザへの負荷を下げることができる。
なお、負荷分散の従来技術としてマルチパスによるロードバランス(非特許文献6)が知られている。マルチパスと本実施例は、以下の相違点がある。まず、マルチパスは通常の通信パケットの負荷分散を対象とするのに対し、本実施例は、ミラーパケットの負荷分散を対象とする点が異なる。次に、マルチパスでは通信パケットを負荷分散するので、同一フロー、即ち同一のIPアドレス、ポート番号をもつパケットの間で順序逆転が生じないようにする必要がある。従って、同一フローは同一の出力回線から送信しなければならないという制限が生じる。これに対し本実施例では、ミラーパケットの負荷分散を対象とするのでこの順序逆転を防止するための制限は不要となり、同一フローであっても異なるミラーポートから送信することも可能である点が異なる。ただしこの場合、フロー毎にミラーパケットを解析するには、複数のアナライザに分散的に蓄積された同一フローのミラーパケットの情報を、後で集約してから解析する必要がある。
次に、パケット中継装置301の構成を図6を参照して、説明する。なお、パケット中継装置301の構成は、パケットをルーティング転送するルータまたはパケットをスイッチング転送するスイッチに適用できる。
図6において、パケット中継装置301は、パケットが入力する入力回線102と、パケットの受信処理を行うパケット受信回路410と、パケットに関する受信側での判定処理を行うパケット検索部420と、パケットを出力回線番号に基づきスイッチングするパケット中継処理手段430と、パケットに関する送信側での判定処理を行うパケット検索部440と、スイッチングされたパケットが蓄積される送信バッファ450からパケットを読み出してパケットの送信処理を行うパケット送信回路460と、パケットを出力する出力回線103と、ミラーパケットを出力するミラーポート110とを備える。パケット受信回路410では、入力回線番号601とパケットのフレーム長LEN602を判定し、パケット受信回路410から送信されるヘッダ情報600(図7を参照して後述する)に付加する。
パケット検索部420は、出力回線番号を判定するための経路検索部422と、ミラーリングに関わる判定を行うミラー判定部421とを備える。パケット検索部420で経路検索とミラー判定を行うため、パケット検索部420には、パケット受信回路410からヘッダ情報と入力回線情報が送信される。なお、出力回線毎にミラーリングを行う際は、送信側のパケット検索部440に備わるミラー判定部(図示の簡便のため省略)にてミラーリングに関わる判定を行うこともできる。
経路検索部422で得られた出力回線番号と、ミラー判定部421で得られたミラーリング指示、ミラーポート番号のミラーリング判定結果は、パケット検索部420における検索結果情報としてパケット受信回路410に送信される。パケット受信回路410に送信された検索結果情報は、パケット本体の情報と合わせてパケット中継処理手段430を経由してパケット送信回路460に送信される。パケット送信回路460において、コピー元のパケット本体は出力回線103に接続された送信バッファ450−1に蓄積され、出力回線103から送信される。
ミラーリング判定結果としてミラーリング指示がされたパケットに対しては、パケット送信回路460においてパケットのコピーが生成される。生成されたパケットのコピーは、ミラーパケットとしてミラーポート110に接続された送信バッファ450−2に蓄積され、ミラーポート110から送信される。
パケット検索部420に対するユーザ設定を可能とするため、パケット中継装置301には管理端末480が接続されており、管理端末480からの設定情報は一時的にレジスタ470に蓄積される。レジスタ470から読み出された情報に従って、後で示される各種のテーブル制御部がテーブル設定を行う。
図7を参照して、パケット受信回路から送信されるヘッダ情報を説明する。図7において、ヘッダ情報600は、入力回線番号601と、LEN602と、L2(layer 2)ヘッダ610と、L3(layer 3)ヘッダ620と、L4(layer 4)ヘッダ630とから構成される。さらに、L2ヘッダ610は、宛先MACアドレス611と、送信元MACアドレス612と、イーサタイプ613と、VLANタグ614とから構成される。L3ヘッダ620は、ここではIPv4について説明し、IPバァージョン621と、TOS(Type of Service)622と、L4プロトコル623と、送信元IPアドレス624と、宛先IPアドレス625とから構成される。L4ヘッダ630は、送信元ポート631と、宛先ポート632とから構成される。
ヘッダ情報600は、パケット中継装置301が受信したパケットヘッダ情報と、パケットヘッダには含まれない情報とから構成される。前者は、L2ヘッダ部610と、L3ヘッダ部(IPv4時)620と、L4ヘッダ部630である。後者は、パケット受信回路410で判定された入力回線番号601と、パケットのフレーム長LEN602である。
次に、パケット中継装置が備えるミラー判定部の構成について、図8を参照して、説明する。図8において、ミラー判定部421は、ヘッダ情報抽出部504と、モニタポート番号抽出部500と、ミラーポートテーブル制御部501と、ミラーポートテーブル502と、ミラーポート選択部503とから構成される。ヘッダ情報抽出部504は、パケット受信回路410から送信されたヘッダ情報のうち、ミラーリングの判定に必要となるヘッダ情報を抽出する。ヘッダ情報抽出部504は、抽出したヘッダ情報をモニタポート抽出部500とミラーポート選択部503に送信する。
さらにモニタポート番号抽出部500は、ヘッダ情報から、入力回線番号601を抽出し、ミラーポートテーブル制御部501に送信する。ミラーポートテーブル制御部501は、レジスタ470から読み出された情報に従ってミラーポートテーブル502への設定を行う。ミラーポートテーブル制御部501は、入力回線番号601に基づいてミラーポートテーブル502を読み出すリードアドレスを生成し、ミラーポートテーブル502を読み出す。
ここで、図8の説明を中断して、ミラーポートテーブルを説明する。図9において、ミラーポート502は、モニタポート毎に定義された複数のミラーポートエントリ502−i(i=0、1…n)によって構成される。ミラーポートエントリ502−iには、モニタポート毎のミラーリングの要否を示すミラーリングEN(enable)と、モニタポート毎のミラーポートグループに属する複数のミラーポート番号が設定されている。例えば、モニタポート0に対し定義されたミラーポートエントリ502−0では、モニタポート0でのミラーリングの要否を示すミラーリングEN0と、ミラーポート0−0、ミラーポート0−1、ミラーポート0−2、ミラーポート0−3という4つのミラーポートが定義されている。
図8に戻って、ミラーポートテーブル制御部501は、ミラーポートテーブル502から読み出したミラーポートエントリ502−iの情報をミラーポート選択部503へ送信する。ミラーポート選択部503は、テーブル制御部501から送信されたミラーポートエントリ502−iに設定されているミラーリングENがミラーリングを指示している場合には、複数のミラーポートから、ミラーパケットを送信する一つのミラーポートを動的に選択する。ミラーポートの選択方法については、追って説明する。ミラーポート選択部503は、ミラーポートを選択すると、ミラーリングENによるミラーリング指示をミラーリング判定結果に反映する。
再び、図8の説明を中断して、ミラーリング判定結果を説明する。図10において、ミラーリング判定結果700は、ミラーリング指示フラグ701と、ミラーポート番号702とから構成される。ミラーリング指示フラグ701は、’1’のときにミラーリングを指示、’0’のときにミラーリングを指示しない。ミラーポート番号702は、ミラーリング指示フラグ701が、’1’のとき、ミラーポート番号を記載し、ミラーリング指示フラグ701が’0’のとき、無効である。
図8に戻って、ミラーポート選択部503は、選択された一つのミラーポート番号をミラーリング判定結果700のミラーポート番号702としてパケット受信回路410に送信する。テーブル制御部501から送信されたミラーポートエントリ502−iに設定されているミラーリングENがミラーリングを指示していない場合には、ミラーリング判定結果700のミラーリング指示フラグを’0’としてパケット受信回路410に送信する。
ミラーポート選択部の構成を、図11を参照して説明する。図11において、実施例1では、ミラーポートの選択をパケットの到着順序に基づいたラウンドロビンのアルゴリズムに基づいて判定する。ミラーポート選択部503は、ミラーポート選択回路901と、カウンタテーブル制御部902と、カンタテーブル903で構成される。ミラー判定部421に、パケットが到着すると、まずモニタポート番号抽出部500で抽出された入力回線番号601と、ミラーポートテーブル制御501で得られたミラーポートエントリ502−iの情報がミラーポート選択回路901に送信される。ミラーポート選択回路901は、このうち入力回線番号601をカウンタテーブル制御部902に送信する。カウンタテーブル制御部902は、レジスタ470から読み出された情報に従ってカウンタテーブル903への設定を行う。
ミラーポートエントリ502−iのミラーリングENがミラーリングを指示していない場合には、ミラーリング判定結果700のミラーリング指示フラグ701を’0’としてパケット受信回路410に送信する。このとき、ミラーポート番号702は無効となる。ミラーポートエントリ502−iのミラーリングENがミラーリングを指示している場合には、カウンタテーブル制御部902では、入力回線番号601に基づいてカウンタテーブル903を読み出すリードアドレスを生成し、カウンタテーブル903を読み出す。
ここで、カウンタテーブルを図12を参照して、説明する。図12において、カンタテーブル903は、モニタポート毎のカウンタ903−i(i=0〜n)によって構成されている。カウンタの値は、ミラーポートエントリ502−iに定義された同一ミラーポートグループに属する複数のミラーポートの各々を一意に表現できる情報量をもつ必要がある。具体的には、ミラーポートエントリ502−iではミラーポートi−0、ミラーポートi−1、ミラーポートi−2、ミラーポートi−3という4つのミラーポートが定義されているので、カウンタはミラーポートi−0に対応する’0’、ミラーポートi−1に対応する’1’、ミラーポートi−2に対応する’2’、ミラーポートi−3に対応する’3’をとる必要がある。そのため、カウンタは最低でも2ビットの情報量をもつ必要がある。
図11に戻って、カウンタテーブル制御部902は、読み出されたカウンタ903−iをミラーポート選択回路901へ送信すると共に、読み出されたカウンタ903−iの値に1加算して、加算後のカウンタ903−iの値をカウンタテーブル903に書き込む。なお、読み出されたカウンタ903−iの値が最大値の’3’である場合には、’0’をカウンタ903−iの値としてカウンタテーブル903に書き込む。ミラーポート選択回路901は、カウンタテーブル制御部902から送信されたカウンタ903−iの値に応じたミラーポートを選択して、選択されたミラーポート番号をミラーリング判定結果700のミラーポート番号702とし、ミラーリング指示フラグを’1’としてパケット受信回路410に送信する。
本実施例に拠れば、ミラーパケットを複数のアナライザに分散するように送信することで、全てのミラーパケットをミラーリング対象としたまま、アナライザへの負荷を下げることができる。
実施例2を図13ないし図15を参照して説明する。ここで、図13はミラーポート選択部の機能ブロック図である。図14は帯域監視部の機能ブロック図である。図15は帯域監視テーブルを説明する図である。
実施例2のパケット中継装置のブロック図は図6に示す通りであり、実施例1と同様である。図13を参照して、実施例2でミラーポート選択部の構成を説明する。図13において、実施例2では、同一ミラーポートグループに属する複数のミラーポート毎に送信されたミラ−パケットのビットレートを監視して、ミラーポート毎に送信されたミラ−パケットのビットレートがミラーポート毎に予め定められた最大ビットレートに達しないミラーポートを選択する。ここで、最大ビットレートは、アナライザの最大性能以下とする。
図13において、ミラーポート選択部503Aは、ミラーポート選択回路901と、帯域監視部1101とから、構成される。図8のミラー判定部421に、パケットが到着すると、まずモニタポート番号抽出部500で抽出された入力回線番号601と、ミラーポートテーブル制御501で得られたミラーポートエントリ502−iの情報がミラーポート選択回路901に送信される。
ミラーポート選択回路901は、ミラーポートエントリ502−iのミラーリングENがミラーリングを指示していないとき、ミラーリング判定結果700のミラーリング指示フラグを’0’としてパケット受信回路410に送信する。このとき、ミラーポート番号702は無効となる。
ミラーポート選択回路901は、ミラーポートエントリ502−iのミラーリングENがミラーリングを指示しているとき、ミラーポートエントリ502−iに定義された同一ミラーポートグループに属する複数のミラーポートを構成するミラーポートi−0、ミラーポートi−1、ミラーポートi−2、ミラーポートi−3という4つのミラーポート番号を帯域監視部1101に送信する。帯域監視部1101は、ミラーポートi−0、ミラーポートi−1、ミラーポートi−2、ミラーポートi−3各々において送信されたミラ−パケットのビットレートを監視して、ミラーポート毎に送信されたミラ−パケットのビットレートがミラーポート毎に予め定められた最大ビットレートに達しないミラーポートを選択する。
ミラーポート毎に送信されたミラ−パケットのビットレートがミラーポート毎に予め定められた最大ビットレートに達しないミラーポートが複数ある場合には、そのうち最も小さなミラーポート番号をもつミラーポートを選択するものとする。他にも、ミラーポート毎に送信されたミラ−パケットのビットレートが最も小さいミラーポートを選択することもできる。
図4の帯域監視アルゴリズムを実装した帯域監視部の構成について、図14を参照して説明する。図14において、帯域監視部1101は、現在水量判定部1210と、監視結果判定部1220と、帯域監視テーブル1202と、帯域監視テーブル制御部1201とから構成される。現在水量判定部1210は、さらにCNT保持部1211と、TLST保持部1212と、R保持部1213と、タイマー1214と、現在水量演算回路1215とから構成される。また、監視結果判定部1220は、THR保持部1221と、LEN保持部1222と、NOWCNT保持部1223と、監視結果判定回路1224と、CNT2保持部1225と、TLST保持部1226とから構成される。
帯域監視テーブル制御部1201は、帯域監視テーブル1202を制御する。ここで、図15を参照して、帯域監視テーブルを説明する。図15において、帯域監視テーブル1202は、ミラーポート毎の最大ビットレートRj(j=0〜m)と、バケツ閾値THRjと、バケツ水量CNTjと、前回のパケット入力時刻TLSTjとが設定された複数の帯域監視エントリ1202−j(j=0〜m)から構成される。
なお、モニタポートから受信する全てのパケットをミラーリング対象とする場合には、ミラーポート毎の最大ビットレートR0〜Rmの和はモニタポートの回線帯域以上とする。
図14に戻って、パケットが到着すると、帯域監視テーブル制御部1201では、ミラーポート選択回路901から送信されたミラーポートi−0に基づいて帯域監視テーブル1202を読み出すリードアドレスを生成し、帯域監視テーブル1202を読み出す。同様に、ミラーポートi−1、ミラーポートi−2、ミラーポートi−3に対しても、これらのポート番号に基づいて帯域監視テーブル1202を読み出すリードアドレスを生成し、帯域監視テーブル1202を読み出す。以下、ミラーポートi−0に対する帯域監視の処理を例に説明するが、ミラーポートi−1、ミラーポートi−2、ミラーポートi−3に対しても同様の処理を実施する。4つのミラーポートに対する監視帯域結果に基づいてミラーポートを選択する処理は、4つのポートに対する帯域監視がなされた後にミラーポート選択回路901において実施される。帯域監視テーブル制御部1201では、レジスタ470から読み出された情報に従って帯域監視テーブル1202への設定を行うことができる。
帯域監視テーブル1202から読み出された帯域監視エントリ1202−jのRjは現在水量判定部1210のR保持部1213に、TLSTjはTLST保持部1212に、CNTjはCNT保持部1211に蓄積される。これらの値と、現在時刻を示すタイマー1214の値に基づいて、図4のフローチャートにおける1401〜1405の演算、判定がなされ、その結果得られたNOWCNTが監視結果判定部1220のNOWCNT保持部1223に蓄積される。次に、ミラー判定部421のヘッダ情報抽出部504から送信されるLEN602をLEN保持部1222に蓄積し、帯域監視テーブル1202から読み出された帯域監視エントリ1202−jのTHRjをTHR保持部1221に蓄積し、これらの値から図4のフローチャートにおける1406の帯域監視結果の判定が、監視結果判定回路1224においてなされる。帯域監視結果が帯域順守であったミラーポート番号はミラーポート選択回路901に送信される。
帯域監視結果が帯域順守であったミラーポート番号が一つであった場合には、当該ミラーポート番号をミラーリング判定結果700のミラーポート番号702としてパケット受信回路410に送信する。帯域監視結果が帯域順守であったミラーポート番号が複数ある場合には、そのうち最小のミラーポート番号をミラーリング判定結果700のミラーポート番号702としてパケット受信回路410に送信する。ミラーリング判定結果700のミラーポート番号702に指定したミラーポート番号をミラーポート選択回路901から帯域監視部1101に送信し、当該ミラーポートの帯域監視エントリに対し図4のフローチャートにおける1408〜1412の演算を監視結果判定回路1224にて実施し、演算後のCNT2をCNT2保持部1225に、演算後のTLSTをTLST保持部1226に蓄積する。CNT2保持部1225に蓄積されたCNT2とTLST保持部1226に蓄積されたTLSTは、帯域監視テーブル制御部1201に送信され、各々帯域監視テーブル1202の帯域監視エントリ1202−jのCNT、TLSTのフィールド値として更新される。
実施例3では、同一ミラーポートグループに属する複数のミラーポート毎に送信されたミラ−パケットのパケットレートを監視して、ミラーポート毎に送信されたミラ−パケットのパケットレートがミラーポート毎に予め定められた最大パケットレートに達しないミラーポートを選択する。
実施例3のパケット中継装置の構成は、図6に示す通りであり、実施例1と同様である。また、ミラーポート選択部の構成も、実施例2の図13と同様である。
実施例3において、実施例2と異なる点は、次の通りである。(1)最大パケットレートは、アナライザの最大性能以下とする。(2)帯域監視部1101は、ミラーポートi−0、ミラーポートi−1、ミラーポートi−2、ミラーポートi−3各々において送信されたミラ−パケットのパケットレートを監視して、ミラーポート毎に送信されたミラ−パケットのパケットレートがミラーポート毎に予め定められた最大パケットレートに達しないミラーポートを選択する。
パケットレートの帯域監視アルゴリズムのフローチャートは、実施例2においてパケットのフレーム長によらず固定的にLEN=1とするケースに相当する。
図4の帯域監視アルゴリズムを実装した帯域監視部1101の構成も、実施例2の図14と同様である。但し、帯域監視部1101は、ミラーポート毎の最大パケットレートRj(j=0〜m)とバケツ閾値THRjが設定された図15に示す複数の帯域監視エントリ1202−j(j=0〜m)から構成される帯域監視テーブル1202を備える。なお、モニタポートから受信する全てのパケットをミラーリング対象とする場合には、ミラーポート毎の最大パケットレートR0〜Rmの和はモニタポートの回線帯域以上とする。また、図14において、ミラー判定部421のヘッダ情報抽出部504から送信されるLEN602は無視し、LEN=1という固定値をLEN保持部1222に蓄積する。
実施例4では、ミラーポート選択部において、受信パケットまたは送信パケットのヘッダ情報の一部または全部の値を入力値、ミラーポートを識別する値を出力値とするHASH関数に基づいた演算によりミラーポートを選択する。これにより、同一フローに属するミラーパケットが複数のミラーポートに分散することがなくなり、フロー毎に一意のミラーポートに送信することが可能となる。実施例4によれば、同一フローに属するミラーパケットが複数のミラーポートに分散することがなくなり、フロー毎に一意のミラーポートに送信することができる。
実施例4のパケット中継装置の構成は、図6に示す通りであり、実施例1と同様である。また、ミラーポート選択部の構成を図16を参照して説明する。ここで、図16はミラーポート選択部の機能ブロック図である。図16において、ミラーポート選択部503Bのミラーポート選択回路901は、同一ミラーポートグループに属する複数のミラーポートを構成するミラーポートi−0、ミラーポートi−1、ミラーポートi−2、ミラーポートi−3の情報をミラーポートテーブル制御部501から受信する。また、ミラーポート選択回路901は、フローを識別するのに必要となるヘッダ情報を、ヘッダ情報抽出部504から受信する。ここでは、フローを識別する条件となるヘッダ情報は、宛先MACアドレス611、送信元MACアドレス612、送信元IPアドレス624、宛先IPアドレス625、送信元ポート631、宛先ポート632とする。これらのヘッダ情報について、ミラーポート選択回路901は、HASH関数演算部1501に送信する。
HASH関数演算部の構成について図17を参照して説明する。ここで、図17はHASH関数演算部の機能ブロック図である。図17において、HASH関数演算部1501は、宛先MACアドレス保持部1602と、送信元MACアドレス保持部1603と、送信元IPアドレス保持部1604と、宛先IPアドレス保持部1605と、送信元ポート保持部1606と、宛先ポート保持部1607と、HASH関数演算部1601とから構成される。
HASH関数演算部1501は、ミラーポート選択回路901からHASH関数演算部1501に送信されたヘッダ情報のうち、宛先MACアドレス611を宛先MACアドレス保持部1602に保持する。HASH関数演算部1501は、送信元MACアドレス612を送信元MACアドレス保持部1603に保持する。HASH関数演算部1501は、送信元IPアドレス624を送信元IPアドレス保持部1604に保持する。HASH関数演算部1501は、宛先IPアドレス625を宛先IPアドレス保持部1605に保持する。HASH関数演算部1501は、送信元ポート631を送信元ポート保持部1606に保持する。HASH関数演算部1501は、宛先ポート632を宛先ポート保持部1607に保持する。
各保持部1602〜1607に一時保持されたヘッダ情報は、HASH関数演算回路1601においてHASH演算にかけられHASH値が出力される。HASH関数演算部1501は、このHASH値に基づいて、ミラーポート選択回路901においてミラーパケットを送信する一つのミラーポートが選択する。HASH値は、ミラーポートエントリ502−iに定義された同一ミラーポートグループに属する複数のミラーポートの各々を一意に表現できる情報量をもつ必要がある。すなわち、ミラーポートエントリ502−iではミラーポートi−0、ミラーポートi−1、ミラーポートi−2、ミラーポートi−3という4つのミラーポートが定義されているので、HASH値はミラーポートi−0に対応する’0’、ミラーポートi−1に対応する’1’、ミラーポートi−2に対応する’2’、ミラーポートi−3に対応する’3’をとる必要がある。そのため、HASH値は最低でも2ビットの情報量をもつ必要がある。
HASH関数演算回路1601におけるHASH演算は、次のようなビット操作によって得られる。各保持部1602〜1607に一時保持されたヘッダ情報をそれぞれ8ビットの情報に分割し、ヘッダ情報毎に分割後の8ビットを全て加算する。加算後のビット値を、次は異なるヘッダ情報同士で加算し、下位2ビットを抽出することで、HASH値が得られる。得られたHASH値は、ミラーポート選択回路901へ送信され、このHASH値に基づいてミラーパケットを送信する一つのミラーポートが選択される。
次に、パケット中継装置で統計情報を収集するシステム(トラフィックモニタシステム)について、実施例5を用い図18ないし図25を参照して説明する。ここで、図18は統計情報収集システムのハードウェアブロック図である。図19はパケット中継装置の機能ブロック図である。図20は統計パケット判定結果を説明する図である。図21はフロー統計収集部の機能ブロック図である。図22はCAMを説明する図である。図23はフロー統計テーブルを説明する図である。図24はアナライザポートレジスタを説明する図である。図25はアナライザポート選択部の機能ブロック図である。
図18において、統計情報収集システムは、パケット中継装置(S1)1801と、パケット中継装置(S1)1801に接続された4台のアナライザ1720〜1723とから構成される。パケット中継装置(S1)1801は、統計パケットC0をアナライザポート1710から送信し、アナライザポート1710に接続されたアナライザ1720に入力される。アナライザ1720は、パケットのヘッダ情報や統計情報を解析する。統計パケットC1は、アナライザポート1711から送信され、アナライザポート1711に接続されたアナライザ1721に入力される。アナライザ1721は、パケットのヘッダ情報や統計情報が解析する。統計パケットC2は、アナライザポート1712から送信され、アナライザポート1712に接続されたアナライザ1722に入力される。アナライザ1722は、パケットのヘッダ情報や統計情報を解析する。統計パケットC3は、アナライザポート1713から送信され、アナライザポート1713に接続されたアナライザ1723に入力される。アナライザ1723は、パケットのヘッダ情報やヘッダ情報を解析する。
このように統計パケットを複数のアナライザに分散するように送信すると、単体のアナライザに対する統計パケットの負荷はアナライザの解析性能の限界以内に抑えたまま、入力回線1702から受信した全フローに属する全パケットP0、P1、P2、P3を統計情報の収集対象とすることができる。逆に、入力回線から受信した全パケット数に対するフローサンプルの対象とするパケット数の比率であるサンプリングレートを低下させず、統計の精度は維持したまま、より高速な入力回線をモニタポートとすることができる。あるいは、より多数のフローを収容する高速な入力回線をモニタポートとして、より多数のフローの統計情報を複数のアナライザで分散的に収集することができる。なお、実施例5とマルチパスとの差は、実施例1で説明したとおりである。
次に、パケット中継装置の構成について、図19を参照して説明する。なお、図19のパケット中継装置の構成は、パケットをルーティング転送するルータまたはパケットをスイッチング転送するスイッチに適用できる。
図19において、パケット中継装置1801は、パケットが入力する入力回線1702と、パケットの受信処理を行うパケット受信回路410と、パケットに関する受信側での判定処理を行うパケット検索部1910と、パケットを出力回線番号に基づきスイッチングするパケット中継処理手段430と、パケットに関する送信側での判定処理を行うパケット検索部1920と、スイッチングされたパケットが蓄積される送信バッファ450からパケットを読み出してパケットの送信処理を行うパケット送信回路460と、パケットを出力する出力回線1703と、統計パケットを出力するアナライザポート1710とを備える。パケット受信回路410では、入力回線番号601とパケットのフレーム長LEN602を判定し、図7に示すパケット受信回路410から送信されるヘッダ情報600に付加する。パケット検索部1910は、出力回線番号を判定するための経路検索部422と、フロー統計を収集するフロー統計収集部1911と、管理端末480を接続されたレジスタ470とを備える。パケット検索部1910で経路検索とフロー統計の収集を行うため、パケット検索部1910は、経路検索部422とフロー統計収集部1911とを備え、パケット受信回路410からヘッダ情報と入力回線情報を受信する。なお、出力回線毎にフロー情報を収集する際は、送信側のパケット検索部1920に備わるフロー統計収集部にてフロー統計に関わる判定を行うこともできる。
図20において、統計パケット判定結果2400は、統計パケット生成指示フラグ2401とアナライザポート番号2402とから構成される。
図19に戻って、パケット検索部1910は、経路検索部422で得られた出力回線番号と、フロー統計収集部1911で得られた統計パケット生成指示フラグ2401と、統計パケットを送信するアナライザポート番号2402から構成される統計パケット判定結果2400を、検索結果情報としてパケット受信回路410に送信する。パケット受信回路410に送信された検索結果情報は、パケット本体の情報と合わせてパケット中継処理手段430を経由してパケット送信回路460に送信される。
パケット送信回路460において、パケット本体は出力回線1703に接続された送信バッファ450−1に蓄積され、出力回線1703から送信される。統計パケット生成の指示がされたパケットに対しては、パケット送信回路460においてヘッダ情報と統計情報とを含む統計パケットが生成される。生成された統計パケットは、アナライザポート1710に接続された送信バッファ450−2に蓄積され、アナライザポート1710から送信される。
パケット検索部1810に対するユーザ設定を可能とするため、パケット中継装置1801には管理端末480が接続されており、管理端末480からの設定情報は一時的にレジスタ470に保持される。レジスタ470から読み出された情報に従って、後で示される各種のテーブル制御部がテーブル設定を行う。
次に、パケット中継装置が備えるフロー統計収集部の構成について、図21を参照して説明する。図21において、フロー統計収集部1911は、ヘッダ情報抽出部2001と、CAM制御部2002と、フロー統計演算部2004と、フロー統計テーブル制御部2005と、アナライザポートレジスタ2008と、アナライザポートレジスタ制御部2007と、アナライザポート選択部2009から構成される。また、CAM制御部2002には、CAM2003が接続される。さらに、フロー統計テーブル制御部2005は、フロー統計テーブル2006を参照し、更新する。
ヘッダ情報抽出部2001は、パケット受信回路410から送信されたヘッダ情報のうち、フロー統計の種集に必要となる情報を抽出する。パケット受信回路410から送信されるヘッダ情報600は、実施例1と同様である。ここでは、フロー統計を収集する際にフローを識別する条件を送信元IPアドレス、宛先IPアドレス、L4プロトコル、送信元ポート番号、宛先ポート番号とする。ヘッダ情報抽出部2001は、これらのフロー識別に必要となるヘッダ情報を抽出して、CAM制御部2002へ送信する。CAMは、データを入力すると入力データに一致するエントリの含まれるアドレスを出力する。
図22において、CAM2003は、送信元IPアドレスの値と、宛先IPアドレスの値と、L4プロトコルの値と、送信元ポートの値と、宛先ポートの値の組で指定される、フローを識別する条件となる複数のフローエントリ2003−i(i=0〜n)で構成されている。
図21に戻って、CAM制御部2002は、レジスタ470から読み出された情報に従ってCAM2003への設定を行う。CAM制御部2002がフロー識別に必要となるヘッダ情報をCAM2003へ送信すると、CAM2003は、このヘッダ情報に一致するフローエントリ2003−iを判定し、このフローエントリ2003−iのアドレスをCAM制御部2002へ送信する。なお、ヘッダ情報に一致するフローエントリが存在しない場合は、フロー統計の収集は行われず、アナライザポートからアナライザへの統計パケットの送信もなされない。
ヘッダ情報に一致するフローエントリ2003−iのアドレスを受信したCAM制御部2002は、このアドレスをフロー統計テーブル制御部2005へ送信する。フロー統計テーブル制御部2005は、レジスタ470から読み出された情報に従ってフロー統計テーブル2006への設定を行う。アドレスを受信したフロー統計テーブル制御部2005は、このアドレスに基づいてフロー統計テーブル2006を読み出す。
図23において、フロー統計テーブル2006は、フローエントリ2003−iに対応したフロー統計エントリ2006−iから構成されており、フロー統計エントリ2006−iはフロー毎の受信したパケット数と受信したByte数(送信側のパケット検索部1820のフロー統計エントリにおいては、フロー毎の送信したパケット数と送信したByte数)の統計情報を保持している。
図21に戻って、フロー統計テーブル2006から読み出されたパケット数とByte数の統計情報を、フロー統計テーブル制御部2005は、フロー統計演算部2004へ送信する。
フロー統計演算部2004は、受信した統計情報について、パケット数に1を加算し、Byte数に当該パケットのフレーム長であるLEN602を加算する。フロー統計演算部2004は、演算後のパケット数とByte数の統計情報をフロー統計テーブル制御部2005へ送信する。
フロー統計テーブル制御部2005は、受信した演算後のパケット数とByte数の統計情報を、フローエントリ2003−iのアドレスに基づいてフロー統計テーブル2006へ書き込む。
次に、アナライザポートレジスタ制御部2007は、アナライザポートレジスタ2008を読み出す。アナライザポートレジスタ制御部2007では、レジスタ470から読み出された情報に従ってアナライザポートレジスタ2008への設定を行う。
図24において、アナライザポートレジスタ2008は、同一のアナライザポートグループに含まれる複数のアナライザポート0、アナライザポート1、アナライザポート2、アナライザポート3のポート番号が設定されている。
図21に戻って、アナライザポートレジスタ制御部2007は、アナライザポートグループのアナライザポート0、アナライザポート1、アナライザポート2、アナライザポート3の情報をアナライザポート選択部2009へ送信する。アナライザポート選択部2009では、アナライザポートグループのうち一つのアナライザポートを選択して、選択されたアナライザポートを統計パケット判定結果2400のアナライザポート番号2402として、統計パケット判定結果2400をパケット受信回路410へ送信する。
アナライザポート選択部の構成についえ、図25を参照して説明する。図25において、アナライザポート選択部2009は、アナライザポート選択回路2501と、カウンタ制御部2502と、カウンタ2503とから構成される。ここで、アナライザポート選択部2009は、アナライザポートの選択をパケットの到着順序に基づいたラウンドロビンのアルゴリズムに基づいて判定する。
アナライザポートレジスタ制御部2007は、アナライザポートグループのアナライザポート0、アナライザポート1、アナライザポート2、アナライザポート3の情報をアナライザポート選択部2009へ送信する。アナライザポート選択回路2501は、アナライザポートグループの情報を受信すると、パケット到着を示す信号をカウンタ制御部2502へ送信する。
カウンタ制御部2502は、レジスタ470から読み出された情報に従ってカウンタ2503への設定を行う。カウンタ制御部2502がパケット到着の信号を受信すると、カウンタテーブル制御部2502は、カウンタ2503を読み出す。カウンタ2503の値は、アナライザポートレジスタ2008に定義されたアナライザポートグループに属する複数のアナライザポートの各々を一意に表現できる情報量をもつ必要がある。図24に示されたアナライザポートレジスタ2008ではアナライザポート0、アナライザポート1、アナライザポート2、アナライザポート3という4つのアナライポートが定義されているので、カウンタはアナライザポート0に対応する’0’、アナライポート1に対応する’1’、アナライザポート2に対応する’2’、アナライザポート3に対応する’3’をとる必要がある。そのため、カウンタは最低でも2ビットの情報量をもつ必要がある。
カウンタテーブル制御部2502は、読み出されたカウンタ2503の値をアナライザポート選択回路2501へ送信すると共に、読み出されたカウンタ2503の値に1加算して、加算後の値をカウンタ2503に書き込む。なお、読み出されたカウンタ2503の値が最大値の’3’である場合には、’0’をカウンタ2503の値として書き込む。
アナライザポート選択回路2501は、カウンタテーブル制御部2502から送信されたカウンタ2503の値に応じたアナライザポートを選択して、選択されたアナライザポート番号を統計パケット判定結果2400のアナライザポート番号2402とし、統計パケット生成指示フラグ2401を’1’としてパケット受信回路410に送信する。
本実施例に拠れば、統計パケットを複数のアナライザに分散するように送信することで、アナライザへの負荷を下げることができる。
実施例6について、図26ないし図28を参照して説明する。ここで、図26はアナライザポート選択部の機能ブロック図である。図27は帯域監視部2601の機能ブロック図である。図28は帯域監視テーブルを説明する図である。
実施例6のパケット中継装置の構成は、図19に示す通りであり、実施例5と同様である。実施例6でアナライザポート選択部の構成に付いて、図26を参照して説明する。図26において、アナライザポート選択部2009Aは、アナライザポート選択回路2501と、帯域監視部2601とから構成される。
実施例6では、同一アナライザポートグループに属する複数のアナライザポート毎に送信された統計パケットのビットレートを監視して、アナライザポート毎に送信された統計パケットのビットレートがアナライザポート毎に予め定められた最大ビットレートに達しないアナライザポートを選択する。最大ビットレートは、アナライザの最大性能以下とする。
アナライザポートレジスタ制御部2007はアナライザポートグループのアナライザポート0、アナライザポート1、アナライザポート2、アナライザポート3の情報をアナライザポート選択部2009Aへ送信する。アナライザポート選択部2009Aは、アナライザポートグループの情報を受信すると、受信したアナライザポートグループに属する複数のアナライザポートを構成するアナライザポート0、アナライザポート1、アナライザポート2、アナライザポート3という4つのアナライザポート番号を帯域監視部2601に送信する。
帯域監視部2601は、アナライザポート0、アナライザポート1、アナライザポート2、アナライザポート3各々において送信された統計パケットのビットレートを監視して、アナライザポート毎に送信された統計パケットのビットレートがアナライザポート毎に予め定められた最大ビットレートに達しないアナライザポートを選択する。アナライザポート毎に送信された統計パケットのビットレートがアナライザポート毎に予め定められた最大ビットレートに達しないアナライザポートが複数ある場合には、そのうち最も小さなアナライザポート番号をもつアナライザポートを選択するものとする。
ビットレートの帯域監視アルゴリズムのフローチャートは図4と同様である。
図4の帯域監視アルゴリズムを実装した帯域監視部の構成について、図27に示す。また、図27に記載された帯域監視テーブルの構成について、図28に示す。なお、図27と図14との対比、および図28と図15との対比から明らかなように、図27は図14と参照番号が異なるのみの違いなので、説明は省略する。また、図28も図15と参照番号が異なるのみの違いなので、説明は省略する。
実施例7では、同一アナライザポートグループに属する複数のアナライザポート毎に送信された統計パケットのパケットレートを監視して、アナライザポート毎に送信された統計パケットのパケットレートがアナライザポート毎に予め定められた最大パケットレートに達しないアナライザポートを選択する。
実施例7のパケット中継装置の構成は、図19に示す通りであり、実施例5と同様である。実施例7でアナライザポート選択部の構成は、実施例6の図26と同様である。
実施例7において、実施例6と異なる点は、次の通りである。(1)最大パケットレートは、アナライザの最大性能以下とする。(2)帯域監視部2601は、アナライザポート0、アナライザポート1、アナライザポート2、アナライザポート3各々において送信された統計パケットのパケットレートを監視して、アナライザポート毎に送信された統計パケットのパケットレートがアナライザポート毎に予め定められた最大パケットレートに達しないアナライザポートを選択する。
パケットレートの帯域監視アルゴリズムのフローチャートは、図4においてパケットのフレーム長によらず固定的にLEN=1とするケースに相当する。
図4の帯域監視アルゴリズムを実装した帯域監視部2601の構成も、実施例6の図27と同様である。ただし、帯域監視部2601は、アナライザポート毎の最大パケットレートRj(j=0〜m)とバケツ閾値THRjが設定された図28に示す複数の帯域監視エントリ2702−j(j=0〜m)から構成される帯域監視テーブル2702が備える。なお、モニタポートから受信する全てのパケットを統計パケット生成対象とする場合には、アナライザポート毎の最大パケットレートR0〜Rmの和はモニタポートの回線帯域以上とする。また、図27において、フロー統計収集部1911のヘッダ情報抽出部2001から送信されるLEN602は無視し、LEN=1という固定値をLEN保持部2722に蓄積する。
実施例8について、図29および図30を参照して、説明する。ここで、図29はアナライザポート選択部の機能ブロック図である。図30はHASH関数演算部の機能ブロック図である。また、実施例8のパケット中継装置の構成は、図19および図21に示す通りであり、実施例5と同様である。
実施例8では、アナライザポート選択部において、受信パケットまたは送信パケットのヘッダ情報の一部または全部の値を入力値、アナライザポートを識別する値を出力値とするHASH関数に基づいた演算によりアナライザポートを選択する。これにより、同一フローに属する統計パケットが複数のアナライザポートに分散することがなくなり、フロー毎に一意のアナライザポートに送信する。実施例8によれば、同一フローに属する統計パケットが複数のアナライザポートに分散することがなくなり、フロー毎に一意のアナライザポートに送信するので、後で集約してから解析する必要はなくなる。
アナライザポート選択部の構成について、図29を参照して説明する。図29において、アナライザポート選択部2009Bは、アナライザポート選択回路2501とHASH関数演算部2901とから構成される。アナライザポート選択回路2501には、同一アナライザポートグループに属する複数のアナライザポートを構成するアナライザポート0、アナライザポート1、アナライザポート2、アナライザポート3の情報がアナライザポートレジスタ制御部2007から送信される。また、アナライザポート選択回路2501には、フローを識別するのに必要となるヘッダ情報について、ヘッダ情報抽出部2001から送信される。ここでは、フローを識別する条件となるヘッダ情報は、宛先MACアドレス611、送信元MACアドレス612、送信元IPアドレス624、宛先IPアドレス625、送信元ポート631、宛先ポート632とする。これらのヘッダ情報600について、アナライザポート選択回路2501は、HASH関数演算部2901に送信する。
HASH関数演算部の構成を図30に示す。図30の構成は、参照番号を除いて、図17と同一なので、説明は省略する。HASH関数演算部3001は、得られたHASH値をアナライザポート選択回路2501へ送信する。アナライザポート選択回路2501は、このHASH値に基づいて統計パケットを送信する一つのアナライザポートを選択する。
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成をとることができる。
ミラーリングシステムのハードウェアブロック図である。
ミラーリングシステムのハードウェアブロック図である。
統計情報収集システムのハードウェアブロック図である。
ビットレートの帯域監視アルゴリズムを説明するフローチャートである。
ミラーリングシステムのハードウェアブロック図である。
パケット中継装置のブロック図である。
パケット受信回路から送信されるヘッダ情報を説明する図である。
ミラー判定部の機能ブロック図である。
ミラーポートテーブルの構成を説明する図である。
ミラーリング判定結果の構成を説明する図である。
ミラーポート選択部の機能ブロック図である。
カウンタテーブルの構成を説明する図である。
ミラーポート選択部の機能ブロック図である。
帯域監視部の機能ブロック図である。
帯域監視テーブルを説明する図である。
ミラーポート選択部の機能ブロック図である。
HASH関数演算部の機能ブロック図である。
本発明を備えるパケット中継装置で統計情報を収集する場合のシステム構成
パケット中継装置の機能ブロック図である。
統計パケット判定結果を説明する図である。
フロー統計収集部の機能ブロック図である。
CAMを説明する図である。
フロー統計テーブルを説明する図である。
アナライザポートレジスタを説明する図である。
アナライザポート選択部の機能ブロック図である。
アナライザポート選択部の機能ブロック図である。
帯域監視部2601の機能ブロック図である。
帯域監視テーブルを説明する図である。
アナライザポート選択部の機能ブロック図である。
HASH関数演算部の機能ブロック図である。
符号の説明
101…パケット中継装置(S0)、102…入力回線、103…出力回線、110…ミラーポート、111…のミラーポート、112…ミラーポート、113…ミラーポート、120…アナライザ(A0)、121…アナライザ(A1)、122…アナライザ(A2)、123…アナライザ(A3)、301…パケット中継装置(S1)、410…パケット受信回路、420…パケット検索部、421…ミラー判定部、422…経路検索部、430…パケット中継処理手段、440…パケット検索部、450…送信バッファ、460…パケット送信回路、470…レジスタ、480…管理端末、500…モニタポート番号抽出部、501…ミラーポートテーブル制御部、502…ミラーポートテーブル、502−i…ミラーポートエントリ、503…ミラーポート選択部、504…ヘッダ情報抽出部、600…ヘッダ情報、601…入力回線番号、602…パケットのフレーム長、610…L2ヘッダ部、611…宛先MACアドレス、612…送信元MACアドレス、613…イーサタイプ、614…VLANタグ、620…L3ヘッダ部(IPv4時)、621…IPバージョン、622…TOS(Type of Service)、623…L4プロトコル、624…送信元IPアドレス、625…宛先IPアドレス、630…L4ヘッダ部、631…送信元ポート番号、632…宛先ポート番号、700…ミラーリング判定結果、701…ミラーリング指示フラグ、702…ミラーポート番号、901…ミラーポート選択回路、902…カウンタテーブル制御部、903…カウンタテーブル、903−i…モニタポート毎のカウンタ、1101…帯域監視部、1201…帯域監視テーブル制御部、1202…帯域監視テーブル、1202−j…帯域監視エントリ、1210…現在水量判定部、1211…CNT保持部、1212…TLST保持部、1213…R保持部、1214…タイマー、1215…現在水量演算回路、1220…監視結果判定部、1221…THR保持部、1222…LEN保持部、1223…NOWCNT蓄手段、1224…監視結果判定回路、1225…CNT2保持部、1226…TLST保持部、1501…HASH関数演算部、1601…HASH関数演算回路、1602…宛先MACアドレス保持部、1603…送信元MACアドレス保持部、1604…送信元IPアドレス保持部、1605…宛先IPアドレス保持部、1606…送信元ポート保持部、1607…宛先ポート保持部、1701…パケット中継装置(S0)、1702…入力回線、1703…出力回線、1710…アナライザポート、1711…アナライザポート、1712…アナライザポート、1713…アナライザポート、1720…アナライザ(A0)、1721…アナライザ(A1)、1722…アナライザ(A2)、1723…アナライザ(A3)、1801…パケット中継装置(S1)、1910…パケット検索部、1911…フロー統計収集部、1920…パケット検索部、2001…ヘッダ情報抽出部、2002…CAM制御部、2003…CAM、2003−i…フローエントリ、2004…フロー統計演算部、2005…フロー統計テーブル制御部、2006…フロー統計テーブル、2006−i…フロー統計エントリ、2007…アナライザポートレジスタ制御部、2008…アナライザポートレジスタ 、2009…アナライザポート選択部、2400…統計パケット判定結果、2401…統計パケット生成指示フラグ、2402…アナライザポート番号、2501…アナライザポート選択回路、2502…カウンタ制御部、2503…カウンタ、2601…帯域監視部、2701…帯域監視テーブル制御部、2702…帯域監視テーブル、2702−j…帯域監視エントリ、2710…現在水量判定部、2711…CNT保持部、2712…TLST保持部、2713…R保持部、2714…タイマー、2715…現在水量演算回路、2720…監視結果判定部、2721…THR保持部、2722…LEN保持部、2723…NOWCNT蓄手段、2724…監視結果判定回路、2725…CNT2保持部、2726…TLST保持部、2901…HASH関数演算部、3001…HASH関数演算回路、3002…宛先MACアドレス保持部、3003…送信元MACアドレス保持部、3004…送信元IPアドレス保持部、3005…宛先IPアドレス保持部、3006…送信元ポート保持部、3007…宛先ポート保持部。