WO2016062169A1 - 一种报文传输方法及装置 - Google Patents

一种报文传输方法及装置 Download PDF

Info

Publication number
WO2016062169A1
WO2016062169A1 PCT/CN2015/088892 CN2015088892W WO2016062169A1 WO 2016062169 A1 WO2016062169 A1 WO 2016062169A1 CN 2015088892 W CN2015088892 W CN 2015088892W WO 2016062169 A1 WO2016062169 A1 WO 2016062169A1
Authority
WO
WIPO (PCT)
Prior art keywords
nve device
nve
address
packet
identifier
Prior art date
Application number
PCT/CN2015/088892
Other languages
English (en)
French (fr)
Inventor
张民贵
何健飞
陈国义
董杰
苗福友
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP15852122.9A priority Critical patent/EP3197107B1/en
Publication of WO2016062169A1 publication Critical patent/WO2016062169A1/zh
Priority to US15/494,334 priority patent/US10193707B2/en

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/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]

Definitions

  • the present invention relates to the field of communications technologies, and in particular, to a message transmission method and apparatus.
  • Coverage network (English: overlay) technology is a virtualization technology for network overlay on existing network architecture.
  • overlay overlay layer 3 network virtualization can be superimposed on IP network (English: Network Virtualization over Layer) 3, referred to as: NVo3).
  • the overlay may be a centralized network, for example, a virtual extensible local area network (VXLAN), and a virtualized generalized routing encapsulation (English: Network Virtual using Generic Routing Encapsulation, referred to as NVGRE) )Wait.
  • VXLAN virtual extensible local area network
  • NVGRE Network Virtual using Generic Routing Encapsulation
  • Link aggregation technology can improve the bandwidth and robustness of data transmission.
  • Link aggregation technology is the aggregation of two or more network connections into a logical link with a higher bandwidth.
  • the overlay technology and the link aggregation technology can be combined. After such a combination, a problem that comes with it is how the message is correctly transmitted in the network combining the two technologies.
  • the message transmission method and device of the embodiment of the present invention provide an implementation scheme of message transmission in a network combining the overlay technology and the link aggregation technology.
  • a message transmission method includes:
  • the first virtual network edge NVE device receives the first packet, where the first packet includes the first source address And the first destination address; the first source address is an address of the first virtual machine, the first destination address is an address of the second virtual machine, and the first virtual machine is virtualized by the first physical server, The second virtual machine is virtualized by the second physical server;
  • the first NVE device obtains a multiple active access configuration information list, where the multiple active access configuration information list includes a first entry and a second entry, where the first entry includes an identifier of the first multiple active group, An identifier of the virtual network instance and the first NVE device, where the second entry includes an identifier of the second multi-live group, the virtual network instance, and an identifier of at least two NVE devices belonging to the second multi-live group ;
  • the first NVE device obtains the virtual network instance according to the first entry and the identifier of the first NVE device;
  • the first NVE device searches for at least one multi-live group corresponding to the virtual network instance, and the at least one multi-live group includes the second multi-live group, from the at least the second multi-live group Selecting a second NVE device from the two NVE devices;
  • the first NVE device encapsulates the first packet by using the identifier of the second NVE device and the virtual network instance, and sends the encapsulated first packet to the second NVE device.
  • the obtaining, by the first NVE device, the multiple active access configuration information list includes: the first NVE device receiving the multiple live Access the configuration information list.
  • the multiple access information configuration list is described in another next-generation YANG language.
  • the identifier of the first NVE device and the virtual network instance are child nodes.
  • the multiple active access configuration information list further includes a third entry, the third entry includes an identifier of the third multi-live group, the virtual network instance, and an identifier of at least two NVE devices belonging to the third multi-live group, the at least one multi-live group Including the second multi-live group and the third multi-live group;
  • the sending the encapsulated first packet to the second NVE device includes:
  • the first NVE device looks up Sending the encapsulated first packet to the second NVE device by the second multiple active group corresponding to the address of the second virtual machine.
  • the first NVE The device sends the encapsulated first packet to at least two NVE devices belonging to the second multi-live group and at least two NVE devices belonging to the third multi-live group.
  • the first item includes the first The identifier of the multiple active group, the virtual network instance, the identifier of the first NVE device, and the address of the first virtual machine, the method further includes:
  • the second packet sent by the fourth NVE device, where the second packet includes the identifier of the first NVE device, the virtual network instance, the second source address, and the second destination address;
  • the second source address is an address of the third virtual machine
  • the second destination address is an address of the first virtual machine
  • the third virtual machine is virtualized by a third physical server;
  • the first NVE device decapsulates the second packet to obtain a second packet after the decapsulation, and the second packet after the decapsulation includes the second source address and the second destination address;
  • the first NVE device sends the second packet after the decapsulation according to the second destination address.
  • a message transmission apparatus comprising:
  • a first receiving unit configured to receive a first packet, where the first packet includes a first source address and a first destination address; the first source address is an address of the first virtual machine, and the first destination address The address of the second virtual machine, the first virtual machine is virtualized by a first physical server, and the second virtual machine is virtualized by a second physical server;
  • a first obtaining unit configured to receive, by the first receiving unit, the first packet, to obtain a multiple access configuration information list, where the multiple active access configuration information list includes a first entry and a second table
  • the first entry includes an identifier of the first multi-live group, a virtual network instance, and an identifier of the first virtual network edge NVE device, where the second entry includes an identifier of the second multi-live group, the virtual network An instance and an identification of at least two NVE devices belonging to the second multi-live group;
  • a second obtaining unit configured to obtain the virtual network instance according to the identifier of the first entry and the first NVE device in the multiple access configuration information list obtained by the first obtaining unit ;
  • a searching unit configured to search, by using the multiple access configuration information list obtained by the first obtaining unit, at least one multi-live group corresponding to the virtual network instance, where the at least one multi-live group includes the a second multi-live group, selecting a second NVE device from the at least two NVE devices belonging to the second multi-live group;
  • a packaging unit configured to encapsulate the first packet by using an identifier of the second NVE device and the virtual network instance
  • the first sending unit is configured to send the first packet after the encapsulation unit is encapsulated to the second NVE device.
  • the first obtaining unit has a list of the multiple access configuration information received from the controller.
  • the multiple access information configuration list obtained by the first obtaining unit is another a first-generation YANG language description, the first entry in a tree structure carrying the identifier of the first multi-live group, the virtual network instance, and the identifier of the first NVE device, where the first The identifier of the live group is a root node, and the identifier of the first NVE device and the virtual network instance are child nodes.
  • the multiple active access configuration information list further includes a third entry, the third entry includes an identifier of the third multi-live group, the virtual network instance, and an identifier of at least two NVE devices belonging to the third multi-live group, the at least one multi-live group Including the second multi-live group and the third multi-live group;
  • the first sending unit is specifically configured to determine whether the second entry further includes an address of the second virtual machine; and when the second entry further includes an address of the second virtual machine, the search corresponds to The second multi-live group of the address of the second virtual machine sends the encapsulated first packet to the second NVE device.
  • the first sending unit is further configured to not include the second item in the second
  • the encapsulated first packet is sent to the at least two NVE devices belonging to the second multi-live group and the at least two NVE devices belonging to the third multi-live group.
  • the first item includes the first The device, the virtual network instance, the identifier of the first NVE device, and the address of the first virtual machine, the device further includes:
  • a second receiving unit configured to receive a second packet sent by the fourth NVE device, where the second packet includes an identifier of the first NVE device, the virtual network instance, a second source address, and a second destination address
  • the second source address is an address of the third virtual machine
  • the second destination address is an address of the first virtual machine
  • the third virtual machine is virtualized by a third physical server
  • the unpacking unit is configured to perform decapsulation of the second packet to obtain a second packet after the decapsulation, and the second packet after the decapsulation includes the second source address and the second destination address;
  • a determining unit configured to determine whether the second destination address is an address of the first virtual machine in the first entry
  • a second sending unit configured to determine, by the determining unit, that the second destination address is an address of the first virtual machine in the first entry, and send the unpacking according to the second destination address After the second message.
  • a message transmission device comprising: a processor and a memory;
  • the memory for storing program instructions and data
  • the processor is configured to read program instructions and data stored in the memory, and perform the following operations:
  • the processor receives the first packet, where the first packet includes a first source address and a first destination address; the first source address is an address of the first virtual machine, and the first destination address is a second An address of the virtual machine, the first virtual machine is virtualized by a first physical server, and the second virtual machine is virtualized by a second physical server;
  • the processor obtains a multi-access configuration information list, where the multi-access configuration information list includes a first entry and a second entry, where the first entry includes the identifier of the first multiple active group, and the virtual network An instance and an identifier of the first virtual network edge NVE device, where the second entry includes an identifier of the second multi-live group, the virtual network instance, and at least two NVE devices belonging to the second multi-live group Identification
  • the processor obtains the virtual network instance according to the first entry and the identifier of the first NVE device;
  • the processor searches for at least one multi-live group corresponding to the virtual network instance, the at least one The multiple active group includes the second multiple live group, and the second NVE device is selected from the at least two NVE devices belonging to the second multiple live group;
  • the processor encapsulates the first packet by using the identifier of the second NVE device and the virtual network instance, and sends the encapsulated first packet to the second NVE device.
  • the obtaining, by the processor, the multiple access configuration information list includes: the processor receiving the multiple active access configuration information from the controller List.
  • the multiple active access information configuration list obtained by the processor is another In the first generation of the YANG language, the first entry uses a tree structure to carry the identifier of the first multi-live group, the virtual network instance, and the identifier of the first NVE device, where the first multi-live group The identifier of the first NVE device and the virtual network instance are child nodes.
  • the multiple active access configuration information list further includes a third entry, the third entry includes an identifier of the third multi-live group, the virtual network instance, and an identifier of at least two NVE devices belonging to the third multi-live group, the at least one multi-live group Including the second multi-live group and the third multi-live group;
  • the sending, by the processor, the encapsulated first packet to the second NVE device includes:
  • the processor determines whether the second entry further includes an address of the second virtual machine
  • the processor searches for the second multiple active group corresponding to an address of the second virtual machine, and sends the second multiple live group to the second NVE device The encapsulated first message.
  • the processor is At least two NVE devices belonging to the second multi-live group and at least two NVE devices belonging to the third multi-live group send the encapsulated first message.
  • the processor further performs the following operations:
  • a second packet sent by the fourth NVE device where the second packet includes an identifier of the first NVE device, the virtual network instance, a second source address, and a second destination address;
  • the second source address is an address of the third virtual machine
  • the second destination address is an address of the first virtual machine
  • the third virtual machine is virtualized by a third physical server;
  • the processor decapsulates the second packet to obtain a second packet after the decapsulation, and the second packet after the decapsulation includes the second source address and the second destination address;
  • the processor sends the second encapsulated packet according to the second destination address.
  • the packet transmission method and device of the embodiment of the present invention can send the multi-access configuration information list to each NVE device in the NVo3 network when the multi-access configuration is performed, and the first NVE device needs to send the packet.
  • the first NVE device can obtain the VNI according to the saved multiple access configuration information list, and find the second NVE device according to the VNI, and then encapsulate the packet and correctly forward it to the second NVE device.
  • the first NVE device decapsulates the received packet, restores the destination address included in the packet, and forwards the packet to the VM corresponding to the destination address. In this way, the correct transmission of the message can be achieved.
  • FIG. 1 is a schematic diagram of a network of an NVo3 network in an embodiment of the present invention
  • FIG. 2 is a schematic diagram of a tree structure of a multiple active access configuration information list in an embodiment of the present invention
  • Embodiment 3 is a flowchart of Embodiment 1 of a message transmission method in an embodiment of the present invention
  • Embodiment 4 is a flowchart of Embodiment 2 of a message transmission method in an embodiment of the present invention.
  • FIG. 5 is a flowchart of Embodiment 3 of a message transmission method according to an embodiment of the present invention.
  • FIG. 6 is a schematic diagram of a message transmission apparatus in an embodiment of the present invention.
  • FIG. 7 is a schematic diagram of a message transmission device in an embodiment of the present invention.
  • an overlay can be built on the basis of the traditional network to improve the processing capability of the network.
  • an overlay can be built on the basis of a traditional IP network to form an NVo3 network.
  • the NVo3 network increases the transmission of the overlay layer data packets. That is, the processing capability of the network can be increased by increasing the data packet format supported by the network.
  • the NVo3 network also provides A large number of virtual network edge (English: Network Virtualization Edge, NVE) devices that can be used by tenants (English: tenant), that is, improving the processing power of the network can be reflected in increasing the number of access nodes of the network.
  • NVE Network Virtualization Edge
  • NVo3's overlay can be embodied as a centralized virtualized network based on IP networks, such as VXLAN or NVGRE.
  • the NVE device in the embodiment of the present invention may be a network entity that is located at the edge of the network and can implement the functions of the Layer 2 and/or Layer 3 virtual network.
  • RRC Request for Comments
  • the inventor found that the virtual machine (English: virtual machine, VM for short) can be used to integrate the NVE device of the NVo3 network with the multi-access technology. More live access, thereby increasing the data transmission bandwidth and robustness of the NVo3 network.
  • the embodiment of the present invention is proposed for this purpose. The following describes the multiple active access configuration mode involved in the process of multiple active access to the NVo3 network, and the data transmission mode after the configuration is completed.
  • NVE device 1, NVE device 2, NVE device 3, NVE device 4, and NVE device 5 are all edge devices of the NVo3 network, and VM1, VM2, and VM3 virtualize the operating system for the physical server server1 ( English: operating system–level virtualization)
  • the virtual machine obtained by VM4 is the virtual machine obtained by virtualizing the operating system server2.
  • the server1 and server2 are the data center (English: data center, DC for short).
  • Server1 can connect to the NVo3 network through the local area network (English: local area network, LAN) device LAN10, and server2 can connect to the NVo3 network through LAN20.
  • the LAN 10 and the LAN 20 may be physical devices or virtual devices.
  • the local area network device can be a switch or a router.
  • a link between the NVE device 1 and the LAN 10, a link between the NVE device 2 and the LAN 10, and a link between the NVE device 3 and the LAN 10 are subjected to link aggregation, for example, multi-chassis link aggregation.
  • MC-LAG Multi-Chassis Link Aggregation Group
  • the multi-live edge device group is the first multi-live group, and the NVE device 1, the NVE device 2, and the NVE device 3 are all living members of the first multi-live group.
  • the multiple active members of the second multi-live group formed based on the link aggregation technique may be the NVE device 4 and the NVE device 5.
  • the VM in a message transmission process, can be connected to any one of the multiple active members included in the multiple live group for transmitting or receiving the message.
  • VM1 when VM1 provided by server1 needs to connect to the NVo3 network, VM1 can be connected to any one of NVE device 1, NVE device 2, and NVE device 3.
  • the tenant can allocate VM1, VM2, and VM3 to the first user group, and assign a virtual local area network (English: virtual local area network, VLAN) identifier VLAN 10 of the LAN 10 to the first user group. That is, VM1, VM2, and VM3 can send data packets to the LAN 10 through the VLAN 10 of the LAN 10, and the LAN 10 can also forward the data packet to the NVE device through the VLAN 10. Similarly, the tenant can also divide VM4 into a second user group and assign VLAN 10 of LAN 20 to the second user group.
  • VLAN virtual local area network
  • the first user group can access the first multiple live group
  • the second user group can access the second multiple live group.
  • the multiple active configuration mode of the embodiment of the present invention is explained below by taking the first user group to access the first multiple live group as an example.
  • the configuration information may include at least: an identifier of the multiple live group, a virtual network instance (English: Virtual Network Instance, VNI for short), and an identifier of at least two NVE devices belonging to the multiple live group.
  • the configuration information is at least The method may include: an identifier of the multi-live group, a VNI, an identifier of at least two NVE devices belonging to the multi-live group, and an address of the VM.
  • the embodiment of the present invention can perform the distinguishing process on the NVE device in the network, that is, whether the NVE device is a data sender or a data receiver, the configuration information of the NVE device can be embodied as: a multi-live group identifier, a VNI, The identifiers of the at least two NVE devices belonging to the multi-live group and the address of the VM.
  • the configuration information of the NVE device can be embodied as: a multi-live group identifier, a VNI, The identifiers of the at least two NVE devices belonging to the multi-live group and the address of the VM.
  • the corresponding relationship between the foregoing configuration information can be established. That is, the multiple active access configuration information list saves the configuration information of each NVE device in an entry manner.
  • the VNI in the embodiment of the present invention may be a specific example of the overlay.
  • the description in the standard RFC7365 which is not described in detail herein.
  • the identifier of the VM may be embodied as the name of the VM and/or the address of the VM, where the address of the VM may be the MAC address of the VM or the IP address of the VM.
  • the identifier of the NVE device may be the name of the NVE device and/or the address of the NVE device, where the address of the NVE device may be the IP address of the NVE device, for example, the IP address may be an IPv4 address or an IPv6 address. .
  • the identifier of the multiple live group may be a number of multiple live groups, for example, the first multiple live group may be represented by number 1, and the second multiple live group may be represented by number 2; or, considering the VM in the user group
  • the NUE device is accessed through the configured LAN. Therefore, the ID of the multi-live group can also be the LAN ID used when the VM accesses the active group.
  • the first multi-live group can be represented by LAN10
  • the second multi-live group can be It is represented by LAN20.
  • the VNI is mainly used for NVE devices to identify multiple live groups with data transmission requirements, and the VNI can be embodied as a preset number, such as VIN100.
  • identifying the multiple live group with the data transmission requirement may be: if the virtual network instance in the configuration information of the NVE device 1 is the VNI 100, and the virtual network instance in the configuration information of the NVE device 4 is also the VNI 100, so that it can be determined.
  • Data transmission can be performed between the first multi-live group to which the NVE device 1 belongs and the second multi-live group to which the NVE device 4 belongs.
  • the specific representation of the identifier of the NVE device, the VNI, and the identifier of the multiple live group may not be specifically limited.
  • the role played by the VNI will not be described in detail here. For details, please refer to the explanation in the example shown in FIG.
  • the active access configuration information list may include at least a table corresponding to the NVE device 1, the NVE device 2, the NVE device 3, the NVE device 4, and the NVE device 5. item.
  • the entries corresponding to each NVE device can be as follows:
  • the entry corresponding to the NVE device 1 may include: the IP address of the LAN 10, the VNI 100, the NVE device 1, and the MAC address of the VM1 to VM3.
  • the entry corresponding to the NVE device 2 may include: an IP address of the LAN 10, the VNI 100, the NVE device 2, and a MAC address of the VM1 to VM3.
  • the entry corresponding to the NVE device 3 may include: an IP address of the LAN 10, the VNI 100, the NVE device 3, and a MAC address of the VM1 to VM3.
  • the entry corresponding to the NVE device 4 may include: the LAN 20, the VNI 100, the IP address of the NVE device 4, and the MAC address of the VM4.
  • the entry corresponding to the NVE device 5 may include: the LAN 20, the VNI 100, the IP address of the NVE device 5, and the MAC address of the VM 4.
  • the embodiment of the present invention does not specifically limit the manner in which the multiple access configuration list is generated.
  • the next generation (Yet Another Next Generation, YANG) language may be used to describe multiple Live access information configuration list.
  • the configuration information in the above entry may be embodied as a tree structure as shown in FIG. 2, and the hierarchical relationship between the root node and the child node in the tree structure is represented by different indentation depths.
  • the identification of the multi-live group is the root node, the list of VMs, the list of NVE devices, and the VNI are child nodes.
  • the VM list includes the addresses of the VMs that can access the active multi-live group.
  • the list of the NVE devices includes the identifiers of the multi-live members included in the multi-live group.
  • the interface of the NVE device may further include an interface (English: interface) number.
  • the foregoing multiple access configuration information list may be generated by any device in the NVo3 network and sent to each NVE device in a broadcast manner; or, considering that the overlay in the embodiment of the present invention is a centralized virtual
  • the device can send the list to the controller in the centralized network (English: controller), and then the controller pushes the list to each NVE device by broadcast;
  • the controller may also generate a multi-access configuration information list and send it to each NVE device.
  • the process and the method for generating and sending a list in the embodiment of the present invention are not limited, as long as each NVE device in the NVo3 network saves a list of multiple active access configuration information.
  • the NVE device that receives the list can obtain at least the following through the multiple live group identifiers in the list.
  • Information to complete the multi-access configuration process :
  • (a) Determine whether the NVE device is a multi-active device or a single-active device. If there are no other NVE devices in the list that have the same multiple live group ID as the NVE device, the NVE device is a single-active device; if there are other NVE devices in the list that have the same multiple live group ID as the NVE device, The NVE device is a multi-active device.
  • a single-active device is a concept of a relatively multi-active device. It can be understood that a link between a single-live NVE device and a switch is not bundled with other links, that is, the VM can only be uniquely connected through the switch. Enter the single live NVE device.
  • the NVE device with the same multi-live group identifier can be determined as a multi-live group, so that the NVE device can know which multiple live groups exist in the network and the multiple live members included in each multi-live group.
  • the single-active device can also be regarded as a multi-active group, but the multi-active group includes only one NVE device, which is not specifically limited in this embodiment of the present invention.
  • the embodiment of the present invention does not require control signaling interaction between NVE devices when performing multiple active access configuration, which can reduce the consumption of network resources in the configuration process, and realizes multiple activities conveniently and quickly. Access configuration.
  • the packet transmission scheme provided by the embodiment of the present invention is mainly applicable to a scenario in which a packet transmission requirement is provided between virtual machines provided by different servers.
  • the forwarding device can forward the packet, such as Data packets exchanged between VM1 and VM2 can be forwarded through LAN 10.
  • the message transmission method of the embodiment of the present invention is explained below with reference to specific examples.
  • Embodiment 1 of a message transmission method may include:
  • the first virtual network edge NVE device device receives the first packet, where the first packet includes a first source address and a first destination address, and the first source address is an address of the first virtual machine, where the first A destination address is an address of a second virtual machine, the first virtual machine is virtualized by a first physical server, and the second virtual machine is virtualized by a second physical server.
  • the embodiment 1 shows an implementation manner of sending a message by the NVE device.
  • the scenario in which the message is sent by the VM1 to the VM4 in FIG. 1 is taken as an example to explain the packet sending process of the NVE device in the embodiment of the present invention.
  • the forwarding device can be embodied as a switch.
  • the VM1 can send the first packet to the LAN 10 through the pre-configured VLAN 10.
  • the first packet includes the first source address, the first destination address, and the first payload, where the first source address can be The address of VM1, the first destination address can be the address of VM4.
  • the switch stores the correspondence between the LAN and the NVE device and the aggregation information of the link connected to the NVE device. Therefore, after the LAN 10 receives the first packet transmitted via the VLAN 10, the LAN 10 can be from the first multi-live group. Select an NVE device and forward the first packet to the selected NVE device through VLAN 10. For example, the LAN 10 can select one NVE device from the load balancing technology according to the current load condition of the NVE device 1 to the NVE device 3.
  • the NVE device selected by the LAN 10 is the NVE device 1, that is, the first NVE device in the above is the NVE device 1.
  • the first embodiment shows the processing flow for the NVE device 1 to perform packet transmission.
  • the first NVE device obtains a multiple active access configuration information list, where the multiple active access configuration information list includes a first entry and a second entry, where the first entry includes the first multiple active group An identifier, a virtual network instance, and an identifier of the first NVE device, where the second entry includes an identifier of the second multi-live group, the virtual network instance, and at least two NVE devices belonging to the second multi-live group Logo.
  • the first NVE device obtains the virtual network instance according to the first entry and the identifier of the first NVE device.
  • the first NVE device searches for at least one multi-live group corresponding to the virtual network instance, and the at least one multi-live group includes the second multi-live group, from the second multi-live group
  • the second NVE device is selected from at least two NVE devices.
  • the first NVE device encapsulates the first packet by using the identifier of the second NVE device and the virtual network instance, and sends the encapsulated first packet to the second NVE device.
  • the NVE device 1 receives the first packet forwarded by the LAN 10, and obtains a list of multiple active access configuration information locally saved by the NVE device 1 as follows:
  • the NVE device 1 reads the entry corresponding to the NVE device 1 in the list, and obtains the virtual network instance VNI 100 corresponding to the identifier of the NVE device 1.
  • the NVE device 1 can traverse the entries in the list, find at least one multi-live group corresponding to the VNI 100, and include the second one from the at least one multi-live group
  • the second NVE device is selected from the multi-active group.
  • the selected second NVE device is the NVE device 4.
  • the second NVE device meets the following conditions: the second NVE device and the first NVE device belong to different multi-live groups, and the virtual machine corresponding to the first destination address can access the second NVE device.
  • the manner of searching for the second NVE device in the embodiment of the present invention is not described in detail herein. For details, refer to the three scenarios described below.
  • the VNI corresponds to the identifier of the multiple active group
  • the identifier of the multiple active group corresponds to only one active group, that is, the VNI and the multiple live group also correspond to each other.
  • the NVE device 1 encapsulates the first packet by using the address of the VNI 100 and the NVE device 4, and sends the encapsulated first packet to the second NVE device, where the encapsulated first packet includes the VNI 100 and the NVE device 4 Address, address of VM1, address of VM4, and first payload.
  • the first packet is encapsulated by the VNI, and the tenant is isolated by using the VLAN in combination with the VNI to improve the number of tenants that can be isolated by the NVo3 network.
  • This is another embodiment of the virtual network instance in the embodiment of the present invention.
  • the first destination address exists in the list saved by the NVE device 1.
  • the NVE device 1 can find the second multi-live group by using the addresses of the VNI00 and the VM4, and the second multi-live group includes the NVE device 4 and the NVE device 5, and the NVE device 1 can select one NVE device from the two as the first Two NVE devices, such as NVE device 1, select NVE device 4 as the second NVE device.
  • the NVE device 1 may randomly select a second NVE device from the two, or the NVE device 1 may also select a second NVE device from the two by using a load balancing technology, and the embodiment of the present invention selects the NVE device 1
  • the manner of the second NVE device may not be specifically limited.
  • the second multi-live group can be accurately found, and the second NVE device is selected from the second multi-live group.
  • the first destination address does not exist in the list saved by the NVE device 1, and the first multi-live group can only perform data interaction with one multi-live group.
  • the NVE device 1 can use the VNI 100 to find the first multi-live group and the second multi-live group.
  • the first multi-live group includes the NVE device 1, the NVE device 2, and the NVE device 3, and the second multi-live group includes the NVE. Device 4 and NVE device 5.
  • the NVE device 1 can filter out the first multi-live group and retain the second multi-live group.
  • the NVE device 1 can select the second multi-live group. Two NVE devices.
  • the first destination address does not exist in the list saved by the NVE device 1, and the first multi-live group does not only perform data interaction with one multi-live group.
  • the NVE device 6 is also present in the NVo3 network. If the entry corresponding to the NVE device 6 includes the IP addresses of the LAN 30, the VNI 100, and the NVE device 6, the NVE device 1 can utilize The VNI 100 finds the first multi-live group, the second multi-live group, and the third multi-live group. In order to avoid the routing loop, the NVE device 1 can filter out the first multi-live group, and retain the second multi-live group and the third multi-live group. At this time, the NVE device 1 cannot temporarily select the NVE device accessed by the VM4, but It is determined that the VM4 can access at least one of the two multi-live groups, that is, the two remaining multi-live groups include the second NVE device.
  • the first destination address exists in the list saved by the NVE device 1, that is, the entry corresponding to the NVE device 4 in the list and the entry corresponding to the NVE device 5 include the address of the VM4.
  • the address of the VM4 may exist in the list when the list is generated, that is, the NVE device 1 locally saves the address of the VM4 by static configuration.
  • the address of the VM4 may be stored in the list after the NVE device 1 is dynamically learned.
  • the NVE device 1 may adopt an address resolution protocol (English: Address Resolution Protocol, ARP) frame, a reverse address translation protocol.
  • ARP Address Resolution Protocol
  • the frame, data (English: data) frame acquires the address of VM4 that can access the NVE device 4 and the NVE device 5.
  • the manner in which the NVE device 1 obtains the address of the VM4, the manner in which the NVE device 1 dynamically learns, and the like may be not specifically limited.
  • the embodiment of the present invention provides the following two manners of sending the encapsulated first packet:
  • the NVE device 1 In the first mode, if the NVE device 1 obtains the NVE device 4 in scenario 1 or scenario 2, that is, the NVE device 1 can clarify the NVE device that the VM4 can access, the NVE device 1 can send the encapsulated first report to the NVE device 4. Text.
  • the identifier of the second NVE device used to encapsulate the first packet in this manner may be the IP address of the NVE device 4.
  • Manner 2 If the NVE device 1 obtains at least two multi-live groups in scenario 3, that is, the NVE device 1 cannot clarify the NVE device that the VM4 can access, the NVE device 1 can belong to the at least two multi-live groups.
  • the NVE device sends the encapsulated first packet. Specifically, the NVE device 1 can utilize the group
  • the broadcast technology sends the encapsulated first packet to the NVE device that belongs to the at least two multi-live groups, and the identifier of the second NVE device used to encapsulate the first packet in the present manner may be a group.
  • the IP address of the broadcast group; or the NVE device 1 may also send the encapsulated first packet to each of the NVE devices belonging to the at least two multi-live groups, respectively, corresponding to the manner
  • the identifier of the second NVE device of the first packet may be an IP address of the corresponding NVE device.
  • the multicast group may be formed by all NVE devices having the VNI 100, such as by the NVE device 1, the NVE device 2, the NVE device 3, the NVE device 4, the NVE device 5, and the NVE device 6; or, multicast
  • the group may also be formed by all the NVE devices with the VNI 100 reserved by the NVE device 1, for example, formed by the NVE device 4, the NVE device 5, and the NVE device 6.
  • the embodiment of the present invention may not specifically be used for the multicast members included in the multicast group. limited.
  • the data interaction process between the virtual machines provided by the two servers in the NVo3 network is implemented, in particular, the implementation scheme of the message transmission involved in the interaction process.
  • Embodiment 2 of a packet transmission method which may include:
  • the first NVE device receives a second packet sent by a fourth NVE device, where the second packet includes an identifier of the first NVE device, the virtual network instance, a second source address, and a second destination.
  • the second source address is an address of the third virtual machine
  • the second destination address is an address of the first virtual machine
  • the third virtual machine is virtualized by a third physical server.
  • the first NVE device can receive the packet sent by the fourth NVE device in addition to the packet sent to the second NVE device according to the process shown in FIG. 3, and correctly forward the received packet to the corresponding virtual machine.
  • This embodiment 2 shows an implementation manner in which an NVE device receives a message.
  • the fourth NVE device may be the second NVE device in the embodiment shown in FIG. 3 according to actual communication requirements, or the fourth NVE device may be other NVE devices than the second NVE device.
  • the embodiment of the present invention does not specifically limit this.
  • the message receiving process of the NVE device in the embodiment of the present invention is explained by taking the example of the VM1 in FIG.
  • the first NVE device may be the NVE device 1
  • the fourth NVE device may be the NVE device 4
  • the first virtual machine may be the VM1
  • the third virtual machine may be the VM4.
  • the VM4 can send a message to the LAN 20 through the pre-configured VLAN 10, and then forward the message to the NVE device 4 through the LAN 20, and the NVE device 4 can follow the FIG.
  • the method encapsulates the packet and generates a second packet, where the second packet includes the address of the VNI 100, the NVE device 1, the address of the VM4, the address of the VM1, and the second payload.
  • the NVE device 4 can also find the NVE device 1 to the NVE device 3 and the NVE device 6 by using the NVI 100 according to the locally stored multiple access configuration information list (the address of the VM1 does not exist in the list), and the four devices can be known according to the LAN.
  • the NVE device 4 is temporarily unable to determine the NVE device that the VM1 accesses. Therefore, as an example, the NVE device 4 can use the multicast technology to send the second packet to the four, correspondingly, the NVE.
  • the address of the device 1 can be embodied as the address of the multicast group to which the NVE device 1 belongs. In this step, the NVE device 1 receives the second packet sent by the NVE device 4 by using the multicast technology.
  • the first NVE device decapsulates the second packet, and obtains a second packet after the decapsulation, where the second packet after the decapsulation includes the second source address and the first Two destination address.
  • the first NVE device determines whether the second destination address is an address of the first virtual machine in the first entry.
  • the first NVE device sends the second encapsulated second address according to the second destination address. Message.
  • the NVE device 1 After receiving the second packet forwarded by the NVE device 4, the NVE device 1 determines whether the second packet is a report sent to the NVE device 1 according to the identifier of the first NVE device included in the second packet. If the identifier of the first NVE device is the address of the NVE device 1, the NVE device 1 can be determined to be a legal receiver of the second packet, and the NVE device 1 can perform subsequent processing on the second packet according to the solution in this embodiment. If the identifier of the first NVE device is not the address of the NVE device 1, it can be determined that the NVE device 1 is not a legal receiver of the second packet, and the NVE device 1 can perform the discarding process on the second packet. Make specific limits.
  • the NVE device 1 may perform the following processing on the second packet according to the solution of the embodiment of the present invention:
  • the NVE device 1 can perform the decapsulation process on the second packet, and remove the address of the VNI 100 and the multicast group encapsulated by the NVE device 4, and obtain the second package after the package is removed.
  • the second packet after decapsulation includes the address of VM4, the address of VM1, and the third payload.
  • the NVE device 1 reads the entry corresponding to the NVE device 1 in the locally saved list, and determines whether the VM1 can access the NVE device 1. If yes, the NVE device 1 can send the second report after unpacking to the VM1 through the LAN 10. The message receives and forwards the second message. For example, to determine whether VM1 is available The method of accessing the NVE device 1 is: determining whether the list of VMs in the entry corresponding to the NVE device 1 includes the address of the VM1. If included, the VM1 can access the NVE device 1; if not, the VM1 is not accessible. NVE device 1.
  • the process in the scenario that the VM1 is inaccessible to the NVE device 1 in the embodiment of the present invention may be specifically limited.
  • the NVE device 1 determines that the VM1 cannot access the NVE device 1, the second report may be used. The text is discarded.
  • the active member may also store the priority information. If the fourth NVE uses the multicast technology to send the second packet to the at least two NVE devices belonging to the second multi-live group and the at least two NVE devices belonging to the third multi-live group, the first NVE device receives the second report. After the text, the first NVE device has the highest priority in the multi-live group to which the first NVE device belongs. If the priority of the first NVE device is the highest, the first NVE may perform decapsulation processing on the second packet, and send the second packet after the decapsulation to the first virtual machine. If the priority of the first NVE device is not the highest, the first NVE may perform the discarding process on the second packet, which is not specifically limited in this embodiment of the present invention.
  • the data interaction process between the virtual machines provided by the two servers in the NVo3 network is implemented, in particular, the implementation scheme of the message reception involved in the interaction process.
  • Embodiment 3 of a packet transmission method which may include:
  • the first NVE device receives a third packet sent by a fifth NVE device, where the third packet includes an identifier of the first NVE device, the virtual network instance, a third source address, and a third destination.
  • the third source address is an address of the fourth virtual machine
  • the third destination address is an address of the first virtual machine
  • the fourth virtual machine is obtained by virtualization by a fourth physical server.
  • the first NVE device can receive the packet sent by the fifth NVE device in addition to the packet sent to the second NVE device according to the process shown in FIG. 3, and correctly forward the received packet to the corresponding virtual machine.
  • This embodiment 3 shows an implementation manner in which an NVE device receives a message.
  • the fifth NVE device may be the second NVE device in the embodiment shown in FIG. 3 according to actual communication requirements, or the fifth NVE device may be other NVE devices than the second NVE device.
  • the embodiment of the present invention does not specifically limit this.
  • the following is an example of the message receiving process of the NVE device in the embodiment of the present invention. Bright.
  • the first NVE device may be the NVE device 1
  • the fifth NVE device may be the NVE device 4
  • the first virtual machine may be the VM1
  • the fourth virtual machine may be the VM4.
  • the VM4 can send a message to the LAN 20 through the pre-configured VLAN 10, and then forward the message to the NVE device 4 through the LAN 20, and the NVE device 4 can view the message according to the scheme shown in FIG.
  • the encapsulation process is performed to generate a third packet, where the third packet includes the VNI 100, the address of the NVE device 1, the address of the VM4, the address of the VM1, and the third payload.
  • the NVE device 4 can also find the NVE device 1 to the NVE device 3 according to the address of the NVI 100 and the VM1 according to the locally stored multiple access configuration information list (the address of the VM1 exists in the list), and according to the LAN 10, the three are The same multi-live group, therefore, the NVE device 4 can select the NVE device 1 through the load balancing technology, and route the third packet to the NVE device 1 by using the unicast technology. In this step, the NVE device 1 receives the third packet sent by the NVE device 4 by using the unicast technology.
  • the first NVE device decapsulates the third packet, and obtains a third packet after the decapsulation, where the third packet after the decapsulation includes the third source address and the first packet. Three destination address.
  • the first NVE device sends the third encapsulated packet according to the third destination address.
  • the NVE device 1 After receiving the third packet forwarded by the NVE device 4, the NVE device 1 determines whether the NVE device 1 is the legal receiver of the third packet according to the identifier of the first NVE device included in the third packet.
  • the NVE device 1 determines whether the NVE device 1 is the legal receiver of the third packet according to the identifier of the first NVE device included in the third packet.
  • the NVE device 1 may perform the following processing on the third packet according to the solution of the embodiment of the present invention:
  • the NVE device 1 may perform the following processing on the third packet according to the solution of the embodiment of the present invention:
  • the NVE device 1 can perform the decapsulation process on the third packet, and remove the address of the VNI 100 and the NVE device 1 encapsulated by the NVE device 4, and obtain the third package after the package is removed.
  • the third packet after decapsulation includes the address of VM4, the address of VM1, and the third payload.
  • the NVE device 1 uses the address of the VM1 to transmit the third packet after the decapsulation to the VM1 through the LAN 10, and completes the reception and forwarding of the third packet.
  • the data interaction process between the virtual machines provided by the two servers in the NVo3 network is realized, in particular, the implementation of the message reception involved in the interaction process. Program.
  • Figure 3 Figure 4 and Figure 5 show the message transmission scheme of the NVo3 technology combined with the multiple access technology.
  • the message transmission process of the embodiment of the present invention will be explained below with reference to specific examples.
  • the embodiment of the present invention can be utilized in view of the fact that the YANG data model language can be easily converted into an Extensible Markup Language (XML) format and the relationship between the data is concisely described by a tree structure.
  • the YANG data model language compiles multiple active access information set by the tenant, and generates a list of multiple active access configuration information.
  • the way the Controller generates a list based on the YANG data model language can be embodied as follows:
  • the controller sends the generated list to each NVE device on the NVo3 network in broadcast mode.
  • the NVE device in the NVo3 network can support the network configuration (English: Network Configuration, Netconf): Analyze the YANG data model language description.
  • the tree structure recognizes the multiple live groups present in the NVo3 network and the multiple live members included in each multi-live group.
  • the example shown in Figure 1 above is used as an example to identify that there are two active groups in the NVo3 network.
  • the multiple active members included in the first multiple active group are NVE devices 1 to NVE devices 3, and the second multiple active group includes The multiple active members are NVE device 4 to NVE device 5.
  • VM1 sends a request message to VM4, which includes the MAC address of VM1, the MAC address of VM4, and the request data.
  • the VM1 sends a request message to the LAN 10 connected thereto through the VLAN 10.
  • the LAN 10 can pass any NVE device 1 to the NVE device 3 according to the correspondence between the LAN and the NVE device and the link bundling information.
  • the request message is sent to the remote NVE device accessed by VM4. If the LAN 10 selects the NVE device 1 as the processing device for forwarding the packet according to the load balancing technology, the LAN 10 can forward the request packet to the NVE device 1 through the VLAN 10.
  • the end-id may be expressed as a LAN identifier.
  • VM1 can access the NVE device 1 to the NVE device 3 in multiple ways. It can be understood that VM1 can access any one of the three; or, the data stream transmitted by VM1 can be further refined. (English: flow) can access any of the three. That is, data streams destined for a particular VLAN and VM can be refined. For example, when VM1 sends flow1 to VM4 through VLAN 10, it can access NVE device 1 and forward flow1 through NVE device 1; or, when VM1 sends flow2 to VM4 through VLAN 20, it can access NVE device 2 through NVE device. 2, the forwarding of the flow 2, and so on, the embodiment of the present invention may not specifically limit this.
  • the NVE device 1 receives the request packet, and reads the locally saved multiple access configuration information list to find the remote NVE device.
  • the entry corresponding to the NVE device 1 includes: an IP address of the LAN 10, the VNI 100, the NVE device 1, and a MAC address of the VM1 to VM3;
  • the entry corresponding to the NVE device 4 includes: an IP address of the LAN 20, the VNI 100, and the NVE device 4;
  • the entries corresponding to the NVE device 5 include: the IP addresses of the LAN 20, the VNI 100, and the NVE device 5.
  • the address of the VM in the list generated by the controller is empty, and the NVE device 1 can know the MAC address of the VM that can access the NVE device 1. At the same time, the NVE device 1 needs to learn the VM that can access the NVE device 4 through dynamic learning. MAC address, MAC address of the VM that can access the NVE device 5.
  • the NVE device 1 can find the NVE device 4 and the NVE device 5 that can perform data interaction with the multi-live group to which the NVE device 1 belongs according to the VNI 100, and according to the LAN 20, the NVE device 4 and the NVE device 5 belong to the same multi-live group. Therefore, the NVE device 1 can select the NVE device 4 as the remote NVE device forwarded by the current packet according to the load balancing technology.
  • the NVE device 1 performs encapsulation processing on the request packet, and routes the encapsulated request packet to the remote NVE device.
  • the NVE device 1 may encapsulate the IP address of the NVE device 4 in the request message; at the same time, in order to improve the number of tenants that can be isolated in the embodiment of the present invention
  • the VNI100 can also be encapsulated in the request message, and the tenant is identified by the combination of VLAN 10 and VNI100.
  • the NVE device 1 can forward the encapsulated request to the NVE device 4 in a unicast manner.
  • the NVE device 1 can also determine the two as the remote NVE device, and use the multicast technology to send the request message to the two. Specifically, the request message is sent to the NVE device that the VM4 can access.
  • the NVE device 4 receives the encapsulated request message forwarded by the NVE device 1 and sends it to the VM4.
  • the NVE device 4 can determine that it is a legal receiver of the encapsulated request message, and the NVE device 4 can perform decapsulation and restore the request message according to the IP address of the NVE device 4 in the request packet after the encapsulation process. And according to the MAC address of the VM4 included in the request message, the request message is forwarded to the VM4 through the LAN 20, and the message transmission of the VM1 to the VM4 is realized.
  • VM4 sends a response message to VM1, which includes the MAC address of VM4, the MAC address of VM1, and the response data.
  • the VM4 may perform a series of processing according to the request message (this may be determined by an actual requirement in the embodiment of the present invention), and the response data is returned to the VM1 through the response message. .
  • the VM4 sends a response packet to the LAN 20 connected thereto through the VLAN 10.
  • the LAN 20 determines whether any NVE device of the NVE device 4 to the NVE device 5 is determined according to the relationship between the LAN and the NVE device and the link bundling information.
  • the response message can be sent to the remote NVE device accessed by VM1. If the LAN 20 selects the NVE device 5 as the processing device for forwarding the packet according to the load balancing technology, the LAN 20 can forward the response packet to the NVE device 5 through the VLAN 10.
  • the NVE device 5 receives the response packet and reads the locally saved multiple access configuration information list to find the remote NVE device. For example, if the NVE device 5 finds the NVE device 1 to the NVE device 3 that belong to the same multi-live group, the NVE device 2 can be selected as the remote NVE device forwarded by the current packet according to the load balancing technology.
  • the NVE device 5 performs encapsulation processing on the response packet, and sends the encapsulated response packet to the remote NVE device.
  • the encapsulated response message includes the VNI100, the IP address of the NVE device 2, the MAC address of the VM4, the MAC address of the VM1, and the response data.
  • the NVE device 2 receives the encapsulated response packet forwarded by the NVE device 5, and performs decapsulation to restore the response packet, according to the MAC address of the VM1 included in the response packet.
  • the LAN 10 forwards the response message to VM1 to implement message transmission from VM4 to VM1.
  • the data interaction process between the virtual machines provided by the two servers in the NVo3 network is implemented by using the solution provided by the embodiment of the present invention.
  • the source address and the destination address in the packet are all explained by using the MAC address as an example.
  • the source address and the destination address may also be embodied as The IP address is not specifically limited in this embodiment of the present invention.
  • the forwarding device should be a router. For the specific packet transmission scheme, refer to the above description, and details are not described herein.
  • the two servers belong to the same data center.
  • server1 belongs to data center 1
  • server2 belongs to data center 2
  • NVE device 1 When the request packet is encapsulated, the identifier of the data center 2 can be encapsulated into the request packet, so that the NVE device 1 can encapsulate the processed request by using the identifier of the data center 2 and the identifier of the NVE device 4.
  • the packet is sent to the NVE device 4 to implement packet forwarding across the data center.
  • the NVE device 1 can obtain the identifier of the data center 2 from the data center router, which is not specifically limited in this embodiment of the present invention.
  • the embodiment of the present invention further provides a message transmission device.
  • the device may include:
  • the first receiving unit 401 is configured to receive a first packet, where the first packet includes a first source address and a first destination address; the first source address is an address of the first virtual machine, and the first destination The address is an address of the second virtual machine, the first virtual machine is virtualized by the first physical server, and the second virtual machine is virtualized by the second physical server;
  • the first obtaining unit 402 is configured to receive, by the first receiving unit, the first packet, to obtain a multiple active access configuration information list, where the multiple active access configuration information list includes a first entry and a second
  • the first entry includes the identifier of the first multi-live group, the virtual network instance, and the identifier of the first virtual network edge NVE device, where the second entry includes the identifier of the second multi-live group, the virtual a network instance and an identifier of at least two NVE devices belonging to the second multi-live group;
  • a second obtaining unit 403 configured to obtain, according to the first entry and the identifier of the first NVE device, the virtual network from the multiple active access configuration information list obtained by the first obtaining unit Instance
  • a searching unit 404 configured to obtain, by the first obtaining unit, the multiple access configuration information column In the table, searching for at least one multi-live group corresponding to the virtual network instance, the at least one multi-live group including the second multi-live group, from the at least two NVEs belonging to the second multi-live group Selecting a second NVE device from the device;
  • the encapsulating unit 405 is configured to encapsulate the first packet by using the identifier of the second NVE device and the virtual network instance;
  • the first sending unit 406 is configured to send the first packet after the encapsulation unit is encapsulated to the second NVE device.
  • the message transmission device of the embodiment of the present invention can be integrated into the NVE device of the NVo3 network, and is applied to the method embodiment shown in FIG. 3 to implement the function of the first NVE device.
  • the packet transmission device can use the locally saved multiple access configuration information list to find the second NVE and forward the packet to the second NVE to implement virtualization provided by two servers in the NVo3 network.
  • the data interaction process between machines especially the implementation scheme of message transmission involved in the interaction process.
  • the first obtaining unit has a list for receiving the multiple access configuration information from the controller.
  • the multiple access information configuration list obtained by the first obtaining unit is described in another next-generation YANG language, where the first entry carries the identifier of the first multiple live group in a tree structure.
  • the identifier of the virtual network instance and the first NVE device, where the identifier of the first multiple live group is a root node, and the identifier of the first NVE device and the virtual network instance are child nodes.
  • the multiple access configuration information list further includes a third entry, where the third entry includes an identifier of the third multi-live group, the virtual network instance, and the third multi-live group An identifier of at least two NVE devices, the at least one multi-live group including the second multi-live group and the third multi-live group;
  • the first sending unit is specifically configured to determine whether the second entry further includes an address of the second virtual machine; and when the second entry further includes an address of the second virtual machine, the search corresponds to The second multi-live group of the address of the second virtual machine sends the encapsulated first packet to the second NVE device.
  • the first sending unit is further configured to: when the second entry does not include an address of the second virtual machine, to at least two NVE devices belonging to the second multi-live group and belong to The at least two NVE devices of the third multi-live group send the encapsulated first packet.
  • the first entry includes an identifier of the first multiple active group, the virtual network instance, an identifier of the first NVE device, and an address of the first virtual machine, where the apparatus further includes :
  • a second receiving unit configured to receive a second packet sent by the fourth NVE device, where the second packet includes an identifier of the first NVE device, the virtual network instance, a second source address, and a second destination address
  • the second source address is an address of the third virtual machine
  • the second destination address is an address of the first virtual machine
  • the third virtual machine is virtualized by a third physical server
  • the unpacking unit is configured to perform decapsulation of the second packet to obtain a second packet after the decapsulation, and the second packet after the decapsulation includes the second source address and the second destination address;
  • a determining unit configured to determine whether the second destination address is an address of the first virtual machine in the first entry
  • a second sending unit configured to determine, by the determining unit, that the second destination address is an address of the first virtual machine in the first entry, and send the unpacking according to the second destination address After the second message.
  • the device further includes:
  • a third receiving unit configured to receive a third packet sent by the fifth NVE device, where the third packet includes an identifier of the first NVE device, the virtual network instance, a third source address, and a third destination address
  • the third source address is an address of the fourth virtual machine
  • the third destination address is an address of the first virtual machine
  • the fourth virtual machine is obtained by virtualization by a fourth physical server
  • a second unpacking unit configured to perform decapsulation of the third packet received by the third receiving unit, to obtain a third packet after the decapsulation, and the third packet after the decapsulation includes the a third source address and the third destination address;
  • a third sending unit configured to send the third packet after the decapsulation according to the third destination address.
  • the message transmission apparatus provided in the foregoing embodiment is only illustrated by the division of the foregoing functional modules when performing packet transmission.
  • the function allocation may be completed by different functional modules as needed.
  • the internal structure of the device is divided into different functional modules to perform all or part of the functions described above.
  • the embodiment of the present invention further provides a message transmission device 500.
  • the device may include: a processor 501, a memory 502, and a network interface. 503. Bus system 504.
  • the bus system 504 is configured to connect the processor 501, the memory 502, and the network interface 503.
  • the network interface 503 is configured to implement a communication connection between the device and other network devices.
  • the network interface 503 can be implemented by an optical transceiver, an electrical transceiver, a wireless transceiver, or any combination thereof.
  • the optical transceiver can be a small form-factor pluggable transceiver (sFP) transceiver (English: transceiver), and the enhanced small form-factor pluggable (English: enhanced small form-factor pluggable, Abbreviation: SFP+) Transceiver or 10 Gigabit small form-factor pluggable (XFP) transceiver.
  • the electrical transceiver can be an Ethernet (Ethernet) network interface controller (English: network interface controller, abbreviation: NIC).
  • the wireless transceiver can be a wireless network interface controller (English: wireless network interface controller, abbreviation: WNIC).
  • the memory 502 is configured to store program instructions and data.
  • the memory 502 may include a volatile memory (English: volatile memory), such as a random access memory (English: random-access memory, abbreviation: RAM); the memory may also include a non-volatile memory (English: non-volatile) Memory), such as flash memory (English: flash memory), hard disk (English: hard disk drive, abbreviated: HDD) or solid state drive (English: solid-state drive, abbreviation: SSD); memory can also include the above types of memory The combination.
  • a volatile memory such as a random access memory (English: random-access memory, abbreviation: RAM)
  • non-volatile memory English: non-volatile) Memory
  • flash memory English: flash memory
  • hard disk English: hard disk drive, abbreviated: HDD
  • SSD solid state drive
  • the processor 501 is a central processing unit (English: central processing unit, abbreviated as CPU), and may also be a combination of a CPU and a hardware chip.
  • the above hardware chip may be a combination of one or more of the following: an application-specific integrated circuit (ASIC: ASIC), a field-programmable gate array (English: field-programmable gate array, abbreviation: FPGA) , Complex programmable logic device (English: complex programmable logic device, abbreviation: CPLD) and network processor (English: network processor, abbreviation: NP).
  • the processor 501 is configured to read program instructions and data stored in the memory 502, and perform the following operations:
  • the processor receives the first packet by using the network interface, where the first packet includes a first source address and a first destination address; the first source address is an address of the first virtual machine, and the first The destination address is an address of the second virtual machine, the first virtual machine is virtualized by the first physical server, and the second virtual machine is virtualized by the second physical server;
  • the processor obtains a multi-access configuration information list, where the multi-access configuration information list includes a first entry and a second entry, where the first entry includes the identifier of the first multiple active group, and the virtual network An instance and an identifier of the first NVE device, where the second entry includes an identifier of the second multi-live group, the virtual network instance, and an identifier of at least two NVE devices belonging to the second multi-live group;
  • the processor obtains the virtual network instance according to the first entry and the identifier of the first NVE device;
  • the processor searches for at least one multi-live group corresponding to the virtual network instance, the at least one multi-live group includes the second multi-live group, from the at least two belonging to the second multi-live group Selecting a second NVE device from the NVE device;
  • the processor encapsulates the first packet by using the identifier of the second NVE device and the virtual network instance, and sends the encapsulated first packet to the second NVE device by using the network interface.
  • the packet transmission device in the embodiment of the present invention may be embodied as an NVE device in an NVo3 network.
  • the packet transmission device can use the locally saved multiple access configuration information list to find the second NVE and forward the packet to the second NVE to implement virtualization provided by the two servers in the NVo3 network.
  • the data interaction process between machines especially the implementation scheme of message transmission involved in the interaction process.
  • the obtaining, by the processor, the multi-access configuration information list includes: the processor receiving the multi-access configuration information list from the controller.
  • the multiple active access information configuration list obtained by the processor is described in another next-generation YANG language, where the first entry uses a tree structure to carry the identifier of the first multiple live group.
  • the multiple access configuration information list further includes a third entry, where the third entry includes an identifier of the third multi-live group, the virtual network instance, and the third multi-live group An identifier of the at least one NVE device, the at least one multi-live group includes the second multi-live group and the third multi-live group; then the processor sends the encapsulated first to the second NVE device
  • the message includes:
  • the processor determines whether the second entry further includes an address of the second virtual machine
  • the processor searches for the second multiple active group corresponding to an address of the second virtual machine, and sends the second multiple live group to the second NVE device The encapsulated first message.
  • the processor belongs to at least two NVE devices belonging to the second multi-live group and belongs to the third multi-live group
  • the at least two NVE devices send the encapsulated first message.
  • the first entry includes an identifier of the first multiple active group, the virtual network instance, an identifier of the first NVE device, and an address of the first virtual machine, where the processor further Do the following:
  • a second packet sent by the fourth NVE device where the second packet includes an identifier of the first NVE device, the virtual network instance, a second source address, and a second destination address;
  • the second source address is an address of the third virtual machine
  • the second destination address is an address of the first virtual machine
  • the third virtual machine is virtualized by a third physical server;
  • the processor decapsulates the second packet to obtain a second packet after the decapsulation, and the second packet after the decapsulation includes the second source address and the second destination address;
  • the processor sends the unpacked first through the network interface according to the second destination address. Two messages.
  • the processor may also perform the following operations:
  • the third packet sent by the fifth NVE device, where the third packet includes an identifier of the first NVE device, the virtual network instance, a third source address, and a third a destination address;
  • the third source address is an address of the fourth virtual machine, the third destination address is an address of the first virtual machine, and the fourth virtual machine is obtained by virtualization by a fourth physical server;
  • the processor decapsulates the third packet to obtain a third packet after the decapsulation, and the third packet after the decapsulation includes the third source address and the third destination address;

