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-networkd
。NO-CARRIER