Debian 10升级至11后无特权LXC容器无法通过配置文件分配IP地址
Debian 10升级至11后无特权LXC容器无法通过配置文件分配IP地址
我刚把Debian从10升级到11,结果我的无特权容器现在没法通过配置文件分配IP地址了,具体情况如下:
容器配置文件内容
容器配置文件路径为/var/lib/lxc/DNS/config,内容如下:
# Template used to create this container: /usr/share/lxc/templates/lxc-download # Parameters passed to the template: # Template script checksum (SHA-1): 273c51343604eb85f7e294c8da0a5eb769d648f3 # For additional config options, please look at lxc.container.conf(5) # Uncomment the following line to support nesting containers: #lxc.include = /usr/share/lxc/config/nesting.conf # (Be aware this has security implications) # Distribution configuration lxc.include = /usr/share/lxc/config/common.conf lxc.include = /usr/share/lxc/config/userns.conf lxc.arch = linux64 # Container specific configuration lxc.apparmor.profile = unconfined lxc.idmap = u 0 1258512 65536 lxc.idmap = g 0 1258512 65536 lxc.rootfs.path = dir:/var/lib/lxc/DNS/rootfs lxc.uts.name = DNS lxc.start.auto = 1 # Network configuration lxc.net.0.type = veth lxc.net.0.link = br.lxc lxc.net.0.flags = up lxc.net.0.ipv4.address = 192.168.5.2/24 lxc.net.0.ipv4.gateway = 192.168.5.1 lxc.net.0.hwaddr = DC:A6:32:xx:xx:xx
问题现象
执行lxc-info看不到IP,看起来配置文件直接被忽略了:
Name: DNS State: RUNNING PID: 32190 Link: vethXPVwwA TX bytes: 2.39 KiB RX bytes: 778 bytes Total bytes: 3.15 KiB
升级后容器内部还莫名出现了几个陌生的网络接口:
# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN group default qlen 1000 link/gre 0.0.0.0 brd 0.0.0.0 3: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN group default qlen 1000 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff 4: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1450 qdisc noop state DOWN group default qlen 1000 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff 5: eth0@if46: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether dc:a6:32:xx:xx:xx brd ff:ff:ff:ff:ff:ff link-netnsid 0
我想手动给接口分配IP,但容器里既没有systemd-networking,连/etc/network/interfaces都找不到:
# ls -l /etc/network/interfaces ls: cannot access '/etc/network/interfaces': No such file or directory
容器本身运行是正常的,所有服务都启动了,但就是网络没有IP。手动在容器里给veth分配IP后,主机上对应的veth接口也看不到这个IP。
另外,我手动给容器添加路由和IP后,dmesg里冒出了大量这样的日志:
[13417.386863] WARNING (unknown src intf):IN=br.lxc OUT= MAC=ff:ff:ff:ff:ff:ff:dc:a6:32:xx:xx:xx:xx:00 SRC=0.0.0.0 DST=255.255.255.255 LEN=314 TOS=0x00 PREC=0xC0 TTL=64 ID=0 PROTO=UDP SPT=68 DPT=67 LEN=294
但实际上这个接口根本不是未知的,主机明确知道它的存在,而且有对应的路由:
50: br.lxc: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 5e:82:0a:99:4b:fc brd ff:ff:ff:ff:ff:ff 192.168.5.0/24 dev br.lxc proto kernel scope link src 192.168.5.1
我到底漏掉了什么?为什么veth接口就是没有IP?真的急需帮助解决这个问题。
备注:内容来源于stack exchange,提问作者user609425
相关产品推荐
相关产品推荐

