3.2. Load Balancer Add-On tramite instradamento diretto
Come mostrato in Sezione 1.4.2, «Instradamento diretto», l'instradamento diretto permette ai real server di processare e direzionare i pacchetti direttamente all'utente richiedente invece di passare i pacchetti in uscita attraverso il router LVS. L'instradamento diretto ha bisogno di una connessione fisica dei real server ad un segmento di rete con il router LVS, i quali a loro volta sono in grado di processare e direzionare i pacchetti in uscita.
- Disposizione di rete
- In una impostazione Load Balancer Add-On dell'instradamento diretto, il router LVS avrà bisogno di ricevere le richieste in entrata e direzionarle al real server corretto per una loro processazione. I real server a loro volta dovranno instradare direttamente le risposte al client. Ciò significa che se il client è su internet ed invia il pacchetto ad un real server attraverso il router LVS, il real server dovrà essere in grado di contattare direttamente il client attraverso internet. È possibile eseguire tale processo attraverso la configurazione del gateway per il real server, in modo da passare i pacchetti ad internet. Ogni real server nel pool dei server, può avere un proprio gateway separato (e ogni gateway può avere un proprio collegamento ad internet), permettendo di avere una portata e scalabilità massima. Tuttavia per impostazioni Load Balancer Add-On tipiche i real server possono comunicare attraverso un gateway (e quindi un collegamento di rete).
Importante
Non è consigliato utilizzare il router LVS come gateway per i real server, poichè sarà possibile creare una impostazione più complessa e non necessaria insieme ad un carico di rete sul router LVS, questa impostazione causerà alcune limitazioni nell'instradamento NAT. - Hardware
- I requisiti hardware di un sistema Load Balancer Add-On che utilizza un instradamento diretto sono simili ad altre tipologie Load Balancer Add-On. Mentre il router LVS ha bisogno di eseguire Red Hat Enterprise Linux per processare le richieste in entrata ed eseguire il bilanciamento del carico per i real server, i real server non hanno bisogno di essere machine Linux per funzionare correttamente. I router LVS necessitano ciascuno di uno o due NIC (se è presente un router di backup). Potrete utilizzare due NIC per facilitare la configurazione e per separare in modo netto il traffico — le richieste in ingresso vengono gestite da un solo NIC, ed i pacchetti indirizzati ai real server gestiti dal secondo.Poichè i real server bypassano il router LVS ed inviano i pacchetti in uscita direttamente ad un client, sarà necessario implementare un gateway per Internet. Per una disponibilità e prestazione massima, ogni real server può essere collegato alla rete portante alla quale il client è collegato (come ad esempio Internet o intranet).
- Software
- Da eseguire una ulteriore configurazione esterna al Piranha Configuration Tool in modo paricolare per amministratori che affrontano problematiche ARP durante l'utilizzo del Load Balancer Add-On tramite un instradamento diretto. Consultate la Sezione 3.2.1, «Instradamento diretto e
arptables_jf
» o Sezione 3.2.2, «Instradamento diretto eiptables
» per maggiori informazioni.
3.2.1. Instradamento diretto e arptables_jf
Per poter configurare l'instradamento diretto utilizzando
arptables_jf
è necessario aver configurato su ogni real server un indirizzo IP virtuale in modo da instradare direttamete i pacchetti. Le richieste ARP per il VIP vengono ignorate dai real server, e qualsiasi pacchetto ARP che potrebbe essere inviato con al suo interno un VIP, viene modificato in modo da contenere l'IP del real server.
Utilizzando il metodo
arptables_jf
le applicazioni potrebbero associarsi ad ogni VIP o porta individuali serviti dal real server. Per esempio, il metodo arptables_jf
permette a istanze multiple di Apache HTTP Server di essere eseguite esplicitamente su VIP diversi del sistema. L'utilizzo di arptables_jf
comporta vantaggi significativi in termini di prestazione rispetto all'opzione iptables
.
Tuttavia utilizzando il metodo
arptables_jf
i VIP non potranno essere configurati per avviarsi al boot utilizzando gli strumenti di configurazione del sistema di Red Hat Enterprise Linux.
Per configurare ogni real server in modo da ignorare le richieste ARP per ogni indirizzo IP virtuale, seguite le fasi di seguito riportate:
- Create le voci della tabella ARP per ogni indirizzo IP virtuale su ogni real server (il real_ip è l'IP usato dal director per comunicare con il real server; spesso è l'IP assegnato all'
eth0
):arptables -A IN -d <virtual_ip> -j DROP arptables -A OUT -s <virtual_ip> -j mangle --mangle-ip-s <real_ip>
Ciò permetterà ai real server di ignorare tutte le richieste ARP per gli indirizzi IP virtuali, modificando qualsiasi risposta ARP in uscita che potrebbe contenere l'IP virtuale se non modificata, contenendo invece l'IP reale del server. L'unico nodo che dovrebbe rispondere alle richieste ARP per qualsiasi VIP, risulta essere il nodo LVS attivo. - Una volta completato questo processo su ogni real server, salvate le voci per la tabella ARP digitando i seguenti comandi su ogni real server:
service arptables_jf save
chkconfig --level 2345 arptables_jf on
Il comandochkconfig
causerà il ricaricamento della configurazione di arptables al momento dell'avvio da parte del sistema — prima dell'avvio della rete. - Configurate l'indirizzo IP virtuale su tutti i real server utilizzando
ifconfig
per creare un alias IP. Per esempio:#
ifconfig eth0:1 192.168.76.24 netmask 255.255.252.0 broadcast 192.168.79.255 up
Oppure utilizzando l'utilitàiproute2
,ip
, per esempio:#
ip addr add 192.168.76.24 dev eth0
Come precedentemente riportato, gli indirizzi IP virtuali non possono essere configurati in modo da aviarsi al boot utilizzando i tool di configurazione del sistema di Red Hat. Una soluzione a questo problema potrebbe essere quella di posizionare i suddetti comandi in/etc/rc.d/rc.local
. - Configurate Piranha per l'instradamento diretto. Per maggiori informazioni consultate il Capitolo 4, Configurazione di Load Balancer Add-On con Piranha Configuration Tool.