Landscapes

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

Abstract

本发明实施例提供一种报文传输方法及装置,方法包括:第一NVE设备接收第一报文,第一报文包括第一源地址和第一目的地址;第一NVE设备获得多活接入配置信息列表,列表包括第一表项和第二表项,第一表项包括第一多活组的标识、VNI和第一NVE设备的标识,第二表项包括第二多活组的标识、VNI和属于第二多活组的至少两个NVE设备的标识;第一NVE设备根据第一NVE设备的标识获得VNI;并查找对应于VNI的至少一个多活组,至少一个多活组包括第二多活组,从属于第二多活组的至少两个NVE设备中选取第二NVE设备;第一NVE设备利用第二NVE设备的标识和VNI封装第一报文,发送封装后的第一报文。实现报文的正确传输。

Description

一种报文传输方法及装置
本申请要求于2014年10月22日提交中国专利局、申请号为CN 201410568124.X、发明名称为“一种报文传输方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明涉及通信技术领域,具体涉及一种报文传输方法及装置。
背景技术
覆盖网络(英文:overlay)技术是一种在现有网络架构上进行网络叠加的虚拟化技术,举例来说,可在IP网络之上叠加overlay形成层3网络虚拟化(英文:Network Virtualization over Layer 3,简称:NVo3)。具体地,overlay可以为集中式网络,例如,虚拟可扩展局域网(英文:Virtual Extensible Local Area Network,简称:VXLAN)、采用通用路由封装的虚拟化(英文:Network Virtual using Generic Routing Encapsulation,简称:NVGRE)等。
链路聚合(英文:link aggregation)技术可以提高数据传输的带宽和健壮性。链路聚合技术是将两个或更多网络连接聚合成一个具有更高带宽的逻辑链路。
为了进一步提高网络性能,可以将overlay技术和链路聚合技术相结合,如此结合之后,随之而来的一个问题便是,报文如何在结合有这两种技术的网络中正确传输。
发明内容
本发明实施例的报文传输方法及装置,提供了一种结合有overlay技术和链路聚合技术的网络中,报文传输的实现方案。
为此,本发明实施例提供如下技术方案:
第一方面,提供了一种报文传输方法,所述方法包括:
第一虚拟网络边缘NVE设备接收第一报文,所述第一报文包括第一源地址 和第一目的地址;所述第一源地址为第一虚拟机的地址,所述第一目的地址为第二虚拟机的地址,所述第一虚拟机由第一物理服务器虚拟化,所述第二虚拟机由第二物理服务器虚拟化;
所述第一NVE设备获得多活接入配置信息列表,所述多活接入配置信息列表包括第一表项和第二表项,所述第一表项包括第一多活组的标识、虚拟网络实例和所述第一NVE设备的标识,所述第二表项包括第二多活组的标识、所述虚拟网络实例和属于所述第二多活组的至少两个NVE设备的标识;
所述第一NVE设备根据所述第一表项和所述第一NVE设备的标识,获得所述虚拟网络实例;
所述第一NVE设备查找对应于所述虚拟网络实例的至少一个多活组,所述至少一个多活组包括所述第二多活组,从所述属于所述第二多活组的至少两个NVE设备中选取第二NVE设备;
所述第一NVE设备利用所述第二NVE设备的标识和所述虚拟网络实例封装所述第一报文,向所述第二NVE设备发送封装后的第一报文。
结合第一方面,在第一方面的第一种可能的实现方式中,所述第一NVE设备获得多活接入配置信息列表包括:所述第一NVE设备接收来自控制器的所述多活接入配置信息列表。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述多活接入信息配置列表以另一个下一代YANG语言描述,所述第一表项采用树状结构承载所述第一多活组的标识、所述虚拟网络实例和所述第一NVE设备的标识,其中,所述第一多活组的标识为根节点,所述第一NVE设备的标识和所述虚拟网络实例为子节点。
结合第一方面,第一方面的第一种和第二种可能的实现方式中的任意一个,在第一方面的第三种可能的实现方式中,所述多活接入配置信息列表还包括第三表项,所述第三表项包括第三多活组的标识、所述虚拟网络实例和属于所述第三多活组的至少两个NVE设备的标识,所述至少一个多活组包括所述第二多活组和所述第三多活组;
所述向所述第二NVE设备发送封装后的第一报文包括:
所述第一NVE设备判断所述第二表项是否还包括第二虚拟机的地址;
如果所述第二表项还包括所述第二虚拟机的地址,所述第一NVE设备查找 对应于所述第二虚拟机的地址的所述第二多活组,向所述第二NVE设备发送所述封装后的第一报文。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,如果所述第二表项不包括所述第二虚拟机的地址,所述第一NVE设备向属于所述第二多活组的至少两个NVE设备和属于所述第三多活组的至少两个NVE设备发送所述封装后的第一报文。
结合第一方面,第一方面的第一种至第四种可能的实现方式中的任意一个,在第一方面的第五种可能的实现方式中,所述第一表项包括所述第一多活组的标识、所述虚拟网络实例、所述第一NVE设备的标识和所述第一虚拟机的地址,所述方法还包括:
所述第一NVE设备接收第四NVE设备发送的第二报文,所述第二报文包括所述第一NVE设备的标识、所述虚拟网络实例、第二源地址和第二目的地址;所述第二源地址为第三虚拟机的地址,所述第二目的地址为所述第一虚拟机的地址,所述第三虚拟机由第三物理服务器虚拟化;
所述第一NVE设备对所述第二报文进行拆封装,获得拆封装后的第二报文,所述拆封装后的第二报文包括所述第二源地址和所述第二目的地址;
所述第一NVE设备判断所述第二目的地址是否为所述第一表项中的所述第一虚拟机的地址;
如果所述第二目的地址为所述第一表项中的所述第一虚拟机的地址,所述第一NVE设备根据所述第二目的地址,发送所述拆封装后的第二报文。
第二方面,提供了一种报文传输装置,所述装置包括:
第一接收单元,用于接收第一报文,所述第一报文包括第一源地址和第一目的地址;所述第一源地址为第一虚拟机的地址,所述第一目的地址为第二虚拟机的地址,所述第一虚拟机由第一物理服务器虚拟化,所述第二虚拟机由第二物理服务器虚拟化;
第一获得单元,用于在所述第一接收单元接收到所述第一报文,获得多活接入配置信息列表,所述多活接入配置信息列表包括第一表项和第二表项,所述第一表项包括第一多活组的标识、虚拟网络实例和第一虚拟网络边缘NVE设备的标识,所述第二表项包括第二多活组的标识、所述虚拟网络实例和属于所述第二多活组的至少两个NVE设备的标识;
第二获得单元,用于从所述第一获得单元获得的所述多活接入配置信息列表中,根据所述第一表项和所述第一NVE设备的标识,获得所述虚拟网络实例;
查找单元,用于从所述第一获得单元获得的所述多活接入配置信息列表中,查找对应于所述虚拟网络实例的至少一个多活组,所述至少一个多活组包括所述第二多活组,从所述属于所述第二多活组的至少两个NVE设备中选取第二NVE设备;
封装单元,用于利用所述第二NVE设备的标识和所述虚拟网络实例封装所述第一报文;
第一发送单元,用于向所述第二NVE设备发送所述封装单元封装后的第一报文。
结合第二方面,在第二方面的第一种可能的实现方式中,所述第一获得单元,具有用于接收来自控制器的所述多活接入配置信息列表。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述第一获得单元获得的所述多活接入信息配置列表以另一个下一代YANG语言描述,所述第一表项采用树状结构承载所述第一多活组的标识、所述虚拟网络实例和所述第一NVE设备的标识,其中,所述第一多活组的标识为根节点,所述第一NVE设备的标识和所述虚拟网络实例为子节点。
结合第二方面,第二方面的第一种和第二种可能的实现方式中的任意一个,在第二方面的第三种可能的实现方式中,所述多活接入配置信息列表还包括第三表项,所述第三表项包括第三多活组的标识、所述虚拟网络实例和属于所述第三多活组的至少两个NVE设备的标识,所述至少一个多活组包括所述第二多活组和所述第三多活组;
所述第一发送单元,具体用于判断所述第二表项是否还包括第二虚拟机的地址;并在所述第二表项还包括所述第二虚拟机的地址时,查找对应于所述第二虚拟机的地址的所述第二多活组,向所述第二NVE设备发送所述封装后的第一报文。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述第一发送单元,还用于在所述第二表项不包括所述第二虚拟机的地址时,向属于所述第二多活组的至少两个NVE设备和属于所述第三多活组的至少两个NVE设备发送所述封装后的第一报文。
结合第二方面,第二方面的第一种至第四种可能的实现方式中的任意一个,在第二方面的第五种可能的实现方式中,所述第一表项包括所述第一多活组的标识、所述虚拟网络实例、所述第一NVE设备的标识和所述第一虚拟机的地址,所述装置还包括:
第二接收单元,用于接收第四NVE设备发送的第二报文,所述第二报文包括所述第一NVE设备的标识、所述虚拟网络实例、第二源地址和第二目的地址;所述第二源地址为第三虚拟机的地址,所述第二目的地址为所述第一虚拟机的地址,所述第三虚拟机由第三物理服务器虚拟化;
拆封装单元,用于对所述第二报文进行拆封装,获得拆封装后的第二报文,所述拆封装后的第二报文包括所述第二源地址和所述第二目的地址;
判断单元,用于判断所述第二目的地址是否为所述第一表项中的所述第一虚拟机的地址;
第二发送单元,用于在所述判断单元判定所述第二目的地址为所述第一表项中的所述第一虚拟机的地址,根据所述第二目的地址,发送所述拆封装后的第二报文。
第三方面,提供了一种报文传输设备,所述设备包括:处理器和存储器;
所述存储器,用于存储程序指令和数据;
所述处理器,用于读取所述存储器中存储的程序指令和数据,执行以下操作:
所述处理器接收第一报文,所述第一报文包括第一源地址和第一目的地址;所述第一源地址为第一虚拟机的地址,所述第一目的地址为第二虚拟机的地址,所述第一虚拟机由第一物理服务器虚拟化,所述第二虚拟机由第二物理服务器虚拟化;
所述处理器获得多活接入配置信息列表,所述多活接入配置信息列表包括第一表项和第二表项,所述第一表项包括第一多活组的标识、虚拟网络实例和所述第一虚拟网络边缘NVE设备的标识,所述第二表项包括第二多活组的标识、所述虚拟网络实例和属于所述第二多活组的至少两个NVE设备的标识;
所述处理器根据所述第一表项和所述第一NVE设备的标识,获得所述虚拟网络实例;
所述处理器查找对应于所述虚拟网络实例的至少一个多活组,所述至少一 个多活组包括所述第二多活组,从所述属于所述第二多活组的至少两个NVE设备中选取第二NVE设备;
所述处理器利用所述第二NVE设备的标识和所述虚拟网络实例封装所述第一报文,向所述第二NVE设备发送封装后的第一报文。
结合第三方面,在第三方面的第一种可能的实现方式中,所述处理器获得多活接入配置信息列表包括:所述处理器接收来自控制器的所述多活接入配置信息列表。
结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述处理器获得的所述多活接入信息配置列表以另一个下一代YANG语言描述,所述第一表项采用树状结构承载所述第一多活组的标识、所述虚拟网络实例和所述第一NVE设备的标识,其中,所述第一多活组的标识为根节点,所述第一NVE设备的标识和所述虚拟网络实例为子节点。
结合第三方面,第三方面的第一种和第二种可能的实现方式中的任意一个,在第三方面的第三种可能的实现方式中,所述多活接入配置信息列表还包括第三表项,所述第三表项包括第三多活组的标识、所述虚拟网络实例和属于所述第三多活组的至少两个NVE设备的标识,所述至少一个多活组包括所述第二多活组和所述第三多活组;
所述处理器向所述第二NVE设备发送封装后的第一报文包括:
所述处理器判断所述第二表项是否还包括第二虚拟机的地址;
如果所述第二表项还包括所述第二虚拟机的地址,所述处理器查找对应于所述第二虚拟机的地址的所述第二多活组,向所述第二NVE设备发送所述封装后的第一报文。
结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,如果所述第二表项不包括所述第二虚拟机的地址,所述处理器向属于所述第二多活组的至少两个NVE设备和属于所述第三多活组的至少两个NVE设备发送所述封装后的第一报文。
结合第三方面,第三方面的第一种至第三种可能的实现方式中的任意一个,在第三方面的第四种可能的实现方式中,所述第一表项包括所述第一多活组的标识、所述虚拟网络实例、所述第一NVE设备的标识和所述第一虚拟机的地址,所述处理器还执行以下操作:
所述处理器接收第四NVE设备发送的第二报文,所述第二报文包括所述第一NVE设备的标识、所述虚拟网络实例、第二源地址和第二目的地址;所述第二源地址为第三虚拟机的地址,所述第二目的地址为所述第一虚拟机的地址,所述第三虚拟机由第三物理服务器虚拟化;
所述处理器对所述第二报文进行拆封装,获得拆封装后的第二报文,所述拆封装后的第二报文包括所述第二源地址和所述第二目的地址;
所述处理器判断所述第二目的地址是否为所述第一表项中的所述第一虚拟机的地址;
如果所述第二目的地址为所述第一表项中的所述第一虚拟机的地址,所述处理器根据所述第二目的地址,发送所述拆封装后的第二报文。
本发明实施例的报文传输方法及装置,在进行多活接入配置时,可将多活接入配置信息列表下发至NVo3网络中的各个NVE设备,当需要第一NVE设备发送报文时,第一NVE设备可以根据保存的多活接入配置信息列表获得VNI,并根据VNI查找到第二NVE设备,进而对报文进行封装处理后,正确转发至第二NVE设备。对应地,当需要第一NVE设备接收报文时,第一NVE设备对接收的报文进行拆封装处理,还原出报文中包括的目的地址,进而将报文转发至目的地址对应的VM。如此过程,即可实现报文的正确传输。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。
图1是本发明实施例中NVo3网络的网络示意图;
图2是本发明实施例中多活接入配置信息列表的树状结构示意图;
图3是本发明实施例中报文传输方法实施例1的流程图;
图4是本发明实施例中报文传输方法实施例2的流程图;
图5是本发明实施例中报文传输方法实施例3的流程图;
图6是本发明实施例中报文传输装置的示意图;
图7是本发明实施例中报文传输设备的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。
在介绍本发明实施例技术方案之前,先对本发明实施例的具体应用场景进行解释说明。
为了解决业务需求与网络处理能力之间的冲突,可以在传统网络的基础上搭建overlay,以提高网络的处理能力。举例来说,可以在传统IP网络的基础上搭建overlay,形成NVo3网络。与传统IP网络的处理能力相比,NVo3网络增加了对overlay层数据报文的传输,即,提高网络的处理能力可体现在增加了网络支持的数据报文格式;另外,NVo3网络还提供了大量可供租户(英文:tenant)使用的虚拟网络边缘(英文:Network Virtualization Edge,简称:NVE)设备,即,提高网络的处理能力可体现在增加了网络的接入节点数。目前,NVo3的overlay可体现为在IP网络的基础上搭建的集中式虚拟化网络,如,VXLAN或NVGRE等。举例来说,本发明实施例中的NVE设备可以是,位于网络边缘,可实现二层和/或三层虚拟网络功能的网络实体,具体可参见请求注解(英文:Request for Comments,简称:RFC)7365中的描述,此处不做详述。
为了进一步优化NVo3网络,提高NVo3网络的数据传输性能,发明人在研发过程中发现,可以结合多活接入技术,实现虚拟机(英文:virtual machine,简称:VM)到NVo3网络的NVE设备的多活接入,从而提高NVo3网络的数据传输带宽和健壮性。本发明实施例即是为此而提出,下面分别对多活接入NVo3网络过程中涉及的多活接入配置方式、配置完成后的数据传输方式进行解释说明。
参见图1所示网络示意图,NVE设备1、NVE设备2、NVE设备3、NVE设备4、NVE设备5均为NVo3网络的边缘设备,VM1、VM2、VM3为物理服务器server1进行操作***虚拟化(英文:operating system–level virtualization)获得的虚拟机,VM4为物理服务器server2进行操作***虚拟化获得的虚拟机,其中,server1与server2为数据中心(英文:data center,简称:DC)的服务器。 server1可通过局域网(英文:local area network,简称:LAN)设备LAN10连接NVo3网络,server2可通过LAN20连接NVo3网络。其中,LAN10和LAN20可以为物理设备,也可以为虚拟设备。可选地,局域网设备可以为交换机,也可以为路由器。
举例来说,NVE设备1与LAN10之间的链路、NVE设备2与LAN10之间的链路、NVE设备3与LAN10之间的链路进行了链路聚合,如,采用多机箱链路聚合(英文:Multi-Chassis Link Aggregation Group,简称:MC-LAG)技术将上述三条链路进行链接捆绑,则NVE设备1、NVE设备2和NVE设备3属于一个多活边缘设备组(英文:active-active-edge device group)。该多活边缘设备组为第一多活组,NVE设备1、NVE设备2、NVE设备3均为第一多活组的多活成员。同样地,基于链路聚合技术形成的第二多活组的多活成员可以为NVE设备4和NVE设备5。
关于多活接入,可以理解为,在一次报文传输过程中,VM可以连接到多活组包括的多个多活成员中的任一个,以便进行报文的发送或接收。举例来说,当server1提供的VM1需要连接NVo3网络时,VM1可以连接到NVE设备1、NVE设备2和NVE设备3中的任一个。
另外,结合实际应用需求,租户可以将VM1、VM2和VM3划分到第一用户组,并将LAN10的虚拟局域网(英文:virtual local area network,简称:VLAN)标识VLAN10分配给所述第一用户组,即,VM1、VM2、VM3可通过LAN10的VLAN10向LAN10发送数据报文,LAN10亦可通过VLAN10向NVE设备转发所述数据报文。同样地,租户还可将VM4划分到第二用户组,并将LAN20的VLAN10分配给第二用户组。
在实际应用中,第一用户组可多活接入第一多活组,第二用户组可多活接入第二多活组。下面以第一用户组可多活接入第一多活组为例,对本发明实施例的多活配置方式进行解释说明。
(1)生成多活接入配置信息列表,列表中保存NVo3网络中的每个NVE设备的配置信息。
当NVE设备作为数据发送方时,配置信息至少可包括:多活组的标识、虚拟网络实例(英文:Virtual Network Instance,简称:VNI)和属于所述多活组的至少两个NVE设备的标识。当NVE设备作为数据接收方时,配置信息至少 可包括:多活组的标识、VNI、属于所述多活组的至少两个NVE设备的标识和VM的地址。当然,本发明实施例对网络中的NVE设备可不做区分处理,即,不论NVE设备是数据发送方,还是数据接收方,NVE设备的配置信息均可体现为:多活组的标识、VNI、属于所述多活组的至少两个NVE设备的标识和VM的地址。作为一种可实现方式,可以建立上述配置信息之间的对应关系,即,多活接入配置信息列表以表项方式保存每个NVE设备的配置信息。
举例来说,从NVE设备的角度考虑,本发明实施例中的VNI可以是overlay的一个具体实例,具体可参见标准RFC7365中所做介绍,此处不做详述。
举例来说,VM的标识可体现为VM的名称和/或VM的地址,其中,VM的地址可以为VM的MAC地址或者VM的IP地址。
举例来说,NVE设备的标识可体现为NVE设备的名称和/或NVE设备的地址,其中,NVE设备的地址可以为NVE设备的IP地址,举例来说,IP地址可以为IPv4地址或IPv6地址。
举例来说,多活组的标识可以为多活组的编号,如,第一多活组可以用编号1表示、第二多活组可以用编号2表示;或者,考虑到用户组中的VM是通过配置的LAN接入NVE设备,故多活组的标识还可以为VM接入本多活组时使用的LAN标识,如,第一多活组可以用LAN10表示、第二多活组可以用LAN20表示。
举例来说,VNI主要用于供NVE设备识别具有数据传输需求的多活组,VNI可以体现为预设编号,如VIN100。可选地,识别具有数据传输需求的多活组可体现为:如果NVE设备1的配置信息中虚拟网络实例为VNI100,NVE设备4的配置信息中虚拟网络实例也为VNI100,如此,就可以确定NVE设备1所属第一多活组与NVE设备4所属第二多活组之间可以进行数据传输。
需要说明的是,本发明实施例对NVE设备的标识、VNI、多活组的标识的具体表现形式可不做具体限定。另外,对于VNI所起的作用,此处暂不做详述,具体可参见下文在图3所示示例中的解释说明。
结合上文所做介绍,以图1所示网络示意图为例,多活接入配置信息列表中至少可包括NVE设备1、NVE设备2、NVE设备3、NVE设备4、NVE设备5对应的表项。举例来说,各NVE设备对应的表项可体现如下:
NVE设备1对应的表项可包括:LAN10、VNI100、NVE设备1的IP地址、VM1~VM3的MAC地址,
NVE设备2对应的表项可包括:LAN10、VNI100、NVE设备2的IP地址、VM1~VM3的MAC地址,
NVE设备3对应的表项可包括:LAN10、VNI100、NVE设备3的IP地址、VM1~VM3的MAC地址,
NVE设备4对应的表项可包括:LAN20、VNI100、NVE设备4的IP地址、VM4的MAC地址,
NVE设备5对应的表项可包括:LAN20、VNI100、NVE设备5的IP地址、VM4的MAC地址。
可选地,本发明实施例并不对生成多活接入配置列表的方式做具体限定,作为一种示例,可通过另一个下一代(英文:Yet Another Next Generation,简称:YANG)语言来描述多活接入信息配置列表。对应于此,上述表项中的配置信息可体现为图2所示的树状结构,图中通过不同缩进深度来表示树状结构中根节点与子节点间的层属关系。由图中所示可知,多活组的标识为根节点,VM的列表、NVE设备的列表和VNI为子节点。其中,VM的列表中包括的是能多活接入本多活组的VM的地址,NVE设备的列表中包括的是本多活组所包括的多活成员的标识。可选地,为了进行NVE设备内部水平分割以及端口负载均衡,NVE设备的列表中还可进一步包括接口(英文:interface)号。
(2)将上述生成的多活接入配置信息列表发送至NVo3网络中的每个NVE设备。
作为一种可实现方式,上述多活接入配置信息列表可以是NVo3网络中的任一设备生成并以广播方式发送至各NVE设备;或者,考虑到本发明实施例中的overlay为集中式虚拟化网络,所述设备生成多活接入配置信息列表后,可将列表发送至集中式网络中的控制器(英文:controller),进而由Controller以广播方式将列表推送至各NVE设备;再者,为了最大程度的提高本发明实施例进行多活配置的效率,还可由Controller生成多活接入配置信息列表并下发至各NVE设备。本发明实施例对列表的生成、下发等过程和方式可不做具体限定,只要使NVo3网络中的每个NVE设备都保存有多活接入配置信息列表即可。
对应地,接收到列表的NVE设备通过列表中的多活组标识至少可获得如下 信息,从而完成多活接入配置过程:
(a)确定本NVE设备为多活设备,还是单活设备。如果列表中不存在与本NVE设备具有相同多活组标识的其它NVE设备,则本NVE设备为单活设备;如果列表中存在与本NVE设备具有相同多活组标识的其它NVE设备,则本NVE设备为多活设备。
需要说明的是,单活设备是相对多活设备的一个概念,可以理解为,单活NVE设备与交换机相连的链路未与其它链路进行链路捆绑,即,VM通过交换机只能唯一接入该单活NVE设备。
(b)确定多活组。可以将具有相同多活组标识的NVE设备确定为一个多活组,如此,NVE设备就可以知晓网络中存在哪些多活组以及每个多活组包括的多活成员。
在实际应用中,单活设备也可以视为是一个多活组,只不过该多活组只包括一个NVE设备,本发明实施例对此可不做具体限定。
由上述多活接入配置过程可知,本发明实施例在进行多活接入配置时,无需NVE设备之间进行控制信令交互,可降低配置过程对网络资源的消耗,简便快捷的实现多活接入配置。
本发明实施例提供的报文传输方案,主要适应于不同服务器提供的虚拟机之间有报文传输需求场景,对于同一服务器提供的虚拟机之间的交互,可由转发设备进行报文转发,如,VM1与VM2之间交互的数据报文可通过LAN10进行转发。下面结合具体示例对本发明实施例的报文传输方法进行解释说明。
参见图3,示出了本发明实施例报文传输方法实施例1的流程图,可包括:
101,第一虚拟网络边缘NVE设备设备接收第一报文,所述第一报文包括第一源地址和第一目的地址;所述第一源地址为第一虚拟机的地址,所述第一目的地址为第二虚拟机的地址,所述第一虚拟机由第一物理服务器虚拟化,所述第二虚拟机由第二物理服务器虚拟化。
本实施例1示出的是NVE设备发送报文的实现方式,下面以图1中的VM1向VM4发送报文的场景为例,对本发明实施例NVE设备的报文发送过程进行解释说明。本示例中转发设备可体现为交换机。
在有数据传输需求时,VM1可通过预配置的VLAN10向LAN10发送第一报文,第一报文中包括第一源地址、第一目的地址和第一载荷,其中,第一源地址可为VM1的地址,第一目的地址可为VM4的地址。交换机中保存有LAN与NVE设备的对应关系、以及与NVE设备相连的链路的聚合信息,因此,在LAN10接收到经由VLAN10传送来的第一报文后,LAN10即可从第一多活组中选择一个NVE设备,并通过VLAN10将第一报文转发至该选择出的NVE设备。举例来说,LAN10可以根据NVE设备1~NVE设备3的当前负载情况,通过负载均衡技术从中选取一个NVE设备。
例如,LAN10选择出的NVE设备为NVE设备1,即,上文中的第一NVE设备为NVE设备1,则本实施例1示出的即是NVE设备1进行报文发送的处理流程。
102,所述第一NVE设备获得多活接入配置信息列表,所述多活接入配置信息列表包括第一表项和第二表项,所述第一表项包括第一多活组的标识、虚拟网络实例和所述第一NVE设备的标识,所述第二表项包括第二多活组的标识、所述虚拟网络实例和属于所述第二多活组的至少两个NVE设备的标识。
103,所述第一NVE设备根据所述第一表项和所述第一NVE设备的标识,获得所述虚拟网络实例。
104,所述第一NVE设备查找对应于所述虚拟网络实例的至少一个多活组,所述至少一个多活组包括所述第二多活组,从所述属于所述第二多活组的至少两个NVE设备中选取第二NVE设备。
105,所述第一NVE设备利用所述第二NVE设备的标识和所述虚拟网络实例封装所述第一报文,向所述第二NVE设备发送封装后的第一报文。
NVE设备1接收到LAN10转发的第一报文,便可获取NVE设备1本地保存的多活接入配置信息列表,做如下处理:
(1)NVE设备1读取列表中NVE设备1对应的表项,获取NVE设备1的标识所对应的虚拟网络实例VNI100。
(2)作为虚拟网络实例所起作用的一种体现,NVE设备1可以遍历列表中的表项,查找对应于VNI100的至少一个多活组,并从所述至少一个多活组包括的第二多活组中选取第二NVE设备。举例来说,选取的第二NVE设备为NVE设备4。
举例来说,第二NVE设备至少符合如下条件:第二NVE设备与第一NVE设备属于不同多活组,且第一目的地址对应的虚拟机可以接入第二NVE设备。对于本发明实施例查找第二NVE设备的方式,此处暂不详述,具体可参见下文介绍的三种场景。
需要说明的是,由表项包括的配置信息可知,VNI对应于多活组的标识,多活组的标识又唯一对应一个多活组,即,VNI与多活组之间亦为对应关系。
(3)NVE设备1利用VNI100和NVE设备4的地址封装第一报文,并向第二NVE设备发送封装后的第一报文,封装后的第一报文中包括VNI100、NVE设备4的地址、VM1的地址、VM4的地址和第一载荷。
相对现有技术依赖VLAN进行租户隔离的方案,本发明实施例利用VNI对第一报文进行封装,即可通过VLAN结合VNI的方式进行租户隔离,提高NVo3网络可以隔离的租户数量。这也是本发明实施例中虚拟网络实例所起作用的另一种体现。
结合实际应用,本发明实施例中选取第二NVE设备的过程可能存在以下三种场景:
场景一,NVE设备1保存的列表中存在第一目的地址。
如此,NVE设备1便可利用VNI00和VM4的地址查找到第二多活组,第二多活组中包括NVE设备4和NVE设备5,NVE设备1可以从二者中选择一个NVE设备作为第二NVE设备,如,NVE设备1选择NVE设备4作为第二NVE设备。举例来说,NVE设备1可以随机从二者中选择第二NVE设备,或者,NVE设备1还可通过负载均衡技术从二者中选择第二NVE设备,本发明实施例对NVE设备1选择第二NVE设备的方式可不做具体限定。
本场景中,不论第一多活组是否只与一个多活组进行数据交互,均可准确查找到第二多活组,并从第二多活组中选取第二NVE设备。
场景二,NVE设备1保存的列表中不存在第一目的地址,且第一多活组只可与一个多活组进行数据交互。
如此,NVE设备1便可利用VNI100查找到第一多活组和第二多活组,第一多活组中包括NVE设备1、NVE设备2和NVE设备3,第二多活组中包括NVE设备4和NVE设备5。为了避免出现路由环路,NVE设备1可以筛除第一多活组,保留第二多活组,同样地,NVE设备1可以从第二多活组中选取第 二NVE设备。
场景三,NVE设备1保存的列表中不存在第一目的地址,且第一多活组不只与一个多活组进行数据交互。
举例来说,在图1所示示意图的基础上,NVo3网络中还存在NVE设备6,若NVE设备6对应的表项包括:LAN30、VNI100和NVE设备6的IP地址,则NVE设备1可以利用VNI100查找到第一多活组、第二多活组和第三多活组。为了避免出现路由环路,NVE设备1可以筛除第一多活组,保留第二多活组和第三多活组,此时NVE设备1暂时不能选择出VM4接入的NVE设备,但可以确定VM4至少能接入这两个多活组中的一个,即,保留的两个多活组中包括第二NVE设备。
可以理解的,NVE设备1保存的列表中存在第一目的地址,即,列表中NVE设备4对应的表项和NVE设备5对应的表项中包括VM4的地址。需要说明的是,VM4的地址,可以是在生成列表时即存在于列表中,即NVE设备1通过静态配置的方式在本地保存VM4的地址。或者,VM4的地址,也可以是NVE设备1动态学习后保存于列表中,举例来说,NVE设备1可通过地址解析协议(英文:Address Resolution Protocol,简称:ARP)帧、反向地址转换协议(英文:Reverse Address Resolution Protocol,简称:RARP)帧、数据(英文:data)帧获取可接入NVE设备4和NVE设备5的VM4的地址。本发明实施例对NVE设备1获得VM4的地址的方式、NVE设备1动态学习的方式等可不做具体限定。
针对上述查找第二NVE设备的三个场景,本发明实施例提供了如下两种发送封装后的第一报文的方式:
方式一,如果NVE设备1在场景一或场景二下获取到NVE设备4,即,NVE设备1能明确VM4可接入的NVE设备,NVE设备1可向NVE设备4发送封装后的第一报文。对应于此,本方式中用于封装第一报文的第二NVE设备的标识可为NVE设备4的IP地址。
方式二,如果NVE设备1在场景三下获取到至少两个多活组,即,NVE设备1不能明确VM4可接入的NVE设备,NVE设备1可向属于所述至少两个多活组的NVE设备发送封装后的第一报文。具体地,NVE设备1可以利用组 播技术向所述属于所述至少两个多活组的NVE设备发送封装后的第一报文,对应于此,本方式中用于封装第一报文的第二NVE设备的标识可为组播组的IP地址;或者,NVE设备1也可以分别向每个所述属于所述至少两个多活组的NVE设备发送封装后的第一报文,对应于此,本方式中用于封装第一报文的第二NVE设备的标识可为对应NVE设备的IP地址。举例来说,组播组可以是由具有VNI100的所有NVE设备形成,如,由NVE设备1、NVE设备2、NVE设备3、NVE设备4、NVE设备5和NVE设备6形成;或者,组播组也可以是由NVE设备1保留的具有VNI100的所有NVE设备形成,如,由NVE设备4、NVE设备5和NVE设备6形成,本发明实施例对组播组包括的组播成员可不做具体限定。
综上,利用本发明实施例提供的方案,就实现了NVo3网络中两个服务器提供的虚拟机之间的数据交互过程,特别是交互过程中涉及的报文发送的实现方案。
参见图4,示出了本发明实施例报文传输方法实施例2的流程图,可包括:
201,所述第一NVE设备接收第四NVE设备发送的第二报文,所述第二报文包括所述第一NVE设备的标识、所述虚拟网络实例、第二源地址和第二目的地址;所述第二源地址为第三虚拟机的地址,所述第二目的地址为所述第一虚拟机的地址,所述第三虚拟机由第三物理服务器虚拟化。
第一NVE设备除了可按照图3所示流程向第二NVE设备发送报文之外,还可接收第四NVE设备发送来的报文,并正确将接收到的报文转发至对应的虚拟机。本实施例2示出的即是NVE设备接收报文的实现方式。
举例来说,根据实际通信需求,第四NVE设备可以是图3所示实施例中的第二NVE设备,或者,第四NVE设备也可以是除所述第二NVE设备之外的其它NVE设备,本发明实施例对此可不做具体限定。下面以图1中的VM1接收VM4发送的报文为例,对本发明实施例NVE设备的报文接收过程进行解释说明。举例来说,第一NVE设备可以为NVE设备1、第四NVE设备可以为NVE设备4、第一虚拟机可以为VM1、第三虚拟机可以为VM4。
在有数据传输需求时,VM4可通过预配置的VLAN10向LAN20发送报文,进而通过LAN20将所述报文转发至NVE设备4,NVE设备4则可按照图3所 示方案对所述报文进行封装处理,生成第二报文,第二报文中包括VNI100、NVE设备1的地址、VM4的地址、VM1的地址和第二载荷。同时,NVE设备4还可根据本地保存的多活接入配置信息列表(列表中不存在VM1的地址),利用NVI100查找到NVE设备1~NVE设备3、NVE设备6,且根据LAN可知四者不属于同一多活组,NVE设备4暂时无法确定出VM1接入的NVE设备,故,作为一种示例,NVE设备4可利用组播技术向四者发送第二报文,对应地,NVE设备1的地址可体现为NVE设备1所属组播组的地址。本步骤即是NVE设备1接收NVE设备4利用组播技术发送的第二报文。
202,所述第一NVE设备对所述第二报文进行拆封装,获得拆封装后的第二报文,所述拆封装后的第二报文包括所述第二源地址和所述第二目的地址。
203,所述第一NVE设备判断所述第二目的地址是否为所述第一表项中的所述第一虚拟机的地址。
204,如果所述第二目的地址为所述第一表项中的所述第一虚拟机的地址,所述第一NVE设备根据所述第二目的地址,发送所述拆封装后的第二报文。
NVE设备1接收到NVE设备4转发的第二报文后,便可根据第二报文中包括的第一NVE设备的标识,判断所述第二报文是否为发送给本NVE设备1的报文,如果第一NVE设备的标识为NVE设备1的地址,则可判定NVE设备1为第二报文的合法接收者,NVE设备1可以按照本实施例方案对第二报文进行后续处理;如果第一NVE设备的标识并非NVE设备1的地址,则可判定NVE设备1不是第二报文的合法接收者,NVE设备1可对第二报文做丢弃处理,本发明实施例对此可不做具体限定。
如果NVE设备1判定其为第二报文的合法接收者,NVE设备1则可按照本发明实施例方案对第二报文做如下后续处理:
(1)为了实现NVE设备1到VM1的报文传输,NVE设备1可对第二报文进行拆封装处理,去掉NVE设备4封装的VNI100和组播组的地址,获得拆封装后的第二报文。拆封装后的第二报文中包括VM4的地址、VM1的地址和第三载荷。
(2)NVE设备1读取本地保存的列表中NVE设备1对应的表项,判断VM1是否可接入NVE设备1,如果可以,NVE设备1可通过LAN10向VM1发送拆封装后的第二报文,完成第二报文的接收和转发。举例来说,判断VM1是否可 接入NVE设备1的方式为:判断NVE设备1对应的表项中VM的列表是否包括VM1的地址,如果包括,则说明VM1可接入NVE设备1;如果不包括,则说明VM1不可接入NVE设备1。可选地,本发明实施例对VM1不可接入NVE设备1场景下的处理过程可不做具体限定,作为一种示例,NVE设备1在判定VM1不可接入NVE设备1时,可对第二报文做丢弃处理。
可选地,为了避免属于一个多活组的多个多活成员重复向第一虚拟机发送拆封装后的第二报文,多活成员还可保存优先级信息。如果第四NVE利用组播技术向属于第二多活组的至少两个NVE设备和属于第三多活组的至少两个NVE设备发送第二报文,则第一NVE设备接收到第二报文后,可以先根据优先级信息判断在第一NVE设备所属的多活组内,第一NVE设备的优先级是否最高。如果第一NVE设备的优先级最高,第一NVE可以对第二报文进行拆封装处理,并向第一虚拟机发送拆封装后的第二报文。如果第一NVE设备的优先级不是最高,第一NVE则可对第二报文做丢弃处理,本发明实施例对此可不做具体限定。
综上,利用本发明实施例提供的方案,就实现了NVo3网络中两个服务器提供的虚拟机之间的数据交互过程,特别是交互过程中涉及的报文接收的实现方案。
参见图5,示出了本发明实施例报文传输方法实施例3的流程图,可包括:
301,所述第一NVE设备接收第五NVE设备发送的第三报文,所述第三报文包括所述第一NVE设备的标识、所述虚拟网络实例、第三源地址和第三目的地址;所述第三源地址为第四虚拟机的地址,所述第三目的地址为所述第一虚拟机的地址,所述第四虚拟机由第四物理服务器虚拟化获得。
第一NVE设备除了可按照图3所示流程向第二NVE设备发送报文之外,还可接收第五NVE设备发送来的报文,并正确将接收到的报文转发至对应的虚拟机。本实施例3示出的即是NVE设备接收报文的实现方式。
举例来说,根据实际通信需求,第五NVE设备可以是图3所示实施例中的第二NVE设备,或者,第五NVE设备也可以是除所述第二NVE设备之外的其它NVE设备,本发明实施例对此可不做具体限定。下面以图1中的VM1接收VM4发送的报文为例,对本发明实施例NVE设备的报文接收过程进行解释说 明。举例来说,第一NVE设备可以为NVE设备1、第五NVE设备可以为NVE设备4、第一虚拟机可以为VM1、第四虚拟机可以为VM4。
在有数据传输需求时,VM4可通过预配置的VLAN10向LAN20发送报文,进而通过LAN20将所述报文转发至NVE设备4,NVE设备4则可按照图3所示方案对所述报文进行封装处理,生成第三报文,第三报文中包括VNI100、NVE设备1的地址、VM4的地址、VM1的地址和第三载荷。同时,NVE设备4还可根据本地保存的多活接入配置信息列表(列表中存在VM1的地址),利用NVI100、VM1的地址查找到NVE设备1~NVE设备3,且根据LAN10可知三者属于同一多活组,因此,NVE设备4可通过负载均衡技术选择出NVE设备1,并利用单播技术将第三报文路由至NVE设备1。本步骤即是NVE设备1接收NVE设备4利用单播技术发送的第三报文。
302,所述第一NVE设备对所述第三报文进行拆封装,获得拆封装后的第三报文,所述拆封装后的第三报文包括所述第三源地址和所述第三目的地址。
303,所述第一NVE设备根据所述第三目的地址,发送所述拆封装后的第三报文。
NVE设备1接收到NVE设备4转发的第三报文后,便可根据第三报文中包括的第一NVE设备的标识,判断NVE设备1是否为所述第三报文的合法接收者,具体判断方式可参见上文图4处所做介绍,此处不再赘述。
如果NVE设备1为所述第三报文的合法接收者,NVE设备1可按照本发明实施例方案对第三报文做如下后续处理:
如果NVE设备1判定其为第三报文的合法接收者,NVE设备1则可按照本发明实施例方案对第三报文做如下后续处理:
(1)为了实现NVE设备1到VM1的报文传输,NVE设备1可对第三报文进行拆封装处理,去掉NVE设备4封装的VNI100和NVE设备1的地址,获得拆封装后的第三报文。拆封装后的第三报文中包括VM4的地址、VM1的地址和第三载荷。
(2)NVE设备1利用VM1的地址,通过LAN10向VM1发送拆封装后的第三报文,完成第三报文的接收与转发。
综上,利用本发明实施例提供的方案,就实现了NVo3网络中两个服务器提供的虚拟机之间的数据交互过程,特别是交互过程中涉及的报文接收的实现 方案。
上文图3、图4和图5示出了NVo3技术与多活接入技术相结合后的报文传输方案,下面再结合具体示例,对本发明实施例的报文传输过程进行解释说明。
1.根据租户设置的多活接入信息,生成多活接入配置信息列表。
考虑到根据YANG数据模型语言可以很方便地转换为可扩展标记语言(英文:Extensible Markup Language,简称:XML)格式,并通过树形结构简明的描述数据之间的关系,本发明实施例可以利用YANG数据模型语言编译租户设置的多活接入信息,生成多活接入配置信息列表。
作为一种示例,Controller基于YANG数据模型语言生成列表的方式可体现如下:
(1)定义数据类型
Figure PCTCN2015088892-appb-000001
Figure PCTCN2015088892-appb-000002
Figure PCTCN2015088892-appb-000003
Figure PCTCN2015088892-appb-000004
2.将多活接入配置信息列表下发至NVo3网络的每个NVE设备中,配置NVo3网络的多活接入信息。
Controller将生成的列表以广播方式下发至NVo3网络中的每个NVE设备,NVo3网络中的NVE设备均可支持网络配置(英文:Network Configuration,简称:Netconf)协议,可分析YANG数据模型语言描述的树形结构,并识别出NVo3网络中存在的多活组以及每个多活组包括的多活成员。
以上文图1所举示例为例,可以识别出NVo3网络中存在两个多活组,其中,第一多活组包括的多活成员为NVE设备1~NVE设备3,第二多活组包括的多活成员为NVE设备4~NVE设备5。
下面以VM1与VM4之间的交互过程为例,对本发明实施例方案进行解释说明。
3.VM1向VM4发送请求报文,请求报文中包括VM1的MAC地址、VM4的MAC地址和请求数据。
首先,VM1通过VLAN10向与其相连的LAN10发送请求报文,LAN10根据其保存的LAN与NVE设备的对应关系、以及链路捆绑信息可知,可以通过NVE设备1~NVE设备3中的任一个NVE设备将请求报文发送至VM4接入的远端NVE设备。若此时,LAN10根据负载均衡技术选择NVE设备1作为本次报文转发的处理设备,LAN10可通过VLAN10将请求报文转发至NVE设备1。需要说明的是,上文基于YANG数据模型语言生成列表的方式中,end-id可表现为LAN标识。
需要说明的是,VM1可多活接入NVE设备1~NVE设备3可以理解为,VM1可以接入三者中的任一个;或者,还可进一步细化到VM1传输的数据流 (英文:flow)可以接入三者中的任一个。即,可以细化到发往特定VLAN和VM的数据流。举例来说,VM1通过VLAN10向VM4发送flow1时,可接入NVE设备1,通过NVE设备1进行flow1的转发;或者,VM1通过VLAN20向VM4发送flow2时,可接入NVE设备2,通过NVE设备2进行flow2的转发,等等,本发明实施例对此可不做具体限定。
其次,NVE设备1接收请求报文,并读取本地保存的多活接入配置信息列表,查找远端NVE设备。
举例来说,NVE设备1本地保存的列表中记录了如下表项:
NVE设备1对应的表项包括:LAN10、VNI100、NVE设备1的IP地址、VM1~VM3的MAC地址;
NVE设备4对应的表项包括:LAN20、VNI100、NVE设备4的IP地址;
NVE设备5对应的表项包括:LAN20、VNI100、NVE设备5的IP地址。
也即,Controller生成的列表中VM的地址为空,NVE设备1可知晓能接入NVE设备1的VM的MAC地址,同时,NVE设备1需要通过动态学习才能知晓可接入NVE设备4的VM的MAC地址、可接入NVE设备5的VM的MAC地址。
如此,NVE设备1根据VNI100可查找到能与NVE设备1所属多活组进行数据交互的NVE设备4和NVE设备5,且根据LAN20可知,NVE设备4和NVE设备5属于同一多活组,故,NVE设备1可根据负载均衡技术选择NVE设备4作为本次报文转发的远端NVE设备。
接着,NVE设备1对请求报文进行封装处理,将封装处理后的请求报文路由至远端NVE设备。
为了实现请求报文在NVE设备1到NVE设备4之间的传输,NVE设备1可在请求报文中封装NVE设备4的IP地址;与此同时,为了提高本发明实施例可隔离租户的数量,还可在请求报文中封装VNI100,通过VLAN10与VNI100相结合的方式标识租户。如此处理之后,NVE设备1即可以单播方式将封装处理后的请求转发至NVE设备4。
需要说明的是,此处仅是对本次报文转发过程中可能涉及的处理设备所对应的表项进行举例说明,并不表示NVE设备1本地保存的列表中仅记录了上述列举的表项。
另外,在查找到NVE设备4和NVE设备5之后,NVE设备1还可将二者确定为远端NVE设备,并利用组播技术向二者发送请求报文,本发明实施例对此可不作具体限定,只要将请求报文发送至VM4能接入的NVE设备即可。
最后,NVE设备4接收NVE设备1转发的封装处理后的请求报文,并发送至VM4。
根据封装处理后的请求报文中的NVE设备4的IP地址,NVE设备4可以确定其为所述封装处理后的请求报文的合法接收者,NVE设备4可进行拆封装还原出请求报文,并根据请求报文中包括的VM4的MAC地址,通过LAN20将请求报文转发至VM4,实现VM1到VM4的报文传输。
3.VM4向VM1发送响应报文,响应报文中包括VM4的MAC地址、VM1的MAC地址和响应数据。
VM4接收到VM1发送的请求报文后,可根据请求报文执行一系列处理(对此可由实际需要而定,本发明实施例并不做具体限定),并通过响应报文向VM1返回响应数据。
首先,VM4通过VLAN10向与其相连的LAN20发送响应报文,LAN20则根据其保存的LAN与NVE设备的对应关系、以及链路捆绑信息,确定NVE设备4~NVE设备5中的任一个NVE设备均可将响应报文发送至VM1接入的远端NVE设备。若此时,LAN20根据负载均衡技术选择NVE设备5作为本次报文转发的处理设备,LAN20可通过VLAN10将响应报文转发至NVE设备5。
其次,NVE设备5接收响应报文,并读取本地保存的多活接入配置信息列表,查找远端NVE设备。如,NVE设备5查找到属于同一多活组的NVE设备1~NVE设备3,则可根据负载均衡技术选择NVE设备2作为本次报文转发的远端NVE设备。
NVE设备5查找远端NVE设备的方式可参照上文所做介绍,此处不再赘述。
接着,NVE设备5对响应报文进行封装处理,将封装处理后的响应报文发送至远端NVE设备。封装后的响应报文中包括VNI100、NVE设备2的IP地址、VM4的MAC地址、VM1的MAC地址和响应数据。
最后,NVE设备2接收NVE设备5转发的封装处理后的响应报文,并进行拆封装还原出响应报文,根据响应报文中包括的VM1的MAC地址,通过 LAN10将响应报文转发至VM1,实现VM4到VM1的报文传输。
综上,利用本发明实施例提供的方案,就实现了NVo3网络中两个服务器提供的虚拟机之间的数据交互过程。需要说明的是,上文所举示例中,报文中的源地址和目的地址均是以MAC地址为例做的解释说明,根据VM所在网络层级的不同,源地址和目的地址还可体现为IP地址,本发明实施例对此可不做具体限定。需要说明的是,如果源地址和目的地址体现为IP地址,则转发设备应为路由器,具体报文传输方案可参照上文所做介绍,此处不再赘述。
另外,上文所举示例中,两个服务器属于同一数据中心,在实际应用过程中,还可能存在跨数据中心的交互需求,如,server1属于数据中心1,server2属于数据中心2,则NVE设备1对请求报文进行封装处理时,还可将数据中心2的标识封装进请求报文中,如此,NVE设备1便可利用数据中心2的标识以及NVE设备4的标识将封装处理后的请求报文发送至NVE设备4,实现跨数据中心的报文转发。举例来说,NVE设备1可从跨数据中心路由器获得数据中心2的标识,本发明实施例对此可不做具体限定。
与图3所示方法相对应地,本发明实施例还提供了一种报文传输装置,参见图6所示示意图,所述装置可包括:
第一接收单元401,用于接收第一报文,所述第一报文包括第一源地址和第一目的地址;所述第一源地址为第一虚拟机的地址,所述第一目的地址为第二虚拟机的地址,所述第一虚拟机由第一物理服务器虚拟化,所述第二虚拟机由第二物理服务器虚拟化;
第一获得单元402,用于在所述第一接收单元接收到所述第一报文,获得多活接入配置信息列表,所述多活接入配置信息列表包括第一表项和第二表项,所述第一表项包括第一多活组的标识、虚拟网络实例和第一虚拟网络边缘NVE设备的标识,所述第二表项包括第二多活组的标识、所述虚拟网络实例和属于所述第二多活组的至少两个NVE设备的标识;
第二获得单元403,用于从所述第一获得单元获得的所述多活接入配置信息列表中,根据所述第一表项和所述第一NVE设备的标识,获得所述虚拟网络实例;
查找单元404,用于从所述第一获得单元获得的所述多活接入配置信息列 表中,查找对应于所述虚拟网络实例的至少一个多活组,所述至少一个多活组包括所述第二多活组,从所述属于所述第二多活组的至少两个NVE设备中选取第二NVE设备;
封装单元405,用于利用所述第二NVE设备的标识和所述虚拟网络实例封装所述第一报文;
第一发送单元406,用于向所述第二NVE设备发送所述封装单元封装后的第一报文。
本发明实施例的报文传输装置,可以集成在NVo3网络的NVE设备中,应用于上文图3所示方法实施例中,实现其中第一NVE设备的功能。当需要进行报文转发时,报文传输装置可以利用本地保存的多活接入配置信息列表查找到第二NVE,并向第二NVE进行报文转发,实现NVo3网络中两个服务器提供的虚拟机之间的数据交互过程,特别是交互过程中涉及的报文发送的实现方案。
可选地,所述第一获得单元,具有用于接收来自控制器的所述多活接入配置信息列表。
可选地,所述第一获得单元获得的所述多活接入信息配置列表以另一个下一代YANG语言描述,所述第一表项采用树状结构承载所述第一多活组的标识、所述虚拟网络实例和所述第一NVE设备的标识,其中,所述第一多活组的标识为根节点,所述第一NVE设备的标识和所述虚拟网络实例为子节点。
可选地,所述多活接入配置信息列表还包括第三表项,所述第三表项包括第三多活组的标识、所述虚拟网络实例和属于所述第三多活组的至少两个NVE设备的标识,所述至少一个多活组包括所述第二多活组和所述第三多活组;则
所述第一发送单元,具体用于判断所述第二表项是否还包括第二虚拟机的地址;并在所述第二表项还包括所述第二虚拟机的地址时,查找对应于所述第二虚拟机的地址的所述第二多活组,向所述第二NVE设备发送所述封装后的第一报文。
可选地,所述第一发送单元,还用于在所述第二表项不包括所述第二虚拟机的地址时,向属于所述第二多活组的至少两个NVE设备和属于所述第三多活组的至少两个NVE设备发送所述封装后的第一报文。
可选地,所述第一表项包括所述第一多活组的标识、所述虚拟网络实例、所述第一NVE设备的标识和所述第一虚拟机的地址,所述装置还包括:
第二接收单元,用于接收第四NVE设备发送的第二报文,所述第二报文包括所述第一NVE设备的标识、所述虚拟网络实例、第二源地址和第二目的地址;所述第二源地址为第三虚拟机的地址,所述第二目的地址为所述第一虚拟机的地址,所述第三虚拟机由第三物理服务器虚拟化;
拆封装单元,用于对所述第二报文进行拆封装,获得拆封装后的第二报文,所述拆封装后的第二报文包括所述第二源地址和所述第二目的地址;
判断单元,用于判断所述第二目的地址是否为所述第一表项中的所述第一虚拟机的地址;
第二发送单元,用于在所述判断单元判定所述第二目的地址为所述第一表项中的所述第一虚拟机的地址,根据所述第二目的地址,发送所述拆封装后的第二报文。
可选地,所述装置还包括:
第三接收单元,用于接收第五NVE设备发送的第三报文,所述第三报文包括所述第一NVE设备的标识、所述虚拟网络实例、第三源地址和第三目的地址;所述第三源地址为第四虚拟机的地址,所述第三目的地址为所述第一虚拟机的地址,所述第四虚拟机由第四物理服务器虚拟化获得;
第二拆封装单元,用于对所述第三接收单元接收的所述第三报文进行拆封装,获得拆封装后的第三报文,所述拆封装后的第三报文包括所述第三源地址和所述第三目的地址;
第三发送单元,用于根据所述第三目的地址,发送所述拆封装后的第三报文。
在上述可选方案中,本发明实施例报文传输装置可以实现的附加功能,请参照方法实施例中对第一NVE附加功能的描述,在这里不再赘述。
另外,上述实施例提供的报文传输装置在进行报文发送时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
与图3所示方法相对应地,本发明实施例还提供了一种报文传输设备500,参见图7所示示意图,所述设备可包括:处理器501、存储器502、网络接口 503、总线***504。
所述总线***504,用于连接上述处理器501、存储器502和网络接口503。
所述网络接口503,用于实现设备与其它网络设备之间的通信连接。所述网络接口503可以由光收发器,电收发器,无线收发器或其任意组合实现。例如,光收发器可以是小封装可插拔(英文:small form-factor pluggable transceiver,缩写:SFP)收发器(英文:transceiver),增强小封装可插拔(英文:enhanced small form-factor pluggable,缩写:SFP+)收发器或10吉比特小封装可插拔(英文:10Gigabit small form-factor pluggable,缩写:XFP)收发器。电收发器可以是以太网(英文:Ethernet)网络接口控制器(英文:network interface controller,缩写:NIC)。无线收发器可以是无线网络接口控制器(英文:wireless network interface controller,缩写:WNIC)。
所述存储器502,用于存储程序指令和数据。所述存储器502可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器还可以包括上述种类的存储器的组合。
所述处理器501是中央处理器(英文:central processing unit,缩写:CPU),也可以是CPU和硬件芯片的组合。上述硬件芯片可以是以下一种或多种的组合:专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD)以及网络处理器(英文:network processor,缩写:NP)。所述处理器501,用于读取所述存储器502中存储的程序指令和数据,执行以下操作:
所述处理器通过所述网络接口接收第一报文,所述第一报文包括第一源地址和第一目的地址;所述第一源地址为第一虚拟机的地址,所述第一目的地址为第二虚拟机的地址,所述第一虚拟机由第一物理服务器虚拟化,所述第二虚拟机由第二物理服务器虚拟化;
所述处理器获得多活接入配置信息列表,所述多活接入配置信息列表包括第一表项和第二表项,所述第一表项包括第一多活组的标识、虚拟网络实例和所述第一NVE设备的标识,所述第二表项包括第二多活组的标识、所述虚拟网络实例和属于所述第二多活组的至少两个NVE设备的标识;
所述处理器根据所述第一表项和所述第一NVE设备的标识,获得所述虚拟网络实例;
所述处理器查找对应于所述虚拟网络实例的至少一个多活组,所述至少一个多活组包括所述第二多活组,从所述属于所述第二多活组的至少两个NVE设备中选取第二NVE设备;
所述处理器利用所述第二NVE设备的标识和所述虚拟网络实例封装所述第一报文,通过所述网络接口向所述第二NVE设备发送封装后的第一报文。
本发明实施例的报文传输设备,可以体现为NVo3网络中的NVE设备。当需要进行报文转发时,报文传输设备可以利用本地保存的多活接入配置信息列表查找到第二NVE,并向第二NVE进行报文转发,实现NVo3网络中两个服务器提供的虚拟机之间的数据交互过程,特别是交互过程中涉及的报文发送的实现方案。
可选地,所述处理器获得多活接入配置信息列表包括:所述处理器接收来自控制器的所述多活接入配置信息列表。
可选地,所述处理器获得的所述多活接入信息配置列表以另一个下一代YANG语言描述,所述第一表项采用树状结构承载所述第一多活组的标识、所述虚拟网络实例和所述第一NVE设备的标识,其中,所述第一多活组的标识为根节点,所述第一NVE设备的标识和所述虚拟网络实例为子节点。
可选地,所述多活接入配置信息列表还包括第三表项,所述第三表项包括第三多活组的标识、所述虚拟网络实例和属于所述第三多活组的至少两个NVE设备的标识,所述至少一个多活组包括所述第二多活组和所述第三多活组;则所述处理器向所述第二NVE设备发送封装后的第一报文包括:
所述处理器判断所述第二表项是否还包括第二虚拟机的地址;
如果所述第二表项还包括所述第二虚拟机的地址,所述处理器查找对应于所述第二虚拟机的地址的所述第二多活组,向所述第二NVE设备发送所述封装后的第一报文。
可选地,如果所述第二表项不包括所述第二虚拟机的地址,所述处理器向属于所述第二多活组的至少两个NVE设备和属于所述第三多活组的至少两个NVE设备发送所述封装后的第一报文。
可选地,所述第一表项包括所述第一多活组的标识、所述虚拟网络实例、所述第一NVE设备的标识和所述第一虚拟机的地址,所述处理器还可执行以下操作:
所述处理器接收第四NVE设备发送的第二报文,所述第二报文包括所述第一NVE设备的标识、所述虚拟网络实例、第二源地址和第二目的地址;所述第二源地址为第三虚拟机的地址,所述第二目的地址为所述第一虚拟机的地址,所述第三虚拟机由第三物理服务器虚拟化;
所述处理器对所述第二报文进行拆封装,获得拆封装后的第二报文,所述拆封装后的第二报文包括所述第二源地址和所述第二目的地址;
所述处理器判断所述第二目的地址是否为所述第一表项中的所述第一虚拟机的地址;
如果所述第二目的地址为所述第一表项中的所述第一虚拟机的地址,所述处理器根据所述第二目的地址,通过所述网络接口发送所述拆封装后的第二报文。
可选地,所述处理器还可执行以下操作:
所述处理器通过所述网络接口接收第五NVE设备发送的第三报文,所述第三报文包括所述第一NVE设备的标识、所述虚拟网络实例、第三源地址和第三目的地址;所述第三源地址为第四虚拟机的地址,所述第三目的地址为所述第一虚拟机的地址,所述第四虚拟机由第四物理服务器虚拟化获得;
所述处理器对所述第三报文进行拆封装,获得拆封装后的第三报文,所述拆封装后的第三报文包括所述第三源地址和所述第三目的地址;
所述处理器根据所述第三目的地址,通过所述网络接口发送所述拆封装后的第三报文。
附图7所示的报文传输设备的实现细节,请参考前面附图3所示的方法实施例中的描述,此处不再赘述。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上 述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,简称:ROM)、RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备)执行本发明各个实施例或者实施例的某些部分所述的方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置及设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及设备实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本发明的可选实施方式,并非用于限定本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

  1. 一种报文传输方法,其特征在于,所述方法包括:
    第一虚拟网络边缘NVE设备接收第一报文,所述第一报文包括第一源地址和第一目的地址;所述第一源地址为第一虚拟机的地址,所述第一目的地址为第二虚拟机的地址,所述第一虚拟机由第一物理服务器虚拟化,所述第二虚拟机由第二物理服务器虚拟化;
    所述第一NVE设备获得多活接入配置信息列表,所述多活接入配置信息列表包括第一表项和第二表项,所述第一表项包括第一多活组的标识、虚拟网络实例和所述第一NVE设备的标识,所述第二表项包括第二多活组的标识、所述虚拟网络实例和属于所述第二多活组的至少两个NVE设备的标识;
    所述第一NVE设备根据所述第一表项和所述第一NVE设备的标识,获得所述虚拟网络实例;
    所述第一NVE设备查找对应于所述虚拟网络实例的至少一个多活组,所述至少一个多活组包括所述第二多活组,从所述属于所述第二多活组的至少两个NVE设备中选取第二NVE设备;
    所述第一NVE设备利用所述第二NVE设备的标识和所述虚拟网络实例封装所述第一报文,向所述第二NVE设备发送封装后的第一报文。
  2. 根据权利要求1所述的方法,其特征在于,所述第一NVE设备获得多活接入配置信息列表包括:所述第一NVE设备接收来自控制器的所述多活接入配置信息列表。
  3. 根据权利要求1或2所述的方法,其特征在于,所述多活接入信息配置列表以另一个下一代YANG语言描述,所述第一表项采用树状结构承载所述第一多活组的标识、所述虚拟网络实例和所述第一NVE设备的标识,其中,所述第一多活组的标识为根节点,所述第一NVE设备的标识和所述虚拟网络实例为子节点。
  4. 根据权利要求1~3任一项所述的方法,其特征在于,所述多活接入配置信息列表还包括第三表项,所述第三表项包括第三多活组的标识、所述虚拟网络实例和属于所述第三多活组的至少两个NVE设备的标识,所述至少一个多活组包括所述第二多活组和所述第三多活组;
    所述向所述第二NVE设备发送封装后的第一报文包括:
    所述第一NVE设备判断所述第二表项是否还包括第二虚拟机的地址;
    如果所述第二表项还包括所述第二虚拟机的地址,所述第一NVE设备查找对应于所述第二虚拟机的地址的所述第二多活组,向所述第二NVE设备发送所述封装后的第一报文。
  5. 根据权利要求4所述的方法,其特征在于,所述方法还包括:
    如果所述第二表项不包括所述第二虚拟机的地址,所述第一NVE设备向属于所述第二多活组的至少两个NVE设备和属于所述第三多活组的至少两个NVE设备发送所述封装后的第一报文。
  6. 根据权利要求1~5任一项所述的方法,其特征在于,所述第一表项包括所述第一多活组的标识、所述虚拟网络实例、所述第一NVE设备的标识和所述第一虚拟机的地址,所述方法还包括:
    所述第一NVE设备接收第四NVE设备发送的第二报文,所述第二报文包括所述第一NVE设备的标识、所述虚拟网络实例、第二源地址和第二目的地址;所述第二源地址为第三虚拟机的地址,所述第二目的地址为所述第一虚拟机的地址,所述第三虚拟机由第三物理服务器虚拟化;
    所述第一NVE设备对所述第二报文进行拆封装,获得拆封装后的第二报文,所述拆封装后的第二报文包括所述第二源地址和所述第二目的地址;
    所述第一NVE设备判断所述第二目的地址是否为所述第一表项中的所述第一虚拟机的地址;
    如果所述第二目的地址为所述第一表项中的所述第一虚拟机的地址,所述第一NVE设备根据所述第二目的地址,发送所述拆封装后的第二报文。
  7. 一种报文传输装置,其特征在于,所述装置包括:
    第一接收单元,用于接收第一报文,所述第一报文包括第一源地址和第一目的地址;所述第一源地址为第一虚拟机的地址,所述第一目的地址为第二虚拟机的地址,所述第一虚拟机由第一物理服务器虚拟化,所述第二虚拟机由第二物理服务器虚拟化;
    第一获得单元,用于在所述第一接收单元接收到所述第一报文,获得多活接入配置信息列表,所述多活接入配置信息列表包括第一表项和第二表项,所述第一表项包括第一多活组的标识、虚拟网络实例和第一虚拟网络边缘NVE设 备的标识,所述第二表项包括第二多活组的标识、所述虚拟网络实例和属于所述第二多活组的至少两个NVE设备的标识;
    第二获得单元,用于从所述第一获得单元获得的所述多活接入配置信息列表中,根据所述第一表项和所述第一NVE设备的标识,获得所述虚拟网络实例;
    查找单元,用于从所述第一获得单元获得的所述多活接入配置信息列表中,查找对应于所述虚拟网络实例的至少一个多活组,所述至少一个多活组包括所述第二多活组,从所述属于所述第二多活组的至少两个NVE设备中选取第二NVE设备;
    封装单元,用于利用所述第二NVE设备的标识和所述虚拟网络实例封装所述第一报文;
    第一发送单元,用于向所述第二NVE设备发送所述封装单元封装后的第一报文。
  8. 根据权利要求7所述的装置,其特征在于,
    所述第一获得单元,具有用于接收来自控制器的所述多活接入配置信息列表。
  9. 根据权利要求7或8所述的装置,其特征在于,
    所述第一获得单元获得的所述多活接入信息配置列表以另一个下一代YANG语言描述,所述第一表项采用树状结构承载所述第一多活组的标识、所述虚拟网络实例和所述第一NVE设备的标识,其中,所述第一多活组的标识为根节点,所述第一NVE设备的标识和所述虚拟网络实例为子节点。
  10. 根据权利要求7~9任一项所述的装置,其特征在于,所述多活接入配置信息列表还包括第三表项,所述第三表项包括第三多活组的标识、所述虚拟网络实例和属于所述第三多活组的至少两个NVE设备的标识,所述至少一个多活组包括所述第二多活组和所述第三多活组;
    所述第一发送单元,具体用于判断所述第二表项是否还包括第二虚拟机的地址;并在所述第二表项还包括所述第二虚拟机的地址时,查找对应于所述第二虚拟机的地址的所述第二多活组,向所述第二NVE设备发送所述封装后的第一报文。
  11. 根据权利要求10所述的装置,其特征在于,
    所述第一发送单元,还用于在所述第二表项不包括所述第二虚拟机的地址 时,向属于所述第二多活组的至少两个NVE设备和属于所述第三多活组的至少两个NVE设备发送所述封装后的第一报文。
  12. 根据权利要求7~11任一项所述的装置,其特征在于,所述第一表项包括所述第一多活组的标识、所述虚拟网络实例、所述第一NVE设备的标识和所述第一虚拟机的地址,所述装置还包括:
    第二接收单元,用于接收第四NVE设备发送的第二报文,所述第二报文包括所述第一NVE设备的标识、所述虚拟网络实例、第二源地址和第二目的地址;所述第二源地址为第三虚拟机的地址,所述第二目的地址为所述第一虚拟机的地址,所述第三虚拟机由第三物理服务器虚拟化;
    拆封装单元,用于对所述第二报文进行拆封装,获得拆封装后的第二报文,所述拆封装后的第二报文包括所述第二源地址和所述第二目的地址;
    判断单元,用于判断所述第二目的地址是否为所述第一表项中的所述第一虚拟机的地址;
    第二发送单元,用于在所述判断单元判定所述第二目的地址为所述第一表项中的所述第一虚拟机的地址,根据所述第二目的地址,发送所述拆封装后的第二报文。
