以下、図面に基づいて、本願の開示するサービスチェイン構築方法及びサーバ装置の実施例を詳細に説明する。尚、本実施例により、開示技術が限定されるものではない。また、以下に示す実施例は、矛盾を起こさない範囲で適宜組み合わせても良い。
図1は、サービスチェインシステム1の一例を示す説明図である。図1に示すサービスチェインシステム1は、キャリアNW2と、管理サーバ3と、端末装置4とを有する。キャリアNW2は、例えば、企業の本社、支社や海外拠点等の拠点2Aと接続するNWである。キャリアNW2は、例えば、複数の汎用サーバ2Bで構成し、各汎用サーバ2Bのリソース領域にある仮想領域で稼働する仮想NW11と、その仮想NW11上に配置した複数のVNF12とを有する。管理サーバ3は、拠点2A間で通信するサービスチェインを仮想領域に確立する。
VNF12は、例えば、Webキャッシュ12A、パケットモニタリング12B、FW12C、高速WAN12D、アドレス変換部12E、VPN12F、IDSやProxy等の仮想NW機能である。Webキャッシュ12Aは、図示せぬWebサーバとのキャッシュデータを格納するNW機能である。パケットモニタリング12Bは、通信経路上のパケットの状態を監視するNW機能である。FW12Cは、不正アクセスを防止するNW機能である。高速WAN12Dは、高速WAN等のNW機能である。アドレス変換部12Eは、アドレスを変換するNW機能である。VPN12Fは仮想専用線等のNW機能である。IDSは、外部からの不正侵入を検知するNW機能である。Proxyは、代理サーバのNW機能である。VNF12は、汎用サーバ2B上の仮想領域に仮想的に配置した仮想通信機能である。
管理サーバ3は、端末装置4からサービスチェインの構成要求に応じて、キャリアNW2内の各汎用サーバ2Bの仮想領域上に所望の仮想NW11及びVNF12を配置するサーバ装置である。端末装置4は、例えば、FW4A、高速WAN4BやVPN4C等を経由して管理サーバ3と接続し、管理サーバ3に対してサービスチェインの構成要求を指示する、例えば、システム管理者等の端末装置である。尚、構成要求は、パケット転送の通信経路上に1台若しくは複数台のVNF12の配置を要求するコマンドである。また、構成要求は、VNF12及びLB13のインスタンス数を指定する場合の他に、VNF12のインスタンス数のみを指定する場合もある。また、構成要求には、例えば、サービスチェインの要求品質を指定する場合もある。管理サーバ3は、要求品質を指定した構成要求を検出した場合、構成要求で指定された所望の機能や負荷状況からVNF12やLB13のインスタンス数を決定する。
図2は、管理サーバ3のハードウェア構成の一例を示す説明図である。図2に示す管理サーバ3は、例えば、NWサーバとしての専用コンピュータや、汎用コンピュータに相当する。管理サーバ3は、NWインタフェース31と、入力装置32と、出力装置33と、補助記憶装置34と、主記憶装置35と、プロセッサ36とを有する。NWインタフェース31は、キャリアNW2と接続すると共に、VNF12と接続する通信インタフェースである。尚、NWインタフェース31は、例えば、有線又は無線の通信を司る通信インタフェースである。NWインタフェース31は、例えば、NIC(Network Interface Card)やLAN(Local Area Network)カード等の通信カードである。
入力装置32は、各種情報を入力する、例えば、キーボードやマウス等のポインティングデバイス等の入力インタフェースである。出力装置33は、各種情報を出力する、例えば、音声出力装置や表示装置等の出力インタフェースである。補助記憶装置34は、例えば、各種プログラムや、プロセッサ36が使用するデータ等の各種情報を記憶する、例えば、EPROM(Erasable Programmable ROM)、又はハードディスクドライブ(Hard Disc Drive)等の不揮発性のメモリである。更に、補助記憶装置34は、例えば、オペレーティングシステム(OS)や、その他様々なアプリケーションプログラムを保持する領域である。
主記憶装置35は、各種情報、例えば、補助記憶装置34に格納されているプログラムをロードする領域や作業領域を提供する、例えば、RAM(Random Access Memory)等の半導体メモリである。プロセッサ36は、管理サーバ3全体を制御する、例えば、CPU(Central Processing Unit)等の制御部である。プロセッサ36は、補助記憶装置34又は可搬記録媒体に保持されたOSや様々なアプリケーションプログラムを主記憶装置35にロードして実行することで各種処理機能を実行する。プロセッサ36は、1個に限定されるものではなく、複数個設けても良い。
図3は、サービスチェイン20の一例を示す説明図である。図3に示すサービスチェイン20は、複数のVNF群21と、LB群22とを有する。複数のVNF群21は、VNF#1と、VNF#2と、VNF#3とを所定順序に配置する。VNF#1は、例えば、FW1A〜FW1Dを有する。VNF#2は、例えば、IDS1A〜IDS1Cを有する。VNF#3は、例えば、Proxy1A〜Proxy1Cを有する。LB群22は、例えば、LB1A及びLB1Bを有する。
プロセッサ36は、構成要求を検出すると、構成要求内で指定する各VNF群21内のVNF12のインスタンス数に基づき、所定順序の内、最前段のVNF群21、すなわちVNF#1の前段に配置する集約LB13Aの数を決定する。尚、所定順序は、例えば、前段からVNF#1(FW)、VNF#2(IDS)及びVNF#3(Proxy)の順に配置する順序とする。
プロセッサ36は、構成要求を検出すると、構成要求に基づき、VNF群21へのトラヒックを分配するLB13の特性の内、上位レイヤ「L4レベル」のLB群22(VNF#3に対するLB13(L4))を特定する。尚、L4レベル(TCPセッション)単位の分配処理は、L3レベル(IP)単位の分配処理も実行できる。プロセッサ36は、上位レイヤ「L4レベル」の分配処理を実行するLB群22の内、LBインスタンス数が最大数となるLB13を特定し、そのLBインスタンス数を集約LB13Aのインスタンス数と決定する。例えば、プロセッサ36は、VNF#3のLBインスタンス数がL4レベルLBの2個の場合、そのL4レベルLBの2個を集約LB13Aの数として決定する。尚、L4レベルのVNF群21を特定する理由は、L4レベル(TCPセッション)単位の処理でL3レベル(IP)単位の処理も実行できるためである。
更に、プロセッサ36は、VNF#1、VNF#2及びVNF#3の配置順序としてトポロジ構成を決定する。プロセッサ36は、図3に示すようにサービスチェイン20の最前段にVNF#1、VNF#1の次段にVNF#2、VNF#2の次段にVNF#3を配置し、更に、最前段のVNF#1の前段に集約LB13Aを配置するトポロジ構成を決定する。尚、トポロジ構成は、最前段に集約LB13A内のLB1A及びLB1B、次段にVNF#1内のFW1A〜FW1D、その次段にVNF#2内のIDS1A〜IDS1C、その次段にVNF#3内のProxy1A〜Proxy1Cを配置する構成である。
プロセッサ36は、集約LB13Aから複数のVNF群21の内、終端のVNF群21内の各VNF12までのトラヒックが分散する、集約LB13Aのトラヒック量の分配割合及びVNF12のトラヒック割合を決定する。プロセッサ36は、複数のVNF群21の内、終端となるVNF群21内のVNF12を決定すると共に、集約LB13Aから各終端のVNF12までの最適経路を決定する。
プロセッサ36は、集約LB13AがL4レベルのLBであるため、集約LB13AからL4レベルが終端となる終端のVNF群21として、例えば、VNF#3のProxy1A〜Proxy1Cと決定する。集約LB13Aの「LB1A」は、Proxy1A〜Proxy1Cの3本の経路を決定する。更に、集約LB13Aの「LB1B」も、Proxy1A〜Proxy1Cの3本の経路を決定する。集約LB13Aの「LB1A」及び「LB1B」は、終端のVNF12の台数分、トラヒックを分散できる終端型のLBである。例えば、LB1Aは、終端のVNF群21がProxy1A〜Proxy1Cの3台のため、トラヒックを3経路に分散できる。
プロセッサ36は、集約LB13Aの「LB1A」から終端のVNF12、すなわちProxy1A〜Proxy1Cまでの3経路で、例えば、ダイクストラ法等の最短経路コスト法において計算済み経路上のリンクコストを高くして最短経路計算を行う。プロセッサ36は、LB1Aから終端のVNF12までの3経路の最短経路計算で、VNF#1及びVNF#2を経由する経路が分散した最適経路R1、R3及びR5を決定する。プロセッサ36は、集約LB13Aの「LB1B」から終端のVNF12、すなわちProxy1A〜Proxy1Cまでの3経路で、最短経路コスト法の利用とリンクコスト加算を行う。そして、プロセッサ36は、その計算によってVNF#1及びVNF#2を経由する経路が分散した最適経路R2、R4及びR6を決定する。
プロセッサ36は、各最適経路R1〜R6に配置するVNF群21の内、VNF12のインスタンス数が最大数のVNF群21の各VNF12のトラヒック量が均等に分散すべく、集約LB13Aから各最前段のVNF12へのトラヒック量の分配割合を決定する。プロセッサ36は、VNF#1〜VNF#3の内、最大個数のVNF12、すなわちVNF#1(FW1A〜FW1D)を特定する。プロセッサ36は、6本の最適経路の内、VNF#1のFW1A〜FW1Dのトラヒック量が均等になるように集約LB13A「LB1A」及び「LB1B」からVNF#1内のFW1A〜FW1Dに分配する分配割合を算出する。サービスチェイン20全体のトラヒック量を1とした場合、LB1AからFW1Aへの分配割合は全体トラヒック量の1/4、LB1AからFW1Bへの分配割合は全体トラヒック量の1/8、LB1AからFW1Cへの分配割合は全体トラヒック量の1/8となる。更に、LB1BからFW1Dへの分配割合は全体トラヒック量の1/4、LB1BからFW1Bへの分配割合は全体トラヒック量の1/8、LB1BからFW1Cへの分配割合は全体トラヒック量の1/8となる。その結果、FW1A〜FW1Dは、各々、1/4のトラヒック量が均等に割り当てられることになる。
プロセッサ36は、最適経路毎に各VNF12へのトラヒック量のトラヒック割合が最適となるように各VNF12から次段のVNF12へのトラヒック割合を算出する。プロセッサ36は、集約LB13AのLB1A及びLB1Bから各VNF#1内の各FW1A〜FW1Dのトラヒック量の分配割合を決定した後、先に決定した最適経路R1〜R6上の転送経路を決定する。更に、プロセッサ36は、その転送経路上の各VNF12への分配割合を決定する。転送経路は、最適経路の内、VNF12が次段のVNF12にパケットを転送する経路である。
集約LB13AのLB1Aの転送経路は、Proxy1A宛のパケットをFW1Aに転送する経路、Proxy1B宛のパケットをFW1Bに転送する経路、Proxy1C宛のパケットをFW1Cに転送する経路となる。集約LB13AのLB1Bの転送経路は、Proxy1A宛のパケットをFW1Bに転送する経路、Proxy1B宛のパケットをFW1Cに転送する経路、Proxy1C宛のパケットをFW1Dに転送する経路となる。
更に、FW1Aの転送経路は、Proxy1A宛のパケットをIDS1Aに転送する経路となる。FW1Bの転送経路は、Proxy1A宛のパケットをIDS1Aに転送する経路及び、Proxy1B宛のパケットをIDS1Bに転送する経路となる。FW1Cの転送経路は、Proxy1B宛のパケットをIDS1Bに転送する経路及び、Proxy1C宛のパケットをIDS1Cに転送する経路となる。FW1Dの転送経路は、Proxy1C宛のパケットをIDS1Cに転送する経路となる。
更に、IDS1Aの転送経路は、Proxy1A宛のパケットをProxy1Aに転送する経路となる。IDS1Aの転送経路は、Proxy1B宛のパケットをProxy1Bに転送する経路となる。IDS1Cの転送経路は、Proxy1C宛のパケットをProxy1Cに転送する経路となる。更に、プロセッサは、各転送経路の各VNF12のトラヒック量が最適となるように各VNF12のトラヒック割合を決定する。尚、各VNF12のトラヒック割合は、例えば、Weighted Round Robin方式やWeighted HASH振り分け方式等で算出する。
プロセッサ36は、VNF#1からVNF#2までの転送経路毎にトラヒック割合を決定する。FW1AからIDS1Aへの転送経路のトラヒック割合は全体トラヒック量の2/8、FW1BからIDS1Aへの転送経路のトラヒック割合は全体トラヒック量の1/8、FW1BからIDS1Bへの転送経路のトラヒック割合は全体トラヒック量の1/8となる。FW1CからIDS1Bへの転送経路のトラヒック割合は全体トラヒック量の1/8、FW1CからIDS1Cへの転送経路のトラヒック割合は全体トラヒック量の1/8、FW1DからIDS1Cへの転送経路のトラヒック割合は全体トラヒック量の2/8となる。
更に、プロセッサ36は、VNF#2からVNF#3までの転送経路毎にトラヒック割合を決定する。例えば、IDS1AからProxy1Aへの転送経路のトラヒック割合は3/8、IDS1BからProxy1Bへの転送経路のトラヒック割合は2/8、IDS1CからProxy1Cへの転送経路のトラヒック割合は3/8となる。尚、説明の便宜上、VNF#2からVNF#3までの転送経路のトラヒック割合は、例えば、3/8、2/8及び3/8としたが、転送経路毎にトラヒック割合を均等になるように調整しても良い。
プロセッサ36は、集約LB13A及びVNF12の数、最適経路R1〜R6及び転送経路に基づき、集約LB13A及びVNF12を汎用サーバ2B等の仮想領域に配置して機能を起動させる。プロセッサ36は、決定した集約LB13Aの分配割合を配置された集約LB13Aに設定する。プロセッサ36は、決定した各VNF12のトラヒック割合を配置されたVNF12に設定する。その結果、仮想環境下で構成要求のサービスチェイン20を構築できる。
管理サーバ3は、集約LB13A、集約LB13Aから終端のVNF12までの最適経路、集約LB13Aの分配割合及び各VNF12のトラヒック割合に基づき、キャリアNW2上の指定の汎用サーバ2Bの仮想領域に、構成要求のサービスチェイン20を構築する。
次にサービスチェインシステム1について説明する。図4は、第1のサービスチェイン構築処理に関わる管理サーバ3の処理動作の一例を示すフローチャートである。
図4において管理サーバ3内のプロセッサ36は、端末装置4から構成要求を受信したか否かを判定する(ステップS11)。プロセッサ36は、構成要求を受信した場合(ステップS11肯定)、構成要求内のVNF群21内のVNF12のインスタンス数及びVNF群21毎のLB13のインスタンス数に基づき、集約LB13Aの数を決定する(ステップS12)。尚、プロセッサ36は、構成要求内の上位レベルのVNF群21の内、例えば、VNF12のインスタンス数が最大数のVNF群21を特定し、特定されたVNF群21のLBインスタンス数を集約LB13Aの数と決定する。更に、プロセッサ36は、構成要求内のVNF群21に基づき、図3に示すように、集約LB13Aの集約LB群22及びVNF群21のトポロジ構成を決定する(ステップS13)。
プロセッサ36は、サービスチェイン20の最前段の集約LB群22のトラヒック割合(送信量)を決定する(ステップS14)。尚、集約LB群22のトラヒック割合(送信量)は、図3に示すように、LB1Aが全体トラヒック量の1/2及びLB1Bが全体トラヒック量の1/2を送信することになる。プロセッサ36は、最前段の集約LB群22の終端宛先となる終端のVNF群21を特定する(ステップS15)。尚、終端のVNF群21は、例えば、図3に示すVNF#3に相当し、終端のVNF12はProxy1A〜Proxy1Cとなる。
プロセッサ36は、集約LB群22と終端のVNF群21との間の全経路が分散する転送経路を決定する(ステップS16)。尚、全経路は、図3に示すように、LB1AとProxy1Aとの間、LB1AとProxy1Bとの間、LB1AとProxy1Cとの間、LB1BとProxy1Aとの間、LB1BとProxy1Bとの間、LB1BとProxy1Cとの間の転送経路となる。プロセッサ36は、各転送経路のトラヒック割合を決定する(ステップS17)。
プロセッサ36は、集約LB群22及び転送経路のトラヒック割合に基づき、終端のVNF群21内の各VNF12のトラヒック割合(受信量)を決定する(ステップS18)。尚、終端のVNF群21はVNF#3のため、Proxy1Aは全体トラヒック量の3/8、Proxy1Bは全体トラヒック量の2/8、Proxy1Cは全体トラヒック量の3/8を受信することになる。
そして、プロセッサ36は、集約LB群22の分配割合を決定する(ステップS19)。更に、プロセッサ36は、集約LB群22及びVNF群21の転送経路及びトラヒック割合を決定した後(ステップS20)、集約LB群22及びVNF群21を汎用サーバ2B上の仮想領域に配置して、その機能を起動する(ステップS21)。更に、プロセッサ36は、集約LB群22の分配割合を仮想領域上の集約LB13Aに設定すると共に、VNF群21のトラヒック割合を仮想領域上の各VNF12に設定し(ステップS22)、図4に示す処理動作を終了する。その結果、構成要求に応じたサービスチェイン20を仮想領域上に配置できる。プロセッサ36は、構成要求を受信しなかった場合(ステップS11否定)、図4に示す処理動作を終了する。
上記例では、サービスチェイン20の最前段に複数の集約LB13Aを配置し、集約LB13Aから終端のVNF群21までのトラヒック量が均等になるように集約LB群22の分配割合及び各VNF12のトラヒック割合を決定する。その結果、LB13の数を少なくすることで転送遅延を抑制できると共に、有限な仮想領域の資源を節減できる。
しかしながら、上記例のサービスチェイン20に使用する集約LB13は、受信したパケットを複数の終端宛先に分散する終端型LBである。図5は、サービスチェイン20A内の集約LB群22のトラヒック分散方法の一例を示す説明図である。図5に示すサービスチェイン20Aは、VNF#1、VNF#2、VNF#3、VNF#4及びVNF#5の順に配置し、最前段のVNF#1の前段に集約LB群22を配置した構成である。尚、集約LB群22は、例えば、LB1A及びLB1Bを有し、終端型LBである。VNF#1は、例えば、FW1A〜FW1Cを有し、VNF#2は、例えば、Proxy1A〜Proxy1Dを有し、VNF#3は、例えば、Proxy2A〜Proxy2Cを有する。また、VNF#4は、例えば、FW2A及びFW2Bを有し、VNF#5は、Proxy3A及びProxy3Bを有する。VNF#2、VNF#3及びVNF#5は終端のVNF群21である。終端のVNF群21は、TCPセッションを終端してパケット処理を実行し、新しいTCPセッションにパケットを送信するNW機能や、受信パケットの宛先IPアドレスを他の宛先IPアドレスに変換して中継するNW機能がある。
図5に示すサービスチェイン20A内の集約LB1A及び1Bの受信トラヒックの終端宛先は、FW1A〜FW1Cの後段にProxy1A〜Proxy1Dが配置された場合、終端のVNF数、すなわちProxy1A〜Proxy1Dの台数の4台である。従って、集約LB1A及び1Bは、受信トラヒックを4台のProxy1A〜Proxy1Dに分散することになる。しかしながら、集約LB1A及び1Bは、Proxy1A〜Proxy1Dの後段に終端のVNF12が配置された場合、VNF#2内の各終端のVNF12までのトラヒック量を分散できるものの、VNF#2以降のVNF#3及びVNF#5のトラヒック量を分散できない。従って、終端型LBは、最初の終端のVNF群21内の各終端のVNF12の台数でトラヒック量を分散できるものの、最初の終端のVNF群21の後段の終端のVNF群21内の終端のVNF12の台数でトラヒック量を分散できない。
そこで、このような事態に対処すべく、最初の終端のVNF群21の後段以降の終端のVNF群21の終端のVNF12の台数でもトラヒック量を分散できるサービスチェインシステム1の実施の形態につき、実施例1として以下に説明する。尚、上記例のサービスチェインシステム1と同一の構成には同一符号を付すことで、その重複する構成及び動作の説明については省略する。
図6は、実施例1のサービスチェイン20Bの配置構成の一例を示す説明図である。図6に示すサービスチェイン20Bは、VNF#1〜VNF#5の複数のVNF群21と、複数のVNF群21の内、最前段のVNF#1の前段に配置された集約LB群22とを有する。VNF#1は、例えば、FW1A〜FW1Cを有する。VNF#2は、例えば、Proxy1A〜Proxy1Dを有する。VNF#3は、例えば、Proxy2A〜Proxy2Cを有する。VNF#4は、例えば、FW2A及びFW2Bを有する。VNF#5は、例えば、Proxy3A及びProxy3Bを有する。尚、VNF#2、VNF#3及びVNF#5は、終端のVNF群21である。集約LB群22はL3終端型LB、VNF#2、VNF#3及びVNF#5はL3終端型VNF、VNF#1及びVNF#4はL3中継型VNFである。
図7は、実施例1の管理サーバ3内のプロセッサ36の機能構成の一例を示す説明図である。図7に示すプロセッサ36は、第1の決定部41と、第2の決定部42と、第3の決定部43と、設定部44とを有する。補助記憶装置34には、サービスチェイン構築方法に関わる処理プログラムが記憶されているものとする。プロセッサ36は、サービスチェイン構築方法に関わる処理プログラムを補助記憶装置34から読み出し、プロセッサ36上で第1の決定部41、第2の決定部42、第3の決定部43及び設定部44を機能として実行する。第1の決定部41は、構成要求に応じてサービスチェイン20Bの集約LB群22の数及びトポロジ構成を決定する。
第2の決定部42は、区分決定部51と、指定部52と、経路決定部53とを有する。区分決定部51は、サービスチェイン20Bのトポロジ構成から、終端のVNF群21及び集約LB群22に基づき、LB区間23及びLBレス区間24を決定する。LB区間23は、集約LB群22から後段の直近の終端のVNF群21までの区間である。LBレス区間24は、終端のVNF群21から後段の直近の終端のVNF群21までの集約LB13Aなしの区間である。図6に示すLB区間23は、例えば、集約LB群22(LB1A、LB1B)と終端のVNF#2(Proxy1A〜Proxy1D)との間の区間である。第1のLBレス区間24Aは、例えば、終端のVNF#2(Proxy1A〜Proxy1D)と終端のVNF#3(Proxy2A〜Proxy2C)との間の区間である。第2のLBレス区間24Bは、例えば、終端のVNF#3(Proxy2A〜Proxy2C)と終端のVNF#5(Proxy3A、Proxy3B)との間の区間である。
指定部52は、LB区間23→第1のLBレス区間24A→第2のLBレス区間24Bを昇順に順次指定する。経路決定部53は、LB区間23内の集約LB群22及びVNF群21内の転送経路及びトラヒック割合を決定する。LB区間23内の集約LB群22及びVNF群21の転送経路のトラヒック割合は、転送経路上のVNF群21で平均化できるトラヒック量である。経路決定部53は、LBレス区間24内のVNF群21の転送経路及びトラヒック割合を決定する。LBレス区間24内のVNF群21の転送経路のトラヒック割合は、LBレス区間24内の最後段の終端のVNF群21の受信量が平均化するように送信し、かつ、LBレス区間24内の全VNF12が処理するトラヒック量が平均化できるように分散する。
第3の決定部43は、LB区間23及びLBレス区間24内の集約LB群22及びVNF群21の転送経路及びトラヒック割合に基づき、集約LB群22の分配割合及びVNF群21内の転送経路及びトラヒック割合を決定する。設定部44は、トポロジ構成に基づき、仮想領域上にVNF群21及び集約LB群22を配置して起動し、配置されたVNF群21及び集約LB群22に転送経路及びトラヒック割合を設定する。設定部44は、配置部44Aと、割合設定部44Bとを有する。配置部44Aは、トポロジ構成に基づき、仮想領域上にVNF群21及び集約LB群22を配置して起動する。割合設定部44Bは、配置されたVNF群21及び集約LB群22に転送経路及びトラヒック割合を設定する。
図8Aは、LB区間23内の終端宛先の一例を示す説明図である。尚、図8Aに示すLB区間23内の終端のVNF群21は、例えば、VNF#2内のProxy1A〜Proxy1Dとする。第2の決定部42内の経路決定部53は、集約LB群22の前段に区間がなく、集約LB群22がLB1A及びLB1Bの2台であるため、集約LB群22のトラヒック割合(受信量)を全体トラヒック量の1/2と決定する。経路決定部53は、LB区間23内の集約LB群22の終端宛先となる終端のVNF群21(VNF#2内のProxy1A〜1D)を決定する。
図8Bは、LB区間23内の転送経路の一例を示す説明図である。経路決定部53は、LB区間23内の集約LB群22と終端のVNF群21との間の全経路が分散する転送経路を決定する。経路決定部53は、LB区間23内のLB1AからProxy1A〜Proxy1Dまでの4本の転送経路及びLB1BからProxy1A〜Proxy1Dまでの4本の転送経路を決定する。
図8Cは、LB区間23内の終端のVNF群21のトラヒック割合(受信量)の一例を示す説明図である。経路決定部53は、集約LB群22のトラヒック割合(送信量)及びLB区間23内の転送経路に基づき、LB区間23内の各転送経路のトラヒック割合を決定する。更に、経路決定部53は、LB区間23内の転送経路のトラヒック割合に基づき、LB区間23内の最後段のVNF#2のトラヒック割合(受信量)を決定する。
経路決定部53は、LB区間23内の複数のVNF群21の内、VNF台数が最大個数のVNF#2のトラヒック量が平均化できるように各転送経路を流れるトラヒック量を算出する。図8Cの例では、VNF#2内の各Proxyのトラヒック量は1/8である。LB1Aのトラヒック割合は、全体トラヒック量の1/8、すなわちLB1Aが受信するトラヒック量の1/4をProxy1A宛にFW1A経由で送信となる。更に、LB1Aのトラヒック割合は、全体トラヒック量の1/8、すなわちLB1Aが受信するトラヒック量の1/4をProxy1B宛にFW1B経由で送信となる。LB1Aのトラヒック割合は、全体トラヒック量の1/8、すなわちLB1Aが受信するトラヒック量の1/4をProxy1C宛にFW1C経由で送信となる。更に、LB1Aのトラヒック割合は、全体トラヒック量の1/8、すなわちLB1Aが受信するトラヒック量の1/4をProxy1D宛にFW1A経由で送信となる。LB1Bのトラヒック割合は、全体トラヒック量の1/8、すなわちLB1Bが受信するトラヒック量の1/4をProxy1A宛にFW1B経由で送信となる。更に、LB1Bのトラヒック割合は、全体トラヒック量の1/8、すなわちLB1Bが受信するトラヒック量の1/4をProxy1B宛にFW1C経由で送信となる。LB1Bのトラヒック割合は、全体トラヒック量の1/8、すなわちLB1Bが受信するトラヒック量の1/4をProxy1C宛にFW1A経由で送信となる。更に、LB1Bのトラヒック割合は、全体トラヒック量の1/8、すなわちLB1Bが受信するトラヒック量の1/4をProxy1D宛にFW1B経由で送信となる。Proxy1Aのトラヒック割合を全体トラヒック量の1/4、Proxy1Bのトラヒック割合を全体トラヒック量の1/4、Proxy1Cのトラヒック割合を全体トラヒック量の1/4、Proxy1Dのトラヒック割合を全体トラヒック量の1/4とする。
図9Aは、第1のLBレス区間24A内の終端宛先の一例を示す説明図である。図9Aに示す第1のLBレス区間24A内の終端のVNF群21は、例えば、VNF#3のProxy2A〜Proxy2Cとする。経路決定部53は、LB区間23内の最後段のVNF#2のトラヒック割合(受信量)を第1のLBレス区間24A内の最前段のVNF#2のトラヒック割合(送信量)とする。Proxy1AはProxy2A宛に全体トラヒック量の1/4送信、Proxy1BはProxy2B宛に全体トラヒック量の1/4送信となる。また、Proxy1CはProxy2C宛に全体トラヒック量の1/4送信、Proxy1DはProxy2A宛に全体トラヒック量の1/4送信となる。経路決定部53は、第1のLBレス区間24A内のVNF#2(Proxy1A〜Proxy1D)の終端宛先となる最後段の終端のVNF群21(VNF#3内のProxy2A〜Proxy2C)を決定する。
図9Bは、第1のLBレス区間24A内の転送経路の一例を示す説明図である。経路決定部53は、第1のLBレス区間24A内のVNF#2とVNF#3との間の全経路が分散する転送経路を決定する。尚、第1のLBレス区間24A内の各転送経路を通過するトラヒック量が均一になるように転送経路を決定する。経路決定部53は、第1のLBレス区間24A内のProxy1AとProxy2Aとの間、Proxy1BとProxy2Bとの間、Proxy1CとProxy2Cとの間、Proxy1DとProxy2Aとの間の転送経路を決定する。
図9Cは、第1のLBレス区間24A内の最後段のVNF群21のトラヒック割合(受信量)の一例を示す説明図である。経路決定部53は、VNF#2のトラヒック割合(送信量)及び第1のLBレス区間24A内の転送経路に基づき、第1のLBレス区間24A内の各転送経路のトラヒック割合を決定する。更に、経路決定部53は、第1のLBレス区間24A内の転送経路のトラヒック割合に基づき、第1のLBレス区間24A内の最後段のVNF#3のトラヒック割合(受信量)を決定する。VNF#3内のProxy2Aのトラヒック割合は全体トラヒック量の2/4、Proxy2Bのトラヒック割合は全体トラヒック量の1/4、Proxy2Cのトラヒック割合は全体トラヒック量の1/4とする。
図10Aは、第2のLBレス区間24B内の終端宛先の一例を示す説明図である。尚、第2のLBレス区間24Bの終端のVNF群21は、例えば、VNF#5のProxy3A及び3Bとする。経路決定部53は、第1のLBレス区間24A内の最後段のVNF#3のトラヒック割合(受信量)を第2のLBレス区間24B内の最前段のVNF#3のトラヒック割合(送信量)とする。Proxy2AはProxy3A宛に全体トラヒック量の2/4送信、Proxy2BはProxy3B宛に全体トラヒック量の1/4送信、Proxy2CはProxy3B宛に全体トラヒック量の1/4送信となる。経路決定部53は、第2のLBレス区間24B内の最前段のVNF#3内のProxy2A〜Proxy2Cの終端宛先となる最後段の終端のVNF群21(VNF#5内のProxy3A及び3B)を決定する。
図10Bは、第2のLBレス区間24B内の転送経路の一例を示す説明図である。経路決定部53は、第2のLBレス区間24B内のVNF#3とVNF#5との間の全経路が分散する転送経路を決定する。尚、転送経路の決定方法としては、各種方法があるが、例えば、トラヒック量が大きい順に経路を決定するものとする。この場合、Proxy2AからProxy3Aの経路を最初に決定する。この際、各段の最も通過トラヒック量が小さいVNF12を経由ノードとして経路を決定していく。FW2A及びFW2Bは通過トラヒックがないため、FW2Aが選択され、Proxy2A→FW2A→Proxy3Aの転送経路を算出する。次に帯域が大きいProxy2BからProxy3Bの経路を決定する。FW2Aは既に全体トラヒックの2/4が通過しているため、FW2Bが選択され、Proxy2B→FW2B→Proxy3Bの転送経路を算出する。同様に繰り返し全ての転送経路を決定する。経路決定部53は、第2のLBレス区間24B内のProxy2AとProxy3Aとの間、Proxy2BとProxy3Bとの間、Proxy2CとProxy3Bとの間の転送経路を決定する。
図10Cは、第2のLBレス区間24B内の最後段の終端のVNF群21のトラヒック割合(受信量)の一例を示す説明図である。経路決定部53は、VNF#3のトラヒック割合(送信量)及び第2のLBレス区間24B内の転送経路に基づき、第2のLBレス区間24B内の各転送経路のトラヒック割合を決定する。更に、経路決定部53は、第2のLBレス区間24B内の転送経路のトラヒック割合に基づき、第2のLBレス区間24B内の終端のVNF#5のトラヒック割合(受信量)を決定する。VNF#5のProxy3Aのトラヒック割合は全体トラヒック量の1/2、Proxy3Bのトラヒック割合は全体トラヒック量の1/2とする。
第3の決定部43は、LB区間23及びLBレス区間24内の転送経路及び各転送経路のトラヒック割合に基づき設定情報を設定部44に登録する。設定情報は、LB1Aのトラヒック割合、LB1Bのトラヒック割合、LB1A、LB1B、FW1A〜FW1C、Proxy1A〜Proxy1D、Proxy2A〜Proxy2C、FW2A及びFW2B、Proxy3A及び3Bの転送経路となる。
LB1Aのトラヒック割合は、1/4のトラヒックをProxy1Aへ送信、1/4のトラヒックをProxy1Bへ送信、1/4のトラヒックをProxy1Cへ送信、1/4のトラヒックをProxy1Dへ送信に設定される。LB1Bのトラヒック割合は、1/4のトラヒックをProxy1Aへ送信、1/4のトラヒックをProxy1Bへ送信、1/4のトラヒックをProxy1Cへ送信、1/4のトラヒックをProxy1Dへ送信に設定される。
LB1Aの転送経路は、Proxy1A宛のトラヒックをFW1Aへ転送、Proxy1B宛のトラヒックをFW1Bへ転送、Proxy1C宛のトラヒックをFW1Cへ転送、Proxy1D宛のトラヒックをFW1Aへ転送に設定される。LB1Bの転送経路は、Proxy1A宛のトラヒックをFW1Bへ転送、Proxy1B宛のトラヒックをFW1Cへ転送、Proxy1C宛のトラヒックをFW1Aへ転送、Proxy1D宛のトラヒックをFW1Bへ転送に設定される。
FW1Aの転送経路は、Proxy1A宛のトラヒックをProxy1Aへ転送、Proxy1C宛のトラヒックをProxy1Cへ転送、Proxy1D宛のトラヒックをProxy1Dへ転送に設定される。FW1Bの転送経路は、Proxy1A宛のトラヒックをProxy1Aへ転送、Proxy1B宛のトラヒックをProxy1Bへ転送、Proxy1D宛のトラヒックをProxy1Dへ転送に設定される。FW1Cの転送経路は、Proxy1B宛のトラヒックをProxy1Bへ転送、Proxy1C宛のトラヒックをProxy1Cへ転送に設定される。
Proxy1Aの上位Proxy設定は、Proxy2Aへ送信、Proxy1Bの上位Proxy設定は、Proxy2Bへ送信となる。Proxy1Cの上位Proxy設定は、Proxy2Cへ送信、Proxy1Dの上位Proxy設定は、Proxy2Aへ送信となる。
Proxy1Aの転送経路は、Proxy2A宛のトラヒックをProxy2Aへ転送に設定される。Proxy1Bの転送経路は、Proxy2B宛のトラヒックをProxy2Bへ転送に設定される。Proxy1Cの転送経路は、Proxy2C宛のトラヒックをProxy2Cへ転送に設定される。Proxy1Dの転送経路は、Proxy2A宛のトラヒックをProxy2Aへ転送に設定される。
Proxy2Aの上位Proxy設定は、Proxy3Aへ送信、Proxy2Bの上位Proxy設定は、Proxy3Bへ送信となる。Proxy2Cの上位Proxy設定は、Proxy3Bへ送信となる。
Proxy2Aの転送経路は、Proxy3A宛のトラヒックをFW2Aへ転送に設定される。Proxy2Bの転送経路は、Proxy3B宛のトラヒックをFW2Bへ転送に設定される。Proxy2Cの転送経路は、Proxy3B宛のトラヒックをFW2Bへ転送に設定される。FW2Aの転送経路は、Proxy3A宛のトラヒックをProxy3Aへ転送に設定される。FW2Bの転送経路は、Proxy3B宛のトラヒックをProxy3Bへ転送に設定される。
次に実施例1のサービスチェインシステム1の動作について説明する。図11は、第2のサービスチェイン構築処理に関わる管理サーバ3内のプロセッサ36の処理動作の一例を示すフローチャートである。
第2の決定部42内の区分決定部51は、ステップS13にてサービスチェイン20Bのトポロジ構成を決定後、サービスチェイン20Bの集約LB群22及び終端のVNF群21に基づき、LB区間23及びLBレス区間24を決定する(ステップS31)。第2の決定部42内の経路決定部53は、LB区間23内の最前段の集約LB群22のトラヒック割合(送信量)を決定する(ステップS32)。経路決定部53は、LB区間23内の最前段の集約LB群22の最終宛先となる最後段の終端のVNF群21を決定する(ステップS33)。尚、経路決定部53は、終端宛先として図8Aに示すようにVNF#2(Proxy1A〜Proxy1D)を決定する。
経路決定部53は、LB区間23内の集約LB群22と終端のVNF群21との間の全経路が分散する転送経路を決定する(ステップS34)。尚、経路決定部53は、最短経路計算等で図8Bに示すようにLB1AとVNF#2との間の3経路、LB1BとVNF#2との間の3経路を決定する。経路決定部53は、LB区間23内の集約LB群22のトラヒック割合(送信量)及びLB区間23内の転送経路に基づき、LB区間23内の各転送経路のトラヒック割合を決定する(ステップS35)。
経路決定部53は、LB区間23内の転送経路のトラヒック割合に基づき、LB区間23内の最後段の終端のVNF群21のトラヒック割合(受信量)を決定する(ステップS36)。
第2の決定部42内の指定部52は、次の区間がLBレス区間24であるか否かを判定する(ステップS37)。指定部52は、次の区間がLBレス区間24の場合(ステップS37肯定)、LBレス区間24を指定する(ステップS38)。経路決定部53は、指定LBレス区間の前区間内の最後段の終端のVNF群21のトラヒック割合(受信量)を指定LBレス区間24内の最前段のVNF群21のトラヒック割合(送信量)とする(ステップS39)。
経路決定部53は、指定LBレス区間24内の最前段のVNF群21と最後段のVNF群21との間の全経路が分散する転送経路を決定する(ステップS40)。経路決定部53は、指定LBレス区間24内の各転送経路のトラヒック割合を決定する(ステップS41)。
経路決定部53は、指定LBレス区間24内の転送経路のトラヒック割合に基づき、指定LBレス区間24内の最後段の終端のVNF群21のトラヒック割合(受信量)を決定する(ステップS42)。そして、経路決定部53は、次の区間がLBレス区間24であるか否かを判定すべく、ステップS37に移行する。
指定部52は、次の区間がLBレス区間24でない場合(ステップS37否定)、集約LB群22の分配割合を決定すべく、ステップS19に移行する。その結果、構成要求に応じたサービスチェイン20Bを仮想領域上に配置できる。
実施例1の管理サーバ3は、サービスチェイン20B内の集約LB群22及び終端のVNF群21の配置位置に基づき、サービスチェイン20BをLB区間23及びLBレス区間24に区分する。管理サーバ3は、サービスチェイン20Bの最前段から最後段までの昇順でLB区間23及びLBレス区間24を順次指定する。管理サーバ3は、指定されたLB区間23及びLBレス区間24毎に最前段のトラヒック割合(送信量)、転送経路のトラヒック割合及び最後段のトラヒック割合(受信量)を決定する。そして、管理サーバ3は、LB区間23及びLBレス区間24内の最前段のトラヒック割合、転送経路のトラヒック割合及び最後段のトラヒック割合に基づき、サービスチェイン20B内の集約LB群22の分配割合、VNF群21のトラヒック割合を決定する。その結果、最初の終端のVNF群21後段以降の終端のVNF群21を配置したサービスチェイン20Bであっても、最初の終端のVNF群21後段以降のVNF群21の台数を反映したトラヒック量を分散できる。しかも、LB13に割当てるはずの仮想リソースを削減することで、低コストのサービスチェイン20Bを構築できる。
管理サーバ3は、サービスチェイン20B内のLB区間23→第1のLBレス区間24A→第2のLBレス区間24Bの順に指定する。管理サーバ3は、第1のLBレス区間24Aが指定された場合、前区間であるLB区間23内の最後段のVNF群21のトラヒック割合を第1のLBレス区間24A内の最前段のVNF群21のトラヒック割合に設定する。また、管理サーバ3は、第2のLBレス区間24Bが指定された場合、前区間である第1のLBレス区間24A内の最後段のVNF群21のトラヒック割合を第2のLBレス区間24B内の最前段のVNF群21のトラヒック割合に設定する。トラヒック割合を設定する際の処理負担を軽減できる。
尚、図11に示すステップS35のLB区間23内の転送経路のトラヒック割合を決定する処理やステップS41のLBレス区間24内の転送経路のトラヒック割合を決定する処理としては、区間内の負荷分散対象のVNF群21の指定があるか否かを判定する。プロセッサ36は、区間内の負荷分散対象のVNF群21の指定がある場合、負荷分散対象のVNF群21内の各VNF12のトラヒック量が均等になるように区間内の各転送経路のトラヒック割合を決定しても良い。また、プロセッサ36は、区間内の負荷分散対象のVNF群21の指定がない場合、区間内の最大個数のVNF群21内の各VNF12のトラヒック量が均等になるように各転送経路のトラヒック割合を決定する。
図12は、LB区間23内の転送経路及びVNF群21のトラヒック割合の一例を示す説明図である。尚、LB区間23内のVNF#1(FW1A〜FW1C)内のトラヒック割合を均等に全体トラヒック量の1/3に設定し、FW1A及びFW1Bに3本の経路、FW1Cに2本の経路を設定した場合を例示している。経路決定部53は、LB区間23内で負荷分散対象のVNF群21としてVNF#1が指定された場合、負荷分散対象のVNF#1のトラヒック量が均等になるようにLB区間23内の各転送経路のトラヒック割合を決定する。経路決定部53は、LB区間23内の各転送経路のトラヒック割合に基づき、VNF#2のトラヒック割合を決定する。
図12の例では、VNF#2内の各Proxyのトラヒック量は1/9である。LB1Aのトラヒック割合は、全体トラヒック量の1/9、すなわちLB1Aが受信するトラヒック量の2/9をProxy1A宛にFW1A経由で送信となる。更に、LB1Aのトラヒック割合は、全体トラヒック量の1/9、すなわちLB1Aが受信するトラヒック量の2/9をProxy1B宛にFW1B経由で送信となる。LB1Aのトラヒック割合は、全体トラヒック量の1/9、すなわちLB1Aが受信するトラヒック量の2/9をProxy1C宛にFW1C経由で送信となる。更に、LB1Aのトラヒック割合は、全体トラヒック量の1/6、すなわちLB1Aが受信するトラヒック量の3/9をProxy1D宛にFW1A経由で送信となる。LB1Bのトラヒック割合は、全体トラヒック量の1/9、すなわちLB1Bが受信するトラヒック量の2/9をProxy1A宛にFW1B経由で送信となる。更に、LB1Bのトラヒック割合は、全体トラヒック量の1/6、すなわちLB1Bが受信するトラヒック量の3/9をProxy1B宛にFW1C経由で送信となる。LB1Bのトラヒック割合は、全体トラヒック量の1/9、すなわちLB1Bが受信するトラヒック量の2/9をProxy1C宛にFW1A経由で送信となる。更に、LB1Bのトラヒック割合は、全体トラヒック量の1/9、すなわちLB1Bが受信するトラヒック量の2/9をProxy1D宛にFW1B経由で送信となる。その結果、VNF#2内のProxy1Aのトラヒック割合は全体トラヒック量の4/18、Proxy1Bのトラヒック割合は全体トラヒック量の5/18となる。更に、Proxy1Cのトラヒック割合は全体トラヒック量の5/18、Proxy1Dのトラヒック割合は全体トラヒック量の4/18となる。
尚、上記実施例1の管理サーバ3では、最前段のLB区間23→第1のLBレス区間24A→第2のLBレス区間24Bの昇順に区間毎の転送経路及びトラヒック割合を順次算出した。しかしながら、LB区間23→第1のLBレス区間24A→第2のLBレス区間24Bの昇順に限定されるものではなく、適宜変更可能である。例えば、第2のLBレス区間24B→第1のLBレス区間24A→LB区間23の降順に区間毎の転送経路及びトラヒック割合を順次算出しても良く、その実施の形態につき、実施例2として以下に説明する。尚、上記実施例1のサービスチェインシステム1と同一の構成には同一符号を付することで、その重複する構成及び動作の説明については省略する。
図13は、実施例2の管理サーバ3のプロセッサ36の機能構成の一例を示す説明図である。図13に示す第2の決定部42A内の指定部51は、第2のLBレス区間24B→第1のLBレス区間24A→LB区間23の降順に区間を順次指定する。第2の決定部42A内の経路決定部53Aは、LB区間23及びLBレス区間24の転送経路及びトラヒック割合に基づき、サービスチェイン20Bの集約LB群22の分配割合及び、VNF群21及び転送経路のトラヒック割合を決定する。
図14Aは、第2のLBレス区間24B内の最後段の終端のVNF群21のトラヒック割合(受信量)の一例を示す説明図である。指定部52は、サービスチェイン20Bの最後段の第2のLBレス区間24Bを指定する。経路決定部53Aは、第2のLBレス区間24B内の終端宛先のVNF群21内の終端のVNF12の台数が2台であるため、第2のLBレス区間24B内の終端のVNF群21のトラヒック割合(受信量)を全体トラヒック量の1/2とする。
図14Bは、第2のLBレス区間24B内の転送経路の一例を示す説明図である。経路決定部53Aは、第2のLBレス区間24B内の最後段の終端のVNF群21(VNF#5内のProxy3A及び3B)の送信元となる最前段のVNF#3内のProxy2A〜Proxy2Cを決定する。経路決定部53Aは、第2のLBレス区間24B内のVNF#3とVNF#5との間の全経路が分散する転送経路を決定する。経路決定部53Aは、第2のLBレス区間24B内のProxy2AとProxy3Aとの間、Proxy2BとProxy3Bとの間、Proxy2CとProxy3Aとの間の転送経路を決定する。
図14Cは、第2のLBレス区間24B内の最前段の終端のVNF群21のトラヒック割合(送信量)の一例を示す説明図である。経路決定部53Aは、第2のLBレス区間24B内の最後段のVNF群21のトラヒック割合(受信量)及び転送経路に基づき、第2のLBレス区間24B内の各転送経路のトラヒック割合を決定する。更に、経路決定部53Aは、第2のLBレス区間24B内の転送経路のトラヒック割合に基づき、第2のLBレス区間24B内の最前段のVNF群21のトラヒック割合(送信量)を決定する。Proxy2Aのトラヒック割合は全体トラヒック量の1/4、Proxy2Bのトラヒック割合は全体トラヒック量の2/4、Proxy2Cのトラヒック割合は全体トラヒック量の1/4とする。
図15Aは、第1のLBレス区間24A内の最後段の終端のVNF群21のトラヒック割合(受信量)の一例を示す説明図である。経路決定部53Aは、第2のLBレス区間24B内の最前段のVNF群21のトラヒック割合(送信量)を第1のLBレス区間24A内の最後段のVNF群21のトラヒック割合(受信量)とする。Proxy1AはProxy3A宛に全体トラヒック量の2/4受信、Proxy1BはProxy3B宛に全体トラヒック量の1/4受信、Proxy1CはProxy2C宛に全体トラヒック量の1/4受信となる。
図15Bは、第1のLBレス区間24A内の転送経路の一例を示す説明図である。経路決定部53Aは、第1のLBレス区間24A内の最後段の終端のVNF群21(VNF#3内のProxy2A〜Proxy2C)の送信元となる最前段のVNF#2内のProxy1A〜Proxy1Dを決定する。経路決定部53Aは、第1のLBレス区間24A内のVNF#2とVNF#3との間の全経路が分散する転送経路を決定する。経路決定部53Aは、第1のLBレス区間24A内のProxy1AとProxy2Aとの間、Proxy1BとProxy2Bとの間、Proxy1CとProxy2Bとの間、Proxy1CとProxy2Cとの間の転送経路を決定する。
図15Cは、第1のLBレス区間24A内の最前段の終端のVNF群21のトラヒック割合(送信量)の一例を示す説明図である。経路決定部53Aは、第1のLBレス区間24A内の最後段のVNF群21のトラヒック割合(受信量)及び転送経路に基づき、第1のLBレス区間24A内の各転送経路のトラヒック割合を決定する。更に、経路決定部53Aは、第1のLBレス区間24A内の転送経路のトラヒック割合に基づき、第1のLBレス区間24A内の最前段のVNF群21のトラヒック割合(送信量)を決定する。Proxy1Aのトラヒック割合は全体トラヒック量の1/4、Proxy1Bのトラヒック割合は全体トラヒック量の1/4、Proxy1Cのトラヒック割合は全体トラヒック量の1/4、Proxy1Dのトラヒック割合は全体トラヒック量の1/4とする。
図16Aは、LB区間23内の最後段の終端のVNF群21のトラヒック割合(受信量)の一例を示す説明図である。経路決定部53Aは、第1のLBレス区間24A内の最前段のVNF群21のトラヒック割合(送信量)をLB区間23内の最後段のVNF群21のトラヒック割合(受信量)とする。
図16Bは、LB区間23内の転送経路の一例を示す説明図である。経路決定部53Aは、LB区間23内の最後段の終端のVNF群21(VNF#2内のProxy1A〜Proxy1D)の送信元となる最前段の集約LB群22内のLB1A及び1Bを決定する。経路決定部53Aは、LB区間23内の集約LB群22とVNF#2との間の全経路が分散する転送経路を決定する。経路決定部53Aは、LB区間23内のLB1AとProxy1Aとの間、LB1AとProxy1Bとの間、LB1AとProxy1Cとの間、LB1AとProxy1Dとの間の転送経路を決定する。経路決定部53Aは、LB区間23内のLB1BとProxy1Aとの間、LB1BとProxy1Bとの間、LB1BとProxy1Cとの間、LB1BとProxy1Dとの間の転送経路を決定する。
図16Cは、LB区間23内の最前段の集約LB群22のトラヒック割合(送信量)の一例を示す説明図である。経路決定部53Aは、LB区間23内の最後段のVNF群21のトラヒック割合(受信量)及び転送経路に基づき、LB区間23内の各転送経路のトラヒック割合を決定する。更に、経路決定部53Aは、LB区間23内の転送経路のトラヒック割合に基づき、LB区間23内の最前段の集約LB群22のトラヒック割合(送信量)を決定する。LB1Aのトラヒック割合を全体トラヒック量の1/2、LB1Bのトラヒック割合を全体トラヒック量の1/2とする。
第3の決定部43は、LB区間23及びLBレス区間24内の転送経路及び各転送経路のトラヒック割合に基づき設定情報を設定部44に登録する。設定情報は、LB1Aのトラヒック割合、LB1Bのトラヒック割合、LB1A、LB1B、FW1A〜FW1C、Proxy1A〜Proxy1D、Proxy2A〜Proxy2C、FW2A及びFW2B、Proxy3A及び3Bの転送経路となる。
LB1Aのトラヒック割合は、1/4のトラヒックをProxy1Aへ送信、1/4のトラヒックをProxy1Bへ送信、1/4のトラヒックをProxy1Cへ送信、1/4のトラヒックをProxy1Dへ送信に設定される。LB1Bのトラヒック割合は、1/4のトラヒックをProxy1Aへ送信、1/4のトラヒックをProxy1Bへ送信、1/4のトラヒックをProxy1Cへ送信、1/4のトラヒックをProxy1Dへ送信に設定される。
LB1Aの転送経路は、Proxy1A宛のトラヒックをFW1Aへ転送、Proxy1B宛のトラヒックをFW1Bへ転送、Proxy1C宛のトラヒックをFW1Cへ転送、Proxy1D宛のトラヒックをFW1Aへ転送に設定される。LB1Bの転送経路は、Proxy1A宛のトラヒックをFW1Bへ転送、Proxy1B宛のトラヒックをFW1Cへ転送、Proxy1C宛のトラヒックをFW1Aへ転送、Proxy1D宛のトラヒックをFW1Bへ転送に設定される。
FW1Aの転送経路は、Proxy1A宛のトラヒックをProxy1Aへ転送、Proxy1C宛のトラヒックをProxy1Cへ転送、Proxy1D宛のトラヒックをProxy1Dへ転送に設定される。FW1Bの転送経路は、Proxy1A宛のトラヒックをProxy1Aへ転送、Proxy1B宛のトラヒックをProxy1Bへ転送、Proxy1D宛のトラヒックをProxy1Dへ転送に設定される。FW1Cの転送経路は、Proxy1B宛のトラヒックをProxy1Bへ転送、Proxy1C宛のトラヒックをProxy1Cへ転送に設定される。
Proxy1Aの上位Proxy設定は、Proxy2Aへ送信、Proxy1Bの上位Proxy設定は、Proxy2Bへ送信となる。Proxy1Cの上位Proxy設定は、Proxy2Cへ送信、Proxy1Dの上位Proxy設定は、Proxy2Aへ送信となる。
Proxy1Aの転送経路は、Proxy2A宛のトラヒックをProxy2Aへ転送に設定される。Proxy1Bの転送経路は、Proxy2B宛のトラヒックをProxy2Bへ転送に設定される。Proxy1Cの転送経路は、Proxy2C宛のトラヒックをProxy2Cへ転送に設定される。Proxy1Dの転送経路は、Proxy2A宛のトラヒックをProxy2Aへ転送に設定される。
Proxy2Aの上位Proxy設定は、Proxy3Aへ送信、Proxy2Bの上位Proxy設定は、Proxy3Bへ送信となる。Proxy2Cの上位Proxy設定は、Proxy3Bへ送信となる。
Proxy2Aの転送経路は、Proxy3A宛のトラヒックをFW2Aへ転送に設定される。Proxy2Bの転送経路は、Proxy3B宛のトラヒックをFW2Bへ転送に設定される。Proxy2Cの転送経路は、Proxy3B宛のトラヒックをFW2Bへ転送に設定される。FW2Aの転送経路は、Proxy3A宛のトラヒックをProxy3Aへ転送に設定される。FW2Bの転送経路は、Proxy3B宛のトラヒックをProxy3Bへ転送に設定される。
次に実施例2のサービスチェインシステム1の動作について説明する。図17は、第3のサービスチェイン構築処理に関わる管理サーバ3内のプロセッサ36の処理動作の一例を示すフローチャートである。
第2の決定部42A内の区分決定部51は、ステップS13にてサービスチェイン20Bのトポロジ構成を決定後、サービスチェイン20Bの集約LB群22及び終端のVNF群21に基づき、LB区間23及びLBレス区間24を決定する(ステップS51)。
第2の決定部42A内の経路決定部53Aは、サービスチェイン20Bの最後段のLBレス区間24を指定し(ステップS52)、指定LBレス区間24内の最後段の終端のVNF群21のトラヒック割合(受信量)を決定する(ステップS53)。
経路決定部53Aは、指定LBレス区間24内の最前段の終端のVNF群21と最後段の終端のVNF群21との間の全経路が分散する転送経路を決定する(ステップS54)。経路決定部53Aは、指定LBレス区間24内の各転送経路のトラヒック割合を決定する(ステップS55)。
経路決定部53Aは、指定LBレス区間24内の転送経路のトラヒック割合に基づき、指定LBレス区間24内の最前段の終端のVNF群21のトラヒック割合(送信量)を決定する(ステップS56)。
第2の決定部42A内の指定部52は、降順順序において次の区間がLBレス区間24であるか否かを判定する(ステップS57)。尚、降順順序とは、例えば、第2のLBレス区間24B→第1のLBレス区間24A→LB区間23の順序である。指定部52は、次の区間がLBレス区間24の場合(ステップS57肯定)、LBレス区間24を指定する(ステップS58)。更に、経路決定部53Aは、指定LBレス区間24の後区間の最前段のVNF群21のトラヒック割合(送信量)を指定LBレス区間24の最後段のVNF群21のトラヒック割合(受信量)とし(ステップS59)、ステップS54に移行する。
指定部52は、ステップS57にて次の区間がLBレス区間24でない場合(ステップS57否定)、LB区間23を指定する(ステップS60)。経路決定部53Aは、指定LB区間23の後区間の最前段の終端のVNF群21のトラヒック割合(送信量)をLB区間23の最後段の終端のVNF群21のトラヒック割合(受信量)とする(ステップS61)。更に、経路決定部53Aは、指定LB区間23内の最前段の集約LB群22と最後段の終端のVNF群21との間の全経路が分散する転送経路を決定する(ステップS62)。経路決定部53Aは、指定LB区間23内の各転送経路のトラヒック割合を決定する(ステップS63)。
経路決定部53Aは、指定LB区間23内の転送経路のトラヒック割合に基づき、指定LB区間23内の最前段の集約LB群22のトラヒック割合(送信量)を決定し(ステップS64)、集約LB群22の分配割合を決定すべく、ステップS19に移行する。
実施例2の管理サーバ3は、サービスチェイン20B内の集約LB群22及び終端のVNF群21の配置位置に基づき、サービスチェイン20BをLB区間23及びLBレス区間24に区分する。管理サーバ3は、サービスチェイン20Bの最後段から最前段までの降順でLB区間23及びLBレス区間24を順次指定する。管理サーバ3は、指定されたLB区間23及びLBレス区間24毎に最前段のトラヒック割合(送信量)、転送経路のトラヒック割合及び最後段のトラヒック割合(受信量)を決定する。そして、管理サーバ3は、LB区間23及びLBレス区間24内の最前段のトラヒック割合、転送経路のトラヒック割合及び最後段のトラヒック割合に基づき、サービスチェイン20B内の集約LB群22の分配割合、VNF群21のトラヒック割合を決定する。その結果、最初の終端のVNF群21後段以降の終端のVNF群21を配置したサービスチェイン20Bであっても、最初の終端のVNF群21後段以降のVNF群21の台数を反映したトラヒック量を分散できる。しかも、LB13に割当てるはずの仮想リソースを削減することで、低コストのサービスチェイン20Bを構築できる。
管理サーバ3は、サービスチェイン20B内の第2のLBレス区間24B→第1のLBレス区間24A→LB区間23の順に指定する。管理サーバ3は、第1のLBレス区間24Aが指定された場合、後区間である第2のLBレス区間24B内の最前段のVNF群21のトラヒック割合を第1のLBレス区間24A内の最後段のVNF群21のトラヒック割合に設定する。また、管理サーバ3は、LB区間23が指定された場合、後区間である第1のLBレス区間24A内の最前段のVNF群21のトラヒック割合をLB区間23内の最後段のVNF群21のトラヒック割合に設定する。トラヒック割合を設定する際の処理負担を軽減できる。
尚、実施例1及び2のサービスチェインシステム1では、最前段に集約LB群22を配置する構成としたが、最前段に加えて、途中に集約LB群22を配置しても良く、その場合の実施の形態につき、実施例3として以下に説明する。
図18は、実施例3のサービスチェイン20Cの一例を示す説明図である。図18に示すサービスチェイン20Cは、第1の集約LB群22Aと、VNF#1〜VNF#4と、第2の集約LB群22Bと、VNF#5〜VNF#9とを配置した構成である。第1の集約LB群22Aは、例えば、LB1A及びLB1Bを有し、VNF#1は、例えば、FW1A〜FW1Cを有し、VNF#2は、例えば、Proxy1A〜Proxy1Dを有する。VNF#3は、例えば、Proxy2A〜Proxy2Cを有し、VNF#4は、例えば、FW2A及びFW2Bを有する。また、第2の集約LB群22Bは、LB2A及びLB2Bを有し、VNF#5は、例えば、FW3A〜FW3Cを有する。VNF#6は、例えば、Proxy3A〜Proxy3Dを有し、VNF#7は、例えば、Proxy4A〜Proxy4Cを有し、VNF#8は、例えば、FW4A及びFW4Bを有し、VNF#9は、例えば、Proxy5A及びProxy5Bを有する。尚、VNF#2、#3、#6、#7、#9は、終端のVNF群である。
図19は、実施例3の管理サーバ3内のプロセッサ36の機能構成の一例を示す説明図である。第2の決定部42B内の区分決定部51は、サービスチェイン20C内の集約LB群22及び終端のVNF群21の配置箇所に基づき、サービスチェイン20CをLB区間23及びLBレス区間24に区分する。区分決定部51は、図18に示すトポロジ構成において第1のLB区間23A、第1のLBレス区間24A、第2のLBレス区間24B、第2のLB区間23B、第3のLBレス区間24C及び第4のLBレス区間24Dを決定する。第1のLB区間23Aは、第1の集約LB群22Aと、VNF#1と、VNF#2とを配置した区間である。第1のLBレス区間24Aは、VNF#2と、VNF#3とを配置した区間である。第2のLBレス区間24Bは、VNF#3と、VNF#4と、第2の集約LB群22Bとを配置した区間である。第2のLB区間23Bは、第2の集約LB群22Bと、VNF#5と、VNF#6とを配置した区間である。第3のLBレス区間24Cは、VNF#6とVNF#7とを配置した区間である。第4のLBレス区間24Dは、VNF#7と、VNF#8と、VNF#9とを配置した区間である。
第2の決定部42B内の指定部52は、第1のLB区間23A→第1のLBレス区間24A→第2のLBレス区間24B→第2のLB区間23B→第3のLBレス区間24C→第4のLBレス区間24Dの昇順に順次指定する。第2の決定部42B内の経路決定部53Bは、指定されたLB区間23又はLBレス区間24毎に最前段のトラヒック割合(送信量)、転送経路のトラヒック割合及び最後段のトラヒック割合(受信量)を算出する。経路決定部53Bは、LB区間23及びLBレス区間24毎の最前段のトラヒック割合(送信量)、転送経路のトラヒック割合及び最後段のトラヒック割合(受信量)に基づき、集約LB群22の分配割合及び転送経路上のVNF群21のトラヒック割合を算出する。
尚、経路決定部53Bは、第2のLBレス区間24B内の最後段の第2の集約LB群22Bのトラヒック割合を算出する。経路決定部53Bは、第2のLBレス区間24B内の最後段の第2の集約LB群22Bのトラヒック割合(受信量)を第2のLB区間23B内の最前段の第2の集約LB群22Bのトラヒック割合(送信量)とする。
図20Aは、第2のLB区間23B内の終端宛先の一例を示す説明図である。尚、VNF#6内のProxy3A〜3Dは終端のVNF群21とする。経路決定部53Bは、第2のLBレス区間24B内の最後段の第2の集約LB群22Bのトラヒック割合(受信量)を第2のLB区間23B内の最前段の第2の集約LB群22Bのトラヒック割合(送信量)とする。経路決定部53Bは、第2のLB区間23B内の第2の集約LB群22Bの終端宛先となる終端のVNF群21(VNF#6内のProxy3A〜Proxy3D)を決定する。
図20Bは、第2のLB区間23B内の転送経路の一例を示す説明図である。経路決定部53Bは、第2のLB区間23B内の第2の集約LB群22Bと終端のVNF群21との間の全経路が分散する転送経路を決定する。経路決定部53Bは、第2のLB区間23B内のLB2AからProxy3A〜Proxy3Dまでの4本の転送経路及びLB2BからProxy3A〜Proxy3Dまでの4本の転送経路を決定する。
図20Cは、第2のLB区間23B内の終端のVNF群21のトラヒック割合(受信量)の一例を示す説明図である。経路決定部53Bは、第2のLB区間23B内の最前段の第2の集約LB群22Bのトラヒック割合(送信量)及び転送経路に基づき、第2のLB区間23B内の各転送経路のトラヒック割合を決定する。更に、経路決定部53Bは、第2のLB区間23B内の転送経路のトラヒック割合に基づき、第2のLB区間23B内の最後段のVNF#6のトラヒック割合(受信量)を決定する。Proxy3Aのトラヒック割合は全体トラヒック量の1/4、Proxy3Bのトラヒック割合は全体トラヒック量の1/4、Proxy3Cのトラヒック割合は全体トラヒック量の1/4、Proxy3Dのトラヒック割合は全体トラヒック量の1/4とする。
図21Aは、第3のLBレス区間24C内の終端宛先の一例を示す説明図である。尚、VNF#9のProxy4A〜Proxy4Cは終端のVNF群21とする。経路決定部53Bは、第2のLB区間23B内の最後段のVNF#6のトラヒック割合(受信量)を第3のLBレス区間24C内の最前段のVNF#6のトラヒック割合(送信量)とする。経路決定部53Bは、第3のLBレス区間24C内のVNF#6(Proxy3A〜Proxy3D)の終端宛先となる最後段の終端のVNF群21(VNF#7内のProxy4A〜Proxy4C)と決定する。
図21Bは、第3のLBレス区間24C内の転送経路の一例を示す説明図である。経路決定部53Bは、第3のLBレス区間24C内のVNF#6とVNF#7との間の全経路が分散する転送経路を決定する。経路決定部53Bは、第3のLBレス区間24C内のProxy3AとProxy4Aとの間、Proxy3BとProxy4Bとの間、Proxy3CとProxy4Cとの間、Proxy3DとProxy4Aとの間の転送経路を決定する。
図21Cは、第3のLBレス区間24C内の最後段のVNF群21のトラヒック割合(受信量)の一例を示す説明図である。経路決定部53Bは、第3のLBレス区間24C内の最前段のVNF群21のトラヒック割合(送信量)及び転送経路に基づき、第3のLBレス区間24C内の各転送経路のトラヒック割合を決定する。更に、経路決定部53Bは、第3のLBレス区間24C内の転送経路のトラヒック割合に基づき、第3のLBレス区間24C内の最後段のVNF#7のトラヒック割合(受信量)を決定する。VNF#7内のProxy4Aのトラヒック割合は全体トラヒック量の2/4、Proxy4Bのトラヒック割合は全体トラヒック量の1/4、Proxy4Cのトラヒック割合は全体トラヒック量の1/4とする。
図22Aは、第4のLBレス区間24D内の終端宛先の一例を示す説明図である。尚、VNF#7のProxy5A及び5Bは終端のVNF群21とする。経路決定部53Bは、第3のLBレス区間24C内の最後段のVNF#7のトラヒック割合(受信量)を第4のLBレス区間24D内の最前段のVNF#7のトラヒック割合(送信量)とする。経路決定部53Bは、第4のLBレス区間24D内の最前段のVNF#7内のProxy4A〜Proxy4Cの終端宛先となる最後段の終端のVNF群21(VNF#9内のProxy5A及び5B)として決定する。
図22Bは、第4のLBレス区間24D内の転送経路の一例を示す説明図である。経路決定部53Bは、第4のLBレス区間24D内のVNF#7とVNF#9との間の全経路が分散する転送経路を決定する。経路決定部53Bは、第4のLBレス区間24D内のProxy4AとProxy5Aとの間、Proxy4BとProxy5Bとの間、Proxy4CとProxy5Bとの間の転送経路を決定する。
図22Cは、第4のLBレス区間24D内の最後段の終端のVNF群21のトラヒック割合(受信量)の一例を示す説明図である。経路決定部53Bは、第4のLBレス区間24D内の最前段のVNF群21のトラヒック割合(送信量)及び転送経路に基づき、第4のLBレス区間24D内の各転送経路のトラヒック割合を決定する。更に、経路決定部53Bは、第4のLBレス区間24D内の転送経路のトラヒック割合に基づき、第4のLBレス区間24D内の終端のVNF群21のトラヒック割合(受信量)を決定する。Proxy5Aのトラヒック割合は全体トラヒック量の1/2、Proxy5Bのトラヒック割合は全体トラヒック量の1/2とする。
第3の決定部43は、LB区間23及びLBレス区間24内の転送経路及び各転送経路のトラヒック割合に基づき設定情報を設定部44に登録する。設定情報は、LB1Aのトラヒック割合、LB1Bのトラヒック割合、LB1A、LB1B、FW1A〜FW1C、Proxy1A〜Proxy1D、Proxy2A〜Proxy2C、FW2A及びFW2B、Proxy3A及び3Bの転送経路となる。設定情報は、LB2Aのトラヒック割合、LB2Bのトラヒック割合、LB2A、LB2B、FW3A〜FW3C、Proxy3A〜Proxy3D、Proxy4A〜Proxy4C、FW4A及びFW4B、Proxy5A及びProxy5Bの転送経路となる。
次に実施例3のサービスチェインシステム1の動作について説明する。図23は、第4のサービスチェイン構築処理に関わる管理サーバ3内のプロセッサ36の処理動作の一例を示すフローチャートである。
第2の決定部42B内の経路決定部53Bは、ステップS13にてサービスチェイン20Cのトポロジ構成を決定後、サービスチェイン20Cの集約LB群22及び終端のVNF群21に基づき、LB区間23及びLBレス区間24を決定する(ステップS71)。第2の決定部42B内の指定部51は、最前段のLB区間23を指定する(ステップS72)。尚、最前段のLB区間23は、第1のLB区間23Aである。
第2の決定部42B内の経路決定部53Bは、指定LB区間23内の最前段の集約LB群22のトラヒック割合(送信量)を決定する(ステップS73)。経路決定部53Bは、指定LB区間23内の最前段の集約LB群22の最終宛先となる最後段の終端のVNF群21を決定する(ステップS74)。
経路決定部53Bは、指定LB区間23内の集約LB群22と終端のVNF群21との間の全経路が分散する転送経路を決定する(ステップS75)。経路決定部53Bは、指定LB区間23内の各転送経路のトラヒック割合を決定する(ステップS76)。
経路決定部53Bは、指定LB区間23内の転送経路のトラヒック割合に基づき、指定LB区間23内の最後段の終端のVNF群21のトラヒック割合(受信量)を決定する(ステップS77)。指定部52は、昇順において次の区間があるか否かを判定する(ステップS78)。指定部52は、次の区間がある場合(ステップS78肯定)、次の区間がLBレス区間24であるか否かを判定する(ステップS79)。指定部52は、次の区間がLBレス区間24の場合(ステップS79肯定)、次のLBレス区間24を指定する(ステップS80)。経路決定部53Bは、前区間内の最後段の終端のVNF群21のトラヒック割合(受信量)を指定LBレス区間24内の最前段のVNF群21のトラヒック割合(送信量)とする(ステップS81)。
経路決定部53Bは、指定LBレス区間24内の最前段のVNF群21と最後段のVNF群21との間の全経路が分散する転送経路を決定する(ステップS82)。経路決定部53Bは、指定LBレス区間24内の各転送経路のトラヒック割合を決定する(ステップS83)。
経路決定部53Bは、指定LB区間23内の転送経路のトラヒック割合に基づき、指定LB区間23内の最後段の終端のVNF群21のトラヒック割合(受信量)を決定し(ステップS84)、次の区間があるか否かを判定すべく、ステップS78に移行する。
指定部52は、次の区間がLBレス区間24でない場合(ステップS79否定)、次のLB区間23を指定する(ステップS85)。経路決定部53Bは、LB区間23の前区間の最後段の終端のVNF群21のトラヒック割合(受信量)をLB区間23の最前段の集約LB群22のトラヒック割合(送信量)とする(ステップS86)。そして、経路決定部53Bは、指定LB区間23内の終端のVNF群21を決定すべく、ステップS74に移行する。第1の決定部41は、構成要求を受信しなかった場合(ステップS11否定)、図23に示す処理動作を終了する。指定部52は、次の区間がない場合(ステップS78否定)、集約LB群22の分配割合を決定すべく、ステップS19に移行する。
実施例3の管理サーバ3は、サービスチェイン20C内の集約LB群22及び終端のVNF群21の配置位置に基づき、サービスチェイン20CをLB区間23及びLBレス区間24に区分する。管理サーバ3は、サービスチェイン20Cの最前段から最後段までの昇順でLB区間23及びLBレス区間24を順次指定する。管理サーバ3は、指定されたLB区間23及びLBレス区間24毎に最前段のトラヒック割合(送信量)、転送経路のトラヒック割合及び最後段のトラヒック割合(受信量)を決定する。そして、管理サーバ3は、LB区間23及びLBレス区間24内の最前段のトラヒック割合、転送経路のトラヒック割合及び最後段のトラヒック割合に基づき、サービスチェイン20C内の集約LB群22の分配割合、VNF群21のトラヒック割合を決定する。その結果、集約LB群22が途中に配置されたサービスチェイン20Cであっても、最初の終端のVNF群21後段以降のVNF群21の台数を反映したトラヒック量を分散できる。
管理サーバ3は、サービスチェイン20C内の第1のLB区間23A→第1のLBレス区間24A→第2のLBレス区間24B→第2のLB区間23B→第3のLBレス区間24C→第4のLBレス区間24Dの順に指定する。管理サーバ3は、例えば、第2のLB区間23Bが指定された場合、前区間である第2のLB区間23B内の最後段のVNF群21のトラヒック割合を第2のLB区間23B内の最前段のVNF群21のトラヒック割合に設定する。また、管理サーバ3は、例えば、第4のLBレス区間24Dが指定された場合、前区間である第3のLBレス区間24C内の最後段のVNF群21のトラヒック割合を第4のLBレス区間24D内の最前段のVNF群21のトラヒック割合に設定する。トラヒック割合を設定する際の処理負担を軽減できる。
尚、上記実施例3の管理サーバ3は、第1のLB区間23A→第1のLBレス区間24A→第2のLBレス区間24B→第2のLB区間23B→第3のLBレス区間24C→第4のLBレス区間24Dの昇順に区間毎の転送経路及びトラヒック割合を順次算出した。しかしながら、第1のLB区間23A→第1のLBレス区間24A→第2のLBレス区間24B→第2のLB区間23B→第3のLBレス区間24C→第4のLBレス区間24Dの昇順に限定されるものではなく、適宜変更可能である。例えば、第4のLBレス区間24D→第3のLBレス区間24C→第2のLB区間23B→第2のLBレス区間24B→第1のLBレス区間24A→第1のLB区間23Aの降順に区間毎の転送経路及びトラヒック割合を順次算出しても良い。その実施の形態につき、実施例4として以下に説明する。尚、実施例3のサービスチェインシステム1と同一の構成には同一符号を付することで、その重複する構成及び動作の説明については省略する。
図24は、実施例4の管理サーバ3内のプロセッサ36の機能構成の一例を示す説明図である。図24に示す第2の決定部42C内の指定部52は、第4のLBレス区間24D→第3のLBレス区間24C→第2のLB区間23B→第2のLBレス区間24B→第1のLBレス区間24A→第1のLB区間23Aの降順に区間を順次指定する。第2の決定部42C内の経路決定部53Cは、LB区間23及びLBレス区間24の転送経路及びトラヒック割合に基づき、サービスチェイン20Cの集約LB群22の分配割合及び、VNF群21及び転送経路のトラヒック割合を決定する。
指定部52は、図18に示すサービスチェイン20Cにおいて最後段の第4のLBレス区間24Dを指定する。図25Aは、第4のLBレス区間24D内の最後段の終端のVNF群21のトラヒック割合(受信量)の一例を示す説明図である。経路決定部53Cは、第4のLBレス区間24D内の終端宛先のVNF群21内の終端のVNF12の台数が2台であるため、第4のLBレス区間24D内の最後段のVNF群21のトラヒック割合(受信量)を全体トラヒック量の1/2とする。
図25Bは、第4のLBレス区間24D内の転送経路の一例を示す説明図である。経路決定部53Cは、第4のLBレス区間24D内の最後段の終端のVNF群21(VNF#9内のProxy5A及び5B)の送信元となる最前段のVNF#7内のProxy4A〜Proxy4Cを決定する。経路決定部53Cは、第4のLBレス区間24D内のVNF#7とVNF#9との間の全経路が分散する転送経路を決定する。経路決定部53Cは、第4のLBレス区間24D内のProxy4AとProxy5Aとの間、Proxy4BとProxy5Bとの間、Proxy4CとProxy5Aとの間の転送経路を決定する。
図25Cは、第4のLBレス区間24D内の最前段の終端のVNF群21のトラヒック割合(送信量)の一例を示す説明図である。経路決定部53Cは、第4のLBレス区間24D内の最後段のVNF群21のトラヒック割合(受信量)及び転送経路に基づき、第4のLBレス区間24D内の各転送経路のトラヒック割合を決定する。更に、経路決定部53Cは、第4のLBレス区間24D内の転送経路のトラヒック割合に基づき、第4のLBレス区間24D内の最前段のVNF群21のトラヒック割合(送信量)を決定する。Proxy4Aのトラヒック割合を全体トラヒック量の2/4、Proxy4Bのトラヒック割合を全体トラヒック量の1/4、Proxy4Cのトラヒック割合を全体トラヒック量の1/4とする。
図26Aは、第3のLBレス区間24C内の最後段の終端のVNF群21のトラヒック割合(受信量)の一例を示す説明図である。経路決定部53Cは、第4のLBレス区間24D内の最前段のVNF群21のトラヒック割合(送信量)を第3のLBレス区間24C内の最後段のVNF群21のトラヒック割合(受信量)とする。
図26Bは、第3のLBレス区間24C内の転送経路の一例を示す説明図である。経路決定部53Cは、第3のLBレス区間24C内の最後段の終端のVNF群21(VNF#7内のProxy4A〜Proxy4C)の送信元となる最前段のVNF#6内のProxy3A〜Proxy3Dを決定する。経路決定部53Cは、第3のLBレス区間24C内のVNF#6とVNF#7との間の全経路が分散する転送経路を決定する。経路決定部53Cは、第3のLBレス区間24C内のProxy3AとProxy4Aとの間、Proxy3BとProxy4Bとの間、Proxy3CとProxy4Cとの間、Proxy3DとProxy4Aとの間の転送経路を決定する。
図26Cは、第3のLBレス区間24C内の最前段の終端のVNF群21のトラヒック割合(送信量)の一例を示す説明図である。経路決定部53Cは、第3のLBレス区間24C内の最後段のVNF群21のトラヒック割合(受信量)及び転送経路に基づき、第3のLBレス区間24C内の各転送経路のトラヒック割合を決定する。更に、経路決定部53Cは、第3のLBレス区間24C内の転送経路のトラヒック割合に基づき、第3のLBレス区間24C内の最前段のVNF群21のトラヒック割合(送信量)を決定する。Proxy3Aのトラヒック割合を全体トラヒック量の1/4、Proxy3Bのトラヒック割合を全体トラヒック量の1/4、Proxy3Cのトラヒック割合を全体トラヒック量の1/4、Proxy3Dのトラヒック割合を全体トラヒック量の1/4とする。
図27Aは、第2のLB区間23B内の最後段の終端のVNF群21のトラヒック割合(受信量)の一例を示す説明図である。経路決定部53Cは、第3のLBレス区間24C内の最前段のVNF群のトラヒック割合(送信量)を第2のLB区間23B内の最後段のVNF群21のトラヒック割合(受信量)とする。
図27Bは、第2のLB区間23B内の転送経路の一例を示す説明図である。経路決定部53Cは、第2のLB区間23B内の最後段の終端のVNF群21(VNF#6内のProxy3A〜Proxy3D)の送信元となる最前段の第2の集約LB群22B内のLB2A及び2Bを決定する。経路決定部53Cは、第2のLB区23B間内の第2の集約LB群22BとVNF#6との間の全経路が分散する転送経路を決定する。経路決定部53Cは、第2のLB区間23B内のLB2AとProxy3Aとの間、LB2AとProxy3Bとの間、LB2AとProxy3Cとの間、LB2AとProxy3Dとの間の転送経路を決定する。経路決定部53Cは、第2のLB区間23B内のLB2BとProxy3Aとの間、LB2BとProxy3Bとの間、LB2BとProxy3Cとの間、LB2BとProxy3Dとの間の転送経路を決定する。
図27Cは、第2のLB区間23B内の最前段の第2の集約LB群22Bのトラヒック割合(送信量)の一例を示す説明図である。経路決定部53Cは、第2のLB区間23B内の各転送経路のトラヒック割合を決定する。更に、経路決定部53Cは、第2のLB区間23B内の転送経路のトラヒック割合に基づき、第2のLB区間23B内の最前段の第2の集約LB群22Bのトラヒック割合(送信量)を決定する。LB2Aのトラヒック割合を全体トラヒック量の1/2、LB2Bのトラヒック割合を全体トラヒック量の1/2とする。
図28Aは、第2のLBレス区間24B内の最後段の終端のVNF群21のトラヒック割合(受信量)の一例を示す説明図である。経路決定部53Cは、第2のLB区間23B内の最前段の第2の集約LB群22Bのトラヒック割合(送信量)を第2のLBレス区間24B内の最後段の第2の集約LB群22Bのトラヒック割合(受信量)とする。
図28Bは、第2のLBレス区間24B内の転送経路の一例を示す説明図である。経路決定部53Cは、第2のLBレス区間24B内の最後段の第2の集約LB群22B(LB2A及びLB2B)の送信元となる最前段のVNF#3内のProxy2A〜Proxy2Cを決定する。経路決定部53Cは、第2のLBレス区間24B内の第2の集約LB群22BとVNF#3との間の全経路が分散する転送経路を決定する。経路決定部53Cは、第2のLBレス区間24B内のLB2AとProxy2Aとの間、LB2BとProxy2Bとの間、LB2AとProxy2Cとの間の転送経路を決定する。
図28Cは、第2のLBレス区間24B内の最前段のVNF群21のトラヒック割合(送信量)の一例を示す説明図である。経路決定部53Cは、第2のLBレス区間24B内の各転送経路のトラヒック割合を決定する。更に、経路決定部53Cは、第2のLBレス区間24B内の転送経路のトラヒック割合に基づき、第2のLBレス区間24B内の最前段のVNF#3のトラヒック割合(送信量)を決定する。Proxy2Aのトラヒック割合を全体トラヒック量の1/4、Proxy2Bのトラヒック割合を全体トラヒック量の2/4、Proxy2Cのトラヒック割合を全体トラヒック量の1/4とする。
第3の決定部43は、LB区間23及びLBレス区間24内の転送経路及び各転送経路のトラヒック割合に基づき設定情報を設定部44に登録する。設定情報は、LB1Aのトラヒック割合、LB1Bのトラヒック割合、LB1A、LB1B、FW1A〜FW1C、Proxy1A〜Proxy1D、Proxy2A〜Proxy2C、FW2A及びFW2B、Proxy3A及び3Bの転送経路となる。設定情報は、LB2Aのトラヒック割合、LB2Bのトラヒック割合、LB2A、LB2B、FW3A〜FW3C、Proxy3A〜Proxy3D、Proxy4A〜Proxy4C、FW4A及びFW4B、Proxy5A及び5Bの転送経路となる。
次に実施例4のサービスチェインシステム1の動作について説明する。図29は、第5のサービスチェイン構築処理に関わる管理サーバ3内のプロセッサ36の処理動作の一例を示すフローチャートである。
第2の決定部42C内の区分決定部51は、ステップS13にてサービスチェイン20Cのトポロジ構成を決定後、サービスチェイン20Cの集約LB群22及び終端のVNF群21に基づき、LB区間23及びLBレス区間24を決定する(ステップS91)。
第2の決定部42C内の指定部52は、サービスチェイン20Cの最後段のLBレス区間24を指定する(ステップS92)。経路決定部53Cは、指定LBレス区間24内の最後段の終端のVNF群21のトラヒック割合(受信量)を決定する(ステップS93)。
経路決定部53Cは、指定LBレス区間24内の最前段の終端のVNF群21と最後段の終端のVNF群21との間の全経路が分散する転送経路を決定する(ステップS94)。経路決定部53Cは、指定LBレス区間24内の各転送経路のトラヒック割合を決定する(ステップS95)。
経路決定部53Cは、指定LBレス区間24内の転送経路のトラヒック割合に基づき、指定LBレス区間24内の最前段の終端のVNF群21のトラヒック割合(送信量)を決定する(ステップS96)。
経路決定部53Cは、降順順序において次の区間があるか否かを判定する(ステップS97)。指定部52は、次の区間がある場合(ステップS97肯定)、次の区間がLBレス区間24であるか否かを判定する(ステップS98)。指定部52は、次の区間がLBレス区間24の場合(ステップS98肯定)、次のLBレス区間24を指定する(ステップS99)。更に、経路決定部53Cは、指定LBレス区間24の後区間の最前段のVNF群21のトラヒック割合(送信量)を指定LBレス区間24の最後段のVNF群21のトラヒック割合(受信量)とし(ステップS100)、ステップS94に移行する。
指定部52は、ステップS98にて次の区間がLBレス区間24でない場合(ステップS98否定)、LB区間23を指定する(ステップS101)。経路決定部53Cは、指定LB区間23の後区間の最前段の終端のVNF群21のトラヒック割合(送信量)をLB区間23の最後段の終端のVNF群21のトラヒック割合(受信量)とする(ステップS102)。更に、経路決定部53Cは、指定LB区間23内の最前段の集約LB群22と最後段の終端のVNF群21との間の全経路が分散する転送経路を決定する(ステップS103)。経路決定部53Cは、指定LB区間23内の各転送経路のトラヒック割合を決定する(ステップS104)。
経路決定部53Cは、指定LB区間23内の転送経路のトラヒック割合に基づき、指定LB区間23内の最前段の集約LB群22のトラヒック割合(送信量)を決定し(ステップS105)、次の区間があるか否かを判定すべく、ステップS97に移行する。経路決定部53Cは、次の区間がない場合(ステップS97否定)、集約LB群22の分配割合を決定すべく、ステップS19に移行する。第1の決定部41は、構成要求を受信しなかった場合(ステップS11否定)、図29に示す処理動作を終了する。
実施例4の管理サーバ3は、サービスチェイン20C内の集約LB群22及び終端のVNF群21の配置位置に基づき、サービスチェイン20CをLB区間23及びLBレス区間24に区分する。管理サーバ3は、サービスチェイン20Cの最後段から最前段までの降順でLB区間23及びLBレス区間24を順次指定する。管理サーバ3は、指定されたLB区間23及びLBレス区間24毎に最前段のトラヒック割合(送信量)、転送経路のトラヒック割合及び最後段のトラヒック割合(受信量)を決定する。そして、管理サーバ3は、LB区間23及びLBレス区間24内の最前段のトラヒック割合、転送経路のトラヒック割合及び最後段のトラヒック割合に基づき、サービスチェイン20C内の集約LB群22の分配割合、VNF群21のトラヒック割合を決定する。その結果、集約LB群22が途中に配置されたサービスチェイン20Cであっても、最初の終端のVNF群21後段以降のVNF群21の台数を反映したトラヒック量を分散できる。
管理サーバ3は、サービスチェイン20C内の第4のLBレス区間24D→第3のLBレス区間24C→第2のLB区間23B→第2のLBレス区間24B→第1のLBレス区間24A→第1のLB区間23Aの順に指定する。管理サーバ3は、第3のLBレス区間24Cが指定された場合、後区間である第4のLBレス区間24D内の最前段のVNF群21のトラヒック割合を第3のLBレス区間24C内の最後段のVNF群21のトラヒック割合に設定する。また、管理サーバ3は、第2のLB区間23Bが指定された場合、後区間である第3のLBレス区間24C内の最前段のVNF群21のトラヒック割合を第2のLB区間23B内の最後段のVNF群21のトラヒック割合に設定する。トラヒック割合を設定する際の処理負担を軽減できる。
尚、上記実施例3では、ステップS76のLB区間23内の転送経路のトラヒック割合を決定する処理やステップS83のLBレス区間24内の転送経路のトラヒック割合を決定する処理で、区間内の負荷分散対象のVNF群21の指定があるか否かを判定する。プロセッサ36は、区間内の負荷分散対象のVNF群21の指定がある場合、負荷分散対象のVNF群21内の各VNF12のトラヒック量が均等になるように区間内の各転送経路のトラヒック割合を決定しても良い。
図30Aは、第2のLB区間23B内の転送経路及びVNF群21のトラヒック割合の一例を示す説明図である。尚、第2のLB区間23B内のVNF#5(FW3A〜FW3C)内のトラヒック割合を均等に全体トラヒック量の1/3、第2の集約LB群22B内のトラヒック割合を全体トラヒック量の1/2に設定した場合を例示している。経路決定部53Cは、第2のLB区間23B内で負荷分散対象のVNF群21としてVNF#5が指定された場合、負荷分散対象のVNF#5のトラヒック量が均等になるように第2のLB区間23B内の各転送経路のトラヒック割合を決定する。経路決定部53Cは、第2のLB区間23B内の各転送経路のトラヒック割合に基づき、VNF#6のトラヒック割合を決定する。その結果、VNF#6内のProxy3Aのトラヒック割合は全体トラヒック量の4/18、Proxy3Bのトラヒック割合は全体トラヒック量の5/18となる。更に、Proxy3Cのトラヒック割合は全体トラヒック量の5/18、Proxy3Dのトラヒック割合は全体トラヒック量の4/18となる。
図30Bは、第2のLB区間23B内の転送経路及びVNF群21のトラヒック割合の一例を示す説明図である。尚、第2のLB区間23B内のVNF#5(FW3A〜FW3C)内のトラヒック割合を均等に全体トラヒック量の1/3、第2の集約LB群22B内のLB2Aのトラヒック割合を全体トラヒック量の3/5に設定した場合を例示している。更に、LB2Bのトラヒック割合を全体トラヒック量の2/5に設定した場合を例示している。経路決定部53Cは、第2のLB区間23B内で負荷分散対象のVNF群21としてVNF#5が指定された場合、負荷分散対象のVNF#5のトラヒック量が均等になるように第2のLB区間23B内の各転送経路のトラヒック割合を決定する。経路決定部53Cは、第2のLB区間23B内の各転送経路のトラヒック割合に基づき、VNF#6のトラヒック割合を決定する。その結果、VNF#6内のProxy3Aのトラヒック割合は全体トラヒック量の25/120、Proxy3Bのトラヒック割合は全体トラヒック量の31/120となる。更に、Proxy3Cのトラヒック割合は全体トラヒック量の34/120、Proxy3Dのトラヒック割合は全体トラヒック量の25/120となる。
尚、上記実施例では、構成要求のフォーマットとしてVNF群21及びVNF群21に使用する集約LB13Aの情報を含む場合を例示したが、VNF群21毎に使用する集約LB13Aが1台の場合、使用する集約LB13Aの情報を含めなくても良い。その結果、構成要求の容量をコンパクト化できる。
管理サーバ3は、仮想領域上にVNF群21を複数段に配置する際に指定するVNF群21毎のLBインスタンス数に基づき、最前段のVNF群21(VNF#1)の前段に配置する集約LB13Aの数を決定する。その結果、管理サーバ3は、サービスチェインを構築する際に要する最小限の集約LB13Aの数を決定できる。
管理サーバ3は、構成要求で指定された各VNF群21の任意の機能特性、例えば、L4レベルのVNF群21を特定し、特定されたVNF群21内のLBインスタンス数に応じて、集約LB13Aの数を決定する。その結果、管理サーバ3は、サービスチェインを構築する際に、任意の機能特性に適した最小限の集約LB13Aの数を決定できる。
管理サーバ3は、構成要求で指定された各VNF群21の任意の機能特性、例えば、L4レベルのVNF群21を特定する。更に、管理サーバ3は、特定されたVNF群21の内、VNF12の数が最大数のVNF群21を特定する。更に、管理サーバ3は、特定されたVNF群21のLBインスタンス数に応じて集約LB13Aの数を決定する。その結果、管理サーバ3は、サービスチェインを構築する際に、任意の機能特性の最大数のVNF12を収容したVNF群21に適し、かつ、最小限の集約LB13Aの数を決定できる。
管理サーバ3は、構成要求で指定された各VNF群21の内、上位レイヤ特性、例えばL4レベルのVNF群21を特定し、特定されたVNF群21内のLBインスタンス数に応じて、集約LB13Aの数を決定する。その結果、管理サーバ3は、サービスチェインを構築する際に、上位レイヤ特性のVNF12を収容したVNF群21に適し、かつ、最小限の集約LB13Aの数を決定できる。
管理サーバ3は、構成要求で指定されたVNF群21毎のVNF12の数に基づき、複数のVNF群21の内、上位レイヤ特性のVNF群21を特定する。更に、特定されたVNF群21内のLBインスタンス数に応じて、集約LB13Aの数を決定すると共に、指定されたLBの数を削除する。
尚、上記実施例では、構成要求で指定されたLBインスタンス数に応じて集約LB13Aの数を決定した。しかしながら、構成要求にLBインスタンス数が含まれていなくても良い。この場合、管理サーバ3は、構成要求で指定されたVNF群21のVNF12のインスタンス数に基づき、VNF群21毎に必要となる処理性能を算出しそれを処理するために必要なLBインスタンス数を算出する。そして、管理サーバ3は、自分で算出したVNF群21毎のLBインスタンス数に基づき集約LB13Aの数を決定しても良い。
また、上記実施例の第1の決定部41は、構成要求を検出すると、構成要求内の上位レイヤであるL4レベルのVNF群21を特定し、特定したVNF群21の内、そのVNF12のインスタンス数が最大数のVNF群21を特定する。そして、第1の決定部41は、特定したVNF群21内のLBインスタンス数に応じて集約LB13Aの数を決定した。しかしながら、これらに限定されるものではない。
上記実施例では、LBレス区間24内の最前段のVNF群21の最適経路を決定し、最前段のVNF群21内の各VNF12のトラヒック割合を算出した。しかしながら、最前段のVNF群21内の各VNF12のトラヒック割合を算出した後、最前段のVNF群21から終端のVNF12までの最適経路を決定しても良い。
上記実施例では、集約LB13Aの分配割合を算出した後、各最適経路のVNF12毎のトラヒック割合を算出した。しかしながら、最適経路のVNF12毎のトラヒック割合を算出した後、集約LB13Aの分配割合を算出しても良く、特定アルゴリズムを用いて最適経路のVNF12毎のトラヒック割合及び集約LB13Aの分配割合を同時に算出しても良い。
上記実施例では、構成要求で指定された複数のVNF群21の内、機能特性、例えば、L4レベルのVNF群21のLBインスタンス数で集約LB13Aの数を決定した。しかしながら、機能特性として、例えば、送信元アドレスのハッシュ計算で分散する計算機能を使用するVNF群21を特定し、その特定されたVNF群21のLBインスタンス数で集約LB13Aの数を決定しても良い。
上記実施例では、構成要求で指定された各VNF群21のLBインスタンス数で最前段のLB13に集約し、最前段のLBインスタンス数を算出しても良い。また、最前段の集約LB13Aと、この集約LB13Aに接続する次段のVNF12と、そのVNF12のインスタンス数を指定する構成要求でも良い。
実施例では、LB区間23及びLBレス区間24内の負荷分散対象のVNF群21内の各VNF12のトラヒック量を均等にすべく、各VNF12のトラヒック割合及び集約LB13Aの分配割合を算出した。しかしながら、負荷分散対象のVNF群21内のVNF12に限定されるものではなく、LB区間23及びLBレス区間24内の全てのVNF群21の全VNF12の負荷を均等にすべく、各VNF12のトラヒック割合及び集約LB13Aの分配割合を算出しても良い。また、管理サーバ3は、各VNF12の転送経路を決定した後、各VNF12のトラヒック割合を算出したが、VNF12毎の転送経路及びトラヒック割合を同時に算出しても良い。
また、本実施例では、LB区間23又はLBレス区間24を複数区間配置したが、これらに限定されるものではなく、適宜変更可能である。
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
更に、各装置で行われる各種処理機能は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)やFPGA(Field Programmable Gate Array)等上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、CPU等で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良い。
各種情報を記憶する領域は、例えば、ROM(Read Only Memory)や、SDRAM(Synchronous Dynamic Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)やNVRAM(Non Volatile Random Access Memory)等のRAM(Random Access Memory)で構成しても良い。
ところで、本実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータ内のCPU等のプロセッサで実行させることによって実現できる。そこで、以下では、上記実施例と同様の機能を有するプログラムを実行する情報処理装置100の一例を説明する。図31は、サービスチェイン構築プログラムを実行する情報処理装置100の一例を示す説明図である。
図31に示すサービスチェイン構築プログラムを実行する情報処理装置100は、通信部110と、HDD(Hard Disc Drive)120と、ROM130と、RAM140と、CPU150とを有する。通信部110、HDD120、ROM130、RAM140及びCPU150は、バス160を介して接続される。通信部110は、図示せぬ他の情報処理装置と接続し、他の情報処理装置と通信する。そして、情報処理装置100は、他の情報処理装置と通信し、他の情報処理装置内の仮想領域上に仮想通信機能群を複数段に配置してサービスチェインを構成する。
そして、ROM130には、上記実施例と同様の機能を発揮するサービスチェイン構築プログラムが予め記憶されている。ROM130は、サービスチェイン構築プログラムとして区分決定プログラム130A、経路決定プログラム130B及び設定プログラム130Cが記憶されている。尚、ROM130ではなく、図示せぬドライブでコンピュータ読取可能な記録媒体にサービスチェイン構築プログラムが記録されていても良い。また、記録媒体としては、例えば、CD−ROM、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ等でも良い。
そして、CPU150は、区分決定プログラム130AをROM130から読み出し、RAM140上で区分決定プロセス140Aとして機能させる。更に、CPU150は、経路決定プログラム130BをROM130から読み出し、RAM140上で経路決定プロセス140Bとして機能させる。更に、CPU150は、設定プログラム130CをROM130から読み出し、RAM140上で設定プロセス140Cとして機能させる。
CPU150は、複数段配置された仮想通信機能群の内の最前段の仮想通信機能群の前段に仮想分散機能群を配置するサービスチェインを、複数段の仮想通信機能群の内の終端型の仮想通信機能群及び仮想分散機能群の配置位置に基づき、複数の区間に区分する。CPU150は、区間毎に当該区間内の最前段又は最後段の仮想分散機能群又は仮想通信機能群のトラヒック割合に基づき、区間内の最前段の仮想分散機能群又は仮想通信機能群と区間内の最後段の仮想通信機能群又は仮想分散機能群との間の通信経路を決定する。CPU150は、決定された通信経路を配置された仮想分散機能群及び仮想通信機能群に設定する。その結果、転送遅延を抑制できる。しかも、最初の終端の仮想通信機能群後段以降の終端の仮想通信機能群を配置したサービスチェインであっても、最初の終端の仮想通信機能群後段以降の仮想通信機能群の台数を反映したトラヒック量を分散できる。