IP Library Granted Patent US 9,036,639
Granted Patent B2
US 9,036,639 · App. 13/689,633 · Granted May 19, 2015

System and method for VXLAN inter-domain communications

Inventor: Hong Zhang (Palo Alto, CA)
Assignee: Futurewei Technologies, Inc.
H04L45/74
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,036,639
App. No.
13/689,633
Granted
May 19, 2015
Kind
B2
Abstract

VXLAN inter-domain communications and packet forwarding are supported between a virtual machine (VM) in a Virtual eXtensible Local Area Network (VXLAN) domain and an external client or another domain via a Layer Two (L2)/Layer Three (L3) switch, router, or network. A VXLAN Tunnel End Point (VTEP) coupled to the VM at a server and to the L2/L3 switch, router, or network and associated with the VXLAN domain is configured to implement a method for enabling the VXLAN inter-domain communications. The method includes receiving a packet at the (VTEP), replacing a source or destination Media Access Control (MAC) address in the packet if the packet is part of communications between a VXLAN domain for the VMs and an external component without encapsulating or decapsulating the packet, and forwarding the packet. Alternatively, the VTEP encapsulates or decapsulates an incoming packet if the packet is part of a VXLAN internal domain communications.

Claims (49)

1. A method comprising:

receiving, by a Virtual eXtensible Local Area Network (VXLAN) Tunnel End Point (VTEP) in a server, a data packet from a virtual machine (VM) in the server, the data packet including a source media access control (MAC) address of the VM, a source internet protocol (IP) address of the VM, a MAC address of the destination endpoint, and an IP address of the destination endpoint;

determining, by the VTEP, that the data packet is not part of a VXLAN internal domain communications for the VM;

selectively replacing, by the VTEP, the source MAC address in the data packet with a MAC address of the VTEP without masking the source IP address of the VM to obtain a modified data packet when the data packet is not part of the VXLAN internal domain communications, wherein the modified data packet specifies the MAC address of the VTEP and the source IP address of the VM; and

forwarding the modified data packet to an external component.

2. The method of claim 1 , wherein the MAC address of the VM is replaced without performing VXLAN encapsulation or decapsulation on the data packet.

3. The method of claim 1 further comprising:

receiving a packet on a path from one of a plurality of VMs in the VXLAN domain to an external client or another domain;

determining whether a destination IP address of the packet and a source IP address of the packet fall into an IP address range of the same VXLAN domain or whether the destination IP address is a broadcast or multicast IP address;

encapsulating the packet with a VXLAN header when the destination IP address and the source IP address in the packet fall into an IP address range of the same VXLAN domain or when the destination IP address is a broadcast or multicast IP address; and

replacing a source MAC address of a source VM in the packet with a MAC address of the VTEP when the destination IP address and the source IP address in the packet do not fall into an IP address range of the same VXLAN domain and when the destination IP address is not a broadcast or multicast IP address.

4. The method of claim 1 , further comprising:

receiving a packet on a path from an external client or another domain to one of a plurality of VMs in the VXLAN domain;

determining whether the packet has an UDP header and the destination User Datagram Protocol (UDP) port in the packet matches a VXLAN assigned UDP port;

decapsulating the packet by removing a VXLAN header when the packet has an UDP header and the destination UDP port in the packet matches a VXLAN assigned UDP port; and

replacing a destination MAC address in the packet with a MAC address of a destination VM when the packet does not have an UDP header or the packet has an UDP header but the destination UDP port in the packet does not match a VXLAN assigned UDP port.

5. The method of claim 4 , wherein the MAC address of the destination VM is matched to a destination IP address of the same VM in the packet.

6. The method of claim 1 , wherein the packet is received or forwarded via a Layer Two (L2) or Layer Three (L3) network, a L2 or L3 switch, or a L2 or L3 router between the VXLAN domain and the external component.

7. An apparatus for enabling communications between a Virtual eXtensible Local Area Network (VXLAN) domain and an external component, the apparatus comprising:

a VXLAN Tunnel End Point (VTEP);

one or more virtual machines (VMS) associated with the VXLAN domain and coupled to the VTEP; and

an Internet Protocol (IP) address database (DB) coupled to the VTEP and comprising an IP address range assigned to the VXLAN domain,

wherein the VTEP is configured to receive, from a first VM in the one or more VMs, a data packet including a source media access control (MAC) address of the first VM and a source internet protocol (IP) address of the first VM, to determine that the data packet is not part of a VXLAN internal domain communications for the one or more VMs, to selectively replace the source MAC address in the data packet with the MAC address of the VTEP without masking the source IP address of the first VM to obtain a modified data packet when the data packet is not part of the VXLAN internal domain communications, and to forward the modified data packet to an external component, wherein the modified data packet specifies the MAC address of the VTEP and the source IP address of the first VM.

