使用桥接(分接?)网络运行两个 Ubuntu KVM 虚拟机

使用桥接(分接?)网络运行两个 Ubuntu KVM 虚拟机

我有一台运行 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 地址会导致网络间歇性超时。

相关内容