Direct server return is usually shortened to DSR.
In DSR mode, the load-balancer routes packets to the backends without changing anything in it but the destination MAC address.
The backends process the requests and answer directly to the clients, without passing through the load-balancer.
The backends must have the service IP configured on a loopback to be able to accept the requests.
TCP connection overview
As usual when performing layer 4 load-balancing, the TCP connection is established directly between the client and the backend.
Note that the requests pass through the load-balancer while the responses not.
As explained above, the load-balancer sees only the requests and just change the destination MAC address of the packets.
The backends answers directly to the client using the service IP configured on a loopback interface.
Pros and cons
- very fast load-balancing mode
- load-balancer network bandwith is not a bottleneck anymore
- total output bandwith is the sum of each backend bandwith
- less intrusive than the layer 4 load-balancing NAT mode
- the service VIP must be configured on a loopback interface on each backend and must not answer to ARP requests
- no layer 7 advanced features are available
When use this architecture?
- where response time matters
- where no intelligence is required
- when output capacity of the load-balancer could be the bottleneck
How do you do this type of load balancing using HAProxy?
You don’t, this is an LVS load-balancing mode.
yes you can with haproxy. check the Aloha doc