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

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

Info

Publication number
WO2020184202A1
WO2020184202A1 PCT/JP2020/008097 JP2020008097W WO2020184202A1 WO 2020184202 A1 WO2020184202 A1 WO 2020184202A1 JP 2020008097 W JP2020008097 W JP 2020008097W WO 2020184202 A1 WO2020184202 A1 WO 2020184202A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual machine
information
network
command
machine environment
Prior art date
Application number
PCT/JP2020/008097
Other languages
English (en)
French (fr)
Inventor
竹内 格
Original Assignee
日本電信電話株式会社
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 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to US17/593,064 priority Critical patent/US12086623B2/en
Publication of WO2020184202A1 publication Critical patent/WO2020184202A1/ja

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

Definitions

  • the present invention relates to systems, methods, and programs, and in particular, to systems, methods, and programs that support network construction in a virtual machine environment.
  • server and network (NW) virtualization technology There, an OS called a “hypervisor” that enables a pseudo environment to be realized by server and network virtualization technology without having to prepare a group of physical devices such as a group of server devices and a group of network devices (OS (hypervisor)). Operating System) is used.
  • a group of devices having the hypervisor OS as described above and realizing a virtual server device or network device is called a "virtual machine environment”.
  • VM Virtual Machine
  • the network (NW) designer needs to prepare a list of commands necessary for construction while being aware of the configuration of the virtual machine environment to be used, such as the types of OS that can be used in the virtual machine environment. That is, the NW designer has a problem that knowledge of the virtual machine environment and advanced skill of command operation are required.
  • an object of the present invention made in view of the above problems is to automate the creation of commands used for building a network in a virtual machine environment, and to consist of a plurality of server devices and network devices in the virtual machine environment.
  • the purpose is to provide systems, methods, and programs that can easily build networks.
  • the system according to the present invention is a system including a network construction terminal having a command creation function and at least one server device that provides a virtual machine environment in which a virtual machine operates.
  • the terminal is characterized in that it automatically creates at least one command used for building a network in the virtual machine environment based on the network design information and the information about the virtual machine environment.
  • the system includes, in the network design information, at least information about addresses, information about routing, information about services, information about access control, and meta information about virtual machines as information about each node constituting the network. It is desirable to be included.
  • the system includes information on the virtual machine environment, at least a list of virtual machines pooled in the virtual machine environment, information on the network interface of the virtual machine, and commands according to the OS of the virtual machine. It is desirable to include a template.
  • the at least one command is a command list prepared for each virtual machine pooled in the virtual machine environment, and at least the command related to address setting is included in the command list. It is desirable to include commands related to routing settings, commands related to service settings, and commands related to access control.
  • the method according to the present invention automatically creates at least one command used for building a network in the virtual machine environment based on the network design information and the information about the virtual machine environment. It is characterized in that the network is constructed on the virtual machine environment by executing the at least one command.
  • the at least one command is a command list prepared for each virtual machine pooled in the virtual machine environment, and at least the command related to address setting is included in the command list. It is desirable to include commands related to routing settings, commands related to service settings, and commands related to access control.
  • the program according to the present invention is based on a step of acquiring network design information and information about a virtual machine environment in a computer and the network design information and information about the virtual machine environment. It is characterized in that a step of creating at least one command used for constructing a network in a virtual machine environment and a step of outputting the at least one command are executed.
  • the step of creating at least one command is a command according to at least the OS of the virtual machine pooled in the virtual machine environment and the OS of the virtual machine from the information about the virtual machine environment. It is desirable to include reading the template of the above, reading at least the information set in the node of the network from the network design information, and applying the information set in the node to the parameters of the template of the command.
  • the creation of commands used for building a network in a virtual machine environment is automated, and a network consisting of a plurality of server devices and network devices can be easily constructed in the virtual machine environment. be able to.
  • a network composed of a plurality of server devices and network devices constructed on a virtual machine environment may be referred to as a "pseudo-NW".
  • FIG. 1 shows an example of the overall configuration of the system of the present invention. It is desirable that the system of the present invention is composed of a network construction terminal 1 and a virtual machine environment 2, and further includes a network 3 for mutual communication between the two.
  • the network construction terminal 1 is a terminal device having a "command creation function" described later, and is at least one command used for building a network in a virtual machine environment based on network design information and information on a virtual machine environment. Is created automatically.
  • the virtual machine environment 2 is an environment in which virtual machines operate, and is an auxiliary storage device consisting of an appropriate amount of memory (main storage device), HDD (Hard Disk Drive), etc. for operating a plurality of virtual machines, and a CPU (CPU). It is realized by a server device (or server device group) equipped with a hypervisor OS and equipped with resources such as Central Processing Unit).
  • a server device or server device group
  • a hypervisor OS equipped with resources such as Central Processing Unit
  • virtual machines VM1, VM2, ... VMn
  • the hypervisor OS for example, KVM, VMware vSphere, MS Hyper-V, etc. can be used.
  • the network 3 is a communication environment that connects the network construction terminal 1 and the virtual machine environment 2, and is not limited to specific hardware and can be realized by any communication means. It is assumed that the network construction terminal 1, the virtual machine environment 2, and the virtual machine (VM) group operating on the virtual machine environment 2 can communicate with each other via the network 3.
  • VM virtual machine
  • FIG. 2 is an example of a message sequence chart of the system of the present invention. The entire flow of constructing a network on a virtual machine environment by the system of the present invention will be described with reference to the message sequence chart of FIG.
  • the network construction terminal 1 creates a command (command list) for each node running on the virtual machine environment 2 by the command creation function.
  • the command list is created based on the input "virtual machine environment information" (information about the virtual machine environment) and "network design information”.
  • the network construction terminal 1 transmits the created command (command list) to each node on the virtual machine environment 2.
  • a serial connection such as a console or a known means such as Telent / SSH can be used.
  • FIG. 3 is a diagram illustrating a usage image of the present invention.
  • the network construction terminal 1 Based on the "network (NW) design information" and “virtual machine environment information" to be constructed, the network construction terminal 1 automatically creates a command list used for network construction, and further, in the virtual machine environment 2, the command list is automatically created. Execute the command list to build the required network.
  • NW network design information
  • virtual machine environment information virtual machine environment information
  • the virtual machine environment 2 side provides "virtual machine environment information" (information about the virtual machine environment) to the network construction terminal 1.
  • Information about the virtual machine environment includes, for example, a VM list, a NW interface correspondence table, a command template table, and the like.
  • network designers, etc. create “network design information”.
  • This "network design information” is information that depends on the network (NW) to be constructed, and can be created independently of the virtual machine environment.
  • the network design information includes, for example, an address table, a routing table, a service table, an access control table, a meta information table, and the like.
  • the network construction terminal 1 has a command creation function. That is, the network construction terminal 1 automatically creates and outputs a command list necessary for network construction based on the input "virtual machine environment information" and "network design information". This command list is created corresponding to each virtual machine (VM1, VM2, ... VMn) in the virtual machine environment 2. As commands required for network construction, for example, each command for IP address setting, routing setting, service setting, access control setting, etc. is created.
  • Each command list created by the network construction terminal 1 is executed by the corresponding virtual machines (VM1, VM2, ... VMn) in the virtual machine environment. By executing this command, each of the VMs pooled in the virtual machine environment will function as a node in the network to be built. In this way, the network is automatically constructed on the virtual machine environment 2.
  • the present invention it is possible to automate the creation of commands used for building a network in a virtual machine environment and easily build a network consisting of a plurality of server devices and network devices in the virtual machine environment. , The cost related to network construction can be reduced. Furthermore, it is possible to automate the construction of a network in a virtual machine environment.
  • FIG. 4 is a diagram showing an example of constructing a network in different virtual machine environments.
  • the virtual machine environment X is designed based on an OS such as CentOS, Cisco IOS, and VMware ESXi.
  • the "virtual machine environment information X" corresponding to the virtual machine environment X is acquired from the operator of the virtual machine environment and used as one input of the network construction terminal 1.
  • the network designer creates "network design information" and uses it as another input for the network construction terminal 1.
  • the network construction terminal 1 automatically creates the "command list X" necessary for network construction based on the input "virtual machine environment information X" and "network design information” by the command creation function.
  • a network NWx can be constructed by executing this command list X in each VM of the virtual machine environment X.
  • the virtual machine environment Y is designed based on an OS such as ubuntsu, Palo Alto VMSeries, and KVM / OpenStack.
  • the "virtual machine environment information Y" corresponding to the virtual machine environment Y is acquired from the operator of the virtual machine environment and used as one input of the network construction terminal 1.
  • the network designer uses the same "network design information" created for the virtual machine environment X as another input of the network construction terminal 1.
  • the network construction terminal 1 automatically creates a "command list Y" necessary for network construction based on the input "virtual machine environment information Y" and "network design information" by the command creation function. By executing this command list Y in each VM of the virtual machine environment Y, a network NWy having a configuration equivalent to that of the network NWx can be constructed.
  • the present invention it is possible to automatically construct an equivalent network composed of a plurality of server devices and network devices on different virtual machine environments.
  • the work corresponding to each virtual machine environment can be omitted, and the construction cost can be reduced.
  • the network designer can concentrate only on the topological design of the network to be built, and can build the necessary network without being aware of the configuration of the virtual machine environment.
  • the "virtual machine environment information” is information about the virtual machine environment to which the network is constructed, and is information that depends on the virtual machine environment (sometimes referred to as "information about the virtual machine environment”). Usually, it is provided by the operator of the virtual machine environment.
  • the “virtual machine environment information” has the following three components.
  • VM list A list of node IDs assigned to each VM in the virtual machine environment and the type and version of the installed OS (1-2) NW interface correspondence table: Wire the "NW interface" of each node.
  • NW interface correspondence table Wire the "NW interface" of each node.
  • XML eXtensible Markup Language
  • JSON JavaScript (registered trademark) Object Notation
  • CSV Common Separated Values
  • XML eXtensible Markup Language
  • JSON JavaScript (registered trademark) Object Notation
  • CSV Common Separated Values
  • VM list is a list that specifies the correspondence between the node ID assigned to each virtual machine (VM) pooled in the virtual machine environment and the type and version of the installed OS. is there.
  • Table 1 shows an example of the data structure of the VM list.
  • the VM list is a table that summarizes the node IDs (N0, N1, ...) of each virtual machine (VM), OS type (CentOS, Cisco IOS, etc., and OS distribution is also taken into consideration), and their versions. Is. Based on the VM list, the OS of the virtual machine can be known from the node ID.
  • NW interface correspondence table is the "network (NW) interface” of each virtual machine (VM) and the virtual switch (SW) that connects and wires it in the virtual machine environment to be used. ) Is a table that specifies the correspondence with. In addition, the following prerequisites are made when using the "NW interface correspondence table”.
  • SW In the initial setting of the OS of each virtual machine (VM), disable all NW interfaces of the VM. , At first, communication is not possible
  • Table 2 shows an example of the data structure of the NW interface correspondence table.
  • the NW interface correspondence table summarizes which NW interface each virtual machine (VM) uses for each virtual switch.
  • the virtual machine node ID: N0
  • the virtual switch SW0 is connected to the virtual switch SW0 by the NW interface eth0, to SW1 by eth1, to SW2 by eth2, and so on.
  • FIG. 5 shows the connection relationship between the NW interface of each virtual machine (VM) and the virtual switch SW, that is, the wiring image between each virtual machine (VM).
  • N1 should enable the NW interface lan1 and N3 should enable ge0 / 1.
  • any network design can be reflected in the virtual machine environment. Can be done.
  • Command template table The "command template table” generates "commands” that allow the OS on the virtual machine (VM) pooled in the virtual machine environment to perform operations for network construction. It is a list (table) of templates for.
  • Table 3 shows an example of the data structure of the mand template table.
  • the command template table is specifically the commands to be executed and their parameters for each operation for building a network (pseudo-NW), and for each OS type (considering differences in OS distribution) and version. It is a table that summarizes the items. Based on the command template table, a command template can be obtained from the operation to be executed and the OS type of the target VM.
  • the “network (NW) design information” is information related to the configuration of the network to be constructed, and is created by a network designer or the like. It does not contain information that depends on the virtual machine environment.
  • the “network (NW) design information” includes the following five components.
  • Address table A table that summarizes IP address information used in the NW interface of each node
  • Routing table A table that summarizes information related to routing used in each node (2-3)
  • Service Table Table that summarizes information such as the listening port number of the service operated on each node
  • Access control table Table that summarizes information on access control on nodes that serve as routers and firewalls
  • Meta information Table A table summarizing various meta information about each node (for example, information about the usage of that node).
  • XML eXtensible Markup Language
  • JSON JavaScript (registered trademark) Object Notation
  • CSV Common Separated Values
  • XML eXtensible Markup Language
  • JSON JavaScript (registered trademark) Object Notation
  • CSV Common Separated Values
  • these components are separated from each other for convenience of explanation below, they may be realized as a file format in which a plurality of components are combined (combined into one file) in practical use. ..
  • the address table and the routing table are related to network settings, they may be combined in terms of data format. However, it is necessary to be able to extract each element from the file.
  • FIG. 6 the image of the network to be constructed shown in FIG. 6 is used as an example. That is, it has six nodes, N0 (time server), N1 (web server), N2 (web server), N3 (fireplace), N4 (database server), N5 (user terminal), and N6 (user terminal).
  • N0 time server
  • N1 web server
  • N2 web server
  • N3 fireplace
  • N4 database server
  • N5 user terminal
  • N6 user terminal
  • FIG. 6 is an example, and an arbitrary network can be efficiently described in the file format (data format) of the present invention.
  • the "address table” is a table summarizing the address information assigned to the NW interface of each node constituting the pseudo NW (network constructed on the virtual machine environment). As described above, it is premised that the nodes of the network are connected via a "virtual switch”.
  • Table 4 shows an example of the data structure of the address table.
  • address table the following three item sets are described as address information used for connection between each virtual switch for each node. ⁇ Address family (IPv4 or IPv6, etc.), IP address, netmask>
  • the node N1 is connected to the virtual switches SW0 and SW1, and the address information of the NW interface connected to the virtual switch SW0 at the node N1 is ⁇ address family IPv4, IP address 192.168.10.11, netmask 255.255. It shows that .255.0>.
  • Routing table is a table that summarizes information on the routing (default gateway, static routing, etc.) of each node that constitutes the pseudo NW.
  • Table 5 shows an example of the data structure of the routing table.
  • the following three item sets are described for each node as routing information related to the connection between each virtual switch.
  • ⁇ Connection destination IP address, connection destination netmask, gateway> (Here, in the item of "gateway", describe the IP address of the gateway to be routed when sending to the connection destination.)
  • the routing information of the NW interface connected to the virtual switch SW0 at the node N0 is ⁇ connection destination IP address 192.168.30.0, connection destination netmask 255.255.255.0, gateway 192.168.10.13>.
  • the default gateway is set for the NW interface connected to the virtual switch SW1 of the nodes N5 and N6, the connection destination IP address and the connection destination netmask are omitted, and the default gateway is 192.168.30.33. ..
  • service table is a table that summarizes information on service functions provided by each node that constitutes a pseudo NW.
  • service functions include, for example, HTTP (HyperText Transfer Protocol) and FTP (File Transfer Protocol).
  • Table 6 shows an example of the data structure of the service table.
  • a list of the following three items is described as information on the service function provided to other nodes by using the connection between each virtual switch for each node.
  • Service name list of port numbers to be used, service setting information (setting information required for each service function)>
  • Access control table is information used when each node constituting the pseudo NW is a router, a firewall, or the like, and is a table summarizing information related to access control of each node.
  • Table 7 shows an example of the data structure of the access control table.
  • the access control table describes a list of the following seven item sets as rules for packets that are allowed (or blocked) to pass from the virtual switch connected to each node. ⁇ Address family, source address, source netmask, destination address, destination netmask, destination port number, action (permit / block)>
  • Meta Information Table is a table that summarizes additional information about each node constituting the pseudo NW. For example, the purpose of the node, the role name and user name of the administrator, the specifications related to resources such as the memory size and the HDD size, and the like can be considered.
  • Table 8 shows an example of the data structure of the meta information table.
  • the meta information table describes the meta information required for each node. Items of meta information shall be prepared according to the nature of the NW to be constructed and the operational necessity. In the example of Table 8, the usage of each node and the administrator information are shown. As information on the use of the node, for example, an operation terminal, a user terminal, a mail server, a DNS server, and the like can be set.
  • the network design, interface address, routing information, etc. can be centrally managed in the correspondence table between the virtual switch (SW) and the virtual machine (VM) to reflect the network design.
  • the node ID is used for the correspondence between each node and the VM. Therefore, it is a premise that the node ID used to identify the VM in the VM list and the node ID used in the NW design information created by the NW designer correspond to each other.
  • it is necessary to align the node IDs in each VM list.
  • it may be converted in the correspondence table according to each node ID.
  • 7 to 9 are diagrams for explaining how to create commands for network setting (Nos. 1 to 3), and will be described by taking an address setting command of a virtual machine (VM) having a node ID: N0 as an example.
  • VM virtual machine
  • the OS type and version of the node ID: N0 are acquired by referring to the VM list of the virtual machine environment information.
  • the OS of node N0 is CentOS and is version 6.
  • the address information set for connecting to the virtual switch SW0 at the node N0 is acquired.
  • the NW interface to be activated when the node N0 connects to the virtual switch SW0 is obtained by referring to the NW interface correspondence table of the virtual machine environment information.
  • the address information (address family, IP address, netmask) used for the connection of the node N0 with the virtual switch SW0 is obtained from the address table of the NW design information.
  • the NW interface is eth0
  • the IPv4 address 192.168.10.10
  • the netmask as the address information to be set.
  • the command template table of the virtual machine environment information is referred to. Since it has already been obtained that the OS of node N0 is version 6 on CentOS, as a command for setting the IPv4 address, the command template "ifconfig ⁇ NW interface> ⁇ IPv4address" that matches the OS identification / version (CentOS 6) > ⁇ IPv4netmask>"is obtained. By substituting the setting value acquired in FIG. 8 into this, the address setting command for node N0 can be automatically created as follows. ifconfig eth0 192.168.10.10 255.255.255.0
  • commands can be generated, enabling automation of command generation (automatic creation by computer). Other commands can be created in the same way.
  • the above-mentioned command is automatically created by using the command creation function of the network construction terminal 1.
  • the operation of the command creation function will be described with reference to the flowchart shown in FIG.
  • the network construction terminal 1 acquires "virtual machine environment information" and "network design information”.
  • Each virtual machine holds the network construction terminal 1 from the "NW interface correspondence table" in the virtual machine environment information and the "address table” in the network design information. Determine the IP address information to be assigned to each NW interface.
  • the command template to be used for setting the address of each virtual machine is selected from the "command template table" in the network design information based on the "VM list”.
  • the NW interface of each node determined earlier and the IP address information to be assigned are applied to the selected command template to create an address setting command for each virtual machine (VM).
  • the network construction terminal 1 is held by each virtual machine from the "NW interface correspondence table" in the virtual machine environment information and the "routing table” in the network design information. Determine the contents of the routing settings to be applied to each NW interface.
  • the command template to be used for the routing setting of each virtual machine is selected based on the "VM list" from the "command template table” in the network design information.
  • the NW interface of each node determined earlier and the contents of the routing setting to be applied are applied to the selected command template, and the routing setting command of each virtual machine (VM) is created.
  • Each virtual machine holds the network construction terminal 1 from the "NW interface correspondence table" in the virtual machine environment information and the "service table” in the network design information. Determine the setting contents of the service function to be applied to each NW interface.
  • the command template to be used for the service setting of each virtual machine is selected from the "command template table" in the network design information based on the "VM list”. Apply the service function settings to be applied to the NW interface of each node determined earlier to the selected command template, and create a service setting command for each virtual machine (VM).
  • Step 5 Creation of access control setting command
  • each virtual machine is based on the "NW interface correspondence table" in the virtual machine environment information and the "access control table” in the network design information. Determine the access control settings to be applied to each NW interface to be held.
  • the command template to be used for the access control setting of each virtual machine is selected from the "command template table" in the network design information based on the "VM list”.
  • the access control setting contents to be applied to the NW interface of each node determined earlier are applied to the selected command template, and the access control setting command of each virtual machine (VM) is created.
  • Step 6 Output of command list of each virtual machine (VM)
  • the network construction terminal 1 lists the command group of each virtual machine (VM) obtained in steps 2 to 5, and each virtual machine (VM). Output as a command list for each.
  • the network construction terminal 1 can automatically create commands (command list of each virtual machine) used for network construction. Furthermore, by automatically sending commands from the network construction terminal 1 to the virtual machine environment 2 and executing the command list in each virtual machine in the virtual machine environment, the network construction in the virtual machine environment is automatically performed. It can be carried out.
  • the present invention is not limited to this, and is configured as a method of configuring a network in the virtual machine environment.
  • a computer can be preferably used to function as the network construction terminal 1 described above, and such a computer provides processing contents for realizing the command creation function (each step described in the flowchart) of the network construction terminal 1. It can be realized by storing the described program in the storage unit of the computer and reading and executing this program by the CPU of the computer.
  • This program can be recorded on a computer-readable recording medium.
  • the recording medium on which the program is recorded may be a non-transient (non-temporary) recording medium.

