systemd-networkd .network ignorada dentro do contêiner systemd-nspawn

2

Estou mexendo com systemd-nspawn containers no meu RaspberryPi. Até agora, a inicialização funciona bem. Eu uso as opções --network-veth e --network-bridge = br0 e o bridging funcionou bem com uma máquina virtual kvm.

Agora, desejo configurar o IP do contêiner para um endereço específico e criei um arquivo /etc/systemd/network/host.network que parece ser ignorado quando o contêiner obtém seu IP via DHCP.

Este é o arquivo.

[Match]
Name=host0

[Network]
DHCP=no
Address=192.168.0.16/24
Gateway=192.168.0.1
DNS=8.8.8.8

systemd-networkd está em execução:

root@bluehost-debian:~# systemctl status systemd-networkd.service
● systemd-networkd.service - Network Service
   Loaded: loaded (/lib/systemd/system/systemd-networkd.service; enabled)
   Active: active (running) since Do 2016-09-01 21:10:54 UTC; 12min ago
     Docs: man:systemd-networkd.service(8)
 Main PID: 69 (systemd-network)
   Status: "Processing requests..."
   CGroup: /machine.slice/machine-bluecloud.scope/system.slice/systemd-networkd.service
           └─69 /lib/systemd/systemd-networkd

Sep 01 21:10:54 bluehost-debian systemd-networkd[69]: host0           : link configured
Sep 01 21:10:54 bluehost-debian systemd[1]: Started Network Service.
Sep 01 21:10:55 bluehost-debian systemd-networkd[69]: host0           : gained carrier
Sep 01 21:10:58 bluehost-debian systemd-networkd[69]: host0           : DHCPv4 address 192.168.0.143/24 via 192.168.0.1
Sep 01 21:10:58 bluehost-debian systemd-networkd[69]: host0           : link configured

O udev me diz que meu valor para o campo Nome deve estar ok. Por que é ignorado?

udevadm info /sys/class/net/host0
P: /devices/virtual/net/host0
E: DEVPATH=/devices/virtual/net/host0
E: IFINDEX=2
E: INTERFACE=host0
E: SUBSYSTEM=net

Caso contrário, a rede funciona bem. Tentei /etc/network/interfaces mas isso não funcionou na inicialização, mas apenas com ifup ... (allow-hotplug host0 ...)

Estou um pouco preso, então a ajuda é apreciada.

    
por Christian T 01.09.2016 / 23:28

1 resposta

1

Now I want to configure the container IP to a specific address and created a /etc/systemd/network/host.network file which seems to be ignored as the container gets its IP via DHCP.

Ok... in the container I updated systemd to latest from jessie-backports which got me networkctl. This showed me the file currently used for network configuration. which was not mine. rename my file to 00-host.network and that did the trick...

Bem feito.

Para ser claro, o problema foi que host.network classifica por último. Você precisava fornecer um arquivo com um nome que fosse classificado antes do padrão 80-host0.network em /lib/systemd/network/ ou que tivesse o mesmo nome de arquivo (ou mascarasse-o criando um arquivo com o mesmo nome, apontando para / dev / null). / p>

read something about a bug with network in the container until 217... debian had 215 and in backports is 230.

Alternativa: / etc / network / interfaces

Tried /etc/network/interfaces but this did not work in startup but only with ifup... (allow-hotplug host0 ...)

/ etc / network / interfaces funcionou bem para mim (com DHCP). No entanto, eu me preocupei com o fato de o allow-hotplug poder não funcionar dentro do container, então usei auto host0 . Isso deve ser seguro, pois host0 é criado muito cedo por nspawn.

    
por 26.05.2017 / 13:02