IP Library › Granted Patent US 9,148,367
Granted Patent B2
US 9,148,367 · App. 13/633,716 · Granted Sep 29, 2015

System and method for binding flows in a service cluster deployment in a network environment

Inventors: Sridar Kandaswamy (San Jose, CA); Rajasekhar Manam (San Jose, CA); Ramesh V. N. Ponnapalli (Sunnyvale, CA)
Assignee: CISCO TECHNOLOGY, INC.
H04L45/38H04L69/22
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,148,367
App. No.
13/633,716
Granted
Sep 29, 2015
Kind
B2
Abstract

A method is provided in one example and includes receiving a first packet of a connection between a client and a server. The first packet is tagged with a tag comprising a member id of a service node in a service cluster that includes a plurality of nodes having distinct member ids. The method can also include mapping the member id to the service node in a tag-to-node map; receiving a second packet of the connection, where the second packet is tagged with the tag comprising the member id; determining the service node from the tag-to-node map; and forwarding the second packet to the service node.

Claims (40)

1. A method, comprising:

receiving at a switch, from a service node in a service cluster, a first packet of a connection between a client and a server, wherein the switch and the service cluster are located between the client and the server in the connection, wherein the first packet is tagged with a tag comprising a member ID that identifies the service node, wherein the service cluster includes a plurality of service nodes having distinct member IDs and providing identical services to packets;

mapping the member ID to the service node in a tag-to-node map;

receiving a second packet of the connection, wherein the second packet is tagged with the tag comprising the member ID;

determining the service node from the tag-to-node map; and

forwarding the second packet to the service node.

2. The method of claim 1 , further comprising:

receiving at the switch, from the client, the first packet prior to being tagged;

choosing the service node according to an Equal Cost Multi-Path (ECMP) routing algorithm; and

forwarding the first packet prior to being tagged to the service node.

3. The method of claim 1 , wherein the service node generates the member ID, inserts the member ID into the tag, and tags the first packet with the member ID.

4. The method of claim 3 , wherein the service node receives the second packet tagged with the member ID, and strips the tag from the second packet.

5. The method of claim 1 , wherein a virtual switch at the server receives the first packet tagged with the tag comprising the member ID, maps the tag to the connection in a tag-to-flow map, and strips the tag from the first packet.

6. The method of claim 5 , wherein the virtual switch receives the second packet prior to being tagged, determines the member ID from the tag-to-flow map, and tags the second packet prior to being tagged with the member ID.

7. The method of claim 5 , wherein the connection is identified by parameters including a source address and a destination address.

8. The method of claim 5 , wherein the first packet is forwarded to an application hosted on the server, and the second packet is received from the application.

9. The method of claim 5 , wherein a flow table is maintained across the switch, plurality of service nodes and one or more servers, and wherein the flow table comprises at least the tag-to-node map and the tag-to-flow map.

10. The method of claim 1 , further comprising: incrementally adding one or more service nodes to the service cluster.

11. A non-transitory medium encoding logic that includes instructions for execution and when executed by a processor, is configured to perform operations comprising:

receiving at a switch, from a service node in a service cluster, a first packet of a connection between a client and a server, wherein the switch and the service cluster are located between the client and the server in the connection, wherein the first packet is tagged with a tag comprising a member ID that identifies the service node, wherein the service cluster includes a plurality of service nodes having distinct member IDs and providing identical services to packets;

mapping the member ID to the service node in a tag-to-node map;

receiving a second packet of the connection, wherein the second packet is tagged with the tag comprising the member ID;

determining the service node from the tag-to-node map; and

forwarding the second packet to the service node.

12. The non-transitory medium of claim 11 , wherein the service node generates the member ID, inserts the member ID into the tag and tags the first packet.

13. The non-transitory medium of claim 12 , wherein the service node receives the second packet tagged with the member ID, and strips the tag from the second packet.

14. The non-transitory medium of claim 11 , wherein a virtual switch at the server receives the first packet tagged with the tag comprising the member ID, maps the tag to the connection in a tag-to-flow map, and strips the tag from the first packet.

15. The non-transitory medium of claim 14 , wherein the virtual switch receives the second packet prior to being tagged, determines the member ID from the tag-to-flow map, and tags the second packet prior to being tagged with the member ID.

16. An apparatus, comprising:

a memory element for storing data; and

a processor that executes instructions associated with the data, wherein the processor and the memory element cooperate such that the apparatus is configured for:

receiving, from a service node in a service cluster, a first packet of a connection between a client and a server, wherein the apparatus and the service cluster are located between the client and the server in the connection, wherein the first packet is tagged with a tag comprising a member ID that identifies the service node, wherein the service cluster includes a plurality of nodes having distinct member IDs and providing identical services to packets;

mapping the member ID to the service node in a tag-to-node map;

receiving a second packet of the connection, wherein the second packet is tagged with the tag comprising the member ID;

determining the service node from the tag-to-node map; and

forwarding the second packet to the service node.

17. The apparatus of claim 16 , wherein the service node generates the member ID, inserts the member ID into the tag, and tags the first packet.

18. The apparatus of claim 17 , wherein the service node receives the second packet tagged with the member ID, and strips the tag from the second packet.

19. The apparatus of claim 16 , wherein a virtual switch at the server receives the first packet tagged with the tag comprising the member ID, maps the tag to the connection in a tag-to-flow map, and strips the tag from the first packet.

20. The apparatus of claim 19 , wherein the virtual switch receives the second packet prior to being tagged, determines the member ID from the tag-to-flow map, and tags the second packet prior to being tagged with the member ID.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2012
From: KANDASWAMY, SRIDAR; MANAM, RAJASEKHAR; PONNAPALLI, RAMESH V. N.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 029064/0633 →
Continuity (1)
Related Publication 20140092906A1 · Apr 3, 2014