systemd-networkd .network는 systemd-nspawn 컨테이너에서 무시됩니다.

systemd-networkd .network는 systemd-nspawn 컨테이너에서 무시됩니다.

저는 systemd-nspawnRaspberryPi에서 컨테이너를 가지고 놀고 있습니다. 지금까지 스타트업은 잘 작동하고 있습니다. --network-veth 및 --network-bridge=br0 옵션을 사용하고 있으며 브리지는 kvm 가상 머신에서 제대로 작동합니다.

이제 컨테이너 IP를 특정 주소로 구성하고 /etc/systemd/network/host.network컨테이너가 DHCP를 통해 IP를 가져올 때 무시되는 것처럼 보이는 파일을 생성하려고 합니다.

이것이 파일입니다.

[Match]
Name=host0

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

systemd-networkd가 실행 중입니다:

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

udev는 "name" 필드의 값이 괜찮을 것이라고 말했습니다. 왜 무시되고 있나요?

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

그렇지 않으면 네트워크가 제대로 작동합니다. 이것을 시도했지만 /etc/network/interfaces부팅 시 작동하지 않습니다. ifup만 사용할 수 있습니다... (allow-hotplug host0 ...)

나는 약간 붙어있어서 도움을 주시면 감사하겠습니다.

답변1

이제 컨테이너 IP를 특정 주소로 구성하고 컨테이너가 DHCP를 통해 IP를 얻을 때 무시되는 것으로 보이는 /etc/systemd/network/host.network 파일을 생성하려고 합니다.

좋아... 컨테이너에서 systemd를 jessie-backports에서 최신 버전으로 업데이트하여 networkctl을 얻었습니다. 현재 네트워크 구성에 사용되는 파일이 표시됩니다. 이것은 내 것이 아닙니다. 내 파일 이름을 00-host.network로 바꾸었고 작동했습니다 ...

잘하셨어요.

분명히 말하면 질문은 host.network마지막에 나왔습니다. 이름이 80-host0.network기본값보다 먼저 정렬 /lib/systemd/network/되거나 동일한 파일 이름을 갖는 파일을 제공해야 합니다 (또는 /dev/null을 가리키는 동일한 이름의 파일을 생성하여 마스크).

Debian의 경우 217...215, 백포트의 경우 230까지 컨테이너의 네트워크 오류에 대해 읽어보세요.

대안: /etc/network/interfaces

/etc/network/interfaces를 시도했지만 부팅 시 작동하지 않습니다.

/etc/network/interfaces는 나에게 잘 작동합니다(DHCP 사용). 하지만 컨테이너 내부에서는 Allow-hotplug가 작동하지 않을까봐 걱정되어 대신 사용했습니다 auto host0. 이는 host0매우 초기에 nspawn에 의해 생성되었으므로 안전해야 합니다 .

관련 정보