<ネットワーク延伸例>
図1Aは、実施例1にかかるネットワーク延伸例を示す説明図である。図1Aにおいて、表T1は、各種環境下でのユニキャストおよびブロードキャストの通信可否を示す表であり、表T2は、送信元と宛先との環境の組み合わせを示す表である。表T2において、制約環境は、たとえば、ブロードキャスト禁止およびスプーフィング禁止という制約条件があるクラウド環境である。スプーフィングとは、送信元ネットワークアドレスに偽のネットワークアドレスを割り当て、パケットを送り込む攻撃手法である。たとえば、(III)は、送信元に制約条件があり、宛先に制約条件がないケースを示す。
表T1において、「A」は通信可能を示し、「D」はアクセス制御機能によるパケットの廃棄を示す。また、「R」は、アクセス制御機能が代理応答する場合を示す。また、「D→A」は、背景技術の項で示した従来技術ではアクセス制御機能によるパケットの廃棄となるが、実施例1により通信可能な場合を示す。
図1Aに示すハイブリッドクラウド100は、プライベートクラウドであるクラウド利用者環境101と、パブリッククラウドであるクラウド環境102Aと、パブリッククラウドであるクラウド環境102Bとが、WANやインターネット等の外部ネットワーク103を介して接続される。ハイブリッドクラウド100は、ネットワーク延伸を実行可能なシステムである。図1Aの例では、クラウド利用者環境101およびクラウド環境102Aを非制約環境とし、クラウド環境102Bを制約環境として説明する。
クラウド利用者環境101は、ゲートウェイG1と、ノードN1、N2と、を有するサイトを示すネットワークシステムである。例として、ノードN1のIPアドレスを「A」、MAC(Media Access Control)アドレスを「α」とする。
クラウド環境102Aは、ゲートウェイG2Aと、クラウド基盤120と、ノードN3、N4と、を有するサイトを示すネットワークシステムである。クラウド基盤120は、ネットワーク延伸を実行する機能を有する。
クラウド環境102Bは、ゲートウェイG2Bと、クラウド基盤130と、ノードN5、N6と、を有するサイトを示すネットワークシステムである。ゲートウェイG1、G2A、G2B(総称して、ゲートウェイG)は、外部ネットワーク103を介してデータを送受信する。ノードN1〜N6は、自サイト内の他のノードまたは他サイトのノードにデータを送信したり、自サイト内の他のノードまたは他サイトのノードからのデータを受信したりする。
クラウド基盤130は、アクセス制御機能を有し、上述した制約条件によりデータを廃棄する管理装置である。具体的には、たとえば、クラウド基盤130は、IPアドレスとMACアドレスとを関連付けたネットワークアドレス情報テーブル131を有する。ネットワークアドレス情報テーブル131は、ノードNまたはゲートウェイGを特定するIPアドレスとMACアドレスの組に、ゲートウェイGまたはホストコンピュータHのネットワークインターフェースを割り当てたテーブルである。クラウド基盤130は、データの宛先IPアドレスと宛先MACアドレスの組み合わせがネットワークアドレス情報テーブル131に存在しない場合は、当該データを廃棄する。
ここで、表T1の各ケースについて説明する。(I)は、送信元および宛先が非制約環境であるケースである。たとえば、ノードN1からノードN3にデータを送信するケースが該当する。この場合、ノードN1からのデータ(ユニキャストでもブロードキャストでもよい)は、ゲートウェイG1、外部ネットワーク103、ゲートウェイG2A、クラウド基盤120を経由して、ノードN3に到達する。
(II)は、送信元が非制約環境であり、宛先が制約環境であるケースである。たとえば、ノードN1からノードN5にパケットを送信するケースが該当する。たとえば、ノードN1(送信元IPアドレス:A,送信元MACアドレス:α)からノードN5(宛先IPアドレス:C、宛先MACアドレス:γ)にデータFをユニキャスト送信する場合を説明する。データFは、ゲートウェイG1でカプセル化されてデータPとなり、データPは外部ネットワーク103を経由し、ゲートウェイG2Bでデカプセル化されてデータFにもどり、データFはクラウド基盤130に到達する。
クラウド基盤130は、ネットワークアドレス情報テーブル131を参照し、データFに含まれる送信元IPアドレス:A,送信元MACアドレス:αの組み合わせが、ネットワークアドレス情報テーブル131に存在するか否かを判断する。本例の場合、存在するため、データFは、ノードN5に受信される。このように、制約環境のゲートウェイG2Bのネットワークインターフェース(IF2)に、制約環境以外のノードのネットワークアドレス情報(IPアドレス:A,MACアドレス:α)を割り当てることで、ネットワーク延伸を実現することができる。
なお、ノードN5が存在するクラウド環境102Bは制約環境であるため、ノードN1からのデータがブロードキャストされる場合は、クラウド基盤130は廃棄することになる。また、ノードN1からノードN5への送信例を説明したが、送信元はノードN2〜N4のいずれかでもよく、宛先はノードN6でもよい。
(III)は、送信元が制約環境であり、宛先が非制約環境である。たとえば、ノードN5からノードN1にデータを送信するケースが該当する。たとえば、ノードN5(宛先IPアドレス:C、宛先MACアドレス:γ)からノードN1(送信元IPアドレス:A,送信元MACアドレス:α)にデータをユニキャストする場合を説明する。クラウド基盤130は、ネットワークアドレス情報テーブル131を参照し、ノードN5からのデータに含まれる送信元IPアドレス:A,送信元MACアドレス:αの組み合わせが、ネットワークアドレス情報テーブル131に存在するか否かを判断する。本例の場合、存在するため、クラウド基盤130は、ノードN5からのデータを廃棄せずに、ゲートウェイG2Bに転送する。ゲートウェイG2Bは、受信したデータをカプセル化する。カプセル化されたデータは、外部ネットワーク103を経由し、ゲートウェイG1でデカプセル化され、ノードN1に到達する。
このように、制約環境のゲートウェイG2Bのネットワークインターフェース(IF2)に制約環境以外のノードのネットワークアドレス情報(IPアドレス:A,MACアドレス:α)を割り当てることで、ネットワーク延伸を実現することができる。
なお、ノードN5が存在するクラウド環境102Bは制約環境であるため、ノードN5からのデータがブロードキャストされる場合は、クラウド基盤130は廃棄することになる。また、ノードN5からノードN1への送信例を説明したが、送信元はノードN6でもよく、宛先はノードN2〜N4のいずれかでもよい。
(IV)は、送信元および宛先が制約環境であり、送信元の制約環境と宛先の制約環境が異なる場合である。たとえば、図示しない制約環境下にあるノードからノードN5にパケットを送信するケースや、ノードN5から図示しない制約環境下にあるノードにパケットを送信するケースが該当する。
図示しない制約環境下にあるノードからノードN5にパケットを送信するケースについては、送信側である図示しない制約環境における処理は、(III)と同様であり、受信側であるクラウド環境102Bにおける処理は、(II)と同様である。
また、ノードN5から図示しない制約環境下にあるノードにデータを送信するケースについては、送信側であるクラウド環境102Bにおける処理は、(III)と同様であり、受信側である図示しない制約環境における処理は、(II)と同様である。すなわち、図示しない制約環境下にあるノードのネットワークアドレス情報(IPアドレスとMACアドレス)がネットワークアドレス情報テーブル131に存在すれば、ノードN5は、図示しない制約環境下にあるノードにユニキャスト送信でき、図示しない制約環境下にあるノードからユニキャストされたデータを受信できる。
このように、制約環境のゲートウェイのネットワークインターフェースに制約環境以外のノードのネットワークアドレス情報を割り当てることで、ネットワーク延伸を実現することができる。
なお、ノードN5が存在するクラウド環境102Bは制約環境であるため、ノードN5からのデータがブロードキャストされる場合は、クラウド基盤130は廃棄し、また、図示しない制約環境下にあるノードからのデータがブロードキャストされる場合もクラウド基盤130は廃棄することになる。また、ノードN5を例にあげて説明したがノードN6でもよい。
(IV')は、送信元および宛先が制約環境であり、送信元の制約環境と宛先の制約環境が同一の場合である。たとえば、ノードN5からノードN6にデータを送信するケースが該当する。ノードN5からのデータがユニキャストされる場合、(III)で説明したように、ノードN5からのデータはゲートウェイG2Bに到達するが、ノードN5からのデータはゲートウェイG2Bで折り返して、クラウド基盤130を経由してノードN6に到達する。なお、ノードN5からのデータがブロードキャストされる場合、クラウド基盤130が代理応答によりノードN6に送信するが、それ以外のノードN1〜N4には送信せずにクラウド基盤130が廃棄する。
<ネットワークアドレスの収集例>
図1Bは、図1Aに示したハイブリッドクラウドにおけるネットワークアドレスの収集例を示す説明図である。あるサイト(たとえば、クラウド環境102A,102B)のネットワークアドレスを他のサイト(たとえば、クラウド利用者環境101)のゲートウェイGに割り当てるためには、事前にゲートウェイコントローラ140が、各サイトのネットワークアドレスを収集しておく必要がある。
クラウド利用者環境101には、クラウド基盤がないため、ゲートウェイG1がクラウド利用者環境101内のサイトネットワークS11、S12およびノードN1、N2、N10、N20のネットワークアドレスを自律的に収集する。具体的には、たとえば、ゲートウェイG1は、ARPを利用してネットワークアドレスを学習する学習機能(たとえば、Open Flow(登録商標)コントローラ)を有し、ノードN1,N2,N10,N20からのデータの送信元MACアドレスおよび送信元IPアドレス(ノードネットワークアドレス)を収集する。また、ゲートウェイG1は、収集した送信元IPアドレスを元にして、サイトネットワークS11、S12のネットワークアドレス(サイトネットワークアドレス)を特定する。
また、あるノードN1が他サイト(たとえば、クラウド環境102A,102B)のノードにデータを送信する場合、他サイトのノードのMACアドレスが不明な場合がある。この場合、ゲートウェイG1の学習機能が保持するARPテーブルに、他サイトのノードのMACアドレスとIPアドレスの組み合わせを示すエントリが存在すれば、ゲートウェイG1の学習機能が当該エントリを参照して、データの送信元のノードN1に通知する。これにより、ノードN1は、他サイトのノードのMACアドレスとIPアドレスの組み合わせを特定することができる。
クラウド環境102Aのクラウド基盤120は、あらかじめサイトネットワークS2A、ゲートウェイG2A、ノードN3、ノードN4のネットワークアドレスを保持しているものとする。サイトネットワークとは、自サイト内のネットワークであり、たとえば、LAN(Local Area Network),WAN(Wide Area Network)である。クラウド利用者環境101のゲートウェイG1のように、ゲートウェイG2がサイトネットワークS2A、ノードN3、ノードN4のネットワークアドレスを自律学習して、クラウド基盤120に登録してもよい。なお、クラウド基盤130についても、クラウド基盤120と同様である。
ゲートウェイコントローラ140は、クラウド利用者環境101のゲートウェイG1、クラウド環境102A,102Bのクラウド基盤120,130から、ネットワークアドレス情報(サイトネットワークアドレス、ノードネットワークアドレス、ゲートウェイネットワークアドレス)を収集し、ネットワークアドレス管理DB141に格納する。すなわち、ゲートウェイコントローラ140は、ネットワークアドレス情報を一元管理する。
そして、各ゲートウェイGは、他サイトのネットワークアドレス情報をゲートウェイコントローラ140から収集することにより、図1Aに示したように、自サイトのノードから他サイトのノードにユニキャスト送信することができる。
なお、図1Bでは、ゲートウェイコントローラ140が各サイトのネットワークアドレス情報を収集したが、各ゲートウェイGが他サイトのゲートウェイGから当該他サイトで取得された他サイトにおけるネットワークアドレス情報を収集してもよい。このように、ゲートウェイG間で自律共有機能を用いる場合、いずれかのゲートウェイGがゲートウェイコントローラ140として機能することになる。これにより、サイトネットワークS11、S12、S2A,S2BやノードN1〜N6,N10,N20のネットワークアドレス情報をゲートウェイG間による自律共有によって管理することにより、ネットワーク延伸を実現することができる。
<システム構成例>
図2は、ハイブリッドクラウドのシステム構成例を示す説明図である。ハイブリッドクラウド200は、クラウド利用者環境201A,201Bとクラウド環境201C,201D(以下、総称してサイト201とする)とゲートウェイコントローラ202とを有する。サイト201とゲートウェイコントローラ202とは、外部ネットワーク203を介して通信線204により接続される。図2では、クラウド利用者環境201A,201Bがプライベートクラウドに該当し、クラウド環境201C,201Dがパブリッククラウドに該当する。また、サイト201の少なくとも1つは、上述した制約環境である。また、サイト201の内部の構成の各々は、1つでも複数でもよい。また、ゲートウェイコントローラ202および外部ネットワーク203も1つに限らず2以上でもよい。
ゲートウェイGA〜GD(以下、総称してゲートウェイGとする)は、外部ネットワーク203とサイトネットワークSA1,NA2,NB,NC,ND(以下、総称してサイトネットワークSとする)間の接続を中継するネットワーク機器であり、物理装置でも仮想装置でもよい。ゲートウェイGは、公知の仮想ネットワーク技術を用いてサイトネットワークの通信をカプセル化して外部ネットワーク203に転送する。公知の仮想ネットワーク技術には、例えばVPN(Virtual Private Network)やGRE(Generic Routing Encapsulation)、VXLAN(Virtual eXtensible Local Area Network)がある。
また、ゲートウェイGは、仮想スイッチ(不図示)を有し、外部ネットワーク203とサイトネットワークSとの間の通信転送処理、通信アドレス変換処理、通信学習処理を行う。ゲートウェイGは、ゲートウェイコントローラ202からの要求に応じて、通信転送処理を行う。また、ゲートウェイGは、ゲートウェイコントローラ202からの要求に応じて、パケットの送信先ネットワークアドレスや送信元ネットワークアドレスの変換を行う。通信学習処理は、ゲートウェイG配下のホストコンピュータHA1〜HA4,HB1,HB2,HC1,HC2,HD1,HD2(以下、総称してホストコンピュータHとする)のネットワークアドレスを収集する処理である。
通信学習処理は、ソフトウェアによってネットワークの構成や機能をプログラミングする技術により実現可能である。ソフトウェアによってネットワークの構成や機能をプログラミングする技術には、例えば、ホストコンピュータHのARP(Address Resolution Protocol)要求の送信元ネットワークアドレスを利用して学習するOpenFlow(登録商標)等のその他の公知の手法、プロプライエタリな手法がある。
ゲートウェイコントローラ202は、ゲートウェイGの集中制御及びハイブリッドクラウド200全体の集中管理を行う制御装置であり、例えば、外部ネットワーク203またはサイトネットワークSを介して一つ以上のゲートウェイGを集中制御し、かつ、ゲートウェイGまたはクラウド基盤3C、3D(以下、総称してクラウド基盤3とする)を介してサイトネットワークSやホストコンピュータHのネットワークアドレス情報を集中管理する。また、ゲートウェイコントローラ202は、ゲートウェイGと通信できる環境であれば、サイト201のいずれかに配備してもよい。
ゲートウェイコントローラ202は物理マシンでも仮想マシンでもよい。ゲートウェイコントローラ202が仮想マシンである場合、ゲートウェイコントローラ202は、たとえば、いずれかのゲートウェイGまたはいずれかのクラウド基盤3に構築される。すなわち、ゲートウェイGに構築される場合には、実質的に、ゲートウェイGがゲートウェイコントローラ202としても機能し、クラウド基盤3に構築される場合には、実質的に、クラウド基盤3がゲートウェイコントローラ202としても機能する。
クラウド基盤3は、クラウド環境201C、201DのサイトネットワークSやホストコンピュータHを管理する機器であり、サイトネットワークSやホストコンピュータHの情報提供や設定を行うための管理インターフェース(不図示)を有し得る。管理インターフェースは、たとえば、API(Application Programming Interface)により実現される。管理インターフェースを有する場合、例えば、クラウド利用者やゲートウェイコントローラ202等の外部からの要求に応じて、クラウド基盤3は、サイトネットワークSやホストコンピュータHの情報提供、ゲートウェイGの作成やネットワークアドレスの設定を行うことができる。
ホストコンピュータHは、自サイト201の他のホストコンピュータHや他サイト201のホストコンピュータHと通信するコンピュータである。ホストコンピュータHは、図1Aおよび図1Bに示したノードである。ホストコンピュータHは、物理マシンでも仮想マシンでもよい。
外部ネットワーク203は、2以上のサイト201間に跨いだ通信が流れるネットワークであり、例えばWANやインターネットである。サイトネットワークSは、ホストコンピュータHからのパケットが流れるネットワークである。サイトネットワークSは、例えばLANやWANであり、複数のデータセンタに跨り得る。
クラウド利用者環境201A,201Bは、クラウド利用者が保有するデータセンタ環境であり、本実施例では、一例として同一クラウド利用者のデータセンタ環境とする。クラウド環境201Cは、非制約環境であり、例えば、公知の技術を用いてサイトネットワークSを延伸できるクラウド環境である。クラウド環境201Dは、制約環境であり、例えば、公知の技術を用いたサイトネットワーク延伸が拒絶されるクラウド環境である。データFは、サイトネットワークSで流れるカプセル化される前のデータである。データPは、データFからカプセル化された後のデータである。
<仮想ネットワークの概念>
図3は、仮想ネットワークの概念を示す説明図である。仮想ネットワーク300とは、個々のサイト201のサイトネットワークSを仮想的に一つのネットワークとしてみなす概念である。物理構成と比較すると、仮想ネットワーク300は、ゲートウェイGとサイトネットワークSとを集約したネットワークである。例えば、TCP/IPネットワークにおいては、クラウド利用者は、クラウド利用者環境201A,201BのLANを、IPアドレス体系を維持したまま、クラウド環境201C,201DのLANに延伸する。これにより、シームレスに業務システムの拡張や移行を行うことができる。なお、本例に限らず、仮想ネットワーク300は、いずれか1以上のサイトネットワークSを集約したネットワークでもよい。また、ゲートウェイGからのネットワーク延伸先の選択は、仮想ネットワーク単位でもよくサイト単位でもよい。また、本実施例は、TCP/IPネットワークを例としているが、TCP/IPネットワークに限定されない。
<ゲートウェイGの構成例>
図4は、ゲートウェイGのハードウェアとソフトウェアの構成例を示すブロック図である。ゲートウェイGは、記憶部400、入力部401、CRTディスプレイや液晶ディスプレイ等の表示部402、プロセッサである制御部403、外部ネットワーク203やサイトネットワークSに接続するための通信インタフェース404、これらを接続するデータバス406によって構成できる。
記憶部400は、仮想ネットワーク管理テーブル410、サイトネットワーク管理テーブル411、仮想ネットワーク−サイトネットワーク関連付け管理テーブル412、サイトネットワーク−サイト関連付け管理テーブル413、サイトネットワーク−ゲートウェイ関連付け管理テーブル414、サイトネットワーク−ホストコンピュータ関連付け管理テーブル415を格納する。また、記憶部400は、ネットワーク情報登録プログラム416、ネットワーク情報取得プログラム417、通信転送処理プログラム418、通信学習処理プログラム419、ネットワーク接続プログラム420、制御プログラム421を格納する。
なお、以下では「プログラム」を主語(動作主体)として説明を行う場合があるが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムの一部または全ては専用ハードウェアで実現してもよく、また、モジュール化されていても良い。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
仮想ネットワーク管理テーブル410は、仮想ネットワーク300を一意に特定する情報を格納するテーブルである。仮想ネットワーク管理テーブル410は、クラウド利用者が作成するテーブルである。したがって、クラウド環境201C、201DのゲートウェイGC、GDには存在しない。
サイトネットワーク管理テーブル411は、サイトネットワークSの情報を格納するテーブルである。ゲートウェイGは、自サイトのサイトネットワークSの情報を収集することで、サイトネットワーク管理テーブル411を作成する。
仮想ネットワーク−サイトネットワーク関連付け管理テーブル412は、仮想ネットワーク300の情報とサイトネットワークの情報とを関連付けたテーブルである。仮想ネットワーク−サイトネットワーク関連付け管理テーブル412は、仮想ネットワーク管理テーブル410と、サイトネットワーク管理テーブル411とを関連付ける。これにより、ゲートウェイGは、ネットワーク延伸先として選択した仮想ネットワーク300に属するサイトネットワークSとの接続状態を管理する。
サイトネットワーク−サイト関連付け管理テーブル413は、サイトネットワークSの情報とサイト201との情報との関連付けたテーブルである。これにより、どのサイト201がどのサイトネットワークSを有するかを特定することができる。
サイトネットワーク−ゲートウェイ関連付け管理テーブル414は、サイトネットワークSの情報とゲートウェイGの情報とを関連付けたテーブルである。サイトネットワーク−ゲートウェイ関連付け管理テーブル414は、たとえば、図1Bに示したように、ゲートウェイコントローラ202が、各サイト201のネットワーク情報を収集した場合に作成するテーブルである。
サイトネットワーク−ホストコンピュータ関連付け管理テーブル415は、サイトネットワークの情報とホストコンピュータの情報とを関連付けたテーブルである。これにより、どのサイトネットワークSがどのホストコンピュータHに接続されているかを特定することができる。
ネットワーク情報登録プログラム416は、サイトネットワークSやホストコンピュータHのネットワークアドレス情報をゲートウェイコントローラ202に対して登録を行うプログラムである。ネットワーク情報取得プログラム417は、ゲートウェイGがゲートウェイコントローラ202に、仮想ネットワーク300の情報や、サイトネットワークS、ホストコンピュータHのネットワークアドレスを要求するプログラムである。
通信転送処理プログラム418は、ゲートウェイGがゲートウェイコントローラ202からの要求に応じて、通信転送処理を行うプログラムである。通信学習処理プログラム419は、ホストコンピュータHのネットワークアドレス情報を収集するためのプログラムである。例えば、ホストコンピュータHからのARP要求をゲートウェイGが受信すると、送信元ネットワークアドレス情報により、ホストコンピュータHのネットワークアドレス情報を収集する。
また、通信転送処理プログラム418は、サイトネットワーク−ホストコンピュータ関連付け管理テーブル415のIPアドレス列を参照し、当該ARP要求の送信先IPアドレスに対応するMACアドレスを特定し、ARP応答としてホストコンピュータHに当該MACアドレスを通知する。当該処理は一例であり、ゲートウェイGがホストコンピュータHのネットワークアドレス情報を収集さえできれば、プロトコルに限定されない。
ネットワーク接続プログラム420は、クラウド利用者が要求するサイトネットワークに対して、接続または切断をゲートウェイコントローラ202に要求するプログラムである。制御プログラム421は、ゲートウェイコントローラ202からの要求に応じて、VPNやVXLAN等の通信のカプセル化を行うプログラムである。また、制御プログラム421は、ゲートウェイコントローラ202からの要求に応じて、ゲートウェイGは接続または切断を行う。
なお、ゲートウェイGが仮想マシンとして配備される場合、当該仮想マシンの配備先(たとえば、クラウド基盤3)が、ゲートウェイコントローラ202から、上記のプログラム416〜421を取得する。後述するように、ゲートウェイコントローラ202は、プログラム416〜421を有する。これにより、ゲートウェイGがないサイト201にゲートウェイを構築することができる。
<ゲートウェイコントローラ202の構成例>
図5は、ゲートウェイコントローラ202のハードウェアとソフトウェアの構成例を示すブロック図である。図4と同じ構成には同一符号を付し、説明を省略する。ネットワーク情報収集プログラム530は、クラウド基盤3に対して、サイトネットワークSやホストコンピュータHのネットワークアドレス情報を要求するためのプログラムである。
ゲートウェイ配備プログラム531は、ゲートウェイGの要求に応じ、クラウド基盤3に対して、クラウド環境201C、201DのサイトネットワークSへゲートウェイGの配備要求や配備済みのゲートウェイGへネットワークアドレスの設定要求を行うプログラムである。ゲートウェイ制御プログラム532は、ゲートウェイGが収集したサイトネットワークSやホストコンピュータHのネットワークアドレス情報の収集、ゲートウェイGに接続または切断等の命令、ゲートウェイGに通信転送処理のためのルールの追加及び削除を行うためのプログラムである。なお、管理テーブル411、413〜415が、図1Bに示したネットワークアドレス管理DB141に対応する。
<クラウド基盤3の構成例>
図6は、クラウド基盤3のハードウェアとソフトウェアの構成例を示すブロック図である。図4と同じ構成には同一符号を付し、その説明を省略する。クラウド管理プログラム640は、ゲートウェイコントローラ202からの要求に応じて、クラウドネットワーク情報管理テーブル641を参照し、サイトネットワークSやホストコンピュータHのネットワークアドレスの通知を行うためのプログラムである。また、クラウド管理プログラム640は、ゲートウェイコントローラ202等の外部機器からの要求に応じて、ゲートウェイGの配備を行うためのプログラムである。
クラウドネットワーク情報管理テーブル641は、クラウド環境201C、201Dにおける仮想マシンであるゲートウェイGやホストコンピュータHのネットワークアドレスを格納するテーブルである。クラウドネットワーク情報管理テーブル641は、図1Aに示したネットワークアドレス情報テーブル131に対応する。また、制約環境であるクラウド環境201Dのクラウド基盤3Dは、クラウドネットワーク情報管理テーブル641の情報に基づいて、データの転送または遮断を行う。
<仮想ネットワーク管理テーブル410>
図7は、仮想ネットワーク管理テーブル410の一例を示す説明図である。仮想ネットワーク管理テーブル410は、仮想ネットワークID701と仮想ネットワーク名702とを関連付けた情報である。仮想ネットワークID202は、仮想ネットワーク300を一意に識別する情報である。仮想ネットワーク名702は、仮想ネットワーク300の名称であり、クラウド利用者が認識し得る情報である。仮想ネットワーク管理テーブル410の一行目のエントリは、たとえば、仮想ネットワークID701が「VN1」である仮想ネットワークVN1の仮想ネットワーク名702が、「N(VN1)」であることを示す。
<サイトネットワーク管理テーブル411>
図8は、サイトネットワーク管理テーブル411の一例を示す説明図である。サイトネットワーク管理テーブル411は、サイトネットワークID803と、サイトネットワーク名804と、サイトネットワークアドレス805と、を関連付けた情報である。サイトネットワークID803は、サイトネットワークSを一意に識別する情報である。サイトネットワーク名804は、サイトネットワークSの名称であり、クラウド利用者が認識し得る情報である。サイトネットワークアドレス805は、サイトネットワークSのネットワークアドレスである。サイトネットワーク管理テーブル411の一行目のエントリは、たとえば、サイトネットワークID803が「SA1」であるサイトネットワークSA1のサイトネットワーク名804が「N(SA1)」、サイトネットワークアドレス805が「A(SA1)」であることを示す。
ゲートウェイGは、自サイト201のサイトネットワークSのエントリについては自律学習し、他サイト201のサイトネットワークSのエントリについてはゲートウェイコントローラ202から取得する。また、ゲートウェイコントローラ202は、図1Bに示したように、各サイト201から収集したサイトネットワーク−サイト関連付け管理テーブル413のエントリをマージして、ゲートウェイコントローラ202のサイトネットワーク−サイト関連付け管理テーブル413に登録する。
<仮想ネットワーク−サイトネットワーク関連付け管理テーブル412>
図9は、仮想ネットワーク−サイトネットワーク関連付け管理テーブル412の一例を示す説明図である。仮想ネットワーク−サイトネットワーク関連付け管理テーブル412は、仮想ネットワーク300とサイトネットワークSとを関連付けた情報であり、具体的には、たとえば、仮想ネットワークID701とサイトネットワークID803とステータス906とを関連付けた情報である。
ステータス906は、サイトネットワークID803により特定されるサイトネットワークSの接続状況を格納する。具体的には、仮想ネットワークID701の値が同一であり、かつ、ステータス906が「接続中」であるエントリのサイトネットワークID803の値の集合が、仮想ネットワーク300として接続されているサイトネットワークSである。たとえば、仮想ネットワークIDが「VN1」のエントリ群のサイトネットワークは「SA1」、「SC」、および「SD」であるが、そのうちステータスが「接続中」であるサイトネットワークSは、「SA1」と「SC」である。したがって、サイトネットワークSA1、SCが、仮想ネットワークVN1として接続されている仮想ネットワーク300である。
ゲートウェイGは、ステータス906の値を参照して、通信の接続また切断をおこなう。ステータス906の値は、デフォルトでは「未接続」であるが、ネットワーク延伸先として接続要求された仮想ネットワークVNについては「接続中」に更新され、切断要求されると、「未接続」となる。なお、ネットワーク延伸先の接続要求や切断要求は、仮想ネットワークVN単位だけでなくサイトネットワークS単位でもされるため、図9では、仮想ネットワークVN1では、サイトネットワークSA1、SCが「接続中」であり、サイトネットワークSDが「未接続」となっている。
<サイトネットワーク−サイト関連付け管理テーブル413>
図10は、サイトネットワーク−サイト関連付け管理テーブル413の一例を示す説明図である。サイトネットワーク−サイト関連付け管理テーブル413は、サイトネットワークSとサイト201とを関連付けた情報であり、具体的には、たとえば、サイトID1007とサイト名1008とサイト種別1009とを関連付けた情報である。
サイトID1007は、サイト201を一意に識別する情報である。サイト名1008は、サイト201の名称であり、クラウド利用者が認識し得る情報である。サイト種別1009は、サイト201が、制約環境であるか非制約環境であるかを識別する情報である。サイトネットワーク−サイト関連付け管理テーブル413の一行目のエントリは、たとえば、サイトネットワークID803が「SA1」であるサイトネットワークSA1が、サイトIDが「201A」、サイト名1008が「クラウド利用者環境A」で、かつ、サイト種別1009が「クラウド利用者環境」であるクラウド利用者環境201A内のネットワークであることを示す。
ゲートウェイGは、自サイト201のサイトネットワークSおよびサイト201のエントリについては自律学習して関連付け、他サイト201のサイトネットワークSおよび他サイト201のエントリについてはゲートウェイコントローラ202から取得する。
また、ゲートウェイコントローラ202は、図1Bに示したように、各サイト201から収集したサイトネットワーク−サイト関連付け管理テーブル413のエントリをマージして、ゲートウェイコントローラ202のサイトネットワーク−サイト関連付け管理テーブル413に登録する。
<サイトネットワーク−ゲートウェイ関連付け管理テーブル414>
図11は、サイトネットワーク−ゲートウェイ関連付け管理テーブル414の一例を示す説明図である。サイトネットワーク−ゲートウェイ関連付け管理テーブル414は、サイトネットワークSとゲートウェイGとを関連付けた情報であり、具体的には、たとえば、サイトネットワークID803とゲートウェイID1110とゲートウェイ名1111とを関連付けた情報である。ゲートウェイID1110は、ゲートウェイGを一意に識別する情報である。ゲートウェイ名1111はゲートウェイGの名称であり、クラウド利用者が認識し得る情報である。
サイトネットワーク−ゲートウェイ関連付け管理テーブル414の一行目のエントリは、たとえば、サイトネットワークID803が「SA1」であるサイトネットワークSA1に、ゲートウェイID1110が「GA」で、かつ、ゲートウェイ名1111が「N(GA)」であるゲートウェイGAが接続されていることを示す。
ゲートウェイGは、自サイト201のサイトネットワークID803、ゲートウェイID1110およびゲートウェイ名1111のエントリについては自律学習して関連付け、他サイト201のサイトネットワークID803、ゲートウェイID1110およびゲートウェイ名1111のエントリについてはゲートウェイコントローラ202から取得する。
また、ゲートウェイコントローラ202は、図1Bに示したように、各サイト201から収集したサイトネットワーク−ゲートウェイ関連付け管理テーブル414のエントリをマージして、ゲートウェイコントローラ202のサイトネットワーク−ゲートウェイ関連付け管理テーブル414に登録する。
<サイトネットワーク−ホストコンピュータ関連付け管理テーブル415>
図12は、サイトネットワーク−ホストコンピュータ関連付け管理テーブル415の一例を示す説明図である。サイトネットワーク−ホストコンピュータ関連付け管理テーブル415は、サイトネットワークSとホストコンピュータHとを関連付けた情報であり、具体的には、たとえば、サイトネットワークID803とホストコンピュータID1212とホストコンピュータ名1213とMACアドレス1214とIPアドレス1215とを関連付けた情報である。
ホストコンピュータID1212は、ホストコンピュータHを一意に識別する情報である。ホストコンピュータ名1213は、ホストコンピュータHの名称であり、クラウド利用者が認識し得る情報である。MACアドレス1214とIPアドレス1215はホストコンピュータHのネットワークアドレス情報である。
サイトネットワーク−ホストコンピュータ関連付け管理テーブル415の一行目のエントリは、たとえば、サイトネットワークID803が「SA1」であるサイトネットワークSA1に、ホストコンピュータID1212が「HA1」、ホストコンピュータ名1213が「N(HA1)」、MACアドレス1214が「MAC(HA1)」で、かつ、IPアドレス1215が「IP(HA1)」であるホストコンピュータHA1が接続されていることを示す。
ゲートウェイGは、自サイト201のサイトネットワークSおよびホストコンピュータHのエントリについては自律学習して関連付け、他サイト201のサイトネットワークSおよびホストコンピュータHのエントリについてはゲートウェイコントローラ202から取得する。
また、ゲートウェイコントローラ202は、図1Bに示したように、各サイト201から収集したサイトネットワーク−ホストコンピュータ関連付け管理テーブル415のエントリをマージして、ゲートウェイコントローラ202のサイトネットワーク−ホストコンピュータ関連付け管理テーブル415に登録する。
<クラウドネットワーク情報管理テーブル641>
図13は、クラウドネットワーク情報管理テーブル641の一例を示す説明図である。クラウドネットワーク情報管理テーブル641は、クラウド基盤3上に構築された仮想マシンのネットワークアドレス情報を管理する情報であり、具体的には、たとえば、インスタンスID1316とインターフェースID1317とMACアドレス1318とIPアドレス1319とを関連付けた情報である。インスタンスID1316は、クラウド基盤3がインスタンスとなるゲートウェイGまたはホストコンピュータHを一意に識別する情報であり、一つのインスタンスに一つ以上のインターフェースが割り当てられる。インターフェースID1317は、クラウド基盤3がインスタンスID1316のインターフェースを一意に識別する情報であり、一つのインターフェースに一つのMACアドレスと一つ以上のIPアドレスを有し得る。MACアドレス1318およびIPアドレス1319は、インターフェースID1317に割り当てたアドレスである。
図13において、インスタンスID1316がゲートウェイIDであるエントリは、そのクラウド基盤3が属するクラウド環境に構築された仮想マシンとしてのゲートウェイGを示し、インスタンスID1316がホストコンピュータIDであるエントリは、そのクラウド基盤3が属するクラウド環境に構築された仮想マシンとしてのホストコンピュータHを示す。インスタンスID1316が、ゲートウェイIDであるエントリは、後述するように、ゲートウェイコントローラ202からのゲートウェイの配備要求があった場合に設定される。
そして、クラウド基盤3は、仮想マシンであるゲートウェイGが配備された場合に、ゲートウェイGのネットワークアドレス情報(インターフェースID1317、MACアドレス1318、IPアドレス1319)を、そのゲートウェイGのエントリに設定する。また、自サイト201のホストコンピュータHのネットワークアドレス情報(インターフェースID1317、MACアドレス1318、IPアドレス1319)については、クラウド基盤3は、ゲートウェイGがARPを利用して学習したホストコンピュータHのネットワークアドレス情報を、ゲートウェイGから取得する。また、他サイト201のゲートウェイGおよびホストコンピュータHのネットワークアドレス情報については、当該情報を収集したゲートウェイコントローラから取得する。
なお、クラウドネットワーク情報管理テーブル641は、仮想マシンであるゲートウェイGおよびホストコンピュータHのネットワークアドレス情報を管理しており、物理マシンであるゲートウェイGおよびホストコンピュータHのネットワークアドレス情報を管理していない。
物理マシンであるゲートウェイGおよびホストコンピュータHのネットワークアドレス情報については、物理マシンであるゲートウェイGが、クラウドネットワーク情報管理テーブル641と同様のテーブルで管理する。すなわち、物理マシンの場合でも、自サイト201のホストコンピュータHのネットワークアドレス情報(インターフェースID1317、MACアドレス1318、IPアドレス1319)については、ゲートウェイGは、ARPを利用して学習したホストコンピュータHのネットワークアドレス情報を取得する。また、他サイト201のゲートウェイGおよびホストコンピュータHのネットワークアドレス情報については、当該情報を収集したゲートウェイコントローラ202から取得する。
なお、物理マシンであるゲートウェイGおよびホストコンピュータHのネットワークアドレス情報についても、クラウド基盤3が、自サイト201のゲートウェイGから取得して、クラウドネットワーク情報管理テーブル641に格納して管理してもよい。
図14は、VPNやVXLAN、GRE等のカプセル化される前のデータFおよびカプセル化後のデータPのデータ構造の一例を示す説明図である。データFは、カプセル化される前の一般的なイーサネット通信フレームであり、データPは、当該フレームがIP通信パケットによってカプセル化された後のパケットの例を示している。
送信先MACアドレス1400と送信先IPアドレス1402は、通信相手をネットワーク上で一意に識別するためのネットワーク識別情報を格納するフィールドである。送信元MACアドレス1401と送信元IPアドレス1403は、通信元をネットワーク上で一意に識別するためのネットワーク識別情報を格納するフィールドである。データ1404は通信相手とやり取りする任意のデータを格納するフィールドである。送信先MACアドレス1405と送信先IPアドレス1407は、カプセル化された後の、通信相手をネットワーク上で一意に識別するためのネットワーク識別情報を格納するフィールドである。送信元MACアドレス1406と送信元IPアドレス1408は、カプセル化された後の、通信元をネットワーク上で一意に識別するためのネットワーク識別情報を格納するフィールドである。
図15は、ゲートウェイGとゲートウェイコントローラ202との間のメッセージ例1を示す説明図である。図15では、ゲートウェイGが、ゲートウェイコントローラ202に対して構成一覧の要求と応答とを示す。構成一覧とは、たとえば、仮想ネットワーク300の一覧、サイトネットワークSの一覧、ホストコンピュータHの一覧である。
リクエストメッセージ1501は、ゲートウェイGがゲートウェイコントローラ202に対してサイトネットワーク一覧の要求を示すメッセージである。メッセージ1501は、CLI(Command Line Interface)やGUI(Graphical User Interface)、API等を介して送信される。送信時のプロトコルはSSH(Secure Shell)、HTTP(Hypertext Transfer Protocol)等の公知のものでもプロプライエタリなものでもよい。
リプライメッセージ1502は、メッセージ1501に対する応答を示すメッセージである。メッセージ1502のフォーマットは、JSON等の公知のものでもプロプライエタリなものでもよい。図15においては、HTTPやJSON(JavaScript Object Notation)を例として示しているが、本実施例はプロトコルやフォーマットに限定されない。
図16は、ゲートウェイGとゲートウェイコントローラ202との間のメッセージ例2を示す説明図である。図16では、ゲートウェイGがゲートウェイコントローラ202に対して、任意のサイトネットワークSへの接続を要求する際の要求と応答とを示す。リクエストメッセージ1601は、CLIやGUI、API等を介して送信される。送信時のプロトコルはSSH、HTTP等の公知のものでもプロプライエタリなものでもよい。リプライメッセージ1602は、リクエストメッセージ1601に対する応答を示すメッセージである。メッセージ1602のフォーマットは、JSON等の公知のものでもプロプライエタリなものでもよい。図16においては、HTTPやJSONを例として示しているが、本実施例はプロトコルやフォーマットに限定されるものではない。
<ネットワーク延伸シーケンス>
図17および図18は、ネットワーク延伸シーケンスの一例を示すシーケンス図である。図17では、クラウド利用者17がゲートウェイGを介してサイトネットワーク一覧情報やホストコンピュータ一覧情報の取得、サイトネットワーク延伸先の選択を行う全体シーケンスの一例を示す。図17においては、クラウド利用者環境201Aは、サイトネットワーク一覧情報やホストコンピュータ一覧情報を通知するためのAPIなどの管理インターフェースを提供しておらず、かつ、クラウド環境201Cやクラウド環境201Dは、APIなどの管理インターフェースを提供しているものとする。また、本例では、クラウド環境201CにはゲートウェイGCが未配備とする。
また、図7に示した仮想ネットワーク管理テーブル410は、本シーケンスに先立って、クラウド利用者17がゲートウェイGAの入力部401を操作して、作成する。ゲートウェイGAは、作成した仮想ネットワーク管理テーブル410をゲートウェイコントローラ202に送信する。これにより、ゲートウェイGAとゲートウェイコントローラ202で、仮想ネットワーク管理テーブル410を共有することができる。
ステップS1701において、クラウド利用者17は、ゲートウェイGAの入力部401を操作して、クラウド利用者環境201Aのサイトネットワーク情報の登録をゲートウェイGに要求し、ゲートウェイGは当該サイトネットワーク情報をキャッシュする。サイトネットワーク情報は、たとえば、クラウド利用者環境201AのサイトネットワークID803と、サイトネットワーク名804と、サイトネットワークアドレス805と、サイトID1007と、サイト名1008と、サイト種別1009と、を含む情報である。クラウド利用者環境201Aの場合、たとえば、サイトネットワークID803が「NA1」、サイトネットワーク名804が「N(NA1)」、サイトネットワークアドレス805が「A(NA1)」、サイトID1007が「201A」、サイト名1008が「クラウド利用者環境A」、サイト種別1009が「クラウド利用者環境」である。
ステップS1702において、ホストコンピュータHA1は、ホストコンピュータHA1のネットワークアドレス情報の登録をゲートウェイGに要求する。具体的には、たとえば、ホストコンピュータHA1の利用者が、ホストコンピュータHA1の入力部401を操作することで要求する。ネットワークアドレス情報とは、ホストコンピュータID1212と、ホストコンピュータ名1213と、MACアドレス1214と、IPアドレス1215と、を含む情報である。ホストコンピュータHA1の場合、たとえば、ホストコンピュータID1212が「HA1」、ホストコンピュータ名1213が「N(HA1)」、MACアドレス1214が「MAC(NA1)」、IPアドレス1215が「IP(NA1)」である。そして、ゲートウェイGは当該ネットワークアドレス情報をキャッシュする。ステップS1702は、ゲートウェイGからホストコンピュータHA1にネットワークアドレス情報を要求するものでもよい。
ステップS1703において、ゲートウェイGは、キャッシュしたサイトネットワーク情報およびネットワークアドレス情報の登録をゲートウェイコントローラ202に要求する。ゲートウェイコントローラ202は、当該サイトネットワーク情報およびネットワークアドレス情報を、ゲートウェイコントローラ202のサイトネットワーク管理テーブル411、サイトネットワーク−サイト関連付け管理テーブル413、サイトネットワーク−ゲートウェイ関連付け管理テーブル414、サイトネットワーク−ホストコンピュータ関連付け管理テーブル415に格納する。
具体的には、たとえば、ゲートウェイコントローラ202は、クラウド利用者環境201Aのサイトネットワーク情報のうち、サイトネットワークID803と、サイトネットワーク名804と、サイトネットワークアドレス805と、を関連づけて、サイトネットワーク管理テーブル411に格納する。
また、ゲートウェイコントローラ202は、クラウド利用者環境201Aのサイトネットワーク情報のうち、サイトネットワークID803と、サイトID1007と、サイト名1008と、サイト種別1009と、を関連付けて、サイトネットワーク−サイト関連付け管理テーブル413に格納する。
また、ゲートウェイコントローラ202は、クラウド利用者環境201Aのサイトネットワーク情報に含まれるサイトネットワークID803と、要求元であるゲートウェイGAのゲートウェイID1110である「GA1」と、ゲートウェイGAのゲートウェイ名1111である「N(GA)」と、を関連付けて、サイトネットワーク−ゲートウェイ関連付け管理テーブル414に格納する。なお、ゲートウェイGAのゲートウェイID1110およびゲートウェイ名1111は、事前にゲートウェイGAから取得してもよく、また、ステップS1703において、ゲートウェイGAから取得してもよい。また、ステップS1703は、定期的に、または、ゲートウェイコントローラ202からの要求に応じて実施される。
このように、クラウド利用者環境201Aは、サイトネットワーク一覧とホストコンピュータの一覧を通知するためのAPIなどの管理インターフェースを提供していないため、クラウド利用者17がゲートウェイGAを操作することにより、クラウド利用者環境201Aのサイトネットワーク情報をゲートウェイコントローラ202に登録することができる。また、ホストコンピュータHA1からネットワークアドレス情報がゲートウェイGAを介してゲートウェイコントローラ202に送られるため、ゲートウェイコントローラ202は、クラウド利用者環境201Aのサイトネットワーク情報のホストコンピュータHA1からネットワークアドレス情報とを関連付けることができる。
ステップS1704において、クラウド利用者17は、ゲートウェイGを操作して、ゲートウェイコントローラ202に、サイトネットワークSの一覧情報とゲートウェイGおよびホストコンピュータHの一覧情報とをゲートウェイコントローラ202に要求する。サイトネットワークSの一覧情報とは、ゲートウェイコントローラ202が保有する各サイト201から収集した情報であるサイトネットワーク管理テーブル411のエントリである。
また、ゲートウェイGおよびホストコンピュータHの一覧情報とは、ゲートウェイGおよびホストコンピュータHのネットワークアドレス情報(割当先インターフェースID、MACアドレス、IPアドレス)である。たとえば、仮想マシンであるゲートウェイGおよびホストコンピュータHについては、図13に示したクラウドネットワーク情報管理テーブル641のエントリである。また、物理マシンであるゲートウェイGおよびホストコンピュータHについては、ゲートウェイコントローラ202が、物理マシンであるゲートウェイGから、当該ゲートウェイGが自サイト201のホストコンピュータHから取得したゲートウェイGおよびホストコンピュータHのネットワークアドレス情報(割当先インターフェースID、MACアドレス、IPアドレス)である。
ステップS1705において、ゲートウェイコントローラ202は、ゲートウェイGからの要求に応じて、クラウド基盤3Cとクラウド基盤3Dに、ゲートウェイGおよびホストコンピュータHの一覧情報を要求する。
ステップS1706において、ゲートウェイコントローラ202は、クラウド基盤3Cが保有するゲートウェイGおよびホストコンピュータHの一覧情報とクラウド基盤3Dが保有するゲートウェイGおよびホストコンピュータHの一覧情報を取得する。なお、物理マシンであるゲートウェイGおよびホストコンピュータHの一覧情報については、図1Bで示したように、ゲートウェイコントローラ202はすでに収集済みであるため、ステップS1706は不要である。また、サイトネットワークSの一覧情報についても、図1Bで示したように、ゲートウェイコントローラ202はすでに収集済みであるため、ステップS1706は不要である。
ステップS1707において、ゲートウェイコントローラ202は、ゲートウェイGおよびホストコンピュータHの一覧情報をクラウド基盤3Cとクラウド基盤3Dとから取得する(ステップS1706)と、該当する管理テーブルを更新する。具体的には、たとえば、ゲートウェイコントローラ202は、サイトネットワークアドレス805とホストコンピュータHのIPアドレス1319とを比較して、ホストコンピュータHと接続されるサイトネットワークSのサイトネットワークID803を特定する。これにより、ゲートウェイコントローラ202は、サイトネットワーク−ホストコンピュータ関連付け管理テーブル415に、特定したサイトネットワークID803、ホストコンピュータHのインスタンスID1316、IPアドレス1319、ホストコンピュータHのMACアドレス1318を含むエントリを、新規エントリとして追加する。
また、ゲートウェイコントローラ202は、サイトネットワークアドレス805とゲートウェイGのインスタンスID1316に対応するIPアドレス1319とを比較して、ゲートウェイGと接続されるサイトネットワークSのサイトネットワークID803を特定する。これにより、ゲートウェイコントローラ202は、サイトネットワーク−ゲートウェイ関連付け管理テーブル414に、特定したサイトネットワークID803、ゲートウェイGのインスタンスID1316を含むエントリを、新規エントリとして追加する。
ステップS1708において、ゲートウェイコントローラ202は、ゲートウェイコントローラ202のサイトネットワーク管理テーブル411から、一覧情報の要求元であるゲートウェイGAに接続されるサイトネットワークS以外のエントリを一覧情報として抽出して、ゲートウェイGAに送信する。また、ゲートウェイコントローラ202は、ゲートウェイコントローラ202のサイトネットワーク−サイト関連付け管理テーブル413から、一覧情報の要求元であるゲートウェイGAに接続されるサイトネットワークS以外のエントリを一覧情報として抽出して、ゲートウェイGAに送信する。
また、ゲートウェイコントローラ202は、ゲートウェイコントローラ202のサイトネットワーク−ゲートウェイ関連付け管理テーブル414から、一覧情報の要求元であるゲートウェイGAに接続されるサイトネットワークS以外のエントリを一覧情報として抽出して、ゲートウェイGAに送信する。また、ゲートウェイコントローラ202は、ゲートウェイコントローラ202のサイトネットワーク−ホストコンピュータ関連付け管理テーブル415から、一覧情報の要求元であるゲートウェイGAに接続されるサイトネットワークS以外のエントリを一覧情報として抽出して、ゲートウェイGAに送信する。
ゲートウェイGAは、ゲートウェイコントローラ202から送信されてきた一覧情報を、ゲートウェイGAのサイトネットワーク管理テーブル411、サイトネットワーク−サイト関連付け管理テーブル413、サイトネットワーク−ゲートウェイ関連付け管理テーブル414、およびサイトネットワーク−ホストコンピュータ関連付け管理テーブル415に格納するとともに、表示部402に表示させ、クラウド利用者17に通知する。これにより、ゲートウェイGAは、他サイト201のネットワークアドレス情報を得ることができる。
ステップS1709において、クラウド利用者17は、サイトネットワーク関連付け管理テーブル412を作成する。具体的には、たとえば、クラウド利用者17は、ゲートウェイGAの入力部401を操作して、仮想ネットワーク管理テーブル410とサイトネットワーク−サイト関連付け管理テーブル413を記憶部400から呼び出し、表示部402に表示させる。そして、クラウド利用者17は、仮想ネットワークID701とサイトネットワークID803とを関連付けて、仮想ネットワーク−サイトネットワーク関連付け管理テーブル412を作成し、記憶部400に格納する。これにより、どのサイトネットワークSがどの仮想ネットワーク300に属するかを規定することができる。なお、仮想ネットワーク−サイトネットワーク関連付け管理テーブル412のステータス906は、デフォルトでは「未接続」となる。
ステップS1710において、ゲートウェイGAは、作成された仮想ネットワーク−サイトネットワーク関連付け管理テーブル412を、ゲートウェイコントローラ202に送信する。ゲートウェイコントローラ202は、ゲートウェイGAからの仮想ネットワーク−サイトネットワーク関連付け管理テーブル412を記憶部400に格納する。
つぎに、図18に移る。図18では、ネットワーク延伸による接続とその切断についてのシーケンスを示す。
ステップS1801において、クラウド利用者17は、ネットワーク延伸先を選択する。具体的には、たとえば、クラウド利用者17は、ゲートウェイGの入力部401を操作して、仮想ネットワーク管理テーブル410を参照して、仮想ネットワーク名の一覧を表示部402に表示させる。そして、クラウド利用者17は、ゲートウェイGの入力部401を操作して、仮想ネットワーク名の一覧の中からネットワーク延伸先を選択する。たとえば、各仮想ネットワーク名に対応してチェックボックスがある場合は、クラウド利用者17は、ゲートウェイGの入力部401を操作して、ネットワーク延伸先の仮想ネットワーク名のチェックボックスにチェックを入れる。仮想ネットワーク名は1または複数選択が可能である。
ステップS1802において、ゲートウェイGAは、ネットワーク延伸先となる仮想ネットワーク名が選択されると、仮想ネットワーク管理テーブル410により、対応する仮想ネットワークID701を特定する。また、ゲートウェイGAは、仮想ネットワーク−サイトネットワーク関連付け管理テーブル412を参照して、特定した仮想ネットワークID701に関連付けられており、かつ、ステータス903が「未接続」であるサイトネットワークID803を特定する。具体的には、たとえば、仮想ネットワークID701として「VN1」がネットワーク延伸先に選択された場合、図9において、ステータス906が「未接続」のサイトネットワークID803である「ND」が特定される。そして、ゲートウェイGAは、特定した仮想ネットワークID701とサイトネットワークID803の組み合わせを含む接続要求を、ゲートウェイコントローラ202に通知する。
ステップS1803において、ゲートウェイコントローラ202は、接続要求の通知を受けた場合、サイトネットワーク−サイト関連付け管理テーブル413のサイトネットワークID803を参照して、接続要求に含まれるサイトネットワークID803に対応するサイトID1007を取得する。たとえば、接続要求に含まれるサイトネットワークID803が「NA1」の場合、サイトID1007として「201A」が取得される。
また、ゲートウェイコントローラ202は、サイトネットワーク−ゲートウェイ関連付け管理テーブル414を参照して、接続要求に含まれるサイトネットワークID803に関連付けられているゲートウェイID1110を取得する。
ステップS1804において、ゲートウェイID1110が取得できなかった場合、ゲートウェイコントローラ202は、取得したサイトID1007のサイト201に属するクラウド基盤3に、サイトネットワークID803へのゲートウェイGの配備を要求し、クラウド基盤3に仮想マシンとしてのゲートウェイGを構築する。たとえば、クラウド基盤3CがゲートウェイGCを構築する。また、クラウド基盤3DのゲートウェイGDが未配備であれば、同様に仮想マシンとして構築する。これにより、クラウド基盤3は、クラウドネットワーク情報管理テーブル641にゲートウェイGのエントリを生成する。なお、当該エントリのインターフェースID1317、MACアドレス1318、およびIPアドレス1319は未確定である。これにより、ゲートウェイコントローラ202は、配備されたゲートウェイGからインスタンスID1316であるゲートウェイIDを取得する。
ステップS1805において、ゲートウェイコントローラ202は、ステップS1803で取得したサイトID1007のサイト種別1009を判断する。サイト種別1009が「制約環境」(ステップS1806:制約)であるサイトID1007については、ステップS1806において、ネットワーク延伸処理を実行する。サイト種別1009が「制約環境」以外である(ステップS1806:制約以外)サイトID1007(非制約環境またはクラウド利用者環境)については、延伸できないため、その旨をゲートウェイGAに通知する。ネットワーク延伸処理(ステップS1806)については後述する。
このあと、ステップS1807において、ゲートウェイコントローラ202は、ステップS1806でネットワーク延伸されたため、接続要求元であるゲートウェイGAに接続開始要求を送信する。そして、ゲートウェイコントローラ202およびゲートウェイGAは、各々の仮想ネットワーク−サイトネットワーク関連付け管理テーブル412において、ネットワーク延伸先として選択されたエントリのステータス906を「未接続」から「接続中」に更新する。これにより、図1Aに示したように、クラウド利用者環境と制約環境であるクラウド環境との間でデータの送受信が可能となる。
つぎに、ネットワーク延伸先を切断する場合について説明する。切断の場合も接続の場合と同様、ステップS1808において、クラウド利用者17は、切断対象となるネットワーク延伸先を選択する。具体的には、たとえば、クラウド利用者17は、ゲートウェイGAの入力部401を操作して、仮想ネットワーク管理テーブル410を参照し、仮想ネットワーク名の一覧を表示部402に表示させる。そして、クラウド利用者17は、ゲートウェイGAの入力部401を操作して、仮想ネットワーク名の一覧の中から切断対象となるネットワーク延伸先を選択する。たとえば、各仮想ネットワーク名に対応してチェックボックスがある場合は、クラウド利用者17は、ゲートウェイGAの入力部401を操作して、切断対象となるネットワーク延伸先の仮想ネットワーク名のチェックボックスにチェックを入れる。仮想ネットワーク名は1または複数選択が可能である。
ステップS1809において、ゲートウェイGAは、切断対象となるネットワーク延伸先となる仮想ネットワーク名が選択されると、仮想ネットワーク管理テーブル410により、対応する仮想ネットワークID701を特定する。また、ゲートウェイGAは、仮想ネットワーク−サイトネットワーク関連付け管理テーブル412を参照して、特定した仮想ネットワークID701に関連付けられており、かつ、ステータス903が「接続中」であるサイトネットワークID803を特定する。
具体的には、たとえば、仮想ネットワークID701として「VN1」がネットワーク延伸先に選択された場合、図9において、ステータス906が「接続中」のサイトネットワークID803である「SA1」および「SC」が特定される。そして、ゲートウェイGAは、特定した仮想ネットワークID701とサイトネットワークID803の組み合わせを含む切断要求を、ゲートウェイコントローラ202に通知する。
ステップS1810において、ゲートウェイコントローラ202は、切断要求に含まれるサイトネットワークID803のサイトネットワークSに対応するゲートウェイGに、接続開始要求を送信する。たとえば、サイトネットワークID803である「NC」が特定された場合、ゲートウェイコントローラ202は、サイトネットワークSCに対応するゲートウェイID1110である「GC」を、サイトネットワーク−ゲートウェイ関連付け管理テーブル414から特定する。
そして、ゲートウェイコントローラ202は、特定したゲートウェイID1110である「GC」により特定されるゲートウェイGCに、サイトネットワークSCの切断開始要求を送信する。切断開始要求を受けたゲートウェイGCは、サイトネットワークSCを切断する。具体的には、ゲートウェイGCおよびゲートウェイコントローラ202は、仮想ネットワーク−サイトネットワーク関連付け管理テーブル412の切断対象のエントリのステータス906を「接続中」から「未接続」に更新する。
<ネットワーク延伸処理(ステップS1806)>
図19は、図18に示したネットワーク延伸処理(ステップS1806)の一例を示すフローチャートである。ステップS1900において、ゲートウェイコントローラ202は、接続要求に含まれるサイトネットワークID803に対応するホストコンピュータID1212とMACアドレス1214とIPアドレス1215を、サイトネットワーク−ホストコンピュータ関連付け管理テーブル415から取得する。取得される情報のサイト種別1009は、非制約環境またはクラウド利用者環境となる。
ステップS1901において、ゲートウェイコントローラ202は、ステップS1900で取得したホストコンピュータID群から一つを選択する。
ステップS1902において、ゲートウェイコントローラ202は、クラウド基盤3の管理インターフェースを介して、当該クラウド基盤3のゲートウェイGにネットワークインターフェースを追加する。
ステップS1903において、ゲートウェイコントローラ202は、クラウド基盤3の管理インターフェースを介して、クラウド基盤3のゲートウェイに追加されたネットワークインターフェースに、接続要求に含まれるサイトネットワークID803に対応するホストコンピュータID1212に関連付けられたMACアドレス1214とIPアドレス1215を設定する。具体的には、ゲートウェイコントローラ202は、クラウド基盤3のAPIを介して、クラウドネットワーク情報管理テーブル641のエントリに、サイトネットワークID803に対応するホストコンピュータID1212に関連付けられたMACアドレス1214とIPアドレス1215と、当該MACアドレス1214とIPアドレス1215の割当先のネットワークインターフェースID1317を設定する。
例えば、図13の場合、ゲートウェイGDのエントリにおいて、ホストコンピュータHA1のMACアドレスおよびIPアドレスが、クラウド基盤3DのインターフェースIFD1−2に割り当てられ、ホストコンピュータHA2のMACアドレスおよびIPアドレスが、クラウド基盤3DのインターフェースIFD1−3に割り当てられる。なお、インターフェースIFD1−1には、パブリック用MACアドレスとパブリック用IPアドレスが割り当てられる。
ステップS1903において、ステップS1901で選択したホストコンピュータIDが最後のホストコンピュータIDであると判定された場合は本フローを終了してステップS1807を実行し、最後のホストコンピュータIDではないと判定された場合はステップS1901に戻る。
これにより、制約環境であるクラウド環境201DのゲートウェイGDに、クラウド利用者環境201A内のホストコンピュータHA1,HA2のMACアドレスおよびIPアドレスが設定される。
このように、実施例1によれば、クラウド利用者環境と制約環境との間に跨ったネットワーク延伸を提供することができる。また、ネットワーク延伸先にゲートウェイGが配備されていなくても、ゲートウェイコントローラ202がクラウド基盤3の管理インターフェースを介して当該延伸先のサイトネットワークSにゲートウェイGを自動的に配備する。
配備されたゲートウェイGは、自律学習により自サイト201のホストコンピュータHやサイトネットワークSのネットワークアドレス情報やゲートウェイG自身のネットワークアドレス情報を取得するため、ゲートウェイコントローラ202は、取得されたネットワークアドレス情報を収集することができる。これにより、クラウド利用者環境とゲートウェイGの配備後の制約環境との間に跨ったネットワーク延伸を提供することができる。
実施例1では、制約環境であるクラウド環境に配備したゲートウェイのネットワークインターフェースにホストコンピュータHのMACアドレスとIPアドレスを設定するため、当該制約環境以外のホストコンピュータ群からネットワーク延伸できるホストコンピュータの上限数は、制約環境におけるゲートウェイが有するインターフェースの上限数と同数になる。
実施例2では、当該ゲートウェイのインターフェース数を超える数のホストコンピュータHを延伸する例を説明する。システム全体構成、ゲートウェイコントローラ、クラウド基盤は実施例1と同じであるため、説明を省略する。
ゲートウェイは実施例1の機能に加えて、通信アドレス変換処理プログラムを有し、ゲートウェイコントローラから要求される変換ルールに基づいて、通信の送信先ネットワークアドレスや送信元ネットワークアドレスのアドレス変換処理を行う。当該処理は一例であり、ネットワークアドレスの変換処理機能であれば、通信アドレス変換プログラムは、OpenFlow等のその他の公知の手法、プロプライエタリな手法で実現してよい。
なお、実施例1では、ゲートウェイコントローラが各サイトのネットワークアドレス情報を収集したが、各ゲートウェイが他サイトのゲートウェイから当該他サイトで取得された他サイトにおけるネットワークアドレス情報を収集してもよい。このように、ゲートウェイ間で自律共有機能を用いる場合、いずれかのゲートウェイがゲートウェイコントローラとして機能することになる。また、いずれかのクラウド基盤において、ゲートウェイコントローラの仮想マシンを構築してもよい。
<ネットワーク延伸例>
図20Aは、実施例2にかかるネットワーク延伸例1を示す説明図である。図20Aでは、クラウド利用者環境下のノードから制約環境下のノードにユニキャストする場合を例に挙げて説明する。図1Aと同一構成には同一符号を付し、説明を省略する。クラウド利用者環境101のノードN1から送信されたデータFは、ゲートウェイG1でカプセル化されてデータPとなり、データPは外部ネットワーク103を経由して、ゲートウェイG3に到達し、でカプセル化されてデータFとなる。ゲートウェイG3では、上述した変換ルールが設定される。当該変換ルールは、たとえば、外部ネットワーク103から受信したデータFの送信元IPアドレスが特定のIPアドレス(本例では、IPアドレス:A)である場合、外部ネットワーク103から受信したデータの送信元MACアドレスを特定のMACアドレス(本例では、MACアドレス:δ)に変換する。変換されたデータFは、ノードN5に到達する。
なお、事前設定として、クラウド基盤130は、図1Bに示したネットワークアドレス情報の収集により、ゲートウェイコントローラ140から、特定のIPアドレスと特定のMACアドレスの組(A,δ)を取得して、ネットワークアドレス情報テーブル131に保持し、ゲートウェイG2BのインターフェースIF2に割り当てる。これにより、制約環境下のノードN5は、非制約環境下のノードN1からのデータを受信することができる。
図20Bは、実施例2にかかるネットワーク延伸例2を示す説明図である。図20Bは、図20Aにおいて、制約環境のノードN5からクラウド利用者環境のノードN1にユニキャストする例である。図20Aと同一構成には同一符号を付し、説明を省略する。
クラウド基盤130のネットワークアドレス情報テーブルは、図20Aと同じであるが、ゲートウェイG2Bの変換ルールが異なる。変換ルールは、たとえば、自サイト内で受信したデータの送信先IPアドレスが特定のIPアドレス(本例では、IPアドレス:A)である場合、自サイト内で受信したデータの送信先MACアドレスを特定のMACアドレス(本例では、MACアドレス:α)に変換する。
たとえば、ノードN5から送信されたデータの送信先IPアドレスは「A」であり、送信先MACアドレスは「δ」であるため、当該アドレスの組は、ネットワークアドレス情報テーブルに存在する。したがって、ノードN5から送信されたデータは、クラウド基盤130を通過してゲートウェイG2BのインターフェースIF2に到達する。ゲートウェイG2Bは、変換ルールにより、ノードN5からインターフェースIF2で受信されたデータの送信先IPアドレスが特定のIPアドレス「A」に該当するため、送信先MACアドレスを「δ」から「α」に変換する。
当該変換されたデータはカプセル化されて外部ネットワーク、ゲートウェイG1を経由し、デカプセル化されて、ノードN1に到達する。これにより、クラウド利用者環境のノードN1は、制約環境のノードN5からのデータを受信することができる。以下、実施例2の内容について、実施例1の相違点を詳細に説明する。
<クラウドネットワーク情報管理テーブル641>
図21は、実施例2におけるクラウドネットワーク情報管理テーブル641の一例を示す説明図である。図21のうち、実施例1の図13と同一符号については説明を省略する。実施例2では、クラウド基盤3は、ゲートウェイGの自サイトのサイトネットワークS側のネットワークインターフェースに当該クラウド環境以外の一つ以上のホストコンピュータHのIPアドレスを登録する。また、MACアドレスはホストコンピュータのMACアドレスでもその他の任意のMACアドレスでもよい。
たとえば、図21のエントリ211,212において、インターフェースID1317が「IFD1−3」であるゲートウェイGのネットワークインターフェースが、自サイトのサイトネットワークSに接続されるインターフェースである。そして、エントリ211,212のMACアドレス1318には、プライベート用MACアドレスが登録される。
インスタンスID1316であるゲートウェイID:GDのゲートウェイGDが、図19のゲートウェイG2Bである場合、エントリ211,212のMACアドレス1318は、「δ」である。また、エントリ211のIPアドレス1319であるホストコンピュータHA3のIPアドレス「IP(HA3)」は、図19のノードN1のIPアドレス「A」である。同様に、エントリ212のIPアドレス1319であるホストコンピュータHB1のIPアドレス「IP(HB1)」は、図19のノードN3のIPアドレス「B」である。
図22は、実施例2における通信アドレス変換される前後のデータの構造例を示す説明図である。図22のうち既に説明した図14に示された同一の符号を付された部分については、説明を省略する。クラウド利用者環境201AのホストコンピュータHA4から制約環境であるクラウド環境201DのホストコンピュータHD1へ通信する場合、データFAが変換前のデータで、データFBが変換後のデータである。一方、制約環境であるクラウド環境201DのホストコンピュータHD1からクラウド利用者環境201AのホストコンピュータHA4へ通信する場合、データFBが変換前のデータで、データFAが変換後のデータである。
実施例2では、例えば、クラウド利用者環境201AのホストコンピュータHA4から制約環境であるクラウド環境201DのホストコンピュータHD1へ通信する場合、カプセル化される前のデータFAの送信元MACアドレス1401は、クラウド利用者環境201AのホストコンピュータHA4のMACアドレスである。
制約環境であるクラウド環境201Dにおいて、デカプセル化された後の送信元MACアドレスがホストコンピュータHA4のMACアドレスの場合、当該MACアドレスはクラウドネットワーク情報管理テーブル641に登録されていないため、当該データFAは廃棄される。送信元IPアドレス1403がホストコンピュータHA4のIPアドレスの場合、ゲートウェイGDが、送信元MACアドレス1401をホストコンピュータA4のMACアドレスからゲートウェイGDのMACアドレスにアドレス変換処理を行うことで、当該データFBを転送させることができる。
また、制約環境であるクラウド環境201DのホストコンピュータHD1からクラウド利用者環境201AのホストコンピュータHA4への通信時は、送信先IPアドレスがホストコンピュータHA4の場合、制約環境であるクラウド環境201DのゲートウェイGDが、ホストコンピュータHD1からのデータFBの送信先MACアドレス1400を、ゲートウェイGDのMACアドレスからクラウド利用者環境201AのホストコンピュータHA4のMACアドレスにアドレス変換処理を行う。図22においては、クラウド利用者環境と制約クラウド環境との通信を例として示しているが、クラウド利用者環境ではなく、非制約環境のクラウド環境でもよい。
図23は、実施例2におけるネットワーク延伸フローの一例を示す説明図である。図23は、図18のネットワーク延伸処理(S1806)について実施例2の詳細な処理を示す。
ステップS2300において、ゲートウェイコントローラ202が、サイトネットワーク−ホストコンピュータ関連付け管理テーブル415(図12参照)のサイトネットワークID803の列を参照し、ステップS1802の接続要求に含まれるサイトネットワークIDで、かつ、当該制約環境以外の環境(非制約環境またはクラウド利用者環境)に対応するホストコンピュータID1212およびIPアドレス1215を取得する。
ステップS2301において、ゲートウェイコントローラ202は、ステップ2300で取得したホストコンピュータID群から一つを選択する。
ステップS2302において、ゲートウェイコントローラ202は、クラウド基盤3を介して、当該ゲートウェイGのサイトネットワークS側のネットワークインターフェースに、ステップ2301で選択したホストコンピュータIDに対応するIPアドレスを設定する。なお、当該IPアドレスに対応するMACアドレスについては、当該ゲートウェイのMACアドレス(たとえば、プライベート用MACアドレス)が設定される。
ステップS2303において、ゲートウェイコントローラ202は、『データの送信元IPアドレスがクラウド利用者環境201A(201Bでもよい)のホストコンピュータHの場合は(条件)、当該データの送信元MACアドレスをゲートウェイGのMACアドレスに変換する(アクション)』という通信アドレス変換ルールをゲートウェイGDに設定する。具体的には、たとえば、図19に示したように、変換ルールが追加される。
ステップS2104において、ゲートウェイコントローラ202は、『データの送信先IPアドレスがクラウド利用者環境201A(201Bでもよい)のホストコンピュータHの場合は(条件)、送信先MACアドレスを当該ホストコンピュータHのMACアドレスに変換する(アクション)』という通信アドレス変換ルールをゲートウェイGDに設定する。
ステップS2105において、ステップS2301で選択したホストコンピュータIDが最後のホストコンピュータIDであると判定された場合は本フローを終了してステップS1807を実行し、最後のホストコンピュータIDではないと判定された場合はステップS2301に戻る。
このように、実施例2によれば、制約環境のゲートウェイGが受信したデータの送信元アドレスまたは送信先アドレスに対して、通信アドレス変換処理を行うことで、ゲートウェイGのインターフェース数を超える数のホストコンピュータHについて延伸することができる。したがって、ネットワーク延伸の拡大化を図ることができる。
以上説明したように、本実施例によれば、クラウド利用者環境と制約環境との間に跨ったネットワーク延伸を提供することができる。すなわち、クラウド利用環境からのデータは、本来ならば制約環境であるクラウド環境内のクラウド基盤のアクセス制御機能により廃棄されたが、ゲートウェイコントローラの管理下の元で、ゲートウェイコントローラが、クラウド利用者環境とクラウド環境との間を流れるデータを、クラウド基盤のアクセス制御機能で廃棄されないように設定する。これにより、クラウド利用者は、自身のクラウド利用者環境のサイトネットワークから制約環境であるクラウド環境内のサイトネットワークに延伸することができる。制約環境であるクラウド環境の通信相手が非制約環境である他のクラウド環境である場合も同様に、ネットワーク延伸を実現することができる。
また、ネットワーク延伸先にゲートウェイが配備されていなくても、ゲートウェイコントローラがクラウド基盤の管理インターフェースを介して当該延伸先のサイトネットワークにゲートウェイを自動的に配備することにより、ゲートウェイコントローラは、当該ゲートウェイが取得したネットワークアドレス情報を収集することができる。これにより、クラウド利用者環境とゲートウェイの配備後の制約環境との間に跨ったネットワーク延伸を提供することができる。
また、制約環境のゲートウェイが受信したデータの送信元アドレスまたは送信先アドレスに対して、通信アドレス変換処理を行うことで、ゲートウェイのインターフェース数を超える数のホストコンピュータについてネットワーク延伸を実現することができ、ネットワーク延伸の拡大化を図ることができる。
また、各サイト内のネットワークアドレス情報の収集は、ゲートウェイコントローラによる集中管理型による収集でもよく、また、ゲートウェイ間による自律共有による収集でもよい。また、上述したサイトネットワークは、L(Layer)2網やL3網に適用することができる。
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。