1.8.3.2. Instradamento diretto

L'instradamento diretto fornisce maggiori benefici per quanto riguarda le prestazioni rispetto al NAT routing. Esso permette ai real server di processare e direzionare i pacchetti direttamente ad un richiedente, invece di passare i pacchetti in uscita attraverso il router LVS. L'instradamento diretto riduce i problemi di prestazione della rete, relegando il compito del router LVS alla sola processazione dei pacchetti in entrata.
LVS Implemented with Direct Routing

Figura 1.23. LVS Implemented with Direct Routing

In una configurazione LVS direct-routing tipica, un router LVS riceve le richieste in entrata del server attraverso un IP virtuale (VIP), ed utilizza un algoritmo di programmazione per direzionare la richiesta al real server. Ogni real server processa le richieste ed invia le risposte direttamente ai client, bypassando i router LVS. L'instradamento diretto permette di avere una certa scalabilità, e quindi aggiungere real server senza aver bisogno che il router LVS direzioni i pacchetti in uscita dal real server al client, evitando un potenziale problema in presenza di carichi di rete maggiori.
Anche se sono presenti numerosi vantaggi nell'utilizzo dell'instradamento diretto in LVS, sono presenti alcune limitazioni. Il problema più comune tra l'instradamento diretto e LVS è rappresentato dall'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.
Il problema esistente con le richieste ARP in una configurazione LVS con instradamento diretto, è dovuto alla necessità di associare una richiesta del client fatta ad un indirizzo IP, con l'indirizzo MAC per la richiesta da gestire, l'indirizzo IP virtuale del router LVS deve anch'esso essere associato ad un MAC. Tuttavia, poichè sia il router LVS che i real server possiedono lo stesso VIP, la richiesta ARP viene trasmessa a tutti i nodi associati con il VIP. Tale operazione potrebbe causare diversi problemi come ad esempio la possibilità di associare il VIP direttamente ad uno dei real server, e processare la richiesta direttamente bypassando completamente il router LVS, ed annullando lo scopo della configurazione LVS. L'utilizzo di un router LVS con una CPU molto potente in grado di rispondere rapidamente alle richieste del client, porebbe non risolvere questo problema. Se il router LVS presenta un carico molto elevato, esso potrebbe rispondere alle richieste ARP molto più lentamente di un real server con un carico di lavoro normale, il quale sarà in grado di rispondere più velocemente e al quale verrà assegnato il VIP nella cache ARP del client richiedente.
Per risolvere questo problema le richieste in entrata dovrebbero solo associare il VIP al router LVS, il quale processerà correttamente le richieste, inviandole al gruppo di real server. È possibile eseguire questo processo utilizzando il tool arptables di filtraggio del pacchetto.