3.2.2. Instradamento diretto e iptables
È possibile risolvere il problema riguardante ARP durante l'utilizzo del metodo d'instradamento diretto, tramite la creazione delle regole firewall di
iptables
. Per configurare l'instradamento diretto utilizzando iptables
, è necessario utilizzare regole in grado di creare un proxy trasparente, e che permettono quindi ad un real server di servire i pacchetti inviati all'indirizzo VIP, anche se l'indirizzo VIP non è presente sul sistema.
Il metodo
iptables
è più semplice da configurare rispetto al metodo arptables_jf
. Questo metodo è in grado di evitare interamente le problematiche LVS ARP, poichè gli indirizzi IP virtuali esistono solo sul director LVS attivo.
Tuttavia sono presenti alcune problematiche relative alla prestazione se si utilizza il metodo
iptables
rispetto a arptables_jf
. Tali problematiche sono dovute ad un overhead nel forwarding/masquerading di ogni pacchetto.
Non è possibile altresì riutilizzare le porte usando il metodo
iptables
. Per esempio, non è possibile eseguire due servizi Apache HTTP Server separati ma uniti alla porta 80, poichè entrambi devono essere uniti a INADDR_ANY
invece degli indirizzi IP virtuali.
Per configurare l'instradamento diretto utilizzando il metodo
iptables
, seguite le fasi di seguito riportate:
- Su ogni real server eseguite il seguente comando per ogni combinazione di protocollo (TCP o UDP), VIP, e porta da servire:
iptables -t nat -A PREROUTING -p <tcp|udp> -d <vip> --dport <port> -j REDIRECT
Questo comando causerà la processazione da parte dei real server, dei pacchetti destinati al VIP e alla porta a loro conferiti. - Salvate la configurazione su ogni real server:
#
service iptables save
#chkconfig --level 2345 iptables on
I comandi sopra riportati causano il ricaricamento della configurazione diiptables
al momento dell'avvio — prima dell'avvio della rete.