This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2014-233578, filed on Nov. 18, 2014, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to a route information provision program, a route information provision method and an information processing system.
IaaS (Infrastructure as a Service: IaaS) is service which provides hardware resources necessary for the operation of the computing system to a user. The IaaS builds system which includes a virtual machine and a virtual network which a user required on the hardware base and provides it to the user.
The virtual machine communicates with other virtual machines through the virtual router and the virtual network. There is a method to distribute the virtual router to physical machines mounted with the virtual machines (called as distributed router method). The virtual router performs routing processing depending on a packet transmitted by the virtual machine, and sends it to the physics machine mounted with the virtual machine of communication destination.
On the other hand, an administrator of the IaaS moves (also called as migration) the virtual machine working on the certain physical machine to other physics machine, for the redistribution of hardware resources in the data center or the maintenance of the physical machine. For example, following patent documents 1 or 2 discloses the migration of the virtual machine.
With the migration of the virtual machine, the virtual machine changes the virtual router working with the physical machine after the migration to the default route. In addition, the administration device of the IaaS notifies all virtual routers of the change of the routing table when the administration device of the IaaS detects the migration of the virtual machine. Other virtual machines become able to in this way communicate with the virtual machine which is migrated.
In order to change set of default route, for example, there is a method to operate an agent in the virtual machine. The agent changes the default route with the migration of the virtual machine.
[Patent literature 1] Japanese Laid-Open Patent Publication No. 2012-231382.
[Patent literature 2] Japanese Laid-Open Patent Publication No. 2011-210032.
However, in the IaaS, the administrator of the IaaS provides the hardware resources to the user, and the user builds the virtual machine to the hardware resources. Therefore, it is unfavorable to change the default route on the administration side because the user builds the virtual machine originally. In addition, in order to perform the migration of the virtual machine by the reasons of the administrator, it is desirable to avoid the operation of the program such as the agents in the virtual machine.
According to a first aspect of the embodiment, a non-transitory computer readable storage medium storing therein a program for causing a computer to execute a process, the process includes receiving an inquiry of route information of a communication packet from a first virtual machine to a second virtual machine from a first virtual router relaying the communication packet from the first virtual machine, generating the route information including network identification information of a physical machine equipped with the second virtual machine based on identification information of the second virtual machine and constitution information including network identification information of the physical machine equipped with the second virtual machine, and transmitting the route information to the first virtual router.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention.
The information processing system illustrated in
The IaaS system comprises the server devices 10a-10c (also called as server device 10) which build the virtual system of the user and the management server device 20 which manages the IaaS system. The management server device 20 has a function to manage the computer resources such as the server device 10a-10c, the physics network 50, the physical storage device (do not illustrate in
The server devices 10a-10c are computer resources in the IaaS system and are computers which virtualizes the hardware resources of the own device and executes the plurality of different OS's (Operating System: OS). The hardware constitution of the server device 10a-10c will be described later according to
The server devices 10a-10c deploy the virtual machine “vma”, “vmb”. The virtual machines “vma”, “vmb” are virtual computers working in the practice environment which is built by dividing the hardware resources of the physical computer. In the server devices 10a-10c, hypervisor “Hy” works, and one or more virtual machine “vma”, “vmb” work on the hypervisor “Hy”. The substance of the virtual machine “vma”, “vmb” (also called as virtual machine “vm”) include, for example, software such as program or OS and information to designate the hardware resources to carry out the software. The virtual machines “vma”, “vmb” operate OS “w1”, “w2”. In addition, in each OS “w1”, “w2”, for example, application programs “ap1”, “ap2”, which carry out the service that the user offers, work.
In addition, on the hypervisor “Hy”, soft SW (SWitch)/distributed router (below, also called as a virtual router) “vra” work. The virtual router “vra” is a component forming a virtual system, and has IP (Internet Protocol: IP) routing function of the packet which is transmitted and received between the virtual machines in the virtual system. The virtual router “vra” (also called as virtual router vr) connects with the virtual machine “vma” and the virtual machine “vmb” through the virtual NIC (Network Interface Controller: NIC) on the hypervisor “Hy”.
On the IaaS system, the user builds the virtual machine based on the offered hardware resources. Therefore, the virtual machines “vma”, “vmb” correspond to the exclusive (responsibility) range of the user. In other words, the permission of the user is necessary when the administrator changes the setting of the virtual machine “vma”, “vmb” or operates any program in the virtual machine “vma”, “vmb”. On the other hand, the virtual router “vra” corresponds to the responsibility range on the administrator side.
The management server device 20, for example, assigns the server device 10 and the physical network, etc. to a virtual system depending on the deployment demand of the virtual system. In addition, the management server device 20, for example, controls the migration, start and stop, etc. of the virtual machine “vma”, “vmb” on the server devices 10a-10c, depending on the deploy change, the start, and the stop demands of the virtual machine “vm”. In addition, the management server device 20 controls the start, the stop of the virtual router “vra” on the server devices 10a-10c.
The client apparatus 60 is the computer of which the administrator of the IaaS system uses. The client apparatus 60 is a personal computer, for example. The administrator accesses the management server device 20 through the client apparatus 60. The client apparatus 60 connects to the management server device 20 through a network 70 of wire or wireless, for example.
In addition, the gateway device 40 carries out interconnection with the data center Dc and the client apparatus 30a, 30b. The client apparatus 30a, 30b are the computers of which the user of the IaaS system uses. The client apparatus 30a, 30b are a personal computer, or a handheld terminal device, for example. The client apparatus 30a, 30b connect with the gateway device 40, that is, the virtual system, through the Internet 80.
The virtual system VS represented by
The user (also called as tenant or customer of IaaS system) requires deployment, a change, withdrawal of the virtual system VS to the IaaS control program 310 through the client apparatus 30a, 30b which is represented by
In addition, the administrator orders live migration (below called as migration) of the virtual machine to the IaaS control program 310 through the client apparatus 60. The migration means a function to move the virtual machine “vm” working on a certain server device 10 to another server device 10 and continue the processing of the virtual machine “vm” without stopping the virtual machine “vm”. On the IaaS system which is represented by
The IaaS control program 310 generates virtual system constitution information 21 based on the deployment demand by the user. The virtual system constitution information 21 has identification information of virtual machine “vm” forming the virtual system VS and the number of the virtual machines “vm”, and constitution of the virtual network “nw1”, etc. In addition, the IaaS control program 310 creates physical deployment configuration information 22 based on the virtual system constitution information 21. The physical deployment configuration information 22 has correspondence information between the virtual machine “vm” and the server device 10 equipped with the virtual machine “vm”.
The IaaS control program 310 performs deployment, migration and removal of the virtual machine “vm” and the virtual network “nw1” based on the physical deployment configuration information 22. In addition, the IaaS control program 310 outputs a deployment state of the virtual system VS to the client apparatus 60 (referring to
In the server device 10a depicted by
In addition, the virtual routers “vra”, “vrb” are connected each other through tenant network (the virtual network in
In addition,
The CPU 101 is connected to the memory 102, etc. through the bus 104 and controls the whole of the management server device 20. The RAM 120 of the memory 102 memorizes the data of which the CPU 101 processes.
The nonvolatile memory 121 of the memory 102 has storage domain (not illustrated in
The IaaS control program (following called as IaaS control program 310) in the IaaS control program storage domain 310 realizes the management process of the IaaS systems in the embodiment by processing of the CPU 101. The details of the processing will be described later according to
The tenant virtual system management information (following called as tenant virtual system management information 410) in the tenant virtual system management information storage domain 410 is the information that the IaaS control program 310 uses. The tenant virtual system management information 410 indicates physical deployment configuration information 22 which is represented by
[Distributed Router Method]
As illustrated in
A case that the virtual router “vr” locates in one place of the virtual machine “vm” in the virtual system will be described. When the virtual router “vr” is located in one place of the virtual machine “vm”, all packets between the virtual machines pass the virtual router “vr” which is one place. Therefore, each packet in the virtual system arrives at the server device 10 equipped with the virtual router “vr” and then arrives at the server device 10 which equips with the virtual machine “vm” of the destination by folding. Useless traffic in this way occurs.
On the other hand, when the distributed router method is adopted, the virtual router “vra” (referring to
According to the distributed router method, the packet arrives at the virtual router “vrb” of the server device 10b via the tenant network “nw1” through the virtual router “vra” from the virtual machines “vra”, “vrb” of the server device 10a. In other words, according to the distributed router method, it is possible to transmit a packet to the server device 10b directly from the virtual router “vra” and to restrain quantity of traffic of the communication.
But, according to the distributed router method, an interruption time for communication may occur at the time of outbreak of migration although the communication traffic is suppressed. Later, the communication processing at the time of the migration outbreak will be described according to
[Migration]
In the example of
In the example of
In order to restrain the interruption time for communication, a method, which an agent (not illustrated in
In other words, on the virtual machine “vm1”, “vm2”, the agent in conjunction with the management server device 20 is operated. And the agent of virtual machine “vm1” changes the default route to the virtual router “vr3” when the agent of virtual machine “vm1” detects the migration. Thereby, the virtual machine “vm1” after movement becomes able to communicate with other virtual machine “vm2”.
In addition, depending on outbreak of migration, the management server device 20 depicted by
But, in the IaaS system, as described above, there is a responsibility border point between the administrator of the IaaS system and the user (customer). As described in
Therefore, the administrator is not able to change setting of the virtual machine “vm” without the permission of the user. In addition, when the migration is produced on account of the management side, it is desirable to avoid the operation of the programs such as agents in the virtual machine “vm”. Therefore, it is demanded to realize routing control of the virtual router “vr” which followed the migration without setting change of the virtual machine “vma”, “vmb”.
In addition, according to the example of
Therefore, it is demanded to realize routing control of the virtual router “vr” which followed the migration without increasing load of the management server device 20.
In addition, when a DHCP (Dynamic Host Configuration Protocol: DHCP) server (not illustrated in
Therefore, in the embodiment, the virtual router “vr” also moves to the server device 10 of the migration destination in the migration of the virtual machine “vm”. Therefore, the virtual machine “vm” does not have to change the default routing after the migration. But the virtual router “vr” after the migration does not have route information in the server device 10 of the migration destination.
Therefore, the IaaS control program 310 in the embodiment generates the route information of the packet depending on an inquiry of the route information from the virtual router “vr” and sends it to the inquiry original virtual router “vr”. Especially, the IaaS control program 310 receives an inquiry of the route information of communication from the virtual machine “vm1” to the virtual machine “vm2”, from the virtual router “vr” depicted by
And the IaaS control program 310 generates route information including the network identification information (IP address) of the server device 10 which equips with the virtual machine “vm2” based on identification information of the virtual machine “vm2” and the tenant virtual system management information 410 (constitution information in
Thereby, it is possible that the virtual router “vr” acquires a deployment physical machine IP address (route information) of the virtual machine “vm2” of the destination by inquiring to the IaaS control program 310. It is possible that the virtual router “vr” transmits a packet to the virtual machine “vm2” by updating the deployment physical machine IP address of the virtual machine “vm2” included in the route information in a packet. Therefore, it is possible the virtual router “vr” sends a packet to the virtual machine “vm2” even if the virtual machine “vm1” moves by the migration.
Or, when the virtual machine “vm2” moves by the migration, it is possible that the virtual router “vr” acquires the deployment physical machine IP address (route information) of the virtual machine “vm2” of the destination, by inquiring to the IaaS control program 310. It is possible that the virtual router “vr” transmits a packet to the virtual machine “vm2” by updating a deployment physical machine IP address of the virtual machine “vm2” included in the route information by the packet. Therefore, it is possible the virtual router “vr” sends a packet to the virtual machine “vm2” even if the virtual machine “vm2” moves by the migration.
In addition, as described above, in the embodiment, the virtual router “vr” moves in addition to the virtual machine “vm” in the migration. Therefore, the virtual machine “vm1”, “vm2” do not have to change the default routing. Thereby, it is possible that the communication that followed migration realizes without changing of the setting of the virtual machine “vm1”, “vm2”. In other words, it is possible that the routing control that followed migration of the virtual machine “vm” realizes in a responsibility range on the administrator side without causing influence in the virtual system of the user. The details will be described later in
[Matching of the Round-Trip Route]
According to the distributed router method, the virtual router “vr1”-“vr3” are distributed and located to the server device 10 equipped with the virtual machine “vm”. Therefore, there is a case that the virtual router “vr” which performs routing processing are different between an outward trip and a return journey. Because the virtual router “vr” performing routing processing are different between the outward trip and the return journey, the route which is different in the outward trip and the return journey may be selected.
In the example of
In this way, in the case of a round-trip packet, the virtual router “vr1” performs the routing processing of packet of the outward trip, and the virtual router “vr2” performs the routing processing of the packet of the return journey. In other words, the virtual router of the origin of transmission of the packet gathers routing processing. Therefore, the route of the packet of the outward trip and the route of the packet of the return journey may not match with each other.
However, when the virtual router “vr1”, “vr2” include a load balancer and an NAT (Network Address Translation: NAT) conversion function, it is necessary to make the communication route of the outward trip and the return journey match. In other words, it is necessary that a route of the packets of the return journeys is a reverse route of the route chosen in the outward trip dynamically.
Therefore, the IaaS control program 310 in the embodiment performs route processing and generates the route information based on header information (first information about the communication) of the packet and the tenant virtual system management information 410 (referring to
Thereby, it is possible that the virtual router “vr” acquires a route of the reverse conversion of the outward trip by inquiring to the IaaS control program 310 at the time of the transmission of the packet of the return journey. Therefore, it is possible that same virtual router “vr” carries out the routing processing of the outward trip and the return journey substantially and to make a round-trip route agree. Therefore, it is possible to match the routes of the outward trip with the routes of return journey easily, even though adopting the distributed router method.
In addition, the IaaS control program 310 generates the route information which further includes a round-trip flag (round-trip information) which indicates whether a packet is a packet of the outward trip of the round-trip communication. Therefore, it is possible that the virtual router “vr” determines whether a packet is the packet of the outward trip based on the round-trip flag. And when determining that a packet is the packet of the outward trip, the virtual router “vr” generates the route information of the return journey which is a reverse direction of the route of the outward trip and maintains it.
Thereby, it is possible that the virtual router “vr” generates the packet of the return journey at the time of the transmission and reception of the packet of the return journey, based on the route of the return journey that has been generated. Therefore, it is possible that the virtual router “vr” acquires a route which matches with the outward trip more effectively, without inquiring with the route of the return journey, at the time of the transmission and reception of the packet of the return journey. The round-trip flag will be described later according to a format example of the packet in
Then, a summary of the provision processing of route information by the IaaS control program 310 depicted by
[Summary of Provision Processing of Route Information]
In the example of
After the migration, the virtual machine “vm1” transmits a packet of which the virtual machine “vm2” is a destination. When the virtual router “vr3” working in the server device 10c receives a packet of which new IP address is an destination (virtual machine “vm2”) from the virtual machine “vm1”, the virtual router “vr3” inquires to the IaaS control program 310 of the management server device 20 (n1).
The IaaS control program 310 simulates the routing processing of packet based on the tenant virtual system management information 410 (referring to
As described above, the route information includes a deployment physical machine IP address of destination virtual machine “vm2” and the round-trip flag which indicates whether the packet is the round-trip and whether the packet is the packet of the return journey of the outward trip. In addition, the route information includes the header information (the second information about the communication) of the user packet which arrives at the virtual machine “vm” of the destination through the virtual router “vr” corresponding to the virtual machine “vm” of the destination from the virtual machine “vm” of the origin of transmission. The header information of the user packet included in the route information is the information that one or more virtual router “vr” on the middle route updates by simulation.
As indicated by
In addition, the tenant virtual system management information 410 further includes a logical network identification information of a component (virtual machine “vm”, virtual router “vr”) constituting the virtual system VS. The logical network identification information is an IP address, a MAC address, and a NAT conversion information, etc. The logical network identification information does not change depending on outbreak of migration. Therefore, it is possible that the IaaS control program 310 generates the route information as mentioned above regardless of outbreak of migration based on the tenant virtual system management information 410.
The IaaS control program 310 in
The L2 over L3 tunneling method is a method to convey the L2 (Ethernet) frame of the user packet, according to an IP packet, further. The L2 over L3 tunneling method realizes a virtual network of tenant-specific by providing the ID information (virtual network ID) that is inherent to each virtual network of the user in the packet. More information about the packet of the L2 over L3 tunneling method will be described later according to
As an example of the L2 over L3 tunneling method, there are GRE (Generic Routing Encapsulation: GRE) (RFC1701) and VXLAN (Virtual eXtensible Local Area Network: VXLAN) (RFC7348). In addition, as another example of the L2 over L3 tunneling method, there is NVGRE (Network Virtualization using Generic Routing Encapsulation: NVGRE) (draft-sridharan-virtual ization-nvgre-05).
Especially, the virtual router “vr3” designates (updates) a deployment physical machine IP address (in
In this way, the virtual router “vr” updates the tunnel packet based on the route information of which the virtual router “vr” inquiries and acquires to the IaaS control program 310 and directly transfers it to the server device 10b equipped with the virtual machine “vm1” of the destination.
As indicated by
In addition, as described above, the virtual machine “vm1” moves to the server device 10c with the virtual router “vr1”. Therefore, the virtual machine “vm1” does not have to change the default route. Therefore, it is possible that the virtual machine “vm1” sends a packet that other virtual machine “vm” is the destination, without causing a change of the setting even if the migration occurs. In other words, it is possible that the IaaS control program 310 performs routing control that followed movement of virtual machine “vm1” in a responsibility range on the administrator side, without changing the virtual machine “vm1”, “vm2” which are a responsibility range on the user side.
In the example of
When the virtual router “vr1” working in the server device 10a receives a packet that the migrated virtual machine “vm1” is a destination, the virtual router “vr1” inquires to the IaaS control program 310 of the management server device 20 (n12). The IaaS control program 310 generates the route information to the virtual machine “vm1” and transmit to the virtual router “vr1” as same as
In this way, it is possible that the virtual router “vr1” acquires a deployment physical machine IP address of the virtual machine “vm1” by inquiring to the IaaS control program 310 even if the virtual machine “vm1” of the destination of the packet, moves.
The virtual router “vr1” maintains the route information which is received as the session information “st”, generates a physical machine update packet having the deployment physical machine IP address of the virtual machine “vm1”, and sends it to the virtual router “vr2” (n13).
The physical machine update packet is a packet to notify other virtual router “vr” of the deployment physical machine IP address of the virtual machine which moved by the migration. In other words, the virtual router “vr1” notifies different virtual router “vr2” which generates a packet that the virtual machine “vm1” is the destination of the route information to the virtual machine “vm1”. The details of the physical machine update packet will be described later in
The virtual router “vr2” maintains the deployment physical machine IP address of the virtual machine “vm1” included in the physical machine update packet which is received, as the session information “st”. And the virtual router “vr2” generates a tunnel packet of which the virtual machine “vm1” of the server device 10c is the destination, based on the deployment physical machine IP address of the virtual machine “vm1”, and sends it (n14). In this way, it is possible that the virtual router “vr2” sends a packet to the virtual machine “vm1” based on the route information that the virtual router vr1 represents, asks and acquired.
In addition, when the virtual router “vr1” receives a packet that the virtual machine “vm1” is the destination, from different virtual machine “vm4” (n15), the virtual router “vr1” sends the physical machine update packet based on the session information “st” which is held to the virtual router “vr4” (n16). The virtual router “vr4”, as same as the virtual router “vr2”, maintains the deployment physical machine IP address of the virtual machine “vm1” included in the physical machine update packet as the session information “st”, and generates the tunnel packet, and sends it to the server device 10c(n17).
As represented by
In this way, the virtual router “vr1” propagates the deployment physical machine IP address of the virtual machine “vm1” to correspondence virtual router “vr2”, “vr4” of the virtual machine “vm2”, “vm4” which are the origin of transmission of the packet of which the virtual machine “vm1” is the destination. In this way, it is possible that the virtual machine “vm2”, “vm4” communicate with the virtual machine “vm1” quickly. Therefore, it is possible that facing virtual machine “vm2”, “vm4” send a packet to the migrated virtual machine “vm1” without causing suspended time.
In addition, when the virtual router “vr1” receives the packet of which the migrated virtual machine “vm1” is the destination, the virtual router “vr1” representatively inquires a new deployment physical machine IP address of the migrated virtual machine “vm1”. In other words, one virtual router “vr1” is representative and inquires to the IaaS control program 310 for the route information to virtual machine “vm1”. Thereby, it is possible to hold down the inquiry number of times of the route information to the virtual machine “vm1” for the IaaS control program 310 to once.
Therefore, the inquiry number of times to the IaaS control program 310 becomes value “O(n) (Order:O)” for number of virtual machines “n”. Therefore, it is possible to reduce load of IaaS control program 310 at the time of the migration outbreak even if system is the large-scale IaaS system which manages tens of thousands of virtual machine vm and adopts the distributed router method.
In addition, the traffic increases when updating the session information “st” of all virtual router “vr” which have a possibility to transmit a packet to the virtual machine “vm1”. It is not necessarily necessary to update session information “st” of all virtual routers “vr” which have a possibility to transmit a packet to the virtual machine vm1, but it is not easy to detect the virtual router “vr” which really transmits a packet to the virtual machine “vm1” beforehand.
Therefore, the virtual router “vr1” notifies the origin of transmission of the packet of a new deployment physical machine IP address, when the virtual router “vr1” receives a packet of which the virtual machine “vm1” is the destination. Therefore, it is possible that the virtual router “vr1” notifies only virtual router “vr” which really transmits a packet to the virtual machine “vm1” of a new deployment physics machine IP address. Thereby, according to the embodiment, it is possible to easily update the session information “st” of the virtual router “vr” which to be updated while reducing load.
Then, according to
[Format of the Tunnel Packet]
The format of packet PKa depicted by
The virtual router “vr” sets the deployment physical machine IP address of the virtual machine vm of the destination included in the route information, which is acquired by inquiring to the IaaS control program 310, into the UDP/IP header. In addition, the virtual router “vr” sets the update header information included in the route information to the Ethernet frame of the user. Thereby, it is possible that the virtual router “vr” generates a packet to arrive at the virtual machine “vm” of the destination.
In addition, in the embodiment, the round-trip flag “fg1” included in the route information is added to lower 2 bits of the reserved domain of the eighth byte of the VXLAN header. A case that lower 2 bits is value “00” indicates a one-way packet, and the case of value “01” indicates that there is no rule (error). In addition, the case that the lower 2 bits is value “10” indicates a packet of the outward trip of the round-trip session, and the case of value “11” indicates a packet of the return journey of the round-trip session.
Since the tunnel packet PKa has the round-trip flag “fg1”, it is possible that the virtual router “vr” determines whether the packet PKa is the packet based on the round-trip session and whether the packet is an outward trip or the return journey. In other words, it is possible that the virtual router yr determines whether the tunnel packet PKa to transmit and receive is a packet to be accompanied by NAT conversion and whether the packet is the packet of client-sides such as the NAT conversion.
And it is possible that the virtual router yr generates the route information of the return journey at the time of transmission and reception of tunnel packet PKa of the outward trip and maintains it. In addition, it is possible that the virtual router yr updates the tunnel packet PKa based on the route information of the return journey which was generated in the outward trip at the time of transmission and reception of tunnel packet PKa of the return journey. Thereby, it is possible to match the routes of the outward trip of the packet and the route of the return journey of the packet.
In the embodiment, a flag “fg2” indicating the physical machine update packet PKb is added to lower 3 bits in the reserved domain of the eighth byte of the VXLAN header. In addition, the physical machine update packet PKb has the IP address and the deployment physical machine IP address of the virtual machine which moved, in substitution for the L2 frame of the user packet.
[Flow of the Processing of IaaS Control Program and Virtual Router]
Then, a flow of the processing of the IaaS control program 310 and the virtual router yr at the time of the migration outbreak depicted by
x1: the virtual router vr2 (following, called as virtual router of the facing virtual machine) of the server device 10b which equips the facing virtual machine vm2 receives the packet, of which the virtual machine vm1 (following, called as virtual machine of the destination) is the destination, from the facing virtual machine vm2 (a1). Then the virtual router vr2 has the session information st (following, called as old information) before migration of the virtual machine vm1 of the destination.
The virtual router vr2 of the facing virtual machine generates the tunnel packet PKa based on the old information, and transmits it (a2, n11 in
x2: The virtual router vr1 of old physical machine 10a judges whether the virtual machine vm1 of the destination of tunnel packet PKa works with an own machine. In this case, because the virtual machine vm1 moved by the migration, the virtual machine vm1 does not work with the own machine. Therefore, the virtual router vr1 of the old physical machine cancels the packet and inquires to the network management module 312 of the management server device 20 for the route information to virtual machine vm1 through the management network nw2 (a3, n12 in
x3: The network management module 312 generates route information to the virtual machine vm1 of the destination by simulation processing and sends it to the virtual router vr1 of the origin of inquiry (a4, n12 in
x4: The virtual router vr1 memorizes the route information which is received as the session information st. In addition, the virtual router vr1 generates the physical machine update packet PKb depicted by
x5: The virtual router vr2 of the facing virtual machine updates the session information st based on the physical machine update packet PKb which is received. Especially, the virtual router vr2 updates the session information st of which the virtual machine vm1 is the destination according to the deployment physical machine IP address of the virtual machine vm1 included in the physical machine update packet PKb.
x6: When the virtual router vr2 of the facing virtual machine receives a packet of which the virtual machine vm1 is the destination again, the virtual router vr2 generates the tunnel packet PKa based on the session information st which is updated in the process x5 and sends it (a7, n14 in
x7: The virtual router vr3 working in new physics machine 10c analyzes the tunnel packet PKa which is received, and transfers it to the virtual machine vm1 of the destination.
x8: The virtual router vr4 (following, called as virtual router of other facing virtual machines) of the server device 10d equipping other facing virtual machine vm4 receives the packet of which the virtual machine vm1 is the destination (a9). As same as the process x1 in
x9: As same as the process x2 of
x10: The virtual router vr4 of other facing virtual machine, as same as the processes x5-x7 in
x11: When a period 2 times as large as a session cache timer level passes after the migration of the virtual machine vm1, the virtual router vr1 of old physics machine 10a is finished. That is, the old physical machine 10a operates the virtual router vr1 after the migration during the period 2 times as large as the session cache timer level of session information st.
In this way, the virtual router vr1 maintains a new deployment physical machine IP address of virtual machine vm1, of which the virtual router vr1 acquired on behalf of the virtual routers after the migration, as the session information st. Therefore, it is possible that the virtual router vr1 notifies other virtual machine vm of the deployment physical machine IP address of the virtual machine vm1 based on the session information st. Thereby, it is possible to hold down the inquiry number of times to the IaaS control program 310 to once.
x21: The virtual router vr3 of the server device 10c (following, called as new physical machine) equipping the virtual machine vm1 after the migration receives the packet of which the facing virtual machine vm2 is the destination from the virtual machine vm1 (a21). Because the virtual router vr3 of new physical machine 10c is after migration, the virtual router vr3 does not have the session information st. Therefore, the virtual router vr3 of new physical machine 10c inquiries to the network management module 312 for route information to the facing virtual machine vm2 (a22, n1 in
x22: The network management module 312 generates the route information to the virtual machine vm2 of the destination, as same as the process x3 in
x23: The virtual router vr3 of new physical machine 10c memorizes the route information which is received as the session information st and generates tunnel packet PKa to the facing virtual machine vm2, and sends it (a24, n2 in
x24: The virtual router vr2 (following, virtual router of facing virtual machine) of the physical machine 10b equipping the facing virtual machine vm2 updates the session information st which is held based on the tunnel packet PKa which is received. Then the virtual router vr2 of facing virtual machine vm2 detects that the packet is a packet of the outward trip based on the round-trip flag “fg1” and memorizes the deployment physical machine IP address of virtual machine vm1 which is the destination of the packet of the return journey, as the session information st. The virtual router vr2 analyzes the tunnel packet PKa which is received, and transfers the packet to the facing virtual machine vm2 (a25).
x25: When the virtual router vr2 of the facing virtual machine vm2 receives the packet of the return journey from the facing virtual machine vm2 (a26), the virtual router vr2 generates the tunnel packet PKa of the return journey. Especially, the virtual router vr2 acquires the IP address of the destination of the return journey based on the session information st which is registered in the process x24. And the virtual router vr2 generates the tunnel packet PKa of which the acquired IP address is the destination and the round-trip flag fg1 indicates the return journey, and sends it (a27).
x26: The virtual router vr3 of new physical machine 10c receives the tunnel packet PKa from the virtual router vr2 of the facing virtual machine vm2. Then the virtual router vr3 detects that the packet is a packet of the return journey based on the round-trip flag “fg1” in the tunnel packet PKa. And the virtual router vr3 updates the header information of the user packet to the virtual machine vm1 based on the route of the return journey which was registered in the session information st in the process x23 and transfers it to the virtual machine vm1 (a28).
As described in the processes x23-x26, the tunnel packet PKa in the embodiment has the round-trip flag “fg1”. By the flag, it is possible that the virtual router vr2, vr3 distinguish whether the packet which is transmitted and received is a round-trip packet and a packet of an outward trip or the return journey. And when the virtual router vr2, vr3 detect that the packet is a packet of the outward trip based on the round-trip flag “fg1”, the virtual router vr2, vr3 memorizes the route information of the packet of the return journey as the session information st.
In this way, it is possible that the virtual router vr2 updates the IP address of the destination in the tunnel packet PKa based on the session information st which is memorized at the time of the transmission of the packet of the return journey (x25). In addition, it is possible that the virtual router vr3 updates the header information of the user packet in the tunnel packet PKa based on the session information st which is memorized at the time of the reception of the packet of the return journey (x26).
In this way, by generating the route of the return journey based on the route of the outward trip, it is possible to make the outward trip of the packet and the route of the return journey agree. Therefore, according to the embodiment, it is possible to make the routes of the outward trip and of the return journey agree about the packet to go by way of the NAT conversion or the load balancer. In addition, because the tunnel packet PKa has the round-trip flag “fg1”, it is possible that the virtual router vr2, vr3 acquires the route of the packet of the return journey which agrees with the outward trip, without performing an inquiry to the IaaS control program 310 at the time of the transmission and reception of the packet of the return journey.
x31: In the virtual router vr2 (following, virtual router of the facing virtual machine) of the server device 10b equipping the facing virtual machine vm2, the session information st is erased by the progress of the period of the cache timer level of session information st.
x32: The virtual router vr1 working in the server device 10a (following, called as old physical machine) equipped with the virtual machine vm1 which moved by the migration is finished because passing during a period 2 times as large as the session cache timer level.
x33: The virtual router vr2 of the facing virtual machine receives the packet that the virtual machine vm1 is the destination from the facing virtual machine vm2 (a31). As described in the process x31, the session information st in which the virtual router vr2 holds is erased. Therefore, the virtual router vr2 of the facing virtual machine inquires to the network management module 312 of management server device 20 for the session information st of the virtual machine vm1 through the management network nw2.
x34: The network management module 312 generates the route information to virtual machine vm1 of the destination, as same as the process x3 in
x35: The virtual router vr2 of the facing virtual machine memorizes the route information which is received as the session information st, and generates the tunnel packet PKa to the virtual machine vm1, and transmits it (a34).
x36: The virtual router vr3 of new physics machine 10c analyzes the tunnel packet PKa which is received and transfers it to the virtual machine vm1(a35).
As described in
Thereby, it is possible that the virtual router yr updates the session information st. Therefore, it is possible to update the session information st, when the virtual machine vm of the destination of the packet for the transmission moves by the migration. Accordingly, it is possible to avoid that a packet is discarded, by a result of transmitting a packet based on old session information st.
Then, according to
[Management Server Device]
The VM management module 311 depicted by
In addition, the network management module 312 manages the virtual network (“nw1” in
Then, according to
Below, the virtual network database 141 is described as virtual network DB. The virtual machine database 142 is described as virtual machine DB as follows. The virtual router database 143 is described as virtual router DB as follows. The physical machine database 144 is described as physical machine DB as follows.
The range of the IP address of the virtual network “Net-1” n1 is “130.69.100.0/24”. The range of the IP address of the virtual network “Net-2” n2 is “172.16.10.0/24”. In addition, the IP address of the connection interface to the virtual network “Net-1” n1 of the virtual router “Router-1” vr-1 is “130.69.100.1”. In addition, the IP address of the connection interface to the virtual network “Net-2” n2 of the virtual router “Router-1” vr-1 is “172.16.10.1”.
In addition, the virtual router “Router-1” vr-1 has an NAT conversion rule. The NAT conversion rule is a rule to convert the IP address “133.11.0.11” into an IP address of the virtual machine “Node-2” vm-2 or the virtual machine “Node-3” vm-3.
The IP address of the virtual machine “Node-1” vm-1 is “130.69.100.10”, and the virtual machine “Node-1” n1 connects with the virtual network “Net-1” n1. In addition, the IP address of the virtual machine “Node-2” vm-2 is “172.16.10.10”, and the IP address of the virtual machine “Node-3” vm-3 is “172.16.10.11”. The virtual machine “Node-2” vm-2 and the virtual machine “Node-3” vm-3 connect with the virtual network “Net-2” n2.
In the embodiment, a case to send a packet to the virtual machine “Node-2” vm-2 or the virtual machine “Node-3” vm-3 from the virtual machine “Node-1” vm-1 based on the network constitution of virtual system VS1 depicted by
[Virtual Network DB]
The virtual network DB 141 has, for example, an item “ID”, an item “network address”, an item “net mask”, an item “virtual machine” and an item “router”. The item “ID” indicates the identification information of the virtual network. An item “network address” is the network address of the virtual network. The item “net mask” is the subnet mask of the virtual network. The item “virtual machine” indicates identification information of the virtual machine vm belonging to the virtual network. The item “router” indicates a router to connect to the virtual network.
According to the example of virtual network DB 141 depicted by
In addition, the network address of virtual network ID “Net-2” n2 is “172.16.10.0”, and the subnet mask is “255.255.255.0”. In addition, the virtual machine “Node-2, Node-3” vm-2, vm-3 belong to the virtual network ID “Net-2” n2. In addition, the virtual network ID “Net-2” n2 connects with the router “Router-1” vr-1.
[Virtual Machine DB]
The virtual machine DB 142 has, for example, an item “VM id”, an item “Accounts”, an item “Storage”, an item “NICs” and an item “physical machine id”. The item “VM id” indicates information to distinguish virtual machine vm. The item “Account” indicates a property of the virtual machine vm and indicates owner information or certification information. The item “Storage” indicates a property of virtual machine vm and indicates configuration information (block storage information) that the virtual machine vm connects with. The item “NICs” indicates network information of the virtual machine vm and indicates the information of the virtual interface that the virtual machine vm has. When there are multiple virtual interfaces, the item “NICs” has the information of plural virtual interfaces. The item “physical machine id” is identification information of the server device 10 equipped with the virtual machine vm.
In addition, the virtual machine DB 142 manages the MAC address of the virtual interface and the IP address as information of the virtual interface of the networks.
The virtual machine DB 142 has, as information of the virtual interface of the network, for example, an item “Vif no.”, an item “Connect Net”, an item “Mac Address”, an item “IP address” and an item “Option”. The item “Vif no.” is the identification information of the virtual interface. The item “Connect Net” indicates the virtual network ID which the virtual interface connects with. The item “Mac Address” indicates the MAC address of the virtual interface. The item “IP address” indicates the IP address of the virtual interface. The item “Option” is the addition information of the virtual interface.
According to the example of virtual machine DB 142 depicted by
According to the example of the virtual machine DB 142 depicted by
[Virtual Router DB]
The virtual router DB 143 has, for example, an item “Router id”, an item “NICs”, an item “routing table”, an item “NAT table” and an item “NAT active list”. The item “Router id” indicates the identification information of the virtual router. The item “NICs” indicates the information of the virtual interface. The item “routing table” has the information of the routing table (not illustrated in
According to the example of the virtual router DB 143 depicted by
The first virtual interface connects with the virtual network ID “Net-1” n1, and the MAC address is “Ab:cd:ef:12:a0:56”, and the IP address is “130.69.100.1”. In addition, the second virtual interface connects with the virtual network ID “Net-2” n2, and the MAC address is “Ab:cd:ef:12:a0:78”, and the IP address is “172.16.10.1”.
In addition, the NAT table of virtual router DB 143 depicted by
The item “ID” is the identification information of the NAT table. The item “NAT Type” indicates the classification of the NAT table. The item “Orig-D-IP” indicates the IP address of the destination of the origin of conversion. The item “Orig-Proto” indicates the protocol of the origin of conversion. The item “Orig-Port” indicates the port number of the origin of conversion. The item “Trans-D-IP” indicates the IP address of the destination of the conversion. The item “Trans-Dport” indicates a port number of the destination of conversion. The item “LB-Policy” indicates a method of load balancer when the classification of the NAT table is the load balancer. The item “Next Net” indicates virtual network ID transferring a packet after the NAT conversion.
According to the example of the NAT table of virtual router DB 143 depicted by
In addition, in the example of virtual router DB 143 in
[Physical Machine DB]
The physical machine DB 144 has, for example, an item “physical machine id”, an item “rack number”, an item “machine information”, an item “IP address” and an item “Option”. The item “physical machine id” indicates identification information of server device 10. The item “rack number” is a rack number to locate the server device 10 and indicates a physical position of the server device 10. The item “machine information” indicates the information such as the devices of which the server device 10 uses. The item “IP address” indicates an IP address of the server device 10. The item “Option” indicates additional information of the server device 10.
According to the example of the physical machine DB 144 depicted by
The software block of management server device 20 depicted by
[Server Device]
The server device 10 has, for example, a CPU (Central Processing Unit: CPU) 201, a memory 202 such as RAM (Random Access Memory: RAM) 220 and nonvolatile memory 221, a communication interface device 203. The all parts are connected through bus 204 mutually. The communication interface device 203 connects with the management server device 20 (referring to
The CPU 201 connects to the memory 202 through the bus 204 and controls the whole of the server device 10. The RAM 220 in the memory 202 memorizes the data of which the CPU 201 processes. The nonvolatile memory 221 in the memory 202 includes hypervisor program storage domain Hyp and virtual router program storage domain vrp. In addition, the nonvolatile memory 202 includes data storage domain vmda of virtual machine “a” and data storage domain vmdb of virtual machine “b”. The nonvolatile memory 202 includes an HDD (Hard disk drive: HDD), and a nonvolatile semiconductor storage device.
The hypervisor program (following, called as hypervisor program Hyp) in the hypervisor program storage domain Hyp realizes processing of the hypervisor Hy by processing of the CPU 201 in the embodiment. The virtual router program (following, called as virtual router program vrp) in the virtual router program storage domain vrp realizes processing of the virtual router yr by processing of the CPU 201 in the embodiment.
The virtual machine a data (following, called as virtual machine a data vmda) in the virtual machine a data storage domain “vmda” are referred and updated by the hypervisor Hy to work as the virtual machine vma. The virtual machine b data (following, called as virtual machine b data vmdb) in the virtual machine b data storage domain “vmdb” are referred and updated by the hypervisor Hy to work as the virtual machine vmb.
(Software Block Diagram of Virtual Router)
The RX processing module 401 and the TX processing module 402 perform the transmission and reception processing of packet, the attachment and detachment of header in the tunnel packet, the processing of the broadcast communication, and reply processing of the packet except the IP. In addition, the RX processing module 401 and the TX processing module 402 in the embodiment performs the update processing of the tunnel packet PKa based on the route information that the IaaS control program 310 provides more. In addition, the RX processing module 401 performs transmission and reception processing of the physical machine update packet PKb.
The processing of the TX processing module 402 will be described later according to flow charts in
The TX session table st-t has the session information st for the transmission processing, and the RX session table st-r has the session information st for receiving process. The details of the TX session table st-t and the RX session table st-r will be described later in
[IaaS Control Program: Simulation Processing]
Then, according to
(Simulation Processing: Input Information)
The header information hd of
The item “Src Mac Address” represents the MAC address of the origin of transmission of the packet. The item “Dst Mac Address” represents the MAC address of the destination of the packet. The item “Dst IP address” represents the IP address of the destination of the packet. The item “Src IP address” represents the IP address of the origin of transmission of the packet. The item “Protocol” represents the protocol of the packet. The item “Dst port” represents the port number of the destination of the packet. The item “Src port” represents the port number of the origin of transmission of the packet.
The virtual router “Router-1” vr-1 receives a packet having the header information hd depicted by
Therefore, the MAC address of the origin of transmission, that the item “Src Mac Address” of header information hd in
(Simulation Processing: Output Information)
The packet header renewal list hw has an item of header renewal part hwu and an item of control part hwc. The item of header renewal part hwu represents an item for the renewal among the header information hd of the packet that the virtual router yr transfers. In addition, among items of the header renewal part hwu, an item of blanks is the item except renewal target.
The header renewal part hwu has item “TTL” in addition to the item of header information hd depicted by
The item of control part hwc has, for example, an item “round-trip session”, an item “outward trip/return journey” and an item “destination physical machine IP address”. The item “round-trip session” represents whether a packet is tunnel packet PKa of the round-trip session. In the embodiment, the value “1” is set when the packet is tunnel packet PKa of the round-trip session and the value “0” is set when the packet is not tunnel packet PKa of the round-trip session.
The item “outward trip/return journey” indicates whether the packet is tunnel packet PKa of the outward trip or tunnel packet PKa of the return journey. In the embodiment, the value “0” indicates the tunnel packet PKa of the outward trip, and the value “1” indicates the tunnel packet PKa of the outward trip. The item “destination physical machine IP address” represents an IP address (outer destination IP address) to appoint as a destination of tunnel packet PKa.
(Summary of the Simulation Processing)
(Flow of the Simulation Processing)
S11: The network management module 312 pre-processes the simulation. The details of the pre-processing of the simulation will be described according to a flow chart in
(Simulation Processing: Pre-Processing (S11))
S11-1: The network management module 312 performs the initialization processing of simulation state as pre-processing of the simulation. That is the network management module 312 initializes the packet header renewal list hw depicted by
(Packet header renewal list (S11-1) after initialization)
Then the explanation is back to the flow chart in
S12: The network management module 312 refers to the virtual machine DB 142 (referring to
S13: The network management module 312 determines whether or not detected an entry which agrees with the item “Dst Mac Address” of user packet header information hd from the virtual router DB 143 (
In the embodiment, as described in
S14: When detecting an entry which agrees with as a result of search processing of the process S13 (yes of S13), the network management module 312 performs the routing processing of user packet. The details of the processing of the process S14 will be described according to a flow chart in
(Simulation Processing: Routing Processing (S14))
S14-1: The network management module 312 determines whether a value of the item “TTL” of the packet header renewal list hw is bigger than value “0”.
S14-2: When the value of the item “TTL” of the packet header renewal list hw is less than value “0” (no of S14-1), by time-out, the network management module 312 finishes by an error. The network management module 312 outputs error information “network unreachable” that a user packet does not arrive at the address of the destination.
S14-3: When the value of the item “TTL” in the packet header renewal list hw is bigger than value “0” (yes of S14-1), the network management module 312 searches the NAT rule table (NAT rule table) of the virtual router which is detected. The network management module 312 searches the entry that the item “Orig-D-IP” agrees with the IP address of the destination that the item “Dst IP address” of header information hd of the user packet indicates from the entry of the NAT rule table in the virtual router DB 143 (referring to
S14-4: The network management module 312 determines whether an agreed entry is detected as a result of search processing of the process S14-3. In the embodiment, the network management module 312 detects the entry of which the item “Orig-D-IP” agrees with the IP address “133.11.0.11” of the destination of header information hd, from the entry (referring to
S14-5: When the agreed entry is not detected (no of S14-4), it represents that a user packet is not a packet for the NAT conversion. The network management module 312 searches the address block of the IP address of the destination in the user packet header information hd from the routing table of the virtual router which is detected.
S14-6: As a result of search processing of process S14-5, the network management module 312 determines whether an address block is detected.
S14-7: When the address block is not detected (no of S14-6), It is indicated that the communication has not been reached. Therefore, the network management module 312 outputs the error information “network unreachable” which indicates that a network does not arrive at and finishes as an error.
S14-8: When the address block is detected as a result of search processing of the process S14-5 (yes of S14-6), the network management module 312 updates the packet header renewal list hw.
Especially, the network management module 312 acquires an IP address of next hop in the routing table and acquires the MAC address corresponding to the IP address concerned. And the network management module 312 updates the MAC address which is acquired in the item “Dst Mac Address” of the packet header renewal list hw. In addition, the network management module 312 updates the present virtual network ID in the virtual network ID in which the next hop indicates.
S14-9: When the agreed entry of the NAT table is detected as a result of the search processing of the process S14-3 (yes of S14-4), it is indicated that a user packet is a packet for the NAT conversion. Therefore, the network management module 312 performs the NAT conversion processing based on the entry in the NAT rule table which is detected. In addition, it is indicated that a packet is a round-trip packet when the entry of the NAT table is detect. The NAT conversion processing will be described according to a flow chart in
(Simulation Processing: NAT Conversion Processing (S14-9))
S14-11: The network management module 312 searches an entry that an appointed item matches with the header information hd from the entry of the NAT active list in the NAT rule table which is detected. The appointed item is the item “Orig-D-IP”, the item “Orig-Photo” and the item “Orig-Port”.
S14-12: The network management module 312 determines whether the entry of the NAT active list that an appointed item matches with is detected.
S14-13: When the entry of the NAT Active list that appointed item matches with is detected (yes of S14-12), it is indicated that the NAT conversion processing corresponding to the header information hd packet occurs. The network management module 312 updates the packet header renewal list hw based on the entry of the NAT Active list which is detected.
Especially, the network management module 312 updates the MAC address corresponding to the IP address after the conversion that the item “Trans-D-IP” of the entry of the NAT Active list which is detected in the item “Dst Mac Address” of the packet header renewal list hw. In addition, the network management module 312 updates an IP address after the conversion in the item “Dst IP address” of the packet header renewal list hw. In addition, the network management module 312 updates a value of the item “Trans-Port” of the entry of the NAT Active list which is detected in the item “Dst port” of the packet header renewal list hw.
In addition, the network management module 312 updates an item “round-trip session” of the packet header renewal list hw to a value “1” and updates the item “outward trip/return journey” to a value “0/1”. When the entry of the NAT Active list is detected, it is indicated that the value of the item “round-trip session” is “1”. In addition, the network management module 312 updates the value of the item “outward trip/return journey” based on the entry of the NAT Active list which is detected. In addition, the network management module 312 updates the virtual network ID in which the item “Next Net” of the NAT rule table represents to the current virtual network ID.
S14-14: When the entry of the NAT Active list that an appointed item matches with is not detected (no of S14-12), the network management module 312 detects the NAT rule table. The network management module 312 detects the entry of the NAT rule table that item “Trans-D-IP” matches with the IP address of the destination that the item “Dst IP address” in the header information hd of the user packet indicates.
In the embodiment, the entry of the NAT Active list that an appointed item matches with does not exist at the start. Therefore, the network management module 312 does not detect the entry of the NAT Active list that an appointed item matches with (no of S14-12). And the network management module 312 detects the entry of the NAT rule table that the item “Trans-D-IP” matches with IP address “133.11.0.11” of the destination of header information hd of the user packet (S14-14).
S14-15: The network management module 312 determines whether the item “NAT Type” of the entry of the NAT rule table which is searched is “Load Balancer”.
S14-16: when the item “NAT Type” is “Load Balancer” (yes of S14-15), the network management module 312 decides the virtual machine vm of the destination in the packet according to policy of the load distribution. In addition, the network management module 312 does not carry out the process S14-16 when the item “NAT Type” is not “Load Balancer” (no of S14-15).
According to the virtual router DB 143 depicted by
S14-17: The network management module 312 acquires the MAC address of the virtual machine of the destination from an IP address after the NAT conversion processing. In the embodiment, the network management module 312 acquires the MAC address “Ab:cd:ef:12:34:78” of the virtual machine “Node-2” vm-2 with reference to the virtual machine DB 142 (referring to
S14-18: The network management module 312 updates the packet header renewal list hw based on the item of the entry of the NAT rule table which is detected and the IP address which is acquired in the process S14-17. The details of the update processing will be described later according to
S14-19: The network management module 312 registers the NAT Active list with an entry of the virtual router yr which is detected in the virtual router DB 143 (referring to
(Simulation Processing (S14-18): Packet Header Renewal List after NAT Conversion Processing)
The network management module 312 updates the item “Dst Mac Address” of the packet header renewal list hw-2 by the MAC address “Ab:cd:ef:12:34:78” of the virtual machine “Node-2” vm-2 of the destination after the NAT conversion processing. In addition, the network management module 312 updates the item “Dst IP address” of the packet header renewal list hw-2 by the IP address “172.16.10.10” of the virtual machine “Node-2” vm-2 of the destination. In addition, the network management module 312 updates the item “Dst port” of the packet header renewal list hw-2 by a value “80” of item “Orig-Port” in the NAT rule table.
In addition, the network management module 312 updates value “1” for the item “round-trip session” in the packet header renewal list hw-2. In addition, the network management module 312 updates value “0” (outward trip) for the item “outward trip/return journey” of the packet header renewal list hw-2, because there is not the NAT Active list. In addition, the network management module 312 updates the virtual network ID “Net-2” n2 of item “Next Net” of the NAT rule table to the current virtual network ID.
(Simulation Processing (S14-19): Registration of the NAT Active List)
The NAT Active list has an Item “ID”, an item “Rule-ID”, an item “NAT Type”, an item “Session-Pair”, an item “Orig-D-IP”, an item “Orig-Proto”, an item “Orig-D-Port”, an item “Orig-S-IP”, an item “Orig-S-port”, an item “Trans-D-IP”, an item “Trans-Port” and an item “Timer”.
The item “ID” indicates the identification information of the NAT Active list. The item “Rule-ID” indicates the identification information of the rule of the NAT conversion. The item “NAT Type” indicates the outward trip or the return journey. The item “NAT Type” indicates “DNAT (destination NAT)” in the case of the outward trip, and, indicates “SNAT(Source NAT)” in the case of the return journey. The item “Session-Pair” indicates “ID” of the NAT Active list to make a pair.
The item “Orig-D-IP” is the IP address of the origin of NAT conversion. The item “Orig-Proto” indicates the protocol of the origin of NAT conversion. The item “Orig-D-Port” indicates the port number of the destination of the origin of NAT conversion. The item “Orig-S-IP” indicates the IP address of the origin of transmission of the origin of NAT conversion. The item “Orig-S-port” indicates the port number of the origin of transmission of the origin of NAT conversion. The item “Trans-D-IP” indicates the IP address of the destination of the NAT conversion. The item “Trans-Port” indicates a port number of the NAT conversion. The item “Timer” indicates the validity period of the entry.
According to the example of
In addition, according to the entry of ID “NAT-Active-1”, about the origin of conversion of the outward trip, the value of the IP address of the destination is “133.11.0.11” (item “Orig-D-IP”), the value of the port number is “80” (item “Orig-Proto”) and the protocol is “TCP” (item “Orig-D-Port”). In addition, according to the entry of ID “NAT-Active-1”, about the origin of conversion of the outward trip, the value of the IP address of the origin of transmission is “130.69.100.10” (item “Orig-S-IP”), and the port number is “48754” (item “Orig-S-port”).
In addition, according to the entry of ID “NAT-Active-1”, about the destination of conversion of the outward trip, the value of the IP address of the destination is “172.16.10.10” (item “Trans-D-IP”) and the port number is “80” (item “Trans-Port”). In addition, the validity period of the entry (item “Timer”) is 30 seconds. The NAT conversion information of the return journey that an entry of ID “NAT-Active-2” indicates has information of the reverse conversion of the conversion information of the outward trip that the ID “NAT-Active-1” has.
After the process S14-13 and the process S14-19 which are explained in
S14-10: After the process S14-8 and the process S14-9, the network management module 312 updates the packet header renewal list hw. The update processing of the packet header renewal list hw will be described according to
(Packet Header Renewal List (S14-10) after Routing Processing)
In the embodiment, the current virtual network ID is a virtual network ID “Net-2” n2 as a result of NAT conversion processing indicated by
After the processing of the process S14-10 indicated by
As a result of routing processing, the network management module 312 carries out the processes S12, S13 again. When the network management module 312 detects the entry that item “Dst Mac Address” of header information hd of the user packet agrees with from an entry of the virtual router DB 143 (referring to
On the other hand, when the network management module 312 does not detect the entry that a MAC address matches with the item “Dst Mac Address” in the header information hd of the user packet from an entry of the virtual router DB 143 (referring to
S15: When an entry matching with is not detected (no of S13), the network management module 312 determines whether an entry that a MAC address matches with the item “Dst Mac Address” of header information hd is detected from the virtual machine DB 142 (referring to
In the embodiment, the value of item “Dst Mac Address” in the packet header renewal list hw-3 (referring to
S16: When an entry matching with is not detected as a result of search processing of process S15 (no of S15), it indicates that communication has not been reached. Therefore, the network management module 312 outputs error information “network unreachable” which indicates a network not arriving at and finishes as an error.
S17: On the other hand, when an entry matching with is detected (yes of S15), it indicates that the packet arrived at the virtual machine vm of the destination. Therefore, the network management module 312 performs post-processing of the simulation. The post-processing of the simulation will be described later in a flow chart of
S18: The network management module 312 outputs data as a result of simulation and finishes the simulation processing. The network management module 312 sends the packet header renewal list hw described later in
(Simulation Processing: Post-Processing (S17))
S17-1: The network management module 312 acquires a deployment physical machine IP address of the virtual machine vm concerned based on the virtual machine vm of the destination that the packet header renewal list hw indicates. And the network management module 312 sets the deployment physical machine IP address which is acquired in the item “address physical machine IP address” in the packet header renewal list hw.
In the embodiment, according to the packet header renewal list hw-3 (referring to
(Simulation Processing: A Packet Header Renewal List after Post-Processing)
According to
[Processing of Virtual Router]
Firstly, a format of session information st of which the TX session table st-t and the RX session table st-r have and which is indicated in
(TX Session Table, RX Session Table)
The session information st has match part stm, header renewal part stu, and control part stc. The match part stm is a part which is compared with the header information hd of the user packet which is transmitted and received. The header renewal part stu has a target item which is renewed the header information hd of the user packet which is transmitted and received. In addition, among the items in which the header renewal part stu has, an item of blanks is the item where it is not intended for renewal of header information hd of the user packet. The control part stc has the control information of the session.
The match part stm has the item where is the same as header information hd (referring to
(Renew Header Information)
The TX processing module 402 updates the header information of the user packet of tunnel packet PKa for the transmission, of which the match part stm of session information st in the TX session table st-t matches with, according to the header renewal part stu. In addition, the RX processing module 401 updates the header information of the user packet of tunnel packet PKa for the reception, of which the match part stm of session information st in the RX session table st-r matches with, according to the header renewal part stu.
The TX processing module 402 and the RX processing module 401 update the header information of the user packet depending on a value of round-trip packet fg1. The update of the header information in the table H1 of
According to the table H1 in
Then, according to
(TX Processing Module)
S21: When the TX processing module 402 receives a packet for the transmission from the virtual machine vm, the TX processing module acquires the virtual network ID in which the virtual interface of virtual machine vm connects with. That is, the TX processing module 402 acquires the virtual network ID of which the item “Connect Net” of the virtual interface of virtual machine vm in the virtual machine DB 142 (referring to
S22: The TX processing module 402 analyzes a packet for the transmission from the virtual machine vm and acquires the classification of the packet.
S23: The TX processing module 402, based on an analysis result, determines whether a packet for the transmission is “arp” demand.
S24: When a packet is “arp” demand (yes of S23), the TX processing module 402 notifies the proxy-ARP module 403 of the “arp” demand.
S25: On the other hand, the TX processing module 402 determines whether a packet is IP uni-cast depending on the analysis result of the packet when a packet is not “arp” demand (no of S23).
S26: When a packet is not IP uni-cast (no of S25), the TX processing module 402 performs processing of broadcasting and the transmission processing of L2 packet depending on an analysis result and finishes the processing.
S27: On the other hand, the TX processing module 402 performs the transmission processing of packet when a packet is IP uni-cast (yes of S25). The processing of the process S27 will be described according to a flow chart of
(TX Processing Module: Transmission Processing of the IP Uni-Cast)
S31: The TX processing module 402 searches the TX session table st-t based on the header information hd of the packet for the transmission. That is, the TX processing module 402 searches the entry that the match part stm matches with the header information hd of the packet for the transmission from an entry of TX session table st-t.
S32: The TX processing module 402 determines whether an entry having the match part stm, which matches with the header information hd of the packet for the transmission, is registered in the TX session table st-t.
S33: When it is not registered (no of S32), the TX processing module 402 registers the session information st corresponding to header information hd of the packet for the transmission with the TX session table st-t. The details of the processing in the process S33 will be described later according to
By process S31-S33, the TX processing module 402 acquires an entry of TX session table st-t in which the match part stm matches with the header information hd of the packet for the transmission.
S34: The TX processing module 402 updates the header information hd of the user packet included in the tunnel packet PKa based on the header renewal part stu of the entry which is acquired.
S35: The TX processing module 402 sets the virtual network ID and the round-trip flag fg1 included in the VXLAN header (
S36: The TX processing module 402 appoints a deployment physical machine IP address of the virtual machine vm of the destination in the destination IP address included in the tunneling UPD/IP header (referring to
The tunnel packet PKa arrives at the server device 10 equipped with the virtual machine vm of the destination by the processing of process S34-S36, and the user packet included in the tunnel packet PKa arrives at the virtual machine vm of the destination. In addition, it becomes detectable whether a packet is the packet of the round-trip session or whether it is the outward trip or the return journey, based on the round-trip flag “fg1” in the tunnel packet PKa.
S37: The TX processing module 402 transmits tunnel the packet PKa which is updated through a network interface (communication interface device 203 of
(TX Processing Module: The Registration of the Session)
S41: The TX processing module 402 inquires the route information corresponding to the header information hd to the network management module 312 in the management server device 20, based on the header information hd of the packet for the transmission. And the TX processing module 402 receives the packet header renewal list hw from the network management module 312.
S42: The TX processing module 402 determines whether a packet for the transmission is the packet of the round-trip session based on the packet header renewal list hw which is acquired.
S43: When it is the packet of the round-trip session (yes of S42), the TX processing module 402 further determines whether a packet for the transmission is the packet of the outward trip.
S44: When it is the packet of the round-trip session (yes of S42) and is the packet of the return journey (no of S43), the TX processing module 402 clears information of the header renewal part hwu in the packet header renewal list hw which is acquired. In other words, The TX processing module 402 makes the information of header renewal part hwu invalid.
S45: In addition, the TX processing module 402 registers the reverse route of the route which is indicated by the packet header renewal list hw which is acquired with the RX session table st-r, when it is the packet of the outward trip (yes of S43). In other words, The TX processing module 402 generates the route of the return journey based on the packet header renewal list hw which is acquired and registers it in the RX session table st-r. In this way, it is possible that the RX processing module 401 updates the header information of the user packet at the time of the reception of the packet of the return journey, based on RX session table st-r. Therefore, It is possible to make the route of the outward trip and the route of the return journey agree.
In addition, the TX processing module 402 uses the information of the header renewal part hwu for renewal (S34 in
S46: The TX processing module 402 adds the packet header renewal list hw to the TX session table st-t and registers it, after the process S42-S45. The TX processing module 402 sets the expiration date to the item “timer” of the entry in the TX session table st-t which is added then.
In this way, the TX processing module 402 inquires to the IaaS control program 310 for the route information, when the TX session table st-t does not have the session information st corresponding to header information hd of the packet for the transmission. And the TX processing module 402 updates the tunnel packet PKa for the transmission based on route information. In this way, it is possible that the routing control of the virtual router yr which followed the migration realizes.
Then, according to
(RX Processing Module)
S51: The RX processing module 401 analyzes the header information hd in the packet which is received from the tenant network nw1 and acquires the classification of the packet.
S52: The RX processing module 401 carries out the processing of the physical machine update packet PKb. The details of the processing of process S52 will be described later according to a flow chart in
S53: The RX processing module 401 analyzes the reception packet, and determines whether a packet is IP uni-cast.
S54: When the reception packet is not the IP uni-cast (no of S53), the RX processing module 401 performs the processing of broadcasting and the transmission processing of L2 packet depending on the analysis result and finishes processing.
S55: On the other hand, the RX processing module 401 carries out the reception processing of the packet, when a reception packet is IP uni-cast (yes of S53). The processing of process S55 will be described later according to a flow chart in
S56: The RX processing module 401 transfers a packet to the virtual machine vm equipped with the own machine corresponding to the virtual network ID of the packet and the MAC address of the destination of the packet.
(RX Processing Module: Processing of the Physical Machine Update Packet)
S61: The RX processing module 401 determines whether a reception packet is the physical machine update packet PKb based on the flag fg2 (referring to
S62: When it is the physical machine update packet PKb (yes of S61), the RX processing module 401 updates the TX session table st-t and finishes the processing.
The TX session table st-t is managed for every virtual network ID. Therefore, the RX processing module 401 detects an entry, in which the virtual network ID and the virtual IP address included in the physical machine update packet PKb matches, from all entries of TX session table st-t. The RX processing module 401 updates the deployment physical machine IP address in the matched entry by the deployment physics machine IP address in the physical machine update packet PKb.
In this way, the RX processing module 401 updates the TX session table st-t in the virtual router yr according to the deployment physical machine IP address included in the physical machine update packet PKb. In other words, the RX processing module 401 updates the deployment physics machine IP address of virtual machine vm which moved by the migration in the TX session table st-t. Thereby, it is possible that the TX processing module 402 communicates with the virtual machine vm which moved by the migration based on TX session table st-t.
S63: On the other hand, when it is not the physical machine update packet PKb (no of S61), the RX processing module 401 determines whether there is the entry that the match part stm matches with the header information hd of the packet in the RX session table st-r.
S64: When there is an entry matching with (yes of S63), the RX processing module 401 determines whether the virtual machine vm of the destination of the packet is equipped with by an own machine. The RX processing module 401 judges whether the virtual machine vm is equipped by referring to the hypervisor Hy (referring to
In addition, it indicates that the virtual machine vm of the destination of the packet works when the virtual machine vm of the destination of the packet is equipped with by an own machine (yes of S64). Therefore, the RX processing module 401 moves to the judgment processing in the process S53 (referring to the flow chart in
S65: When there is a matching entry (yes of S63), and the virtual machine vm of the destination of the packet is not equipped with by an own machine (no of S64), it indicates that the virtual machine vm, which worked with an own machine, moved by the migration. In this way, it is possible to determine whether the virtual machine vm was equipped with past, by judging whether there is an entry in the RX session table st-r which matches with the header information hd.
And the RX processing module 401 inquires to the IaaS control program 310 for a deployment physical machine IP address after migration of the virtual machine vm which worked with an own machine. And the RX processing module 401 updates the virtual machine list vh which equipped in the past according to the deployment physical machine IP address after migration which is acquired. The virtual machine list vh which equipped in the past will be described according to
(Virtual Machine List which is Carried in the Past)
The item “entry ID” indicates the identification information. The item “virtual network ID” indicates the virtual network ID in which the virtual machine vm belongs to. The item “an IP address of virtual machine vm” indicates the IP address of virtual machine vm. The item “new deployment physical machine IP address” indicates an IP address of the server device 10 equipped with the virtual machine vm after the migration. The item “timer” indicates a period to hold an entry.
(RX Processing Module: Update Processing of Virtual Machine List which was Equipped with the Past)
S71: The RX processing module 401 deletes the entry that the MAC address of the destination in the match part stm matches with an IP address of the virtual machine vm of the destination of the packet from the RX session table st-r. In other words, the RX processing module 401 deletes the entry of which the virtual machine vm which moved by migration is a destination from the RX session table st-r.
S72: The RX processing module 401 inquires to the network management module 312 in the management server device 20 for the deployment physical machine IP address of the virtual machine vm which migrated based on the virtual network ID and the header information hd of packet.
Especially, the RX processing module 401 generates the header information hd of the reverse route based on the header information hd of the packet. And the RX processing module 401 inquires to the network management module 312 in the management server device 20 for route information based on header information hd of the reverse route and the virtual network ID. And the RX processing module 401 receives the packet header renewal list hw from the network management module 312.
S73: The RX processing module 401 registers an entry with the virtual machine list vh which equipped in the past based on the packet header renewal list hw which is received.
Especially, the RX processing module 401 registers the virtual network ID of the virtual machine vm which migrated with the item “virtual network ID” of the virtual machine list vh which equipped in the past. In addition, the RX processing module 401 registers an IP address of virtual machine vm with an item “an IP address of virtual machine vm” in the virtual machine list vh which equipped in the past.
In addition, the RX processing module 401 registers a value of item “destination physical machine IP address” in the control part hwc in the packet header renewal list hw which is acquired with an item “new deployment physical machine IP address” in the virtual machine list vh which equipped in the past. In addition, the RX processing module 401 sets a timer level of virtual machine list vh which equipped in the past in a value of 2 times as large as a cache timer.
The process returns to the processing of RX processing module 401 in
S66: When there is not the entry that the match part stm matches with the header information hd of the packet in the RX session table st-r (no of S63), the RX processing module 401 determines whether the virtual machine vm of the destination of the packet is equipped with by an own machine. When the virtual machine vm is equipped (yes of S66), it corresponds a case of detecting a new session. Therefore, the RX processing module 401 moves to the judgment processing of process S53 of the flow chart in
S67: When there is not an entry matching with (no of S63), and the virtual machine vm of the destination of the packet is not equipped with by an own machine (no of S66), the RX processing module 401 refers to the virtual machine list vh which equipped in the past. And the RX processing module 401 determines whether there is an entry matching with the virtual machine vm of the destination of the packet in the virtual machine list vh which equipped in the past. In other words, the RX processing module 401 judges whether the reception packet is a packet which is a destination of the virtual machine vm which equipped in the past.
S68: When there is not an entry which matches with the virtual machine vm of the destination of the packet which is received (no of S67), it indicates that it is an inappropriate packet. Therefore, the RX processing module 401 deletes the packet which is received and finishes processing.
S69: In the case of yes in the process S65 and the process S67, it indicates that the reception packet is a packet to which the virtual machine vm which equipped in the past is a destination. Therefore, the RX processing module 401 sends the physical machine update packet PKb including the new deployment physical machine IP address of the virtual machine vm of the destination of the reception packet in the IP address of the origin of transmission of the reception packet.
In this way, the RX processing module 401 working with the server device 10 which equipped with the virtual machine vm in the past sends the physical machine update packet PKb when the packet to the virtual machine vm concerned receives. Thereby, it is possible that the RX processing module 401 notifies the deployment physical machine IP address of virtual machine vm which equipped in an own machine in the past to the virtual machine vm of the origin of transmission of the packet. Therefore, it is possible to reduce the interruption time for communication by the outbreak of migration.
(RX Processing Module: The Packet Receives and Processes)
S81: The RX processing module 401 searches the RX session table st-r based on the header information hd of the reception packet. Specially, the RX processing module 401 searches an entry that the match part stm matches with the header information hd of the packet from an entry of the RX session table st-r.
S82: The RX processing module 401 determines whether an entry that the match part stm matches with the header information hd of the reception packet is registered in the RX session table st-r.
S83: When it is not registered (no of S82), the RX processing module 401 registers the session information st corresponding to the header information hd of the reception packet with the RX session table st-r. The details of the processing of process S83 will be described later according to
By the process S81-S83, the RX processing module 401 acquires an entry of RX session table st-r where the match part stm matches with the header information hd of the reception packet.
S84: The RX processing module 401 updates the header information hd of the user packet included in the tunnel packet PKa based on the entry which is acquired. And the RX processing module 401 transfers a user packet to the virtual machine vm of the destination.
In addition, in the case of the return journey packet, the RX processing module 401 updates the header information hd of the user packet, based on RX session table st-r (referring to S45 in
(RX Processing Module: Registration of the Session)
S91: The RX processing module 401 inquires to the network management module 312 in the management server device 20 for route information corresponding to the header information hd based on the header information hd of the reception packet. And the RX processing module 401 receives the packet header renewal list hw from the network management module 312.
S92: The RX processing module 401 determines whether a reception packet is the packet of the round-trip session based on the packet header renewal list hw which is acquired.
S93: When it is the packet of the round-trip session (yes of S92), the RX processing module 401 further determines whether a reception packet is the packet of the outward trip.
S94: When it is the packet of the outward trip (yes of S93), the RX processing module 401 generates the session information st of which the virtual machine vm of the origin of transmission of the reception packet and an IP address are a destination and registers it with the TX session table st-t. The TX processing module 402 is able to acquire the IP address of the destination of tunnel packet PKa at the time of the transmission of the packet of the return journey based on session information st which is registered. Thereby, it is possible to match the route of the outward trip and the route of the return journey of the packet through the IP conversion by NAT or the load balancer.
S95: When it is a one-way packet (no of S92) or when it is the packet of the outward trip (yes of S93), the RX processing module 401 clears information of header renewal part hwu in the packet header renewal list hw which is acquired. In other words, the RX processing module 401 disables the header renewal part hwu of the packet header renewal list hw which is acquired.
In addition, the RX processing module 401 uses information of header renewal part hwu for renewal of tunnel packet Pka (S84 of
S96: After the process S92-S95, the RX processing module 401 adds the packet header renewal list hw to the RX session table st-r and registers it. The RX processing module 401 sets expiration date to the item “timer” of the entry in the RX session table st-r which is added then.
In this way, the RX processing module 401 inquires to the IaaS control program 310 for route information, when there is not the session information st corresponding to header information hd of the packet which is received in the RX session table st-r held for cache. And, the RX processing module 401 updates the header information hd of the packet which is received based on the route information and transfers it to the virtual machine vm. Thereby, it is possible that the routing control of virtual router yr which followed the migration realizes.
In addition, in the embodiment described above, the virtual router yr adds the round-trip flag fg1 to the tunnel packet PKa. But, it is not limited in the embodiment and the virtual router yr does not need to add the round-trip flag fg1 to the tunnel packet PKa.
The virtual router yr may acquire the route information of the return journey by inquiring to the IaaS control program 310 at the time of the transmission of the packet of the return journey. In this way, it is possible to make the route of the outward trip and the route of the return journey of the packet agree even if the round-trip flag fg1 is not added to the tunnel packet PKa.
In addition, in the embodiment described above, the virtual router yr of which the virtual machine vm appoints as a default route works in the server device 10 equipped with the virtual machine vm. But it is not limited to this embodiment. The virtual router yr of which the virtual machine vm appoints as a default route may works in the server device 10 which is different from the server device 10 equipped with the virtual machine vm.
All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2014-233578 | Nov 2014 | JP | national |