IP Library Granted Patent US 10,243,916
Granted Patent B2
US 10,243,916 · App. 15/093,541 · Granted Mar 26, 2019

Control plane based technique for handling multi-destination traffic in overlay networks

Inventors: Mehak Mahajan (San Jose, CA); Samir D. Thoria (Saratoga, CA); Shyam Kapadia (San Jose, CA)
Assignee: CISCO TECHNOLOGY, INC.
H04L61/103G06F9/45558H04L12/4641H04L67/2842G06F2009/45595
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 10,243,916
App. No.
15/093,541
Granted
Mar 26, 2019
Kind
B2
Abstract

A method is provided in one example embodiment and includes receiving at a controller an Address Resolution Protocol (“ARP”) packet from a source VXLAN Tunnel End Point (“VTEP”) serving a source host and identifying a destination, the source VTEP having assigned thereto a Virtual Network Identifier (“VNI”) identifying a VXLAN network to which the source VTEP and a plurality of other VTEPs belong, the ARP packet being received by the controller via a control plane; determining whether the received ARP packet is a request message; and, if the received ARP packet is a request message, determining whether address information for the identified destination is stored in a cache of the controller.

Claims (50)

1. A method comprising:

receiving at a controller an Address Resolution Protocol (“ARP”) packet from a source VXLAN Tunnel End Point (“VTEP”) serving a source host and identifying a destination, the source VTEP having assigned thereto a Virtual Network Identifier (“VNI”) identifying a VXLAN network to which the source VTEP and a plurality of other VTEPs belong, the ARP packet being received by the controller via a control plane;

determining whether the received ARP packet is a request message;

if the received ARP packet is a request message, determining whether address information for the identified destination is stored in a cache of the controller;

if the destination address information is stored in the cache of the controller, sending a proxy ARP response to the source VTEP via the control plane, wherein the proxy ARP response includes the destination address information; and

if the destination address information is not stored in the cache of the controller, sending the request message to each one of the plurality of other VTEPs having the same VNI as the source VTEP via the control plane.

2. The method of claim 1 further comprising:

if the received ARP packet is not a request message, determining whether the received ARP packet is a response message; and

if the received ARP packet is a response message, updating the cache of the controller to include the destination address information contained in the response message and sending the response message to the source VTEP via the control plane.

3. The method of claim 2 further comprising:

determining whether the received ARP packet is a gratuitous ARP (“GARP”) message indicating a virtual machine (“VM”) move; and

if the received ARP packet is a GARP message indicating a VM move, updating the controller cache with VM address information included in the GARP message and forwarding the GARP message to the plurality of other VTEPs having the same VNI as the source VTEP via the control plane.

4. The method of claim 3 further comprising, if the received ARP packet is a GARP message that does not indicate a VM move, forwarding the GARP message to the plurality of other VTEPs having the same VNI as the source VTEP via the control plane.

5. The method of claim 1 , wherein the control plane comprises an OpenFlow control plane.

6. The method of claim 1 , wherein the controller comprises an OpenFlow Software Defined Network (“OF SDN”) controller.

7. The method of claim 1 , wherein upon receipt of the proxy ARP response from the controller, the source VTEP decapsulates the proxy ARP response and forwards the decapsulated proxy ARP response to the source host.

8. The method of claim 1 , wherein upon receipt of the response message from the controller, the source VTEP decapsulates the response message and forwards the decapsulated response message to the source host.

9. The method of claim 1 , wherein upon receipt of a request message from the controller, each one of the plurality of other VTEPs having the same VNI as the source VTEP decapsulates the request message and floods the decapsulated request message on all server ports of the VTEP having the same VNI as the source VTEP.

10. One or more non-transitory tangible media having encoded thereon logic that includes code for execution and when executed by a processor is operable to perform operations comprising:

receiving at a controller an Address Resolution Protocol (“ARP”) packet from a source VXLAN Tunnel End Point (“VTEP”) serving a source host and identifying a destination, the source VTEP having assigned thereto a Virtual Network Identifier (“VNI”) identifying a VXLAN network to which the source VTEP and a plurality of other VTEPs belong, the ARP packet being received by the controller via a control plane;

determining whether the received ARP packet is a request message;

