(57)【要約】  フローに関する情報を低い処理コストで収集することができるフロー情報収集システムを提供する。基点ノード情報記憶手段７１は、オープンフローのフローの識別情報またはその一部と、フローの情報の収集対象であるノードであって、フローに対応する各パケット転送経路における情報を収集可能なノードとして決定された１つまたは複数のノードである基点ノードとの対応関係を記憶する。情報取得手段７２は、フローの識別情報またはその一部を指定された場合に、フローの識別情報またはその一部に対応する基点ノードを特定し、当該基点ノードからフローの識別情報またはその一部に適合するフローの情報を取得する。
2015531552.tif 000002
【特許請求の範囲】
【請求項１】
フローの識別情報またはその一部と、前記フローの情報の収集対象のノードである基点ノードとの対応関係を記憶する基点ノード情報記憶手段と、
前記フローの識別情報またはその一部に対応する基点ノードから、前記フローの情報を取得する情報取得手段とを備える
ことを特徴とするフロー情報収集システム。
【請求項２】
フローの識別情報に基づいて、当該フローに対応する基点ノードを決定し、前記フローの識別情報と前記基点ノードとの対応関係を基点ノード情報記憶手段に記憶させる基点ノード決定手段を備える
請求項１に記載のフロー情報収集システム。
【請求項３】
フローに対応するパケット転送経路上の各ノードに対して、フローの識別情報と、当該フローの識別情報に適合するパケットを受信したときの動作とを示すフローエントリを設定するフローエントリ設定手段を備え、
前記フローエントリ設定手段は、前記各ノードに対して、フローエントリを削除した場合に、フローエントリを削除した旨の通知を指示し、
情報取得手段は、前記通知の送信元が基点ノードである場合に、前記フローが削除されたと判定する
請求項１または請求項２に記載のフロー情報収集システム。
【請求項４】
フローエントリ設定手段は、
フローエントリの削除条件として、所定時間の経過を指定するとともに、基点ノードに対する前記所定時間を、基点ノード以外のノードに対する前記所定時間よりも短く設定する
請求項３に記載のフロー情報収集システム。
【請求項５】
情報取得手段は、
フローのグループに属するフロー毎に、フローの識別情報に対応する基点ノードを特定し、当該基点ノードから前記フローの識別情報に適合するフローの情報を取得する
請求項１から請求項４のうちのいずれか１項に記載のフロー情報収集システム。
【請求項６】
フローの識別情報毎に、フローの識別情報と、フローに対応する個々のパケット転送経路上のノードとの対応関係を基点ノード情報記憶手段に記憶させ、フローのグループに属する各フローの識別情報の重複部分を前記グループの識別情報とし、前記各フローに対応する各パケット転送経路において重複しているノードの中から基点ノードを決定し、前記グループの識別情報と前記基点ノードとの対応関係を基点ノード情報記憶手段に記憶させる基点ノード決定手段を備える
請求項１に記載のフロー情報収集システム。
【請求項７】
フローに対応するパケット転送経路上の各ノードに対して、フローの識別情報と、当該フローの識別情報に適合するパケットを受信したときの動作とを示すフローエントリを設定するフローエントリ設定手段を備え、
前記フローエントリ設定手段は、前記各ノードに対して、フローエントリを削除した場合に、フローエントリを削除した旨の通知を指示し、
情報取得手段は、前記通知の送信元が基点ノードである場合に、削除されたフローエントリに適合するグループを特定し、当該グループに対応する基点ノードに対して、前記グループの情報を要求し、前記情報を受信しなかった場合に、前記グループが削除されたと判定する
請求項６に記載のフロー情報収集システム。
【請求項８】
情報取得手段は、フローの情報として、トラフィックの統計情報を取得する
請求項１から請求項７のうちのいずれか１項に記載のフロー情報収集システム。
【請求項９】
フローの識別情報またはその一部と、前記フローの情報の収集対象のノードである基点ノードとの対応関係を記憶し、
前記フローの識別情報またはその一部に対応する基点ノードから、前記フローの情報を取得する
ことを特徴とするフロー情報収集方法。
【請求項１０】
フローの識別情報またはその一部と、前記フローの情報の収集対象のノードである基点ノードとの対応関係を記憶する基点ノード情報記憶手段を備えたコンピュータに搭載されるフロー情報収集プログラムであって、
前記コンピュータに、
前記フローの識別情報またはその一部に対応する基点ノードから、前記フローの情報を取得する情報取得処理を実行させる
ためのフロー情報収集プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オープンフローにおけるフローを監視するために、フローに関する情報を収集するフロー情報収集システム、フロー情報収集方法、およびフロー情報収集プログラムに関する。
【背景技術】
【０００２】
特許文献１および非特許文献１，２に示すとおり、近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行う。転送ノードとして機能するオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備える。また、オープンフロースイッチは、フローテーブルに従って動作する。オープンフローコントローラは、適宜、オープンフロースイッチに、フローテーブルの追加や書き換えを指示する。フローテーブルには、フロー毎に、パケットヘッダと照合するキー情報（ＦｌｏｗＫｅｙ、マッチングキー）と、処理内容を定義したアクション（Ａｃｔｉｏｎ）と、フロー統計情報（Ｓｔａｔｓ）との組が定義される。この組をフローエントリと呼ぶ。また、キー情報とアクションの組み合わせにより、受信したパケットに対するアクションを規定したルールが定まる。キー情報として、フローの識別情報が用いられる。パケットのヘッダに含まれている情報により、パケットがどのフローに属しているかを識別できる。従って、より具体的には、キー情報として、パケットのヘッダに含まれている情報が用いられる。
【０００３】
オープンフロースイッチは、新たにパケットを受信すると、フローテーブルから、そのパケットが属するフローの識別情報に適合するフローエントリを検索する。検索の結果、受信したパケットが属するフローに適合するフローエントリが見つかった場合、オープンフロースイッチは、そのパケットに対して、そのフローエントリ内のアクションフィールドに記述された処理を実行する。一方、検索の結果、受信したパケットが属するフローに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに受信パケットを転送し、受信パケットのヘッダ情報に基づいたパケットの経路の決定をオープンフローコントローラに依頼する。そして、オープンフロースイッチは、決定された経路に応じたフローエントリをオープンフローコントローラから受信し、フローテーブルを更新する。
【０００４】
このように、オープンフロースイッチは、オープンフローコントローラに設定されたフローエントリによってパケットに対する処理を決定する。パケットに対する処理として、指定されたインタフェースへパケットを出力するＯＵＴＰＵＴが特に多用される。なお、このとき指定されるポートは、物理的なインタフェースに限られない。
【０００５】
また、オープンフローコントローラは、あるフローの制御を実現するために、そのフローに関して、パケット転送経路上のノード（オープンフロースイッチ）毎にフローエントリを定めて、その各ノードに対してフローエントリを設定する。そして、オープンフローコントローラには、このような処理を実現するためのフロー制御アプリケーションが搭載されている必要がある。
【０００６】
オープンフローコントローラは、１つのフローに関して複数のフローエントリ（ノード毎のフローエントリ）を制御するので、そのフローに分類されるパケットの転送経路に沿って設定した各フローエントリを１つの集合として保持・管理する必要がある。
【０００７】
そのため、ネットワーク中のフロー数が増加すると、オープンフローコントローラが保持すべきフローエントリ数が増大する。
【０００８】
また、オープンフローコントローラは、オープンフローメッセージを用いて、オープンフロースイッチに設定されているフローエントリの情報を能動的または受動的に取得し、オープンフローコントローラ自身が保持しているフローエントリ情報と照合した後に、取得した情報を経路計算アプリケーションに通知したり、あるいは、破棄したりする。従って、フロー数の増加に伴って、オープンフローコントローラが保持すべきフローエントリ数が増大すると、データ量やメッセージ処理の負荷の観点からオープンフローコントローラの負荷が増大する。
【０００９】
オープンフローコントローラがフローエントリを保持せず、ネットワークの状態変化（例えば、トポロジの変化等）に合わせてその都度新規にフローエントリを計算し、ノードに設定しなおす場合には、この負荷を軽減できる。しかし、この場合、全てのフローエントリを設定しなおすオーバーヘッドが発生したり、厳密なエンド間フロー制御が行われなくなったりする。また、フローの監視が困難になる等の問題が発生する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】国際公開第２００８／０９５０１０号
【非特許文献】
【００１１】
【非特許文献１】Nick McKeown, 外７名、“OpenFlow: Enabling Innovation in Campus Networks”、［online］、２００８年３月１４日、[平成２２年２月２６日検索]、インターネット<http://www.openflowswitch.org//documents/openflow-wp-latest.pdf>
【非特許文献２】“OpenFlow Switch Specification Version 0.9.0 (Wire Protocol 0x98)”、［online］、２００９年７月２０日、[平成２２年２月２６日検索]、インターネット<http://www.openflowswitch.org/documents/openflow-spec-v0.9.0.pdf>
【発明の概要】
【発明が解決しようとする課題】
【００１２】
特許文献１および非特許文献１，２に記載のオープンフローによって多数のフローを制御する場合、フローの情報を管理するためのコストが高くなる。例えば、オープンフローコントローラが、フローの情報としてトラフィックの統計情報を取得しようとする場合を例にする。この場合、特許文献１および非特許文献１，２に記載の技術では、オープンフローコントローラは、フローに対応するパケット通信経路上の全てのオープンフロースイッチから統計情報を取得する必要があり、オープンフローコントローラの処理コストが高くなってしまう。フローの情報として、トラフィックの統計情報以外の情報を収集する場合においても、同様である。
【００１３】
そこで、本発明は、フローに関する情報を低い処理コストで収集することができるフロー情報収集システム、フロー情報収集方法、およびフロー情報収集プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明によるフロー情報収集システムは、フローの識別情報またはその一部と、フローの情報の収集対象のノードである基点ノードとの対応関係を記憶する基点ノード情報記憶手段と、フローの識別情報またはその一部に対応する基点ノードから、フローの情報を取得する情報取得手段とを備えることを特徴とする。
【００１５】
また、本発明によるフロー情報収集方法は、フローの識別情報またはその一部と、フローの情報の収集対象のノードである基点ノードとの対応関係を記憶し、フローの識別情報またはその一部に対応する基点ノードから、フローの情報を取得することを特徴とする。
【００１６】
また、本発明によるフロー情報収集プログラムは、フローの識別情報またはその一部と、フローの情報の収集対象のノードである基点ノードとの対応関係を記憶する基点ノード情報記憶手段を備えたコンピュータに搭載されるフロー情報収集プログラムであって、コンピュータに、フローの識別情報またはその一部に対応する基点ノードから、フローの情報を取得する情報取得処理を実行させることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、フローに関する情報を低い処理コストで収集することができる。
【図面の簡単な説明】
【００１８】
【図１】制御装置（フロー情報収集システム）を含む通信システムの例を示す説明図である。
【図２】第１の実施形態のフロー情報収集システムの構成例を示すブロック図である。
【図３】第１の実施形態のフローエントリ設定時の処理経過の例を示すフローチャートである。
【図４】フローの例を示す模式図である。
【図５】フローの他の例を示す模式図である。
【図６】第２の実施形態のフローエントリ設定時の処理経過の例を示すフローチャートである。
【図７】複数のフローの例を示す模式図である。
【図８】図７に示すフロー１，２に関してステップＳ１１で記憶された情報を示す説明図である。
【図９】フローのグループの識別情報と基点ノードとの対応を示す模式図である。
【図１０】エントリ削除通知受信時の処理経過の例を示すフローチャートである。
【図１１】第４の実施形態におけるエントリ削除通知受信時の処理経過の例を示すフローチャートである。
【図１２】本発明の第５の実施形態が適用される通信システムの例を示す説明図である。
【図１３】第５の実施形態の制御装置の構成例を示すブロック図である。
【図１４】本発明の最小構成の例を示すブロック図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態を図面を参照して説明する。本発明のフロー情報収集システムは、オープンフローにおけるオープンフローコントローラによって実現される。以下、本発明のフロー情報収集システムを制御装置と記す。また、オープンフローにおけるオープンフロースイッチをノードと記す。なお、本発明の実施は、オープンフローでの実施に限られず、集中制御型のネットワークアーキテクチャであれば、どのような技術で実施してもよい。
【００２０】
図１は、制御装置（フロー情報収集システム）を含む通信システムの例を示す。図１に例示する通信システムは、制御装置１０と、ノード１〜３とを含む。制御装置１０は、制御用のセキュアチャネル５を介して各ノード１〜３に接続される。また、ノード１〜３は、通信システム外とのリンクを有する。なお、ノード数やノードの接続関係は任意であり、図１に示す例に限定されない。
【００２１】
制御装置１０は、ノード１〜３からの問い合わせに応じて、自発的にフロー制御を行う。また、制御装置１０は、トポロジの変動、ユーザからの指示、新規ホストの登録等を契機にフロー制御を行ってもよい。
【００２２】
制御装置１０は、フローの識別情報を特定し、そのフローに属するパケットの転送経路を計算する。そして、制御装置１０は、その経路に含まれるノードの中から基点ノードを特定し、基点ノード（具体的には基点ノードの識別情報）と、フローの識別情報またはその一部とを関連づけて記憶する。
【００２３】
ここで、基点ノードについて説明する。基点ノードとは、フローに関する情報の収集対象となるノードであって、そのフローに対応する各パケット転送経路における情報を収集可能なノードとして決定された１つまたは複数のノードである。
【００２４】
あるフローに属するパケットは、あるノードにおいてコピーされ、複数のポートから出力される場合もある。従って、１つのフローに関して、そのパケットの転送経路は１つのみとは限らない。そして、例えば、１つのフローに関して、そのフローに対応するパケット転送経路毎に、パケット転送経路を構成する１つ以上のノードを指定することによって基点ノードを決定することができる。そして、１つのフローに対応するパケット転送経路毎に指定するノードが共通の１つのノードである場合、基点ノードは１つである。基点ノードの数は少ない方が好ましいので、上記のように、１つのフローに対応するパケット転送経路毎に指定するノードを共通とすることが好ましい。この場合、例えば、フローに対応する全てのパケット転送経路が通過しているノードを基点ノードとして定めればよい。なお、基点ノードが複数定められていてもよい。
【００２５】
また、制御装置１０は、計算したパケット転送経路上のノード毎に、フローの識別情報と、どのノードにパケットを転送するかを規定したアクションとを含むフローエントリを作成し、各ノードに対して、そのノードに応じたフローエントリを設定する。この結果、フローが定められたことになる。制御装置１０自身は、各ノードに設定したフローエントリを保持してもよいが、保持しないようにすることもできる。制御装置１０自身が各ノードに設定したフローエントリを保持しない場合、制御装置１０は、フローエントリの管理コストを削減することができる。
【００２６】
また、前述のように、制御装置１０は、基点ノードと、フローの識別情報またはその一部とを関連づけて記憶する。そして、制御装置１０は、あるフローまたはフローのグループに関する情報（例えば、トラフィックの統計情報）を収集する場合、そのフローまたはフローのグループに応じたフローの識別情報（またはその一部）に関連づけた基点ノードから情報を収集する。このように収集した情報は、あるフローまたはフローのグループのパケット転送経路全体にわたる情報として使用することができる。
【００２７】
実施形態１．
図２は、本発明の第１の実施形態のフロー情報収集システム（制御装置）の構成例を示すブロック図である。制御装置１０は、トポロジ管理部１１と、経路計算部１２と、フロー情報取得部１３と、フローエントリ計算部１４と、フローエントリ設定部１５と、制御メッセージ処理部１６と、ノード通信部１７とを備える。
【００２８】
トポロジ管理部１１は、ネットワークのトポロジ情報を収集し、管理する。
【００２９】
経路計算部１２は、フローに対応するパケット転送経路を計算する。
【００３０】
フロー情報取得部１３は、基点ノードからフローに関する情報を収集する。以下、本実施形態では、フローに関する情報として、トラフィックの統計情報を収集する場合を例にして説明するが、フローに関する情報として、トラフィックの統計情報以外の情報を収集してもよい。
【００３１】
フローエントリ計算部１４は、フローの識別情報と、経路計算部１２に計算されたパケット転送経路とに基づいて、パケット転送経路上のノード毎にフローエントリを計算する。フローエントリ計算部１４は、例えば、次ノードにパケット転送するための出力ポートからパケットを出力するというアクションと、フローの識別情報とを組み合わせることでフローエントリを決定すればよい。
【００３２】
フローエントリ設定部１５は、フローエントリ計算部１４によって計算されたフローエントリの設定をノードに対して依頼する。
【００３３】
制御メッセージ処理部１６は、制御装置１０内の各要素がノードに対して制御を行う場合の制御内容を制御メッセージとして変換する。また、制御メッセージ処理部１６は、ノードから受信した制御メッセージを解析する。
【００３４】
ノード通信部１７は、ノードとの通信を行う通信インタフェースである。
【００３５】
従って、制御装置内の各部１１〜１５が、ノードとの間で通信を行う場合、制御メッセージ処理部１６およびノード通信部１７を介して通信を行うことになる。以下、説明を簡単にするために、制御メッセージ処理部１６およびノード通信部１７に関する言及は省略する。
【００３６】
フロー情報取得部１３は、基点ノード決定部１３１と、情報取得部１３２と、基点ノード情報記憶部１３３とを備える。
【００３７】
基点ノード決定部１３１は、フローに対応するパケット転送経路の中から基点ノードを決定する。
【００３８】
基点ノード情報記憶部１３３は、フロー毎に、フローに対応する基点ノードの識別情報と、フローの識別情報とを記憶する。
【００３９】
情報取得部１３２は、基点ノードに対して、その基点ノードに対応するフローに関する情報（例えば、トラフィックの統計情報）を要求し、基点ノードからその情報を取得する。
【００４０】
トポロジ管理部１１、経路計算部１２、フロー情報取得部１３（特に、基点ノード決定部１３１および情報取得部１３２）、フローエントリ計算部１４，フローエントリ設定部１５および制御メッセージ処理部１６は、例えば、フロー情報収集プログラムに従って動作するコンピュータのＣＰＵによって実現される。この場合、ＣＰＵが、フロー情報収集プログラムを読み込み、そのプログラムに従って、トポロジ管理部１１、経路計算部１２、フロー情報取得部１３（特に、基点ノード決定部１３１および情報取得部１３２）、フローエントリ計算部１４，フローエントリ設定部１５および制御メッセージ処理部１６として動作すればよい。また、これらの各要素が別々のハードウェアで実現されていてもよい。
【００４１】
次に、本実施形態の処理経過について説明する。
まず、フローエントリ設定時の処理経過について説明する。図３は、本実施形態のフローエントリ設定時の処理経過の例を示すフローチャートである。例えば、ノード１（図１参照）がパケットを受信し、そのパケットが属するフローの識別情報に対応するフローエントリがノード１に設定されていないとする。この場合、ノード１は受信したパケットを、制御装置１０に送る。
【００４２】
制御装置１０がそのパケットを受信すると、経路計算部１２は、そのパケットが属するフローの識別情報を特定する（ステップＳ１）。フローの識別情報として、例えば、パケットのヘッダに含まれている情報を用いることができる。例えば、パケットの送信元ＭＡＣ（Media Access Control）アドレスおよび宛先ＭＡＣアドレスの組み合わせをフローの識別情報として用いることができる。
【００４３】
さらに、経路計算部１２は、パケットの送信元および宛先と、トポロジ管理部１１が管理しているトポロジ情報を参照して、そのパケットが属するフローにおけるパケット転送経路を計算する（ステップＳ２）。
【００４４】
次に、フローエントリ計算部１４は、ステップＳ２で計算されたパケット転送経路上のノード毎にフローエントリを計算する（ステップＳ３）。フローエントリ計算部１４は、パケット転送経路上のノード毎に、次ノードにパケット転送するための出力ポートからパケットを出力するというアクションを定め、フローの識別情報とアクションを組み合わせることによってノード毎のフローエントリを定めればよい。
【００４５】
次に、フローエントリ設定部１５は、パケット転送経路上の各ノードに対して、ノード毎に定められたフローエントリの設定を依頼する（ステップＳ４）。各ノードは、フローエントリ設定部１５からの要求に応じて、フローエントリを設定する。この結果、ノード１が受信したパケットが属するフローが定まる。フローの例を図４に示す。図４では、ノード１，２，３をたどるフローが定められた場合を例示している。
【００４６】
また、転送経路上のノードがパケットをコピーし、そのノードが複数のポートからパケットを出力するフローもある。このフローの例を図５に示す。図５に示す例では、ノード１，２，３を辿りノード３から通信システム外に向かう転送経路と、ノード１，２を辿りノード２から通信システム外に向かう転送経路とが存在する。すなわち、図５に示すフローに対応する転送経路は、複数の経路が組み合わさった経路木となっている。
【００４７】
ステップＳ４の後、基点ノード決定部１３１は、フローに応じた基点ノードを決定する（ステップＳ５）。以下、基点ノードの決定方法の例を示す。
【００４８】
基点ノード決定部１３１は、例えば、フローに対応するパケット転送経路毎に、パケット転送経路を構成する１つ以上のノードを指定することによって基点ノードを決定する。パケット転送経路毎に基点ノードを指定することで、フローに対応する全てのパケット転送経路を監視できることになる。
【００４９】
図４に例示するフローでは、フローに対応するパケット転送経路が１つあるので、そのパケット転送経路から１つ以上のノードを基点ノードとして決定すればよい。基点ノードは複数であってもよいが、基点ノードの数は少ない方がよいので、１つの基点ノードを決定することが好ましい。また、例えば、図５に例示するフローでは、フローに対応するパケット転送経路が２つあるので、各経路から１つ以上（１つが好ましい）のノードを指定し、指定した各ノードをそれぞれ基点ノードとして決定すればよい。パケット転送経路毎に指定するノードが異なる場合、基点ノードは複数になる。ただし、基点ノード数を減らすために、指定するノードを各パケット転送経路で共通にすることが好ましい。例えば、図５に示す例では、ノード１またはノード２を基点ノードとすることが好ましい。
【００５０】
また、基点ノード決定部１３１は、例えば、フローに対応する全てのパケット転送経路が通過するノードの中から、１つ以上（１つが好ましい）のノードを基点ノードして定めてもよい。例えば、図５に示す例では、２つのパケット転送経路が通過するノードは、ノード１，２である。従って、基点ノード決定部１３１は、ノード１，２の中から基点ノードを定めればよい。また、図４に示す例では、パケット転送経路は１つであるので、パケット転送経路上のノード１〜３の中から基点ノードを定めればよい。
【００５１】
基点ノードの他の決定方法として、通信システム外からパケットを最初に受信するノード（以下、イングレスエッジと記す。）を基点ノードとして定める方法がある。フローによっては、イングレスエッジが複数存在する場合があるが、この場合、基点ノード決定部１３１は、全てのイングレスエッジを基点ノードとすればよい。図４に示す例では、イングレスエッジに相当するノード１を基点ノードとすればよい。
【００５２】
また、基点ノード決定部１３１は、イングレスエッジに加えて、通信システム内で最後にパケットを出力するノード（以下、エグレスエッジと記す。）を基点ノードに定めてもよい。図４に示す例では、ノード１（イングレスエッジ）およびノード３（エグレスエッジ）を基点ノードとしてもよい。イングレスエッジおよびエグレスエッジを基点ノードとすることで、フローの始点および終点からフローに関する情報を収集することになり、フロー監視の精度を向上させることができる。
【００５３】
また、前述のように、フローに対応するパケット転送経路毎に、パケット転送経路を構成する１つ以上のノードを指定することによって基点ノードを決定する場合に、基点ノード決定部１３１は、一定時間あたりの制御装置との送受信メッセージ量が少ないノードを指定してもよい。このとき、一定時間あたりの制御装置との送受信メッセージ量が閾値以下である場合に、制御装置との送受信メッセージ量が少ないと判定してもよい。あるいは、他のノードとの比較により、一定時間あたりの制御装置との送受信メッセージ量が少ないノードを判定してもよい。一定時間あたりの制御装置との送受信メッセージ量が少ないノードを基点ノードとすることで、フローが多数発生する状況であっても、ノードにおける制御メッセージの処理負荷をネットワーク内で均一にすることができ、制御装置１０とノード間のセキュアチャネルの通信帯域の圧迫を低減することができる。
【００５４】
基点ノードを決定した後、基点ノード決定部１３１は、その基点ノードの識別情報と、ステップＳ１で特定したフローの識別情報とを対応づけて、基点ノード情報記憶部１３３に記憶させる（ステップＳ６）。基点ノードが複数あれば、フローの識別情報に対して、各基点ノードの識別情報を全て対応づける。
【００５５】
なお、ステップＳ４でフローエントリを設定されたノードは、そのフローに属するパケットの送受信を行った場合、トラフィックの統計情報をそのフローエントリ内で更新していく。
【００５６】
次に、制御装置１０がフローに関する情報（本例では、トラフィックの統計情報）を取得する処理について説明する。情報取得部１３２は、基点ノード情報記憶部１３３に記憶されているフローの識別情報と基点ノードの識別情報の対応関係を参照して、統計情報を取得しようとするフローの識別情報に対応する各基点ノードを特定する。
【００５７】
そして、情報取得部１３２は、特定した基点ノードに対して、フローの識別情報を送信し、そのフローの識別情報に適合するトラフィックの統計情報を要求する。基点ノードは、この要求を受けると、自身のフローテーブルから、フローの識別情報によって定まるフローエントリを検索し、そのフローエントリからトラフィックの統計情報を抽出し、制御装置１０に送る。情報取得部１３２は、このトラフィックの統計情報を受信する。
【００５８】
この結果、情報取得部１３２は、基点ノードから、フローのトラフィックの統計情報を収集することができ、その情報によってフローを監視することができる。
【００５９】
ステップＳ５で説明した種々の方法で定めた基点ノードからフローの情報を収集することにより、収集した情報は、フロー全体に渡る情報であるということができる。すなわち、図５に例示するように、フローに対応するパケット転送経路が複数存在している場合であっても、情報取得部１３２は各経路についての情報を収集することができる。
【００６０】
例えば、フローに対応するパケット転送経路毎に、パケット転送経路を構成する１つ以上のノードを指定することによって基点ノードを定めることで、いずれかの経路における統計情報が収集されないという情報収集漏れを防ぐことができる。フローに対応する全てのパケット転送経路が通過するノードを基点ノードとする場合や、全てのイングレスエッジを基点ノードとする場合も同様である。
【００６１】
そして、基点ノードから、フローに対応する全てのパケット転送経路における情報を収集することができるので、情報取得部１３２は、フロー上の全てのノードから情報を収集する必要がない。すなわち、情報取得部１３２は基点ノードのみから情報を収集すればよい。従って、制御装置１０は、フローに関する情報を低い処理コストで収集することができる。
【００６２】
また、本発明では、基点ノード決定部１３１がフローと基点ノードとの対応関係を基点ノード情報記憶部１３３に記憶させる。従って、各ノードに設定したフローエントリを制御装置１０が保持していなくても、情報取得部１３２は、統計情報を取得しようとするフローに対応する基点ノードを特定することができ、その基点ノードからフローの情報を収集することができる。
【００６３】
実施形態２．
本発明の第２の実施形態では、フローのグループが定められる。そして、第２の実施形態の制御装置は、グループに属する各フローに関する情報を基点ノードから収集する。
【００６４】
第２の実施形態の制御装置は、図２と同様の構成で実現することができ、以下、図２を参照して第２の実施形態を説明する。第２の実施形態においても、制御装置１０が、フローに関する情報として、トラフィックの統計情報を収集する場合を例にして説明する。
【００６５】
ただし、第２の実施形態では、基点ノード決定部１３１および情報取得部１３２の動作が第１の実施形態とは異なる。以下、第１の実施形態とは異なる点を中心に、第２の実施形態について説明する。
【００６６】
また、第２の実施形態では、グループに属する各フローの識別情報の重複部分をグループの識別情報として用いる。
【００６７】
図６は、第２の実施形態におけるフローエントリ設定時の処理経過の例を示すフローチャートである。ステップＳ１〜Ｓ４の動作は、第１の実施形態におけるステップＳ１〜Ｓ４と同様である。
【００６８】
ステップＳ４の後、基点ノード決定部１３１は、ステップＳ１で特定されたフローの識別情報と、フローに対応するパケット転送経路上の各ノードの識別情報とを対応づけて、基点ノード情報記憶部１３３に記憶させる（ステップＳ１１）。このとき、図５に例示したように、フローに対応するパケット転送経路が複数存在する場合には、基点ノード決定部１３１は、フローに対応するパケット転送経路毎に、フローの識別情報と、パケット転送経路上の各ノードの識別情報とを対応づけて、基点ノード情報記憶部１３３に記憶させる。
【００６９】
複数のフローに関して、それぞれステップＳ１〜Ｓ１１の処理が実行され、複数のフローが定められたとする。図７は、複数のフローの例を示す。図７では、ノード１，２，３を通過してノード３から外部に出るフロー１と、ノード１，２を通過してノード２から外部に出るフロー２を示している。
【００７０】
図８は、図７に示すフロー１，２に関してステップＳ１１で記憶された情報を示す説明図である。図８では、パケットの送信元ＭＡＣアドレスおよび宛先ＭＡＣアドレスの組み合わせをフローの識別情報として用いている。図８に示すように、フロー１に関しては、経路上の各ノードの識別情報として、ノード１〜３が記憶される。また、フロー２に関しては、経路上の各ノードの識別情報として、ノード１，２が記憶される。
【００７１】
図８では、説明を簡単にするために、１つのフローに対応するパケット転送経路が１つである場合を例にしている。前述のように、フローに対応するパケット転送経路が複数存在する場合には、基点ノード決定部１３１は、フローに対応するパケット転送経路毎に、フローの識別情報と、パケット転送経路上の各ノードの識別情報とが対応付けられる。
【００７２】
そして、第２の実施形態では、フローのグループが定められる。フローのグループは、ユーザの要求に従って制御装置１０が定めてもよく、あるいは、外部から設定されてもよい。また、ネットワークの監視ポリシに基づいてグループを定めてもよい。フローのグループの決定は、グループの識別情報がグループ間で独立であるという条件を満たしていれば、任意の方法で行ってよい。以下、図７に示すフロー１，２を含む１つのグループが定められた場合を例にして説明する。
【００７３】
グループが定められると、基点ノード決定部１３１は、グループに属する各フローの識別情報の重複部分をグループの識別情報として定める。本例では、フロー１の識別情報およびフロー２の識別情報（図８参照）の重複部分を、グループの識別情報として定めればよい。図８に示すように、フロー１の識別情報およびフロー２の識別情報において、送信元ＭＡＣアドレスが重複し、宛先ＭＡＣアドレスは異なっている。従って、本例では、フロー１，２の識別情報において重複部分となっている送信元ＭＡＣアドレス“0x0 ”をグループの識別情報とすればよい。
【００７４】
また、基点ノード決定部１３１は、グループに属するフローの情報を収集する対象となる基点ノードを決定する。例えば、基点ノード決定部１３１は、グループに属する各フローの各パケット転送経路上のノードのうち、パケット転送経路が重なっている部分のノードの中から１つ以上の基点ノードを選択し、そのノードを基点ノードとする。１つのフローに対応するパケット転送経路が複数ある場合であっても、同様に基点ノードを決定してよい。
【００７５】
図７および図８に示す例では、フロー１のパケット転送経路と、フロー２のパケット転送経路とが重なっている部分のノードは、ノード１，２である。従って、基点ノード決定部１３１は、ノード１，２のいずれかを基点ノードして決定してよい。
【００７６】
基点ノード決定部１３１は、フローのグループの識別情報と、基点ノードの識別情報とを対応付けて、基点ノード情報記憶部１３３に記憶させる。図９は、本例におけるフローのグループの識別情報と基点ノードとの対応を示す模式図である。本例では、グループの識別情報である送信元ＭＡＣアドレス“0x0 ”とノード１またはノード２とが対応付けられる。以下の説明では、送信元ＭＡＣアドレス“0x0 ”とノード１が対応付けられる場合を例にする。
【００７７】
次に、情報取得部１３２がフローに関する情報（本例では、トラフィックの統計情報）を取得する処理について説明する。情報取得部１３２は、統計情報を取得しようとしているグループの識別情報に対応する基点ノードを特定し、その基点ノードから、そのグループに属するフローの情報（トラフィックの統計情報）を収集する。ここでは、図７に示すフロー１，２のグループを対象にして、フローの情報を収集する場合を例にして説明する。
【００７８】
例えば、情報取得部１３２は、統計情報を取得しようとしているグループに属する各フローの識別情報の重複部分を特定することによって、グループの識別情報を導出する。この動作は、基点ノード決定部１３１がグループの識別情報を定める動作と同様である。本例では、グループの識別情報として送信元ＭＡＣアドレス“0x0 ”が導出される。次に、情報取得部１３２は、基点ノード情報記憶部１３３に記憶されているグループの識別情報と基点ノードの識別情報の対応関係を参照して、統計情報を取得しようとするフローのグループの識別情報に対応する各基点ノードを特定する。本例では、送信元ＭＡＣアドレス“0x0 ”に対応付けられているノード１が基点ノードである。
【００７９】
そして、情報取得部１３２は、特定した基点ノードに対して、グループの識別情報である送信元ＭＡＣアドレス“0x0 ”を送信し、そのグループの識別情報に適合するトラフィックの統計情報を要求する。
【００８０】
基点ノードは、この要求を受けると、自身のフローテーブルから、グループの識別情報に適合するフローエントリを検索する。本例では、基点ノードは、フローの識別情報において送信元ＭＡＣアドレスが“0x0 ”となっている各フローエントリを検索する。そして、基点ノードは、検索により得られた各フローエントリからトラフィックの統計情報を抽出し、制御装置１０に送る。情報取得部１３２は、このトラフィックの統計情報を受信する。
【００８１】
この結果、情報取得部１３２は、基点ノードから、グループに属する各フローのトラフィックの統計情報を収集することができ、その情報によってフローを監視することができる。本例では、送信元ＭＡＣアドレスが“0x0 ”である端末から送信された全トラフィックの統計情報を取得することができる。
【００８２】
このように、本実施形態では、グループに属する各フローの情報を、各フロー上の全てのノードから取得するのではなく、基点ノードのみから取得する。従って、グループに属するフローの情報を低い処理コストで収集することができる。
【００８３】
なお、基点ノードは、フローエントリ毎に統計情報を制御装置１０に送信してもよい。この場合、情報取得部１３２は、グループに属するフロー毎に統計情報を収集することができる。
【００８４】
次に、第２の実施形態の変形例について説明する。
基点ノード決定部１３１は、フローエントリ設定時に第１の実施形態の動作を行ってもよい。すなわち、基点ノード決定部１３１は、ステップＳ４の後、ステップＳ５，Ｓ６（図３参照）を実行してもよい。この場合、基点ノード情報記憶部１３３は、第１の実施形態と同様に、フローと基点ノードとの対応関係を記憶する。そして、情報取得部１３２は、統計情報を取得しようとしているグループに属するフロー毎に、第１の実施形態と同様に、フローの情報（例えば、トラフィックの統計情報）を取得してもよい。この結果、上記の第２の実施形態と同様に、グループに属する各フローに関する情報を基点ノードから収集することができる。
【００８５】
なお、以上の第１および第２の実施形態の説明では、制御装置１０がトラフィックの統計情報を収集する場合を例にして説明したが、収集対象の情報はトラフィックの統計情報に限定されず、経路内において共通となっている情報であればよい。
【００８６】
また、制御装置１０は、フローに対応する各パケット転送経路を記憶し、フローの情報を取得する際に、基点ノード決定部１３１が基点ノードを決定する構成であってもよい。
【００８７】
実施形態３．
本発明の第３の実施形態の制御装置は、第１の実施形態と同様の動作に加えて、フローの死活監視（alive monitoring）を行う。
【００８８】
第３の実施形態の制御装置は、図２と同様の構成で実現することができ、以下、図２を参照して第３の実施形態を説明する。
【００８９】
ただし、フローエントリ設定部１５は、第１の実施形態で説明した動作に加えて、ノードに対して、所定の条件が生じたときにフローエントリを削除するとともに、フローエントリを削除した旨の通知（以下、エントリ削除通知と記す。）を制御装置に送信することを指示する。
【００９０】
また、情報取得部１３２は、第１の実施形態で説明した動作に加えて、エントリ削除通知の受信時に、フローが消滅したか否かを判定する。
【００９１】
以下、第１の実施形態とは異なる点を中心に、第３の実施形態について説明する。
【００９２】
第３の実施形態において、フローエントリ設定時の動作は、第１の実施形態と同様であり、制御装置１０は、ステップＳ１〜Ｓ６（図３参照）を実行する。
【００９３】
ただし、フローエントリ設定部１５は、ステップＳ５の後、以下の動作を行う。すなわち、フローエントリ設定部１５は、フローエントリを設定したノードに対して、そのフローエントリが所定時間使用されなかったという条件、または、フローエントリが使用されていたとしてもフローエントリ設定時から所定時間が経過したという条件が成立した場合に、そのフローエントリを削除することを指示する。さらに、フローエントリ設定部１５は、そのノードに対してフローエントリ削除時に、エントリ削除通知を制御装置１０に送信することを指示する。
【００９４】
なお、フローエントリ設定部１５は、フローエントリ削除の条件として、フローエントリが所定時間使用されなかったという条件と、フローエントリが使用されていたとしてもフローエントリ設定時から所定時間が経過したという条件の両方を定めてもよいし、いずれか一方のみを定めてもよい。
【００９５】
ただし、フローエントリ設定部１５は、フローエントリ削除の条件に記述する所定時間の長さを、基点ノードでは、基点ノード以外のノードよりも短くすることが好ましい。
【００９６】
フローエントリが設定されるとともに、上記の指示をフローエントリ設定部１５から受けた個々のノードは、フローエントリ設定部１５からの指示に従い、指定された条件が成立したときに、ステップＳ４で設定されたフローエントリを削除する。そして、そのノードは、エントリ削除通知を制御装置１０に送信する。このとき、ノードは、削除したフローエントリに含まれていたフローの識別情報、および、そのノードの識別情報をエントリ削除通知に含めて送信する。
【００９７】
制御装置１０がエントリ削除通知を受信すると、情報取得部１３２は、そのエントリ削除通知に基づいて、フローが消滅したか否かを判定する。図１０は、エントリ削除通知受信時の処理経過の例を示すフローチャートである。
【００９８】
制御装置１０がいずれかのノードからエントリ削除通知を受信すると（ステップＳ３１）、情報取得部１３２は、そのエントリ削除通知に含まれているフローの識別情報、および送信元のノードの識別情報を抽出する（ステップＳ３２）。このフローの識別情報は、ノードが削除したフローエントリに含まれていたフローの識別情報である。
【００９９】
次に、情報取得部１３２は、エントリ削除通知の送信元が、そのフローの識別情報に対応する基点ノードであるか否かを判定する（ステップＳ３３）。情報取得部１３２は、ステップＳ３２で得たフローの識別情報に対応する基点ノードの識別情報を基点ノード情報記憶部１３３から読み込む。そして、エントリ削除通知の送信元のノードの識別情報とその基点ノードの識別情報とが一致していれば、情報取得部１３２は、エントリ削除通知の送信元が基点ノードであると判定する。一方、両者が一致していなければ、情報取得部１３２は、エントリ削除通知の送信元が基点ノードでないと判定する。
【０１００】
エントリ削除通知の送信元が基点ノードである場合（ステップＳ３３におけるＹｅｓ）、情報取得部１３２は、削除されたフローエントリに対応するフローが消滅したと判定する（ステップＳ３４）。
【０１０１】
一方、エントリ削除通知の送信元が基点ノードでない場合（ステップＳ３３におけるＮｏ）、エントリ削除通知を無視する（ステップＳ３５）。なお、ステップＳ３５において、フローを維持するために、制御装置１０は、新たにフローエントリの設定を行ってもよい。あるいは、そのノードが新たにパケットを受信したときに、フローエントリの設定を行ってもよい。
【０１０２】
本実施形態では、第１の実施形態の効果とともに、フローの死活監視を行えるという効果が得られる。
【０１０３】
また、前述のように、フローエントリ設定部１５は、フローエントリ削除の条件に記述する所定時間の長さを、基点ノードでは、基点ノード以外のノードよりも短くすることが好ましい。すると、例えば、フローエントリが所定時間使用されなかったという条件を定める場合、基点ノード以外のノードは、基点ノードよりもエントリ削除通知を送信する機会が少なくなる。従って、制御装置１０が基点ノード以外のノードから受信するメッセージ量を削減することができる。
【０１０４】
また、フローエントリ設定部１５は、基点ノード以外のノードに対しては、エントリ削除通知の送信を指示しなくてもよい。
【０１０５】
実施形態４．
本発明の第４の実施形態の制御装置は、第２の実施形態と同様の動作に加えて、フローのグループの死活監視を行う。
【０１０６】
第４の実施形態の制御装置は、図２と同様の構成で実現することができ、以下、図２を参照して第４の実施形態を説明する。
【０１０７】
ただし、フローエントリ設定部１５は、第２の実施形態における動作に加えて、ノードに対して、所定の条件が生じたときにフローエントリを削除するとともに、エントリ削除通知を制御装置に送信することを指示する。
【０１０８】
また、情報取得部１３２は、第２の実施形態における動作に加えて、エントリ削除通知の受信時に、フローのグループが消滅したか否かを判定する。
【０１０９】
以下、第２の実施形態とは異なる点を中心に、第４の実施形態について説明する。
【０１１０】
第４の実施形態において、フローエントリ設定時の動作は、第２の実施形態と同様であり、制御装置１０は、ステップＳ１〜Ｓ１１（図６参照）を実行する。
【０１１１】
ただし、フローエントリ設定部１５は、例えば、ステップＳ４の後、以下の動作を行う。すなわち、フローエントリ設定部１５は、フローエントリを設定したノードに対して、そのフローエントリが所定時間使用されなかったという条件、または、フローエントリが使用されていたとしてもフローエントリ設定時から所定時間が経過したという条件が成立した場合に、そのフローエントリを削除することを指示する。さらに、フローエントリ設定部１５は、そのノードに対してフローエントリ削除時に、エントリ削除通知を制御装置１０に送信することを指示する。
【０１１２】
なお、フローエントリ設定部１５は、フローエントリ削除の条件として、フローエントリが所定時間使用されなかったという条件と、フローエントリが使用されていたとしてもフローエントリ設定時から所定時間が経過したという条件の両方を定めてもよいし、いずれか一方のみを定めてもよい。
【０１１３】
フローエントリが設定されるとともに、上記の指示をフローエントリ設定部１５から受けた個々のノードは、フローエントリ設定部１５からの指示に従い、指定された条件が成立したときに、ステップＳ４で設定されたフローエントリを削除する。そして、そのノードは、エントリ削除通知を制御装置１０に送信する。このとき、ノードは、削除したフローエントリに含まれていたフローの識別情報、および、そのノードの識別情報をエントリ削除通知に含めて送信する。
【０１１４】
制御装置１０がエントリ削除通知を受信すると、情報取得部１３２は、そのエントリ削除通知に基づいて、フローのグループが消滅したか否かを判定する。図１１は、第４の実施形態におけるエントリ削除通知受信時の処理経過の例を示すフローチャートである。
【０１１５】
制御装置１０がいずれかのノードからエントリ削除通知を受信すると（ステップＳ４１）、情報取得部１３２は、そのエントリ削除通知に含まれているフローの識別情報が示すフローが属するグループの識別情報を特定する（ステップＳ４２）。情報取得部１３２は、エントリ削除通知に含まれているフローの識別情報を抽出し、基点ノード情報記憶部１３３に記憶されているグループの識別情報の中から、そのフローの識別情報に適合するグループの識別情報を特定する。グループの識別情報は、フローの識別情報の一部として記述されているので（図８、図９参照）、情報取得部１３２は、抽出したフローの識別情報に包含されているグループの識別情報を特定すればよい。また、情報取得部１３２は、エントリ削除通知の送信元のノードの識別情報も抽出する。
【０１１６】
次に、情報取得部１３２は、エントリ削除通知の送信元が、ステップＳ４２で特定したグループの識別情報に対応する基点ノードであるか否かを判定する（ステップＳ４３）。情報取得部１３２は、ステップＳ４２で得たグループの識別情報に対応する基点ノードの識別情報を基点ノード情報記憶部１３３から読み込む。そして、エントリ削除通知の送信元のノードの識別情報とその基点ノードの識別情報とが一致していれば、情報取得部１３２は、エントリ削除通知の送信元が基点ノードであると判定する。一方、両者が一致していなければ、情報取得部１３２は、エントリ削除通知の送信元が基点ノードでないと判定する。
【０１１７】
エントリ削除通知の送信元が基点ノードでない場合（ステップＳ４３におけるＮｏ）、エントリ削除通知を無視する（ステップＳ４４）。
【０１１８】
また、エントリ削除通知の送信元が基点ノードである場合（ステップＳ４３におけるＹｅｓ）、情報取得部１３２は、ステップＳ４２で特定したグループの識別情報に対応する基点ノードに対して、そのグループの識別情報に適合するフローエントリの情報を要求する（ステップＳ４５）。ステップＳ４５で要求する情報は、フローエントリ毎に特定できる情報であればよい。例えば、情報取得部１３２は、グループの識別情報に適合するフローエントリ内の統計情報を要求してもよい。
【０１１９】
ステップＳ４５において、要求を受けた基点ノードは、指定されたグループの識別情報に適合するフローエントリの情報を制御装置１０に送る。ただし、該当する情報が存在しなければ、情報を制御装置１０に送らない。
【０１２０】
情報取得部１３２は、ステップＳ４５の要求に対する応答として情報を取得したならば（ステップＳ４６のＹｅｓ）、ステップＳ４２で特定したグループに属するフローの一部は生存しているので、そのグループも生存していると判定する（ステップＳ４７）。
【０１２１】
一方、ステップＳ４５の要求に対する応答として情報を取得しなかったならば、ステップＳ４２で特定したグループに属するフローが全て消滅しているので、そのグループも消滅していると判定する（ステップＳ４８）。
【０１２２】
本実施形態では、第２の実施形態の効果とともに、フローのグループの死活監視を行えるという効果が得られる。
【０１２３】
また、フローエントリ設定部１５は、フローエントリを設定したノードに対して、前述の条件が成立した場合にフローエントリを削除し、エントリ削除通知を制御装置１０に送信することを指示する動作を、グループの基点ノード決定後に行ってもよい。この場合、第３の実施形態と同様に、フローエントリ削除の条件に記述する所定時間の長さを、基点ノードでは、基点ノード以外のノードよりも短くすることが好ましい。
【０１２４】
実施形態５．
図１２は、本発明の第５の実施形態が適用される通信システムの例を示す説明図である。第５の実施形態の制御装置（フロー情報収集システム）３０は、外部装置４０に接続される。外部装置４０は、制御装置３０に対して、フローを特定するための識別情報を指定するとともに、そのフローにおいて通信システムの外部にパケットを出力することになるノードのインタフェースを指定する。ただし、フローを指定するための識別情報は、複数のフローを生成し得るものであってよい。よって、外部装置４０によって指定される一組の設定内容を、フローグループ設定と記す。また、外部装置４０によって指定されるフローの識別情報を、ここでは、フローグループ識別情報と記す。
【０１２５】
また、フローにおいて通信システムの外部にパケットを出力することになるノードを境界ノードと記す。
【０１２６】
図１３は、第５の実施形態の制御装置の構成例を示すブロック図である。第５の実施形態の制御装置３０は、図２に例示する要素に加えて、設定管理部１９と、外部装置通信部２０とを備える。
【０１２７】
外部装置通信部２０は、外部装置４０（図１２参照）との通信インタフェースである。
【０１２８】
設定管理部１９は、外部装置４０に指定されたフローグループ設定を保持する。
【０１２９】
本実施形態では、トポロジ管理部１１は、ネットワークのトポロジ情報の収集および管理を行うとともに、そのトポロジ情報を外部装置４０に通知する。外部装置４０は、このトポロジ情報を用いて、境界ノードやそのインタフェースを決定する。
【０１３０】
また、本実施形態では、経路計算部１２は、外部装置４０にフローグループ識別情報、および、境界ノードのインタフェースを指定されると、その境界ノードから通信システム（図１２参照）の外部にパケットを出力するようにフローの経路を計算する。
【０１３１】
フローエントリ計算部１４は、フローエントリを作成する。フローエントリ計算部１４は、経路計算部１２によって計算された経路に沿ってパケットを転送するためのアクションと、フローグループ識別情報とを対応付けることによって、各ノードに応じたフローエントリを作成する。
【０１３２】
ここで、フローエントリ計算部１４は、外部装置４０によって指定されたフローグループ識別情報をそのまま用いて、アクションと対応付けてもよい。あるいは、フローエントリ計算部１４は、外部装置４０によって指定されたフローグループ識別情報を詳細化してアクションと対応付けてもよい。
【０１３３】
また、フローグループ識別情報から、複数のフローが生成されてもよい。
【０１３４】
フローエントリ設定部１５は、フローエントリ計算部１４によって計算されたフローエントリの設定をノードに対して依頼する。この動作は、他の実施形態における動作と同様である。
【０１３５】
また、制御メッセージ処理部１６およびノード通信部１７は、他の実施形態における制御メッセージ処理部１６およびノード通信部１７と同様である。
【０１３６】
基点ノード決定部１３１は、基点ノードを決定し、その基点ノードの識別情報と、外部装置４０に指定されたフローグループ識別情報とを基点ノード情報記憶部１３３に記憶させる。
【０１３７】
基点ノード決定部１３１は、例えば、フローグループ設定に基づいて経路計算部１２によって計算されたパケット転送経路毎に、パケット転送経路を構成する１つ以上のノードを指定することによって基点ノードを決定してもよい。また、フローグループ設定に基づいて経路計算部１２によって計算された全てのパケット転送経路が通過するノードの中からノードを選択することによって基点ノードを決定してもよい。
【０１３８】
情報取得部１３２は、情報（例えば、トラフィックの識別情報であるものとする。）を収集すべきフローに関するフローグループ識別情報を外部装置４０から指定されると、基点ノード情報記憶部１３３を参照し、そのフローグループ識別情報に対応する基点ノードの識別情報を特定する。そして、情報取得部１３２は、その基点ノードに対して、フローグループ識別情報を送信して、フローに関する情報（トラフィックの識別情報）を要求する。
【０１３９】
この要求を受けた基点ノードは、情報取得部１３２から送られたフローグループ識別情報に適合するフローエントリを検索し、そのフローエントリにおけるトラフィックの識別情報を制御装置３０に返す。そして、情報取得部１３２は、そのトラフィックの識別情報を取得する。
【０１４０】
外部装置４０から指定されたフローグループ識別情報に応じて情報取得部１３２が基点ノードから上記のように収集した情報を、設定管理部１９は、外部装置４０に送る。
【０１４１】
本実施形態では、基点ノード決定部１３１は、例えば、フローグループ設定に基づいて経路計算部１２によって計算されたパケット転送経路毎に、パケット転送経路を構成する１つ以上のノードを指定することによって基点ノードを決定する。または、基点ノード決定部１３１は、フローグループ設定に基づいて経路計算部１２によって計算された全てのパケット転送経路が通過するノードの中からノードを選択することによって基点ノードを決定する。さらに、フローエントリには、フローグループ識別情報そのもの、あるいは、フローグループ識別情報を詳細化した情報が設定される。そのため、フローグループ識別情報に適合するフローエントリ内の情報を基点ノードから収集することにより、指定されたフローグループ識別情報により特定される全てのフローの経路におけるトラフィックの統計情報を収集することができる。この統計情報は、その全てのフロー全体に渡る統計情報であるとみなすことができる。
【０１４２】
そして、設定管理部１９は、情報取得部１３２が基点ノードが取得したトラフィックの統計情報を外部装置４０に送信する。この結果、外部装置４０は、外部装置４０が設定したフローグループ設定の結果定まったフローに関して、通信の実行結果の取得およびモニタリングが可能となる。
【０１４３】
第５の実施形態においても、トラフィックの統計情報を収集する場合を例にして説明したが、収集対象の情報はトラフィックの統計情報に限定されず、経路内において共通となっている情報であればよい。
【０１４４】
また、制御装置３０は、フローグループ識別情報毎に各パケット転送経路を記憶し、フローの情報を取得する際に、基点ノード決定部１３１が基点ノードを決定する構成であってもよい。
【０１４５】
また、第５の実施形態においても、第１から第４までの各実施形態と同様の態様で情報を収集したり、フローの死活監視等を行ったりしてもよい。
【０１４６】
次に、本発明の最小構成について説明する。図１４は、本発明の最小構成の例を示すブロック図である。本発明のフロー情報収集システムは、基点ノード情報記憶手段７１と、情報取得手段７２とを備える。
【０１４７】
基点ノード情報記憶手段７１（例えば、基点ノード情報記憶部１３３）は、フローの識別情報（フローの識別情報自体）またはその一部（例えば、フローのグループの識別情報となる、複数のフローの識別情報の共通部分）と、フローの情報の収集対象のノードである基点ノードとの対応関係を記憶する。
【０１４８】
情報取得手段７２（例えば、情報取得部１３２）は、フローの識別情報またはその一部に対応する基点ノードから、フローの情報を取得する。
【０１４９】
そのような構成により、全てのノードからではなく、基点ノードからフローの情報を取得する。従って、フローに関する情報を低い処理コストで収集することができる。
【０１５０】
上記の実施形態の一部または全部は、以下の付記のようにも記載され得るが、以下に限定されるわけではない。
【０１５１】
（付記１）オープンフローのフローの識別情報またはその一部と、前記フローの情報の収集対象であるノードであって、前記フローに対応する各パケット転送経路における情報を収集可能なノードとして決定された１つまたは複数のノードである基点ノードとの対応関係を記憶する基点ノード情報記憶手段と、フローの識別情報またはその一部を指定された場合に、前記フローの識別情報またはその一部に対応する基点ノードを特定し、当該基点ノードから前記フローの識別情報またはその一部に適合するフローの情報を取得する情報取得手段とを備えることを特徴とするフロー情報収集システム。
【０１５２】
（付記２）フローの識別情報に基づいて、当該フローに対応する基点ノードを決定し、前記フローの識別情報と前記基点ノードとの対応関係を基点ノード情報記憶手段に記憶させる基点ノード決定手段を備える付記１に記載のフロー情報収集システム。
【０１５３】
（付記３）基点ノード決定手段は、フローに対応するパケット転送経路毎にパケット転送経路上の１つ以上のノードを指定することによって、基点ノードを決定する付記２に記載のフロー情報収集システム。
【０１５４】
（付記４）基点ノード決定手段は、フローに対応する全てのパケット転送経路が通過するノードの中から１つ以上のノードを指定することによって、基点ノードを決定する付記２に記載のフロー情報収集システム。
【０１５５】
（付記５）基点ノード決定手段は、フローに対応するパケット転送経路において最初にパケットを転送することになるノードを基点ノードとして決定する付記２に記載のフロー情報収集システム。
【０１５６】
（付記６）基点ノード決定手段は、フローに対応するパケット転送経路において最初にパケットを転送することになるノードおよび最後にパケットを出力するノードを基点ノードとして決定する付記２に記載のフロー情報収集システム。
【０１５７】
（付記７）基点ノード決定手段は、当該フロー情報収集システムとの通信量に基づいて、基点ノードを決定する付記２に記載のフロー情報収集システム。
【０１５８】
（付記８）フローに対応するパケット転送経路上の各ノードに対して、フローの識別情報と、当該フローの識別情報に適合するパケットを受信したときの動作とを示すフローエントリを設定するフローエントリ設定手段を備え、前記フローエントリ設定手段は、前記各ノードに対して、フローエントリを削除した場合に、フローエントリを削除した旨の通知を指示し、情報取得手段は、前記通知の送信元が基点ノードである場合に、前記フローが削除されたと判定する付記１から付記７のうちのいずれかに記載のフロー情報収集システム。
【０１５９】
（付記９）フローエントリ設定手段は、フローに対応するパケット転送経路上の各ノードに対して、フローエントリの削除条件として、所定時間の経過を指定するとともに、基点ノードに対する前記所定時間を、基点ノード以外のノードに対する前記所定時間よりも短く設定する付記８に記載のフロー情報収集システム。
【０１６０】
（付記１０）情報取得手段は、フローのグループを指定された場合に、当該グループに属するフロー毎に、フローの識別情報に対応する基点ノードを特定し、当該基点ノードから前記フローの識別情報に適合するフローの情報を取得する付記１から付記９のうちのいずれかに記載のフロー情報収集システム。
【０１６１】
（付記１１）フローの識別情報毎に、フローの識別情報と、フローに対応する個々のパケット転送経路上のノードとの対応関係を基点ノード情報記憶手段に記憶させ、フローのグループが指定された場合に、当該グループに属する各フローの識別情報の重複部分を前記グループの識別情報とし、前記各フローに対応する各パケット転送経路において重複しているノードの中から基点ノードを決定し、前記グループの識別情報と前記基点ノードとの対応関係を基点ノード情報記憶手段に記憶させる基点ノード決定手段を備える付記１に記載のフロー情報収集システム。
【０１６２】
（付記１２）フローに対応するパケット転送経路上の各ノードに対して、フローの識別情報と、当該フローの識別情報に適合するパケットを受信したときの動作とを示すフローエントリを設定するフローエントリ設定手段を備え、前記フローエントリ設定手段は、前記各ノードに対して、フローエントリを削除した場合に、フローエントリを削除した旨の通知を指示し、情報取得手段は、前記通知の送信元が基点ノードである場合に、削除されたフローエントリに適合するグループの識別情報を特定し、当該グループの識別情報に対応する基点ノードに対して、前記グループの識別情報に適合する情報を要求し、前記情報を受信しなかった場合に、前記グループが削除されたと判定する付記１１に記載のフロー情報収集システム。
【０１６３】
（付記１３）情報取得手段は、フローの情報として、トラフィックの統計情報を取得する付記１から付記１２のうちのいずれかに記載のフロー情報収集システム。
【０１６４】
この出願は、２０１２年９月６日に出願された日本特許出願２０１２−１９６３８１を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【０１６５】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【０１６６】
本発明は、オープンフローのフローに関する情報収集に好適に適用される。
【符号の説明】
【０１６７】
１０，３０  制御装置（フロー情報収集システム）
１１  トポロジ管理部
１２  経路計算部
１３  フロー情報取得部
１４  フローエントリ計算部
１５  フローエントリ設定部
１３１  基点ノード決定部
１３２  情報取得部
１３３  基点ノード情報記憶部
【図１】
2015531552.tif 000003
【図２】
2015531552.tif 000004
【図３】
2015531552.tif 000005
【図４】
2015531552.tif 000006
【図５】
2015531552.tif 000007
【図６】
2015531552.tif 000008
【図７】
2015531552.tif 000009
【図８】
2015531552.tif 000010
【図９】
2015531552.tif 000011
【図１０】
2015531552.tif 000012
【図１１】
2015531552.tif 000013
【図１２】
2015531552.tif 000014
【図１３】
2015531552.tif 000015
【図１４】
2015531552.tif 000016
【国際調査報告】
2015531552.tif 000017