JP2017183959A - 通信システム、コントローラ、方法およびプログラム - Google Patents

通信システム、コントローラ、方法およびプログラム Download PDF

Info

Publication number
JP2017183959A
JP2017183959A JP2016067220A JP2016067220A JP2017183959A JP 2017183959 A JP2017183959 A JP 2017183959A JP 2016067220 A JP2016067220 A JP 2016067220A JP 2016067220 A JP2016067220 A JP 2016067220A JP 2017183959 A JP2017183959 A JP 2017183959A
Authority
JP
Japan
Prior art keywords
flow
flow entry
switch
recording
communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016067220A
Other languages
English (en)
Inventor
増田 剛久
Takehisa Masuda
剛久 増田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2016067220A priority Critical patent/JP2017183959A/ja
Publication of JP2017183959A publication Critical patent/JP2017183959A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】ユーザデータ通信用のスイッチのCPU負荷の上昇を抑制しつつ、ネットワークを流れるすべての通信を対象にした通信量を所望の粒度で把握可能にする。【解決手段】通信システムは、通信用スイッチ61と、自装置が保持しているフローエントリに従い、通信用スイッチ61から受信したコピーパケットのフローごとの通信量を記録する記録用スイッチ62とを備え、フローエントリ設定手段71が、コピーパケットの経路上に位置する記録用スイッチ62に設定するフローエントリの集合において、マッチ条件が、全ての通信レイヤのアドレス情報における全てのアドレス値を網羅するように、記録用スイッチ62に対して、通信量記録用フローエントリを設定し、通信量収集手段72が、記録用スイッチ62が保持しているフローエントリの通信量を収集する。【選択図】図11

Description

