(57)【要約】【課題】リソースを共有するネットワークの安全性を高める通信システムを提供する。【解決手段】通信システムは、グループ分けされた複数の通信ノードと、複数の通信ノード間を接続し、パケットを処理するための処理規則に従いパケットを処理するスイッチと、スイッチに処理規則を設定する制御装置と、を含む。制御装置は、通信ノードが同一のグループに属する他の複数の通信ノードに向けて送信するブロードキャストパケットを他の複数の通信ノードに転送するための処理規則を、スイッチに設定すると共に、ブロードキャストパケットをブロードキャストパケットの送信元の通信ノードと異なるグループに属する通信ノードに転送するための処理規則を、スイッチに非設定とする。【選択図】図１
2014175938.tif 000002
【特許請求の範囲】
【請求項１】
グループ分けされた複数の通信ノードと、
前記複数の通信ノード間を接続し、パケットを処理するための処理規則に従いパケットを処理するスイッチと、
前記スイッチに処理規則を設定する制御装置と、
を含み、
前記制御装置は、通信ノードが同一のグループに属する他の複数の通信ノードに向けて送信するブロードキャストパケットを前記他の複数の通信ノードに転送するための処理規則を、前記スイッチに設定すると共に、前記ブロードキャストパケットを前記ブロードキャストパケットの送信元の通信ノードと異なるグループに属する通信ノードに転送するための処理規則を、前記スイッチに非設定とする通信システム。
【請求項２】
複数の前記スイッチを含み、
前記複数のスイッチのうちの第１のスイッチに接続される第１の通信ノードが、前記複数のスイッチのうちの第２のスイッチに接続され、且つ、前記第１の通信ノードと同一のグループに属する第２の通信ノードに向けて、前記ブロードキャストパケットを送信すると、
前記制御装置は、前記ブロードキャストパケットを前記第２のスイッチに転送するための第１の処理規則を、前記第１のスイッチに設定すると共に、前記ブロードキャストパケットを前記第２の通信ノードに接続されるポートから送出するための第２の処理規則を、前記第２のスイッチに設定する請求項１の通信システム。
【請求項３】
グループに第３の通信ノードが追加され、且つ、前記第３の通信ノードと同一のグループに属する他の通信ノードが接続されるスイッチが不存在の場合に、
前記制御装置は、前記ブロードキャストパケットを前記第１のスイッチから前記第３の通信ノードが接続される第３のスイッチまで転送するための処理規則を、前記複数のスイッチのうち少なくとも１つのスイッチに設定する請求項２の通信システム。
【請求項４】
グループに追加される際の前記第３の通信ノードが停止状態の場合に、
前記制御装置は、前記第３の通信ノードに対応する前記第２の処理規則を、前記第３のスイッチに非設定とする請求項３の通信システム。
【請求項５】
前記第３の通信ノードが停止状態から稼働状態に遷移する場合に、
前記制御装置は、前記第３の通信ノードに対応する前記第２の処理規則を、前記第３のスイッチに設定する請求項４の通信システム。
【請求項６】
前記第２の通信ノードが稼働状態から停止状態に遷移する場合に、
前記制御装置は、前記第２の処理規則を、前記第２のスイッチから削除する請求項する請求項２乃至５のいずれか一項に記載の通信システム。
【請求項７】
グループ分けされた複数の通信ノードと、
前記複数の通信ノード間を接続し、パケットを処理するための処理規則に従いパケットを処理するスイッチと、を含む通信システムの通信方法であって、
同一のグループに属する他の複数の通信ノードに向けてブロードキャストパケットを送信する工程と、
前記ブロードキャストパケットを前記他の複数の通信ノードに転送するための処理規則を、前記スイッチに設定する工程と、
を含む通信方法。
【請求項８】
グループ分けされた複数の通信ノード間を接続するスイッチに、パケットを処理するための処理規則を設定する制御装置であって、
通信ノードが同一のグループに属する他の複数の通信ノードに向けて送信するブロードキャストパケットを前記他の複数の通信ノードに転送するための処理規則を、前記スイッチに設定すると共に、前記ブロードキャストパケットを前記ブロードキャストパケットの送信元の通信ノードと異なるグループに属する通信ノードに転送するための処理規則を、前記スイッチに非設定とする制御装置。
【請求項９】
グループ分けされた複数の通信ノード間を接続する複数のスイッチに、パケットを処理するための処理規則を設定する制御装置の制御方法であって、
前記複数のスイッチのうちの第１のスイッチに接続される第１の通信ノードが、前記複数のスイッチのうちの第２のスイッチに接続され、且つ、前記第１の通信ノードと同一のグループに属する第２の通信ノード向けて、ブロードキャストパケットを送信する際に、
グループと、グループに属する通信ノードの対応を示す管理情報、及び前記複数のスイッチと前記複数の通信ノード間の接続からなるネットワークのトポロジに基づいて、前記第１及び第２のスイッチを特定する工程と、
前記ブロードキャストパケットを前記第２のスイッチに転送するための第１の処理規則を、前記第１のスイッチに設定する工程と、
前記ブロードキャストパケットを前記第２の通信ノードに接続されるポートから送出するための第２の処理規則を、前記第２のスイッチに設定する工程と、
を含む制御装置の制御方法。
【請求項１０】
グループ分けされた複数の通信ノード間を接続する複数のスイッチに、パケットを処理するための処理規則を設定する制御装置を制御するコンピュータに実行させるプログラムであって、
前記複数のスイッチのうちの第１のスイッチに接続される第１の通信ノードが、前記複数のスイッチのうちの第２のスイッチに接続され、且つ、前記第１の通信ノードと同一のグループに属する第２の通信ノード向けて、ブロードキャストパケットを送信する際に、
グループと、グループに属する通信ノードの対応を示す管理情報、及び前記複数のスイッチと前記複数の通信ノード間の接続からなるネットワークのトポロジに基づいて、前記第１及び第２のスイッチを特定する処理と、
前記ブロードキャストパケットを前記第２のスイッチに転送するための第１の処理規則を、前記第１のスイッチに設定する処理と、
前記ブロードキャストパケットを前記第２の通信ノードに接続されるポートから送出するための第２の処理規則を、前記第２のスイッチに設定する処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、通信方法、制御装置、制御装置の制御方法及びプログラムに関する。特に、ネットワークに配置されたスイッチを集中制御する通信システム、通信方法、制御装置、制御装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている（非特許文献１、２参照）。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。非特許文献２に仕様化されているオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加又は書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）と、フロー統計情報（Ｃｏｕｎｔｅｒｓ）と、処理内容を定義したインストラクション（Ｉｎｓｔｒｕｃｔｉｏｎｓ）と、の組が定義される（非特許文献２の「４．１  Ｆｌｏｗ  Ｔａｂｌｅ」の項参照）。
【０００３】
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチ条件（非特許文献２の「４．３  Ｍａｔｃｈ  Ｆｉｅｌｄｓ」参照）を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報（カウンタ）を更新するとともに、受信パケットに対して、当該エントリのインストラクションフィールドに記述された処理内容（指定ポートからのパケット送信、フラッディング、廃棄等）を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対してエントリ設定の要求、即ち、受信パケットを処理するための制御情報の送信要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を送信する。オープンフロースイッチは、処理内容が定められたフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを制御情報として用いてパケット転送を行う。
【０００４】
さらに、複数のユーザがハードウェアやアプリケーションを共用するクラウドコンピューティングの利用が進んでいる。クラウドコンピューティングでは、複数のサーバやルータ等で構築されたデータセンタ内のリソースを、複数のテナントに分割して使用することが多い。このようなデータセンタでは、各テナントは物理的には同一のリソースを使用しつつも、テナントごとに独立したネットワークをユーザに提供する。
【０００５】
特許文献１には、ＬＡＮ（Local Area Network）内に、特定の端末間通信の経路を管理するＰＡＮサーバが開示されている。このＰＡＮサーバは、各端末機器の通信経路をラベル情報として設定し、各スイッチ、端末それぞれに、生成したラベル情報を設定させる。各接続スイッチは、自身のあるポートからのデータのフレーム中にＰＡＮ通信であることを示す情報が存在する場合、フレーム中に記述された経路ラベル情報で特定されたポートに出力する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−０７３２３０号公報
【非特許文献】
【０００７】
【非特許文献１】Nick McKeownほか７名、"OpenFlow: Enabling Innovation in Campus Networks"、［online］、［平成25年2月1日検索］、インターネット〈URL：http://www.openflowswitch.org//documents/openflow-wp-latest.pdf〉
【非特許文献２】"OpenFlow Switch Specification" Version 1.1.0. (Wire Protocol 0x02) ［平成25年2月1日検索］、インターネット〈URL：http://www.openflowswitch.org/documents/openflow-spec-v1.1.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００８】
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
【０００９】
ブロードキャストパケットは、同一のドメインに属する通信ノードに向けて送信されるパケットである。換言すれば、ルータやＬ３スイッチ（レイヤ３スイッチ）等で物理的に仕切られていなければ、ブロードキャストパケットは同一のドメインに属する全ての通信ノードに到達する。即ち、クラウドコンピューティングのように、複数のユーザがデータセンタ内のリソースを共用する状況下では、ブロードキャストパケットが他のテナントに割り当てられた通信ノード（リソース）に到達する。より具体的には、特定のテナント向けに構築されたネットワークにおいて、ブロードキャストパケットが送出された場合に、他のテナント向けに構築されたネットワークに当該ブロードキャストパケットが転送されることを防ぐのは困難である（テナントごとのネットワークの独立性を確保するのが困難である）。しかし、それぞれのテナントは別個独立した存在であるため、他のテナント向けのネットワークにパケットが転送されることは、セキュリティ上の脅威となり得る。
【００１０】
本発明は、リソースを共有するネットワークにおいて、当該ネットワークの安全性の向上に寄与する通信システム、通信方法、制御装置、制御装置の制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の第１の視点によれば、グループ分けされた複数の通信ノードと、前記複数の通信ノード間を接続し、パケットを処理するための処理規則に従いパケットを処理するスイッチと、前記スイッチに処理規則を設定する制御装置と、を含み、前記制御装置は、通信ノードが同一のグループに属する他の複数の通信ノードに向けて送信するブロードキャストパケットを前記他の複数の通信ノードに転送するための処理規則を、前記スイッチに設定すると共に、前記ブロードキャストパケットを前記ブロードキャストパケットの送信元の通信ノードと異なるグループに属する通信ノードに転送するための処理規則を、前記スイッチに非設定とする通信システムが提供される。
【００１２】
本発明の第２の視点によれば、グループ分けされた複数の通信ノードと、前記複数の通信ノード間を接続し、パケットを処理するための処理規則に従いパケットを処理するスイッチと、を含む通信システムの通信方法であって、同一のグループに属する他の複数の通信ノードに向けてブロードキャストパケットを送信する工程と、前記ブロードキャストパケットを前記他の複数の通信ノードに転送するための処理規則を、前記スイッチに設定する工程と、を含む通信方法が提供される。
なお、本方法は、通信ノードと、スイッチという、特定の機械に結びつけられている。
【００１３】
本発明の第３の視点によれば、グループ分けされた複数の通信ノード間を接続するスイッチに、パケットを処理するための処理規則を設定する制御装置であって、通信ノードが同一のグループに属する他の複数の通信ノードに向けて送信するブロードキャストパケットを前記他の複数の通信ノードに転送するための処理規則を、前記スイッチに設定すると共に、前記ブロードキャストパケットを前記ブロードキャストパケットの送信元の通信ノードと異なるグループに属する通信ノードに転送するための処理規則を、前記スイッチに非設定とする制御装置が提供される。
【００１４】
本発明の第４の視点によれば、グループ分けされた複数の通信ノード間を接続する複数のスイッチに、パケットを処理するための処理規則を設定する制御装置の制御方法であって、前記複数のスイッチのうちの第１のスイッチに接続される第１の通信ノードが、前記複数のスイッチのうちの第２のスイッチに接続され、且つ、前記第１の通信ノードと同一のグループに属する第２の通信ノード向けて、ブロードキャストパケットを送信する際に、グループと、グループに属する通信ノードの対応を示す管理情報、及び前記複数のスイッチと前記複数の通信ノード間の接続からなるネットワークのトポロジに基づいて、前記第１及び第２のスイッチを特定する工程と、前記ブロードキャストパケットを前記第２のスイッチに転送するための第１の処理規則を、前記第１のスイッチに設定する工程と、前記ブロードキャストパケットを前記第２の通信ノードに接続されるポートから送出するための第２の処理規則を、前記第２のスイッチに設定する工程と、を含む制御装置の制御方法が提供される。
なお、本方法は、パケットを処理するスイッチを制御する制御装置という、特定の機械に結びつけられている。
【００１５】
本発明の第５の視点によれば、グループ分けされた複数の通信ノード間を接続する複数のスイッチに、パケットを処理するための処理規則を設定する制御装置を制御するコンピュータに実行させるプログラムであって、前記複数のスイッチのうちの第１のスイッチに接続される第１の通信ノードが、前記複数のスイッチのうちの第２のスイッチに接続され、且つ、前記第１の通信ノードと同一のグループに属する第２の通信ノード向けて、ブロードキャストパケットを送信する際に、グループと、グループに属する通信ノードの対応を示す管理情報、及び前記複数のスイッチと前記複数の通信ノード間の接続からなるネットワークのトポロジに基づいて、前記第１及び第２のスイッチを特定する処理と、
前記ブロードキャストパケットを前記第２のスイッチに転送するための第１の処理規則を、前記第１のスイッチに設定する処理と、前記ブロードキャストパケットを前記第２の通信ノードに接続されるポートから送出するための第２の処理規則を、前記第２のスイッチに設定する処理と、を実行させるプログラムが提供される。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント（ｎｏｎ−ｔｒａｎｓｉｅｎｔ）なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１６】
本発明の各視点によれば、リソースを共有するネットワークにおいて、当該ネットワークの安全性を高める通信システム、通信方法、制御装置、制御装置の制御方法及びプログラムが、提供される。
【図面の簡単な説明】
【００１７】
【図１】一実施形態の概要を説明するための図である。
【図２】第１の実施形態に係る通信システムの一例を示す図である。
【図３】スイッチ１０の内部構成の一例を示す図である。
【図４】スイッチ１０に設定する処理規則の一例を示す図である。
【図５】インストラクションフィールドに設定可能な処理内容とその内容の一例の図である。
【図６】制御装置２０の内部構成の一例を示す図である。
【図７】トポロジＤＢ２２のエントリの一例を示す図である。
【図８】パケット転送経路ＤＢ２５のエントリの一例を示す図である。
【図９】リソース情報ＤＢ３１のエントリの一例を示す図である。
【図１０】スイッチ１０の動作の一例を示すフローチャートである。
【図１１】制御装置２０の動作の一例を示すフローチャートである。
【図１２】制御装置２０の動作の一例を示すフローチャートである。
【図１３】制御装置２０の動作の一例を示すフローチャートである。
【図１４】制御装置２０の動作の一例を示すフローチャートである。
【図１５】制御装置２０の動作の一例を示すフローチャートである。
【図１６】制御装置２０の動作の一例を示すフローチャートである。
【図１７】第１の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図１８】第１の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図１９】第１の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図２０】第１の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図２１】第１の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図２２】第１の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図２３】第１の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図２４】第１の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図２５】第２の実施形態に係る通信システムの一例を示す図である。
【図２６】制御装置２０ａの内部構成の一例を示す図である。
【図２７】管理装置４０の内部構成の一例を示す図である。
【図２８】リソースＤＢ４３のエントリの一例を示す図である。
【図２９】割り当てリソースＤＢ４５のエントリの一例を示す図である。
【図３０】テナントリソースＤＢ４７のエントリの一例を示す図である。
【図３１】制御装置２０ａの動作の一例を示すフローチャートである。
【図３２】ブロードキャスト範囲決定部２８ａの動作の一例を示すフローチャートである。
【図３３】制御装置２０ａの動作の一例を示すフローチャートである。
【図３４】制御装置２０ａの動作の一例を示すフローチャートである。
【図３５】制御装置２０ａの動作の一例を示すフローチャートである。
【図３６】制御装置２０ａの動作の一例を示すフローチャートである。
【図３７】制御装置２０ａの動作の一例を示すフローチャートである。
【図３８】管理装置４０の動作の一例を示すフローチャートである。
【図３９】管理装置４０の動作の一例を示すフローチャートである。
【図４０】管理装置４０の動作の一例を示すフローチャートである。
【図４１】管理装置４０の動作の一例を示すフローチャートである。
【図４２】管理装置４０の動作の一例を示すフローチャートである。
【図４３】管理装置４０の動作の一例を示すフローチャートである。
【図４４】管理装置４０の動作の一例を示すフローチャートである。
【図４５】第２の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図４６】第２の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図４７】第２の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図４８】第２の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図４９】第２の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図５０】第２の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図５１】第２の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図５２】第２の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図５３】通信システムの構成の一例を示す図である。
【発明を実施するための形態】
【００１８】
初めに、図１を用いて一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
【００１９】
上述のように、リソースを共有するネットワークにおいては、当該ネットワークのセキュリティに問題が生じる可能性がある。そのため、リソースを共有するネットワークの安全性を高める通信システムが望まれる。
【００２０】
そこで、一例として図１に示す通信システムを提供する。通信システムは、グループ分けされた複数の通信ノード１０１−１〜１０１−４と、複数の通信ノード１０１−１〜１０１−４間を接続し、パケットを処理するための処理規則に従いパケットを処理するスイッチ１０２と、スイッチ１０２に処理規則を設定する制御装置１０３と、を含む。制御装置１０３は、通信ノードが同一のグループに属する他の複数の通信ノードに向けて送信するブロードキャストパケットを他の複数の通信ノードに転送するための処理規則を、スイッチ１０２に設定すると共に、ブロードキャストパケットをブロードキャストパケットの送信元の通信ノードと異なるグループに属する通信ノードに転送するための処理規則を、スイッチ１０２に非設定とする。
【００２１】
例えば、通信ノード１０１−１〜１０１−３が同一のグループに属し、且つ、通信ノード１０１−１がブロードキャストパケットを送信した場合は、制御装置１０３は、スイッチ１０２に対し、ブロードキャストパケットを通信ノード１０１−２及び１０１−３に転送する処理規則を設定する。より具体的には、制御装置１０３は、スイッチ１０２に対し、ブロードキャストパケットを通信ノード１０１−２及び１０１−２に接続されたポートから送出する処理規則を設定する。一方、制御装置１０３は、ブロードキャストパケットを、通信ノード１０１−４に接続されたポートから送出する処理規則を、スイッチ１０２に設定しない。通信ノード１０１−４は、通信ノード１０１−１とは異なるグループに属するためである。その結果、同一のグループに属する通信ノードに限りブロードキャストパケットは転送されることになり、ネットワークの安全性が向上する。
【００２２】
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。
【００２３】
［第１の実施形態］
第１の実施形態について、図面を用いてより詳細に説明する。
【００２４】
図２は、第１の実施形態に係る通信システムの一例を示す図である。図２を参照すると、ネットワーク間の接続を実現するスイッチ１０−１〜１０−３と、スイッチ１０−１〜１０−３を含むネットワークを制御する制御装置２０と、スイッチ１０−１に接続された通信ノード３０−１及び３０−２と、スイッチ１０−２に接続された通信ノード３０−３と、スイッチ１０−３に接続された通信ノード３０−４及び３０−５と、を含む構成が示されている。例えば、制御装置２０はオープンフローコントローラに相当し、スイッチ１０−１〜１０−３はオープンフロースイッチに相当する。制御装置２０と、スイッチ１０−１〜１０−３は、それぞれ、セキュアチャネルにより接続されている。
【００２５】
制御装置２０は、通信ノード３０−１〜３０−５の稼働又は停止を制御する。より具体的には、制御装置２０は、通信ノード３０−１〜３０−５に対して、制御メッセージを送信することで、それぞれの通信ノードを稼働させ、又は、停止する。なお、以降の説明において、スイッチ１０−１〜１０−３を特に区別する必要のないときは「スイッチ１０」と表記する。同様に、通信ノード３０−１〜３０−５を特に区別する必要のないときは「通信ノード３０」と表記する。また、図２に示す通信システムは例示であって、スイッチや通信ノードの個数及びこれらの接続は、図２の構成に限定されない。例えば、図２には複数のスイッチ１０−１〜１０−３を図示しているが、通信ノード３０−１〜３０−５の間を接続するスイッチは１つでもよい。
【００２６】
図２に示す通信システムは、例えば、通信ノード３０−１〜３０−３がテナントＡに割り当てられ、通信ノード３０−４及び３０−５が別のテナントＢに割り当てられ、運用される。このように、通信システムに含まれる複数の通信ノード３０−１〜３０−５は、複数のグループに分けられ、各テナントに割り当てられる。但し、各テナントに割り当てる通信ノード３０は、固定的ではなく、各テナントが利用できる通信ノード３０は変化する。例えば、ある期間Ｔ１では、テナントＡに通信ノード３０−１〜３０−３が、テナントＢに通信ノード３０−４及び３０−５が、それぞれ割り当てられる。しかし、別の期間Ｔ２では、テナントＡに通信ノード３０−１及び３０−２が、テナントＢに通信ノード３０−３〜３０−５が、それぞれ割り当てられる。このような場合には、テナントＡ及びＢは、通信ノード３０−３を共用する。このように、本実施形態に係る通信システムは、フローベースのネットワークを構築し、各テナントに割り当てるリソースを適宜切り替えることで、リソース（通信ノード３０）の活用度を高めている。
【００２７】
次に、図２に示す通信システムにおいて、通信ノード３０がブロードキャストパケットを送信した場合の動作について概説する。
【００２８】
通信ノード３０がブロードキャストパケットを送信した場合、当該ブロードキャストパケットは、ブロードキャストパケットを送信した通信ノード３０と同じテナントに属する通信ノードに限り、転送される必要がある。例えば、上述の期間Ｔ１では、テナントＡに属する通信ノード３０−１が送信したブロードキャストパケットは、通信ノード３０−２及び３０−３に転送される必要があるが、別のテナントＢに属する通信ノード３０−４及び３０−５には転送しない。
【００２９】
一方、上述の期間Ｔ２では、テナントＡに属する通信ノード３０−１が送信したブロードキャストパケットは、通信ノード３０−２に転送される必要があるが、別のテナントＢに属する通信ノード３０−３〜３０−５には転送しない。制御装置２０は、各テナントへの通信ノード３０の割り当て状況及びテナントに割り当てられた通信ノード３０の動作状態（稼働状態又は停止状態）を、リソース管理情報として管理する。制御装置２０は、このリソース管理情報に基づいて、適宜、スイッチ１０に処理規則を設定することで、ブロードキャストパケットを適切な通信ノード３０に転送する。
【００３０】
通信ノード３０は、サーバ等の計算機である。但し、通信ノード３０をサーバに限定する趣旨ではなく、ファイアウォール、ロードバランサ、暗号化装置等であってもよい。また、通信ノード３０は物理マシンに限定されず、仮想マシンであってもよく、通信システム内に物理マシンと仮想マシンが混在していてもよい。
【００３１】
通信ノード３０は、制御装置２０から制御メッセージを受信し、動作モードを切り替える。例えば、制御装置２０から、停止状態から稼働状態への遷移が指示されると、通信ノード３０は、起動処理（ブート処理）を実行する。また、制御装置２０から、稼働状態から停止状態への遷移が指示されると、通信ノード３０は、終了処理（シャットダウン処理）を実行する。あるいは、起動処理や終了処理に代えて、通信ノード３０は、テナントに提供するサービスを開始（ジョブの開始）し、又は終了（ジョブの終了）してもよい。
【００３２】
図３は、スイッチ１０の内部構成の一例を示す図である。スイッチ１０は、通信部１１と、テーブル管理部１２と、テーブルデータベース（テーブルＤＢ）１３と、転送処理部１４と、を含んで構成されている。
【００３３】
通信部１１は、スイッチ１０に処理規則（フローエントリ）を設定する制御装置２０との通信を実現する手段である。本実施形態では、通信部１１は、非特許文献２のオープンフロープロトコルを用いて制御装置２０と通信するものとする。但し、通信部１１と制御装置２０との通信プロトコルは、オープンフロープロトコルに限定されるものではない。
【００３４】
テーブル管理部１２は、テーブルＤＢ１３に保持されているフローテーブルを管理する手段である。より具体的には、テーブル管理部１２は、制御装置２０から指示された処理規則をテーブルＤＢ１３に登録し、転送処理部１４から新規パケットを受信したことが通知されると、制御装置２０に処理規則の設定を要求する。
【００３５】
テーブルＤＢ１３は、転送処理部１４が受信パケットの処理を行う際に参照するフローテーブルを１つ以上格納可能なデータベースによって構成される。
【００３６】
転送処理部１４は、テーブル検索部１４１と、アクション実行部１４２と、を含んで構成される。テーブル検索部１４１は、テーブルＤＢ１３に格納されたフローテーブルから、受信パケットに適合するマッチフィールドを持つエントリを検索する手段である。アクション実行部１４２は、テーブル検索部１４１にて検索されたエントリのインストラクションフィールドに示す処理内容に従ってパケット処理を行う手段である。
【００３７】
転送処理部１４は、受信パケットに適合するマッチフィールドを持つエントリが見つからなかった場合は、その旨をテーブル管理部１２に通知する。さらに、転送処理部１４は、パケット処理に応じて、テーブルＤＢ１３に登録されている統計情報を更新する。
【００３８】
図４は、スイッチ１０に設定する処理規則の一例を示す図である。図４を参照すると、受信パケットのパケットヘッダと照合するルールを格納するマッチフィールド（Ｍａｔｃｈ  Ｆｉｅｌｄ）と、ルールに適合するパケット等の統計情報を格納するフロー統計情報フィールド（Ｃｏｕｎｔｅｒｓ）と、ルールに適合するパケットに適用する処理内容（Ａｃｔｉｏｎ）を格納するインストラクションフィールド（Ｉｎｓｔｒｕｃｔｉｏｎｓ）と、を対応付けたエントリ（処理規則）が示されている。なお、マッチフィールドには、入力ポートや送信元ＭＡＣアドレス等に関するルールを格納する複数のカラムが含まれる。また、受信パケットのパケットヘッダと照合するルールとして、マッチフィールドの条件にワイルドカードを設定してもよい。
【００３９】
図５は、インストラクションフィールドに設定可能な処理内容とその内容の一例の図である。図５を参照すると、例えば、ＯＵＴＰＵＴは、受信パケットを指定ポート（インタフェース）に出力するアクションであることが分かる。また、ＳＥＴ＿ＶＬＡＮ＿ＶＩＤからＳＥＴ＿ＴＰ＿ＤＳＴは、パケットヘッダのフィールドを修正するアクションである。これらを組み合わせ、スイッチ１０は、例えば、ある送信元から宛先に送信されるパケットのＶＬＡＮ  ＩＤを書き換えた上で、パケットを指定ポートから出力できる。
【００４０】
図６は、制御装置２０の内部構成の一例を示す図である。制御装置２０は、トポロジ管理部２１と、トポロジデータベース（トポロジＤＢ）２２と、制御メッセージ処理部２３と、経路・アクション計算部２４と、パケット転送経路データベース（パケット転送経路ＤＢ）２５と、処理規則管理部２６と、処理規則データベース（処理規則ＤＢ）２７と、ブロードキャスト範囲決定部２８と、構成変更処理部２９と、リソース情報データベース（リソース情報ＤＢ）３１と、スイッチ１０との通信を行うノード通信部３２と、を含んで構成される。
【００４１】
トポロジ管理部２１は、制御メッセージ処理部２３及びノード通信部３２を介して、制御装置２０が制御対象とするスイッチ１０の接続情報（スイッチ１０と通信ノード３０の接続に関する情報、スイッチ１０同士の接続に関する情報）を集約し、ネットワークのトポロジを管理する。トポロジ管理部２１は、スイッチ１０に対して、接続情報の提供を要求し、その応答から得られる情報に基づき、ネットワークのトポロジを管理してもよいし、通信システムの管理者がトポロジを予め制御装置２０に入力してもよい。
【００４２】
トポロジＤＢ２２は、ネットワークのトポロジを記憶するデータベースである。制御装置２０が制御対象とするネットワークのトポロジは、スイッチ１０同士の接続と、スイッチ１０と通信ノード３０との接続と、から成り立つため、トポロジＤＢ２２はこれらの接続に関する情報を記憶する。
【００４３】
図７は、トポロジＤＢ２２のエントリの一例を示す図である。図７（ａ）は、スイッチ１０同士の接続に関するエントリである。図７（ａ）を参照すると、スイッチ１０同士の接続は、それぞれのスイッチ１０を識別するＤＰＩＤ（ＤａｔａＰａｔｈ  ＩＤ）と、ＤＰＩＤに対応したポート番号の組により規定される。
【００４４】
図７（ｂ）は、スイッチ１０と通信ノード３０の接続に関するエントリである。図７（ｂ）を参照すると、スイッチ１０のＤＰＩＤとそのポート番号、及び、当該ポートに接続される通信ノード３０が備えるＮＩＣ（Network Interface Card）のＭＡＣアドレスの対応付けにより、スイッチ１０と通信ノード３０の接続が規定される。なお、以降の説明において、通信機器（例えば、スイッチ１０や通信ノード３０）のＭＡＣアドレスと表記した場合には、当該通信機器が備えるＮＩＣのＭＡＣアドレスを意味するものとする。
【００４５】
制御メッセージ処理部２３は、スイッチ１０から受信したメッセージを解析して、制御装置２０内の該当する処理手段に引き渡す。
【００４６】
経路・アクション計算部２４は、トポロジＤＢ２２が記憶するネットワークのトポロジに基づいて、フローごとのパケット転送経路を計算する。経路・アクション計算部２４は、計算したパケット転送経路をパケット転送経路ＤＢ２５に登録する。経路・アクション計算部２４は、スイッチ１０から処理規則の設定を要求された場合に、パケット転送経路を計算する。
【００４７】
また、経路・アクション計算部２４は、ブロードキャスト範囲決定部２８から、ブロードキャストパケットを転送する範囲（スイッチ１０及びその接続ポート）が指定され、ブロードキャスト用のパケット転送経路の計算の指示を受ける。経路・アクション計算部２４は、指示に従って計算したブロードキャスト用のパケット転送経路をパケット転送経路ＤＢ２５に登録する。なお、以降の説明において、ブロードキャスト用のパケット転送経路を、ブロードキャスト経路と表記する。また、ユニキャスト用のパケット転送経路を、ユニキャスト経路と表記する。経路・アクション計算部２４は、ユニキャスト経路とブロードキャスト経路を計算し、それぞれのパケット転送経路を異なるフォーマットを用いてパケット転送経路ＤＢ２５に登録する。
【００４８】
図８は、パケット転送経路ＤＢ２５のエントリの一例を示す図である。図８（ａ）は、ユニキャスト経路に関するエントリの一例である。ユニキャスト経路に関するエントリは、ＩＮ情報フィールド、ＯＵＴ情報フィールド及びリンク情報フィールドから構成される。ＩＮ情報フィールドは、パケットを最初に入力するポートを格納する。ＯＵＴ情報フィールドは、最後にパケットを出力するポートを格納する。リンク情報フィールドは、通過するリンクに関する情報を格納する。
【００４９】
図８（ｂ）は、ブロードキャスト経路に関するエントリの一例である。ブロードキャスト経路に関するエントリは、テナントを識別するためのテナントＩＤを格納するテナントＩＤフィールドと、ブロードキャスト経路を実現する処理規則のマッチングルールに相当する情報を格納するルール部フィールドと、から構成される。ルール部フィールドは、ブロードキャスト経路を実現するスイッチ１０ごとに用意される。例えば、図２において、ブロードキャスト経路が、スイッチ１０−１（始点）、スイッチ１０−２、スイッチ１０−３（終点）とすれば、スイッチ１０−１及びスイッチ１０−２に設定する処理規則のマッチングルールが、ルール部フィールドに格納される。より詳細には、ルール部フィールドに、ブロードキャストパケットを送信した通信ノード３０のＭＡＣアドレスと、ブロードキャストアドレスが格納される。
【００５０】
処理規則管理部２６は、スイッチ１０に設定する処理規則を管理する。処理規則管理部２６は、経路・アクション計算部２４にて計算されたパケット転送経路に基づき、スイッチ１０に設定する処理規則を生成し、生成した処理規則を処理規則ＤＢ２７に登録する。また、処理規則管理部２６は、ブロードキャスト範囲決定部２８の指示に基づき、スイッチ１０に設定する処理規則を生成し、生成した処理規則を処理規則ＤＢ２７に登録する。あるいは、処理規則管理部２６は、ブロードキャスト範囲決定部２８の指示に基づき、スイッチ１０の設定された処理規則を削除する。さらに、処理規則管理部２６は、計算した処理規則を、制御メッセージ処理部２３及びノード通信部３２を介してスイッチ１０に設定する。
【００５１】
より具体的には、処理規則管理部２６は、経路・アクション計算部２４が計算したユニキャスト経路に基づき、通信ノード間のユニキャストパケットを転送するための処理規則を生成し、スイッチ１０に設定する。また、処理規則管理部２６は、経路・アクション計算部２４が計算したブロードキャスト経路に基づき、ブロードキャストパケットを、テナントに属する通信ノード３０に転送するための処理規則を生成し、スイッチ１０に設定する。
【００５２】
パケット転送経路を実現するための処理規則には、性質の異なる２つの処理規則が存在する。第１の処理規則は、あるスイッチ１０から他のスイッチ１０にパケットを転送するための処理規則である。第２の処理規則は、パケットを受信する通信ノード３０に接続されたポートからパケットを送出するための処理規則である。なお、ブロードキャスト経路を実現する処理規則であって、第１の処理規則に相当する処理規則をブロードキャスト転送規則、第２の処理規則に相当する処理規則をパケットアウト規則、とそれぞれ表記し、以降の説明を行う。
【００５３】
ブロードキャスト範囲決定部２８は、リソース情報ＤＢ３１が記憶するリソース管理情報とトポロジ情報に基づいて、テナントに属する通信ノード３０が送信するブロードキャストパケットを転送すべきスイッチ１０及びその接続ポートを決定する手段である。ブロードキャスト範囲決定部２８は、決定したスイッチ１０及びその接続ポートを指定し、経路・アクション計算部２４に対して、ブロードキャスト経路の計算を指示する。あるいは、ブロードキャスト範囲決定部２８は、処理規則管理部２６に対して、パケットアウト規則の生成及びスイッチ１０への設定又は削除を指示する。
【００５４】
構成変更処理部２９は、リソース情報ＤＢ３１が記憶するリソース管理情報に基づいて、テナントに提供するネットワークのトポロジの変化を認識する。さらに、構成変更処理部２９は、認識したトポロジの変化をトポロジＤＢ２２に反映する。例えば、リソース管理情報が書き換えられて、テナントに割り当てられた通信ノード３０が削除された場合には、ネットワークから当該通信ノード３０が消滅したことと等しいので、通信ノード３０の消滅をトポロジＤＢ２２に反映する。
【００５５】
また、構成変更処理部２９は、リソース情報ＤＢ３１が記憶するリソース管理情報に基づいて、通信ノード３０の動作モードを切り替える。例えば、リソース管理情報が、通信ノード３０−１の停止を示す場合には、構成変更処理部２９が、制御メッセージ処理部２３及びノード通信部３２を介して、通信ノード３０−１に制御メッセージを送信することで、通信ノード３０−１を停止する。
【００５６】
リソース情報ＤＢ３１は、リソース管理情報を記憶する。図９は、リソース情報ＤＢ３１のエントリの一例を示す図である。リソース情報ＤＢ３１のエントリは、通信ノード３０を一意に識別するリソースＩＤフィールドと、通信ノード３０の種別（例えば、サーバ、仮想マシン、ファイアウォール、ロードバランサ、暗号化装置等）を示すリソース種別フィールドと、通信ノード３０の動作状態（稼働状態／停止状態）を示す状態管理フラグと、通信ノード３０が属するグループを識別するグループＩＤフィールドと、通信ノード３０に関するその他の属性値を格納するリソース属性フィールドと、から構成される（図９（ａ）参照）。なお、グループＩＤには、通信ノード３０が属するグループを示す値と、通信ノード３０がいずれのグループにも属さないことを示す値と、が格納され得る。このように、リソース管理情報は、少なくとも、グループと、グループに属する通信ノード３０の対応を示す。あるいは、リソース管理情報は、各グループ（テナント）を識別するＩＤ、各グループに属するリソース（通信ノード３０）を識別するＩＤ、各グループに属するリソース（通信ノード）の動作状態を示す情報である。
【００５７】
図９（ｂ）は、図２に示す通信システムのリソース管理情報の一例である。図９（ｂ）を参照すると、通信ノード３０−１〜３０−３はテナントＡに属し、これらの通信ノード３０は稼働状態であることが分かる。また、通信ノード３０−４及び３０−５はテナントＢに属し、通信ノード３０−４は稼働状態、通信ノード３０−５は停止状態であることが分かる。
【００５８】
なお、リソース管理情報は、制御装置２０の外部から書き換え可能である。例えば、図２において図示しない端末等を用いて、通信システムの管理者（データセンタの管理者）がリソース管理情報を書き換えることで、各テナントに割り当てる通信ノード３０と、その動作状態を管理する。
【００５９】
なお、図３、図６に示したスイッチ１０、制御装置２０の各部（処理手段）は、これらの装置を構成するコンピュータに、そのハードウェアを用いて、後述する各処理を実行させるコンピュータプログラムにより実現することもできる。
【００６０】
次に、スイッチ１０及び制御装置２０の動作について説明する。
【００６１】
図１０は、スイッチ１０の動作の一例を示すフローチャートである。図１０は、スイッチ１０がパケットを受け取った際の動作例を示す。
【００６２】
スイッチ１０の転送処理部１４は、テーブルＤＢ１３に格納されている処理規則のマッチフィールドと受信パケットのパケットヘッダを比較し、受信パケットのパケットヘッダに一致する処理規則が存在するか否かを検索する（ステップＳ１０１、Ｓ１０２）。
【００６３】
受信パケットのパケットヘッダに一致するマッチフィールドを持つ処理規則が存在する場合（ステップＳ１０２、Ｙｅｓ分岐）には、転送処理部１４は、ステップＳ１０１で検索した処理規則のインストラクションフィールドに指定されている処理（Ａｃｔｉｏｎ）を受信パケットに対して実行する（ステップＳ１０３）。
【００６４】
一方、受信パケットのパケットヘッダに一致するマッチフィールドを持つ処理規則が存在しない場合（ステップＳ１０２、Ｎｏ分岐）には、受信パケットを制御装置２０に転送する（ステップＳ１０４）。なお、図１０のフローチャートには示されていないが、スイッチ１０は、制御装置２０から、ＦｌｏｗＭｏｄメッセージを受け取ることで、テーブルＤＢ１３が記憶するフローエントリの追加（ＡＤＤ）又は削除（ＤＥＬ）を行う。
【００６５】
図１１は、制御装置２０の動作の一例を示すフローチャートである。図１１は、スイッチ１０からパケットが送られてきた場合における制御装置２０の動作例を示す。
【００６６】
スイッチ１０が送信するパケットを受信すると、制御メッセージ処理部２３は、当該パケットがブロードキャストパケットか否かを判定する（ステップＳ２０１）。
【００６７】
ブロードキャストパケットでなければ（ステップＳ２０１、Ｎｏ分岐）、ステップＳ２０２〜Ｓ２０６に係る処理が実行される。一方、ブロードキャストパケットであれば（ステップＳ２０１、Ｙｅｓ分岐）、ステップＳ２０７〜Ｓ２１３に係る処理が実行される。
【００６８】
ステップＳ２０２において、経路・アクション計算部２４が、パケットヘッダから送信元と宛先の通信ノード３０を算出すると共に、トポロジＤＢ２２が記憶するネットワークのトポロジを用いて、パケット転送経路（ユニキャスト経路）を計算する。その後、経路・アクション計算部２４は、前ステップで計算したユニキャスト経路を、パケット転送経路ＤＢ２５に登録する（ステップＳ２０３）。
【００６９】
ステップＳ２０４において、処理規則管理部２６は、経路・アクション計算部２４が計算したユニキャスト経路を実現する処理規則（フローエントリ）を生成する。その後、処理規則管理部２６は、生成した処理規則を処理規則ＤＢ２７に登録すると共に、対応するスイッチ１０に処理規則を、制御メッセージ処理部２３及びノード通信部３２を介して設定する（ステップＳ２０５）。
【００７０】
ステップＳ２０６において、処理規則管理部２６は、宛先の通信ノード３０に最も近接するスイッチ１０に対して、宛先の通信ノード３０にパケットを送出するように指示（パケットアウトを指示）すると共に、パケットを当該通信ノード３０に送信する。
【００７１】
ステップＳ２０７において、ブロードキャスト範囲決定部２８は、受信したブロードキャストパケットを転送すべきスイッチ１０及びその接続ポートを決定する（ブロードキャスト範囲を決定する）。より具体的には、ブロードキャスト範囲決定部２８は、ブロードキャストパケットを送信した通信ノード３０と同一のグループに属する通信ノード３０が接続されたスイッチ１０とその接続ポートを割り出す。その際、ブロードキャスト範囲決定部２８は、リソース情報ＤＢ３１を検索し、ブロードキャストパケットの送信元の通信ノード３０と同一のグループに属する通信ノード群を取得する。
【００７２】
例えば、図９（ｂ）に示すようなリソース管理情報がリソース情報ＤＢ３１に登録されている場合に、通信ノード３０−１がブロードキャストパケットを送信すれば、通信ノード３０−２及び３０−３が、同一のグループに属する通信ノードとして取得できる。その後、ブロードキャスト範囲決定部２８は、トポロジＤＢ２２が記憶するネットワークのトポロジを参照することで、取得した通信ノード群が接続されたスイッチ１０とその接続ポートを割り出す。上述の例では、スイッチ１０−１及び１０−２が、取得した通信ノード群が接続されたスイッチ１０として割り出される。ブロードキャスト範囲決定部２８は、割り出したスイッチ１０及びその接続ポートを指定して、経路・アクション計算部２４に対して、パケット転送経路の計算を指示する。
【００７３】
ステップＳ２０８において、経路・アクション計算部２４は、ブロードキャスト経路を計算する。より具体的には、経路・アクション計算部２４は、最初にブロードキャストパケットを受信したスイッチ１０と、前ステップにおいて割り出したスイッチ１０間のブロードキャスト経路を計算する（ステップＳ２０８）。
【００７４】
その後、経路・アクション計算部２４は、前ステップで計算したブロードキャスト経路を、パケット転送経路ＤＢ２５に登録する（ステップＳ２０９）。より具体的には、送信元の通信ノード３０が含まれるテナントのテナントＩＤをテナントＩＤフィールドに格納し、送信元の通信ノード３０のＭＡＣアドレスとブロードキャストアドレスを、ルール部フィールドに格納する。
【００７５】
ステップＳ２１０及びＳ１１において、処理規則管理部２６は、経路・アクション計算部２４が計算したブロードキャスト経路を実現する処理規則を生成する。より詳細には、ステップＳ２１０において、処理規則管理部２６は、ブロードキャスト転送規則を生成する。また、ステップＳ２１１において、処理規則管理部２６は、パケットアウト規則を生成する。
【００７６】
その後、処理規則管理部２６は、ステップＳ２１０及びＳ２１１で生成した処理規則を処理規則ＤＢ２７に登録すると共に、対応するスイッチ１０に処理規則を、制御メッセージ処理部２３及びノード通信部３２を介して設定する（ステップＳ２１２）。例えば、図９（ｂ）に示すリソース管理情報が登録されている場合に、通信ノード３０−１がブロードキャストパケットを送信すれば、ブロードキャスト転送規則として、スイッチ１０−１からスイッチ１０−２にブロードキャストパケットを転送する処理規則が生成され、スイッチ１０−１に設定される。
【００７７】
また、パケットアウト規則として、スイッチ１０−１のポートであって、通信ノード３０−２に接続されたポートからブロードキャストパケットを送出する処理規則（パケットアウト規則）が生成され、スイッチ１０−１に設定される。同様に、スイッチ１０−２に対しても、ブロードキャストパケットを通信ノード３０−３に接続されたポートから送出する処理規則（パケットアウト規則）が設定される。
【００７８】
ステップＳ２１３において、処理規則管理部２６は、受信したパケットを送信したスイッチ１０に返却する。なお、ステップＳ２０２及びＳ２０８におけるパケット転送経路（ユニキャスト経路及びブロードキャスト経路）の計算には、ダイクストラ法を初めとした種々の経路探索手法を用いることができる。
【００７９】
図１２は、制御装置２０の動作の一例を示すフローチャートである。図１２は、リソース管理情報を書き換えることで、テナント（グループ）に属する通信ノード３０の稼働が、制御装置２０に通知された場合の動作例を示す。
【００８０】
グループと、稼働する通信ノード３０が指定されて通信ノード３０の稼働が通知されると、ブロードキャスト範囲決定部２８は、指定されたテナントにブロードキャスト経路が存在するか否かを判定する（ステップＳ２２１）。より具体的には、ブロードキャスト範囲決定部２８は、パケット転送経路ＤＢ２５を検索し、ルール部フィールドにブロードキャストアドレスが格納されているエントリの有無に基づき、ブロードキャスト経路の存在を確認する。
【００８１】
ブロードキャスト経路が存在しなければ（ステップＳ２２１、Ｎｏ分岐）、処理を終了する。一方、ブロードキャスト経路が存在すれば（ステップＳ２２１、Ｙｅｓ分岐）、ブロードキャスト範囲決定部２８は、トポロジＤＢ２２を検索することで、指定された通信ノード３０が接続されたスイッチ１０を特定する（ステップＳ２２２）。ブロードキャスト範囲決定部２８は、特定したスイッチ１０を指定し、処理規則管理部２６に対し、パケットアウト規則（処理規則）の生成を指示する。
【００８２】
次に、処理規則管理部２６は、前ステップにおいて指定されたスイッチ１０に設定するパケットアウト規則を生成する（ステップＳ２２３）。なお、ステップＳ２２１で確認したように、指定されたテナントには既にブロードキャスト経路が存在している。つまり、スイッチ１０には既にブロードキャスト転送規則が設定されている。そのため、スイッチ１０に対してパケットアウト規則を生成すれば足りる。その後、処理規則管理部２６は、前ステップで生成した処理規則を処理規則ＤＢ２７に登録すると共に、対応するスイッチ１０に処理規則を、制御メッセージ処理部２３及びノード通信部３２を介して設定する（ステップＳ２２４）。
【００８３】
図１３は、制御装置２０の動作の一例を示すフローチャートである。図１３は、リソース管理情報を書き換えることで、テナントへの通信ノード３０の追加が、制御装置２０に通知された場合の動作例を示す。
【００８４】
グループと、通信ノードが指定されて通信ノード３０の追加が通知されると、ブロードキャスト範囲決定部２８は、指定されたテナントにブロードキャスト経路が存在するか否かを判定する（ステップＳ２３１）。
【００８５】
ブロードキャスト経路が存在しなければ（ステップＳ２３１、Ｎｏ分岐）、処理を終了する。一方、ブロードキャスト経路が存在すれば（ステップＳ２３１、Ｙｅｓ分岐）、ブロードキャスト範囲決定部２８は、トポロジＤＢ２２を検索することで、指定された通信ノード３０が接続されたスイッチ１０を特定する（ステップＳ２３２）。
【００８６】
その後、ブロードキャスト範囲決定部２８は、前ステップにおいて特定されたスイッチ１０に、指定されたテナントの他の通信ノード３０が接続されているか否かを判定する（ステップＳ２３３）。より具体的には、ブロードキャスト範囲決定部２８は、トポロジＤＢ２２を検索することで、前ステップで特定されたスイッチ１０に、指定されたテナントと同一のグループに属する他の通信ノード３０が既に接続されているか否かを判定する。
【００８７】
特定されたスイッチ１０に、指定されたテナントの他の通信ノード３０が既に接続されている場合（ステップＳ２３３、Ｙｅｓ分岐）には、処理を終了する。この場合には、追加された通信ノード３０が接続されたスイッチ１０に至るブロードキャスト経路が形成されているためである。一方、特定されたスイッチ１０に指定されたテナントの他の通信ノード３０が接続されていない（ステップＳ２３３、Ｎｏ分岐）場合には、ブロードキャスト範囲決定部２８は、経路・アクション計算部２４に対して、既に存在するブロードキャスト経路の始点から、ステップＳ２３２で特定したスイッチ１０までのブロードキャスト経路の計算を指示する（ステップＳ２３４）。経路・アクション計算部２４は、指示に従いブロードキャスト経路を計算する。
【００８８】
次に、処理規則管理部２６は、前ステップにおいて計算されたブロードキャスト経路を実現する処理規則（ブロードキャスト転送規則）を生成する（ステップＳ２３５）。その後、処理規則管理部２６は、前ステップで生成したブロードキャスト転送規則を処理規則ＤＢ２７に登録すると共に、対応するスイッチ１０にブロードキャスト転送規則を、制御メッセージ処理部２３及びノード通信部３２を介して設定する（ステップＳ２３６）。
【００８９】
ここで、例えば、図２に示す通信システムにおいて、通信ノード３０−１〜３０−３がテナントＡに割り当てられ、且つ、スイッチ１０−１からスイッチ１０−２へのブロードキャスト経路が設定されている状況において、通信ノード３０−４がテナントＡに追加された場合を考える。この場合、テナントＡのためのブロードキャスト経路自体は存在するが、スイッチ１０−２からスイッチ１０−３までのブロードキャスト経路が存在しない。そこで、ブロードキャスト範囲決定部２８は、スイッチ１０−２からスイッチ１０−３へのブロードキャスト経路を、経路・アクション計算部２４に計算させる。処理規則管理部２６は、計算されたブロードキャスト経路に基づいて、スイッチ１０−２にブロードキャスト転送規則を設定する。但し、テナントに通信ノード３０が追加されただけの状況下では、ブロードキャストパケットを新たに追加された通信ノード３０に転送する必要はない。即ち、スイッチ１０−３にパケットアウト規則を設定する必要はない。
【００９０】
テナントに通信ノード３０が追加された場合は、その後、追加された通信ノード３０が稼働する可能性が高い。そこで、追加された通信ノード３０が稼働する前に、予めブロードキャスト経路を実現する処理規則を、スイッチ１０に設定することで、ブロードキャストパケットを転送する際の遅延を抑制する。
【００９１】
図１４は、制御装置２０の動作の一例を示すフローチャートである。図１４は、リソース管理情報を書き換えることで、テナントに属する通信ノード３０の停止が、制御装置２０に通知された場合の動作例を示す。
【００９２】
グループと、通信ノードが指定されて通信ノードの停止が通知されると、ブロードキャスト範囲決定部２８は、指定されたテナントにブロードキャスト経路が存在するか否かを判定する（ステップＳ２４１）。
【００９３】
ブロードキャスト経路が存在しなければ（ステップＳ２４１、Ｎｏ分岐）、ステップＳ２４４に処理を遷移する。一方、ブロードキャスト経路が存在すれば（ステップＳ２４１、Ｙｅｓ分岐）、ブロードキャスト範囲決定部２８は、トポロジＤＢ２２を検索することで、指定された通信ノード３０が接続されたスイッチ１０を特定する（ステップＳ２４２）。
【００９４】
次に、ブロードキャスト範囲決定部２８は、処理規則管理部２６に対して、特定されたスイッチ１０から指定された通信ノード３０へブロードキャストパケットを転送する処理内容を持つパケットアウト規則の削除を指示する（ステップＳ２４３）。その後、処理規則管理部２６は、指定された通信ノード３０に関連する処理規則（例えば、ユニキャスト経路を実現するための処理規則）を削除する（ステップＳ２４４）。
【００９５】
処理規則管理部２６は、制御メッセージ処理部２３及びノード通信部３２を介して、ＦｌｏｗＭｏｄ（ＤＬＬ）メッセージを対応するスイッチ１０に送信することで、処理規則を削除する。より具体的には、マッチングフィールドにおける送信元ＭＡＣアドレスに停止が通知された通信ノード３０のＭＡＣアドレスを、他のカラムにはワイルドカードを、それぞれ指定し、ＦｌｏｗＭｏｄ（ＤＬＬ）メッセージを用いて処理規則を削除する。
【００９６】
図１５は、制御装置２０の動作の一例を示すフローチャートである。図１５は、リソース管理情報を書き換えることで、テナントに属する通信ノード３０の削除が、制御装置２０に通知された場合の動作例を示す。
【００９７】
グループと、通信ノードが指定されて通信ノード３０の削除が通知されると、ブロードキャスト範囲決定部２８は、指定されたテナントにブロードキャスト経路が存在するか否かを判定する（ステップＳ２５１）。
【００９８】
ブロードキャスト経路が存在しなければ（ステップＳ２５１、Ｎｏ分岐）、処理を終了する。一方、ブロードキャスト経路が存在すれば（ステップＳ２５１、Ｙｅｓ分岐）、ブロードキャスト範囲決定部２８は、トポロジＤＢ２２を検索することで、指定された通信ノード３０が接続されたスイッチ１０を特定する（ステップＳ２５２）。
【００９９】
その後、ブロードキャスト範囲決定部２８は、前ステップにおいて特定されたスイッチ１０に指定されたテナントの他の通信ノード３０が接続されているか否かを判定する（ステップＳ２５３）。特定されたスイッチ１０に指定されたテナントの他の通信ノード３０が既に接続されている場合（ステップＳ２５３、Ｙｅｓ分岐）には、処理を終了する。
【０１００】
ステップＳ２５４において、ブロードキャスト範囲決定部２８は、処理規則管理部２６に対して、ステップＳ２５２で特定したスイッチ１０に設定されている処理規則（ブロードキャスト転送規則及びパケットアウト規則）の削除を指示する。テナントへの通信ノード３０の割り当てが終了すると、削除された通信ノード３０にブロードキャストパケットを転送する必要はない。そのため、削除しても影響がないブロードキャスト経路を削除する。
【０１０１】
図１６は、制御装置２０の動作の一例を示すフローチャートである。図１６は、リソース管理情報を書き換えることで、テナントの削除が、制御装置２０に通知された場合の動作例を示す。
【０１０２】
テナントが指定されて、その削除が通知されると、ブロードキャスト範囲決定部２８は、指定されたテナントにブロードキャスト経路が存在するか否かを判定する（ステップＳ２６１）。ブロードキャスト経路が存在しなければ（ステップＳ２６１、Ｎｏ分岐）、処理を終了する。
【０１０３】
ステップＳ２６２において、ブロードキャスト範囲決定部２８は、処理規則管理部２６に対して、削除が通知されたテナントに関する処理規則の削除を指示する。このように、テナント自体が削除されてしまえば、当該テナントのために設けられたブロードキャスト経路は不要であるので、ブロードキャスト経路を実現する処理規則をスイッチ１０から削除する。
【０１０４】
図１７〜図２４は、本実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【０１０５】
図１７は、通信ノード３０−１から通信ノード３０−２に向けてパケットを送信する場合の動作例を示す。
【０１０６】
図１７を参照すると、初めに、通信ノード３０−１は、スイッチ１０−１に向けてパケット（図１７のＭｅｓｓｅａｇｅＵ１）を送信する。通信ノード３０−１からパケットを受信したスイッチ１０−１は、当該パケットを添えて制御装置２０に処理規則の設定を要求する。
【０１０７】
制御装置２０の経路・アクション計算部２４は、パケットヘッダ及びトポロジＤＢ２２が記憶するネットワークのトポロジを参照し、パケット転送経路を計算する。その後、処理規則管理部２６は、計算されたパケット転送経路に応じてスイッチ１０に設定する処理規則を生成する。処理規則管理部２６は、生成した処理規則を、制御メッセージ処理部２３及びノード通信部３２を介してスイッチ１０−１に設定する。より詳細には、スイッチ１０−１が備えるテーブルＤＢ１３に新たなエントリを追加する（図１７のＦｌｏｗＭｏｄ（ＡＤＤ）メッセージを送信する）。
【０１０８】
制御装置２０は、処理規則をスイッチ１０−１に設定した後、スイッチ１０−１にパケット（ＭｅｓｓｅａｇｅＵ１）を返却する（パケットアウトする）。
【０１０９】
スイッチ１０−１は、受信したパケットを通信ノード３０−２に転送する。その後、通信ノード３０−１から通信ノード３０−２に向けられたパケット（図２のＭｅｓｓｅａｇｅＵ２）は、スイッチ１０−１に設定された処理規則に従い処理され、通信ノード３０−２に転送される。
【０１１０】
図１８は、通信ノード３０−１〜３０−３が同一テナントに割り当てられ、且つ、通信ノード３０−１及び３０−２が稼働状態にある場合において、通信ノード３０−１からブロードキャストパケットが送信された場合の動作例を示す。
【０１１１】
図１８を参照すると、通信ノード３０−１は、スイッチ１０−１に向けてブロードキャストパケット（図１８のＭｅｓｓｅａｇｅＢ１）を送信する。
【０１１２】
通信ノード３０−１からブロードキャストパケットを受信したスイッチ１０−１は、当該ブロードキャストパケットを添えて制御装置２０に処理規則の設定を要求する。ブロードキャスト範囲決定部２８は、リソース情報ＤＢ３１及びトポロジＤＢ２２を検索し、ブロードキャストパケットを転送する範囲を決定し、経路・アクション計算部２４にブロードキャスト経路の計算を指示する。ここでは、スイッチ１０−１及び１０−２を含むブロードキャスト経路が計算される。
【０１１３】
その後、処理規則管理部２６は、計算されたブロードキャスト経路に応じてスイッチ１０−１及び１０−２に設定する処理規則を生成する。より具体的には、スイッチ１０−１に対しては、送信元ＭＡＣアドレスが通信ノード３０−１のＭＡＣアドレスを持つブロードキャストパケットを、スイッチ１０−２に転送することを処理内容とする処理規則を設定する（ブロードキャスト転送規則を設定する）。さらに、スイッチ１０−１に対して、送信元ＭＡＣアドレスが通信ノード１０−１のＭＡＣアドレスを持つブロードキャストパケットを、通信ノード３０−２に送出することを処理内容とする処理規則を設定する（パケットアウト規則を設定する）。
【０１１４】
なお、スイッチ１０−２に対しては、処理規則を設定しない。通信ノード３０−３は、テナントに割り当てられているが、停止状態のためである。即ち、スイッチ１０−２にパケットアウト規則を設定し、通信ノード３０−３にブロードキャストパケットを転送する必要はない。
【０１１５】
制御装置２０は、処理規則をスイッチ１０−１に設定した後、スイッチ１０−１にブロードキャストパケット（ＭｅｓｓｅａｇｅＢ１）を返却する。スイッチ１０−１は、設定された処理規則に従い、受信したパケットを通信ノード３０−２及びスイッチ１０−２に転送する。その後、通信ノード３０−１から送信されたブロードキャストパケット（ＭｅｓｓｅａｇｅＢ２）は、スイッチ１０−１に設定された処理規則に従い、通信ノード３０−２及びスイッチ１０−２に転送される。
【０１１６】
図１９は、通信ノード３０−１〜３０−３が同一テナントに割り当てられ、且つ、通信ノード３０−１〜３０−３が稼働状態にある場合において、通信ノード３０−１からブロードキャストパケットが送信された場合の動作例を示す。
【０１１７】
この場合には、図１８に示す動作例とは異なり、スイッチ１０−２に対しても、パケットアウト規則が設定される。その結果、通信ノード３０−１からブロードキャストされたパケット（ＭｅｓｓｅａｇｅＢ１及びＢ２）は、スイッチ１０−１及び１０−２に設定された処理規則に従い処理され、通信ノード３０−２及び通信ノード３０−３に転送される。
【０１１８】
図２０は、通信ノード３０−１〜３０−３が同一テナントに割り当てられ、且つ、通信ノード３０−１及び３０−２が稼働状態にて既にブロードキャスト経路が設定されている場合において、通信ノード３０−３が稼働状態に遷移する場合の動作例を示す。
【０１１９】
図１８の動作例では、スイッチ１０−２に対してパケットアウト規則を設定していない。その理由は、上述のように、テナントに割り当てられた通信ノード３０は停止状態のためである。図２０の動作例は、図１８の状況から通信ノード３０−３が稼働状態に遷移する場合の動作例である。
【０１２０】
図２０を参照すると、通信ノード３０−３が稼働状態に遷移する場合には、制御装置２０が、パケットアウト規則をスイッチ１０−２に追加設定する。なお、スイッチ１０−１からスイッチ１０−２に向けたブロードキャスト経路を実現する処理規則はスイッチ１０−１に設定されているため、ブロードキャスト転送規則を設定する必要はない。即ち、スイッチ１０−２に設定する処理規則に関し、通信ノード３０−１からのブロードキャストパケットを通信ノード３０−３に転送する処理規則を追加すれば足りる。
【０１２１】
その後、制御装置２０は、通信ノード３０−３に対して、稼働状態への遷移を指示する。通信ノード３０−３が稼働状態に遷移した後は、通信ノード３０−１が送信するブロードキャストパケットは、スイッチ１０−１及び１０−２を介して通信ノード３０−２及び３０−３に転送される。
【０１２２】
図２１は、通信ノード３０−１〜３０−３が同一テナントに割り当てられ、且つ、通信ノード３０−１〜３０−３が稼働状態にて既にブロードキャスト経路が設定されている場合において、通信ノード３０−２が停止状態に遷移する場合の動作例を示す。
【０１２３】
この場合、既にスイッチ１０−１には、通信ノード３０−１から送信されたブロードキャストパケットを通信ノード３０−２に送出することを処理内容とする処理規則（パケットアウト規則）が設定されている。そこで、制御装置２０は、スイッチ１０−１に設定されているパケットアウト規則を削除する。その後、制御装置２０は、通信ノード３０−２に対して、停止状態への遷移を指示する。なお、図２１の動作例では、スイッチ１０−１に設定されているブロードキャスト転送規則（スイッチ１０−１からスイッチ１０−２にブロードキャストパケットを転送するための処理規則）を削除しない。スイッチ１０−２は、ブロードキャストパケットを通信ノード３０−３に転送する必要があるためである。
【０１２４】
図２２は、通信ノード３０−１〜３０−３が同一テナントに割り当てられ、且つ、通信ノード３０−１〜３０−３が稼働状態にて既にブロードキャスト経路が設定されている場合において、テナントを削除する場合の動作例を示す。
【０１２５】
この場合、制御装置２０は、スイッチ１０−１及び１０−２に設定された処理規則（ブロードキャスト転送規則及びパケットアウト規則）を削除する。その後、制御装置２０は、削除するテナントに割り当てられた通信ノード３０−１〜３０−３を停止状態に遷移させる。
【０１２６】
図２３は、通信ノード３０−１及び３０−２が同一テナントに割り当てられ、且つ、通信ノード３０−１及び３０−２が稼働状態にて既にブロードキャスト経路が設定されている場合において、テナントに通信ノード３０−３を追加する場合の動作例を示す。
【０１２７】
この場合には、制御装置２０は、スイッチ１０−１に対し、通信ノード３０−１が送信するブロードキャストパケットを、スイッチ１０−２に転送する処理規則（ブロードキャスト転送規則）を設定する。その後、通信ノード３０−１が送信するブロードキャストパケット（図２３のＭｅｓｓａｇｅＢ３）は、通信ノード３０−２及びスイッチ１０−２に転送される。なお、図２３の動作例では、テナントに通信ノード３０を追加するに留まっており、通信ノード３０−３の稼働は指示されていないので、スイッチ１０−２に対し、パケットアウト規則を設定しない。
【０１２８】
図２４は、通信ノード３０−１〜３０−３が同一テナントに割り当てられ、且つ、通信ノード３０−１及び３０−２が稼働状態にて既にブロードキャスト経路が設定されている場合において、テナントから通信ノード３０−３を削除する場合の動作例を示す。
【０１２９】
この場合、制御装置２０は、スイッチ１０−１に設定されている処理規則であって、通信ノード３０−１から送信されたブロードキャストパケットをスイッチ１０−２に転送する処理規則（ブロードキャスト転送規則）を削除する。さらに、制御装置２０は、スイッチ１０−２に設定されているパケットアウト規則も削除する。その後、通信ノード３０−１が送信するブロードキャストパケット（図２４のＭｅｓｓａｇｅＢ３）は、通信ノード３０−２に限り転送される。
【０１３０】
以上のように、本実施形態に係る制御装置２０は、リソース（通信ノード３０）のテナントへの割り当て及び動作状態を考慮して、ブロードキャスト範囲を決定し、スイッチ１０に設定する処理規則を生成する。その結果、ブロードキャストパケットは、同一のグループ（テナント）に属する通信ノード３０に限り転送されることになり、ネットワークの安全性が向上する。
【０１３１】
また、特許文献１が開示する技術は、特定のドメイン（サブネット）に、レイヤ２やレイヤ３に依存しない閉じたネットワークに適用するのが前提である。一方、本実施形態に係る通信システムでは、１つのドメイン（レイヤ２サブネット）に、レイヤ２やレイヤ３に依存しないネットワークを生成している。即ち、フローベーススイッチで形成されたネットワークに、複数のレイヤ２サブネットからなるテナントを複数包含させ、且つ、各テナントを独立させ、テナントに関連しないスイッチにはブロードキャストパケットを転送しない。
【０１３２】
また、制御装置２０は、通信ノード３０の動作状態を考慮し、将来、稼働する可能性のある通信ノード３０装置が接続されるスイッチ１０には、ブロードキャストパケットが転送されるように、処理規則を予め設定しておく。その結果、停止状態にある通信ノード３０が稼働状態に遷移し、ブロードキャストパケットを転送する必要が生じた場合でも、低遅延でブロードキャストパケットを転送できる。
【０１３３】
［第２の実施形態］
続いて、第２の実施形態について図面を参照して詳細に説明する。
【０１３４】
図２５は、第２の実施形態に係る通信システムの一例を示す図である。図２５において図２と同一構成要素には、同一の符号を付し、その説明を省略する。図２と図２５の相違点は、制御装置２０ａの動作と、管理装置４０が追加されている点である。
【０１３５】
第２の実施形態に係る通信システムでは、管理装置４０が、第１の実施形態において説明したリソース管理情報を取り扱う。より具体的には、管理装置４０は、通信システムの管理者等が入力するテナント管理情報に基づき、テナントの追加及び削除、テナントへのリソースの追加及び削除、テナントに割り当てられているリソースの稼働及び停止、を管理する。即ち、テナント管理情報とは、テナントの追加等を明示する情報であって、管理装置４０の外部から入力される情報である。管理装置４０は、テナント管理情報の変更を認識すると、通信システムの運用状況が変更となったものとして、制御装置２０ａに対し、リソース管理情報変更通知を行う。リソース管理情報変更通知を受信した制御装置２０ａは、当該通知に応じて、ブロードキャスト経路の有無等を判定し、適宜、スイッチ１０に処理規則を設定する。
【０１３６】
また、制御装置２０ａは、ブロードキャスト範囲を決定する際に、管理装置４０に対して、リソース管理情報提供要求を行う。このリソース管理情報提供要求は、第１の実施形態において説明したリソース管理情報の提供を管理装置４０に要求するものである。制御装置２０ａは、リソース管理情報提供要求に対する応答に基づいて、ブロードキャスト範囲を決定する。
【０１３７】
管理装置４０は、通信ノード３０−１〜３０−５の管理を行う装置である。具体的には、通信システムへのテナントの追加と削除、テナントへのリソースの追加と削除、リソースの稼働と停止を管理する。
【０１３８】
図２６は、制御装置２０ａの内部構成の一例を示す図である。図２６において図６と同一構成要素には、同一の符号を付し、その説明を省略する。制御装置２０と制御装置２０ａとの相違点は、リソース情報ＤＢ３１が存在しない点と、ブロードキャスト範囲決定部２８ａ及び構成変更処理部２９ａの動作が、それぞれ、ブロードキャスト範囲決定部２８及び構成変更処理部２９と異なる点である。
【０１３９】
ブロードキャスト範囲決定部２８ａは、リソース情報ＤＢ３１を検索することに代えて、管理装置４０にリソース管理情報提供要求を行う。ブロードキャスト範囲決定部２８ａは、管理装置４０からの応答に基づいて、ブロードキャストパケットの転送範囲を定める。より具体的には、ブロードキャスト範囲決定部２８ａは、第１の実施形態におけるリソース管理情報に相当する情報が必要となる場合に、管理装置４０に対してリソース管理情報提供要求を行う。その後、管理装置４０からのリソース管理情報提供要求に対する応答に基づき、ブロードキャスト範囲を決定する。また、ブロードキャスト範囲決定部２８ａは、上述のリソース管理情報変更通知を受信した場合に、必要に応じて、スイッチ１０に処理規則（ブロードキャスト転送規則及びパケットアウト規則）を設定する。さらに、ブロードキャスト範囲決定部２８ａは、リソース管理情報変更通知に応答することで、スイッチ１０に処理規則を設定した旨を管理装置４０に通知する。
【０１４０】
構成変更処理部２９ａは、リソース管理情報変更通知に基づいて、トポロジＤＢ２２の更新を行う。なお、第１の実施形態に係る制御装置２０は、構成変更処理部２９を使用して通信ノード３０の動作状態を管理する。第２の実施形態においては、管理装置４０が、通信ノード３０の制御し、管理する。そのため、制御装置２０ａの構成変更処理部２９ａは、通信ノード３０の動作状態を制御する機能を有さない。
【０１４１】
図２７は、管理装置４０の内部構成の一例を示す図である。管理装置４０は、リソース変更処理部４１と、リソース管理部４２と、リソースデータベース（リソースＤＢ）４３と、割り当て計画部４４と、割り当てリソースデータベース（割り当てリソースＤＢ）４５と、稼働リソース決定部４６と、テナントリソースデータベース（テナントリソースＤＢ）４７と、解放処理実行部４８と、制御装置２０ａ、通信ノード３０及び端末（図２５において図示せず）との通信を行う通信部４９と、を含んで構成される。
【０１４２】
リソース変更処理部４１は、通信部４９を介して、外部よりテナント管理情報を受け付ける。より具体的には、通信システムの管理者は、図２５に図示しない端末等を用いてテナント管理情報を管理装置４０に入力する。リソース変更処理部４１は、テナント管理情報に応じた処理（例えば、テナントに割り当てるリソースの追加等）を実行した後、通信部４９を介して、テナント管理情報に対する応答を行う。例えば、テナント管理情報が、テナントへのリソースの追加に係る要求の場合には、リソース変更処理部４１は当該要求を正常に処理したか否かを応答する。
【０１４３】
リソース変更処理部４１は、テナント管理情報に従い、テナントの追加と削除、各テナントへのリソースの追加と削除、テナントに割り当てたリソースの稼働と停止、を制御する。より具体的には、リソース変更処理部４１は、割り当て計画部４４、稼働リソース決定部４６又は解放処理実行部４８のいずれかに対し、リソースの追加や削除等を指示する。また、リソース変更処理部４１は、テナント管理情報と各部（割り当て計画部４４等）に行った指示に対する応答に基づき、制御装置２０ａに対し、リソース管理情報変更通知を行う。
【０１４４】
さらに、リソース変更処理部４１は、テナント管理情報と制御装置２０ａから応答に応じて、リソース管理部４２に対し、リソースの稼働又は停止に係る指示を行う。
【０１４５】
さらにまた、リソース変更処理部４１は、通信部４９を介して、制御装置２０ａからリソース管理情報提供要求を受信した場合には、各種のデータベースを検索し、リソースの割り当て状況や稼働状態を制御装置２０ａに応答する。
【０１４６】
リソース管理部４２は、各テナントに割り当てられたリソースを制御し、管理する手段である。リソース管理部４２は、リソース変更処理部４１からの指示に基づき、通信ノード３０の動作状態を制御し、管理する。より具体的には、リソース管理部４２は、通信ノード３０に対して制御メッセージを送信し、通信ノード３０の動作状態を変更する。リソース管理部４２は、通信ノード３０の動作状態を変更した後、リソース変更処理部４１に通信ノード３０の制御が終了した旨を応答する。
【０１４７】
リソースＤＢ４３は、通信システム全体に含まれる通信ノード３０（システムのリソース）に関する情報を記憶するデータベースである。
【０１４８】
図２８は、リソースＤＢ４３のエントリの一例を示す図である。リソースＤＢ４３のエントリは、通信システム全体に含まれるリソースを一意に識別するためのＩＤを格納するリソースＩＤフィールドと、リソースの種別（例えば、計算機、仮想マシン等）を示すリソース種別フィールドと、当該リソースが既にテナントに割り当てられているか否かを示す割り当てフラグと、その他リソースの属性を示すリソース属性フィールドと、を含んでいる。なお、リソースの属性には、当該リソースのＭＡＣアドレスが含まれる。リソースの属性にＭＡＣアドレスを含ませることにより、管理装置４０から制御装置２０ａにリソースの稼働等を通知する際に、ＭＡＣアドレスの検索を省略できる。あるいは、リソースを識別するためのＩＤとしてＭＡＣアドレスを使用してもよい。
【０１４９】
リソースＤＢ４３のエントリは、通信システム全体に含まれるリソースが変更（リソースの追加又は削除）されることに応じて、更新される。
【０１５０】
割り当て計画部４４は、リソース変更処理部４１の指示に従い、テナントに割り当てるリソースを決定する手段である。割り当て計画部４４は、指定されたテナントにリソースの割り当てが行えたか否かを、リソース変更処理部４１に応答する。割り当て計画部４４は、リソースＤＢ４３を検索し、テナントに割り当てるリソースが存在する判断すれば、当該リソースに関する情報を割り当てリソースＤＢ４５に登録する。なお、以降の説明において、割り当て計画部４４が実行する処理を、リソース割り当て計画と表記する。
【０１５１】
割り当てリソースＤＢ４５は、割り当て計画部４４がテナントに割り当てたリソースを記憶するデータベースである。
【０１５２】
図２９は、割り当てリソースＤＢ４５のエントリの一例を示す図である。割り当てリソースＤＢ４５のエントリは、リソースの割り当て先のテナントを示すテナントＩＤフィールドと、割り当てられたリソースに関する情報を示すリソース情報フィールドと、を含んでいる。なお、リソース情報フィールドには、リソースを識別するリソースＩＤと、当該リソースの動作状態（稼働状態又は停止状態）を示す動作状態フラグと、が格納される。例えば、テナントにリソースが割り当てられていたとしても、当該リソースが停止状態にあれば、当該リソースに対応する動作状態フラグは、「偽（停止状態）」とする。
【０１５３】
稼働リソース決定部４６は、リソース変更処理部４１の指示に従い、テナントに割り当てられているリソースの中から稼働させるリソースを決定する手段である。その際、リソース変更処理部４１は、稼働リソース決定部４６に対し、テナントと稼働させるリソースの数が指定する。稼働リソース決定部４６は、指定された数のリソースを稼働させることが行えたか否かをリソース変更処理部４１に応答する。稼働リソース決定部４６は、割り当てリソースＤＢ４５を検索し、指定されたテナントに割り当てられたリソースの中から稼働させるリソースを決定する。稼働リソース決定部４６は、稼働させるリソースを決定した後、当該リソースをテナントリソースＤＢ４７に登録する。
【０１５４】
テナントリソースＤＢ４７は、テナントに属するリソースであって、稼働中のリソースを記憶するデータベースである。
【０１５５】
図３０は、テナントリソースＤＢ４７のエントリの一例を示す図である。テナントリソースＤＢ４７のエントリは、テナントを示すテナントＩＤフィールドと、当該テナントに割り当てられ、且つ、稼働しているリソースを示す複数のリソースＩＤフィールドと、を含む。
【０１５６】
解放処理実行部４８は、リソース変更処理部４１の指示に従い、テナントに割り当てられているリソースであって、稼働中のリソースを停止する手段である。その際、リソース変更処理部４１は、解放処理実行部４８に対し、テナントと停止させるリソースの数を指定する。また、解放処理実行部４８は、テナントの削除に係る指示を受けると、当該テナントに割り当て済みのリソースを未割り当てとする手段でもある。なお、以降の説明において、解放処理実行部４８が実行する処理であって、稼働中のリソースを停止する処理を、リソース解放計画と表記する。
【０１５７】
なお、図２６、図２７に示した制御装置２０ａ、管理装置４０の各部（処理手段）は、これらの装置を構成するコンピュータに、そのハードウェアを用いて、後述する各処理を実行させるコンピュータプログラムにより実現することもできる。
【０１５８】
次に、制御装置２０ａの動作について説明する。
【０１５９】
なお、制御装置２０ａがスイッチ１０からパケットを受け取った際の動作は、図１０を用いて説明した動作と相違する点は存在しないので、さらなる説明を省略する。
【０１６０】
図３１は、制御装置２０ａの動作の一例を示すフローチャートである。図３１は、図１１を用いて説明した動作に相当する動作例を示す。図１１と図３１の相違点は、ステップＳ２０７ａに係る処理である。
【０１６１】
ステップＳ２０７ａにおいて、ブロードキャスト範囲決定部２８ａは、受信したブロードキャストパケットを転送するスイッチ１０及びその接続ポートを決定する（ブロードキャスト範囲を決定する）。ブロードキャスト範囲決定部２８ａは、ブロードキャスト範囲の決定に必要なリソース管理情報の提供を、管理装置４０に要求する。ブロードキャスト範囲決定部２８ａは、管理装置４０から得られる情報に基づいて、ブロードキャスト範囲を決定する。
【０１６２】
図３２は、ブロードキャスト範囲決定部２８ａの動作の一例を示すフローチャートである。
【０１６３】
ステップＳ２０７１において、ブロードキャスト範囲決定部２８ａは、管理装置４０に対して、ブロードキャストパケットを送信する通信ノード３０が属するテナントを指定して、当該テナントに関するリソース管理情報提供要求を行い、その応答を待つ（ステップＳ２０７２）。
【０１６４】
ブロードキャスト範囲決定部２８ａは、リソース管理情報提供要求に対する応答とトポロジＤＢ２２が記憶するネットワークのトポロジと、からブロードキャストパケットの転送に使用するスイッチ１０を特定する（ステップＳ２０７３）。その後、ブロードキャスト範囲決定部２８ａは、テナントに割り当てられた通信ノード３０（リソース）が接続されたスイッチ１０とそのポートを、トポロジＤＢ２２を検索することで、特定する（ステップＳ２０７４）。本ステップで特定するスイッチ１０及びその接続ポートが、ブロードキャスト範囲に相当する。なお、ステップＳ２０７２における管理装置４０側の動作は、後述する。
【０１６５】
図３３〜図３７は、それぞれ、図１２〜図１６に相当する制御装置２０ａの動作の一例を示すフローチャートである。図３３〜図３７において、図１２〜図１６と同一の処理に関しては、同一のステップ名を与え、説明を省略する。対応する図面間の相違点は、各図に示す処理を終了する直前に、管理装置４０に対して応答する点である。
【０１６６】
管理装置４０は、通信システムの運用状況の変化（テナント管理情報の変化；即ち、テナントの追加と削除、テナントへのリソースの追加と削除、リソースの稼働と停止）に応じて、変化した内容を制御装置２０ａに通知する（リソース管理情報変更通知を行う）。制御装置２０ａでは、管理装置４０からの通知に従い、適切な処理（例えば、ブロードキャスト転送規則の設定等）を行い、当該処理が終了した旨を管理装置４０に応答する。応答を受けた管理装置４０は、必要に応じて、リソース（通信ノード３０）の制御及び管理を行う。
【０１６７】
図３３を例に取り、上記図面間の相違点を説明する。図３３は、管理装置４０から、テナントに割り当てられている通信ノード３０の稼働が通知された場合の制御装置２０ａの動作例を示す。この場合、制御装置２０ａは、ステップＳ２２１〜Ｓ２２４に係る処理を実行することで、稼働が通知された通信ノード３０に対してブロードキャストパケットが転送されるように動作する。より具体的には、制御装置２０ａは、スイッチ１０にパケットアウト規則を設定する。
【０１６８】
その後、ステップＳ２２５において、制御装置２０ａは、管理装置４０に対して、稼働が通知された通信ノード３０に対するブロードキャストパケットを転送する準備が完了した旨を応答する。応答を受けた管理装置４０のリソース管理部４２は、通信ノード３０に制御メッセージを送信し、通信ノード３０を稼働状態に遷移させる。その際、既に、スイッチ１０にはブロードキャストパケットを転送するための処理規則（ブロードキャスト転送規則及びパケットアウト規則）が設定されているため、稼働を開始した通信ノード３０にブロードキャストパケットが転送される。
【０１６９】
次に、管理装置４０の動作について説明する。
【０１７０】
図３８〜図４４は、管理装置４０の動作の一例を示すフローチャートである。
【０１７１】
図３８は、テナントを登録する際の管理装置４０の動作例を示す。
【０１７２】
管理装置４０にテナントを登録する際は、テナントＩＤと、当該テナントに割り当てるリソースの数（最大値）が、テナント管理情報により指定される。リソース変更処理部４１は、このようなテナント管理情報を受け付けると、割り当て計画部４４に、リソース割り当て計画を実行させる（ステップＳ４０１）。より具体的には、割り当て計画部４４は、リソースＤＢ４３に登録されているリソース（通信システム全体に含まれるリソース）から、テナントに割り当てるリソースを決定する。割り当て計画部４４は、要求されたリソースを割り当てることができるか否かを判定する（ステップＳ４０２）。
【０１７３】
例えば、リソースＤＢ４３に登録されているリソースであって、未割り当てのリソースの数が、割り当てを要求されたリソースの数に満たないなどの理由により、テナントにリソースの割り当てができなければ（ステップＳ４０２、Ｎｏ分岐）、ステップＳ４０３に係る処理が実行される。テナントにリソースの割り当てができれば（ステップＳ４０２、Ｙｅｓ分岐）、ステップＳ４０４及び４０５に係る処理が実行される。
【０１７４】
ステップＳ４０３において、割り当て計画部４４は、リソース変更処理部４１に対して、リソースを割り当てることができない旨を応答する。リソース変更処理部４１は、通信部４９を介して、テナントの登録ができない旨を応答する（例えば、テナント管理情報を入力する端末にリソース割り当て不可を応答する）。
【０１７５】
ステップＳ４０４において、割り当て計画部４４は、リソースＤＢ４３のエントリの中のステップＳ４０１で決定したリソースに対応する割り当てフラグを、「割り当て済み」に変更する。その後、割り当て計画部４４は、割り当てリソースＤＢ４５のテナントＩＤフィールドと、リソース情報フィールドを、テナントに割り当てたリソースに基づいて更新する（ステップＳ４０５）。
【０１７６】
なお、ステップＳ４０１において、割り当て計画部４４が実行するリソース割り当て計画には種々の方法が考えられる。例えば、指定されたリソースの数だけランダムに確保する方法、ネットワークの距離を考慮し同一のスイッチ１０に接続されたリソース単位で割り当てる方法、ネットワークのホップ数が少ないリソースを選択して選ぶ方法、ラック単位で割り当てる方法、可用性を考慮し２つ以上のラックに分けて割り当てる方法、等が考えられる。割り当て計画部４４は、いずれの方法を、又は、上記以外の方法を用いて、テナントに割り当てるリソースを決定する。
【０１７７】
図３９は、リソースを稼働する際の管理装置４０の動作例を示す。リソースの稼働は、テナントとジョブが指定されることで行われる。
【０１７８】
リソース変更処理部４１は、稼働リソース決定部４６に対し、テナント及びジョブ（リソースが提供するサービス）を指定して、稼働するリソースの決定を指示する。
【０１７９】
稼働リソース決定部４６は、割り当てリソースＤＢ４５を検索し、指定されたテナントに動作状態フラグが「偽」（リソースは停止状態）のリソースが存在するか否かを確認する（ステップＳ４１１）。
【０１８０】
テナントに割り当てられたリソースであって、停止状態のリソースが存在しなければ（ステップＳ４１１、Ｎｏ分岐）、ステップＳ４１２に係る処理が実行される。一方、停止状態のリソースが存在すれば（ステップＳ４１１、Ｙｅｓ分岐）、ステップＳ４１３〜Ｓ４１８に係る処理が実行される。
【０１８１】
ステップＳ４１２において、稼働リソース決定部４６は、リソース変更処理部４１に対して、停止状態のリソースが存在しないため、指定されたテナントにおけるリソースの稼働は不可であると通知し、処理を終了する。リソース変更処理部４１は、通信部４９を介して、リソースの稼働ができない旨を応答する。
【０１８２】
ステップＳ４１３において、稼働リソース決定部４６は、指定されたテナントの動作状態フラグが「偽」のリソースから、稼働するリソースを選択する。
【０１８３】
次に、稼働リソース決定部４６は、前ステップで決定したリソースに対応した割り当てリソースＤＢ４５の動作状態フラグを「真」（リソースは稼働状態）に変更する（ステップＳ４１４）。また、稼働リソース決定部４６は、テナントリソースＤＢ４７のエントリに、該当リソースのリソースＩＤを追加する（ステップＳ４１５）。
【０１８４】
稼働リソース決定部４６は、テナントＩＤと稼働するリソースのＭＡＣアドレスを、リソース変更処理部４１に応答する。応答を受けたリソース変更処理部４１は、制御装置２０ａに対して、テナントＩＤと稼働するリソースのＭＡＣアドレスを含むリソース管理情報変更通知を行う（ステップＳ４１６）。その後、リソース変更処理部４１は、制御装置２０ａからの応答を待ち（ステップＳ４１７）、リソース管理部４２に対し、ステップＳ４１３で決定したリソースの稼働を指示する（ステップＳ４１８）。
【０１８５】
図４０は、リソースを停止する際の管理装置４０の動作例を示す。リソースの停止は、テナントと停止するリソースが指定されることで行われる。
【０１８６】
リソース変更処理部４１は、制御装置２０ａに対し、テナントと停止するリソースを含むリソース管理情報変更通知を行う（ステップＳ４２１）。その後、リソース変更処理部４１は、制御装置２０ａからの応答を待ち（ステップＳ４２２）、応答を受け取り次第、リソース管理部４２に対し、停止すべきリソースの停止を指示する（ステップＳ４２３）。リソース管理部４２は、停止すべきリソースに制御メッセージを送信し、停止状態への遷移を指示する。
【０１８７】
リソース管理部４２は、リソースが停止するまで待機（ステップＳ４２４）し、その後、リソースの状態変化が終了した旨をリソース変更処理部４１に応答する。
【０１８８】
応答を受けたリソース変更処理部４１は、解放処理実行部４８に対し、指定されたテナントの指定されたリソースを削除する指示を行う（ステップＳ４２５）。解放処理実行部４８は、テナントリソースＤＢ４７のエントリから、指定されたテナントの指定されたリソースを削除する。その後、解放処理実行部４８は、割り当てリソースＤＢ４５のエントリであって、指定されたリソースに対応するリソース情報フィールドの動作状態フラグを停止状態に変更する（ステップＳ４２６）。
【０１８９】
図４１は、テナントにリソースを追加する際の管理装置４０の動作例を示す。テナントと追加するリソース数を指定することで、リソースの追加が行われる。
【０１９０】
リソース変更処理部４１は、テナントと、追加するリソース数を指定し、割り当て計画部４４に対し、リソースの追加を指示する。指示を受けた割り当て計画部４４は、指示された数のリソースを、リソースＤＢ４３のエントリの中から選択する。その際、割り当て計画部４４は、割り当てフラグが「未割り当て」のリソースを選択することで、リソースの追加指示に対応する（ステップＳ４３１）。割り当て計画部４４は、要求されたリソースを割り当てることができるか否かを判定する（ステップＳ４３２）。
【０１９１】
指定された数のリソースが割り当てることができない場合（ステップＳ４３２、Ｎｏ分岐）、ステップＳ４３３に係る処理が実行される。一方、指定された数のサーバが割り当て可能の場合（ステップＳ４３２、Ｙｅｓ分岐）、ステップＳ４３４〜Ｓ４３７に係る処理が実行される。
【０１９２】
ステップＳ４３３において、割り当て計画部４４は、リソース変更処理部４１に対し、指定されたテナントにリソースの追加は不可である旨を応答する。リソース変更処理部４１は、通信部４９を介して、リソースの追加ができない旨を応答する。
【０１９３】
ステップＳ４３４において、割り当て計画部４４は、ステップＳ４３１で決定したリソースに対応する割り当てフラグを「割り当て済み」に変更する（リソースＤＢ４３を変更する）。その後、割り当て計画部４４は、割り当てたリソースを、割り当てリソースＤＢ４５のテナントＩＤフィールドと、リソース情報フィールドに格納する（割り当てリソースＤＢ４５に登録；ステップＳ４３５）。
【０１９４】
次に、割り当て計画部４４は、リソース変更処理部４１に対し、テナントＩＤと追加するリソースのＭＡＣアドレスを応答する。リソース変更処理部４１は、テナントＩＤと追加するリソースのＭＡＣアドレスを含むリソース管理情報変更通知を、制御装置２０ａに行う（ステップＳ４３６）。その後、リソース変更処理部４１は、制御装置２０ａからの応答を待つ（ステップＳ４３７）。
【０１９５】
図４２は、テナントからリソースを削除する際の管理装置４０の動作例を示す。
【０１９６】
リソース変更処理部４１は、テナントを指定し、解放処理実行部４８にリソースの削除を指示する（ステップＳ４４１）。解放処理実行部４８は、リソース解放計画を実行し、指定されたテナントに対応する割り当てリソースＤＢ４５の中から、削除するリソースをから選択する。なお、本ステップにおいて、解放処理実行部４８は、停止状態のサーバを削除対象として選択する。解放処理実行部４８は、選択したリソースをリソース変更処理部４１に応答する。
【０１９７】
リソース変更処理部４１は、テナントと前ステップで決定したリソースを指定し、制御装置２０ａにリソース管理情報変更通知を行う（ステップＳ４４２）。その後、リソース変更処理部４１は、制御装置２０ａからの応答を待つ（ステップＳ４４３）。応答を受信したリソース変更処理部４１は、解放処理実行部４８に対し、割り当てリソースＤＢ４５から、ステップＳ４４１で決定したリソースに関するリソース情報の削除を指示する（ステップＳ４４４）。
【０１９８】
次に、解放処理実行部４８は、ステップＳ４４１において決定したリソースに該当するリソースの割り当てフラグを「未割り当て」に変更する（リソースＤＢ４３の変更；ステップＳ４４５）。
【０１９９】
図４３は、テナントを削除する際の管理装置４０の動作例を示す。
【０２００】
ステップＳ４５１において、リソース変更処理部４１は、制御装置２０ａに対し、削除するテナントを含むリソース管理情報変更通知を行う。その後、リソース変更処理部４１は、制御装置２０ａからの応答を待つ（ステップＳ４５２）。応答を受信したリソース変更処理部４１は、解放処理実行部４８に対して、指定されたテナントのリソースを削除する指示を行う（ステップＳ４５３）。その際、解放処理実行部４８は、割り当てリソースＤＢ４５のエントリであって、指定されたテナントに関するエントリを削除する。
【０２０１】
さらに、解放処理実行部４８は、前ステップで解放したエントリに登録されていたリソースに対応するリソースＤＢ４３の割り当てフラグを「未割り当て」に変更する（ステップＳ４５４）。
【０２０２】
図４４は、制御装置２０ａからリソース管理情報提供要求を受けた場合の管理装置４０の動作例を示す。
【０２０３】
ステップＳ４６１において、リソース変更処理部４１は、割り当てリソースＤＢ４５から、指定されたテナントのエントリを検索し、そのエントリに含まれるリソースの動作状態フラグを確認する。その後、リソース変更処理部４１は、前ステップで確認したリソースについて、その動作状態を制御装置２０ａに応答する。なお、リソース管理情報提供要求に対する応答には、指定されたテナントに割り当てられているリソース（通信ノード３０）のＭＡＣアドレスが含まれる。
【０２０４】
図４５〜図５２は、本実施形態に係る通信システムの動作の一例を示すシーケンス図である。図４５〜図５２は、それぞれ、図１７〜図２４に相当する通信システムの動作の一例を示すシーケンス図である。そのため、図４５〜図５２において、図１７〜図２４に関する説明は省略する。
【０２０５】
図４５は、通信ノード３０−１から通信ノード３０−２に向けてパケットを送信する場合の動作例を示す。この場合、通信システムの動作は、スイッチ１０、制御装置２０及び通信ノード３０により完結するので、図１７における動作例と相違する点はない。
【０２０６】
図４６は、通信ノード３０−１〜３０−３が同一テナントに割り当てられ、且つ、通信ノード３０−１及び３０−２が稼働状態にある場合において、通信ノード３０−１からブロードキャストパケットが送信された場合の動作例を示す。
【０２０７】
この場合、スイッチ１０−１からブロードキャストパケットが転送された制御装置２０ａは、ブロードキャスト範囲を決定するため、管理装置４０にリソース管理情報提供要求を行う。その後、管理装置４０からの応答に応じて、ブロードキャスト範囲を決定し、スイッチ１０−１に処理規則を設定する。
【０２０８】
図４７は、通信ノード３０−１〜３０−３が同一テナントに割り当てられ、且つ、通信ノード３０−１〜３０−３が稼働状態にある場合において、通信ノード３０−１からブロードキャストパケットが送信された場合の動作例を示す。
【０２０９】
この場合も、制御装置２０ａは、管理装置４０からの応答に基づき、ブロードキャスト範囲を決定する。
【０２１０】
図４８は、通信ノード３０−１〜３０−３が同一テナントに割り当てられ、且つ、通信ノード３０−１及び３０−２が稼働状態にて既にブロードキャスト経路が設定されている場合において、通信ノード３０−３が稼働状態に遷移する場合の動作例を示す。
【０２１１】
この場合には、管理装置４０は、制御装置２０ａに対し、テナントを指定し、リソースの稼働を示すリソース管理情報変更通知を行う。制御装置２０ａは、当該通知に従い、スイッチ１０−２にパケットアウト規則を設定する。その後、管理装置４０は、制御装置２０ａの応答を待って、通信ノード３０−３を稼働状態に遷移させる。
【０２１２】
図４９は、通信ノード３０−１〜３０−３が同一テナントに割り当てられ、且つ、通信ノード３０−１〜３０−３が稼働状態にて既にブロードキャスト経路が設定されている場合において、通信ノード３０−２が停止状態に遷移する場合の動作例を示す。
【０２１３】
この場合には、管理装置４０は、制御装置２０ａに対し、リソースの停止を通知する。リソースの停止の通知を受信した制御装置２０ａは、スイッチ１０−１に設定されたパケットアウト規則を削除する。その後、管理装置４０は、通信ノード３０−２を停止状態に遷移させる。
【０２１４】
図５０は、通信ノード３０−１〜３０−３が同一テナントに割り当てられ、且つ、通信ノード３０−１〜３０−３が稼働状態にて既にブロードキャスト経路が設定されている場合において、テナントを削除する場合の動作例を示す。
【０２１５】
この場合には、管理装置４０は、制御装置２０ａに対し、テナントを指定してテナントの削除を通知する。テナントの削除通知に係るリソース管理情報変更通知を受信した制御装置２０ａは、スイッチ１０−１及び１０−２に設定された処理規則を削除する。制御装置２０ａから処理規則の削除が完了した旨の応答を受けた管理装置４０は、通信ノード３０−１〜３０−３を停止状態に遷移させる。
【０２１６】
図５１は、通信ノード３０−１及び３０−２が同一テナントに割り当てられ、且つ、通信ノード３０−１及び３０−２が稼働状態にて既にブロードキャスト経路が設定されている場合において、テナントに通信ノード３０−３を追加する場合の動作例を示す。
【０２１７】
この場合には、管理装置４０は、制御装置２０ａに対し、リソースを追加する旨を通知する。当該通知に応じて、制御装置２０ａは、スイッチ１０−１に対し、スイッチ１０−２に向けたブロードキャスト経路を実現するための処理規則（ブロードキャスト転送規則）を設定する。
【０２１８】
図５２は、通信ノード３０−１〜３０−３が同一テナントに割り当てられ、且つ、通信ノード３０−１及び３０−２が稼働状態にて既にブロードキャスト経路が設定されている場合において、テナントから通信ノード３０−３を削除する場合の動作例を示す。
【０２１９】
この場合には、管理装置４０は、制御装置２０ａに対し、リソースを削除する旨を通知する。当該通知に応じて、制御装置２０ａは、スイッチ１０−１及び１０−２に設定した処理規則を削除する。
【０２２０】
以上のように、本実施形態に係る通信システムでは、制御装置２０ａは、管理装置４０が通知する情報に基づいて、ブロードキャスト範囲を決定する。制御装置２０ａは、決定したブロードキャスト範囲に基づいて、スイッチ１０に処理規則を設定し、適切な範囲にブロードキャストパケットを転送できる。また、管理装置４０は、通信システムの管理者等が入力するテナント管理情報に基づき、テナントに割り当てるリソースや稼働するリソースを自動的に決定する。そのため、管理者は、個々のテナントに割り当てるリソースを細かく管理する必要がない。
【０２２１】
なお、以上説明した第１及び第２実施形態は単なる例示に過ぎず、様々な変形を施すことができる。第１及び第２の実施形態では、スイッチ１０にパケットが到着し、スイッチ１０のテーブルＤＢ１３に格納するマッチングルールに一致しないことを契機に、制御装置２０又は制御装置２０ａが処理規則の生成等を行う。しかし、例えば、通信システムにテナントが追加されたことを契機に、ブロードキャスト経路を計算し、対応する処理規則をスイッチ１０に設定してもよい。その場合には、最初にブロードキャストパケットが送信された場合の応答速度が向上する。
【０２２２】
また、管理装置４０の機能を制御装置２０に組み込むこと、あるいは、制御装置２０の機能を管理装置４０に組み込むことができる。即ち、制御装置２０と管理装置４０を同一の機器で実現できる。あるいは、スイッチ１０や通信ノード３０は、仮想マシン（Virtual Machine）であってもよい。さらに、通信システムには、仮想マシンと物理マシンのスイッチ１０や通信ノード３０が、混在していてもよい。さらにまた、通信システムが含むリソースは仮想マシンや仮想アプライアンスのような仮想的なリソースであってもよい。その場合には、図５３に示すように、論理・物理対応管理装置５０のような、仮想リソースと仮想リソースが動作する物理マシンの対応関係を管理する装置を用意するのが好ましい。その際、制御装置２０ａや管理装置４０は、論理・物理対応管理装置５０を参照することで、仮想リソースと物理マシンの対応を解決する。
【０２２３】
最後に、好ましい形態を要約する。
【０２２４】
［形態１］
上述の第１の視点に係る通信システムのとおりである。
［形態２］
複数の前記スイッチを含み、
前記複数のスイッチのうちの第１のスイッチに接続される第１の通信ノードが、前記複数のスイッチのうちの第２のスイッチに接続され、且つ、前記第１の通信ノードと同一のグループに属する第２の通信ノードに向けて、前記ブロードキャストパケットを送信すると、
前記制御装置は、前記ブロードキャストパケットを前記第２のスイッチに転送するための第１の処理規則を、前記第１のスイッチに設定すると共に、前記ブロードキャストパケットを前記第２の通信ノードに接続されるポートから送出するための第２の処理規則を、前記第２のスイッチに設定する形態１の通信システム。
［形態３］
グループに第３の通信ノードが追加され、且つ、前記第３の通信ノードと同一のグループに属する他の通信ノードが接続されるスイッチが不存在の場合に、
前記制御装置は、前記ブロードキャストパケットを前記第１のスイッチから前記第３の通信ノードが接続される第３のスイッチまで転送するための処理規則を、前記複数のスイッチのうち少なくとも１つのスイッチに設定する形態２の通信システム。
［形態４］
グループに追加される際の前記第３の通信ノードが停止状態の場合に、
前記制御装置は、前記第３の通信ノードに対応する前記第２の処理規則を、前記第３のスイッチに非設定とする形態３の通信システム。
［形態５］
前記第３の通信ノードが停止状態から稼働状態に遷移する場合に、
前記制御装置は、前記第３の通信ノードに対応する前記第２の処理規則を、前記第３のスイッチに設定する形態４の通信システム。
［形態６］
前記第２の通信ノードが稼働状態から停止状態に遷移する場合に、
前記制御装置は、前記第２の処理規則を、前記第２のスイッチから削除する形態する形態２乃至５のいずれか一に記載の通信システム。
［形態７］
前記第２の通信ノードがグループから削除される場合に、
前記制御装置は、前記第１のスイッチから前記第１の処理規則を削除すると共に、前記第２のスイッチから前記第２の処理規則を削除する形態２乃至６のいずれか一に記載の通信システム。
［形態８］
グループの識別子、グループに属する通信ノードの識別子、グループに属する通信ノードの動作状態、を示す管理情報と、
前記複数のスイッチと前記複数の通信ノード間の接続からなるネットワークのトポロジと、に基づいて、前記第１及び／又は第２の処理規則を設定するスイッチを特定する形態２乃至７のいずれか一に記載の通信システム。
［形態９］
通信システムのテナント、前記テナントに割り当てる通信ノード、前記通信ノードの動作状態、を関連付けるテナント管理情報に基づき、前記管理情報を生成する管理装置をさらに含む形態１乃至８のいずれか一に記載の通信システム。
［形態１０］
上述の第２の視点に係る通信方法のとおりである。
［形態１１］
前記通信システムは複数の前記スイッチを含み、
前記複数のスイッチのうちの第１のスイッチに接続される第１の通信ノードが、前記複数のスイッチのうちの第２のスイッチに接続され、且つ、前記第１の通信ノードと同一のグループに属する第２の通信ノードに向けて、前記ブロードキャストパケットを送信する工程と、
前記ブロードキャストパケットを前記第２のスイッチに転送するための第１の処理規則を、前記第１のスイッチに設定する工程と、
前記ブロードキャストパケットを前記第２の通信ノードに接続されるポートから送出するための第２の処理規則を、前記第２のスイッチに設定する工程と、
をさらに含む形態１０の通信方法。
［形態１２］
グループに第３の通信ノードが追加される際に、前記第３の通信ノードと同一のグループに属する他の通信ノードが接続されるスイッチが存在するか否かを判定する工程と、
前記第３の通信ノードと同一のグループに属する他の通信ノードが接続されるスイッチが不存在の場合に、前記ブロードキャストパケットを前記第１のスイッチから前記第３の通信ノードが接続される第３のスイッチまで転送するための処理規則を、前記複数のスイッチのうち少なくとも１つのスイッチに設定する工程と、
をさらに含む形態１１の通信方法。
［形態１３］
上述の第３の視点に係る制御装置のとおりである。
［形態１４］
複数の前記スイッチを制御の対象とし、
前記複数のスイッチのうちの第１のスイッチに接続される第１の通信ノードが、前記複数のスイッチのうちの第２のスイッチに接続され、且つ、前記第１の通信ノードと同一のグループに属する第２の通信ノードに向けて、前記ブロードキャストパケットを送信すると、
前記ブロードキャストパケットを前記第２のスイッチに転送するための第１の処理規則を、前記第１のスイッチに設定すると共に、前記ブロードキャストパケットを前記第２の通信ノードに接続されるポートから送出するための第２の処理規則を、前記第２のスイッチに設定する付記１３の制御装置。
［形態１５］
グループに第３の通信ノードが追加され、且つ、前記第３の通信ノードと同一のグループに属する他の通信ノードが接続されるスイッチが不存在の場合に、
前記ブロードキャストパケットを前記第１のスイッチから前記第３の通信ノードが接続される第３のスイッチまで転送するための処理規則を、前記複数のスイッチのうち少なくとも１つのスイッチに設定する付記１４の制御装置。
［形態１６］
グループに追加される際の前記第３の通信ノードが停止状態の場合に、
前記第３の通信ノードに対応する前記第２の処理規則を、前記第３のスイッチに非設定とする付記１５の制御装置。
［形態１７］
前記第３の通信ノードが停止状態から稼働状態に遷移する場合に、
前記第３の通信ノードに対応する前記第２の処理規則を、前記第３のスイッチに設定する付記１６の制御装置。
［形態１８］
前記第２の通信ノードが稼働状態から停止状態に遷移する場合に、
前記第２の処理規則を、前記第２のスイッチから削除する付記１４乃至１７のいずれか一に記載の制御装置。
［形態１９］
上述の第４の視点に係る制御装置の制御方法のとおりである。
［形態２０］
上述の第５の視点に係るプログラムのとおりである。
なお、第１０の形態、第１３の形態、第１９及び第２０の形態は、第１の形態と同様に、第２の形態〜第９の形態に展開することが可能である。
【０２２５】
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【０２２６】
１０  １０−１〜１０−３、１０２  スイッチ
１１、４９  通信部
１２  テーブル管理部
１３  テーブルデータベース（テーブルＤＢ）
１４  転送処理部
２０、２０ａ、１０３  制御装置
２１  トポロジ管理部
２２  トポロジデータベース（トポロジＤＢ）
２３  制御メッセージ処理部
２４  経路・アクション計算部
２５  パケット転送経路データベース（パケット転送経路ＤＢ）
２６  処理規則管理部
２７  処理規則データベース（処理規則ＤＢ）
２８、２８ａ  ブロードキャスト範囲決定部
２９、２９ａ  構成変更処理部
３０  ３０−１〜３０−５、１０１−１〜１０１−４  通信ノード
３１  リソース情報データベース（リソース情報ＤＢ）
３２  ノード通信部
４０  管理装置
４１  リソース変更処理部
４２  リソース管理部
４３  リソースデータベース（リソースＤＢ）
４４  割り当て計画部
４５  割り当てリソースデータベース（割り当てリソースＤＢ）
４６  稼働リソース決定部
４７  テナントリソースデータベース（テナントリソースＤＢ）
４８  解放処理実行部
５０  論理・物理対応管理装置
１４１  テーブル検索部
１４２  アクション実行部
【図１】
2014175938.tif 000003
【図２】
2014175938.tif 000004
【図３】
2014175938.tif 000005
【図４】
2014175938.tif 000006
【図５】
2014175938.tif 000007
【図６】
2014175938.tif 000008
【図７】
2014175938.tif 000009
【図８】
2014175938.tif 000010
【図９】
2014175938.tif 000011
【図１０】
2014175938.tif 000012
【図１１】
2014175938.tif 000013
【図１２】
2014175938.tif 000014
【図１３】
2014175938.tif 000015
【図１４】
2014175938.tif 000016
【図１５】
2014175938.tif 000017
【図１６】
2014175938.tif 000018
【図１７】
2014175938.tif 000019
【図１８】
2014175938.tif 000020
【図１９】
2014175938.tif 000021
【図２０】
2014175938.tif 000022
【図２１】
2014175938.tif 000023
【図２２】
2014175938.tif 000024
【図２３】
2014175938.tif 000025
【図２４】
2014175938.tif 000026
【図２５】
2014175938.tif 000027
【図２６】
2014175938.tif 000028
【図２７】
2014175938.tif 000029
【図２８】
2014175938.tif 000030
【図２９】
2014175938.tif 000031
【図３０】
2014175938.tif 000032
【図３１】
2014175938.tif 000033
【図３２】
2014175938.tif 000034
【図３３】
2014175938.tif 000035
【図３４】
2014175938.tif 000036
【図３５】
2014175938.tif 000037
【図３６】
2014175938.tif 000038
【図３７】
2014175938.tif 000039
【図３８】
2014175938.tif 000040
【図３９】
2014175938.tif 000041
【図４０】
2014175938.tif 000042
【図４１】
2014175938.tif 000043
【図４２】
2014175938.tif 000044
【図４３】
2014175938.tif 000045
【図４４】
2014175938.tif 000046
【図４５】
2014175938.tif 000047
【図４６】
2014175938.tif 000048
【図４７】
2014175938.tif 000049
【図４８】
2014175938.tif 000050
【図４９】
2014175938.tif 000051
【図５０】
2014175938.tif 000052
【図５１】
2014175938.tif 000053
【図５２】
2014175938.tif 000054
【図５３】
2014175938.tif 000055