PCT/CN2015/088892 2014-10-22 2015-09-02 一种报文传输方法及装置 WO2016062169A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP15852122.9A EP3197107B1 (en) 2014-10-22 2015-09-02 Message transmission method and apparatus
US15/494,334 US10193707B2 (en) 2014-10-22 2017-04-21 Packet transmission method and apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201410568124.XA CN105591916B (zh) 2014-10-22 2014-10-22 一种报文传输方法及装置
CN201410568124.X 2014-10-22

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/494,334 Continuation US10193707B2 (en) 2014-10-22 2017-04-21 Packet transmission method and apparatus

Publications (1)

Publication Number Publication Date
WO2016062169A1 true WO2016062169A1 (zh) 2016-04-28

Family

ID=55760267

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/088892 WO2016062169A1 (zh) 2014-10-22 2015-09-02 一种报文传输方法及装置

Country Status (4)

Country Link
US (1) US10193707B2 (zh)
EP (1) EP3197107B1 (zh)
CN (1) CN105591916B (zh)
WO (1) WO2016062169A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789529A (zh) * 2016-12-16 2017-05-31 平安科技(深圳)有限公司 一种overlay网络的实现方法及终端
WO2019128612A1 (zh) * 2017-12-25 2019-07-04 华为技术有限公司 路由协议报文的处理方法及装置

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10454766B2 (en) * 2016-04-21 2019-10-22 Super Micro Computer, Inc. Automatic configuration of a network switch in a multi-chassis link aggregation group
US11089066B2 (en) * 2016-12-09 2021-08-10 Nutanix, Inc. System and method for dynamic medium access control (MAC) relating to a virtualization environment
US10530747B2 (en) * 2017-01-13 2020-01-07 Citrix Systems, Inc. Systems and methods to run user space network stack inside docker container while bypassing container Linux network stack
CN109033483B (zh) * 2017-06-12 2023-11-14 中兴通讯股份有限公司 一种在yang模型中定义数据关系的方法、装置及***
CN107547340B (zh) * 2017-06-19 2020-09-08 新华三技术有限公司 一种报文转发方法和装置
CN109768908B (zh) 2017-11-09 2020-10-09 华为技术有限公司 一种vxlan的配置方法、设备及***
EP3721572A1 (en) * 2017-12-04 2020-10-14 Telefonaktiebolaget LM Ericsson (publ) A first node and a second node and methods of operating the same
US11438279B2 (en) * 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
CN111447131B (zh) * 2019-01-16 2022-11-08 中兴通讯股份有限公司 报文解封装方法及装置、报文封装方法及装置
CN114697220A (zh) * 2020-12-29 2022-07-01 华为技术有限公司 一种报文处理方法及相关装置
WO2023031835A1 (en) * 2021-08-31 2023-03-09 Marvell Israel (M.I.S.L) Ltd. Cloud-edge forwarding in a network
CN117453150B (zh) * 2023-12-25 2024-04-05 杭州阿启视科技有限公司 录像存储调度服务多实例的实现方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120201124A1 (en) * 2011-02-04 2012-08-09 Cisco Technology, Inc. Designated forwarder election for vpls with bgp-based mac learning
US20130148657A1 (en) * 2011-12-07 2013-06-13 Cisco Technology, Inc. Mechanism for e-vpn interoperability with vpls
US20140126422A1 (en) * 2012-11-02 2014-05-08 Ciena Corporation Resilient interworking of shortest path bridging and ethernet virtual private networks
CN103916317A (zh) * 2012-12-31 2014-07-09 华为技术有限公司 通信方法、路由桥及网络***

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694664B2 (en) * 2010-11-23 2014-04-08 Cisco Technology, Inc. Active-active multi-homing support for overlay transport protocol
US8717934B2 (en) * 2011-10-25 2014-05-06 Cisco Technology, Inc. Multicast source move detection for layer-2 interconnect solutions
CN103685026A (zh) * 2012-08-31 2014-03-26 中兴通讯股份有限公司 一种虚拟网络的接入方法和***
CN103684956B (zh) * 2012-09-01 2018-12-14 中兴通讯股份有限公司 一种虚拟网络布局的实现方法和***
US20140233569A1 (en) * 2013-02-15 2014-08-21 Futurewei Technologies, Inc. Distributed Gateway in Virtual Overlay Networks
US9660905B2 (en) * 2013-04-12 2017-05-23 Futurewei Technologies, Inc. Service chain policy for distributed gateways in virtual overlay networks
CN104104534A (zh) * 2013-04-12 2014-10-15 中兴通讯股份有限公司 一种虚拟网络管理的实现方法和***
CN104426680B (zh) * 2013-09-03 2018-03-16 华为技术有限公司 数据传输方法、装置和***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120201124A1 (en) * 2011-02-04 2012-08-09 Cisco Technology, Inc. Designated forwarder election for vpls with bgp-based mac learning
US20130148657A1 (en) * 2011-12-07 2013-06-13 Cisco Technology, Inc. Mechanism for e-vpn interoperability with vpls
US20140126422A1 (en) * 2012-11-02 2014-05-08 Ciena Corporation Resilient interworking of shortest path bridging and ethernet virtual private networks
CN103916317A (zh) * 2012-12-31 2014-07-09 华为技术有限公司 通信方法、路由桥及网络***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3197107A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789529A (zh) * 2016-12-16 2017-05-31 平安科技(深圳)有限公司 一种overlay网络的实现方法及终端
CN106789529B (zh) * 2016-12-16 2020-04-14 平安科技(深圳)有限公司 一种overlay网络的实现方法及终端
WO2019128612A1 (zh) * 2017-12-25 2019-07-04 华为技术有限公司 路由协议报文的处理方法及装置

