KVM Bridge Network 的配置

在我之前写 一个 KVM 虚拟机克隆脚本 这篇文章的时候,实际上没有十分清楚的阐述 Network 那部分。
因为虚拟机既然是作为服务器来工作,我们希望是 Bridge 出来, 能给主机网络里的机器访问(当然生产环境比较复杂的网络环境另当别论)

按理说,这件事情不算复杂,但是由于 Netplan 的引入,以及 NFS 也需要网络,造成整个的问题处理变得复杂,而且 NFS 因为网络的问题,挂接成了灾难。 实际在生产环境中, NFS 的网络一定要和数据的网络分开配置。也就是说要多网卡,当然在实际工作中,也不能避免网络配置中,因为配置虚拟机的网络而和 NFS 或者 iSCSI 的网络相互影响。从这个层面上而言用 FC 就比较安全。

一句话来讲理论, Bridge 就是 HOST 上配置一块桥接网卡绑定物理网卡,虚拟机设置网络为 Bridge 模式,然后就结束了。 虚拟机里面可以配 HOST 网络里的静态 IP, 也可以配置成 DHCP,就通过 HOST 上的物理网卡去 DHCP 服务器取 IP 地址。
Host 上配置一个网络如下:注意 forward mode 是 “bridge” 不是 “nat”

在 HOST Ubuntu 主机上,设置 /etc/netplan/01-netcfg.yaml (这个 yaml 文件名只要是数字开始, yaml 结尾即可)

简单来说, 以上就是为 物理网卡 enp0s25 ,配置了桥接网卡 virbr0 。
如果默认安装 KVM 后, 已经存在 virbr0,可以
# ifconfig virbr0 down
# brctl delbr virbr0
删除原先配置的桥接网卡,并验证:
# brctl show
配置好 /etc/netplan/01-netcfg.yaml 文件后,运行 netplan apply ,会自动生成 virbr0 桥接网卡。

请留意 renderer 这个选项, 有 networkd 和 NetworkManager 两种,后者就是用 GUI 管理才生效的方式, 如果是命令行就用 networkd,netplan apply 可以多跑几次,网络地址才会变更。 当然, 这些都需要你在 console 上跑, 千万不要远程 ssh 跑,然后把自己的连接挂了。

有了以上的桥接网卡配置完成以后,我们就可以按照截屏里的第一个图的 XML 生成一个名叫 yj-net 的网络了。
# virsh net-define yj-net.xml
# virsh net-start yj-net
# virsh net-autostart yj-net

作者: 甬洁网络

--移动互联网&物联网技术提供商