# Patent

## Title
Control apparatus, communication system, tunnel endpoint control method, and program

## Abstract

A control apparatus includes: a connection detection unit configured to detect that a virtual machine has newly been connected to one of a plurality of tunnel endpoints each of which functions as an endpoint of a virtual tunnel used for a communication between virtual machines that belong to a virtual network; a virtual network determination unit configured to determine a virtual network to which the detected virtual machine belongs on the basis of information in which virtual machines and virtual networks are associated with each other; and a tunnel endpoint control unit configured to cause, if the tunnel endpoint has not participated in the determined virtual network, the tunnel endpoint to participate in the determined virtual network.

## Background
TECHNICAL FIELD
Reference to Related Application
The present invention is based upon and claims the benefit of the priority of Japanese patent application No. 2013-000160, filed on Jan. 4, 2013, the disclosure of which is incorporated herein in its entirety by reference thereto.
The present invention relates to a control apparatus, a communication system, a tunnel endpoint control method, and a program. In particular, it relates to: a control apparatus which controls a communication between virtual machines that belong to a virtual network configured by using a virtual tunnel; a communication system; a tunnel endpoint control method; and a program.
BACKGROUND
In recent years, techniques referred to as a VXLAN (Virtual Extensible Local Area Network), NVGRE (Network Virtualization using Generic Routing Encapsulation), and STT (Stateless Transport Tunneling) have been proposed as tunneling protocols that could be applied to cloud computing. NPL 1 is a draft of the VXLAN.
In the VXLAN, a layer 2 frame is encapsulated at a tunnel endpoint that functions as an endpoint of a virtual tunnel. In this encapsulation, a VXLAN Network Identifier (VNI) having a length of 24 bits is added to an encapsulation header (outer header) (see “5. VXLAN Frame Format” on Page 9 and the subsequent description thereof in NPL 1). The length of the VNI is twice the length of a VLAN ID defined by IEEE802.1Q. Thus, since the number of “tenants (users sharing a physical network)” in the above cloud computing environment can significantly be increased (up to about 16.77 million (2^24)), the VXLAN has been drawing attention. In addition, NPL 2 is a draft of the NVGRE in which the same tunneling as that of the VXLAN is performed. In the NVGRE, the number of segments obtained through logical division can also be increased by using a Tenant Network Identifier (TNI) having a length of 24 bits.
In addition, a technique referred to as OpenFlow has been proposed (see NPLs 3 and 4). OpenFlow recognizes communications as end-to-end flows and performs path control, failure recovery, load balancing, and optimization on a per-flow basis. Each OpenFlow switch according to NPL 4 has a secure channel for communication with an OpenFlow controller and operates according to a flow table suitably added or rewritten by the OpenFlow controller. In the flow table, a set of the following three is defined for each flow: Match conditions (Match Fields) against which a packet header is matched; Flow statistical information (Counters); and Instructions that define at least one processing content (see section “4.1 Flow Table” in NPL 4).
For example, when an OpenFlow switch receives a packet, the OpenFlow switch searches the flow table for an entry having a match condition that matches header information of the received packet (see 4.3 “Match Fields” in NPL 4). If, as a result of the search, the OpenFlow switch finds an entry that matches the received packet, the OpenFlow switch updates the flow statistical information (Counters) and processes the received packet on the basis of a processing content(s) (packet transmission from a specified port, flooding, dropping, etc.) written in the Instructions field of the entry. If, as a result of the search, the OpenFlow switch does not find an entry that matches the received packet, the OpenFlow switch transmits an entry setting request to the OpenFlow controller via the secure channel. Namely, the OpenFlow switch requests the OpenFlow controller to transmit control information for processing the received packet (Packet-In message). The OpenFlow switch receives a flow entry in which at least one processing content is defined from the OpenFlow controller and updates the flow table. In this way, by using an entry stored in the flow table as a processing rule, the OpenFlow switch performs packet forwarding.
NON-PATENT LITERATURE (NPL)


    NPL 1: M.Mahalingam, and seven others, “VXLAN: A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Network,” [online], [searched on Nov. 29, 2012], Internet <URL:http://tools.ietf.org/pdf/draft-mahalingam-dutt-dcops-vxlan-02.pdf>
    NPL 2: M.Sridharan, and eight others, “NVGRE: Network Virtualization using Generic Routing Encapsulation,” [online], [Nov. 29, 2012], Internet <URL:http://tools.ietf.org/pdf/draft-sridharan-virtualization-nvgre-01.pdf>
    NPL 3: Nick McKeown, and seven others, “OpenFlow: Enabling Innovation in Campus Networks,” [online], [searched on Nov. 22, 2012], Internet <URL:http://www.openflow.org/documents/openflow-wp-latest.pdf>
    NPL 4: “OpenFlow Switch Specification” Version 1.1.0 Implemented (Wire Protocol 0×02), [online], [searched on Nov. 22, 2012], Internet <URL:http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf>


