我正在使用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