IP Library › Granted Patent US 10,721,651
Granted Patent B2
US 10,721,651 · App. 15/721,505 · Granted Jul 21, 2020

Method and system for steering bidirectional network traffic to a same service device

Inventors: Anuraag Mittal (Santa Clara, CA); Aparna Sushrut Karanjkar (Santa Clara, CA); Nitin Ravindra Karkhanis (Santa Clara, CA)
Assignee: Arista Networks, Inc.
H04W28/08H04L45/7453H04W40/24H04W48/18H04W76/10H04W99/00H04L45/66H04L49/354
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,721,651
App. No.
15/721,505
Granted
Jul 21, 2020
Kind
B2
Abstract

A method and system for steering bidirectional network traffic to a same service device. Specifically, the disclosed method and system entail the maintaining and synchronization of link aggregation group (LAG) tables tied to a pair of LAG ports instantiated on a network element directly connected to a pair of peer linking service devices. Network traffic (i.e., MAC frames) arriving at the network element, from a first host and intended for a second host (e.g., indicative of a first direction of the network traffic), may be steered towards one of the pair of service devices based on hashing of information included in a received MAC frame in conjunction with the LAG table tied to the LAG port (of the pair of LAG ports) that which received the MAC frame.

Claims (102)

1. A method for handling media access control (MAC) frames, comprising:

obtaining, by a network element, a first MAC frame originating from a first host and addressed to a second host;

processing the first MAC frame to obtain a first virtual local area network (VLAN) tag;

identifying, using the first VLAN tag, a first link aggregation group (LAG) port comprising a first plurality of network interfaces;

deriving a first hash key using at least a portion of the first MAC frame;

identifying, using the first hash key, a first network interface of the network element, wherein the first plurality of network interfaces comprises the first network interface;

bridging, using the first network interface, the first MAC frame to a first service device of a pair of service devices directly connected to the network element;

obtaining a second MAC frame originating from the second host and addressed to the first host;

deriving a second hash key using at least a portion of the second MAC frame, wherein the second hash key and the first hash key are identical;

identifying, using the second hash key, a second network interface of the network element, wherein a second plurality of network interfaces of a second LAG port comprises the second network interface; and

bridging, using the second network interface, the second MAC frame to the first service device.

2. The method of claim 1 , wherein identifying the first network interface using the first hash key, comprises:

executing a hash function, with the first hash key as an input, to obtain a bucket ID;

performing, using the bucket ID, a lookup of a first LAG table associated with the first LAG port;

identifying a first LAG table entry in the first LAG table that specifies the bucket ID; and

obtaining the first network interface from, and also specified in, the first LAG table entry.

3. The method of claim 2 , further comprising:

synchronizing the first LAG table with a second LAG table associated with the second LAG port,

wherein the synchronizing comprises:

identifying the second network interface included in the second plurality of network interfaces that couples to the first service device; and

updating a second LAG table entry in the second LAG table to include the second network interface, wherein the second LAG table entry already includes the bucket ID.

4. The method of claim 1 , further comprising:

receiving, from the first service device and after the first service device performs a first service function involving the first MAC frame, the first MAC frame at a third network interface of the network element; and

transmitting the first MAC frame towards the second host,

wherein the second plurality of network interfaces comprises the third network interface.

5. The method of claim 1 , further comprising:

processing the second MAC frame to obtain a second VLAN tag; and

identifying the second LAG port using the second VLAN tag.

6. The method of claim 1 , further comprising:

receiving, from the first service device and after the first service device performs a second service function involving the second MAC frame, the second MAC frame at a third network interface of the network element; and

transmitting the second MAC frame towards the first host,

wherein the first plurality of network interfaces comprises the third network interface.

7. A system, comprising:

a network element operatively connected to a plurality of hosts, and comprising a processor and a first plurality of network interfaces; and

a pair of service devices directly connected to the network element,

wherein the processor is programmed to:

obtain a first media access control (MAC) frame originating from a first host and addressed to a second host of the plurality of hosts;

process the first MAC frame to obtain a first virtual local area network (VLAN) tag;

identify, using the first VLAN tag, a first link aggregation group (LAG) port comprising a second plurality of network interfaces, wherein the second plurality of network interfaces is a subset of the first plurality of network interfaces;

derive a first hash key using at least a portion of the first MAC frame;

identify, using the first hash key, a first network interface of the network element, wherein the second plurality of network interfaces comprises the first network interface;

bridge, using the first network interface, the first MAC frame to a first service device of the pair of service devices;

obtain a second MAC frame originating from the second host and addressed to the first host;

derive a second hash key using at least a portion of the second MAC frame, wherein the second hash key and the first hash key are identical;

identify, using the second hash key, a second network interface of the network element, wherein a third plurality of network interfaces of a second LAG port comprises the second network interface; and

bridge, using the second network interface, the second MAC frame to the first service device.

8. The system of claim 7 , wherein to identify the first network interface using the first hash key, the processor is programmed to:

execute a hash function, with the first hash key as an input, to obtain a bucket ID;

