(57)【要約】      （修正有）【課題】サービスチェインを提供するネットワーク中に多数の通信装置を収容する。【解決手段】管理装置２０は、複数の通信装置を含むネットワークを管理し、取得部３１を有する制御部３０、送信部２２を備える。取得部３１は、複数の通信装置の各々について、通信装置が行うパケット処理の種類と転送先で行われるパケット処理の種類との組み合わせを取得する。制御部３０は、複数の通信装置の各々を、取得した組み合わせに応じて複数のグループに分類する。さらに、第１の通信装置を含む第１のグループを、第１の通信装置からパケットを受信する第２の通信装置を含む第２のグループに接続するサブネットワークを設定する。送信部２２は、第１及び第２の通信装置の各々に、サブネットワークを用いた通信を行うための情報を含む制御パケットを送信する。【選択図】図３
2016171503.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信装置を含むネットワークを管理する管理装置であって、
前記複数の通信装置の各々について、当該通信装置が行うパケット処理の種類と転送先で行われるパケット処理の種類との組み合わせを取得する取得部と、
前記複数の通信装置の各々を、前記組み合わせに応じて複数のグループに分類するとともに、第１の通信装置を含む第１のグループを、前記第１の通信装置からパケットを受信する第２の通信装置を含む第２のグループに接続するサブネットワークを設定する制御部と、
前記第１および第２の通信装置の各々に、当該通信装置が前記サブネットワークを用いた通信を行うための情報を含む制御パケットを送信する送信部
を含むことを特徴とする管理装置。
【請求項２】
前記制御部は、前記第１のグループに含まれているいずれの通信装置も、第３のグループに含まれる通信装置と通信しない場合、前記第１のグループと前記第３のグループを接続するサブネットワークを生成しない
ことを特徴とする請求項１に記載の管理装置。
【請求項３】
前記制御部は、
前記第１のグループに含まれているいずれの通信装置からのパケットの転送先で行われる処理の種類も、前記第３のグループに含まれる通信装置で行われる処理の種類と一致しない場合、前記第１のグループに含まれているいずれの通信装置も、前記第３のグループに含まれる通信装置と通信しないと判定し、
前記第１のグループに含まれているいずれかの通信装置からのパケットの転送先で行われる処理の種類が、前記第２のグループに含まれる通信装置のいずれかで行われる処理の種類と一致する場合、前記第１のグループと前記第２のグループに接続するサブネットワークを設定する
ことを特徴とする請求項２に記載の管理装置。
【請求項４】
前記制御部は、
前記ネットワーク中の閾値以上の数の通信装置が同じ種類の処理を行っている場合、当該種類の処理を行う通信装置を第４のグループと第５のグループに分類し、
前記第４のグループと前記第５のグループの間を接続するサブネットワークを設定しない
ことを特徴とする請求項１〜３のいずれか１項に記載の管理装置。
【請求項５】
前記ネットワークにはルータが含まれており、
前記制御部は、
前記第３のグループに属する通信装置の数と、前記第３のグループ中の通信装置からのパケットの転送先を含むグループ中の通信装置の数の合計値を求め、
前記合計値が所定の値を下回ると、前記第３のグループと前記ルータを接続することを決定し、
前記第３のグループに含まれる各通信装置宛に、前記ルータを介して前記転送先と通信することを要求するための要求パケットを生成し、
前記送信部は、前記要求パケットを送信する
ことを特徴とする請求項２〜４のいずれか１項に記載の管理装置。
【請求項６】
複数の通信装置を含むネットワークを管理する管理装置が、
前記複数の通信装置の各々について、当該通信装置が行うパケット処理の種類と転送先で行われるパケット処理の種類との組み合わせを取得し、
前記複数の通信装置の各々を、前記組み合わせに応じて複数のグループに分類し、
第１の通信装置を含む第１のグループを、前記第１の通信装置からパケットを受信する第２の通信装置を含む第２のグループに接続するサブネットワークを設定し、
前記第１および第２の通信装置の各々に、当該通信装置が前記サブネットワークを用いた通信を行うための情報を含む制御パケットを送信する
処理を行うことを特徴とする接続処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク中でのデータの転送経路の管理方法と管理サーバに関する。
【背景技術】
【０００２】
ネットワーク機能仮想化（Network Functions Virtualization、ＮＦＶ）と呼ばれる技術が注目されている。ＮＦＶでは、ルータ、ゲートウェイ、ロードバランサなどのネットワーク機器によって実現されていた機能をアプリケーションプログラムとして実装し、サーバ上の仮想マシン（Virtual Machine、ＶＭ）として動作させる。また、ネットワークを介した通信で使用される機能を提供する仮想マシンのことがＶＮＦ（Virtual Network Function）と呼ばれることもある。欧州の標準化団体であるＥＴＳＩ（European Telecommunications Standards Institute）のＮＦＶ  ＩＳＧ（Industry Specification Group）では、ブロードバンドルータを経由した通信をＮＦＶで実現することが検討されている（例えば、非特許文献１）。この場合、サーバ上の仮想マシン内で動作している複数の機能を選択的に利用するデータ転送経路（サービスチェイン）が用いられる。例えば、ユーザからの要求に応じてサービスチェインを作成する方法についても様々な提案が行われている（例えば、非特許文献２など）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ETSI GS NFV 001 v.1.1.1 (2013-10),“Network Functions Virtualisation (NFV); Use Cases”、[online]、２０１３年１０月、European Telecommunications Standards Institute、［平成２７年２月１９日検索］、インターネット、<URL:http://www.etsi.org/deliver/etsi_gs/nfv/001_099/001/ 01.01.01_60/gs_nfv001v010101p.pdf>
【非特許文献２】Zafar Ayyub Qazi et. al.、“SIMPLE-fying Middlebox Policy Enforcement Using SDN”、[online]、SIGCOMM '13 Proceedings of the ACM SIGCOMM 2013 conference on SIGCOMM, Pages 27-38、［平成２７年２月１９日検索］、インターネット、<URL:http://www.cs.princeton.edu/courses/archive/fall13/ cos597E/papers/simple.pdf>
【発明の概要】
【発明が解決しようとする課題】
【０００４】
サービスチェインは、ユーザからの要求に応じて生成されるため、１つのサービスチェイン中の仮想マシンの数や各仮想マシンで行われる処理の種類などを予測できない。従って、全ての仮想マシン間で通信が可能になるように、全ての仮想マシンが１つのサブネットワークに接続される。しかし、この場合、ブロードキャストパケットがサブネットワーク中の全ての仮想マシンに到達した場合の負荷を考慮すると、使用可能な仮想マシンの数が限定されてしまう。この問題は、サービスチェインに仮想マシンではない通信装置が使用された場合にも発生しうる。
【０００５】
本発明は、サービスチェインを提供するネットワーク中に多数の通信装置を収容することを目的とする。
【課題を解決するための手段】
【０００６】
実施形態にかかる管理装置は、複数の通信装置を含むネットワークを管理し、取得部、制御部、送信部を備える。取得部は、前記複数の通信装置の各々について、当該通信装置が行うパケット処理の種類と転送先で行われるパケット処理の種類との組み合わせを取得する。制御部は、前記複数の通信装置の各々を、前記組み合わせに応じて複数のグループに分類する。さらに、制御部は、第１の通信装置を含む第１のグループを、前記第１の通信装置からパケットを受信する第２の通信装置を含む第２のグループに接続するサブネットワークを設定する。送信部は、前記第１および第２の通信装置の各々に、当該通信装置が前記サブネットワークを用いた通信を行うための情報を含む制御パケットを送信する。
【発明の効果】
【０００７】
サービスチェインを提供するネットワーク中に多数の通信装置を収容できる。
【図面の簡単な説明】
【０００８】
【図１】実施形態にかかる管理方法の例を説明するフローチャートである。
【図２】通信システムの例を説明する図である。
【図３】管理装置の構成の例を説明する図である。
【図４】管理装置のハードウェア構成の例を説明する図である。
【図５】サービスチェインの例を説明する図である。
【図６】サービスチェイン情報テーブルの例を説明する図である。
【図７】頻度テーブルの例を説明する図である。
【図８】ＶＮＦ数テーブルの例を説明する図である。
【図９】グループ情報の生成方法の例を説明する図である。
【図１０】グループ情報テーブルの例を説明する図である。
【図１１】ＶＮＦの通信先の種別の特定方法の例を説明するテーブルの例を示す図である。
【図１２】グループ対応テーブルの例を説明する図である。
【図１３】グループ間の接続関係の求め方の例を説明する図である。
【図１４】サービスチェインの例を説明する図である。
【図１５】接続処理の例を説明するフローチャートである。
【図１６】接続処理によって得られたネットワークの例を示す図である。
【図１７】第２の実施形態が適用される通信システムの例を説明する図である。
【図１８】グループ間の接続関係の求め方の例を説明する図である。
【図１９】第２の実施形態で行われる接続処理の例を説明する図である。
【図２０】第２の実施形態によって得られたネットワークの例を示す図である。
【図２１】第２の実施形態で行われる接続処理の例を説明するフローチャートである。
【発明を実施するための形態】
【０００９】
実施形態にかかる方法では、仮想マシン間の接続には複数のサブネットワークを使用し、ネットワーク中の仮想マシンは、その仮想マシンの種類とパケットの転送先の種類に応じた複数のグループに分類される。実施形態にかかる方法を実施する管理装置は、グループごとに、そのグループ中の仮想マシンを接続するサブネットワークを決定する。このとき、管理装置は、第１のグループ中の仮想マシンのいずれも第２のグループ中の仮想マシンと通信しない場合、第１のグループ中の仮想マシンと第２のグループ中の仮想マシンとが同じサブネットワークに設定されないように調整する。例えば、ＷＯＣ（Wide Area Network optimization controllers、ＷＡＮ高速化装置）として動作する仮想マシンは、キャッシュを内蔵している。このため、ＷＯＣとして動作する仮想マシンは、キャッシュサーバとして動作する仮想マシンにパケットを転送しないとする。この場合、管理装置は、ＷＯＣとして動作する仮想マシンのグループとキャッシュとして動作する仮想マシンのグループを同じサブネットワークに接続しない。また、あるファイアウォールが他のファイアウォールにパケットを転送することもない。このため、ファイアウォールとして動作する仮想マシンのグループが転送先の違いなどにより複数に分かれた場合、複数に分かれたファイアウォールのグループ同士を同じサブネットワークに接続しない。これらの処理により、管理装置は、ネットワーク中に収容できる仮想マシン数を大きくする。
【００１０】
図１は、実施形態にかかる管理方法の例を説明するフローチャートである。図１のフローチャートにおいて、定数Ｎは仮想マシンを分類するグループの数であり、２以上の任意の数である。
【００１１】
まず、ネットワークの管理装置は、稼働中のサービスチェインに含まれている仮想マシンについて、その仮想マシンが行う処理の種類と、その仮想マシンからのパケットの転送先で行われる処理の種類を特定する。さらにネットワークの管理装置は、稼働中のサービスチェインに含まれている各仮想マシンで行われる処理の種類を、その仮想マシンからの転送先の種類に応じてＮ個のグループに分類する（ステップＳ１）。
【００１２】
次に、各グループの各々について、そのグループ中の仮想マシンが、どのグループ中の仮想マシンとの間で通信するかを、稼働中のサービスチェインの各々の接続状況から分析する。さらに、管理装置は、グループ間での通信状況の分析結果に基づいて、グループ間の接続に使用するサブネットワークの数を特定する。接続状況の確認とサブネットワーク数の特定で行われる処理を、ステップＳ２〜Ｓ９を参照しながら説明する。
【００１３】
管理装置は、変数ｎを１、変数ｍを２、変数ｓを１に設定する（ステップＳ２）。ステップＳ２において、変数ｎと変数ｍは、接続するかを判定する２つのグループの特定に使用する値であり、変数ｓは、グループ間の接続に使用されるサブネットワークの特定に使用される値である。管理装置は、ｎ番目のグループ中の仮想マシンのいずれかがｍ番目のグループ中の仮想マシンと通信し得るかを判定する（ステップＳ３）。管理装置は、ｎ番目のグループ中の仮想マシンのいずれかがｍ番目のグループ中の仮想マシンと通信し得る場合、ｎ番目とｍ番目のグループ中の仮想マシンを、ｓ番目のサブネットワークで通信できるように設定する（ステップＳ３でＹｅｓ、ステップＳ４）。すなわち、管理装置は、ｎ番目のグループ中の仮想マシンとｍ番目のグループ中の仮想マシンに、ｓ番目のサブネットワークで通信するためのアドレスを割り当てる。その後、管理装置は、変数ｓを１つインクリメントする（ステップＳ５）。一方、ｎ番目のグループ中の仮想マシンのいずれかもｍ番目のグループ中の仮想マシンと通信しない場合、管理装置は、ステップＳ４、Ｓ５の処理を行わない（ステップＳ３でＮｏ）。つまり、ステップＳ３でＮｏと判定された場合には、ｎ番目のグループとｍ番目のグループを接続するためのサブネットワークは生成されない。
【００１４】
その後、管理装置は、変数ｍの値がグループの総数Ｎに達していない場合、変数ｍを１つインクリメントしてステップＳ３以降の処理を繰り返す（ステップＳ６でＮｏ、ステップＳ７）。変数ｍの値がグループの総数Ｎに達すると、管理装置は、変数ｎの値とグループの総数Ｎを比較する（ステップＳ６でＹｅｓ、ステップＳ８）。変数ｎの値がグループの総数Ｎに達していない場合、管理装置は変数ｎを１つインクリメントし、変数ｍを変数ｎより１つ大きな値に変更してからステップＳ３以降の処理を繰り返す（ステップＳ８でＮｏ、ステップＳ９）。このため、ステップＳ２〜Ｓ９の処理の繰り返しにより、Ｎ個のグループの各々について、他のグループとの間の通信が発生し得るかが確認され、グループ間で通信が発生する可能性のある組み合わせごとにサブネットワークが設定される。
【００１５】
なお、図１に示す処理は一例であり、例えば、仮想マシンがネットワーク全体で使用されるサブネットワーク数を求めてから、仮想マシンの設定処理を行うように処理手順が変更されても良い。
【００１６】
このように、実施形態にかかる方法では、仮想マシンをグループに分類した後で、グループ間での通信処理が発生し得る２つのグループに含まれている仮想マシンを１つのサブネットワークに含める。従って、ネットワーク中の全ての仮想マシンが１つのサブネットワークに接続されるという制約がないので、ネットワーク中で使用する仮想マシンの数をより大きくすることができる。さらに、実施形態にかかる方法では、通信が発生しないグループの仮想マシン同士が通信するためのサブネットワークを設定しないことにより、サブネットワークの割り当ても効率化している。１つの通信システムに設定できるサブネットワークの数にも上限があるので、サブネットワークを効率的に使用することにより、管理装置は、通信システムに含めることのできる仮想マシンの上限数をなるべく大きくしている。
【００１７】
＜装置構成＞
図２は、通信システムの例を説明する図である。通信システムは、アクセスルータ１、Ｌ２ネットワーク５、ＶＮＦ６０（６０ａ〜６０ｅ）、管理ネットワーク４、ＳＣ（service chain）管理サーバ８、管理装置２０を含む。アクセスルータ１は、サービスチェインを使用する端末１０のアクセス先となる。図２の例では、端末１０ａから端末１０ｂに向けてパケットが送信されるサービスチェインが設定されている。ＳＣ管理サーバ８は、通信システムで実現されるサービスチェインの情報を保持し、サービスチェインの情報を、適宜、管理装置２０に提供する。管理装置２０は、ＳＣ管理サーバ８から得られた情報を用いて、各ＶＮＦ６０をグループごとに、サブネットワークで接続する。
【００１８】
各ＶＮＦ６０は仮想マシンによって実現され、Ｌ２ネットワーク５と管理ネットワーク４の両方に接続されている。図２では、データの送受信に使用される接続は実線で表わされており、サブネットワークの設定等に使用される制御情報の送受信に使用される接続は点線で表わされている。Ｌ２ネットワーク５には、ＶＬＡＮ（Virtual Local Area Network）スイッチ２が含まれている。ＶＬＡＮスイッチ２と個々のＶＮＦ６０が実現されている物理サーバを物理的につなぐポートにＶＬＡＮ−ＩＤが割り当てられると、論理ネットワークとしては、各ＶＮＦ６０がサブネットワークに接続されることになる。なお、ある物理ポートに複数のＶＬＡＮ−ＩＤが割り当てられる場合、その物理ポートに接続されたサーバで動作しているＶＮＦ６０は、ポートに割り当てられたＶＬＡＮ−ＩＤに対応する複数のサブネットワークに接続されたことになる。以下の説明では、あるＶＮＦ６０をサブネットワークに接続する処理は、そのＶＮＦ６０を実現しているサーバが接続されているＶＬＡＮスイッチ２中のポートに、ＶＮＦ６０が接続されるＶＬＡＮのＶＬＡＮ−ＩＤを割り当てることを指すものとする。
【００１９】
なお、図２は通信システムの例であり、通信システム中に含まれるアクセスルータ１、端末１０、ＶＬＡＮスイッチ２、ＶＮＦ６０の数は実装に応じて任意に変更され得る。また、通信システム中に複数のアクセスルータ１が含まれている場合、１つのサービスチェインの始点側の端末１０と終点側の端末１０は異なるアクセスルータ１に接続されていても良い。
【００２０】
図３は、管理装置２０の構成の例を説明する図である。管理装置２０は、通信処理部２１、制御部３０、記憶部４０を備える。通信処理部２１は、送信部２２と受信部２３を有する。制御部３０は、取得部３１、検出部３２、グループ生成部３３、分類処理部３４、接続処理部３５を有する。記憶部４０は、ＳＣ情報テーブル４１、頻度テーブル４２、ＶＮＦ数テーブル４３、グループ情報テーブル４４、グループ対応テーブル４５、グループ隣接テーブル４６、グループ間接続テーブル４７を記憶する。送信部２２は制御情報をＶＮＦ６０やＶＬＡＮスイッチ２に送信する。受信部２３は、ＶＬＡＮスイッチ２、ＳＣ管理サーバ８、ＶＮＦ６０などから制御情報を受信する。
【００２１】
取得部３１は、受信部２３を介してＳＣ管理サーバ８からサービスチェインに関する情報を取得すると、ＳＣ情報テーブル４１、頻度テーブル４２、ＶＮＦ数テーブル４３を更新する。ＳＣ情報テーブル４１は、各サービスチェインの始点となる端末１０のＩＰ（Internet Protocol）アドレスと終点の端末１０のＩＰアドレスの組み合わせに対応付けて、サービスチェイン中の仮想マシンの種類と経路を記録する。ＳＣ情報テーブル４１の情報はＳＣ管理サーバ８から得られた情報である。頻度テーブル４２は、ＳＣ情報テーブル４１に記録されている経路から、転送処理が行われている２つの仮想マシンで行われる処理内容の組み合わせごとに、ネットワーク全体でその組合せが発生する頻度を記録している。ＶＮＦ数テーブル４３は、ネットワーク中のＶＮＦ６０の数を、ＶＮＦ６０の処理の種類ごとに分類した結果を記録する。頻度テーブル４２およびＶＮＦ数テーブル４３の更新処理の例と具体例については後述する。
【００２２】
検出部３２は、ＳＣ情報テーブル４１、頻度テーブル４２、ＶＮＦ数テーブル４３を用いて、グループの変更処理を行うトリガを検出する。トリガは、例えば、ファイアウォールとして動作している仮想マシンからキャッシュサーバとして動作する仮想マシンへの接続の数が大きく変動したなどの状態変化である。トリガとなる状態変化は、実装に応じて決定される。トリガを検出すると、検出部３２は、グループ生成部３３にグループの生成処理を要求する。グループ生成部３３は、頻度テーブル４２とＶＮＦ数テーブル４３を用いて、ＶＮＦ６０の分類に使用するグループの数と各グループに含めるＶＮＦ６０の種類などを決定する。グループ生成部３３は、決定した情報を、グループ情報テーブル４４に記録する。
【００２３】
分類処理部３４は、グループ情報テーブル４４とＳＣ情報テーブル４１を用いて、各グループにＶＮＦ６０を分類する。分類処理部３４は、分類の結果をグループ対応テーブル４５に記録する。接続処理部３５は、グループ対応テーブル４５を用いて、生成されたグループから選択した２つのグループ間での通信が発生する可能性があるかを判定し、判定結果をグループ隣接テーブル４６に記録する。接続処理部３５は、グループ隣接テーブル４６を用いて、サブネットワークの割り当て処理を行い、グループ間接続テーブル４７に記録する。さらに、接続処理部３５は、ＶＮＦ６０に対して、ＩＰアドレスの変更やルーティングテーブルの変更を要求する。これらの処理の詳細は後述する。
【００２４】
図４は、管理装置２０のハードウェア構成の例を説明する図である。管理装置２０は、プロセッサ１０１、ＲＡＭ（Random Access Memory）１０２、ＲＯＭ（Read Only Memory）１０３、データバス１０４、ネットワークインタフェース１０５を備える。ＲＯＭ１０３はプログラム１０６を格納する。プロセッサ１０１は、ＣＰＵ（Central Processing Unit）を含む任意の処理回路である。プロセッサ１０１は、適宜、プログラム１０６を読み込んで実行することにより、様々な処理を実行する。プロセッサ１０１は、処理に際して、適宜、ＲＡＭ１０２やＲＯＭ１０３にアクセスする。データバス１０４は、プロセッサ１０１、ＲＡＭ１０２、ＲＯＭ１０３、ネットワークインタフェース１０５を、互いにデータの入出力が可能になるように接続する。プロセッサ１０１は、制御部３０として動作する。ＲＡＭ１０２とＲＯＭ１０３は、記憶部４０として動作する。ネットワークインタフェース１０５は通信処理部２１として動作する。
【００２５】
＜第１の実施形態＞
図５は、サービスチェインの例を説明する図である。図５のＤ１は、端末１０ａのユーザが、端末１０ａからファイアウォールとキャッシュサーバを介して端末１０ｂに至る経路の設定をオペレータに要求したときに生成されるサービスチェインの例である。なお、端末１０ａにはＩＰａというアドレスが割り当てられており、端末１０ｂにはＩＰｂというアドレスが割り当てられているものとする。
【００２６】
オペレータは、管理装置２０やＳＣ管理サーバ８を用いて、要求されたサービスチェインを生成する。サービスチェインの生成の際には、通信システム中の物理サーバから選択された物理サーバに、新たなサービスチェインに含めるＶＮＦ６０として動作する仮想マシンが生成され、生成された仮想マシンが、サブネットワークを用いて接続される。新たなサービスチェインに含まれる各仮想マシンには、ＶＮＦ６０として実現する処理の内容と、処理済のパケットの転送先が、パケットの宛先等の情報と共に通知される。各サービスチェインの生成方法は、任意の機知の方法と同様である。処理の結果、Ｄ１中の矢印Ａに示すサービスチェインが得られたとする。
【００２７】
以下の説明では、各ＶＮＦ６０を識別するために、そのＶＮＦ６０の処理内容とＶＮＦ６０の識別番号を組み合わせた文字列を使用する。例えば、識別番号＝１のＶＮＦ６０がファイアウォール（ＦＷ）として動作している場合、ＦＷ１と表わす。同様に、Ｃａｃｈｅ３は、識別番号＝３のＶＮＦ６０がキャッシュサーバとして動作していることを示し、ＷＯＣ５は、識別番号＝５のＶＮＦ６０がＷＡＮ高速化装置として動作することを表わしている。Ｄ１にはサブネットワークＳＮｗ〜ＳＮｚが示されている。以下の説明では、各ＶＮＦ６０に割り当てられるＩＰアドレスは、そのＶＮＦ６０が含まれているサブネットワークの符号のうちのＳＮに続いて示している値と、ＶＮＦ６０の識別番号の組み合わせを、ＩＰという文字列に続けて得られる文字列で表わす。例えば、ＦＷ１は、サブネットワークＳＮｗに含まれており、識別番号＝１なので、ＩＰｗ１というアドレスが割り当てられるものとする。
【００２８】
図５のＤ２は、矢印Ａに示すサービスチェインの経路を直線的に書き直したものである。Ｄ２では、転送処理を見やすくするために、アクセスルータ１（１ａ、１ｂ）とＶＮＦ６０（ＦＷ１、Ｃａｃｈｅ３）が保持しているルーティングテーブルを示している。各装置のルーティングテーブルは、サービスチェインの生成時に、サービスチェインの生成処理を行う装置により設定されたものとする。端末１０ａは、予めアクセスルータ（ＡＲ）１ａのアドレスを記憶しているので端末１０ｂ宛のパケットをアクセスルータ１ａに転送する。アクセスルータ１ａはルーティングテーブル７１ａ−１を有している。ルーティングテーブル７１ａ−１には、ＩＰａからＩＰｂに宛てたパケットは、ＩＰｗ１宛てに転送することが設定されている。このため、端末１０ａから端末１０ｂに宛てたパケットは、アクセスルータ１ａからＦＷ１に転送される。ＦＷ１が保持するルーティングテーブル６１ａ−１には、ＩＰａからＩＰｂに宛てたパケットは、ＩＰｘ３宛てに転送することが設定されているので、ＦＷ１は、端末１０ｂ宛のパケットをＣａｃｈｅ３に転送する。Ｃａｃｈｅ３が保持するルーティングテーブル６１ｂ−１には、ＩＰａからＩＰｂに宛てたパケットは、ＩＰｚＲ２宛てに転送することが設定されているので、Ｃａｃｈｅ３は、端末１０ｂ宛のパケットをアクセスルータ１ｂに転送する。アクセスルータ１ｂが保持するルーティングテーブル７１ｂには、ＩＰａからＩＰｂに宛てたパケットをＩＰｂに転送することが設定されているので、アクセスルータ１ｂは、端末１０ｂ宛のパケットを端末１０ｂに転送する。
【００２９】
ネットワーク中で運用される各サービスチェインは図５と同様であり、ＳＣ管理サーバ８は、各サービスチェインの情報を記憶している。ＳＣ管理サーバ８は、サービスチェインの情報を定期的に管理装置２０に通知する。管理装置２０の取得部３１は、ＳＣ管理サーバ８から受信したパケットを、受信部２３を介して取得し、受信パケット中の情報を用いてＳＣ情報テーブル４１を更新する。
【００３０】
図６は、サービスチェイン（ＳＣ）情報テーブル４１の例を説明する図である。ＳＣ情報テーブル４１は、運用中の各サービスチェインのフローと、各サービスチェインに含まれているＶＮＦ６０の情報が対応付けられている。図６の例では、各サービスチェインのフローは、サービスチェインの始点となる端末１０と終点となる端末１０のそれぞれに割り当てられたＩＰアドレスの組み合わせで表わされる。各サービスチェインに含まれているＶＮＦ６０の情報は、パケットが通過する順にＶＮＦ６０の識別情報を示したものである。例えば、図５を参照しながら説明したサービスチェインの情報は、図６に示すＳＣ情報テーブル４１の最初のエントリに記録されている。
【００３１】
なお、図６の例では、取得部３１が各サービスチェインの情報を各サービスチェインに含まれているＶＮＦ６０の種類と通過順序とに応じてソートしている場合を示しているが、ＳＣ情報テーブル４１中のデータの並び方は任意である。
【００３２】
図６の例では、ファイアウォールとして動作するＶＮＦ６０からキャッシュサーバとして動作するＶＮＦ６０にパケットを転送するサービスチェインが６５０本運用されている。一方、ＦＷ（ファイアウォール）として動作するＶＮＦ６０、キャッシュサーバとして動作するＶＮＦ６０、商用ソフトＡを提供するサーバとして動作するＶＮＦ６０の順にパケットを転送するサービスチェインは５０本運用されている。ＦＷとして動作するＶＮＦ６０からＷＡＮ高速化装置（ＷＯＣ）として動作するＶＮＦ６０にパケットを転送するサービスチェインは２５０本運用されている。さらに、ＦＷとして動作するＶＮＦ６０、ＷＡＮ高速化装置として動作するＶＮＦ６０、商用ソフトＢを提供するサーバとして動作するＶＮＦ６０の順にパケットを転送するサービスチェインは５０本運用されている。
【００３３】
図７は、頻度テーブル４２の例を説明する図である。頻度テーブル４２は、サービスチェインの種別とその出現頻度を対応付けている。取得部３１は、更新後のＳＣ情報テーブル４１を用いて、サービスチェイン中のＶＮＦの種類と通過順序との組み合わせごとに、ネットワーク中での運用数を求め、頻度テーブル４２を更新する。ＳＣ情報テーブル４１が図６に示すように更新された場合、取得部３１は、図７に示す頻度テーブル４２を生成する。なお、取得部３１が頻度テーブル４２を更新する際に、検出部３２は、更新後の情報と比較するために、更新前の頻度テーブル４２の情報を記憶する。
【００３４】
図８は、ＶＮＦ数テーブル４３の例を説明する図である。ＶＮＦ数テーブル４３は、運用中のサービスチェインに含まれているＶＮＦ６０の種類ごとに、運用中のＶＮＦ６０の数を対応付けている。ＶＮＦ数テーブル４３は、グループの再設定が行われる場合に、同じ種類の処理を行っているＶＮＦ６０を複数のグループに分割するかを判定する際に用いられる。
【００３５】
取得部３１は、ＳＣ情報テーブル４１または頻度テーブル４２を用いてＶＮＦ数テーブル４３を生成する。すなわち、ＶＮＦ６０の種類ごとに、その種類のＶＮＦ６０を含むサービスチェインの総数を求める。例えば、キャッシュサーバ（Ｃａｃｈｅ）として動作するＶＮＦ６０の数は、頻度テーブル４２（図７）を用いて、ＦＷ−ＣａｃｈｅのサービスチェインとＦＷ−Ｃａｃｈｅ−商用ソフトＡのサービスチェインの総数として求められるので、７００である。また、ＦＷは頻度テーブル４２中の全てのサービスチェインに含まれているので、ＦＷとして動作しているＶＮＦ６０の総数は、６５０＋５０＋２５０＋５０＝１０００となる。同様の処理をＷＯＣ、商用ソフトＡ、商用ソフトＢについても行うことにより、取得部３１は、図８に示すＶＮＦ数テーブル４３を生成する。なお、取得部３１がＶＮＦ数テーブル４３を更新する場合も、検出部３２は、更新後の情報と比較するために、更新前のＶＮＦ数テーブル４３の情報を記憶する。
【００３６】
検出部３２は、頻度テーブル４２とＶＮＦ数テーブル４３について、更新による変化量を求め、グループの変更を行うかを判定する。変化量が閾値を超えると、検出部３２は、グループの再設定と接続の変更をグループ生成部３３に要求する。なお、グループの変更処理を行うかを判定する閾値は実装に応じて設定され得る。ここで、サービスチェインが新たに設定されるときには、各サービスチェインのＶＮＦ６０をどのサブネットワークに含めるかがサブネットワーク中の他のＶＮＦ６０の種類を用いて決定されないとする。この場合、新たに設定されたサービスチェインの数が所定の量を超えると、効率的な運用が行われない。さらに、サービスチェインの運用を終了すると、そのサービスチェインで使用されていたＶＮＦ６０は廃棄されるので、サブネットワーク中のＶＮＦ６０の種類の割合が変動する。検出部３２で用いられる閾値は、これらの変更に伴ってネットワークが最適化されていないことによる不利益の大きさと、グループの再設定等に際して発生する処理負担の大きさとに基づいて、経験的に設定される。
【００３７】
図９は、グループ情報の生成方法の例を説明する図である。図９を参照しながら、グループの再設定を要求された場合にグループ生成部３３が行う処理の例を説明する。なお、図９の例では、少数グループ閾値という閾値を使用する。グループ生成部３３は、少数グループ閾値よりも小さい数のＶＮＦ６０しか含まれないＶＮＦ種別は、１つのグループ（少数グループ、minority group）に分類される。
【００３８】
グループ生成部３３は、ＶＮＦ数テーブル４３を参照して、グループ数を決定していないＶＮＦ種別から、処理対象を選択する（ステップＳ２１）。次に、グループ生成部３３は、処理対象のＶＮＦ種別に対応付けられたＶＮＦ数が少数グループ閾値よりも大きいかを判定する（ステップＳ２２）。ＶＮＦ数が少数グループ閾値以下の場合、グループ生成部３３は、処理対象のＶＮＦ種別のＶＮＦ６０を少数グループに分類する（ステップＳ２２でＮｏ、ステップＳ２３）。一方、ＶＮＦ数が少数グループ閾値を越えている場合、グループ生成部３３は、処理対象のＶＮＦ種別に使用するグループ数を計算する（ステップＳ２２でＮｏ）。グループ生成部３３は、処理対象のＶＮＦ種別のＶＮＦ６０の総数（ＶＮＦ数）と、１グループに収容されるＶＮＦ６０の最大値（最大ＶＮＦ数）を用いて、処理対象の種別のＶＮＦ６０の分類に使用するグループの数を求める。図９の例では、グループ数を、ｃｅｉｌ（ＶＮＦ数／最大ＶＮＦ数）として計算する（ステップＳ２４）。なお、最大ＶＮＦ数は、１つのサブネットワークに含めることができるＶＮＦ６０の数の半分以下に設定されている。ステップＳ２３またはステップＳ２４の処理が終わると、グループ生成部３３は、全てのＶＮＦ種別に対する処理が終了したかを判定する（ステップＳ２５）。全てのＶＮＦ種別に対する処理が終了していない場合、グループ生成部３３は、ステップＳ２１以降の処理を繰り返す（ステップＳ２５でＮｏ）。一方、全てのＶＮＦ種別に対する処理が終了すると、グループ生成部３３は、処理を終了する（ステップＳ２５でＹｅｓ）。
【００３９】
図１０は、グループ情報テーブル４４の例を説明する図である。グループ情報テーブル４４は、ＶＮＦ種別ごとに、グループ数とグループ名を記録する。グループ数は、図９を参照しながら説明した手順により決定したグループ数である。グループ名は、各グループを一意に識別するための情報である。例えば、最大ＶＮＦ数が５００であり、少数グループ閾値が１００であるとする。この場合、図８と図９より、ＦＷとして動作しているＶＮＦ６０の分類に2つのグループが使用され、キャッシュサーバとして動作しているＶＮＦ６０の分類にも２つのグループが使用される。一方、ＶＮＦ種別がＷＯＣの場合、グループ数は１つである。また、ＶＮＦ種別＝商用ソフトＡのＶＮＦ６０の数と、ＶＮＦ種別＝商用ソフトＢのＶＮＦ６０はいずれも、ＶＮＦ数が少数グループ閾値を下回っているので、少数グループに分類される。図１０では、少数グループに分類されたＶＮＦをＶＮＦ種別＝少数ＶＮＦと記載している。また、各グループの名称は、グループ情報テーブル４４のグループ名の欄に示すとおりである。例えば、ＶＮＦ種別＝ＦＷのグループの一方の名称はＦＷ−Ｇ１であり、他方の名称はＦＷ−Ｇ２である。グループ生成部３３は、グループ情報テーブル４４を更新すると、分類処理部３４にＶＮＦ６０の分類処理を要求する。
【００４０】
図１１は、ＶＮＦの通信先の種別の特定方法の例を説明するテーブルの例を示す図である。分類処理部３４は、ＶＮＦ６０を分類するために、ＳＣ情報テーブル４１（図６）を用いて、各ＶＮＦ６０の通信先の種類を特定する。例えば、ＦＷ１はＣａｃｈｅ３と通信している（図６の最初のエントリ）ので、ＦＷ１の通信先の種別はＣａｃｈｅである。したがって、ＦＷ１についてのエントリでは、通信先の種別はＣａｃｈｅとなる。同様に他のＶＮＦ６０についても、ＳＣ情報テーブル４１から通信先となるＶＮＦ６０の種類を特定する。なお、双方向通信に対応するために、分類処理部３４は、通信先を特定する場合には、ＳＣ情報テーブル４１のフローの方向の逆方向の接続先のＶＮＦ６０についても、パケットの転送先のＶＮＦ６０と同様に扱う。例えば、ＩＰａからＩＰｂに至るフローでは、パケットがＦＷ１からＣａｃｈｅ３に転送されるが、分類処理部３４は、Ｃａｃｈｅ３もＦＷ１と通信していると判定する。このため、図１１において、Ｃａｃｈｅ３の通信先の種別はＦＷとなっている。また、通信先が複数であってもよい。例えば、ＩＰｒからＩＰｓに至るフローでは、パケットがＦＷ２２０、ＷＯＣ６０、商用Ｂ４００を順に経由する経路で転送される。このため、分類処理部３４は、ＷＯＣ６０がＦＷ２００と商用Ｂ４００の両方と通信すると判定する。従って、図１１において、ＷＯＣ６０の通信先の種別はＦＷと少数種別であると判定される。なお、いずれの種類のＶＮＦ６０が少数種別に含まれているかは、グループ生成部３３から分類処理部３４に通知されているものとする。一方、ＩＰｒからＩＰｓに至るフローにおいて、商用Ｂ４００は、ＷＯＣ６０と直接パケットの送受信を行うがＦＷ２２０との間での直接のパケットの送受信を行わない。このため、分類処理部３４は、商用Ｂ４００については通信先の種別はＷＯＣだけであると判定する。
【００４１】
分類処理部３４は、各ＶＮＦ６０の通信先の種別を特定すると、通信先の種別をキーとして情報の順序を並べ替え、ＶＮＦ６０の種別とその通信先の種別の組み合わせごとに数を求める。図１１の例では、ＦＷとして動作しているＶＮＦ６０のうちＣａｃｈｅと通信しているものは７００台であり、ＷＯＣと通信しているものは３００台である。同様に、Ｃａｃｈｅとして動作しているＶＮＦ６０のうちＦＷだけと通信しているものは６５０台であり、ＦＷおよび少数グループに分類されたＶＮＦ６０（少数種別）と通信しているものは５０台である。また、ＷＯＣとして動作しているＶＮＦ６０のうちＦＷだけと通信しているものは２５０台、ＦＷおよび少数種別のＶＮＦ６０と通信しているものは５０台である。
【００４２】
分類処理部３４は、図１１の情報に基づいて、ＶＮＦ６０の種別とそのＶＮＦ６０の通信先の種別の組み合わせが同じＶＮＦ６０同士をなるべく同じグループに分類する。なお、各グループには、最大ＶＮＦ数以下のＶＮＦ６０が割り当てられる。ここで、最大ＶＮＦ数＝５００なのに対し、ＦＷのうちＣａｃｈｅと通信しているものは７００台である。このため、Ｃａｃｈｅと通信しているＦＷのうちの２００台は、ＷＯＣと通信しているＦＷと同じグループに分類される。Ｃａｃｈｅについても同様に処理される。
【００４３】
図１２は、グループ対応テーブル４５の例を説明する図である。グループ対応テーブル４５は、分類処理部３４によって行われたグループ分けの結果を記録している。グループ対応テーブル４５は、ＶＮＦ種別と通信先の種別の組み合わせごとに、分類先のグループの名称等が記録されている。さらに、個々のグループの名称に対応付けて、その名称のグループに分類されたＶＮＦが記録されている。例えば、Ｃａｃｈｅと通信しているＦＷのうちの５００台はＦＷ−Ｇ１という名称のグループに分類されている。また、ＦＷ−Ｇ１には、ＦＷ１、ＦＷ２、ＦＷ５、ＦＷ１７、ＦＷ１９などのＶＮＦ６０が含まれている。Ｃａｃｈｅと通信しているＦＷのうちで、ＦＷ−Ｇ１に分類されていない２００台は、ＦＷ−Ｇ２に分類されている。ＦＷ−Ｇ２には、ＦＷ１０、ＦＷ１２などが含まれる。ＷＯＣと通信しているＦＷはいずれも、ＦＷ−Ｇ２に分類される。このため、ＦＷ−Ｇ２には、ＦＷ２００、ＦＷ２１０、ＦＷ２１５、ＦＷ２２０なども含まれる。
【００４４】
キャッシュサーバとして動作しているＶＮＦ６０も同様に処理される。このため、ＦＷと通信しているＣａｃｈｅのうちの５００台はＣａｃｈｅ−Ｇ１という名称のグループに分類されている。Ｃａｃｈｅ−Ｇ１には、Ｃａｃｈｅ３、Ｃａｃｈｅ２０などのＶＮＦ６０が含まれている。ＦＷと通信しているＣａｃｈｅのうちで、Ｃａｃｈｅ−Ｇ１に分類されていない１５０台は、Ｃａｃｈｅ−Ｇ２に分類される。Ｃａｃｈｅ−Ｇ２には、Ｃａｃｈｅ４、Ｃａｃｈｅ３０などが含まれる。ＦＷと少数種別（商用ソフトＡまたは商用ソフトＢを提供しているＶＮＦ６０）の両方と通信しているＣａｃｈｅはいずれも、Ｃａｃｈｅ−Ｇ２に分類される。このため、Ｃａｃｈｅ−Ｇ２には、Ｃａｃｈｅ１６、Ｃａｃｈｅ１８なども含まれる。
【００４５】
ＷＯＣとして動作しているＶＮＦ６０の分類には１つのグループが使用される。このため、ＦＷとだけ通信しているＷＯＣも、ＦＷと少数種別のＶＮＦ６０の両方と通信しているＷＯＣもＷＯＣ−Ｇ１のグループに分類される。ＷＯＣ−Ｇ１には、ＷＯＣ４０、ＷＯＣ４５、ＷＯＣ５０、ＷＯＣ６０などが含まれている。
【００４６】
少数種別に分類されているＶＮＦ６０は１つのグループ（少数−Ｇ１）に分類される。このため、商用ソフトＡを提供中のＶＮＦ６０も、商用ソフトＢを提供中のＶＮＦ６０も少数−Ｇ１のグループに分類される。少数−Ｇ１には、商用Ａ４１０、商用Ａ４００、商用Ｂ３００、商用Ｂ４０１などが含まれている。
【００４７】
分類処理部３４は、グループ対応テーブル４５の更新が終わると、グループの更新が終了したことを接続処理部３５に通知する。接続処理部３５は、新たに生成されたグループ中の各ＶＮＦ６０が通信処理を行うことができるように、各グループのＶＮＦ６０を含めるサブネットワークの決定と、個々のＶＮＦ６０の設定処理を行う。以下、接続処理部３５の処理を、グループ間の接続関係の求め方と、ＶＮＦ６０への設定変更に分けて詳しく説明する。
【００４８】
図１３は、グループ間の接続関係の求め方の例を説明する図である。接続処理部３５は、グループ対応テーブル４５からグループ隣接テーブル４６を生成する。グループ隣接テーブル４６は、グループごとに、グループ名、ＶＮＦ種別、通信先の種別が記録されている。ＶＮＦ種別はそのグループに含まれているＶＮＦ６０のＶＮＦ種別である。通信先の種別は、そのグループに含まれているＶＮＦ６０の通信先の種別である。例えば、ＦＷ−Ｇ１に含まれているＶＮＦ６０はＦＷであり、ＦＷ−Ｇ１に分類されているＶＮＦ６０はＣａｃｈｅと通信するので、ＦＷ−Ｇ１の情報は図１３のグループ隣接テーブル４６の最初のエントリに示すとおりである。一方、ＦＷ−Ｇ２に含まれているＶＮＦ６０はＦＷであり、ＦＷ−Ｇ２に分類されているＶＮＦ６０の一部はＣａｃｈｅと通信するが他のＶＮＦ６０はＷＯＣと通信する。このため、ＦＷ−Ｇ２の情報は２番目のエントリに示すとおりである。Ｃａｃｈｅ−Ｇ１にはＣａｃｈｅとして動作するＶＮＦ６０が分類され、Ｃａｃｈｅ−Ｇ１に分類されているＶＮＦ６０はＦＷと通信するので、Ｃａｃｈｅ−Ｇ１の情報は３番目のエントリのとおりである。Ｃａｃｈｅ−Ｇ２に含まれているＶＮＦ６０はＣａｃｈｅであり、一部のＶＮＦ６０はＦＷと通信するが他のＶＮＦ６０は少数種別のＶＮＦ６０と通信する。このため、Ｃａｃｈｅ−Ｇ２の情報は４番目のエントリのとおりである。ＷＯＣ−Ｇ１に含まれているＶＮＦ６０はＷＯＣであり、一部のＶＮＦ６０はＦＷと通信するが他のＶＮＦ６０は少数種別のＶＮＦ６０と通信する。このため、ＷＯＣ−Ｇ１の情報はグループ隣接テーブル４６の５番目のエントリのとおりである。少数−Ｇ１に含まれているＶＮＦ６０は少数種別に分類された処理を行っており、一部のＶＮＦ６０はＣａｃｈｅと通信するが他のＶＮＦ６０はＷＯＣと通信する。このため、少数−Ｇ１の情報はグループ隣接テーブル４６の６番目のエントリのとおりになる。
【００４９】
グループ隣接テーブル４６の生成が終わると、接続処理部３５は、各グループ中のＶＮＦ６０の通信先の情報を用いてサブネットワークを割り当てるかを判定する。すなわち、接続処理部３５は、グループ隣接テーブル４６中の各グループについて、そのグループ中のＶＮＦ６０が通信する可能性のあるＶＮＦ６０を含むグループを特定する。以下、接続処理部３５で行われる処理の具体例を説明する。
【００５０】
例えば、ＦＷ−Ｇ１のグループに含まれているＶＮＦ６０の通信先は、Ｃａｃｈｅとして動作しているＶＮＦ６０のいずれかである。Ｃａｃｈｅとして動作しているＶＮＦ６０は、Ｃａｃｈｅ−Ｇ１かＣａｃｈｅ−Ｇ２のいずれかに分類されている。そこで、接続処理部３５は、ＦＷ−Ｇ１中のＶＮＦ６０とＣａｃｈｅ−Ｇ１中のＶＮＦ６０が通信するためのサブネットワークと、ＦＷ−Ｇ１中のＶＮＦ６０とＣａｃｈｅ−Ｇ２中のＶＮＦ６０が通信するためのサブネットワークを生成することを決定する。接続処理部３５は、サブネットワークを生成するグループ間の情報をグループ間接続テーブル４７に記録する。
【００５１】
グループ間接続テーブル４７は、接続される可能性のあるグループの組み合わせごとに、サブネットワークの設定の有無を対応付けている。接続処理部３５は、グループ間接続テーブル４７中でＦＷ−Ｇ１とＣａｃｈｅ−Ｇ１の組み合わせの欄と、ＦＷ−Ｇ１とＣａｃｈｅ−Ｇ２の組み合わせの欄にサブネットワークの設定を意味する情報を記録する。図１３の例では、丸印は、サブネットワークを設定する組み合わせであることを示し、×印はサブネットワークを設定しない組み合わせであることを示すものとする。接続処理部３５は、設定するサブネットワークの識別子も決定する。ここで、サブネットワークの識別子は、サブネットワークを一意に識別できる任意の値であり、例えば、ネットワークアドレスであってもよい。図１３のグループ間接続テーブル４７には、サブネットワークの識別子も併せて示している。図１３の例では、ＦＷ−Ｇ１とＣａｃｈｅ−Ｇ１の通信に使用されるサブネットワークの識別子はＳＮａであり、ＦＷ−Ｇ１とＣａｃｈｅ−Ｇ２の通信に使用されるサブネットワークの識別子はＳＮｂである。他のグループについても、接続処理部３５は同様の処理を行う。
【００５２】
ＦＷ−Ｇ２のグループに含まれているＶＮＦ６０の通信先は、Ｃａｃｈｅとして動作しているＶＮＦ６０かＷＯＣとして動作しているＶＮＦ６０のいずれかである。Ｃａｃｈｅとして動作しているＶＮＦ６０は、Ｃａｃｈｅ−Ｇ１かＣａｃｈｅ−Ｇ２のいずれかに分類されている。また、ＷＯＣとして動作しているＶＮＦ６０はＷＯＣ−Ｇ１に分類されている。そこで、接続処理部３５は、ＦＷ−Ｇ２とＣａｃｈｅ−Ｇ１の間での通信、ＦＷ−Ｇ２とＣａｃｈｅ−Ｇ２の間での通信、ＦＷ−Ｇ２とＷＯＣ−Ｇ１の間での通信のそれぞれに使用するサブネットワークを生成することを決定する。図１３に示すとおり、以下の説明では、ＦＷ−Ｇ２とＣａｃｈｅ−Ｇ１の通信にサブネットワークＳＮｃが使用され、ＦＷ−Ｇ２とＣａｃｈｅ−Ｇ２の間の通信にサブネットワークＳＮｄが使用されるものとする。さらに、ＦＷ−Ｇ２とＷＯＣ−Ｇ１の間の通信にサブネットワークＳＮｅが使用されるものとする。
【００５３】
Ｃａｃｈｅ−Ｇ１のグループに含まれているＶＮＦ６０の通信先は、ＦＷとして動作しているＶＮＦ６０のいずれかである。そこで、接続処理部３５は、Ｃａｃｈｅ−Ｇ１とＦＷ−Ｇ１の間での通信、および、Ｃａｃｈｅ−Ｇ１とＦＷ−Ｇ２の間での通信にサブネットワークが使用されると判定する。しかし、これらのサブネットワークは、ＦＷ−Ｇ１およびＦＷ−Ｇ２に対する判定処理の際にサブネットワークの識別子の決定までが終わっているので、接続処理部３５は、Ｃａｃｈｅ−Ｇ１に対する処理を終了する。
【００５４】
Ｃａｃｈｅ−Ｇ２のグループに含まれているＶＮＦ６０の通信先は、ＦＷとして動作しているＶＮＦ６０か少数―Ｇ１中のＶＮＦ６０のいずれかである。そこで、接続処理部３５は、Ｃａｃｈｅ−Ｇ２とＦＷ−Ｇ１の間での通信、Ｃａｃｈｅ−Ｇ２とＦＷ−Ｇ２の間での通信、Ｃａｃｈｅ−Ｇ２と少数−Ｇ１の間での通信のそれぞれにサブネットワークを使用することを決定する。ここで、Ｃａｃｈｅ−Ｇ２とＦＷ−Ｇ１の間とＣａｃｈｅ−Ｇ２とＦＷ−Ｇ２の間の通信に使用されるサブネットワークに対する識別子の決定までの処理は終わっている。このため、接続処理部３５は、Ｃａｃｈｅ−Ｇ２と少数−Ｇ１の間の通信にサブネットワークを使用することをグループ間接続テーブル４７に記録する。Ｃａｃｈｅ−Ｇ２と少数−Ｇ１の間の通信には、サブネットワークＳＮｆが使用される。
【００５５】
ＷＯＣ−Ｇ１に含まれているＶＮＦ６０の通信先は、ＦＷとして動作しているＶＮＦ６０か少数―Ｇ１中のＶＮＦ６０のいずれかである。ここで、グループ隣接テーブル４６の情報より、ＷＯＣと通信するＦＷはＦＷ−Ｇ２に分類されていることから、接続処理部３５は、ＷＯＣ−Ｇ１とＦＷ−Ｇ２の間の通信に使用するサブネットワークを設定することを決定する。一方、ＦＷ−Ｇ１については、ＦＷ−Ｇ１中のＶＮＦ６０の通信先にＷＯＣが含まれていないので、接続処理部３５は、ＦＷ−Ｇ１にＷＯＣ−Ｇ１中のＶＮＦ６０の通信先が含まれていないと判定する。そこで、接続処理部３５は、ＷＯＣ−Ｇ１とＦＷ−Ｇ１の間の通信用のサブネットワークを生成しないことを決定する。さらに、接続処理部３５は、ＷＯＣ−Ｇ１と少数−Ｇ１の間での通信にサブネットワークを使用することも決定する。ここで、ＷＯＣ−Ｇ１とＦＷ−Ｇ２の間の通信に使用されるサブネットワークに対する処理は終わっているので、接続処理部３５は、ＷＯＣ−Ｇ１と少数−Ｇ１の間の通信にサブネットワークを使用することをグループ間接続テーブル４７に記録する。ＷＯＣ−Ｇ１と少数−Ｇ１の間の通信には、サブネットワークＳＮｇが使用される。
【００５６】
少数−Ｇ１に含まれているＶＮＦ６０の通信先は、Ｃａｓｈｅとして動作しているＶＮＦ６０かＷＯＣ―Ｇ１中のＶＮＦ６０のいずれかである。ここで、グループ隣接テーブル４６の情報より、少数−Ｇ１中のＶＮＦ６０と通信するＣａｃｈｅはＣａｃｈｅ−Ｇ２に分類されていることから、接続処理部３５は、少数−Ｇ１とＣａｃｈｅ−Ｇ２の間の通信に使用するサブネットワークを設定することを決定する。一方、Ｃａｃｈｅ−Ｇ１については、Ｃａｃｈｅ−Ｇ１中のＶＮＦ６０の通信先に少数−Ｇ１中のＶＮＦ６０の通信先が含まれていないので、接続処理部３５は、少数−Ｇ１とＣａｃｈｅ−Ｇ１の間の通信用のサブネットワークを生成しないことを決定する。さらに、接続処理部３５は、少数−Ｇ１とＷＯＣ−Ｇ１の間での通信にもサブネットワークを使用することも決定する。ここで、いずれのサブネットワークに対する識別子の設定やグループ間接続テーブル４７への記録も終わっているので、接続処理部３５は、少数−Ｇ１に関する処理を終了する。
【００５７】
接続処理部３５は、グループの接続関係とサブネットワークの割り当て結果を用いて、ＳＣ情報テーブル４１に含まれている個々のサービスチェインについて、ＶＮＦ６０にＩＰアドレスの変更と転送先の変更を要求する。以下、図５に示す端末１０ａから端末１０ｂに至るサービスチェインに対しての処理を例として説明する。接続処理部３５は、ＳＣ情報テーブル４１（図６）を用いて、ＩＰａからＩＰｂに至るサービスチェインでは、パケットがＦＷ１、Ｃａｃｈｅ３の順に転送されることを特定する。なお、接続処理部３５は、端末１０ａがアクセスルータ１ａ、端末１０ｂがアクセスルータ１ｂを介して通信することを予め記憶しているものとする。接続処理部３５は、ＦＷ１とＣａｃｈｅ３がサブネットワークＳＮａを介して通信することから、アクセスルータ１ａとアクセスルータ１ｂもサブネットワークＳＮａに接続することを決定したとする。さらに、接続処理部３５は、各ＶＮＦ６０に対して、通信に使用するサブネットワークのネットワークアドレスとＶＮＦ６０の識別番号を用いて、個々のＶＮＦ６０に割り当てるＩＰアドレスを決定する。なお、アクセスルータ１ａ、１ｂに対しても、サブネットワークＳＮａで使用するＩＰアドレスを割り当てる。例えば、接続処理部３５は、各装置に以下のアドレスを割り当てたとする。
アクセスルータ１ａ：ＩＰａＲ１
ＦＷ１            ：ＩＰａ１
Ｃａｃｈｅ３      ：ＩＰａ３
アクセスルータ１ｂ：ＩＰａＲ２
接続処理部３５は、各装置に割り当てたＩＰアドレスを通知する。さらに、接続処理部３５は、アクセスルータ１ａ、ＦＷ１、Ｃａｃｈｅ３に対して、パケットの転送先のＩＰアドレスを通知する。すなわち、接続処理部３５は、アクセスルータ１ａには、ＩＰａからＩＰｂ宛てのパケットの転送先のアドレスを、ＩＰａ１に変更することを要求する。同様に、接続処理部３５は、ＦＷ１に対して、ＩＰａからＩＰｂ宛てのパケットの転送先のアドレスを、ＩＰａ３に変更することを要求する。さらに、Ｃａｃｈｅ３に対し、接続処理部３５は、ＩＰａからＩＰｂ宛てのパケットの転送先のアドレスを、ＩＰａＲ２に変更することを要求する。なお、通知処理に用いられるパケットのフォーマットは、アドレスや転送先の通知に用いられる任意の形式である。
【００５８】
図１４は、サービスチェインの例を説明する図である。図１４は、図５に示す端末１０ａから端末１０ｂに至るサービスチェインが、接続処理部３５の処理によって変更されたときの例を示す。アクセスルータ１ａは、管理装置２０からＩＰアドレスと転送先が通知されたことにより、サブネットワークＳＮａを介した通信ではＩＰａＲをアドレスとして使用し、ルーティングテーブルを更新する。すなわち、アクセスルータ１ａは、ＩＰａからＩＰｂ宛てのパケットの転送先のアドレスをＩＰａ１に変更するので、ルーティングテーブル７１ａ−１（図５）はルーティングテーブル７１ａ−２（図１４）に更新される。同様に、ＦＷ１は、ＩＰアドレスの設定とともにルーティングテーブル６１ａ−１（図５）をルーティングテーブル６１ａ−２（図１４）に更新する。Ｃａｃｈｅ３は、ＩＰアドレスの設定とともにルーティングテーブル６１ｂ−１（図５）をルーティングテーブル６１ｂ−２（図１４）に更新する。さらに、アクセスルータ１ｂは、管理装置２０から通知されたアドレスを設定する。なお、端末１０ａからアクセスルータ１ａまでの通信経路と、アクセスルータ１ｂから端末１０ｂまでの通信経路はグループの変更によっても変更されない。このため、端末１０ａから端末１０ｂ宛てに送信されたパケットは、アクセスルータ１ａからＦＷ１、Ｃａｃｈｅ３、アクセスルータ１ｂを介して、端末１０ｂに到達する。
【００５９】
管理装置２０中の接続処理部３５は、その他のサービスチェインについても、図１３と図１４を参照しながら説明した処理と同様の処理を行う。このため、管理装置２０は、稼働中のＶＮＦ６０同士の通信に使用するサブネットワークの数を最適化して、ネットワークの接続を効率化するとともに、稼働中のサービスチェインによるサービスの提供を継続できるようにする。
【００６０】
図１５は、接続処理の例を説明するフローチャートである。図１５に示すフローチャートでは、変数ｘ、変数ｙ、定数Ｙを使用する。変数ｘとｙは、処理対象のサービスチェインに含まれているＶＮＦのうちで設定処理を行った数を特定するために使用される。定数Ｙは、処理対象のサービスチェインに含まれているＶＮＦ６０の総数である。
【００６１】
まず、接続処理部３５は、接続処理の対象のサービスチェインの情報をＳＣ情報テーブル４１（図６）から取得する（ステップＳ３１）。接続処理部３５は、変数ｘを１、変数ｙを２に設定する（ステップＳ３２）。接続処理部３５は、処理対象のサービスチェイン中でｘ番目にパケットが通過するＶＮＦ６０が属するグループを、グループ対応テーブル４５を用いて特定する（ステップＳ３３）。接続処理部３５は、処理対象のサービスチェイン中でｙ番目にパケットが通過するＶＮＦ６０が属するグループを、グループ対応テーブル４５を用いて特定する（ステップＳ３４）。接続処理部３５は、ｘ番目のＶＮＦ６０とｙ番目のＶＮＦ６０の接続に使用するサブネットワークを特定する（ステップＳ３５）。さらに、接続処理部３５は、ｘ番目のＶＮＦ６０からｙ番目のＶＮＦ６０へのパケットの転送に使用するＩＰアドレスと転送先の情報を設定する（ステップＳ３６）。すなわち、ｘ番目のＶＮＦ６０とｙ番目のＶＮＦ６０の少なくとも１つに未設定のＩＰアドレスがあれば、未設定のアドレスをそのアドレスを使用するＶＮＦ６０に通知する。さらに、ｙ番目のＶＮＦ６０に割り当てたＩＰアドレスを、ｘ番目のＶＮＦ６０に、パケットの転送先のＩＰアドレスとして設定する。接続処理部３５は、変数ｙと定数Ｙの大きさを比較する（ステップＳ３７）。変数ｙが定数Ｙ未満の場合、接続処理部３５は、変数ｘと変数ｙをそれぞれ１つずつインクリメントし、ステップＳ３３以降の処理を繰り返す（ステップＳ３７でＮｏ、ステップＳ３８）。変数ｙが定数Ｙ以上の場合、接続処理部３５はサービスチェインに含まれている全てのＶＮＦ６０の設定が終わったと判定して処理を終了する（ステップＳ３７でＹｅｓ）。
【００６２】
図１６は、接続処理によって得られたネットワークの例を示す図である。ＳＣ情報テーブル４１（図６）に含まれている各サービスチェイン中のＶＮＦ６０に対して転送先の変更やアドレスの設定等を行った結果、図１６に示すような接続が得られる。すなわち、ＦＷ−Ｇ１中のＶＮＦ６０とＣａｃｈｅ−Ｇ１中のＶＮＦ６０には、サブネットワークＳＮａに含まれるアドレスが割り当てられる。このため、ＦＷ−Ｇ１中のＶＮＦ６０とＣａｃｈｅ−Ｇ１中のＶＮＦ６０は、サブネットワークＳＮａを介して通信する。また、ＦＷ−Ｇ１中のＶＮＦ６０とＣａｃｈｅ−Ｇ２中のＶＮＦ６０には、サブネットワークＳＮｂに含まれるアドレスが割り当てられる。このため、ＦＷ−Ｇ１中のＶＮＦ６０とＣａｃｈｅ−Ｇ２中のＶＮＦ６０は、サブネットワークＳＮｂを介して通信する。同様に、ＦＷ−Ｇ２中のＶＮＦ６０とＣａｃｈｅ−Ｇ１中のＶＮＦ６０は、サブネットワークＳＮｃを介して通信する。ＦＷ−Ｇ２中のＶＮＦ６０とＣａｃｈｅ−Ｇ２中のＶＮＦ６０は、サブネットワークＳＮｄを介して通信する。ＦＷ−Ｇ２中のＶＮＦ６０とＷＯＣ−Ｇ１中のＶＮＦ６０は、サブネットワークＳＮｅを介して通信する。Ｃａｃｈｅ−Ｇ２中のＶＮＦ６０と少数−Ｇ１中のＶＮＦ６０は、サブネットワークＳＮｆを介して通信する。さらに、ＷＯＣ−Ｇ１中のＶＮＦ６０と少数−Ｇ１中のＶＮＦ６０は、サブネットワークＳＮｇを介して通信する。
【００６３】
ここで、第１の実施形態によるネットワーク中のＶＮＦ６０（仮想マシン）の収容数の増大効果について説明する。例えば、１つのブロードキャストドメインに含めても各装置への負荷が許容できるＶＮＦ６０の総数が１０００であるとする。すると、第１の実施形態を用いなければ、全てのＶＮＦ６０が１つのサブネットワークに接続されるので、１つのネットワークには１０００台のＶＮＦ６０以上を含めることができないことになる。
【００６４】
一方、第１の実施形態では、１つのサブネットワークに含まれているＶＮＦ６０の最大数が１０００になるように、各グループの最大ＶＮＦ数を５００に制限している。また、各サブネットワークは、２つのグループの通信に使用されるが、他のグループとの間の通信には使用されない。このため、図１６に示すように、サブネットワークＳＮａ〜ＳＮｇが使用されている場合、各サブネットワーク中のＶＮＦ６０が１０００台以内であればよい。このため、第１の実施形態を用いると、１つのネットワークに含まれるＶＮＦ６０の数を大きくすることができ、効率的に通信が行われる。例えば、図６〜図１６を用いた説明では、ネットワーク全体に含まれているＶＮＦ６０の数は、各ＶＮＦ種別でのＶＮＦ６０の総数になる。このため、ＶＮＦ数テーブル４３（図８）より、ネットワーク中のＶＮＦ６０の総数は、１０００（ＦＷ）＋７００（Ｃａｃｈｅ）＋３００（ＷＯＣ）＋５０（商用ソフトＡ）＋５０（商用ソフトＢ）＝２１００台である。従って、第１の実施形態を用いると、第１の実施形態が使用されない場合の倍以上のＶＮＦ６０を１つのネットワークに収容できる。なお、図６〜図１６を用いた説明は処理の一例に過ぎない。従って、使用するサブネットワークの数をさらに増大させることにより、さらに多数のＶＮＦ６０を用いたネットワークを形成することもできる。
【００６５】
＜第２の実施形態＞
第２の実施形態では、ルータが含まれているネットワークでの例を説明する。ＶＮＦ数の少ないグループ間の通信を、ルータを介して中継することにより、ネットワーク中に含まれるＶＮＦ６０の数をさらに大きくすることもできる。
【００６６】
図１７は、第２の実施形態が適用される通信システムの例を説明する図である。通信システムは、アクセスルータ１、ＶＬＡＮスイッチ２、ルータ７、ＶＮＦ６０（６０ａ〜６０ｅ）、管理ネットワーク４、ＳＣ管理サーバ８、管理装置２０を含む。図１７では、データの送受信に使用される接続は実線で表わされており、サブネットワークの設定等に使用される制御情報の送受信に使用される接続は点線で表わされている。なお、図１７は通信システムの例であり、通信システム中に含まれるアクセスルータ１、ルータ７、端末１０、ＶＬＡＮスイッチ２、ＶＮＦ６０の数は実装に応じて任意に変更され得る。
【００６７】
図１８は、グループ間の接続関係の求め方の例を説明する図である。第２の実施形態においても、管理装置２０中の取得部３１、検出部３２、グループ生成部３３、分類処理部３４の処理は第１の実施形態と同様である。また、ＳＣ情報テーブル４１、頻度テーブル４２、ＶＮＦ数テーブル４３、グループ情報テーブル４４、グループ対応テーブル４５の生成方法も、第１の実施形態と同様である。
【００６８】
図１８のテーブルＴ１は、図６に示すＳＣ情報テーブル４１から生成されたグループ対応テーブル４５中（図１２）のグループ名とＶＮＦ数の値を抜き出したものである。接続処理部３５は、第１の実施形態と同様の手順により、グループ隣接テーブル４６（図１３）を生成するとともに、グループ間接続テーブル４７に通信が行われるグループの組み合わせを記録する。なお、接続処理部３５は、この時点では、サブネットワークを割り当てない。このため、グループ間接続テーブル４７は、図１８のテーブルＴ２に示すようになる。なお、図１８のテーブルＴ２例では、丸印は、通信が行われるグループの組み合わせであることを示し、×印は通信が行われないグループの組み合わせであることを示すものとする。
【００６９】
次に、接続処理部３５は、テーブルＴ１の情報を用いて、通信が行われるグループの組み合わせの各々について、サブネットワークを設定した場合に収容されるＶＮＦ６０の数を計算する。例えば、ＦＷ−Ｇ１中のＶＮＦ６０とＣａｃｈｅ−Ｇ１中のＶＮＦ６０が通信するためのサブネットワークには、ＦＷ−Ｇ１中のＶＮＦ６０とＣａｃｈｅ−Ｇ１中のＶＮＦ６０が含まれる。このため、接続処理部３５は、ＦＷ−Ｇ１とＣａｃｈｅ−Ｇ１の間の通信に使用されるサブネットワークには、ＦＷ−Ｇ１中のＶＮＦ６０の総数とＣａｃｈｅ−Ｇ１中のＶＮＦ６０の総数の和である５００＋５００＝１０００台のＶＮＦ６０が含まれると計算する。図１８のテーブルＴ２は、接続処理部３５の計算結果を通信が行われるグループの組合せごとに示している。他のグループ間の通信に使用されるサブネットワークにも同様の計算が行われる。例えば、接続処理部３５は、ＦＷ−Ｇ１とＣａｃｈｅ−Ｇ２の通信に使用されるサブネットワークについて、ＦＷ−Ｇ１中のＶＮＦ６０の総数とＣａｃｈｅ−Ｇ２中のＶＮＦ６０の総数の和である５００＋２００＝７００台のＶＮＦ６０が含まれると計算する。また、ＦＷ−Ｇ２とＣａｃｈｅ−Ｇ１の通信に使用されるサブネットワークに含まれるＶＮＦ数は、ＦＷ−Ｇ２中のＶＮＦ６０の総数とＣａｃｈｅ−Ｇ１中のＶＮＦ６０の総数の和である５００＋５００＝１０００台となる。ＦＷ−Ｇ２とＣａｃｈｅ−Ｇ２の間の通信に使用されるサブネットワークには、これらの２つのグループ中のＶＮＦ６０の総数が含まれるので、５００＋２００＝７００台のＶＮＦ６０が含まれる。ＦＷ−Ｇ２とＷＯＣ−Ｇ１の間の通信に使用されるサブネットワークには、これらの２つのグループのＶＮＦ６０の総数が含まれるので、５００＋３００＝８００台のＶＮＦ６０が含まれる。Ｃａｃｈｅ−Ｇ２と少数−Ｇ１の間の通信に使用されるサブネットワークには、２００＋１００＝３００台のＶＮＦ６０が含まれる。ＷＯＣ−Ｇ１と少数−Ｇ１の間の通信に使用されるサブネットワークには、３００＋１００＝４００台のＶＮＦ６０が含まれる。
【００７０】
次に、接続処理部３５は、サブネットワークを設定した場合に収容されるＶＮＦ６０の数が所定値よりも小さいものに関しては、ルータ７を用いて通信を接続することを決定する。例えば、所定値が５００だとする。すると、接続処理部３５は、Ｃａｃｈｅ−Ｇ２と少数−Ｇ１の間の通信、および、ＷＯＣ−Ｇ１と少数−Ｇ１の間の通信には、サブネットワークを用いずに、ルータ７を介して通信することを決定する。この後、接続処理部３５は、サブネットワークを用いた通信を行うグループ間に設定するサブネットワークを決定し、ネットワークアドレスを決定する。これらの情報も、第１の実施形態と同様に、グループ間接続テーブル４７に記録される。
【００７１】
その後、接続処理部３５は、サブネットワークを用いて通信するグループについては、第１の実施形態において、図１３〜図１５を参照して説明した処理と同様の処理を行う。
【００７２】
図１９は、第２の実施形態で行われる接続処理の例を説明する図である。図１９は、ルータを用いて接続する対象ではないサブネットワークについての処理が行われたことにより、サブネットワークＳＮａ〜ＳＮｅが設定された場合の状態を示す。サブネットワークＳＮａ〜ＳＮｅまでの設定が終わった段階では、サブネットワークで接続されていない少数−Ｇ１中のＶＮＦ６０が他のグループ中のＶＮＦ６０との通信に使用する経路はまだ設定されていない。
【００７３】
図２０は、第２の実施形態によって得られたネットワークの例を示す図である。図１９に示すようにネットワークを設定した後、接続処理部３５は、少数−Ｇ１に含まれているＶＮＦ６０を、ルータ７と接続するためのサブネットワークＳＮｆを設定する。また、接続処理部３５は、少数−Ｇ１に含まれているＶＮＦ６０の各々に、サブネットワークＳＮｆ中での通信に使用するＩＰアドレスを通知するとともに、ルータ７にも、サブネットワークＳＮｆで通信するためのＩＰアドレスを割り当てる。
【００７４】
次に、接続処理部３５は、ルータ７を介して少数−Ｇ１が通信を行うグループが接続されているサブネットワークを特定する。図１８のテーブルＴ２に示すように、少数−Ｇ１中のＶＮＦ６０がルータ７を介して通信するＶＮＦ６０が含まれているグループは、Ｃａｃｈｅ−Ｇ２とＷＯＣ−Ｇ１である。さらに、接続処理部３５は、Ｃａｃｈｅ−Ｇ２はサブネットワークＳＮｂとＳＮｄに接続されていることと、それらのネットワーク中に含まれるＶＮＦ６０の数を特定する。サブネットワークＳＮｂとサブネットワークＳＮｄのいずれにも７００台のＶＮＦ６０が含まれているので、いずれのサブネットワークにも、サブネットワーク中のＶＮＦ６０数の上限（１０００台）より少ない数のＶＮＦ６０しか含まれていない。そこで、接続処理部３５は、ルータ７をサブネットワークＳＮｂかＳＮｄのいずれかに含めることを決定し、ルータ７へのアドレス設定を行う。図２０には、ルータ７がサブネットワークＳＮｄに含まれている場合を例として示す。
【００７５】
接続処理部３５は、ＷＯＣ−Ｇ１についても同様の処理を行うので、ＷＯＣ−Ｇ１がサブネットワークＳＮｅに接続されていることを特定する。接続処理部３５は、サブネットワークＳＮｅに含まれているＶＮＦ６０の総数（８００台）を、サブネットワーク中のＶＮＦ６０数の上限（１０００台）と比較する。サブネットワークＳＮｅに含まれているＶＮＦ６０の総数は、サブネットワーク中のＶＮＦ６０数の上限より低いので、接続処理部３５は、ルータ７をサブネットワークＳＮｅにも含めることを決定し、ルータ７へのアドレス設定を行う。すると、図２０に示すように、サブネットワークＳＮｄとルータ７の間の経路と、サブネットワークＳＮｅとルータ７の間の経路が生成される。
【００７６】
次に、ルータを介した通信を行うサービスチェインに含まれるＶＮＦ６０に、接続処理部３５が転送先として通知するアドレスを決定する方法を説明する。接続処理部３５は、サービスチェイン中のＶＮＦ６０と、そのＶＮＦ６０の転送先との間にサブネットワークが設定されていない場合、転送先のアドレスをルータ７のアドレスに設定する。一方、接続処理部３５は、パケットの転送先のＶＮＦ６０とサブネットワークを介して接続しているＶＮＦ６０に対しては、第１の実施形態と同様の処理により、ルーティングテーブル６１の設定変更を要求する。これらの処理により、少数−Ｇ１中のＶＮＦ６０は、通信先のＶＮＦ６０と通信することができるようになる。
【００７７】
図２１は、第２の実施形態で行われる接続処理の例を説明するフローチャートである。ステップＳ４１〜Ｓ４４の処理は、図１５を参照しながら説明したステップＳ３１〜Ｓ３４と同様である。次に、接続処理部３５は、グループ間接続テーブル４７を用いて、処理対象のサービスチェイン中のｘ番目のＶＮＦ６０とｙ番目のＶＮＦ６０の接続に使用するサブネットワークを特定できるかを判定する（ステップＳ４５）。接続処理部３５は、サービスチェイン中のｘ番目のＶＮＦ６０とｙ番目のＶＮＦ６０の接続に使用するサブネットワークを特定できたとする（ステップＳ４５でＹｅｓ）。この場合、接続処理部３５は、ｘ番目のＶＮＦ６０とｙ番目のＶＮＦ６０へのパケットの転送に用いるＩＰアドレスなどの情報を設定する（ステップＳ４９）。
【００７８】
一方、接続処理部３５は、サービスチェイン中のｘ番目のＶＮＦ６０とｙ番目のＶＮＦ６０を接続するサブネットワークを特定しなかったとする（ステップＳ４５でＮｏ）。この場合、接続処理部３５は、ｘ番目のＶＮＦ６０とｙ番目のＶＮＦ６０はルータ７を介して通信すると判定する（ステップＳ４６）。接続処理部３５は、ｘ番目のＶＮＦ６０、ｙ番目のＶＮＦ６０、および、ルータ７のＩＰアドレスを設定する（ステップＳ４７）。さらに、接続処理部３５は、処理対象のサービスチェインについて、ｘ番目のＶＮＦ６０とルータ７での転送先を設定する（ステップＳ４８）。
【００７９】
ステップＳ４８またはステップＳ４９の処理が終わると、接続処理部３５は、変数ｙと定数Ｙの大きさを比較する（ステップＳ５０）。変数ｙが定数Ｙ未満の場合、接続処理部３５は、変数ｘと変数ｙをそれぞれ１つずつインクリメントして、ステップＳ４３以降の処理を繰り返す（ステップＳ５０でＮｏ、ステップＳ５１）。変数ｙが定数Ｙ以上の場合、接続処理部３５はサービスチェインに含まれている全てのＶＮＦ６０の設定が終わったと判定して処理を終了する（ステップＳ５０でＹｅｓ）。
【００８０】
このように変形すると、ネットワーク中に設定するサブネットワークの数を減らしつつ、各グループに分類されたＶＮＦ６０間の通信を行うことができる。従って、第１の実施形態よりも多くのＶＮＦ６０を通信システム中に含めることが可能になる。
【００８１】
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【００８２】
例えば、新たにサービスチェインを設定する際には、新たに生成されるサービスチェインに含まれる全てのＶＮＦ６０がある特定の１つのサブネットワークを介して通信するように設定されても良い。この場合、新たなサービスチェインの増加によって、新たに生成されたサービスチェインが通過しないサブネットワークでの通信環境の変化を極力抑えることができる。
【００８３】
以上の説明で示したテーブルは一例であり、各テーブル中の情報要素やフォーマットは実装に応じて変更され得る。
【００８４】
以上の説明は、ＶＬＡＮを用いた処理が行われる場合を例として説明したが、例えば、ＶＸＬＡＮ（Virtual eXtensible Local Area Network）など、他の技術を用いてサブネットワークの制御が行われても良い。さらに、管理装置による管理対象は、仮想マシンではない通信装置であって、ＶＬＡＮ技術とＩＰ技術を用いて通信する通信装置であってもよい。
【００８５】
上述の第１および第２の実施形態を含む実施形態に関し、以下の付記を開示する。
（付記１）
複数の通信装置を含むネットワークを管理する管理装置であって、
前記複数の通信装置の各々について、当該通信装置が行うパケット処理の種類と転送先で行われるパケット処理の種類との組み合わせを取得する取得部と、
前記複数の通信装置の各々を、前記組み合わせに応じて複数のグループに分類するとともに、第１の通信装置を含む第１のグループを、前記第１の通信装置からパケットを受信する第２の通信装置を含む第２のグループに接続するサブネットワークを設定する制御部と、
前記第１および第２の通信装置の各々に、当該通信装置が前記サブネットワークを用いた通信を行うための情報を含む制御パケットを送信する送信部
を含むことを特徴とする管理装置。
（付記２）
前記制御部は、前記第１のグループに含まれているいずれの通信装置も、第３のグループに含まれる通信装置と通信しない場合、前記第１のグループと前記第３のグループを接続するサブネットワークを生成しない
ことを特徴とする付記１に記載の管理装置。
（付記３）
前記制御部は、
前記第１のグループに含まれているいずれの通信装置からのパケットの転送先で行われる処理の種類も、前記第３のグループに含まれる通信装置で行われる処理の種類と一致しない場合、前記第１のグループに含まれているいずれの通信装置も、前記第３のグループに含まれる通信装置と通信しないと判定し、
前記第１のグループに含まれているいずれかの通信装置からのパケットの転送先で行われる処理の種類が、前記第２のグループに含まれる通信装置のいずれかで行われる処理の種類と一致する場合、前記第１のグループと前記第２のグループに接続するサブネットワークを設定する
ことを特徴とする付記２に記載の管理装置。
（付記４）
前記制御部は、
前記ネットワーク中の閾値以上の数の通信装置が同じ種類の処理を行っている場合、当該種類の処理を行う通信装置を第４のグループと第５のグループに分類し、
前記第４のグループと前記第５のグループの間を接続するサブネットワークを設定しない
ことを特徴とする付記１〜３のいずれか１項に記載の管理装置。
（付記５）
前記ネットワークにはルータが含まれており、
前記制御部は、
前記第３のグループに属する通信装置の数と、前記第３のグループ中の通信装置からのパケットの転送先を含むグループ中の通信装置の数の合計値を求め、
前記合計値が所定の値を下回ると、前記第３のグループと前記ルータを接続することを決定し、
前記第３のグループに含まれる各通信装置宛に、前記ルータを介して前記転送先と通信することを要求するための要求パケットを生成し、
前記送信部は、前記要求パケットを送信する
ことを特徴とする付記２〜４のいずれか１項に記載の管理装置。
（付記６）
複数の通信装置を含むネットワークを管理する管理装置が、
前記複数の通信装置の各々について、当該通信装置が行うパケット処理の種類と転送先で行われるパケット処理の種類との組み合わせを取得し、
前記複数の通信装置の各々を、前記組み合わせに応じて複数のグループに分類し、
第１の通信装置を含む第１のグループを、前記第１の通信装置からパケットを受信する第２の通信装置を含む第２のグループに接続するサブネットワークを設定し、
前記第１および第２の通信装置の各々に、当該通信装置が前記サブネットワークを用いた通信を行うための情報を含む制御パケットを送信する
処理を行うことを特徴とする接続処理方法。
（付記７）
前記管理装置は、前記第１のグループに含まれているいずれの通信装置も、第３のグループに含まれる通信装置と通信しない場合、前記第１のグループと前記第３のグループを接続するサブネットワークを生成しない
ことを特徴とする付記６に記載の接続処理方法。
（付記８）
前記管理装置は、
前記第１のグループに含まれているいずれの通信装置からのパケットの転送先で行われる処理の種類も、前記第３のグループに含まれる通信装置で行われる処理の種類と一致しない場合、前記第１のグループに含まれているいずれの通信装置も、前記第３のグループに含まれる通信装置と通信しないと判定し、
前記第１のグループに含まれているいずれかの通信装置からのパケットの転送先で行われる処理の種類が、前記第２のグループに含まれる通信装置のいずれかで行われる処理の種類と一致する場合、前記第１のグループと前記第２のグループに接続するサブネットワークを設定する
ことを特徴とする付記７に記載の接続処理方法。
（付記９）
前記管理装置は、
前記ネットワーク中の閾値以上の数の通信装置が同じ種類の処理を行っている場合、当該種類の処理を行う通信装置を第４のグループと第５のグループに分類し、
前記第４のグループと前記第５のグループの間を接続するサブネットワークを設定しない
ことを特徴とする付記６〜８に記載の接続処理方法。
（付記１０）
前記ネットワークにはルータが含まれており、
前記管理装置は、
前記第３のグループに属する通信装置の数と、前記第３のグループ中の通信装置からのパケットの転送先を含むグループ中の通信装置の数の合計値を求め、
前記合計値が所定の値を下回ると、前記第３のグループと前記ルータを接続することを決定し、
前記第３のグループに含まれる各通信装置宛に、前記ルータを介して前記転送先と通信することを要求するための要求パケットを送信する
ことを特徴とする付記７〜９のいずれか１項に記載の接続処理方法。
【符号の説明】
【００８６】
１  アクセスルータ
２  ＶＬＡＮスイッチ
４  管理ネットワーク
５  Ｌ２ネットワーク
７  ルータ
８  ＳＣ管理サーバ
１０  端末
２０  管理装置
２１  通信処理部
２２  送信部
２３  受信部
３０  制御部
３１  取得部
３２  検出部
３３  グループ生成部
３４  分類処理部
３５  接続処理部
４０  記憶部
４１  ＳＣ情報テーブル
４２  頻度テーブル
４３  ＶＮＦ数テーブル
４４  グループ情報テーブル
４５  グループ対応テーブル
４６  グループ隣接テーブル
４７  グループ間接続テーブル
６０  ＶＮＦ
６１、７１  ルーティングテーブル
１０１  プロセッサ
１０２  ＲＡＭ
１０３  ＲＯＭ
１０４  データバス
１０５  ネットワークインタフェース
１０６  プログラム
【図１】
2016171503.tif 000003
【図２】
2016171503.tif 000004
【図３】
2016171503.tif 000005
【図４】
2016171503.tif 000006
【図５】
2016171503.tif 000007
【図６】
2016171503.tif 000008
【図７】
2016171503.tif 000009
【図８】
2016171503.tif 000010
【図９】
2016171503.tif 000011
【図１０】
2016171503.tif 000012
【図１１】
2016171503.tif 000013
【図１２】
2016171503.tif 000014
【図１３】
2016171503.tif 000015
【図１４】
2016171503.tif 000016
【図１５】
2016171503.tif 000017
【図１６】
2016171503.tif 000018
【図１７】
2016171503.tif 000019
【図１８】
2016171503.tif 000020
【図１９】
2016171503.tif 000021
【図２０】
2016171503.tif 000022
【図２１】
2016171503.tif 000023