WO2016127909A1 - Packets forwarding - Google Patents

Packets forwarding Download PDF

Info

Publication number
WO2016127909A1
WO2016127909A1 PCT/CN2016/073477 CN2016073477W WO2016127909A1 WO 2016127909 A1 WO2016127909 A1 WO 2016127909A1 CN 2016073477 W CN2016073477 W CN 2016073477W WO 2016127909 A1 WO2016127909 A1 WO 2016127909A1
Authority
WO
WIPO (PCT)
Prior art keywords
vxlan
port
packet
ovs
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2016/073477
Other languages
French (fr)
Inventor
Yinfei Zhang
Tao Lin
Tao Wen
Weichun Ren
Guanghui Zhang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Publication of WO2016127909A1 publication Critical patent/WO2016127909A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L2012/4629LAN interconnection over a backbone network, e.g. Internet, Frame Relay using multilayer switching, e.g. layer 3 switching

Definitions

  • OVS Open vSwitch
  • the OVS may support an Overlay network by supporting the VxLAN protocol.
  • the OVS may add a VxLAN packet header to an original packet. Therefore, the OVS may use the VxLAN technologies to support the deployment of the Overlay network.
  • Figure 1 is a diagram illustrating structure of an example packet forwarding system
  • Figure 2 is a diagram illustrating an example of an encapsulated VxLAN packet
  • Figure 3 is a chart illustrating a packet forwarding method in accordance with various examples of the present disclosure
  • Figure 3A is a chart illustrating a packet transmitting method in accordance with various examples of the present disclosure
  • Figure 3B is a chart illustrating a packet receiving method in accordance with various examples of the present disclosure.
  • Figure 4 is a chart illustrating a packet receiving method in accordance with various examples of the present disclosure
  • Figure 5 is a diagram illustrating structure of an OVS for transmitting a packet in accordance with various examples of the present disclosure
  • Figure 6 is a chart illustrating a packet transmitting method in accordance with various examples of the present disclosure.
  • Figure 7 is a diagram illustrating an example OVS for receiving a packet in accordance with various examples of the present disclosure
  • Figure 8 is a chart illustrating a packet receiving method in accordance with various examples of the present disclosure.
  • Figure 9 is a diagram illustrating structure of a network for forwarding a packet in accordance with various examples of the present disclosure
  • FIG. 10 is a diagram illustrating a Flow Table (FT) entry receiving device in accordance with various examples of the present disclosure
  • Figure 11 is a diagram illustrating structure of a packet receiving device in accordance with various examples of the present disclosure.
  • Figure 12 is a diagram illustrating structure of a packet transmitting device in accordance with various examples of the present disclosure
  • Figure 13 is a diagram illustrating a packet transmitting device in accordance with various examples of the present disclosure.
  • Figure 14 is a diagram illustrating a packet receiving device in accordance with various examples of the present disclosure.
  • the present disclosure is described by referring to examples. It will be readily apparent however, that the present disclosure may be practiced without limitation to these specific details. In other instances, some methods and structures have not been described in detail so as not to unnecessarily obscure the present disclosure.
  • the term “includes” means includes but not limited to, the term “including” means including but not limited to.
  • the term “based on” means based at least in part on.
  • the terms “a” and “an” are intended to denote at least one of a particular element.
  • Figure 1 is a diagram illustrating structure of an example packet forwarding system.
  • a forwarding process of a packet may be described hereinafter taking communication between a first Virtual Machine (VM) on a first OVS, i.e., VM1 and a third VM on a second OVS, i.e., VM3 for example.
  • VM Virtual Machine
  • the packet forwarding process may be as follows.
  • the first OVS may be deployed on first host, i.e., host 1.
  • the port 3 of the first OVS may be a VxLAN port, called a first VxLAN port.
  • the port 2 of the first OVS may be an uplink port.
  • the port 1 of the first OVS may be an internal port of a local VxLAN Tunnel End Point (VTEP) .
  • the Media Access Control (MAC) address of the internal port may be 00-00-00-00-10-01.
  • the Internet Protocol (IP) address of the internal port may be 100.1.1.1.
  • the second OVS may be deployed on a second host, i.e., host 2.
  • the port 3 of the second OVS may be a VxLAN port, called a second VxLAN port.
  • the port 2 of the second OVS may be an uplink port.
  • the port 1 of the second OVS may be an internal port of the local VTEP.
  • the MAC address of the internal port may be 00-00-00-00-10-02.
  • the IP address of the internal port may be 100.1.1.2.
  • the MAC address of the VM1 may be 00-00-00-00-00-01 and the IP address of the VM1 may be 192.168.1.1.
  • a port connecting the VM1 to the first OVS may be the port 4.
  • the MAC address of the VM3 may be 00-00-00-00-00-02 and the IP address of the VM3 may be 192.168.1.2.
  • a port connecting the VM3 to the second OVS may be the port 4 of the second OVS.
  • the first may receive an original packet destined for the VM3 from the VM1.
  • the first OVS may send the original packet to the first VxLAN port, i.e., the port 3 of the first OVS according to a Flow Table (FT) entry 1, which may be obtained from a Software Defined Network (SDN) controller.
  • the first VxLAN port may add a VxLAN header to the original packet, and send the packet to the local internal port, i.e., the port 1 of the first OVS.
  • the local internal port may add a layer-2 header to the packet, to which the VxlAN header may have been added, using a Linux local protocol stack to generate a VxLAN packet, and send the VxLAN packet to the uplink port of the first OVS based on an FT entry 2, which may be obtained from the SDN controller.
  • the uplink port of the second OVS may receive the VxLAN packet from the uplink port of the first OVS, and send the VxLAN packet to the internal port of the second OVS, i.e., the port 1 of the second OVS based on an FT entry 3, which may be obtained from the SDN controller.
  • the internal port of the second OVS may remove the VxLAN packet header from the VxLAN packet to generate the original packet using the Linux local protocol stack, and send the original packet to the second VxLAN port.
  • the second VxLAN port of the second OVS may send the original packet to the VM3 based on an FT entry 4, which may be obtained from the SDN controller.
  • Table 1 may show the FT entry 1, FT entry 2, FT entry 3 and FT entry 4.
  • FIG. 2 is a diagram illustrating an example of an encapsulated VxLAN packet.
  • the VxLAN packet may include: an original packet and a VxLAN packet header.
  • the VxLAN packet header may include: a layer-2 header and a VxLAN header.
  • the layer-2 header may include: an external destination MAC address, external source MAC address, and an 802.1Q field.
  • the VxLAN header may include: an external destination IP address, external source IP address, and a VxLAN ID.
  • the OVS should search the FT and perform matching operations four times, and perform IP in-stack processing once and perform IP out-stack processing once.
  • the forwarding process may be complicated and the packet forwarding efficiency may be low.
  • the OVS connected to the source VM may add the VxLAN packet header including the layer-2 header and the VxLAN header at a local VxLAN port, instead of sending the original packet to the local internal port, so that the local internal port may add the layer-2 header using the IP in-stack processing. Therefore, the transmitting performance of the packet may be enhanced.
  • the OVS receiving the VxLAN packet may remove the VxLAN packet header including the layer-2 header and the VxLAN header at the local VxLAN port, instead of sending the VxLAN packet to the local internal port, so that the internal local may remove the layer-2 header using the IP out-stack processing. Therefore, the receiving performance of the VxLAN packet may be enhanced.
  • the SDN controller may monitor an Address Resolution Protocol (ARP) packet of the Overlay network, collect neighbor information and log on a host using a Secure Shell (SSH) to obtain default routing information of the VTEP IP and obtain VxLAN packet address information, which may be used to send the VxLAN packet to different opposite VTEPs.
  • the VxLAN packet address information may include MAC information in the layer-2 header and address information of the opposite VTEP. Therefore, the SDN controller may send a FT to the OVS to send the VxLAN packet address information and a designated egress port to the OVS.
  • the OVS may encapsulate the VxLAN packet header including the layer-2 header and the VxLAN header at the VxlAN port and send out the VxLAN packet via the designated egress port.
  • the OVS may encapsulate the VxLAN packet by sequentially adding the VxLAN header and the layer-2 header to the original packet.
  • Figure 3 is a chart illustrating a packet forwarding method in accordance with various examples of the present disclosure.
  • the method may include following blocks.
  • a first OVS may receive an FT entry form an SDN controller.
  • the FT may record VxLAN packet address information and a first uplink port on the first OVS.
  • An original packet which may be received from a source VM on the first OVS and destined for a destination VM on a second OVS, may be sent to a first VxLAN port on the first OVS.
  • the first VxLAN port may add a VxLAN packet header including the VxLAN packet address information to the original packet to generate a VxLAN packet and send out the VxLAN packet via the first uplink port.
  • the FT entry may include: a match entry and an action entry.
  • the match entry may include: an ingress port, a source MAC address of the source VM, i.e., an internal source MAC address, a destination MAC address of a destination VM, i.e., an internal destination MAC address, a source IP address of the source VM, i.e., an internal source IP address, a destination IP address of the destination VM, i.e., an internal destination IP address and/or a tunnel ID.
  • the action entry may include: a first VxLAN port, which may be taken as a first egress port, VxLAN packet address information and a first uplink port, which may be taken as a second egress port.
  • the first OVS may receive the original packet from the source VM, and make a determination as to whether the ingress port, MAC address information (i.e., the internal source MAC address and internal destination MAC address) and/or IP address information (i.e., the internal source IP address and internal destination IP address) respectively matches a corresponding entry in the FT entry.
  • the ingress port, MAC address information and/or IP address information in the original packet respectively matches the corresponding entry the original packet may be sent to the first VxLAN port, which may be taken as the first egress port.
  • the first VxLAN port may add the VxLAN packet header including the VxLAN packet address information to the original packet to generate the VxLAN packet and send the VxLAN packet to the first uplink port, which may be taken as the second egress port.
  • the first uplink port may send out the VxLAN packet.
  • the method for the first VxLAN port to add the VxLAN packet header including the VxLAN packet address information to the original packet to generate the VxLAN packet may include: adding an external destination IP address, an external source IP address, an external destination MAC address and external source MAC address to the original packet.
  • the first OVS may receive the FT entry from the SDN controller and obtain the VxLAN packet address information from the FT entry.
  • the VxLAN packet address information may include: the MAC address of the first VTEP on the first OVS, i.e., the external source MAC address in figure 2, the MAC address of the second VTEP on the second OVS, . e., the external destination MAC address in the figure 2, the IP address of the second VTEP, i.e., the external destination IP address in figure 2. Therefore, the first OVS may construct the layer-2 header using the MAC address of the first VTEP and the MAC address of the second VTEP at the first VxLAN port.
  • the IP address of the first VTEP i.e., the external source IP address may be preset in the first OVS.
  • the first OVS may construct the VxLAN header using the IP address of the second VTEP obtained from the VxLAN packet address information, the preset IP address of the first VTEP, User Datagram Protocol (UDP) information and a VxLAN ID.
  • UDP User Datagram Protocol
  • the first OVS may add the VxLAN packet header including the layer-2 header and VxLAN header to the original packet to generate the VxLAN packet and send out the VxLAN packet via the first uplink port.
  • the second uplink port on the second OVS may receive the VxLAN packet, remove the VxLAN packet header from the VxLAN packet to generate the original packet, and send the original packet to the second VxLAN port on the second OVS.
  • the second VxLAN port may send the original packet to the destination VM.
  • the second uplink port on the second OVS may receive the VxLAN packet, remove the VxLAN packet header from the VxLAN packet to generate the original packet, and send the original packet to the second VxLAN port on the second OVS.
  • the second VxLAN port may send the original packet to the destination VM.
  • the destination VM of the original packet when the destination VM of the original packet connects to the first OVS, local forwarding may be performed.
  • the original packet may be sent to a non-VxLAN port connected to the destination VM on the first OVS, instead of sent to the VxLAN port on the first OVS.
  • the first OVS may receive an FT entry for forwarding the non-VxLAN packet from the SDN controller, receive the original packet from the source VM on the first OVS and send the original packet destined for the destination VM on the first OVS to the non-VxLAN port on the first OVS according to the FT entry for forwarding the non-VxLAN packet.
  • Figure 3A is a chart illustrating a packet transmitting method in accordance with various examples of the present disclosure.
  • a first OVS may receive an original packet from a first VM.
  • a destination device of the original packet may be a second VM on a second OVS.
  • the first OVS may add a VxLAN packet header to the original packet at a VxLAN port to generate a VxLAN packet according to VxLAN packet address information in an FT entry, which may be obtained from an SDN controller.
  • the first OVS may send out the VxLAN packet via a tunnel egress port, i.e., an uplink port of the first OVS designated by the FT entry.
  • a tunnel egress port i.e., an uplink port of the first OVS designated by the FT entry.
  • Figure 3B is a chart illustrating a packet receiving method in accordance with various examples of the present disclosure.
  • a first OVS may receive a VxLAN packet destined for a first VM at an uplink port.
  • the VxLAN packet may be received from a second OVS.
  • the first OVS may remove a VxLAN packet header from the VxLAN packet at the uplink port to obtain an original packet.
  • the first OVS may identify a VxLAN port at the uplink port according to a preset relationship between the uplink port and the VxLAN port and send the original packet to the VxLAN port.
  • the first OVS may send the original packet to the first VM at the VxLAN port according to an egress port of the original packet designated by an FT entry.
  • Figure 4 is a chart illustrating a packet receiving method in accordance with various examples of the present disclosure.
  • the method may include following blocks.
  • a second uplink port on a second OVS may receive a VxLAN packet sent from a first uplink port on a first OVS.
  • a VxLAN port on the first OVS may add a VxLAN packet header including VxLAN packet address information to an original packet to generate the VxLAN packet.
  • the original packet may be originated from a source VM on the first OVS.
  • the second uplink port of the second OVS may remove the VxLAN packet header to obtain the original packet and send the original packet to a second VxLAN port on the second OVS.
  • the second VxLAN port may send the original packet to the destination VM according to an FT entry, which may be obtained from an SDN controller.
  • a match entry in the FT entry may include: an ingress port, an internal source MAC address, an internal destination MAC address, an internal source IP address, an internal destination IP address and a tunnel ID.
  • An action entry of the FT entry may include: an egress port of the original packet, i.e., a port on the second OVS for connecting to the destination VM of the original packet.
  • the VxLAN packet information may include: an MAC address of a first VTEP on the first OVS, an MAC address of a second VTEP on the second OVS, and an IP address of the second VTEP.
  • the second OVS may further receive an FT entry for forwarding a non-VxLAN packet form the SDN controller.
  • the second OVS may forward the non-VxLAN packet according to the FT entry for forwarding the non-VxLAN packet.
  • the match entry in the FT entry for forwarding the non-VxLAN packet may include: a source address and a destination address of the non-VxLAN packet.
  • the action entry in the FT entry for forwarding the non-VxLAN packet may include: a designated port, which may be a port on the second OVS for connecting to the destination VM of the non-VxLAN packet.
  • Figure 5 is a diagram illustrating an OVS for transmitting a packet in accordance with various examples of the present disclosure.
  • the first OVS may be deployed on the host 1.
  • the port 3 of the first OVS may be a local VxLAN port, which may be called the first VxLAN port.
  • the port 2 of the first OVS may be a local uplink port.
  • the port 1 of the first OVS may be the internal port of the local VTEP.
  • the MAC address of the internal port may be 00-00-00-00-10-01.
  • the IP address of the internal port may be 100.1.1.1.
  • a port on the first OVS for connecting to the VM1 may be the port 4.
  • the first OVS may receive a FT entry 1 as shown in the following table 2 from the SDN controller.
  • the FT entry 1 may include the VxLAN packet address information and the uplink port of the first OVS.
  • the VxLAN packet address information may include: the MAC address of the first VTEP on the first OVS, i.e., the MAC address of the internal port on the first OVS, the MAC address of the second VTEP on the second OVS, i.e., the MAC address of the internal port on the second OVS, and the IP address of the second VTEP, i.e., the IP address of the internal port on the second OVS.
  • the first OVS may send the original packet to the local first VxlAN port, i.e., the port 3 of the first OVS according to the FT entry from the SDN controller.
  • the first VxLAN port may add the VxLAN packet header including the VxLAN packet address information to the original packet according to the VxLAN packet address information in the FT entry 1.
  • the first VxLAN port may send the VxLAN packet to the uplink port of the first OVS according to the FT entry 1.
  • the uplink port of the first OVS may send out the VxLAN packet.
  • the packet transmitting process in examples of the present disclosure may save one transmitting process using the IP protocol stack and one FT searching and matching process.
  • Figure 6 is a chart illustrating a packet transmitting method in accordance with various examples of the present disclosure. As shown in figure 6, the method may include following blocks.
  • a first OVS may receive an original packet from a VM1.
  • the first OVS may make a determination as to whether an egress port of the original packet is a VxLAN port. If the egress port of the original packet is a VxLAN port, block 604 may be executed. If the egress port of the original packet is not a VxLAN port, block 603 may be executed.
  • the first OVS may receive an FT entry from an SDN controller and make a determination as to whether the egress port of the original packet is a VxLAN port according to the FT entry.
  • the original packet may be sent out and the flow may end.
  • the original packet may be sent to the non-VxLAN port.
  • the first OVS may add the VxLAN header to the original packet at the VxLAN port.
  • the first OVS may add the external destination IP address, the external source IP address and the UDP to the original packet at the VxLAN port and may further add the VxLAN ID to the original packet.
  • the first OVS may add a layer-2 header to the original packet, to which the VxLAN header may have been added, at VxLAN port to generate the VxLAN packet.
  • the first OVS may add the external destination MAC address and the external source MAC address to the original packet, to which the VxLAN header may have been added, at the VxLAN port and may further add an 802.1Q field to the original packet, to which the VxLAN header may have been added.
  • the first OVS may send out the VxLAN packet at the uplink port.
  • Figure 7 is a diagram illustrating an example OVS for receiving a packet in accordance with various examples of the present disclosure.
  • the second OVS may be deployed on the host 2.
  • the port 3 on the second OVS may be a local VxLAN port, which may be called a second VxLAN port.
  • the port 2 of the second OVS may be an uplink port.
  • the port 1 of the second OVS may be an internal port of the local VTEP.
  • the MAC address of the internal port may be 00-00-00-00-10-02 and the IP address of the internal port may be 100.1.1.2.
  • the MAC address of the VM3 may be 00-00-00-00-00-02, and the IP address of the VM3 may be 192.168.1.2.
  • a port on the second OVS for connecting to the VM3 may be the port 4.
  • the uplink port of the second OVS may receive the VxLAN packet from an uplink port of another OVS, remove the VxLAN packet header from the VxLAN packet to generate the original packet, and send the original packet to the VxLAN port on the second OVS.
  • the VxLAN port on the second OVS may send the original packet to the destination virtual machine, such as the VM3 based on the port 4 in the FT entry 2. It can be seen that the packet receiving process in examples of the present disclosure may save one receiving process using the IP protocol stack and one FT searching and matching process.
  • Figure 8 is a chart illustrating a packet receiving method in accordance with various examples of the present disclosure. As shown in figure 8, the method may include following blocks.
  • the second OVS may receive a packet from another OVS at the uplink port. That is, the uplink port of the second OVS may receive the packet from another OVS.
  • the second OVS may make a determination as to whether the packet is the VxLAN packet at the uplink port. If the packet is the VxLAN packet, block 804 may be executed. If the packet is not the VxLAN packet, block 803 may be executed.
  • the packet may be forwarded and the flow may end.
  • the uplink port may remove the VxLAN packet header from the VxLAN packet to generate the original packet and send the original packet to the VxLAN port.
  • the uplink port of the second OVS may obtain the VxLAN port according to a preset corresponding relationship between the uplink port and the VxLAN port.
  • the second OVS may send the original packet to the VxLAN port.
  • the VxLAN port may forward the original packet.
  • the VxLAN port of the second OVS may search the FT entry, which may be obtained from the SDN controller and obtain the egress port of the original packet.
  • the VxLAN port of the second OVS may send the original packet to the destination VM via the egress port of the original packet.
  • the FT may include multiple FT entries.
  • Each FT entry may include: a match entry and an action entry.
  • Table 2 may be illustrated by two tables, i.e., Table 2-1 and table 2-2.
  • Table 2-1 may show contents of the match entry in each FT entry
  • table 2-2 may show contents of the action entry in each FT entry.
  • the following FT entry 1 and FT entry 2 may be illustrated in the same table.
  • the FT entry 1 may be sent to and saved in the first OVS.
  • the FT entry 2 may be sent to and saved in the second OVS.
  • Figure 9 is a diagram illustrating a network for forwarding a packet in accordance with various examples of the present disclosure.
  • Figure 9 may include the network for transmitting the packet as shown in figure 5 and the network for receiving the packet as shown in figure 7.
  • each FT entry may include: a match entry and an action entry.
  • the match entry may include: an ingress port, an internal source MAC address, an internal destination MAC address, an internal source IP address, an internal destination IP address and/or a tunnel ID.
  • the action entry may include: the tunnel ID, an external destination IP address, i.e., tunnel destination address, an external source MAC address, i.e., the tunnel source MAC address, an external destination MAC address, i.e., the tunnel destination MAC address, a tunnel egress port, i.e., an uplink port and an egress port, i.e., a VxLAN port.
  • the ingress port, internal source MAC address, internal destination MAC address, internal source IP address, internal destination IP address and tunnel ID may respectively be: port 4, 00-00-00-00-00-01, 00-00-00-00-02, 192.168.1.1, 192.168.1.2 and Null.
  • the tunnel ID, the external destination IP address, the external source MAC address, the external destination MAC address, the uplink port, which may be taken as a second egress port and the VxLAN port, which may be taken as a first egress port may respectively be: 1, 100.1.1.2, 00-00-00-00-10-01, 00-00-00-00-10-02, port 2 and port 3.
  • the ingress port, internal source MAC address, internal destination MAC address, internal source IP address, internal destination IP address and tunnel ID may respectively be: port 3, 00-00-00-00-00-01, 00-00-00-00-02, 192.168.1.1, 192.168.1.2 and 1.
  • the tunnel ID, the external destination IP address, the external source MAC address, the external destination MAC address, the uplink port, which may be taken as the second egress port and the VxLAN port, which may be taken as the first egress port may respectively be: Null, Null, Null, Null, Null and port.
  • the first OVS may execute following processing.
  • the first OVS may receive the original packet from the VM1 through the ingress port on the first OVS, i.e., the port 4.
  • the original packet may include: the internal source MAC address, internal destination MAC address, the internal source IP address and the internal destination IP address.
  • the port 4 of the first OVS may respectively match the internal source MAC address, internal destination MAC address, internal source IP address and internal destination IP address in the original packet and FT entries in the first OVS, identify the FT entry 1 and obtain the action entry in the FT entry 1.
  • the action entry in the FT entry 1 may include: the external destination IP address, external source MAC address, external destination MAC address, tunnel ID, tunnel egress port and egress port.
  • the ingress port of the first OVS may send the contents of the action entry of the FT entry 1 to the VxLAN port and the uplink port via memory variables in a form of function parameters or via a message.
  • the ingress port of the first OVS may store the action entry of the FT entry 1 in the memory variables.
  • the VxLAN port of the first OVS may obtain the external destination IP address, external source MAC address and external destination MAC address and the tunnel egress port in the action entry of the FT entry 1 from the memory variables.
  • the VxLAN port may further obtain the preset external source IP address, add the external source IP address and external destination IP address to the original packet and further add the external destination MAC address and external source MAC address to the original packet, to which the external source IP address and external destination IP address may have been added to generate the VxLAN packet.
  • the VxLAN port of the first OVS may send the VxLAN packet to the uplink port, i.e., the tunnel egress port.
  • the VxLAN port may further add the tunnel ID to the original packet to generate the VxLAN packet.
  • the uplink port may send out the VxLAN packet.
  • the second OVS may execute following processing.
  • the uplink port of the second OVS may receive the VxLAN packet.
  • the uplink port of the second OVS may obtain the VxLAN port of the second OVS according to a preset relationship between the uplink port of the second OVS and the VxLAN port of the second OVS.
  • the second OVS may remove the VxLAN packet header from the VxLAN packet to generate the original packet at the uplink port.
  • the uplink port of the second OVS may send the original packet to the VxLAN port of the second OVS.
  • the VxLAN port may respectively match the internal source MAC address, internal destination MAC address, internal source IP address and internal destination IP address in the original packet and the FT entries in the FT, identify a matched FT entry 2, obtain the action entry in the FT entry 2.
  • the VxLAN port may respectively match the internal source MAC address, internal destination MAC address, internal source IP address and internal destination IP address in the original packet and the tunnel ID and the FT entries in the FT, identify a matched FT entry 2, obtain the action entry in the FT entry 2.
  • the action entry may include: the egress port of the original packet.
  • the ingress port in the FT entry 2 may be configured as port 3.
  • the VxLAN port of the second OVS may send the original packet to the egress port of the original packet, i.e., the egress port 4.
  • the egress port of the original packet may send the original packet to the VM3.
  • the FT entry searching and matching operation may be performed twice. That is, the ingress port of the first OVS may perform the FT entry searching and matching operation once and the VxLAN port of the second OVS may perform the FT entry searching and matching operation once.
  • the IP in-stack processing and IP out-stack processing may be omitted. Therefore, with the examples of the present disclosure, the complexity of the packet forwarding may be reduced and the efficiency of the packet forwarding may be enhanced. It may be found may experiments that compared with the performance index before the optimization operation, the performance index after the optimization operation may be improved by at least 30%.
  • Figure 10 is a diagram illustrating a FT entry receiving device in accordance with various examples of the present disclosure. As shown in figure 10, the device 1000 may include: an FT receiving module 1001.
  • the FT entry receiving module 1001 may be configured to receive an FT entry from an SDN controller.
  • the FT entry may include: VxLAN packet address information and a first uplink port on the first OVS.
  • the FT entry may be used to send an original packet, which may be received from a source VM on the first OVS and destined for a destination VM on the second OVS, to a first VxLAN port on the first OVS.
  • the first VxLAN port may add a VxLAN packet header including the VxLAN packet address information to the original packet to generate a VxLAN packet and send out the VxLAN packet via the first uplink port.
  • the VxLAN packet address information may include: an MAC address of the first VTEP on the first OVS, i.e. the external source MAC address, the MAC address of the second VTEP on the second OVS, i.e., the external destination MAC address and the IP address of the second VTEP, i.e., the external destination IP address.
  • the FT entry may include: a match entry and an action entry.
  • the match entry may include: the ingress port, the internal source MAC address, the internal destination MAC address, the internal source IP address, the internal destination IP address.
  • the action entry may include: the first VxLAN port, which may be taken as the first egress port, VxLAN packet address information and the first uplink port, which may be taken as the second egress port.
  • the FT entry receiving module 1001 may be further configured to receive a FT for forwarding a non-VxLAN packet from the SDN controller.
  • the FT for forwarding the non-VxLAN packet may be used to send an original packet, which may be received from a source VM on the first OVS and destined for a destination VM on the first OVS, to a non-VxLAN port on the first OVS.
  • Figure 11 is a diagram illustrating a packet receiving device in accordance with various examples of the present disclosure.
  • the device 1100 may include: a VxLAN packet receiving module 1001, a packet header removing module 1102 and a packet transmitting module 1103.
  • the VxLAN packet receiving module 1101 may be configured to receive a VxLAN packet from a first uplink port on a first OVS by a second uplink port on a second OVS.
  • the VxLAN packet may be generated by adding the VxLAN packet header including the VxLAN packet address information to the original packet.
  • the original packet may be initiated by a source VM on the first OVS.
  • the packet header removing module 1102 may be configured to remove the VxLAN packet header at the second uplink port to generate the original packet and send the original packet to the second VxLAN port on the second OVS.
  • the packet transmitting module 1103 may be configured to send the original packet to the destination VM according to the FT entry from the SDN controller at the second VxLAN port.
  • the match entry of the FT entry may include: the ingress port, the internal source MAC address, the internal destination MAC address, the internal source IP address, the internal destination IP address and the tunnel ID.
  • the action entry may include: an egress port of the original packet, i.e., a port on the second OVS for connecting to the destination VM of the original packet.
  • the VxLAN packet address information may include: the MAC address of the first VTEP on the first OVS, i.e., the external source MAC address, the MAC address of the second VTEP on the second OVS, i.e., the external destination MAC address and the IP address of the second VTEP, i.e., the external destination IP address.
  • the device 1100 may further include: a non-VxLAN packet receiving module 1104.
  • the non-VxLAN packet receiving module 1104 may be configured to receive a non-VxLAN packet from the first uplink port of the first OVS using the second uplink port.
  • the packet transmitting module 1103 may be further configured to forward the non-VxLAN packet according to the FT entry for forwarding the non-VxLAN packet, which may be obtained from the SDN controller.
  • the match entry of the FT entry for forwarding the non-VxLAN packet may include: the source address and destination address of the non-VxLAN packet.
  • the action entry of the FT entry for forwarding the non-VxLAN packet may include: an egress port of the original packet, i.e., a port on the second OVS for connecting to the destination VM of the non-VxLAN packet.
  • Figure 12 is a diagram illustrating a packet transmitting device in accordance with various examples of the present disclosure.
  • the device may include: a receiving module 1201, a VxLAN packet header encapsulation module 1202 and a tunnel egress port 1203.
  • the receiving module 1201 may be configured to receive an original packet from a first VM.
  • the destination IP address of the original packet may be an address of a second VM connected to a second OVS.
  • the VxLAN packet header encapsulation module 1202 may be configured to add a VxLAN packet header to the original packet at the VxLAN port to generate the VxLAN packet.
  • the tunnel egress port 1203 may be configured to receive the VxLAN packet from the VxLAN port and send out the VxLAN packet.
  • the receiving module 1201 may be further configured to receive an FT entry from an SDN controller.
  • the device may further include: an egress port determination module 1204.
  • the egress port determination module 1204 may be configured to make a determination as to whether the egress port of the original packet is the VxLAN port. If the egress port of the original packet is the VxLAN port, the original packet may be sent to the VxLAN port.
  • the VxLAN packet header encapsulation module 1202 may be further configured to add the VxLAN header to the original packet at the VxLAN port and add the layer-2 header to the original packet, to which the VxLAN header may have been added.
  • the VxLAN packet header encapsulation module 1202 may be further configured to add the external destination IP address, external source IP address and the UDP to the original packet at the VxLAN port, and add the external destination MAC address and the external source MAC address to the original packet, to which the VxLAN header may have been added, at the VxLAN port.
  • Figure 13 is a diagram illustrating a packet transmitting device in accordance with various examples of the present disclosure.
  • the device may include: a CPU 1301, a non-transitory storage 1302 and a network interface 1303.
  • the non-transitory storage 1302 may be configured to store machine readable instructions.
  • the CPU 1301 may be configured to communicate with the non-transitory storage 1302, read and execute the machine readable instructions in the non-transitory storage 1302 to
  • VM Virtual Machine
  • VxLAN Virtual eXtensible Local Area Network
  • FT Flow Table
  • the FT entry may include: a match entry and an action entry.
  • the match entry may include an ingress port, an internal source Media Access Control (MAC) address, an internal destination MAC address, an internal source Internet Protocol (IP) address, an internal destination IP address.
  • MAC Media Access Control
  • IP Internet Protocol
  • the action entry may include: the VxLAN port, which may be taken as a first egress port, an uplink port, which may be taken as a second egress port and the VxLAN packet address information.
  • the first egress port may be the VxLAN port corresponding to a VxLAN of the original packet and the second egress port may be the tunnel egress port of the VxLAN packet.
  • the VxLAN packet address information may include: an external source MAC address, an external destination MAC address and an external destination IP address.
  • the CPU 1301 may be further to execute the machine readable instructions in the non-transitory storage 1302, to
  • the CPU 1301 may be further to execute the machine readable instructions in the non-transitory storage 1302, to
  • Figure 14 is a diagram illustrating a packet receiving device in accordance with various examples of the present disclosure.
  • the device may include: a CPU 1401, a non-transitory storage 1402 and a network interface 1403.
  • the non-transitory storage 1402 may be configured to store machine readable instructions.
  • the CPU 1401 may be configured to communicate with the non-transitory storage 1402, read and execute the machine readable instructions in the non-transitory storage 1402 to
  • VxLAN Virtual eXtensible Local Area Network
  • VM Virtual Machine
  • the FT entry may include: a match entry and an action entry.
  • the match entry may include: an ingress port, an internal source Media Access Control (MAC) address, an internal destination MAC address, an internal source Internal Protocol (IP) address, an internal destination IP address and a tunnel Identity (ID) .
  • MAC Media Access Control
  • IP Internal Protocol
  • ID tunnel Identity
  • the action entry may include: the egress port of the original packet.
  • the CPU 1401 may be further to execute the machine readable instructions in the non-transitory storage 1402, to match, at the VxLAN port, an internal source MAC address, an internal destination MAC address, an internal source IP address, an internal destination IP address in the original packet, and an obtained tunnel ID with the FT entry to obtain the egress port of the original packet from the action entry.
  • the Tunnel ID may be obtained from the VxLAN packet header or preset on the packet receiving device.
  • the SDN controller may send the FT entry to the OVS to provide the OVS with the VxLAN packet address information and a designated egress port.
  • the VxLAN port may add the VxLAN packet header including the VxLAN header and layer-2 header to the original packet and send out the VxLAN packet via the designated egress port. Therefore, the VxLAN packet transmitting and receiving processes may be optimized, the transmission performance of the VxLAN packet may be improved, and the user experience of the whole Overlay network may be improved.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Examples of the present disclosure may provide a packet forwarding method. A first OVS may receive an original packet, which may be destined for a second VM on a second OVS, from a first VM. The first OVS may add a VxLAN packet header to the original packet at a VxLAN port to generate a VxLAN packet according to VxLAN packet address information in an FT entry, which may be obtained from an SDN controller. The first OVS may send out the VxLAN packet via a tunnel egress port designated by the FT entry.