Landscapes

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

Abstract

仮想マシン環境におけるネットワークの構築に用いられるコマンドの作成を自動化するシステム、方法、及びプログラムを提供する。本発明は、コマンド作成機能を持つネットワーク構築端末と、仮想マシンが動作する仮想マシン環境を提供する少なくとも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は、コマンド作成機能を有する。すなわち、ネットワーク構築端末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 JPOXMLDOC01-appb-T000001
(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 JPOXMLDOC01-appb-T000002
(1-3)コマンドテンプレート表
 「コマンドテンプレート表」は、仮想マシン環境にプールされている仮想マシン(VM)上のOSに対して、ネットワーク構築のための操作を行わせる「コマンド」を生成するためのテンプレートのリスト(表)である。
 表3に、マンドテンプレート表のデータ構成の例を示す。コマンドテンプレート表は、具体的にはネットワーク(疑似NW)構築のための操作ごとに、さらにOS種別(OSのディストリビューションの違いも考慮する)・バージョンごとに、実施すべきコマンドとそのパラメータとなる項目をまとめた表である。コマンドテンプレート表に基づいて、実行すべき操作と、対象となるVMのOS種別等から、コマンドのテンプレートを得ることができる。
Figure JPOXMLDOC01-appb-T000003
(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 JPOXMLDOC01-appb-T000004
(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 JPOXMLDOC01-appb-T000005
(2-3)サービス表
 「サービス表」は、疑似NWを構成する各ノードが提供するサービス機能に関する情報をまとめた表である。サービス機能の例としては、例えばHTTP(HyperText Transfer Protocol)やFTP(File Transfer Protocol)などがある。
 表6に、サービス表のデータ構造の例を示す。サービス表は、各ノードごとに、各仮想スイッチ間との接続を使って他のノードに提供されるサービス機能の情報として、以下の3項目の組のリストをそれぞれ記述する。
<サービス名、使用するポート番号のリスト、サービス設定情報(各サービス機能に応じて必要となる設定情報)>
 表6の例では、ノードN1において仮想スイッチSW0との接続を介して提供されるサービス機能の情報は、サービス名httpd、使用するポート番号のリストtcp/80 であることを示している。
Figure JPOXMLDOC01-appb-T000006
(2-4)アクセスコントロール表
 「アクセスコントロール表」は、疑似NWを構成する各ノードがルータやファイアウォールなどの場合に使われる情報であり、各ノードのアクセスコントロールに関する情報をまとめた表である。
 表7に、アクセスコントロール表のデータ構造の例を示す。アクセスコントロール表は、各ノードごとに接続された仮想スイッチからの通過を許可する(あるいは遮断する)パケットのルールとして、以下の7項目の組のリストをそれぞれ記述する。
<アドレスファミリ、送信元アドレス、送信元ネットマスク、送信先アドレス、送信先ネットマスク、送信先ポート番号、アクション(許可/遮断)>
 表7の例では、各セルのルールは上から下に順に評価されるものとする。ノードN3のSW2向けのルールの場合、最後の<*,*,*,*,*,*,遮断>はすべてのパケットを拒否するルールである。したがって、一行目のルールに該当するパケット以外はすべて遮断されることを示す。
Figure JPOXMLDOC01-appb-T000007
(2-5)メタ情報表
 「メタ情報表」は、疑似NWを構成する各ノードに関する付加的な情報をまとめた表である。例えば、そのノードの用途、管理者のロール名やユーザ名、メモリサイズやHDDサイズなどのリソースに関する仕様、などが考えられる。
 表8に、メタ情報表のデータ構造の例を示す。メタ情報表は、各ノードごとに必要なメタ情報を記述する。構築予定のNWの性質や運用上の必要性に応じてメタ情報の項目は用意されるものとする。表8の例では、各ノードの用途と管理者の情報が示されている。ノードの用途に関する情報としては、例えば、運用端末、ユーザ端末、メールサーバ、DNSサーバ等、を設定できる。
Figure JPOXMLDOC01-appb-T000008
 このように、ネットワーク設計を反映するための仮想スイッチ(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):仮想マシン環境情報とネットワーク設計情報の取得
 ネットワーク構築端末1は、「仮想マシン環境情報」と「ネットワーク設計情報」を取得する。
 ステップ2(S12):アドレス設定コマンドの作成
 ネットワーク構築端末1は、仮想マシン環境情報の中の「NWインターフェース対応表」とネットワーク設計情報の中の「アドレス表」とより、各仮想マシンが保持する各NWインターフェースに割り当てるIPアドレスの情報を決定する。次いで、ネットワーク設計情報の中の「コマンドテンプレート表」から「VMリスト」に基づいて各仮想マシンのアドレス設定に使用するコマンドテンプレートを選択する。選択されたコマンドテンプレートに、先に決定した各ノードのNWインターフェースと割り当てるIPアドレスの情報とを適用し、各仮想マシン(VM)のアドレス設定コマンドを作成する。
 ステップ3(S13):ルーティング設定コマンドの作成
 ネットワーク構築端末1は、仮想マシン環境情報の中の「NWインターフェース対応表」とネットワーク設計情報の中の「ルーティング表」とより、各仮想マシンが保持する各NWインターフェースに施すべきルーティング設定の内容を決定する。次いで、ネットワーク設計情報の中の「コマンドテンプレート表」から「VMリスト」に基づいて各仮想マシンのルーティング設定に使用するコマンドテンプレートを選択する。選択されたコマンドテンプレートに、先に決定した各ノードのNWインターフェースと施すべきルーティング設定の内容を適用し、各仮想マシン(VM)のルーティング設定コマンドを作成する。
 ステップ4(S14):サービス設定コマンドの作成
 ネットワーク構築端末1は、仮想マシン環境情報の中の「NWインターフェース対応表」とネットワーク設計情報の中の「サービス表」とより、各仮想マシンが保持する各NWインターフェースに施すべきサービス機能の設定内容を決定する。次いで、ネットワーク設計情報の中の「コマンドテンプレート表」から「VMリスト」に基づいて各仮想マシンのサービス設定に使用するコマンドテンプレートを選択する。選択されたコマンドテンプレートに、先に決定した各ノードのNWインターフェースに施すべきサービス機能の設定内容を適用し、各仮想マシン(VM)のサービス設定コマンドを作成する。
 ステップ5(S15):アクセスコントロール設定コマンドの作成
 ネットワーク構築端末1は、仮想マシン環境情報の中の「NWインターフェース対応表」とネットワーク設計情報の中の「アクセスコントロール表」とより、各仮想マシンが保持する各NWインターフェースに施すべきアクセスコントロールの設定内容を決定する。次いで、ネットワーク設計情報の中の「コマンドテンプレート表」から「VMリスト」に基づいて各仮想マシンのアクセスコントロール設定に使用するコマンドテンプレートを選択する。選択されたコマンドテンプレートに、先に決定した各ノードのNWインターフェースに施すべきアクセスコントロールの設定内容を適用し、各仮想マシン(VM)のアクセスコントロール設定コマンドを作成する。
ステップ6(S16):各仮想マシン(VM)のコマンドリストの出力
 ネットワーク構築端末1は、ステップ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に応じたコマンドのテンプレートとを読み出し、前記ネットワーク設計情報から、少なくとも前記ネットワークのノードに設定する情報を読み出し、前記コマンドのテンプレートのパラメータに前記ノードに設定する情報を適用することを含む、プログラム。
PCT/JP2020/008097 2019-03-11 2020-02-27 システム、方法、及びプログラム WO2020184202A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/593,064 US12086623B2 (en) 2019-03-11 2020-02-27 System, method, and program

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2020184202A1 true WO2020184202A1 (ja) 2020-09-17

Family

ID=72426551

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/008097 WO2020184202A1 (ja) 2019-03-11 2020-02-27 システム、方法、及びプログラム

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
WO2008002419A2 (en) * 2006-06-19 2008-01-03 Xensource, Inc. Open virtual appliance
US8972978B2 (en) * 2008-05-02 2015-03-03 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 华为技术有限公司 虚端口网络策略配置方法、一种网络管理中心和相关设备
US9043786B1 (en) * 2012-06-29 2015-05-26 Emc Corporation Blueprint-driven environment template creation in a virtual infrastructure
US8997094B2 (en) * 2012-06-29 2015-03-31 Pulse Secure, Llc Migrating virtual machines between computing devices
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 华为技术有限公司 一种实现虚拟机通信的方法和装置
US9356866B1 (en) * 2014-01-10 2016-05-31 Juniper Networks, Inc. Receive packet steering 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
US20220188142A1 (en) 2022-06-16
US12086623B2 (en) 2024-09-10
JP2020150317A (ja) 2020-09-17

Similar Documents

Publication Publication Date Title
CN111756785B (zh) 一种配置负载平衡器的系统及方法
US10411947B2 (en) Hot swapping and hot scaling containers
US10862753B2 (en) High availability for stateful services in public cloud logical networks
CN111355604B (zh) 在软件定义网络上的用户定制和自动化操作的系统和方法
CN112929219B (zh) 多数据中心环境中的逻辑路由器和交换机
US10491516B2 (en) Packet communication between logical networks and public cloud service providers native networks using a single network interface and a single routing table
US20200177670A1 (en) Accessing endpoints in logical networks and public cloud service providers native networks using a single network interface and a single routing table
US11695591B2 (en) In-band management interface with user space datapath
EP3430512B1 (en) Network virtualization of containers in computing systems
US20190173780A1 (en) Failover of centralized routers in public cloud logical networks
CN111095209B (zh) 在云中通过覆盖网络和底层网络访问服务端点
CN110875848A (zh) 用于虚拟执行元件的多个网络
US10826723B1 (en) Virtual network address space auto-migration
EP4164196A1 (en) High availability for stateful services in public cloud logical networks
CN114338606B (zh) 一种公有云的网络配置方法及相关设备
WO2015127851A1 (en) System and method for creating service chains and virtual networks in the cloud
US8640127B2 (en) Relocating guest machine using proxy tool having multiple virtual machines where one virtual machines provides host route for relocation
WO2020184202A1 (ja) システム、方法、及びプログラム
WO2020252921A1 (zh) 多活负载均衡应用的扩容方法、装置、设备及存储介质
Denton Learning OpenStack Networking: Build a solid foundation in virtual networking technologies for OpenStack-based clouds
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
Logan et al. Containers
Singh Openstack: Orchestrate Public and Private Cloud Using Openstack/Vcenter Integration and Providing Tenant Separation

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20768970

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20768970

Country of ref document: EP

Kind code of ref document: A1