Systemd-networkdがコンテナ内のインターフェイスを見つけることができないようです。

Systemd-networkdがコンテナ内のインターフェイスを見つけることができないようです。

Ubuntu 20.04.3でnspawn-containerを設定しようとしています。ホストネットワーク構成にはブリッジインターフェイスが含まれています。

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet *  netmask 255.255.255.255  broadcast 0.0.0.0
        inet6 * prefixlen 64  scopeid 0x0<global>
        ether 41:8a:5b:d8:83:00  txqueuelen 1000  (Ethernet)
        RX packets 5914822  bytes 888728796 (888.7 MB)
        RX errors 0  dropped 449  overruns 0  frame 0
        TX packets 30323548  bytes 37836188291 (37.8 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

コンテナは次のように起動します。

systemd-nspawn -UbM helloworld --network-bridge=br0

コンテナが起動すると、vb-helloworldインターフェイスが作成されます。

vb-helloworld: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::c8fc:b8ff:fed1:176  prefixlen 64  scopeid 0x20<link>
        ether ca:fc:b8:d1:01:76  txqueuelen 1000  (Ethernet)

コンテナには、configが処理するhost0必要があるインタフェースがあります。systemd-networkd/etc/systemd/network/host0.network

[Match]
Name=host0
[Network]
DHCP=false
Address=*:*:*:*::100/64
Gateway=fe80::1
DNS=2a01:4ff:*::*:1
Address=192.168.50.10/24
Gateway=192.168.50.1
DNS=192.168.50.2
ConfigureWithoutCarrier=yes
[Link]
MACAddress=f6:d9:2b:ba:7a:1d
ARP=true
RequiredForOnline=yes
[Address]
Address=*:*:*:*::100/64
Scope=global
[Route]
Gateway=fe80::1
Scope=global

コンテナには次のインタフェースがあります。

host0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 169.254.214.0  netmask 255.255.0.0  broadcast 169.254.255.255
        inet6 fe80::f4d9:2bff:feba:7a1d  prefixlen 64  scopeid 0x20<link>
        ether f6:d9:2b:ba:7a:1d  txqueuelen 1000  (Ethernet)
...

残念ながら、networkdはインターフェイスを見つけることができないようですhost0。アドレスが割り当てられていません。 ip4もip6でもありません。Nameセクションのパラメータ[Match]をに変更すると、*そのアドレスがloインターフェイスに割り当てられます。

私は何が間違っていましたか?

ベストアンサー1

Systemdには、すでにインターフェースと一致するネットワーク構成がありますhost0

/usr/lib/systemd/network/80-container-host0.network

Networkd は、すべての .network ファイルをランダムな順序で読み込みます。最初に一致するファイルが勝ちます。 (ASCIIではほぼ順番です0-9 A-Z a-z。)カスタム構成が優先順位を持つには、ファイル名が順番になっている必要があります。今後 80-container-host0、例えば50-custom-host0

(このディレクトリは、両方のファイルの名前が同じ場合にのみ重要です。この場合、/ etcのファイルは/ usr / libの同じ名前のファイルよりも優先されます。)

おすすめ記事