KVMゲストがネットワークにアクセスできるように、systemd-networkdを使用してイーサネットブリッジを作成しようとしています。私はDebian 11 Bullseyeを使用しており、物理デバイス「eno1」にブリッジ「host1」を作成しようとしています。
root@debian-kvm:/etc/systemd/network# ls
20-wired.network host1.netdev host1.network uplink.network
root@debian-kvm:/etc/systemd/network# cat 20-wired.network
[Match]
Name=eno1
[Network]
DHCP=No
Address=192.168.1.57/24
Gateway=192.168.1.1
DNS=1.1.1.1
root@debian-kvm:/etc/systemd/network# cat host1.netdev
[Netdev]
Name=host1
Kind=bridge
root@debian-kvm:/etc/systemd/network# cat host1.network
[Match]
Name=host1
[Network]
Address=192.168.1.2/24
Gateway=192.168.1.1
DNS=1.1.1.1
root@debian-kvm:/etc/systemd/network# cat uplink.network
[Match]
Name=eno1
[Network]
Bridge=host1
しかし、「systemctl restart systemd-networkd」を実行しても機能しません。 eno1は大丈夫です。ネットワーク接続は維持されます。 WebサイトとIPアドレスをpingできますが、ブリッジホスト1はまったく表示されません。
root@debian-kvm:/etc/systemd/network# networkctl
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged
2 eno1 ether routable configured
3 eno2 ether off unmanaged
4 eno3 ether off unmanaged
5 eno4 ether off unmanaged
root@debian-kvm:/etc/systemd/network# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether b8:ca:3a:64:65:88 brd ff:ff:ff:ff:ff:ff
altname enp1s0f0
3: eno2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether b8:ca:3a:64:65:89 brd ff:ff:ff:ff:ff:ff
altname enp1s0f1
4: eno3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether b8:ca:3a:64:65:8a brd ff:ff:ff:ff:ff:ff
altname enp1s0f2
5: eno4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether b8:ca:3a:64:65:8b brd ff:ff:ff:ff:ff:ff
altname enp1s0f3
私が知っている限り、それはうまくいくはずです。これらのファイルは、優先順位が最も高い/etc/systemd/networkにあり、正しい構文と名前を持つ.netdevファイルがあり、親がeno1であることを示すuplink.networkファイルがあり、host1.networkファイルがあります。 IP、DNSなどを設定するために使用されます。 host1.networkを25-wired.networkに移動することも役に立ちませんので、ファイル名ではないようです。
/etc/network/interfaces にありますが、systemd-networkd がこのファイルを読み取っていないようです:
root@debian-kvm:/etc/systemd/network# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eno1
iface eno1 inet manual
# KVM Host interface, use this to avoid conflicts, physical device is just for physical connection
iface host1 inet manual
# FreeBSD KVM bridge
#iface frbsd1 inet static
# bridge_ports eno1
# address 192.168.1.45
# broadcast 192.168.1.255
# netmask 255.255.255.0
# gateway 192.168.1.1
起動するたびにブリッジを生成するinitスクリプトを生成できることを知っていますが、これはやや古いので、持続可能な方法でこの問題を解決したいと思います。
ここで何が起こっているのか、そしてブリッジを正しく作るために修正する方法は何ですか?
答え1
質問コメントでwangkaibuleが述べたように、[Netdev]の代わりに[NetDev]を入力する必要があります。
同様の状況にある人の場合、systemd構成ファイルは大文字と小文字を区別します。すべての項目が正しい大文字と小文字で正しく入力されていることを確認してください。それ以外の場合は動作しません。