Load balancing using IPv6 mobility features
First Claim
1. A machine-implemented method for enabling communication between nodes, the method comprising the steps of:
- receiving a handshake phase initiation request that originated from a particular client node and was intercepted by a load-balancing node; and
engaging in a handshake phase with the particular client node using IPv6 mobility features to allow communication with the particular client node without further intervention by the load-balancing node;
wherein receiving the handshake phase initiation request comprises receiving, at a server node that is associated with a first Internet Protocol (IP) address, a first IP packet that contains a second IP packet that;
(a) indicates, as a destination IP address, a second IP address that differs from the first IP address,(b) indicates, as a source IP address, a third IP address, and(c) contains a Transmission Control Protocol (TCP) SYN packet; and
wherein engaging in the handshake phase comprises sending, toward the particular client node that is associated with the third IP address, a third IP packet that;
(a) contains a TCP SYN/ACK packet, and(b) contains an IPv6 Mobility Header that contains a Binding Update option;
wherein the Binding Update option indicates, in a Lifetime field, a value that is greater than zero;
wherein the presence of the value in the Lifetime field causes the client node to establish a cache entry comprising the first IP address and the second IP address locally within an IP layer cache;
wherein the cache entry remains in the IP layer cache for a period of time commensurate with the value indicated in the Lifetime field;
wherein the second IP address is a virtual IP address that is associated with a server cluster of a plurality of nodes that includes the server node.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques are provided for using the mobility support features of IPv6 to allow client and server nodes to communicate without the continuing intervention of a load-balancing node that selected the server node. A load-balancing node intercepts a TCP SYN packet addressed to a virtual IP address. The load-balancing node selects a server node from among multiple server nodes, and sends the packet toward the server node. The server node sends an IPv6 packet toward the client node. The packet contains a Binding Update option that specifies the virtual IP address as a Home Address. This information causes the client node to replace destination addresses in outgoing IP packets so that packets that the client node would have sent toward the virtual IP address are sent toward the selected server node'"'"'s IP address instead. Consequently, the IP packets are routed toward the selected server node instead of the load-balancing node.
74 Citations
12 Claims
-
1. A machine-implemented method for enabling communication between nodes, the method comprising the steps of:
-
receiving a handshake phase initiation request that originated from a particular client node and was intercepted by a load-balancing node; and engaging in a handshake phase with the particular client node using IPv6 mobility features to allow communication with the particular client node without further intervention by the load-balancing node; wherein receiving the handshake phase initiation request comprises receiving, at a server node that is associated with a first Internet Protocol (IP) address, a first IP packet that contains a second IP packet that; (a) indicates, as a destination IP address, a second IP address that differs from the first IP address, (b) indicates, as a source IP address, a third IP address, and (c) contains a Transmission Control Protocol (TCP) SYN packet; and wherein engaging in the handshake phase comprises sending, toward the particular client node that is associated with the third IP address, a third IP packet that; (a) contains a TCP SYN/ACK packet, and (b) contains an IPv6 Mobility Header that contains a Binding Update option; wherein the Binding Update option indicates, in a Lifetime field, a value that is greater than zero; wherein the presence of the value in the Lifetime field causes the client node to establish a cache entry comprising the first IP address and the second IP address locally within an IP layer cache; wherein the cache entry remains in the IP layer cache for a period of time commensurate with the value indicated in the Lifetime field; wherein the second IP address is a virtual IP address that is associated with a server cluster of a plurality of nodes that includes the server node. - View Dependent Claims (2, 3, 4)
-
-
5. An apparatus for enabling communication between nodes, the apparatus comprising:
-
a receiver that receives a handshake phase initiation request that originated from a particular client node and was intercepted by a load-balancing node; and a module that engages in a handshake phase with the particular node using IPv6 mobility features to allow communication with the particular client node without further intervention by the load-balancing node; wherein the receiver receives, at a server node that is associated with a first Internet Protocol (IP) address, a first IP packet that contains a second IP packet that; (a) indicates, as a destination IP address, a second IP address that differs from the first IP address, (b) indicates, as a source IP address, a third IP address, and (c) contains a Transmission Control Protocol (TCP) SYN packet; and wherein the module sends, toward the particular client node that is associated with the third IP address, a third IP packet that; (a) contains a TCP SYN/ACK packet, and (b) contains an IPv6 Mobility Header that contains a Binding Update option; wherein the Binding Update option indicates, in a Lifetime field, a value that is greater than zero; wherein the presence of the value in the Lifetime field causes the client node to establish a cache entry comprising the first IP address and the second IP address locally within an IP layer cache; wherein the cache entry remains in the IP layer cache for a period of time commensurate with the value indicated in the Lifetime field; wherein the second IP address is a virtual IP address that is associated with a server cluster of a plurality of nodes that includes the server node. - View Dependent Claims (6, 7, 8)
-
-
9. A volatile or non-volatile machine-readable storage medium on which is encoded one or more sequences of machine-readable code instructions for enabling communication between nodes, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform steps comprising:
-
receiving a handshake phase initiation request that originated from a particular client node and was intercepted by a load-balancing node; and engaging in a handshake phase with the particular client node using IPv6 mobility features to allow communication with the particular client node without further intervention by the load-balancing node; wherein receiving the handshake phase initiation request comprises receiving, at a server node that is associated with a first Internet Protocol (IP) address, a first IP packet that contains a second IP packet that; (a) indicates, as a destination IP address, a second IP address that differs from the first IP address, (b) indicates, as a source IP address, a third IP address, and (c) contains a Transmission Control Protocol (TCP) SYN packet; and engaging in the handshake phase comprises sending, toward the particular client node that is associated with the third IP address, a third IP packet that; (a) contains a TCP SYN/ACK packet, and (b) contains an IPv6 Mobility Header that contains a Binding Update option; wherein the Binding Update option indicates, in a Lifetime field, a value that is greater than zero; wherein the presence of the value in the Lifetime field causes the client node to establish a cache entry comprising the first IP address and the second IP address locally within an IP layer cache, wherein the cache entry remains in the IP layer cache for a period of time commensurate with the value indicated in the Lifetime field; wherein the second IP address is a virtual IP address that is associated with a server cluster of a plurality of nodes that includes the server node. - View Dependent Claims (10, 11, 12)
-
Specification