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
アップグレード後にポップアップ表示されたその他のランダムなインターフェースもあります (lxc 内から):
# 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
インターフェースを手動で割り当てたいのですが、このコンテナには systemd-networking も /etc/network/interfaces もありません。
# ls -l /etc/network/interfaces
ls: cannot access '/etc/network/interfaces': No such file or directory
コンテナ自体は正常に動作しており、すべてのサービスが開始されていますが、ネットワークに IP がありません。LXC 内の veth に IP を手動で割り当てても、ホストに伝播されません (ホスト上の veth には IP が表示されません)。
また、LXC にルートと 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 がないのでしょうか? これについては本当に助けが必要です。