(57)【要約】【課題】仮想ネットワーク間でトラフィック処理規則の衝突を事前に回避するネットワークシステムを提供する。【解決手段】ネットワークシステムは、物理ノードと、第一の制御装置と、第二の制御装置と、を含む。物理ノードは、通信トラヒックを処理するための処理規則に基づいて、当該処理規則に含まれる識別条件により識別される通信トラヒックを処理する。第一の制御装置は、物理ノードを用いて複数の仮想ネットワークを構築する。第二の制御装置は、複数の仮想ネットワークの各々に割り当てられる。第一の制御装置は、所定の条件に基づいて、識別条件として使用可能な識別子の集合を複数の仮想ネットワークの各々に割り当て、割り当てた識別子の集合を第二の制御装置に通知する。【選択図】図１
2018093245.tif 000002
【特許請求の範囲】
【請求項１】
通信トラヒックを処理するための処理規則に基づいて、当該処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードと、
前記物理ノードを用いて複数の仮想ネットワークを構築する第一の制御装置と、
前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置と、を含み、
前記第一の制御装置は、
所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当て、
割り当てた前記識別子の集合を前記第二の制御装置に通知する、ネットワークシステム。
【請求項２】
前記第一又は第二の制御装置は、
前記物理ノードに含まれる通信インターフェースごとに、当該通信インターフェースにおいて使用可能な前記識別子の集合を算出し、
算出した前記識別子の集合を前記通信インターフェースに関連付けて管理する、請求項１に記載のネットワークシステム。
【請求項３】
前記第一又は第二の制御装置は、
前記物理ノードの通信インターフェースにおいて使用可能な前記識別子に基づいて、当該物理ノードを用いて構築される仮想ネットワークにおいて使用可能な前記識別子の集合を算出し、
算出した前記識別子の集合を、前記物理ノードを用いて構築された前記仮想ネットワークに関連付けて管理する、請求項１又は２に記載のネットワークシステム。
【請求項４】
前記第一又は第二の制御装置は、
前記物理ノードの通信インターフェースにおいて使用可能な前記識別子の集合の和集合又は積集合に基づいて、当該物理ノードを用いて構築される仮想ネットワークにおいて使用可能な前記識別子の集合を算出する、請求項３に記載のネットワークシステム。
【請求項５】
前記第一又は第二の制御装置は、
前記仮想ネットワークに対応する第一の通信ネットワークに含まれる物理ノードの通信インターフェースのうち、第二の通信ネットワークと接続する所定の通信インターフェースにおいて使用可能な前記識別子の集合を算出し、
算出した前記識別子の集合を前記所定の通信インターフェースと関連付けて管理する、請求項２に記載のネットワークシステム。
【請求項６】
前記第一又は第二の制御装置は、
前記第一の通信ネットワークに含まれる物理ノードの所定の通信インターフェースにおいて使用可能な前記識別子の集合の和集合又は積集合に基づいて、当該物理ノードを用いて構築される仮想ネットワークにおいて使用可能な前記識別子の集合を算出する、請求項５に記載のネットワークシステム。
【請求項７】
前記第一の制御装置は、
前記仮想ネットワークに収容すべき通信トラヒックを識別する前記識別条件を予め保持し、
予め保持する前記識別条件に基づいて、前記仮想ネットワークにおいて使用可能な前記識別子の集合を管理する、請求項１乃至６のいずれか一項に記載のネットワークシステム。
【請求項８】
前記第一の制御装置は、
前記複数の仮想ネットワークの各々において使用可能な前記識別子の集合が互いに重複する場合に、前記重複する当該識別子の集合を、当該複数の仮想ネットワークの各々が当該識別子として使用できない使用禁止の識別子の集合として設定する、請求項１乃至７のいずれか一項に記載のネットワークシステム。
【請求項９】
前記第一の制御装置は、
前記複数の仮想ネットワークの各々において使用可能な前記識別子の集合が互いに重複する場合に、前記重複する集合に含まれる所定の識別子を、前記複数の仮想ネットワークのうち優先度の高い仮想ネットワークにおいて使用可能な識別子として設定する、請求項１乃至８のいずれか一項に記載のネットワークシステム。
【請求項１０】
前記第一の制御装置は、
前記複数の仮想ネットワークの各々において使用可能な前記識別子の集合が互いに重複する場合に、前記重複する集合に含まれる所定の識別子を、当該所定の識別子を含む前記処理規則が最初に割り当てられた仮想ネットワークにおいて使用可能な識別子として設定する、請求項１乃至９のいずれか一項に記載のネットワークシステム。
【請求項１１】
前記第一の制御装置は、
前記所定の識別子を、当該所定の識別子を含む前記処理規則が割り当てられた前記仮想ネットワーク以外の仮想ネットワークが使用できない識別子として設定する、請求項９又は１０に記載のネットワークシステム。
【請求項１２】
前記第一の制御装置は、
前記複数の仮想ネットワークの各々において使用可能な前記識別子の集合を、前記複数の仮想ネットワークごとに独立するように算出する、請求項１乃至１１のいずれか一項に記載のネットワークシステム。
【請求項１３】
前記第一又は第二の制御装置は、
前記処理規則の設定の要求を受信した場合に、設定を要求された当該処理規則に含まれる識別子が当該処理規則の識別条件として使用可能な識別子の集合に含まれないことに応じて、当該処理規則を設定できない旨を示す拒否通知を送信する、請求項１乃至１２のいずれか一項に記載のネットワークシステム。
【請求項１４】
前記第一又は第二の制御装置は、
前記処理規則の設定の要求を受信した場合に、設定を要求された当該処理規則に含まれる識別子を、当該処理規則の識別条件として使用可能な識別子の集合に含まれる識別子に変更する、請求項１乃至１３のいずれか一項に記載のネットワークシステム。
【請求項１５】
通信トラヒックを処理するための処理規則に基づいて、当該処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードを制御する制御装置であって、
前記物理ノードを用いて複数の仮想ネットワークを構築し、
所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当て、
割り当てた前記識別子の集合を、前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置に通知する、制御装置。
【請求項１６】
通信トラヒックを処理するための処理規則に基づいて、当該処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードの制御方法であって、
前記物理ノードを用いて複数の仮想ネットワークを構築するステップと、
所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当てるステップと、
割り当てた前記識別子の集合を、前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置に通知するステップと、
を含む制御方法。
【請求項１７】
通信トラヒックを処理するための処理規則に基づいて、当該処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードを制御する制御装置に搭載されたコンピュータに実行させるプログラムであって、
前記物理ノードを用いて複数の仮想ネットワークを構築する処理と、
所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当てる処理と、
割り当てた前記識別子の集合を、前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置に通知する処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステム、制御装置、制御方法及びプログラムに関し、特に、制御装置からの指示に従ってパケットを転送する機器によって構成されるネットワークにおけるネットワークシステム、制御装置、制御方法及びプログラムに関する。
【背景技術】
【０００２】
非特許文献１、２に示すとおり、近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。転送ノードとして機能するオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するルール（ＦｌｏｗＫｅｙ；マッチングキー）と、処理内容を定義したアクション（Ａｃｔｉｏｎ）と、フロー統計情報（Ｓｔａｔｓ）との組が定義される。
【０００３】
例えば、オープンフロースイッチは、最初のパケット（ｆｉｒｓｔ  ｐａｃｋｅｔ）を受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するルール（ＦｌｏｗＫｅｙ）を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、受信パケットに対して、当該エントリのアクションフィールドに記述された処理内容を実施する。一方、前記検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対して受信パケットを転送し、受信パケットの送信元・送信先に基づいたパケットの経路の決定を依頼し、これを実現するフローエントリを受け取ってフローテーブルを更新する。
【０００４】
また、前述のようにオープンフロースイッチはオープンフローコントローラからのフローエントリ設定によってパケットの処理方法を決定する。特に指定されたインターフェースへパケットを出力するＯＵＴＰＵＴが処理方法として多用されるが、この時指定されるポートは物理的なインターフェースに限らない。
【０００５】
このようにオープンフローはオープンフローコントローラによるオープンフロースイッチの制御によって、トラフィックの制御をマッチ条件によって規定される処理規則の集合として定義することで実現する。
【０００６】
また、オープンフローを用いて構成されるネットワークを仮想化し、多様なニーズに対応するための技術が提案されている。
【０００７】
非特許文献３は複数のオープンフローコントローラによってトラフィック制御を行うスライシング技術について開示しており、共通のオープンフローネットワークを複数の運用者が独立して運用することを可能にしている。非特許文献３では、ＦｌｏｗＶｉｓｏｒと呼ばれる特殊なオープンフローコントローラが一つのオープンフロースイッチと複数のオープンフローコントローラの間の仲介をすることによって複数のポリシーによって一つのオープンフロースイッチを制御することを可能にしている。ＦｌｏｗＶｉｓｏｒには各オープンフローコントローラが収容すべきトラフィックの識別情報が登録されており、その情報に従ってオープンフロースイッチからの処理規則要求の振り分けや、オープンフローコントローラから指示された処理規則の排他制御を行うことでポリシー間の衝突を回避している。この技術によって共通のオープンフローネットワークから仮想的に複数のネットワークを切り出してユーザーに提供することが可能となる。
【０００８】
特許文献１はオープンフローコントローラの制御負荷を削減する技術を開示しており、オープンフローネットワークを階層化する技術について記述がある。特許文献１において、一つ以上のオープンフローネットワークが存在する場合、物理的なオープンフローネットワークを制御する各オープンフローコントローラ（以降下位コントローラと記述）をさらに制御する上位のオープンフローコントローラ（以降上位コントローラと記述）を備える構成が記載されている。各下位コントローラは自身が制御するネットワークを一つの仮想的なスイッチとして上位コントローラに通知し、上位コントローラからのフロー制御を受け取ることによってネットワークの階層化を実現し、複数のオープンフローネットワークを一つのネットワークとして統合し、制御する構成を示している。
【０００９】
非特許文献４は上記非特許文献３、特許文献１に記載のスライシング、階層化を含む複数の仮想化技術を組み合わせてオープンフローネットワークに適用するアーキテクチャーについて開示している。非特許文献４ではネットワークの仮想化を行うコンポーネントとして、Ａｇｇｒｅｇａｔｏｒ（縮約機能）、Ｓｌｉｃｅｒ（切り出し機能）、Ｆｅｄｅｒａｔｏｒ（結合機能）を定義しており、これらを再帰的にネットワークへ適用することで物理的なオープンフロースイッチで構成されるネットワークを多様な構成に変換し制御するアーキテクチャーを提案している。
【００１０】
また、非特許文献５は上記非特許文献４で記述されているアーキテクチャーをオープンフローネットワークだけでなく、ＶＸＬＡＮ（Virtual eXtensible Local Area Network）など他のネットワーク制御技術上で実現する技術を開示している。
【００１１】
さらに、上記仮想化技術をネットワークに適用する際に問題となる、トラフィック処理規則の検証手段についても提案がなされている。
【００１２】
非特許文献６はオープンフローネットワークに設定されたトラフィック処理規則によって対象のトラフィックが指定通り転送されることを検証する技術について開示している。非特許文献６ではトラフィック処理規則中のトラフィック識別条件に該当するパケットヘッダの集合を幾何学的に識別子空間として表現する。そして転送経路上のオープンフロースイッチに設定されるトラフィック処理規則の識別子空間が一致するか、もしくは共通部分空間を持つかを検査することで想定通りのトラフィック制御が実現されるか検証している。また、既に設定済みの他のトラフィック処理規則と識別子空間が競合するか否かを同時に検査することによって、ネットワーク全体として意図したトラフィック制御が行われていることを検証している。
【００１３】
非特許文献７には仮想ネットワークにおいて設定したトラフィック処理規則が意図したとおりに設定されているか、他の仮想ネットワークにおけるトラフィック処理規則と衝突を生じないかを検証する技術についての記述がある。トラフィック処理規則に使用できるトラフィック識別条件を二分決定木で表現し、設定済みのトラフィック処理規則中のトラフィック識別条件が使用可能な範囲を逸脱していないかを検査することでトラフィック処理規則の有効性検証を行っている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特表２０１３−５２２９３４号公報
【非特許文献】
【００１５】
【非特許文献１】Nick McKeownほか７名、“OpenFlow: Enabling Innovation in Campus Networks”、［online］、［平成26年9月17日検索］、インターネット〈URL：http://archive.openflow.org/documents/openflow-wp-latest.pdf〉
【非特許文献２】“OpenFlow Switch Specification" Version 1.0.0. (Wire Protocol 0x01) ”、[online]、［平成26年9月17日検索］ 、インターネット〈URL：https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-spec-v1.0.0.pdf〉
【非特許文献３】Sherwood, Rob, et al. "Carving research slices out of your production networks with OpenFlow." ACM SIGCOMM Computer Communication Review 40.1 (2010): 129-130.
【非特許文献４】小出俊夫, 芦田優太, and 下西英之. "SDN コントローラ作成のシンプル化を実現するネットワーク抽象化モデル (ICT システムを高度化する SDN 特集)--(NEC SDN Solutions を支える最新技術)." NEC 技報 66.2 (2014): 32-35.
【非特許文献５】飯澤洋平, 森本昌治, and 下西英之. "ヘテロジニアス網統合制御基盤を実現するマルチレイヤ抽象化技術 (ICT システムを高度化する SDN 特集)--(NEC SDN Solutions を支える最新技術)." NEC 技報 66.2 (2014): 44-47.
【非特許文献６】Kazemian, Peyman, George Varghese, and Nick McKeown. "Header Space Analysis: Static Checking for Networks." NSDI. 2012.
【非特許文献７】Al-Shaer, Ehab, and Saeed Al-Haj. "FlowChecker: Configuration analysis and verification of federated OpenFlow infrastructures." Proceedings of the 3rd ACM workshop on Assurable and usable security configuration. ACM, 2010.
【発明の概要】
【発明が解決しようとする課題】
【００１６】
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
【００１７】
上述の通り、オープンフローのようなネットワーク制御技術を用い、ネットワークを仮想化することで複数のユーザーの要求に応じたトラフィックの処理規則を設定することができる。しかしながら、これらのトラフィック処理規則は最終的に共通の物理ネットワークへ設定されることになるが、各仮想ネットワークの処理規則が矛盾する規則であった場合、トラフィックが意図しない制御を受けてしまうことが考えられる。非特許文献４のようにネットワークを複雑に仮想化していった場合、設定されるトラフィック処理規則が多様になるため処理規則間の矛盾が発生する確率が高まる。
【００１８】
非特許文献３に記載の技術を用いることで、ユーザーごとに許可したトラフィック種別のみを制御するよう制約を付けることができる。許可範囲を逸脱するようなトラフィック処理規則の設定が指示された場合には、物理ネットワークに設定する前に修正もしくは拒否することによってトラフィック処理規則の排他制御を実現する。しかしながら、非特許文献３に記載の技術ではこのトラフィック種別情報そのものの検証手段を持たず、ユーザーごとの使用可能トラフィック種別設定が衝突している場合、意図した制御が実行できない。また、トラフィック処理規則の排他制御はオープンフローコントローラからの設定指示送信を契機に行われるため、事前に他の規則と衝突を起こさない処理規則を計算することができない。
【００１９】
非特許文献６、７に記載の技術を用いることで、設定されたトラフィック処理規則が仮想ネットワーク間で矛盾を発生させていないか、意図した制御が実現可能かを検証することが可能である。しかし、本技術も非特許文献３と同様に、登録情報の検証や、衝突を回避する処理規則の事前計算を行うことができない。
【００２０】
以上から、本発明は、仮想ネットワーク間でトラフィック処理規則の衝突を事前に回避するために必要な、使用可能なトラフィック識別条件の計算及び情報開示手段を提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明の第１の視点によれば、通信トラヒックを処理するための処理規則に基づいて、当該処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードと、前記物理ノードを用いて複数の仮想ネットワークを構築する第一の制御装置と、前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置と、を含み、前記第一の制御装置は、所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当て、割り当てた前記識別子の集合を前記第二の制御装置に通知する、ネットワークシステムが提供される。
【００２２】
本発明の第２の視点によれば、通信トラヒックを処理するための処理規則に基づいて、当該処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードを制御する制御装置であって、前記物理ノードを用いて複数の仮想ネットワークを構築し、所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当て、割り当てた前記識別子の集合を、前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置に通知する、制御装置が提供される。
【００２３】
本発明の第３の視点によれば、通信トラヒックを処理するための処理規則に基づいて、当該処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードの制御方法であって、前記物理ノードを用いて複数の仮想ネットワークを構築するステップと、所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当てるステップと、割り当てた前記識別子の集合を、前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置に通知するステップと、を含む制御方法が提供される。
【００２４】
本発明の第４の視点によれば、通信トラヒックを処理するための処理規則に基づいて、当該処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードを制御する制御装置に搭載されたコンピュータに実行させるプログラムであって、前記物理ノードを用いて複数の仮想ネットワークを構築する処理と、所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当てる処理と、割り当てた前記識別子の集合を、前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置に通知する処理と、を実行させるプログラムが提供される。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント（non-transient）なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００２５】
本発明の各視点によれば、仮想ネットワーク間でトラフィック処理規則の衝突を事前に回避することに寄与するネットワークシステム、制御装置、制御方法及びプログラムが、提供される。
【図面の簡単な説明】
【００２６】
【図１】一実施形態の概要を説明するための図である。
【図２】第一の実施の形態におけるシステム構成の一例を示している。
【図３】第一の実施の形態における制御装置１０の構成例を示している。
【図４】第一の実施の形態における制御装置２０の構成例を示している。
【図５】第一の実施の形態における制御装置３０の構成例を示している。
【図６】第一の実施の形態における制御装置４０の構成例を示している。
【図７】第一の実施の形態において制御装置１０−１によって計算される識別子空間を例示している。
【図８】第一の実施の形態における収容トラフィック条件を例示している。
【図９】第一の実施の形態における収容トラフィック条件の重複を例示している。
【図１０】第一の実施の形態において制御装置２０によって計算される識別子空間を例示している。
【図１１】第一の実施の形態において、制御装置３０に開示される二つのネットワークの識別子空間を例示している。
【図１２】第一の実施の形態において、制御装置３０によって計算される識別子空間を例示している。
【図１３】第二の実施の形態において、制御装置２０によって計算される識別子空間を例示している。
【図１４】第二の実施の形態において、制御装置２０によって修正された識別子空間を例示している。
【図１５】第二の実施の形態において、制御装置３０によって修正された識別子空間を例示している。
【図１６】第三の実施の形態における制御装置１０の構成を例示している。
【図１７】第三の実施の形態における制御装置２０の構成を例示している。
【図１８】第三の実施の形態における制御装置３０の構成を例示している。
【図１９】第三の実施の形態において、制御装置４０−２に開示される識別子空間を例示している。
【図２０】第三の実施の形態において、制御装置４０−２によって設定されるトラフィック処理規則に含まれるトラフィック識別条件を例示している。
【図２１】第三の実施の形態において、制御装置３０によって修正されたトラフィック識別条件を例示している。
【図２２】第四の実施の形態において、制御装置３０に開示される識別子空間を例示している。
【図２３】第四の実施の形態において、制御装置３０によって計算される識別子空間を例示している。
【発明を実施するための形態】
【００２７】
初めに、一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
【００２８】
図１を参照すると、一実施形態に係るネットワークシステムは、物理ノード１００と、第一の制御装置１０１と、第二の制御装置１０２と、を含む。物理ノード１００は、通信トラヒックを処理するための処理規則に基づいて、当該処理規則に含まれる識別条件により識別される通信トラヒックを処理する。第一の制御装置１０１は、物理ノード１００を用いて複数の仮想ネットワークを構築する。第二の制御装置１０２は、複数の仮想ネットワークの各々に割り当てられる。第一の制御装置１０１は、所定の条件に基づいて、識別条件として使用可能な識別子の集合を複数の仮想ネットワークの各々に割り当て、割り当てた識別子の集合を第二の制御装置１０２に通知する。
【００２９】
図１のネットワークシステムでは、第一の制御装置１０１が複数の仮想ネットワークを構築すると共に、それぞれの仮想ネットワークにて使用可能な識別子の集合（後述する識別子空間）を割り当てる。当該割り当てられた識別子の集合は、各仮想ネットワークを制御する第二の制御装置１０２に提供される。第二の制御装置１０２は、提供された識別子の集合に適合するようにトラフィック制御指示（フロー設定指示）すれば、又は、識別子の集合に適合しない第二の制御装置１０２の上位装置から指示されたトラフィック制御指示を拒否することで、識別条件の衝突が回避できる。
【００３０】
一実施形態に係るネットワークシステムは、ネットワークを多様に仮想化する場合に、それぞれの仮想ネットワークにおいて許容されるトラフィック識別条件を他の仮想ネットワークとの衝突を防止するよう計算し、トラフィック処理規則を計算する機器を提供できる。
【００３１】
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。
【００３２】
[第一の形態]
【００３３】
図２は、第１の実施の形態に係るシステム全体の構成例を示す図である。図２を参照すると、ノード１−１〜１−３から構成されるネットワーク３−１と、ノード１−４〜１−６から構成されるネットワーク３−２と、が相互に接続されている。さらに、ノード１−１、１−２、１−５及び１−６のそれぞれには、端末２が接続されている。また、ネットワーク３−１は制御装置１０−１、ネットワーク３−２は制御装置１０−２によって直接に管理されている。
【００３４】
制御装置１０−１、１０−２は自身の管理するネットワークの情報を他の制御装置に提供し、制御下に入る。制御装置２０は、制御装置１０−１の情報から二つの仮想ネットワークを構築し、制御装置４０−１及び制御装置３０に仮想ネットワーク情報を提供する。
【００３５】
制御装置２０は、制御装置４０−１からの制御指示と制御装置３０からの制御指示を制御装置１０−１へ受け渡すとともに、制御装置１０−１からの情報を条件によって制御装置４０−１、制御装置３０に振り分ける機能を持つ。
【００３６】
制御装置３０は、制御装置１０−２及び制御装置２０からのネットワーク情報を結合し、単一のネットワーク情報を制御装置４０−２へ提供する。また、制御装置３０は、制御装置４０−２からの制御指示を分割し、制御装置１０−２及び制御装置２０へ分配する機能を持つ。
【００３７】
制御装置４０は、受け取ったネットワーク情報から該当ネットワークへ設定すべきフローを計算し、下位の制御装置へ送信する。
【００３８】
次に、図３〜６を用いて、制御装置１０、２０、３０、４０の構成例について説明する。
【００３９】
図３を参照すると、制御装置１０は、ノード通信部１１と、ノード制御メッセージ処理部１２と、処理規則計算部１３と、ネットワーク情報管理部１４と、識別子空間計算部１５と、制御装置間メッセージ処理部１６と、制御装置通信部１７と、で構成されている。
【００４０】
ノード通信部１１は、ノード１と接続し通信を行う。
【００４１】
ノード制御メッセージ処理部１２は、ノード１から受信した情報を解析し、他の機能部へ振り分ける機能、および他の機能部からの情報をノード１の制御用メッセージへ変換し、ノード通信部１１へ送信する。
【００４２】
処理規則計算部１３は、ネットワーク情報管理部１４からの情報に基づいてノード１に設定指示する処理規則を計算し、ノード制御メッセージ処理部１２へ送信する。
【００４３】
ネットワーク情報管理部１４は、制御装置１０の管理するネットワークの情報を管理し、ノード１からの情報や、制御装置２０もしくは３０からの情報に基づき情報を更新するとともに更新情報を制御装置２０、３０やノード１へ通知する。
【００４４】
識別子空間計算部１５は、ネットワーク情報管理部１４の保持しているネットワーク情報に基づき、制御装置１０の管理するネットワークで、フローのトラフィック識別条件として使用可能な識別子の空間を計算し、保持するとともにネットワーク情報管理部１４に通知する。
【００４５】
制御装置間メッセージ処理部１６は、他の機能部からの要請に基づき、制御装置２０、３０へ情報を送信するメッセージを作成する機能、および制御装置２０、３０から受信した情報を解析し、他の機能部へ振り分ける機能を持つ。
【００４６】
制御装置通信部１７は、制御装置２０、３０との通信を管理する。
【００４７】
また、処理規則計算部１３は、自身が計算済みの処理規則と、その計算のもとになったフロー情報を記憶するフローデータベース（フローＤＢ；Data Base）１３１を含む。ネットワーク情報管理部１４は、制御装置１０が管理するネットワークの情報、すなわち、ネットワークトポロジやノード１の情報、ネットワークに設定すべきフローの情報などを記憶するネットワークデータベース（ネットワークＤＢ）１４１を含む。識別子空間計算部１５は、自身の計算した識別子空間を記憶する識別子空間データベース（識別子空間ＤＢ）１５１を含む。
【００４８】
図４を参照すると、制御装置２０は、ネットワークスライス部２１と、識別子空間計算部２２と、ネットワーク情報管理部２３と、制御装置間メッセージ処理部２４と、制御装置通信部２５と、で構成されている。
【００４９】
ネットワークスライス部２１は、制御装置１０より受信したネットワーク情報（すなわち、仮想化の基となる下位ネットワーク情報）と、仮想ネットワークに収容すべきトラフィックの識別条件と、に基づき、複数の仮想ネットワーク情報を計算する。さらに、ネットワークスライス部２１は、下位ネットワークからの情報を該当する仮想ネットワーク情報を管理するネットワーク情報管理部２３に伝達する、あるいは制御装置３０もしくは４０からの情報を制御装置間メッセージ処理部２４に伝達する機能を持つ。
【００５０】
識別子空間計算部２２は、下位ネットワーク情報とそれに含まれる識別子空間に基づき、各仮想ネットワークにおいてフローのトラフィック識別条件として使用可能な識別子空間を計算し、仮想ネットワークの識別子空間として保存し、該当する仮想ネットワークの情報を管理するネットワーク情報管理部２３へ通知する。
【００５１】
ネットワーク情報管理部２３は、下位ネットワーク情報と、仮想ネットワークに対応するネットワーク情報を管理する。
【００５２】
制御装置間メッセージ処理部２４は、他の機能部からの要請に基づき、制御装置１０、３０、４０へ情報を送信するメッセージを作成する機能、および制御装置１０、３０、４０から受信した情報を解析し、他の機能部へ振り分ける機能を持つ。
【００５３】
制御装置通信部２５は、制御装置１０、３０、４０との通信を管理する。
【００５４】
また、ネットワークスライス部２１は、情報振り分け部２１１と、収容トラフィック条件データベース（収容トラフィック条件ＤＢ）２１２と、を含む。情報振り分け部２１１は、収容トラフィック条件データベース２１２の情報に基づいて、制御装置１０、３０、４０からの情報を該当するネットワーク情報を管理するネットワーク情報管理部２３へ振り分ける機能を持つ。収容トラフィック条件データベース２１２は、仮想ネットワークに収容すべきトラフィックの識別条件を保存（記憶）する。
【００５５】
さらに、識別子空間計算部２２は、自身の計算した識別子空間を記憶する識別子空間データベース２２１を、ネットワーク情報管理部２３は、下位のネットワーク情報や仮想ネットワーク情報を保存するネットワークデータベース２３１を、それぞれ含む。
【００５６】
なお、ネットワーク情報管理部２３は、下位のネットワーク及び、仮想ネットワーク毎に独立に存在してもよいし、ネットワーク情報管理部２３は単一であるがネットワークデータベース２３１はネットワーク毎に独立に存在してもよい。あるいは、ネットワークデータベース２３１が単一であって、ネットワークデータベース２３１の内部の独立した領域にネットワーク情報を管理してもよい。さらに、ネットワーク情報管理部２３は、下位ネットワーク情報を持たず、必要に応じて下位ネットワークの制御装置から取得する方法や、下位ネットワークの制御装置から通知される情報を用いる方法を採用してもよい。
【００５７】
収容トラフィック条件データベース２１２に記憶する情報は、運用者やユーザーによって外部より登録されてもよいし、起動時に設定するなど任意の情報登録手段を用いることができる。即ち、制御装置２０は、仮想ネットワークに収容すべき通信トラヒックを識別する識別条件（収容トラフィック識別条件）を予め保持し、当該予め保持する識別条件に基づいて、仮想ネットワークにおいて使用可能な識別子の集合を管理できる。
【００５８】
図５を参照すると、制御装置３０は、ネットワーク結合部３１と、識別子空間計算部３２と、ネットワーク情報管理部３３と、制御装置間メッセージ処理部３４と、制御装置通信部３５と、で構成されている。
【００５９】
ネットワーク結合部３１は、制御装置１０、２０より受信したネットワーク情報（すなわち、仮想化の基となる下位ネットワーク情報）と、ネットワーク境界データベース３１２に記憶されている下位ネットワーク同士の境界情報と、に基づき、複数の下位ネットワーク情報を結合して単一の仮想ネットワーク情報を計算する。さらに、ネットワーク結合部３１は、下位ネットワークからの情報を該当する仮想ネットワーク情報を管理するネットワーク情報管理部３３に伝達する、あるいは制御装置４０からの情報を制御装置間メッセージ処理部３４に伝達する機能を持つ。
【００６０】
識別子空間計算部３２は、下位ネットワーク情報と、それに含まれる識別子空間に基づき、仮想ネットワークにおいてフローのトラフィック識別条件として使用可能な識別子空間を計算し、仮想ネットワークの識別子空間として保存し、該当する仮想ネットワークの情報を管理するネットワーク情報管理部３３へ通知する。
【００６１】
ネットワーク情報管理部３３は、下位ネットワーク情報と、仮想ネットワークに対応するネットワーク情報を管理する。
【００６２】
制御装置間メッセージ処理部３４は、他の機能部からの要請に基づき、制御装置１０、２０、４０へ情報を送信するメッセージを作成する機能、および制御装置１０、２０、４０から受信した情報を解析し、他の機能部へ振り分ける機能を持つ。
【００６３】
制御装置通信部３５は、制御装置１０、２０、４０との通信を管理する。
【００６４】
また、ネットワーク結合部３１は、制御指示分解部３１１と、ネットワーク境界データベース（ネットワーク境界ＤＢ）３１２と、を含む。制御指示分解部３１１は、ネットワーク境界データベース３１２の情報に基づいて、制御装置４０からの情報を分解し、該当するネットワーク情報を管理するネットワーク情報管理部３３へ分配する機能を持つ。ネットワーク境界データベース３１２は、下位ネットワークを結合する境界に関する情報、すなわちネットワーク間リンクなどの情報を保存（記憶）する。
【００６５】
識別子空間計算部３２は、自身の計算した識別子空間を記憶する識別子空間データベース（識別子空間ＤＢ）３２１を、ネットワーク情報管理部３３は、下位のネットワーク情報や仮想ネットワーク情報を保存するネットワークデータベース（ネットワークＤＢ）３３１を、それぞれ含む。
【００６６】
ネットワーク情報管理部３３は、下位ネットワーク情報を持たず、必要に応じて下位ネットワークの制御装置から取得する方法や、下位ネットワークの制御装置から通知される情報を用いる方法を採用してもよい。あるいは、ネットワーク境界データベース３１２に記憶する情報は、運用者やユーザーによって外部より登録されてもよいし、起動時に設定するなど任意の情報登録手段を用いることができる。
【００６７】
図６を参照すると、制御装置４０は、フロー計算部４１と、ネットワーク情報管理部４２と、制御装置間メッセージ処理部４３と、制御装置通信部４４と、で構成されている。
【００６８】
フロー計算部４１は、制御装置２０、３０より受信したネットワーク情報（すなわち、フロー制御の対象となる下位ネットワーク情報）をネットワーク情報管理部４２より取得し、下位ネットワークに設定すべきフローを計算する。
【００６９】
ネットワーク情報管理部４２は、下位ネットワーク情報を管理する。
【００７０】
制御装置間メッセージ処理部４３は、他の機能部からの要請に基づき、制御装置２０、３０へ情報を送信するメッセージを作成する機能、および制御装置２０、３０から受信した情報を解析し、他の機能部へ振り分ける機能を持つ。
【００７１】
制御装置通信部４４は、制御装置２０、３０との通信を管理する。
【００７２】
また、フロー計算部４１は、自身の計算したフローを記憶するフローデータベース（フローＤＢ）４１１を含む。ネットワーク情報管理部４２は、下位のネットワーク情報や仮想ネットワーク情報を保存するネットワークデータベース（ネットワークＤＢ）４２１を含む。
【００７３】
ネットワーク情報管理部４２は、下位ネットワーク情報を持たず、必要に応じて下位ネットワークの制御装置から取得する方法や、下位ネットワークの制御装置から通知される情報を用いる方法を採用してもよい。
【００７４】
なお、制御装置１０、２０、３０、４０に含まれるネットワークデータベース１４１、２３１、３３１、４２１はネットワーク情報だけでなく端末２に関する情報を保持してもよい。また、ネットワーク情報管理部１４、２３、３３、４２は、制御装置１０、２０、３０、４０の内部でなく、任意の情報通信手段によって接続される外部装置として別個に存在してもよい。
【００７５】
図３〜６に記載の、制御装置１０、２０、３０、４０の接続先となる制御装置は、図２のシステム構成に従ったものであり、制御装置の接続関係を変更する場合はそれに準じた接続先となる。
【００７６】
図３〜６に記載の構成を持つ制御装置によって図２に示される通信システムを構成する場合、トラフィックの処理方法であるフローを計算する装置は最上位に接続された制御装置４０である。従って、制御装置４０が計算し、設定を指示したフローは、制御の媒介をする各制御装置においてフローに含まれるトラフィック識別条件が許容可能であるか検査される。
【００７７】
制御装置１０、２０、３０は、それぞれ上位に接続されている制御装置２０、３０、４０が制御指示を行うことが可能なトラフィックの識別条件の集合（以降、識別子空間と記述する）を保持しており、制御装置２０、３０、４０へ開示（提供）している。制御装置１０、２０、３０は、上記識別子空間に該当しないトラフィック制御指示（以降、フロー設定指示と記述する）が制御装置２０、３０、４０より送信された場合、許容可能なフロー設定指示ではない旨を含むエラー通知を返答することで、各制御装置からのフロー設定が衝突しないことを保証する。
【００７８】
あるいは、制御装置４０が、直下の制御装置である制御装置２０、３０が規定する識別子空間を事前に取得し、その空間に適合するようなフロー設定指示を計算し、制御装置２０、３０へ送信することでフロー設定衝突の回避を保証してもよい。制御装置２０、３０が開示する識別子空間には、それより下位の制御装置における識別子空間が反映されているため、最下位の制御装置１０に至るまで許容されることが保証できる。
【００７９】
以降、制御装置１０、２０、３０における識別子空間の計算方法について説明する。
【００８０】
第一の実施の形態において、識別子空間は、ノードに対応する物理機器が使用可能なトラフィック識別条件に基づいて計算される。オープンフロー（スペック１．０）を例にすると、送信元ＭＡＣ（Media Access Control）アドレス、宛先ＭＡＣアドレス、ＶＬＡＮ  ＩＤ、ＶＬＡＮプライオリティ、Ｌ２フレームタイプ、ＩＰ  ＴｏＳ（Internet Protocol  Type of Service）、ＩＰプロトコル番号、送信元ＩＰアドレス、宛先ＩＰアドレス、送信元Ｌ４ポート番号、宛先Ｌ４ポート番号の１１種のパケットヘッダ情報及びパケットの入力ポートの１２種のフィールドが基となる。複数の機種が混在している場合は、各機種が対応可能な識別条件から識別子空間が計算される。以降、送信元ＭＡＣアドレス、宛先ＭＡＣアドレス、送信元ＩＰアドレス、送信先ＩＰアドレスに限定した例を説明する。
【００８１】
制御装置１０においては、ノードに対応する装置がトラフィック処理規則として利用可能な識別条件の集合が識別子空間となる。本実施の形態では、識別子空間に入力ポート及び入力ノードの情報を含まず、場所に寄らずネットワーク全体で一つの識別子空間を共有する方法を示す。そのため、制御装置１０における識別子空間計算は、各フィールドにおいて許容される最小値から最大値までの全ての値を含む識別子空間となる。
【００８２】
図７に制御装置１０によって計算される識別子空間表現の例を示す。図７では、仕様上使用可能なすべての値をａｎｙとして表現している。なお、異種の機器が混在している場合、各機器で使用可能な識別条件の積集合を計算し、識別子空間とする。仮に、送信元ＭＡＣアドレス、宛先ＭＡＣアドレス、送信元ＩＰアドレス、送信先ＩＰアドレスが識別可能なノードと、送信元ＭＡＣアドレス、宛先ＭＡＣアドレスが識別可能なノードと、が混在している場合、両者の積である送信元ＭＡＣアドレス、宛先ＭＡＣアドレスフィールドの任意の値集合がネットワークの識別子空間となる。
【００８３】
次に、制御装置２０における識別子空間の計算方法について説明する。
【００８４】
制御装置２０では、ネットワークを複数の仮想ネットワークに切り出すため、仮想ネットワーク間で識別子空間が独立となるように計算することで、トラフィック制御の衝突回避を保証する。
【００８５】
例えば、図２の構成において、ネットワーク３−１は制御装置１０−１によって等価なネットワークに仮想化され、制御装置１０−１におけるネットワークデータベース１４１にネットワーク情報が保存される。制御装置２０は、このネットワーク情報をもとに二つの仮想ネットワークを生成し、制御装置４０−１と制御装置３０に提供する。その際、制御装置２０は、制御装置４０−１及び制御装置３０に提供するネットワークに収容すべきトラフィックの識別条件に基づき、識別子空間を計算する。
【００８６】
トラフィック識別条件は、例えば、システム構成時に運用者やユーザーによって設定され、制御装置２０における収容トラフィック条件データベース２１２に保存される。
【００８７】
図８にトラフィック収容条件の例を示す。図８では、宛先ＭＡＣアドレスが００：００：００：００：００：０１から００：００：００：００：００：０ｆのトラフィックが制御装置４０−１に提供される仮想ネットワーク１に収容されるように設定されている。また、送信先ＩＰアドレスが１９２．１６８．０．１から１９２．１６８．０．９のトラフィックが制御装置３０に提供される仮想ネットワーク２に収容されるよう設定されている。また、仮想ネットワーク１への振り分けが高優先度（１）、仮想ネットワーク２への振り分けが低優先度（２）となっている。
【００８８】
制御装置２０は、この収容トラフィック条件をもとに識別子空間を計算する。例えば、この収容トラフィック条件をそのまま仮想ネットワーク１、２の識別子空間にした場合、宛先ＭＡＣアドレスが００：００：００：００：００：０１から００：００：００：００：００：０ｆ、且つ、送信先ＩＰアドレスが１９２．１６８．０．１から１９２．１６８．０．９の範囲であるトラフィック識別条件は、衝突することになる。
【００８９】
上記の衝突を引き起こす識別子空間の重複を図９に示す。図９において、横軸が宛先IPアドレスの値、縦軸が宛先ＭＡＣアドレスの値を表しており、送信元ＩＰアドレス、送信元ＭＡＣアドレスは省略されている。黒で塗りつぶされた領域が仮想ネットワーク１の識別子空間を、白抜きの領域が仮想ネットワーク２の識別子空間を示しており、両者が重なっている部分が識別子空間の重複である。このような重複を回避するため、制御装置２０は、優先度が低い仮想ネットワーク２の識別子空間を削減し、仮想ネットワーク２の識別子空間において禁止領域として表現する。
【００９０】
制御装置２０によって計算される識別子空間を図１０に示す。なお、φは空集合を示す。仮想ネットワーク１の識別子空間は、図８の収容トラフィック条件と同一の許可領域をもち、禁止領域はすべて空集合である。仮想ネットワーク２の識別子空間は、許可空間として収容トラフィック条件と同一の範囲を持つが、禁止領域として仮想ネットワーク１と共通（重複）する部分である宛先ＭＡＣアドレスが００：００：００：００：００：０１から００：００：００：００：００：０ｆを持つ。この計算によって互いに独立な識別子空間が、制御装置４０−１、３０に開示される。
【００９１】
最後に、制御装置３０における識別子空間計算について説明する。
【００９２】
制御装置３０では、制御装置２０と制御装置１０−２に対応する下位ネットワークを結合し、一つの上位ネットワークとすることで複数のネットワークを統合して制御することを可能にする。そのため、制御装置３０は、二つの下位ネットワークの識別子空間を統合して上位ネットワークの識別子空間とする。
【００９３】
図１１に制御装置２０と１０−２がそれぞれ開示する識別子空間を示す。図１１において、仮想ネットワーク２の識別子空間は許可領域として送信先ＩＰアドレスが１９２．１６８．０．１から１９２．１６８．０．９を、禁止領域として宛先ＭＡＣアドレスが００：００：００：００：００：０１から００：００：００：００：００：０ｆを持つ。仮想ネットワーク３（制御装置１０−２に提供されるネットワーク）の識別子空間は、許可領域として宛先ＭＡＣアドレスが００：００：００：００：００：１１から００：００：００：００：００：１ｆを持ち、禁止領域として空集合を持つ。
【００９４】
制御装置３０は、これらの識別子空間を結合するため、本実施の形態では二つの空間で許可領域では積を、禁止領域では和を計算して制御装置４０−２に提供される仮想ネットワーク４の識別子空間とする。
【００９５】
図１２に仮想ネットワーク４の識別子空間を示す。図１２のように許可領域として仮想ネットワーク２の許可領域と仮想ネットワーク３の許可領域の積である、送信先ＩＰアドレスが１９２．１６８．０．１から１９２．１６８．０．９の範囲、且つ、宛先ＭＡＣアドレスが００：００：００：００：００：１１から００：００：００：００：００：１ｆの範囲が計算される。また、禁止領域として仮想ネットワーク２の禁止領域と仮想ネットワーク３の禁止領域（空集合）の和である宛先ＭＡＣアドレスが００：００：００：００：００：０１から００：００：００：００：００：０ｆの範囲が計算される。
【００９６】
以上のように、第１の実施の形態では、上記の識別子空間計算において、許可領域の積と禁止領域の和を取ることで、下位では別個のネットワークであるような結合ネットワークにおいてエンドツーエンドで共通して使用可能な識別子空間を計算し、開示することでネットワークを跨ってもフローが有効となるトラフィック識別条件の領域を示している。また、各制御装置が識別子空間を計算することによって、各仮想ネットワークにおいて他のネットワークと衝突せずに使用可能な識別子空間が定義され、各制御装置へ提供される。
【００９７】
さらに、トラフィック識別条件を受け取った制御装置が、この識別子空間を用いて照合し、許容不可である場合はその旨をエラーとして通知する（拒否通知を送信する）ことで、トラフィック識別条件の衝突が最終的に回避される。より具体的には、各制御装置に含まれる制御装置間メッセージ処理部が、上位の制御装置から処理規則の設定の要求を受信した場合に、設定を要求された当該処理規則に用いる識別子が当該処理規則の識別条件として使用可能な識別子の集合に含まれないことに応じて、当該処理規則を設定できない旨を示す拒否通知を送信する。あるいは、制御装置が事前に識別子空間を取得し、それに対応するトラフィック識別条件を計算することで、トラフィック識別条件の衝突を最終的に回避してもよい。
【００９８】
［第二の形態］
続いて、第二の実施の形態について述べる。
【００９９】
始めに、本形態における制御装置２０の動作について説明する。本形態において、制御装置２０は第一の形態と同様に、図８のような収容トラフィック条件を保持している。制御装置２０はこの条件に基づき制御装置４０−１に提供される仮想ネットワーク１、制御装置３０に提供される仮想ネットワーク２に対する識別子空間を図１３のように計算する。
【０１００】
図１３を参照すると、第二の形態において、制御装置２０は、禁止領域を計算せず、収容トラフィック条件の重複領域である宛先ＭＡＣアドレスが００：００：００：００：００：０１から００：００：００：００：００：０ｆ、且つ、送信先ＩＰアドレスが１９２．１６８．０．１から１９２．１６８．０．９の範囲は仮想ネットワーク１、２ともに許可領域として扱われ、制御装置４０−１、３０に開示される。
【０１０１】
しかしながら、このままでは、仮想ネットワーク１と２の間でフローの衝突が発生し得る。そのため、制御装置２０は先に使用されたトラフィック識別条件を他の仮想ネットワークにおける禁止領域とすることによって、使用順序に基づく衝突回避を行う。
【０１０２】
例えば、制御装置４０−１が、送信元ＭＡＣアドレス＝００：００：００：００：００：２１、宛先ＭＡＣアドレス＝００：００：００：００：００：０１、送信元ＩＰアドレス＝１９２．１６８．１０．１、送信先ＩＰアドレス＝１９２．１６８．０．１のトラフィック識別条件をもつフローを制御装置２０へ設定指示したとする。この場合、制御装置２０は、フローが重複領域に該当するか検査し、該当する場合、重複領域を構成するフィールド、すなわち宛先ＭＡＣアドレスと送信先ＩＰアドレスの値を他の仮想ネットワークである仮想ネットワーク２の禁止領域に追加する。上記禁止領域への追加の結果、図１４のような識別子空間へ書き換えられることになる。
【０１０３】
さらに、制御装置３０は、制御装置２０により書き換えられた識別子空間に基づき、自身が計算し制御装置４０−２へ開示済みの識別子空間を、図１５のように更新する。
【０１０４】
以上のように、第二の形態では、重複する識別子空間を利用状況に応じて禁止領域として伝播させることによって、システム全体でトラフィック識別条件の衝突が発生することを回避しながら、禁止領域が必要以上に増大することを防止する。
【０１０５】
［第三の形態］
続いて、第三の実施の形態について述べる。
【０１０６】
図１６は、第三の形態における制御装置１０の構成を例示している。図１６において、制御装置１０の構成は、第一及び第二の形態と一部を除いて同様であり、処理規則計算部１３が第一、第二の形態と異なる。
【０１０７】
処理規則計算部１３は、フローデータベース（フローＤＢ）１３１と、識別条件修正部１３２と、を含む。フローデータベース１３１は、自身（処理規則計算部１３）が計算済みの処理規則と、その計算のもとになったフロー情報を記憶する。識別条件修正部１３２は、識別子空間計算部１５に含まれる識別子空間データベース１５１の情報に合わせて、制御装置２０、３０から指示されたフローのトラフィック識別条件を修正する。
【０１０８】
図１７は、第三の形態における制御装置２０の構成を例示している。図１７において、制御装置２０の構成は第一及び第二の形態と一部を除いて同様であり、ネットワークスライス部２１が第一、第二の形態と異なる。
【０１０９】
ネットワークスライス部２１は、情報振り分け部２１１と、収容トラフィック条件データベース（収容トラフィック条件ＤＢ）２１２と、識別条件修正部２１３と、を含む。情報振り分け部２１１は、収容トラフィック条件データベース２１２の情報に基づいて、制御装置１０、３０、４０からの情報を該当するネットワーク情報を管理するネットワーク情報管理部２３へ振り分ける機能を持つ。収容トラフィック条件データベース２１２は、仮想ネットワークに収容すべきトラフィックの識別条件を保存する。識別条件修正部２１３は、識別子空間計算部２２に含まれる識別子空間データベース２２１の情報に合わせて、制御装置３０、４０から指示されたフローのトラフィック識別条件を修正する。
【０１１０】
図１８は、第三の形態における制御装置３０の構成を例示している。図１８において、制御装置３０の構成は第一及び第二の形態と一部を除いて同様であり、ネットワーク結合部３１が第一、第二の形態と異なる。
【０１１１】
ネットワーク結合部３１は、制御指示分解部３１１と、ネットワーク境界データベース（ネットワーク境界ＤＢ）３１２と、識別条件修正部２１３と、を含む。制御指示分解部３１１は、ネットワーク境界データベース３１２の情報に基づいて、制御装置４０からの情報を分解し、該当するネットワーク情報を管理するネットワーク情報管理部３３へ分配する機能を持つ。ネットワーク境界データベース３１２は、下位ネットワークを結合する境界に関する情報、すなわちネットワーク間リンクなどの情報を保存する。識別条件修正部３１３は、識別子空間計算部３２に含まれる識別子空間データベース３２１の情報に合わせて、制御装置４０から指示されたフローのトラフィック識別条件を修正する。
【０１１２】
第三の形態では、制御装置１０、２０、３０は識別条件修正部１３２、２１３、３１３を有することにより、上位の制御装置より指示されたフローのうち、該当する識別子空間と一致しないものの一部を修正し、識別子空間と適合させる処理を行う。当該適合処理では、トラフィック識別条件を構成するフィールドに任意の値を取り得るように指定され、且つ、その部分を限定することによって識別子空間と適合するフローのみが対象となる。
【０１１３】
例えば、制御装置３０が、制御装置４０−２に提供される仮想ネットワーク４の識別子空間を図１９のように提示している場合に、図２０のようなトラフィック識別条件を持つフローが制御装置４０−２より指定されたとする。
【０１１４】
図２０に示すフローは、送信先ＩＰアドレスのフィールドにおいて、図１９の識別子空間と適合せず、識別子空間が指定する領域を超えた値を持っている。このようなフローに対して、制御装置３０は、図１９の識別子空間に従って送信先ＩＰアドレスのフィールドを限定する。当該処理により、図２０のフローは、図２１のように修正される。この処理によって下位の制御装置２０、１０−２には識別子空間に適合したフローが指示されることになる。
【０１１５】
なお、図２１のフローはＩＰアドレス値として、範囲表現を用いているが、制御装置１０、２０、３０、４０が範囲表現を許容する場合は範囲表現のまま用いればよいし、許容されない場合は範囲表現のフローを、ただ一つの値を持つ複数のフローへ分割して表現すればよい。また、制御装置１０は、範囲表現であるフローを受け取った際、ノードが範囲表現を許容しない場合には、上記と同様に、一つの値を持つ複数のフローに分割して設定してもよい。あるいは、この場合、制御装置１０は、いったんフローデータベース１３１にフローを記憶し、この範囲表現に適合する処理規則要求をノードより受信した際に、処理規則要求に含まれるパケットヘッダの値に合わせて一つずつ設定してもよい。
【０１１６】
以上のように、第三の形態では、フローのトラフィック識別条件の修正手段が提供されるため、識別子空間に適合しないフローであっても可能な限り設定可能とする運用が可能となる。
【０１１７】
［第四の形態］
続いて、第四の実施の形態について述べる。
【０１１８】
第四の形態における制御装置の構成は第一の形態もしくは第三の形態と同様の構成が可能である。第四の形態において、ネットワークの識別子空間はポートと対応付けて保持される。
【０１１９】
図２２に、制御装置３０に開示される識別子空間の例が示されている。なお、入力ポートのフィールドに記載されているｐ１〜ｐ１４は、図２のシステム構成におけるポートのＩＤと一致している。
【０１２０】
第四の形態において、制御装置３０が計算する識別子空間は図２３のようになり、入力ポートの値によって異なる識別子空間が指定されることになる。但し、制御装置２０における識別子空間の計算は第一の形態と同様である。
【０１２１】
第四の形態において、フローが識別子空間に適合しているかどうかは、フロー中のトラフィック識別条件における入力ポートを含めて検証される。そのため、例えば、ポートｐ１から入力され、ポートｐ１４へ出力されるようなトラフィックを制御するフローは、転送経路の途中で異なる識別子空間を通ることとなる。具体的には、ポートｐ１から入力され、ポートｐ７へ出力されるまで、すなわち、図２のシステム構成におけるネットワーク３−１内の転送を制御するフローは、図２３中の入力ポートフィールドがポートｐ１〜ｐ７となっている許可領域および禁止領域に従って識別条件の検証が行われる。一方、ポートｐ８から入力され、ポートｐ１４に出力されるまで、すなわち、図２のネットワーク３−２内の転送を制御するフローは図２３中の入力ポートフィールドがポートｐ８〜ｐ１４となっている許可領域および禁止領域に従って検証される。なお、第四の形態では説明上、全てのポートのＩＤは、システム全体で一意であるという前提であるため入力ポートフィールドを識別子空間に含んでいるが、ポートＩＤが一意でない場合、ノードのＩＤと組み合わせて表現することで一意に識別することも可能である。
【０１２２】
第四の本形態では、ポート単位で識別子空間を規定できるため、識別子空間を表現するための情報量が増加するが、トラフィック識別条件を転送経路途中で変更する余地が生じ、フロー制御の自由度が向上する。
【０１２３】
第一乃至第四の形態で説明した制御装置１０、２０、３０及び４０は、各制御装置に搭載されたコンピュータに、上記説明した各部の処理を実行させるコンピュータプログラムにより実現することもできる。
【０１２４】
第一乃至四の形態で説明した構成及び動作は例示であって、制御装置等の構成及び動作を限定する趣旨ではない。
【０１２５】
例えば、制御装置２０は、物理ノード１を含む少なくとも１つの通信ネットワーク（例えば、ネットワーク３−１）を管理し、管理する通信ネットワークに含まれる物理ノードの通信インターフェースのうち、管理外の通信ネットワーク（例えば、ネットワーク３−２）と接続する通信インターフェース（ノード１−３のポート７）において使用可能な識別子の集合を算出し、算出した識別子の集合を所定の通信インターフェースと関連付けて管理してもよい。即ち、制御装置２０、３０等は、エッジのポートにおいて使用可能な識別子空間のみを計算し、当該計算した識別子空間をエッジポートに関連付けて保持してもよい。
【０１２６】
制御装置２０は、複数の通信ネットワークの各々に含まれる物理ノードの通信インターフェースにおいて使用可能な識別子の集合の積集合に基づいて、当該物理ノードを用いて構築される仮想ネットワークにおいて使用可能な識別子の集合を算出し、算出した識別子の集合を、複数の通信ネットワークと関連付けて管理してもよい。即ち、制御装置２０、３０等は、通信ネットワークに含まれる全てのノードにおいて共通して使用可能な識別子空間を計算し、当該計算された識別子空間と仮想ネットワークと関連付けて保持するだけでなく、通信ネットワークと関連付けて管理してもよい。
【０１２７】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【０１２８】
［付記１］
通信トラヒックを処理するための処理規則に基づいて、当該処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードと、
前記物理ノードを用いて複数の仮想ネットワークを構築する第一の制御装置（例えば、図２の制御装置２０）と、
前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置（例えば、図２の制御装置４０−１、３０）と、を含み、
前記第一の制御装置は、
所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当て、
割り当てた前記識別子の集合を前記第二の制御装置に通知する、ネットワークシステム。
［付記２］
前記第一又は第二の制御装置は、
前記物理ノードに含まれる通信インターフェースごとに、当該通信インターフェースにおいて使用可能な前記識別子の集合を算出し、
算出した前記識別子の集合を前記通信インターフェースに関連付けて管理する、付記１に記載のネットワークシステム。
［付記３］
前記第一又は第二の制御装置は、
前記物理ノードの通信インターフェースにおいて使用可能な前記識別子に基づいて、当該物理ノードを用いて構築される仮想ネットワークにおいて使用可能な前記識別子の集合を算出し、
算出した前記識別子の集合を、前記物理ノードを用いて構築された前記仮想ネットワークに関連付けて管理する、付記１又は２に記載のネットワークシステム。
［付記４］
前記第一又は第二の制御装置は、
前記物理ノードの通信インターフェースにおいて使用可能な前記識別子の集合の和集合又は積集合に基づいて、当該物理ノードを用いて構築される仮想ネットワークにおいて使用可能な前記識別子の集合を算出する、付記３に記載のネットワークシステム。
［付記５］
前記第一又は第二の制御装置は、
前記仮想ネットワークに対応する第一の通信ネットワークに含まれる物理ノードの通信インターフェースのうち、第二の通信ネットワークと接続する所定の通信インターフェースにおいて使用可能な前記識別子の集合を算出し、
算出した前記識別子の集合を前記所定の通信インターフェースと関連付けて管理する、付記２に記載のネットワークシステム。
［付記６］
前記第一又は第二の制御装置は、
前記第一の通信ネットワークに含まれる物理ノードの所定の通信インターフェースにおいて使用可能な前記識別子の集合の和集合又は積集合に基づいて、当該物理ノードを用いて構築される仮想ネットワークにおいて使用可能な前記識別子の集合を算出する、付記５に記載のネットワークシステム。
［付記７］
前記第一の制御装置は、
前記仮想ネットワークに収容すべき通信トラヒックを識別する前記識別条件を予め保持し、
予め保持する前記識別条件に基づいて、前記仮想ネットワークにおいて使用可能な前記識別子の集合を管理する、付記１乃至６のいずれか一に記載のネットワークシステム。
［付記８］
前記第一の制御装置は、
前記複数の仮想ネットワークの各々において使用可能な前記識別子の集合が互いに重複する場合に、前記重複する当該識別子の集合を、当該複数の仮想ネットワークの各々が当該識別子として使用できない使用禁止の識別子の集合として設定する、付記１乃至７のいずれか一に記載のネットワークシステム。
［付記９］
前記第一の制御装置は、
前記複数の仮想ネットワークの各々において使用可能な前記識別子の集合が互いに重複する場合に、前記重複する集合に含まれる所定の識別子を、前記複数の仮想ネットワークのうち優先度の高い仮想ネットワークにおいて使用可能な識別子として設定する、付記１乃至８のいずれか一に記載のネットワークシステム。
［付記１０］
前記第一の制御装置は、
前記複数の仮想ネットワークの各々において使用可能な前記識別子の集合が互いに重複する場合に、前記重複する集合に含まれる所定の識別子を、当該所定の識別子を含む前記処理規則が最初に割り当てられた仮想ネットワークにおいて使用可能な識別子として設定する、付記１乃至９のいずれか一に記載のネットワークシステム。
［付記１１］
前記第一の制御装置は、
前記所定の識別子を、当該所定の識別子を含む前記処理規則が割り当てられた前記仮想ネットワーク以外の仮想ネットワークが使用できない識別子として設定する、付記９又は１０に記載のネットワークシステム。
［付記１２］
前記第一の制御装置は、
前記複数の仮想ネットワークの各々において使用可能な前記識別子の集合を、前記複数の仮想ネットワークごとに独立するように算出する、付記１乃至１１のいずれか一に記載のネットワークシステム。
［付記１３］
前記第一又は第二の制御装置は、
前記処理規則の設定の要求を受信した場合に、設定を要求された当該処理規則に含まれる識別子が当該処理規則の識別条件として使用可能な識別子の集合に含まれないことに応じて、当該処理規則を設定できない旨を示す拒否通知を送信する、付記１乃至１２のいずれか一に記載のネットワークシステム。
［付記１４］
前記第一又は第二の制御装置は、
前記処理規則の設定の要求を受信した場合に、設定を要求された当該処理規則に含まれる識別子を、当該処理規則の識別条件として使用可能な識別子の集合に含まれる識別子に変更する、付記１乃至１３のいずれか一に記載のネットワークシステム。
［付記１５］
上述の第２の視点に係る制御装置のとおりである。
［付記１６］
上述の第３の視点に係る制御方法のとおりである。
［付記１７］
上述の第４の視点に係るプログラムのとおりである。
なお、付記１５〜１７の形態は、付記１の形態と同様に、付記２の形態〜付記１４の形態に展開することが可能である。
【０１２９】
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【０１３０】
１、１−１〜１−６  ノード
２  端末
３−１、３−２  ネットワーク
１０−１、１０−２、２０、３０、４０−１、４０−２  制御装置
１１  ノード通信部
１２  ノード制御メッセージ処理部
１３  処理規則計算部
１４、２３、３３、４２  ネットワーク情報管理部
１５、２２、３２  識別子空間計算部
１６、２４、３４、４３  制御装置間メッセージ処理部
１７、２５、３５、４４  制御装置通信部
２１  ネットワークスライス部
３１  ネットワーク結合部
４１  フロー計算部
１００  物理ノード
１０１  第一の制御装置
１０２  第二の制御装置
１３１、４１１  フローデータベース（フローＤＢ）
１３２、２１３、３１３  識別条件修正部
１４１、２３１、３３１、４２１  ネットワークデータベース（ネットワークＤＢ）
１５１、２２１、３２１  識別子空間データベース（識別子空間ＤＢ）
２１１  情報振り分け部
２１２  収容トラフィック条件データベース（収容トラフィック条件ＤＢ）
３１１  制御指示分解部
３１２  ネットワーク境界データベース（ネットワーク境界ＤＢ）
【図１】
2018093245.tif 000003
【図２】
2018093245.tif 000004
【図３】
2018093245.tif 000005
【図４】
2018093245.tif 000006
【図５】
2018093245.tif 000007
【図６】
2018093245.tif 000008
【図７】
2018093245.tif 000009
【図８】
2018093245.tif 000010
【図９】
2018093245.tif 000011
【図１０】
2018093245.tif 000012
【図１１】
2018093245.tif 000013
【図１２】
2018093245.tif 000014
【図１３】
2018093245.tif 000015
【図１４】
2018093245.tif 000016
【図１５】
2018093245.tif 000017
【図１６】
2018093245.tif 000018
【図１７】
2018093245.tif 000019
【図１８】
2018093245.tif 000020
【図１９】
2018093245.tif 000021
【図２０】
2018093245.tif 000022
【図２１】
2018093245.tif 000023
【図２２】
2018093245.tif 000024
【図２３】
2018093245.tif 000025