我正在使用 Ubuntu 24.04 桌面,并创建了一个连接到默认 libvirt-NAT-Bridge 和第二个隔离网络的虚拟机。
桥接网络是virbr0: 192.168.122.0/24
主机获得192.168.122.1
而虚拟机获得静态192.168.122.128
网络。隔离网络是10.95.212.0/24
。
我希望能够 ping/ssh 到隔离网络中的主机,所以我route add ...
在主机上设置了静态路由 ()。它可以工作,但重启后就失效了。我试过了,nmtui
但重启后路由就消失了。
我考虑过virsh net-edit default
,但没有找到有关如何去做的任何文档。
我必须在哪里定义重启后仍存在的路线?
一个选项是在您的主机上设置静态路由。听起来您尝试过这样做,但由于您没有向我们提供详细信息,因此很难判断为什么它不起作用。
在我的 Ubuntu 24.04 系统上,我首先创建了如下界面配置:
这将为我获取默认 libvirt 网络上的地址(在我的系统上是 192.168.124.0/24):
要向此配置添加静态路由,我可以使用以下
nmcli modify
命令对其进行修改:重新启动后,我有:
根据libvirt 文档,应该可以在网络定义中定义静态路由,以便通过 DHCP 将它们提供给您的主机。我对此进行了一些实验,但它似乎没有像文档中所述的那样工作。
幸运的是,也可以指定任意 dnsmasq 选项,这意味着我们可以像这样添加必要的 dnsmasq 配置:
完成此操作后,使用 DHCP 进行接口配置的主机将通过 DHCP 选项接收路由。我已经测试了上述配置,它适用于使用 NetworkManager 的主机和使用 systemd-networkd 的主机。