Запускаю контейнер через systemd-nspawn.
На хосте выполнены настройки:
> cat /etc/systemd/network/br-nspawn.netdev
[NetDev]
Name=br-nspawn
Kind=bridge
> cat /etc/systemd/network/br-nspawn.network
[Match]
Name=br-nspawn
[Network]
DHCP=no
Address=172.24.7.1/24
IPForward=ipv4
IPMasquerade=yes
Static IP для интерфейса br-nspawn назначается только после того как я выполню
sudo systemctl restart systemd-networkd
systemd-networkd включен, networking.service выключен.
> ifconfig br-nspawn
br-nspawn: flags=-28605<UP,BROADCAST,RUNNING,MULTICAST,DYNAMIC> mtu 1500
inet 172.24.7.1 netmask 255.255.255.0 broadcast 172.24.7.255
inet6 fe80::8497:5aff:fe0d:c587 prefixlen 64 scopeid 0x20<link>
ether 86:97:5a:0d:c5:87 txqueuelen 1000 (Ethernet)
RX packets 332 bytes 39891 (38.9 KiB)
RX errors 0 dropped 4 overruns 0 frame 0
TX packets 32 bytes 2668 (2.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Но в контейнере другая проблема:
sudo systemctl restart systemd-networkd
Даёт такой результат:
> ifconfig host0
host0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 169.254.96.59 netmask 255.255.0.0 broadcast 169.254.255.255
inet6 fe80::3c86:46ff:fe04:56c3 prefixlen 64 scopeid 0x20<link>
ether 3e:86:46:04:56:c3 txqueuelen 1000 (Ethernet)
RX packets 13 bytes 1038 (1.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 63 bytes 8628 (8.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Настройки контейнера:
> cat /etc/systemd/network/host0.network
[Match]
Name=host0
[Network]
DHCP=no
DNS=8.8.8.8
Address=172.24.7.2/24
Gateway=172.24.7.1
systemd-networkd так же включен, networking.service выключен.
Если вручную настроить через ifconfig и route, то сеть работает.
В systemd не силён. Что я делаю неправильно?
И на хосте и в контейнере Debian Stretch.