connetti Apri lo switch vSwitch alla rete reale: iptables masquerade


10

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

Aggiungi eventuali progressi, se lo hai fatto. Ho lo stesso problema.
Masood_mj,

Risposte:


1

La risposta non è davvero mia, ma ... Prova a seguire Open vSwitch su VirtualBox

C'era anche un breve file di testo di alcune persone di Fedora su un argomento simile: libvirt e OpenVSwitch in una forma di file di testo ... però non è stato in grado di individuarlo.

come da commento, ecco un breve riassunto:

(1) Crea interfaccia vnet0 e bridge 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) spin up VM che utilizza l'interfaccia vnet0 (come un adattatore a ponte)

(3) collega bridge br0 alla rete reale:

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

Dal momento che si collega a un articolo esterno che può cambiare, si consiglia di riassumere la soluzione nella risposta e fare riferimento invece all'articolo.
Esa Jokinen,

0

Abilita l'inoltro al riavvio annullando il commento di queste righe in /etc/sysctl.conf :

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.