SUMMARY
The following analysis has been made by the present inventor. According to a virtual tunnel technique compatible, for example, with the VXLAN or NVGRE in NPL 1 or 2, one virtual machine communicates with another virtual machine that belongs to the same virtual network connected to an opposite tunnel endpoint (which will simply be referred to as a “TEP”) that functions as an endpoint of a virtual tunnel via a TEP to which the one virtual machine has been connected. To realize such communication, it is necessary to perform setting for causing the TEP to which the one virtual machine has been connected to participate in the virtual network with which the virtual machine is associated (more specifically, setting for causing the TEP to participate in a multicast group having a corresponding VNI).
In a virtual environment, depending on a service demand, a virtual machine is established or moved (migrated) to another virtual server. Thus, when virtual machines communicate with each other via a virtual tunnel compatible with the VXLAN or NVGRE in NPL 1 or 2, there is a problem that the setting for causing a TEP to participate in (connect to) a virtual network and the management of the set information become complex.
An object of the present invention is to provide a control apparatus, a communication system, a tunnel endpoint control method, and a program that can contribute to facilitating: setting for connection between a TEP in a virtual network configured by using a virtual tunnel and a virtual network; and management of the connection.
According to a first aspect, there is provided a control apparatus, including: a connection detection unit configured to detect that a virtual machine has newly been connected to one of a plurality of tunnel endpoints each of which functions as an endpoint of a virtual tunnel used for a communication between virtual machines that belong to a virtual network; a virtual network determination unit configured to determine a virtual network to which the detected virtual machine belongs on the basis of information in which virtual machines and virtual networks are associated with each other; and a tunnel endpoint control unit configured to cause, if the tunnel endpoint has not participated in the determined virtual network, the tunnel endpoint to participate in the determined virtual network.
According to a second aspect, there is provided a communication system, including: a control apparatus; and a plurality of tunnel endpoints controlled by the control apparatus; wherein the control apparatus includes: a connection detection unit configured to detect that a virtual machine has newly been connected to one of a plurality of tunnel endpoints each of which functions as an endpoint of a virtual tunnel used for a communication between virtual machines that belong to a virtual network; a virtual network determination unit configured to determine a virtual network to which the detected virtual machine belongs on the basis of information in which virtual machines and virtual networks are associated with each other; and a tunnel endpoint control unit configured to cause, if the tunnel endpoint has not participated in the determined virtual network, the tunnel endpoint to participate in the determined virtual network.
According to a third aspect, there is provided a tunnel endpoint control method, including: causing a control apparatus, which controls a plurality of tunnel endpoints each of which functions as an endpoint of a virtual tunnel used for a communication between virtual machines that belong to a virtual network, to detect that a virtual machine has newly been connected to one of the plurality of tunnel endpoints; causing the control apparatus to determine a virtual network to which the detected virtual machine belongs on the basis of information in which virtual machines and virtual networks are associated with each other; and causing the control apparatus to cause, if the tunnel endpoint has not participated in the determined virtual network, the tunnel endpoint to participate in the determined virtual network. This method is associated with a certain machine, namely, with the control apparatus that controls the tunnel endpoints.
According to a fourth aspect of the present invention, there is provided a program, causing a computer, which controls a plurality of tunnel endpoints each of which functions as an endpoint of a virtual tunnel used for a communication between virtual machines that belong to a virtual network, to perform processing for: detecting that a virtual machine has newly been connected to one of the plurality of tunnel endpoints; determining a virtual network to which the detected virtual machine belongs on the basis of information in which virtual machines and virtual networks are associated with each other; and causing, if the tunnel endpoint has not participated in the determined virtual network, the tunnel endpoint to participate in the determined virtual network. This program can be recorded in a computer-readable (non-transient) storage medium. Namely, the present invention can be embodied as a computer program product.
The meritorious effects of the present invention are summarized as follows.
The present invention can contribute to facilitating: setting for connection between a TEP in a virtual network configured by using a virtual tunnel and a virtual network; and management of the connection.



