Estoy usando Open vSwitch para crear una red conmutada entre máquinas invitadas de virtualBox, y quiero que el sistema operativo host (Ubuntu 12.04) se una a esta red y lo configure como la puerta de enlace de esta red virtual:
Primero, creé un conmutador virtual y agregué puertos para aprovechar los dispositivos (que las máquinas virtuales los usan como interfaces puenteadas):
ovs-vsctl add-br sw0
ovs-vsctl add-port sw0 tap0
Después de eso, configuré estáticamente la ip de la máquina virtual Lubuntu 12.04:
ifconfig eth0 192.168.1.3/24 up
route add -net 0.0.0.0/0 gw 192.168.1.1
En el lado del host del sistema operativo, también configuré la dirección IP:
ifconfig sw0 192.168.1.1/24 up
En este momento, puedo hacer ping desde Lubunut a Ubunutu. Ahora quiero, en la máquina host, usar enmascaramiento de IP para reenviar el tráfico desde la red 192.168.1.0/24 a mi interacción física (conectada a Internet):
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -j MASQUERADE
Entonces, desde Lubuntu (la máquina virtual), puedo hacer ping a la interfaz Ubuntu eth1, pero no puedo llegar a la red real (por ejemplo: la puerta de enlace en la LAN real), he intentado:
nslookup google.com
dig @8.8.8.8 yahoo.com
dig @192.168.30.1 google.com
Topología de la red
Internet (real gw) ------ Host OS -------- vswitch -------- VBox Guest 1
192.168.30.1 ip masquerade 192.168.1.0/24
|
------------ VBox Guest 2