підключіть відкритий перемикач vSwitch до реальної мережі: iptables маскується


10

Я використовую Open vSwitch для створення комутованої мережі між гостьовими машинами virtualBox, і я хочу, щоб хост ОС (Ubuntu 12.04) приєднався до цієї мережі та налаштував її як шлюз цієї віртуальної мережі:

По-перше, я створив vswitch, і я додав порти, щоб натиснути на пристрої (що віртуальні машини використовують їх як мостові інтерфейси):

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

Після цього я встановив статично ip віртуальної машини Lubuntu 12.04:

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

На стороні хоста OS я також встановив ip адресу:

ifconfig sw0 192.168.1.1/24 up

У цей час я можу пінг-рейсом з Любунута до Убунуту. Я хочу зараз на хост-машині використовувати IP-маскарад для пересилання трафіку з мережі 192.168.1.0/24 до моєї фізичної взаємодії (підключена до Інтернету):

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

Отже, з Lubuntu (віртуальної машини) я можу пінг інтерфейсу Ubuntu eth1, але я не можу досягти реальної мережі (наприклад: шлюз у реальній локальній мережі), я спробував:

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

Мережева топологія

   Internet (real gw) ------ Host OS -------- vswitch -------- VBox Guest 1
           192.168.30.1   ip masquerade    192.168.1.0/24
                                                |
                                                 ------------ VBox Guest 2

Будь ласка, додайте будь-який прогрес, якщо у вас був. У мене така ж проблема.
Masood_mj

Відповіді:


1

Відповідь насправді не моя, але ... Спробуйте дотримуватися Open vSwitch на VirtualBox

Був також короткий текстовий файл від деяких людей Fedora на подібну тему: libvirt та OpenVSwitch у вигляді текстового файлу ... не вдалося його знайти.

за коментарем, ось короткий підсумок:

(1) Створіть інтерфейс vnet0 та міст 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) спіноване VM, яке використовує інтерфейс vnet0 (як мостовий адаптер)

(3) підключити міст br0 до реальної мережі:

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

Оскільки ви посилаєтесь на зовнішню статтю, яка може змінитися, рекомендується узагальнити рішення у своїй відповіді та замість цього посилатися на статтю.
Esa Jokinen

0

Увімкніть переадресацію при перезавантаженні, не коментуючи ці рядки в /etc/sysctl.conf :

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.