我已经在 CentOS 7 工作站上设置了虚拟网络,并且主物理网络接口按照以下方式桥接这篇 RHEL 文章。
libvirtd 运行成功,但重启后发生以下情况
virsh net-list --all
Name State Autostart Persistent
----------------------------------------------------------
default inactive yes yes
如果我尝试启动默认桥接器。我得到的结果是
virsh net-start default
error: Failed to start network default
error: internal error: Network is already in use by interface virbr0
因此,关闭虚拟桥(virbr0
)并删除默认桥。
ifconfig virbr0 down
virsh net-start default
Network default started
virsh net-list --all
Name State Autostart Persistent
----------------------------------------------------------
default active yes yes
一旦虚拟桥(默认)处于活动状态,我的 KVM 主机上的互联网连接就会完全断开。无法 ping www.google.com
知道为什么会发生这种情况或发生任何配置错误吗?我有以下接口脚本
主要物理接口:ifcfg-enp1s0
TYPE="Ethernet"
NAME="enp1s0"
HWADDR=2c:27:d7:ef:fd:1e
UUID="f7fb856b-1879-411d-b8a4-0ef8c93303dc"
DEVICE="enp1s0"
ONBOOT="yes"
BOOTPROTO=dhcp
BRIDGE=virbr0
NM_CONTROLLED=no
虚拟桥接接口:ifcfg-virbr0
DEVICE=virbr0
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=none
IPADDR=192.168.3.52
NETMASK=255.255.255.0
GATEWAY=192.168.3.1
STP=on
DELAY=0
NM_CONTROLLED=no
答案1
从网络定义中删除自动启动。它由网络管理器启动。这两个配置可能存在冲突。virsh 可能会将接口报告为不活动,即使它已启动。无论您将网桥定义为什么,都需要向 libvirt 声明它。您需要确保网络配置已完成。
或者,您可以删除外部桥接定义,但这可能会导致主机上运行的应用程序出现问题。
我更喜欢使用主机工具来定义桥接器。这样可以确保桥接器不会发生任何变化,并允许我使用一套工具来管理网络。
我一般分阶段测试网络。
- 访问主机
- 访问主机所连接的局域网
- 访问网络/互联网
答案2
有人为虚拟桥接接口创建了手动配置virbr0
,该配置应该由 libvirt 管理。您链接的说明指出,应该为br0
桥接接口创建该配置。
virbr0
您应该将这些ifcfg-
文件中出现的所有 更改为br0
。名称实际上并不重要,但不能是virbr0
,它是 libvirt 管理的接口。