conectar o switch vSwitch aberto à rede real: mascarada de iptables

9

Estou usando o Open vSwitch para criar uma rede comutada entre máquinas convidadas do virtualBox, e quero que o SO host (Ubuntu 12.04) ingresse nesta rede e configure-o como o gateway desta rede virtual:

Primeiro, criei um vswitch e adicionei portas aos dispositivos de toque (que as máquinas virtuais os usam como interfaces em ponte):

ovs-vsctl add-br sw0
ovs-vsctl add-port sw0 tap0

Depois disso, configurei estaticamente o ip da 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

No lado do host, também defino o endereço IP:

ifconfig sw0 192.168.1.1/24 up

Neste momento, eu posso executar ping de Lubunut para Ubunutu. Agora, na máquina host, quero usar o disfarce de IP para encaminhar o tráfego da rede 192.168.1.0/24 para o meu interace físico (conectado à Internet):

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -j MASQUERADE

Portanto, no Lubuntu (a máquina virtual), posso executar ping na interface Ubuntu eth1, mas não consigo acessar a rede real (por exemplo: o gateway na LAN real), tentei:

nslookup google.com
dig @8.8.8.8 yahoo.com
dig @192.168.30.1 google.com

Topologia de rede

   Internet (real gw) ------ Host OS -------- vswitch -------- VBox Guest 1
           192.168.30.1   ip masquerade    192.168.1.0/24
                                                |
                                                 ------------ VBox Guest 2
LokmanDz
fonte
Por favor, adicione qualquer progresso, se você tivesse. Eu tenho o mesmo problema.
Masood_mj

Respostas:

1

A resposta não é realmente minha, mas ... Tente seguir o Open vSwitch no VirtualBox

Havia também um breve arquivo de texto de algumas pessoas do Fedora sobre um assunto semelhante: libvirt e OpenVSwitch em uma forma de arquivo de texto ... embora não fosse possível localizá-lo.

conforme comentário, aqui está um breve resumo:

(1) Crie a interface vnet0 e a ponte br0:

ovs-vsctl add-br br0
ip tuntap add mode tap vnet0
ip link set vnet0 up
ovs-vsctl add-port br0 vnet0
ip link # (View the created interface)

(2) gire a VM que usa a interface vnet0 (como um adaptador em ponte)

(3) conecte a ponte br0 à rede real:

ovs-vsctl add-br br0 
ovs-vsctl add-port br0 eth0 
ovs-vsctl add-port br0 vnet0 
ifconfig eth0  0 && ifconfig br0 192.168.1.(X) netmask 255.255.255.0
route add default gw 192.168.1.1 br0
route del default gw 192.168.1.1 eth0
Droopy4096
fonte
Como você está vinculando a um artigo externo que pode ser alterado, é recomendável resumir a solução em sua resposta e referenciar o artigo.
Esa Jokinen
0

Habilite o encaminhamento após a reinicialização, sem comentar estas linhas no /etc/sysctl.conf :

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
Otaviano
fonte