我有一台运行 Ubuntu 14.04 的服务器,我想同时运行两台使用桥接网络的虚拟机。第一台虚拟机的网络可以正常工作,但第二台虚拟机无法联网。
虚拟机也是Ubuntu 14.04。
让两个虚拟机获得完整(桥接)互联网访问的最佳方法是什么?
我最好的猜测是将 br0 复制到 br1,如下所示。但由于它不起作用,我猜我需要做其他事情。
这是我的 /etc/network/interfaces:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto em1
iface em1 inet dhcp
auto br0
iface br0 inet dhcp
pre-up ip tuntap add dev tap0 mode tap user thor
pre-up ip link set tap0 up
bridge_ports all tap0
bridge_stp off
bridge_maxwait 0
bridge_fd 0
post-down ip link set tap0 down
post-down ip tuntap del dev tap0 mode tap
auto br1
iface br1 inet dhcp
pre-up ip tuntap add dev tap1 mode tap user thor
pre-up ip link set tap1 up
bridge_ports all tap1
bridge_stp off
bridge_maxwait 0
bridge_fd 0
post-down ip link set tap1 down
post-down ip tuntap del dev tap1 mode tap
以下是我启动 kvms 的方法。
(kvm1-具有网络功能的那个)
kvm -enable-kvm -nographic -net nic -net tap,ifname=tap0,script=no,downscript=no -hda disk.img.a.qcow2 -hdb my-seed.img -m 8192 -smp 16
(kvm2-没有网络的虚拟机)
kvm -enable-kvm -nographic -net nic -net tap,ifname=tap1,script=no,downscript=no -hda disk.img.b.qcow2 -hdb my-seed.img -m 8192 -smp 16
答案1
网桥就像虚拟以太网交换机——你插入许多将它们连接到多个虚拟机,而不只是一个。您应该创建一个桥接器,并将两个虚拟机的 NIC 连接到该桥接器。然后它们将能够相互通信。
答案2
根据@Womble 的建议,我似乎已经让它工作了。我会在这里发布我所做的,希望它能帮助其他人。
我欢迎提出更好的解决方案的建议。
这是我的新 /etc/network/interfaces:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto em1
iface em1 inet dhcp
auto br0
iface br0 inet dhcp
pre-up ip tuntap add dev tap0 mode tap user myusername
pre-up ip link set tap0 up
pre-up ip tuntap add dev tap1 mode tap user myusername
pre-up ip link set tap1 up
bridge_ports all tap0 tap1
bridge_stp off
bridge_maxwait 0
bridge_fd 0
post-down ip link set tap1 down
post-down ip tuntap del dev tap1 mode tap
post-down ip link set tap0 down
post-down ip tuntap del dev tap0 mode tap
(用我正在使用的真实用户名替换myusername)。
这是启动第一个 kvm 的命令:
kvm -enable-kvm -nographic -net nic -net tap,ifname=tap0,script=no,downscript=no -hda disk.a.qcow2 -hdb my-seed.img -m 8192 -smp 16
这是启动第二个 kvm 的命令
kvm -enable-kvm -nographic -net nic,macaddr=0c:c4:7a:73:14:b2 -net tap,ifname=tap1,script=no,downscript=no -hda disk.img.b.qcow2 -hdb my-seed.img -m 8192 -smp 16
我必须在第二个 kvm 上明确设置 mac 地址,否则它将具有与第一个相同的 mac 地址。您可以想象,拥有相同的 MAC 地址会导致网络间歇性超时。