lxd:dnsmasq 不再解析容器 ip

lxd:dnsmasq 不再解析容器 ip

我在 Arch 系统上安装了 Lxd(通过软件包安装,而不是 snapd),昨天升级后我重启了系统,发现虚假域名 .lxd 的名称解析停止工作;dns 由 dnsmasq 在 10.0.10.1 上提供,由 lxc-net 服务启动。dnsmasq 还用于为网络上的其他主机提供内部域,并且运行良好。我netstat -lnp可以看到 dnsmasq 的两个实例都绑定在正确的地址上,但是:

  • 当我从另一个容器 ping 一个容器(例如ping proxy.lxd)时,主机主网卡的 ip 被解析(192.168.1.63),并且 ping 可以工作。
  • 当直接 ping 另一个容器的 IP 地址时,它可以工作。
  • 主机上相同的命令给出ping: proxy.lxd: Name or service unknown

系统的 dnsmasq(不是由 lxc-net 启动的)配置为:server=/lxd/10.0.10.1并且直到昨天它都运行良好。

升级不涉及 dnsmasq 或 lxc-net 脚本,但 lxd 从 4.8-1 升级到 4.9-1

它似乎与 dnsmasq 有某种关系,但找不到理解和解决它的方法。

网络在容器和主机上都运行良好,只是 DNS 转到了……/dev/null 有人遇到过这种情况吗?我该如何解决?

答案1

好吧,这在某种程度上是我的错。我仍然不知道为什么会发生这种情况,但经过一番挖掘,我无法诚实地说出它之前是如何工作的。话虽如此,“解决方案”是配置系统 :)

我禁用了之前用于设置网桥的 lxc-net 脚本dnsmasq,然后:

  • lxc network create bridgename创建桥并在 lxd 中管理它;
  • lxc network edit bridgename对其进行配置;
  • 将桥接器添加到默认配置文件(lxc profile edit default);
  • 配置/etc/dnsmasq.conf为监听 127.0.0.1、网卡地址和桥接地址,仅为桥接地址设置 dhcp,添加local=/lxd/以解析 container.lxd。

然后有效。

相关内容