本発明は、ネットワークを流れるパケットの量に基づく通信量を計測するための通信システム、コントローラ、通信量計測方法および通信量計測プログラムに関する。
通信量を計測する方法として、例えば、次の方法がある。第1の方法は、ネットワークに接続されたスイッチなどの通信装置が、パケットのコピーを生成して、パケット解析用のコンピュータに送り、パケット解析用コンピュータが、コピーされたパケットを受信して、その量を記録する方法である。以下、第1の方法を、ミラーリングによる方法と呼ぶ。以下、解析用にコピーされるパケットをコピーパケットと呼ぶ。
第2の方法は、sFlowと呼ばれるプロトコルを利用して、スイッチングハブが、パケットをサンプリングしてsFlow解析装置に送り、sFlow解析装置が、送られたサンプリング量と、物理ポートの通信量とから、通信フロー単位の通信量を推測する方法である。なお、sFlowの詳細は、「IETF(Internet Engineering Task Force) RFC(Request For Comment) 3176」に規定されている。以下、第2の方法を、サンプリングによる方法と呼ぶ。
なお、ミラーリングによる方法における通信装置の具体例として、リモートミラーリングに対応したスイッチングハブがある。ここで、リモートミラーリングは、コピーパケットにリモートミラーリング専用のVLAN番号を付与し、別のスイッチングハブを中継しながら、パケット解析用コンピュータにコピーパケットを届ける技術である。リモートミラーリングを行う通信システムは、リモートミラーリング用のVLAN番号をシステム内で一意の値となるように定める。各スイッチングハブは、リモートミラーリング用のVLAN番号を参照してコピーパケットをパケット解析用コンピュータまで転送する。
一方、Openコンピュータネットワークにおいて、CU(C:コントロールプレーン/U:ユーザプレーン)分離型アーキテクチャと呼ばれる技術がある。CU分離型アーキテクチャでは、各スイッチの制御を、外部のコントローラから行う。このようなCU分離型アーキテクチャに基づく構成のネットワークの例として、コントローラからスイッチを制御してネットワークの経路制御を行うOpenFlow技術を利用したオープンフローネットワークが挙げられる。
OpenFlow技術に対応したスイッチは、オープンフロースイッチ(OFS)と呼ばれる。また、OpenFlow技術に対応したコントローラは、オープンフローコントローラ(OFC)と呼ばれる。
OFSは、フローテーブルと呼ばれる、処理規則(エントリ)が登録されるテーブルを保持する。
フローテーブルは、所定のマッチ条件(ルール)に適合するパケットに対して行うべき所定の処理内容(アクション)を定義した処理規則(フローエントリ)が登録されたテーブルである。パケットは、フレームと読み替えてもよい。ルールに適合するパケット群(パケット系列)は、フロー(Flow)と呼ばれる。
ルールは、パケットの各プロトコル階層のヘッダ領域に含まれる宛先アドレス(Destination Address)、送信元アドレス(Source Address)、宛先ポート(Destination Port)、送信元ポート(Source Port)のいずれか又は全てを用いた様々な組み合わせにより定義され、区別可能である。なお、上記のアドレスには、MACアドレス(Media Access Control Address)やIPアドレス(Internet Protoclo Address)を含むものとする。また、上記に加えて、入口ポート(Ingress Port)の情報も、ルールとして使用可能である。
従って、フローは、パケットのヘッダ領域に含まれる情報によって識別されるパケット群と言ってもよい。
また、アクションは、通常、所定の転送先へのパケット転送である。なお、アクションとして、パケット破棄を指定したり、受信パケット数をカウントしたり、別のフローテーブルを再検索させるといったことも可能である。
OFSは、このようなフローテーブルに保持された処理規則に従うことにより、フロー単位の通信制御とフローの統計情報の採取を行うことができる。以下、このようなCU分離型ネットワークにおいてスイッチのフローテーブルに登録された統計情報を採取して通信量を計測する方法を、フローテーブルの統計情報による方法と呼ぶ。
OFCは、OFSのフローテーブルを操作することにより、該OFSの挙動を制御する。
例えば、OFCは、フローテーブルの操作により、OFSに対して通信経路の設定や、フローテーブルで識別されるフロー単位の通信量の取得を行うことができる。OFCは、OFSが保持するフローテーブルに、フローエントリを登録する。フローエントリは、OFSで受信したパケットデータを識別する「マッチ条件」と、アドレス変更や特定ポートへのパケット送信などの処理内容を示す「アクション情報」と、該当フローに合致したパケットの量である「通信量」とを含んていてもよい。OFCによる、フローエントリを用いた一元管理された経路設定に基づいて、パケットデータは、OFS間を適切に経路制御されながら転送されていく。そして、パケットデータの転送に伴って、OFS内の一致したフローエントリの通信量が加算されていく。
このようなOpenFlow技術を利用した通信量の計測方法の一例が、特許文献1に記載されている。特許文献1には、転送ノードが保持する処理規則数の削減と、トラヒックの把握との両立を目的に、コントローラが、特定の転送ノードに処理規則の統計情報に基づくパケットの分析を行わせ、その結果を基に特定の転送ノードのエントリを分割することが記載されている。
国際公開2011/118575号パンフレット
課題は、正確な通信量が計測されないことにある。
ネットワークを流れる通信量の計測方法としては、フローテーブルの統計情報による方法の他に、上述したように、ミラーリングによる方法と、sFlowに代表されるサンプリングによる方法とがある。しかし、正確な通信量を求めようとすると、これら3つの方法にはそれぞれ次のような問題がある。
(1)ミラーリングによる方法
本方法では、各スイッチがパケットをコピーして、解析装置に送信する。しかし、全スイッチの全ポートのパケットをコピーして解析装置に送れたとしても、解析装置のCPUの処理性能によっては、全てのコピーパケットの解析ができずに廃棄されるおそれがある。
(2)サンプリングによる方式
本方法では、パケットを間引きながらサンプリングし、パケット解析用のコンピュータにコピーパケットを送信することにより、パケット解析用コンピュータの負荷を下げている。しかし、パケット解析用コンピュータの負荷を下げるためにパケットデータをサンプリングする割合を少なくすると、正確な通信量を求めにくくなるという問題がある。また、サンプリングする割合を多くすると、本来ユーザデータの通信用であるスイッチのCPU負荷をサンプリング処理のために上げてしまい、パケット廃棄が発生する可能性が高くなるという問題がある。
(3)フローエントリの統計情報による方法
本方法では、OFSといったCU分離型ネットワークのスイッチのフローエントリに記録されている統計情報を、コントローラが取得して通信量を算出する。本方法によれば、スイッチに登録されているフローエントリのマッチ条件に合致したフローの通信量はわかるが、マッチ条件に合致しない未知のトラフィックの通信量は把握できないという問題がある。また、ユーザデータの転送処理を行っているスイッチのフローテーブルから統計情報を取得する場合、該スイッチのCPU負荷が増えてしまうと、スイッチ本来のプロトコルを制御する処理が遅延するという問題がある。
以下、スイッチがOFSであり、コントローラがOFCである場合のフローエントリの統計情報による方法をより具体的に説明する。フローエントリの統計情報による方法では、事前にOFSにOFCから設定されたフローエントリのみが通信量を採取できる。なお、未知のパケットデータは、Packet INというメッセージによりOFCに運ばれるが、OFCとOFS間の通信路には、OFSの数多くある物理ポートのパケットデータをOFCに伝えることができる帯域が無い場合が多い。このため、通信回線上を流れている未知のトラフィックの通信量を採取することは困難である。
ところで、オープンフローネットワークでは、ネットワーク上を流れるフローを識別するマッチ条件を有するフローエントリを登録することにより、自由な通信をコントローラから制御可能である。しかし、TCPポート80番等の細かい粒度でのフローエントリが存在するトラフィックは通信量を参照可能だが、求めたいレイヤのフローエントリが存在しない場合、別のレイヤのフローエントリで処理される。例えばレイヤ3プロトコルをマッチ条件に含むフローエントリが存在しない場合、レイヤ3プロトコルの値に関わらず、IPのフローエントリで処理されてしまう。このような場合、求めたいレイヤの粒度で通信種別や通信量がわからないという問題がある。
なお、特許文献1には、パケットの詳細分析のために細分化した複数のフローエントリを設定することが記載されている。しかし、特許文献1には、フローエントリを集約した際の履歴情報や、ネットワークトポロジ情報や転送ノードの構成情報を用いて細分化するといった記載しかなく、例示の処理もプロトコルの階層等を意識したものではない。すなわち、特許文献1に記載の方法を適用しただけでは、未知のトラフィックを作らずに、かつ求めたいレイヤの粒度で通信種別や通信量を把握することはできない。
そこで、本発明は、ユーザデータ通信用のスイッチのCPU負荷の上昇を抑制しつつ、ネットワークを流れるすべての通信を対象にした通信量を所望の粒度で把握できる通信システム、コントローラ、通信量計測方法および通信量計測プログラムを提供することを目的とする。
本発明による通信システムは、通信量の計測対象とされるデータパケットの転送処理を行う通信用スイッチと、通信用スイッチからデータパケットのコピーであるコピーパケットを受信して、自装置が保持しているフローエントリに従い、コピーパケットのフローごとの通信量を記録する記録用スイッチと、記録用スイッチに対して、受信したコピーパケットの通信量を記録させるための通信量記録用フローエントリを設定するコントローラとを備え、コントローラは、コピーパケットの経路上に位置する記録用スイッチに設定するフローエントリの集合において、マッチ条件が、記録用スイッチで認識可能なコピーパケット内の少なくとも予め指定された通信レイヤのアドレス情報における少なくとも予め指定されたアドレス値を網羅している通信量記録用フローエントリを、記録用スイッチに対して設定するフローエントリ設定手段と、所定のタイミングで、記録用スイッチが保持しているフローエントリの通信量を収集する通信量収集手段とを含むことを特徴とする。
本発明によるコントローラは、通信量の計測対象とされるデータパケットの転送処理を行う通信用スイッチとは別に、自装置が保持しているフローエントリに従い、受信パケットを処理するフロースイッチを備えた通信システムに備えられるコントローラであって、通信用スイッチに対して、データパケットのコピーであるコピーパケットを記録用スイッチに転送するための設定を行うコピーパケット設定手段と、フロースイッチに対して、受信したコピーパケットの通信量を記録させるための通信量記録用フローエントリを設定するフローエントリ設定手段と、所定のタイミングで、記録用スイッチが保持しているフローエントリの通信量を収集する通信量収集手段とを備え、フローエントリ設定手段は、コピーパケットの経路上に位置する記録用スイッチに設定するフローエントリの集合において、マッチ条件が、記録用スイッチで認識可能なコピーパケット内の少なくとも予め指定された通信レイヤのアドレス情報における少なくとも予め指定されたアドレス値を網羅している通信量記録用フローエントリを、前記記録用スイッチに対して設定することを特徴とする。
本発明による通信量計測方法は、通信量の計測対象とされるデータパケットの転送処理を行う通信用スイッチとは別に、自装置が保持しているフローエントリに従い、受信パケットを処理するフロースイッチを備えた通信システムに備えられるコントローラが、通信用スイッチに対して、データパケットのコピーであるコピーパケットを記録用スイッチに転送するための設定を行い、フロースイッチに対して、受信したコピーパケットの通信量を記録させるための通信量記録用フローエントリを設定し、所定のタイミングで、記録用スイッチが保持しているフローエントリの通信量を収集し、通信量記録用フローエントリを設定する際に、コピーパケットの経路上に位置する記録用スイッチに設定するフローエントリの集合において、マッチ条件が、記録用スイッチで認識可能なコピーパケット内の少なくとも予め指定された通信レイヤのアドレス情報における少なくとも予め指定されたアドレス値を網羅している通信量記録用フローエントリを、前記記録用スイッチに対して設定することを特徴とする。
本発明による通信量計測プログラムは、通信量の計測対象とされるデータパケットの転送処理を行う通信用スイッチとは別に、自装置が保持しているフローエントリに従い、受信パケットを処理するフロースイッチを備えた通信システムに備えられるコントローラとして動作するコンピュータに、通信用スイッチに対して、データパケットのコピーであるコピーパケットを記録用スイッチに転送するための設定を実施する処理、フロースイッチに対して、受信したコピーパケットの通信量を記録させるための通信量記録用フローエントリを設定する処理、および所定のタイミングで、記録用スイッチが保持しているフローエントリの通信量を収集する処理を実行させ、通信量記録用フローエントリを設定する処理で、コピーパケットの経路上に位置する記録用スイッチに設定するフローエントリの集合において、マッチ条件が、記録用スイッチで認識可能なコピーパケット内の少なくとも予め指定された通信レイヤのアドレス情報における少なくとも予め指定されたアドレス値を網羅している通信量記録用フローエントリを、前記記録用スイッチに対して設定させることを特徴とする。
本発明によれば、ユーザデータ通信用のスイッチのCPU負荷の上昇を抑制しつつ、ネットワークを流れるすべての通信を対象にした通信量を所望の粒度で把握できる。
第1の実施形態の通信システムの例を示す構成図である。 コントローラ1の構成例を示すブロック図である。 コントローラ1が保持するコピーパケット転送路管理情報の例を示す説明図である。 コピーパケット転送用のVLAN番号の一例を示す図である。 コントローラ1が保持するフロー管理情報の例を示す説明図である。 記録用スイッチ3が保持するフローテーブルおよびフローエントリの一例を示す図である。 記録用スイッチ3が保持するフローテーブルおよびフローエントリの一例を示す図である。 記録用スイッチ3が保持するフローテーブルの一例を示す図である。 フローエントリの分割・集約のイメージを示す説明図である。 第1の実施形態の動作の一例を示すシーケンス図である。 第3の実施形態の記録用スイッチ3が保持するフローテーブルの他の例を示す図である。 本発明の通信システムの概要を示す構成図である。 本発明のコントローラの他の構成例を示す構成図である。
以下、本発明の実施形態を図面を参照して説明する。
まず、本発明のコンセプトを説明する。本発明の通信システムは、通信用スイッチと、記録用スイッチと、これらスイッチを制御するコントローラとを備える。ここで、通信用スイッチはCU分離型ネットワークに対応したスイッチでなくてもよい。一方、記録用スイッチは、OFSなどの、CU分離型ネットワークに対応したスイッチである。記録用スイッチは、より具体的には、フローエントリが外部(コントローラ)より登録でき、かつフローエントリに統計情報を記録するスイッチであればよい。なお、通信用のスイッチは、サーバ等のコンピュータを接続する、いわゆるユーザデータ転送用のスイッチである。
コントローラは、通信用スイッチに対し、パケットをコピーして、記録用スイッチまでコピーしたパケット(コピーパケット)を転送するための設定を行う。設定方法は、通信用スイッチにリモートログインしてコマンドを実行するなど通信用スイッチのサポートする方法であればよい。
また、コントローラは、通信用スイッチに対し、パケットをコピーする際に、コピーパケット転送用のVLAN番号をコピーパケットに付与する設定を行ってもよい。このとき、コントローラは、すでにVLAN番号が付与されているパケットデータにコピーパケット転送用のVLAN番号を付与する場合には、例えば、既存のVLAN番号の直前にコピーパケット転送用のVLAN番号を追加させ、2段のVLAN番号の構成にさせる。コピーパケットに付与するコピーパケット転送用のVLAN番号には、記録用スイッチまでコピーパケットを転送するための番号と送受信方向を識別するための番号とを含ませてもよい。
また、コントローラは、対象とされるネットワークを流れるフローを識別して統計情報(通信量)を記録するためのフローエントリを生成し、記録用スイッチに対して、生成したフローエントリを事前に登録する。このとき、コントローラは、ネットワーク上を流れている通信の種類を知らないものとする。
このため、コントローラは、記録用スイッチ3が解析できる、パケットの少なくとも指定された通信レイヤのアドレス情報の、少なくとも指定された値を網羅したフローエントリを生成して、記録用スイッチに登録する。例えば、コントローラは、予め指定された通信レイヤごとに、該レイヤのアドレス情報のうち少なくとも指定されたデータ範囲全体を幾つかの範囲に分割し、それらデータ範囲に用いられる指定されたアドレス値に対応した複数のフローエントリを生成して、記録用スイッチに登録する。アドレス情報を分割する際には、アドレス情報に含まれるデータの種別ごとに分割してもよいし、1つのデータをさらにマスク等を用いてビット単位で分割してもよい。ここで、対象とする通信レイヤ、該レイヤのアドレス情報およびその値の指定として、例えば、「全て」が指定されてもよい。そのような場合には、コントローラは、記録用スイッチ3が解析できる、パケットの全ての通信レイヤの全てのアドレス情報の全ての値を網羅したフローエントリを、記録用スイッチに登録する。なお、コントローラは、値を網羅するために、ワイルドカードによる指定を用いることができる。このとき、ユーザは、例えば、設定先の情報(設定先スイッチおよび設定先フローテーブル等)とともに、コントローラが記録用スイッチに設定するフローエントリそのものを入力し、その設定を指示してもよい。
コントローラは、例えば、通信量を採取したい通信レイヤのプロトコル単位に、フローテーブルを用意し、各レイヤのアドレス情報をオープンフローにおけるマスク指定により範囲を指定したフローエントリを、記録用スイッチに事前に登録してもよい。
また、コントローラは、定期的に記録用スイッチからフローエントリを取得し、統計情報が増えているフローエントリをさらに細分化するための計算を行い、記録用スイッチに、細分化したフローエントリを設定しなおしてもよい。細分化は、対象のフローエントリのマッチ条件とされているアドレス値を、例えばマスクを用いてさらに細かく分割し、分割後のアドレス値に対応する複数のフローエントリを生成してもよい。ここで、記録用スイッチに登録するフローエントリは、多段構成であってもよい。すなわち、記録用スイッチに登録するフローエントリには、第一段目のフローエントリを検索した後、2段目のフローエントリを検索させる処理がアクションとして登録されていてもよい。
また、コントローラは、所定の取得回数以上や一定の時間以上、統計情報が変化しないフローエントリを、隣接するフローエントリと集約させるための計算を行い、記録用スイッチに、集約後のフローエントリを設定しなおしてもよい。集約は、対象のフローエントリのマッチ条件に用いられているアドレス値と隣接するアドレス値がマッチ条件とされた、隣接フローエントリと、マスク指定で結合できる場合には、1つのフローエントリに結合してもよい。
コントローラは、例えば、定期的に記録用スイッチが保持しているフローエントリのうち範囲指定されたフローエントリを取得する。そして、通信量が増えていないなど所定の条件を満たすフローエントリがあれば、さらにフローを細分化させ、通信量が変化していないなど所定の条件を満たすフローエントリがあればフローを結合して、記録用スイッチのフローエントリを更新しつつ、記録用スイッチで通信量の記録を継続させてもよい。
このようにして、フローエントリの取得と分割・結合を繰り返すことにより、ネットワーク上を流れているトラフィックがフローエントリの統計情報に適切に表されるようになる。
また、コントローラは、例えば、ユーザからの指示等に応じて、記録用スイッチから表示条件に合致するフローエントリを収集して、収集したフローエントリの統計情報が示す通信量を表示する可視化機能を有していてもよい。
通信用スイッチは、コントローラからの設定に応じて、パケットデータをコピーして、所定の出力ポートから転送する。ここで、出力ポートには、予めコントローラから、記録用スイッチに到達可能なポートが指定されている。このとき、通信用スイッチは、コピーパケット転送用のVLAN番号を付与したコピーパケットを作成してもよい。
記録用スイッチは、コピーパケットを受信すると、コントローラから登録されたフローエントリを、順に検索し、マッチ条件に合致したフローエントリの統計情報を更新する。記録用スイッチは、すべてのフローエントリの検索が終わった時点で、コピーパケットを廃棄する。なお、この処理も、コントローラから登録されるフローエントリのアクションとして登録される。
記録用スイッチは、このようなフローエントリに従った処理を行うとともに、コントローラからフローエントリの情報を要求するメッセージを受信した場合には、該当するフローエントリの情報(統計情報を含む)をコントローラに送信する。
コントローラは、記録用スイッチからフローエントリの情報を取得することにより、ネットワーク内を流れていたトラフィックの分類と通信量を特定することができる。
このように、本発明では、統計情報を記録する専門のスイッチである記録用スイッチを、通信量やネットワークのトポロジに応じて、1つ以上設ける。そして、通信用パケットには、ユーザデータの通信パケットを受信した際に、通信量の計測用の処理として、転送用のVLAN番号を付与したコピーパケットを指定の記録用スイッチに転送させる処理だけを行わせる。そして、記録用スイッチには、ユーザ等により予め指定された内容に従い、コピーパケットの各通信レイヤごとに、所望のアドレス情報(データ範囲)とそれに用いられる値が網羅されたフローエントリを、多段構成で予め登録させる。そして、所定のタイミング(定期的やユーザ指示に応じてなど)で、記録用スイッチのフローエントリの統計情報を収集し、その統計情報を基に、フローエントリの分割または集約(結合)を行う。
本発明によれば、事前にユーザデータ通信路内を流れている通信トラフィックがわからない場合でも、CU分離型ネットワークで用いられるフローエントリの特性を利用して、記録用スイッチが、各通信レイヤのアドレス情報に含まれる任意の単位でトラフィックを自動的に識別し、統計情報を記録することができる。
本発明によれば、サンプリングを行わずに、全てのパケットをコピーするため、通信トラフィックの識別と通信量について精度の高い情報獲得が可能になる。なお、ミラーリングによる方法では、トラフィック解析のために高性能なCPUを持ったサーバが必要だった。これに対して、本発明では、記録用スイッチは、フローテーブルを利用して利用者が所望の粒度の統計情報を記録できるため、高速に大容量の通信トラフィックを識別して、正確な統計情報を記録することができる。
実施形態1.
次に、図面を参照して本発明の第1の実施形態について説明する。図1は、第1の実施形態の通信システムの例を示す構成図である。
図1に示す通信システムは、コントローラ1と、複数の通信用スイッチ2(例えば、通信用スイッチ2−1、通信用スイッチ2−2および通信用スイッチ2−3)と、1つの記録用スイッチ3と、複数のホスト5(例えば、サーバ5−1、サーバ5−2、クライアント端末5−3)とを備える。
以下、どの通信用スイッチかを区別なく表現する場合には、通信用スイッチ2−1、通信用スイッチ2−2および通信用スイッチ2−3を、単に、通信用スイッチ2と呼ぶ場合がある。
また、図1において、符号100は、コピーパケット転送用通信路を表している。また、符号200は、パケットコピー設定用通信路を表している。また、符号300−1〜300−3は、ユーザデータ通信路を表している。また、符号400は、フロー制御用通信路を表している。
本例において、通信用スイッチ2同士や通信用スイッチ2とホスト5とは、ユーザデータ通信路300(例えば、300−1、300−2、300−3のいずれか)を介して接続されている。
また、記録用スイッチ3と通信用スイッチ2の各々とは、ユーザデータ通信路300、コピーパケット転送用通信路100および/またはパケットコピー設定用通信路200を介して接続されている。また、コントローラ1と記録用スイッチ3とは、フロー制御用通信路400を介して接続されている。
記録用スイッチ3とコントローラ1間のコピーパケット転送用通信路100は、オープンフローを利用してフローエントリの設定、収集を行うための通信路の例である。
コントローラ1と通信用スイッチ2間および、サーバ5−1、サーバ5−2とクライアント端末5−3間のユーザデータ通信路300における通信方法は、オープンフローを利用してもよいし、その他の通信方法を用いてもよい。
サーバ5−1,5−2およびクライアント端末5−3は、図示しないCPU,主記憶装置、及び外部記憶装置を備えるコンピュータ装置であり、外部記憶に格納されたプログラムを実行することで、他のサーバ、クライアント端末との間で通信用スイッチ2を介して通信を行う。
コントローラ1は、通信用スイッチ2に、ユーザデータのコピーパケットをコピーパケット転送用のVLAN番号を付与して、記録用スイッチ3に転送するための設定を行う。なお、ネットワーク上で通信用スイッチ2から記録用スイッチ3までコピーパケットが転送可能な制御方法であれば、VLAN番号以外の方法を用いてもよい。そのような場合であっても、コピーパケットのアドレス情報のいずれかのビットに、転送方向を示す情報を含ませるのが好ましい。
また、コントローラ1は、予め指定された内容に従い、コピーパケットに含まれる通信レイヤごとに、マッチ条件に該レイヤの指定されたアドレス情報における指定された値をすべて含むフローエントリを生成し、予め記録用スイッチ3に登録する。
コントローラ1は、例えば、VLAN番号、宛先となるIPアドレス単位、送信元となるIPアドレス単位、プロトコル番号単位、宛先となるレイヤ4ポート番号単位、送信元となるレイヤ4ポート番号単位にフローテーブルを生成し、記録用スイッチ3に登録してもよい。このフローテーブルは、さらに送信方向と受信方向単位に作成する。コントローラ1は、記録用スイッチ3がOFSである場合には、記録用スイッチ3に対して、生成したフローテーブルを、オープンフロープロトコルを使用して登録してもよい。
コントローラ1は、上記のような単位でトラフィックを識別するためのフローテーブルのマッチ条件を計算し、マッチ条件に用いたデータ種別に対応するフローテーブルにフローエントリとして登録する。この時、ネットワーク上を流れているトラフィックはわからないため、マッチ条件は範囲指定とする。なお、記録用スイッチ3におけるフローテーブルの構造は後述する。
コントローラ1は、記録用スイッチ3に対するフローテーブルの設定や取得に、物理的に独立したコピーパケット転送用通信路100、パケットコピー設定用通信路200、記録用スイッチとのフロー制御用通信路400を使用することができる。
また、コントローラ1は、記録用スイッチ3からフローテーブル単位にフローエントリを取得することもできる。
図2は、コントローラ1の構成例を示すブロック図である。図2に示すように、コントローラ1は、コピーパケット転送路管理情報記憶部11と、フローエントリ管理情報記憶部12と、コピーパケット転送路管理部13と、コピー操作設定部14と、記録用フローエントリ設定部15と、通信量取得部16とを含んでいてもよい。
コピーパケット転送路管理部13は、コマンド等によりユーザまたは外部の装置から指定された通信用スイッチ2のIPアドレス等のアドレス情報と、コピーパケット転送用のVLAN番号とを含む通信用スイッチ情報111を、コピーパケット転送路管理情報記憶部11に保存する。
図3は、コピーパケット転送路管理情報記憶部11に記憶されるコピーパケット転送路管理情報の例を示す説明図である。図3に示す例では、コピーパケット転送路管理情報は、通信用スイッチ2の数分存在する通信用スイッチ情報111を含む。通信用スイッチ情報111は、通信用スイッチ2のアドレス情報(本例では、IPアドレス)1111と、コピーパケット転送用のVLAN番号1112と、コピー対象転送方向1113とを有する。ここで、VLAN番号1112は、アドレス情報1111が示す通信用スイッチ2に付与させるVLAN番号(10ビット)を表す。また、コピー対象転送方向1113は、アドレス情報1111が示す通信用スイッチ2にコピーさせるデータパケットの対象が送信パケットか、受信パケットか、またはその両方であるかを表す。
また、図4は、コピーパケットに付与されるコピーパケット転送用のVLAN番号の構成図である。図4に示すように、本実施形態では、コピーパケット転送用のVLAN番号は、12ビットのVLAN情報の内、最後の2ビットを除く領域で表される番号を用いる。また、12ビットのVLAN情報の内、最後の2ビットは、送信パケットのコピーパケットか受信パケットのコピーパケットかを識別するための転送方向情報(direction)に用いる。コピーパケット転送路管理部13は、通信用スイッチ2でコピーパケットに付与させるコピーパケット転送用のVLAN番号を、通信用スイッチ情報111に基づいて、送信用と受信用とに分けて生成する。
コピー操作設定部14は、コピーパケット転送路管理情報記憶部11に保存された情報に従い、通信用スイッチ2にデータパケットをコピーさせ、記録用スイッチ3まで転送させるための設定を行う。本実施形態では、記録用スイッチ3までコピーパケットを転送する方式として、コピーパケットに付与されたVLAN情報に従い、リモートに存在するモニタリング装置としての記録用スイッチ3に該コピーパケットを転送する技術(リモートミラーリング)を使用する。したがって、コピー操作設定部14は、コピーパケットに、指定したVLAN番号を付与した上で、指定した出力ポートからコピーパケットを転送させる設定を、通信用スイッチ2に行う。
記録用フローエントリ設定部15は、統計情報(通信量)を記録するためのフローエントリを生成して、記録用スイッチ3に設定する。記録用フローエントリ設定部15は、統計情報(通信量)を記録するためのフローエントリを記録用スイッチ3に送信し、記録用スイッチ3に登録させる。
また、フローエントリ管理情報記憶部12には、記録用スイッチ3に設定されたフローエントリの情報が記憶される。
図5は、フローエントリ管理情報記憶部12に記憶されるフローエントリ管理情報の例を示す説明図である。図5に示すように、フローエントリ管理情報は、複数のフローエントリ構成情報121を含む。フローエントリ構成情報121は、各々1つのフローエントリに対応している。フローエントリ構成情報121において、優先度1211は、記録用スイッチ3が当該フローエントリを検索する順序を表している。ここで、記録用スイッチ3に同じ優先度のフローエントリが複数存在する場合は、記録用スイッチ3は、登録された順に検索する。
また、転送方向1212は、ユーザデータの転送方向を表している。転送方向1212は、値として送信方向と受信方向を持つ。エントリ種別1213は、フローエントリの検索条件の種別を表わしている。エントリ種別1213は、値として、VLAN番号、送信元レイヤ3アドレス、宛先レイヤ3アドレス、送信元レイヤ4アドレス、宛先レイヤ4アドレス、プロトコル番号等、コピーパケットの各通信レイヤのアドレス情報に含まれるすべてのデータを識別する整数値を持ってもよい。
また、アドレス範囲1214は、フローエントリの検索条件の値を表している。本例のアドレス範囲1214には、マスク値との組み合わせで範囲指定が可能となっている。アクション情報1215は、フローエントリに合致した場合の振る舞いを表わしている。アクション情報1215には、例えば、統計情報として、当該フローの通信量の記録を指示する情報とともに、次の種別のフローテーブルの検索を行うか、コピーパケットを廃棄するかを識別する値が含まれていてもよい。
また、通信量1216は、フローエントリのマッチ条件に合致したフロー(コピーパケット)の数を表している。通信量1216には、パケット数とオクテット数とが含まれる。
本例のフローエントリのマッチ条件は、転送方向1212と、エントリ種別1213と、アドレス範囲1214とで表現される。より具体的には、転送方向1212が一致しており、かつエントリ種別1213で示されるアドレス情報の値が、少なくともアドレス範囲1214で示される範囲の値と一致している場合に、そのコピーパケットは、当該フローエントリ構成情報121が対応するフローエントリのマッチ条件に合致しているとしてもよい。
通信量取得部16は、フローエントリ管理情報記憶部12に記憶されているフローエントリ管理情報を基に、記録用スイッチ3から、フローエントリの情報を取得する。通信量取得部16は、例えば、記録用スイッチ3に記憶されているフローエントリの情報を、エントリ種別ごとに、順次取得してもよい。通信量取得部16が取得したフローエントリの情報は、フローエントリ構成情報121として、フローエントリ管理情報記憶部12に登録または上書き更新される。これにより、フローエントリ管理情報記憶部12に通信量1216が記録される。
通信量取得部16は、例えば、フローエントリ管理情報記憶部12に登録されたフローエントリ構成情報121の情報をキーにして、取得対象とするフローエントリを決定し、記録用スイッチ3から該当のフローエントリを取得してもよい。そして、フローエントリ管理情報記憶部12内の該当するフローエントリの通信量欄を更新してもよい。
通信量取得部16は、例えば、一定時間間隔で動作し、フローエントリを記録用スイッチ3から取得する。
通信量取得部16は、取得された通信量の変化の有無やその変化量を基に、記録用フローエントリ設定部15にエントリの分割や集約を依頼する。通信量取得部16は、例えば、今回取得したフローエントリの通信量が、前回取得した情報が保存されているフローエントリ構成情報121の値より所定量以上増えている場合、記録用フローエントリ設定部15にエントリの分割を依頼してもよい。一方、通信量取得部16は、例えば、取得したフローエントリの通信量が、所定回数以上または所定時間以上変化がない場合、記録用フローエントリ設定部15にエントリの集約を依頼してもよい。
記録用フローエントリ設定部15は、通信量が増えている場合に、該フローエントリを分割して複数のフローエントリを生成する。また、記録用フローエントリ設定部15は、通信量の変化が所定回数または所定時間以上ない場合、該フローエントリを隣接するフローエントリと集約させて1つのフローエントリを生成する。そして、記録用フローエントリ設定部15は、記録用スイッチ3に対して、分割または集約対象とされたフローエントリを削除させ、代わりに、新たに生成したフローエントリを登録する。なお、通信量を基に最初に集約対象とされるフローエントリが選択される条件と、そのフローエントリとの集約候補とされるフローエントリの条件とがいずれも、通信量の変化が所定回数または所定時間以上ない場合としているが、両者の条件を異ならせてもよい。
図6Aおよび図6Bは、記録用スイッチ3における、フローテーブルとフローエントリの例を示す説明図である。なお、図6Bは、図6Aの続きを示している。
図6Aおよび図6Bに示すように、記録用スイッチ3は、該記録用スイッチ3が認識可能なすべての通信レイヤのすべてのアドレス情報のすべての値を網羅するように予め分割された単位で、フローテーブルを有していてもよい。本例では、記録用スイッチ3は、エントリ種別1213で指定される値の数だけ、フローテーブルを有しているものとする。
図6Aおよび図6Bには、一例として、7種のフローテーブルが例示されている。1つ目は、送信・受信種別に対応するフローテーブル30である。2つ目は、VLAN番号に対応したフローテーブル31(例えば、31−1および31−2)である。3つ目は、宛先レイヤ3アドレスに対応したフローテーブル32(例えば、32−1および32−2)である。4つ目は、送信元レイヤ3アドレスに対応したフローテーブル33(例えば、33−1および33−2)である。5つ目は、プロトコル番号に対応したフローテーブル34(例えば、34−1および34−2)である。6つ目は、宛先レイヤ4アドレスに対応したフローテーブル35(例えば、35−1〜35−4)である。7つ目は、送信元レイヤ4アドレスに対応したフローテーブル36(例えば、36−1〜36−4)である。
各フローテーブルは、コピーパケット受信時に、先頭から順に全て検索される。なお、図6Aおよび図6Bでは図示省略しているが、各フローテーブルの最後には、ワイルドカードで指定されたアドレス値を有するフローエントリが登録されている。
また、図6Aおよび図6Bには、1つのエントリ種別に複数のフローテーブルが示されているが、これは、後段のフローテーブルが、前段のエントリ種別のフローテーブルの値を引き継いでいることを意味する。図7は、送信・受信種別に対応するフローテーブル30およびVLAN番号に対応するフローテーブル31−1に登録されるフローエントリの例を示す説明図である。図7に示すように、例えば、送信・受信種別に対応するフローテーブル30には、転送方向が送信を示すコポーパケットを識別するフローエントリが登録されている。そのフローエントリには、例えば、該エントリの通信量を加算した上で、当該エントリと紐づいているVLAN番号に対応するフローテーブル31−1での検索処理を行う旨のアクション情報が含まれている。VLAN番号に対応するフローテーブル31−1に含まれるフローエントリにも同様に、通信量を加算した上で、当該エントリに紐づいた後段のフローテーブル(例えば、宛先レイヤ3アドレスに対応するフローテーブル32−1)での検索処理を行う旨のアクション情報が含まれている。このようにして、様々な粒度でかつ様々なアドレス値に対応したフローエントリを用意する。なお、最初は粒度を荒めにして各フローテーブルに登録されるフローエントリの数を少なくしてもよい。後述するエントリの分割処理で、実際の通信状況に合わせて適切なエントリ数に展開される。
また、記録用フローエントリ設定部15は、最後のすなわち最も後段に位置するエントリ種別のフローテーブルの各フローエントリで、コピーパケットを廃棄するアクションを設定する。
また、図8は、フローエントリの分割および集約の例を示す説明図である。図8に示す例では、最初、宛先レイヤ4アドレスに対応するフローテーブル35に、宛先tcpポートの値とマスク値“0xe000”とを合わせた結果、マスク値“0xe000”と合致することをマッチ条件とするフローエントリが登録されている。これは、当該フローエントリのアドレス範囲が、“0xe000”〜“0xefff”であることを意味している。
ここで、コントローラ1が当該フローエントリの通信量が増えたことを検出する。そのような場合、現在のフローエントリのマッチ条件とされるアドレス値の範囲“0xe000”〜“0xefff”を2つに分割し、“0xe000”〜“0xe7ff”と、“0xe800”〜“0xefff”とに分け、それぞれをマッチ条件とする2つのフローエントリを、上記のフローエントリに代えて設定してもよい。
このような分割によって、通信を行ったポート番号を絞り込むことができる。
また、図8に示す例では、そのようにして、宛先レイヤ4アドレスに対応するフローテーブル35に、“0x1000”〜“0x17ff”をアドレス範囲とするフローエントリ(図中のマスク値“0x1000”のフローエントリ)と、“0x1800”〜“0x1fff”をアドレス範囲とするフローエントリ(図中のマスク値“0x1800”のフローエントリ)とが設定される例が示されている。ここで、コントローラ1は、例えば、マスク値“0x1000”のフローエントリの通信量が一定時間変化しないことが検出されたとする。そのような場合、隣接するアドレス値を有する図中のマスク値“0x1800”のフローエントリが分割対象でなければ、これら2つのフローエントリを集約してもよい。すなわち、マスク値の論理積をとった新たなマスク値“0x1000”を有する1つのフローエントリを生成し、上記の2つのフローエントリに代えて設定してもよい。
次に、図9を参照して、本実施形態の動作を説明する。図9は、本実施形態の全体的な処理の流れをシーケンス図である。以下の説明において、カッコ付きの番号(1)〜(8)は、図9内に記載されている同じ番号と対応している。
(1)コピーパケット転送路管理部13が、通信システムのネットワーク構成を基に、コピーパケット転送路管理情報として、ユーザデータの転送を行わせる通信用パケットについての通信用スイッチ情報111を生成してコピーパケット転送路管理情報記憶部11に記憶させる。
本例では、コピーパケット転送用通信路100、パケットコピー設定用通信路200、ユーザデータ通信路300、フロー制御用通信路400という4種類の通信路と、通信用スイッチ2、サーバ5−1、5−2、クライアント端末5−3で構成されるパケットデータを転送する物理接続構成および、コントローラ1、記録用スイッチ3で構成されるオープンフロー技術に基づく物理接続構成で構成されるコピーパケットを転送する物理接続構成が配備されているとする。また、記録用スイッチ3へのフローエントリの登録は、オープンフロー技術によりコントローラ1から行われるものとする。
コピーパケット転送路管理部13は、例えば、コピーパケット転送用通信路100を使用して通信するためのVLAN番号を決定する。VLAN番号のデータ構造は、図4に示すものとする。すなわち、最下位ビットはパケットデータの転送方向を示し、“0x01”は受信パケットを、“0x10”は送信パケットをコピーしたことを示す。このため、コピーパケット転送路管理部13は、VLAN番号の最下位2ビットは予約済みとし、4の倍数でコピーパケット転送用のVLAN番号を決定してもよい。なお、最下位1ビットのみが転送方向を表すとしてもよい。その場合、コピーパケット転送路管理部13は、VLAN番号の最下位1ビットは予約済みとし、2の倍数でコピーパケット転送用のVLAN番号を決定する。コピーパケット転送用のVLAN番号の決定方法は、“2048”等の固定値をデフォルトで使用し、コピーパケット転送路管理部13が自動で選択してもよいし、コマンド等により利用者が指定してもよい。
コピーパケット転送路管理部13は、コピーパケット転送用のVLAN番号が決定すると、決定したVLAN番号を、VLAN番号1112としてコピーパケット転送路管理情報記憶部11に保存する。なお、当該VLAN番号1112の設定対象とされる通信用スイッチ2は、通信用スイッチ2−1および通信用スイッチ2−2である。
(2)コピー操作設定部14は、通信用スイッチ2−1および通信用スイッチ2−2に対し、パケットをコピーし、リモートに存在する記録用スイッチ3にコピーパケットを転送する設定を行う。
この設定は、通信用スイッチ2の各々に実装されているリモートミラーリング等の技術を利用してよい。その際に使用するVLAN番号は、コピーパケット転送路管理情報記憶部11に保存されている、設定先の通信用スイッチに対応する通信用スイッチ情報111のVLAN番号1112を使用する。
通信用スイッチ2−3にコピー操作設定部14が設定を行わないのは、サーバ、クライアント端末等が直接接続していないためである。コピー操作設定部14は、コマンド設定等により、サーバ、クライアント端末が接続しない通信用スイッチ2を把握し、コピー操作を登録する対象外としてもよい。
(3)記録用フローエントリ設定部15は、記録用スイッチ3に、図6Aおよび図6Bで示したような各通信レイヤのアドレス情報を網羅するように設定されたフローテーブルを登録する。
図6Aおよび図6Bにおいて、送信・受信種別に対応したフローテーブル30は、コピーパケットに含まれるVLAN番号において転送方向を示すビットの値により、送信方向か受信方向の選択を行う。各転送方向単位にフローテーブル31から36までのフローテーブルを作成する。
VLAN番号に対応するフローテーブル31は、パケットデータのVLANを識別するフローテーブルである。記録用フローエントリ設定部15は、初期登録時に、例えば256個のVLAN毎に集約したフローテーブル31を生成してもよい。
宛先レイヤ3アドレスに対応するフローテーブル32は、一例として宛先IPアドレスを検索するためのフローテーブルである。記録用フローエントリ設定部15は、初期登録時に、例えば、IPアドレスの先頭1オクテット単位にマスク値で分割した、フローエントリを生成してもよい。
送信元レイヤ3アドレスに対応するフローテーブル33は、一例として送信元IPアドレスを検索するためのフローテーブルである。記録用フローエントリ設定部15は、初期登録時に、例えば、IPアドレスの先頭1オクテット単位にマスク値で分割した、フローエントリを生成してもよい。
プロトコル番号に対応するフローテーブル34は、TCP、UDP、ICMP等のプロトコルを識別するためのフローテーブルである。
宛先レイヤ4アドレスに対応するフローテーブル35は、TCP,UDPのポート番号を検索するためのフローテーブルである。記録用フローエントリ設定部15は、例えば、プロトコル番号に対応するフローテーブル34のプロトコルがTCP,UDPを示す値の場合に、4096のポート番号単位にマスク値で値を分割した、フローエントリを生成してもよい。TCP,UDP以外のプロトコルの場合、記録用フローエントリ設定部15は、プロトコル番号のフローテーブル34により検索された後、宛先レイヤ4アドレスのフローテーブル35を検索させず、コピーパケットを廃棄させる旨のフローエントリを設定する。
記録用フローエントリ設定部15は、送信元レイヤ4アドレスに対応するフローテーブル36も、宛先レイヤ4アドレスに対応するフローテーブル35と同様に、4096個のポート番号単位にマスク値で値を分割して、フローエントリを生成してもよい。
図7に示したように、送信・受信種別に対応するフローテーブル30において、パケット内のVLAN番号の転送方向を示すビットが“0x10”の場合、送信方向のコピーパケットであると解釈し、送信方向用VLAN番号に対応するフローテーブル31(例えば、31−1)の検索を行わせる旨のアクション情報が登録されている。また、送信方向用VLAN番号のフローテーブル31の検索の次は、送信方向用の宛先レイヤ3アドレスのフローテーブル32の検索を行わせる。最後に、送信方向用の送信元レイヤ4アドレスのフローテーブル36の検索が終わった場合、例えば、無条件にコピーパケットの廃棄アクションを示すアクション情報を有するフローエントリが登録されているフローテーブルを検索させて、コピーパケットを廃棄させる。また、プロトコル番号に対応するフローテーブル34でTCP、UDP以外のプロトコルの場合のフローエントリも、アクション情報にはコピーパケットの廃棄アクションを登録するなどして、コピーパケットを廃棄させる。
(4)通信用スイッチ2−1または通信用スイッチ2−2を使用したユーザデータ通信が行われた場合、通信用スイッチ2は、コピー操作設定部14の設定に従って、コピーパケットを作成して、記録用スイッチ3に向けてコピーパケットを送信する。
このとき、通信用スイッチ2は、コピーパケットにおいて、オリジナルVLAN番号を変更せず、設定されたコピーパケット転送用のVLAN番号を追加する。
(5)記録用スイッチ3は、フローエントリの指定に従って受信したコピーパケットを送信・受信種別に対応するフローテーブル30から順に検索を行い、一致したフローエントリに通信量を記録していく。そして、記録用スイッチ3は、最後のフローテーブルの検索が終了した際に、フローエントリに従い、コピーパケットを廃棄する。
(6)通信量取得部16は、利用者やアプリケーションからの通信量取得要求または定期的なフローテーブル収集トリガにより、記録用スイッチ3からフローエントリを取得し、取得したフローエントリに含まれる通信量を、フローエントリ管理情報記憶部12に保存する。
(7)通信量取得部16は、定期的にフローテーブル中のフローエントリを収集し、フローエントリ単位に通信量の収集を行う。収集間隔は、フローエントリの数に応じて定めてもよい。このとき、一度に取得するフローエントリ数も調整して、各フローエントリが同じ時間間隔で取得されるようにするのが好ましい。通信量取得部16は、例えば、記録用スイッチ3から収集したフローエントリの通信量が、フローエントリ管理情報記憶部12に保存されている前回取得時の通信量よりも、連続して上回った場合、記録用フローエントリ設定部15に、当該フローエントリの分割を依頼する。
(8)記録用フローエントリ設定部15は、通信量取得部16からの依頼に応じて、指定されたフローエントリを分割する。そして、上記の(3)の手順を用いて、記録用スイッチ3に分割したフローテーブルを登録する。この時、分割されたフローエントリのアクション情報には、分割前のフローエントリと同じアクションを設定する。
フローエントリの分割が繰り返されることにより、通信量の増加のあった最も細かい粒度のアドレス情報までフローエントリが分割され、ユーザデータ通信路300上を流れている通信の内容を細かく把握することが可能となる。
また、通信量が一定回数増加しないフローエントリがあった場合、通信量取得部16は、記録用フローエントリ設定部15に、当該フローエントリの集約を依頼する。記録用フローエントリ設定部15は、通信量取得部16からの依頼に応じて、指定されたフローエントリの集約を試みる。集約できる隣接のフローエントリがあれば、集約を行う。そして、上記の(3)の手順を用いて、記録用スイッチ3に集約したフローテーブルを登録する。
以上のように、本実施形態によれば、ユーザデータ通信用のスイッチのCPU負荷の上昇を抑制しつつ、ネットワークを流れるすべての通信を対象にした通信量を所望の粒度で把握できる。
実施形態2.
本発明の第2の実施形態を説明する。本実施形態では、第1の実施形態の構成に対して、通信用スイッチ2をオープンフロー化する。
通信用スイッチ2の実装によっては、VLAN番号を数個程度のみしか使用できない可能性がある。その場合は、オープンフロー技術を使用し、多数のVLAN番号の設定とコピーパケットの生成および転送操作を行うことが可能になる。
また、オープンフロー化により、特定のフローのみをコピーし、コピーパケット転送用通信路100を流れるコピーパケットの量を限定することも可能である。それにより、コピーパケット転送用通信路100の通信帯域が少ない場合でもパケットの欠落無く、通信量の計測を実現することが可能となる。
この場合、一例として、コントローラ1から通信用スイッチ2に対して指定されたパケットコピーの対象となるフロー(パケット)の情報を、コピーパケット転送路管理部13が認識し、コピーパケット転送路管理情報記憶部11に記憶してもよい。その場合、通信用スイッチ情報111に、コピー対象とするフローの情報を格納することも可能である。
実施形態3.
本実施形態では、第1の実施形態に比べて、記録用スイッチ3がより少ない量のフローエントリで、通信量の計測を実現する。
図10は、本実施形態の記録用スイッチ3が保持するフローテーブルの例を示す図である。例えば、図6Aおよび図6Bに示したフローテーブルの構成では、通信が実際に行われるIPアドレス数分およびL4ポート番号数のフローエントリが必要となり、記録用スイッチ3において、フローエントリを記録するメモリ容量が不足する可能性がある。このため、記録用スイッチ3を複数設けてもよい。すなわち、図10に示すように、通信システムは、複数の記録用スイッチ3を、フローテーブル毎に多段に配置してもよい。図6Aおよび図6Bに示す例では、最後に検索されるフローテーブルのアクション情報では、コピーパケットの廃棄を行っていた。しかし、本実施形態の通信システムでは、記録用スイッチ3を多段に接続し、記録用スイッチ3の各々に対して、フローテーブル単位でフローエントリを設定する。図10に示す例は、宛先レイヤ3アドレスに対応するフローテーブル32と送信元レイヤ3アドレスに対応するフローテーブル33を別の記録用スイッチ3(3−1および3−2)に設定する例である。
例えば、記録用スイッチ3−1で検索される最後のフローテーブル32には、記録用スイッチ3−2と接続している物理ポートにコピーパケットを送信するアクション情報を有するフローエントリが登録される。一方、記録用スイッチ3−2で検索される最後のフローテーブル33には、コピーパケットを廃棄するアクション情報を有するフローエントリが登録される。
記録用スイッチ3を、フローエントリの種別に応じて多段構成となるように配備することにより、フローテーブルを記録用スイッチ単位に分散でき、対応可能なフローエントリ数の少ないスイッチしか配備できない環境でも本発明を利用可能になる。
次に、本発明の通信システムの概要を説明する。図11は、本発明の通信システムの義用を示すブロック図である。図11に示すように、本発明の通信システムは、通信用スイッチ61と、記録用スイッチ62と、コントローラ70とを備える。
通信用スイッチ61(例えば、通信用スイッチ2)は、通信量の計測対象とされるデータパケットの転送処理を行う。
記録用スイッチ62(例えば、記録用スイッチ3)は、通信用スイッチ61からデータパケットのコピーであるコピーパケットを受信して、自装置が保持しているフローエントリに従い、コピーパケットのフローごとの通信量を記録する。
コントローラ70(例えば、コントローラ1)は、記録用スイッチ62に対して、受信したコピーパケットの通信量を記録させるための通信量記録用フローエントリを設定する。
また、コントローラ70は、フローエントリ設定手段71と、通信量収集手段72とを含む。
フローエントリ設定手段71(例えば、記録用フローエントリ設定部15)は、コピーパケットの経路上に位置する記録用スイッチに設定するフローエントリの集合において、マッチ条件が、記録用スイッチで認識可能なコピーパケット内の少なくとも予め指定された通信レイヤのアドレス情報における少なくとも予め指定されたアドレス値を網羅している通信量記録用フローエントリを、記録用スイッチに対して設定する。
なお、フローエントリ設定手段71は、コピーパケットの経路上に位置する記録用スイッチ62に設定するフローエントリの集合において、マッチ条件が、記録用スイッチ62で認識可能なコピーパケット内の全ての通信レイヤの全てのアドレス情報における全てのアドレス値を網羅している通信量記録用フローエントリを、記録用スイッチ62に対して設定してもよい。
通信量収集手段72(例えば、通信量取得部16)は、所定のタイミングで、記録用スイッチ62が保持しているフローエントリの通信量を収集する。
また、上記の通信システムにおいて、記録用スイッチ62は、通信量記録用フローエントリを、コピーパケットのアドレス情報内の種別データであって、アドレス情報内のいずれかのデータフィールドもしくはデータフィールド内において意味をもつビットまたはそれらの組み合わせである種別データの単位で分けて保持するための複数のフローテーブルを有し、フローエントリ設定手段71は、複数のフローテーブルの各々に、受信したコピーパケットの当該フローテーブルが対応する種別データの値がマッチ条件に合致した場合に、該コピーパケットの通信量を記録させた後、該コピーパケットを破棄するか、他のフローテーブルを再度検索させるか、他の記録用スイッチ62に転送させるかのいずれかを行わせる条件付きフローエントリを少なくとも登録させるとともに、各のフローテーブルの末尾に、受信したコピーパケットの当該フローテーブルが対応する種別データの値を問わず、受信したコピーパケットの通信量を記録させた後、該コピーパケットを破棄するか、他のフローテーブルを再度検索させるか、他の記録用スイッチ62に転送させるかのいずれかを行わせる条件なしフローエントリを登録させてもよい。
また、図12は、コントローラ70の他の構成例を示すブロック図である。コントローラ70は、収集した通信量が所定の第1条件を満たす場合に、該フローエントリを分割するフローエントリ分割手段73(例えば、記録用フローエントリ設定部15)を含み、フローエントリ分割手段73は、分割対象とされたフローエントリでマッチ条件とされるアドレス情報の値の範囲を2以上に分割し、分割後の値の範囲をそれぞれマッチ条件とする2以上のフローエントリを生成し、フローエントリ設定手段71は、記録用スイッチ62に対して、分割前のフローエントリの削除と、分割後のフローエントリの追加を設定してもよい。
また、コントローラ70は、収集した通信量が所定の第2条件を満たす場合に、該フローエントリを集約するフローエントリ集約手段74(例えば、記録用フローエントリ設定部15)を含み、フローエントリ集約手段74は、集約対象とされた第1のフローエントリのマッチ条件に用いられるアドレス情報のデータ種別と同一のデータ種別をマッチ条件に用いており、かつ収集された通信量が所定の第3条件を満たす第2のフローエントリが存在する場合に、第1のフローエントリと第2のフローエントリとを集約して、両者の値の範囲を結合させた値の範囲を、マッチ条件とするアドレス情報の値の範囲とする第3のフローエントリを生成し、フローエントリ設定手段71は、記録用スイッチ62に対して、第1のフローエントリおよび第2のフローエントリの削除と、第3のフローエントリの追加を設定してもよい。
また、コントローラ70は、通信用スイッチ61に対して、データパケットのコピーを記録用スイッチ62に転送するための設定を行うコピーパケット設定手段75(例えば、コピー操作設定部14)を含み、コピーパケット設定手段75は、コピーパケットに、コピーパケット転送用に定義されたVLAN番号を付与した上で、所定のポートから出力させるための設定を行ってもよい。
コピーパケット設定手段75は、コピーパケットに、コピーパケット転送用に定義されたVLAN番号であって、データパケットの送受信方向を示す番号が組み込まれたVLAN番号を付与した上で、所定のポートから出力させるための設定を行い、フローエントリ設定手段71は、記録用スイッチ62に対して、1つのフローテーブル内に登録されるフローエントリの集合において、マッチ条件が、送受信方向を示す番号に用いられる値を網羅している通信量記録用フローエントリを設定してもよい。
また、上記の通信システムは、コピーパケットの転送経路上に複数の記録用スイッチ62を備えていてもよい。そのような場合において、フローエントリ設定手段71は、複数の記録用スイッチ62に設定するフローエントリの集合において、マッチ条件が、記録用スイッチで認識可能なコピーパケット内の少なくとも予め指定された通信レイヤの予め指定されたアドレス情報における予め指定されたアドレス値を網羅している通信量記録用フローエントリを、記録用スイッチに対して設定してもよい。その際、フローエントリのマッチ条件に用いられるデータ種別が、記録用スイッチ62間で異なっていてもよい。
以上、本実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
本発明は、種々のネットワーク構成にも対応でき、また、通信用スイッチや記録用スイッチの要求スペックを上げずに正確な通信量を測定したいとの要求にも好適に適用可能である。
1 コントローラ
2 通信用スイッチ
3 記録用スイッチ
5 ホスト
5−1、5−2 サーバ
5−3 クライアント端末
100 コピーパケット転送用通信路
200 パケットコピー設定用通信路
300 ユーザデータ通信路
400 フロー制御用通信路
11 コピーパケット転送路管理情報記憶部
12 フローエントリ管理情報記憶部
13 コピーパケット転送路管理部
14 コピー操作設定部
15 記録用フローエントリ設定部
16 通信量取得部
111 通信用スイッチ情報
1111 アドレス情報
1112 VLAN番号
1113 コピー対象転送方向
121 フローエントリ構成情報
1211 優先度
1212 転送方向
1213 エントリ種別
1214 アドレス範囲
1215 アクション情報
1216 通信量
30、31、32、33、34、35、36 フローテーブル
61 通信用スイッチ
62 記録用スイッチ
70 コントローラ
71 フローエントリ設定手段
72 通信量収集手段
73 フローエントリ分割手段
74 フローエントリ集約手段
75 コピーパケット設定手段

