(57)【要約】【課題】サーバ輻輳時とネットワーク帯域輻輳時双方に対処して負荷を分散させること。【解決手段】広域ネットワーク11内に存在するパケット転送装置21〜23、データセンタ41，51が備える仮想マシン44，54と仮想パケット転送装置43，53、及びゲートウェイ45，55を有するシステムで、仮想マシンの負荷を監視する負荷監視装置32と、負荷が集中した仮想マシンの検知時に他のデータセンタに仮想マシンを複製し、パケット転送装置21〜23間、及び各仮想マシン44，54が接続された仮想パケット転送装置43，53間にそれぞれＧＲＥトンネルを設定し、ＧＲＥトンネルを介して任意のパケットを任意のトンネルで転送するフローエントリを登録するネットワーク制御装置31とを有し、複数の仮想マシン44，54で負荷を分散して処理する。【選択図】図１
2016144144.tif 000002
【特許請求の範囲】
【請求項１】
広域ネットワーク内に存在する任意のパケット転送装置、任意のデータセンタが備える仮想マシンと仮想パケット転送装置、及びゲートウェイを有するシステムにおいて、
前記仮想マシンの負荷を監視する負荷監視装置と、
前記負荷監視装置により負荷が集中した仮想マシンの検知時に当該仮想マシンとは異なる他のデータセンタに仮想マシンを複製する複製手段、前記パケット転送装置間、及び前記各仮想マシンが接続された仮想パケット転送装置間にそれぞれトンネリングプロトコルによるトンネルを設定する設定手段、及び前記トンネルを介して任意のパケットを任意のトンネルで転送するフローエントリを登録する登録手段を備えるネットワーク制御装置と、
を有し、前記複数の仮想マシンで負荷を分散して処理することを特徴とする負荷分散システム。
【請求項２】
前記ネットワーク制御装置は、前記任意のパケット転送装置、及び前記任意の仮想パケット転送装置との間で、前記トンネルの識別子を生成し、トンネルの端点となる任意のパケット転送装置のＩＰアドレス、及びトンネルの端点となる任意の仮想パケット転送装置のＩＰアドレスを取得し、生成した識別子、及び取得した各ＩＰアドレスを通信することを特徴とする請求項１記載の負荷分散システム。
【請求項３】
前記ネットワーク制御装置は、前記複数の仮想マシン間での負荷が略均等化するように前記任意のパケットを転送するトンネルを選択可能に設定することを特徴とする請求項１記載の負荷分散システム。
【請求項４】
前記ネットワーク制御装置は、前記パケット転送装置及び仮想パケット転送装置から任意のパケットを転送するためにどのトンネルを利用するかの問合せを受付けて応答することを特徴とする請求項１記載の負荷分散システム。
【請求項５】
前記ネットワーク制御装置は、前記複数の仮想マシンに対して同一のＩＰアドレスを設定して任意の仮想マシンにトラフィックを振り分けることを特徴とする請求項１記載の負荷分散システム。
【請求項６】
広域ネットワーク内に存在する任意のパケット転送装置、任意のデータセンタが備える仮想マシンと仮想パケット転送装置、及びゲートウェイを有するシステムで実行される負荷分散方法において、
前記仮想マシンの負荷を監視する負荷監視工程と、
前記負荷監視工程で負荷が集中した仮想マシンの検知時に当該仮想マシンとは異なる他のデータセンタに仮想マシンを複製する複製工程と、
前記パケット転送装置間、及び前記各仮想マシンが接続された仮想パケット転送装置間にそれぞれトンネリングプロトコルによるトンネルを設定する設定工程と、
前記トンネルを介して任意のパケットを任意のトンネルで転送するフローエントリを登録する登録工程と
を有し、前記複数の仮想マシンで負荷を分散して処理することを特徴とする負荷分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ輻輳時とネットワーク帯域輻輳時の双方を考慮した広域ネットワークでの負荷分散システム及び負荷分散方法に関する
【背景技術】
【０００２】
輻輳によりネットワークサービスが停止するパターンとしては、アクセスの集中によりサーバリソースが枯渇することに起因するものと、例えばサーバへの帯域占有型ＤＤｏＳ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄｅｎｉａｌ  ｏｆ  Ｓｅｒｖｉｃｅ  ａｔｔａｃｋ）攻撃により発生する、大量のトラフィックによりサーバまでの経路におけるネットワーク帯域が枯渇することに起因するものの２つが存在する。
【０００３】
前者の場合は、例えばＶＭｗａｒｅ  ＤＲＳ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｒｅｓｏｕｒｃｅ  Ｓｃｈｅｄｕｌｅｒ）（非特許文献１）、Ｂｒｏｃａｄｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｒｅｓｏｕｒｃｅ  Ｂｒｏｋｅｒ（非特許文献２）等の技術を用いた、仮想サーバの負荷増加に応じてリソースを追加で割り当てる等の制御による対処が検討されている。
【０００４】
後者の場合は、サーバのリソース追加ではサーバまでの経路上のネットワーク帯域の輻輳は解消されないので、同様の方法では対処できない。
【０００５】
また、後者について、広域ネットワークでＷｅｂサーバの負荷分散を実現する手法であるＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ）ラウンドロビン（非特許文献３）が存在する。
【０００６】
このＤＮＳラウンドロビンを用いた手法では、  
(1)  ＤＮＳのキャッシュ等の仕組みにより、ＤＮＳの設定を変更してから、ネットワーク全体に設定が浸透するまでに、例えば数時間から数日程度の時間がかかる場合があるため、迅速な対処ができない。  
(2)  ネットワーク帯域輻輳の原因がサーバへのＤＤｏＳ攻撃の場合、クライアントをどのサーバにアクセスさせるかをネットワーク側から完全には制御できないため、攻撃者がサーバのＩＰアドレスを直接指定して攻撃してきた場合には対処できない。  
という不具合がある。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】ｈｔｔｐ：／／ｗｗｗ．ｖｍｗａｒｅ．ｃｏｍ／ｆｉｌｅｓ／ｊｐ／ｐｄｆ／ｄｒｓ＿ｄａｔａｓｈｅｅｔ．ｐｄｆ（平成２７年１月２９日確認）
【非特許文献２】ｈｔｔｐ：／／ｗｗｗ．ｂｒｏｃａｄｅｊａｐａｎ．ｃｏｍ／ｄｏｃｓ／ｐｄｆ／ＢＲ＿ＡＲＢ＿Ｆｌｙｅｒ．ｐｄｆ（平成２７年１月２９日確認）
【非特許文献３】ｈｔｔｐ：／／ｔｅｃｈｎｅｔ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｅｎ−ｕｓ／ｌｉｂｒａｒｙ／ｃｃ７８７４８４％２８ｖ＝ｗｓ．１０％２９．ａｓｐｘ（平成２７年１月２９日確認）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ネットワーク帯域の輻輳の場合、従来検討されてきたような仮想マシンを動的にリソース割り当てするだけでは対処できず、ネットワーク帯域の輻輳によるサービス停止に対処するための従来技術であるＤＮＳラウンドロビンを用いた場合でも、前述した２つの課題があり、結局のところ対処することができない。
【０００９】
本発明は前記のような実情に鑑みてされたもので、その目的とするところは、サーバ輻輳時とネットワーク帯域輻輳時の双方に対処することが可能な負荷分散システム及び負荷分散方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の一態様は、広域ネットワーク内に存在する任意のパケット転送装置、任意のデータセンタが備える仮想マシンと仮想パケット転送装置、及びゲートウェイを有するシステムにおいて、前記仮想マシンの負荷を監視する負荷監視装置と、前記負荷監視装置により負荷が集中した仮想マシンの検知時に当該仮想マシンとは異なる他のデータセンタに仮想マシンを複製する複製手段、前記パケット転送装置間、及び前記各仮想マシンが接続された仮想パケット転送装置間にそれぞれトンネリングプロトコルによるトンネルを設定する設定手段、及び前記トンネルを介して任意のパケットを任意のトンネルで転送するフローエントリを登録する登録手段を備えるネットワーク制御装置と、を有し、前記複数の仮想マシンで負荷を分散して処理することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、サーバ輻輳時とネットワーク帯域輻輳時の双方に対処することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に係るネットワークの構成を示す図。
【図２】同実施形態に係るネットワーク制御装置の回路構成を説明するブロック図。
【図３】同実施形態に係るパケット転送装置の回路構成を説明するブロック図。
【図４】同実施形態に係る物理サーバの回路構成を示すブロック図。
【図５】同実施形態に係る仮想パケット転送装置の回路構成を説明するブロック図。
【図６】同実施形態に係る攻撃検知に伴って仮想マシンを複製する手順の一例を示すシーケンス図。
【図７】同実施形態に係るＧＲＥトンネルの設定する手順の一例を示すシーケンス図。
【図８】同実施形態に係る初期フローエントリを設定する手順の一例を示すシーケンス図。
【図９】同実施形態に係るユーザ端末から仮想マシンへのアクセスがあった際の負荷分散処理の手順の一例を示すシーケンス図。
【発明を実施するための形態】
【００１３】
以下、本発明の一実施形態について図面等を参照して詳細に説明する。  
図１は、本実施形態に係るネットワーク構成を示す図である。  
ここでは、一例として、ＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）網／キャリア網１１内にあるデータセンタ４１，５１内に、物理サーバ４２，５２が存在し、その中でＷｅｂサービスを提供する仮想マシン４４，５４が動作している環境を想定する。
【００１４】
第１乃至第３のパケット転送装置２１〜２３は、インターネット等との境界に設置されたルータ、スイッチ等に相当し、インターネット等を通じて、ＰＣ、スマートフォン等の任意のユーザ端末から仮想マシンにアクセスする際に、必ずいずれかの装置を通過する。
【００１５】
また、第１のゲートウェイ装置４５は、第１のデータセンタ４１とＩＳＰ網／キャリア網１１の境界に設置されたルータ、スイッチ等に相当し、第２のゲートウェイ装置５５は、第２のデータセンタ５１とＩＳＰ網／キャリア網１１の境界に設置されたルータ、スイッチ等に相当する。
【００１６】
ＩＳＰ網／キャリア網１１にネットワーク制御装置３１と共に設けられた負荷監視装置３２は、パケット転送装置２１〜２３やゲートウェイ装置４５，５５、仮想マシン４４，５４、仮想パケット転送装置４３，５３等から、例えばＣＰＵ負荷、メモリ負荷、通信ポート毎の通信量等の負荷情報を収集して異常検知を行なう装置であり、ＳＩＥＭ（Ｓｅｃｕｒｉｔｙ  Ｉｎｆｏｒｍａｔｉｏｎ  ａｎｄ  Ｅｖｅｎｔ  Ｍａｎａｇｅｍｅｎｔ）等に相当する。
【００１７】
例えば、仮想マシンに対して大量のパケットが送信されたことにより、第１のゲートウェイ装置４５で処理しきれないデータ量の通信が到達した場合には、負荷監視装置３２がネットワーク制御装置３１に対して、大量通信の原因となっている仮想マシンのＩＰアドレス等の関連する機器情報と併せて異常を通知する。
【００１８】
次に図２により前記ネットワーク制御装置３１の回路構成を説明する。  
ネットワーク制御装置３１は、前記第１乃至第３のパケット転送装置２１〜２３、前記データセンタ４１，５１内の物理サーバ４２，５２（仮想パケット転送装置４３，５３）、負荷監視装置３２との通信を行なう通信機能部１３０を備える。
【００１９】
ネットワーク制御装置３１は、前記通信機能部１３０の他に処理部１１０、記憶部１２０を備え、処理部１１０内のトンネル制御部１１１、及び負荷分散処理部１１２により、記憶部１２０に記憶しているネットワーク（ＮＷ）構成情報管理テーブル１２１、全トンネル情報管理用テーブル１２２、負荷分散処理適用装置情報テーブル１２３の内容を用いて輻輳の発生を防ぐべく後述する分散処理を実行させる。
【００２０】
【表１】
2016144144.tif 000003
【００２１】
ネットワーク構成情報管理テーブル１２１は、前記表１に示すように、ネットワーク制御装置３１の管理下にある全てのネットワーク装置の情報を格納するためのテーブルであり、各ネットワーク装置のハードウェア情報、ソフトウェア情報、及びネットワーク・トポロジ情報等で構成される。  
これらの情報の取得方法は任意だが、例えば、本装置の管理者による手動入力や各ネットワーク装置で構成が変更された際にネットワーク制御装置３１への自動通知等が考えられる。
【００２２】
【表２】
2016144144.tif 000004
【００２３】
負荷分散処理適用装置情報テーブル１２３は、この表２に示すように、負荷分散を実施する仮想マシンの情報を格納するためのテーブルであり、仮想マシンを一意に識別可能な識別子、ＭＡＣアドレス、ＩＰアドレス、及び仮想マシンの接続している仮想パケット転送装置のＩＰアドレス等の情報で構成される。
【００２４】
【表３】
2016144144.tif 000005
【００２５】
全トンネル情報管理用テーブル１２２は、この表３に示すように、このネットワーク制御装置３１の管理下にあるパケット転送装置と仮想パケット転送装置間で設定されたすべてのトンネルの情報を格納するためのテーブルであり、管理下のトンネルを一意に識別可能な識別子、トンネルの始点となる装置のＩＰアドレス、トンネルの終点となる装置のＩＰアドレス、（設定する場合は）トンネルの鍵で構成される。
【００２６】
処理部１１０の負荷分散処理部１１２は、前記負荷監視装置３２から通知される、大量通信の原因となっている仮想マシンのＩＰアドレス等の情報と、ネットワーク構成情報管理テーブル１２１に記憶しているテーブル内容とに基づいて負荷分散を実施する仮想マシン４４を判断し、前記表２で示した負荷分散処理適用装置情報テーブル１２３に、仮想マシン４４の識別子やＩＰアドレス、ＭＡＣアドレス、仮想マシンの接続している仮想パケット転送装置のＩＰアドレス等の情報を登録する機能を有する。
【００２７】
また、負荷分散処理部１１２は、任意のパケット転送装置、任意の仮想パケット転送装置からパケットが転送されてきた際に、そのパケットの宛先ＩＰアドレスが前記負荷分散処理適用装置情報テーブル１２３に記載されているかを確認し、記載されている場合には前記表３の全トンネル情報管理用テーブル１２２を参照して、当該パケット転送装置、当該仮想パケット転送装置間で設定済みのトンネリングプロトコルであるＧＲＥ（Ｇｅｎｅｒｉｃ  Ｒｏｕｔｉｎｇ  Ｅｎｃａｐｓｕｌａｔｉｏｎ）トンネルの中から、パケットの転送に用いるＧＲＥトンネルを選択する機能を有する。
【００２８】
ここで、ＧＲＥトンネルを選択するアルゴリズムは、ラウンドロビン等の任意の負荷分散アルゴリズムが利用可能であり、特定の仮想マシンにアクセスが集中しないように選択する。また、負荷分散処理部１１２は、選択したＧＲＥトンネルを用いて当該パケットを転送するための往路用、及び復路用のフローエントリを生成し、生成したフローエントリをパケット転送装置や仮想パケット転送装置へ通知する機能を有する。
【００２９】
トンネル制御部１１１は、任意のパケット転送装置と任意の仮想パケット転送装置の間で、ＧＲＥトンネルを設定するために必要な、トンネルの識別子、トンネルの始点となるパケット転送装置のＩＰアドレス、トンネルの終点となる仮想パケット転送装置のＩＰアドレス、（トンネルに設定する場合は）鍵情報等の情報を任意のパケット転送装置と任意の仮想パケット転送装置に通知する機能、及び前記表３で示した全トンネル情報管理用テーブル１２２に登録する機能を有する。
【００３０】
ここで、トンネルを一意に識別するためのトンネル識別子は、新規トンネル設定時にトンネル制御部１１１によって生成される。トンネル識別子の生成方法は問わないが、例えば「１」から順に割り振ることが考えられる。なお、本実施形態では、パケット転送装置を始点として仮想パケット転送装置を終点とするトンネルの設定を記載しているが、仮想パケット転送装置を始点としてパケット転送装置を終点とするようなトンネルを設定しても良い。
【００３１】
図３は、パケット転送装置２１（２２，２３）の回路構成を説明するブロック図である。同図でパケット転送装置２１は、前記ネットワーク制御装置３１、ゲートウェイ装置４５，５５、他のパケット転送装置２２，２３、仮想パケット転送装置４３，５３、ＰＣ、スマートフォン等の任意のユーザ端末等と通信する通信機能部２３０を備える。
【００３２】
パケット転送装置２１は、前記通信機能部２３０の他に処理部２１０、記憶部２２０を備え、処理部２１０内のトンネル設定機能部２１１、及びフローエントリ情報設定機能部２１２により、記憶部２２０に記憶しているフローテーブル２２１、及びトンネル情報テーブル２２２の内容を用いてデータパケットの転送処理を実行させる。
【００３３】
【表４】
2016144144.tif 000006
【００３４】
フローテーブル２２１は、この表４に示すように、条件にマッチするパケットの処理方法を定めたフローエントリを格納するためのテーブルであり、例えば、宛先ＩＰアドレスが「１０．１０．１０．１０．」にマッチするパケットをネットワーク制御装置３１に転送する、といったフローエントリを登録可能である。
【００３５】
【表５】
2016144144.tif 000007
【００３６】
トンネル情報テーブル２２２は、この表５に示すように、このパケット転送装置２１（２２，２３）に設定されたトンネルの情報を格納するためのテーブルであり、トンネル識別子、トンネルの始点ＩＰアドレス、トンネルの終点ＩＰアドレス、及び（設定する場合は）鍵の情報を保持する。
【００３７】
前記通信機能部２３０は、前記表４に示したフローテーブル２２１に記載されたフローエントリに基づいて、受信したパケットを処理する。
【００３８】
処理部２１０のフローエントリ情報設定機能部２１２は、ネットワーク制御装置３１から通知されたフローエントリを前記フローテーブル２２１に登録する。
【００３９】
トンネル設定機能部２１１は、ネットワーク制御装置３１から通知されたトンネル設定に必要な、トンネルの識別子、トンネルの始点となるパケット転送装置のＩＰアドレス（自身のＩＰアドレスに相当）、トンネルの終点となる仮想パケット転送装置のＩＰアドレス、（登録する場合は）鍵情報等の情報を、前記表５で示したトンネル情報テーブル２２２に登録する。
【００４０】
またフローエントリ情報設定機能部２１２は、トンネル情報テーブル２２２に登録したトンネル情報に基づいて、ＧＲＥトンネルを設定する。
【００４１】
さらにフローエントリ情報設定機能部２１２は、ＧＲＥトンネルを介して送信するパケットを設定に基づいてＧＲＥヘッダでカプセル化する他、ＧＲＥトンネルを介して受信した、カプセル化されたパケットのＧＲＥヘッダを取り外す。
【００４２】
図４は、前記第１のデータセンタ４１内の第１の物理サーバ４２（第２のデータセンタ５１内の第２の物理サーバ５２）の回路構成を例示するブロック図である。  
第１の物理サーバ４２は、第１のゲートウェイ装置４５、負荷監視装置３２、ネットワーク制御装置３１等との通信を行なう物理サーバ通信機能部４５１を備える。この物理サーバ通信機能部４５１が、仮想マシン管理機能部４５２と接続され、さらにこの仮想マシン管理機能部４５２が仮想マシン情報管理テーブル４５３、及び第１の仮想マシン４４１、及び第２の仮想マシン４４２と接続される。
【００４３】
【表６】
2016144144.tif 000008
【００４４】
仮想マシン情報管理テーブル４５３は、この表６に示すように、物理サーバ４２にインストールされた仮想マシン情報を格納するためのテーブルであり、仮想マシンを一意に識別可能な識別子、ＭＡＣアドレス、ＩＰアドレス、接続している仮想パケット転送装置のＩＰアドレスやポート等の情報で構成される。
【００４５】
前記仮想マシン管理機能部４５２は、仮想マシン４４１，４４２に対して、複製、削除、仮想スイッチの論理ポートとの接続等の各種制御を行なう他、仮想マシンの複製等を行なった際に、前記仮想マシン情報管理テーブル４５３の情報を更新する。
【００４６】
図５は、仮想パケット転送装置４３（，５３）の回路構成を例示するブロック図である。同図で仮想パケット転送装置４３は、論理ポートである通信機能部５３０を介して、各仮想マシン４４１，４４２と接続され、また前記物理サーバ通信機能部４５１を介して、外部のネットワーク装置と通信可能である。
【００４７】
仮想パケット転送装置４３は、前記通信機能部５３０の他に処理部５１０、記憶部５２０を備え、処理部５１０内のトンネル設定機能部５１１、及びフローエントリ情報設定機能部５１２により、記憶部５２０に記憶しているフローテーブル５２１、及びトンネル情報テーブル５２２の内容を用いてデータパケットの転送処理を実行させる。
【００４８】
仮想パケット転送装置４３は、物理サーバ通信機能部４５１で受信したパケットをフローテーブル５２１の内容に従って、任意の仮想マシンに転送する機能を有する。例えば、「１０．１０．１０．１０」宛のパケットを受信した場合、ＩＰアドレスが「１０．１０．１０．１０」の仮想マシンが接続する論理ポートに対してパケットを転送するフローエントリを設定しておくことで、仮想マシンにパケットを届けることが可能となる。その他の機能については、前記図３に示したパケット転送装置２１（〜２３）と同様である。
【００４９】
次に前記実施形態の動作について説明する。  
図６は、攻撃検知に伴って仮想マシンを複製する場合の、主としてパケット転送装置２１、ネットワーク制御装置３１と第１の物理サーバ４２、第２の物理サーバ５２等で実施される手順の一例を示すシーケンス図である。
【００５０】
その当初に負荷監視装置３２は、ゲートウェイ装置４５，５５や仮想マシン４４での負荷が増加するのを検知する（ステップＳ１０１）。
【００５１】
負荷監視装置３２は、ネットワーク制御装置３１に対して負荷増加の検知を通知する（ステップＳ１０２）。この際に負荷監視装置３２は、アクセスの集中している仮想マシン４４のＩＰアドレスを併せてネットワーク制御装置３１に通知する。
【００５２】
通知を受けたネットワーク制御装置３１は、通知されたＩＰアドレスと前記表１で示したネットワーク構成情報管理テーブル１２１の情報から、仮想マシンの構成情報を取得する（ステップＳ１０３）。
【００５３】
ネットワーク制御装置３１の負荷分散処理部１１２は、前記表２で示した負荷分散処理適用装置情報テーブル１２３に、取得した仮想マシンの構成情報を格納する（ステップＳ１０４）。
【００５４】
ネットワーク制御装置３１は、取得した仮想マシンの構成情報に基づき、任意のデータセンタの任意の物理サーバ、例えば第２のデータセンタ５１の仮想マシン管理機能部４５２に対して、仮想マシンの複製を要求する（ステップＳ１０５）。
【００５５】
ここで仮想マシンを複製するデータセンタや物理サーバの選択方法は任意であり、例えば、複製元の仮想マシンの存在するデータセンタから地理的に離れたデータセンタを選択し、非常用に確保した物理サーバ内に仮想マシンを複製する等が考えられる。
【００５６】
ネットワーク制御装置３１から選択され、要求を受けた第２の物理サーバ５２の仮想マシン管理機能部４５２は、要求された仮想マシンを複製し、前記表６に示した仮想マシン情報管理テーブル４５３に、複製した仮想マシンの識別子、ＭＡＣアドレス、ＩＰアドレス、接続している仮想パケット転送機能のＩＰアドレス等の対応情報を格納する（ステップＳ１０６）。
【００５７】
この際、複製先の仮想マシンのＩＰアドレスは複製元の仮想マシンのＩＰアドレスと同じものを設定する。
【００５８】
仮想マシンの複製方法は任意であり、例えば、複製元の仮想マシンのディスクイメージ、構成情報をデータとして保管しておき、そのデータを任意の物理サーバでコピーして実行する等が考えられる。
【００５９】
続いて同仮想マシン管理機能部４５２は、ネットワーク制御装置３１に対して、仮想マシンの複製完了の応答を送信する（ステップＳ１０７）。この際、仮想マシン管理機能部４５２は複製した仮想マシンの構成情報をネットワーク制御装置３１に通知する。
【００６０】
これを受けたネットワーク制御装置３１は、複製した仮想マシンの構成情報を前記表１で示すネットワーク構成情報管理テーブル１２１に格納する（ステップＳ１０８）。
【００６１】
なお、仮想マシンを複製する台数は任意であり、本システムの運用者による手動設定や前記図６乃至後述する図９までの一連の負荷分散処理実施後に、あらためてゲートウェイ装置４５，５５や複製した仮想マシン５４の負荷を測定し、所望の負荷未満になるまで複製の仮想マシンを順次作成する処理を繰り返す等が考えられる。
【００６２】
図７は、続いて例えば第１パケット転送装置２１と第１の仮想パケット転送装置４３，５３、及び第２の仮想パケット転送装置５３間で実行される、ＧＲＥトンネルの設定の実施手順の一例を示すシーケンス図である。
【００６３】
その処理当初、ネットワーク制御装置３１のトンネル制御部１１１は、任意のパケット転送装置、例えば第１のパケット転送装置２１に対して、負荷分散を行なう仮想マシン（オリジナル・複製版）の接続されている任意の仮想パケット転送装置、例えば第１の仮想パケット転送装置４３との間にＧＲＥトンネルを設定するよう要求する（ステップＳ２０１）。
【００６４】
この際、トンネル制御部１１１はトンネルの終点となる任意の仮想パケット転送装置のＩＰアドレスとＧＲＥトンネル識別子を通知する。
【００６５】
例えば、第１のパケット転送装置２１と第１の仮想パケット転送装置４３の間でＧＲＥトンネルを設定したい場合、トンネル制御部１１１は第１のパケット転送装置２１に対してＧＲＥトンネル設定要求を送信し、その際に、第１の仮想パケット転送装置４３のＩＰアドレスとＧＲＥトンネル識別子（例えば「１」）を送信する。
【００６６】
ネットワーク制御装置３１のトンネル制御部１１１から要求を受けた第１のパケット転送装置２１のトンネル設定機能部２１１は、自身のＩＰアドレスと通知された仮想パケット転送装置のＩＰアドレスを用いて、ＧＲＥトンネルを設定する（ステップＳ２０２）。
【００６７】
第１のパケット転送装置２１のトンネル設定機能部２１１は、設定したＧＲＥトンネル情報を前記表５で示した自身の記憶部２２０のトンネル情報テーブル２２２に格納する（ステップＳ２０３）。
【００６８】
格納処理後、第１のパケット転送装置２１のトンネル設定機能部２１１は、ネットワーク制御装置３１に対して、ＧＲＥトンネルの設定完了を通知する（ステップＳ２０４）。
【００６９】
これを受けたネットワーク制御装置３１のトンネル制御部１１１は、トンネルの終点となる第１の仮想パケット転送装置４３に対して、第１のパケット転送装置２１との間にＧＲＥトンネルを設定するよう要求する（ステップＳ２０５）。この際、ネットワーク制御装置３１はトンネルの始点となる第１のパケット転送装置２１のＩＰアドレスとＧＲＥトンネル識別子を通知する。
【００７０】
例えば、先ほどと同様、第１のパケット転送装置２１と第１の仮想パケット転送装置４３の間でＧＲＥトンネルを設定したい場合、ネットワーク制御装置３１のトンネル制御部１１１は、仮想パケット転送装置５３に対してＧＲＥトンネル設定要求を送信し、その際に、第１のパケット転送装置２１のＩＰアドレスとＧＲＥトンネル識別子（先ほどと同じ「１」）を送信する。
【００７１】
ネットワーク制御装置３１からの要求を受けた第１の仮想パケット転送装置４３のトンネル設定機能部５１１は、自身のＩＰアドレスと通知された第１のパケット転送装置２１のＩＰアドレスを用いて、ＧＲＥトンネルを設定する（ステップＳ２０６）。
【００７２】
続いて第１の仮想パケット転送装置４３のトンネル設定機能部５１１は、設定したＧＲＥトンネル情報を自身の記憶部５２０に保有する、前記表６に示したトンネル情報テーブル５２２に格納する（ステップＳ２０７）。
【００７３】
第１の仮想パケット転送装置４３のトンネル設定機能部５１１は、ネットワーク制御装置３１に対して、ＧＲＥトンネルの設定完了を通知する（ステップＳ２０８）。
【００７４】
これを受けたネットワーク制御装置３１のトンネル制御部１１１は、前記表３で示した記憶部１２０の全トンネル情報管理用テーブル１２２に、あらためて通知のあったＧＲＥトンネル情報を格納する（ステップＳ２０９）。
【００７５】
ネットワーク制御装置３１のトンネル制御部１１１は、前記ステップＳ２０１〜Ｓ２０９の処理に処理を負荷分散対象の仮想マシン（オリジナル・複製版）が接続する他の仮想パケット転送装置に対しても実施する。
【００７６】
例えば、前記ステップＳ２０１〜Ｓ２０９の処理を第２の仮想パケット転送装置５３に対しても適用することで、第１のパケット転送装置２１第１の仮想パケット転送装置４３間を接続するＧＲＥトンネルと、第１のパケット転送装置２１と第２の仮想パケット転送装置５３間を接続するＧＲＥトンネルが設定されることになる（ステップＳ２１０）。
【００７７】
前記ステップＳ２０１〜Ｓ２１０の処理をネットワーク制御装置３１のトンネル制御部１１１の制御の下に任意の台数のパケット転送装置に対して実施する（ステップＳ２１１）。
【００７８】
前記本手順を実施するパケット転送装置の台数や、どのパケット転送装置に実施するかは任意だが、例えば、仮想マシン宛のすべての通信に対して負荷分散を適用したい場合には、ＩＳＰ網／キャリア網１１のエッジ部分に設置されたすべてのパケット転送装置２１〜２３に対して本手順を実施することが考えられる。
【００７９】
図８は、例えば第１のパケット転送装置２１及び第１の仮想パケット転送装置４３への初期フローエントリを設定する場合の手順の一例を示すシーケンス図である。
【００８０】
前記ＧＲＥトンネルの設定完了後、以下に示す手順で、ＧＲＥトンネルを設定した、例えば第１のパケット転送装置２１と第１の仮想パケット転送装置４３に対して、初期フローエントリを設定する。
【００８１】
まずネットワーク制御装置３１は、任意のパケット転送装置、例えば第１のパケット転送装置２１に対して、そのフローテーブル２２１に未登録の送信元ＩＰアドレス、かつ負荷分散対象の仮想マシンのＩＰアドレス宛のパケットが到達した場合、ネットワーク制御装置３１に送信するというフローエントリの登録を要求する（ステップＳ３０１）。
【００８２】
要求を受けた第１のパケット転送装置２１のフローエントリ情報設定機能部２１２は、自身の保有する、前記表４で示したフローテーブル２２１に通知されたフローエントリを格納する（ステップＳ３０２）。
【００８３】
第１のパケット転送装置２１のフローエントリ情報設定機能部２１２は、ネットワーク制御装置３１に対して、フローエントリの登録が完了した通知を送信する（ステップＳ３０３）。
【００８４】
これを受けたネットワーク制御装置３１は、負荷分散対象の仮想マシン（オリジナル・複製版）が接続する任意の仮想パケット転送装置、例えば第１の仮想パケット転送装置４３に対して、仮想マシン５４のＩＰアドレス宛のパケットが到達した場合、その仮想マシンの接続しているポートに出力するというフローエントリの登録を要求する（ステップＳ３０４）。
【００８５】
要求を受けた第１の仮想パケット転送装置４３のフローエントリ情報設定機能部５１２は、自身の保有する、前記表４で示したフローテーブル５２１に通知されたフローエントリを格納する（ステップＳ３０５）。
【００８６】
第１の仮想パケット転送装置４３のフローエントリ情報設定機能部５１２は、ネットワーク制御装置３１に対して、フローエントリの登録が完了した通知を送信する（ステップＳ３０６）。
【００８７】
前記ステップＳ３０１〜Ｓ３０６の処理を、トンネルを設定したすべてのパケット転送装置と仮想パケット転送装置に対して実施する（ステップＳ３０７）。
【００８８】
以上、図６〜図８の手順を実行することにより、負荷分散を実施するために事前に必要な、仮想マシンの複製、ＧＲＥトンネルの設定、及び初期フローエントリの登録が完了する。
【００８９】
図９は、続いてＰＣやスマートフォンなどのユーザ端末から仮想マシンへのアクセスがあった際の負荷分散処理の手順の一例を示すシーケンス図である。  
ここでは、ユーザ端末から負荷分散対象の仮想マシンへの初回通信が発生した状況を想定して説明するものとする。
【００９０】
その当初、ユーザ端末から仮想マシンのＩＰアドレス宛の通信が発生し、任意のパケット転送装置、例えば第１のパケット転送装置２１にパケットが到達する（ステップＳ４０１）。
【００９１】
これを受けた第１のパケット転送装置２１は、事前に設定されたフローエントリに従い、ネットワーク制御装置３１に対してパケットを転送する（ステップＳ４０２）。
【００９２】
ネットワーク制御装置３１の負荷分散処理部１１２は、転送されてきたパケットの宛先ＩＰアドレスが、前記表２で示した負荷分散処理適用装置情報テーブル１２３に登録されているかを確認する（ステップＳ４０３）。ここで登録されていることを確認した場合、以降の処理を実施する。
【００９３】
すなわちネットワーク制御装置３１の負荷分散処理部１１２は、前記表３で示した全トンネル情報管理用テーブル１２２に基づいて、パケット転送装置の利用可能なＧＲＥトンネル情報を取得する（ステップＳ４０４）。ここでは、例えば、トンネル識別子「１」とトンネル識別子「２」のトンネルが利用可能とする。
【００９４】
ネットワーク制御装置３１の負荷分散処理部１１２は、負荷分散アルゴリズムに従って、パケットを転送するＧＲＥトンネルを選択する（ステップＳ４０５）。
【００９５】
ここで前記負荷分散アルゴリズムは、任意のアルゴリズムを利用可能であり、オリジナルの仮想マシンと複製した仮想マシン間で、通信が集中しないように任意のアルゴリズムを用いて振り分ける。
【００９６】
ネットワーク制御装置３１の負荷分散処理部１１２は、受信したパケットを選択したＧＲＥトンネルで転送するための往路用及び復路用の各フローエントリを作成する（ステップＳ４０６）。
【００９７】
往路用のフローエントリの一例としては、「送信元ＩＰアドレスがユーザ端末のＩＰアドレス、かつ宛先ＩＰアドレスが負荷分散対象の仮想マシンのＩＰアドレスの場合、トンネル識別子「１」のＧＲＥトンネルで転送する」というものが考えられる。  
また、前記に対応する復路用のフローエントリの一例としては、「送信元ＩＰアドレスが負荷分散対象の仮想マシンのＩＰアドレス、かつ宛先ＩＰアドレスがユーザ端末のＩＰアドレスの場合、トンネル識別子「１」のＧＲＥトンネルで転送する」というものが考えられる。
【００９８】
ネットワーク制御装置３１の負荷分散処理部１１２は、選択されたトンネルの終点となる仮想パケット転送装置、例えば第１の仮想パケット転送装置４３に対して、当該パケットに対する復路用のフローエントリの登録要求を送信する（ステップＳ４０７）。
【００９９】
要求を受けた第１の仮想パケット転送装置４３のフローエントリ情報設定機能部５１２は、前記表４で示した自身の保有するフローテーブル５２１に通知されたフローエントリを格納する（ステップＳ４０８）。
【０１００】
第１の仮想パケット転送装置４３のフローエントリ情報設定機能部５１２は、ネットワーク制御装置３１に対して、フローエントリの登録完了応答を送信する（ステップＳ４０９）。
【０１０１】
これを受けたネットワーク制御装置３１の負荷分散処理部１１２は、選択されたトンネルの始点となるパケット転送装置（当該パケットを送信してきたパケット転送装置）、例えば第１のパケット転送装置２１に対して、当該パケットに対する往路用のフローエントリの登録要求を送信する（ステップＳ４１０）。
【０１０２】
要求を受けた第１のパケット転送装置２１のフローエントリ情報設定機能部２１２は、前記表４で示した、自身の保有するフローテーブル２２１に通知されたフローエントリを格納する（ステップＳ４１１）。
【０１０３】
続けて第１のパケット転送装置２１のフローエントリ情報設定機能部２１２は、ネットワーク制御装置３１に対して、フローエントリの登録完了応答を送信する（ステップＳ４１２）。
【０１０４】
ネットワーク制御装置３１の負荷分散処理部１１２は、第１のパケット転送装置２１に対して、前記ステップＳ４０２で受信したパケットを返送する（ステップＳ４１３）。
【０１０５】
パケットの返送を受けた第１のパケット転送装置２１は、フローエントリ情報設定機能部２１２の制御に従い、選択されたＧＲＥトンネルでパケットを転送する。この際、オリジナルのパケットをＧＲＥヘッダでカプセル化する（ステップＳ４１４）。
【０１０６】
ＧＲＥトンネルの終点となっている、例えば第１の仮想パケット転送装置４３は、カプセル化されたパケットのＧＲＥヘッダを取り外し、フローエントリに従い、オリジナルのパケットを第２の物理サーバ５２の仮想マシン５４に転送する（ステップＳ４１５）。
【０１０７】
パケットを受信した仮想マシン５４は、パケットを処理する（ステップＳ４１６）。
【０１０８】
仮想マシン５４からユーザ端末のＩＰアドレス宛の通信が発生し、第１の仮想パケット転送装置４３に到達する（ステップＳ４１７）。
【０１０９】
第１の仮想パケット転送装置４３は、フローエントリ情報設定機能部５１２に従い、往路と同じＧＲＥトンネルで第１のパケット転送装置２１までパケットを転送する。この際、オリジナルのパケットをＧＲＥヘッダでカプセル化する（ステップＳ４１８）。
【０１１０】
これを受けた第１のパケット転送装置２１は、ＧＲＥトンネル経由で受信した、カプセル化されたパケットのＧＲＥヘッダを取り外し、オリジナルのパケットに記載された、ユーザ端末宛のＩＰアドレス宛にパケットを転送する（ステップＳ４１９）。
【０１１１】
以上の動作において説明した如く、アクセスの集中している仮想マシンを別のデータセンタに複製し、それらの間で負荷の分散を図ることが可能になり、仮想マシンの負荷が増加した場合に負荷を分散することが可能となると共に、ネットワーク帯域の負荷が増加した場合にも負荷を迅速に分散することが可能になる。
【０１１２】
また、ＤＤｏＳ攻撃に関して、仮想マシンのＩＰアドレスは１つのままで、ネットワーク側で任意の仮想マシンにトラフィックを振り分けることが可能になるため、仮想マシンのＩＰアドレスを直接指定して実施されるＤＤｏＳ攻撃にも対処できる。
【０１１３】
以上詳述した如く本実施形態によれば、サーバやネットワーク帯域の負荷が増加した際の双方に対処して広域ネットワークでの負荷を確実に分散させることが可能になり、サービスの可用性が向上する。
【０１１４】
その他、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成を削除してもよい。さらに、異なる実施形態例に亘る構成要素を適宜組み合わせてもよい。
【符号の説明】
【０１１５】
１１…ＩＳＰ網／キャリア網、
２１〜２３…パケット転送装置、
３１…ネットワーク制御装置、
３２…負荷監視装置、
４１…第１のデータセンタ、
４２…第１物理サーバ、
４３…第１の仮想パケット転送装置、
４４…仮想マシン、
４５…第１のゲートウェイ装置、
５１…第２のデータセンタ、
５２…第２物理サーバ、
５３…第２の仮想パケット転送装置、
５４…複製した仮想マシン、
５５…第２のゲートウェイ装置、
１１０…処理部、
１１１…トンネル制御部、
１１２…負荷分散処理部、
１２０…記憶部、
１２１…ネットワーク（ＮＷ）構成情報管理テーブル、
１２２…全トンネル情報管理用テーブル、
１２３…負荷分散処理適用装置情報テーブル、
１３０…通信機能部、
２１０…処理部、
２１１…トンネル設定機能部、
２１２…フローエントリ情報設定機能部、
２２０…記憶部、
２２１…フローテーブル、
２２２…トンネル情報テーブル、
２３０…通信機能部、
４４１…第１の仮想マシン、
４４２…第２の仮想マシン、
４５１…物理サーバ通信機能部、
４５２…仮想マシン管理機能部、
４５３…仮想マシン情報管理テーブル、
５１０…処理部、
５１１…トンネル設定機能部、
５１２…フローエントリ情報設定機能部、
５２０…記憶部、
５２１…フローテーブル、
５２２…トンネル情報テーブル、
５３０…通信機能部。
【図１】
2016144144.tif 000009
【図２】
2016144144.tif 000010
【図３】
2016144144.tif 000011
【図４】
2016144144.tif 000012
【図５】
2016144144.tif 000013
【図６】
2016144144.tif 000014
【図７】
2016144144.tif 000015
【図８】
2016144144.tif 000016
【図９】
2016144144.tif 000017