(57)【要約】【課題】サービスチェインの設定変更完了までの時間差による仮想通信機能のトラヒック廃棄を回避できるサーバ装置等を提供する。【解決手段】サーバ装置は、特定部と、抽出部と、設定部とを有する。特定部は、複数段に配置された通信機能を実現する仮想マシン群の中からパケットを終端する終端型の仮想マシンを特定する。抽出部は、前記終端型の仮想マシンにトラヒックを中継する前記仮想マシン毎に、前記終端型の仮想マシン宛のトラヒックを出力する出力先の仮想マシンを含む予備の通信経路を抽出する。設定部は、前記終端型の仮想マシンにトラヒックを中継する前記仮想マシン毎に、抽出された前記予備の通信経路を設定する。【選択図】図６
2018064251.tif 000002
【特許請求の範囲】
【請求項１】
複数段に配置された通信機能を実現する仮想マシン群の中からパケットを終端する終端型の仮想マシンを特定し、
前記終端型の仮想マシンにトラヒックを中継する仮想マシン毎に、前記終端型の仮想マシン宛のトラヒックを出力する出力先の仮想マシンを含む予備の通信経路を抽出し、
前記終端型の仮想マシンにトラヒックを中継する前記仮想マシン毎に、抽出された前記予備の通信経路を設定する
処理を実行することを特徴とする設定方法。
【請求項２】
前記仮想マシン群を複数段に配置する際に前記複数段のうちの最前段の仮想マシン群の前段に配置する分散機能を実現する分散型の仮想マシンを決定し、
前記分散型の仮想マシンから前記終端型の仮想マシンまでの負荷に基づいて、運用の通信経路を決定し、
決定された前記運用の通信経路上に配置された前記分散型の仮想マシン及び前記各仮想マシンに設定する
処理を更に実行することを特徴とする請求項１に記載の設定方法。
【請求項３】
前記抽出する処理として、
前記分散型の仮想マシンと前記終端型の仮想マシンとの間で前記終端型の仮想マシンにトラヒックを中継する前記仮想マシン毎に、前記予備の通信経路を抽出することを特徴とする請求項２に記載の設定方法。
【請求項４】
前記抽出する処理として、
前記終端型の仮想マシンにトラヒックを中継する前記仮想マシン毎に、前記予備の通信経路を抽出した後、抽出された前記予備の通信経路の内、前記運用の通信経路を削除することを特徴とする請求項２に記載の設定方法。
【請求項５】
前記特定する処理として、
前記仮想マシン群の構成変更を検出した場合に、前記仮想マシン群の中から前記終端型の仮想マシンを特定することを特徴とする請求項１に記載の設定方法。
【請求項６】
複数段に配置された通信機能を実現する仮想マシン群の中からパケットを終端する終端型の仮想マシンを特定する特定部と、
前記終端型の仮想マシンにトラヒックを中継する前記仮想マシン毎に、前記終端型の仮想マシン宛のトラヒックを出力する出力先の仮想マシンを含む予備の通信経路を抽出する抽出部と、
前記終端型の仮想マシンにトラヒックを中継する前記仮想マシン毎に、抽出された前記予備の通信経路を設定する設定部と
を有することを特徴とするサーバ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設定方法及びサーバ装置に関する。
【背景技術】
【０００２】
最近のネットワークでは、拠点から外部のサイト、又は、拠点から他の拠点にアクセスする際に、要求に応じてＦＷ（FireWall）やＰｒｏｘｙ等のＮＷ（NetWork）機能を通信経路上に仮想的に配置してトラヒックを転送するサービスチェインシステムがある。仮想的なＮＷ機能を経由する通信経路をサービスチェインという。
【０００３】
従来、ＮＷ機能は、ＮＷサーバ等の物理ＮＷ装置で機能していた。しかしながら、近年の汎用サーバの性能向上によって汎用サーバ上のソフトウェア処理でもＮＷ機能が実現できるようになった。従って、汎用サーバの仮想化環境の仮想マシン上でＮＷ機能のプログラムを動作させる形態でＮＷ機能の運用を開始している。尚、仮想マシン上で動作するＮＷに関するソフトウェア処理を仮想ＮＷ機能(Virtual  Network  Function：ＶＮＦ)という。
【０００４】
しかしながら、データ転送等のＮＷ関連の処理が物理ＮＷ装置から汎用サーバ上のソフトウェア処理のＶＮＦに運用形態が移行した結果、データ転送の処理性能が低下する事態が生じている。そこで、複数のプログラムを並列に実行し、複数のサーバ上に仮想マシンを並列動作することで、データ転送の負荷を分散し、データ転送の処理性能を改善している。
【０００５】
図１３は、サービスチェインの配置構成の一例を示す説明図である。図１３に示すサービスチェイン２００は、例えば、ＦＷ２０１Ａ、ＩＤＳ（Intrusive  Detection  System）２０１Ｂ及びＰｒｏｘｙ２０１Ｃ等の各ＶＮＦ２０１を配置している。更に、サービスチェイン２００は、各ＶＮＦ２０１の前段にトラヒックを分散するＬＢ（Load  Balancer）２０２を仮想的に配置している。ＬＢ２０２は、次段に配置する各ＶＮＦ２０１にトラヒックを分配する。その結果、各ＶＮＦ２０１の転送処理の負荷を分配することで、ソフトウェア化による処理性能の低下を抑制している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１５−１５４３２５号公報
【特許文献２】特開２０１６−４６７３６号公報
【特許文献３】国際公開第２０１１／１１８５８５号
【特許文献４】特開２０１６−９２５３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
サービスチェイン２００では、ＶＮＦ２０１の負荷変化に応じてＶＮＦ２０１を追加するスケールアウトや、ＶＮＦ２０１を削除するスケールイン等の設定変更が生じた場合、各ＶＮＦ２０１の設定変更が完了するまでにＶＮＦ２０１間で時間差が生じる。その結果、設定変更完了までの時間差によってＶＮＦ２０１でトラヒック廃棄が生じる。
【０００８】
一つの側面では、サービスチェインの設定変更完了までの時間差によるトラヒック廃棄を回避できる設定方法及びサーバ装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一つの態様の方法は、複数段に配置された通信機能を実現する仮想マシン群の中からパケットを終端する終端型の仮想マシンを特定する。更に、前記終端型の仮想マシンにトラヒックを中継する仮想マシン毎に、前記終端型の仮想マシン宛のトラヒックを出力する出力先の仮想マシンを含む予備の通信経路を抽出する。更に、前記終端型の仮想マシンにトラヒックを中継する前記仮想マシン毎に、抽出された前記予備の通信経路を設定する。
【発明の効果】
【００１０】
一つの側面として、サービスチェインの設定変更完了までの時間差によるトラヒック廃棄を回避できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、サービスチェインシステムの一例を示す説明図である。
【図２】図２は、管理サーバのハードウェア構成の一例を示す説明図である。
【図３】図３は、サービスチェインの配置構成の一例を示す説明図である。
【図４】図４は、サービスチェイン構築処理に関わる管理サーバの処理動作の一例を示すフローチャートである。
【図５】図５は、本実施例のサービスチェインの配置構成の一例を示す説明図である。
【図６】図６は、本実施例の管理サーバのプロセッサの機能構成の一例を示す説明図である。
【図７】図７は、ＦＷ１Ｅ追加前の運用中設定情報及び予備設定情報の一例を示す説明図である。
【図８】図８は、ＦＷ１Ｅ追加後のサービスチェインの配置構成の一例を示す説明図である。
【図９】図９は、ＦＷ１Ｅ追加後の運用中設定情報及び予備設定情報の一例を示す説明図である。
【図１０】図１０は、予備設定処理に関わる管理サーバ内のプロセッサの処理動作の一例を示すフローチャートである。
【図１１】図１１は、転送処理に関わる各ＶＮＦの処理動作の一例を示すフローチャートである。
【図１２】図１２は、設定プログラムを実行する情報処理装置の一例を示す説明図である。
【図１３】図１３は、サービスチェインの配置構成の一例を示す説明図である。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて、本願の開示する設定方法及びサーバ装置の実施例を詳細に説明する。尚、本実施例により、開示技術が限定されるものではない。また、以下に示す実施例は、矛盾を起こさない範囲で適宜組み合わせても良い。
【００１３】
図１は、サービスチェインシステム１の一例を示す説明図である。図１に示すサービスチェインシステム１は、キャリアＮＷ２と、管理サーバ３と、端末装置４とを有する。キャリアＮＷ２は、例えば、企業の本社、支社や海外拠点等の拠点２Ａと接続するＮＷである。キャリアＮＷ２は、例えば、複数の汎用サーバ２Ｂで構成し、各汎用サーバ２Ｂのリソース領域にある仮想領域で稼働する仮想ＮＷ１１と、その仮想ＮＷ１１上に配置した複数のＶＮＦ１２とを有する。管理サーバ３は、拠点２Ａ間で通信するサービスチェインを仮想領域に確立する。
【００１４】
ＶＮＦ１２は、例えば、Ｗｅｂキャッシュ１２Ａ、パケットモニタリング１２Ｂ、ＦＷ１２Ｃ、高速ＷＡＮ１２Ｄ、アドレス変換部１２Ｅ、ＶＰＮ１２Ｆ、ＩＤＳやＰｒｏｘｙ等の仮想ＮＷ機能である。Ｗｅｂキャッシュ１２Ａは、図示せぬＷｅｂサーバとのキャッシュデータを格納するＮＷ機能である。パケットモニタリング１２Ｂは、通信経路上のパケットの状態を監視するＮＷ機能である。ＦＷ１２Ｃは、不正アクセスを防止するＮＷ機能である。高速ＷＡＮ１２Ｄは、高速ＷＡＮ等のＮＷ機能である。アドレス変換部１２Ｅは、アドレスを変換するＮＷ機能である。ＶＰＮ１２Ｆは仮想専用線等のＮＷ機能である。ＩＤＳは、外部からの不正侵入を検知するＮＷ機能である。Ｐｒｏｘｙは、代理サーバのＮＷ機能である。ＶＮＦ１２は、汎用サーバ２Ｂ上の仮想領域に仮想的に配置した通信機能を実現する仮想マシンである。
【００１５】
管理サーバ３は、端末装置４からサービスチェインの構成要求に応じて、キャリアＮＷ２内の各汎用サーバ２Ｂの仮想領域上に所望の仮想ＮＷ１１及びＶＮＦ１２を配置するサーバ装置である。端末装置４は、例えば、ＦＷ４Ａ、高速ＷＡＮ４ＢやＶＰＮ４Ｃ等を経由して管理サーバ３と接続し、管理サーバ３に対してサービスチェインの構成要求を指示する、例えば、システム管理者等の端末装置である。尚、構成要求は、トラヒック転送の通信経路上に１台若しくは複数台のＶＮＦ１２の配置を要求するコマンドである。また、構成要求は、ＶＮＦ１２及びＬＢ１３のインスタンス数を指定する場合の他に、ＶＮＦ１２のインスタンス数のみを指定する場合もある。また、構成要求には、例えば、サービスチェインの要求品質を指定する場合もある。管理サーバ３は、要求品質を指定した構成要求を検出した場合、構成要求で指定された所望の機能や負荷状況からＶＮＦ１２やＬＢ１３のインスタンス数を決定する。ＬＢ１３は、負荷の分散機能を実現する分散型の仮想マシンである。
【００１６】
図２は、管理サーバ３のハードウェア構成の一例を示す説明図である。図２に示す管理サーバ３は、例えば、ＮＷサーバとしての専用コンピュータや、汎用コンピュータに相当する。管理サーバ３は、ＮＷインタフェース３１と、入力装置３２と、出力装置３３と、補助記憶装置３４と、主記憶装置３５と、プロセッサ３６とを有する。ＮＷインタフェース３１は、キャリアＮＷ２と接続すると共に、ＶＮＦ１２と接続する通信インタフェースである。尚、ＮＷインタフェース３１は、例えば、有線又は無線の通信を司る通信インタフェースである。ＮＷインタフェース３１は、例えば、ＮＩＣ(Network  Interface  Card)やＬＡＮ(Local  Area  Network)カード等の通信カードである。
【００１７】
入力装置３２は、各種情報を入力する、例えば、キーボードやマウス等のポインティングデバイス等の入力インタフェースである。出力装置３３は、各種情報を出力する、例えば、音声出力装置や表示装置等の出力インタフェースである。補助記憶装置３４は、例えば、各種プログラムや、プロセッサ３６が使用するデータ等の各種情報を記憶する、例えば、ＥＰＲＯＭ（Erasable  Programmable  ROM）、又はハードディスクドライブ（Hard  Disc  Drive）等の不揮発性のメモリである。更に、補助記憶装置３４は、例えば、オペレーティングシステム（ＯＳ）や、その他様々なアプリケーションプログラムを保持する領域である。
【００１８】
主記憶装置３５は、各種情報、例えば、補助記憶装置３４に格納されているプログラムをロードする領域や作業領域を提供する、例えば、ＲＡＭ（Random  Access  Memory）等の半導体メモリである。プロセッサ３６は、管理サーバ３全体を制御する、例えば、ＣＰＵ（Central  Processing  Unit）等の制御部である。プロセッサ３６は、補助記憶装置３４又は可搬記録媒体に保持されたＯＳや様々なアプリケーションプログラムを主記憶装置３５にロードして実行することで各種処理機能を実行する。プロセッサ３６は、１個に限定されるものではなく、複数個設けても良い。
【００１９】
図３は、サービスチェイン２０の配置構成の一例を示す説明図である。図３に示すサービスチェイン２０は、複数のＶＮＦ群２１と、ＬＢ群２２とを有する。複数のＶＮＦ群２１は、ＶＮＦ＃１と、ＶＮＦ＃２と、ＶＮＦ＃３とを所定順序に配置する。ＶＮＦ＃１は、例えば、ＦＷ１Ａ〜ＦＷ１Ｄを有する。ＶＮＦ＃２は、例えば、ＩＤＳ１Ａ〜ＩＤＳ１Ｃを有する。ＶＮＦ＃３は、例えば、Ｐｒｏｘｙ１Ａ〜Ｐｒｏｘｙ１Ｃを有する。ＬＢ群２２は、例えば、ＬＢ１Ａ及びＬＢ１Ｂを有する。
【００２０】
プロセッサ３６は、構成要求を検出すると、構成要求内で指定する各ＶＮＦ群２１内のＶＮＦ１２のインスタンス数に基づき、所定順序の内、最前段のＶＮＦ群２１、すなわちＶＮＦ＃１の前段に配置する集約ＬＢ１３Ａの数を決定する。尚、所定順序は、例えば、前段からＶＮＦ＃１（ＦＷ）、ＶＮＦ＃２（ＩＤＳ）及びＶＮＦ＃３（Ｐｒｏｘｙ）の順に配置する順序とする。
【００２１】
プロセッサ３６は、構成要求を検出すると、構成要求に基づき、ＶＮＦ群２１へのトラヒックを分配するＬＢ１３の特性の内、上位レイヤ「Ｌ４レベル」のＬＢ群２２（ＶＮＦ＃３に対するＬＢ１３（Ｌ４））を特定する。尚、Ｌ４レベル（ＴＣＰセッション）単位の分配処理は、Ｌ３レベル（ＩＰ）単位の分配処理も実行できる。プロセッサ３６は、上位レイヤ「Ｌ４レベル」の分配処理を実行するＬＢ群２２の内、ＬＢインスタンス数が最大数となるＬＢ１３を特定し、そのＬＢインスタンス数を集約ＬＢ１３Ａのインスタンス数と決定する。例えば、プロセッサ３６は、ＶＮＦ＃３のＬＢインスタンス数がＬ４レベルＬＢの２個の場合、そのＬ４レベルＬＢの２個を集約ＬＢ１３Ａの数として決定する。尚、Ｌ４レベルのＶＮＦ群２１を特定する理由は、Ｌ４レベル（ＴＣＰセッション）単位の処理でＬ３レベル（ＩＰ）単位の処理も実行できるためである。
【００２２】
更に、プロセッサ３６は、ＶＮＦ＃１、ＶＮＦ＃２及びＶＮＦ＃３の配置順序としてトポロジ構成を決定する。プロセッサ３６は、図３に示すようにサービスチェイン２０の最前段にＶＮＦ＃１、ＶＮＦ＃１の次段にＶＮＦ＃２、ＶＮＦ＃２の次段にＶＮＦ＃３を配置し、更に、最前段のＶＮＦ＃１の前段に集約ＬＢ１３Ａを配置するトポロジ構成を決定する。尚、トポロジ構成は、最前段に集約ＬＢ１３Ａ内のＬＢ１Ａ及びＬＢ１Ｂ、次段にＶＮＦ＃１内のＦＷ１Ａ〜ＦＷ１Ｄ、その次段にＶＮＦ＃２内のＩＤＳ１Ａ〜ＩＤＳ１Ｃ、その次段にＶＮＦ＃３内のＰｒｏｘｙ１Ａ〜Ｐｒｏｘｙ１Ｃを配置する構成である。
【００２３】
プロセッサ３６は、集約ＬＢ１３Ａから複数のＶＮＦ群２１の内、終端のＶＮＦ群２１内の各ＶＮＦ１２までのトラヒックが分散する、集約ＬＢ１３Ａのトラヒック量の分配割合及びＶＮＦ１２のトラヒック割合を決定する。プロセッサ３６は、複数のＶＮＦ群２１の内、終端となるＶＮＦ群２１内のＶＮＦ１２を決定すると共に、集約ＬＢ１３Ａから各終端のＶＮＦ１２までの最適経路を決定する。
【００２４】
プロセッサ３６は、集約ＬＢ１３ＡがＬ４レベルのＬＢであるため、集約ＬＢ１３ＡからＬ４レベルが終端となる終端のＶＮＦ群２１として、例えば、ＶＮＦ＃３のＰｒｏｘｙ１Ａ〜Ｐｒｏｘｙ１Ｃと決定する。集約ＬＢ１３Ａの「ＬＢ１Ａ」は、Ｐｒｏｘｙ１Ａ〜Ｐｒｏｘｙ１Ｃの３本の経路を決定する。更に、集約ＬＢ１３Ａの「ＬＢ１Ｂ」も、Ｐｒｏｘｙ１Ａ〜Ｐｒｏｘｙ１Ｃの３本の経路を決定する。集約ＬＢ１３Ａの「ＬＢ１Ａ」及び「ＬＢ１Ｂ」は、終端のＶＮＦ１２の台数分、トラヒックを分散できる終端型のＬＢである。例えば、ＬＢ１Ａは、終端のＶＮＦ群２１がＰｒｏｘｙ１Ａ〜Ｐｒｏｘｙ１Ｃの３台のため、トラヒックを３経路に分散できる。
【００２５】
プロセッサ３６は、集約ＬＢ１３Ａの「ＬＢ１Ａ」から終端のＶＮＦ１２、すなわちＰｒｏｘｙ１Ａ〜Ｐｒｏｘｙ１Ｃまでの３経路で、例えば、ダイクストラ法等の最短経路コスト法において計算済み経路上のリンクコストを高くして最短経路計算を行う。プロセッサ３６は、ＬＢ１Ａから終端のＶＮＦ１２までの３経路の最短経路計算で、ＶＮＦ＃１及びＶＮＦ＃２を経由する経路が分散した最適経路Ｒ１、Ｒ３及びＲ５を決定する。プロセッサ３６は、集約ＬＢ１３Ａの「ＬＢ１Ｂ」から終端のＶＮＦ１２、すなわちＰｒｏｘｙ１Ａ〜Ｐｒｏｘｙ１Ｃまでの３経路で、最短経路コスト法の利用とリンクコスト加算を行う。そして、プロセッサ３６は、その計算によってＶＮＦ＃１及びＶＮＦ＃２を経由する経路が分散した最適経路Ｒ２、Ｒ４及びＲ６を決定する。
【００２６】
プロセッサ３６は、各最適経路Ｒ１〜Ｒ６に配置するＶＮＦ群２１の内、ＶＮＦ１２のインスタンス数が最大数のＶＮＦ群２１の各ＶＮＦ１２のトラヒック量が均等に分散すべく、集約ＬＢ１３Ａから各最前段のＶＮＦ１２へのトラヒック量の分配割合を決定する。プロセッサ３６は、ＶＮＦ＃１〜ＶＮＦ＃３の内、最大個数のＶＮＦ１２、すなわちＶＮＦ＃１（ＦＷ１Ａ〜ＦＷ１Ｄ）を特定する。プロセッサ３６は、６本の最適経路の内、ＶＮＦ＃１のＦＷ１Ａ〜ＦＷ１Ｄのトラヒック量が均等になるように集約ＬＢ１３Ａ「ＬＢ１Ａ」及び「ＬＢ１Ｂ」からＶＮＦ＃１内のＦＷ１Ａ〜ＦＷ１Ｄに分配する分配割合を算出する。サービスチェイン２０全体のトラヒック量を１とした場合、ＬＢ１ＡからＦＷ１Ａへの分配割合は全体トラヒック量の１／４、ＬＢ１ＡからＦＷ１Ｂへの分配割合は全体トラヒック量の１／８、ＬＢ１ＡからＦＷ１Ｃへの分配割合は全体トラヒック量の１／８となる。更に、ＬＢ１ＢからＦＷ１Ｄへの分配割合は全体トラヒック量の１／４、ＬＢ１ＢからＦＷ１Ｂへの分配割合は全体トラヒック量の１／８、ＬＢ１ＢからＦＷ１Ｃへの分配割合は全体トラヒック量の１／８となる。その結果、ＦＷ１Ａ〜ＦＷ１Ｄは、各々、１／４のトラヒック量が均等に割り当てられることになる。
【００２７】
プロセッサ３６は、最適経路毎に各ＶＮＦ１２へのトラヒック量のトラヒック割合が最適となるように各ＶＮＦ１２から次段のＶＮＦ１２へのトラヒック割合を算出する。プロセッサ３６は、集約ＬＢ１３ＡのＬＢ１Ａ及びＬＢ１Ｂから各ＶＮＦ＃１内の各ＦＷ１Ａ〜ＦＷ１Ｄのトラヒック量の分配割合を決定した後、先に決定した最適経路Ｒ１〜Ｒ６上の転送経路を決定する。更に、プロセッサ３６は、その転送経路上の各ＶＮＦ１２への分配割合を決定する。転送経路は、最適経路の内、ＶＮＦ１２が次段のＶＮＦ１２にトラヒックを転送する経路である。
【００２８】
集約ＬＢ１３ＡのＬＢ１Ａの転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックをＦＷ１Ａに転送する経路、Ｐｒｏｘｙ１Ｂ宛のトラヒックをＦＷ１Ｂに転送する経路、Ｐｒｏｘｙ１Ｃ宛のトラヒックをＦＷ１Ｃに転送する経路となる。集約ＬＢ１３ＡのＬＢ１Ｂの転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックをＦＷ１Ｂに転送する経路、Ｐｒｏｘｙ１Ｂ宛のトラヒックをＦＷ１Ｃに転送する経路、Ｐｒｏｘｙ１Ｃ宛のトラヒックをＦＷ１Ｄに転送する経路となる。
【００２９】
更に、ＦＷ１Ａの転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックをＩＤＳ１Ａに転送する経路となる。ＦＷ１Ｂの転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックをＩＤＳ１Ａに転送する経路及び、Ｐｒｏｘｙ１Ｂ宛のトラヒックをＩＤＳ１Ｂに転送する経路となる。ＦＷ１Ｃの転送経路は、Ｐｒｏｘｙ１Ｂ宛のトラヒックをＩＤＳ１Ｂに転送する経路及び、Ｐｒｏｘｙ１Ｃ宛のトラヒックをＩＤＳ１Ｃに転送する経路となる。ＦＷ１Ｄの転送経路は、Ｐｒｏｘｙ１Ｃ宛のトラヒックをＩＤＳ１Ｃに転送する経路となる。
【００３０】
更に、ＩＤＳ１Ａの転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックをＰｒｏｘｙ１Ａに転送する経路となる。ＩＤＳ１Ａの転送経路は、Ｐｒｏｘｙ１Ｂ宛のトラヒックをＰｒｏｘｙ１Ｂに転送する経路となる。ＩＤＳ１Ｃの転送経路は、Ｐｒｏｘｙ１Ｃ宛のトラヒックをＰｒｏｘｙ１Ｃに転送する経路となる。更に、プロセッサは、各転送経路の各ＶＮＦ１２のトラヒック量が最適となるように各ＶＮＦ１２のトラヒック割合を決定する。尚、各ＶＮＦ１２のトラヒック割合は、例えば、Weighted  Round  Robin方式やWeighted  HASH振り分け方式等で算出する。
【００３１】
プロセッサ３６は、ＶＮＦ＃１からＶＮＦ＃２までの転送経路毎にトラヒック割合を決定する。ＦＷ１ＡからＩＤＳ１Ａへの転送経路のトラヒック割合は全体トラヒック量の２／８、ＦＷ１ＢからＩＤＳ１Ａへの転送経路のトラヒック割合は全体トラヒック量の１／８、ＦＷ１ＢからＩＤＳ１Ｂへの転送経路のトラヒック割合は全体トラヒック量の１／８となる。ＦＷ１ＣからＩＤＳ１Ｂへの転送経路のトラヒック割合は全体トラヒック量の１／８、ＦＷ１ＣからＩＤＳ１Ｃへの転送経路のトラヒック割合は全体トラヒック量の１／８、ＦＷ１ＤからＩＤＳ１Ｃへの転送経路のトラヒック割合は全体トラヒック量の２／８となる。
【００３２】
更に、プロセッサ３６は、ＶＮＦ＃２からＶＮＦ＃３までの転送経路毎にトラヒック割合を決定する。例えば、ＩＤＳ１ＡからＰｒｏｘｙ１Ａへの転送経路のトラヒック割合は３／８、ＩＤＳ１ＢからＰｒｏｘｙ１Ｂへの転送経路のトラヒック割合は２／８、ＩＤＳ１ＣからＰｒｏｘｙ１Ｃへの転送経路のトラヒック割合は３／８となる。尚、説明の便宜上、ＶＮＦ＃２からＶＮＦ＃３までの転送経路のトラヒック割合は、例えば、３／８、２／８及び３／８としたが、転送経路毎にトラヒック割合を均等になるように調整しても良い。
【００３３】
プロセッサ３６は、集約ＬＢ１３Ａ及びＶＮＦ１２の数、最適経路Ｒ１〜Ｒ６及び転送経路に基づき、集約ＬＢ１３Ａ及びＶＮＦ１２を汎用サーバ２Ｂ等の仮想領域に配置して機能を起動させる。プロセッサ３６は、決定した集約ＬＢ１３Ａの分配割合を配置された集約ＬＢ１３Ａに設定する。プロセッサ３６は、決定した各ＶＮＦ１２のトラヒック割合を配置されたＶＮＦ１２に設定する。その結果、仮想環境下で構成要求のサービスチェイン２０を構築できる。
【００３４】
管理サーバ３は、集約ＬＢ１３Ａ、集約ＬＢ１３Ａから終端ＶＮＦ１２までの最適経路、集約ＬＢ１３Ａの分配割合及び各ＶＮＦ１２のトラヒック割合に基づき、キャリアＮＷ２上の指定の汎用サーバ２Ｂの仮想領域に構成要求のサービスチェイン２０を構築する。
【００３５】
次にサービスチェインシステム１について説明する。図４は、サービスチェイン構築処理に関わる管理サーバ３の処理動作の一例を示すフローチャートである。図４において管理サーバ３内のプロセッサ３６は、端末装置４から構成要求を受信したか否かを判定する（ステップＳ１１）。プロセッサ３６は、構成要求を受信した場合（ステップＳ１１肯定）、構成要求内のＶＮＦ群２１内のＶＮＦ１２のインスタンス数及びＶＮＦ群２１毎のＬＢ１３のインスタンス数に基づき、集約ＬＢ１３Ａの数を決定する（ステップＳ１２）。尚、プロセッサ３６は、構成要求内の上位レベルのＶＮＦ群２１の内、例えば、ＶＮＦ１２のインスタンス数が最大数のＶＮＦ群２１を特定し、特定されたＶＮＦ群２１のＬＢインスタンス数を集約ＬＢ１３Ａの数と決定する。更に、プロセッサ３６は、構成要求内のＶＮＦ群２１に基づき、図３に示すように、集約ＬＢ１３Ａの集約ＬＢ群２２及びＶＮＦ群２１のトポロジ構成を決定する（ステップＳ１３）。
【００３６】
プロセッサ３６は、サービスチェイン２０の最前段の集約ＬＢ群２２のトラヒック割合（送信量）を決定する（ステップＳ１４）。尚、集約ＬＢ群２２のトラヒック割合（送信量）は、図３に示すように、ＬＢ１Ａが全体トラヒック量の１／２及びＬＢ１Ｂが全体トラヒック量の１／２を送信することになる。プロセッサ３６は、最前段の集約ＬＢ群２２の終端宛先となる終端のＶＮＦ群２１を特定する（ステップＳ１５）。尚、終端のＶＮＦ群２１は、例えば、図３に示すＶＮＦ＃３に相当し、終端のＶＮＦ１２はＰｒｏｘｙ１Ａ〜Ｐｒｏｘｙ１Ｃとなる。
【００３７】
プロセッサ３６は、集約ＬＢ群２２と終端のＶＮＦ群２１との間の全経路が分散する転送経路を決定する（ステップＳ１６）。尚、全経路は、図３に示すように、ＬＢ１ＡとＰｒｏｘｙ１Ａとの間、ＬＢ１ＡとＰｒｏｘｙ１Ｂとの間、ＬＢ１ＡとＰｒｏｘｙ１Ｃとの間、ＬＢ１ＢとＰｒｏｘｙ１Ａとの間、ＬＢ１ＢとＰｒｏｘｙ１Ｂとの間、ＬＢ１ＢとＰｒｏｘｙ１Ｃとの間の転送経路となる。プロセッサ３６は、各転送経路のトラヒック割合を決定する（ステップＳ１７）。
【００３８】
プロセッサ３６は、集約ＬＢ群２２及び転送経路のトラヒック割合に基づき、終端のＶＮＦ群２１内の各ＶＮＦ１２のトラヒック割合（受信量）を決定する（ステップＳ１８）。尚、終端のＶＮＦ群２１はＶＮＦ＃３のため、Ｐｒｏｘｙ１Ａは全体トラヒック量の３／８、Ｐｒｏｘｙ１Ｂは全体トラヒック量の２／８、Ｐｒｏｘｙ１Ｃは全体トラヒック量の３／８を受信することになる。
【００３９】
そして、プロセッサ３６は、集約ＬＢ群２２の分配割合を決定する（ステップＳ１９）。更に、プロセッサ３６は、集約ＬＢ群２２及びＶＮＦ群２１の転送経路及びトラヒック割合を決定した後（ステップＳ２０）、集約ＬＢ群２２及びＶＮＦ群２１を汎用サーバ２Ｂ上の仮想領域に配置して、その機能を起動する（ステップＳ２１）。更に、プロセッサ３６は、集約ＬＢ群２２の分配割合を仮想領域上の集約ＬＢ１３Ａに設定すると共に、ＶＮＦ群２１のトラヒック割合を仮想領域上の各ＶＮＦ１２に設定し（ステップＳ２２）、図４に示す処理動作を終了する。その結果、構成要求に応じたサービスチェイン２０を仮想領域上に配置できる。プロセッサ３６は、構成要求を受信しなかった場合（ステップＳ１１否定）、図４に示す処理動作を終了する。
【００４０】
上記例では、サービスチェイン２０の最前段に複数の集約ＬＢ１３Ａを配置し、集約ＬＢ１３Ａから終端のＶＮＦ群２１までのトラヒック量が均等になるように集約ＬＢ群２２の分配割合及び各ＶＮＦ１２のトラヒック割合を決定する。その結果、ＬＢ１３の数を少なくすることで転送遅延を抑制できると共に、有限な仮想領域の資源を節減できる。
【００４１】
しかしながら、サービスチェイン２０内でＶＮＦ１２を追加するスケールアウトや、ＶＮＦ１２を削除するスケールインが生じた場合でも、ＶＮＦ１２の前段に配置する集約ＬＢ群２２の分配割合、各ＶＮＦ１２のトラヒック割合や転送経路を変更する必要がある。例えば、図３に示すサービスチェイン２０内のＶＮＦ＃１にＦＷ１Ｅを追加する場合、ＬＢ１Ａ及びＬＢ１Ｂの分配割合、ＦＷ１Ｃ〜ＦＷ１Ｅの転送経路等を変更する必要がある。例えば、ＦＷ１Ｄでログ出力等の処理を実行して同時に設定変更ができず、ＦＷ１Ｄの設定変更が遅れ、ＬＢ１Ｂでの設定変更が先行したとする。この際、ＬＢ１Ｂで分配したＰｒｏｘｙ１Ｂ宛のトラヒックがＦＷ１Ｄに到着したとしても、ＦＷ１ＤはＰｒｏｘｙ２Ｂ宛のトラヒックの転送経路が登録されていないため、そのトラヒックを廃棄することになる。その結果、複数のＶＮＦ１２の設定変更を同期させることが困難であるため、全ての設定変更が完了するまでには時間差が生じ、各ＶＮＦ１２でトラヒック廃棄による通信断が生じる。また、設定変更完了の時間差によるトラヒック廃棄を回避すべく、複数の経路を１経路ずつ順番に設定変更するＭａｋｅ  Ｂｅｆｏｒｅ  Ｂｒｅａｋ方法で経路変更することも考えられる。しかしながら、サービスチェイン内の経路構成が複雑になると、全ての経路の設定変更を完了するまでに多大な時間を要する。
【００４２】
そこで、このような事態に対処すべく、サービスチェイン２０内でスケールアウトやスケールインが生じた場合でも通信断を抑制しながらスケールアウト及びスケールインに対応できるサービスチェインシステム１の実施の形態について説明する。尚、上記例のサービスチェインシステム１と同一の構成には同一符号を付すことで、その重複する構成及び動作の説明については省略する。
【実施例】
【００４３】
図５は、本実施例のサービスチェイン２０Ａの配置構成の一例を示す説明図である。図５に示すサービスチェイン２０Ａは、ＶＮＦ＃１〜ＶＮＦ＃３の複数のＶＮＦ群２１と、複数のＶＮＦ群２１の内、最前段のＶＮＦ＃１の前段に配置された集約ＬＢ群２２とを有する。ＶＮＦ＃１は、例えば、ＦＷ１Ａ〜ＦＷ１Ｄを有する。ＶＮＦ＃２は、例えば、ＩＤＳ１Ａ〜ＩＤＳ１Ｃを有する。ＶＮＦ＃３は、例えば、Ｐｒｏｘｙ１Ａ〜Ｐｒｏｘｙ１Ｃを有する。尚、ＶＮＦ＃３は、終端のＶＮＦ群２１である。集約ＬＢ群２２はＬ４終端型ＬＢ１３Ａ、ＶＮＦ＃３はＬ３終端型ＶＮＦ１２、ＶＮＦ＃１及びＶＮＦ＃２はＬ３中継型ＶＮＦ１２である。
【００４４】
図６は、本実施例の管理サーバ３内のプロセッサ３６の機能構成の一例を示す説明図である。図６に示すプロセッサ３６は、第１の決定部４１と、第２の決定部４２と、第３の決定部４３と、設定部４４と、第１の特定部４５と、第２の特定部４６と、抽出部４７と、比較部４８とを有する。補助記憶装置３４には、設定方法に関わる処理プログラムが記憶されているものとする。プロセッサ３６は、設定方法に関わる処理プログラムを補助記憶装置３４から読み出す。そして、プロセッサ３６は、読み出した処理プログラムに基づき、プロセッサ３６上で第１の決定部４１、第２の決定部４２、第３の決定部４３、設定部４４、第１の特定部４５、第２の特定部４６、抽出部４７及び比較部４８を機能として実行する。第１の決定部４１は、構成要求に応じてサービスチェイン２０Ａの集約ＬＢ群２２の数及びトポロジ構成を決定する。
【００４５】
第２の決定部４２は、サービスチェイン２０Ａのトポロジ構成から終端のＶＮＦ群２１及び集約ＬＢ群２２を特定し、集約ＬＢ群２２及びＶＮＦ群２１内の転送経路及びトラヒック割合を決定する。集約ＬＢ群２２及びＶＮＦ群２１の転送経路のトラヒック割合は、転送経路上のＶＮＦ群２１で平均化できるトラヒック量である。
【００４６】
第３の決定部４３は、集約ＬＢ群２２及びＶＮＦ群２１の転送経路及びトラヒック割合に基づき、集約ＬＢ群２２の分配割合、ＶＮＦ群２１内の転送経路及びトラヒック割合を決定する。設定部４４は、トポロジ構成に基づき、仮想領域上にＶＮＦ群２１及び集約ＬＢ群２２を配置して起動し、配置されたＶＮＦ群２１及び集約ＬＢ群２２に転送経路及びトラヒック割合を設定する。設定部４４は、配置部４４Ａと、割合設定部４４Ｂとを有する。配置部４４Ａは、トポロジ構成に基づき、仮想領域上にＶＮＦ群２１及び集約ＬＢ群２２を配置して起動する。割合設定部４４Ｂは、配置されたＶＮＦ群２１及び集約ＬＢ群２２に転送経路及びトラヒック割合を設定する。
【００４７】
第１の特定部４５は、サービスチェイン２０Ａのトポロジ構成から終端のＶＮＦ群２１を特定する。尚、終端のＶＮＦ群２１は、例えば、図５に示すＬ３終端型ＶＮＦ１２のＰｒｏｘｙ１Ａ〜Ｐｒｏｘｙ１Ｃ等のＶＮＦ＃３である。第２の特定部４６は、サービスチェイン２０Ｂのトポロジ構成に基づき、集約ＬＢ群２２から終端のＶＮＦ群２１の各終端のＶＮＦ１２までの転送経路上で終端ＶＮＦ１２宛のトラヒックを中継する各ＶＮＦ１２を特定する。尚、終端のＶＮＦ１２は、例えば、図５に示すＰｒｏｘｙ１Ａ〜Ｐｒｏｘｙ１Ｃ、転送経路上の各ＶＮＦ１２は、例えば、ＬＢ１Ａ、ＬＢ１Ｂ、ＦＷ１Ａ〜ＦＷ１Ｄ及びＩＤＳ１Ａ〜ＩＤＳ１Ｃ等である。
【００４８】
抽出部４７は、トポロジ構成に基づき、転送経路上のＶＮＦ１２毎に、終端ＶＮＦ１２宛のトラヒックを出力する次段の出力先ＶＮＦ１２を抽出する。抽出部４７は、転送経路上のＶＮＦ１２毎に終端ＶＮＦ１２までの経路が最短等の最適経路となる転送経路の出力先ＶＮＦ１２を抽出する。抽出部４７は、例えば、ＦＷ１Ａに着目した場合、Ｐｒｏｘｙ１Ａ宛のトラヒックを転送する出力先ＶＮＦ１２としてＩＤＳ１Ａ、Ｐｒｏｘｙ１Ｂ宛トラヒックを転送する出力先ＶＮＦ１２としてＩＤＳ１Ｂを抽出する。更に、抽出部４７は、Ｐｒｏｘｙ１Ｃ宛のトラヒックを転送する出力先ＶＮＦ１２としてＩＤＳ１Ｃを抽出する。また、抽出部４７は、例えば、ＦＷ１Ｃに着目した場合、Ｐｒｏｘｙ１Ａ宛のトラヒックを転送する出力先ＶＮＦ１２としてＩＤＳ１Ａ、Ｐｒｏｘｙ１Ｂ宛のトラヒックを転送する出力先ＶＮＦ１２としてＩＤＳ１Ｂを抽出する。更に、抽出部４７は、Ｐｒｏｘｙ１Ｃ宛のトラヒックを転送する出力先ＶＮＦ１２としてＩＤＳ１Ｃを抽出する。また、抽出部４７は、例えば、ＩＤＳ１Ｃに着目した場合、Ｐｒｏｘｙ１Ａ宛のトラヒックを転送する出力先ＶＮＦ１２としてＰｒｏｘｙ１Ａ、Ｐｒｏｘｙ１Ｂ宛のトラヒックを転送する出力先ＶＮＦ１２としてＰｒｏｘｙ１Ｂを抽出する。更に、抽出部４７は、Ｐｒｏｘｙ１Ｃ宛のトラヒックを転送する出力先ＶＮＦ１２としてＰｒｏｘｙ１Ｃを抽出する。抽出部４７は、終端ＶＮＦ１２宛のトラヒックを中継する転送経路上のＶＮＦ１２毎に、全ての終端ＶＮＦ１２宛のトラヒックを転送する予備の出力先ＶＮＦ１２を含む予備の転送経路を予備メモリ５２に登録する。
【００４９】
主記憶装置３５は、運用中メモリ５１と、予備メモリ５２とを有する。運用中メモリ５１は、サービスチェイン２０Ａ内のＶＮＦ１２毎に終端ＶＮＦ１２宛のトラヒックを転送する運用中の出力先ＶＮＦ１２を含む運用中の転送経路を登録する。これに対して、予備メモリ５２は、ＶＮＦ１２毎に予備の転送先ＶＮＦ１２を含む予備の転送経路を登録する。
【００５０】
比較部４８は、抽出部４７にて抽出されたＶＮＦ１２毎に終端ＶＮＦ１２宛のトラヒックを転送する予備の出力先ＶＮＦ１２を含む予備の転送経路を予備メモリ５２に登録した後、予備メモリ５２及び運用中メモリ５１内のＶＮＦ１２毎の転送経路同士を比較する。比較部４８は、その比較結果に基づき、予備メモリ５２内に運用中の転送経路が存在する場合、その運用中の転送経路の終端ＶＮＦ１２宛の出力先ＶＮＦ１２を削除する。その結果、予備メモリ５２には、ＶＮＦ１２毎に運用中の転送経路を除く、予備の転送経路を登録している。
【００５１】
設定部４４は、予備メモリ５２に登録中の転送経路上のＶＮＦ１２毎の予備の転送経路を該当ＶＮＦ１２に設定する。その結果、終端ＶＮＦ１２宛のトラヒックを中継する転送経路上のＶＮＦ１２は、予備の転送経路が設定された場合でも、受信トラヒックの宛先が運用中の転送経路に該当する場合、その受信トラヒックを運用中の転送経路に関わる出力先ＶＮＦ１２に転送する。また、転送経路上のＶＮＦ１２は、受信トラヒックの宛先が運用中の転送経路に該当しない場合でも、その宛先が予備の転送経路に該当する場合、その受信トラヒックを予備の転送経路に関わる出力先ＶＮＦ１２に転送する。つまり、ＶＮＦ１２は、運用中の転送経路の他に予備の転送経路も設定しているため、全ての終端ＶＮＦ１２宛のトラヒックの到達性を保証していることになる。
【００５２】
例えば、ＦＷ１Ａの運用中の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを出力先ＶＮＦ１２としてＩＤＳ１Ａに転送する経路とする。更に、ＦＷ１Ａの予備の転送経路は、Ｐｒｏｘｙ１Ｂ宛のトラヒックを出力先ＶＮＦ１２としてＩＤＳ１Ｂに転送する経路、Ｐｒｏｘｙ１Ｃ宛のトラヒックをＩＤＳ１Ｃに転送する経路とする。この際、ＦＷ１Ａは、Ｐｒｏｘｙ１Ａ宛のトラヒックを受信した場合、Ｐｒｏｘｙ１Ａ宛のトラヒックを運用中の転送経路に関わる出力先ＶＮＦ１２であるＩＤＳ１Ａに転送する。また、ＦＷ１Ａは、Ｐｒｏｘｙ１Ｂ宛のトラヒックを受信した場合、Ｐｒｏｘｙ１Ｂ宛のトラヒックを予備の転送経路に関わる出力先ＶＮＦ１２であるＩＤＳ１Ｂに転送する。また、ＦＷ１Ａは、Ｐｒｏｘｙ１Ｃ宛のトラヒックを受信した場合、Ｐｒｏｘｙ１Ｃ宛のトラヒックを予備の転送経路に関わる出力先ＶＮＦ１２であるＩＤＳ１Ｃに転送する。ＦＷ１Ａでは、運用中の転送経路は勿論のこと、予備の転送経路も使用可能にし、全てのＰｒｏｘｙ１Ａ〜Ｐｒｏｘｙ１Ｃ宛のトラヒック転送を保証できるため、設定変更完了までの時間差によるトラヒック廃棄を回避できる。
【００５３】
また、ＦＷ１Ｃの運用中の転送経路は、Ｐｒｏｘｙ１Ｂ宛のトラヒックを出力先ＶＮＦ１２となるＩＤＳ１Ｂに転送する経路と、Ｐｒｏｘｙ１Ｃ宛のトラヒックを出力先ＶＮＦ１２となるＩＤＳ１Ｃに転送する経路とする。更に、ＦＷ１Ｃの予備の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを出力先ＶＮＦ１２としてＩＤＳ１Ａに転送する経路とする。この際、ＦＷ１Ｃは、Ｐｒｏｘｙ１Ｂ宛のトラヒックを受信した場合、Ｐｒｏｘｙ１Ｂ宛のトラヒックを運用中の転送経路に関わる出力先ＶＮＦ１２であるＩＤＳ１Ｂに転送する。また、ＦＷ１Ｃは、Ｐｒｏｘｙ１Ａ宛のトラヒックを受信した場合、Ｐｒｏｘｙ１Ａ宛のトラヒックを予備の転送経路に関わる出力先ＶＮＦ１２であるＩＤＳ１Ａに転送する。ＦＷ１Ｃでも、運用中の転送経路は勿論のこと、予備の転送経路も使用可能にし、全てのＰｒｏｘｙ１Ａ〜Ｐｒｏｘｙ１Ｃ宛のトラヒック転送を保証できるため、設定変更完了までの時間差によるトラヒック廃棄を回避できる。
【００５４】
図７は、ＦＷ１Ｅ追加前の運用中設定情報及び予備設定情報の一例を示す説明図である。尚、説明の便宜上、図７に示す運用中設定情報及び予備設定情報は、図５に示すＦＷ１Ｅ追加前のサービスチェインシステム２０Ａの運用中設定情報及び予備設定情報である。
【００５５】
図７に示す運用中設定情報は、ＬＢ１Ａ及びＬＢ１Ｂの運用中の分配割合と、ＬＢ１Ａ及びＬＢ１Ｂ、ＦＷ１Ａ〜ＦＷ１Ｄ、ＩＤＳ１Ａ〜ＩＤＳ１Ｃの運用中の転送経路とを有する。尚、運用中設定情報は、運用中メモリ５１に記憶されるものとする。ＬＢ１Ａの運用中の分配割合は、全体トラヒック量の２／８、つまり、ＬＢ１Ａが受信するトラヒック量の２／４をＰｒｏｘｙ１Ａ宛のＦＷ１Ａに転送することになる。ＬＢ１Ａの運用中の分配割合は、全体トラヒック量の１／８、つまり、ＬＢ１Ａが受信するトラヒック量の１／４をＰｒｏｘｙ１Ｂ宛のＦＷ１Ｂに転送することになる。更に、ＬＢ１Ａの運用中の分配割合は、全体トラヒック量の１／８、つまり、ＬＢ１Ａが受信するトラヒック量の１／４をＰｒｏｘｙ１Ｃ宛のＦＷ１Ｃに転送することになる。
【００５６】
ＬＢ１Ｂの運用中の分配割合は、全体トラヒック量の１／８、つまり、ＬＢ１Ｂが受信するトラヒック量の１／４をＰｒｏｘｙ１Ａ宛のＦＷ１Ｂに転送することになる。ＬＢ１Ｂの運用中の分配割合は、全体トラヒック量の１／８、つまり、ＬＢ１Ｂが受信するトラヒック量の１／４をＰｒｏｘｙ１Ｂ宛のＦＷ１Ｃに転送することになる。更に、ＬＢ１Ｂの運用中の分配割合は、全体トラヒック量の２／８、つまり、ＬＢ１Ｂが受信するトラヒック量の２／４をＰｒｏｘｙ１Ｃ宛のトラヒックをＦＷ１Ｄに転送することになる。
【００５７】
ＬＢ１Ａの運用中の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＦＷ１Ａに転送する経路と、Ｐｒｏｘｙ１Ｂ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＦＷ１Ｂに転送する経路とを有する。更に、ＬＢ１Ａの運用中の転送経路は、Ｐｒｏｘｙ１Ｃ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＦＷ１Ｃに転送する経路を有する。
【００５８】
ＬＢ１Ｂの運用中の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＦＷ１Ｂに転送する経路と、Ｐｒｏｘｙ１Ｂ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＦＷ１Ｃに転送する経路とを有する。ＬＢ１Ｂの運用中の転送経路は、Ｐｒｏｘｙ１Ｃ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＦＷ１Ｄに転送する経路を有する。
【００５９】
ＦＷ１Ａの運用中の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＩＤＳ１Ａに転送する経路を有する。ＦＷ１Ｂの運用中の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＩＤＳ１Ａに転送する経路と、Ｐｒｏｘｙ１Ｂ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＩＤＳ１Ｂに転送する経路とを有する。ＦＷ１Ｃの運用中の転送経路は、Ｐｒｏｘｙ１Ｂ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＩＤＳ１Ｂに転送する経路と、Ｐｒｏｘｙ１Ｃ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＩＤＳ１Ｃに転送する経路とを有する。ＦＷ１Ｄの運用中の転送経路は、Ｐｒｏｘｙ１Ｃ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＩＤＳ１Ｃに転送する経路を有する。尚、ＦＷ１Ｅの運用中の転送経路は、ＦＷ１Ｅの追加前の状態であるため、「なし」である。
【００６０】
ＩＤＳ１Ａの運用中の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＰｒｏｘｙ１Ａに転送する経路を有する。ＩＤＳ１Ｂの運用中の転送経路は、Ｐｒｏｘｙ１Ｂ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＰｒｏｘｙ１Ｂに転送する経路を有する。ＩＤＳ１Ｃの運用中の転送経路は、Ｐｒｏｘｙ１Ｃ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＰｒｏｘｙ１Ｃに転送する経路を有する。
【００６１】
また、図７に示す予備設定情報は、ＬＢ１Ａ及びＬＢ１Ｂ、ＦＷ１Ａ〜ＦＷ１Ｅ及びＩＤＳ１Ａ〜ＩＤＳ１Ｃの予備の転送経路を有する。尚、予備設定情報は、予備メモリ５２に記憶されているものとする。ＬＢ１Ａ及びＬＢ１Ｂの予備の転送経路は、運用中の出力先ＶＮＦ１２と同一であるため、削除されている。ＦＷ１Ａの予備の転送経路は、Ｐｒｏｘｙ１Ｂ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ｂに転送する経路と、Ｐｒｏｘｙ１Ｃ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ｃに転送する経路とを有する。尚、ＦＷ１Ａの運用中の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックをＩＤＳ１Ａに転送する経路であるため、ＦＷ１Ａの予備の転送経路から削除している。
【００６２】
ＦＷ１Ｂの予備の転送経路は、Ｐｒｏｘｙ１Ｃ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ｃに転送する経路を有する。尚、ＦＷ１Ｂの運用中の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックをＩＤＳ１Ａ経由で送信する経路及び、Ｐｒｏｘｙ１Ｂ宛のトラヒックをＩＤＳ１Ｂに転送する経路であるため、ＦＷ１Ｂの予備の転送経路から削除している。ＦＷ１Ｃの予備の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ａに転送する経路を有する。尚、ＦＷ１Ｃの運用中の転送経路は、Ｐｒｏｘｙ１Ｂ宛のトラヒックをＩＤＳ１Ｂに転送する経路及び、Ｐｒｏｘｙ１Ｃ宛のトラヒックをＩＤＳ１Ｃに転送する経路であるため、ＦＷ１Ｃの予備の転送経路から削除している。ＦＷ１Ｄの予備の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ａに転送する経路と、Ｐｒｏｘｙ１Ｂ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ｂに転送する経路とを有する。尚、ＦＷ１Ｄの運用中の転送経路は、Ｐｒｏｘｙ１Ｃ宛のトラヒックをＩＤＳ１Ｃに転送する経路であるため、ＦＷ１Ｃの予備の転送経路から削除している。ＦＷ１Ｅの予備の転送経路は、ＦＷ１Ｅの追加前の状態であるため、「なし」とする。
【００６３】
ＩＤＳ１Ａの予備の転送経路は、Ｐｒｏｘｙ１Ｂ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ｂに転送する経路と、Ｐｒｏｘｙ１Ｃ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ｃに転送する経路とを有する。尚、ＩＤＳ１Ａの運用中の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックをＩＤＳ１Ａに転送する経路であるため、ＩＤＳ１Ａの予備の転送経路から削除している。ＩＤＳ１Ｂの予備の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ａに転送する経路と、Ｐｒｏｘｙ１Ｃ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ｃに転送する経路とを有する。尚、ＩＤＳ１Ｂの運用中の転送経路は、Ｐｒｏｘｙ１Ｂ宛のトラヒックをＩＤＳ１Ｂに転送する経路であるため、ＩＤＳ１Ｂの予備の転送経路から削除している。ＩＤＳ１Ｃの予備の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを予備の出力先ＶＮＦ１２としてＰｒｏｘｙ１Ａに転送する経路と、Ｐｒｏｘｙ１Ｂ宛のトラヒックを予備の出力先ＶＮＦ１２としてＰｒｏｘｙ１Ｂに転送する経路とを有する。尚、ＩＤＳ１Ｃの運用中の転送経路は、Ｐｒｏｘｙ１Ｃ宛のトラヒックをＩＳＤ１Ｃに転送する経路であるため、ＩＤＳ１Ｃの予備の転送経路から削除している。
【００６４】
管理サーバ３は、例えば、サービスチェイン２０Ａ内のＶＮＦ＃１内の負荷増加を検出した場合、ＶＮＦ＃１にＦＷ１Ｅを追加するスケールアウトを実行する。図８は、ＦＷ１Ｅ追加後のサービスチェイン２０Ｂの配置構成の一例を示す説明図である。尚、図５に示すサービスチェイン２０Ａと同一の構成には同一符号を付すことで、その重複する構成及び動作の説明については省略する。
【００６５】
管理サーバ３内のプロセッサ３６は、ＦＷ１Ｅ追加の構成要求を検出した場合、図４に示すサービスチェイン構築処理を実行する。その結果、ＦＷ１Ｅ追加後の運用中設定情報及び予備設定情報を運用中メモリ５１及び予備メモリ５２に更新することになる。図９は、ＦＷ１Ｅ追加後の運用中設定情報及び予備設定情報の一例を示す説明図である。
【００６６】
図９に示す運用中設定情報のＬＢ１Ａの運用中の分配割合は、全体トラヒック量の２／１０、つまり、ＬＢ１Ａが受信するトラヒック量の２／５をＰｒｏｘｙ１Ａ宛のＦＷ１Ａに転送することになる。ＬＢ１Ａの運用中の分配割合は、全体トラヒック量の２／１０、つまり、ＬＢ１Ａが受信するトラヒック量の２／５をＰｒｏｘｙ１Ｂ宛のＦＷ１Ｂに転送することになる。更に、ＬＢ１Ａの運用中の分配割合は、全体トラヒック量の１／１０、つまり、ＬＢ１Ａが受信するトラヒック量の１／５をＰｒｏｘｙ１Ｃ宛のＦＷ１Ｃに転送することになる。
【００６７】
ＬＢ１Ｂの運用中の分配割合は、全体トラヒック量の１／１０、つまり、ＬＢ１Ｂが受信するトラヒック量の１／５をＰｒｏｘｙ１Ａ宛のＦＷ１Ｃに転送することになる。ＬＢ１Ｂの運用中の分配割合は、全体トラヒック量の２／１０、つまり、ＬＢ１Ｂが受信するトラヒック量の２／５をＰｒｏｘｙ１Ｂ宛のＦＷ１Ｄに転送することになる。更に、ＬＢ１Ｂの運用中の分配割合は、全体トラヒック量の２／１０、つまり、ＬＢ１Ｂが受信するトラヒック量の２／５をＰｒｏｘｙ１Ｃ宛のＦＷ１Ｅに転送することになる。
【００６８】
ＬＢ１Ａの運用中の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＦＷ１Ａに転送する経路と、Ｐｒｏｘｙ１Ｂ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＦＷ１Ｂに転送する経路とを有する。更に、ＬＢ１Ａの運用中の転送経路は、Ｐｒｏｘｙ１Ｃ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＦＷ１Ｃに転送する経路を有する。
【００６９】
ＬＢ１Ｂの運用中の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＦＷ１Ｃに転送する経路と、Ｐｒｏｘｙ１Ｂ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＦＷ１Ｄに転送する経路とを有する。ＬＢ１Ｂの運用中の転送経路は、Ｐｒｏｘｙ１Ｃ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＦＷ１Ｅに転送する経路を有する。
【００７０】
ＦＷ１Ａの運用中の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＩＤＳ１Ａに転送する経路を有する。ＦＷ１Ｂの運用中の転送経路は、Ｐｒｏｘｙ１Ｂ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＩＤＳ１Ｂに転送する経路を有する。ＦＷ１Ｃの運用中の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＩＤＳ１Ａに転送する経路と、Ｐｒｏｘｙ１Ｃ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＩＤＳ１Ｃに転送する経路とを有する。ＦＷ１Ｄの運用中の転送経路は、Ｐｒｏｘｙ１Ｂ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＩＤＳ１Ｂに転送する経路を有する。ＦＷ１Ｅの運用中の転送経路は、Ｐｒｏｘｙ１Ｃ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＩＤＳ１Ｃに転送する経路を有する。
【００７１】
ＩＤＳ１Ａの運用中の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＰｒｏｘｙ１Ａに転送する経路を有する。ＩＤＳ１Ｂの運用中の転送経路は、Ｐｒｏｘｙ１Ｂ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＰｒｏｘｙ１Ｂに転送する経路を有する。ＩＤＳ１Ｃの運用中の転送経路は、Ｐｒｏｘｙ１Ｃ宛のトラヒックを運用中の出力先ＶＮＦ１２としてＰｒｏｘｙ１Ｃに転送する経路を有する。
【００７２】
また、図９に示す予備設定情報のＬＢ１Ａ及びＬＢ１Ｂの予備の転送経路は、運用中の出力先ＶＮＦ１２と同一であるため、削除されている。
【００７３】
ＦＷ１Ａの予備の転送経路は、Ｐｒｏｘｙ１Ｂ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ｂに転送する経路と、Ｐｒｏｘｙ１Ｃ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ｃに転送する経路とを有する。尚、ＦＷ１Ａの運用中の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックをＩＤＳ１Ａに転送する経路であるため、ＦＷ１Ａの予備の転送経路から削除している。
【００７４】
ＦＷ１Ｂの予備の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ａに転送する経路と、Ｐｒｏｘｙ１Ｃ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ｃに転送する経路とを有する。尚、ＦＷ１Ｂの運用中の転送経路は、Ｐｒｏｘｙ１Ｂ宛のトラヒックをＩＤＳ１Ｂに転送する経路であるため、ＦＷ１Ｂの予備の転送経路から削除している。ＦＷ１Ｃの予備の転送経路は、Ｐｒｏｘｙ１Ｂ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ｂに転送する経路を有する。尚、ＦＷ１Ｃの運用中の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックをＩＤＳ１Ａに転送する経路及び、Ｐｒｏｘｙ１Ｃ宛のトラヒックをＩＤＳ１Ｃに転送する経路であるため、ＦＷ１Ｃの予備の転送経路から削除している。ＦＷ１Ｄの予備の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ａに転送する経路と、Ｐｒｏｘｙ１Ｃ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ｃに転送する経路とを有する。尚、ＦＷ１Ｄの運用中の転送経路は、Ｐｒｏｘｙ１Ｂ宛のトラヒックをＩＤＳ１Ｂに転送する経路であるため、ＦＷ１Ｄの予備の転送経路から削除している。ＦＷ１Ｅの予備の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ａに転送する経路と、Ｐｒｏｘｙ１Ｂ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ｂに転送する経路とを有する。尚、ＦＷ１Ｅの運用中の転送経路は、Ｐｒｏｘｙ１Ｃ宛のトラヒックをＩＤＳ１Ｃに転送する経路であるため、ＦＷ１Ｃの予備の転送経路から削除している。
【００７５】
ＩＤＳ１Ａの予備の転送経路は、Ｐｒｏｘｙ１Ｂ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ｂに転送する経路と、Ｐｒｏｘｙ１Ｃ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ｃに転送する経路とを有する。尚、ＩＤＳ１Ａの運用中の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックをＩＤＳ１Ａに転送する経路であるため、ＩＤＳ１Ａの予備の転送経路から削除している。ＩＤＳ１Ｂの予備の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ａに転送する経路と、Ｐｒｏｘｙ１Ｃ宛のトラヒックを予備の出力先ＶＮＦ１２としてＩＤＳ１Ｃに転送する経路とを有する。尚、ＩＤＳ１Ｂの運用中の転送経路は、Ｐｒｏｘｙ１Ｂ宛のトラヒックをＩＤＳ１Ｂに転送する経路であるため、ＩＤＳ１Ｂの予備の転送経路から削除している。ＩＤＳ１Ｃの予備の転送経路は、Ｐｒｏｘｙ１Ａ宛のトラヒックを予備の出力先ＶＮＦ１２としてＰｒｏｘｙ１Ａに転送する経路と、Ｐｒｏｘｙ１Ｂ宛のトラヒックを予備の出力先ＶＮＦ１２としてＰｒｏｘｙ１Ｂに転送する経路とを有する。尚、ＩＤＳ１Ｃの運用中の転送経路は、Ｐｒｏｘｙ１Ｃ宛のトラヒックをＩＳＤ１Ｃに転送する経路であるため、ＩＤＳ１Ｃの予備の転送経路から削除している。
【００７６】
次に本実施例のサービスチェインシステム１の動作について説明する。管理サーバ３は、例えば、図５に示すサービスチェイン２０ＡのＶＮＦ＃１の負荷増加を検出した場合、図６に示すサービスチェイン２０Ｂを再構築する。管理サーバ３は、図５に示すサービスチェイン２０Ａのサービスチェイン構築処理を実行した際に図７に示す運用中設定情報を運用メモリ５１に登録している。更に、管理サーバ３は、サービスチェイン構築処理実行後に予備設定処理を実行して予備設定情報を予備メモリ５２に登録している。
【００７７】
図１０は、予備設定処理に関わる管理サーバ３内のプロセッサ３６の処理動作の一例を示すフローチャートである。図１０においてプロセッサ３６内の第１の特定部４５は、サービスチェイン２０Ｂから終端ＶＮＦ群を特定したか否かを判定する（ステップＳ３１）。尚、終端ＶＮＦ群は、図５に示すサービスチェイン２０Ａの場合、Ｐｒｏｘｙ１Ａ〜Ｐｒｏｘｙ１ＣのＶＮＦ＃３である。
【００７８】
プロセッサ３６内の第２の特定部４６は、終端ＶＮＦ群を特定した場合（ステップＳ３１肯定）、サービスチェインから終端ＶＮＦ群までの経路上のＶＮＦ１２を特定する（ステップＳ３２）。尚、終端ＶＮＦ群までの経路上のＶＮＦ１２は、図５に示すサービスチェイン２０Ａの場合、集約ＬＢ群２２からＰｒｏｘｙ１Ａ〜Ｐｒｏｘｙ１Ｃまでのトラヒックを中継する経路上のＶＮＦ１２である。その経路上のＶＮＦ１２は、例えば、ＬＢ１Ａ、ＬＢ１Ｂ、ＦＷ１Ａ〜ＦＷ１Ｄ、ＩＤＳ１Ａ〜ＩＤＳ１Ｃである。
【００７９】
プロセッサ３６内の抽出部４７は、経路上のＶＮＦ１２毎に終端ＶＮＦ１２宛の出力先ＶＮＦ１２を含む転送経路を抽出する（ステップＳ３３）。尚、終端ＶＮＦ１２は、図５に示すサービスチェイン２０Ａの場合、Ｐｒｏｘｙ１Ａ〜Ｐｒｏｘｙ１Ｃである。抽出部４７は、例えば、ＦＷ１Ｂに着目した場合、Ｐｒｏｘｙ１Ａ宛のトラヒックをＩＤＳ１Ａに転送する転送経路及び、Ｐｒｏｘｙ１Ｂ宛のトラヒックをＩＤＳ１Ｂに転送する転送経路を抽出する。更に、抽出部４７は、Ｐｒｏｘｙ１Ｃ宛のトラヒックをＩＤＳ１Ｃに転送する転送経路を抽出する。
【００８０】
抽出部４７は、経路上のＶＮＦ１２毎に抽出した転送経路を予備メモリ５２に登録する（ステップＳ３４）。プロセッサ３６内の比較部４８は、終端ＶＮＦ１２宛のトラヒックを中継する経路上のＶＮＦ１２を指定し（ステップＳ３５）、指定ＶＮＦ１２毎に、運用中メモリ５１及び予備メモリ５２に記憶中の転送経路同士を比較する（ステップＳ３６）。尚、転送経路同士の比較とは、指定ＶＮＦ１２毎に、運用中メモリ５１に記憶中の転送経路と予備メモリ５２に記憶中の転送経路とを比較する処理である。
【００８１】
比較部４８は、比較結果に基づき、指定ＶＮＦ１２の運用中の転送経路が予備メモリ５２内にあるか否かを判定する（ステップＳ３７）。比較部４８は、指定ＶＮＦ１２の運用中の転送経路が予備メモリ５２内にある場合（ステップＳ３７肯定）、その指定ＶＮＦ１２の運用中の転送経路を予備メモリ５２から削除する（ステップＳ３８）。例えば、図７に示す予備設定情報のＦＷ１Ａに着目した場合、運用中の転送経路はＰｒｏｘｙ１Ａ宛のトラヒックをＦＷ１Ａに転送する経路となる。
【００８２】
そして、プロセッサ３６内の設定部４４は、指定ＶＮＦ１２に予備メモリ５２内に指定ＶＮＦ１２対応の予備の転送経路を設定し（ステップＳ３９）、未指定のＶＮＦ１２があるか否かを判定する（ステップＳ４０）。設定部４４は、未指定のＶＮＦ１２がない場合（ステップＳ４０否定）、図１０に示す処理動作を終了する。
【００８３】
比較部４８は、未指定のＶＮＦ１２がある場合（ステップＳ４０肯定）、経路上のＶＮＦ１２から未指定のＶＮＦ１２を指定すべく、ステップＳ３５に移行する。第１の特定部４５は、サービスチェインから終端ＶＮＦ群を特定できなかった場合（ステップＳ３１否定）、図１０に示す処理動作を終了する。設定部４４は、指定ＶＮＦ１２の運用中の転送経路が予備メモリ５２内にない場合（ステップＳ３７否定）、予備メモリ５２内の予備の転送経路を指定ＶＮＦ１２に設定すべく、ステップＳ３９に移行する。
【００８４】
予備設定処理を実行したプロセッサ３６は、終端ＶＮＦ１２宛のトラヒックを中継する経路上のＶＮＦ１２毎に終端ＶＮＦ１２宛の出力先ＶＮＦ１２を含む予備の転送経路を予備メモリ５１に登録し、その予備の転送経路を経路上のＶＮＦ１２毎に設定する。その結果、経路上のＶＮＦ１２は、サービスチェインの構成が変更された場合でも、全ての終端ＶＮＦ１２宛の転送経路が確保できているため、設定変更完了までの時間差によるトラヒック廃棄を回避できる。
【００８５】
管理サーバ３は、サービスチェイン変更の構成要求を検出した場合、サービスチェイン構築処理を実行する。この際、管理サーバ３は、サービスチェイン上に配置された集約ＬＢ群２２及びＶＮＦ群２１に転送経路及びトラヒック割合を設定することになる。更に、管理サーバ３は、ＶＮＦ群２１及び集約ＬＢ群２２の転送経路及びトラヒック割合の設定変更が完了するまでに運用中の転送経路及び予備の転送経路を使用できるため、トラヒック廃棄を回避できる。
【００８６】
管理サーバ３は、図５に示すサービスチェイン２０Ａから図８に示すサービスチェイン２０Ｂに変更する際、その設定変更が完了するまで、図７に示すＦＷ１Ｅ追加前の運用中の転送経路及び予備の転送経路を使用することになる。
【００８７】
次に設定変更開始から設定変更が完了するまでのサービスチェインの経路上のＶＮＦ１２の動作について説明する。図１１は、転送処理に関わる各ＶＮＦ１２の処理動作の一例を示すフローチャートである。図１１においてＶＮＦ１２は、設定変更を検出したか否かを判定する（ステップＳ５１）。尚、設定変更は、例えば、サービスチェインのスケールアウト（ＶＮＦ追加）やスケールイン（ＶＮＦ削除）等の設定変更である。
【００８８】
ＶＮＦ１２は、設定変更を検出しなかった場合（ステップＳ５１否定）、トラヒックを受信したか否かを判定する（ステップＳ５２）。ＶＮＦ１２は、トラヒックを受信した場合（ステップＳ５２肯定）、受信トラヒックの宛先に応じた運用中の転送経路があるか否かを判定する（ステップＳ５３）。
【００８９】
ＶＮＦ１２は、受信トラヒックの宛先に応じた運用中の転送経路がある場合（ステップＳ５３肯定）、受信トラヒックを運用中の出力先ＶＮＦ１２に転送し（ステップＳ５４）、図１１に示す処理動作を終了する。尚、運用中の出力先ＶＮＦ１２は、現在運用中の転送経路の終端ＶＮＦ１２宛の出力先ＶＮＦ１２である。ＶＮＦ１２は、受信トラヒックの宛先に応じた運用中の転送経路がない場合（ステップＳ５３否定）、受信トラヒックを廃棄し（ステップＳ５５）、図１１に示す処理動作を終了する。
【００９０】
ＶＮＦ１２は、トラヒックを受信しなかった場合（ステップＳ５２否定）、図１１に示す処理動作を終了する。ＶＮＦ１２は、設定変更を検出した場合（ステップＳ５１肯定）、トラヒックを受信したか否かを判定する（ステップＳ５６）。ＶＮＦ１２は、トラヒックを受信した場合（ステップＳ５６肯定）、受信トラヒックの宛先に応じた運用中の転送経路があるか否かを判定する（ステップＳ５７）。
【００９１】
ＶＮＦ１２は、受信トラヒックの宛先に応じた運用中の転送経路がある場合（ステップＳ５７肯定）、その受信トラヒックを運用中の出力ＶＮＦ１２に転送し（ステップＳ５８）、図１１に示す処理動作を終了する。
【００９２】
ＶＮＦ１２は、トラヒックを受信しなかった場合（ステップＳ５６否定）、図１１に示す処理動作を終了する。ＶＮＦ１２は、受信トラヒックの宛先に応じた運用中の転送経路がない場合（ステップＳ５７否定）、受信トラヒックの宛先に応じた予備の転送経路があるか否かを判定する（ステップＳ５９）。
【００９３】
ＶＮＦ１２は、受信トラヒックの宛先に応じた予備の転送経路がある場合（ステップＳ５９肯定）、受信トラヒックを予備の出力先ＶＮＦ１２に転送し（ステップＳ６０）、図１１に示す処理動作を終了する。尚、予備の出力先ＶＮＦ１２は、予備の転送経路の終端ＶＮＦ１２宛の出力先ＶＮＦ１２である。その結果、ＶＮＦ１２は、受信トラヒックの宛先に応じた予備の出力先ＶＮＦ１２に受信トラヒックを転送するため、トラヒック廃棄を回避できる。
【００９４】
ＶＮＦ１２は、受信トラヒックの宛先に応じた予備の転送経路がない場合（ステップＳ５９否定）、受信トラヒックを廃棄し（ステップＳ６１）、図１１に示す処理動作を終了する。
【００９５】
図１１に示す転送処理を実行するＶＮＦ１２は、設定変更中に、受信トラヒックの宛先に応じた運用中の転送経路がある場合、受信トラヒックを運用中の出力先ＶＮＦ１２に転送する。その結果、ＶＮＦ１２は、設定変更中でも、受信トラヒックの宛先が運用中の転送経路に該当する場合、その受信トラヒックを転送できる。
【００９６】
ＶＮＦ１２は、設定変更中に、受信トラヒックの宛先に応じた運用中の転送経路がない場合でも、宛先に応じた予備の転送経路がある場合、受信トラヒックを予備の出力先ＶＮＦ１２に転送する。その結果、ＶＮＦ１２は、設定変更中でも、設定変更完了までの時間差によるトラヒック廃棄を回避できる。
【００９７】
本実施例の管理サーバ３は、仮想領域上に複数段に配置されたＶＮＦ群２１から終端型のＶＮＦ群２１を特定する。更に、管理サーバ３は、終端型のＶＮＦ群２１にトラヒックを中継するＶＮＦ群２１内のＶＮＦ１２毎に、終端型ＶＮＦ群２１内の各終端型ＶＮＦ１２宛のトラヒックを出力する出力先のＶＮＦ１２の予備の転送経路を抽出する。管理サーバ３は、終端型のＶＮＦ群２１にトラヒックを中継するＶＮＦ１２毎に終端型のＶＮＦ１２宛の出力先のＶＮＦ１２を予備の転送経路として設定する。その結果、各ＶＮＦ１２は、サービスチェインの構成が変更した場合でも、運用中の転送経路の他に、予備の転送経路も使用できるため、ＶＮＦ１２毎の設定変更完了までの時間差によるトラヒック廃棄を回避できる。
【００９８】
管理サーバ３は、仮想領域上にＶＮＦ群２１を複数段に配置する際に複数段のうちの最前段のＶＮＦ群２１の前段に配置する集約ＬＢ１３Ａを決定する。管理サーバ３は、集約ＬＢ１３Ａから複数段のＶＮＦ群１２のうちの終端型のＶＮＦ群２１内の各終端ＶＮＦ１２までの負荷に基づいて、運用の通信経路を決定する。管理サーバ３は、決定された運用の通信経路を仮想領域上に配置された集約ＬＢ１３Ａ及び各ＶＮＦ１２に設定する。その結果、ＬＢの台数を減らすことで転送遅延を抑制できる。
【００９９】
管理サーバ３内の抽出部４７は、集約ＬＢ１３Ａと終端型のＶＮＦ群２１との間で終端型のＶＮＦ群２１にトラヒックを中継するＶＮＦ１２毎に、終端型のＶＮＦ１２宛のトラヒックを出力する出力先のＶＮＦ１２を抽出する。その結果、管理サーバ３は、ＶＮＦ１２毎に予備の転送経路を取得できる。
【０１００】
管理サーバ３内の比較部４８は、終端型のＶＮＦ群２１にトラヒックを中継するＶＮＦ１２毎に、終端型のＶＮＦ１２宛のトラヒックを出力する出力先のＶＮＦ１２を抽出した後、抽出された出力先のＶＮＦ１２の内、運用中の転送経路に関わる出力先のＶＮＦ１２を削除する。その結果、管理サーバ３は、予備メモリ５２内に重複した転送経路の登録を防止できる。
【０１０１】
管理サーバ３は、例えば、図５に示すサービスチェイン２０Ａ内にＦＷ１Ｅを追加するスケールアウトの構成要求を検出した場合、図７に示すＦＷ１Ｅ追加前のＶＮＦ１２毎の予備の転送経路又は運用中の転送経路を使用して受信トラヒックを転送した。その結果、ＶＮＦ１２は、スケールアウトの設定変更が生じた場合でも、設定変更の時間差によるトラヒック廃棄を回避できる。これに対して、管理サーバ３は、図８に示すサービスチェイン２０Ｂ内のＦＷ１Ｅを削除してサービスチェイン２０Ａに変更するスケールインの構成要求を検出したとする。管理サーバ３は、スケールインの設定変更が生じた場合でも、図９に示すＦＷ１Ｅ追加後のＶＮＦ１２毎の予備の転送経路又は運用中の転送経路を使用して受信トラヒックを転送できる。その結果、ＶＮＦ１２は、スケールインの設定変更が生じた場合でも、設定変更の時間差によるトラヒック廃棄を回避できる。
【０１０２】
上記実施例では、図４に示すサービスチェイン構築処理を実行した後、図１０に示す予備設定処理を実行したが、サービスチェイン構築処理と並列して予備設定処理を実行しても良く、適宜変更可能である。
【０１０３】
図１０に示す予備設定処理では、ステップＳ３８にて指定ＶＮＦ１２の運用中の転送経路を予備メモリ５２から削除したが、予備メモリ５２内に運用中の転送経路を削除しなくても良く、適宜変更可能である。
【０１０４】
予備設定処理では、ステップＳ３５にて経路上のＶＮＦ１２を指定し、指定ＶＮＦ１２毎に転送経路同士の比較を実行したが、個別にＶＮＦ１２を指定するのではなく、一括でＶＮＦ１２を指定して転送経路同士の比較処理を一括で実行しても良い。
【０１０５】
図５に示すサービスチェイン２０Ａでは、ＶＮＦ＃１〜ＶＮＦ＃３の３段に配置する構成としたが、これに限定されるものではなく、適宜変更可能である。
【０１０６】
サービスチェイン２０Ａでは、最終段のＶＮＦ＃３のＰｒｏｘｙ１Ａ〜Ｐｒｏｘｙ１Ｃを終端ＶＮＦ１２としたが、最後段に限定されるものではなく、例えば、サービスチェインを第１のＶＮＦ群２１から第１０のＶＮＦ群２１までの１０段構成としても良い。しかも、集約ＬＢ群２２から第１０のＶＮＦ群２１までの１０段構成とし、例えば、第３のＶＮＦ群２１及び第１０のＶＮＦ群２１を終端のＶＮＦ群２１とする。この場合、管理サーバ３は、集約ＬＢ群２２と第３のＶＮＦ群２１との間のＶＮＦ１２毎に第３のＶＮＦ群２１内の各終端ＶＮＦ１２宛の予備の転送経路を抽出し、その抽出した予備の転送経路を予備メモリ５２に登録する。その結果、集約ＬＢ群２２と第３のＶＮＦ群２１との間の第３のＶＮＦ群２１内の終端ＶＮＦ１２宛のトラヒックを中継する経路上のＶＮＦ１２は、運用中及び予備の転送経路を使用して設定変更の時間差によるトラヒック廃棄を回避できる。
【０１０７】
また、第３のＶＮＦ群２１と第１０のＶＮＦ群２１との間のＶＮＦ１２毎に第１０のＶＮＦ群２１内の各終端ＶＮＦ１２宛の予備の転送経路を抽出し、抽出した予備の転送経路を予備メモリ５２に登録する。その結果、第３のＶＮＦ群２１と第１０のＶＮＦ群２１との間の第１０のＶＮＦ群２１内の終端ＶＮＦ１２宛のトラヒックを中継する経路上のＶＮＦ１２は、運用中及び予備の転送経路を使用して設定変更の時間差によるトラヒック廃棄を回避できる。
【０１０８】
上記実施例のサービスチェイン２０Ａでは、最前段に集約ＬＢ群２２を配置する構成としたが、最前段に加えて、途中に集約ＬＢ群２２を配置しても良く、適宜変更可能である。
【０１０９】
実施例では、サービスチェイン内の負荷分散対象のＶＮＦ群２１内の各ＶＮＦ１２のトラヒック量を均等にすべく、各ＶＮＦ１２のトラヒック割合及び集約ＬＢ１３Ａの分配割合を算出した。しかしながら、負荷分散対象のＶＮＦ群２１内のＶＮＦ１２に限定されるものではなく、サービスチェイン内の全てのＶＮＦ群２１の全ＶＮＦ１２の負荷を均等にすべく、各ＶＮＦ１２のトラヒック割合及び集約ＬＢ１３Ａの分配割合を算出しても良い。また、管理サーバ３は、各ＶＮＦ１２の転送経路を決定した後、各ＶＮＦ１２のトラヒック割合を算出したが、ＶＮＦ１２毎の転送経路及びトラヒック割合を同時に算出しても良い。
【０１１０】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【０１１１】
更に、各装置で行われる各種処理機能は、ＣＰＵ（Central  Processing  Unit）、ＤＳＰ（Digital  Signal  Processor）やＦＰＧＡ（Field  Programmable  Gate  Array）等上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、ＣＰＵ等で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良い。
【０１１２】
各種情報を記憶する領域は、例えば、ＲＯＭ（Read  Only  Memory）や、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）、ＭＲＡＭ（Magnetoresistive  Random  Access  Memory）やＮＶＲＡＭ（Non  Volatile  Random  Access  Memory）等のＲＡＭ（Random  Access  Memory）で構成しても良い。
【０１１３】
ところで、本実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータ内のＣＰＵ等のプロセッサで実行させることによって実現できる。そこで、以下では、上記実施例と同様の機能を有するプログラムを実行する情報処理装置１００の一例を説明する。図１２は、設定プログラムを実行する情報処理装置１００の一例を示す説明図である。
【０１１４】
図１２に示す設定プログラムを実行する情報処理装置１００は、通信部１１０と、ＨＤＤ（Hard  Disc  Drive）１２０と、ＲＯＭ１３０と、ＲＡＭ１４０と、ＣＰＵ１５０とを有する。通信部１１０、ＨＤＤ１２０、ＲＯＭ１３０、ＲＡＭ１４０及びＣＰＵ１５０は、バス１６０を介して接続される。通信部１１０は、図示せぬ他の情報処理装置と接続し、他の情報処理装置と通信する。そして、情報処理装置１００は、他の情報処理装置と通信し、他の情報処理装置内の仮想領域上に仮想通信機能群を複数段に配置してサービスチェインを構成する。
【０１１５】
そして、ＲＯＭ１３０には、上記実施例と同様の機能を発揮する管理プログラムが予め記憶されている。ＲＯＭ１３０は、設定プログラムとして特定プログラム１３０Ａ、抽出プログラム１３０Ｂ及び設定プログラム１３０Ｃが記憶されている。尚、ＲＯＭ１３０ではなく、図示せぬドライブでコンピュータ読取可能な記録媒体に管理プログラムが記録されていても良い。また、記録媒体としては、例えば、ＣＤ−ＲＯＭ、ＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ等でも良い。
【０１１６】
そして、ＣＰＵ１５０は、特定プログラム１３０ＡをＲＯＭ１３０から読み出し、ＲＡＭ１４０上で特定プロセス１４０Ａとして機能させる。更に、ＣＰＵ１５０は、抽出プログラム１３０ＢをＲＯＭ１３０から読み出し、ＲＡＭ１４０上で抽出プロセス１４０Ｂとして機能させる。更に、ＣＰＵ１５０は、設定プログラム１３０ＣをＲＯＭ１３０から読み出し、ＲＡＭ１４０上で設定プロセス１４０Ｃとして機能させる。
【０１１７】
ＣＰＵ１５０は、複数段に配置された通信機能を実現する仮想マシン群の中からパケットを終端する終端型の仮想マシンを特定する。ＣＰＵ１５０は、終端型の仮想マシンにトラヒックを中継する仮想マシン毎に、終端型の仮想マシン宛のトラヒックを出力する出力先の仮想マシンを含む予備の通信経路を抽出する。ＣＰＵ１５０は、終端型の仮想マシンにトラヒックを中継する前記仮想マシン毎に、抽出された前記予備の通信経路を設定する。その結果、サービスチェインの設定変更完了までの時間差による仮想通信機能のトラヒック廃棄を回避できる。
【符号の説明】
【０１１８】
３  管理サーバ
２０Ａ、２０Ｂ  サービスチェイン
４４  設定部
４５  第１の特定部
４６  第２の特定部
４７  抽出部
４８  比較部
ＶＮＦ＃１〜ＶＮＦ＃３  ＶＮＦ群
ＬＢ１Ａ、ＬＢ１Ｂ  集約ＬＢ群
【図１】
2018064251.tif 000003
【図２】
2018064251.tif 000004
【図３】
2018064251.tif 000005
【図４】
2018064251.tif 000006
【図５】
2018064251.tif 000007
【図６】
2018064251.tif 000008
【図７】
2018064251.tif 000009
【図８】
2018064251.tif 000010
【図９】
2018064251.tif 000011
【図１０】
2018064251.tif 000012
【図１１】
2018064251.tif 000013
【図１２】
2018064251.tif 000014
【図１３】
2018064251.tif 000015