以下、本発明に係る割当装置、割当プログラム、割当方法、及び割当システムの実施形態を説明する。なお、以下の実施形態により本発明が限定されるものではない。
(第1の実施形態)
図1は、第1の実施形態に係る割当装置10の構成例を示す図である。図1に示すように、第1の実施形態においては、2拠点毎に通信路が構築され、この通信路同士が各拠点内のスイッチを介して相互に接続されることで、複数の拠点間が接続される。第1の実施形態に係る割当装置10は、このような拠点間接続を行う各拠点から情報を収集し、収集した情報に基づいてMACアドレスの重複を判定し、MACアドレスの重複が生じている端末に、適切なMACアドレスを割り当てる。具体的には、割当装置10は、収集部11と、分類部12と、判定部13と、割当部14とを備える。
収集部11は、2拠点毎に構築された通信路を識別する通信路識別子を、通信路が設定されたスイッチ毎に収集する。例えば、収集部11は、拠点Aから、スイッチA1に設定された通信路識別子を収集し、スイッチA2に設定された通信路識別子を収集する。
分類部12は、収集部11によってスイッチ毎に収集された通信路識別子に基づいて、通信路同士の接続関係を判定し、判定した接続関係に基づいて、各通信路を用いて通信を行う各拠点内の端末を、MACアドレスによる通信を行うネットワークに属するグループに分類する。
例えば、分類部12は、同一の通信路識別子によって識別される通信路を同一のネットワークであると判定する。例えば、図1に示すように、スイッチA2とスイッチC1との間には、同一の通信路識別子によって識別される1つの通信路が構築されている。このような場合、分類部12は、スイッチA2とスイッチC1との間に構築された通信路が同一のネットワークであると判定する。また、例えば、分類部12は、異なる通信路識別子によって識別される複数の通信路が同一のスイッチに設定されている場合に、これらの複数の通信路を同一のネットワークであると判定する。例えば、図1に示すように、スイッチB1には、異なる通信路識別子によって識別される複数の通信路が設定されている。このような場合、分類部12は、これらの複数の通信路(スイッチA1とスイッチB1との間に構築された通信路、及び、スイッチB1とスイッチD1との間に構築された通信路)が同一のネットワークであると判定する。また、同様に、スイッチD1にも、異なる通信路識別子によって識別される複数の通信路が設定されている。このような場合、分類部12は、これらの複数の通信路(スイッチD1とスイッチB1との間に構築された通信路、及び、スイッチD1とスイッチC2との間に構築された通信路)が同一のネットワークであると判定する。
結局、図1に示す例の場合、実線で示す3つの通信路(スイッチA1とスイッチB1との間に構築された通信路、スイッチB1とスイッチD1との間に構築された通信路、及び、スイッチD1とスイッチC2との間に構築された通信路)が、ある1つのネットワークに分類され、点線で示す1つの通信路(スイッチA2とスイッチC1との間に構築された通信路)が、他の1つのネットワークに分類される。そこで、分類部12は、この分類に基づいて、各通信路を用いて通信を行う各拠点内の端末を、各ネットワークに属するグループに分類する。
すなわち、分類部12は、分類の対象となる拠点が2拠点であり、この2拠点間に1つの通信路が構築された場合、この通信路は同一の通信路識別子によって識別される通信路であるので、同一のネットワークであると判定する。また、分類部12は、分類の対象となる拠点が3拠点以上であり、3拠点以上の拠点間でスター型やフルメッシュ型の通信路が2拠点毎に構築された場合、同一の通信路識別子によって識別される通信路が同一のネットワークであると判定する。また、分類部12は、異なる通信路識別子によって識別される複数の通信路が同一のスイッチに設定されている場合に、これらの複数の通信路を同一のネットワークであると判定する。このように、分類部12は、同一の通信路識別子による判定と、異なる通信路識別子による判定とを、適宜選択したり、組み合わせることで、分類を行う。
判定部13は、分類部12によって分類されたグループ毎に、グループ内の端末にMACアドレスの重複が生じているか否かを判定する。割当部14は、判定部13によってMACアドレスの重複が生じていると判定された場合に、MACアドレスの重複が生じている複数の端末の少なくとも一方に、グループ内で未使用のMACアドレスを割り当てる。
このように、第1の実施形態によれば、MACアドレスの重複を適切に解決することができる。すなわち、第1の実施形態に係る割当装置10は、MACアドレスの重複を調査する調査対象を、MACアドレスの重複が問題となり得るネットワーク単位に絞り込むことで、調査の手間及びMACアドレスの再割当の手間を軽減する。
なお、第1の実施形態においては、スイッチとスイッチとの間に通信路が構築される場合を説明したが、実施形態はこれに限られるものではなく、スイッチに接続される端末と端末との間に、スイッチを通過する通信路が構築される場合にも、同様に適用することができる。
(第2の実施形態)
次に、第2の実施形態を説明する。第2の実施形態においては、複数のクラウド拠点間が接続され、クラウド拠点にて仮想化技術が用いられる場合を例に挙げて説明する。このような場合、仮想マシンのMACアドレスがクラウド拠点間で重複することがある。このため、第2の実施形態においては、ネットワークオペレーションシステム(Network Operation System)100が、各クラウド拠点から情報を収集し、収集した情報に基づいてMACアドレスの重複を判定し、MACアドレスの重複が生じている仮想マシンに、適切なMACアドレスを割り当てる。
ここで、第2の実施形態に係るネットワークオペレーションシステム100を説明する前に、第2の実施形態に係るネットワークオペレーションシステム100が適用されない場合の課題について説明する。図2は、仮想マシンのMACアドレスの重複を説明するための図である。図2において、実線矢印は、既に構築済みのクラウド拠点間接続を示し、点線矢印は、新規に構築されるクラウド拠点間接続を示す。仮想マシンのMACアドレスは、各クラウド拠点内において一意に割り当てられたとしても、図2に示すように、例えば、クラウド拠点Aの仮想マシンA−2と、クラウド拠点Bの仮想マシンB−2との間のクラウド拠点間接続が新規に構築されると、例えば、クラウド拠点Aの仮想マシンA−2のMACアドレスと、クラウド拠点Bの仮想マシンB−1のMACアドレスとが重複してしまう。
第2の実施形態に係るネットワークオペレーションシステム100が適用されない場合、例えば、複数のクラウド拠点間において重複するMACアドレス、及び、未使用のMACアドレスを調査し、調査した未使用のMACアドレスを各クラウド拠点の該当する仮想マシンに再設定する必要がある。調査の対象となるクラウド拠点は、申請された1クラウド拠点間接続に属するクラウド拠点に限られず、各クラウド拠点にて既に構築済みの別のクラウド拠点間接続に属するクラウド拠点にまで及ぶ可能性があった。
この点、第2の実施形態に係るネットワークオペレーションシステム100によれば、以下に説明するように、MACアドレスの重複を調査する調査対象を、MACアドレスの重複が問題となり得るネットワーク単位に絞り込み、絞り込んだ範囲内でMACアドレスの重複が生じているか否かを自動的に判定するので、MACアドレスの重複を適切に解決することができる。以下、第2の実施形態に係るネットワークオペレーションシステム100を説明する。
図3A及び図3Bは、第2の実施形態における協働空間を説明するための図である。なお、第2の実施形態においては、クラウド拠点A、クラウド拠点B、クラウド拠点C、及びクラウド拠点Dの4拠点間に構築された協働空間を例に挙げて説明するが、一例に過ぎず、実施形態はこれに限られるものではない。
まず、図3Aに示すように、各クラウド拠点には、ハイパーバイザ(hypervisor)と、仮想スイッチ管理部と、クラウド管理部とが備えられる。また、各クラウド拠点には、仮想スイッチ及び仮想マシンが動作する。例えば、クラウド拠点Aには、ハイパーバイザAと、仮想スイッチ管理部Aと、クラウド管理部Aとが備えられ、仮想スイッチA1及び仮想スイッチA2、並びに、仮想マシンA−1及び仮想マシンA−2が動作する。
ハイパーバイザAは、仮想化技術を実現するソフトウェアであり、仮想スイッチ管理部Aやクラウド管理部Aとの間で情報のやり取りを行う。仮想スイッチ管理部Aは、クラウド拠点A内に仮想的に構築された仮想スイッチに関する情報を管理する。例えば、仮想スイッチ管理部Aは、クラウド拠点を識別する識別子(以下、クラウド拠点識別子)や、仮想スイッチを識別する識別子(以下、仮想スイッチ識別子)を管理する。第2の実施形態において、これらの識別子は、他のクラウド拠点と競合しないように規定される。また、仮想スイッチ管理部Aは、仮想スイッチ毎に、クラウド拠点側ではない外部側に設定されている仮想的な通信路(以下、外部VPN)の数や、外部VPNを識別する識別子(以下、外部VPN識別子)などを管理する。
クラウド管理部Aは、クラウド拠点A内に仮想的に構築された仮想マシンに関する情報を管理する。例えば、クラウド管理部Aは、クラウド拠点識別子や、仮想スイッチ識別子を管理する。また、クラウド管理部Aは、仮想スイッチ毎に、仮想スイッチに仮想的に接続されている仮想マシンの識別子(以下、仮想マシン識別子)や、仮想マシンのNIC(Network Interface Card)の識別子(以下、NIC識別子)、仮想マシンのMACアドレスなどを管理する。なお、説明を割愛するが、他のクラウド拠点も、クラウド拠点Aと同様に構成される。また、仮想マシンと仮想スイッチとは、必ずしも1対1で構築されるものではなく、その対応関係は任意である。例えばクラウド拠点Bのように、2台の仮想マシンと1台の仮想スイッチとが対応するように構築されてもよい。
第2の実施形態において想定する具体的なネットワーク構成を説明する。図3Aに示すように、クラウド拠点A内の仮想スイッチA1には、外部VPN識別子「VLAN(Virtual Local Area Network)2000」によって識別される外部VPNが設定される。クラウド拠点A内の仮想マシンA−1及びクラウド拠点B内の仮想マシンB−1が、この外部VPNを用いて通信を行う。また、仮想マシンA−2には、外部VPN識別子「VLAN2010」によって識別される外部VPNが設定される。クラウド拠点A内の仮想マシンA−2及びクラウド拠点C内の仮想マシンC−1が、この外部VPNを用いて通信を行う。
また、クラウド拠点B内の仮想スイッチB1には、外部VPN識別子「VLAN2000」及び「VLAN2020」によって識別される外部VPNが設定される。クラウド拠点B内の仮想マシンB−1及びクラウド拠点A内の仮想マシンA−1が、「VLAN2000」によって識別される外部VPNを用いて通信を行う。また、クラウド拠点B内の仮想マシンB−2及びクラウド拠点D内の仮想マシンD−1が、「VLAN2020」によって識別される外部VPNを用いて通信を行う。
また、クラウド拠点C内の仮想スイッチC1には、外部VPN識別子「VLAN2010」によって識別される外部VPNが設定される。クラウド拠点C内の仮想マシンC−1及びクラウド拠点A内の仮想マシンA−2が、この外部VPNを用いて通信を行う。また、仮想スイッチC2には、外部VPN識別子「VLAN2030」によって識別される外部VPNが設定される。クラウド拠点C内の仮想マシンC−2及びクラウド拠点D内の仮想マシンD−2が、この外部VPNを用いて通信を行う。
また、クラウド拠点D内の仮想スイッチD1には、外部VPN識別子「VLAN2020」及び「VLAN2030」によって識別される外部VPNが設定される。クラウド拠点D内の仮想マシンD−1及びクラウド拠点B内の仮想マシンB−2が、「VLAN2020」によって識別される外部VPNを用いて通信を行う。また、クラウド拠点C内の仮想マシンC−2及びクラウド拠点D内の仮想マシンD−2が、「VLAN2030」によって識別される外部VPNを用いて通信を行う。
ここで、図3Aに示すネットワーク構成は、例えば仮想マシンA−1と仮想マシンB−1との間の外部VPNのように、仮想マシンと仮想マシンとの間に、例えば仮想スイッチA1と仮想スイッチB1とを通過する外部VPNが構築されることを想定するものであるが、実施形態はこれに限られるものではない。例えば、図3Bに示すネットワーク構成のように、外部VPNは、仮想スイッチと仮想スイッチとの間に構築されてもよい。すなわち、図3Bにおいて、実線の矢印部分は、仮想スイッチ間に構築された外部VPNを示し、点線の矢印部分は、仮想スイッチと仮想マシンとが仮想ケーブル(例えば、仮想Ethernet(登録商標)ケーブル)で接続されることを示す。この仮想ケーブルは、例えば上述したハイパーバイザによって実現され、管理される。以下に説明するネットワークオペレーションシステム100は、この図3Aに示すネットワーク構成においても、あるいは、図3Bに示すネットワーク構成においても、適用が可能である。
図4は、第2の実施形態に係るネットワークオペレーションシステム100の構成例を示す図である。図4に示すように、ネットワークオペレーションシステム100は、調査指示受付部111と、ネットワーク情報収集部112と、MACアドレス情報収集部113と、重複MACアドレス判定部114と、MACアドレス再割当部115と、設定送信部116とを有する。
また、ネットワークオペレーションシステム100は、調査対象仮想スイッチデータベース121と、使用中MACアドレスデータベース122と、重複MACアドレスデータベース123と、再割当MACアドレスプリフィックスリスト124と、再割当MACアドレスデータベース125とを有する。なお、第2の実施形態において、再割当MACアドレスプリフィックスリスト124は、後述するように、予め格納された情報を記憶し、他のデータベースは、ネットワークオペレーションシステム100による処理の途中で一時的に格納される情報を記憶する。
調査指示受付部111は、MACアドレスの重複を調査する調査指示を受け付ける。例えば、調査指示受付部111は、図示しない入力部を介して操作者による調査指示を受け付け、調査指示を受け付けた旨の通知をネットワーク情報収集部112に送る。ネットワークオペレーションシステム100の操作者は、例えば、新たなクラウド拠点間接続の申請を受け付けた場合に、ネットワークオペレーションシステム100に対して調査指示を入力する。また、操作者は、例えば、あるクラウド拠点から正常に通信を行うことができないといった通知を受け付けた場合に、ネットワークオペレーションシステム100に対して調査指示を入力する。
ネットワーク情報収集部112は、各クラウド拠点内の仮想スイッチ管理部から、仮想スイッチ管理部が管理する情報(以下、ネットワーク情報)を収集する。また、ネットワーク情報収集部112は、ネットワーク情報に含まれる外部VPN識別子に基づいて、各クラウド拠点内の仮想スイッチを、MACアドレスによる通信を行うネットワークに属するグループに分類する。
例えば、ネットワーク情報収集部112は、各クラウド拠点内の仮想スイッチ管理部に対して、仮想スイッチ毎にネットワーク情報を送信するように問い合わせる。仮想スイッチ管理部は、この問合せに応じてネットワーク情報を送信する。すると、ネットワーク情報収集部112は、仮想スイッチ管理部から送信されたネットワーク情報を、調査対象仮想スイッチデータベース121に格納する。
図5は、第2の実施形態に係るネットワーク情報収集部112による処理手順を示すフローチャートであり、図6A及び図6Bは、第2の実施形態に係る調査対象仮想スイッチデータベース121を説明するための図である。
ここで、図6Aに示すように、調査対象仮想スイッチデータベース121には、仮想スイッチ毎に、1エントリずつ、ネットワーク情報が記述される。例えば、調査対象仮想スイッチデータベース121は、ネットワーク情報として、クラウド拠点識別子、仮想スイッチ識別子、外部VPNの数(以下、外部VPN数)、及び、外部VPN識別子を対応付けて記憶する。また、調査対象仮想スイッチデータベース121は、ネットワーク情報に対応付けて、調査対象の範囲を画するグループを識別する識別子(以下、調査対象グループ識別子)を記憶する。すなわち、ネットワーク情報収集部112は、ネットワーク情報を格納する際に、この調査対象グループ識別子を対応付けて格納することで、各クラウド拠点の仮想スイッチを、MACアドレスによる通信を行うネットワークに属するグループに分類する。
図5に示すように、ネットワーク情報収集部112は、調査指示を受け付けた旨の通知を調査指示受付部111から受け取ると(ステップS101肯定)、各クラウド拠点内の仮想スイッチ管理部からネットワーク情報を収集する(ステップS102)。
次に、ネットワーク情報収集部112は、収集したネットワーク情報を、調査対象仮想スイッチデータベース121に格納する。
例えば、ネットワーク情報収集部112は、まず、クラウド拠点識別子、仮想スイッチ識別子、外部VPN数、及び外部VPN識別子を対応付けて格納する(ステップS103)。例えば、ネットワーク情報収集部112は、図6Aに示すように、「A」、「A1」、「1」、及び「VLAN2000」を対応付けて格納する。なお、図6Aに示す調査対象仮想スイッチデータベース121には、上から順に1エントリずつ情報が格納される。
次に、ネットワーク情報収集部112は、調査対象仮想スイッチデータベース121に格納済みの外部VPN識別子を検索し、一致する外部VPN識別子が格納されているか否かを判定する(ステップS104)。
一致する外部VPN識別子が検索された場合(ステップS104肯定)、ネットワーク情報収集部112は、その検索された外部VPN識別子に対応付けて格納されている調査対象グループ識別子を対応付けて格納する(ステップS105)。一方、一致する外部VPN識別子が検索されない場合(ステップS104否定)、ネットワーク情報収集部112は、新たな調査対象グループ識別子を対応付けて格納する(ステップS106)。
例えば、図6Aにおいて、仮想スイッチ「A1」で識別されるエントリを格納する際、2行目以降のエントリは未だ格納されておらず、「VLAN2000」と一致する外部VPN識別子は検索されないので、ネットワーク情報収集部112は、新たな調査対象グループ識別子「1」を対応付けて格納する。一方、例えば、仮想スイッチ「B1」で識別されるエントリを格納する際、「VLAN2000」と一致する外部VPN識別子が検索されるので、ネットワーク情報収集部112は、「VLAN2000」に対応付けて格納されている調査対象グループ識別子「1」を対応付けて格納する。
続いて、ネットワーク情報収集部112は、各クラウド拠点内の仮想スイッチ管理部から収集したネットワーク情報で、調査対象仮想スイッチデータベース121に格納していないネットワーク情報が残っているか否かを判定し(ステップS107)、残っている場合には(ステップS107肯定)、再び、ステップS103の処理に戻る。
一方、残っていない場合には(ステップS107否定)、ネットワーク情報収集部112は、調査対象仮想スイッチデータベース121に格納されたネットワーク情報全体に対して、外部VPN識別子が一致し、且つ、調査対象グループ識別子が異なる仮想スイッチ識別子の組が、調査対象仮想スイッチデータベース121に格納されているか否かを判定する(ステップS108)。
そして、そのような仮想スイッチ識別子の組が格納されている場合には(ステップS108肯定)、ネットワーク情報収集部112は、一方の調査対象グループ識別子を、後から格納された調査対象グループ識別子に書き換えて(ステップS109)、処理を終了する。仮想スイッチ識別子の組が格納されていない場合には(ステップS108否定)、ネットワーク情報収集部112は、ステップS109の処理を行うことなく、処理を終了する。
例えば、図6Aにおいて、仮想スイッチ識別子「C2」で識別されるエントリには、外部VPN識別子「VLAN2030」と、調査対象グループ識別子「3」とが対応付けて格納されている。また、仮想スイッチ識別子「D1」で識別されるエントリには、外部VPN識別子「VLAN2020」及び「VLAN2030」と、調査対象グループ識別子「1」とが対応付けて格納されている。このように、仮想スイッチ識別子「C2」で識別されるエントリと、仮想スイッチ識別子「D1」で識別されるエントリとは、外部VPN識別子「VLAN2030」が一致し、且つ、調査対象グループ識別子が「1」と「3」とで異なる。このような事態は、エントリが格納される順番によって生じ得る。
このような場合、ネットワーク情報収集部112は、一方の調査対象グループ識別子を、後から格納された調査対象グループ識別子に書き換える。例えば、ネットワーク情報収集部112は、仮想スイッチ識別子「D1」で識別されるエントリの方が後から格納されたエントリであるので、図6Bの丸印に示すように、このエントリの調査対象グループ識別子「1」によって、仮想スイッチ識別子「C2」で識別されるエントリの調査対象グループ識別子「3」を書き換える。
なお、ネットワーク情報収集部112は、分類の対象となるクラウド拠点が2拠点であり、この2拠点間に1つの外部VPNが構築された場合、この外部VPNは同一の外部VPN識別子によって識別される外部VPNであるので、同一のネットワークであると判定する。また、ネットワーク情報収集部112は、分類の対象となるクラウド拠点が3拠点以上であり、3拠点以上のクラウド拠点間でスター型やフルメッシュ型の外部VPNが2拠点毎に構築された場合、同一の外部VPN識別子によって識別される外部VPNが同一のネットワークであると判定する。また、ネットワーク情報収集部112は、異なる外部VPN識別子によって識別される複数の外部VPNが同一の仮想スイッチに設定されている場合に、これらの複数の外部VPNを同一のネットワークであると判定する。このように、ネットワーク情報収集部112は、同一の通信路識別子による判定と、異なる通信路識別子による判定とを、適宜選択したり、組み合わせることで、分類を行う。
MACアドレス情報収集部113は、各クラウド拠点内のクラウド管理部から、クラウド管理部が管理する情報(以下、MACアドレス情報)を収集する。また、MACアドレス情報収集部113は、MACアドレス情報に基づいて、各クラウド拠点の仮想スイッチに接続さえた仮想マシンを、MACアドレスによる通信を行うネットワークに属するグループに分類する。
例えば、MACアドレス情報収集部113は、各クラウド拠点内のクラウド管理部に対して、仮想スイッチ毎にMACアドレス情報を送信するように問い合わせる。クラウド管理部は、この問合せに応じてMACアドレス情報を送信する。すると、MACアドレス情報収集部113は、クラウド管理部から送信されたMACアドレス情報を、使用中MACアドレスデータベース122に格納する。なお、MACアドレス情報収集部113は、この格納の際に、調査対象仮想スイッチデータベース121を参照する。
図7は、第2の実施形態に係るMACアドレス情報収集部113による処理手順を示すフローチャートであり、図8は、第2の実施形態に係る使用中MACアドレスデータベース122を説明するための図である。
ここで、図8に示すように、使用中MACアドレスデータベース122には、仮想マシン毎に、1エントリずつ、MACアドレス情報が記述される。例えば、使用中MACアドレスデータベース122は、クラウド拠点識別子、仮想スイッチ識別子、仮想マシンのMACアドレス、仮想マシン識別子、及び、NIC識別子を対応付けて記憶する。また、使用中MACアドレスデータベース122は、MACアドレス情報に対応付けて、調査対象グループ識別子を記憶する。すなわち、使用中MACアドレスデータベース122は、MACアドレス情報を格納する際に、この調査対象グループ識別子を対応付けて格納することで、各クラウド拠点内の仮想マシンを、MACアドレスによる通信を行うネットワークに属するグループ毎に分類する。
ネットワーク情報収集部112による処理に続き、MACアドレス情報収集部113は、図7に示すように、各クラウド拠点内のクラウド管理部からMACアドレス情報を収集する(ステップS201)。
次に、MACアドレス情報収集部113は、調査対象仮想スイッチデータベース121を参照して該当する調査対象識別子を取得し、取得した調査対象識別子に対応付けて、収集したMACアドレス情報を、使用中MACアドレスデータベース122に格納する(ステップS202)。例えば、MACアドレス情報収集部113は、調査対象グループ識別子の昇順に、調査対象識別子と、仮想マシン毎のMACアドレス情報とを対応付けて、使用中MACアドレスデータベース122に格納する。なお、図8に示す使用中MACアドレスデータベース122には、上から順に1エントリずつ情報が格納される。そして、MACアドレス情報収集部113は、未格納のMACアドレス情報の有無を判定し(ステップS203)、未格納のMACアドレス情報がある場合には(ステップS203肯定)、ステップS202の処理に戻る。
重複MACアドレス判定部114は、MACアドレス情報収集部113によって分類されたグループ毎に、グループ内の仮想マシンにMACアドレスの重複が生じているか否かを判定する。
図9は、第2の実施形態に係る重複MACアドレス判定部114による処理手順を示すフローチャートであり、図10は、第2の実施形態に係る重複MACアドレスデータベース123を説明するための図である。
MACアドレス情報収集部113による処理に続き、重複MACアドレス判定部114は、図9に示すように、使用中MACアドレスデータベース122を参照し、調査対象グループ識別子が一致し、且つ、MACアドレスが一致するエントリを抽出する(ステップS301)。なお、第2の実施形態において、重複MACアドレス判定部114は、該当するエントリがひとつである場合も、このひとつのエントリを抽出する。
そして、重複MACアドレス判定部114は、使用中MACアドレスデータベース122から抽出したエントリを、重複MACアドレスデータベース123に格納する(ステップS302)。図10に示すように、重複MACアドレスデータベース123は、調査対象グループ識別子、MACアドレス、利用数、クラウド拠点識別子、仮想マシン識別子、及び、NIC識別子を対応付けて記憶する。ここで、利用数は、調査対象グループ識別子が一致し、且つ、MACアドレスが一致するとして抽出されたエントリの数である。また、この利用数が「2」以上の場合、「クラウド拠点識別子、仮想マシン識別子、及び、NIC識別子」の組が、同一のエントリに繰り返し記述される。なお、図10に示す重複MACアドレスデータベース123には、上から順に1エントリずつ情報が格納される。そして、重複MACアドレス判定部114は、未格納のエントリの有無を判定し(ステップS303)、未格納のエントリがある場合には(ステップS303肯定)、ステップS301の処理に戻る。
例えば、重複MACアドレス判定部114は、使用中MACアドレスデータベース122を参照し、調査対象グループ識別子が一致し、且つ、MACアドレスが一致するエントリとして、仮想マシン識別子「A−1」で識別されるエントリと、仮想マシン識別子「B−1」で識別されるエントリとを抽出する。そして、重複MACアドレス判定部114は、調査対象グループ識別子「1」と、MACアドレス「00:11:22:33:44:55」と、利用数「2」と、クラウド識別子「A」、仮想マシン識別子「A−1」、及びNIC識別子「eth0」の組と、クラウド識別子「B」、仮想マシン識別子「B−1」、及びNIC識別子「eth1」の組とを対応付けて、重複MACアドレスデータベース123に格納する。
MACアドレス再割当部115は、重複MACアドレス判定部114によって、MACアドレスの重複が生じていると判定された場合には、MACアドレスの重複が生じている複数の仮想マシンのうち少なくとも一方の仮想マシンに、MACアドレスの重複が生じているグループ内で未使用のMACアドレスで、且つ、この仮想マシンが設定されているクラウド拠点と同一のクラウド拠点内で未使用のMACアドレスを割り当てる。
例えば、MACアドレス再割当部115は、重複MACアドレスデータベース123を1エントリ毎に参照し、MACアドレスの重複が生じている仮想マシンを特定する。次に、MACアドレス再割当部115は、再割当MACアドレスプリフィックスリスト124を参照し、MACアドレスのプリフィックス部用に割り当てられたMACアドレスの上位3バイト(24ビット)の情報を取得する。そして、MACアドレス再割当部115は、下位3バイト(24ビット)の情報をランダムに決定し、取得した上位3バイトの情報に、ランダムに決定した下位3バイトを結合することで、再割り当ての候補となるMACアドレス(以下、再割当候補MACアドレス)を新たに生成する。
なお、MACアドレスは、一般に6バイトの情報を有する。上位3バイトは、ベンダーを識別するベンダーIDであり、下位3バイトは、各ベンダーによって任意に割り当てられる。このように、上位3バイトは予め固定的に割り当てられるので、「プリフィックス部」という。
図11は、第2の実施形態に係る再割当MACアドレスプリフィックスリスト124を説明するための図である。図11に示すように、再割当MACアドレスプリフィックスリスト124は、プリフィックス部と、クラウド拠点識別子とを対応付けて記憶する。
例えば、再割当MACアドレスプリフィックスリスト124は、「11:22:33」と、「A」とを対応付けて記憶する。これは、クラウド拠点識別子「A」で識別されるクラウド拠点内の仮想マシンにMACアドレスを再割り当てする場合には、上位3バイトに「11:22:33」を用いることが予め割り当てられていることを示す。すなわち、該当するクラウド拠点にて割り当て可能な範囲を示す。なお、図11に示すように、再割当MACアドレスプリフィックスリスト124は、「33:44:55」と、「C」及び「D」とを対応付けて記憶する。これは、クラウド拠点識別子「C」又は「D」で識別されるクラウド拠点内の仮想マシンにMACアドレスを再割り当てする場合には、上位3バイトに「33:44:55」を用いることが予め割り当てられていることを示す。このように、予め割り当てられる上位3バイトとクラウド拠点とは、1対1である必要はない。
続いて、MACアドレス再割当部115は、使用中MACアドレスデータベース122を参照し、同一の調査対象グループ識別子で識別されるグループ内に、再割当候補MACアドレスと重複するMACアドレスが利用されていないか、判定する。利用されていた場合には、MACアドレス再割当部115は、再び、下位3バイトの情報をランダムに決定し、次の再割当候補MACアドレスを新たに生成する。一方、利用されていない場合には、MACアドレス再割当部115は、使用中MACアドレスデータベース122のエントリを修正する。すなわち、MACアドレス再割当部115は、重複していたMACアドレスを、再割当候補MACアドレスに書き換える。なお、MACアドレス再割当部115は、重複していた複数のMACアドレスのうち、少なくとも一方のMACアドレスを、再割当候補MACアドレスに書き換える。
その後、MACアドレス再割当部115は、重複MACアドレスデータベース123のエントリも修正する。例えば、MACアドレス再割当部115は、利用数「2」のエントリを削除する。また、MACアドレス再割当部115は、再割当MACアドレスデータベース125に、仮想マシンに再割り当てを行ったMACアドレスを格納する。なお、実施形態は上述した例に限られるものではなく、MACアドレスに含まれる6バイトの情報全てをランダムに決定してもよい。あるいは、このような方法で決定するのではなく、MACアドレス再割当部115は、同一の調査対象グループ識別子で識別されるグループ内で未使用(すなわち未重複)のMACアドレスであれば、どのような方法によってMACアドレスを割り当ててもよい。
図12は、第2の実施形態に係る再割当MACアドレスデータベース125を説明するための図である。例えば、MACアドレス再割当部115は、図12に示すように、クラウド拠点識別子、仮想マシン識別子、NIC識別子、及び、再割り当てされたMACアドレスを対応付けて、再割当MACアドレスデータベース125に格納する。なお、図12に示す再割当MACアドレスデータベース125には、上から順に1エントリずつ情報が格納される。
設定送信部116は、MACアドレス再割当部115によって割り当てられたMACアドレスを、該当するクラウド拠点に設置されたクラウド管理部に送信する。ここで、設定送信部116は、例えば、各クラウド拠点に設置された管理部毎のアタッチメントを予め記憶する。アタッチメントとは、MACアドレスなどの設定情報を各クラウド拠点に設置された管理部に対して反映・削除するためのプログラムである。アタッチメントには、各クラウド拠点に設置されたネットワーク機器と、ネットワークオペレーションシステム100との間で用いられる通信プロトコルなどが規定される。なお、一般に、この通信プロトコルには、ネットワーク機器のベンダーによって規定される独自仕様の通信プロトコルが用いられる。設定送信部116は、該当するアタッチメントを用いて、MACアドレスを、該当するクラウド拠点に設置されたクラウド管理部に送信する。なお、各拠点のクラウド管理部は、設定送信部116からMACアドレスを受信すると、受信したMACアドレスを、MACアドレスの重複が生じている複数の仮想マシンの少なくとも一方に設定する。
(第2の実施形態の効果)
このように、第2の実施形態によれば、MACアドレスの重複を適切に解決することができる。すなわち、第2の実施形態に係るネットワークオペレーションシステム100は、MACアドレスの重複を調査する調査対象を、MACアドレスの重複が問題となり得るネットワーク単位に絞り込むことで、調査の手間及びMACアドレスの再割当の手間を軽減する。
すなわち、第2の実施形態において、同一の調査対象グループ識別子で識別される仮想スイッチ同士は、直接(例えばクラウド拠点Aの仮想スイッチA1とクラウド拠点Bの仮想スイッチB1)又は間接(例えばクラウド拠点Aの仮想スイッチA1とクラウド拠点Dの仮想スイッチD1)に接続しているものである。言い換えると、同一の調査対象グループ識別子で識別される仮想スイッチのみが、同一のネットワークに属する。同一のネットワークは、同一のIP(Internet Protocol)セグメントであるので、MACアドレスによる通信を行う。このため、同一の調査対象グループ識別子で識別される仮想スイッチと接続された仮想マシンのMACアドレスのみを重複調査の調査対象とすればよい。異なる調査対象グループ識別子で識別される仮想スイッチと接続された仮想マシンのMACアドレスとの重複は問題とならず、無視することができる。
また、第2の実施形態に係るネットワークオペレーションシステム100は、調査対象の絞り込みからMACアドレスの再割り当て、再割り当てされたMACアドレスの仮想マシンへの反映まで、自動的に行うことができるので、手間を更に軽減する。
(他の実施形態)
ところで、上述した割当装置10又はネットワークオペレーションシステム100は、上述した実施形態以外にも、種々の異なる形態にて実施されてよい。
(協働空間)
図13A及び図13Bは、その他の実施形態における協働空間を説明するための図である。図13Aに示すネットワーク構成は、図3Aに示すネットワーク構成と比較すると、外部VPN識別子「VLAN2020」によって識別される外部VPNが存在しない点が異なる。また、図13Bは、図3Bと同様、外部VPNが、仮想スイッチと仮想スイッチとの間に構築された場合である。図13A及び図13Bに示すネットワーク構成の場合、調査対象仮想スイッチデータベース121には、例えば図14に示すネットワーク情報が記述されることになる。図14は、その他の実施形態に係る調査対象仮想スイッチデータベースを説明するための図である。
すなわち、図13Aの場合、仮想マシンA−1と仮想マシンB−1との間に構築される、仮想スイッチA1と仮想スイッチB1とを通過する外部VPN「VLAN2000」が、同一の調査対象グループ識別子「1」で識別される同一のネットワークに属する。また、仮想マシンA−2と仮想マシンC−1との間に構築される、仮想スイッチA2と仮想スイッチC1とを通過する外部VPN「VLAN2010」が、同一の調査対象グループ識別子「2」で識別される同一のネットワークに属する。また、仮想マシンC−2と仮想マシンD−2との間に構築される、仮想スイッチC2と仮想スイッチD1とを通過する外部VPN「VLAN2030」が、同一の調査対象グループ識別子「3」で識別される同一のネットワークに属する。すなわち、仮想スイッチA1と仮想スイッチB1とが同一のネットワークに属することから、同一のネットワークに属するこれらの仮想スイッチに接続された仮想マシンA−1及び仮想マシンB−1も、同一のネットワークに属する。また、仮想スイッチA2と仮想スイッチC1とが同一のネットワークに属することから、同一のネットワークに属するこれらの仮想スイッチに接続された仮想マシンA−2及び仮想マシンC−1も、同一のネットワークに属する。また、仮想スイッチC2と仮想スイッチD1とが同一のネットワークに属することから、同一のネットワークに属するこれらの仮想スイッチに接続された仮想マシンC−2及び仮想マシンD−2も、同一のネットワークに属する。
また、図13Bの場合、仮想スイッチA1と仮想スイッチB1との間に構築される外部VPN「VLAN2000」が、同一の調査対象グループ識別子「1」で識別される同一のネットワークに属する。また、仮想スイッチA2と仮想スイッチC1との間に構築される外部VPN「VLAN2010」が、同一の調査対象グループ識別子「2」で識別される同一のネットワークに属する。また、仮想スイッチC2と仮想スイッチD1との間に構築される外部VPN「VLAN2030」が、同一の調査対象グループ識別子「3」で識別される同一のネットワークに属する。この結果、仮想スイッチA1と仮想スイッチB1とが同一のネットワークに属することから、同一のネットワークに属するこれらの仮想スイッチに接続された仮想マシンA−1及び仮想マシンB−1も、同一のネットワークに属する。また、仮想スイッチA2と仮想スイッチC1とが同一のネットワークに属することから、同一のネットワークに属するこれらの仮想スイッチに接続された仮想マシンA−2及び仮想マシンC−1も、同一のネットワークに属する。また、仮想スイッチC2と仮想スイッチD1とが同一のネットワークに属することから、同一のネットワークに属するこれらの仮想スイッチに接続された仮想マシンC−2及び仮想マシンD−2も、同一のネットワークに属する。
更に、図15A及び図15Bは、その他の実施形態における協働空間を説明するための図である。図15Aに示すネットワーク構成は、図3Aに示すネットワーク構成と比較すると、外部VPN識別子「VLAN2030」によって識別される外部VPNが存在しない点が異なる。また、図15Bは、図3Bと同様、外部VPNが、仮想スイッチと仮想スイッチとの間に構築された場合である。図15A及び図15Bに示すネットワーク構成の場合、調査対象仮想スイッチデータベース121には、例えば図16に示すネットワーク情報が記述されることになる。図16は、その他の実施形態に係る調査対象仮想スイッチデータベースを説明するための図である。
すなわち、図15Aの場合、仮想マシンA−1と仮想マシンB−1との間に構築される、仮想スイッチA1と仮想スイッチB1とを通過する外部VPN「VLAN2000」と、仮想マシンB−2と仮想マシンD−1との間に構築される、仮想スイッチB1と仮想スイッチD1とを通過する外部VPN「VLAN2020」とが、同一の調査対象グループ識別子「1」で識別される同一のネットワークに属する。また、仮想マシンA−2と仮想マシンC−1との間に構築される、仮想スイッチA2と仮想スイッチC1とを通過する外部VPN「VLAN2010」が、同一の調査対象グループ識別子「2」で識別される同一のネットワークに属する。すなわち、仮想スイッチA1、仮想スイッチB1及び仮想スイッチD1が同一のネットワークに属することから、同一のネットワークに属するこれらの仮想スイッチに接続された仮想マシンA−1、仮想マシンB−1、仮想マシンB−2、及び仮想マシンD−1も、同一のネットワークに属する。また、仮想スイッチA2と仮想スイッチC1とが同一のネットワークに属することから、同一のネットワークに属するこれらの仮想スイッチに接続された仮想マシンA−2及び仮想マシンC−1も、同一のネットワークに属する。
また、図15Bの場合、仮想スイッチA1と仮想スイッチB1との間に構築される外部VPN「VLAN2000」と、仮想スイッチB1と仮想スイッチD1との間に構築される外部VPN「VLAN2020」とが、同一の調査対象グループ識別子「1」で識別される同一のネットワークに属する。また、仮想スイッチA2と仮想スイッチC1との間に構築される外部VPN「VLAN2010」が、同一の調査対象グループ識別子「2」で識別される同一のネットワークに属する。この結果、仮想スイッチA1、仮想スイッチB1及び仮想スイッチD1が同一のネットワークに属することから、同一のネットワークに属するこれらの仮想スイッチに接続された仮想マシンA−1、仮想マシンB−1、仮想マシンB−2、及び仮想マシンD−1も、同一のネットワークに属する。また、仮想スイッチA2と仮想スイッチC1とが同一のネットワークに属することから、同一のネットワークに属するこれらの仮想スイッチに接続された仮想マシンA−2及び仮想マシンC−1も、同一のネットワークに属する。
上述した第2の実施形態においては、通信路識別子としてVLANの識別子を用いる例を説明したが、実施形態はこれに限られるものではなく、例えば、GRE(Generic Routing Encapsulation)の識別子など、2拠点間に構築された通信路を識別するものであれば、任意である。
また、図1を用いて示した割当装置10の構成や、図4を用いて示したネットワークオペレーションシステム100の構成は、機能概念的な構成を示すものであり、必ずしも、物理的な構成を示すものではない。すなわち、割当装置10やネットワークオペレーションシステム100の分散・統合の具体的形態は、図1や図4に図示した形態に限られず、その全部又は一部を、負荷や使用状況などに応じて、任意の単位で、機能的又は物理的に分散・統合して構成することができる。
例えば、図4に示した、調査対象仮想スイッチデータベース121、使用中MACアドレスデータベース122、重複MACアドレスデータベース123、再割当MACアドレスプリフィックスリスト124、再割当MACアドレスデータベース125は、その全部又は一部を、分散・統合して構成することができる。また、各データベースやリストに記憶する情報も、上述した実施形態に限られるものではなく、適宜、特に必要な情報のみに集約したり、更に他の情報を追加してもよい。例えば、使用中MACアドレスデータベース122(図8を参照)は、クラウド拠点識別子や仮想スイッチ識別子を記憶しない構成とすることもできる。また、例えば、重複MACアドレスデータベース123(図10を参照)は、利用数が「1」のエントリを記憶しない構成とすることもできる。また、上述した実施形態において、図5、図7、及び図9を用いて説明した処理手順は、任意に変更することができる。
[プログラム]
また、上述した実施形態に係る割当装置10又はネットワークオペレーションシステム100が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上述した実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上述の実施形態と同様の処理を実現してもよい。以下に、図1に示した割当装置10又は図4に示したネットワークオペレーションシステム100と同様の機能を実現するプログラムを実行するコンピュータの一例を説明する。
図17は、MACアドレスを割り当てるコンピュータを示す図である。図17に示すように、コンピュータは、例えば、メモリと、CPU(Central Processing Unit)と、ハードディスクドライブインタフェースと、ディスクドライブインタフェースと、シリアルポートインタフェースと、ビデオアダプタと、ネットワークインタフェースとを有し、これらの各部はバスによって接続される。
メモリは、図17に示すように、ROM(Read Only Memory)及びRAM(Random Access Memory)を含む。ROMは、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェースは、図17に示すように、ハードディスクドライブに接続される。ディスクドライブインタフェースは、図17に示すように、ディスクドライブに接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブに挿入される。シリアルポートインタフェースは、図17に示すように、例えばマウス、キーボードに接続される。ビデオアダプタは、図17に示すように、例えばディスプレイに接続される。
ここで、図17に示すように、ハードディスクドライブは、例えば、OS(Operating System)、アプリケーションプログラム、プログラムモジュール、プログラムデータを記憶する。すなわち、上述のプログラムは、コンピュータによって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブに記憶される。例えば、図1に示した収集部11と同様の情報処理を実行する手順と、分類部12と同様の情報処理を実行する手順と、判定部13と同様の情報処理を実行する手順と、割当部14と同様の情報処理を実行する手順と、が記述されたプログラムモジュールが、ハードディスクドライブに記憶される。
また、上述した実施形態で説明した割当装置10又はネットワークオペレーションシステム100が保持する各種データは、プログラムデータとして、例えばメモリやハードディスクドライブに記憶される。そして、CPUが、メモリやハードディスクドライブに記憶されたプログラムモジュールやプログラムデータを必要に応じてRAMに読み出し、各手順を実行する。
なお、上述のプログラムに係るプログラムモジュールやプログラムデータは、ハードディスクドライブに記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブなどを介してCPUによって読み出されてもよい。あるいは、上述のプログラムに係るプログラムモジュールやプログラムデータは、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)など)を介して接続された他のコンピュータに記憶され、ネットワークインタフェースを介してCPUによって読み出されてもよい。