JP2020150317A - システム、方法、及びプログラム - Google Patents

システム、方法、及びプログラム Download PDF

Info

Publication number
JP2020150317A
JP2020150317A JP2019043983A JP2019043983A JP2020150317A JP 2020150317 A JP2020150317 A JP 2020150317A JP 2019043983 A JP2019043983 A JP 2019043983A JP 2019043983 A JP2019043983 A JP 2019043983A JP 2020150317 A JP2020150317 A JP 2020150317A
Authority
JP
Japan
Prior art keywords
virtual machine
information
command
network
machine environment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019043983A
Other languages
English (en)
Other versions
JP7048898B2 (ja
Inventor
竹内 格
Kaku Takeuchi
格 竹内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2019043983A priority Critical patent/JP7048898B2/ja
Priority to PCT/JP2020/008097 priority patent/WO2020184202A1/ja
Priority to US17/593,064 priority patent/US12086623B2/en
Publication of JP2020150317A publication Critical patent/JP2020150317A/ja
Application granted granted Critical
Publication of JP7048898B2 publication Critical patent/JP7048898B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】仮想マシン環境におけるネットワークの構築に用いられるコマンドの作成を自動化するシステム、方法、及びプログラムを提供する。【解決手段】本発明は、コマンド作成機能を持つネットワーク構築端末と、仮想マシンが動作する仮想マシン環境を提供する少なくとも1つのサーバ装置と、を備えるシステムにおいて、前記ネットワーク構築端末は、ネットワーク設計情報と前記仮想マシン環境に関する情報とに基づいて、前記仮想マシン環境におけるネットワークの構築に用いられる少なくとも1つのコマンドを自動的に作成することを特徴とする。【選択図】図1

Description

本発明はシステム、方法、及びプログラムに関し、特に、仮想マシン環境上でのネットワーク構築を支援するシステム、方法、及びプログラムに関する。
近年、様々な検証作業に必要なサーバ環境を、サーバやネットワーク(NW)の仮想化技術を用いて構築することが行われている。そこでは、サーバ装置群やネットワーク装置群の物理的な装置群をそろえなくても、サーバやネットワークの仮想化技術によって環境を疑似的に実現することが可能となる「ハイパーバイザ」と呼ばれるOS(Operating System)が利用されている。上記のようなハイパーバイザOSを具備し、仮想的なサーバ装置やネットワーク装置を実現する装置群を「仮想マシン環境」と呼称する。
仮想マシン環境の利用は、物理的な装置の台数の減少や購入費用の減少、設置スペースの減少など経済的なメリットがある。また、仮想マシン環境上で必要なサーバの仮想マシン(VM:Virtual Machine)を一度構築してしまえば、それを再利用することにより再構築の手間を低減することができるなどのメリットもある。
蔭山佳輝・河込和宏・原嶋秀次、「コンピュータの仮想化技術」、IEEJ Journal、Vol.133、No.10、(2013年)、pp.692-695
複数のサーバ装置やネットワーク装置からなるネットワークの構築が、物理装置から仮想装置に変わることにより、利便性は高くなるが、ネットワークの構築に際して、各サーバのアドレス設定やサービス設定、サーバ間の配線などに関する煩雑な作業は同様に発生する。
また、ネットワーク(NW)設計者は、仮想マシン環境で使用可能なOSの種類など使用する仮想マシン環境の構成を意識して構築に必要なコマンドのリストを用意する必要がある。すなわち、NW設計者は、仮想マシン環境の知識、コマンド操作の高度なスキルが必要といった課題があった。
また、構築の作業者がサーバVMで動作するOSのコマンド操作に不慣れな場合には、設定もれや設定誤りなどの操作ミスもありうる。
従って、上記のような問題点に鑑みてなされた本発明の目的は、仮想マシン環境におけるネットワークの構築に用いられるコマンドの作成を自動化し、仮想マシン環境上で複数のサーバ装置やネットワーク装置からなるネットワークを容易に構築することができる、システム、方法、及びプログラムを提供することにある。
上記課題を解決するために本発明に係るシステムは、コマンド作成機能を持つネットワーク構築端末と、仮想マシンが動作する仮想マシン環境を提供する少なくとも1つのサーバ装置と、を備えるシステムにおいて、前記ネットワーク構築端末は、ネットワーク設計情報と前記仮想マシン環境に関する情報とに基づいて、前記仮想マシン環境におけるネットワークの構築に用いられる少なくとも1つのコマンドを自動的に作成することを特徴とする。
また、前記システムは、前記ネットワーク設計情報には、そのネットワークを構成する各ノードに関する情報として、少なくとも、アドレスに関する情報、ルーティングに関する情報、サービスに関する情報、アクセスコントロールに関する情報、仮想マシンに関するメタ情報、が含まれることが望ましい。
また、前記システムは、前記仮想マシン環境に関する情報には、少なくとも、その仮想マシン環境でプールしている仮想マシンのリスト、前記仮想マシンのネットワークインターフェースに関する情報、前記仮想マシンのOSに応じたコマンドのテンプレート、が含まれることが望ましい。
また、前記システムは、前記少なくとも1つのコマンドが、前記仮想マシン環境上でプールしている仮想マシンごとに用意されるコマンドリストであり、そのコマンドリストの中には、少なくとも、アドレス設定に関するコマンド、ルーティングの設定に関するコマンド、サービスの設定に関するコマンド、アクセスコントロールに関するコマンド、が含まれることが望ましい。
上記課題を解決するために本発明に係る方法は、ネットワーク設計情報と仮想マシン環境に関する情報とに基づいて、前記仮想マシン環境におけるネットワークの構築に用いられる少なくとも1つのコマンドを自動的に作成し、前記少なくとも1つのコマンドを実行し、前記仮想マシン環境上において前記ネットワークを構築することを特徴とする。
また、前記方法は、前記少なくとも1つのコマンドが、前記仮想マシン環境上でプールしている仮想マシンごとに用意されるコマンドリストであり、そのコマンドリストの中には、少なくとも、アドレス設定に関するコマンド、ルーティングの設定に関するコマンド、サービスの設定に関するコマンド、アクセスコントロールに関するコマンド、が含まれることが望ましい。
上記課題を解決するために本発明に係るプログラムは、コンピュータに、ネットワーク設計情報と仮想マシン環境に関する情報とを取得するステップと、前記ネットワーク設計情報と前記仮想マシン環境に関する情報とに基づいて、前記仮想マシン環境におけるネットワークの構築に用いられる少なくとも1つのコマンドを作成するステップと、前記少なくとも1つのコマンドを出力するステップと、を実行させることを特徴とする。
また、前記プログラムは、前記少なくとも1つのコマンドを作成するステップが、前記仮想マシン環境に関する情報から、少なくとも前記仮想マシン環境でプールしている仮想マシンのOSと、前記仮想マシンのOSに応じたコマンドのテンプレートとを読み出し、前記ネットワーク設計情報から、少なくとも前記ネットワークのノードに設定する情報を読み出し、前記コマンドのテンプレートのパラメータに前記ノードに設定する情報を適用することを含むことが望ましい。
本発明におけるシステム、方法、及びプログラムによれば、仮想マシン環境におけるネットワークの構築に用いられるコマンドの作成を自動化し、仮想マシン環境上で複数のサーバ装置やネットワーク装置からなるネットワークを容易に構築することができる。
本発明のシステムの全体構成の例を示す図である。 本発明のシステムのメッセージシーケンスチャートの例を示す図である。 本発明の利用イメージを説明する図である。 異なる仮想マシン環境でネットワークの構築を行う例を示す図である。 各仮想マシン(VM)間の配線イメージを示す図である。 構築予定のネットワークのイメージの例を示す図である。 ネットワーク設定を行うコマンドの作り方(その1)を説明する図である。 ネットワーク設定を行うコマンドの作り方(その2)を説明する図である。 ネットワーク設定を行うコマンドの作り方(その3)を説明する図である。 コマンド作成機能の動作を説明するフローチャートである。
以下、本発明の実施の形態について図面を用いて説明する。なお、本明細書では、仮想マシン環境上で構築される複数のサーバ装置やネットワーク装置からなるネットワークを「疑似NW」と呼ぶことがある。
(実施の形態)
図1に、本発明のシステムの全体構成の例を示す。本発明のシステムは、ネットワーク構築端末1と仮想マシン環境2とから構成され、さらに、両者の相互通信のためのネットワーク3を備えることが望ましい。
ネットワーク構築端末1は、後述する「コマンド作成機能」を具備した端末機器であって、ネットワーク設計情報と仮想マシン環境に関する情報とに基づいて、仮想マシン環境におけるネットワークの構築に用いられる少なくとも1つのコマンドを自動的に作成する。
仮想マシン環境2は、仮想マシンが動作する環境であり、複数の仮想マシンを稼働させるのに適切な量のメモリ(主記憶装置)、HDD(Hard Disk Drive)等からなる補助記憶装置、CPU(Central Processing Unit)などのリソースを具備し、ハイパーバイザOSを搭載したサーバ装置(又は、サーバ装置群)で実現される。仮想マシン環境2には、ネットワークの各ノードとなる仮想マシン(VM1,VM2,・・・VMn)がプールされている。なお、ハイパーバイザOSは、例えば、KVM,VMware vSphere,MS Hyper-V などを利用することができる。
ネットワーク3は、ネットワーク構築端末1と仮想マシン環境2とを接続する通信環境であり、特定のハードウエアに限定されず、任意の通信手段により実現することができる。ネットワーク構築端末1と仮想マシン環境2及び仮想マシン環境2上で稼働する仮想マシン(VM)群は、ネットワーク3を介して相互に通信できることとする。
図2は、本発明のシステムのメッセージシーケンスチャートの例である。本発明のシステムにより、仮想マシン環境上でネットワークを構築する全体の流れを、図2のメッセージシーケンスチャートで説明する。
ステップ1(S1):コマンド作成
まず、ネットワーク構築端末1はコマンド作成機能により、仮想マシン環境2上で稼働する各ノードごとのコマンド(コマンドリスト)を作成する。後述のとおり、コマンドリストは、入力された「仮想マシン環境情報」(仮想マシン環境に関する情報)と「ネットワーク設計情報」とに基づいて作成する。
ステップ2(S2):コマンド送信
ネットワーク構築端末1は仮想マシン環境2上の各ノードに対して、作成したコマンド(コマンドリスト)を送信する。なお、送信手段はコンソールなどのシリアル接続や、Telent/SSH などの既知の手段を利用することができる。
ステップ3(S3):コマンド実行
仮想マシン環境2上の各ノード(VM)で、ネットワーク構築端末1から受信したコマンドリストを実行する。こうして、仮想マシン環境2上で必要な疑似NWを構築する。
なお、この各ステップS1〜S3を一連の動作として実行し、「仮想マシン環境情報」と「ネットワーク設計情報」の入力から、仮想マシン環境2上でのネットワーク構築までを自動的に行うこともできる。
図3は、本発明の利用イメージを説明する図である。構築予定の「ネットワーク(NW)設計情報」と「仮想マシン環境情報」とに基づいて、ネットワーク構築端末1によりネットワークの構築に用いられるコマンドリストを自動的に作成し、さらに仮想マシン環境2においてそのコマンドリストを実行して、必要なネットワークを構築する。
まず、仮想マシン環境2側から、ネットワーク構築端末1に対して、「仮想マシン環境情報」(仮想マシン環境に関する情報)が提供される。この「仮想マシン環境情報」は、それぞれの仮想マシン環境2に依存する情報であり、通常、仮想マシン環境(=ハイパーバイザOSの稼働するサーバ装置(群))2を運用する運用者等が作成する。仮想マシン環境に関する情報には、例えば、VMリスト、NWインターフェース対応表、コマンドテンプレート表等が含まれる。
また、ネットワーク設計者等は、「ネットワーク設計情報」を作成する。この「ネットワーク設計情報」は、構築予定のネットワーク(NW)に依存する情報であり、仮想マシン環境とは独立して作成することができる。ネットワーク設計情報には、例えば、アドレス表、ルーティング表、サービス表、アクセスコントロール表、メタ情報表等が含まれる。
ネットワーク構築端末1は、コマンド作成機能を有する。すなわち、入力された「仮想マシン環境情報」と「ネットワーク設計情報」とに基づいて、ネットワークの構築に必要なコマンドリストを自動的に作成し、出力する。このコマンドリストは、仮想マシン環境2における各仮想マシン(VM1,VM2,・・・VMn)にそれぞれ対応して作成される。ネットワークの構築に必要なコマンドとしては、例えば、IPアドレス設定、ルーティング設定、サービス設定、アクセスコントロール設定等を行う各コマンドを作成する。
ネットワーク構築端末1で作成された各コマンドリストは、仮想マシン環境における対応する仮想マシン(VM1,VM2,・・・VMn)でそれぞれ実行される。このコマンドの実行により、仮想マシン環境にプールされるVM群のそれぞれは、構築予定のネットワークにおけるノードとして機能するようになる。こうして、仮想マシン環境2上で、ネットワークが自動構築される。
このように、本発明によれば、仮想マシン環境におけるネットワークの構築に用いられるコマンドの作成を自動化し、仮想マシン環境上で複数のサーバ装置やネットワーク装置からなるネットワークを容易に構築することができ、ネットワーク構築に関するコストを低減できる。さらに、仮想マシン環境におけるネットワーク構築までを自動化できる。
さらに本発明によれば、仮想マシン環境の構成内容が異なっていたとしても、それぞれの構成に応じた「仮想マシン環境情報」を用意できれば、同様のネットワークを構築することができる。
図4は、異なる仮想マシン環境でネットワークの構築を行う例を示す図である。
まず、仮想マシン環境Xでネットワークの構築を行う場合について説明する。この仮想マシン環境Xは、例えば、CentOS、Cisco IOS、VMware ESXi等のOSに基づく環境設計がなされているとする。仮想マシン環境の運用者から、この仮想マシン環境Xに応じた「仮想マシン環境情報X」を取得し、ネットワーク構築端末1の一つの入力とする。他方、ネットワーク設計者は、図3で説明したとおり、「ネットワーク設計情報」を作成し、ネットワーク構築端末1のもう一つの入力とする。
ネットワーク構築端末1は、コマンド作成機能により、入力された「仮想マシン環境情報X」と「ネットワーク設計情報」とに基づいて、ネットワークの構築に必要な「コマンドリストX」を自動的に作成する。このコマンドリストXを仮想マシン環境Xの各VMで実行することにより、ネットワークNWxを構築することができる。
次に、仮想マシン環境Yでネットワークの構築を行う場合について説明する。この仮想マシン環境Yは、例えば、ubuntsu、Palo Alto VMSeries、KVM/OpenStack等のOSに基づく環境設計がなされているとする。仮想マシン環境の運用者から、この仮想マシン環境Yに応じた「仮想マシン環境情報Y」を取得し、ネットワーク構築端末1の一つの入力とする。他方、ネットワーク設計者は、仮想マシン環境Xに対して作成したものと同じ「ネットワーク設計情報」を、ネットワーク構築端末1のもう一つの入力とする。
ネットワーク構築端末1は、コマンド作成機能により、入力された「仮想マシン環境情報Y」と「ネットワーク設計情報」とに基づいて、ネットワークの構築に必要な「コマンドリストY」を自動的に作成する。このコマンドリストYを仮想マシン環境Yの各VMで実行することにより、ネットワークNWxと同等の構成を有するネットワークNWyを構築することができる。
すなわち、本発明によれば、それぞれ異なる仮想マシン環境上で、複数のサーバ装置やネットワーク装置からなる同等のネットワークの構築を自動的に行うことができる。また、それぞれの仮想マシン環境に対応した作業を省くことができ、構築に関するコストを低減できる。
ネットワーク設計者は構築しようとするネットワークのトポロジー的な設計にのみ専念することができ、仮想マシン環境の構成を意識することなく必要なネットワークを構築することができる。
また、自動的にネットワークの構築がなされるため、作業者による各VMのOSの操作ミスを回避することにもつながる。
次に、コマンド作成に利用する「仮想マシン環境情報」と「ネットワーク設計情報」について説明する。
(1)仮想マシン環境情報
まず、本発明で用いる「仮想マシン環境情報」について説明する。「仮想マシン環境情報」とは、ネットワークの構築先となる仮想マシン環境に関する情報であり、仮想マシン環境に依存する情報である(「仮想マシン環境に関する情報」ということもある。)。通常、仮想マシン環境の運用者等から提供される。「仮想マシン環境情報」は、以下の3つの構成要素を備えている。
(1−1)VMリスト:仮想マシン環境上の各VMに割り当てるノードIDとインストールされているOSの種類・バージョンのリスト
(1−2)NWインターフェース対応表:各ノードの「NWインターフェース」を配線している仮想スイッチの対応表
(1−3)コマンドテンプレート表:各ノードのVM上のOSに対して、疑似NW構築のための操作を行わせる「コマンド」を生成するためのテンプレートの一覧表
なお、これらの構成要素は計算機を用いた情報処理で広く使われる、XML(eXtensible Markup Language)、JSON(JavaScript Object Notation)、CSV(Comma Separated Values)、あるいは市販の表計算ソフトなどに対応したファイル形式(データ形式)で表現され、電子ファイルとして実施されるものとする。
また、これらの構成要素は、以下では説明の都合上、互いに分離した形としているが、実用上は、これらを一つのファイルに結合させたファイル形式として実現してもよい。以下、各構成要素について説明する。
(1−1)VMリスト
「VMリスト」は、仮想マシン環境にプールされる各仮想マシン(VM)に割り当てられるノードIDと、インストールされているOSの種類・バージョンの対応関係を特定するリストである。
表1に、VMリストのデータ構成の例を示す。VMリストは、各仮想マシン(VM)のノードID(N0,N1,・・・)、OS種別(CentOS,Cisco IOS等、なお、OSのディストリビューションも考慮する)、及びそのバージョンをまとめた表である。VMリストに基づいて、ノードIDからその仮想マシンのOSを知ることができる。
Figure 2020150317
(1−2)NWインターフェース対応表
「NWインターフェース対応表」は、使用する仮想マシン環境において、各仮想マシン(VM)の「ネットワーク(NW)インターフェース」と、それを接続・配線する仮想スイッチ(SW)との対応関係を特定する表である。なお、「NWインターフェース対応表」の利用にあたっては、次のような前提事項をおく。
(i)各仮想マシン(VM)をすべての仮想スイッチ(SW)と接続させておくこと
(ii)各仮想マシン(VM)のOSの初期設定では、VMが持つNWインターフェースは全て無効化しておき、最初は通信できない状態となること
表2に、NWインターフェース対応表のデータ構成の例を示す。NWインターフェース対応表は、各仮想マシン(VM)が各仮想スイッチに対してどのNWインターフェースを使うかをまとめたものである。表2の例では、仮想マシン(ノードID:N0)は、仮想スイッチSW0とはNWインターフェースeth0、SW1とはeth1、SW2とはeth2・・・で接続している。この各仮想マシン(VM)のNWインターフェースと仮想スイッチSWとの接続関係、すなわち、各仮想マシン(VM)間の配線イメージを図5に示す。
このNWインターフェース対応表(=図5の配線イメージ)を用いることにより、例えば仮想マシン(ノードID:N1)と仮想マシン(ノードID:N3)とを、仮想スイッチSW1を介して接続するならば、N1はNWインターフェース lan1、N3は ge0/1 をそれぞれ有効化すればよいことが分かる。
このように、各仮想マシン(VM)と仮想スイッチ(SW)を予め接続し、必要なインターフェースを有効化する構成とすることで、任意のネットワーク設計(ネットワーク構成)を仮想マシン環境に反映することができる。
Figure 2020150317
(1−3)コマンドテンプレート表
「コマンドテンプレート表」は、仮想マシン環境にプールされている仮想マシン(VM)上のOSに対して、ネットワーク構築のための操作を行わせる「コマンド」を生成するためのテンプレートのリスト(表)である。
表3に、マンドテンプレート表のデータ構成の例を示す。コマンドテンプレート表は、具体的にはネットワーク(疑似NW)構築のための操作ごとに、さらにOS種別(OSのディストリビューションの違いも考慮する)・バージョンごとに、実施すべきコマンドとそのパラメータとなる項目をまとめた表である。コマンドテンプレート表に基づいて、実行すべき操作と、対象となるVMのOS種別等から、コマンドのテンプレートを得ることができる。
Figure 2020150317
(2)ネットワーク(NW)設計情報
次に、本発明で用いる「ネットワーク(NW)設計情報」について説明する。「ネットワーク(NW)設計情報」とは、構築対象となるネットワークの構成に関する情報であり、ネットワーク設計者等により作成される。仮想マシン環境に依存する情報は含まれない。「ネットワーク(NW)設計情報」は、以下の5つの構成要素を備えている。
(2−1)アドレス表:各ノードのNWインターフェースで使用するIPアドレスの情報をまとめた表
(2−2)ルーティング表:各ノードで使用するルーティングに関する情報をまとめた表
(2−3)サービス表:各ノードで動作させるサービスの待ち受けポート番号などの情報をまとめた表
(2−4)アクセスコントロール表:ルータやファイアウォールとなるノードにおけるアクセスコントロールに関する情報をまとめた表
(2−5)メタ情報表:各ノードに関する各種のメタ情報(例えば、そのノードの用途に関する情報等)をまとめた表
なお、これらの構成要素は計算機を用いた情報処理で広く使われる、XML(eXtensible Markup Language)、JSON(JavaScript Object Notation)、CSV(Comma Separated Values)、あるいは市販の表計算ソフトなどに対応したファイル形式(データ形式)で表現され、電子ファイルとして実施されるものとする。
また、これらの構成要素は、以下では説明の都合上、互いに分離した形としているが、実用上は複数の構成要素を合わせた(一つのファイルに結合させた)ファイル形式として実現してもよい。例えば、アドレス表とルーティング表はネットワークの設定に関するものなのでデータ形式上まとめてもよい。ただし、ファイルからそれぞれの要素を抜き出せることが必要である。
以下、各構成要素について説明する。以下の説明においては、図6に示す構築予定のネットワークのイメージを例として用いる。すなわち、N0(時刻サーバ)、N1(Webサーバ)、N2(Webサーバ)、N3(ファイアウォール)、N4(データベースサーバ)、N5(ユーザ端末)、N6(ユーザ端末)の6個のノードを有し、SW0〜SW2の3個のスイッチにより接続されたネットワークを構築するものとして、それぞれのデータ形式を説明とする。なお、図6は一例であり、本発明のファイル形式(データ形式)で任意のネットワークを効率的に記述することができる。
(2−1)アドレス表
「アドレス表」は、疑似NW(仮想マシン環境上で構築されるネットワーク)を構成する各ノードのNWインターフェースに割り当てるアドレス情報をまとめた表である。なお、前述のとおり、ネットワークのノードとノードの間は、「仮想スイッチ」を介して接続することを前提とする。
表4に、アドレス表のデータ構造の例を示す。アドレス表には、各ノードごとに、各仮想スイッチ間との接続に使用するアドレス情報として、以下の3項目の組をそれぞれ記述する。
<アドレスファミリ(IPv4 か IPv6 かなど)、IPアドレス、ネットマスク>
表4の例では、ノードN1は仮想スイッチSW0,SW1と接続しており、ノードN1において仮想スイッチSW0に接続するNWインターフェースのアドレス情報は、<アドレスファミリIPv4、IPアドレス192.168.10.11、ネットマスク255.255.255.0>となることを示している。
Figure 2020150317
(2−2)ルーティング表
「ルーティング表」は、疑似NWを構成する各ノードのルーティング(デフォルトゲートウェイ、スタティックルーティング等)に関する情報をまとめた表である。
表5に、ルーティング表のデータ構造の例を示す。ルーティング表には、各ノードごとに、各仮想スイッチ間との接続に関連するルーティングの情報として、以下の3項目の組をそれぞれ記述する。
<接続先IPアドレス、接続先ネットマスク、ゲートウェイ>
(ここで、「ゲートウェイ」の項目には、接続先に送信する際に経由すべきゲートウェイのIPアドレスを記述する。)
表5の例では、ノードN0において仮想スイッチSW0に接続するNWインターフェースのルーティング情報は、<接続先IPアドレス192.168.30.0、接続先ネットマスク255.255.255.0、ゲートウェイ192.168.10.13>であることを示している。また、ノードN5,N6の仮想スイッチSW1に接続するNWインターフェースには、デフォルトゲートウェイの設定がなされ、接続先IPアドレスと接続先ネットマスクは省略されデフォルトゲートウェイが192.168.30.33であることを示している。
Figure 2020150317
(2−3)サービス表
「サービス表」は、疑似NWを構成する各ノードが提供するサービス機能に関する情報をまとめた表である。サービス機能の例としては、例えばHTTP(HyperText Transfer Protocol)やFTP(File Transfer Protocol)などがある。
表6に、サービス表のデータ構造の例を示す。サービス表は、各ノードごとに、各仮想スイッチ間との接続を使って他のノードに提供されるサービス機能の情報として、以下の3項目の組のリストをそれぞれ記述する。
<サービス名、使用するポート番号のリスト、サービス設定情報(各サービス機能に応じて必要となる設定情報)>
表6の例では、ノードN1において仮想スイッチSW0との接続を介して提供されるサービス機能の情報は、サービス名httpd、使用するポート番号のリストtcp/80 であることを示している。
Figure 2020150317
(2−4)アクセスコントロール表
「アクセスコントロール表」は、疑似NWを構成する各ノードがルータやファイアウォールなどの場合に使われる情報であり、各ノードのアクセスコントロールに関する情報をまとめた表である。
表7に、アクセスコントロール表のデータ構造の例を示す。アクセスコントロール表は、各ノードごとに接続された仮想スイッチからの通過を許可する(あるいは遮断する)パケットのルールとして、以下の7項目の組のリストをそれぞれ記述する。
<アドレスファミリ、送信元アドレス、送信元ネットマスク、送信先アドレス、送信先ネットマスク、送信先ポート番号、アクション(許可/遮断)>
表7の例では、各セルのルールは上から下に順に評価されるものとする。ノードN3のSW2向けのルールの場合、最後の<*,*,*,*,*,*,遮断>はすべてのパケットを拒否するルールである。したがって、一行目のルールに該当するパケット以外はすべて遮断されることを示す。
Figure 2020150317
(2−5)メタ情報表
「メタ情報表」は、疑似NWを構成する各ノードに関する付加的な情報をまとめた表である。例えば、そのノードの用途、管理者のロール名やユーザ名、メモリサイズやHDDサイズなどのリソースに関する仕様、などが考えられる。
表8に、メタ情報表のデータ構造の例を示す。メタ情報表は、各ノードごとに必要なメタ情報を記述する。構築予定のNWの性質や運用上の必要性に応じてメタ情報の項目は用意されるものとする。表8の例では、各ノードの用途と管理者の情報が示されている。ノードの用途に関する情報としては、例えば、運用端末、ユーザ端末、メールサーバ、DNSサーバ等、を設定できる。
Figure 2020150317
このように、ネットワーク設計を反映するための仮想スイッチ(SW)と仮想マシン(VM)の対応表で、ネットワーク設計、インターフェースアドレス、ルーチング情報等を、一元的に管理することが可能となる。
本発明におけるノードと仮想マシン(VM)との対応について説明する。本実施形態では、各ノードとVMとの対応はノードIDを使用している。したがって、VMリストの中でVMを識別するのにつかわれるノードIDと、NW設計者が作成するNW設計情報の中で使われるノードIDが対応している前提となる。また、異なる仮想マシン環境においてネットワークを構築する場合は、それぞれのVMリスト中のノードIDをそろえる必要がある。なお、異なる仮想マシン環境に適用する場合は、それぞれのノードIDに応じて対応表で変換することとしても良い。
仮想マシン環境情報とネットワーク設計情報とから、コマンドを自動的に作成する手順について説明する。図7乃至図9は、ネットワーク設定を行うコマンドの作り方(その1〜3)を説明する図であり、ノードID:N0の仮想マシン(VM)のアドレス設定コマンドを例として説明する。
図7に示すように、仮想マシン環境情報のVMリストを参照して、ノードID:N0のOS種別とバージョンを取得する。図7の例では、ノードN0のOSはCentOSでバージョン6であることが読み取れる。
次に、図8に示すように、ノードN0において仮想スイッチSW0と接続するために設定するアドレス情報を取得する。具体的には、仮想マシン環境情報のNWインターフェース対応表を参照して、ノードN0が仮想スイッチSW0と接続する際に有効化するNWインターフェースを得る。また、NW設計情報のアドレス表から、ノードN0の仮想スイッチSW0との接続に使用するアドレス情報(アドレスファミリ、IPアドレス、ネットマスク)を得る。図8の例では、設定するアドレス情報として、NWインターフェースがeth0、IPv4アドレス=192.168.10.10、ネットマスク=であることが読み取れる。
そして、図9に示すように、仮想マシン環境情報のコマンドテンプレート表を参照する。既に、ノードN0のOSはCentOSでバージョン6であることが得られているから、IPv4アドレスの設定コマンドとして、OS識別・バージョン(CentOS 6)の一致するコマンドテンプレート「ifconfig <NWインターフェース><IPv4アドレス><IPv4ネットマスク>」を得る。これに、図8で取得した設定値を代入して、ノードN0のアドレス設定コマンドを、次のように自動的に作成できる。
ifconfig eth0 192.168.10.10 255.255.255.0
このように、各管理表の同じマスの項目を対応させ、管理表のパラメータをそのまま埋め込めばコマンド生成可能とすることで、コマンド生成の自動化(コンピュータによる自動作成)を可能とした。他のコマンドも、同様にして作成できる。
上述のコマンドの自動作成は、ネットワーク構築端末1のコマンド作成機能を用いて行う。コマンド作成機能について、図10に示すフローチャートによりその動作を説明する。
ステップ1(S11):仮想マシン環境情報とネットワーク設計情報の取得
「仮想マシン環境情報」と「ネットワーク設計情報」を取得する。
ステップ2(S12):アドレス設定コマンドの作成
仮想マシン環境情報の中の「NWインターフェース対応表」とネットワーク設計情報の中の「アドレス表」とより、各仮想マシンが保持する各NWインターフェースに割り当てるIPアドレスの情報を決定する。次いで、ネットワーク設計情報の中の「コマンドテンプレート表」から「VMリスト」に基づいて各仮想マシンのアドレス設定に使用するコマンドテンプレートを選択し、先に決定した各ノードのNWインターフェースと割り当てるIPアドレスの情報とを適用し、各仮想マシン(VM)のアドレス設定コマンドを作成する。
ステップ3(S13):ルーティング設定コマンドの作成
仮想マシン環境情報の中の「NWインターフェース対応表」とネットワーク設計情報の中の「ルーティング表」とより、各仮想マシンが保持する各NWインターフェースに施すべきルーティング設定の内容を決定する。次いで、ネットワーク設計情報の中の「コマンドテンプレート表」から「VMリスト」に基づいて各仮想マシンのルーティング設定に使用するコマンドテンプレートを選択し、先に決定した各ノードのNWインターフェースと施すべきルーティング設定の内容を適用し、各仮想マシン(VM)のルーティング設定コマンドを作成する。
ステップ4(S14):サービス設定コマンドの作成
仮想マシン環境情報の中の「NWインターフェース対応表」とネットワーク設計情報の中の「サービス表」とより、各仮想マシンが保持する各NWインターフェースに施すべきサービス機能の設定内容を決定する。次いで、ネットワーク設計情報の中の「コマンドテンプレート表」から「VMリスト」に基づいて各仮想マシンのサービス設定に使用するコマンドテンプレートを選択し、先に決定した各ノードのNWインターフェースに施すべきサービス機能の設定内容を適用し、各仮想マシン(VM)のサービス設定コマンドを作成する。
ステップ5(S15):アクセスコントロール設定コマンドの作成
仮想マシン環境情報の中の「NWインターフェース対応表」とネットワーク設計情報の中の「アクセスコントロール表」とより、各仮想マシンが保持する各NWインターフェースに施すべきアクセスコントロールの設定内容を決定する。次いで、ネットワーク設計情報の中の「コマンドテンプレート表」から「VMリスト」に基づいて各仮想マシンのアクセスコントロール設定に使用するコマンドテンプレートを選択し、先に決定した各ノードのNWインターフェースに施すべきアクセスコントロールの設定内容を適用し、各仮想マシン(VM)のアクセスコントロール設定コマンドを作成する。
ステップ6(S16):各仮想マシン(VM)のコマンドリストの出力
ステップ2〜5で得られた各仮想マシン(VM)のコマンド群をリスト化し、各仮想マシン(VM)ごとのコマンドリストとして出力する。
このように、ネットワーク構築端末1により、ネットワーク構築に用いられるコマンド(各仮想マシンのコマンドリスト)を自動作成することができる。さらに、ネットワーク構築端末1から仮想マシン環境2へのコマンド送信、及び、仮想マシン環境の各仮想マシンでのコマンドリストの実行を自動的に行うことにより、仮想マシン環境でのネットワーク構築を自動的に行うことができる。
また、上記の実施の形態では、ネットワーク構築端末1と仮想マシン環境2を備えるシステムの構成と動作について説明したが、本発明はこれに限らず、仮想マシン環境においてネットワークを構成する方法として構成されてもよい。すなわち、図2のメッセージシーケンスチャートや、図10フローチャートに記載の各ステップ基づいて、ネットワーク設計情報と仮想マシン環境に関する情報とに基づいて、仮想マシン環境におけるネットワークの構築に用いられる少なくとも1つのコマンドを自動的に作成し、さらに、少なくとも1つのコマンドを実行し、仮想マシン環境上において前記ネットワークを構築することを特徴とする、方法として構成されても良い。
なお、上述したネットワーク構築端末1として機能させるためにコンピュータを好適に用いることができ、そのようなコンピュータは、ネットワーク構築端末1のコマンド作成機能(フローチャートで説明した各ステップ)を実現する処理内容を記述したプログラムを該コンピュータの記憶部に格納しておき、該コンピュータのCPUによってこのプログラムを読み出して実行させることで実現することができる。なお、このプログラムは、コンピュータ読取り可能な記録媒体に記録可能である。
上述の実施形態は代表的な例として説明したが、本発明の趣旨及び範囲内で、多くの変更及び置換ができることは当業者に明らかである。したがって、本発明は、上述の実施形態によって制限するものと解するべきではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えば、各ブロック、各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の構成ブロックやステップ等を1つに組み合わせたり、或いは分割したりすることが可能である。
1 ネットワーク構築端末
2 仮想マシン環境
3 ネットワーク

Claims (8)

  1. コマンド作成機能を持つネットワーク構築端末と、仮想マシンが動作する仮想マシン環境を提供する少なくとも1つのサーバ装置と、を備えるシステムにおいて、
    前記ネットワーク構築端末は、ネットワーク設計情報と前記仮想マシン環境に関する情報とに基づいて、前記仮想マシン環境におけるネットワークの構築に用いられる少なくとも1つのコマンドを自動的に作成することを特徴とする、システム。
  2. 請求項1に記載のシステムにおいて、前記ネットワーク設計情報には、そのネットワークを構成する各ノードに関する情報として、少なくとも、アドレスに関する情報、ルーティングに関する情報、サービスに関する情報、アクセスコントロールに関する情報、仮想マシンに関するメタ情報、が含まれることを特徴とする、システム。
  3. 請求項1又は2に記載のシステムにおいて、前記仮想マシン環境に関する情報には、少なくとも、その仮想マシン環境でプールしている仮想マシンのリスト、前記仮想マシンのネットワークインターフェースに関する情報、前記仮想マシンのOSに応じたコマンドのテンプレート、が含まれることを特徴とする、システム。
  4. 請求項1乃至3のいずれか一項に記載のシステムにおいて、前記少なくとも1つのコマンドは、前記仮想マシン環境上でプールしている仮想マシンごとに用意されるコマンドリストであり、そのコマンドリストの中には、少なくとも、アドレス設定に関するコマンド、ルーティングの設定に関するコマンド、サービスの設定に関するコマンド、アクセスコントロールに関するコマンド、が含まれることを特徴とする、システム。
  5. ネットワーク設計情報と仮想マシン環境に関する情報とに基づいて、前記仮想マシン環境におけるネットワークの構築に用いられる少なくとも1つのコマンドを自動的に作成し、
    前記少なくとも1つのコマンドを実行し、前記仮想マシン環境上において前記ネットワークを構築することを特徴とする、方法。
  6. 請求項5に記載の方法において、前記少なくとも1つのコマンドは、前記仮想マシン環境上でプールしている仮想マシンごとに用意されるコマンドリストであり、そのコマンドリストの中には、少なくとも、アドレス設定に関するコマンド、ルーティングの設定に関するコマンド、サービスの設定に関するコマンド、アクセスコントロールに関するコマンド、が含まれることを特徴とする、方法。
  7. コンピュータに、
    ネットワーク設計情報と仮想マシン環境に関する情報とを取得するステップと、
    前記ネットワーク設計情報と前記仮想マシン環境に関する情報とに基づいて、前記仮想マシン環境におけるネットワークの構築に用いられる少なくとも1つのコマンドを作成するステップと、
    前記少なくとも1つのコマンドを出力するステップと、
    を実行させるためのプログラム。
  8. 請求項7に記載のプログラムにおいて、前記少なくとも1つのコマンドを作成するステップは、前記仮想マシン環境に関する情報から、少なくとも前記仮想マシン環境でプールしている仮想マシンのOSと、前記仮想マシンのOSに応じたコマンドのテンプレートとを読み出し、前記ネットワーク設計情報から、少なくとも前記ネットワークのノードに設定する情報を読み出し、前記コマンドのテンプレートのパラメータに前記ノードに設定する情報を適用することを含む、プログラム。
JP2019043983A 2019-03-11 2019-03-11 システム、方法、及びプログラム Active JP7048898B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019043983A JP7048898B2 (ja) 2019-03-11 2019-03-11 システム、方法、及びプログラム
PCT/JP2020/008097 WO2020184202A1 (ja) 2019-03-11 2020-02-27 システム、方法、及びプログラム
US17/593,064 US12086623B2 (en) 2019-03-11 2020-02-27 System, method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019043983A JP7048898B2 (ja) 2019-03-11 2019-03-11 システム、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2020150317A true JP2020150317A (ja) 2020-09-17
JP7048898B2 JP7048898B2 (ja) 2022-04-06

Family

ID=72426551

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019043983A Active JP7048898B2 (ja) 2019-03-11 2019-03-11 システム、方法、及びプログラム

Country Status (3)

Country Link
US (1) US12086623B2 (ja)
JP (1) JP7048898B2 (ja)
WO (1) WO2020184202A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005268932A (ja) * 2004-03-16 2005-09-29 Fujitsu Ltd プロビジョニング制御装置
JP2012253550A (ja) * 2011-06-02 2012-12-20 Hitachi Ltd マルチテナント型情報処理システム、管理サーバ及び構成管理方法
JP2015211294A (ja) * 2014-04-24 2015-11-24 エヌ・ティ・ティ・コミュニケーションズ株式会社 ネットワーク構成情報提供装置、ネットワーク構成情報提供方法、及びプログラム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970902B1 (en) * 2001-05-24 2005-11-29 Cisco Technology, Inc. Method and apparatus for providing a distributed service in a network
US20070294676A1 (en) * 2006-06-19 2007-12-20 Ewan Ellis Mellor Open virtual appliance
US10127059B2 (en) * 2008-05-02 2018-11-13 Skytap Multitenant hosted virtual machine infrastructure
US8429675B1 (en) * 2008-06-13 2013-04-23 Netapp, Inc. Virtual machine communication
CN102136931B (zh) * 2010-09-20 2013-12-04 华为技术有限公司 虚端口网络策略配置方法、一种网络管理中心和相关设备
US8997094B2 (en) * 2012-06-29 2015-03-31 Pulse Secure, Llc Migrating virtual machines between computing devices
US9043786B1 (en) * 2012-06-29 2015-05-26 Emc Corporation Blueprint-driven environment template creation in a virtual infrastructure
US9772866B1 (en) * 2012-07-17 2017-09-26 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance
US9071596B2 (en) * 2012-07-30 2015-06-30 Hewlett-Packard Development Company, L.P. Securely establishing a communication channel between a switch and a network-based application using a unique identifier for the network-based application
US9813485B2 (en) * 2013-06-14 2017-11-07 1E Limited Communication of virtual machine data
US9854036B2 (en) * 2013-09-30 2017-12-26 Huawei Technologies Co., Ltd. Method for migrating memory data of virtual machine, and related apparatus and cluster system
US9532103B2 (en) * 2013-12-16 2016-12-27 Vmware, Inc. Multi-user support for set top boxes and game consoles
WO2015100656A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 一种实现虚拟机通信的方法和装置
US9473394B1 (en) * 2014-01-10 2016-10-18 Juniper Networks, Inc. Proactive flow table for virtual networks
US9398081B2 (en) * 2014-08-20 2016-07-19 Futurewei Technologies, Inc. Automating client development for network APIs
US11204791B2 (en) * 2015-06-30 2021-12-21 Nicira, Inc. Dynamic virtual machine network policy for ingress optimization
US10320644B1 (en) * 2015-09-14 2019-06-11 Amazon Technologies, Inc. Traffic analyzer for isolated virtual networks
US11765174B2 (en) * 2018-12-07 2023-09-19 Vmware, Inc. Identity-based access control for cloud applications
US11360799B2 (en) * 2020-04-28 2022-06-14 International Business Machines Corporation Virtual machine live migration with seamless network connectivity

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005268932A (ja) * 2004-03-16 2005-09-29 Fujitsu Ltd プロビジョニング制御装置
JP2012253550A (ja) * 2011-06-02 2012-12-20 Hitachi Ltd マルチテナント型情報処理システム、管理サーバ及び構成管理方法
JP2015211294A (ja) * 2014-04-24 2015-11-24 エヌ・ティ・ティ・コミュニケーションズ株式会社 ネットワーク構成情報提供装置、ネットワーク構成情報提供方法、及びプログラム

Also Published As

Publication number Publication date
JP7048898B2 (ja) 2022-04-06
US12086623B2 (en) 2024-09-10
US20220188142A1 (en) 2022-06-16
WO2020184202A1 (ja) 2020-09-17

Similar Documents

Publication Publication Date Title
US10411947B2 (en) Hot swapping and hot scaling containers
CN111355604B (zh) 在软件定义网络上的用户定制和自动化操作的系统和方法
US20220377045A1 (en) Network virtualization of containers in computing systems
US10893023B2 (en) Per-application VPN in container based environments
CN112929219B (zh) 多数据中心环境中的逻辑路由器和交换机
US9152293B2 (en) Server IP addressing in a computing-on-demand system
CN111095209B (zh) 在云中通过覆盖网络和底层网络访问服务端点
US20190068689A1 (en) Accessing endpoints in logical networks and public cloud service providers native networks using a single network interface and a single routing table
US10826723B1 (en) Virtual network address space auto-migration
US20170005867A1 (en) Providing firewall rules for workload spread across multiple data centers
US20130111036A1 (en) Management method for network system, network system, and management server
CN111049796A (zh) 一种基于Open vSwitch实现Overlay多租户CNI容器网络的方法
CN107005471A (zh) 通用客户驻地设备
JP2015522858A (ja) サーバプロファイルテンプレート
US20230094120A1 (en) Runtime customization of nodes for network function deployment
CN114338606A (zh) 一种公有云的网络配置方法及相关设备
US8640127B2 (en) Relocating guest machine using proxy tool having multiple virtual machines where one virtual machines provides host route for relocation
CN110417856B (zh) 多活负载均衡应用的扩容方法、装置、设备及存储介质
JP7048898B2 (ja) システム、方法、及びプログラム
Denton Learning OpenStack Networking: Build a solid foundation in virtual networking technologies for OpenStack-based clouds
Mulyana et al. Network Automation with a Single Source of Truth in a Heterogeneous Environment.
JP7440747B2 (ja) 情報処理装置、情報処理システムおよびネットワーク疎通確認方法
Sangha et al. VMware NSX Cookbook: Over 70 recipes to master the network virtualization skills to implement, validate, operate, upgrade, and automate VMware NSX for vSphere
Denton OpenStack Networking Essentials
Krylosova Implementing container-based virtualization in a hybrid cloud

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210629

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220307

R150 Certificate of patent or registration of utility model

Ref document number: 7048898

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150