BRIEF DESCRIPTION OF DRAWINGS
FIG. 1 illustrates a configuration according to an exemplary embodiment of the present disclosure.
FIG. 2 illustrates a configuration of a communication system according to a first exemplary embodiment of the present disclosure.
FIG. 3 is a functional block diagram illustrating a detailed configuration of a control apparatus according to the first exemplary embodiment of the present disclosure.
FIG. 4 illustrates exemplary information stored in a VM-TEP connection status storage unit in the control apparatus according to the first exemplary embodiment of the present disclosure.
FIG. 5 illustrates exemplary information stored in a VM-virtual NW relationship storage unit in the control apparatus according to the first exemplary embodiment of the present disclosure.
FIG. 6 illustrates exemplary information stored in a virtual NW-TEP connection status storage unit in the control apparatus according to the first exemplary embodiment of the present disclosure.
FIG. 7 illustrates a state in which a new VM 7 has been connected to a TEP-2 in FIG. 2.
FIG. 8 illustrates an entry added to the VM-TEP connection status storage unit in response to the connection of the VM 7.
FIG. 9 illustrates a state in which the control apparatus has determined a virtual network to which the new VM 7 belongs.
FIG. 10 illustrates a state in which the control apparatus has connected the TEP to the virtual network to which the new VM 7 belongs.
FIG. 11 illustrates an entry added to the virtual NW-TEP connection status storage unit in response to the connection of the TEP-2.



