podłącz Przełącznik Open vSwitch do prawdziwej sieci: maskarada iptables

10

Korzystam z Open vSwitch do utworzenia przełączanej sieci między maszynami wirtualnymi VirtualBox i chcę, aby system operacyjny hosta (Ubuntu 12.04) dołączył do tej sieci i skonfigurował ją jako bramę tej sieci wirtualnej:

Po pierwsze, stworzyłem vswitch i dodałem porty do urządzeń kranowych (że maszyny wirtualne używają ich jako zmostkowanych interfejsów):

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

Następnie ustawiłem statycznie IP maszyny wirtualnej Lubuntu 12.04:

ifconfig eth0 192.168.1.3/24 up
route add -net 0.0.0.0/0 gw 192.168.1.1

Po stronie hosta ustawiam również adres IP:

ifconfig sw0 192.168.1.1/24 up

W tej chwili mogę pingować z Lubunuta na Ubunutu. Chcę teraz, na hoście, używać maskowania IP do przekazywania ruchu z sieci 192.168.1.0/24 do mojego fizycznego interfejsu (połączonego z Internetem):

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

Więc z Lubuntu (maszyna wirtualna) mogę pingować interfejs Ubuntu eth1, ale nie mogę połączyć się z prawdziwą siecią (np. Bramą w prawdziwej sieci LAN), próbowałem:

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

Topologia sieci

   Internet (real gw) ------ Host OS -------- vswitch -------- VBox Guest 1
           192.168.30.1   ip masquerade    192.168.1.0/24
                                                |
                                                 ------------ VBox Guest 2
LokmanDz
źródło
Proszę dodać wszelkie postępy, jeśli tak było. Mam ten sam problem.
Masood_mj

Odpowiedzi:

1

Odpowiedź nie jest tak naprawdę moja, ale ... Spróbuj śledzić Open vSwitch na VirtualBox

Był też krótki plik tekstowy od niektórych osób Fedory na podobny temat: libvirt i OpenVSwitch w postaci pliku tekstowego ... jednak nie był w stanie go zlokalizować.

zgodnie z komentarzem, oto krótkie podsumowanie:

(1) Utwórz interfejs vnet0 i mostek 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, która korzysta z interfejsu vnet0 (jako most zmostkowany)

(3) podłącz most BR0 do prawdziwej sieci:

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
źródło
Ponieważ łączysz się z artykułem zewnętrznym, który może ulec zmianie, zaleca się podsumowanie rozwiązania w odpowiedzi i odwołanie się do tego artykułu.
Esa Jokinen,
0

Włącz przekazywanie po ponownym uruchomieniu komputera, usuwając komentarz z tych wierszy w pliku /etc/sysctl.conf :

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
Oktawian
źródło