Server load balancing using IP option field approach to identify route to selected server
First Claim
1. A method of routing data from a client through one or more load-balancing nodes to a selected load-balanced server among a plurality of servers in a network, the method comprising the steps of:
- receiving, at a last load balancing node associated with a selected server among the plurality of servers, a first packet of a server reply to a request from the client;
setting a first flag value in the first packet of the server reply;
storing one or more identifiers of ingress interfaces on which the packet arrives, in a send path list for server load balancing, as the first packet of the server reply is routed from the last load balancing node to the client using hop-by-hop decisions;
receiving one or more subsequent packets of the client request;
setting a second flag value in each of the subsequent packets; and
forwarding the subsequent packets to the selected server only on a route that is defined by the send path list and without hop-by-hop routing decisions.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of routing data from a client through one or more load-balancing nodes to a selected load-balanced server among a plurality of servers in a network involves: receiving, at a last load balancing node associated with a selected server among the plurality of servers, a first packet of a server reply to a request from the client; setting a first flag value in the first packet of the server reply; storing one or more identifiers of ingress interfaces on which the packet arrives, in a send path list for server load balancing, as the first packet of the server reply is routed from the last load balancing node to the client using hop-by-hop decisions; receiving one or more subsequent packets of the client request; setting a second flag value in each of the subsequent packets; and forwarding the subsequent packets to the selected server only on a route that is defined by the send path list and without hop-by-hop routing decisions. As a result, packet flows are rapidly routed from the same client to the same server without time-consuming hop-by-hop routing decisions or repeated load-balancing decisions.
-
Citations
39 Claims
-
1. A method of routing data from a client through one or more load-balancing nodes to a selected load-balanced server among a plurality of servers in a network, the method comprising the steps of:
-
receiving, at a last load balancing node associated with a selected server among the plurality of servers, a first packet of a server reply to a request from the client; setting a first flag value in the first packet of the server reply; storing one or more identifiers of ingress interfaces on which the packet arrives, in a send path list for server load balancing, as the first packet of the server reply is routed from the last load balancing node to the client using hop-by-hop decisions; receiving one or more subsequent packets of the client request; setting a second flag value in each of the subsequent packets; and forwarding the subsequent packets to the selected server only on a route that is defined by the send path list and without hop-by-hop routing decisions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method of routing data from a client through one or more load-balancing nodes to a selected load-balanced server among a plurality of servers in a network, the method comprising the steps of:
-
receiving a first packet of a client request at a first node in the network associated with the client; receiving a first packet of a server reply at a last node associated with a selected server among the plurality of servers; storing one or more identifiers of ingress interfaces on which the packet arrives, in a send path list, as the first packet of the server reply is routed from the selected server to the client using hop-by-hop decisions, based on setting an IP-RECORD-ROUTE-OPTION-FOR-SLB first flag value in the first packet of the server reply, wherein the first flag value signals that the packet contains a send path list; receiving one or more subsequent packets of the client request; setting an IP-STRICT-ROUTE-OPTION-FOR-SLB second flag value in each of the subsequent packets, wherein the second flag value instructs nodes to use the send path list for routing the subsequent packets; and forwarding the subsequent packets to the selected server on a route that is defined by the send path list and without hop-by-hop routing decisions. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A computer-readable medium carrying one or more sequences of instructions for routing data from a client through one or more load-balancing nodes to a selected load-balanced server among a plurality of servers in a network, which instructions, when executed by one or more processors, cause the one or more processors to carry out the steps of:
-
receiving, at a last load balancing node associated with a selected server among the plurality of servers, a first packet of a server reply to a request from a client; storing one or more identifiers of ingress interfaces on which the packet arrives, in a send path list, as the first packet of the server reply is routed from the selected server to the client using hop-by-hop decisions; setting a first flag value in the first packet of the server reply; receiving one or more subsequent packets of the client request; setting a second flag value in each of the subsequent packets; and forwarding the subsequent packets to the selected server on a route that is defined by the send path list and without hop-by-hop routing decisions. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37)
-
-
38. An apparatus for routing data from a client through one or more load-balancing nodes to a selected load-balanced server among a plurality of servers in a network, comprising:
-
means for receiving, at a last load balancing node associated with a selected server among the plurality of servers, a first packet of a server reply to a request from a client; means for storing one or more identifiers of ingress interfaces on which the packet arrives, in a send path list, as the first packet of the server reply is routed from the selected server to the client using hop-by-hop decisions; means for setting a first flag value in the first packet of the server reply; means for receiving one or more subsequent packets of the client request; means for setting a second flag value in each of the subsequent packets; and means for forwarding the subsequent packets to the selected server on a route that is defined by the send path list and without hop-by-hop routing decisions.
-
-
39. A load-balancing router, comprising:
-
a network interface that is coupled to a data network for receiving one or more packet flows therefrom; a processor; one or more stored sequences of instructions for routing data from a client through one or more load-balancing nodes to a selected load-balanced server among a plurality of servers in a network and which, when executed by the processor, cause the processor to carry out the steps of; receiving, at a last load balancing node associated with a selected server among the plurality of servers, a first packet of a server reply to a request from a client; storing one or more identifiers of ingress interfaces on which the packet arrives, in a send path list, as the first packet of the server reply is routed from the selected server to the client using hop-by-hop decisions; setting a first flag value in the first packet of the server reply; receiving one or more subsequent packets of the client request; setting a second flag value in each of the subsequent packets; and forwarding the subsequent packets to the selected server on a route that is defined by the send path list and without hop-by-hop routing decisions.
-
Specification