ArchLinuxでCloud-Initを使用している場合(systemd-networkdを使用したネットワークインターフェイスの設定)、生成された設定ファイルがブリッジインターフェイスに対して不完全または正しくありません。長い起動遅延の後、ブリッジインターフェイスはオンラインになりません。動作するブリッジインターフェイスを取得するには、生成されたファイルを変更して新しいファイルを作成する必要がありました。
Cloud-Initドキュメントから始める:
https://cloudinit.readthedocs.io/en/latest/reference/network-config-format-v2.html#bridges
次のネットワークYAMLファイルを思い出しました。
version: 2
ethernets:
switchports:
match:
macaddress: '00:16:3e:00:e7:1d'
bridges:
br0:
interfaces: [switchports]
addresses:
- 192.168.231.29/23
routes:
- to: 0.0.0.0/0
via: 192.168.230.4
nameservers:
addresses: [192.168.230.5]
(おそらくネットワークエラーのため)、長い起動遅延の後にCloud-Initで作成された次のネットワークプロファイルを取得しました。
</etc/systemd/network/10-cloud-init-br0.network>
[Address]
Address=192.168.231.29/23
[Match]
Name=br0
[Network]
DHCP=no
DNS=192.168.230.5
[Route]
Destination=0.0.0.0/0
Gateway=192.168.230.4
</etc/systemd/network/10-cloud-init-eth0.network>
[Match]
MACAddress=00:16:3e:00:e7:1d
Name=eth0
[Network]
DHCP=no
</etc/systemd/network/10-cloud-init-switchports.network>
[Match]
Name=switchports
[Network]
DHCP=no
システム文書によると:
https://www.freedesktop.org/software/systemd/man/systemd.network.html
これは欠落しているnetdevファイルです。スイッチポートファイルが閉じられませんでした。新しいnetdevファイルを作成し、他の2つのファイルを次のように変更する必要がありました。
</etc/systemd/network/10-cloud-init-br0.netdev> #New File
[NetDev]
Name=br0
Kind=bridge
</etc/systemd/network/10-cloud-init-eth0.network> #Modify this file
[Match]
MACAddress=00:16:3e:00:e7:1d
Name=eth0
[Network]
DHCP=no
Bridge=br0 <- new line
</etc/systemd/network/10-cloud-init-switchports.network> #delete this file outright
デフォルトのbr0構成ファイルを編集する必要はありません。走った後
systemctl 再起動 systemd-networkd.service
br0 インターフェイスがオンラインです。 cloud-initネットワークYAML設定に問題がないかどうかを確認しようとしています。少なくともnetdevファイルはまったく生成されません。必要に応じて一致するMACアドレスを削除できますが、ネットワーク構成V2がこれより柔軟であれば幸いです。
それにもかかわらず、Cloud-InitはArchLinuxでsystemd-networkdブリッジを正しく設定しません。どんな助けでも大変感謝します。