if the received ARP packet is a request message, determining whether address information for the identified destination is stored in a cache of the controller;

if the destination address information is stored in the cache of the controller, sending a proxy ARP response to the source VTEP via the control plane, wherein the proxy ARP response includes the destination address information; and

if the destination address information is not stored in the cache of the controller, sending the request message to each one of the plurality of other VTEPs having the same VNI as the source VTEP via the control plane.

11. The media of claim 10 wherein the operations further comprise:

if the received ARP packet is not a request message, determining whether the received ARP packet is a response message; and

if the received ARP packet is a response message, updating the cache of the controller to include the destination address information contained in the response message and sending the response message to the source VTEP via the control plane.

12. The media of claim 11 wherein the operations further comprise:

determining whether the received ARP packet is a gratuitous ARP (“GARP”) message indicating a virtual machine (“VM”) move; and

if the received ARP packet is a GARP message indicating a VM move, updating the controller cache with VM address information included in the GARP message and forwarding the GARP message to the plurality of other VTEPs having the same VNI as the source VTEP via the control plane.

13. The media of claim 12 wherein the operations further comprise, if the received ARP packet is a GARP message that does not indicate a VM move, forwarding the GARP message to the plurality of other VTEPs having the same VNI as the source VTEP via the control plane.

14. The media of claim 10 , wherein upon receipt of the proxy ARP response from the controller, the source VTEP decapsulates the proxy ARP response and forwards the decapsulated proxy ARP response to the source host.

15. The media of claim 10 , wherein upon receipt of the response message from the controller, the source VTEP decapsulates the response message and forwards the decapsulated response message to the source host.

16. An apparatus comprising:

a memory element configured to store data;

a processor operable to execute instructions associated with the data; and

an Address Resolution Protocol (“ARP”) processing module configured to:

receive at a controller an Address Resolution Protocol (“ARP”) packet from a source VXLAN Tunnel End Point (“VTEP”) serving a source host and identifying a destination, the source VTEP having assigned thereto a Virtual Network Identifier (“VNI”) identifying a VXLAN network to which the source VTEP and a plurality of other VTEPs belong, the ARP packet being received by the controller via a control plane;

determine whether the received ARP packet is a request message;

if the received ARP packet is a request message, determine whether address information for the identified destination is stored in a cache of the controller;

if the destination address information is stored in the cache of the controller, send a proxy ARP response to the source VTEP via the control plane, wherein the proxy ARP response includes the destination address information; and

if the destination address information is not stored in the cache of the controller, send the request message to each one of the plurality of other VTEPs having the same VNI as the source VTEP via the control plane.

17. The apparatus of claim 16 , wherein the ARP processing module is further configured to:

if the received ARP packet is not a request message, determine whether the received ARP packet is a response message; and

if the received ARP packet is a response message, update the cache of the controller to include the destination address information contained in the response message and sending the response message to the source VTEP via the control plane.

18. The apparatus of claim 17 , wherein the ARP processing module is further configured to:

determine whether the received ARP packet is a gratuitous ARP (“GARP”) message indicating a virtual machine (“VM”) move; and

if the received ARP packet is a GARP message indicating a VM move, update the controller cache with VM address information included in the GARP message and forward the GARP message to the plurality of other VTEPs having the same VNI as the source VTEP via the control plane.

19. The apparatus of claim 18 , wherein the ARP processing module is further configured to, if the received ARP packet is a GARP message that does not indicate a VM move, forward the GARP message to the plurality of other VTEPs having the same VNI as the source VTEP via the control plane.

20. The apparatus of claim 16 , wherein the control plane comprises an OpenFlow control plane and the controller comprises an OpenFlow Software Defined Network (“OF SDN”) controller.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2020
From: MAHAJAN, MEHAK
To: CISCO TECHNOLOGY, INC.
Reel/Frame 052720/0899 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2016
From: MAHAJAN, MEHAK; THORIA, SAMIR D.; KAPADIA, SHYAM
To: CISCO TECHNOLOGY, INC.
Reel/Frame 038223/0269 →
Continuity (1)
Related Publication 20170295130A1 · Oct 12, 2017
Cited By (1)
US 12,452,213