![qemu KVM 的桥接网络未激活](https://linux22.com/image/794474/qemu%20KVM%20%E7%9A%84%E6%A1%A5%E6%8E%A5%E7%BD%91%E7%BB%9C%E6%9C%AA%E6%BF%80%E6%B4%BB.png)
我正在为 Rocky 9.3 创建 kickstart 以供部署。这些主机将具有 virsh (qemu) 来托管每个主机的多个虚拟机。所有这些主机都具有基于 MAC 的 DHCP ens9f0
。
我正在使用下面的方法为这些虚拟机创建桥接网络:
network --bootproto=dhcp --device=br0 --ipv6=auto --activate --bridgeslaves=ens9f0 --bridgeopts=priority=32768,stp=yes
这应该创建一个br0
,ens9f0
最后br0
应该有 DHCP IP 并被激活。
ens9f0
应该是 UP 但没有任何 IP 并且br0
应该使用 DHCP ip 进行 UP ...
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens9f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000
link/ether 3c:ec:ef:fc:bf:1e brd ff:ff:ff:ff:ff:ff
altname enp101s0f0
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 3c:ec:ef:fc:bf:1e brd ff:ff:ff:ff:ff:ff
inet 10.73.119.255/20 brd 10.73.127.255 scope global dynamic noprefixroute br0
valid_lft 604798sec preferred_lft 604798sec
inet6 fe80::1607:7351:9b51:4dbf/64 scope link noprefixroute
valid_lft forever preferred_lft forever
但有时在对它们进行映像处理时,两者ens9f0
都br0
使用相同的 DHCP IP 激活,而虚拟机将无法进行任何连接。
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens9f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 3c:ec:ef:fc:bf:1e brd ff:ff:ff:ff:ff:ff
altname enp101s0f0
inet 10.73.119.255/20 brd 10.73.127.255 scope global dynamic noprefixroute ens9f0
valid_lft 418211sec preferred_lft 418211sec
inet6 fe80::3eec:efff:fefc:bf1e/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 10.73.119.255/20 brd 10.73.127.255 scope global dynamic noprefixroute br0
valid_lft 418211sec preferred_lft 418211sec
inet6 fe80::1607:7351:9b51:4dbf/64 scope link noprefixroute
valid_lft forever preferred_lft forever
或者有时ens9f0
处于激活和连接状态但br0
处于关闭状态。
发生这种情况时,我手动运行nmtui
以停用ens9f0
,然后br0
获取 DHCP IP,它就可以正常工作。
我尝试在帖子中使用nmcli
,但 nmcli 在 kickstart 中无法正常工作。
我也尝试过stp=no
,但出现了同样的问题。
我也尝试在第一次启动时使用一次性脚本,nmcli
但同样的问题仍然存在。
有人能告诉我如何在 kickstart 中正确配置它吗?
任何帮助是极大的赞赏。
答案1
我比较了 nmtui 停用对 ens9f0.nmconnection 文件所做的更改。
由于 nmcli 在 %post kickstart 中不起作用,因此我在同一个 %post kickstart 中使用 sed append 手动做了同样的事情。
sed -i '/type=ethernet/a autoconnect=false\nautoconnect-priority=-100\nautoconnect-retries=1' "/etc/NetworkManager/system-connections/ens9f0.nmconnection"