iptables
Configurare la rete per VMware server e gli IP Failover in un dedicato OVH
Prerequisiti
Innanzitutto dovete aver configurato un kernel modulare e installato vmware server con supporto per bridge e hostonly.
Inoltre potreste dover aggiungere altri IP failover da assegnare alle macchine virtuali.
Abilitare il forwarding
Verificate se ip_forware il proxy_arp sono abilitati:
shell# cat /proc/sys/net/ipv4/ip_forward 1 shell# cat /proc/sys/net/ipv4/conf/vmnet1/proxy_arp 1
Se è già così saltate questa sezione, altrimenti dovrete abilitarli.
shell# vi /etc/sysctl.conf
Aggiungete (o modificate se sono già presenti) queste due direttive:
net.ipv4.ip_forward = 1 net.ipv4.conf.vmnet1.proxy_arp=1
ricaricate le impostazioni con sysctl -p e verificate che i “cat” precedenti ora restituiscano 1. Se non è così potreste avere un kernel configurato male (mancanza del supporto iptables per il forwarding).
Aggiungere il routing dell’IP FailOver
Se in precedenza avete assegnato l’IP failover ad un alias della scheda dummy0 dovrete rimuoverlo, ad esempio:
shell# rm /etc/sysconfig/network-scripts/ifcfg-dummy0:0 shell# ifconfig dummy0:0 down
A questo punto dobbiamo aggiungere il routing per l’IP failover con
shell# route add [IPFAILOVER] dev vmnet1
A questo punto la macchina virtuale dovrebbe essere raggiungibile dall’esterno e viceversa, se invece la dovete configurare seguitemi al prossimo paragrafo.
Configurare la rete nel Guest OS
La configurazione di un guest è la seguente:
IP: [IPDIFAILOVER]
GATEWAY: [IPDIFAILOVER]
NETMASK: 255.255.255.255
E’ poi necessario assicurarsi che esista un routing di default verso la scheda di rete.
Se il guestOS è una fedora come per me allora dovrete configurare l’IP in /etc/sysconfig/network-scripts/ifcfg-eth0
shell# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static NETMASK=255.255.255.255 IPADDR=XX.XXX.XXX.XXX (IP FAILOVER) USERCTL=no IPV6INIT=no NM_CONTROLLED=no TYPE=Ethernet GATEWAY=XX.XXX.XXX.XXX (IP FAILOVER)
e poi dovrete creare la route di default
shell# echo "default dev eth0" > /etc/sysconfig/network-scripts/route-eth0
riavviando il servizio di rete dovrebbe funzionare tutto:
shell# service network restart
Automatizzare la configurazione al boot
Le istruzioni date fino ad ora non rendono persistenti le modifiche e quindi al primo riavvio dovrete ripeterle.
Come suggerito da Superkikim nell’articolo linkato prima ho creato un file routes.conf dove ho inserito l’elenco degli IP FailOver da assegnare alle VM:
shell# echo [IPFAILOVER] >> /etc/vmware/routes.conf
Invece di modificare l’init script di vmware ho preferito creare uno script /etc/rc.d/init.d/vmware-routes che si preoccupa di leggere quel file ed applicare le modifiche necessarie. Lo potete trovare qui.
Rendiamo lo script eseguibile ed aggiungiamolo alla sequenza di boot
shell# chmod 775 /etc/rc.d/init.d/vmware-routes
shell# chkconfig --add vmware-routes
Se avete vmware avviato potete provarlo e verificare che abbia funzionato con
shell# service vmware-routes start shell# route -n
L’ultima riga vi fornisce le route presenti e dovreste vedere, per ogni IP che avete scelto, una riga che dice che è assegnato alla vmnet1.
Troubleshooting
net.ipv4.conf.default.forwarding
Ho letto che qualcuno aggiunge anche queste due direttive al sysctl.conf, io non le ho.
net.ipv4.conf.default.forwarding=1 net.ipv4.conf.all.forwarding=1
FTP backup di OVH dalle macchine virtuali non funziona
Superkikim suggerisce di utilizzare questa regola iptables per poter utilizzare l’FTP backup di OVH dall’interno delle macchine virtuali:
shell# iptables -t nat -A POSTROUTING --source [IPFAILOVER] --match iprange --dst-range [IPFTPBACKUP] -j SNAT --to [IPDEDICATO]
In pratica solo per i pacchetti destinati all’FTP backup viene fatto NAT e non routing così che l’FTP backup accetti la connessione.
Questa regola può essere aggiunta nello script vmware-routes.
netmask 255.255.255.255 in Windows
In Windows non è possibile applicare la netmask 255.255.255.255 via interfaccia. Bisogna quindi impostare la 255.255.255.0 e poi sistemarla tramite regedit.
La rete del guest non va in Fedora Core 10
Nel mio caso (Fedora Core 10) il guestOS non otteneva correttamente l’indirizzo perchè il servizio NetworkManager provava ad ottenerne uno in DHCP e la gestione della rete HostOnly di VMWareServer ne assegnava uno nella rete privata della vmnet dell’host. Ho rimosso tutti i pacchetti relativi a NetworkManager ed ho attivato il servizio network standard
shell# chkconfig --levels 235 network on
Riferimenti
Articolo di GuiGui – OVH, Ip Failover dans une machine virtuelle VMWare
Pagine
Articoli recenti
Archivi
- Luglio 2009 (1)
- Giugno 2009 (3)
- Maggio 2009 (2)
- Aprile 2009 (8)
- Marzo 2009 (1)