соединитесь Открывают переключатель vSwitch для реальной сети: подмена iptables

Я использую Открытый 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

В это время я могу проверить с помощью ping-запросов от Lubunut до Ubunutu. Я хочу теперь в хост-машине использовать подмену 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 (виртуальная машина), я могу проверить с помощью ping-запросов интерфейс Ubuntu eth1, но я не могу достигнуть реальной сети (например: шлюз на реальной LAN), я попробовал:

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
9
задан 10 February 2013 в 13:26
2 ответа

LinuxGazette. ] Ответ на самом деле не мой, но ...Попробуйте выполнить Открыть 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) раскрутите виртуальную машину, которая использует интерфейс 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
1
ответ дан 2 December 2019 в 22:38

Включите пересылку при перезагрузке, не комментируя эти строки в /etc/sysctl.conf :

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
0
ответ дан 2 December 2019 в 22:38

Теги

Похожие вопросы