(57)【要約】【課題】仮想マシン環境におけるネットワークの構築に用いられるコマンドの作成を自動化するシステム、方法、及びプログラムを提供する。【解決手段】本発明は、コマンド作成機能を持つネットワーク構築端末と、仮想マシンが動作する仮想マシン環境を提供する少なくとも１つのサーバ装置と、を備えるシステムにおいて、前記ネットワーク構築端末は、ネットワーク設計情報と前記仮想マシン環境に関する情報とに基づいて、前記仮想マシン環境におけるネットワークの構築に用いられる少なくとも１つのコマンドを自動的に作成することを特徴とする。【選択図】図１
2020150317.tif 000002
【特許請求の範囲】
【請求項１】
コマンド作成機能を持つネットワーク構築端末と、仮想マシンが動作する仮想マシン環境を提供する少なくとも１つのサーバ装置と、を備えるシステムにおいて、
前記ネットワーク構築端末は、ネットワーク設計情報と前記仮想マシン環境に関する情報とに基づいて、前記仮想マシン環境におけるネットワークの構築に用いられる少なくとも１つのコマンドを自動的に作成することを特徴とする、システム。
【請求項２】
請求項１に記載のシステムにおいて、前記ネットワーク設計情報には、そのネットワークを構成する各ノードに関する情報として、少なくとも、アドレスに関する情報、ルーティングに関する情報、サービスに関する情報、アクセスコントロールに関する情報、仮想マシンに関するメタ情報、が含まれることを特徴とする、システム。
【請求項３】
請求項１又は２に記載のシステムにおいて、前記仮想マシン環境に関する情報には、少なくとも、その仮想マシン環境でプールしている仮想マシンのリスト、前記仮想マシンのネットワークインターフェースに関する情報、前記仮想マシンのＯＳに応じたコマンドのテンプレート、が含まれることを特徴とする、システム。
【請求項４】
請求項１乃至３のいずれか一項に記載のシステムにおいて、前記少なくとも１つのコマンドは、前記仮想マシン環境上でプールしている仮想マシンごとに用意されるコマンドリストであり、そのコマンドリストの中には、少なくとも、アドレス設定に関するコマンド、ルーティングの設定に関するコマンド、サービスの設定に関するコマンド、アクセスコントロールに関するコマンド、が含まれることを特徴とする、システム。
【請求項５】
ネットワーク設計情報と仮想マシン環境に関する情報とに基づいて、前記仮想マシン環境におけるネットワークの構築に用いられる少なくとも１つのコマンドを自動的に作成し、
前記少なくとも１つのコマンドを実行し、前記仮想マシン環境上において前記ネットワークを構築することを特徴とする、方法。
【請求項６】
請求項５に記載の方法において、前記少なくとも１つのコマンドは、前記仮想マシン環境上でプールしている仮想マシンごとに用意されるコマンドリストであり、そのコマンドリストの中には、少なくとも、アドレス設定に関するコマンド、ルーティングの設定に関するコマンド、サービスの設定に関するコマンド、アクセスコントロールに関するコマンド、が含まれることを特徴とする、方法。
【請求項７】
コンピュータに、
ネットワーク設計情報と仮想マシン環境に関する情報とを取得するステップと、
前記ネットワーク設計情報と前記仮想マシン環境に関する情報とに基づいて、前記仮想マシン環境におけるネットワークの構築に用いられる少なくとも１つのコマンドを作成するステップと、
前記少なくとも１つのコマンドを出力するステップと、
を実行させるためのプログラム。
【請求項８】
請求項７に記載のプログラムにおいて、前記少なくとも１つのコマンドを作成するステップは、前記仮想マシン環境に関する情報から、少なくとも前記仮想マシン環境でプールしている仮想マシンのＯＳと、前記仮想マシンのＯＳに応じたコマンドのテンプレートとを読み出し、前記ネットワーク設計情報から、少なくとも前記ネットワークのノードに設定する情報を読み出し、前記コマンドのテンプレートのパラメータに前記ノードに設定する情報を適用することを含む、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシステム、方法、及びプログラムに関し、特に、仮想マシン環境上でのネットワーク構築を支援するシステム、方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、様々な検証作業に必要なサーバ環境を、サーバやネットワーク（ＮＷ）の仮想化技術を用いて構築することが行われている。そこでは、サーバ装置群やネットワーク装置群の物理的な装置群をそろえなくても、サーバやネットワークの仮想化技術によって環境を疑似的に実現することが可能となる「ハイパーバイザ」と呼ばれるＯＳ（Operating System）が利用されている。上記のようなハイパーバイザＯＳを具備し、仮想的なサーバ装置やネットワーク装置を実現する装置群を「仮想マシン環境」と呼称する。
【０００３】
仮想マシン環境の利用は、物理的な装置の台数の減少や購入費用の減少、設置スペースの減少など経済的なメリットがある。また、仮想マシン環境上で必要なサーバの仮想マシン（ＶＭ：Virtual Machine）を一度構築してしまえば、それを再利用することにより再構築の手間を低減することができるなどのメリットもある。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】蔭山佳輝・河込和宏・原嶋秀次、「コンピュータの仮想化技術」、IEEJ Journal、Vol.133、No.10、（2013年）、pp.692-695
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数のサーバ装置やネットワーク装置からなるネットワークの構築が、物理装置から仮想装置に変わることにより、利便性は高くなるが、ネットワークの構築に際して、各サーバのアドレス設定やサービス設定、サーバ間の配線などに関する煩雑な作業は同様に発生する。
【０００６】
また、ネットワーク（ＮＷ）設計者は、仮想マシン環境で使用可能なＯＳの種類など使用する仮想マシン環境の構成を意識して構築に必要なコマンドのリストを用意する必要がある。すなわち、ＮＷ設計者は、仮想マシン環境の知識、コマンド操作の高度なスキルが必要といった課題があった。
【０００７】
また、構築の作業者がサーバＶＭで動作するＯＳのコマンド操作に不慣れな場合には、設定もれや設定誤りなどの操作ミスもありうる。
【０００８】
従って、上記のような問題点に鑑みてなされた本発明の目的は、仮想マシン環境におけるネットワークの構築に用いられるコマンドの作成を自動化し、仮想マシン環境上で複数のサーバ装置やネットワーク装置からなるネットワークを容易に構築することができる、システム、方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために本発明に係るシステムは、コマンド作成機能を持つネットワーク構築端末と、仮想マシンが動作する仮想マシン環境を提供する少なくとも１つのサーバ装置と、を備えるシステムにおいて、前記ネットワーク構築端末は、ネットワーク設計情報と前記仮想マシン環境に関する情報とに基づいて、前記仮想マシン環境におけるネットワークの構築に用いられる少なくとも１つのコマンドを自動的に作成することを特徴とする。
【００１０】
また、前記システムは、前記ネットワーク設計情報には、そのネットワークを構成する各ノードに関する情報として、少なくとも、アドレスに関する情報、ルーティングに関する情報、サービスに関する情報、アクセスコントロールに関する情報、仮想マシンに関するメタ情報、が含まれることが望ましい。
【００１１】
また、前記システムは、前記仮想マシン環境に関する情報には、少なくとも、その仮想マシン環境でプールしている仮想マシンのリスト、前記仮想マシンのネットワークインターフェースに関する情報、前記仮想マシンのＯＳに応じたコマンドのテンプレート、が含まれることが望ましい。
【００１２】
また、前記システムは、前記少なくとも１つのコマンドが、前記仮想マシン環境上でプールしている仮想マシンごとに用意されるコマンドリストであり、そのコマンドリストの中には、少なくとも、アドレス設定に関するコマンド、ルーティングの設定に関するコマンド、サービスの設定に関するコマンド、アクセスコントロールに関するコマンド、が含まれることが望ましい。
【００１３】
上記課題を解決するために本発明に係る方法は、ネットワーク設計情報と仮想マシン環境に関する情報とに基づいて、前記仮想マシン環境におけるネットワークの構築に用いられる少なくとも１つのコマンドを自動的に作成し、前記少なくとも１つのコマンドを実行し、前記仮想マシン環境上において前記ネットワークを構築することを特徴とする。
【００１４】
また、前記方法は、前記少なくとも１つのコマンドが、前記仮想マシン環境上でプールしている仮想マシンごとに用意されるコマンドリストであり、そのコマンドリストの中には、少なくとも、アドレス設定に関するコマンド、ルーティングの設定に関するコマンド、サービスの設定に関するコマンド、アクセスコントロールに関するコマンド、が含まれることが望ましい。
【００１５】
上記課題を解決するために本発明に係るプログラムは、コンピュータに、ネットワーク設計情報と仮想マシン環境に関する情報とを取得するステップと、前記ネットワーク設計情報と前記仮想マシン環境に関する情報とに基づいて、前記仮想マシン環境におけるネットワークの構築に用いられる少なくとも１つのコマンドを作成するステップと、前記少なくとも１つのコマンドを出力するステップと、を実行させることを特徴とする。
【００１６】
また、前記プログラムは、前記少なくとも１つのコマンドを作成するステップが、前記仮想マシン環境に関する情報から、少なくとも前記仮想マシン環境でプールしている仮想マシンのＯＳと、前記仮想マシンのＯＳに応じたコマンドのテンプレートとを読み出し、前記ネットワーク設計情報から、少なくとも前記ネットワークのノードに設定する情報を読み出し、前記コマンドのテンプレートのパラメータに前記ノードに設定する情報を適用することを含むことが望ましい。
【発明の効果】
【００１７】
本発明におけるシステム、方法、及びプログラムによれば、仮想マシン環境におけるネットワークの構築に用いられるコマンドの作成を自動化し、仮想マシン環境上で複数のサーバ装置やネットワーク装置からなるネットワークを容易に構築することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明のシステムの全体構成の例を示す図である。
【図２】本発明のシステムのメッセージシーケンスチャートの例を示す図である。
【図３】本発明の利用イメージを説明する図である。
【図４】異なる仮想マシン環境でネットワークの構築を行う例を示す図である。
【図５】各仮想マシン（ＶＭ）間の配線イメージを示す図である。
【図６】構築予定のネットワークのイメージの例を示す図である。
【図７】ネットワーク設定を行うコマンドの作り方（その１）を説明する図である。
【図８】ネットワーク設定を行うコマンドの作り方（その２）を説明する図である。
【図９】ネットワーク設定を行うコマンドの作り方（その３）を説明する図である。
【図１０】コマンド作成機能の動作を説明するフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態について図面を用いて説明する。なお、本明細書では、仮想マシン環境上で構築される複数のサーバ装置やネットワーク装置からなるネットワークを「疑似ＮＷ」と呼ぶことがある。
【００２０】
（実施の形態）
図１に、本発明のシステムの全体構成の例を示す。本発明のシステムは、ネットワーク構築端末１と仮想マシン環境２とから構成され、さらに、両者の相互通信のためのネットワーク３を備えることが望ましい。
【００２１】
ネットワーク構築端末１は、後述する「コマンド作成機能」を具備した端末機器であって、ネットワーク設計情報と仮想マシン環境に関する情報とに基づいて、仮想マシン環境におけるネットワークの構築に用いられる少なくとも１つのコマンドを自動的に作成する。
【００２２】
仮想マシン環境２は、仮想マシンが動作する環境であり、複数の仮想マシンを稼働させるのに適切な量のメモリ（主記憶装置）、ＨＤＤ（Hard Disk Drive）等からなる補助記憶装置、ＣＰＵ（Central Processing Unit）などのリソースを具備し、ハイパーバイザＯＳを搭載したサーバ装置（又は、サーバ装置群）で実現される。仮想マシン環境２には、ネットワークの各ノードとなる仮想マシン（ＶＭ１，ＶＭ２，・・・ＶＭｎ）がプールされている。なお、ハイパーバイザＯＳは、例えば、KVM，VMware vSphere，MS Hyper-V などを利用することができる。
【００２３】
ネットワーク３は、ネットワーク構築端末１と仮想マシン環境２とを接続する通信環境であり、特定のハードウエアに限定されず、任意の通信手段により実現することができる。ネットワーク構築端末１と仮想マシン環境２及び仮想マシン環境２上で稼働する仮想マシン（ＶＭ）群は、ネットワーク３を介して相互に通信できることとする。
【００２４】
図２は、本発明のシステムのメッセージシーケンスチャートの例である。本発明のシステムにより、仮想マシン環境上でネットワークを構築する全体の流れを、図２のメッセージシーケンスチャートで説明する。
【００２５】
ステップ１（Ｓ１）：コマンド作成
まず、ネットワーク構築端末１はコマンド作成機能により、仮想マシン環境２上で稼働する各ノードごとのコマンド（コマンドリスト）を作成する。後述のとおり、コマンドリストは、入力された「仮想マシン環境情報」（仮想マシン環境に関する情報）と「ネットワーク設計情報」とに基づいて作成する。
【００２６】
ステップ２（Ｓ２）：コマンド送信
ネットワーク構築端末１は仮想マシン環境２上の各ノードに対して、作成したコマンド（コマンドリスト）を送信する。なお、送信手段はコンソールなどのシリアル接続や、Telent/SSH などの既知の手段を利用することができる。
【００２７】
ステップ３（Ｓ３）：コマンド実行
仮想マシン環境２上の各ノード（ＶＭ）で、ネットワーク構築端末１から受信したコマンドリストを実行する。こうして、仮想マシン環境２上で必要な疑似ＮＷを構築する。
【００２８】
なお、この各ステップＳ１〜Ｓ３を一連の動作として実行し、「仮想マシン環境情報」と「ネットワーク設計情報」の入力から、仮想マシン環境２上でのネットワーク構築までを自動的に行うこともできる。
【００２９】
図３は、本発明の利用イメージを説明する図である。構築予定の「ネットワーク（ＮＷ）設計情報」と「仮想マシン環境情報」とに基づいて、ネットワーク構築端末１によりネットワークの構築に用いられるコマンドリストを自動的に作成し、さらに仮想マシン環境２においてそのコマンドリストを実行して、必要なネットワークを構築する。
【００３０】
まず、仮想マシン環境２側から、ネットワーク構築端末１に対して、「仮想マシン環境情報」（仮想マシン環境に関する情報）が提供される。この「仮想マシン環境情報」は、それぞれの仮想マシン環境２に依存する情報であり、通常、仮想マシン環境（＝ハイパーバイザＯＳの稼働するサーバ装置（群））２を運用する運用者等が作成する。仮想マシン環境に関する情報には、例えば、ＶＭリスト、ＮＷインターフェース対応表、コマンドテンプレート表等が含まれる。
【００３１】
また、ネットワーク設計者等は、「ネットワーク設計情報」を作成する。この「ネットワーク設計情報」は、構築予定のネットワーク（ＮＷ）に依存する情報であり、仮想マシン環境とは独立して作成することができる。ネットワーク設計情報には、例えば、アドレス表、ルーティング表、サービス表、アクセスコントロール表、メタ情報表等が含まれる。
【００３２】
ネットワーク構築端末１は、コマンド作成機能を有する。すなわち、入力された「仮想マシン環境情報」と「ネットワーク設計情報」とに基づいて、ネットワークの構築に必要なコマンドリストを自動的に作成し、出力する。このコマンドリストは、仮想マシン環境２における各仮想マシン（ＶＭ１，ＶＭ２，・・・ＶＭｎ）にそれぞれ対応して作成される。ネットワークの構築に必要なコマンドとしては、例えば、ＩＰアドレス設定、ルーティング設定、サービス設定、アクセスコントロール設定等を行う各コマンドを作成する。
【００３３】
ネットワーク構築端末１で作成された各コマンドリストは、仮想マシン環境における対応する仮想マシン（ＶＭ１，ＶＭ２，・・・ＶＭｎ）でそれぞれ実行される。このコマンドの実行により、仮想マシン環境にプールされるＶＭ群のそれぞれは、構築予定のネットワークにおけるノードとして機能するようになる。こうして、仮想マシン環境２上で、ネットワークが自動構築される。
【００３４】
このように、本発明によれば、仮想マシン環境におけるネットワークの構築に用いられるコマンドの作成を自動化し、仮想マシン環境上で複数のサーバ装置やネットワーク装置からなるネットワークを容易に構築することができ、ネットワーク構築に関するコストを低減できる。さらに、仮想マシン環境におけるネットワーク構築までを自動化できる。
【００３５】
さらに本発明によれば、仮想マシン環境の構成内容が異なっていたとしても、それぞれの構成に応じた「仮想マシン環境情報」を用意できれば、同様のネットワークを構築することができる。
【００３６】
図４は、異なる仮想マシン環境でネットワークの構築を行う例を示す図である。
【００３７】
まず、仮想マシン環境Ｘでネットワークの構築を行う場合について説明する。この仮想マシン環境Ｘは、例えば、CentOS、Cisco IOS、VMware ESXi等のＯＳに基づく環境設計がなされているとする。仮想マシン環境の運用者から、この仮想マシン環境Ｘに応じた「仮想マシン環境情報Ｘ」を取得し、ネットワーク構築端末１の一つの入力とする。他方、ネットワーク設計者は、図３で説明したとおり、「ネットワーク設計情報」を作成し、ネットワーク構築端末１のもう一つの入力とする。
【００３８】
ネットワーク構築端末１は、コマンド作成機能により、入力された「仮想マシン環境情報Ｘ」と「ネットワーク設計情報」とに基づいて、ネットワークの構築に必要な「コマンドリストＸ」を自動的に作成する。このコマンドリストＸを仮想マシン環境Ｘの各ＶＭで実行することにより、ネットワークＮＷｘを構築することができる。
【００３９】
次に、仮想マシン環境Ｙでネットワークの構築を行う場合について説明する。この仮想マシン環境Ｙは、例えば、ubuntsu、Palo Alto VMSeries、KVM/OpenStack等のＯＳに基づく環境設計がなされているとする。仮想マシン環境の運用者から、この仮想マシン環境Ｙに応じた「仮想マシン環境情報Ｙ」を取得し、ネットワーク構築端末１の一つの入力とする。他方、ネットワーク設計者は、仮想マシン環境Ｘに対して作成したものと同じ「ネットワーク設計情報」を、ネットワーク構築端末１のもう一つの入力とする。
【００４０】
ネットワーク構築端末１は、コマンド作成機能により、入力された「仮想マシン環境情報Ｙ」と「ネットワーク設計情報」とに基づいて、ネットワークの構築に必要な「コマンドリストＹ」を自動的に作成する。このコマンドリストＹを仮想マシン環境Ｙの各ＶＭで実行することにより、ネットワークＮＷｘと同等の構成を有するネットワークＮＷｙを構築することができる。
【００４１】
すなわち、本発明によれば、それぞれ異なる仮想マシン環境上で、複数のサーバ装置やネットワーク装置からなる同等のネットワークの構築を自動的に行うことができる。また、それぞれの仮想マシン環境に対応した作業を省くことができ、構築に関するコストを低減できる。
【００４２】
ネットワーク設計者は構築しようとするネットワークのトポロジー的な設計にのみ専念することができ、仮想マシン環境の構成を意識することなく必要なネットワークを構築することができる。
【００４３】
また、自動的にネットワークの構築がなされるため、作業者による各ＶＭのＯＳの操作ミスを回避することにもつながる。
【００４４】
次に、コマンド作成に利用する「仮想マシン環境情報」と「ネットワーク設計情報」について説明する。
【００４５】
（１）仮想マシン環境情報
まず、本発明で用いる「仮想マシン環境情報」について説明する。「仮想マシン環境情報」とは、ネットワークの構築先となる仮想マシン環境に関する情報であり、仮想マシン環境に依存する情報である（「仮想マシン環境に関する情報」ということもある。）。通常、仮想マシン環境の運用者等から提供される。「仮想マシン環境情報」は、以下の３つの構成要素を備えている。
【００４６】
（１−１）ＶＭリスト：仮想マシン環境上の各ＶＭに割り当てるノードＩＤとインストールされているＯＳの種類・バージョンのリスト
（１−２）ＮＷインターフェース対応表：各ノードの「ＮＷインターフェース」を配線している仮想スイッチの対応表
（１−３）コマンドテンプレート表：各ノードのＶＭ上のＯＳに対して、疑似ＮＷ構築のための操作を行わせる「コマンド」を生成するためのテンプレートの一覧表
【００４７】
なお、これらの構成要素は計算機を用いた情報処理で広く使われる、XML（eXtensible Markup Language）、JSON（JavaScript Object Notation）、CSV（Comma Separated Values）、あるいは市販の表計算ソフトなどに対応したファイル形式（データ形式）で表現され、電子ファイルとして実施されるものとする。
【００４８】
また、これらの構成要素は、以下では説明の都合上、互いに分離した形としているが、実用上は、これらを一つのファイルに結合させたファイル形式として実現してもよい。以下、各構成要素について説明する。
【００４９】
（１−１）ＶＭリスト
「ＶＭリスト」は、仮想マシン環境にプールされる各仮想マシン（ＶＭ）に割り当てられるノードＩＤと、インストールされているＯＳの種類・バージョンの対応関係を特定するリストである。
【００５０】
表１に、ＶＭリストのデータ構成の例を示す。ＶＭリストは、各仮想マシン（ＶＭ）のノードＩＤ（Ｎ０，Ｎ１，・・・）、ＯＳ種別（CentOS，Cisco IOS等、なお、ＯＳのディストリビューションも考慮する）、及びそのバージョンをまとめた表である。ＶＭリストに基づいて、ノードＩＤからその仮想マシンのＯＳを知ることができる。
【００５１】
【表１】
2020150317.tif 000003
【００５２】
（１−２）ＮＷインターフェース対応表
「ＮＷインターフェース対応表」は、使用する仮想マシン環境において、各仮想マシン（ＶＭ）の「ネットワーク（ＮＷ）インターフェース」と、それを接続・配線する仮想スイッチ（ＳＷ）との対応関係を特定する表である。なお、「ＮＷインターフェース対応表」の利用にあたっては、次のような前提事項をおく。
（ｉ）各仮想マシン（ＶＭ）をすべての仮想スイッチ（ＳＷ）と接続させておくこと
（ii）各仮想マシン（ＶＭ）のＯＳの初期設定では、ＶＭが持つＮＷインターフェースは全て無効化しておき、最初は通信できない状態となること
【００５３】
表２に、ＮＷインターフェース対応表のデータ構成の例を示す。ＮＷインターフェース対応表は、各仮想マシン（ＶＭ）が各仮想スイッチに対してどのＮＷインターフェースを使うかをまとめたものである。表２の例では、仮想マシン（ノードＩＤ：Ｎ０）は、仮想スイッチＳＷ０とはＮＷインターフェースeth0、ＳＷ１とはeth1、ＳＷ２とはeth2・・・で接続している。この各仮想マシン（ＶＭ）のＮＷインターフェースと仮想スイッチＳＷとの接続関係、すなわち、各仮想マシン（ＶＭ）間の配線イメージを図５に示す。
【００５４】
このＮＷインターフェース対応表（＝図５の配線イメージ）を用いることにより、例えば仮想マシン（ノードＩＤ：Ｎ１）と仮想マシン（ノードＩＤ：Ｎ３）とを、仮想スイッチＳＷ１を介して接続するならば、Ｎ１はＮＷインターフェース lan1、Ｎ３は ge0/1 をそれぞれ有効化すればよいことが分かる。
【００５５】
このように、各仮想マシン（ＶＭ）と仮想スイッチ（ＳＷ）を予め接続し、必要なインターフェースを有効化する構成とすることで、任意のネットワーク設計（ネットワーク構成）を仮想マシン環境に反映することができる。
【００５６】
【表２】
2020150317.tif 000004
【００５７】
（１−３）コマンドテンプレート表
「コマンドテンプレート表」は、仮想マシン環境にプールされている仮想マシン（ＶＭ）上のＯＳに対して、ネットワーク構築のための操作を行わせる「コマンド」を生成するためのテンプレートのリスト（表）である。
【００５８】
表３に、マンドテンプレート表のデータ構成の例を示す。コマンドテンプレート表は、具体的にはネットワーク（疑似ＮＷ）構築のための操作ごとに、さらにＯＳ種別（ＯＳのディストリビューションの違いも考慮する）・バージョンごとに、実施すべきコマンドとそのパラメータとなる項目をまとめた表である。コマンドテンプレート表に基づいて、実行すべき操作と、対象となるＶＭのＯＳ種別等から、コマンドのテンプレートを得ることができる。
【００５９】
【表３】
2020150317.tif 000005
【００６０】
（２）ネットワーク（ＮＷ）設計情報
次に、本発明で用いる「ネットワーク（ＮＷ）設計情報」について説明する。「ネットワーク（ＮＷ）設計情報」とは、構築対象となるネットワークの構成に関する情報であり、ネットワーク設計者等により作成される。仮想マシン環境に依存する情報は含まれない。「ネットワーク（ＮＷ）設計情報」は、以下の５つの構成要素を備えている。
【００６１】
（２−１）アドレス表：各ノードのＮＷインターフェースで使用するＩＰアドレスの情報をまとめた表
（２−２）ルーティング表：各ノードで使用するルーティングに関する情報をまとめた表
（２−３）サービス表：各ノードで動作させるサービスの待ち受けポート番号などの情報をまとめた表
（２−４）アクセスコントロール表：ルータやファイアウォールとなるノードにおけるアクセスコントロールに関する情報をまとめた表
（２−５）メタ情報表：各ノードに関する各種のメタ情報（例えば、そのノードの用途に関する情報等）をまとめた表
【００６２】
なお、これらの構成要素は計算機を用いた情報処理で広く使われる、XML（eXtensible Markup Language）、JSON（JavaScript Object Notation）、CSV（Comma Separated Values）、あるいは市販の表計算ソフトなどに対応したファイル形式（データ形式）で表現され、電子ファイルとして実施されるものとする。
【００６３】
また、これらの構成要素は、以下では説明の都合上、互いに分離した形としているが、実用上は複数の構成要素を合わせた（一つのファイルに結合させた）ファイル形式として実現してもよい。例えば、アドレス表とルーティング表はネットワークの設定に関するものなのでデータ形式上まとめてもよい。ただし、ファイルからそれぞれの要素を抜き出せることが必要である。
【００６４】
以下、各構成要素について説明する。以下の説明においては、図６に示す構築予定のネットワークのイメージを例として用いる。すなわち、Ｎ０（時刻サーバ）、Ｎ１（Ｗｅｂサーバ）、Ｎ２（Ｗｅｂサーバ）、Ｎ３（ファイアウォール）、Ｎ４（データベースサーバ）、Ｎ５（ユーザ端末）、Ｎ６（ユーザ端末）の６個のノードを有し、ＳＷ０〜ＳＷ２の３個のスイッチにより接続されたネットワークを構築するものとして、それぞれのデータ形式を説明とする。なお、図６は一例であり、本発明のファイル形式（データ形式）で任意のネットワークを効率的に記述することができる。
【００６５】
（２−１）アドレス表
「アドレス表」は、疑似ＮＷ（仮想マシン環境上で構築されるネットワーク）を構成する各ノードのＮＷインターフェースに割り当てるアドレス情報をまとめた表である。なお、前述のとおり、ネットワークのノードとノードの間は、「仮想スイッチ」を介して接続することを前提とする。
【００６６】
表４に、アドレス表のデータ構造の例を示す。アドレス表には、各ノードごとに、各仮想スイッチ間との接続に使用するアドレス情報として、以下の３項目の組をそれぞれ記述する。
＜アドレスファミリ（IPv4 か IPv6 かなど）、ＩＰアドレス、ネットマスク＞
【００６７】
表４の例では、ノードＮ１は仮想スイッチＳＷ０，ＳＷ１と接続しており、ノードＮ１において仮想スイッチＳＷ０に接続するＮＷインターフェースのアドレス情報は、＜アドレスファミリIPv4、ＩＰアドレス192.168.10.11、ネットマスク255.255.255.0＞となることを示している。
【００６８】
【表４】
2020150317.tif 000006
【００６９】
（２−２）ルーティング表
「ルーティング表」は、疑似ＮＷを構成する各ノードのルーティング（デフォルトゲートウェイ、スタティックルーティング等）に関する情報をまとめた表である。
【００７０】
表５に、ルーティング表のデータ構造の例を示す。ルーティング表には、各ノードごとに、各仮想スイッチ間との接続に関連するルーティングの情報として、以下の３項目の組をそれぞれ記述する。
＜接続先ＩＰアドレス、接続先ネットマスク、ゲートウェイ＞
（ここで、「ゲートウェイ」の項目には、接続先に送信する際に経由すべきゲートウェイのＩＰアドレスを記述する。）
【００７１】
表５の例では、ノードＮ０において仮想スイッチＳＷ０に接続するＮＷインターフェースのルーティング情報は、＜接続先ＩＰアドレス192.168.30.0、接続先ネットマスク255.255.255.0、ゲートウェイ192.168.10.13＞であることを示している。また、ノードＮ５，Ｎ６の仮想スイッチＳＷ１に接続するＮＷインターフェースには、デフォルトゲートウェイの設定がなされ、接続先ＩＰアドレスと接続先ネットマスクは省略されデフォルトゲートウェイが192.168.30.33であることを示している。
【００７２】
【表５】
2020150317.tif 000007
【００７３】
（２−３）サービス表
「サービス表」は、疑似ＮＷを構成する各ノードが提供するサービス機能に関する情報をまとめた表である。サービス機能の例としては、例えばＨＴＴＰ（HyperText Transfer Protocol）やＦＴＰ（File Transfer Protocol）などがある。
【００７４】
表６に、サービス表のデータ構造の例を示す。サービス表は、各ノードごとに、各仮想スイッチ間との接続を使って他のノードに提供されるサービス機能の情報として、以下の３項目の組のリストをそれぞれ記述する。
＜サービス名、使用するポート番号のリスト、サービス設定情報（各サービス機能に応じて必要となる設定情報）＞
【００７５】
表６の例では、ノードＮ１において仮想スイッチＳＷ０との接続を介して提供されるサービス機能の情報は、サービス名httpd、使用するポート番号のリストtcp/80 であることを示している。
【００７６】
【表６】
2020150317.tif 000008
【００７７】
（２−４）アクセスコントロール表
「アクセスコントロール表」は、疑似ＮＷを構成する各ノードがルータやファイアウォールなどの場合に使われる情報であり、各ノードのアクセスコントロールに関する情報をまとめた表である。
【００７８】
表７に、アクセスコントロール表のデータ構造の例を示す。アクセスコントロール表は、各ノードごとに接続された仮想スイッチからの通過を許可する（あるいは遮断する）パケットのルールとして、以下の７項目の組のリストをそれぞれ記述する。
＜アドレスファミリ、送信元アドレス、送信元ネットマスク、送信先アドレス、送信先ネットマスク、送信先ポート番号、アクション（許可／遮断）＞
【００７９】
表７の例では、各セルのルールは上から下に順に評価されるものとする。ノードＮ３のＳＷ２向けのルールの場合、最後の<*,*,*,*,*,*,遮断>はすべてのパケットを拒否するルールである。したがって、一行目のルールに該当するパケット以外はすべて遮断されることを示す。
【００８０】
【表７】
2020150317.tif 000009
【００８１】
（２−５）メタ情報表
「メタ情報表」は、疑似ＮＷを構成する各ノードに関する付加的な情報をまとめた表である。例えば、そのノードの用途、管理者のロール名やユーザ名、メモリサイズやＨＤＤサイズなどのリソースに関する仕様、などが考えられる。
【００８２】
表８に、メタ情報表のデータ構造の例を示す。メタ情報表は、各ノードごとに必要なメタ情報を記述する。構築予定のＮＷの性質や運用上の必要性に応じてメタ情報の項目は用意されるものとする。表８の例では、各ノードの用途と管理者の情報が示されている。ノードの用途に関する情報としては、例えば、運用端末、ユーザ端末、メールサーバ、ＤＮＳサーバ等、を設定できる。
【００８３】
【表８】
2020150317.tif 000010
【００８４】
このように、ネットワーク設計を反映するための仮想スイッチ（ＳＷ）と仮想マシン（ＶＭ）の対応表で、ネットワーク設計、インターフェースアドレス、ルーチング情報等を、一元的に管理することが可能となる。
【００８５】
本発明におけるノードと仮想マシン（ＶＭ）との対応について説明する。本実施形態では、各ノードとＶＭとの対応はノードＩＤを使用している。したがって、ＶＭリストの中でＶＭを識別するのにつかわれるノードＩＤと、ＮＷ設計者が作成するＮＷ設計情報の中で使われるノードＩＤが対応している前提となる。また、異なる仮想マシン環境においてネットワークを構築する場合は、それぞれのＶＭリスト中のノードＩＤをそろえる必要がある。なお、異なる仮想マシン環境に適用する場合は、それぞれのノードＩＤに応じて対応表で変換することとしても良い。
【００８６】
仮想マシン環境情報とネットワーク設計情報とから、コマンドを自動的に作成する手順について説明する。図７乃至図９は、ネットワーク設定を行うコマンドの作り方（その１〜３）を説明する図であり、ノードＩＤ：Ｎ０の仮想マシン（ＶＭ）のアドレス設定コマンドを例として説明する。
【００８７】
図７に示すように、仮想マシン環境情報のＶＭリストを参照して、ノードＩＤ：Ｎ０のＯＳ種別とバージョンを取得する。図７の例では、ノードＮ０のＯＳはＣｅｎｔＯＳでバージョン６であることが読み取れる。
【００８８】
次に、図８に示すように、ノードＮ０において仮想スイッチＳＷ０と接続するために設定するアドレス情報を取得する。具体的には、仮想マシン環境情報のＮＷインターフェース対応表を参照して、ノードＮ０が仮想スイッチＳＷ０と接続する際に有効化するＮＷインターフェースを得る。また、ＮＷ設計情報のアドレス表から、ノードＮ０の仮想スイッチＳＷ０との接続に使用するアドレス情報（アドレスファミリ、ＩＰアドレス、ネットマスク）を得る。図８の例では、設定するアドレス情報として、ＮＷインターフェースがeth0、IPv4アドレス＝192.168.10.10、ネットマスク＝であることが読み取れる。
【００８９】
そして、図９に示すように、仮想マシン環境情報のコマンドテンプレート表を参照する。既に、ノードＮ０のＯＳはＣｅｎｔＯＳでバージョン６であることが得られているから、IPv4アドレスの設定コマンドとして、ＯＳ識別・バージョン（ＣｅｎｔＯＳ ６）の一致するコマンドテンプレート「ifconfig ＜ＮＷインターフェース＞＜IPv4アドレス＞＜IPv4ネットマスク＞」を得る。これに、図８で取得した設定値を代入して、ノードＮ０のアドレス設定コマンドを、次のように自動的に作成できる。
ifconfig eth0 192.168.10.10 255.255.255.0
【００９０】
このように、各管理表の同じマスの項目を対応させ、管理表のパラメータをそのまま埋め込めばコマンド生成可能とすることで、コマンド生成の自動化（コンピュータによる自動作成）を可能とした。他のコマンドも、同様にして作成できる。
【００９１】
上述のコマンドの自動作成は、ネットワーク構築端末１のコマンド作成機能を用いて行う。コマンド作成機能について、図１０に示すフローチャートによりその動作を説明する。
【００９２】
ステップ１（Ｓ１１）：仮想マシン環境情報とネットワーク設計情報の取得
「仮想マシン環境情報」と「ネットワーク設計情報」を取得する。
【００９３】
ステップ２（Ｓ１２）：アドレス設定コマンドの作成
仮想マシン環境情報の中の「ＮＷインターフェース対応表」とネットワーク設計情報の中の「アドレス表」とより、各仮想マシンが保持する各ＮＷインターフェースに割り当てるＩＰアドレスの情報を決定する。次いで、ネットワーク設計情報の中の「コマンドテンプレート表」から「ＶＭリスト」に基づいて各仮想マシンのアドレス設定に使用するコマンドテンプレートを選択し、先に決定した各ノードのＮＷインターフェースと割り当てるＩＰアドレスの情報とを適用し、各仮想マシン（ＶＭ）のアドレス設定コマンドを作成する。
【００９４】
ステップ３（Ｓ１３）：ルーティング設定コマンドの作成
仮想マシン環境情報の中の「ＮＷインターフェース対応表」とネットワーク設計情報の中の「ルーティング表」とより、各仮想マシンが保持する各ＮＷインターフェースに施すべきルーティング設定の内容を決定する。次いで、ネットワーク設計情報の中の「コマンドテンプレート表」から「ＶＭリスト」に基づいて各仮想マシンのルーティング設定に使用するコマンドテンプレートを選択し、先に決定した各ノードのＮＷインターフェースと施すべきルーティング設定の内容を適用し、各仮想マシン（ＶＭ）のルーティング設定コマンドを作成する。
【００９５】
ステップ４（Ｓ１４）：サービス設定コマンドの作成
仮想マシン環境情報の中の「ＮＷインターフェース対応表」とネットワーク設計情報の中の「サービス表」とより、各仮想マシンが保持する各ＮＷインターフェースに施すべきサービス機能の設定内容を決定する。次いで、ネットワーク設計情報の中の「コマンドテンプレート表」から「ＶＭリスト」に基づいて各仮想マシンのサービス設定に使用するコマンドテンプレートを選択し、先に決定した各ノードのＮＷインターフェースに施すべきサービス機能の設定内容を適用し、各仮想マシン（ＶＭ）のサービス設定コマンドを作成する。
【００９６】
ステップ５（Ｓ１５）：アクセスコントロール設定コマンドの作成
仮想マシン環境情報の中の「ＮＷインターフェース対応表」とネットワーク設計情報の中の「アクセスコントロール表」とより、各仮想マシンが保持する各ＮＷインターフェースに施すべきアクセスコントロールの設定内容を決定する。次いで、ネットワーク設計情報の中の「コマンドテンプレート表」から「ＶＭリスト」に基づいて各仮想マシンのアクセスコントロール設定に使用するコマンドテンプレートを選択し、先に決定した各ノードのＮＷインターフェースに施すべきアクセスコントロールの設定内容を適用し、各仮想マシン（ＶＭ）のアクセスコントロール設定コマンドを作成する。
【００９７】
ステップ６（Ｓ１６）：各仮想マシン（ＶＭ）のコマンドリストの出力
ステップ２〜５で得られた各仮想マシン（ＶＭ）のコマンド群をリスト化し、各仮想マシン（ＶＭ）ごとのコマンドリストとして出力する。
【００９８】
このように、ネットワーク構築端末１により、ネットワーク構築に用いられるコマンド（各仮想マシンのコマンドリスト）を自動作成することができる。さらに、ネットワーク構築端末１から仮想マシン環境２へのコマンド送信、及び、仮想マシン環境の各仮想マシンでのコマンドリストの実行を自動的に行うことにより、仮想マシン環境でのネットワーク構築を自動的に行うことができる。
【００９９】
また、上記の実施の形態では、ネットワーク構築端末１と仮想マシン環境２を備えるシステムの構成と動作について説明したが、本発明はこれに限らず、仮想マシン環境においてネットワークを構成する方法として構成されてもよい。すなわち、図２のメッセージシーケンスチャートや、図１０フローチャートに記載の各ステップ基づいて、ネットワーク設計情報と仮想マシン環境に関する情報とに基づいて、仮想マシン環境におけるネットワークの構築に用いられる少なくとも１つのコマンドを自動的に作成し、さらに、少なくとも１つのコマンドを実行し、仮想マシン環境上において前記ネットワークを構築することを特徴とする、方法として構成されても良い。
【０１００】
なお、上述したネットワーク構築端末１として機能させるためにコンピュータを好適に用いることができ、そのようなコンピュータは、ネットワーク構築端末１のコマンド作成機能（フローチャートで説明した各ステップ）を実現する処理内容を記述したプログラムを該コンピュータの記憶部に格納しておき、該コンピュータのＣＰＵによってこのプログラムを読み出して実行させることで実現することができる。なお、このプログラムは、コンピュータ読取り可能な記録媒体に記録可能である。
【０１０１】
上述の実施形態は代表的な例として説明したが、本発明の趣旨及び範囲内で、多くの変更及び置換ができることは当業者に明らかである。したがって、本発明は、上述の実施形態によって制限するものと解するべきではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えば、各ブロック、各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の構成ブロックやステップ等を１つに組み合わせたり、或いは分割したりすることが可能である。
【符号の説明】
【０１０２】
１    ネットワーク構築端末
２    仮想マシン環境
３    ネットワーク
【図１】
2020150317.tif 000011
【図２】
2020150317.tif 000012
【図３】
2020150317.tif 000013
【図４】
2020150317.tif 000014
【図５】
2020150317.tif 000015
【図６】
2020150317.tif 000016
【図７】
2020150317.tif 000017
【図８】
2020150317.tif 000018
【図９】
2020150317.tif 000019
【図１０】
2020150317.tif 000020