Patent ID: 8812727

Claim:
A system for distributed load balancing, comprising: a plurality of host computers coupled through a network, the host computers including an ingress host, an egress host, and a plurality of server hosts; a configuration data store accessible through said network, wherein the configuration data store stores configuration information that specifies one-to-one relationships between communication port numbers of the plurality of host computers and a respective plurality of network addresses serviced by the ingress host; wherein the ingress host is configured to: receive a request packet sent by a remote client to an original destination address serviced by the ingress host, wherein the original destination address is one of the respective plurality of network addresses; select, according to a load balancing protocol, a server host for processing the request packet, wherein the selected server host is one of the plurality of server hosts; evaluate the configuration information to identify one of a plurality of port numbers of the selected server host that corresponds to the original destination address, wherein each one of the plurality of port numbers corresponds to a respective different one of the plurality of network addresses serviced by the ingress host; and send the request packet to the identified port number of the selected server host, wherein the request packet specifies the remote client's network address as a source; wherein the selected server host is configured to receive the request packet on the port number identified by the ingress host; identify the original destination address in response to comparing the port number on which the request packet was received to said configuration information; evaluate the remote client's network address from the request packet against an access control policy; generate a response packet that includes the remote client's network address as a source and the network address of the egress host as a destination; evaluate the configuration information to determine one of a plurality of port numbers of the egress host that corresponds to the original destination address of the request packet, wherein each of the plurality of port numbers of the egress host corresponds one-to-one with a respective different one of the network addresses serviced by the ingress host; and send the response packet to the identified port number of the egress host; wherein the egress host is configured to receive the response packet on the port number identified by the selected server host, identify the original destination address of the request packet by comparing the port number on which the response packet is received to the configuration information, modify the response packet such that the original destination address is specified as the source of the response packet, and send the response packet to the remote client.