Xen VM 无法启动:找不到桥接设备 xenbr0(配置为使用路由)

Xen VM 无法启动:找不到桥接设备 xenbr0(配置为使用路由)

我在 Ubuntu 14.04 服务器上使用 xen 4.4.1,我的 DomU 也运行 Ubuntu 14.04 Server。我之前在桥接模式下运行过这个 DomU,没有问题。但是我想切换到路由设置。

我将 DomU 配置 vif 更改为:

vif=['10.0.1.2,script=vif-route']

并在 /etc/xen/xend-config.sxp 中:

#(vif-script vif-bridge)
#(network-script network-bridge
(network-script network-route)
(vif-script vif-route)

但是,当我尝试启动虚拟机时,它会抛出此错误:

libxl: error: libxl_exec.c:118:libxl_report_child_exitstatus: /etc/xen/scripts/vif-bridge online [-1] exited with error status 1
libxl: error: libxl_device.c:1085:device_hotplug_child_death_cb: script: Could not find bridge device xenbr0
libxl: error: libxl_create.c:1226:domcreate_attach_vtpms: unable to add nic devices
libxl: error: libxl_exec.c:118:libxl_report_child_exitstatus: /etc/xen/scripts/vif-bridge offline [-1] exited with error status 1
libxl: error: libxl_device.c:1085:device_hotplug_child_death_cb: script: Could not find bridge device xenbr0
libxl: error: libxl_exec.c:118:libxl_report_child_exitstatus: /etc/xen/scripts/vif-bridge remove [-1] exited with error status 1
libxl: error: libxl_device.c:1085:device_hotplug_child_death_cb: script: Could not find bridge device xenbr0

为什么即使我在 xend-config.sxp 中注释掉了 vif-bridge 脚本,它仍然会尝试运行它?

答案1

在 debian dom0(wheezy->jessie)上从 xen 4.1 更新到 4.4 后,我们遇到了完全相同的问题。

解决方案是更改 xl.conf:

# default vif script to use if none is specified in the guest config
vif.default.script="vif-route"

答案2

创建带有 ip 的 xenbr0 接口,使用 eth0 来桥接=xenbr0。

配置 vif.default.gatewaydev@xl.conf

答案3

当我将 SLES 10.x 客户虚拟机移至 SLES 12、SLES 12.3 附带的更高版本的 XEN 虚拟机管理程序时,我仍然遇到类似的问题。vif-桥接下面的破解包括搜索br#桥的子目录:

zeus:/etc/xen/scripts # diff -u vif-bridge vif-bridge-hack
--- vif-bridge  2017-09-08 05:26:04.000000000 -0400
+++ vif-bridge-hack     2017-09-28 21:36:32.461458890 -0400
@@ -70,6 +70,9 @@
      if [ -e "/sys/class/net/eth${bridge#xenbr}/bridge" ]
      then
         bridge="eth${bridge#xenbr}"
+     elif [ -e "/sys/class/net/br${bridge#xenbr}/bridge" ]
+     then
+        bridge="br${bridge#xenbr}"
      fi
   fi
 fi
zeus:/etc/xen/scripts #

答案4

扩展 felipe 的回答:

警告!当您创建新的 xenbr0 接口时,您将失去与主机的网络连接,因此您需要有(物理或虚拟)终端连接可用。

使用此命令查看网桥状态。在我的计算机上,它是空的:

brctl show
  1. 创建桥梁

    brctl addbr xenbr0

  2. 将物理接口添加到网桥。注意!现在您将失去互联网连接,除非您有多个网卡:

查看接口

ip link

或者

ifconfig

向网桥添加接口(在我的计算机上,接口名称是 enp5s3,也可以是 eth0)

brctl addif xenbr0 enp5s3

在此之后,我认为虚拟机将获得 IP。但是如果您还需要恢复与主机的网络连接,则可以像这样为桥接接口分配一个 IP:

  1. 启动接口并分配 IP

    ifconfig xenbr0 10.1.2.3/24 启动

  2. 最后你应该通过编辑来保留设置

在较新的机器上

/etc/netplan/01-netcfg.yaml

在较旧的机器上

/etc/network/interfaces

相关内容