8. The apparatus of claim 7 , wherein the data packet is part of communications between a VXLAN domain and an external component or another domain when the data packet is forwarded on an egress path from one of the VMs in the VXLAN domain and comprises a destination IP address and a source IP address that do not fall into an IP address range assigned to the same VXLAN domain and when the data packet does not comprise an IP broadcast or multicast address.

9. The apparatus of claim 7 , wherein the data packet is part of communications between a VXLAN domain and an external component or another domain when the data packet is forwarded on an ingress path to one of the VMs in the VXLAN domain and the data packet comprises a destination User Datagram Protocol (UDP) port that does not match a VXLAN assigned UDP port.

10. The apparatus of claim 7 , wherein the VTEP is further configured to encapsulate or decapsulate an incoming packet that is part of a VXLAN internal domain communications.

11. The apparatus of claim 10 , wherein the incoming packet is part of a VXLAN internal domain communications when the incoming packet is forwarded on an egress path from one of the VMs in the VXLAN domain and when the incoming packet comprises a destination IP address and a source IP address that fall into an IP address range assigned to the same VXLAN domain or comprises an IP broadcast or multicast address.

12. The apparatus of claim 10 , wherein the incoming packet is part of a VXLAN internal domain communications when the incoming packet is forwarded on an ingress path to one of the VMs in the VXLAN domain and comprises a destination User Datagram Protocol (UDP) port that matches a VXLAN assigned UDP port.

13. The apparatus of claim 10 , wherein the incoming packet is encapsulated by adding to the incoming packet a VXALN header or is decapsulated by removing from the incoming packet the VXLAN header, and wherein the VXALN header includes an outer MAC destination address (DA), an outer MAC source address (SA), an optional outer IEEE 802.1Q standard header, an outer IP DA, an outer IP SA, an outer User Datagram Protocol (UDP), and a VXLAN ID.

14. The apparatus of claim 7 , wherein the packet comprises an Ethernet frame including an inner MAC destination address, an inner MAC source address, an optional inner IEEE 802.1Q standard header, Ethernet payload, and a cyclic redundancy check (CRC) field.

15. The apparatus of claim 7 , wherein the VTEP is coupled to a Layer Two (L2) or Layer Three (L3) network, a L2 or L3 switch, or a L2 or L3 router positioned between the VXLAN domain and the external component.

16. The apparatus of claim 7 , wherein the external component is located in a VLAN domain, a second VXLAN domain, or another domain different than the VXLAN domain.

17. A Virtual eXtensible Local Area Network (VXLAN) Tunnel End Point (VTEP) component comprising:

a processor; and

a computer readable storage medium storing programming for execution by the processor, the programming including instructions to:

receive a data packet from a virtual machine (VM) in a server, the data packet including a source media access control (MAC) address of the VM and a source internet protocol (IP) address of the VM;

determine that the data packet is not part of a VXLAN internal domain communications for the VM;

selectively replace the source MAC address of the VM in the data packet with a MAC address of the VTEP without masking the source IP address of the VM to obtain a modified data packet when the data packet is not part of the VXLAN internal domain communications, wherein the modified data packet specifies the MAC address of the VTEP and the source IP address of the VM; and

forward the modified data packet to an external component.

18. The VTEP component of claim 17 , wherein the programming includes further instructions to:

receive a packet on a path from one of a plurality of VMs in the VXLAN domain to an external client or another domain;

determine whether a destination Internet Protocol (IP) address and a source IP address in the packet fall into an IP address range of the same VXLAN domain or whether the destination IP address is a broadcast or multicast IP address;

encapsulate the packet with a VXLAN header when the destination IP address and the source IP address in the packet fall into an IP address range of the same VXLAN domain or when the destination IP address is a broadcast or multicast IP address; and

replace a source MAC address of a source VM in the packet with a MAC address of the VTEP when the destination IP address and the source IP address in the packet do not fall into an IP address range of the same VXLAN domain and when the destination IP address is not a broadcast or multicast IP address.

19. The VTEP component of claim 17 , wherein the programming includes further instructions to:

receive a packet on a path from an external client or another domain to one of a plurality of VMs in the VXLAN domain;

determine whether a destination User Datagram Protocol (UDP) port in the packet matches a VXLAN assigned UDP port;

decapsulate the packet by removing a VXLAN header when the destination UDP port in the packet matches a VXLAN assigned UDP port; and

replace a destination MAC address in the packet with a MAC address of a destination VM when the destination UDP port in the packet does not match a VXLAN assigned UDP port, wherein the MAC address of the destination VM matches a destination IP address of the same VM in the packet.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2013
From: ZHANG, HONG
To: FUTUREWEI TECHNOLOGIES, INC.
Reel/Frame 029899/0902 →
Continuity (1)
Related Publication 20140146817A1 · May 29, 2014