Load balancing using IPv6 mobility features
First Claim
1. A method for enabling communication between nodes, the method comprising:
- receiving, at a server, a SYN packet forwarded from a load-balancing node, wherein the SYN packet (a) indicates a virtual address associated with a server cluster as a destination address of the SYN packet and (b) indicates a client address of a client from which the SYN packet originated as a source address of the SYN packet;
the server being one of a plurality of servers in the server cluster being load-balanced by the load-balancing node; and
sending, from the server to the client, a SYN/ACK packet that (a) indicates a physical non-virtual address of the server as a source address of the SYN/ACK packet, (b) indicates the client address as a destination address of the SYN/ACK packet, and (c) indicates a binding update destination option that specifies the virtual address as a home address;
receiving, with the server, an ACK packet sent from the client;
wherein the server and the load-balancing node each comprise one or more computing devices.
3 Assignments
0 Petitions
Accused Products
Abstract
Techniques are provided that 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.
-
Citations
18 Claims
-
1. A method for enabling communication between nodes, the method comprising:
-
receiving, at a server, a SYN packet forwarded from a load-balancing node, wherein the SYN packet (a) indicates a virtual address associated with a server cluster as a destination address of the SYN packet and (b) indicates a client address of a client from which the SYN packet originated as a source address of the SYN packet; the server being one of a plurality of servers in the server cluster being load-balanced by the load-balancing node; and sending, from the server to the client, a SYN/ACK packet that (a) indicates a physical non-virtual address of the server as a source address of the SYN/ACK packet, (b) indicates the client address as a destination address of the SYN/ACK packet, and (c) indicates a binding update destination option that specifies the virtual address as a home address; receiving, with the server, an ACK packet sent from the client; wherein the server and the load-balancing node each comprise one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system, comprising:
-
a load-balancing node comprising a processor that executes stored instructions causing the load-balancing node to select, based on a requested service indicated by a SYN packet sent from a client, a server from a server cluster to respond to the client; and the server selected from the server cluster comprising a processor and instructions that, when executed by the processor, cause the server to receive the SYN packet from the load-balancing node, wherein the SYN packet (a) indicates a virtual address associated with the server cluster as a destination address of the SYN packet and (b) indicates a client address of a client from which the SYN packet originated as a source address of the SYN packet; the server further caused by the instructions to send a SYN/ACK packet that (a) indicates a physical non-virtual address of the server as a source address of the SYN/ACK packet, (b) indicates the client address as a destination address of the SYN/ACK packet, and (c) indicates a binding update destination option that specifies the virtual address as a home address; the server further caused by the instructions to receive an ACK packet sent from the client. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A non-transitory machine-readable storage medium carrying one or more sequences of instructions, 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, at a server, a SYN packet forwarded from a load-balancing node, wherein the SYN packet (a) indicates a virtual address associated with a server cluster as a destination address of the SYN packet and (b) indicates a client address of a client from which the SYN packet originated as a source address of the SYN packet; the server being one of a plurality of servers in the server cluster being load-balanced by the load-balancing node; and sending, from the server to the client, a SYN/ACK packet that (a) indicates a physical non-virtual address of the server as a source address of the SYN/ACK packet, (b) indicates the client address as a destination address of the SYN/ACK packet, and (c) indicates a binding update destination option that specifies the virtual address as a home address; receiving, with the server, an ACK packet sent from the client. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification