Stateful services on stateless clustered edge
First Claim
1. A method for performing a service statefully at a cluster of nodes including first and second nodes, the method comprising:
- at the first node;
receiving a first packet for a first flow, based on a first set of flow identifiers of the first flow;
performing the service on the first packet and storing state information;
from the second node, receiving a second packet for a second flow that is part of one connection session with the first flow, wherein the second node initially received the second packet based on a second set of flow identifiers of the second flow and then forwarded the second packet to the first node as the first node previously processed the first flow that is part of the same connection session as the second flow; and
performing the service on the second packet by using state information stored at the first node for the connection session.
1 Assignment
0 Petitions
Accused Products
Abstract
In order to enable dynamic scaling of network services at the edge, novel systems and methods are provided to enable addition of add new nodes or removal of existing nodes while retaining the affinity of the flows through the stateful services. The methods provide a cluster of network nodes that can be dynamically resized to handle and process network traffic that utilizes stateful network services. The existing traffic flows through the edge continue to function during and after the changes to membership of the cluster. All nodes in the cluster operate in active-active mode, i.e., they are receiving and processing traffic flows, thereby maximizing the utilization of the available processing power.
98 Citations
20 Claims
-
1. A method for performing a service statefully at a cluster of nodes including first and second nodes, the method comprising:
at the first node; receiving a first packet for a first flow, based on a first set of flow identifiers of the first flow; performing the service on the first packet and storing state information; from the second node, receiving a second packet for a second flow that is part of one connection session with the first flow, wherein the second node initially received the second packet based on a second set of flow identifiers of the second flow and then forwarded the second packet to the first node as the first node previously processed the first flow that is part of the same connection session as the second flow; and performing the service on the second packet by using state information stored at the first node for the connection session. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
8. A method for performing a service statefully at a cluster of nodes including a plurality of nodes, the method comprising:
at a first node; based on an original source address in headers of a plurality of outgoing packets exiting a logical network segment, receiving the plurality of outgoing packets; performing a service on each outgoing packet; and for each of the outgoing packets, translating the original source address in the header of the outgoing packet to a translated source address that is uniquely associated with the first node to ensure that incoming packets that enter the logical network segment in response to the plurality of outgoing packets are received by the first node based on the translated source address, instead of being received by another node in the node cluster. - View Dependent Claims (9, 10)
-
11. A non-transitory machine readable medium storing a program for performing a service statefully at a cluster of nodes including a plurality of nodes, the program for execution on at least one processing unit of a first node, the program comprising sets of instructions for:
-
based on an original source address in headers of a plurality of outgoing packets exiting a logical network segment, receiving the plurality of outgoing packets; performing a service on each outgoing packet; and for each of the outgoing packets, translating the original source address in the header of the outgoing packet to a translated source address that is uniquely associated with the first node to ensure that incoming packets that enter the logical network segment in response to the plurality of outgoing packets are received by the first node based on the translated source address, instead of being received by another node in the node cluster. - View Dependent Claims (12, 13)
-
-
14. A non-transitory machine readable medium storing a program for execution on at least one processing unit, the program for performing a service statefully at a cluster of nodes including first and second nodes, the program comprising sets of instructions for:
-
at the first node; receiving a first packet for a first flow, based on a first set of flow identifiers of the first flow; performing the service on the first packet and storing state information; from the second node, receiving a second packet for a second flow that is part of one connection session with the first flow, wherein the second node initially received the second packet based on a second set of flow identifiers of the second flow and then forwarded the second packet to the first node as the first node previously processed the first flow that is part of the same connection session as the second flow; and performing the service on the second packet by using state information of the particular flow stored at the first node for the connection session. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification