(57)【特許請求の範囲】
【請求項１】
ネットワークモデルのエンドツーエンドのフローを表すネットワークフロー表現を定義するフロー定義手段と、
ネットワーク上のスイッチ装置に関する情報を管理するスイッチ情報管理手段と、
前記ネットワーク上の前記スイッチ装置の動作を規定したスイッチフロー情報を前記スイッチ装置に設定するフロー設定手段とを備え、
前記スイッチ装置に関する情報は、前記ネットワークにおけるスイッチ装置、ポート、スイッチ装置間の接続関係と、前記ネットワークモデル上のノード、ポート、リンクとの対応関係を示す対応関係情報を含んでおり、
前記フロー設定手段は、
前記スイッチ装置に関する情報を参照することによって、前記ネットワークモデルに明示的に登場するノード、ポート、およびリンクを、それぞれ、前記ネットワーク上の前記スイッチ装置、ポート、および前記スイッチ装置間の接続情報に変換することによって、前記ネットワークのフローを表すフロー情報を得るネットワークフロー情報変換手段と、
前記ネットワーク上の前記スイッチ装置を、前記ネットワークフローモデルにおいて明示的に登場する第１のスイッチ装置と、データの転送経路上にあって、前記ネットワークフローモデルにおいて明示的に登場しない第２のスイッチ装置とに分類する分類手段と、
前記フローのエッジでの前記第１のスイッチ装置の動作を規定した第１のスイッチフロー情報を生成する第１のスイッチフロー情報生成手段と、
前記フロー情報に基づいて、前記第２のスイッチ装置から前記データの転送先となるスイッチ装置へ前記データを転送することを規定した第２のスイッチフロー情報を生成する第２のスイッチフロー情報生成手段と、
前記第１のスイッチフロー情報を前記第１のスイッチ装置に設定し、前記第２のスイッチフロー情報を前記第２のスイッチ装置に設定するスイッチ装置設定手段とを含む
ことを特徴とするネットワーク制御装置。
【請求項２】
前記スイッチ情報管理手段は、
前記ネットワークに含まれる各スイッチ装置と、当該各スイッチ装置間の接続関係とを検出するスイッチ情報収集手段と、
前記スイッチ情報収集手段に検出された前記各スイッチ装置および前記接続関係の情報を記憶するスイッチ情報蓄積手段と、
前記スイッチ情報蓄積手段に蓄積された前記各スイッチ装置および前記接続関係の情報に基づいて、トポロジ情報を生成し、前記対応関係情報を保持する対応関係管理手段とを有する
請求項１に記載のネットワーク制御装置。
【請求項３】
前記スイッチ情報収集手段は、前記ネットワークに含まれる各スイッチ装置と通信を行い、前記各スイッチ装置から、前記各スイッチ装置間の接続関係を検出する
請求項２に記載のネットワーク制御装置。
【請求項４】
フロー定義手段と、スイッチ情報管理手段と、フロー設定手段とを備えるネットワーク制御装置に適用されるネットワーク制御方法であって、
前記フロー定義手段は、ネットワークモデルのエンドツーエンドのフローを表すネットワークフロー表現を定義し、
前記スイッチ情報管理手段は、ネットワーク上のスイッチ装置に関する情報を管理し、
前記フロー設定手段は、前記ネットワーク上の前記スイッチ装置の動作を規定したスイッチフロー情報を前記スイッチ装置に設定するフロー設定手段とを備え、
前記スイッチ装置に関する情報は、前記ネットワークにおけるスイッチ装置、ポート、スイッチ装置間の接続関係と、前記ネットワークモデル上のノード、ポート、リンクとの対応関係を示す対応関係情報を含んでおり、
前記フロー設定手段は、
前記スイッチ装置に関する情報を参照することによって、前記ネットワークモデルに明示的に登場するノード、ポート、およびリンクを、それぞれ、前記ネットワーク上の前記スイッチ装置、ポート、および前記スイッチ装置間の接続情報に変換することによって、前記ネットワークのフローを表すフロー情報を得て、
前記ネットワーク上の前記スイッチ装置を、前記ネットワークフローモデルにおいて明示的に登場する第１のスイッチ装置と、データの転送経路上にあって、前記ネットワークフローモデルにおいて明示的に登場しない第２のスイッチ装置とに分類し、
前記フローのエッジでの前記第１のスイッチ装置の動作を規定した第１のスイッチフロー情報を生成し、
前記フロー情報に基づいて、前記第２のスイッチ装置から前記データの転送先となるスイッチ装置へ前記データを転送することを規定した第２のスイッチフロー情報を生成し、
前記第１のスイッチフロー情報を前記第１のスイッチ装置に設定し、前記第２のスイッチフロー情報を前記第２のスイッチ装置に設定する
ことを特徴とするネットワーク制御方法。
【請求項５】
ネットワーク制御装置が備えるコンピュータに搭載されるネットワーク制御プログラムであって、
前記コンピュータに、
ネットワークモデルのエンドツーエンドのフローを表すネットワークフロー表現を定義することと、
ネットワーク上のスイッチ装置に関する情報を管理することと、
前記ネットワーク上の前記スイッチ装置の動作を規定したスイッチフロー情報を前記スイッチ装置に設定することとを実行させ、
前記スイッチ装置に関する情報は、前記ネットワークにおけるスイッチ装置、ポート、スイッチ装置間の接続関係と、前記ネットワークモデル上のノード、ポート、リンクとの対応関係を示す対応関係情報を含んでおり、
前記スイッチフロー情報を前記スイッチ装置に設定することは、
前記スイッチ装置に関する情報を参照することによって、前記ネットワークモデルに明示的に登場するノード、ポート、およびリンクを、それぞれ、前記ネットワーク上の前記スイッチ装置、ポート、および前記スイッチ装置間の接続情報に変換することによって、前記ネットワークのフローを表すフロー情報を得ることと、
前記ネットワーク上の前記スイッチ装置を、前記ネットワークフローモデルにおいて明示的に登場する第１のスイッチ装置と、データの転送経路上にあって、前記ネットワークフローモデルにおいて明示的に登場しない第２のスイッチ装置とに分類することと、
前記フローのエッジでの前記第１のスイッチ装置の動作を規定した第１のスイッチフロー情報を生成することと、
前記フロー情報に基づいて、前記第２のスイッチ装置から前記データの転送先となるスイッチ装置へ前記データを転送することを規定した第２のスイッチフロー情報を生成することと、
前記第１のスイッチフロー情報を前記第１のスイッチ装置に設定し、前記第２のスイッチフロー情報を前記第２のスイッチ装置に設定することとを含む、
ネットワーク制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク制御装置、ネットワーク制御方法およびネットワーク制御プログラムに関する。
【背景技術】
【０００２】
近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている（非特許文献１，２参照）。【０００３】
オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行う。非特許文献２で仕様が定められているオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。【０００４】
フローテーブルには、フロー毎に、パケットヘッダと照合するマッチ条件（Ｈｅａｄｅｒ  Ｆｉｅｌｄｓ）と、フロー統計情報（Ｃｏｕｎｔｅｒｓ）と、処理内容を定義したアクション（Ａｃｔｉｏｎｓ）との組が定義される（非特許文献２の「３  Ｆｌｏｗ  Ｔａｂｌｅ」の項参照）。【０００５】
オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチ条件（非特許文献２の「３．１  Ｈｅａｄｅｒ  Ｆｉｅｌｄｓ」、「５．２．３  Ｆｌｏｗ  Ｍａｔｃｈ  Ｓｔｒｕｃｔｕｒｅｓ」参照）を持つフローエントリを検索する。検索の結果、受信パケットに適合するフローエントリが見つかった場合、オープンフロースイッチは、フロー統計情報を更新するとともに、受信パケットに対して、そのフローエントリのアクションフィールドに記述された処理内容（例えば、指定ポートからのパケット送信、フラッディング、廃棄等）を実施する。一方、検索の結果、受信パケットに適合するフローエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対してフローエントリ設定の要求（換言すれば、受信パケットを処理するための制御情報の送信要求）を送信する。この要求メッセージは、Ｐａｃｋｅｔ−Ｉｎメッセージと呼ばれる。そして、オープンフロースイッチは、処理内容が定められたフローエントリをオープンフローコントローラから受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたフローエントリを制御情報として用いてパケット転送を行う。【０００６】
オープンフローに代表される集中制御型のネットワークにおいてはフロー毎にきめ細かな制御を行うことが可能となっている。その一方で、スイッチ装置が扱えるフローテーブル数の制約といったリソースの制限がある。大規模なフローを取り扱う場合には、このようなリソースの制限が課題となる場合がある。スイッチ装置のリソース利用を最適化するための技術が、例えば、非特許文献３，４に記載されている。非特許文献３，４には、ヘッダをネットワークのエッジスイッチで書き換え、個別のフローの経路情報を埋め込み、コア網では既設の各フローで共通に利用できるフローエントリを設定しておくことで、コア網を転送する際に必要となるスイッチ装置のリソースを有効利用する技術等が提案されている。【０００７】
オープンフローを採用したシステムの各アプリケーションは、適用する環境に応じてこのような最適化技術を組み込むようにして、開発および実現されている。この場合、新たな最適化技術が登場し、その最適化技術を利用する場合には、アプリケーションが改修される。【０００８】
また、非特許文献５には、理論的なネットワークモデルと、そのネットワークモデルにおけるデータ転送ルールを表すネットワークフロー表現を導入し、それらのモデルを操作するようにアプリケーションをプログラミングすることによって、アプリケーションと、フロー設定装置（オープンフローコントローラ）とを分離し、独立して交換可能とすることが記載されている。非特許文献５に記載の技術により開発工数の増加が抑えられる。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Nick Mckeown, 外７名、“OpenFlow: Enabling Innovation in Campus Networks”、[online]、２００８年３月１４日、［２０１３年９月５日検索］、インターネット<URL: http://www.openflow.org/documents/openflow-wp-latest.pdf>
【非特許文献２】“OpenFlow Switch Specification Version 1.0.0 (Wire Protocol 0x01)”、[online]、２００９年１２月３１日、［２０１３年９月５日検索］、インターネット<URL: http://www.openflow.org/documents/openflow-spec-v1.0.0.pdf>
【非特許文献３】Yasunobu Chiba, Yusuke Shinohara and Hideyuki Shimonishi, “Source Flow: Handling Millions of Flows on Flow-based Nodes”, ACM SIGCOMM Computer Communication Review, Vol.40, issue 4, pp.465-466, October 2010
【非特許文献４】芦田優太、小出俊夫、千葉靖伸、下西英之、「Ｓｏｕｒｃｅ  Ｆｌｏｗを用いた大規模ＯｐｅｎＦｌｏｗネットワークにおける通信負荷低減手法の提案」、電子情報通信学会、信学技法、ネットワークシステム１１０（４４８），ｐｐ．３４１−３４６，２０１１年２月
【非特許文献５】小出俊夫、芦田優太、下西英之、「ＳＤＮ制御プラットフォームにおけるネットワーク抽象化モデルの検討とその評価」、電子情報通信学会、信学技法、Ｖｏ．１１３，Ｎｏ．７，ＣＱ２０１３−８  ｐｐ．４１−４６、２０１３年４月
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記のように、非特許文献５に記載の技術を用いることで開発工数の増加を抑えることができる。しかし、ネットワークフロー表現は、理論的なネットワークモデルにおけるデータ転送ルールを表すものであるので、実際にオープンフロースイッチに設定するフローエントリとして直接利用することはできない。【００１１】
そこで、本発明は、スイッチ装置によって形成されるネットワークを表すトポロジ情報、およびそのネットワークでのデータ転送ルールを表すネットワークフロー情報を導入した場合に、ネットワークフロー情報を利用して各スイッチ装置を制御することができるネットワーク制御装置、ネットワーク制御方法およびネットワーク制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明によるネットワーク制御装置は、ネットワークを表現したトポロジ情報と、そのネットワークでのデータ転送ルールを表現したネットワークフロー情報とを記憶するネットワークデータベース記憶手段と、ネットワークに含まれる各スイッチ装置をノードとしてトポロジ情報を生成してネットワークデータベース記憶手段に記憶させ、ネットワークデータベース記憶手段に記憶されているネットワークフロー情報に基づいて、各スイッチ装置の動作を規定したスイッチフロー情報を生成し、スイッチフロー情報を各スイッチ装置に設定するスイッチ制御手段とを備えることを特徴とする。【００１３】
また、本発明によるネットワーク制御方法は、ネットワークを表現したトポロジ情報と、そのネットワークでのデータ転送ルールを表現したネットワークフロー情報とを記憶するネットワークデータベース記憶手段を備えるネットワーク制御装置に適用されるネットワーク制御方法であって、ネットワークに含まれる各スイッチ装置をノードとしてトポロジ情報を生成してネットワークデータベース記憶手段に記憶させ、ネットワークデータベース記憶手段に記憶されているネットワークフロー情報に基づいて、各スイッチ装置の動作を規定したスイッチフロー情報を生成し、スイッチフロー情報を各スイッチ装置に設定することを特徴とする。【００１４】
また、本発明によるネットワーク制御プログラムは、ネットワークを表現したトポロジ情報と、そのネットワークでのデータ転送ルールを表現したネットワークフロー情報とを記憶するネットワークデータベース記憶手段を備えるコンピュータに搭載されるネットワーク制御プログラムであって、コンピュータに、ネットワークに含まれる各スイッチ装置をノードとしてトポロジ情報を生成してネットワークデータベース記憶手段に記憶させ、ネットワークデータベース記憶手段に記憶されているネットワークフロー情報に基づいて、各スイッチ装置の動作を規定したスイッチフロー情報を生成し、スイッチフロー情報を各スイッチ装置に設定するスイッチ制御処理を実行させることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、スイッチ装置によって形成されるネットワークを表すトポロジ情報、およびそのネットワークでのデータ転送ルールを表すネットワークフロー情報を導入した場合に、ネットワークフロー情報を利用して各スイッチ装置を制御することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明のネットワーク制御装置の第１の実施形態の構成例を示すブロック図である。
【図２】ネットワークモデルの概念図である。
【図３】ネットワークモデルの表現例を示す模式図である。
【図４】スイッチ情報管理手段の構成例を示すブロック図である。
【図５】スイッチ情報管理手段の処理経過の例を示すフローチャートである。
【図６】フロー設定手段の構成例を示すブロック図である。
【図７】フロー設定手段の処理経過の例を示すフローチャートである。
【図８】フロー設定手段に適用されるＳｏｕｒｃｅＦｌｏｗを示す模式図である。
【図９】本発明のネットワーク制御装置の第２の実施形態の構成例を示すブロック図である。
【図１０】共通フロー設定手段の構成例を示すブロック図である。
【図１１】共通フロー設定手段の処理経過の例を示すフローチャートである。
【図１２】個別フロー設定手段の構成例を示すブロック図である。
【図１３】個別フロー設定手段の処理経過の例を示すフローチャートである。
【図１４】本発明の主要部を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態を図面を参照して説明する。
【００１８】
実施形態１．
図１は、本発明のネットワーク制御装置の第１の実施形態の構成例を示すブロック図である。第１の実施形態におけるネットワーク制御装置１０は、ネットワーク内のスイッチ装置８を制御するスイッチ制御手段３と、ネットワークデータベース（以下、単にＤＢと記す。）記憶手段２と、情報登録手段１とを備える。
【００１９】
ネットワークＤＢ記憶手段２は、ネットワーク４をモデルとして表したネットワークモデルを記憶する記憶装置である。ネットワークモデルには、エンドツーエンドのフローを表すネットワークフロー表現も含まれる。
【００２０】
実際のネットワーク４に対する操作の記述に対応するように、ネットワークモデルに対する操作の記述を表すことができる。
【００２１】
情報登録手段１は、アプリケーションに従って、ネットワークＤＢ記憶手段２にネットワークフロー表現を登録する。具体的には、情報登録手段１は、フロー定義手段５を備える。フロー定義手段５は、ネットワークフロー表現を定義し、ネットワークＤＢ記憶手段２にネットワークフロー表現を記憶させる。なお、ネットワークフロー表現は、ネットワークモデルの一部として記述される。
【００２２】
スイッチ制御手段３には、ネットワーク４内のスイッチ装置８が接続されている。スイッチ制御手段３は、スイッチ情報管理手段７と、フロー設定手段６とを備える。
【００２３】
スイッチ情報管理手段７は、ネットワーク４内のスイッチ装置８の状態を示す情報を収集し、蓄積する。また、スイッチ情報管理手段７は、スイッチ装置８間の接続関係を検出し、その接続関係の情報をネットワークＤＢ記憶手段２に記憶させる。
【００２４】
さらに、スイッチ情報管理手段７は、スイッチ制御手段３に接続されている各スイッチ装置８と、ネットワークＤＢ記憶手段２に記憶されているネットワークモデルとの対応関係を管理する。そして、スイッチ情報管理手段７は、スイッチ装置８の状態の変化、および、スイッチ装置８間の接続関係の変化を、ネットワークＤＢ記憶手段２に記憶されているネットワークモデルに反映する。
【００２５】
フロー設定手段６は、ネットワークＤＢ記憶手段２に登録されたネットワークフロー表現をスイッチ装置毎のフロー設定に変換し、各スイッチ装置８に対してフロー設定を設定する。フロー設定とは、条件に適合するパケットに対する処理内容を定めた情報である。例えば、オープンフローにおけるフローエントリが、フロー設定に該当する。
【００２６】
フロー設定手段６は、ネットワークＤＢ記憶手段２に記憶されているネットワークフロー表現を解釈し、ネットワークフロー表現で明示的に登場するスイッチ装置８を判定する。さらに、フロー設定手段６は、フローに対応する転送過程で必要になることが明示的に示されていないスイッチ装置８を、スイッチ情報管理手段７に記憶されている各スイッチ装置８とネットワークモデルとの対応関係に基づいて判定する。この判定の結果、フローに対応する転送経路上の各スイッチ装置８が特定される。ここで、ネットワークフロー表現で明示的に登場するスイッチ装置８は、フローの経路の両端のスイッチ転送装置である。
【００２７】
フロー設定手段６は、転送経路上の各スイッチ装置８に対して、ネットワークフロー表現の記述内容を実現するためのフロー設定を生成し、生成したフロー設定を、順次各スイッチ装置８に設定する。
【００２８】
フロー定義手段５は、ネットワークＤＢ記憶手段２に記憶されたネットワークモデル内でエンドツーエンドのフローを表すネットワークフロー表現を定義し、ネットワークＤＢ記憶手段２に記憶させる。すなわち、ネットワークモデルに含まれる情報のうちネットワークフロー表現は、フロー定義手段５によって登録される。
【００２９】
本発明におけるネットワークモデルおよびネットワークフロー表現は、非特許文献５に記載されたネットワークモデルおよびネットワークフロー表現と同様でよい。以下、ネットワークモデルおよびネットワークフロー表現について説明する。
【００３０】
図２は、ネットワークモデルの概念図である。図２に示すように、ネットワークモデルは、トポロジと、ネットワークフロー表現とを含む。
【００３１】
トポロジは、Ｎｏｄｅオブジェクト、ＰｏｒｔオブジェクトおよびＬｉｎｋオブジェクトによって表現される。以下、Ｎｏｄｅオブジェクト、ＰｏｒｔオブジェクトおよびＬｉｎｋオブジェクトをそれぞれ、単に、Ｎｏｄｅ、ＰｏｒｔおよびＬｉｎｋと記す。Ｎｏｄｅは、スイッチ装置に対応する。Ｐｏｒｔは、ポートに対応する。Ｌｉｎｋは、スイッチ装置の接続関係に対応する。Ｎｏｄｅ、ＰｏｒｔおよびＬｉｎｋは、ネットワークモデル上での識別子を有する。ネットワークモデル内のトポロジは、これらの識別子を用いてネットワークを表現する。
【００３２】
図２において、１つのネットワークフロー表現を“Ｆｌｏｗ”と記す。ネットワークフロー表現“Ｆｌｏｗ”は、１つ以上のＮｏｄｅを跨って構成されるエンドツーエンドのフローを表現する。１つのＦｌｏｗは、ｍａｔｃｈｅｓ、ｐａｔｈおよびｅｄｇｅ＿ａｃｔｉｏｎｓを含む。ｍａｔｃｈｅｓは、転送対象とするパケットの条件を定義する部分である。ｐａｔｈは、転送経路を定義する部分である。ｅｄｇｅ＿ａｃｔｉｏｎｓは、パケット出力先およびヘッダ書き換え条件群を定義する部分である。
【００３３】
ｍａｔｃｈｅｓでは、複数の条件を定義することができる。例えば、ｍａｔｃｈｅｓにおいて、入力Ｎｏｄｅ（ｉｎ＿ｎｏｄｅ）、入力Ｐｏｒｔ（ｉｎ＿ｐｏｒｔ）、パケットヘッダの条件等を定義することができる。
【００３４】
ｐａｔｈは、転送経路を定義する。例えば、ｐａｔｈは、Ｌｉｎｋ識別子のリスト、経由するＮｏｄｅ、Ｐｏｒｔのリスト等によって、転送経路を定義する。
【００３５】
ｅｄｇｅ＿ａｃｔｉｏｎｓは、パケットを最後にネットワーク４（図１参照）の外部に出力する際の手順を定義する。例えば、ｅｄｇｅ＿ａｃｔｉｏｎｓにおいて、出力Ｎｏｄｅ（ｏｕｔ＿ｎｏｄｅ）と出力Ｐｏｒｔ(ｏｕｔ＿ｐｏｒｔ)が指定されたり、ＶＬＡＮタグの書き換えやＭＡＣアドレスの書き換え等のパケットヘッダ書き換え処理が定義されたりする。
【００３６】
ネットワークフロー表現は、フローに合致するパケットの転送ルールを表していると言うこともできる。
【００３７】
図３は、ネットワークモデルの表現例を示す模式図である。図３に例示するネットワークモデルでは、ネットワーク３１を表している。図３に示す例において、ネットワーク３１は、２台のＮｏｄｅ３０１とＮｏｄｅ３１１とを含む。Ｎｏｄｅ３０１は、３つのＰｏｒｔ３０２〜３０４を有する。Ｎｏｄｅ３１１は、３つのＰｏｒｔ３１２〜３１４を有する。また、Ｌｉｎｋ３２０は、２台のＮｏｄｅ３０１，３１１が、Ｎｏｄｅ３０１のＰｏｒｔ３０４を起点（ｓｒｃ）とし、Ｎｏｄｅ３１１のＰｏｒｔ３１３を終端点（ｄｓｔ）として接続されていることを表現している。
【００３８】
また、図３では、ネットワークフロー表現として、Ｆｌｏｗ３３０を例示している。Ｆｌｏｗ３３０は、Ｎｏｄｅ３０１のＰｏｒｔ３０２から入力されたパケットを、Ｎｏｄｅ３１１のＰｏｒｔ３１４から出力することを表現している。
【００３９】
Ｆｌｏｗ３３０のｍａｔｃｈｅｓは、入力Ｎｏｄｅ（ｉｎ＿ｎｏｄｅ）としてＮｏｄｅ３０１を指定し、入力ポート（ｉｎ＿ｐｏｒｔ）としてＰｏｒｔ３０２を指定することによって、転送対象となるパケットの条件を定義している。
【００４０】
Ｆｌｏｗ３３０のｐａｔｈは、Ｌｉｎｋ３２０を介してパケットを転送することを表現している。
【００４１】
Ｆｌｏｗ３３０のｅｄｇｅ＿ａｃｔｉｏｎｓは、出力Ｎｏｄｅ（ｏｕｔ＿ｎｏｄｅ）としてＮｏｄｅ３１１を指定し、出力Ｐｏｒｔ(ｏｕｔ＿ｐｏｒｔ)としてＰｏｒｔ３１４を指定することによって、パケットの出力先を定義している。
【００４２】
次に、スイッチ情報管理手段７の構成および動作を説明する。図４は、スイッチ情報管理手段７の構成例を示すブロック図である。図１に示す要素と同一の要素に関しては、図１と同一の符号を付し説明を省略する。図５は、スイッチ情報管理手段７の処理経過の例を示すフローチャートである。スイッチ情報管理手段７は、スイッチ情報収集手段４１と、スイッチ情報蓄積手段４２と、モデル変換管理手段４３とを備える。
【００４３】
スイッチ情報収集手段４１は、スイッチ装置８と通信し、スイッチ装置８の機能を利用して、スイッチ装置８毎に、スイッチ装置８のポート数、各ポートの稼働状態、およびリンク速度等のスイッチ装置８自体の情報を収集し、スイッチ情報蓄積手段４２に登録する（ステップＳ１）。このとき、スイッチ情報収集手段４１は、スイッチ装置８の識別情報や、ポートの識別情報も収集し、スイッチ情報蓄積手段４２に登録する。
【００４４】
また、管理対象のスイッチ装置８がオープンフロースイッチである場合等には、スイッチ情報収集手段４１は、スイッチ装置８間の接続関係（すなわち、リンク）を、スイッチ装置８の機能を利用して、スイッチ装置８から検出することができる。この場合、スイッチ情報収集手段４１は、ステップＳ１において、スイッチ装置８間のリンクの情報もスイッチ装置８から検出し、リンクの情報もスイッチ情報蓄積手段４２に登録する。具体的には、スイッチ情報収集手段４１は、スイッチ装置８がどのポートを通じて他のスイッチ装置に接続されているかをスイッチ装置８から検出し、検出した情報をスイッチ情報蓄積手段４２に登録する。
【００４５】
なお、スイッチ情報収集手段４１は、スイッチ装置８以外の装置等からリンクの情報を収集してもよい。例えば、スイッチ情報収集手段４１は、ネットワーク４の構成を管理するネットワーク管理システムから、スイッチ装置８間のリンクの情報を収集してもよい。この場合、ネットワーク管理システムは、ネットワーク４に属するスイッチ装置８間のリンクの情報を保持する。
【００４６】
スイッチ情報蓄積手段４２は、スイッチ情報収集手段４１によって収集された各情報（スイッチ装置８、ポート、リンク等の各情報）を蓄積し、他の手段から参照可能な形で保持する。
【００４７】
モデル変換管理手段４３は、スイッチ情報蓄積手段４２に蓄積された、スイッチ装置８、ポート、スイッチ装置８間の接続関係（リンク）の情報を、ネットワークモデルに変換し（より具体的には、ネットワークモデルにおけるオブジェクトに変換し）、ネットワークＤＢ記憶手段２に登録する（ステップＳ２）。
【００４８】
さらに、モデル変換管理手段４３は、ネットワーク４におけるスイッチ装置８、ポート、接続関係（リンク）の識別情報と、ネットワークモデル上の対応するオブジェクト（Ｎｏｄｅ、Ｐｏｒｔ、Ｌｉｎｋ）の識別子との対応関係を表す情報を保持する（ステップＳ３）。
【００４９】
次に、フロー設定手段６の構成および動作を説明する。図６は、フロー設定手段６の構成例を示すブロック図である。図４に示す要素と同一の要素に関しては、図４と同一の符号を付し説明を省略する。図７は、フロー設定手段６の処理経過の例を示すフローチャートである。フロー設定手段６は、ネットワークフロー表現変換手段５１と、スイッチ抽出・分類手段５２と、エッジフロー変換手段５３と、転送フロー変換手段５４と、スイッチ装置設定手段５５とを備える。
【００５０】
ネットワークフロー表現変換手段５１は、ネットワークフロー表現に明示的に登場するノード、ポート、リンクを、ネットワーク４におけるスイッチ装置、ポート、スイッチ装置間の接続関係の識別情報に変換する（ステップＳ１１）。具体的には、ネットワークフロー表現変換手段５１は、ネットワークフロー表現に明示的に登場するノード、ポート、リンクに対応する、ネットワーク４におけるスイッチ装置、ポート、スイッチ装置間の接続関係の識別情報（換言すれば、スイッチ情報蓄積手段４２に登録されているスイッチ装置、ポート、接続関係の識別情報）を、モデル変換管理手段４３に照会し、ネットワーク４におけるスイッチ装置、ポート、スイッチ装置間の接続関係の識別情報を得る。そして、ネットワークフロー表現変換手段５１は、ネットワークフロー表現に明示的に登場するノード、ポート、リンクをそれらの識別情報に変換する。この変換結果は、ネットワーク４におけるフローを表すフロー情報であると言える。以下、ステップＳ１１における変換結果を、単にフロー情報と記す場合がある。
【００５１】
なお、ネットワークフロー表現に明示的に登場するノードは、フローの経路の両端に該当するノードである。また、ネットワークフロー表現で明示されていないノードは、フローの経路において、両端以外に該当するノードである。
【００５２】
ネットワークフロー表現変換手段５１は、ステップＳ１１で得られるフロー情報をスイッチ抽出・分類手段５２に引き渡す。
【００５３】
続いて、スイッチ抽出・分類手段５２は、ネットワークフロー表現のｐａｔｈで指定されたリンク情報（より具体的には、ステップＳ１１で得られたｐａｔｈの変換結果）に基づいて、フローの経路を表すグラフを組み立てる。さらに、スイッチ抽出・分類手段５２は、フローに合致するパケットの転送経路上のスイッチ装置８であって、ネットワークフロー表現で明示されていないスイッチ装置８の情報をスイッチ情報蓄積手段４２から抽出する。そして、スイッチ抽出・分類手段５２は、ネットワークフロー表現に関連するスイッチ装置８（上記の抽出によって得られるスイッチ装置８、およびネットワークフロー表現に明示されているスイッチ装置８）を列挙する（ステップＳ１２）。
【００５４】
さらに、スイッチ抽出・分類手段５２は、列挙したそれぞれのスイッチ装置８について、ネットワークフロー表現のｍａｔｃｈｅｓ、ｅｄｇｅ＿ａｃｔｉｏｎｓで明示的に入出力を行う役割を指定されたスイッチ装置であるか、転送を担う役割をｐａｔｈで暗黙に指定されたスイッチ装置であるかを分類する（ステップＳ１３）。スイッチ抽出・分類手段５２は、前者のスイッチ装置８の識別情報と、リンク情報から組み立てたグラフと、ステップＳ１１で得られたフロー情報とを、エッジフロー変換手段５３に引き渡し、後者のスイッチ装置８の識別情報と、グラフと、フロー情報とを、転送フロー変換手段５４に引き渡す。エッジフロー変換手段５３および転送フロー変換手段５４には、共通のグラフおよび共通のフロー情報が引き渡される。
【００５５】
そして、エッジフロー変換手段５３は、ネットワークフロー表現のｍａｔｃｈｅｓ、ｅｄｇｅ＿ａｃｔｉｏｎｓで明示的に入出力を行う役割を指定されたスイッチ装置に対するフロー設定を生成する（ステップＳ１４）。転送フロー変換手段５４は、転送を担う役割をｐａｔｈで暗黙に指定されたスイッチ装置に対するフロー設定を生成する（ステップＳ１５）。
【００５６】
エッジフロー変換手段５３は、ネットワークフロー表現内のｍａｔｃｈｅｓで明示的に指定された条件や、ｅｄｇｅ＿ａｃｔｉｏｎｓで明示的に指定された内容を、スイッチ装置８が認識可能な、転送条件の記述やパケットのヘッダの記述に書き換える。ｍａｔｃｈｅｓで明示的に指定された条件や、ｅｄｇｅ＿ａｃｔｉｏｎｓで明示的に指定された内容は、引き渡されたフロー情報内に含まれている。そして、エッジフロー変換手段５３は、それらの書き換え結果を、ポートへのパケット出力を示すフロー設定に変換する。エッジフロー変換手段５３は、そのフロー設定を、フロー情報とともに、スイッチ装置設定手段５５に引き渡す。
【００５７】
転送フロー変換手段５４は、グラフおよびフロー情報に基づいて、パケットの転送条件および転送先を特定し、その転送条件および転送先に適合するフロー設定を生成する処理を、スイッチ装置８毎に行う。転送フロー変換手段５４は、生成したフロー設定を、フロー情報とともに、スイッチ装置設定手段５５に引き渡す。
【００５８】
スイッチ装置設定手段５５は、エッジフロー変換手段５３によって生成されたフロー設定、および、転送フロー変換手段５４によって生成されたフロー設定を、対応するスイッチ装置８に対して順次、設定する（ステップＳ１６）。
【００５９】
本実施形態では、スイッチ制御手段３内で、スイッチ情報管理手段７が、スイッチ装置８の情報を蓄積し、各スイッチ装置８とネットワークモデルとの対応関係を管理する。そして、フロー設定手段６は、スイッチ情報管理手段７に蓄積されたスイッチ装置８の情報を利用し、ネットワークフロー表現に基づいてフロー設定を生成し、そのフロー設定をスイッチ装置８に対して設定する。すなわち、本実施形態において、スイッチ制御手段３は、ネットワークフロー表現を変換し、スイッチ装置への設定内容に反映する。従って、ネットワークモデルおよびネットワークフロー表現を導入した場合に、ネットワークフロー表現を利用して各スイッチ装置を制御することができる。
【００６０】
第１の実施形態において、スイッチ情報管理手段７に含まれる各手段、および、フロー設定手段６に含まれる各手段は、例えば、ネットワーク制御プログラムに従って動作するコンピュータのＣＰＵによって実現される。この場合、ＣＰＵは、例えば、コンピュータが備えるプログラム記憶装置からネットワーク制御プログラムを読み込み、そのネットワーク制御プログラムに従って、スイッチ情報管理手段７に含まれる各手段、および、フロー設定手段６に含まれる各手段として動作すればよい。
【００６１】
また、第１の実施形態において、スイッチ抽出・分類手段５２が、ネットワークフロー表現変換手段５１の前段で処理を行う構成であってもよい。この場合、スイッチ抽出・分類手段５２は、ネットワークモデルに含まれるトポロジおよびネットワークフロー表現を参照して、ネットワークフロー表現が表すフローの経路上のノードを、ネットワークフロー表現に明示的に登場するノードと、ネットワークフロー表現に明示的に登場しないノードとに分類する。また、ネットワークフロー表現変換手段５１は、既に説明したように変換を行いフロー情報を生成するとともに、スイッチ抽出・分類手段５２によって分類された各ノードを、それぞれ、ネットワーク４におけるスイッチ装置の識別情報に変換する。その他の点に関しては、上記の第１の実施形態と同様である。
【００６２】
実施形態２．
本発明の第２の実施形態は、フロー設定手段６（図１参照）に、非特許文献３で提案されているＳｏｕｒｃｅＦｌｏｗを適用する。
【００６３】
第２の実施形態では、第１の実施形態におけるフロー設定（条件に適合するパケットに対する処理内容を定めた情報）を、「フローエントリ設定」と記す。
【００６４】
図８は、フロー設定手段６に適用されるＳｏｕｒｃｅＦｌｏｗ（非特許文献３で提案された技術）を示す模式図である。図８において、スイッチ装置の近傍に示す数字は、ポートを表している。
【００６５】
図８に示す例では、ヘッダＨを持つパケット９００がスイッチ装置９１に到着すると、パケット９００が、スイッチ装置９１、スイッチ装置９２，スイッチ装置９４の順に転送され、スイッチ装置９４のポート２から出力されるように、スイッチ装置９１，９２，９４にフローエントリ設定が定められている。
【００６６】
スイッチ装置９１のフローエントリ設定９１０は、入力されたパケットに対するアクション（入力アクション）を定める。フローエントリ設定９１０は、パケットのヘッダと照合される条件として“Ｈ”を定めている。そして、フローエントリ設定９１０は、ヘッダの内容が“Ｈ”であるパケットに対して、インデックスカウンタ部の初期値“０”を設定し、次のスイッチ装置以降の各スイッチ装置における転送内容（言い換えると、転送動作）を定義した識別子の系列［４，２ｈ］をヘッダに埋め込むことでヘッダを書き換え、転送経路上の次のスイッチ装置９２に接続されたポート２から、そのパケットを出力することを規定している。なお、［４，２ｈ］における“４”，“２ｈ”はそれぞれ、スイッチ装置９２，９４での転送内容を定義する識別子である。“４”は、ポート４からの出力を意味する。“２ｈ”は、ヘッダを元の状態に復元し、ポート２から出力することを意味する。スイッチ装置９１は、ヘッダの内容が“Ｈ”であるパケットが入力されると、そのパケットに対して、フローエントリ設定９１０で規定された処理を実行する。
【００６７】
図８に示す例では、スイッチ装置９２は、パケット転送を行うコアノードとなるため、インデックスカウンタ部に応じた転送内容を定義した識別子とともに、その転送内容を記述したフローエントリ設定（図８に示す例では、フローエントリ設定９２０）が設定される。コアノードのフローエントリ設定の条件では、インデックスカウンタ部に応じた転送内容を定義した識別子以外の識別子は、ワイルドカードで表される（図８に示すフローエントリ設定９２０参照）。なお、コアノードとは、ネットワークのエッジノード同士を接続させる基幹網に含まれるスイッチ装置である。フローから見ると、フローの経路上のスイッチ装置のうち、その経路の両端がエッジノードとなり、その他のノードがコアノードになる。
【００６８】
パケット９００のヘッダには、スイッチ装置９１によって（０，［４，２ｈ］）が埋め込まれている。ヘッダに埋め込まれた（０，［４，２ｈ］）は、図８で、フローエントリ設定９２０の１行目に示した条件に合致する。従って、スイッチ装置９２は、パケット９００を受信すると、インデックスカウンタ部の値をインクリメントした後、転送内容を定義した識別子で指定されたポート４からそのパケットを出力する。
【００６９】
スイッチ装置９４には、フローの終端となる出力アクションを実現するフローエントリ設定９４０が設定されている。フローの終端となるスイッチ装置のフローエントリ設定においても、インデックスカウンタ部に応じた転送内容を定義した識別子以外の識別子は、ワイルドカードで表される（図８に示すフローエントリ設定９４０参照）。スイッチ装置９４は、フローエントリ設定９４０の条件に合致するパケットを受信すると、ヘッダ部に埋め込まれた部分を除外することによってヘッダ部の内容を元の“Ｈ”に復元し、フローエントリ設定９４０で指定されているポート２から、そのパケットを出力する。
【００７０】
図９は、本発明のネットワーク制御装置の第２の実施形態の構成例を示すブロック図である。第１の実施形態の要素と同一の要素に関しては、第１の実施形態における符号と同一の符号を付し、説明を省略する。
【００７１】
第２の実施形態におけるネットワーク制御装置１０ａは、ネットワーク内のスイッチ装置８を制御するスイッチ制御手段３ａと、ネットワークＤＢ記憶手段２と、情報登録手段１とを備える。ネットワークＤＢ記憶手段２および情報登録手段１は、第１の実施形態におけるネットワークＤＢ記憶手段２および情報登録手段１と同様である。
【００７２】
スイッチ制御手段３ａは、スイッチ情報管理手段７と、フロー設定手段６ａとを備える。スイッチ情報管理手段７は、スイッチ情報収集手段４１と、スイッチ情報蓄積手段４２と、モデル変換管理手段４３とを備える。スイッチ情報管理手段７、スイッチ情報収集手段４１、スイッチ情報蓄積手段４２およびモデル変換管理手段４３は、第１の実施形態におけるスイッチ情報管理手段７、スイッチ情報収集手段４１、スイッチ情報蓄積手段４２およびモデル変換管理手段４３と同様である。
【００７３】
フロー設定手段６ａは、共通フロー設定手段６１と、個別フロー設定手段６２とを備える。
【００７４】
共通フロー設定手段６１は、コアノードに該当するスイッチ装置８のフローエントリ設定を生成し、そのフローエントリ設定をスイッチ装置８に設定する。
【００７５】
個別フロー設定手段６２は、ネットワークフロー表現に明示的に登場するスイッチ装置８のフローエントリを生成し、そのフローエントリ設定をスイッチ装置８に設定する。
【００７６】
次に、共通フロー設定手段６１の構成および動作を説明する。図１０は、共通フロー設定手段６１の構成例を示すブロック図である。図９に示す要素と同一の要素に関しては、図９と同一の符号を付し説明を省略する。図１１は、共通フロー設定手段６１の処理経過の例を示すフローチャートである。共通フロー設定手段６１は、スイッチ装置分類手段７１と、コアフロー生成手段７２と、共通スイッチ装置設定手段７３とを備える。
【００７７】
スイッチ装置分類手段７１は、スイッチ情報蓄積手段４２に記憶されているスイッチ装置８間の接続関係を示す情報を読み込み、その情報に基づいて、コアノードに該当するスイッチ装置８を分類する（ステップＳ２１）。そして、スイッチ装置分類手段７１は、コアノードに該当するスイッチ装置８に関する情報をコアフロー生成手段７２に引き渡す。
【００７８】
コアフロー生成手段７２は、コアノードに該当するスイッチ装置８毎に、転送内容（言い換えると、転送動作）を表す識別子を生成し、その識別子を保持する（ステップＳ２２）。具体的には、コアフロー生成手段７２は、コアノードに該当する各スイッチ装置８について、ポート毎に、ポートからパケットを出力するアクションを表す識別子を生成し、保持する。図８に示すスイッチ装置９２を例にすると、ポート４からパケットを出力するアクションを表す識別子として“４”を生成し、ポート３からパケットを出力するアクションを表す識別子として“３”を生成する。
【００７９】
次に、コアフロー生成手段７２は、コアノードに該当するスイッチ装置８毎に、フローエントリ設定を生成する（ステップＳ２３）。具体的には、コアフロー生成手段７２は、識別子の系列においてインデックスカウンタ部の値に応じた位置に識別子を記述することによってパケットに対する条件を表し、その条件に合致するパケットに対してその識別子に対応する動作（ポートからの出力）と、インデックスカウンタ部の値のインクリメントを規定したフローエントリ設定を生成する。コアフロー生成手段７２は、この条件とアクションの組み合わせを、インデックスカウンタ部の各値に対して定める。図８に示すフローエントリ設定９２０では、インデックスカウンタ部の値が０である場合の条件およびアクションと、インデックスカウンタ部の値が１である場合の条件およびアクションを例示している。コアフロー生成手段７２は、生成した各フローエントリ設定を共通スイッチ装置設定手段７３に引き渡す。
【００８０】
共通スイッチ装置設定手段７３は、ステップＳ２３で生成されたフローエントリ設定を、対応するスイッチ装置８に設定する（ステップＳ２４）。ステップＳ２４でフローエントリ設定が設定されるスイッチ装置８は、コアノードに該当するスイッチ装置８である。
【００８１】
次に、個別フロー設定手段６２の構成および動作を説明する。図１２は、個別フロー設定手段６２の構成例を示すブロック図である。図１０に示す要素と同一の要素に関しては、図１０と同一の符号を付し説明を省略する。図１３は、個別フロー設定手段６２の処理経過の例を示すフローチャートである。個別フロー設定手段６２は、ネットワークフロー表現変換手段８１と、入力アクション生成手段８２と、出力アクション生成手段８３と、個別スイッチ装置設定手段８４とを備える。
【００８２】
ネットワークフロー表現変換手段８１は、ネットワークフロー表現に明示的に登場するノード、ポート、リンクを、ネットワーク４におけるスイッチ装置、ポート、スイッチ装置間の接続関係の識別情報に変換する（ステップＳ３１）。具体的には、ネットワークフロー表現変換手段８１は、ネットワークフロー表現に明示的に登場するノード、ポート、リンクに対応する、ネットワーク４におけるスイッチ装置、ポート、スイッチ装置間の接続関係の識別情報（換言すれば、スイッチ情報蓄積手段４２に登録されているスイッチ装置、ポート、接続関係の識別情報）を、モデル変換管理手段４３に照会し、ネットワーク４におけるスイッチ装置、ポート、スイッチ装置間の接続関係の識別情報を得る。そして、ネットワークフロー表現変換手段８１は、ネットワークフロー表現に明示的に登場するノード、ポート、リンクをそれらの識別情報に変換する。
【００８３】
そして、ネットワークフロー表現変換手段８１は、ｍａｔｃｈｅｓに現れているスイッチ装置８の情報を、ステップＳ３１での変換後のｐａｔｈとともに、入力アクション生成手段８２に引き渡す。
【００８４】
また、ネットワークフロー表現変換手段８１は、ｅｄｇｅ＿ａｃｔｉｏｎｓで現れているスイッチ装置８の情報を出力アクション生成手段８３に引き渡す。
【００８５】
次に、出力アクション生成手段８３は、パケットヘッダをフローの起点となるスイッチ装置８にパケットが入力された時の状態に復元するようにヘッダの書き換えを行った後に、ｅｄｇｅ＿ａｃｔｉｏｎで定義された処理を実行するというアクションを表す識別子を生成する（ステップＳ３２）。図８に示す例では、フローエントリ設定９４０に記述されている“２ｈ”が、ステップＳ３２で生成される識別子に該当する。前述のように、図８に示す例において、“２ｈ”は、ヘッダを元の状態に復元し、ポート２から出力することを意味する。
【００８６】
次に、出力アクション生成手段８３は、ｅｄｇｅ＿ａｃｔｉｏｎｓで現れているスイッチ装置８（フローの経路の終端点となるスイッチ装置８）に対応するフローエントリ設定を生成する（ステップＳ３３）。出力アクション生成手段８３は、フローの経路の終端点に対応するインデックスカウンタ部の値を特定する。そして、出力アクション生成手段８３は、識別子の系列において、その値に応じた位置にステップＳ３２で生成した識別子を記述することによってパケットに対する条件を表し、その条件に合致するパケットに対してその識別子に対応する動作を規定したフローエントリ設定を生成する。ステップＳ３２で生成した識別子に対応する動作とは、パケットヘッダをフローの起点となるスイッチ装置８にパケットが入力された時の状態に復元するようにヘッダの書き換えを行った後に、ｅｄｇｅ＿ａｃｔｉｏｎで定義された処理を実行するという動作である。図８に示す例では、フローエントリ設定９４０の１行目に記載された内容が、ステップＳ３３で生成されるフローエントリ設定に該当する。フローエントリ設定９４０（図８参照）の１行目において、“−＞Ｈ”は、ヘッダを元の状態に復元することを意味する。
【００８７】
出力アクション生成手段８３は、生成したフローエントリ設定を個別スイッチ装置設定手段８４に引き渡す。
【００８８】
次に、入力アクション生成手段８２は、コアフロー生成手段７２が保持している各スイッチ装置８の識別子を参照し、ｐａｔｈの経路に対応する識別子の系列を生成し、ステップＳ３２で生成された識別子を末尾に追加する（ステップＳ３４）。ステップＳ３２で生成された識別子は、パケットヘッダをフローの起点となるスイッチ装置８にパケットが入力された時の状態に復元するようにヘッダの書き換えを行った後に、ｅｄｇｅ＿ａｃｔｉｏｎで定義された処理を実行するというアクションを表す。図８に示す例では、上述の「ｐａｔｈの経路に対応する識別子の系列」は、［４］である。また、この系列の末尾に、ステップＳ３２で生成された識別子を追加した系列は、［４，２ｈ］である。
【００８９】
次に、入力アクション生成手段８２は、ｍａｔｃｈｅｓで現れているスイッチ装置８（フローの経路の起点となるスイッチ装置８）に対応するフローエントリ設定を生成する（ステップＳ３５）。入力アクション生成手段８２は、ｍａｔｃｈｅｓで指定された条件とともに、アクションとして、初期値を“０”とするインデックスカウンタ部と、ステップＳ３４で生成した識別子の系列を、その条件に合致するパケットのヘッダに埋め込むことによってヘッダを書き換える等の処理を規定したフローエントリ設定を生成する。入力アクション生成手段８２は、条件に合致するパケットを、フローの経路を実現するためのポートから出力するという処理も、フローエントリ設定のアクションで規定する。図８に示す例では、フローエントリ設定９１０の１行目に記載された内容が、ステップＳ３５で生成されるフローエントリ設定に該当する。フローエントリ９１０（図８参照）の１行目において、“−＞（０，［４，２ｈ］）”は、ヘッダに“（０，［４，２ｈ］）”を埋め込むことを意味する。
【００９０】
入力アクション生成手段８２は、生成したフローエントリ設定を個別スイッチ装置設定手段８４に引き渡す。
【００９１】
個別スイッチ装置設定手段８４は、出力アクション生成手段８３によって生成されたフローエントリ設定を、ｅｄｇｅ＿ａｃｔｉｏｎｓで現れているスイッチ装置８に対して設定する。また、個別スイッチ装置設定手段８４は、入力アクション生成手段８２によって生成されたフローエントリ設定を、ｍａｔｃｈｅｓで現れているスイッチ装置８に対して設定する（ステップＳ３６）。
【００９２】
この結果、図８に示すように、フローの条件に合致するパケットは、フローの経路の起点となるスイッチ装置８でヘッダを書き換えられ、フローの経路に沿って順次、コアノードに転送され、終端点となるスイッチ装置８でヘッダを復元され、ｅｄｇｅ＿ａｃｔｉｏｎで定義された処理が施される。
【００９３】
第２の実施形態においても、第１の実施形態と同様に、ネットワークモデルおよびネットワークフロー表現を導入した場合に、ネットワークフロー表現を利用して各スイッチ装置を制御することができる。
【００９４】
また、第２の実施形態では、フロー設定手段６ａに非特許文献３で提案されている技術（ＳｏｕｒｃｅＦｌｏｗ）を適用しているが、ネットワークＤＢ記憶手段２に記憶されるネットワークモデルは、第１の実施形態と同様である。従って、ネットワークフロー表現を登録する情報登録手段１のアプリケーションの改変は不要である。すなわち、情報登録手段１のアプリケーションを改変することなく、フロー設定手段６を、ＳｏｕｒｕｃｅＦｌｏｗを適用したフロー設定手段６ａに置き換えることができる。そして、非特許文献３で提案されている技術を適用することによって、スイッチ装置８に必要とされるフローエントリ数の削減等の効果が得られる。
【００９５】
また、第２の実施形態では非特許文献３で提案されている技術を適用する場合を示したが、他のフロー転送技術を適用してもよい。この場合にも、情報登録手段１のアプリケーションを改変することなく、フロー転送技術を適用することができる。
【００９６】
第２の実施形態において、スイッチ情報管理手段７に含まれる各手段、および、フロー設定手段６ａに含まれる各手段は、例えば、ネットワーク制御プログラムに従って動作するコンピュータのＣＰＵによって実現される。この場合、ＣＰＵは、例えば、コンピュータが備えるプログラム記憶装置からネットワーク制御プログラムを読み込み、そのネットワーク制御プログラムに従って、スイッチ情報管理手段７に含まれる各手段、および、フロー設定手段６ａに含まれる各手段として動作すればよい。
【００９７】
次に、本発明の主要部について説明する。図１４は、本発明の主要部を示すブロック図である。本発明のネットワーク制御装置は、ネットワークデータベース記憶手段１０１と、スイッチ制御手段１０２とを備える。
【００９８】
ネットワークデータベース記憶手段１０１（例えば、ネットワークＤＢ記憶手段２）は、ネットワークを表現したトポロジ情報と、そのネットワークでのデータ転送ルールを表現したネットワークフロー情報（例えば、ネットワークフロー表現）とを記憶する。
【００９９】
スイッチ制御手段１０２（例えば、スイッチ制御手段３，３ａ）は、ネットワークに含まれる各スイッチ装置をノードとしてトポロジ情報を生成してネットワークデータベース記憶手段１０１に記憶させ、ネットワークデータベース記憶手段１０１に記憶されているネットワークフロー情報に基づいて、各スイッチ装置の動作を規定したスイッチフロー情報（例えば、フロー設定）を生成し、スイッチフロー情報を各スイッチ装置に設定する。
【０１００】
上記の実施形態の一部または全部は、以下の付記のようにも記載され得るが、以下に限定されるわけではない。
【０１０１】
（付記１）ネットワークを表現したトポロジ情報と、前記ネットワークでのデータ転送ルールを表現したネットワークフロー情報（例えば、ネットワークフロー表現）とを記憶するネットワークデータベース記憶手段（例えば、ネットワークＤＢ記憶手段２）と、前記ネットワークに含まれる各スイッチ装置をノードとして前記トポロジ情報を生成して前記ネットワークデータベース記憶手段に記憶させ、前記ネットワークデータベース記憶手段に記憶されているネットワークフロー情報に基づいて、前記各スイッチ装置の動作を規定したスイッチフロー情報（例えば、フロー設定）を生成し、前記スイッチフロー情報を前記各スイッチ装置に設定するスイッチ制御手段（例えば、スイッチ制御手段３，３ａ）とを備えることを特徴とするネットワーク制御装置。
【０１０２】
（付記２）スイッチ制御手段は、ネットワークに含まれる各スイッチ装置と、当該各スイッチ装置間のリンクとを検出し、トポロジ情報を生成し、当該トポロジ情報をネットワークデータベース記憶手段に記憶させるスイッチ情報管理手段（例えば、スイッチ情報管理手段７）と、ネットワークフロー情報と、前記スイッチ情報管理手段に検出された各スイッチ装置およびリンクとに基づいて、スイッチフロー情報を生成し、前記スイッチフロー情報を前記各スイッチ装置に設定するフロー設定手段（例えば、フロー設定手段６，６ａ）とを含む付記１に記載のネットワーク制御装置。
【０１０３】
（付記３）スイッチ情報管理手段は、ネットワークに含まれる各スイッチ装置と、当該各スイッチ装置間のリンクとを検出するスイッチ情報収集手段（例えば、スイッチ情報収集手段４１）と、前記スイッチ情報収集手段に検出された各スイッチ装置およびリンクの情報を記憶するスイッチ情報蓄積手段（例えば、スイッチ情報蓄積手段４２）と、前記スイッチ情報蓄積手段に蓄積された前記各スイッチ装置およびリンクの情報に基づいて、トポロジ情報を生成し、前記スイッチ情報収集手段に検出された各スイッチ装置およびリンクと、トポロジ情報内で表現された各ノードおよびリンクとの対応関係を示す対応関係情報を保持する対応関係管理手段（例えば、モデル変換管理手段４３）とを有する付記２に記載のネットワーク制御装置。
【０１０４】
（付記４）フロー設定手段は、対応関係情報を参照して、ネットワークフロー情報内で表現された各ノードおよびリンクを、スイッチ情報収集手段に検出された各スイッチ装置およびリンクを示す情報に変換するネットワークフロー情報変換手段（例えば、ネットワークフロー表現変換手段５１）と、スイッチ情報収集手段に検出された各スイッチ装置から、ネットワークフロー情報に明示的に登場する第１のスイッチ装置と、前記ネットワークフロー情報が示す経路上のスイッチ装置であって前記ネットワークフロー情報に明示的に登場しない第２のスイッチ装置とを分類する分類手段（例えば、スイッチ抽出・分類手段５２）と、第１のスイッチ装置として分類されたスイッチ装置に対するスイッチフロー情報として、フローのエッジでの動作を規定したスイッチフロー情報を生成する第１のスイッチフロー情報生成手段（例えば、エッジフロー変換手段５３）と、第２のスイッチ装置として分類されたスイッチ装置に対するスイッチフロー情報として、データの転送先となるスイッチ装置に前記データを転送することを規定したスイッチフロー情報を生成する第２のスイッチフロー情報生成手段（例えば、転送フロー変換手段５４）と、前記第１のスイッチフロー情報生成手段に生成されたスイッチフロー情報、および、前記第２のスイッチフロー情報生成手段に生成されたスイッチフロー情報を、それぞれ、対応するスイッチ装置に設定するスイッチ装置設定手段（例えば、スイッチ装置設定手段５５）とを有する付記３に記載のネットワーク制御装置。
【０１０５】
（付記５）スイッチ情報収集手段は、ネットワークに含まれる各スイッチ装置と通信を行い、前記各スイッチ装置から、前記各スイッチ装置間のリンクを検出する付記３または付記４に記載のネットワーク制御装置。
【０１０６】
（付記６）スイッチ情報収集手段は、ネットワークの構成を管理するネットワーク管理システムから、各スイッチ装置間のリンクの情報を収集する付記３または付記４に記載のネットワーク制御装置。
【０１０７】
（付記７）スイッチ情報管理手段は、検出した各スイッチ装置およびリンクと、トポロジ情報内で表現された各ノードおよびリンクとの対応関係を示す対応関係情報を保持し、フロー設定手段は、前記スイッチ情報管理手段に検出された各スイッチ装置およびリンクの情報を参照し、ネットワークに含まれる各スイッチ装置のうち、コアノードに該当するスイッチ装置に対するスイッチフロー情報を生成し、前記スイッチフロー情報を前記スイッチ装置に設定する共通フロー設定手段（例えば、共通フロー設定手段６１）と、ネットワークフロー情報と、前記対応関係情報と、前記共通フロー設定手段に生成されたスイッチフロー情報とに基づいて、前記ネットワークフロー情報が示す経路の起点となるスイッチ装置に対するスイッチフロー情報を生成し、前記スイッチフロー情報を前記スイッチ装置に設定し、前記経路の終端点となるスイッチ装置に対するスイッチフロー情報を生成し、前記スイッチフロー情報を前記スイッチ装置に設定する個別フロー設定手段（例えば、個別フロー設定手段６２）とを有する付記２に記載のネットワーク制御装置。
【０１０８】
（付記８）共通フロー設定手段は、スイッチ情報管理手段に検出された各スイッチ装置およびリンクの情報を参照し、ネットワークに含まれる各スイッチ装置からコアノードに該当するスイッチ装置を分類するスイッチ装置分類手段（例えば、スイッチ装置分類手段７１）と、コアノードに該当するスイッチ装置に対して、当該スイッチ装置のポートからデータを出力することを規定したスイッチフロー情報を生成するコアノード用スイッチフロー情報生成手段（例えば、コアフロー生成手段７２）と、前記スイッチフロー情報を、対応するスイッチ装置に設定する共通スイッチ装置設定手段（例えば、共通スイッチ装置設定手段７３）とを有する付記７に記載のネットワーク制御装置。
【０１０９】
（付記９）対応関係情報を参照して、ネットワークフロー情報内で表現された各ノードおよびリンクを、スイッチ情報収集手段に検出された各スイッチ装置およびリンクを示す情報に変換し、経路の起点に該当するスイッチ装置と、終端点に該当するスイッチ装置とを特定するネットワークフロー情報変換手段（例えば、ネットワークフロー表現変換手段８１）と、前記終端点に該当するスイッチ装置の動作を規定したスイッチフロー情報を生成する終端点用スイッチフロー情報生成手段（例えば、出力アクション生成手段８３）と、コアノード用スイッチフロー情報生成手段によって生成されたスイッチフロー情報および前記終端点用スイッチフロー情報生成手段によって生成されたスイッチフロー情報を参照して、前記起点に該当するスイッチ装置の動作を規定したスイッチフロー情報を生成する起点用スイッチフロー情報生成手段（例えば、入力アクション生成手段８２）と、前記終端点用スイッチフロー情報生成手段によって生成されたスイッチフロー情報を前記終端点に該当するスイッチ装置に設定し、前記起点用スイッチフロー情報生成手段によって生成されたスイッチフロー情報を前記起点に該当するスイッチ装置に設定する個別スイッチ装置設定手段（例えば、個別スイッチ装置設定手段８４）とを有する付記８に記載のネットワーク制御装置。
【０１１０】
（付記１０）フロー設定手段は、ネットワークデータベース記憶手段に記憶されたトポロジ情報およびネットワークフロー情報を参照し、前記ネットワークフロー情報に明示的に登場する第１のノードと、前記ネットワークフロー情報が示す経路上のノードであって前記ネットワークフロー情報に明示的に登場しない第２のノードに分類する分類手段と、対応関係情報を参照して、第１のノードとして分類された各ノードおよび第２のノードとして分類された各ノードを、スイッチ情報収集手段に検出された各スイッチ装置を示す情報に変換するネットワークフロー情報変換手段と、第１のノードに対応する各スイッチ装置に対するスイッチフロー情報として、フローのエッジでの動作を規定したスイッチフロー情報を生成する第１のスイッチフロー情報生成手段と、第２のノードに対応する各スイッチ装置に対するスイッチフロー情報として、データの転送先となるスイッチ装置に前記データを転送することを規定したスイッチフロー情報を生成する第２のスイッチフロー情報生成手段と、前記第１のスイッチフロー情報生成手段に生成されたスイッチフロー情報、および、前記第２のスイッチフロー情報生成手段に生成されたスイッチフロー情報を、それぞれ、対応するスイッチ装置に設定するスイッチ装置設定手段とを有する付記３に記載のネットワーク制御装置。
【０１１１】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１１２】
この出願は、２０１３年１１月２０日に出願された日本特許出願２０１３−２４０１７７を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用の可能性】
【０１１３】
本発明は、ネットワークを制御するネットワーク制御装置に好適に適用される。
【符号の説明】
【０１１４】
１０，１０ａ  ネットワーク制御装置
１  情報登録手段
２  ネットワークＤＢ記憶手段
３  スイッチ制御手段
６，６ａ  フロー設定手段
７  スイッチ情報管理手段
４１  スイッチ情報収集手段
４２  スイッチ情報蓄積手段
４３  モデル変換管理手段
５１  ネットワークフロー表現変換手段
５２  スイッチ抽出・分類手段
５３  エッジフロー変換手段
５４  転送フロー変換手段
５５  スイッチ装置設定手段
６１  共通フロー設定手段
６２  個別フロー設定手段
７１  スイッチ装置分類手段
７２  コアフロー生成手段
７３  共通スイッチ装置設定手段
８１  ネットワークフロー表現変換手段
８２  入力アクション生成手段
８３  出力アクション生成手段
８４  個別スイッチ装置設定手段
【図１】
0006524911.tif 000002
【図２】
0006524911.tif 000003
【図３】
0006524911.tif 000004
【図４】
0006524911.tif 000005
【図５】
0006524911.tif 000006
【図６】
0006524911.tif 000007
【図７】
0006524911.tif 000008
【図８】
0006524911.tif 000009
【図９】
0006524911.tif 000010
【図１０】
0006524911.tif 000011
【図１１】
0006524911.tif 000012
【図１２】
0006524911.tif 000013
【図１３】
0006524911.tif 000014
【図１４】
0006524911.tif 000015