1.4.2. Instradamento diretto
Un Load Balancer Add-On con un instradamento diretto rende disponibili migliori prestazioni rispetto ad altre tipologie di networking Load Balancer Add-On. L'instradamento diretto permette ai real server di processare e inoltrare i pacchetti ad un richiedente, senza passarli prima per il router LVS. Questo processo riduce i problemi di prestazione della rete, relegando il compito del router LVS alla sola processazione dei pacchetti in entrata.
Figura 1.4. Load Balancer Add-On implementato con instradamento diretto
In una configurazione Load Balancer Add-On con instradamento diretto 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. Il real server processa le richieste ed invia le risposte direttamente ai client, bypassando i router LVS. Questo metodo permette di avere una certa scalabilità, e quindi sarà possibile aggiungere un real server senza aver bisogno che il router LVS direzioni i pacchetti in uscita dal real server al client. Questo processo elimina potenziali vulnerabilità in presenza di carichi di rete maggiori.
1.4.2.1. Instradamento diretto e restrizioni ARP
Anche se l'uso di un instradamento diretto può apportare numerosi vantaggi in un Load Balancer Add-On sono presenti alcune limitazioni. Il problema più comune tra l'instradamento diretto e Load Balancer Add-On è rappresentato dall'Address Resolution Protocol (ARP).
In situazioni tipiche il client presente su internet invia una richiesta ad un indirizzo IP. I router di rete generalmente inviano le richieste alle proprie destinazioni, mettendo in relazione gli indirizzi IP con l'indirizzo MAC della macchina con ARP. Le richieste ARP vengono trasmesse a tutte le macchine collegate su di una rete, e la macchina con la combinazione indirizzo IP/MAC corretta riceve il pacchetto. Le associazioni IP/MAC vengono conservate in una cache ARP, la quale viene ripulita periodicamente (generalmente ogni 15 minuti), e riempita con associazioni IP/MAC.
Il problema esistente con le richieste ARP in una configurazione Load Balancer Add-On 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 sistema Load Balancer Add-On 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 il router LVS, annullando così lo scopo della configurazione Load Balancer Add-On.
Per risolvere questo problema le richieste in entrata dovrebbero essere sempre inviate al router LVS e non ad uno dei real server. È possibile eseguire questo processo utilizzando
arptables_jf
o iptables
per il filtro dei pacchetti quando:
arptables_jf
impedisce a ARP di associare i VIP con i real server.- Utilizzando
iptables
si eviterà completamente il problema dell'ARP poichè i VIP non verranno configurati sui real server.
Per maggiori informazioni sull'uso di
arptables
o iptables
in un ambiente Balancer Add-On con instradamento diretto consultare Sezione 3.2.1, «Instradamento diretto e arptables_jf
» o Sezione 3.2.2, «Instradamento diretto e iptables
».