
我在 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。
然後有效。