KVM+OVS环境虚机修改网卡为ovs网桥后启动报错

在本地KVM+OVS环境中,遇到虚机启动时错误地使用了LinuxBridge而非指定的OVS网桥。问题在于libvirt在启动时未选择OpenvSwitch。解决方案是修改虚机XML配置,将虚拟端口类型设置为OVS。通过编辑虚机配置文件并更新virtualporttype,成功将虚机接口桥接到ovs-br0,并能正常通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题环境:

本地新搭建了kvm+ovs网桥的测试环境,linux系统用的是centos7.9,测试虚机启动默认使用的网桥是linux bridge,brctl show能看到虚机起的网桥。

在这里插入图片描述


问题描述:

虚机使用ovs网桥,需要把原来linux bridge下的vnet接口桥接到ovs网桥下,ovs-br0是本地建的ovs网桥
在这里插入图片描述
force off虚机后启动有报错,Error starting domain:Unable to add bridge ovs-br0 port vnet2:Operation not supported
在这里插入图片描述

在这里插入图片描述


原因分析:

libvirt在虚机启动时会尝试linux默认的Linux bridge网桥,而不是openvswicth


解决方案:

修改虚机的xml文件接口virtualport type
virsh edit test1

在这里插入图片描述
再启动虚机就不会报错,也能够正常ping通ovs网桥
从ovs-vsctl show中可以看到原来原来linux bridge下vnet接口已经桥接到ovs网桥下

在这里插入图片描述

### 如何在 Ubuntu 上使用 OVS 网桥搭建 KVM 拟化平台 #### 安装必要的软件包 为了构建基于 Open vSwitch (OVS) 的网桥并将其用于 KVM ,在 Ubuntu 中需要先安装一系列依赖项和工具。可以利用 `apt-get` 来完成这些操作。 ```bash sudo apt update && sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils openvswitch-switch virt-manager -y ``` 上述命令会更新本地包列表,并安装 QEMU-KVM、libvirt 及其客户端、bridge utilities 工具集以及 OVS 开关服务[^3]。 #### 创建 OVS 网桥 创建一个新的 OVS 网桥,该网桥将作为拟网络的核心组件之一: ```bash sudo ovs-vsctl add-br br0 ``` 这条指令会在系统中新增名为 `br0` 的 OVS 网桥实例[^1]。 #### 将物理接口加入到 OVS 网桥 假设有一个叫做 eth0 的物理网络适配器希望被添加至新建立的 OVS 网桥下,则执行下面的操作: ```bash sudo ovs-vsctl add-port br0 eth0 ``` 这一步骤使得实际存在的硬件端口成为 OVS 控制下的成员,从而允许数据流量经由此路径传输。 #### 设置静态 IP 地址给 OVS 网桥 编辑 `/etc/netplan/*.yaml` 文件(具体文件名可能不同),修改成如下形式以赋予 OVS 网桥固定的 IPv4 地址: ```yaml network: version: 2 renderer: networkd ethernets: eth0: dhcp4: no bridges: br0: interfaces: [eth0] addresses: ["192.168.1.100/24"] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4] ``` 保存更改后应用新的配置: ```bash sudo netplan apply ``` 这样就完成了为 OVS 网桥分配固定IP地址的工作[^5]。 #### 启动 KVM 并关联到 OVS 网桥 当准备好了 OVS 环境之后就可以着手于启动 KVM 实例并将它们接入之前设置好的 OVS 网络之中了。可以通过图形界面管理工具 Virt-Manager 或者命令行方式来进行这项工作。如果采用后者的话,那么就需要指定相应的 XML 描述文档来定义 VM 的属性及其所使用的 NIC 类型——这里应当是指定为 OVS 内部模式或是直接绑定到特定的 OVS 接口之上[^2]。 #### 关闭 NetworkManager 对网络的影响 有时 NetworkManager 会对自定义的网络配置造成干扰,因此建议临时停止它直到确认一切正常为止: ```bash sudo systemctl stop NetworkManager sudo systemctl disable NetworkManager sudo systemctl restart networking ``` 以上措施有助于防止潜在冲突的发生,确保由用户自行设定的各项参数能够生效。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值