OVH – Xen 4.0 IPfailover e Bridge Linux in Debian
August 27, 2011 — 17:54

Author: f0ff0 | Category: SysAdmin | Tags: , , , , | Comments: 0
datacenter

Ovh è tra le più interessanti aziende del panorama europeo in ambito soluzioni web.
Tra i tanti servizi offerti, si distingue per economicità e qualità l’offerta “server dedicati” che include, tra le tant ecose, fino a 3 indirizzi IP.

XEN e OVH
Ovh ha una distribuzione XEN preconfigurata.
Nel caso si desideri utilizzare una distribuzione Xen non-ovh, questo howto può essere utile per configurare le IP failover e associarle a macchine virtuali xen. l’howto è basato su Debian, ma è applicabile a tutte le differenti distribuzioni linux.

Configurazione IP failover
Per prima cosa occorre configurare le IP failover come aliases sul server fisico (Xen Host). In debian modificare il file /etc/network/interfaces

# Sostituire address con l'ip failover assegnata
auto eth0:1
iface eth0:1 inet static
        address 94.23.XX.YY
        netmask 255.255.255.255

A questo punto la nuova IP già risponderà al ping (naturalmente solo dopo aver eseguito il restart della rete o aver aggiunto manualmente l’indirizzo ip).

Preparazione del Bridge per le macchine virtuali
Il passo seguente consiste nel creare un bridge per le macchine virtuali. In soldoni, abbiamo bisogno di creare una rete privata virtuale dove le macchine virtuali e il server fisico possano comunicare.
I pacchetti proveninenti dalle macchine virtuali quindi, gireranno sulla rete privata dove il server fisico sarà il gateway delle macchine virtuali e si occuperà del forwarding dei pacchetti.

Consideriamo la rete 192.168.1.0 come rete privata e l’indirizzo 192.168.1.10 appartenente al server fisico (XEN host). Si procede quindi creando il bridge “br0″, aggiungendo la seguente entrata direttamente nel file /etc/network/interfaces di Debian:
Aggiungiamo al bridge l’interfaccia speciale dummy0 dal momento che non disponiamo di una seconda eth per la rete privata:

auto br0
iface br0 inet static
        bridge_ports dummy0
        address 192.168.1.10
        netmask 255.255.255.0

Il bridge “br0″ sarà l’interfaccia che si utilizzerà nei guest Xen

IP forwarding
Il server fisico (XEN Host) sarà quindi il gateway delle macchine virtuali e perciò, dal momento che sarà incaricato allo smistamento dei pacchetti verso l’esterno e quindi alle operazioni di forwarding, si deve abilitare l’ip forwarding con il seguente comando (nel caso non lo sia già):

echo 1 > /proc/sys/net/ipv4/ip_forward

Per far si che il parametro non si perda al prossimo reboot, settare net.ipv4.ip_forward a 1 direttamente nel file /etc/sysctl.conf

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

Iptables (PREROUTING POSTROUTING)
A questo punto, non ci rimane altro che configurare le regole di prerouting e postrouting.
Nel seguente esempio, la macchina virtuale con IP 192.168.1.11 riceverà il traffico entrante dall’IP failover 94.23.XX.YY

-A PREROUTING -d 94.23.XX.YY/32 -i eth0 -j DNAT --to-destination 192.168.1.11
-A POSTROUTING -s 192.168.1.11 -o eth0 -j SNAT --to-source 94.23.XX.YY

Configurazione XEN
La gestione del bridge e delle interfacce di rete avviene direttamente con linux e non con Xen. Per questa ragione, controllare bene che nel file /etc/xen/xend-config.sxp siano commentati parametri quali:

#(network-script network-bridge)
#(network-script 'network-bridge netdev=eth1')
#(vif-script vif-bridge)
#(network-script network-nat)
Twitter 0 Facebook 0 Google+ 0