
У меня установлен Lxd на системе Arch (из пакетов, а не snapd). Вчера я перезагрузил систему после обновления, и разрешение имен поддельного домена .lxd перестало работать; DNS предоставляется на 10.0.10.1 из dnsmasq, запущенного службой lxc-net. dnsmasq также используется для предоставления внутреннего домена другим хостам в сети, и это работает хорошо. Я netstat -lnp
вижу, что оба экземпляра dnsmasq привязаны к правильным адресам, но:
- когда я пингую один контейнер (например
ping proxy.lxd
, ) изнутри другого, IP-адрес основной сетевой карты хоста разрешается (192.168.1.63), и пинг работает. - при прямом пинге 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.
затемэто сработало.