Description

PACKETS FORWARDING
This application claims the benefit of priority from a Chinese Patent Application, No.201510070865. X, entitled “A method and device for forwarding Virtual eXtensible Local Area Network (VxLAN) packets” and filed on February 11, 2015, the entire content of which is hereby incorporated by reference.
BACKGROUND
An Open vSwitch (OVS) is a kind of open source virtual switch. The OVS may support an Overlay network by supporting the VxLAN protocol. At present, the OVS may add a VxLAN packet header to an original packet. Therefore, the OVS may use the VxLAN technologies to support the deployment of the Overlay network.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a diagram illustrating structure of an example packet forwarding system;
Figure 2 is a diagram illustrating an example of an encapsulated VxLAN packet;
Figure 3 is a chart illustrating a packet forwarding method in accordance with various examples of the present disclosure;
Figure 3A is a chart illustrating a packet transmitting method in accordance with various examples of the present disclosure;
Figure 3B is a chart illustrating a packet receiving method in accordance with various examples of the present disclosure;
Figure 4 is a chart illustrating a packet receiving method in accordance with various examples of the present disclosure;
Figure 5 is a diagram illustrating structure of an OVS for transmitting a packet in accordance with various examples of the present disclosure;
Figure 6 is a chart illustrating a packet transmitting method in accordance  with various examples of the present disclosure;
Figure 7 is a diagram illustrating an example OVS for receiving a packet in accordance with various examples of the present disclosure;
Figure 8 is a chart illustrating a packet receiving method in accordance with various examples of the present disclosure;
Figure 9 is a diagram illustrating structure of a network for forwarding a packet in accordance with various examples of the present disclosure;
Figure 10 is a diagram illustrating a Flow Table (FT) entry receiving device in accordance with various examples of the present disclosure;
Figure 11 is a diagram illustrating structure of a packet receiving device in accordance with various examples of the present disclosure;
Figure 12 is a diagram illustrating structure of a packet transmitting device in accordance with various examples of the present disclosure;
Figure 13 is a diagram illustrating a packet transmitting device in accordance with various examples of the present disclosure; and
Figure 14 is a diagram illustrating a packet receiving device in accordance with various examples of the present disclosure.
DETAILED DESCRIPTION
For simplicity and illustrative purposes, the present disclosure is described by referring to examples. It will be readily apparent however, that the present disclosure may be practiced without limitation to these specific details. In other instances, some methods and structures have not been described in detail so as not to unnecessarily obscure the present disclosure. As used herein, the term “includes” means includes but not limited to, the term “including” means including but not limited to. The term “based on” means based at least in part on. In addition, the terms “a” and “an” are intended to denote at least one of a particular element.
Figure 1 is a diagram illustrating structure of an example packet forwarding  system.
In figure 1, a forwarding process of a packet may be described hereinafter taking communication between a first Virtual Machine (VM) on a first OVS, i.e., VM1 and a third VM on a second OVS, i.e., VM3 for example. In this system, the packet forwarding process may be as follows.
In figure 1, the first OVS may be deployed on first host, i.e., host 1. The port 3 of the first OVS may be a VxLAN port, called a first VxLAN port. The port 2 of the first OVS may be an uplink port. The port 1 of the first OVS may be an internal port of a local VxLAN Tunnel End Point (VTEP) . The Media Access Control (MAC) address of the internal port may be 00-00-00-00-10-01. The Internet Protocol (IP) address of the internal port may be 100.1.1.1.
The second OVS may be deployed on a second host, i.e., host 2. The port 3 of the second OVS may be a VxLAN port, called a second VxLAN port. The port 2 of the second OVS may be an uplink port. The port 1 of the second OVS may be an internal port of the local VTEP. The MAC address of the internal port may be 00-00-00-00-10-02. The IP address of the internal port may be 100.1.1.2.
The MAC address of the VM1 may be 00-00-00-00-00-01 and the IP address of the VM1 may be 192.168.1.1. A port connecting the VM1 to the first OVS may be the port 4. The MAC address of the VM3 may be 00-00-00-00-00-02 and the IP address of the VM3 may be 192.168.1.2. A port connecting the VM3 to the second OVS may be the port 4 of the second OVS.
At host 1, the first may receive an original packet destined for the VM3 from the VM1. The first OVS may send the original packet to the first VxLAN port, i.e., the port 3 of the first OVS according to a Flow Table (FT) entry 1, which may be obtained from a Software Defined Network (SDN) controller. The first VxLAN port may add a VxLAN header to the original packet, and send the packet to the local internal port, i.e., the port 1 of the first OVS. The local internal port may add a layer-2 header to the packet, to which the VxlAN header may have been added, using a Linux local protocol stack to generate a VxLAN packet, and send the VxLAN packet to the uplink port of the first OVS based on an FT entry 2, which may be obtained from the SDN  controller.
At host 2, the uplink port of the second OVS may receive the VxLAN packet from the uplink port of the first OVS, and send the VxLAN packet to the internal port of the second OVS, i.e., the port 1 of the second OVS based on an FT entry 3, which may be obtained from the SDN controller. The internal port of the second OVS may remove the VxLAN packet header from the VxLAN packet to generate the original packet using the Linux local protocol stack, and send the original packet to the second VxLAN port. The second VxLAN port of the second OVS may send the original packet to the VM3 based on an FT entry 4, which may be obtained from the SDN controller.
Table 1 may show the FT entry 1, FT entry 2, FT entry 3 and FT entry 4.
Figure PCTCN2016073477-appb-000001
Table 1
Figure 2 is a diagram illustrating an example of an encapsulated VxLAN packet. As shown in figure 2, the VxLAN packet may include: an original packet and a VxLAN packet header. The VxLAN packet header may include: a layer-2 header and a VxLAN header. In an example of the present disclosure, the layer-2 header may include: an external destination MAC address, external source MAC address, and an  802.1Q field. In an example of the present disclosure, the VxLAN header may include: an external destination IP address, external source IP address, and a VxLAN ID.
It may be seen that in order to forward the packet from the VM1 to the VM3, the OVS should search the FT and perform matching operations four times, and perform IP in-stack processing once and perform IP out-stack processing once. The forwarding process may be complicated and the packet forwarding efficiency may be low.
In an example of the present disclosure, the OVS connected to the source VM may add the VxLAN packet header including the layer-2 header and the VxLAN header at a local VxLAN port, instead of sending the original packet to the local internal port, so that the local internal port may add the layer-2 header using the IP in-stack processing. Therefore, the transmitting performance of the packet may be enhanced.
In an example of the present disclosure, the OVS receiving the VxLAN packet may remove the VxLAN packet header including the layer-2 header and the VxLAN header at the local VxLAN port, instead of sending the VxLAN packet to the local internal port, so that the internal local may remove the layer-2 header using the IP out-stack processing. Therefore, the receiving performance of the VxLAN packet may be enhanced.
In an example of the present disclosure, the SDN controller may monitor an Address Resolution Protocol (ARP) packet of the Overlay network, collect neighbor information and log on a host using a Secure Shell (SSH) to obtain default routing information of the VTEP IP and obtain VxLAN packet address information, which may be used to send the VxLAN packet to different opposite VTEPs. The VxLAN packet address information may include MAC information in the layer-2 header and address information of the opposite VTEP. Therefore, the SDN controller may send a FT to the OVS to send the VxLAN packet address information and a designated egress port to the OVS. Therefore, when the OVS forwards the VxLAN packet, the OVS may encapsulate the VxLAN packet header including the layer-2 header and the VxLAN header at the VxlAN port and send out the VxLAN packet via the designated  egress port. In an example of the present disclosure, the OVS may encapsulate the VxLAN packet by sequentially adding the VxLAN header and the layer-2 header to the original packet.
Figure 3 is a chart illustrating a packet forwarding method in accordance with various examples of the present disclosure.
As shown in figure 3, the method may include following blocks.
At block 301, a first OVS may receive an FT entry form an SDN controller. The FT may record VxLAN packet address information and a first uplink port on the first OVS. An original packet, which may be received from a source VM on the first OVS and destined for a destination VM on a second OVS, may be sent to a first VxLAN port on the first OVS. The first VxLAN port may add a VxLAN packet header including the VxLAN packet address information to the original packet to generate a VxLAN packet and send out the VxLAN packet via the first uplink port.
In an example of the present disclosure, the FT entry may include: a match entry and an action entry. The match entry may include: an ingress port, a source MAC address of the source VM, i.e., an internal source MAC address, a destination MAC address of a destination VM, i.e., an internal destination MAC address, a source IP address of the source VM, i.e., an internal source IP address, a destination IP address of the destination VM, i.e., an internal destination IP address and/or a tunnel ID. The action entry may include: a first VxLAN port, which may be taken as a first egress port, VxLAN packet address information and a first uplink port, which may be taken as a second egress port.
In an example of the present disclosure, the first OVS may receive the original packet from the source VM, and make a determination as to whether the ingress port, MAC address information (i.e., the internal source MAC address and internal destination MAC address) and/or IP address information (i.e., the internal source IP address and internal destination IP address) respectively matches a corresponding entry in the FT entry. When the ingress port, MAC address information and/or IP address information in the original packet respectively matches the corresponding entry, the original packet may be sent to the first VxLAN port, which  may be taken as the first egress port. The first VxLAN port may add the VxLAN packet header including the VxLAN packet address information to the original packet to generate the VxLAN packet and send the VxLAN packet to the first uplink port, which may be taken as the second egress port. The first uplink port may send out the VxLAN packet. The method for the first VxLAN port to add the VxLAN packet header including the VxLAN packet address information to the original packet to generate the VxLAN packet may include: adding an external destination IP address, an external source IP address, an external destination MAC address and external source MAC address to the original packet.
In an example of the present disclosure, the first OVS may receive the FT entry from the SDN controller and obtain the VxLAN packet address information from the FT entry. In an example of the present disclosure, the VxLAN packet address information may include: the MAC address of the first VTEP on the first OVS, i.e., the external source MAC address in figure 2, the MAC address of the second VTEP on the second OVS, . e., the external destination MAC address in the figure 2, the IP address of the second VTEP, i.e., the external destination IP address in figure 2. Therefore, the first OVS may construct the layer-2 header using the MAC address of the first VTEP and the MAC address of the second VTEP at the first VxLAN port. Further, the IP address of the first VTEP, i.e., the external source IP address may be preset in the first OVS. The first OVS may construct the VxLAN header using the IP address of the second VTEP obtained from the VxLAN packet address information, the preset IP address of the first VTEP, User Datagram Protocol (UDP) information and a VxLAN ID.
Therefore, when the destination VM of the original packet may connect to the second OVS, rather than the first OVS, the first OVS may add the VxLAN packet header including the layer-2 header and VxLAN header to the original packet to generate the VxLAN packet and send out the VxLAN packet via the first uplink port. 
At block 302, the second uplink port on the second OVS may receive the VxLAN packet, remove the VxLAN packet header from the VxLAN packet to generate the original packet, and send the original packet to the second VxLAN port on the second OVS. The second VxLAN port may send the original packet to the  destination VM.
In an example of the present disclosure, the second uplink port on the second OVS may receive the VxLAN packet, remove the VxLAN packet header from the VxLAN packet to generate the original packet, and send the original packet to the second VxLAN port on the second OVS. The second VxLAN port may send the original packet to the destination VM.
In an example of the present disclosure, when the destination VM of the original packet connects to the first OVS, local forwarding may be performed. The original packet may be sent to a non-VxLAN port connected to the destination VM on the first OVS, instead of sent to the VxLAN port on the first OVS. The first OVS may receive an FT entry for forwarding the non-VxLAN packet from the SDN controller, receive the original packet from the source VM on the first OVS and send the original packet destined for the destination VM on the first OVS to the non-VxLAN port on the first OVS according to the FT entry for forwarding the non-VxLAN packet.
Figure 3A is a chart illustrating a packet transmitting method in accordance with various examples of the present disclosure.
At block 301A, a first OVS may receive an original packet from a first VM. A destination device of the original packet may be a second VM on a second OVS.
At block 302A, the first OVS may add a VxLAN packet header to the original packet at a VxLAN port to generate a VxLAN packet according to VxLAN packet address information in an FT entry, which may be obtained from an SDN controller.
At block 303A, the first OVS may send out the VxLAN packet via a tunnel egress port, i.e., an uplink port of the first OVS designated by the FT entry.
Figure 3B is a chart illustrating a packet receiving method in accordance with various examples of the present disclosure.
At block 301B, a first OVS may receive a VxLAN packet destined for a first VM at an uplink port. The VxLAN packet may be received from a second OVS.
At block 302B, the first OVS may remove a VxLAN packet header from the VxLAN packet at the uplink port to obtain an original packet.
At block 303B, the first OVS may identify a VxLAN port at the uplink port according to a preset relationship between the uplink port and the VxLAN port and send the original packet to the VxLAN port.
At block 304B, the first OVS may send the original packet to the first VM at the VxLAN port according to an egress port of the original packet designated by an FT entry.
Figure 4 is a chart illustrating a packet receiving method in accordance with various examples of the present disclosure.
As shown in figure 4, the method may include following blocks.
At block 401, a second uplink port on a second OVS may receive a VxLAN packet sent from a first uplink port on a first OVS. A VxLAN port on the first OVS may add a VxLAN packet header including VxLAN packet address information to an original packet to generate the VxLAN packet. The original packet may be originated from a source VM on the first OVS.
At block 402, the second uplink port of the second OVS may remove the VxLAN packet header to obtain the original packet and send the original packet to a second VxLAN port on the second OVS.
At block 403, the second VxLAN port may send the original packet to the destination VM according to an FT entry, which may be obtained from an SDN controller. A match entry in the FT entry may include: an ingress port, an internal source MAC address, an internal destination MAC address, an internal source IP address, an internal destination IP address and a tunnel ID. An action entry of the FT entry may include: an egress port of the original packet, i.e., a port on the second OVS for connecting to the destination VM of the original packet.
In an example of the present disclosure, the VxLAN packet information may include: an MAC address of a first VTEP on the first OVS, an MAC address of a  second VTEP on the second OVS, and an IP address of the second VTEP.
In an example of the present disclosure, the second OVS may further receive an FT entry for forwarding a non-VxLAN packet form the SDN controller. When the second uplink port receives a non-VxLAN packet, the second OVS may forward the non-VxLAN packet according to the FT entry for forwarding the non-VxLAN packet. The match entry in the FT entry for forwarding the non-VxLAN packet may include: a source address and a destination address of the non-VxLAN packet. The action entry in the FT entry for forwarding the non-VxLAN packet may include: a designated port, which may be a port on the second OVS for connecting to the destination VM of the non-VxLAN packet.
Figure 5 is a diagram illustrating an OVS for transmitting a packet in accordance with various examples of the present disclosure.
As shown in figure 5, the first OVS may be deployed on the host 1. The port 3 of the first OVS may be a local VxLAN port, which may be called the first VxLAN port. The port 2 of the first OVS may be a local uplink port. The port 1 of the first OVS may be the internal port of the local VTEP. The MAC address of the internal port may be 00-00-00-00-10-01. The IP address of the internal port may be 100.1.1.1. A port on the first OVS for connecting to the VM1 may be the port 4.
The first OVS may receive a FT entry 1 as shown in the following table 2 from the SDN controller. The FT entry 1 may include the VxLAN packet address information and the uplink port of the first OVS. Referring to figure 5 and figure 7, the VxLAN packet address information may include: the MAC address of the first VTEP on the first OVS, i.e., the MAC address of the internal port on the first OVS, the MAC address of the second VTEP on the second OVS, i.e., the MAC address of the internal port on the second OVS, and the IP address of the second VTEP, i.e., the IP address of the internal port on the second OVS.
At the host 1, as shown by the dotted line 11 in the figure, when the first OVS receives the original packet from the VM1 and the destination VM of the original packet connects to another OVS, the first OVS may send the original packet to the local first VxlAN port, i.e., the port 3 of the first OVS according to the FT entry from  the SDN controller. As shown by the dotted line 12 in the figure 5, the first VxLAN port may add the VxLAN packet header including the VxLAN packet address information to the original packet according to the VxLAN packet address information in the FT entry 1. The first VxLAN port may send the VxLAN packet to the uplink port of the first OVS according to the FT entry 1. The uplink port of the first OVS may send out the VxLAN packet.
It can be seen that the packet transmitting process in examples of the present disclosure may save one transmitting process using the IP protocol stack and one FT searching and matching process.
Figure 6 is a chart illustrating a packet transmitting method in accordance with various examples of the present disclosure. As shown in figure 6, the method may include following blocks.
At block 601, a first OVS may receive an original packet from a VM1.
At block 602, the first OVS may make a determination as to whether an egress port of the original packet is a VxLAN port. If the egress port of the original packet is a VxLAN port, block 604 may be executed. If the egress port of the original packet is not a VxLAN port, block 603 may be executed.
At this block, the first OVS may receive an FT entry from an SDN controller and make a determination as to whether the egress port of the original packet is a VxLAN port according to the FT entry.
At block 603, the original packet may be sent out and the flow may end.
At this block, the original packet may be sent to the non-VxLAN port.
At block 604, the first OVS may add the VxLAN header to the original packet at the VxLAN port.
At this block, the first OVS may add the external destination IP address, the external source IP address and the UDP to the original packet at the VxLAN port and may further add the VxLAN ID to the original packet.
At block 605, the first OVS may add a layer-2 header to the original packet, to which the VxLAN header may have been added, at VxLAN port to generate the VxLAN packet.
At this block, the first OVS may add the external destination MAC address and the external source MAC address to the original packet, to which the VxLAN header may have been added, at the VxLAN port and may further add an 802.1Q field to the original packet, to which the VxLAN header may have been added.
At block 606, the first OVS may send out the VxLAN packet at the uplink port.
Figure 7 is a diagram illustrating an example OVS for receiving a packet in accordance with various examples of the present disclosure.
As shown in figure 7, the second OVS may be deployed on the host 2. The port 3 on the second OVS may be a local VxLAN port, which may be called a second VxLAN port. The port 2 of the second OVS may be an uplink port. The port 1 of the second OVS may be an internal port of the local VTEP. The MAC address of the internal port may be 00-00-00-00-10-02 and the IP address of the internal port may be 100.1.1.2. The MAC address of the VM3 may be 00-00-00-00-00-02, and the IP address of the VM3 may be 192.168.1.2. A port on the second OVS for connecting to the VM3 may be the port 4.
At the host 2, as shown by the solid line 13 in the figure 7, the uplink port of the second OVS may receive the VxLAN packet from an uplink port of another OVS, remove the VxLAN packet header from the VxLAN packet to generate the original packet, and send the original packet to the VxLAN port on the second OVS. The VxLAN port on the second OVS may send the original packet to the destination virtual machine, such as the VM3 based on the port 4 in the FT entry 2. It can be seen that the packet receiving process in examples of the present disclosure may save one receiving process using the IP protocol stack and one FT searching and matching process.
Figure 8 is a chart illustrating a packet receiving method in accordance with  various examples of the present disclosure. As shown in figure 8, the method may include following blocks.
At block 801, the second OVS may receive a packet from another OVS at the uplink port. That is, the uplink port of the second OVS may receive the packet from another OVS.
At block 802, the second OVS may make a determination as to whether the packet is the VxLAN packet at the uplink port. If the packet is the VxLAN packet, block 804 may be executed. If the packet is not the VxLAN packet, block 803 may be executed.
At block 803, the packet may be forwarded and the flow may end.
At block 804, the uplink port may remove the VxLAN packet header from the VxLAN packet to generate the original packet and send the original packet to the VxLAN port.
At this block, the uplink port of the second OVS may obtain the VxLAN port according to a preset corresponding relationship between the uplink port and the VxLAN port. The second OVS may send the original packet to the VxLAN port.
At block 805, the VxLAN port may forward the original packet.
The VxLAN port of the second OVS may search the FT entry, which may be obtained from the SDN controller and obtain the egress port of the original packet. The VxLAN port of the second OVS may send the original packet to the destination VM via the egress port of the original packet.
The FT may include multiple FT entries. Each FT entry may include: a match entry and an action entry. For better display, the following Table 2 may be illustrated by two tables, i.e., Table 2-1 and table 2-2. Table 2-1 may show contents of the match entry in each FT entry and table 2-2 may show contents of the action entry in each FT entry. For simplicity and convenience, the following FT entry 1 and FT entry 2 may be illustrated in the same table. In another example, the FT entry 1 may be sent to and saved in the first OVS. The FT entry 2 may be sent to and saved in the second OVS.
Figure PCTCN2016073477-appb-000002
Table 2-1
Figure PCTCN2016073477-appb-000003
Table 2-2
Figure 9 is a diagram illustrating a network for forwarding a packet in accordance with various examples of the present disclosure. Figure 9 may include the network for transmitting the packet as shown in figure 5 and the network for receiving  the packet as shown in figure 7.
In the above table 2, each FT entry may include: a match entry and an action entry. The match entry may include: an ingress port, an internal source MAC address, an internal destination MAC address, an internal source IP address, an internal destination IP address and/or a tunnel ID. The action entry may include: the tunnel ID, an external destination IP address, i.e., tunnel destination address, an external source MAC address, i.e., the tunnel source MAC address, an external destination MAC address, i.e., the tunnel destination MAC address, a tunnel egress port, i.e., an uplink port and an egress port, i.e., a VxLAN port.
In the above FT entry 1, the ingress port, internal source MAC address, internal destination MAC address, internal source IP address, internal destination IP address and tunnel ID may respectively be: port 4, 00-00-00-00-00-01, 00-00-00-00-00-02, 192.168.1.1, 192.168.1.2 and Null. The tunnel ID, the external destination IP address, the external source MAC address, the external destination MAC address, the uplink port, which may be taken as a second egress port and the VxLAN port, which may be taken as a first egress port may respectively be: 1, 100.1.1.2, 00-00-00-00-10-01, 00-00-00-00-10-02, port 2 and port 3.
In the above FT entry 2, the ingress port, internal source MAC address, internal destination MAC address, internal source IP address, internal destination IP address and tunnel ID may respectively be: port 3, 00-00-00-00-00-01, 00-00-00-00-00-02, 192.168.1.1, 192.168.1.2 and 1. The tunnel ID, the external destination IP address, the external source MAC address, the external destination MAC address, the uplink port, which may be taken as the second egress port and the VxLAN port, which may be taken as the first egress port may respectively be: Null, Null, Null, Null, Null and port.
The first OVS may execute following processing.
The first OVS may receive the original packet from the VM1 through the ingress port on the first OVS, i.e., the port 4. The original packet may include: the internal source MAC address, internal destination MAC address, the internal source IP address and the internal destination IP address.
The port 4 of the first OVS may respectively match the internal source MAC address, internal destination MAC address, internal source IP address and internal destination IP address in the original packet and FT entries in the first OVS, identify the FT entry 1 and obtain the action entry in the FT entry 1. The action entry in the FT entry 1 may include: the external destination IP address, external source MAC address, external destination MAC address, tunnel ID, tunnel egress port and egress port. The ingress port of the first OVS may send the contents of the action entry of the FT entry 1 to the VxLAN port and the uplink port via memory variables in a form of function parameters or via a message.
In an example of the present disclosure, the ingress port of the first OVS may store the action entry of the FT entry 1 in the memory variables. The VxLAN port of the first OVS may obtain the external destination IP address, external source MAC address and external destination MAC address and the tunnel egress port in the action entry of the FT entry 1 from the memory variables. The VxLAN port may further obtain the preset external source IP address, add the external source IP address and external destination IP address to the original packet and further add the external destination MAC address and external source MAC address to the original packet, to which the external source IP address and external destination IP address may have been added to generate the VxLAN packet. The VxLAN port of the first OVS may send the VxLAN packet to the uplink port, i.e., the tunnel egress port. In an example of the present disclosure, the VxLAN port may further add the tunnel ID to the original packet to generate the VxLAN packet.
The uplink port may send out the VxLAN packet.
The second OVS may execute following processing.
The uplink port of the second OVS may receive the VxLAN packet.
The uplink port of the second OVS may obtain the VxLAN port of the second OVS according to a preset relationship between the uplink port of the second OVS and the VxLAN port of the second OVS.
The second OVS may remove the VxLAN packet header from the VxLAN  packet to generate the original packet at the uplink port.
The uplink port of the second OVS may send the original packet to the VxLAN port of the second OVS.
The VxLAN port may respectively match the internal source MAC address, internal destination MAC address, internal source IP address and internal destination IP address in the original packet and the FT entries in the FT, identify a matched FT entry 2, obtain the action entry in the FT entry 2. In an example of the present disclosure, if the tunnel ID is carried in the VxLAN packet header or obtained from the second OVS, the VxLAN port may respectively match the internal source MAC address, internal destination MAC address, internal source IP address and internal destination IP address in the original packet and the tunnel ID and the FT entries in the FT, identify a matched FT entry 2, obtain the action entry in the FT entry 2. The action entry may include: the egress port of the original packet. Since the corresponding relationship between the VxLAN port of the second OVS, i.e., the port 3 and the uplink port of the second OVS, i.e., the port 2 is preset, the ingress port in the FT entry 2 may be configured as port 3.
The VxLAN port of the second OVS may send the original packet to the egress port of the original packet, i.e., the egress port 4.
The egress port of the original packet may send the original packet to the VM3.
It may be seen that in examples of the present disclosure, in the process for forwarding the packet from the VM1 to the VM3, the FT entry searching and matching operation may be performed twice. That is, the ingress port of the first OVS may perform the FT entry searching and matching operation once and the VxLAN port of the second OVS may perform the FT entry searching and matching operation once. The IP in-stack processing and IP out-stack processing may be omitted. Therefore, with the examples of the present disclosure, the complexity of the packet forwarding may be reduced and the efficiency of the packet forwarding may be enhanced. It may be found may experiments that compared with the performance index before the optimization operation, the performance index after the optimization  operation may be improved by at least 30%.
Figure 10 is a diagram illustrating a FT entry receiving device in accordance with various examples of the present disclosure. As shown in figure 10, the device 1000 may include: an FT receiving module 1001.
The FT entry receiving module 1001 may be configured to receive an FT entry from an SDN controller. The FT entry may include: VxLAN packet address information and a first uplink port on the first OVS.
The FT entry may be used to send an original packet, which may be received from a source VM on the first OVS and destined for a destination VM on the second OVS, to a first VxLAN port on the first OVS. The first VxLAN port may add a VxLAN packet header including the VxLAN packet address information to the original packet to generate a VxLAN packet and send out the VxLAN packet via the first uplink port.
In an example of the present disclosure, the VxLAN packet address information may include: an MAC address of the first VTEP on the first OVS, i.e. the external source MAC address, the MAC address of the second VTEP on the second OVS, i.e., the external destination MAC address and the IP address of the second VTEP, i.e., the external destination IP address.
In an example of the present disclosure, the FT entry may include: a match entry and an action entry. The match entry may include: the ingress port, the internal source MAC address, the internal destination MAC address, the internal source IP address, the internal destination IP address. The action entry may include: the first VxLAN port, which may be taken as the first egress port, VxLAN packet address information and the first uplink port, which may be taken as the second egress port.
In an example of the present disclosure, the FT entry receiving module 1001 may be further configured to receive a FT for forwarding a non-VxLAN packet from the SDN controller. The FT for forwarding the non-VxLAN packet may be used to send an original packet, which may be received from a source VM on the first OVS and destined for a destination VM on the first OVS, to a non-VxLAN port on the first  OVS.
Figure 11 is a diagram illustrating a packet receiving device in accordance with various examples of the present disclosure.
As shown in figure 11, the device 1100 may include: a VxLAN packet receiving module 1001, a packet header removing module 1102 and a packet transmitting module 1103.
The VxLAN packet receiving module 1101 may be configured to receive a VxLAN packet from a first uplink port on a first OVS by a second uplink port on a second OVS. The VxLAN packet may be generated by adding the VxLAN packet header including the VxLAN packet address information to the original packet. The original packet may be initiated by a source VM on the first OVS.
The packet header removing module 1102 may be configured to remove the VxLAN packet header at the second uplink port to generate the original packet and send the original packet to the second VxLAN port on the second OVS.
The packet transmitting module 1103 may be configured to send the original packet to the destination VM according to the FT entry from the SDN controller at the second VxLAN port.
In an example of the present disclosure, the match entry of the FT entry may include: the ingress port, the internal source MAC address, the internal destination MAC address, the internal source IP address, the internal destination IP address and the tunnel ID. The action entry may include: an egress port of the original packet, i.e., a port on the second OVS for connecting to the destination VM of the original packet.
In an example of the present disclosure, the VxLAN packet address information may include: the MAC address of the first VTEP on the first OVS, i.e., the external source MAC address, the MAC address of the second VTEP on the second OVS, i.e., the external destination MAC address and the IP address of the second VTEP, i.e., the external destination IP address.
In an example of the present disclosure, the device 1100 may further include:  a non-VxLAN packet receiving module 1104.
The non-VxLAN packet receiving module 1104 may be configured to receive a non-VxLAN packet from the first uplink port of the first OVS using the second uplink port.
The packet transmitting module 1103 may be further configured to forward the non-VxLAN packet according to the FT entry for forwarding the non-VxLAN packet, which may be obtained from the SDN controller.
In an example of the present disclosure, the match entry of the FT entry for forwarding the non-VxLAN packet may include: the source address and destination address of the non-VxLAN packet. The action entry of the FT entry for forwarding the non-VxLAN packet may include: an egress port of the original packet, i.e., a port on the second OVS for connecting to the destination VM of the non-VxLAN packet.
Figure 12 is a diagram illustrating a packet transmitting device in accordance with various examples of the present disclosure.
The device may include: a receiving module 1201, a VxLAN packet header encapsulation module 1202 and a tunnel egress port 1203.
The receiving module 1201 may be configured to receive an original packet from a first VM. The destination IP address of the original packet may be an address of a second VM connected to a second OVS.
The VxLAN packet header encapsulation module 1202 may be configured to add a VxLAN packet header to the original packet at the VxLAN port to generate the VxLAN packet.
The tunnel egress port 1203 may be configured to receive the VxLAN packet from the VxLAN port and send out the VxLAN packet.
In an example of the present disclosure, the receiving module 1201 may be further configured to receive an FT entry from an SDN controller.
The device may further include: an egress port determination module 1204.  The egress port determination module 1204 may be configured to make a determination as to whether the egress port of the original packet is the VxLAN port. If the egress port of the original packet is the VxLAN port, the original packet may be sent to the VxLAN port.
In an example of the present disclosure, the VxLAN packet header encapsulation module 1202 may be further configured to add the VxLAN header to the original packet at the VxLAN port and add the layer-2 header to the original packet, to which the VxLAN header may have been added.
In an example of the present disclosure, the VxLAN packet header encapsulation module 1202 may be further configured to add the external destination IP address, external source IP address and the UDP to the original packet at the VxLAN port, and add the external destination MAC address and the external source MAC address to the original packet, to which the VxLAN header may have been added, at the VxLAN port.
Figure 13 is a diagram illustrating a packet transmitting device in accordance with various examples of the present disclosure. The device may include: a CPU 1301, a non-transitory storage 1302 and a network interface 1303.
The non-transitory storage 1302 may be configured to store machine readable instructions.
The CPU 1301 may be configured to communicate with the non-transitory storage 1302, read and execute the machine readable instructions in the non-transitory storage 1302 to
receive an original packet, which is destined for a second VM on a second OVS, from a first Virtual Machine (VM) ,
add, at a Virtual eXtensible Local Area Network (VxLAN) port, a VxLAN packet header to the original packet to generate a VxLAN packet according to VxLAN packet address information in a Flow Table (FT) entry, which is obtained from a Software Defined Network (SDN) controller;
send out the VxLAN packet via a tunnel egress port designated by the FT entry.
In an example of the present disclosure, the FT entry may include: a match entry and an action entry.
The match entry may include an ingress port, an internal source Media Access Control (MAC) address, an internal destination MAC address, an internal source Internet Protocol (IP) address, an internal destination IP address.
The action entry may include: the VxLAN port, which may be taken as a first egress port, an uplink port, which may be taken as a second egress port and the VxLAN packet address information.
The first egress port may be the VxLAN port corresponding to a VxLAN of the original packet and the second egress port may be the tunnel egress port of the VxLAN packet.
In an example of the present disclosure, the VxLAN packet address information may include: an external source MAC address, an external destination MAC address and an external destination IP address. The CPU 1301 may be further to execute the machine readable instructions in the non-transitory storage 1302, to
obtain, at the VxLAN port, an external source IP address, and add the external destination IP address and the external source IP address to the original packet;
add, at the VxLAN port, the external destination MAC address and the external source MAC address to the original packet.
In an example of the present disclosure, the CPU 1301 may be further to execute the machine readable instructions in the non-transitory storage 1302, to
match, at an ingress port of the original packet, an internal source MAC address, an internal destination MAC address, an internal source IP address and an internal destination IP address in the original packet with the FT entry, send, at the ingress port of the original packet, the original packet to the VxLAN port according to the action entry in the FT entry, and provide the VxLAN port and the uplink port with action entry of the FT entry;
send, at the VxLAN port, the VxLAN packet to the uplink port after the VxLAN packet header is added to the original packet at the VxLAN port according to the FT entry;
send out, at the uplink port, the VxLAN packet.
Figure 14 is a diagram illustrating a packet receiving device in accordance with various examples of the present disclosure. The device may include: a CPU 1401, a non-transitory storage 1402 and a network interface 1403.
The non-transitory storage 1402 may be configured to store machine readable instructions.
The CPU 1401 may be configured to communicate with the non-transitory storage 1402, read and execute the machine readable instructions in the non-transitory storage 1402 to
receive, at an uplink port, a Virtual eXtensible Local Area Network (VxLAN) packet destined for a first Virtual Machine (VM) from a second OVS;
remove, at the uplink port, a VxLAN packet header from the VxLAN packet to obtain an original packet;
identify, at the uplink port, a VxLAN port according to a preset relationship between the uplink port and the VxLAN port and send, at the uplink port, the original packet to the VxLAN port; and
send, at the VxLAN port, the original packet to the first VM according to an egress port of the original packet designated by a Flow Table (FT) entry.
In an example of the present disclosure, the FT entry may include: a match entry and an action entry.
The match entry may include: an ingress port, an internal source Media Access Control (MAC) address, an internal destination MAC address, an internal source Internal Protocol (IP) address, an internal destination IP address and a tunnel Identity (ID) .
The action entry may include: the egress port of the original packet.
In an example of the present disclosure, the CPU 1401 may be further to execute the machine readable instructions in the non-transitory storage 1402, to match, at the VxLAN port, an internal source MAC address, an internal destination MAC address, an internal source IP address, an internal destination IP address in the original  packet, and an obtained tunnel ID with the FT entry to obtain the egress port of the original packet from the action entry. The Tunnel ID may be obtained from the VxLAN packet header or preset on the packet receiving device.
In examples of the present disclosure, the SDN controller may send the FT entry to the OVS to provide the OVS with the VxLAN packet address information and a designated egress port. When the OVS forwards the VxLAN packet, the VxLAN port may add the VxLAN packet header including the VxLAN header and layer-2 header to the original packet and send out the VxLAN packet via the designated egress port. Therefore, the VxLAN packet transmitting and receiving processes may be optimized, the transmission performance of the VxLAN packet may be improved, and the user experience of the whole Overlay network may be improved.

