systemd-networkdを使用したアップリンクブリッジなし

systemd-networkdを使用したアップリンクブリッジなし

KVM / QEMUを使用して隔離された仮想ネットワークとして機能するように、物理アップリンクなしで複数のLinuxブリッジを構成しようとしています。私はsystemd-networkdを使用してネットワークインターフェイスを設定するArchlinuxを実行しています。 Cloud-Init を使用してマシンをデプロイしています。 Cloud-Initが正しいファイルを生成できないという問題(詳細については他の質問を参照)に加えて、何らかの形式のアップリンクポートが設定されていないと、systemd-networkdがブリッジインターフェイスをオンラインで取得できないことがわかりました。

netdevファイルとネットワークファイルの2つのファイルしかない場合は、ブリッジインターフェイスが作成されますが、IPアドレスは設定されずにオンラインになります。

</etc/systemd/network/10-cloud-init-br0.netdev>

[NetDev]
Name=br0
Kind=bridge



</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

これら2つのファイルの最終結果は、次のような長い開始遅延です。

#> ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:16:3e:00:e7:1d brd ff:ff:ff:ff:ff:ff
    altname enp0s2
    altname ens2
3: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 9a:02:bb:df:fc:5a brd ff:ff:ff:ff:ff:ff

物理アップリンクを割り当てる追加ファイルを作成する場合:

</etc/systemd/network/10-cloud-init-eth0.network>

[Match]
MACAddress=00:16:3e:00:e7:1d
Name=eth0

[Network]
Bridge=br0

すべてが世界とよく合います。

#> ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
    link/ether 00:16:3e:00:e7:1d brd ff:ff:ff:ff:ff:ff
    altname enp0s2
    altname ens2
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 9a:02:bb:df:fc:5a brd ff:ff:ff:ff:ff:ff
    inet 192.168.231.29/23 brd 192.168.231.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::9802:bbff:fedf:fc5a/64 scope link 
       valid_lft forever preferred_lft forever

IfUpDownを使用してインターフェイスを設定するDebainでは、ブリッジがオンラインになるようにブリッジのスイッチポートにNONE(私の意見では)を指定する必要があります。アップリンクなしでブリッジを構成する方法を定義するsystemd.networkdドキュメントが見つからないようです。どんな助けでも大変感謝します。

答え1

ConfigureWithoutCarrier=yesブリッジされたネットワークファイルの[ネットワーク]セクションを追加する必要があります。 (よりネットワークセクションオプション)

スレーブデバイスを持たないブリッジはデフォルトで設定されていないNO-CARRIER状態に設定され、インターフェイスは未設定のままですsystemd-networkdNO-CARRIER

関連情報