1.4.2. Direct Routing

Building a Load Balancer Add-On setup that uses direct routing provides increased performance benefits compared to other Load Balancer Add-On networking topologies. Direct routing allows the real servers to process and route packets directly to a requesting user rather than passing all outgoing packets through the LVS router. Direct routing reduces the possibility of network performance issues by relegating the job of the LVS router to processing incoming packets only.
Load Balancer Add-On Implemented with Direct Routing

Figure 1.4. Load Balancer Add-On Implemented with Direct Routing

In the typical direct routing Load Balancer Add-On setup, the LVS router receives incoming server requests through the virtual IP (VIP) and uses a scheduling algorithm to route the request to the real servers. The real server processes the request and sends the response directly to the client, bypassing the LVS router. This method of routing allows for scalability in that real servers can be added without the added burden on the LVS router to route outgoing packets from the real server to the client, which can become a bottleneck under heavy network load.

1.4.2.1. Direct Routing and the ARP Limitation

While there are many advantages to using direct routing in Load Balancer Add-On, there are limitations as well. The most common issue with Load Balancer Add-On by means of direct routing is with Address Resolution Protocol (ARP).
In typical situations, a client on the Internet sends a request to an IP address. Network routers typically send requests to their destination by relating IP addresses to a machine's MAC address with ARP. ARP requests are broadcast to all connected machines on a network, and the machine with the correct IP/MAC address combination receives the packet. The IP/MAC associations are stored in an ARP cache, which is cleared periodically (usually every 15 minutes) and refilled with IP/MAC associations.
The issue with ARP requests in a direct routing Load Balancer Add-On setup is that because a client request to an IP address must be associated with a MAC address for the request to be handled, the virtual IP address of the Load Balancer Add-On system must also be associated to a MAC as well. However, since both the LVS router and the real servers all have the same VIP, the ARP request will be broadcast to all the machines associated with the VIP. This can cause several problems, such as the VIP being associated directly to one of the real servers and processing requests directly, bypassing the LVS router completely and defeating the purpose of the Load Balancer Add-On setup.
To solve this issue, ensure that the incoming requests are always sent to the LVS router rather than one of the real servers. This can be done by using either the arptables_jf or the iptables packet filtering tool for the following reasons:
  • The arptables_jf prevents ARP from associating VIPs with real servers.
  • The iptables method completely sidesteps the ARP problem by not configuring VIPs on real servers in the first place.
For more information on using arptables or iptables in a direct routing Load Balancer Add-On environment, see Section 3.2.1, “Direct Routing and arptables_jf or Section 3.2.2, “Direct Routing and iptables.