부팅 시 시스템 네트워크 브리지가 생성되지 않음

부팅 시 시스템 네트워크 브리지가 생성되지 않음

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은 괜찮고 네트워크 연결을 유지하며 웹사이트와 IP 주소를 핑할 수 있지만 브리지 호스트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 구성 파일은 대소문자를 구분합니다. 모든 항목이 올바른 대소문자를 사용하여 올바르게 입력되었는지 확인하세요. 그렇지 않으면 작동하지 않습니다.

관련 정보