KVM 虚拟机上的公共 IP 和主机上的 DNS 设置

KVM 虚拟机上的公共 IP 和主机上的 DNS 设置

我正在使用 KVM 创建两个虚拟机,用于托管公司设备的 NMS 服务器。我想手动为虚拟机和主机分配一个公共 IP(Ubuntu 22.04 桌面版 [虽然我主要使用 CLI,但我对它并不完全满意,所以我选择了桌面版而不是服务器版]。我遵循了以下建议:https://unix.stackexchange.com/questions/245628/configure-public-ip-addresses-in-kvm-vms并设法使其工作(基本上,虚拟机的虚拟接口和物理接口位于同一个网桥中,通常分配给物理接口的 IP 地址被分配给虚拟网桥接口)。我已经使用 virsh 配置了 KVM xml,并让它在启动/重启时创建虚拟网桥。每次启动/重启后,我都需要手动将物理接口添加到网桥(尽管我计划创建一个 cron 作业以在启动时自动执行此操作)。之后,除了以下情况外,设置按预期工作:

问题描述:我找不到在虚拟桥接接口上指定 DNS 服务器的方法(我只能设置 IP 地址、默认网关和子网掩码),因此最终导致主机无法解析域名(libvirt 文档无法帮助我理解关于 DNS 配置我应该做什么)。请记住,在 KVM 上运行的两个虚拟机都有 DNS 配置,并且可以解析名称。

尝试解决:到目前为止,我已经尝试过:

  1. 使用以下内容编辑 KVM xml 文件:a) 和 b)。输入 (a) 时什么也没有发生,但输入 (b) 时 DNS 服务器确实出现在 Ubuntu 的 GUI 监控工具中,然而 VM 接口(即 vnetX)不会将自身绑定到网桥(它们不会出现在 KVM 创建的网桥中)并且什么都不起作用。

2) 使用 nmcli 工具手动添加 DNS 服务器(稍后会将其添加到 cron 任务的脚本中)。我专门使用了 nmcli connection modified brxy ipv4.dns "1.1.1.1 8.8.8.8",系统接受了该命令,但基本上什么也没做。

有效方法:唯一始终有效的方法是从高级网络设置 GUI 应用程序设置 DNS。所有接口都绑定在桥下,DNS 已设置并正常工作。

这是我第一次尝试配置服务器和使用 KVM,我花了很多时间尝试排除此问题,但毫无成效。当然,我可以在服务器重新启动时手动添加 DNS 服务器(这种情况并不常见),但我希望连接能够自动恢复,而无需我亲自在服务器旁边。你们知道我应该如何继续吗?有没有办法在 kvm xml 配置文件中设置 DNS 服务器条目,或者有某种解决方法(比如我可以使用命令来设置虚拟桥接接口的 DNS 条目)?感谢您抽出时间 :)

相关内容