「四川联想代理」如何为基于NAT的基于libvirt 的虚拟机设置静态 IP 和名称

成都联想服务器总代理 68 2023-05-25 https://www.lenovocd.com/ 成都联想服务器总代理

我使用Linux libvirt 的其中一件事是一组虚拟机,我只将它们 NAT 到网络上,而不是给它们自己独特的公共 IP。成都联想服务器经销商当我第一次设置它时,我没有做任何特别的事情来为这些 NAT 虚拟机提供一致的 IP 或任何名称,这让我想通过 SSH 连接到其中一个(其中大多数是 Fedora 虚拟机,所以我真的可以做到)。最终,我努力为这些设置固定的静态 IP 并为它们命名我可以使用的名称,事实证明这更加方便。

四川联想服务器经销商

为 NAT 虚拟网络上的 libvirt VM 提供固定 IP 需要一些工作。首先,您必须按照寻址中的示例(以及 dhcp 部分中对“主机”的讨论)编辑网络的 XML。这看起来像这样:

ip ....

DHCP

范围.../

host mac=NN:NN:NN:NN:NN ip=固定IP 1 name=your-host /

host mac=NN:NN:NN:NN:NN ip=固定 IP x21 name=your-host2 /

/DHCP

/ip

ip、dhcp 和 range 位已经存在;您需要添加 host 位。如果您使用的是 virt-manager,则需要进入其首选项并启用 XML 编辑(然后我认为可能会退出并重新启动)。我通过启动每台机器并将它们复制下来来获得我的主机 MAC 地址,但现在我看,virt-manager 还将向您显示每个 VM 接口的 MAC。

我发现的一个问题是,编辑 XML 将不会生效,直到您停止然后重新启动该 libvirt 网络接口(包括作为重新启动主机系统的一部分)。对我来说,关闭我的 NAT 接口有时会导致我的 iptables 和 ip 规则变得有点混乱,这让事情变得有点烦人并且让我无法尽可能多地更新东西。

(在幕后,libvirt 生成一个dnsmasq配置并运行它以提供 DHCP 和 DNS。大概它不会重新生成配置并重新启动 dnsmasq 直到网络关闭然后再次备份。)

许多示例将显示以 .default 结尾的主机名称。这样做的目的是使 libvirt 最终会为此网络运行的 dnsmasq 将 .default 替换为您的默认域,因此您的 NATd VM 是 name.example.org 或它们自己和彼此的任何内容。如果您给您的 VM 名称以其他结尾,例如 .local,那么这将是它们的全名(例如“fedora37.local”)。但是,所有这些仅适用于 VM,不一定适用于您的主机。

在我的桌面上,我使用 Unbound 进行本地 DNS 解析。幸运的是,Unbound 有一个非常简单的添加本地记录的设置;在 Fedora 中,我创建了一个 /etc/unbound/local.d/my-libvirt.conf 文件,然后创建了一系列记录对:

local-data: fedora37.local. IN A 192.....

local-data-ptr: 192..... fedora37.local

这些 Unbound 名称不必与 libvirt 网络 XML 中的主机名或虚拟机的实际 libvirt 名称完全匹配,但通常这三个名称彼此越接近,您对自己的烦恼就越少。会的

(从我这里拿走,因为我已经通过艰难的方式学到了这一点。即使像 VM 被称为“fedora-37”和 DNS 名称是“fedora37”这样的小东西也可能有点粗糙。)

PS:总的来说,我不想以任何方式将桌面的常规 DNS 解析连接到 libvirt dnsmasq。libvirt dnsmasq 有一个神奇的生成配置和难以预测的行为;我的桌面 Unbound 配置完全可以理解并且在我的控制之下。

成都联想代理www.lenovocd.com


【公司名称】成都鸿盛广达科技有限公司

【代理级别】成都联想服务器总代理

【销售经理】成都鸿盛广达科技有限公司

【联系方式】座机:028-85952921 手机:13981931555

【公司地址】成都市武侯区人民南路四段一号时代数码广场A座17楼