(57)【要約】【課題】不要なＢＵＭ通信を抑制すること。【解決手段】ネットワークを介して接続される転送装置群の各転送装置を制御して、当該各転送装置間を通信可能に接続する仮想終端点を設定するネットワーク制御装置は、グループ情報と仮想ネットワーク情報とを記憶する記憶デバイスを有し、仮想ネットワーク情報を参照して、設定対象の仮想ネットワークの接続先の転送装置を特定し、グループ情報を参照して、接続先の転送装置を含む仮想終端点グループを割当候補として特定し、グループ情報を参照して、割当候補の中から、転送装置の組み合わせにおける転送装置の数が最小または所定のしきい値以下となる特定の仮想終端点グループを割当グループに決定し、グループ情報を参照して、割当グループを構成する転送装置の組み合わせの各転送装置が有する仮想終端点に、設定対象の仮想ネットワークを設定する処理を実行する。【選択図】図１０
2017059991.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続される転送装置群の各転送装置を制御して、当該各転送装置間を通信可能に接続する仮想終端点を設定するネットワーク制御装置であって、
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、
前記記憶デバイスは、グループ情報と仮想ネットワーク情報とを記憶しており、
前記グループ情報は、前記転送装置の組み合わせと、当該組み合わせの各々が有する前記仮想終端点と、を関連付けた仮想終端点グループを規定する情報であり、
前記仮想ネットワーク情報は、前記転送装置群のうち仮想ネットワークに接続されるべき接続先の転送装置と、前記接続先の転送装置を含む仮想終端点グループ候補と、を関連付けた仮想ネットワークを規定する情報であり、
前記プロセッサは、
前記仮想ネットワーク情報を参照して、設定対象の仮想ネットワークの前記接続先の転送装置を特定する第１の特定処理と、
前記グループ情報を参照して、前記第１の特定処理によって特定された前記接続先の転送装置を含む仮想終端点グループを割当候補として特定する第２の特定処理と、
前記グループ情報を参照して、前記第２の特定処理によって特定された前記割当候補の中から、前記転送装置の組み合わせにおける前記転送装置の数が最小または所定のしきい値以下となる特定の仮想終端点グループを割当グループに決定する第１の決定処理と、
前記グループ情報を参照して、前記第１の決定処理によって決定された前記割当グループを構成する前記転送装置の組み合わせの各転送装置が有する仮想終端点に、前記設定対象の仮想ネットワークを設定する第１の設定処理と、
を実行することを特徴とするネットワーク制御装置。
【請求項２】
請求項１に記載のネットワーク制御装置であって、
前記記憶デバイスは、前記ネットワークにおいて前記転送装置間の経路ごとにコストが設定されている通信情報を記憶しており、
前記第１の決定処理では、前記プロセッサは、
前記特定の仮想終端点グループが複数存在する場合、前記グループ情報を参照して、前記割当候補の各々について、前記転送装置の組み合わせを特定し、
前記仮想ネットワーク情報を参照して、前記特定の仮想終端点グループごとに、前記特定の仮想終端点グループについての前記転送装置の組み合わせに含まれ、かつ、前記設定対象の仮想ネットワークの前記接続先の転送装置に含まれない未接続の転送装置を特定し、
前記通信情報を参照して、前記特定の仮想終端点グループごとに、前記未接続の転送装置と前記設定対象の仮想ネットワークの前記接続先の転送装置との経路についてのコストの合計値を算出し、
前記各特定の仮想終端点グループの前記コストの合計値に基づいて、前記特定の仮想終端点グループの中から前記割当グループを決定することを特徴とするネットワーク制御装置。
【請求項３】
請求項１に記載のネットワーク制御装置であって、
前記記憶デバイスは、前記ネットワークにおいて前記転送装置間の経路ごとに余剰リソース量が保持されている通信情報を記憶しており、
前記第１の決定処理では、前記プロセッサは、
前記特定の仮想終端点グループが複数存在する場合、前記グループ情報を参照して、前記割当候補の各々について、前記転送装置の組み合わせを特定し、
前記仮想ネットワーク情報を参照して、前記特定の仮想終端点グループごとに、前記特定の仮想終端点グループについての前記転送装置の組み合わせに含まれ、かつ、前記設定対象の仮想ネットワークの前記接続先の転送装置に含まれない未接続の転送装置を特定し、
前記通信情報を参照して、前記特定の仮想終端点グループごとに、前記未接続の転送装置と前記設定対象の仮想ネットワークの前記接続先の転送装置との経路についての余剰リソース量の最小値を特定し、
前記各特定の仮想終端点グループの前記余剰リソース量の最小値に基づいて、前記特定の仮想終端点グループの中から前記割当グループを決定することを特徴とするネットワーク制御装置。
【請求項４】
請求項１に記載のネットワーク制御装置であって、
前記グループ情報は、前記ネットワーク内の全転送装置と、当該全転送装置の各々が有する仮想終端点と、を関連付けた評価用の仮想終端点グループを規定しており、
前記プロセッサは、
前記グループ情報を参照して、前記評価用の仮想終端点グループを構成する全仮想終端点に、仮想ネットワークを仮設定する仮設定処理と、
前記仮設定処理によって仮設定された仮想ネットワークにおいて、前記転送装置群のうち、前記設定対象の仮想ネットワークについての前記接続先の転送装置以外の他の転送装置の通信量を、前記他の転送装置から取得して、前記設定対象の仮想ネットワーク内の仮想終端点から前記設定対象の仮想ネットワーク外の仮想終端点に流れるＢＵＭの通信量に決定する第１のＢＵＭ通信量決定処理と、
を実行することを特徴とするネットワーク制御装置。
【請求項５】
請求項１に記載のネットワーク制御装置であって、
前記仮想ネットワーク情報は、前記仮想ネットワークに瞬断可否を示す瞬断可否情報を関連付けており、
前記第１の特定処理では、前記プロセッサは、前記仮想ネットワーク情報を参照して、前記設定対象の仮想ネットワークに関連付けられた瞬断可否情報が瞬断可を示す場合に、前記接続先の転送装置を特定することを特徴とするネットワーク制御装置。
【請求項６】
請求項１に記載のネットワーク制御装置であって、
前記プロセッサは、
前記仮想ネットワーク情報を参照して、前記仮想ネットワーク毎に、前記接続先の転送装置と、前記割当グループと、を特定する第３の特定処理と、
前記グループ情報を参照して、前記仮想ネットワーク毎に、前記割当グループを構成する前記転送装置の組み合わせである設定先の転送装置を特定する第４の特定処理と、
前記仮想ネットワークごとに、前記設定先の転送装置に含まれ、かつ、前記接続先の転送装置に含まれない計測対象の転送装置を特定する第５の特定処理と、
前記仮想ネットワークごとに、前記計測対象の転送装置から通信量を収集して、前記仮想ネットワークについての不要なＢＵＭの通信量に決定する第２のＢＵＭ通信量決定処理と、
前記第２のＢＵＭ通信量決定処理によって決定された前記仮想ネットワークごとの不要なＢＵＭ通信量に基づいて、再構成対象の仮想終端点グループを構成する前記転送装置の組み合わせおよび当該組み合わせの各々が有する仮想終端点を変更する変更処理と、
前記変更処理の変更結果に従って、前記仮想ネットワークごとに、前記再構成対象の仮想終端点グループを構成する前記転送装置の組み合わせの各々の転送装置に前記仮想終端点を再設定する再設定処理と、
前記再設定処理の再設定後において、特定の仮想ネットワークについての接続先の転送装置が含まれる仮想終端点グループを再割当候補として選択する選択処理と、
前記選択処理によって選択された前記再割当候補の中から、前記転送装置の組み合わせにおける前記転送装置の数が最小となる仮想終端点グループを再割当グループに決定する第２の決定処理と、
前記第２の決定処理によって決定された前記再割当グループを前記特定の仮想ネットワークに設定する第２の設定処理と、
を実行することを特徴とするネットワーク制御装置。
【請求項７】
請求項６に記載のネットワーク制御装置であって、
前記記憶デバイスは、前記転送装置ごとに、前記仮想終端点を設定可能な最大数と、現在設定されている前記仮想終端点の数である既存数と、を規定するリソース情報を記憶しており、
前記変更処理では、前記プロセッサは、
前記再構成対象の仮想終端点グループの割当先となる仮想ネットワークについての前記不要なＢＵＭ通信量、前記接続先の転送装置、および、前記再構成対象の仮想終端点グループの前記転送装置の組み合わせにおける前記転送装置の数に基づいて、前記再構成対象の仮想終端点グループについての不要なＢＵＭ通信量を算出し、
前記リソース情報を参照して、いずれの転送装置についても前記既存数が前記最大数より小さい場合、前記仮想終端点グループについての不要なＢＵＭ通信量が最大である仮想終端点グループを特定し、
前記不要なＢＵＭ通信量が最大である仮想終端点グループの割当先となる仮想ネットワーク群を２つのグループに分割して、グループごとのＢＵＭ通信量の総和を算出する処理を所定回数試行し、
前記グループごとのＢＵＭ通信量の総和が最小となる前記２つのグループについて仮想終端点グループを作成することを特徴とするネットワーク制御装置。
【請求項８】
請求項６に記載のネットワーク制御装置であって、
前記記憶デバイスは、前記転送装置ごとに、前記仮想終端点を設定可能な最大数と、現在設定されている前記仮想終端点の数である既存数と、を規定するリソース情報を記憶しており、
前記変更処理では、前記プロセッサは、
前記再構成対象の仮想終端点グループの割当先となる仮想ネットワークについての前記不要なＢＵＭ通信量、前記接続先の転送装置、および、前記再構成対象の仮想終端点グループの前記転送装置の組み合わせにおける前記転送装置の数に基づいて、前記再構成対象の仮想終端点グループについての不要なＢＵＭ通信量を算出し、
前記リソース情報を参照して、前記既存数が前記最大数より小さくない転送装置が存在する場合、当該転送装置を前記転送装置の組み合わせに含む仮想終端点グループを併合することを特徴とするネットワーク制御装置。
【請求項９】
請求項６に記載のネットワーク制御装置であって、
前記記憶デバイスは、リソース情報と通信情報とを記憶しており、
前記リソース情報は、前記転送装置ごとに、前記仮想終端点を設定可能な最大数と、現在設定されている前記仮想終端点の数である既存数と、を規定しており、
前記通信情報は、前記ネットワークにおいて前記転送装置間の経路ごとに余剰リソース量を保持しており、
前記変更処理では、前記プロセッサは、
前記再構成対象の仮想終端点グループの割当先となる仮想ネットワークについての前記不要なＢＵＭ通信量、前記接続先の転送装置、および、前記再構成対象の仮想終端点グループの前記転送装置の組み合わせにおける前記転送装置の数に基づいて、前記再構成対象の仮想終端点グループについての不要なＢＵＭ通信量を算出し、
前記リソース情報を参照して、いずれの転送装置についても前記既存数が前記最大数より小さい場合、前記通信情報を参照して、前記余剰リソース量が最小または所定のしきい値以下となる経路を規定する一対の転送装置を特定し、
前記一対の転送装置を含む仮想終端点グループの割当先となる仮想ネットワーク群を２つのグループに分割して、グループごとのＢＵＭ通信量の総和を算出する処理を所定回数試行し、
前記グループごとのＢＵＭ通信量の総和が最小となる前記２つのグループについて仮想終端点グループを作成することを特徴とするネットワーク制御装置。
【請求項１０】
請求項６に記載のネットワーク制御装置であって、
前記記憶デバイスは、リソース情報と通信情報とを記憶しており、
前記リソース情報は、前記転送装置ごとに、前記仮想終端点を設定可能な最大数と、現在設定されている前記仮想終端点の数である既存数と、を規定しており、
前記通信情報は、前記ネットワークにおいて前記転送装置間の経路ごとに余剰リソース量を保持しており、
前記変更処理では、前記プロセッサは、
前記再構成対象の仮想終端点グループの割当先となる仮想ネットワークについての前記不要なＢＵＭ通信量、前記接続先の転送装置、および、前記再構成対象の仮想終端点グループの前記転送装置の組み合わせにおける前記転送装置の数に基づいて、前記再構成対象の仮想終端点グループについての不要なＢＵＭ通信量を算出し、
前記リソース情報を参照して、前記既存数が前記最大数より小さくない転送装置が存在する場合、当該転送装置を前記転送装置の組み合わせに含む仮想終端点グループを併合することを特徴とするネットワーク制御装置。
【請求項１１】
ネットワークを介して接続される転送装置群の各転送装置を制御して、当該各転送装置間を通信可能に接続する仮想終端点を設定するネットワーク制御装置によるネットワーク制御方法であって、
前記ネットワーク制御装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、
前記記憶デバイスは、グループ情報と仮想ネットワーク情報とを記憶しており、
前記グループ情報は、前記転送装置の組み合わせと、当該組み合わせの各々が有する前記仮想終端点と、を関連付けた仮想終端点グループを規定する情報であり、
前記仮想ネットワーク情報は、前記転送装置群のうち仮想ネットワークに接続されるべき接続先の転送装置と、前記接続先の転送装置を含む仮想終端点グループ候補と、を関連付けた仮想ネットワークを規定する情報であり、
前記プロセッサは、
前記仮想ネットワーク情報を参照して、設定対象の仮想ネットワークの前記接続先の転送装置を特定する第１の特定処理と、
前記グループ情報を参照して、前記第１の特定処理によって特定された前記接続先の転送装置を含む仮想終端点グループを割当候補として特定する第２の特定処理と、
前記グループ情報を参照して、前記第２の特定処理によって特定された前記割当候補の中から、前記転送装置の組み合わせにおける前記転送装置の数が最小または所定のしきい値以下となる特定の仮想終端点グループを割当グループに決定する第１の決定処理と、
前記グループ情報を参照して、前記第１の決定処理によって決定された前記割当グループを構成する前記転送装置の組み合わせの各転送装置が有する仮想終端点に、前記設定対象の仮想ネットワークを設定する第１の設定処理と、
を実行することを特徴とするネットワーク制御方法。
【請求項１２】
請求項１１に記載のネットワーク制御方法であって、
前記記憶デバイスは、前記ネットワークにおいて前記転送装置間の経路ごとにコストが設定されている通信情報を記憶しており、
前記第１の決定処理では、前記プロセッサは、
前記特定の仮想終端点グループが複数存在する場合、前記グループ情報を参照して、前記割当候補の各々について、前記転送装置の組み合わせを特定し、
前記仮想ネットワーク情報を参照して、前記特定の仮想終端点グループごとに、前記特定の仮想終端点グループについての前記転送装置の組み合わせに含まれ、かつ、前記設定対象の仮想ネットワークの前記接続先の転送装置に含まれない未接続の転送装置を特定し、
前記通信情報を参照して、前記特定の仮想終端点グループごとに、前記未接続の転送装置と前記設定対象の仮想ネットワークの前記接続先の転送装置との経路についてのコストの合計値を算出し、
前記各特定の仮想終端点グループの前記コストの合計値に基づいて、前記特定の仮想終端点グループの中から前記割当グループを決定することを特徴とするネットワーク制御方法。
【請求項１３】
請求項１１に記載のネットワーク制御方法であって、
前記記憶デバイスは、前記ネットワークにおいて前記転送装置間の経路ごとに余剰リソース量が保持されている通信情報を記憶しており、
前記第１の決定処理では、前記プロセッサは、
前記特定の仮想終端点グループが複数存在する場合、前記グループ情報を参照して、前記割当候補の各々について、前記転送装置の組み合わせを特定し、
前記仮想ネットワーク情報を参照して、前記特定の仮想終端点グループごとに、前記特定の仮想終端点グループについての前記転送装置の組み合わせに含まれ、かつ、前記設定対象の仮想ネットワークの前記接続先の転送装置に含まれない未接続の転送装置を特定し、
前記通信情報を参照して、前記特定の仮想終端点グループごとに、前記未接続の転送装置と前記設定対象の仮想ネットワークの前記接続先の転送装置との経路についての余剰リソース量の最小値を特定し、
前記各特定の仮想終端点グループの前記余剰リソース量の最小値に基づいて、前記特定の仮想終端点グループの中から前記割当グループを決定することを特徴とするネットワーク制御方法。
【請求項１４】
ネットワークを介して接続される転送装置群の各転送装置を制御して、当該各転送装置間を通信可能に接続する仮想終端点を設定する処理をプロセッサに実行させるネットワーク制御プログラムであって、
前記プロセッサは、グループ情報と仮想ネットワーク情報とを記憶する記憶デバイスにアクセス可能であり、
前記グループ情報は、前記転送装置の組み合わせと、当該組み合わせの各々が有する前記仮想終端点と、を関連付けた仮想終端点グループを規定する情報であり、
前記仮想ネットワーク情報は、前記転送装置群のうち仮想ネットワークに接続されるべき接続先の転送装置と、前記接続先の転送装置を含む仮想終端点グループ候補と、を関連付けた仮想ネットワークを規定する情報であり、
前記プロセッサに、
前記仮想ネットワーク情報を参照して、設定対象の仮想ネットワークの前記接続先の転送装置を特定する第１の特定処理と、
前記グループ情報を参照して、前記第１の特定処理によって特定された前記接続先の転送装置を含む仮想終端点グループを割当候補として特定する第２の特定処理と、
前記グループ情報を参照して、前記第２の特定処理によって特定された前記割当候補の中から、前記転送装置の組み合わせにおける前記転送装置の数が最小または所定のしきい値以下となる特定の仮想終端点グループを割当グループに決定する第１の決定処理と、
前記グループ情報を参照して、前記第１の決定処理によって決定された前記割当グループを構成する前記転送装置の組み合わせの各転送装置が有する仮想終端点に、前記設定対象の仮想ネットワークを設定する第１の設定処理と、
を実行させることを特徴とするネットワーク制御プログラム。
【請求項１５】
請求項１４に記載のネットワーク制御プログラムであって、
前記記憶デバイスは、前記ネットワークにおいて前記転送装置間の経路ごとにコストが設定されている通信情報を記憶しており、
前記第１の決定処理では、前記プロセッサに、
前記特定の仮想終端点グループが複数存在する場合、前記グループ情報を参照して、前記割当候補の各々について、前記転送装置の組み合わせを特定させ、
前記仮想ネットワーク情報を参照して、前記特定の仮想終端点グループごとに、前記特定の仮想終端点グループについての前記転送装置の組み合わせに含まれ、かつ、前記設定対象の仮想ネットワークの前記接続先の転送装置に含まれない未接続の転送装置を特定させ、
前記通信情報を参照して、前記特定の仮想終端点グループごとに、前記未接続の転送装置と前記設定対象の仮想ネットワークの前記接続先の転送装置との経路についてのコストの合計値を算出させ、
前記各特定の仮想終端点グループの前記コストの合計値に基づいて、前記特定の仮想終端点グループの中から前記割当グループを決定させることを特徴とするネットワーク制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを制御するネットワーク制御装置、ネットワーク制御方法、および、ネットワーク制御プログラムに関する。
【背景技術】
【０００２】
近年、クラウドやサーバ仮想化の進展に伴い、ＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等で構成されるブロードキャストドメインを物理的な空間に跨って構築する事例が増えている。ここで、物理的な空間とは、例えば、データセンタやデータセンタのフロア、企業拠点等である。このような事例では、物理的な空間を繋ぐネットワークに、ブロードキャストパケット（Ｂｒｏａｄｃａｓｔ  ｐａｃｋｅｔ）、アンノウンパケット（Ｕｎｋｎｏｗｎ  ｕｎｉｃａｓｔ  ｐａｃｋｅｔ）、および、マルチキャストパケット（Ｍｕｌｔｉｃａｓｔ  Ｐａｃｋｅｔ）（以下、これらの頭文字をとってＢＵＭと呼ぶ。）が流れ、他の通信の帯域を圧迫してしまう。
【０００３】
ブロードキャストドメインを物理的な空間に跨って繋ぐ方法には、たとえば、ＶｘＬＡＮ（Ｖｉｒｔｕａｌ  ｅＸｔｅｎｓｉｂｌｅ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＭＰＬＳ（Ｍｕｌｔｉ−ＰｒｏｔｏｃｏｌＬａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）、ＯＴＶ（Ｏｖｅｒｌａｙ  Ｔｒａｎｓｐｏｒｔ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）、ＮＶＧＲＥ（Ｎｅｔｗｏｒｋ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ  Ｇｅｎｅｒｉｃ  Ｒｏｕｔｉｎｇ  Ｅｎｃａｐｓｕｌａｔｉｏｎ）がある。
【０００４】
ＢＵＭは、受信する必要のない宛先にも送信される。ＢＵＭが、その宛先までのネットワーク内のルータやスイッチ、物理回線の通信帯域を消費した後、宛先で廃棄される。物理回線における通信帯域の消費により、他のパケットによる通信帯域が圧迫してしまい、通信品質や性能を劣化させる。
【０００５】
特許文献１は、アウトオブプロファイルなマルチキャストフレームのマルチキャストフラッディングを抑制するネットワーク装置についての機構を開示する。当該機構は、ブロードキャストドメインの一部であるポートのサブセットを含むマルチキャストフラッドドメインを定義することにより提供される。特許文献１の機構は、マルチキャストパケットのヘッダ部分を解析し、マルチキャストデータベースを参照することによってＢＵＭ通信量の抑制を試みる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第７５９９３６７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の機構は、学習可能なマルチキャストパケットや対向デバイス数がネットワーク装置内のマルチキャストデータベースのサイズに依存するため、ネットワーク装置数やマルチキャストパケット数が多い大規模なネットワークシステムやマルチキャストデータベースに用いるメモリ使用量を確保できないネットワーク装置には適用することができない。また、特許文献１の機構は、マルチキャストパケットに対応しないネットワーク装置には適用することができない。
【０００８】
近年、ネットワーク装置の開発コスト削減を目的に、ネットワーク装置専用のＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）を用いずに、汎用ＬＳＩを用いて開発される傾向が高まっている。その結果、特許文献１に示されるようなネットワーク装置に特殊な実装を施すことはネットワーク装置の開発コスト削減の観点から難しくなっている。そのため、上記のようなＢＵＭ通信量削減の為の機能を備えないネットワーク装置に対してもＢＵＭ通信量を抑制できるネットワーク制御装置が必要になっている。
【０００９】
本発明は、不要なＢＵＭ通信を抑制することを目的とする。
【課題を解決するための手段】
【００１０】
本願において開示される発明の一側面となるネットワーク制御装置、ネットワーク制御方法、および、ネットワーク制御プログラムは、ネットワークを介して接続される転送装置群の各転送装置を制御して、当該各転送装置間を通信可能に接続する仮想終端点を設定するネットワーク制御装置、ネットワーク制御方法、および、ネットワーク制御プログラムであって、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、前記記憶デバイスは、グループ情報と仮想ネットワーク情報とを記憶しており、前記グループ情報は、前記転送装置の組み合わせと、当該組み合わせの各々が有する前記仮想終端点と、を関連付けた仮想終端点グループを規定する情報であり、前記仮想ネットワーク情報は、前記転送装置群のうち仮想ネットワークに接続されるべき接続先の転送装置と、前記接続先の転送装置を含む仮想終端点グループ候補と、を関連付けた仮想ネットワークを規定する情報であり、前記プロセッサは、前記仮想ネットワーク情報を参照して、設定対象の仮想ネットワークの前記接続先の転送装置を特定する第１の特定処理と、前記グループ情報を参照して、前記第１の特定処理によって特定された前記接続先の転送装置を含む仮想終端点グループを割当候補として特定する第２の特定処理と、前記グループ情報を参照して、前記第２の特定処理によって特定された前記割当候補の中から、前記転送装置の組み合わせにおける前記転送装置の数が最小または所定のしきい値以下となる特定の仮想終端点グループを割当グループに決定する第１の決定処理と、前記グループ情報を参照して、前記第１の決定処理によって決定された前記割当グループを構成する前記転送装置の組み合わせの各転送装置が有する仮想終端点に、前記設定対象の仮想ネットワークを設定する第１の設定処理と、を実行することを特徴とする。
【発明の効果】
【００１１】
本開示によれば、不要なＢＵＭ通信を抑制することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１２】
【図１】実施例１におけるネットワークシステムのシステム構成例を示すブロック図である。
【図２】ＢＵＭ通信の抑制機能の適用前のデータ通信を示す説明図である。
【図３】ＢＵＭ通信の抑制機能の適用後のデータ通信を示す説明図である。
【図４】本実施例にかかるネットワーク制御装置の機能的構成例を示すブロック図である。
【図５】トンネルエンドポイントグループ情報テーブルの記憶内容例を示す説明図である。
【図６】仮想ネットワーク情報テーブルの記憶内容例を示す説明図である。
【図７】エッジノードリソース情報テーブルの記憶内容例を示す説明図である。
【図８】通信情報テーブルの記憶内容例を示す説明図である。
【図９】本実施例にかかる仮想ネットワークの設定シーケンス例を示す説明図である。
【図１０】図９に示した割当ＴＥＰＧ決定処理（ステップＳ９０５）の詳細な処理手順例を示すフローチャートである。
【図１１】割当ＴＥＰＧ決定処理（ステップＳ９０５）による更新後の仮想ネットワーク情報テーブルの記憶内容例を示す説明図である。
【図１２】図９に示した仮想ネットワーク設定処理（ステップＳ９０６）の詳細な処理手順例を示すフローチャートである。
【図１３】本実施例にかかるトンネルエンドポイントグループの最適化シーケンス例を示す説明図である。
【図１４】図１１に示したＴＥＰＧ最適化処理（ステップＳ１３０２）の詳細な処理手順例を示すフローチャートである。
【図１５】図１４に示したトンネルエンドポイントグループの接続構成変更処理（ステップＳ１４０５）の詳細な処理手順例を示すフローチャートである。
【図１６】図１３に示した割当ＴＥＰＧ決定処理（ステップＳ１３０４）の詳細な処理手順例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を用いて本実施例について説明する。なお、図面中の符号において、同種の構成要素が複数存在する場合は、「エッジノード７００−１〜７００−４」のように、共通の符号（この場合は「７００」）に枝番を付ける。ただし、同種の構成要素の各々を区別しない場合は、単に、「エッジノード７００」のように枝番を省略する。
【００１４】
＜ネットワークシステムのシステム構成例＞
図１は、実施例１におけるネットワークシステムのシステム構成例を示すブロック図である。ネットワークシステム１は、ネットワーク制御装置１００、ローカルエリアネットワーク（ＬＡＮ）３１０、ワイドエリアネットワーク（ＷＡＮ）３２０、サーバ４００、トンネルエンドポイント５００、ネットワークアプリケーション６００、および、エッジノード７００を備える。また、ネットワークシステム１の少なくとも一部は、仮想的に実装されてもよい。また、ネットワーク制御装置１００は、一または複数のエッジノード７００内に配置されてもよい。ネットワークアプリケーション６００は、サーバ４００内に配置されていても良い。ネットワーク制御装置１００は、エッジノード７００とトンネルエンドポイント５００とを制御する計算機である。ネットワーク制御装置１００については図４を用いて後述する。
【００１５】
ＬＡＮ３１０は、エッジノード７００とサーバ４００とを繋ぐネットワークであり、テナント毎に論理的に分けられる。なお、テナントとは、一または複数のアプリケーションを構成するアプリケーションシステムである。たとえば、データセンタを利用する企業毎に一つのテナントが構成される。ＬＡＮ３１０は、たとえば、ＶＬＡＮで構成される。
【００１６】
ＷＡＮ３２０は、エッジノード７００間を繋ぐネットワークであり、例えば、キャリアネットワークのような広域網や、広域網に限らず、データセンタ間ネットワーク、データセンタのフロア間を繋ぐネットワークが挙げられる。ＷＡＮ３２０のプロトコルは、例えば、ネイティブなＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）通信、ＭＰＬＳ、ＧＭＰＬＳ（Ｇｅｎｅｒａｌｉｚｅｄ  ＭＰＬＳ）、ＰＢＢ−ＴＥ（Ｐｒｏｖｉｄｅｒ  Ｂａｃｋｂｏｎｅ  Ｂｒｉｄｇｅ  Ｔｒａｆｆｉｃ  Ｅｎｇｉｎｅｅｒｉｎｇ）を含む。
【００１７】
サーバ４００は、データ処理機能を動作させる計算機であり、プロセッサやメモリ、ストレージを備える。なお、データ処理機能とは、データ処理を行うプログラムであり、例えば、ウェブサーバやアプリケーションサーバ、ＤＢ（Ｄａｔａ  Ｂａｓｅ）サーバのようなプログラムが挙げられる。データ処理機能は、ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）として実現されてもよい。
【００１８】
トンネルエンドポイント５００は、エッジノード７００間を繋ぐ仮想ネットワークを終端する論理的な仮想終端点である。トンネルエンドポイント５００のプロトコルは、例えば、ＶｘＬＡＮ、ＮＶＧＲＥ（Ｎｅｔｗｏｒｋ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ  Ｇｅｎｅｒｉｃ  Ｒｏｕｔｉｎｇ  Ｅｎｃａｐｓｕｌａｔｉｏｎ）を含む。本実施例では、ＶｘＬＡＮを終端するトンネルエンドポイント５００を例にして説明する。トンネルエンドポイント５００は、例えば、ＶＴＥＰ（ＶｘＬＡＮ  Ｔｕｎｎｅｌ  Ｅｎｄｐｏｉｎｔ）やループバックインタフェースを含む。
【００１９】
ネットワークアプリケーション６００は、エッジノード７００に対する設定をネットワーク制御装置１００に要求する。ネットワークアプリケーション６００は、たとえば、ネットワークやサーバ、ストレージを包括的に管理する管理システムや、テナントのアプリケーション管理システムを含む。
【００２０】
エッジノード７００は、一組のＬＡＮ３１０とＷＡＮ３２０とをトンネルエンドポイント５００で繋ぐ転送装置である。エッジノード７００は、一または複数の通信装置やサーバで構成される。エッジノード７００は、ネットワーク制御装置１００からの要求に応じて、エッジノード７００の中にトンネルエンドポイント５００を追加、削除したり、接続先のサーバ４００を変更する機能を有する。
【００２１】
＜ＢＵＭ通信の抑制機能適用前後のデータ通信例＞
図２は、ＢＵＭ通信の抑制機能の適用前のデータ通信を示す説明図であり、図３は、ＢＵＭ通信の抑制機能の適用後のデータ通信を示す説明図である。図２および図３についての前提を説明する。図２および図３は、サーバ４００−１，４００−２および４００−４が互いに通信するネットワーク構成を想定する。トンネルエンドポイント５００間を仮想ネットワークであるＶｘＬＡＮを介して、サーバ４００とトンネルエンドポイント５００間がＶＬＡＮで接続されるものとする。
【００２２】
この場合、トンネルエンドポイント５００−１，５００−２，５００−４にはＶＮＩ（Ｖｉｓｕａｌ  Ｎｅｔｗｏｒｋｉｎｇ  Ｉｎｄｅｘ：ＶｘＬＡＮの識別子）として「ＶＮＩ１」が設定される。サーバ４００−１とトンネルエンドポイント５００−１間には「ＶＬＡＮ１」が設定される。サーバ４００−２とトンネルエンドポイント５００−２間には「ＶＬＡＮ１」が設定される。サーバ４００−４とトンネルエンドポイント５００−４間には「ＶＬＡＮ１」が設定される。図２および図３中、太矢印は、ＢＵＭの流れ（ＢＵＭ通信）である。
【００２３】
図２において、サーバ４００−１が、たとえば、ＡＲＰリクエストのようなＢＵＭを配信すると、トンネルエンドポイント５００−１がトンネルエンドポイント５００−２，５００−３，５００−４にＢＵＭを転送する。トンネルエンドポイント５００−２，５００−４には、ＶＮＩ１およびＶＬＡＮ１が設定されているため、トンネルエンドポイント５００−２，５００−４は、受信したＢＵＭを配下のサーバ４００−２，４００−４に転送する。
【００２４】
他方、トンネルエンドポイント５００−３にはＶＮＩ１が設定されていないため、トンネルエンドポイント５００−３は、受信したＢＵＭを廃棄する。トンネルエンドポイント５００−３に転送されたＢＵＭは、ＷＡＮ３２０の通信帯域を消費した後に、トンネルエンドポイント５００−３において廃棄される無駄なパケットである。ここで、注目すべき点は、トンネルエンドポイント５００−３にはＶＮＩ１が設定されていない点である。すなわち、ＢＵＭが、ＶＮＩ１で規定される仮想ネットワークが設定された範囲を超えて、ＶＮＩ１が設定されていないエッジノード７００−３に流れる。
【００２５】
これまで、ＢＵＭが広域網に流れるなどの問題点は指摘されてきたが、これらはサーバ４００−４に送信されてしまうＢＵＭの問題であり、従来のＭＰＬＳやＰＢＢ装置においては、仮想ネットワークＶＮＩ１が設定されていないエッジノード７００−３にＢＵＭが送信されることがなかった。しかし、近年、汎用ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を用いた装置開発が浸透する中で、今後、ＶＮＩ１が設定されていないエッジノード７００−３に対してもＢＵＭが送信されてしまう問題が生じると予想される。本実施例は、ＶＮＩ１が設定されていないエッジノード７００−３宛に送信されるＢＵＭを抑制することにより、ＢＵＭによるＷＡＮ３２０の通信帯域の消費を抑制する。
【００２６】
図３において、図２と同様、トンネルエンドポイント５００−１は、相互に通信接続されたトンネルエンドポイント５００に、たとえば、ＡＲＰリクエストのようなＢＵＭを送信する。ここで、ネットワーク制御装置１００が、各エッジノード７００−１〜７００−４に必要に応じて１つ以上のトンネルエンドポイント５００を設定し、トンネルエンドポイント５００間の通信接続を適切に設定する。例えば、ネットワーク制御装置１００は、仮想ネットワークＶＮＩ１を構成するトンネルエンドポイント５００−１，５００−２，５００−４を互いに接続させる。このように、相互に通信接続できるように設定されたトンネルエンドポイント５００の集合をトンネルエンドポイントグループと呼ぶ。ここでは、トンネルエンドポイント５００−１，５００−２，５００−４を第１のトンネルエンドポイントグループ（図３中、ハッチングで表記）とする。
【００２７】
また、必要であれば、ネットワーク制御装置１００は、第２のトンネルエンドポイントグループ（例えば、トンネルエンドポイント５００−３，５００−５，５００−６を繋ぐトンネルエンドポイントグループ）を設定する。この場合、第２のトンネルエンドポイントグループを構成するトンネルエンドポイント５００−３，５００−５，５００−６には、ＶＮＩ１とは別のＶＮＩが付与されて、別の仮想ネットワークを構成する。
【００２８】
ネットワーク制御装置１００は、サーバ４００−１，４００−２，４００−４を繋ぐ仮想ネットワークＶＮＩ１を第１のトンネルエンドポイントグループに設定する。ネットワーク制御装置１００は、第１のトンネルエンドポイントグループ内の各トンネルエンドポイント５００−１，５００−２，５００−４とその配下のサーバ４００−１，４００−２，４００−４とを接続してＶＬＡＮ３１０−１，３１０−２，３１０−４を設定し、ＶＬＡＮ３１０−１，３１０−２，３１０−４同士を仮想ネットワークＶＮＩ１で接続する。
【００２９】
サーバ４００−１がＢＵＭを配信すると、トンネルエンドポイント５００−１はトンネルエンドポイント５００−２，５００−４にＢＵＭを転送する。トンネルエンドポイント５００−２，５００−４は配下のサーバ４００−２，４００−４にＢＵＭを転送する。サーバ４００−２は、ＢＵＭに含まれている宛先ＩＰアドレスの一致により、ＢＵＭを受信する。また、サーバ４００−４は、ＢＵＭに含まれている宛先ＩＰアドレスの相違により、ＢＵＭを廃棄する。図３においては、トンネルエンドポイント５００−１は、サーバ４００−１からのＢＵＭを、第１のトンネルエンドポイントグループに属さないトンネルエンドポイント５００−３には送信しない（太点線矢印で表示）。
【００３０】
このように、ネットワーク制御装置１００は、エッジノード７００に複数のトンネルエンドポイント５００を用意し、トンネルエンドポイント５００がフルメッシュで繋がるトンネルエンドポイントグループを適切に生成、管理することによって不要なＢＵＭの通信量を削減する。なお、あるエッジノード７００に設定可能なトンネルエンドポイント５００の数には上限があるため、ネットワーク制御装置１００は、仮想ネットワークの接続構成や、各仮想ネットワークに流れるＢＵＭ通信量を踏まえて、トンネルエンドポイントグループを最適化する。
【００３１】
＜ネットワーク制御装置１００の機能的構成例＞
図４は、本実施例にかかるネットワーク制御装置１００の機能的構成例を示すブロック図である。ネットワーク制御装置１００は、通信ＩＦ１４０、サービス受付部１５０、データ記憶部１７０、および、制御部１１０を有する。
【００３２】
通信ＩＦ１４０は、直接またはＥＭＳ（Ｅｌｅｍｅｎｔ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）を介して、エッジノード７００に対し、トンネルエンドポイント５００、仮想ネットワーク（ＶｘＬＡＮ）、ＶＬＡＮ（ＬＡＮ３１０）を設定する。
【００３３】
サービス受付部１５０は、ネットワーク制御装置１００に接続される管理端末（不図示）の操作画面を介して、トラフィックの通信経路やロールグループ間の通信経路が経由するネットワークファンクションの表示や上位のコントローラからの制御を受け付けるノースバンドインタフェースである。
【００３４】
制御部１１０は、データ記憶部１７０に保持される情報を参照し、トンネルエンドポイントグループの接続構成や仮想ネットワークを割り当てるトンネルエンドポイントグループを計算し、エッジノード７００に指示する。制御部１１０は、トンネルエンドポイントグループ管理部１１１、エッジノード・トンネルエンドポイント設定部１１２、エッジノードリソース管理部１１３、通信量計測・分析部１１４、および、仮想ネットワーク管理部１１５を含む。
トンネルエンドポイントグループ管理部１１１は、トンネルエンドポイント間の接続情報であるトンネルエンドポイントグループ情報を計算する。エッジノード・トンネルエンドポイント設定部１１２は、エッジノード７００に送信する設定情報を生成する。エッジノードリソース管理部１１３は、エッジノード７００が備えられる最大トンネルエンドポイント数や割当可能なトンネルエンドポイント数を管理する。通信量計測・分析部１１４は、仮想ネットワーク毎にエッジノード７００に流れる通信量を計測し、図２のエッジノード７００−３に流れたような不要なＢＵＭ通信量を計算する。仮想ネットワーク管理部１１５は、仮想ネットワークの接続構成を管理し、ネットワークアプリケーション６００からの要求に応じて、仮想ネットワーク情報を生成する。
【００３５】
ネットワーク制御装置１００は、プロセッサ、通信デバイス、揮発性の記憶デバイス（たとえば、ＲＡＭ）、および、不揮発性の記憶デバイス（たとえば、フラッシュメモリ、ハードディスクドライブ）を備える計算機を用いて実現可能である。すなわち、制御部１１０は、ネットワーク制御装置１００に備わる不揮発性の記憶デバイスに保持されたプログラムが、プロセッサによって揮発性または不揮発性の記憶デバイスにおいて実行されることによって、実現される。またこれらのプログラムは、あらかじめ不揮発性の記憶デバイスに格納されていてもよいし、ネットワークを介してまたは可搬型記憶媒体を介して外部装置から導入されても良い。
【００３６】
データ記憶部１７０は、制御部１１０によって情報を参照されたり、情報を更新されたりする。データ記憶部１７０は、ネットワーク制御装置１００に備わる不揮発性の記憶デバイスに構築される。データ記憶部１７０は、トンネルエンドポイントグループ情報テーブル１７１、仮想ネットワーク情報テーブル１７２、エッジノードリソース情報テーブル１７３、および通信情報テーブル１７４を備える。
【００３７】
なお、上記テーブル１７１〜１７４を例に挙げて説明するが、必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、ＤＢ、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「ＤＢ」、「キュー」等について単に「情報」と呼ぶことがある。また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ＩＤ」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
【００３８】
＜テーブルの記憶内容例＞
図５は、トンネルエンドポイントグループ情報テーブル１７１の記憶内容例を示す説明図である。トンネルエンドポイントグループ（ＴＥＰＧ）情報テーブル１７１は、トンネルエンドポイントグループ情報を記憶するテーブルである。トンネルエンドポイントグループ情報は、トンネルエンドポイントグループに関する情報である。トンネルエンドポイントグループは、相互に通信接続できるように設定されたトンネルエンドポイント５００の集合である。トンネルエンドポイントグループ情報テーブル１７１は、トンネルエンドポイントグループ管理部１１１によって設定される。ネットワーク制御装置１００は、トンネルエンドポイントグループ情報テーブル１７１を保持することによって、トンネルエンドポイント５００間をフルメッシュで接続する構成だけでなく、様々な接続構成を管理する。
【００３９】
トンネルエンドポイントグループ情報テーブル１７１は、ＴＥＰＧ識別子フィールド５０１と、ＥＮ識別子フィールド５０２と、ＴＥＰ識別子フィールド５０３と、割当仮想ＮＷ識別子フィールド５０４と、不要ＢＵＭ通信量フィールド５０５と、を有し、各フィールドの値により、トンネルエンドポイントグループを特定するエントリであるトンネルエンドポイントグループ情報を構成する。
【００４０】
なお、以降の説明において、○○フィールドｘｘｘ（○○はフィールド名、ｘｘｘは符号）の値を、○○ｘｘｘと表記する。たとえば、ＴＥＰＧ識別子フィールド５０１の値を、ＴＥＰＧ識別子５０１と表記する。
【００４１】
ＴＥＰＧ識別子フィールド５０１は、値として、ＴＥＰＧ識別子５０１を格納する記憶領域である。ＴＥＰＧ識別子５０１は、トンネルエンドポイントグループを一意に特定する識別情報である。複数のトンネルエンドポイント５００に跨る仮想ネットワークを設定する場合、当該複数のトンネルエンドポイント５００は互いに通信接続できるように設定されていなければならない。なお、当該設定は、例えば、トンネルエンドポイント５００がループバックインタフェースの場合、宛先のループバックインタフェースとして接続先すべきループバックインタフェースのＩＰアドレスが設定されることを示す。
【００４２】
ＥＮ識別子フィールド５０２は、値として、ＥＮ識別子５０２を格納する記憶領域である。ＥＮ識別子５０２は、エッジノード７００を一意に特定する識別情報である。エッジノード７００は、ＬＡＮ３１０とＷＡＮ３２０を繋ぐ通信装置またはサーバである。たとえば、ＬＡＮ３１０がデータセンタであり、ＷＡＮ３２０がデータセンタ間を繋ぐ広域網である場合、エッジノード７００はデータセンタのゲートウェイに相当し、複数の通信装置がスタックで構成される。たとえば、ＬＡＮ３１０がＫＶＭのような仮想環境であり、ＷＡＮ３２０が仮想環境間を繋ぐネットワークである場合、エッジノード７００は、仮想環境のゲートウェイに相当し、たとえば、ネットワークノードとして機能する複数のサーバで構成される。
【００４３】
ＴＥＰ識別子フィールド５０３は、値として、ＴＥＰ識別子５０３を格納する記憶領域である。ＴＥＰ識別子５０３は、トンネルエンドポイント５００を一意に特定する識別情報である。ＥＮ識別子５０２で特定されるエッジノード７００には、ＴＥＰ識別子５０３で特定されるトンネルエンドポイント５００が設定される。たとえば、ＴＥＰＧ識別子５０１が「Ｇ１」であるエントリの場合、ＥＮ識別子５０２が「Ｅ１」であるエッジノード７００には、ＴＥＰ識別子５０３が「Ｔ１１」であるトンネルエンドポイント５００が設定され、ＥＮ識別子５０２が「Ｅ２」であるエッジノード７００には、ＴＥＰ識別子５０３が「Ｔ２１」であるトンネルエンドポイント５００が設定され、ＥＮ識別子５０２が「Ｅ３」であるエッジノード７００には、ＴＥＰ識別子５０３が「Ｔ３１」であるトンネルエンドポイント５００が設定される。ＴＥＰＧ識別子５０１、ＥＮ識別子５０２、およびＴＥＰ識別子５０３は、たとえば、手動操作で設定される。
【００４４】
割当仮想ＮＷ識別子フィールド５０４は、値として、割当仮想ＮＷ識別子５０４を格納する記憶領域である。割当仮想ＮＷ識別子５０４は、ＴＥＰＧ識別子５０１で特定されるトンネルエンドポイントグループに割り当てられた仮想ネットワークを一意に示す識別情報である。ネットワーク制御装置１００は、ＴＥＰＧ識別子５０１のトンネルエンドポイントグループに仮想ネットワークが設定されると、当該仮想ネットワークの仮想ＮＷ識別子６０１を割当仮想ＮＷ識別子フィールド５０４に格納する。
【００４５】
不要ＢＵＭ通信量５０５は、値として、ＴＥＰＧ識別子５０１で特定されるトンネルエンドポイントグループに流れるＢＵＭ通信量を格納する記憶領域である。具体的には、不要ＢＵＭ通信量５０５は、割当仮想ＮＷ識別子５０４で特定される仮想ネットワークが本来接続される必要のないエッジノード７００に流れるＢＵＭ通信量の合計値である。割当仮想ネットワークが本来接続される必要のないエッジノード７００とは、トンネルエンドポイントグループ情報テーブル１７１のＥＮ識別子５０２に含まれ、かつ、仮想ネットワーク情報テーブル１７２の仮想ＮＷ識別子６０１が割当仮想ＮＷ識別子５０４であるエントリにおける接続先ＥＮ識別子６０２に含まれないエッジノード７００である。
【００４６】
なお、ＴＥＰＧ識別子５０１が「Ｇ０」であるエントリを、評価用のトンネルエンドポイントグループとする。評価用のトンネルエンドポイントグループとは、すべてのエッジノード７００間がフルメッシュで通信接続されるように設定されたトンネルエンドポイントグループである。トンネルエンドポイントグループＧ０に所属するエッジノード７００は、管理対象となる全エッジノードＥ１，Ｅ２，Ｅ３，…，Ｅｎである。図３の例では、ｎ＝４である。トンネルエンドポイントグループＧ０に所属するトンネルエンドポイント５００は、各エッジノード７００に１つずつ設定されるトンネルエンドポイントＴ１０，Ｔ２０，Ｔ３０，…，Ｔｎ０である。
【００４７】
図６は、仮想ネットワーク情報テーブル１７２の記憶内容例を示す説明図である。仮想ネットワーク情報テーブル１７２は、仮想ネットワーク情報を記憶するテーブルである。仮想ネットワーク情報テーブル１７２は、ネットワークアプリケーション６００からの要求情報に基づいて、仮想ネットワーク管理部１１５によって生成される。ネットワーク制御装置１００は、仮想ネットワーク情報テーブル１７２を保持することによって、仮想ネットワークを割り当てるトンネルエンドポイントグループを計算することが可能になる。
【００４８】
仮想ネットワーク情報テーブル１７２は、仮想ＮＷ識別子フィールド６０１と、接続先ＥＮ識別子フィールド６０２と、候補ＴＥＰＧ識別子フィールド６０３と、割当ＴＥＰＧ識別子フィールド６０４と、接続先ＬＮＷ識別子フィールド６０５と、ポート番号フィールド６０６と、通信帯域フィールド６０７と、瞬断可否フラグフィールド６０８と、不要ＢＵＭ通信量フィールド６０９と、を有し、各フィールドの値により仮想ネットワーク情報を規定するエントリを構成する。
【００４９】
仮想ＮＷ識別子フィールド６０１は、値として、仮想ＮＷ識別子６０１を格納する記憶領域である。仮想ＮＷ識別子６０１は、仮想ネットワークを一意に特定する識別情報である。具体的には、たとえば、仮想ＮＷ識別子６０１は、ＶＮＩに対応する。
【００５０】
接続先ＥＮ識別子フィールド６０２は、値として、接続先ＥＮ識別子６０２を格納する記憶領域である。接続先ＥＮ識別子６０２は、仮想ＮＷ識別子６０１で特定される仮想ネットワークが接続されるべきエッジノード（接続先エッジノード）７００を一意に特定する識別情報である。たとえば、図６の例では、仮想ＮＷ識別子６０１が「Ｎ１」で特定される仮想ネットワークに接続されるべき接続先エッジノードを特定する接続先ＥＮ識別子６０２は「Ｅ１，Ｅ２」であるが、実際には、割当ＴＥＰＧ識別子６０４のトンネルエンドポイントグループＧ０を構成するエッジノード７００（ＥＮ識別子５０２：Ｅ１，Ｅ２，Ｅ３，…，Ｅｎ）に、仮想ＮＷ識別子６０１が「Ｎ１」であるＶＩＮが設定される。接続先ＥＮ識別子６０２は、ネットワークアプリケーション６００が仮想ネットワークを設定する際に送信する要求情報に含まれる。
【００５１】
候補ＴＥＰＧ識別子フィールド６０３は、値として、候補ＴＥＰＧ識別子６０３を格納する記憶領域である。候補ＴＥＰＧ識別子６０３は、仮想ネットワークを割り当てることが可能なトンネルエンドポイントグループの候補を一意に特定する識別情報である。候補ＴＥＰＧ識別子６０３で特定されるトンネルエンドポイントグループは、ネットワークアプリケーション６００が要求する仮想ネットワークの要件を満たすトンネルエンドポイントグループである。たとえば、仮想ＮＷ識別子６０１が「Ｎ１」である接続先ＥＮ識別子６０２は「Ｅ１，Ｅ２」である。トンネルエンドポイントグループ情報テーブル１７１において、「Ｅ１，Ｅ２」をＥＮ識別子５０２に含むＴＥＰＧ識別子５０１は、「Ｇ０，Ｇ１，Ｇ２」である。「Ｇ０，Ｇ１，Ｇ２」は、仮想ＮＷ識別子６０１が「Ｎ１」のエントリにおける候補ＴＥＰＧ識別子フィールド６０３に登録される。
【００５２】
なお、評価用のトンネルエンドポイントグループＧ０のＴＥＰＧ識別子「Ｇ０」は、ＷＡＮ３２０のフルメッシュを規定しているため、全エントリの候補ＴＥＰＧ識別子６０３に登録される。
【００５３】
割当ＴＥＰＧ識別子フィールド６０４は、割当ＴＥＰＧ識別子６０４を格納する記憶領域である。割当ＴＥＰＧ識別子６０４は、仮想ＮＷ識別子６０１で特定される仮想ネットワークに割り当てられたトンネルエンドポイントグループであり、候補トンネルエンドポイントグループの中から選択される。なお、図９に示す仮想ネットワーク設定では、評価用のトンネルエンドポイントグループＧ０のＴＥＰＧ識別子「Ｇ０」が格納される。デフォルトで「Ｇ０」に設定されていてもよい。割当ＴＥＰＧ識別子６０４に対応する仮想ＮＷ識別子６０１は、割当ＴＥＰＧ識別子６０４と一致するＴＥＰＧ識別子５０１に対応する割当仮想ＮＷ識別子フィールド５０４に格納される。
【００５４】
接続先ＬＮＷ識別子フィールド６０５は、値として、接続先ＬＮＷ識別子６０５を格納する記憶領域である。接続先ＬＮＷ識別子６０５は、仮想ＮＷ識別子６０１で特定される仮想ネットワークが接続するローカルネットワークを一意に特定する識別情報である。接続先ＬＮＷ識別子６０５は、たとえば、ＶＬＡＮの識別子である。図３の例では、仮想ＮＷ識別子６０１がＶＮＩ１であるため、仮想ネットワークＶＮＩ１に接続されるＬＡＮ３１０は、ＬＡＮ３１０−１（Ｖ１），３１０−２（Ｖ２），３１０−４（Ｖ４）である。
【００５５】
ポート番号フィールド６０６は、値として、ポート番号６０６を格納する記憶領域である。ポート番号６０６は、接続先ＬＮＷ識別子６０５で特定されるローカルネットワークに設定されるべき物理ポートのポート番号または論理ポートのポート番号を格納する領域である。
【００５６】
通信帯域フィールド６０７は、値として、通信帯域６０７を格納する記憶領域である。通信帯域６０７は、仮想ＮＷ識別子６０１で特定される仮想ネットワークが必要とする通信帯域である。通信帯域６０７は、ネットワークアプリケーション６００が仮想ＮＷ識別子６０１で特定される仮想ネットワークを設定する際に送信する要求情報に含まれる。
【００５７】
瞬断可否フラグフィールド６０８は、値として、瞬断可否フラグ６０８を格納する記憶領域である。瞬断可否フラグ６０８は、仮想ＮＷ識別子６０１で特定される仮想ネットワークが瞬断可能か否かを示すフラグである。瞬断可否フラグ６０８の用途は、仮想ＮＷ識別子６０１で特定される仮想ネットワークを他のトンネルエンドポイントグループに変更することが可能か否かを判断するために用いられる。仮想ネットワークを他のトンネルエンドポイントグループに割り当てる場合、仮想ネットワークの通信が瞬断される可能性があるためである。瞬断可否フラグ６０８は、ネットワークアプリケーション６００が、仮想ＮＷ識別子６０１で特定される仮想ネットワークを設定する際に送信する要求する情報に含まれる。
【００５８】
不要ＢＵＭ通信量フィールド６０９は、値として、不要ＢＵＭ通信量６０９を格納する記憶領域である。不要ＢＵＭ通信量６０９は、仮想ＮＷ識別子６０１で特定される仮想ネットワークに本来接続される必要のないエッジノード７００に流れるＢＵＭの通信量である。具体的には、不要ＢＵＭ通信量６０９は、接続先ＥＮ識別子６０２以外の仮想ＮＷ識別子６０１で特定されるいずれかのエッジノード７００で計測されたＢＵＭ通信量である。たとえば、エッジノード７００がエッジノード７００−１（ＥＮ識別子：Ｅ１）〜７００−４（ＥＮ識別子：Ｅ４）である場合、仮想ＮＷ識別子６０１が「Ｎ１」に対応する接続先ＥＮ識別子６０２は、「Ｅ１，Ｅ２」である。したがって、不要ＢＵＭ通信量６０９は、ＥＮ識別子「Ｅ１〜Ｅ４」のうち、接続先ＥＮ識別子６０２：「Ｅ１，Ｅ２」以外のＥＮ識別子「Ｅ３，Ｅ４」のいずれかで特定されるエッジノード７００−３（または７００−４）に流れるＢＵＭの通信量である。
【００５９】
なお、上述したように、図５に示した不要ＢＵＭ通信量５０５は、割当仮想ＮＷ識別子５０４で特定される仮想ＮＷ識別子６０１における不要ＢＵＭ通信量６０９の合計値である。たとえば、ＴＥＰＧ識別子５０１が「Ｇ０」のトンネルエンドポイントグループの不要ＢＵＭ通信量５０５は、割当仮想ＮＷ識別子５０４である「Ｎ１，Ｎ２，Ｎ４」の各々に対応する不要ＢＵＭ通信量６０９の合計値である。
【００６０】
図７は、エッジノードリソース情報テーブル１７３の記憶内容例を示す説明図である。エッジノードリソース情報テーブル１７３は、エッジノード７００のリソース情報を管理するテーブルである。エッジノードリソース情報テーブル１７３は、エッジノードリソース管理部１１３によって設定される。ネットワーク制御装置１００は、エッジノードリソース情報テーブル１７３を保持することによって、エッジノード７００の計算資源を考慮して、トンネルエンドポイント５００の追加や削除を行うことが可能になる。エッジノードリソース情報テーブル１７３は、ＥＮ識別子フィールド７０１と、最大ＴＥＰ数フィールド７０２と、既設ＴＥＰ数フィールド７０３と、ＴＥＰ識別子フィールド７０４と、を有し、各フィールドの値によりエッジノード７００のリソース情報を規定するエントリを構成する。
【００６１】
ＥＮ識別子フィールド７０１は、値として、ＥＮ識別子７０１を格納する記憶領域である。ＥＮ識別子７０１は、エッジノード７００を一意に特定する識別情報である。
【００６２】
最大ＴＥＰ数フィールド７０２は、値として、最大ＴＥＰ数７０２を格納する記憶領域である。最大ＴＥＰ数７０２は、エッジノード７００に設定可能なトンネルエンドポイント５００の最大数である。最大ＴＥＰ数７０２は、エッジノード７００の物理リソース量に応じて、システム構築時に設定される。または、エッジノード７００が最大ＴＥＰ数７０２の問い合わせに対して応答するインターフェースとして、たとえば、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）やＣＬＩ（Ｃｏｍｍａｎｄ  Ｌｉｎｅ  Ｉｎｔｅｒｆａｃｅ）を備える場合、それらを用いて取得されてもよい。
【００６３】
既設ＴＥＰ数フィールド７０３は、値として、既設ＴＥＰ数７０３を格納する記憶領域である。既設ＴＥＰ数７０３は、エッジノード７００に既に設定されたトンネルエンドポイント５００の数である。既設ＴＥＰ数７０３は、たとえば、トンネルエンドポイント５００が設定、最適化、設定変更される都度、エッジノードリソース管理部１１３により、最新の値に更新される。
【００６４】
ＴＥＰ識別子フィールド７０４は、値として、ＴＥＰ識別子７０４を格納する記憶領域である。ＴＥＰ識別子７０４は、ＥＮ識別子７０１で特定されるエッジノード７００に含まれるトンネルエンドポイント５００を一意に特定する識別情報である。ＴＥＰ識別子７０４は、たとえば、トンネルエンドポイント５００が設定、最適化、設定変更される都度、エッジノードリソース管理部１１３により、最新の値に更新される。
【００６５】
図８は、通信情報テーブル１７４の記憶内容例を示す説明図である。通信情報テーブル１７４は、ＷＡＮ３２０の通信情報を管理するテーブルである。通信情報テーブル１７４は、通信量計測・分析部１１４によってあらかじめ設定される。ネットワーク制御装置１００は、通信情報テーブル１７４を保持することによって、ＷＡＮ３２０の状態を考慮してトンネルエンドポイントグループを計算することが可能になる。その結果、ネットワーク制御装置１００は、ＷＡＮ３２０のリソース（通信帯域）が枯渇しないように、または、コストが小さくなるようにトンネルエンドポイントグループを計算することが可能になる。
【００６６】
通信情報テーブル１７４は、経路識別子フィールド８０１と、第１ＥＮ識別子フィールド８０２と、第２ＥＮ識別子フィールド８０３と、コストフィールド８０４と、余剰リソース量フィールド８０５と、を有し、各フィールドの値によりＷＡＮ３２０の通信情報を規定するエントリを構成する。
【００６７】
経路識別子フィールド８０１は、値として、経路識別子８０１を格納する記憶領域である。経路識別子８０１は、ＷＡＮ３２０内の端点となる２組のエッジノード７００（第１ＥＮ識別子８０２、第２ＥＮ識別子８０３）の組み合わせによって規定される経路を一意に特定する識別情報である。
【００６８】
第１ＥＮ識別子フィールド８０２は、値として、第１ＥＮ識別子８０２を格納する記憶領域である。第１ＥＮ識別子８０２は、ＷＡＮ３２０内の経路の一方の端点となるエッジノード７００を一意に特定する識別情報である。
【００６９】
第２ＥＮ識別子フィールド８０３は、値として、第２ＥＮ識別子８０３を格納する記憶領域である。第２ＥＮ識別子８０３は、ＷＡＮ３２０内の経路の他方の端点となるエッジノード７００を一意に特定する識別情報である。
【００７０】
コストフィールド８０４は、値として、コスト８０４を格納する記憶領域である。コスト８０４は、経路識別子８０１で特定される経路にかかる通信費用である。コスト８０４は、たとえば、ＷＡＮ３２０の通信コスト（たとえば、通信の値段（ビット単価）や、ＯＳＰＦ（Ｏｐｅｎ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ）またはＢＧＰ（Ｂｏｒｄｅｒ  Ｇａｔｅｗａｙ  Ｐｒｏｔｏｃｏｌ）で用いられるリンクメトリックの合計値）として計算される通信費用である。
【００７１】
余剰リソース量フィールド８０５は、値として、余剰リソース量８０５を格納する記憶領域である。余剰リソース量８０５は、経路識別子８０１で特定される経路において余っているリソース量（通信帯域）である。通信情報テーブル１７４において、余剰リソース量８０５が最小またはしきい値以下である、第１ＥＮ識別子８０２および第２ＥＮ識別子８０３で特定される両エッジノード７００が、ボトルネックとなる。
【００７２】
＜仮想ネットワーク設定シーケンス例＞
図９は、本実施例にかかる仮想ネットワークの設定シーケンス例を示す説明図である。本シーケンスは、ネットワークアプリケーション６００がネットワーク制御装置１００に仮想ネットワーク設定要求を送信することにより、ネットワーク制御装置１００が仮想ネットワークを設定する動作概要例である。仮想ネットワーク設定要求の送信タイミングは、たとえば、ネットワークアプリケーション６００を使用する運用者が仮想ネットワークを設定したいときである。
【００７３】
まず、ネットワーク制御装置１００は、ネットワークアプリケーション６００からの仮想ネットワーク設定要求を受信して、仮想ネットワーク情報テーブル１７２に格納する（ステップＳ９０１）。仮想ネットワーク設定要求は、たとえば、仮想ＮＷ識別子６０１、接続先ＥＮ識別子６０２、接続先ＬＮＷ識別子６０５、ポート番号６０６、通信帯域６０７、および瞬断可否フラグ６０８を含む。ネットワーク制御装置１００は、仮想ネットワーク設定要求を受け取ると、仮想ネットワーク設定要求内の仮想ＮＷ識別子６０１、接続先ＥＮ識別子６０２、接続先ＬＮＷ識別子６０５、ポート番号６０６、通信帯域６０７、および瞬断可否フラグ６０８を、仮想ネットワーク情報テーブル１７２に格納する。
【００７４】
つぎに、ネットワーク制御装置１００は、すべてのエッジノード７００に仮想ネットワークを設定する（ステップＳ９０２）。具体的には、たとえば、ネットワーク制御装置１００は、ステップＳ９０２で設定された仮想ＮＷ識別子６０１に対応する割当ＴＥＰＧ識別子フィールド６０４に、候補ＴＥＰＧ識別子６０３である評価用のトンネルエンドポイントグループのＴＥＰＧ識別子「Ｇ０」を割り当てる。
【００７５】
具体的には、ネットワーク制御装置１００は、割当ＴＥＰＧ識別子６０４となった評価用のトンネルエンドポイントグループＧ０に属する各トンネルエンドポイント５００−１（Ｔ１０）〜５００−４（Ｔ４０）に、仮想ネットワーク設定要求内の仮想ＮＷ識別子６０１に対応するＶｘＬＡＮのタグであるＶＮＩを設定する。そして、ネットワーク制御装置１００は、トンネルエンドポイントグループ情報テーブル１７１において、ＴＥＰＧ識別子５０１が「Ｇ０」のエントリにおいて、仮想ネットワーク設定要求内の仮想ＮＷ識別子６０１を割当仮想ＮＷ識別子フィールド５０４に格納する。
【００７６】
また、ネットワーク制御装置１００は、接続先ＬＮＷ識別子６０５に対応するＶＬＡＮを設定し、設定したＶＮＩ（仮想ＮＷ識別子６０１）とＶＬＡＮ（接続先ＬＮＷ識別子６０５）が繋がるように設定する。これにより、仮想ネットワークに設定されたエッジノード７００間がフルメッシュで通信可能に接続される。
【００７７】
つぎに、ネットワーク制御装置１００は、仮想ネットワークに設定された各エッジノード７００が計測したＢＵＭ通信量を収集する（ステップＳ９０３）。具体的には、たとえば、エッジノード７００は、ＷＡＮ３２０から流れてくるパケットのうち、仮想ＮＷ識別子６０１のタグがあるパケットの通信量を、設定された仮想ネットワークであるＶＮＩ毎に計測する。
【００７８】
たとえば、仮想ＮＷ識別子６０１が「Ｎ１」である場合、接続先ＥＮ識別子６０２である「Ｅ１，Ｅ２」に含まれていないエッジノード７００は、「Ｅ３，…，Ｅｎ」である。「Ｅ３，…，Ｅｎ」であるエッジノード７００−３，…，７００−ｎは、ＷＡＮ３２０から流れてくるパケットのうち、仮想ＮＷ識別子６０１のタグであるＶＮＩ１の通信量を計測して、計測した通信量をネットワーク制御装置１００に送る。これにより、接続先ＥＮ識別子６０２である「Ｅ１，Ｅ２」に含まれていないエッジノード７００からの通信量が収集される。
【００７９】
つぎに、ネットワーク制御装置１００は、仮想ネットワーク情報テーブル１７２の不要ＢＵＭ通信量フィールド６０９に格納する（ステップＳ９０４）。具体的には、たとえば、ネットワーク制御装置１００は、エッジノード７００−３，…，７００−ｎから受信したいずれか１つの通信量を、仮想ＮＷ識別子６０１が「Ｎ１」であるエントリの不要ＢＵＭ通信量フィールド６０９に格納する。
【００８０】
またこの場合、ネットワーク制御装置１００は、トンネルエンドポイントグループ情報テーブル１７１のＴＥＰＧ識別子５０１ごとに、不要ＢＵＭ通信量フィールド５０５にＢＵＭ通信量を格納する。具体的には、たとえば、ネットワーク制御装置１００は、割当仮想ＮＷ識別子５０４で特定される仮想ＮＷ識別子６０１ごとに仮想ネットワーク情報テーブル１７２から不要ＢＵＭ通信量６０９を取得して合計する。そして、ネットワーク制御装置１００は、合計したＢＵＭ通信量を、割当仮想ＮＷ識別子５０４のエントリにおける不要ＢＵＭ通信量フィールド５０５に格納する。
【００８１】
たとえば、評価用のトンネルエンドポイントグループＧ０のエントリにおいて、ネットワーク制御装置１００は、仮想ＮＷ識別子６０１が割当仮想ＮＷ識別子５０４「Ｎ１，Ｎ２，Ｎ４」である各エントリの不要ＢＵＭ通信量６０９を取得して合計し、不要ＢＵＭ通信量フィールド５０５に格納する。
【００８２】
これにより、ネットワーク制御装置１００が、ステップＳ９０１でネットワークアプリケーション６００から通知された接続先ＥＮ識別子６０２のエッジノード７００だけでなく、それ以外のエッジノード７００にも拡大して仮想ネットワークを設定することによって、仮想ネットワークの不要ＢＵＭ通信量６０９を計測することが可能になる。
【００８３】
このような手法を採用する理由は、本来、仮想ネットワークが設定されないエッジノード７００（上記の例では、接続先ＥＮ識別子６０２に該当しない「Ｅ３，…，Ｅｎ」であるエッジノード７００−３，…，７００−ｎ）においても当該仮想ネットワークのＢＵＭが流れてくるが、このような仮想ネットワークが設定されないエッジノード７００は、設定されていない仮想ネットワークのパケットをパケットカウンタで計測する前に廃棄してしまい、パケットカウンタによって計測できないからである。
【００８４】
なお、以下のような場合は、ネットワーク制御装置１００は、ステップＳ９０１〜Ｓ９０４を実行しなくてもよい。一つは、仮想ＮＷ識別子６０１で特定される仮想ネットワークの瞬断可否フラグ６０８が「否」である場合である。瞬断可否フラグ６０８が「否」である場合、仮想ネットワークをあるトンネルエンドポイントグループに割り当てた後に、他のトンネルエンドポイントグループに変更すると、通信が瞬断されてしまうからである。この場合、後続の処理（ステップＳ９０５、Ｓ９０６）も実行しない。また、不要ＢＵＭ通信量６０９を計測しなくてもよい場合や、評価用のトンネルエンドポイントグループＧ０でなくても不要ＢＵＭ通信量６０９を把握できる場合においても、ネットワーク制御装置１００が、ステップＳ９０１〜Ｓ９０４を実行しなくてもよい。
【００８５】
つぎに、ネットワーク制御装置１００は、割当ＴＥＰＧ決定処理を実行する（ステップＳ９０５）。割当ＴＥＰＧ決定処理（ステップＳ９０５）は、仮想ＮＷ識別子６０１で特定される仮想ネットワークを割り当てるトンネルエンドポイントグループを決定する。割当ＴＥＰＧ決定処理（ステップＳ９０５）の詳細については図１０で後述する。
【００８６】
割当ＴＥＰＧ決定処理（ステップＳ９０５）のあと、ネットワーク制御装置１００は、割当ＴＥＰＧ決定処理（ステップＳ９０５）で特定されたエッジノード７００の各トンネルエンドポイントに、仮想ネットワークを設定する（ステップＳ９０６）。仮想ネットワーク設定処理（ステップＳ９０６）の詳細については図１２で後述する。
【００８７】
仮想ネットワーク設定処理（ステップＳ９０６）のあと、ネットワーク制御装置１００は、ネットワークアプリケーション６００に対し、設定完了通知を送信する（ステップＳ９０７）。これにより、ネットワーク制御装置１００は、仮想ネットワーク設定シーケンスを終了する。
【００８８】
＜割当ＴＥＰＧ決定処理（ステップＳ９０５）＞
図１０は、図９に示した割当ＴＥＰＧ決定処理（ステップＳ９０５）の詳細な処理手順例を示すフローチャートである。仮想ネットワーク管理部１１５は、仮想ネットワークの接続構成を特定する（ステップＳ１００１）。具体的には、仮想ネットワーク管理部１１５が、仮想ネットワーク情報テーブル１７２において、仮想ネットワーク設定要求に含まれる仮想ＮＷ識別子６０１に対応する接続先ＥＮ識別子６０２を特定する。たとえば、仮想ネットワーク設定要求に含まれる仮想ＮＷ識別子６０１が「Ｎ１」である場合、仮想ネットワーク管理部１１５は、接続先ＥＮ識別子６０２として「Ｅ１，Ｅ２」を特定する。
【００８９】
つぎに、トンネルエンドポイントグループ管理部１１１は、各トンネルエンドポイントグループの接続構成を特定する（ステップＳ１００２）。具体的には、トンネルエンドポイントグループ管理部１１１は、トンネルエンドポイントグループ情報テーブル１７１において、ステップＳ１００１で特定されたすべての接続先ＥＮ識別子６０２がＥＮ識別子５０２に含まれるトンネルエンドポイントグループのＴＥＰＧ識別子５０１を、第１候補トンネルエンドポイントグループとして特定する。
【００９０】
たとえば、ステップＳ１００１で特定されたすべての接続先ＥＮ識別子６０２が「Ｅ１，Ｅ２」である場合、トンネルエンドポイントグループ管理部１１１は、「Ｅ１，Ｅ２」が含まれるトンネルエンドポイントグループのＴＥＰＧ識別子５０１である「Ｇ０，Ｇ１，Ｇ２」を、第１候補トンネルエンドポイントグループとして特定する。
【００９１】
そして、トンネルエンドポイントグループ管理部１１１は、特定した第１候補トンネルエンドポイントグループを、ステップＳ１００１で特定された仮想ＮＷ識別子６０１であるエントリの候補ＴＥＰＧ識別子フィールド６０３に保存する。たとえば、トンネルエンドポイントグループ管理部１１１は、特定した第１候補トンネルエンドポイントグループである「Ｇ０，Ｇ１，Ｇ２」を、仮想ネットワーク設定要求に含まれる仮想ＮＷ識別子６０１が「Ｎ１」であるエントリの候補ＴＥＰＧ識別子フィールド６０３に格納する。
【００９２】
つぎに、通信量計測・分析部１１４は、ＷＡＮ３２０のコスト８０４および余剰リソース量８０５を特定する（ステップＳ１００３）。具体的には、通信量計測・分析部１１４は、通信情報テーブル１７４において、ステップＳ１００１で特定された接続先ＥＮ識別子６０２に一致する第１ＥＮ識別子８０２および第２ＥＮ識別子８０３の組み合わせを特定し、特定した組み合わせと同一エントリのコスト８０４および余剰リソース量８０５を特定する。
【００９３】
たとえば、ステップＳ１００１で特定された接続先ＥＮ識別子６０２が「Ｅ１，Ｅ２」である場合、第１ＥＮ識別子８０２および第２ＥＮ識別子８０３の組み合わせが「Ｅ１，Ｅ２」であるエントリのコスト８０４である「１０」および余剰リソース量８０５である「１００Ｍｂｐｓ」を特定する。また、たとえば、ステップＳ１００１で特定された接続先ＥＮ識別子６０２が「Ｅ１，Ｅ２，Ｅ３」である場合、第１ＥＮ識別子８０２および第２ＥＮ識別子８０３の組み合わせが「Ｅ１，Ｅ２」であるエントリのコスト８０４である「１０」および余剰リソース量８０５である「１００Ｍｂｐｓ」と、第１ＥＮ識別子８０２および第２ＥＮ識別子８０３の組み合わせが「Ｅ１，Ｅ３」であるエントリのコスト８０４である「１５」および余剰リソース量８０５である「１５０Ｍｂｐｓ」と、第１ＥＮ識別子８０２および第２ＥＮ識別子８０３の組み合わせが「Ｅ２，Ｅ３」であるエントリのコスト８０４である「１２」および余剰リソース量８０５である「３０Ｍｂｐｓ」と、を特定する。なお、ＷＡＮ３２０の状態を考慮する必要がない場合は、ステップＳ１００３は必ずしも行われる必要はない。
【００９４】
つぎに、トンネルエンドポイントグループ管理部１１１は、割当トンネルエンドポイントグループを選択する（ステップＳ１００４）。具体的には、トンネルエンドポイントグループ管理部１１１は、トンネルエンドポイントグループ情報テーブル１７１のＥＮ識別子５０２を参照して、ステップＳ１００２で特定された第１候補トンネルエンドポイントグループのうち、エッジノード７００の数が少ないトンネルエンドポイントグループを第２候補トンネルエンドポイントグループとして特定する。エッジノード７００の数が少ないトンネルエンドポイントグループとは、第１候補トンネルエンドポイントグループの中で相対的にエッジノード７００の数が少ないトンネルエンドポイントグループでもよく、絶対的に、すなわち、エッジノード７００の数がしきい値以下となるトンネルエンドポイントグループでもよい。
【００９５】
たとえば、ステップＳ１００２で特定された第１候補トンネルエンドポイントグループを、候補ＴＥＰＧ識別子６０３である「Ｇ０，Ｇ１，Ｇ２」とする。トンネルエンドポイントグループ管理部１１１は、「Ｇ０，Ｇ１，Ｇ２」の各々について、エッジノード７００の数を計数する。エッジノード７００の数は、それぞれ「Ｇ０」が「ｎ」（図３の例ではｎ＝４）、「Ｇ１」が「３」、「Ｇ２」が「３」である。エッジノード７００の数が相対的に少ないトンネルエンドポイントグループを選択する場合は、トンネルエンドポイントグループ管理部１１１は、「Ｇ１」および「Ｇ２」を選択する。エッジノード７００の数が絶対的に少ないトンネルエンドポイントグループを選択する場合（たとえば、しきい値が５）は、トンネルエンドポイントグループ管理部１１１は、「Ｇ０」、「Ｇ１」および「Ｇ２」を選択する。
【００９６】
また、トンネルエンドポイントグループ管理部１１１は、第２候補トンネルエンドポイントグループが複数存在する場合、次の処理から割当トンネルエンドポイントグループを選択する。
【００９７】
トンネルエンドポイントグループ管理部１１１は、トンネルエンドポイントグループ情報テーブル１７１において、第２候補トンネルエンドポイントグループであるエントリのＥＮ識別子５０２を特定する。たとえば、第２候補トンネルエンドポイントグループが「Ｇ１」および「Ｇ２」である場合、そのＥＮ識別子５０２である「Ｅ１，Ｅ２，Ｅ３」および「Ｅ１，Ｅ２，Ｅ４」を特定する。この「Ｅ１，Ｅ２，Ｅ３」および「Ｅ１，Ｅ２，Ｅ４」をそれぞれ、第２候補ＥＮ識別子５０２と称す。
【００９８】
トンネルエンドポイントグループ管理部１１１は、第２候補ＥＮ識別子５０２に含まれ、かつ、ステップＳ１００１において特定された接続先ＥＮ識別子６０２に含まれないＥＮ識別子５０２を未接続エッジノード識別子５０２として特定する。ステップＳ１００１において特定された接続先ＥＮ識別子６０２を仮想ＮＷ識別子６０１の「Ｎ１」に対応する接続先ＥＮ識別子６０２「Ｅ１，Ｅ２」とする。
【００９９】
たとえば、第２候補ＥＮ識別子５０２が「Ｅ１，Ｅ２，Ｅ３」の場合、第２候補ＥＮ識別子５０２の「Ｅ１，Ｅ２，Ｅ３」に含まれ、かつ、接続先ＥＮ識別子６０２の「Ｅ１，Ｅ２」に含まれないＥＮ識別子は「Ｅ３」である。トンネルエンドポイントグループ管理部１１１は、「Ｅ３」を未接続ＥＮ識別子５０２として特定する。
【０１００】
同様に、第２候補ＥＮ識別子５０２が「Ｅ１，Ｅ２，Ｅ４」の場合、第２候補ＥＮ識別子５０２の「Ｅ１，Ｅ２，Ｅ４」に含まれ、かつ、接続先ＥＮ識別子６０２の「Ｅ１，Ｅ２」に含まれないＥＮ識別子は「Ｅ４」である。トンネルエンドポイントグループ管理部１１１は、「Ｅ４」を未接続ＥＮ識別子５０２として特定する。
【０１０１】
トンネルエンドポイントグループ管理部１１１は、ステップＳ１００３で特定した第１ＥＮ識別子８０２（または第２ＥＮ識別子８０３）が未接続ＥＮ識別子５０２であり、第２ＥＮ識別子８０３（または第１ＥＮ識別子８０２）が接続先ＥＮ識別子５０２であるエントリのコスト８０４と余剰リソース量８０５をすべて特定する。
【０１０２】
第２候補トンネルエンドポイントグループが「Ｇ１」の場合、未接続ＥＮ識別子５０２は「Ｅ３」である。この場合、接続先ＥＮ識別子６０２「Ｅ１」と未接続ＥＮ識別子５０２「Ｅ３」との組み合わせに該当する通信情報テーブル１７４のエントリは、経路識別子８０１が「Ｐ２」のエントリである。また、接続先ＥＮ識別子６０２「Ｅ２」と未接続ＥＮ識別子５０２「Ｅ３」との組み合わせに該当する通信情報テーブル１７４のエントリは、経路識別子８０１が「Ｐ３」のエントリである。
【０１０３】
トンネルエンドポイントグループ管理部１１１は、経路識別子８０１が「Ｐ２」のエントリから、コスト８０４の「１５」と余剰リソース量８０５の「１５０Ｍｂｐｓ」を取得する。同様に、トンネルエンドポイントグループ管理部１１１は、経路識別子８０１が「Ｐ３」のエントリから、コスト８０４の「１２」と余剰リソース量８０５の「３０Ｍｂｐｓ」を取得する。
【０１０４】
なお、第２候補トンネルエンドポイントグループが「Ｇ２」の場合、未接続ＥＮ識別子５０２は「Ｅ４」である。この場合、接続先ＥＮ識別子６０２「Ｅ１」と未接続ＥＮ識別子５０２「Ｅ４」との組み合わせに該当する通信情報テーブル１７４のエントリは存在しない。また、接続先ＥＮ識別子６０２「Ｅ２」と未接続ＥＮ識別子５０２「Ｅ４」との組み合わせに該当する通信情報テーブル１７４のエントリも存在しない。
【０１０５】
そして、未接続ＥＮ識別子５０２が「Ｅ３」である場合、トンネルエンドポイントグループ管理部１１１は、取得したコスト８０４の合計値、または、余剰リソース量８０５の最小値を特定する。上記の例の場合、取得したコスト８０４の合計値は、「１５」と「１２」の合計値「２７」である。取得した余剰リソース量８０５の最小値は、「１５０Ｍｂｐｓ」と「３０Ｍｂｐｓ」のうち、「３０Ｍｂｐｓ」である。
【０１０６】
なお、未接続ＥＮ識別子５０２が「Ｅ４」である場合、コスト８０４の合計値、または、余剰リソース量８０５は得られていないため、取得したコスト８０４の合計値、または、余剰リソース量８０５の最小値は特定されない。
【０１０７】
トンネルエンドポイントグループ管理部１１１は、すべての第２候補トンネルエンドポイントグループ（本例の場合、「Ｇ１」および「Ｇ２」）において、コスト８０４の合計値が最小のトンネルエンドポイントグループ、または、余剰リソース量８０５の最小値が最も大きいトンネルエンドポイントグループを、割当ＴＥＰＧ識別子５０１として選択する。上記の例では、「Ｇ１」が選択される。なお、コスト８０４を用いるか、余剰リソース量８０５を用いるかは、例えば、運用管理者が、ネットワーク制御装置１００の初期設定情報として設定すればよい。
【０１０８】
トンネルエンドポイントグループ管理部１１１は、ステップＳ１００１で特定された仮想ＮＷ識別子６０１である「Ｎ１」のエントリの割当ＴＥＰＧ識別子フィールド６０４の値を、「Ｇ０」から、選択された割当ＴＥＰＧ識別子５０１である「Ｇ１」に更新する。
【０１０９】
図１１は、割当ＴＥＰＧ決定処理（ステップＳ９０５）による更新後の仮想ネットワーク情報テーブル１７２の記憶内容例を示す説明図である。また、ネットワーク制御装置１００は、トンネルエンドポイントグループ情報テーブル１７１において、ＴＥＰＧ識別子５０１が、選択された割当ＴＥＰＧ識別子５０１である「Ｇ１」のエントリにおいて、仮想ネットワーク設定要求内の仮想ＮＷ識別子６０１である「Ｎ１」を、割当仮想ＮＷ識別子フィールド５０４に格納する。これにより、仮想ネットワーク管理部１１５は、割当ＴＥＰＧ決定処理（ステップＳ９０５）を終了して、ステップＳ９０６に移行する。
【０１１０】
＜仮想ネットワーク設定処理（ステップＳ９０６）＞
図１２は、図９に示した仮想ネットワーク設定処理（ステップＳ９０６）の詳細な処理手順例を示すフローチャートである。エッジノード・トンネルエンドポイント設定部１１２は、トンネルエンドポイントに仮想ネットワークを設定する（ステップＳ１２０１）。具体的には、エッジノード・トンネルエンドポイント設定部１１２は、設定対象となるＴＥＰ識別子５０３をすべて特定する。設定対象となるＴＥＰ識別子５０３とは、仮想ネットワークの接続先エッジノード７００を含むＴＥＰ識別子５０３であり、そのトンネルエンドポイント５００は、割当トンネルエンドポイントグループに含まれる。
【０１１１】
たとえば、エッジノード・トンネルエンドポイント設定部１１２は、エッジノードリソース情報テーブル１７３において、ＥＮ識別子７０１がステップＳ１００１で特定された接続先ＥＮ識別子６０２を含むエントリのＴＥＰ識別子７０４をすべて特定する。本例の場合、設定対象の仮想ネットワークの仮想ＮＷ識別子６０１が「Ｎ１」であるため、接続先ＥＮ識別子６０２は「Ｅ１，Ｅ２」である。したがって、エッジノード・トンネルエンドポイント設定部１１２は、ＴＥＰ識別子７０４としてＥＮ識別子７０１が「Ｅ１」であるエントリの「Ｔ１０，Ｔ１１，Ｔ１２，Ｔ１３」と、ＥＮ識別子７０１が「Ｅ２」であるエントリの「Ｔ２０，Ｔ２１，Ｔ２２」と、を特定する。
【０１１２】
トンネルエンドポイントグループ管理部１１１は、特定されたＴＥＰ識別子７０４のうち、トンネルエンドポイントグループ情報テーブル１７１において、ＴＥＰＧ識別子５０１がステップＳ１００４で特定された割当トンネルエンドポイントグループであるエントリのＴＥＰ識別子５０３をすべて特定する。特定されたＴＥＰ識別子５０３が設定対象のトンネルエンドポイントである。
【０１１３】
たとえば、ステップＳ１００４で選択された割当トンネルエンドポイントグループが「Ｇ１」である場合、トンネルエンドポイントグループ管理部１１１は、ＴＥＰＧ識別子５０１が「Ｇ１」であるエントリのＴＥＰ識別子５０３として「Ｔ１１，Ｔ２１，Ｔ３１」を設定対象のトンネルエンドポイントとして特定する。
【０１１４】
つぎに、エッジノード・トンネルエンドポイント設定部１１２は、設定対象のトンネルエンドポイントに対して、仮想ＮＷ設定要求（ステップＳ９０１）においてネットワークアプリケーション６００が送信した仮想ＮＷ識別子６０１に対応するＶＮＩおよび接続先ＬＮＷ識別子６０５に対応するＶＬＡＮの設定情報を生成する（ステップＳ１２０２）。
【０１１５】
たとえば、エッジノード・トンネルエンドポイント設定部１１２は、トンネルエンドポイントに仮想ＮＷ識別子６０１に対応するＶＮＩを設定し、ポートに仮想ＮＷ識別子６０１に対応するＶＬＡＮタグを設定し、設定されたＶＮＩとＶＬＡＮを関連付ける。そのため、このような設定例においては、設定情報は、ステップＳ１００４で特定された設定対象のトンネルエンドポイントのＴＥＰ識別子、仮想ネットワーク情報テーブル１７２において設定変更される仮想ＮＷ識別子６０１に対応するタグ（ＶＮＩ）、同エントリのポート番号６０６、および、同エントリの仮想ＮＷ識別子６０１に対応するタグを含む。
【０１１６】
なお、タグの選択方法の詳細は割愛するが、たとえば、仮想ＮＷ識別子６０１に対応するタグはネットワーク識別子の下４ケタの値として計算され、仮想ＮＷ識別子６０１に対応するタグ（ＶＮＩ）は仮想ＮＷ識別子６０１と同一の値として計算されてもよい。これにより、仮想ネットワーク管理部１１５は、仮想ネットワーク設定処理（ステップＳ９０６）を終了する。
【０１１７】
このように、仮想ネットワーク設定シーケンスでは、ネットワーク制御装置１００は、評価用のトンネルエンドポイントグループＧ０を用いることにより、仮想ネットワークの接続先エッジノード７００以外の他のエッジノード７００に流れるＢＵＭの通信量を特定する。そして、ネットワーク制御装置１００は、ＢＵＭの通信量が特定された仮想ネットワークを、当該仮想ネットワークに属するエッジノード７００と属さないエッジノード７００とを含むトンネルエンドポイントグループに割り当てる。割当先のトンネルエンドポイントグループは、評価用のトンネルエンドポイントグループＧ０よりも規模が小さい、すなわち、エッジノード７００やトンネルエンドポイント５００が少ないグループであるため、評価用のトンネルエンドポイントグループＧ０よりも不要ＢＵＭ通信量５０５が低い。したがって、不要なＢＵＭ通信が抑制される。
【０１１８】
たとえば、設定対象となる仮想ネットワークの仮想ＮＷ識別子６０１が「Ｎ１」である場合、本来通信される接続先エッジノード７００の接続先ＥＮ識別子６０２は「Ｅ１，Ｅ２」である。ネットワーク制御装置１００は、「Ｎ１」の仮想ネットワークに、評価用のトンネルエンドポイントグループＧ０を割り当てて、「Ｎ１」の仮想ネットワークの不要ＢＵＭ通信量６０９を特定し、その後、トンネルエンドポイントグループＧ１を割り当てた場合、エッジノード７００が「Ｅ１，Ｅ２，Ｅ３，…，Ｅｎ」から「Ｅ１，Ｅ２，Ｅ３」に縮小され、トンネルエンドポイント５００が「Ｔ１０，Ｔ２０，Ｔ３０，…，Ｔｎ０」から「Ｔ１１，Ｔ２１，Ｔ３１」に縮小される。換言すれば、「Ｎ１」の仮想ネットワークの不要ＢＵＭ通信量６０９が流れるエッジノード７００が「Ｅ３，…，Ｅｎ」から「Ｅ３」に縮小され、「Ｎ１」の仮想ネットワークの不要ＢＵＭ通信量６０９が流れるエッジノード７００がトンネルエンドポイント５００から「Ｔ３０，…，Ｔｎ０」から「Ｔ３１」に縮小される。
【０１１９】
また、割当トンネルエンドポイントグループ（第２候補トンネルエンドポイントグループ）が複数候補ある場合、ネットワーク制御装置１００は、当該グループ内で仮想ネットワークに未接続のエッジノード７００と接続先エッジノード７００との経路についてのコスト８０４または余剰リソース量８０５を参照して、割当トンネルエンドポイントグループを選択する。たとえば、ネットワーク制御装置１００は、コスト８０４の総和がより低い、または、余剰リソース量８０５の総和がより高い方のトンネルエンドポイントグループを割当トンネルエンドポイントグループに決定する。これにより、通信コストの削減または通信帯域不足による通信性能（通信帯域や通信遅延）の劣化が抑制される。
【０１２０】
＜トンネルエンドポイントグループ最適化シーケンス例＞
つぎに、トンネルエンドポイントグループの最適化について説明する。たとえば、エッジノード７００の障害やメンテナンス、ＷＡＮ３２０のリソース不足などの理由により、トンネルエンドポイントグループを再構成したい場合がある。このような場合、トンネルエンドポイントグループ最適化シーケンスを実行することにより、不要なＢＵＭ通信量を抑制するトンネルエンドポイントグループに再構成することが可能となる。これにより、仮想ネットワークに流れる不要なＢＵＭ通信量や、障害やメンテナンス対象のエッジノード７００への不要なＢＵＭ通信量を抑制することができる。
【０１２１】
図１３は、本実施例にかかるトンネルエンドポイントグループの最適化シーケンス例を示す説明図である。本シーケンスは、ネットワークアプリケーション６００による最適化の要求やエッジノード７００からの通知を契機に、ネットワーク制御装置１００がトンネルエンドポイント５００を再設定する動作概要図である。
【０１２２】
まず、ネットワークアプリケーション６００は、ネットワーク制御装置１００にトンネルエンドポイントグループ再構成要求を送信する（ステップＳ１３０１）。当該再構成要求には、再構成するＴＥＰＧ識別子５０１が１以上含まれる。当該ＴＥＰＧ識別子５０１は、つぎのＴＥＰＧ最適化処理（ステップＳ１３０２）のステップＳ１４０３で用いられる。
【０１２３】
なお、図１３においては、ネットワークアプリケーション６００からのトンネルエンドポイントグループ再構成要求を、トンネルエンドポイントグループの最適化の契機とするが、契機はこの限りではない。例えば、トンネルエンドポイントグループの最適化の契機は、定期的でもよい。また、ＷＡＮ３２０のリソースが足りなくなる場合、ネットワーク制御装置１００が仮想ネットワーク設定の要求を受信する代わりに、割当可能なトンネルエンドポイントグループが存在しないことを、トンネルエンドポイントグループを最適化する契機としてもよい。
【０１２４】
つぎに、ネットワーク制御装置１００は、トンネルエンドポイントグループの最適化処理（ＴＥＰＧ最適化処理）を実行する（ステップＳ１３０２）。ＴＥＰＧ最適化処理（ステップＳ１３０３）は、現状の不要なＢＵＭ通信量に応じてトンネルエンドポイントグループを再構成する処理である。ＴＥＰＧ最適化処理（ステップＳ１３０２）の詳細については図１４で後述する。
【０１２５】
ＴＥＰＧ最適化処理（ステップＳ１３０２）のあと、ネットワーク制御装置１００は、トンネルエンドポイント５００を再設定する（ステップＳ１３０３）。具体的には、ネットワーク制御装置１００は、ＴＥＰＧ最適化処理（ステップＳ１３０２）により、トンネルエンドポイントグループ情報テーブル１７１において新規に追加されたエントリにおけるＥＮ識別子５０２のエッジノード７００に、新規に追加されたエントリにおけるＴＥＰ識別子５０３のトンネルエンドポイントを設定する。
【０１２６】
また、トンネルエンドポイントグループ再構成要求（ステップＳ１３０１）に含まれるＴＥＰＧ識別子５０１のエントリは、ＴＥＰＧ最適化処理（ステップＳ１３０２）で削除対象となっている。したがって、ネットワーク制御装置１００は、削除対象エントリにおけるＥＮ識別子５０２のエッジノード７００から、削除対象エントリにおけるＴＥＰ識別子５０３のトンネルエンドポイントを削除する。そのあと、ネットワーク制御装置１００は、当該削除対象エントリをトンネルエンドポイントグループ情報テーブル１７１から削除する。
【０１２７】
つぎに、ネットワーク制御装置１００は、割当ＴＥＰＧ決定処理を実行する（ステップＳ１３０４）。割当ＴＥＰＧ決定処理（ステップＳ１３０４）は、ＴＥＰＧ最適化処理（ステップＳ１３０２）後の構成において、仮想ネットワークに割り当てるトンネルエンドポイントグループを決定する処理である。割当ＴＥＰＧ決定処理（ステップＳ１３０４）の詳細については図１５で後述する。
【０１２８】
つぎに、割当ＴＥＰＧ決定処理（ステップＳ１３０４）のあと、ネットワーク制御装置１００は、エッジノード７００に対し、仮想ネットワークを設定変更する（ステップＳ１３０５）。具体的には、割当ＴＥＰＧ決定処理（ステップＳ１３０４）において特定された削除対象のＥＮ識別子５０２に対応する削除対象のＴＥＰ識別子５０３のトンネルエンドポイントから仮想ネットワークを削除し、また、追加対象のＥＮ識別子５０２に対応する追加対象のＴＥＰ識別子５０３のトンネルエンドポイントに仮想ネットワークを追加する。
【０１２９】
最後に、ネットワーク制御装置１００は、各エッジノード７００が計測したＢＵＭ通信量を収集して、仮想ネットワーク情報テーブル１７２の不要ＢＵＭ通信量フィールド６０９に格納する（ステップＳ１３０６）。詳細な処理内容は、ステップＳ９０４と同一であるため説明を省略する。
【０１３０】
最後に、ネットワーク制御装置１００は、ネットワークアプリケーション６００に対し、設定完了通知を送信する（ステップＳ１３０７）。具体的には、たとえば、ネットワーク制御装置１００は、設定完了通知として、更新されたトンネルエンドポイントグループ情報、更新された仮想ネットワーク情報、更新されたエッジノードリソース情報、および、更新された通信情報を通知する。
【０１３１】
＜ＴＥＰＧ最適化処理（ステップＳ１３０２）＞
図１４は、図１１に示したＴＥＰＧ最適化処理（ステップＳ１３０２）の詳細な処理手順例を示すフローチャートである。まず、通信量計測・分析部１１４は、仮想ネットワーク毎の不要なＢＵＭ通信量を特定する（ステップＳ１４０１）。具体的には、たとえば、通信量計測・分析部１１４は、仮想ネットワーク情報テーブル１７２を参照して、仮想ＮＷ識別子６０１で特定される仮想ネットワークのエントリごとに、接続先ＥＮ識別子６０２および割当ＴＥＰＧ識別子６０４を特定する。
【０１３２】
たとえば、仮想ＮＷ識別子６０１が「Ｎ１」であるエントリについては、接続先ＥＮ識別子６０２として「Ｅ１，Ｅ２」が特定され、割当ＴＥＰＧ識別子６０４として「Ｇ１」（上記の例で割当ＴＥＰＧ決定処理（ステップＳ９０５）のステップＳ１００４で「Ｇ０」から「Ｇ１」に更新。図１１参照。）が特定される。接続先ＥＮ識別子６０２および割当ＴＥＰＧ識別子６０４の特定の対象となるエントリの仮想ネットワークを、計測対象仮想ネットワークと称す。この例の場合は、仮想ＮＷ識別子６０１の「Ｎ１」で特定される仮想ネットワークが、計測対象仮想ネットワークである。
【０１３３】
また、通信量計測・分析部１１４は、トンネルエンドポイントグループ情報テーブル１７１を参照して、本ステップＳ１４０１で特定された割当ＴＥＰＧ識別子６０４に一致するＴＥＰＧ識別子５０１のエントリにおけるＥＮ識別子５０２（以下、設定先ＥＮ識別子５０２と称す。）を特定する。上記の例では、本ステップＳ１４０１で特定された割当ＴＥＰＧ識別子６０４は「Ｇ１」であるため、通信量計測・分析部１１４は、ＴＥＰＧ識別子５０１が「Ｇ１」であるエントリにおけるＥＮ識別子５０２の「Ｅ１，Ｅ２，Ｅ３」を設定先ＥＮ識別子５０２として特定する。
【０１３４】
通信量計測・分析部１１４は、設定先ＥＮ識別子５０２に含まれ、かつ、接続先ＥＮ識別子６０２に含まれないＥＮ識別子５０２（以下、計測対象ＥＮ識別子５０２と称す。）を特定する。上記の例では、通信量計測・分析部１１４は、設定先ＥＮ識別子５０２である「Ｅ１，Ｅ２，Ｅ３」に含まれ、かつ、接続先ＥＮ識別子６０２である「Ｅ１，Ｅ２」に含まれないＥＮ識別子５０２（以下、計測対象ＥＮ識別子５０２と称す。）として、「Ｅ３」を特定する。
【０１３５】
通信量計測・分析部１１４は、いずれかの計測対象ＥＮ識別子５０２で特定されるエッジノード（以下、計測対象エッジノード）において、ＷＡＮ３２０から流れてくる通信のうち、計測対象仮想ネットワークのタグであるＶＮＩ毎の通信量を計測する。
【０１３６】
この際、計測対象エッジノードに流れる各ＢＵＭ通信量は、ＷＡＮ３２０におけるパケットロスの量が誤差となるものの、その誤差の範囲で一致する。そのため、いずれか一つの計測対象エッジノードにおいて不要ＢＵＭ通信量が計測されればよい。本例の場合、計測対象ＥＮ識別子５０２が「Ｅ３」である計測対象エッジノード７００−３がＢＵＭ通信量を計測する。通信量計測・分析部１１４は、計測されたＢＵＭ通信量を、仮想ネットワーク情報テーブル１７２の計測対象仮想ネットワークのエントリにおける不要ＢＵＭ通信量フィールド６０９に保存する。本例の場合、通信量計測・分析部１１４は、仮想ＮＷ識別子６０１が「Ｎ１」である計測対象仮想ネットワークのエントリにおける不要ＢＵＭ通信量フィールド６０９に保存する。
【０１３７】
つぎに、仮想ネットワーク管理部１１５は、仮想ネットワーク情報テーブル１７２を参照し、トンネルエンドポイントグループに割り当てられた仮想ネットワーク内に流れる不要ＢＵＭ通信量６０９を計算する（ステップＳ１４０２）。以下にその計算方法を示す。
【０１３８】
ステップＳ１４０１において特定された仮想ネットワークｉの不要ＢＵＭ通信量６０９をＡｉとし、計測対象エッジノード数をＮ１ｉとする。また、計測対象エッジノード７００ではなく、かつ、同仮想ネットワークｉの割当ＴＥＰＧ識別子６０４に対応するＥＮ識別子５０２の数をＮ２ｉとする。仮想ネットワークｉ毎に流れる不要ＢＵＭ通信量６０９の合計Ｂｉは、たとえば、数式（１）によって計算される。
【０１３９】
Ｂｉ＝Ａｉ×Ｎ１ｉ×Ｎ２ｉ・・・・・・・・・（１）
【０１４０】
仮想ネットワーク管理部１１５が、仮想ネットワーク情報テーブル１７２の仮想ＮＷ識別子６０１が「Ｎ１」であるエントリにおける不要ＢＵＭ通信量フィールド６０９を、数式（１）で計算された不要ＢＵＭ通信量６０９の合計Ｂｉに更新する。なお、当該更新に応じて、トンネルエンドポイントグループ情報テーブル１７１の不要ＢＵＭ通信量５０５も更新される。
【０１４１】
つぎに、トンネルエンドポイントグループ管理部１１１は、構成を変更可能なトンネルエンドポイントを選択する（ステップＳ１４０３）。具体的な処理手順を以下に示す。トンネルエンドポイントグループ管理部１１１は、トンネルエンドポイントグループ再構成要求（ステップＳ１１０１）において特定されたＴＥＰＧ識別子５０１に対応する割当仮想ＮＷ識別子５０４を特定する。トンネルエンドポイントグループ再構成要求（ステップＳ１１０１）において特定されたＴＥＰＧ識別子５０１が「Ｇ１」の場合、割当仮想ＮＷ識別子５０４は「Ｎ５，Ｎ６」である。
【０１４２】
トンネルエンドポイントグループ管理部１１１は、割当仮想ＮＷ識別子５０４に一致する仮想ＮＷ識別子６０１のエントリの瞬断可否フラグ６０８が「可」であるか否かを判断する。上記の場合、仮想ＮＷ識別子６０１が「Ｎ５」に対応する瞬断可否フラグ６０８と「Ｎ６」に対応する瞬断可否フラグ６０８がともに「可」であるか否かを判断する。ともに「可」である場合、トンネルエンドポイントグループ管理部１１１は、トンネルエンドポイントグループ再構成要求（ステップＳ１３０１）において特定されたＴＥＰＧ識別子５０１を、再構成可能なトンネルエンドポイントグループに決定する。
【０１４３】
つぎに、トンネルエンドポイントグループ管理部１１１は、通信情報テーブル１７４を参照して、ＷＡＮ３２０の経路識別子８０１の経路ごとのコスト８０４または余剰リソース量８０５を特定する（ステップＳ１４０４）。ステップＳ１４０４は、つぎのステップＳ１４０５で用いられる場合に実行される。
【０１４４】
つぎに、トンネルエンドポイントグループ管理部１１１は、トンネルエンドポイントグループの接続構成変更処理を実行する（ステップＳ１４０５）。トンネルエンドポイントグループの接続構成変更処理（ステップＳ１４０５）は、ステップＳ１４０４で特定されたＷＡＮ３２０に流れるＢＵＭ通信量の合計が少なくなる、または、ボトルネックとなるエッジノード７００のＢＵＭ通信量が少なくなるようにトンネルエンドポイントグループの接続構成を変更する処理である。
【０１４５】
＜トンネルエンドポイントグループの接続構成変更処理（ステップＳ１４０５）＞
図１５は、図１４に示したトンネルエンドポイントグループの接続構成変更処理（ステップＳ１４０５）の詳細な処理手順例を示すフローチャートである。図１５では、ＷＡＮ３２０に流れる不要なＢＵＭ通信量の合計が少なくなるようにトンネルエンドポイントグループの接続構成を変更する場合について説明する。また、ＷＡＮ３２０に流れる不要なＢＵＭ通信量の合計は、トンネルエンドポイントグループ情報テーブル１７１の不要ＢＵＭ通信量の総和として計算される。具体的には、トンネルエンドポイントグループ管理部１１１は、トンネルエンドポイントグループ情報テーブル１７１の全エントリに対して以下の処理を行う。
【０１４６】
まず、トンネルエンドポイントグループ管理部１１１は、トンネルエンドポイントグループ情報テーブル１７１のあるエントリｋのトンネルエンドポイントグループ情報として、ＴＥＰＧ識別子５０１、ＥＮ識別子５０２（ここでは、ＥＮ識別子ｊと称す）、割当仮想ＮＷ識別子５０４（ここでは、割当仮想ＮＷ識別子ｌと称す）を特定する（ステップＳ１５０１）。エントリｋは、ステップＳ１４０３で再構成可能なトンネルエンドポイントグループのエントリである。
【０１４７】
つぎに、トンネルエンドポイントグループ管理部１１１は、仮想ネットワーク情報テーブル１７２において、エントリｋのトンネルエンドポイントグループ情報に関連する仮想ＮＷ情報として、仮想ＮＷ識別子６０１が割当仮想ＮＷ識別子ｌであるエントリの接続先ＥＮ識別子６０２（ここでは、接続先ＥＮ識別子（ｍｌ））、および、不要ＢＵＭ通信量６０９（ここでは、不要ＢＵＭ通信量（Ｂｌ））を取得する（ステップＳ１５０２）。割当仮想ＮＷ識別子ｌの不要ＢＵＭ通信量Ｂ’ｌは、下記式（２）によって計算される。
【０１４８】
Ｂ’ｌ＝Ｂｌ×（Ｎｊ―Ｎｍｌ）×Ｎｍｌ・・・・・・・・・（２）
【０１４９】
ここで、ＮｊはＥＮ識別子ｊの数であり、Ｎｍｌは接続先ＥＮ識別子ｍｌの数である。割当仮想ＮＷ識別子ｌが複数存在する場合、トンネルエンドポイントグループ管理部１１１は、割当仮想ＮＷ識別子５０４の各々に対してＢ’ｌを計算する。トンネルエンドポイントグループ管理部１１１は、すべての割当仮想ＮＷ識別子ｌの不要ＢＵＭ通信量Ｂ’ｌの総和を、トンネルエンドポイントグループ情報テーブル１７１のエントリｋの不要ＢＵＭ通信量５０５として保存する。以上の処理によって、エントリｋであるトンネルエンドポイントグループの不要なＢＵＭ通信量が計算される。
【０１５０】
このように、エントリｋであるトンネルエンドポイントグループの不要ＢＵＭ通信量５０５は、各割当仮想ＮＷ識別子ｌの不要ＢＵＭ通信量Ｂ’ｌの和として計算される。以下に、不要ＢＵＭ通信量Ｂ’ｌの総和が小さくなるトンネルエンドポイントグループの接続構成を計算する手順を説明する。
【０１５１】
つぎに、トンネルエンドポイントグループ管理部１１１は、エッジノードリソース情報テーブル１７３のＥＮ識別子７０１が接続先ＥＮ識別子６０２である最大ＴＥＰ数７０２と既設ＴＥＰ数７０３とをすべて比較し、既設ＴＥＰ数７０３が最大ＴＥＰ数７０２より小さいか否かを確認する（ステップＳ１５０４）。すべてが小さい場合（ステップＳ１５０４：Ｙｅｓ）は下記の処理を続ける。なお、一つでも小さくない場合（ステップＳ１５０４：Ｎｏ）のマージ処理（ステップＳ１５１３）は後述する。
【０１５２】
トンネルエンドポイントグループ管理部１１１は、トンネルエンドポイントグループ情報テーブル１７１の不要ＢＵＭ通信量５０５が最も大きいエントリのＴＥＰＧ識別子５０１、ＥＮ識別子５０２、ＴＥＰ識別子５０３、割当仮想ＮＷ識別子５０４を特定する（ステップＳ１５０５）。トンネルエンドポイントグループ管理部１１１は、特定された割当仮想ＮＷ識別子５０４を二つのグループＡ、グループＢに分ける（ステップＳ１５０６）。分け方としては例えばランダムに分けてもよい。
【０１５３】
トンネルエンドポイントグループ管理部１１１は、グループＡに含まれるすべての割当仮想ＮＷ識別子ｎＡに含まれる接続先ＥＮ識別子６０２を特定し、重複排除された接続先ＥＮ識別子６０２を新規エッジノード識別子候補ｐＡとして特定する。トンネルエンドポイントグループ管理部１１１は、同様に、グループＢにおいても、割当仮想ＮＷ識別子ｎＢと新規エッジノード識別子候補ｐＢを特定する（ステップＳ１５０７）。
【０１５４】
つぎに、トンネルエンドポイントグループ管理部１１１は、グループＡの仮想ネットワークｎＡにおいて、下記式（３）より、仮想ネットワークｎＡの不要ＢＵＭ通信量Ｂ’ｎＡを計算する。同様に、トンネルエンドポイントグループ管理部１１１は、グループＢの仮想ネットワークｎＢにおいて、下記式（４）より、仮想ネットワークｎＢの不要ＢＵＭ通信量Ｂ’ｎＢを計算する。
【０１５５】
Ｂ’ｎＡ＝ＢｎＡ×（ＮｍｌＡ―ＮｐＡ）×ＮｍｌＡ・・・・・・・・・（３）
Ｂ’ｎＢ＝ＢｎＢ×（ＮｍｌＢ―ＮｐＢ）×ＮｍｌＢ・・・・・・・・・（４）
【０１５６】
ＢｎＡは、仮想ネットワークｎＡを特定する仮想ＮＷ識別子６０１に対応する不要ＢＵＭ通信量６０９であり、ＢｎＢは、仮想ネットワークｎＢを特定する仮想ＮＷ識別子６０１に対応する不要ＢＵＭ通信量６０９である。ＮｍｌＡは、グループＡの仮想ネットワークｎＡにおける接続先ＥＮ識別子ｍｌの数であり、ＮｍｌＢは、グループＢの仮想ネットワークｎＡにおける接続先ＥＮ識別子ｍｌの数である。ＮｐＡは、グループＡの新規エッジノード識別子候補ｐＡの数であり、ＮｐＢは、グループＢの新規エッジノード識別子候補ｐＢの数である。
【０１５７】
そして、トンネルエンドポイントグループ管理部１１１は、上記式（３），（４）で求めた仮想ネットワークｎＡの不要ＢＵＭ通信量Ｂ’ｎＡと仮想ネットワークｎＢの不要ＢＵＭ通信量Ｂ’ｎＢとの総和を求める（ステップＳ１５０８）。
【０１５８】
トンネルエンドポイントグループ管理部１１１は、割当仮想ネットワーク識別子の二つのグループＡ、Ｂの分類を毎回変更して、上記計算を所定回数試行する。所定回数に満たない場合（ステップＳ１５０９：Ｎｏ）、ステップＳ１５０５に戻る。所定回数に到達した場合（ステップＳ１５０９：Ｙｅｓ）、トンネルエンドポイントグループ管理部１１１は、不要ＢＵＭ通信量Ｂ’ｎＡと不要ＢＵＭ通信量Ｂ’ｎＢとの総和が最小となるグループＡとグループＢを選択する（ステップＳ１５１０）。
【０１５９】
なお、通信情報テーブル１７４のコスト８０４を考慮する場合、コスト８０４を重み係数として下記式（５），（６）によって不要ＢＵＭ通信量Ｂ’ｎＡと不要ＢＵＭ通信量Ｂ’ｎＢを計算してもよい。
【０１６０】
Ｂ’ｎＡ＝Σｉ∈Ｉ，ｊ∈Ｊ{ＢｎＡ×Ｃｉｊ（ＮｐＡ―Ｎｍｌ）×ＮｍｌＡ×Ｘｉｊ}・・・・・・（５）
Ｂ’ｎＢ＝Σｉ∈Ｉ，ｊ∈Ｊ{ＢｎＢ×Ｃｉｊ（ＮｐＢ―Ｎｍｌ）×ＮｍｌＢ×Ｘｉｊ}・・・・・・（６）
【０１６１】
ここで，Ｃｉｊは通信情報テーブル１７４の第１ＥＮ識別子８０２（ここでは、第１ＥＮ識別子ｉ）および第２ＥＮ識別子８０３（ここでは、第２ＥＮ識別子ｊ）に対応するコスト８０４である。
【０１６２】
Ｘｉｊは定数である。仮想ネットワーク情報テーブル１７２の仮想ＮＷ識別子６０１で特定される仮想ネットワークｎＡのエントリの接続先ＥＮ識別子６０２にエッジノード識別子iが含まれ、かつ、エッジノード識別子候補ｐＡにエッジノード識別子ｊが含まれる場合、Ｘｉｊは「１」である。また、仮想ネットワーク情報テーブル１７２の仮想ＮＷ識別子６０１で特定される仮想ネットワークｎＢのエントリの接続先ＥＮ識別子６０２にエッジノード識別子iが含まれ、かつ、エッジノード識別子候補ｐＢにエッジノード識別子ｊが含まれる場合も、Ｘｉｊは「１」である。これら以外は、Ｘｉｊは「０」である。
【０１６３】
このあと、トンネルエンドポイントグループ管理部１１１は、トンネルエンドポイントグループ情報テーブル１７１に新規エントリを作成し、図１３に示したトンネルエンドポイントグループ再構成要求（ステップＳ１３０１）に含まれるＴＥＰＧ識別子５０１のエントリをトンネルエンドポイントグループ情報テーブル１７１からの削除対象に設定する（ステップＳ１５１１）。
【０１６４】
具体的には、トンネルエンドポイントグループ管理部１１１は、総和が最小となるグループＡを新規のトンネルエンドポイントグループに決定し、新規のＴＥＰＧ識別子５０１を割り当てる。トンネルエンドポイントグループ管理部１１１は、エッジノード識別子候補ｐＡを新規のＥＮ識別子５０２に決定し、新規のＴＥＰＧ識別子５０１（ここでは、新規ＴＥＰ識別子ＴＡｎｅｗとする）と同一エントリのＥＮ識別子フィールド５０２に格納する。トンネルエンドポイントグループ管理部１１１は、エッジノード識別子候補ｐＡに対応する新規のＴＥＰ識別子５０３（ここでは、新規のＴＥＰ識別子ＴＡｉｊとする）を生成し、新規のＴＥＰＧ識別子５０１と同一エントリのＴＥＰ識別子フィールド５０３に格納する。
【０１６５】
トンネルエンドポイントグループ管理部１１１は、グループＡの仮想ネットワークｎＡを特定する仮想ＮＷ識別子ｎＡを、割当仮想ＮＷ識別子５０４に決定し、新規のＴＥＰＧ識別子５０１と同一エントリの割当仮想ＮＷ識別子フィールド５０４に格納する。トンネルエンドポイントグループ管理部１１１は、不要ＢＵＭ通信量Ｂ’ｎＡを不要ＢＵＭ通信量５０５に決定し、新規のＴＥＰＧ識別子５０１と同一エントリの不要ＢＵＭ通信量フィールド５０５に格納する。
【０１６６】
グループＢについても同様に、トンネルエンドポイントグループ管理部１１１は、総和が最小となるグループＢを新規のトンネルエンドポイントグループに決定し、新規のＴＥＰＧ識別子５０１を割り当てる。トンネルエンドポイントグループ管理部１１１は、エッジノード識別子候補ｐＢを新規のＥＮ識別子５０２に決定し、新規のＴＥＰＧ識別子５０１（ここでは、新規ＴＥＰ識別子ＴＢｎｅｗとする）と同一エントリのＥＮ識別子フィールド５０２に格納する。トンネルエンドポイントグループ管理部１１１は、エッジノード識別子候補ｐＢに対応する新規のＴＥＰ識別子５０３（ここでは、新規のＴＥＰ識別子ＴＢｉｊとする）を生成し、新規のＴＥＰＧ識別子５０１と同一エントリのＴＥＰ識別子フィールド５０３に格納する。
【０１６７】
トンネルエンドポイントグループ管理部１１１は、グループＢの仮想ネットワークｎＢを特定する仮想ＮＷ識別子ｎＢを、割当仮想ＮＷ識別子５０４に決定し、新規のＴＥＰＧ識別子５０１と同一エントリの割当仮想ＮＷ識別子フィールド５０４に格納する。トンネルエンドポイントグループ管理部１１１は、不要ＢＵＭ通信量Ｂ’ｎＢを不要ＢＵＭ通信量５０５に決定し、新規のＴＥＰＧ識別子５０１と同一エントリの不要ＢＵＭ通信量フィールド５０５に格納する。
【０１６８】
また、トンネルエンドポイントグループ管理部１１１は、割当ＴＥＰＧ識別子６０４を更新し、ステップＳ１３０３に戻る（ステップＳ１５１２）。具体的には、たとえば、トンネルエンドポイントグループ管理部１１１は、仮想ネットワーク情報テーブル１７２において、グループＡの仮想ネットワークｎＡのエントリを更新するため、仮想ＮＷ識別子６０１が仮想ＮＷ識別子ｎＡであるエントリの割当ＴＥＰＧ識別子６０４を新規ＴＥＰ識別子ＴＡｎｅｗに更新する。
【０１６９】
同様に、トンネルエンドポイントグループ管理部１１１は、仮想ネットワーク情報テーブル１７２において、グループＢの仮想ネットワークｎＢのエントリを更新するため、仮想ＮＷ識別子６０１が仮想ＮＷ識別子ｎＢであるエントリの割当ＴＥＰＧ識別子６０４を新規ＴＥＰ識別子ＴＢｎｅｗに更新する。ＴＥＰＧ最適化処理（ステップＳ１３０３）により、不要なＢＵＭ通信量が小さくなるように、トンネルエンドポイントグループを再構成することができる。
【０１７０】
また、トンネルエンドポイントグループ管理部１１１は、エッジノードリソース情報テーブル１７３のＥＮ識別子７０１が接続先ＥＮ識別子６０２に含まれるエントリを特定し、特定したエントリの既設ＴＥＰ数７０３を、トンネルエンドポイントグループ情報テーブル１７１のグループＡ，Ｂの新規エントリにおいて追加した分だけ増やし、当該新規エントリにおいて発行されたＴＥＰ識別子５０３をＴＥＰ識別子フィールド７０４に追加する。
【０１７１】
ここで、エッジノードリソース情報テーブル１７３において、既設ＴＥＰ数７０３が最大ＴＥＰ数７０２に比べて、一つでも小さくない場合（ステップＳ１５０４：Ｎｏ）のマージ処理（ステップＳ１５１３）を説明する。なお、説明のため、該当する（すなわち、既設ＴＥＰ数７０３が最大ＴＥＰ数７０２以上である）ＥＮ識別子７０１をＥＮ識別子ｅとする。
【０１７２】
トンネルエンドポイントグループ管理部１１１は、トンネルエンドポイントグループ情報テーブル１７１において、ＥＮ識別子ｅがＥＮ識別子５０２に含まれるエントリを特定する。トンネルエンドポイントグループ管理部１１１は、仮想ネットワーク情報テーブル１７２において、特定したエントリの割当仮想ＮＷ識別子５０４と一致する仮想ＮＷ識別子６０１のエントリの瞬断可否フラグ６０８が「可」であるか否かを判断する。「可」である場合、トンネルエンドポイントグループ管理部１１１は、トンネルエンドポイントグループ情報テーブル１７１において、当該特定したエントリにおけるＴＥＰＧ識別子５０１、ＥＮ識別子５０２、および、不要ＢＵＭ通信量５０５を特定する。
【０１７３】
トンネルエンドポイントグループ管理部１１１は、トンネルエンドポイントグループ情報テーブル１７１において、特定されたＥＮ識別子５０２の組み合わせが最も近似する２つ以上のエントリを選択する。具体的には、たとえば、トンネルエンドポイントグループ管理部１１１は、共通するＥＮ識別子５０２の数が最大となるエントリ群を、最も近似する２つ以上のエントリとして選択する。
【０１７４】
トンネルエンドポイントグループ管理部１１１は、選択した２以上のエントリの中で不要ＢＵＭ通信量５０５が小さい２つのエントリを１つのエントリにマージする。具体的には、たとえば、トンネルエンドポイントグループ管理部１１１は、マージ後のエントリのＴＥＰＧ識別子フィールド５０１に、マージされるいずれか１つのエントリのＴＥＰＧ識別子５０１を格納する。
【０１７５】
トンネルエンドポイントグループ管理部１１１は、マージ後のエントリのＥＮ識別子フィールド５０２に、マージされるエントリの各々に含まれ、かつ、重複排除されたＥＮ識別子５０２を格納する。トンネルエンドポイントグループ管理部１１１は、マージ後のエントリのＴＥＰ識別子フィールド５０３に、同一のＥＮ識別子５０２のエッジノード７００に複数のエントリのＴＥＰ識別子５０３が対応する場合は、マージされるいずれか１つのエントリのＴＥＰ識別子５０３を格納し、１つのエントリにしか存在しないＴＥＰ識別子５０３については、そのＴＥＰ識別子５０３を格納する。
【０１７６】
トンネルエンドポイントグループ管理部１１１は、マージ後のエントリの割当仮想ＮＷ識別子フィールド５０４に、マージされるエントリの各々に含まれ、かつ、重複排除された全割当仮想ＮＷ識別子５０４を格納する。トンネルエンドポイントグループ管理部１１１は、マージ後のエントリの不要ＢＵＭ通信量フィールド５０５に、マージされる各エントリの不要ＢＵＭ通信量５０５の合計値を格納する。
【０１７７】
また、トンネルエンドポイントグループ管理部１１１は、マージ後のエントリのＥＮ識別子５０２に一致するＥＮ識別子７０１のエントリを、エッジノードリソース情報テーブル１７３から特定する。トンネルエンドポイントグループ管理部１１１は、特定したエントリにおいて、既設ＴＥＰ数７０３およびＴＥＰ識別子７０４について上記マージ結果を反映する。このマージ処理により、トンネルエンドポイント５００の設定が不可能な状態を回避することができる。なお、マージ処理（ステップＳ１５１３）のあとは、ステップＳ１３０３に戻る。
【０１７８】
上記では、ＷＡＮ３２０に流れる不要ＢＵＭ通信量の合計が少なくなるようにトンネルエンドポイントグループの接続構成を変更する場合を説明した。具体的には、エントリｋであるトンネルエンドポイントグループの不要ＢＵＭ通信量５０５は、各割当仮想ＮＷ識別子ｌの不要ＢＵＭ通信量Ｂ’ｌの和として計算される例を説明した。これに対し、ボトルネックとなるエッジノードの不要ＢＵＭ通信量５０５が少なくなるようにトンネルエンドポイントグループの接続構成を変更する場合は、トンネルエンドポイントグループ管理部１１１は、上記の計算において不要ＢＵＭ通信量Ｂ’ｌの和を、ボトルネックとなる余剰リソース量８０５に変更すればよい。ボトルネックとなる余剰リソース量８０５とは、たとえば、余剰リソース量８０５の最小値または所定のしきい値以下となる余剰リソース量８０５である。
【０１７９】
トンネルエンドポイントグループ管理部１１１は、エッジノードリソース情報テーブル１７３において、余剰リソース量８０５が最小値である第１ＥＮ識別子８０２および第２ＥＮ識別子８０３であるＥＮ識別子７０１の最大ＴＥＰ数７０２と既設ＴＥＰ数７０３とを比較し、既設ＴＥＰ数７０３が最大ＴＥＰ数７０２より小さいか否かを確認する。すべてが小さい場合は下記の処理を続ける。なお、一つでも小さくない場合は、上述したマージ処理を実行する。
【０１８０】
トンネルエンドポイントグループ管理部１１１は、トンネルエンドポイントグループ情報テーブル１７１において、余剰リソース量８０５が最小値である第１ＥＮ識別子８０２および第２ＥＮ識別子８０３の組み合わせを含むエントリを特定する。当該エントリが複数存在する場合は、不要ＢＵＭ通信量５０５が最も大きいエントリを選択すればよい。トンネルエンドポイントグループ管理部１１１は、特定したエントリにおけるＴＥＰＧ識別子５０１、ＥＮ識別子５０２、ＴＥＰ識別子５０３、割当仮想ＮＷ識別子５０４を特定し、特定された割当仮想ＮＷ識別子５０４を二つのグループＡ、グループＢに分ける。以降の処理は上記と同様である。これにより、ボトルネックとなるエッジノード７００に絞り込んだ再構成が可能となる。
【０１８１】
＜割当ＴＥＰＧ決定処理（ステップＳ１３０４）＞
図１６は、図１３に示した割当ＴＥＰＧ決定処理（ステップＳ１３０４）の詳細な処理手順例を示すフローチャートである。まず、仮想ネットワーク管理部１１５は、瞬断可能な仮想ネットワークを特定する（ステップＳ１６０１）。具体的には、たとえば、仮想ネットワーク管理部１１５は、仮想ネットワーク情報テーブル１７２の瞬断可否フラグ６０８が「可」である仮想ＮＷ識別子６０１をすべて特定する。
【０１８２】
つぎに、仮想ネットワーク管理部１１５は、仮想ネットワークの接続構成を特定する（ステップＳ１６０２）。具体的には、たとえば、仮想ネットワーク管理部１１５は、仮想ネットワーク情報テーブル１７２において、ステップＳ１６０１において特定された仮想ＮＷ識別子６０１ごとに接続先ＥＮ識別子６０２をすべて特定する。
【０１８３】
つぎに、トンネルエンドポイントグループ管理部１１１は、トンネルエンドポイントグループの接続構成を特定する（ステップＳ１６０３）。具体的には、たとえば、トンネルエンドポイントグループ管理部１１１は、トンネルエンドポイントグループ情報テーブル１７１の各ＴＥＰＧ識別子５０１、ＥＮ識別子５０２、ＴＥＰ識別子５０３を特定する。
【０１８４】
つぎに、トンネルエンドポイントグループ管理部１１１は、割当トンネルエンドポイントグループを選択する（ステップＳ１６０４）。具体的には、たとえば、トンネルエンドポイントグループ管理部１１１は、ステップＳ１６０２において特定された接続先ＥＮ識別子６０２がステップＳ１６０３において特定されたＥＮ識別子５０２に含まれるＴＥＰＧ識別子５０１をすべて特定し、仮想ネットワーク情報テーブル１７２の候補ＴＥＰＧ識別子６０３に保存する。そして、トンネルエンドポイントグループ管理部１１１は、特定されたＴＥＰＧ識別子５０１の中から、ＥＮ識別子５０２の数が最も少ないＴＥＰＧ識別子５０１を選択する。選択されたＴＥＰＧ識別子５０１のトンネルエンドポイントグループが割当トンネルエンドポイントグループである。なお、ＥＮ識別子５０２の数が同一であるＴＥＰＧ識別子５０１が複数ある場合は、いずれか１つが選択される。
【０１８５】
つぎに、トンネルエンドポイントグループ管理部１１１は、ステップＳ１６０４で選択された割当トンネルエンドポイントグループが基のトンネルエンドポイントグループと同一かを判断する（ステップＳ１６０５）。具体的には、たとえば、トンネルエンドポイントグループ管理部１１１は、ステップＳ１６０４で仮想ネットワーク情報テーブル１７２に保存された割当ＴＥＰＧ識別子６０３と、ステップＳ１６０４において選択されたＴＥＰＧ識別子５０１とが同一であるかを判断する。同一である場合（ステップＳ１６０５：Ｙｅｓ）、構成変更する必要がないため、割当ＴＥＰＧ決定処理（ステップＳ１３０５）が終了し、ステップＳ１３０６に移行する。同一でない場合（ステップＳ１６０５：Ｎｏ）、ステップＳ１６０６に移行する。なお、同一でない場合のステップＳ１６０１で特定された仮想ＮＷ識別子６０１を変更対象仮想ＮＷ識別子６０１と称す。
【０１８６】
同一でない場合（ステップＳ１６０５：Ｎｏ）、エッジノード・トンネルエンドポイント設定部１１２は、変更対象仮想ＮＷ識別子６０１の仮想ネットワークをトンネルエンドポイント５００に割り当てるための情報を生成する（ステップＳ１６０６）。具体的には、たとえば、エッジノード・トンネルエンドポイント設定部１１２は、ステップＳ１６０４で仮想ネットワーク情報テーブル１７２に保存された割当ＴＥＰＧ識別子６０３に一致するＴＥＰＧ識別子５０１に対応するＥＮ識別子５０２およびＴＥＰ識別子５０３を、削除対象ＥＮ識別子５０２および削除対象ＴＥＰＧ識別子５０３に設定し、ステップＳ１６０４において選択されたＴＥＰＧ識別子５０１に対応するＥＮ識別子５０２とＴＥＰ識別子５０３を、追加対象ＥＮ識別子５０２および追加対象ＴＥＰ識別子５０３に設定する。そして、割当ＴＥＰＧ決定処理（ステップＳ１３０４）が終了し、ステップＳ１３０６に移行する。
【０１８７】
これにより、割当ＴＥＰＧ決定処理（ステップＳ１３０４）のあと、ネットワーク制御装置１００は、エッジノード７００に対し、仮想ネットワークを設定変更する（ステップＳ１３０５）。具体的には、割当ＴＥＰＧ決定処理（ステップＳ１３０４）において特定された削除対象のＥＮ識別子５０２に対応する削除対象のＴＥＰ識別子５０３のトンネルエンドポイントから仮想ネットワークを削除し、また、追加対象のＥＮ識別子５０２に対応する追加対象のＴＥＰ識別子５０３のトンネルエンドポイントに仮想ネットワークを追加する。
【０１８８】
このように、本実施例によれば、仮想ネットワークを終端するトンネルエンドポイント５００が、仮想ネットワークの接続構成を考慮せずに多数のトンネルエンドポイント５００にＢＵＭを送信することによって発生してしまう不要なＢＵＭ通信量を抑制することができる。
【０１８９】
また、不要なＢＵＭ通信量が少なくなるように仮想ネットワークをトンネルエンドポイントグループに割り当てる際に、ある仮想ネットワークに接続されないエッジノード７００における仮想ネットワークの通信量を不要なＢＵＭ通信量とみなすことにより、不要なＢＵＭ通信量の特定の容易化を図ることができる。そして、特定された不要なＢＵＭ通信量が少なくなるようにエンドポイントグループを最適化することにより、不要なＢＵＭ通信量を抑制することができる。
【０１９０】
また、エッジノードの余剰リソースを考慮して、トンネルエンドポイントを増減することにより、エッジノードの余剰リソースの消費量を抑えつつ、ＢＵＭ通信量を削減することができる。
【０１９１】
また、割当トンネルエンドポイントグループが複数候補ある場合、ネットワーク制御装置１００は、当該グループ内で仮想ネットワークに未接続のエッジノードと接続先エッジノードとの経路についてのコスト８０４または余剰リソース量８０５を考慮して割当トンネルエンドポイントグループを選択する。これにより、通信コストの削減または通信帯域不足による通信性能（通信帯域や通信遅延）の劣化を抑制することができる。
【０１９２】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【０１９３】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【０１９４】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納することができる。
【０１９５】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【０１９６】
１  ネットワークシステム
１００  ネットワーク制御装置
１１０  制御部
１１１  トンネルエンドポイントグループ管理部
１１２  エッジノード・トンネルエンドポイント設定部
１１３  エッジノードリソース管理部
１１４  通信量計測・分析部
１１５  仮想ネットワーク管理部
１５０  サービス受付部
１７０  データ記憶部
１７１  トンネルエンドポイントグループ情報テーブル
１７２  仮想ネットワーク情報テーブル
１７３  エッジノードリソース情報テーブル
１７４  通信情報テーブル
４００  サーバ
【図１】
2017059991.tif 000003
【図２】
2017059991.tif 000004
【図３】
2017059991.tif 000005
【図４】
2017059991.tif 000006
【図５】
2017059991.tif 000007
【図６】
2017059991.tif 000008
【図７】
2017059991.tif 000009
【図８】
2017059991.tif 000010
【図９】
2017059991.tif 000011
【図１０】
2017059991.tif 000012
【図１１】
2017059991.tif 000013
【図１２】
2017059991.tif 000014
【図１３】
2017059991.tif 000015
【図１４】
2017059991.tif 000016
【図１５】
2017059991.tif 000017
【図１６】
2017059991.tif 000018