Also Published As

Publication number Publication date
US20170230197A1 (en) 2017-08-10
EP3197107B1 (en) 2020-07-22
EP3197107A4 (en) 2017-09-27
EP3197107A1 (en) 2017-07-26
CN105591916B (zh) 2018-10-30
US10193707B2 (en) 2019-01-29
CN105591916A (zh) 2016-05-18

Similar Documents

Publication Publication Date Title
WO2016062169A1 (zh) 一种报文传输方法及装置
EP2874359B1 (en) Extended ethernet fabric switches
US20210258190A1 (en) Method and system for virtual and physical network integration
US10116559B2 (en) Operations, administration and management (OAM) in overlay data center environments
CN108476160B (zh) 基于分层覆叠穿隧的交换机互连
US10320664B2 (en) Cloud overlay for operations administration and management
US10616108B2 (en) Scalable MAC address virtualization
KR102054338B1 (ko) 개별 관리들을 이용하는 vlan 태깅된 패킷들의 가상 포워딩 인스턴스들의 원단 주소들로의 라우팅
CN105099848B (zh) 网络扩展群组
EP2985959B1 (en) Progressive mac address learning
CN103200069B (zh) 一种报文处理的方法和设备
US10079694B2 (en) Scalable virtual networks in SDN-based ethernet networks using VLANs
US20180123827A1 (en) Rule-based network identifier mapping
US9559896B2 (en) Network-assisted configuration and programming of gateways in a network environment
WO2017113306A1 (zh) 可扩展虚拟局域网报文发送方法、计算机设备和可读介质
US20150124823A1 (en) Tenant dhcp in an overlay network
WO2018014803A1 (zh) 报文转发
CN112671628A (zh) 业务服务提供方法及***
CN112671938A (zh) 业务服务提供方法及***、远端加速网关
CN107733930B (zh) 用于在多个wan网络网关处转发互联网协议(ip)数据包的方法和***
US12003417B2 (en) Communication method and apparatus
CN106209554B (zh) 跨虚拟可扩展局域网的报文转发方法和设备
WO2017036384A1 (zh) 运营商边缘设备及数据转发方法
WO2016035306A1 (ja) 制御システム、通信システム、通信方法および記録媒体
WO2023143186A1 (zh) 一种数据传输方法、***及装置

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: 15852122

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2015852122

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE