11.3. Servizi a porte multiple e Clustering LVS

I router LVS in qualsiasi topologia, richiedono una configurazione aggiuntiva quando si creano servizi LVS a porte-multiple. Essi possono essere creati artificialmente, usando i firewall marks per raggruppare protocolli diversi ma in relazione tra loro, come ad esempio HTTP (port 80) e HTTPS (port 443), o quando si usa un LVS per protocolli a porte-multiple del cluster, come ad esempio FTP. In entrambi i casi, il router LVS usa i firewall marks per riconoscere che i pacchetti destinati a porte diverse, ma attinenti allo stesso firewall mark, devono essere trattati in modo identico. Altresí quando combinati con la persistenza, i firewall marks assicurano che i collegamenti del dispositivo del client, siano direzionati allo stesso host, questo fino a quando i collegamenti siano allinterno dell'arco di tempo specificato dal parametro della persistenza. Per maggiori informazioni sull'assegnazione della persistenza ad un server virtuale, controllare la Sezione 12.6.1.

Sfortunatamente, il meccanismo usato per bilanciare i carichi sui server reali — IPVS — puó riconoscere i firewall mark assegnati ad un pacchetto, ma a sua volta non é in grado di assegnarne alcuno. Il lavoro di assegnazione dei firewall mark, deve essere eseguito da un filtro del pacchetto di rete, come ad esempio iptables all'esterno di Tool di configurazione di Piranha.

11.3.1. Assegnazione dei Firewall Marks

Per assegnare i firewall mark ad un pacchetto destinato ad una porta particolare, l'amministratore deve usare iptables.

Questa sezione mostra come raggruppare HTTP e HTTPS in un unico esempio, é da notare che comunque FTP é un altro protocollo clasterizzato comune a porte-multiple. Se un cluster LVS é usato per dei servizi FTP, far riferimento alla Sezione 11.4 per maggiori informazioni su come configurare in modo migliore il cluster.

La regola di base da tener presente quando si usano i firewall marks, é che per ogni protocollo che usa un firewall mark del Tool di configurazione di Piranha, ci deve essere una regola iptables proporzionata, per assegnare i mark ai pacchetti di rete.

Prima di creare delle regole del filtro del pacchetto di rete, assicurarsi che non ve ne siano presenti altre. Per fare ció, aprire una prompt della shell, effettuare un login come un utente root ed inserire:

/sbin/service iptables status

Se iptables non é in esecuzione, il prompt riapparirá istantaneamente.

Se iptables non é é in funzione, esso mostrerá una serie di regole. Se le regole sono presenti, digitare il seguente comando:

/sbin/service iptables stop

Se le regole giá presenti sono regole importanti, controllare il contenuto di /etc/sysconfig/iptables, e copiare in un luogo sicuro le regole che possono essere utili, per poi procedere.

Di seguito sono riportate le regole che assegnano lo stesso firewall mark, 80, per il traffico in arrivo destinato all'indirizzo IP floating n.n.n.n sulle porte 80 e 443. Per istruzioni su come assegnare il VIP all'interfaccia di rete pubblica, controllare la Sezione 12.6.1. Notare anche che l'utente deve effettuare un login come un utente root e caricare il modulo per iptables prima di emettere le regole per la prima volta.

/sbin/modprobe ip_tables
/sbin/iptables -t mangle -A PREROUTING -p tcp \
	    -d n.n.n.n/32 --dport 80 -j MARK --set-mark 80
/sbin/iptables -t mangle-A PREROUTING -p tcp \
               -d n.n.n.n/32 --dport 443 -j MARK --set-mark 80

Nei comandi iptables, n.n.n.n dovrebbe essere sostituito con l'IP floating per i vostri HTTP e HTTPS dei server virtuali. Questi comandi hanno un effetto di rete di assegnare un firewall mark 80 ad ogni traffico indirizzato al VIP delle porte appropriate, il quale in ritorno, é riconosciuto dal IPVS e inoltrato propriamente.

AttenzioneAttenzione
 

I comandi sopra indicati hanno un effetto immediato, ma non sono persistenti attraverso un riavvio del sistema. Per assicurare che le impostazioni del filtro del pacchetto di rete siano ripristinate al riavvio, far riferimento alla Sezione 11.5