Claims (15)

  1. A packet transmitting method, comprising:
    receiving, by a first Open vSwitch (OVS) , an original packet destined for a second VM on a second OVS, wherein the receiving is from a first Virtual Machine (VM) ;
    adding, by the first OVS at a Virtual eXtensible Local Area Network (VxLAN) port, a VxLAN packet header to the original packet to generate a VxLAN packet according to VxLAN packet address information in a Flow Table (FT) entry, wherein the FT entry is obtained from a Software Defined Network (SDN) controller; and
    sending out, by the first OVS, the VxLAN packet via a tunnel egress port designated by the FT entry.
  2. The method according to claim 1, wherein the FT entry comprises a match entry and an action entry, and wherein:
    the match entry comprises: an ingress port, an internal source Media Access Control (MAC) address, an internal destination MAC address, an internal source Internet Protocol (IP) address, an internal destination IP address;
    the action entry comprises: the VxLAN port, which is taken as a first egress port, an uplink port, which is taken as a second egress port and the VxLAN packet address information; and
    the first egress port is the VxLAN port corresponding to a VxLAN of the original packet and the second egress port is the tunnel egress port of the VxLAN packet.
  3. The method according to claim 2, wherein the VxLAN packet address information comprises: an external source MAC address, an external destination MAC address and an external destination IP address;
    adding, by the first OVS at the VxLAN port, the VxLAN packet header to the original packet according to the VxLAN packet address information in the FT entry comprises:
    obtaining, by the first OVS at the VxLAN port, an external source IP address, and adding the external destination IP address and the external source IP address to  the original packet; and
    adding, by the first OVS at the VxLAN port, the external destination MAC address and the external source MAC address to the original packet.
  4. The method according to claim 3, further comprising:
    matching, by the first OVS at an ingress port of the original packet, an internal source MAC address, an internal destination MAC address, an internal source IP address, an internal destination IP address in the original packet with the FT entry, sending, by the first OVS at the ingress port of the original packet, the original packet to the VxLAN port according to the action entry in the FT entry, and providing the VxLAN port and the uplink port with action entry of the FT entry;
    sending, by the first OVS at the VxLAN port, the VxLAN packet to the uplink port after the first OVS adds the VxLAN packet header to the original packet at the VxLAN port according to the FT entry; and
    sending, by the first OVS, the VxLAN packet via the tunnel egress port designated by the FT entry comprises: sending out, by the first OVS at the uplink port, the VxLAN packet.
  5. A packet receiving method, comprising:
    receiving, by a first Open vSwitch (OVS) at an uplink port, a Virtual eXtensible Local Area Network (VxLAN) packet destined for a first Virtual Machine (VM) from a second OVS;
    removing, by the first OVS at the uplink port, a VxLAN packet header from the VxLAN packet to obtain an original packet;
    identifying, by the first OVS at the uplink port, a VxLAN port according to a preset relationship between the uplink port and the VxLAN port and sending, by the first OVS at the uplink port, the original packet to the VxLAN port; and
    sending, by the first OVS at the VxLAN port, the original packet to the first VM according to an egress port of the original packet designated by a Flow Table (FT) entry.
  6. The method according to claim 5, wherein the FT entry comprises a match entry and an action entry, and wherein:
    the match entry comprises: an ingress port, an internal source Media Access  Control (MAC) address, an internal destination MAC address, an internal source Internal Protocol (IP) address, an internal destination IP address and tunnel Identity (ID) ; and
    the action entry comprises: the egress port of the original packet.
  7. The method according to claim 6, wherein removing, by the first OVS at the uplink port, the VxLAN packet header from the VxLAN packet to obtain the original packet comprises:
    removing, by the first OVS at the uplink port, an external destination MAC address and external source MAC address from the VxLAN packet; and
    removing, by the first OVS at the uplink port, an external destination IP address and an external source IP address from the VxLAN packet to obtain the original packet.
  8. The method according to claim 6, further comprising:
    matching, by the first OVS at the VxLAN port, an internal source MAC address, an internal destination MAC address, an internal source IP address, an internal destination IP address in the original packet and an obtained tunnel ID with the FT entry to obtain the egress port of the original packet from the action entry.
  9. An Open vSwitch (OVS) , comprising: a storage and a processor;
    wherein the processor is to execute machine readable instructions in the storage to:
    receive an original packet, which is destined for a second VM on a second OVS, from a first Virtual Machine (VM) ,
    add, at a Virtual eXtensible Local Area Network (VxLAN) port, a VxLAN packet header to the original packet to generate a VxLAN packet according to VxLAN packet address information in a Flow Table (FT) entry, wherein the FT entry is obtained from a Software Defined Network (SDN) controller; and
    send the VxLAN packet via a tunnel egress port designated by the FT entry.
  10. The OVS according to claim 9, wherein the FT entry comprises a match entry and an action entry, and wherein:
    the match entry comprises: an ingress port, an internal source Media Access Control (MAC) address, an internal destination MAC address, an internal source Internet Protocol (IP) address and an internal destination IP address;
    the action entry comprises: the VxLAN port, which is taken as a first egress port, an uplink port, which is taken as a second egress port and the VxLAN packet address information; and
    the first egress port is the VxLAN port corresponding to a VxLAN of the original packet and the second egress port is the tunnel egress port of the VxLAN packet.
  11. The OVS according to claim 10, wherein the VxLAN packet address information comprises: an external source MAC address, an external destination MAC address and an external destination IP address; the processor is further to execute the machine readable instructions in the storage, to
    obtain, at the VxLAN port, an external source IP address, and add the external destination IP address and the external source IP address to the original packet; and
    add, at the VxLAN port, the external destination MAC address and the external source MAC address to the original packet.
  12. The OVS according to claim 11, wherein the processor is further to execute the machine readable instructions in the storage to
    match, at an ingress port of the original packet, an internal source MAC address, an internal destination MAC address, an internal source IP address and an internal destination IP address in the original packet with the FT entry, send, at the ingress port of the original packet, the original packet to the VxLAN port according to the action entry in the FT entry, and provide the VxLAN port and the uplink port with action entry of the FT entry;
    send, at the VxLAN port, the VxLAN packet to the uplink port after the VxLAN packet header is added to the original packet at the VxLAN port according to the FT entry; and
    send out, at the uplink port, the VxLAN packet.
  13. An Open vSwitch (OVS) , comprising: a storage and a processor;
    wherein the processor is to execute machine readable instructions in the storage to:
    receive, at an uplink port, a Virtual eXtensible Local Area Network (VxLAN) packet destined for a first Virtual Machine (VM) from a second OVS;
    remove, at the uplink port, a VxLAN packet header from the VxLAN packet to obtain an original packet;
    identify, at the uplink port, a VxLAN port according to a preset relationship between the uplink port and the VxLAN port and send, at the uplink port, the original packet to the VxLAN port; and
    send, at the VxLAN port, the original packet to the first VM according to an egress port of the original packet designated by a Flow Table (FT) entry.
  14. The OVS according to claim 13, wherein the FT entry comprises a match entry and an action entry, and wherein:
    the match entry comprises: an ingress port, an internal source Media Access Control (MAC) address, an internal destination MAC address, an internal source Internal Protocol (IP) address, an internal destination IP address and a tunnel Identity (ID) ; and
    the action entry comprises: the egress port of the original packet.
  15. The OVS according to claim 14, wherein the processor is further to execute the machine readable instructions in the storage to:
    match, at the VxLAN port, an internal source MAC address, an internal destination MAC address, an internal source IP address, an internal destination IP address in the original packet and an obtained tunnel ID with the FT entry to obtain the egress port of the original packet from the action entry.
