我正在使用 LXD 的标准配置,该配置通过 DHCP/dnsmasq 为容器分配 ipv4 私有地址。当我重新启动主机时,一些容器(不是全部)会更改 ip 地址。我认为这些容器是从同一容器创建的(通过副本或通过从另一个容器发布的模板)。它们可能会在它们之间轮换 ip 地址。我检查了容器的虚拟 MAC 地址在主机重新启动后保持不变,并且每个容器都有不同的 MAC 地址。那么为什么 dnsmasq 不保持相同的 ip 地址和相同的租约时间?重启后,/var/lib/lxd-bridge/dnsmasq.lxdbr0.leases 中的所有租约时间都会发生变化。为什么会发生这种情况?这是一个错误吗?
我如何确保这种情况不会发生?我可以分配静态 IP 地址,但这在某些情况下需要额外的配置步骤,例如每次将容器复制/移动到另一台服务器时(我有时会这样做)。它还需要额外重新启动客户机以确保配置正确。
答案1
我不会触碰容器配置,正如你所说,你希望能够移动它们。
您可以使用 dnsmasq 通过 DHCP 分配静态 IP 地址。您无需触及容器配置,并且每个容器中的地址始终相同。
将其与每个容器所需的 dnsmasq.conf 中的值放在一起
dhcp-host=MAC_ADDRESS,CONTAINER_NAME,IP_ADDRESS,LEASE_TIME
这MAC地址 或者这容器名称此处是可选的。它仅识别客户端并将 IP_ADDRESS 分配给该客户端。