连接打开vSwitch开关到真正的networking:iptables伪装

我正在使用Open vSwitch创buildvirtualBox来宾机之间的交换networking,我希望主机操作系统(Ubuntu 12.04)join此networking并将其configuration为此虚拟networking的网关:

首先,我创build了一个vswitch,并且添加了端口以便点击设备(该虚拟机将它们用作桥接接口):

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

之后,我静态设置了Lubuntu 12.04虚拟机的ip

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

在主机的操作系统方面,我也设置了IP地址:

 ifconfig sw0 192.168.1.1/24 up 

在这个时候,我可以从Lubunut到Ubunutu。 我想现在,在主机使用IP伪装来转发来自networking192.168.1.0/24的stream量到我的物理接口(连接到互联网):

 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接口,但我无法到达真正的networking(例如:真正的局域网上的网关),我已经试过:

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

networking拓扑

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

答案不是真的,但是…尝试在VirtualBox上打开vSwitch

还有一些来自Fedora人员的类似主题的简短文本文件:libvirt和OpenVSwitch以文本文件的forms…不能find它。

根据评论,这里是简短的总结:

(1)创buildvnet0接口和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连接到实际networking:

 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