PREFERRED MODES
First, an outline of an exemplary embodiment of the present disclosure will be described with reference to a drawing. In the following outline, various components are denoted by reference characters for the sake of convenience. Namely, the following reference characters are merely used as examples to facilitate understanding of the present disclosure, not to limit the present disclosure to the illustrated modes.
As illustrated in FIG. 1, an exemplary embodiment of the present disclosure can be realized by a control apparatus 10A including a virtual network determination unit 11, a connection detection unit 12, and a TEP (tunnel endpoint) control unit 13.
More specifically, the connection detection unit 12 detects that a virtual machine (for example, VM 1 in FIG. 1) has newly been connected to a tunnel endpoint (for example, TEP-1 in FIG. 1) which functions as an endpoint of a virtual tunnel used for a communication between virtual machines that belong to a virtual network. By receiving a notification of connection of a VM to a TEP from the TEP, the connection detection unit 12 can detect that the VM has newly been connected to the TEP. Alternatively, the connection detection unit 12 may receive such notification from a virtual network management system or the like that provides a management environment for virtual machines or virtual switches. Alternatively, another method may be used.
Next, the virtual network determination unit 11 determines a virtual network to which the detected virtual machine (for example, the VM 1 in FIG. 1) belongs on the basis of information in which virtual machines and virtual networks are associated with each other. The virtual network may be determined by using a table or the like equivalent to a table for managing a relationship between VNIs and MAC addresses of virtual machines held in tunnel endpoints. Alternatively, when transmitting a virtual machine detection notification, each tunnel endpoint may add a VNI in the virtual machine detection notification.
If the tunnel endpoint (for example, the TEP-1 in FIG. 1) to which the virtual machine (for example, the VM 1 in FIG. 1) has newly been connected has not participated in the determined virtual network, the TEP control unit 13 causes the tunnel endpoint to participate in the determined virtual network. More specifically, the TEP control unit 13 performs processing for instructing the tunnel endpoint to participate (JOIN) in a multicast group configured by the determined virtual network.
In this way, when a virtual machine is connected to a tunnel endpoint, setting of the tunnel endpoint is automatically performed.
[First exemplary embodiment]
Next, a first exemplary embodiment of the present disclosure will be described in detail with reference to the drawings. FIG. 2 illustrates a configuration of a communication system according to the first exemplary embodiment of the present disclosure. FIG. 2 illustrates: a physical network (a physical NW); virtual networks (virtual NWs #1 to #3) which are obtained through logical division of the physical NW; tunnel endpoints TEP-1 to TEP-3 each of which configures at least one virtual tunnel through at least one of the virtual NWs #1 to #3; virtual machines (VMs) 1 to 6 each of which can be connected to at least one of the tunnel endpoints TEP-1 to TEP-3; and a control apparatus 10 which controls the tunnel endpoints TEP-1 to TEP-3.
Each of the virtual NWs #1 to #3 is a network obtained through logical division by using the VXLAN in NPL 1, the NVGRE in NPL 2, STT, or an equivalent technique in which, by using a tunnel endpoint, even if a VM does not know its own virtual network identifier or the like, the VM can communicate with a VM connected to the same tunnel endpoint or another tunnel endpoint.
The tunnel endpoints TEP-1 to TEP-3 are configured by physical switches, virtual switches, or the like controlled by the control apparatus 10. Any one of the tunnel endpoints TEP-1 to TEP-3 can configure a virtual tunnel with an opposite tunnel endpoint via a virtual NW. As the tunneling protocol, the VXLAN protocol in NPL 1, the NVGRE protocol in NPL 2, the STT protocol, or an equivalent protocol may be used.
Each of the VMs 1 to 6 is managed by a hypervisor or the like (not illustrated) and operates on a virtual server or the like. If physical switches are used as the tunnel endpoints TEP-1 to TEP-3, the VMs 1 to 6 are connected to the tunnel endpoints TEP-1 to TEP-3 via virtual switches arranged on the virtual server. Each of the VMs 1 to 6 in FIG. 2 is given one of the numbers #1 to #3 and belongs to a virtual network indicated by a corresponding one of the numbers #1 to #3.
FIG. 3 is a functional block diagram illustrating a detailed configuration of the control apparatus according to the first exemplary embodiment of the present disclosure. As illustrated in FIG. 3, the control apparatus includes a virtual network determination unit 11, a connection detection unit 12, a TEP control unit 13, a VM-virtual NW correspondence relationship storage unit (second storage unit) 14, a VM-TEP connection status storage unit (first storage unit) 15, and a TEP participation status storage unit (third storage unit) 16.
FIG. 4 illustrates exemplary information stored in the VM-TEP connection status storage unit 15 in the control apparatus according to the present exemplary embodiment. In the example in FIG. 4, as illustrated in FIG. 2, entries indicating that the VMs 1 and 2 are connected to the tunnel endpoint TEP-1 are stored. Likewise, entries indicating that the VMs 3 and 4 are connected to the tunnel endpoint TEP-2 and the VMs 5 and 6 are connected to the tunnel endpoint TEP-3 are stored.
When detecting that a VM has newly been connected to a TEP, the connection detection unit 12 adds a corresponding entry in the VM-TEP connection status storage unit 15 and notifies the virtual network determination unit 11 of the connection. When detecting that a VM has been removed or moved from a TEP, the connection detection unit 12 deletes a corresponding entry from the VM-TEP connection status storage unit 15 and notifies the virtual network determination unit 11 of the removal or movement.
For example, the control apparatus 10 may detect connection of a VM to a TEP by receiving a notification from the TEP or from a virtual network management system providing a management environment for virtual machines or virtual switches. Alternatively, the control apparatus 10 may be notified by the administrator of the VM or a servicer. Alternatively, the control apparatus 10 may analyze a packet transmitted from the VM and determine connection of the VM on the basis of a feature or an identifier of the packet.
The control apparatus 10 may detect connection of a VM to a TEP by causing the connection detection unit 12 receive a notification from another apparatus managing the virtual machines (for example, a virtual machine management apparatus, a control apparatus, or a higher-level apparatus that manages a virtual machine management apparatus). Each virtual machine may be provided with a function of notifying, when connected to a TEP, the control apparatus 10 of the connection to the TEP.
In addition, if a TEP is configured by an OpenFlow switch in NPLs 3 and 4, control information (a flow entry) for causing the TEP to forward a packet transmitted from a VM to the control apparatus 10 may be set. For example, control information (a flow entry) for causing a TEP to output, when the TEP receives a packet from a VM, the packet via a port connected to the control apparatus 10 may be set. Alternatively, an OpenFlow switch may transmit a Packet-In message for requesting the OpenFlow controller to transmit control information (a flow entry).
FIG. 5 illustrates exemplary information stored in the VM-virtual NW correspondence relationship storage unit 14 in the control apparatus according to the present exemplary embodiment. In the example in FIG. 5, as illustrated in FIG. 2, entries indicating a correspondence relationship among the virtual machines and the virtual networks are stored. More specifically, the entries indicate that the VMs 1, 4, and 5 belong to the virtual network #1, the VMs 2, 6, and 7 belong to the virtual network #3, and the VM 3 belongs to the virtual network #2. As the VM-virtual NW correspondence relationship illustrated in FIG. 5, the control apparatus may acquire, from each TEP, mapping information indicating a correspondence between MAC addresses of VMs stored by a TEP for determining forwarding destinations of received packets and VNIs (TNIs) (see “4.1. Unicast VM to VM communication” in NPL 1).
When notified by the connection detection unit 12 of connection of a new VM, the virtual network determination unit 11 refers to the VM-virtual NW correspondence relationship storage unit 14, determines a virtual network to which the new VM needs to belong, and notifies the TEP control unit 13 of the determined virtual network. When notified by the connection detection unit 12 of removal of a VM, the virtual network determination unit 11 refers to the VM-virtual NW correspondence relationship storage unit 14, determines a virtual network to which the new VM needs to belong, and notifies the TEP control unit 13 of the virtual network.
When notified by the virtual network determination unit 11 of the connection or removal of the VM and the determined virtual network, the TEP control unit 13 refers to the TEP participation status storage unit 16, determines whether the TEP needs to participate in the virtual network, and controls the TEP on the basis of the determination result. For example, when notified of connection of a new VM, the TEP control unit 13 refers to a connection status between virtual networks and TEPs as illustrated in FIG. 6. If the TEP to which the newly detected VM has been connected has not participated in the corresponding virtual network, the TEP control unit 13 performs processing for causing the TEP to which the newly detected VM has been connected to participate (JOIN) in a corresponding virtual network multicast group. For example, if the virtual machine connected to the determined virtual network via the tunnel endpoint has been removed, the TEP control unit 13 performs processing for causing the TEP from which the VM has been removed to withdraw (LEAVE) from the corresponding virtual network multicast group. The TEP control unit 13 updates the TEP participation status storage unit 16 on the basis of participation or withdrawal of the TEP in or from the virtual network.
For example, in the case of the VXLAN, the participation in or withdrawal from the multicast group is performed by transmitting an IGMP (Internet Group Management Protocol) message (JOIN/LEAVE) to a router or the like that manages the multicast group (see “4.2 Broadcast Communication and Mapping to Multicast” in NPL 1). Of course, another multicast group management protocol may be used.
In the configuration in FIG. 3, the VM-virtual NW correspondence relationship storage unit 14, the VM-TEP connection status storage unit 15, and the TEP participation status storage unit 16 are separately configured for illustrative purposes. Alternatively, a database or the like in which these units are integrated may be arranged. In addition, the virtual network determination unit 11, the connection detection unit 12, and the TEP control unit 13 may be integrated as needed.
Next, an operation according to the present exemplary embodiment will be described with reference to the drawings. The following description will be made on the basis of an example in which a VM has newly been connected to a TEP in FIG. 2.
FIG. 7 illustrates a state in which a VM 7 has been established in the communication system in FIG. 2 and connected to the TEP-2. When detecting connection of the VM 7 to the TEP-2, the connection detection unit 12 in the control apparatus 10 adds an entry in which the VM 7 and the TEP-2 are associated with each other in the VM-TEP connection status storage unit 15 as illustrated in FIG. 8 and notifies the virtual network determination unit 11 of the connection (step S001).
Next, the virtual network determination unit 11 refers to the VM-virtual NW correspondence relationship storage unit 14 and determines a virtual network to which the VM 7 connected to the TEP-2 belongs. In the example in FIG. 5, since the VM 7 is associated with the virtual network #3, the virtual network determination unit 11 determines that the virtual network #3 is the virtual network to which the VM7 belongs, as illustrated in FIG. 9 (step S002). The virtual network determination unit 11 notifies the TEP control unit 13 that the VM 7 that belongs to the virtual network #3 has been connected to the TEP-2.
When notified of the connection, the TEP control unit 13 refers to the TEP participation status storage unit 16 and determines whether the TEP-2 has already participated in the virtual network #3. As a result of the determination, if the TEP-2 has not participated in the virtual network #3, the TEP control unit 13 causes the TEP-2 to participate in the virtual network #3, as illustrated in FIG. 10 (step S003). In addition, the TEP control unit 13 adds an entry in which the TEP-2 and the virtual network #3 are associated with each other in the TEP participation status storage unit 16, as illustrated in FIG. 11.
Next, for example, if the VM 7 withdraws from the TEP-2, the connection detection unit 12 in the control apparatus 10 detects the withdrawal of the VM 7 from the TEP-2, deletes the entry in which the VM 7 and the TEP-2 are associated with each other from the VM-TEP connection status storage unit 15 as illustrated in FIG. 4, and notifies the virtual network determination unit 11 of the withdrawal.
Next, the virtual network determination unit 11 refers to the VM-virtual NW correspondence relationship storage unit 14 and determines a virtual network to which the VM 7 that has withdrawn from the TEP-2 belongs. In the example in FIG. 5, since the VM 7 is associated with the virtual network #3, the virtual network determination unit 11 notifies the TEP control unit 13 that the VM 7 that belongs to the virtual network #3 has withdrawn from the TEP-2.
When notified of the withdrawal, the TEP control unit 13 refers to the VM-TEP connection status storage unit 15 and the TEP participation status storage unit 16 and determines whether there is any VM connected to the virtual network #3 via the TEP-2 after the withdrawal of the VM 7. If, as a result of the determination, there is no VM connected to the virtual network #3 via the TEP-2, the TEP control unit 13 causes the TEP-2 to withdraw from the virtual network #3. In addition, the TEP control unit 13 deletes the entry in which the TEP-2 and the virtual network #3 are associated with each other from the TEP participation status storage unit 16, as illustrated in FIG. 6.
In this way, in conjunction with connection/removal of a VM to/from a TEP, participation/withdrawal of the TEP in/from a virtual network is performed. Consequently, since the setting for connecting the TEP and the virtual network and complex management are no longer required, the burden on the network administrator is reduced.
While exemplary embodiments of the present invention have thus been described, the present invention is not limited thereto. Further variations, substitutions, or adjustments can be made without departing from the basic technical concept of the present invention. For example, the present invention is not limited to the configurations of the networks and the number of elements illustrated in the exemplary embodiments.
Finally, suitable modes of the present invention will be summarized.
[Mode 1]


    (See the control apparatus according to the above first aspect)

[Mode 2]

    The control apparatus according to mode 1;


wherein, if the connection detection unit detects that the virtual machine has been removed from the tunnel endpoint, the connection detection unit notifies the virtual network determination unit of the removal of the virtual machine from the tunnel endpoint;
wherein the virtual network determination unit determines, on the basis of the information in which virtual machines and virtual networks are associated with each other, a virtual network to which the removed virtual machine has belonged and notifies the tunnel endpoint control unit of the virtual network to which the removed virtual machine has belonged and the tunnel endpoint to which the virtual machine has been connected; and
wherein, if the tunnel endpoint control unit determines that no virtual machine is connected to the determined virtual network via the tunnel endpoint after the removal of the virtual machine, the tunnel endpoint control unit causes the tunnel endpoint to withdraw from the determined virtual network.
[Mode 3]
The control apparatus according to mode 1 or 2, further comprising:
a first storage unit configured to store virtual machines connected to the tunnel endpoints;
a second storage unit configured to store the correspondence relationship between virtual machines and virtual networks; and
a third storage unit configured to store a virtual network(s) in which each of the tunnel endpoints participates;
wherein the control apparatus determines whether the tunnel endpoint to which the virtual machine has newly been connected has participated in the determined virtual network by referring to the third storage unit.
[Mode 4]
The control apparatus according to any one of modes 1 to 3;
wherein the connection detection unit detects that the virtual machine has been connected to the tunnel endpoint by receiving a notification from a virtual server on which the newly connected virtual machine operates.
[Mode 5]
The control apparatus according to any one of modes 1 to 3;
wherein the control apparatus detects that the virtual machine has been connected to the tunnel endpoint by setting control information for notifying the control apparatus of the connection of the virtual machine on the basis of a packet from the virtual machine in a switch that configures the tunnel endpoint.
[Mode 6]


    (See the communication system according to the above second aspect)

[Mode 7]

    (See the tunnel endpoint control method according to the above third aspect)

[Mode 8]

    (See the program according to the above fourth aspect)


Modes 6 to 8 can be expanded in the same way as mode 1 is expanded to modes 2 to 5.
The disclosure of each of the above NPLs is incorporated herein by reference thereto. Modifications and adjustments of the exemplary embodiments and the examples are possible within the scope of the overall disclosure (including the claims) of the present invention and based on the basic technical concept of the present invention. In addition, various combinations and selections of various disclosed elements (including the elements in each of the claims, exemplary embodiments, examples, drawings, etc.) are possible within the scope of the claims of the present invention. Namely, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the overall disclosure including the claims and the technical concept. In particular, the present description discloses numerical value ranges. However, even if the description does not particularly disclose arbitrary numerical values or small ranges included in the ranges, these values and ranges should be deemed to have been specifically disclosed.
REFERENCE SIGNS LIST


    10, 10A control apparatus
    11 virtual network determination unit
    12 connection detection unit
    13 TEP control unit
    14 VM-virtual NW correspondence relationship storage unit (second storage unit)
    15 VM-TEP connection status storage unit (first storage unit)
    16 TEP participation status storage unit (third storage unit)
    TEP-1 to TEP-3 tunnel endpoint
    VM1 to VM6 virtual machine

## Claims

1. A control apparatus, comprising:
a memory storing instructions; and
one or more processors configured to process the instructions to implement:
a connection detection unit configured to detect that a virtual machine has newly been connected to one of a plurality of tunnel endpoints each of which functions as an endpoint of a virtual tunnel used for a communication between virtual machines that belong to a virtual network;
a virtual network determination unit configured to determine a virtual network to which the detected virtual machine belongs on the basis of information in which virtual machines and virtual networks are associated with each other; and
a tunnel endpoint control unit configured to cause, if the tunnel endpoint has not participated in the determined virtual network, the tunnel endpoint to participate in the determined virtual network.

2. The control apparatus according to claim 1:
wherein, if the connection detection unit detects that the virtual machine has been removed from the tunnel endpoint, the connection detection unit notifies the virtual network determination unit of the removal of the virtual machine from the tunnel endpoint;
wherein the virtual network determination unit determines, on the basis of the information in which virtual machines and virtual networks are associated with each other, a virtual network to which the removed virtual machine has belonged and notifies the tunnel endpoint control unit of the virtual network to which the removed virtual machine has belonged and the tunnel endpoint to which the virtual machine has been connected; and
wherein, if the tunnel endpoint control unit determines that no virtual machine is connected to the determined virtual network via the tunnel endpoint after the removal of the virtual machine, the tunnel endpoint control unit causes the tunnel endpoint to withdraw from the determined virtual network.

3. The control apparatus according to claim 2, further comprising:
a first storage unit configured to store virtual machines connected to the tunnel endpoints;
a second storage unit configured to store the correspondence relationship between virtual machines and virtual networks; and
a third storage unit configured to store a virtual network(s) in which each of the tunnel endpoints participates;
wherein the control apparatus determines whether the tunnel endpoint to which the virtual machine has newly been connected has participated in the determined virtual network by referring to the third storage unit.

4. The control apparatus according to claim 1;
wherein the connection detection unit detects that the virtual machine has been connected to the tunnel endpoint by receiving a notification from a virtual server on which the newly connected virtual machine operates.

5. The control apparatus according to claim 1;
wherein the control apparatus detects that the virtual machine has been connected to the tunnel endpoint by setting control information for notifying the control apparatus of the connection of the virtual machine on the basis of a packet from the virtual machine in a switch that configures the tunnel endpoint.

6. A communication system, comprising:
a control apparatus; and
a plurality of tunnel endpoints controlled by the control apparatus;
wherein the control apparatus comprises memory storing instructions and one or more processors configured to execute the instructions to implement:
a connection detection unit configured to detect that a virtual machine has newly been connected to one of a plurality of tunnel endpoints each of which functions as an endpoint of a virtual tunnel used for a communication between virtual machines that belong to a virtual network;
a virtual network determination unit configured to determine a virtual network to which the detected virtual machine belongs on the basis of information in which virtual machines and virtual networks are associated with each other; and
a tunnel endpoint control unit configured to cause, if the tunnel endpoint has not participated in the determined virtual network, the tunnel endpoint to participate in the determined virtual network.

7. The communication system according to claim 6:
wherein, if the connection detection unit detects that the virtual machine has been removed from the tunnel endpoint, the connection detection unit notifies the virtual network determination unit of the removal of the virtual machine from the tunnel endpoint;
wherein the virtual network determination unit determines, on the basis of the information in which virtual machines and virtual networks are associated with each other, a virtual network to which the removed virtual machine has belonged and notifies the tunnel endpoint control unit of the virtual network to which the removed virtual machine has belonged and the tunnel endpoint to which the virtual machine has been connected; and
wherein, if the tunnel endpoint control unit determines that no virtual machine is connected to the determined virtual network via the tunnel endpoint after the removal of the virtual machine, the tunnel endpoint control unit causes the tunnel endpoint to withdraw from the determined virtual network.

8. The communication system according to claim 7;
wherein the control apparatus further comprises:
a first storage unit configured to store virtual machines connected to the tunnel endpoints;
a second storage unit configured to store the correspondence relationship between virtual machines and virtual networks; and
a third storage unit configured to store a virtual network(s) in which each of the tunnel endpoints participates;

wherein the control apparatus determines whether the tunnel endpoint to which the virtual machine has newly been connected has participated in the determined virtual network by referring to the third storage unit.

9. The communication system according to claim 6;
wherein the connection detection unit detects that the virtual machine has been connected to the tunnel endpoint by receiving a notification from a virtual server on which the newly connected virtual machine operates.

10. The communication system according to claim 6;
wherein the control apparatus detects that the virtual machine has been connected to the tunnel endpoint by setting control information for notifying the control apparatus of the connection of the virtual machine on the basis of a packet from the virtual machine in a switch that configures the tunnel endpoint.

11. A tunnel endpoint control method, comprising:
causing a control apparatus, which controls a plurality of tunnel endpoints each of which functions as an endpoint of a virtual tunnel used for a communication between virtual machines that belong to a virtual network, to detect that a virtual machine has newly been connected to one of the plurality of tunnel endpoints;
causing the control apparatus to determine a virtual network to which the detected virtual machine belongs on the basis of information in which virtual machines and virtual networks are associated with each other; and
causing the control apparatus to cause, if the tunnel endpoint has not participated in the determined virtual network, the tunnel endpoint to participate in the determined virtual network.

12. The tunnel endpoint control method according to claim 11, further comprising:
causing the control apparatus to detect removal of the virtual machine from the tunnel endpoint;
causing the control apparatus to determine, on the basis of the information in which virtual machines and virtual networks are associated with each other, a virtual network to which the removed virtual machine has belonged; and
causing the control apparatus to cause, if the control apparatus determines that no virtual machine is connected to the determined virtual network via the tunnel endpoint after the removal of the virtual machine, the tunnel endpoint to withdraw from the determined virtual network.

13. The tunnel endpoint control method according to claim 12;
determining, by the control apparatus, whether the tunnel endpoint to which the virtual machine has newly been connected has participated in the determined virtual network by referring to a storage unit storing a virtual network(s) in which each of the tunnel endpoints participates.

14. The tunnel endpoint control method according to claim 11;
detecting, by the control apparatus, that the virtual machine has been connected to the tunnel endpoint by receiving a notification from a virtual server on which the newly connected virtual machine operates.

15. The tunnel endpoint control method according to claim 11;
detecting, by the control apparatus, that the virtual machine has been connected to the tunnel endpoint by setting control information for notifying the control apparatus of the connection of the virtual machine on the basis of a packet from the virtual machine in a switch that configures the tunnel endpoint.

16. The control apparatus according to claim 1, further comprising:
a first storage unit configured to store virtual machines connected to the tunnel endpoints;
a second storage unit configured to store the correspondence relationship between virtual machines and virtual networks; and
a third storage unit configured to store a virtual network(s) in which each of the tunnel endpoints participates;
wherein the control apparatus determines whether the tunnel endpoint to which the virtual machine has newly been connected has participated in the determined virtual network by referring to the third storage unit.

17. The control apparatus according to claim 2,
wherein the connection detection unit detects that the virtual machine has been connected to the tunnel endpoint by receiving a notification from a virtual server on which the newly connected virtual machine operates.

18. The control apparatus according to claim 3,
wherein the connection detection unit detects that the virtual machine has been connected to the tunnel endpoint by receiving a notification from a virtual server on which the newly connected virtual machine operates.

19. The control apparatus according to claim 16,
wherein the connection detection unit detects that the virtual machine has been connected to the tunnel endpoint by receiving a notification from a virtual server on which the newly connected virtual machine operates.

20. The control apparatus according to claim 2,
wherein the control apparatus detects that the virtual machine has been connected to the tunnel endpoint by setting control information for notifying the control apparatus of the connection of the virtual machine on the basis of a packet from the virtual machine in a switch that configures the tunnel endpoint.

21. The control apparatus according to claim 3,
wherein the control apparatus detects that the virtual machine has been connected to the tunnel endpoint by setting control information for notifying the control apparatus of the connection of the virtual machine on the basis of a packet from the virtual machine in a switch that configures the tunnel endpoint.

22. The control apparatus according to claim 16,
wherein the control apparatus detects that the virtual machine has been connected to the tunnel endpoint by setting control information for notifying the control apparatus of the connection of the virtual machine on the basis of a packet from the virtual machine in a switch that configures the tunnel endpoint.