LXD 网络 lxdbr0 “不可用”。这是什么意思?我该如何修复?

LXD 网络 lxdbr0 “不可用”。这是什么意思?我该如何修复?

当我尝试创建 LXD 容器时,我得到:

$ lxc launch ubuntu:
Creating the instance
Instance name is: included-mite
Starting included-mite
Error: Failed pre-start check for device "eth0": Network "lxdbr0" unavailable on this server

确实,网络处于“不可用”状态:

$ lxc network list
+--------+----------+---------+-----------------+---------------------------+-------------+---------+-------------+
|  NAME  |   TYPE   | MANAGED |      IPV4       |           IPV6            | DESCRIPTION | USED BY |    STATE    |
+--------+----------+---------+-----------------+---------------------------+-------------+---------+-------------+
| lxdbr0 | bridge   | YES     | 10.238.181.1/24 | fd42:10e8:9fef:5b94::1/64 |             | 5       | UNAVAILABLE |
+--------+----------+---------+-----------------+---------------------------+-------------+---------+-------------+

此外,还有一个警告:

$ lxc warning list
+--------------------------------------+-------------------------------------------------+--------+----------+-------+---------+------------------------------+
|                 UUID                 |                      TYPE                       | STATUS | SEVERITY | COUNT | PROJECT |          LAST SEEN           |
+--------------------------------------+-------------------------------------------------+--------+----------+-------+---------+------------------------------+
| 0ba1da33-d039-4e63-938b-596deba54394 | Network unavailable                             | NEW    | HIGH     | 18675 | default | Sep 11, 2023 at 3:47pm (UTC) |
+--------------------------------------+-------------------------------------------------+--------+----------+-------+---------+------------------------------+

“状态”字段中还有更多确认信息:

$ lxc network show lxdbr0
config:
  ipv4.address: 10.238.181.1/24
  ipv4.nat: "true"
  ipv6.address: fd42:10e8:9fef:5b94::1/64
  ipv6.nat: "true"
description: ""
name: lxdbr0
type: bridge
used_by:
- /1.0/instances/included-mite
- /1.0/instances/ipfs
- /1.0/instances/migrate-test
- /1.0/instances/stable-diffusion
- /1.0/profiles/default
managed: true
status: Unavailable
locations:
- none

问题是,我找不到任何关于“不可用”的含义、它是如何发生的,或者我能做什么的文档。

为什么是否不可用?或者,我如何才能知道?

我可以采取什么步骤来使其可用?

谢谢。

答案1

我能够发现为什么通过检查 /var/snap/lxd/common/lxd/logs/lxd.log 发现网络不可用。这就是我需要的指针。

在这种情况下,它报告说:

level=error msg="初始化网络失败" err="启动失败:DNS 和 DHCP 服务过早退出:退出状态 2 ("dnsmasq:无法为 10.238.181.1 创建监听套接字:地址已在使用中")" network=lxdbr0 project=default

我能够使用

netstat -n -t -u -l -p | grep :53

这表明 bind9 (named) 正在尝试监听所有接口,这是默认情况下的做法。我可以通过检查配置到 lxdbr0 的地址来解决此问题

lxc network show lxdbr0

并从 /etc/bind/named.conf.options 中的 bind9 中排除这些地址,如下所示:

listen-on { !10.238.181/24; any; };
listen-on-v6 { !fd42:10e8:9fef:5b94::/64; any; };

不幸的是,您不能指定像 lxdbr0 这样的接口名称,所以这不是一个非常优雅的解决方案,但它解决了我眼前的问题。

相关内容