Claims (10)

  1. 通信量の計測対象とされるデータパケットの転送処理を行う通信用スイッチと、
    前記通信用スイッチからデータパケットのコピーであるコピーパケットを受信して、自装置が保持しているフローエントリに従い、前記コピーパケットのフローごとの通信量を記録する記録用スイッチと、
    前記記録用スイッチに対して、受信した前記コピーパケットの通信量を記録させるための通信量記録用フローエントリを設定するコントローラとを備え、
    前記コントローラは、
    前記コピーパケットの経路上に位置する記録用スイッチに設定するフローエントリの集合において、マッチ条件が、記録用スイッチで認識可能なコピーパケット内の少なくとも予め指定された通信レイヤの予め指定されたアドレス情報における予め指定されたアドレス値を網羅している通信量記録用フローエントリを、前記記録用スイッチに対して設定するフローエントリ設定手段と、
    所定のタイミングで、前記記録用スイッチが保持しているフローエントリの通信量を収集する通信量収集手段とを含む
    ことを特徴とする通信システム。
  2. 記録用スイッチは、通信量記録用フローエントリを、コピーパケットのアドレス情報内の種別データであって、アドレス情報内のいずれかのデータフィールドもしくはデータフィールド内において意味をもつビットまたはそれらの組み合わせである種別データの単位で分けて保持するための複数のフローテーブルを有し、
    フローエントリ設定手段は、前記複数のフローテーブルの各々に、受信したコピーパケットの当該フローテーブルが対応する種別データの値がマッチ条件に合致した場合に、該コピーパケットの通信量を記録させた後、該コピーパケットを破棄するか、他のフローテーブルを再度検索させるか、他の記録用スイッチに転送させるかのいずれかを行わせる条件付きフローエントリを少なくとも登録させるとともに、各のフローテーブルの末尾に、受信したコピーパケットの当該フローテーブルが対応する種別データの値を問わず、受信したコピーパケットの通信量を記録させた後、該コピーパケットを破棄するか、他のフローテーブルを再度検索させるか、他の記録用スイッチに転送させるかのいずれかを行わせる条件なしフローエントリを登録させる
    請求項1に記載の通信システム。
  3. コントローラは、
    収集した通信量が所定の第1条件を満たす場合に、該フローエントリを分割するフローエントリ分割手段を含み、
    前記フローエントリ分割手段は、分割対象とされたフローエントリでマッチ条件とされるアドレス情報の値の範囲を2以上に分割し、分割後の値の範囲をそれぞれマッチ条件とする2以上のフローエントリを生成し、
    フローエントリ設定手段は、記録用スイッチに対して、分割前のフローエントリの削除と、分割後のフローエントリの追加を設定する
    請求項1または請求項2に記載の通信システム。
  4. コントローラは、
    収集した通信量が所定の第2条件を満たす場合に、該フローエントリを集約するフローエントリ集約手段を含み、
    前記フローエントリ集約手段は、集約対象とされた第1のフローエントリのマッチ条件に用いられるアドレス情報のデータ種別と同一のデータ種別をマッチ条件に用いており、かつ収集された通信量が所定の第3条件を満たす第2のフローエントリが存在する場合に、前記第1のフローエントリと前記第2のフローエントリとを集約して、両者の値の範囲を結合させた値の範囲を、マッチ条件とするアドレス情報の値の範囲とする第3のフローエントリを生成し、
    フローエントリ設定手段は、記録用スイッチに対して、前記第1のフローエントリおよび前記第2のフローエントリの削除と、前記第3のフローエントリの追加を設定する
    請求項1から請求項3のうちのいずれか1項に記載の通信システム。
  5. コントローラは、
    通信用スイッチに対して、データパケットのコピーを記録用スイッチに転送するための設定を行うコピーパケット設定手段を含み、
    前記コピーパケット設定手段は、コピーパケットに、コピーパケット転送用に定義されたVLAN番号を付与した上で、所定のポートから出力させるための設定を行う
    請求項1から請求項4のうちのいずれか1項に記載の通信システム。
  6. コピーパケット設定手段は、コピーパケットに、コピーパケット転送用に定義されたVLAN番号であって、前記データパケットの送受信方向を示す番号が組み込まれたVLAN番号を付与した上で、所定のポートから出力させるための設定を行い、
    フローエントリ設定手段は、記録用スイッチに対して、1つのフローテーブル内に登録されるフローエントリの集合において、マッチ条件が、記録用スイッチで認識可能なコピーパケット内の少なくとも予め指定された通信レイヤの予め指定されたアドレス情報における予め指定されたアドレス値を網羅している通信量記録用フローエントリを、前記記録用スイッチに対して設定する
    請求項1から請求項5のうちのいずれか1項に記載の通信システム。
  7. コピーパケットの転送経路上に複数の記録用スイッチを備え、
    フローエントリ設定手段は、前記複数の記録用スイッチに設定するフローエントリの集合において、マッチ条件が、記録用スイッチで認識可能なコピーパケット内の少なくとも予め指定された通信レイヤの予め指定されたアドレス情報における予め指定されたアドレス値を網羅している通信量記録用フローエントリを、前記記録用スイッチに対して設定し、
    フローエントリのマッチ条件に用いられるデータ種別が、記録用スイッチ間で異なる
    請求項1から請求項6のうちのいずれか1項に記載の通信システム。
  8. 通信量の計測対象とされるデータパケットの転送処理を行う通信用スイッチとは別に、自装置が保持しているフローエントリに従い、受信パケットを処理するフロースイッチを備えた通信システムに備えられるコントローラであって、
    前記通信用スイッチに対して、データパケットのコピーであるコピーパケットを記録用スイッチに転送するための設定を行うコピーパケット設定手段と、
    前記フロースイッチに対して、受信した前記コピーパケットの通信量を記録させるための通信量記録用フローエントリを設定するフローエントリ設定手段と、
    所定のタイミングで、前記記録用スイッチが保持しているフローエントリの通信量を収集する通信量収集手段とを備え、
    前記フローエントリ設定手段は、前記コピーパケットの経路上に位置する記録用スイッチに設定するフローエントリの集合において、マッチ条件が、記録用スイッチで認識可能なコピーパケット内の少なくとも予め指定された通信レイヤの予め指定されたアドレス情報における予め指定されたアドレス値を網羅している通信量記録用フローエントリを、前記記録用スイッチに対して設定する
    ことを特徴とするコントローラ。
  9. 通信量の計測対象とされるデータパケットの転送処理を行う通信用スイッチとは別に、自装置が保持しているフローエントリに従い、受信パケットを処理するフロースイッチを備えた通信システムに備えられるコントローラが、
    前記通信用スイッチに対して、データパケットのコピーであるコピーパケットを記録用スイッチに転送するための設定を行い、
    前記フロースイッチに対して、受信した前記コピーパケットの通信量を記録させるための通信量記録用フローエントリを設定し、
    所定のタイミングで、前記記録用スイッチが保持しているフローエントリの通信量を収集し、
    前記通信量記録用フローエントリを設定する際に、前記コピーパケットの経路上に位置する記録用スイッチに設定するフローエントリの集合において、マッチ条件が、記録用スイッチで認識可能なコピーパケット内の少なくとも予め指定された通信レイヤの予め指定されたアドレス情報における予め指定されたアドレス値を網羅している通信量記録用フローエントリを、前記記録用スイッチに対して設定する
    ことを特徴とする通信量計測方法。
  10. 通信量の計測対象とされるデータパケットの転送処理を行う通信用スイッチとは別に、自装置が保持しているフローエントリに従い、受信パケットを処理するフロースイッチを備えた通信システムに備えられるコントローラとして動作するコンピュータに、
    前記通信用スイッチに対して、データパケットのコピーであるコピーパケットを記録用スイッチに転送するための設定を実施する処理、
    前記フロースイッチに対して、受信した前記コピーパケットの通信量を記録させるための通信量記録用フローエントリを設定する処理、および
    所定のタイミングで、前記記録用スイッチが保持しているフローエントリの通信量を収集する処理を実行させ、
    前記通信量記録用フローエントリを設定する処理で、前記コピーパケットの経路上に位置する記録用スイッチに設定するフローエントリの集合において、マッチ条件が、記録用スイッチで認識可能なコピーパケット内の少なくとも予め指定された通信レイヤの予め指定されたアドレス情報における予め指定されたアドレス値を網羅している通信量記録用フローエントリを、前記記録用スイッチに対して設定させる
    ための通信量計測プログラム。
