Along with the developments of computer and network technologies, network clouding technologies is a future development trend. Currently, when establishing cloud computing environment, physical zones may be divided according to department locations, physical locations and etc., and cloud computing environment is established for each physical zone respectively. Service resources are deployed for the cloud computing environment according to characterizations of each physical zone, such as firewall deployment, Intrusion Prevention System (IPS) deployment, load balancing and etc. Service resources are mostly exclusive for each physical zone and there is very little client migration. When large-scale client migration is needed, the service resources are re-deployed to adapt to the migration. In addition, the sequence for executing multiple services is relatively fixed.
The present disclosure will be illustrated in detail hereinafter with reference to the accompanying drawings and specific examples.
As used in the description herein and throughout the claims that follow, the meaning of “a”, “an”, and “the” includes both the singular and plural unless the context clearly dictates otherwise. Also, as used in the description herein and throughout the claims that follow, the meaning of “in” includes “in” and “on” unless the context clearly dictates otherwise.
As used herein, the terms “comprising,” “including,” “having,” “containing,” “involving,” and the like are to be understood to be open-ended, i.e., to mean including but not limited to.
As used herein, the phrase “at least one of A, B, and C” should be construed to mean a logical (A or B or C), using a non-exclusive logical OR. It should be understood that one or more steps within a method may be executed in different order (or concurrently) without altering the principles of the present disclosure.
At block 101, an edge switch receives and stores a virtual machine (VM) classification policy and an executing policy corresponding to each VM class distributed by a policy controller. The executing policy may include information of each service node for processing a message and an executing sequence of the service nodes.
The service node may include a firewall, an IPS, a load balancing and etc. The information of the service node may include a name of the service node, an address of the service node and etc. The address of the service node is an address of a service node device.
In an example, a network administrator configures the VM classification policy and the executing policy corresponding to each VM class on the policy controller in advance. The policy controller distributes the VM classification policy and the executing policy corresponding to each VM class to all edge switches, and each edge switch stores the VM classification policy and the executing policy corresponding to each VM class.
The VM classification policy may include classifying the VMs according to quintuple information. For instance, the VMs may be classified according to IP address sections, or MAC addresses, or a combination of the IP address sections and the MAC addresses.
In an example, the executing policy corresponding to each VM class may include (1) information of each service node to be executed by a VM of the VM class, such as a name, an address and etc.; (2) a sequence for executing the service nodes.
In an example, the information of each service node to be executed by the VM of the VM class includes:
(1) a service node 1: firewall; a service node 2: load balancing; an IP address of the service node 1, and an IP address of the service node 2.
(2) the sequence for executing the service nodes is that the service node 1 is executed first and then the service node 2 is executed.
The network administrator or a managing device configures the service policy on the service node, such as, configures an Access Control List (ACL) policy, an anti-attack policy and etc.
In an example, after receiving a updated VM classification policy distributed by the policy controller, the edge switch updates a VM classification policy stored by the edge switch. In another example, after receiving a updated executing policy corresponding to one VM class distributed by the policy controller, the edge switch updates a stored executing policy corresponding to the VM class.
At block 102, the edge switch receives a message sent by a VM connected to the edge switch, determines a VM class corresponding to the message according to the VM classification policy, and determines an executing policy according to the determined VM class.
At block 103, the edge switch encapsulates the message according to information of each service node to be executed by a VM of the VM class and an executing sequence, so that the message is sequentially sent to the service nodes to be executed by the VM of the VM class to execute corresponding service policy.
After the edge switch encapsulates the message, each of the subsequent service nodes may obtain the information of the service nodes and the executing sequence of the service nodes.
In an example, when the message is encapsulated, information of each service node and information of the executing sequence may be encapsulated in an outer service information layer.
The edge switch may generate a service node information table according to the executing policy after receiving the executing policy corresponding to each VM class distributed by the policy controller. An example of the service node information table is shown in table 1.
After receiving the message from the VM connected to edge switch, the edge switch encapsulates the information of the service nodes and the executing sequence which are recorded in the service node information table into the outer service information layer. Hence, when the service node parses the message, the service node may send the message to another service node according to the information of the service nodes and the executing sequence which are recorded in the outer service information layer.
According to an example, at block 103, when the edge switch encapsulates the message according to the information of each service node to be executed by the VM of the VM class and the executing sequence, the edge switch encapsulates the information of each service node to be executed by the VM of the VM class and information of each executed service node in the outer service information layer of the message according to the executing sequence, encapsulates an address of a first service node to be executed in an outer layer address header of the message as a destination address.
When the outer service information layer of the message is encapsulated, preconfigured locations are used to indicate the information of the executed service nodes. When the edge switch encapsulates the message, the preconfigured locations are null. After the service node executes the service policy for the message, the service node encapsulates information of the service node, e.g. at least one of an ID, an IP address and an MAC address, into the preconfigured location, so that the message is sent to a next service node according to the executing sequence and the next service node processes the message.
In an example, the information of the service nodes to be executed may be encapsulated, or other modes may be used to notify the service nodes of the executed service nodes and the service nodes to be executed, which are not limited in the present disclosure.
In an example, a virtual Extensible LAN (VXLAN) Tunnel End Point (VTEP) function and an Internet Protocol GateWay (IPGW) function are enabled on the edge switch, and a VTEP IP address, an IPGW IP address and an MAC address are configured for the edge switch.
At block 103, when the edge switch forwards the message, the following processing is performed.
If the edge switch does not find an IP address of the first service node to be executed by the VM of the VM class in a local layer-2 MAC forwarding table, an outer layer IP header and an outer layer MAC header are encapsulated into the message. In the outer layer IP header, a source IP address is the VTEP IP address of the edge switch or an IP address of the VM, and a destination IP address is the IP address of the first service node to be executed by the VM of the VM class. In the outer layer MAC header, a source MAC address is an arbitrarily MAC address, and a destination MAC address is the MAC address of the edge switch.
The edge switch starts to perform forwarding processing for the message, discovers that the outer layer destination MAC address is a gateway MAC address, and determines to perform layer-3 forwarding processing. In the layer-3 forwarding processing, the edge switch searches for a VTEP according to the outer layer destination IP address of the message, and performs VXLAN encapsulation for the message according to the found VTEP. In a VXLAN header, a source IP address and a source MAC address are the VTEP IP address and the MAC address of the edge switch respectively, and a destination IP address and a destination MAC address are a found VTEP IP address and a found MAC address respectively. The edge switch sends out the processed message.
At block 201, a service node receives a message from an edge switch. Information of each service node to be executed by a VM of a VM class corresponding to the message and an executing sequence of each service node are encapsulated into an outer service information layer of the message.
At block 202, the service node executes a service policy for the message. After the service policy is executed, if it is determined that the service node is not a last service node, the service node finds an address of the next service node from the outer service information layer of the message, encapsulates the address of the next service node into the message as an outer layer destination address, and sends out the message.
At block 202, after the service node executes the service policy for the message, if it is determined that the service node is the last service node, the service node removes the outer service information layer of the message, and sends the message to the edge switch of the service node, so that the edge switch sends the message to a destination VM.
Example embodiments will now be described more fully with reference to the accompanying drawings.
In an example, VM1 needs to send a message to VM5, and the following processing is performed.
At block 301, VM1 sends a message to a Fabric network. A destination IP address of the message is an IP address of the VM5, and a destination MAC address is a gateway MAC address configured for VM1, i.e. a MAC address of the edge switch 1.
Each VM is configured with a gateway MAC address. As shown in
At block 302, after receiving the message, the edge switch 1 searches the VM classification policy stored locally for a VM class corresponding to a quintuple of the message, and searches the executing policy corresponding to each VM class stored locally for both information of each service node to be executed by a VM of the VM class and an executing sequence according to the found VM class.
It is assumed that the service nodes to be executed by the VM of the VM class and the executing sequence found by the edge switch 1 are as follows.
1) names of the service nodes: a service node A is a firewall, a service node B is load balancing; an IP address and a MAC address of the service node A, an IP address and a MAC address of the service node B;
2) the executing sequence of the service nodes is that the service node A is executed first and then the service node B is executed.
At block 303, the edge switch 1 encapsulates a service information layer into an outer layer of the message. The service information layer is called an outer service information layer in the following descriptions. Contents of the outer service information layer include information of each service node to be executed by the VM of the VM class, such as names and IP addresses, the executing sequence, and names of executed service nodes, an initial value of which is null. The format of the message encapsulated with the outer service information layer is shown in
At block 304, the edge switch 1 does not find an entry corresponding to an IP address of the service node A in a local layer-2 MAC forwarding table, and then encapsulates an outer layer IP header and an outer layer MAC header into the message. In the outer layer IP header, a source IP address is the IP address of the edge switch 1 or an IP address of the VM1, and a destination IP address is the IP address of the service node A. In the outer layer MAC header, a source MAC address is an arbitrarily MAC address, and a destination MAC address is the MAC address of the edge switch 1. The format of the message encapsulated with the outer service information layer, the outer layer IP header and the outer layer MAC header is shown in
If the edge switch 1 find the entry corresponding to the IP address of the service node A in the local layer-2 MAC forwarding table, it is indicates that service node A is a local host, the edge switch 1 directly forwards the message to the service node A according to an egress port in the entry.
At block 305, the edge switch 1 starts to perform forwarding processing for the message. The edge switch 1 discovers that the outer layer destination MAC address is a gateway MAC address, and determines to perform layer-3 forwarding process. The edge switch 1 searches for a VTEP according to the outer layer destination IP address of the message (the IP address of service node A), finds an IP address and a MAC address of a VTEP2 and performs VXLAN encapsulation for the message. In the VXLAN header, a source IP address and a source MAC address are the IP address and the MAC address of the VTEP1 respectively, and a destination IP address and a destination MAC address are the IP address and the MAC address of the VTEP2 respectively. The format of the message encapsulated with the outer service information layer, the outer layer IP header, the outer layer MAC header and the VXLAN header is shown in
For each VTEP in the network, the edge switches 1 to 4 store information of IP addresses of all VMs corresponding to the IP address of the VTEP.
At block 306, the message is received by VTEP2. The edge switch 2 removes the VXLAN header of the message, searches a local layer-2 MAC forwarding table according to the outer layer destination IP address, (i.e. the IP address of service node A, and finds an egress port. The edge switch 2 forwards the message to service node A via the egress port.
At block 307, service node A receives the message and executes the service policy for the message. After the service policy is executed, the name of the service node A is added to the names of the executed service nodes in the outer service information layer of the message. Service node A searches the outer service information layer of the message for the IP address of the next service node B, encapsulates the IP address of the service node B into the message as an outer layer destination IP address, encapsulates the gateway MAC address of the service node A (i.e. the MAC address of the IPGW2), into the message as an outer layer destination MAC address, and then sends the message to the Fabric network.
After service node A performs encapsulation for the message, the format of the message is shown in
At block 308, the message is received by the edge switch 2. The edge switch 2 does not find an entry corresponding to the outer layer destination IP address of the message in a local layer-2 MAC forwarding table, and determines to perform layer-3 forwarding processing. The edge switch 2 searches for a VTEP IP address according to the outer layer destination IP address of the message (i.e. the IP address of service node B), and finds an IP address of a VTEP3. The edge switch 2 performs VXLAN encapsulation for the message. In the VXLAN header, a source IP address and a source MAC address are the IP address and the MAC address of the VTEP2 respectively, and a destination IP address and a destination MAC address are the IP address and the MAC address of the VTEP3 respectively.
After the edge switch 2 performs encapsulation for the message, the format of the message is shown in
At block 309, the message is received by VTEP3. The edge switch 3 removes the VXLAN header of the message, searches a local layer-2 MAC forwarding table according to the outer layer destination IP address (i.e. the IP address of service node B) and finds an egress port. The edge switch 3 forwards the message to service node B via the egress port.
At block 310, service node B receives the message and executes the service policy for the message. After the service policy is executed, service node B determines that the service node B is the last service node according to the outer service information layer of the message. Service node B removes the outer service information layer of the message and sends the message to the Fabric network.
At block 311, the message is received by the edge switch 3. The edge switch 3 does not find an entry corresponding to the inner layer destination IP address of the message in a local layer-2 MAC forwarding table, and determines to perform layer-3 forwarding processing. The edge switch 3 searches for a VTEP IP address according to the inner layer destination IP address of the message (i.e. the IP address of the VM5), finds an IP of a VTEP4 (i.e. the edge switch 4), and performs VXLAN encapsulation for the message. In the VXLAN header, a source IP address and a source MAC address are the IP address and the MAC address of the VTEP3 (i.e. the edge switch 3) respectively, and a destination IP address and a destination MAC address are the IP address and the MAC address of the VTEP4 respectively. The edge switch 3 sends out the processed message.
At block 312, the message is received by VTEP4 (i.e. the edge switch 4), the edge switch 4 removes the VXLAN header of the message, searches a local layer-2 MAC forwarding table according to the outer layer destination IP address (i.e. the IP address of the VM5), finds an egress port, and forwards the message to the VM5 via the egress port.
According to the examples of the present disclosure, the VM classification policy and the executing policy corresponding to each VM class are configured on the policy controller and distributed to each edge switch. The edge switch adds the information of the service nodes to be executed by the VM and the executing sequence into the message dynamically. After the VM migrates to a new edge switch, if the VM sends a message, the new edge switch only needs to, according to the above configured information, add the information of the service nodes to be executed by the VM and the executing sequence into the message, so as to implement the automatic migration of the service policy.
In addition, the service node is not limited by locations. The service policy may migrates automatically so that the information of the service nodes and the executing sequence configured on the edge switch do not need to be changed when the VM is migrated.
Further, each edge switch is configured as the VTEP and the IPGW, so that cross network forwarding of the messages can be implemented. The examples of the present disclosure may be used when the VMs are located at different VLANs, and original service nodes may execute the service policy for the VMs after the VMs are migrated.
Moreover, by configuring the executing sequence of the service nodes, the VM may flexibly implement services of multiple service nodes in order. By adjusting the VM classification policy, the executing sequence of the service nodes corresponding to the VMs are adjusted accordingly.
The policy receiving module receives and stores a VM classification policy and an executing policy corresponding to each VM class distributed by a policy controller. The executing policy includes information of each service node for processing a message and an executing sequence of the each service node.
The message processing module receives a message sent by a VM connected to the edge switch, determines a VM class corresponding to the message according to the VM classification policy, determines an executing policy corresponding to the VM class, encapsulates the message according to information of each service node to be executed by a VM of the VM class and a executing sequence, and sends the message, so that the message is sequentially sent to the each service node to be executed by the VM of the class to execute a service policy.
In an example, the policy receiving module updates a VM classification policy stored by the edge switch after receiving a updated VM classification policy distributed by the policy controller. In another example, the policy receiving module updates an executing policy corresponding to one VM class stored by the edge switch, after receiving a updated executing policy corresponding to the VM class distributed by the policy controller.
In an example, when the message processing module encapsulates the message according to the information of each service node to be executed by the VM of the VM class and the executing sequence, the following processing is performed by the message processing module.
The message processing module encapsulates information of each service node to be executed by the VM of the VM class and information of each executed service node in an outer service information layer of the message according to the executing sequence, encapsulates an address of a first service node to be executed by the VM of the VM class in an outer layer address header of the message as a destination address of the message.
In an example, a VTEP function and an IPGW function are enabled on the edge switch, and a VTEP IP address, an IPGW IP address and an MAC address are configured for the edge switch. When sending the message, the following processing is performed by the message processing module.
The message processing module does not find an IP address of the first service node to be executed by the VM of the VM class in a local layer-2 MAC forwarding table, encapsulates an outer layer IP header and an outer layer MAC header into the message. In the outer layer IP header, an outer layer source IP address is the VTEP IP address of the edge switch or an IP address of the VM, and an outer layer destination IP address is the IP address of the first service node to be executed by the VM of the VM class. In the outer layer MAC header, an outer layer source MAC address is an arbitrarily MAC address, and an outer layer destination MAC address is the MAC address of the edge switch. The message processing module starts to perform forwarding processing for the message, discovers the outer layer destination MAC address is a gateway MAC address, and determines to perform layer-3 forwarding process. In the layer-3 forwarding processing, the message processing module searches for a VTEP according to the outer layer destination IP address of the message, and performs VXLAN encapsulation for the message according to the found VTEP. In a VXLAN header, a source IP address and a source MAC address are the VTEP IP address and the MAC address of the edge switch respectively, and a destination IP address and a destination MAC address are a found VTEP IP address and a found MAC address respectively. The message processing module sends out the processed message.
The edge switch provided by the present disclosure may be a programmable device with software and hardware. The hardware structure of the edge switch may refer to
The CPU communicates with the machine readable storage medium, reads and executes the instruction codes stored in the machine readable storage medium, and implements the functions implemented by the service executing apparatus. The service executing apparatus is implemented via running the computer program instructions stored in the machine readable storage medium by the CPU when the service executing apparatus is taken as a logical apparatus. When computer program instructions are executed, the implemented service executing apparatus is to execute operations corresponding to the method for executing the service described in the above examples.
The message receiving module receives a message sent by an edge switch and forwards the message to the service executing module. Information of each service node to be executed by a VM of a VM class corresponding to the message and an executing sequence are encapsulated in an outer service information layer of the message.
The service executing module executes a service policy for the message, finds an address of a next service node from the outer service information layer of the message if discovering that the service node is not a last service node after the service policy is executed. The service executing module encapsulates the address of the next service node into the message as an outer layer destination address, and sends out the message.
In an example, if it is discovered that the service node is the last service node after the service policy is executed, the service executing module removes the outer service information layer of the message, and sends the message to the edge switch of the service node, so that the edge switch sends the message to a destination VM. The service node provided by the present disclosure may be a programmable device with software and hardware. The hardware structure of the service node may refer to
The machine readable storage medium stores instruction codes, operations implemented when the instruction codes are executed by the CPU mainly are functions implemented by the service executing apparatus.
The CPU communicates with the machine readable storage medium, reads and executes the instruction codes stored in the machine readable storage medium, and implements the functions implemented by the service executing apparatus. The service executing apparatus is implemented via running the computer program instructions stored in the machine readable storage medium by the CPU when the service executing apparatus is taken as a logical apparatus. When computer program instructions are executed, the implemented service executing apparatus is to execute operations corresponding to the method for executing the service described in the above examples.
The machine readable storage medium may be any electric, magnetic, optical storage devices or other physical storage devices, and may include or store information, such as executable instructions, data and etc. For example, the machine readable storage medium may be Random Access Memory (RAM), transitory storage, non-transitory storage, flash card, storage drive (such as hard disk drive), solid-state drive, storage disk of any type (such as disc, DVD, etc.), or similar storage medium or any combination of the above.
Any one machine readable storage medium described in the present disclosure may be regarded as non-transitory.
The foregoing is only preferred examples of the present invention and is not used to limit the protection scope of the present invention. Any modification, equivalent substitution and improvement without departing from the spirit and principle of the present invention are within the protection scope of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
2014 1 0581462 | Oct 2014 | CN | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CN2015/092903 | 10/27/2015 | WO | 00 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2016/066077 | 5/6/2016 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
7484208 | Nelson | Jan 2009 | B1 |
20130163594 | Sharma | Jun 2013 | A1 |
20140016501 | Kamath | Jan 2014 | A1 |
20150355934 | Yin | Dec 2015 | A1 |
Number | Date | Country |
---|---|---|
103516620 | Jan 2014 | CN |
103997414 | Aug 2014 | CN |
104010028 | Aug 2014 | CN |
Entry |
---|
International Searching Authority, “Notfication of Transmittal of the International Search Report and the Written Opinion”, dated Feb. 2, 2016, PCT/CN2015/092903 7 pages. |
Number | Date | Country | |
---|---|---|---|
20170324582 A1 | Nov 2017 | US |