perform, using the bucket ID, a lookup of a first LAG table associated with the first LAG port;

identify a first LAG table entry in the first LAG table that specifies the bucket ID; and

obtain the first network interface from, and also specified in, the first LAG table entry.

9. The system of claim 8 , wherein the processor is further programmed to:

synchronize the first LAG table with a second LAG table associated with the second LAG port, wherein the third plurality of network interfaces is a subset of the first plurality of network interfaces that exclude the second plurality of network interfaces,

wherein to perform the synchronizing, the processor is programmed to:

identify the second network interface included in the third plurality of network interfaces that couples to the first service device; and

update a second LAG table entry in the second LAG table to include the second network interface, wherein the second LAG table entry already includes the bucket ID.

10. The system of claim 7 , wherein the processor is further programmed to:

receive, from the first service device and after the first service device performs a first service function involving the first MAC frame, the first MAC frame at a third network interface of the network element; and

transmit the first MAC frame towards the second host of the plurality of hosts,

wherein the third plurality of network interfaces is a subset of the first plurality of network interfaces that exclude the second plurality of network interfaces,

wherein the third plurality of network interfaces comprises the third network interface.

11. The system of claim 7 , wherein the processor is further programmed to:

process the second MAC frame to obtain a second VLAN tag; and

identify the second LAG port using the second VLAN tag.

12. The system of claim 7 , wherein the processor is further programmed to:

receive, from the first service device and after the first service device performs a second service function involving the second MAC frame, the second MAC frame at a third network interface of the network element; and

transmit the second MAC frame towards the first host,

wherein the second plurality of network interfaces comprises the third network interface.

13. The system of claim 7 , wherein the network element is one selected from a group consisting of a switch, a router, and a multilayer switch.

14. The system of claim 7 , wherein the network element is a member of a multi-chassis link aggregation (MLAG) pair.

15. A non-transitory computer readable medium (CRM) comprising computer readable program code, which when executed by a computer processor, enables the computer processor to:

obtain, by a network element, a first media access control (MAC) frame originating from a first host and addressed to a second host;

process the first MAC frame to obtain a first virtual local area network (VLAN) tag;

identify, using the first VLAN tag, a first link aggregation group (LAG) port comprising a first plurality of network interfaces;

derive a first hash key using at least a portion of the first MAC frame;

identify, using the first hash key, a first network interface of the network element, wherein the first plurality of network interfaces comprises the first network interface;

bridge, using the first network interface, the first MAC frame to a first service device of a pair of service devices directly connected to the network element;

obtain a second MAC frame originating from the second host and addressed to the first host;

derive a second hash key using at least a portion of the second MAC frame, wherein the second hash key and the first hash key are identical;

identify, using the second hash key, a second network interface of the network element, wherein a second plurality of network interfaces of a second LAG port comprises the second network interface; and

bridge, using the second network interface, the second MAC frame to the first service device.

16. The non-transitory CRM of claim 15 , wherein to identify the first network interface using the first hash key, the computer readable program code, when executed by the computer processor, enables the computer processor to:

execute a hash function, with the first hash key as an input, to obtain a bucket ID;

perform, using the bucket ID, a lookup of a first LAG table associated with the first LAG port;

identify a first LAG table entry in the first LAG table that specifies the bucket ID; and

obtain the first network interface from, and also specified in, the first LAG table entry.

17. The non-transitory CRM of claim 16 , further comprising additional computer readable program code, which when executed by the computer processor, further enables the computer processor to:

synchronize the first LAG table with a second LAG table associated with a second LAG port,

wherein to perform the synchronizing, the additional computer readable program code, when executed by the computer processor, enables the computer processor to:

identify the second network interface included in the second plurality of network interfaces that couples to the first service device; and

update a second LAG table entry in the second LAG table to include the second network interface, wherein the second LAG table entry already includes the bucket ID.

18. The non-transitory CRM of claim 15 , further comprising additional computer readable program code, which when executed by the computer processor, further enables the computer processor to:

receive, from the first service device and after the first service device performs a first service function involving the first MAC frame, the first MAC frame at a third network interface of the network element; and

transmit the first MAC frame towards the second host,

wherein the second plurality of network interfaces comprises the third network interface.

19. The non-transitory CRM of claim 15 , further comprising additional computer readable program code, which when executed by the computer processor, further enables the computer processor to:

process the second MAC frame to obtain a second VLAN tag; and

identify the second LAG port using the second VLAN tag.

20. The non-transitory CRM of claim 15 , further comprising additional computer readable program code, which when executed by the computer processor, further enables the computer processor to:

receive, from the first service device and after the first service device performs a second service function involving the second MAC frame, the second MAC frame at a third network interface of the network element; and

transmit the second MAC frame towards the first host,

wherein the first plurality of network interfaces comprises the third network interface.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2017
From: MITTAL, ANURAAG; KARANJKAR, APARNA SUSHRUT; KARKHANIS, NITIN RAVINDRA
To: ARISTA NETWORKS, INC.
Reel/Frame 044340/0846 →
Continuity (1)
Related Publication 20190104438A1 · Apr 4, 2019