JP2016067220A 2016-03-30 2016-03-30 通信システム、コントローラ、方法およびプログラム Pending JP2017183959A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016067220A JP2017183959A (ja) 2016-03-30 2016-03-30 通信システム、コントローラ、方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016067220A JP2017183959A (ja) 2016-03-30 2016-03-30 通信システム、コントローラ、方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2017183959A true JP2017183959A (ja) 2017-10-05

Family

ID=60007832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016067220A Pending JP2017183959A (ja) 2016-03-30 2016-03-30 通信システム、コントローラ、方法およびプログラム

Country Status (1)

Country Link
JP (1) JP2017183959A (ja)

Similar Documents

Publication Publication Date Title
JP5742834B2 (ja) 通信システム、経路制御装置、パケット転送装置および経路制御方法
JP4774357B2 (ja) 統計情報収集システム及び統計情報収集装置
US8751642B2 (en) Method and system for management of sampled traffic data
JP5994846B2 (ja) 通信システム、制御装置、ノード、ノードの制御方法およびプログラム
JP5660198B2 (ja) ネットワークシステム、及びスイッチ方法
EP2667545A1 (en) Network system, controller, switch, and traffic monitoring method
US20130282867A1 (en) Information system, control apparatus, method of providing virtual network, and program
JP5858141B2 (ja) 制御装置、通信装置、通信システム、通信方法及びプログラム
JP6323547B2 (ja) 通信システム、制御装置、通信制御方法、および、プログラム
JP5725236B2 (ja) 通信システム、ノード、パケット転送方法およびプログラム
JP4823156B2 (ja) リモートトラフィック監視方法
JPWO2014112616A1 (ja) 制御装置、通信装置、通信システム、スイッチの制御方法及びプログラム
US9705791B2 (en) Route setting device and route setting method
US20210336960A1 (en) A System and a Method for Monitoring Traffic Flows in a Communications Network
US20150381775A1 (en) Communication system, communication method, control apparatus, control apparatus control method, and program
JP2015095785A (ja) パケット保存方法、パケット保存プログラム及びパケット保存装置
JP2017183959A (ja) 通信システム、コントローラ、方法およびプログラム
JP6061829B2 (ja) リンク品質計測装置ならびにそのフローエントリ集約方法およびプログラム
JP6036940B2 (ja) 通信システム、ノード、制御装置、通信方法およびプログラム
JP7164140B2 (ja) 通信解析装置、通信解析方法およびプログラム
JP2018191210A (ja) パケット中継装置及びパケット中継システム
WO2016157836A1 (ja) 通信システム、通信制御方法、制御装置、受信装置、転送装置、制御方法、受信方法、及び、転送方法
JP2015523749A (ja) 通信システム、制御装置、通信方法及びプログラム
JP2016225933A (ja) 制御装置、中継装置の制御方法、プログラム及び通信システム