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,adddlocal=/lxd/以便解析 container.lxd。

然後有效。

相關內容