PCT/CN2016/073477 2015-02-11 2016-02-04 Packets forwarding Ceased WO2016127909A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510070865.XA CN105991389B (en) 2015-02-11 2015-02-11 A kind of retransmission method and device of virtual expansible local network packet
CN201510070865.X 2015-02-11

Publications (1)

Publication Number Publication Date
WO2016127909A1 true WO2016127909A1 (en) 2016-08-18

Family

ID=56614161

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/073477 Ceased WO2016127909A1 (en) 2015-02-11 2016-02-04 Packets forwarding

Country Status (2)

Country Link
CN (1) CN105991389B (en)
WO (1) WO2016127909A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018032910A1 (en) * 2016-08-19 2018-02-22 华为技术有限公司 Cross-network communication method and apparatus
CN114257473A (en) * 2021-12-10 2022-03-29 北京天融信网络安全技术有限公司 Method, device, equipment and medium for realizing multiple transparent bridges in resource pool

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115001900B (en) * 2022-06-06 2024-11-15 中移(杭州)信息技术有限公司 Message forwarding method, device, equipment and computer-readable storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130058208A1 (en) * 2010-07-06 2013-03-07 Benjamin L. Pfaff Fault tolerant managed switching element architecture
CN104022953A (en) * 2013-02-28 2014-09-03 杭州华三通信技术有限公司 Message forwarding method and device based on Open Flow
CN104283756A (en) * 2013-07-02 2015-01-14 杭州华三通信技术有限公司 A method and device for implementing a distributed multi-tenant virtual network

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9736211B2 (en) * 2012-08-27 2017-08-15 Vmware, Inc. Method and system for enabling multi-core processing of VXLAN traffic
CN103888386B (en) * 2012-12-24 2017-10-17 华为技术有限公司 The transmission method and device, system of expansible virtual local area network packet
CN104158718B (en) * 2014-08-25 2017-06-13 新华三技术有限公司 A kind of message processing method and device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130058208A1 (en) * 2010-07-06 2013-03-07 Benjamin L. Pfaff Fault tolerant managed switching element architecture
CN104022953A (en) * 2013-02-28 2014-09-03 杭州华三通信技术有限公司 Message forwarding method and device based on Open Flow
CN104283756A (en) * 2013-07-02 2015-01-14 杭州华三通信技术有限公司 A method and device for implementing a distributed multi-tenant virtual network

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018032910A1 (en) * 2016-08-19 2018-02-22 华为技术有限公司 Cross-network communication method and apparatus
CN107770064A (en) * 2016-08-19 2018-03-06 华为技术有限公司 A kind of method of internetwork communication, equipment
CN114257473A (en) * 2021-12-10 2022-03-29 北京天融信网络安全技术有限公司 Method, device, equipment and medium for realizing multiple transparent bridges in resource pool
CN114257473B (en) * 2021-12-10 2022-10-21 北京天融信网络安全技术有限公司 Method, device, equipment and medium for realizing multiple transparent bridges in resource pool

