A.19.6. 无法添加网桥 br0 端口 vnet0:没有这样的设备
- 症状
- 此时会出现以下出错信息:
Unable to add bridge name_of_bridge port vnet0: No such device
例如,如果网桥名称是 br0,则错误消息会显示如下:Unable to add bridge br0 port vnet0: No such device
在 libvirt 版本 0.9.6 及更早版本中,会出现相同的错误:Failed to add tap interface to bridge name_of_bridge: No such device
或者,如果网桥命名为 br0 :Failed to add tap interface to bridge 'br0': No such device
- 正在调查
- 两个错误消息都显示客户机(或域)
<interface>
定义中指定的网桥设备不存在。要验证错误消息中列出的网桥设备没有被存在,请使用 ip addr show br0。这条消息通过该名称确认主机没有网桥:br0: error fetching interface information: Device not found
如果是这样,请继续解决方案。但是,如果生成的信息类似如下,这个问题会在其他位置存在:br0 Link encap:Ethernet HWaddr 00:00:5A:11:70:48 inet addr:10.22.1.5 Bcast:10.255.255.255 Mask:255.0.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:249841 errors:0 dropped:0 overruns:0 frame:0 TX packets:281948 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:106327234 (101.4 MiB) TX bytes:21182634 (20.2 MiB)
- 解决方案
- 编辑现有网桥或使用 virsh创建新桥接
- 使用 virsh 编辑现有网桥或网络的设置,或者将网桥设备添加到主机系统配置中。
- 使用 virsh编辑现有网桥设置
- 使用 virsh edit name_of_guest 将
<interface>
定义更改为使用已存在的桥接或网络。例如,将type='bridge'
改为type='network'
,<source bridge='br0'/>
改为<source network='default'/>
。 - 使用 virsh创建主机桥接
- 对于 libvirt 版本 0.9.8 及更高版本,可使用 virsh iface-bridge 命令创建网桥设备。这会创建一个使用
eth0
的桥接设备 br0,它是作为附加桥接的一部分设置的物理网络接口:virsh iface-bridge eth0 br0
可选:如果需要,请删除此网桥,并使用这个命令恢复原始eth0
配置:virsh iface-unbridge br0
- 手动创建主机桥接
- 对于较旧版本的 libvirt,可以在主机上手动创建网桥设备。具体说明请查看 第 6.4.3 节 “使用 libvirt 进行桥接网络”。