Я использую Открытый 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
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
Включите пересылку при перезагрузке, не комментируя эти строки в /etc/sysctl.conf :
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1