Sto usando Open vSwitch per creare una rete commutata tra macchine guest virtualBox e voglio che il sistema operativo host (Ubuntu 12.04) si unisca a questa rete e configurarlo come gateway di questa rete virtuale:
Innanzitutto, ho creato uno switch virtuale e ho aggiunto porte per toccare i dispositivi (che le macchine virtuali li usano come interfacce a ponte):
ovs-vsctl add-br sw0
ovs-vsctl add-port sw0 tap0
Successivamente, ho impostato staticamente l'ip della macchina virtuale Lubuntu 12.04:
ifconfig eth0 192.168.1.3/24 up
route add -net 0.0.0.0/0 gw 192.168.1.1
Nel lato host dell'host, ho anche impostato l'indirizzo IP:
ifconfig sw0 192.168.1.1/24 up
In questo momento, posso eseguire il ping da Lubunut a Ubunutu. Voglio ora, nella macchina host, utilizzare IP Masquerade per inoltrare il traffico dalla rete 192.168.1.0/24 alla mia interazione fisica (connessa a Internet):
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -j MASQUERADE
Quindi da Lubuntu (la macchina virtuale), posso eseguire il ping dell'interfaccia Ubuntu eth1, ma non riesco a raggiungere la rete reale (ad esempio: il gateway sulla LAN reale), ho provato:
nslookup google.com
dig @8.8.8.8 yahoo.com
dig @192.168.30.1 google.com
Topologia di rete
Internet (real gw) ------ Host OS -------- vswitch -------- VBox Guest 1
192.168.30.1 ip masquerade 192.168.1.0/24
|
------------ VBox Guest 2