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
źródło
Odpowiedzi:
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:
(2) spin up VM, która korzysta z interfejsu vnet0 (jako most zmostkowany)
(3) podłącz most BR0 do prawdziwej sieci:
źródło
Włącz przekazywanie po ponownym uruchomieniu komputera, usuwając komentarz z tych wierszy w pliku /etc/sysctl.conf :
źródło