Also Published As

Publication number Publication date
CN105991389A (en) 2016-10-05
CN105991389B (en) 2019-04-12

Similar Documents

Publication Publication Date Title
CN106936939B (en) A message processing method, related device and NVO3 network system
CN104601432B (en) A kind of message transmitting method and equipment
JP4488077B2 (en) Virtualization system, virtualization method, and virtualization program
EP3292661B1 (en) Packet forwarding
US10461958B2 (en) Packet transmission method and apparatus
US20150358232A1 (en) Packet Forwarding Method and VXLAN Gateway
EP3292659B1 (en) Multicast data packet forwarding
CN101534240A (en) Method, system and device for sending mapping information
WO2016045608A1 (en) Processing a flow entry in vxlan
EP3292663B1 (en) Packet forwarding
US11102133B2 (en) Service packet processing method, apparatus, and system
US10693785B2 (en) Method and system for forwarding data, virtual load balancer, and readable storage medium
WO2016066077A1 (en) Services execution
CN112751871A (en) Data transmission method, device, network equipment and storage medium
JP2018515051A (en) Multicast data packet forwarding
EP3292660B1 (en) Packet forwarding in a vxlan switch
JP6865266B2 (en) Device detection method, SDN controller and storage medium
CN115001900A (en) Message forwarding method, apparatus, device, and computer-readable storage medium
US20070140264A1 (en) Address translation device and method for forwarding packets for the same
CN103460675B (en) Cluster and retransmission method
US20170070473A1 (en) A switching fabric including a virtual switch
WO2016188366A1 (en) Network communication
US20170264461A1 (en) Communication apparatus and communication method

Legal Events

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

Ref document number: 16748710

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16748710

Country of ref document: EP

Kind code of ref document: A1