systemd-networkd
Debian 12에서 libvirt 가상 머신을 쉽게 구성하기 위해 VLAN 필터링 없이 VLAN당 브리지를 구성하려고 합니다 .
이는 VLAN 없이도 예상대로 작동하며 일부 수동 도움말을 사용하면 VLAN에서도 작동합니다( ip link set master ...
). 문제의 증상은 브리지 및 VLAN 인터페이스가 실제로 systemd-networkd
생성되었지만 연결되지 않은 것입니다.
2: onbunten: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master brlan state UP group default qlen 1000
link/ether 04:92:26:b7:a9:9f brd ff:ff:ff:ff:ff:ff
4: brlan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether c6:50:f5:f2:22:8c brd ff:ff:ff:ff:ff:ff
inet 192.168.2.222/24 brd 192.168.2.255 scope global brlan
valid_lft forever preferred_lft forever
5: brvlan2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 46:ba:f7:a8:3d:d7 brd ff:ff:ff:ff:ff:ff
6: brvlan3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 26:96:9b:cc:69:af brd ff:ff:ff:ff:ff:ff
7: onbunten.4@onbunten: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 04:92:26:b7:a9:9f brd ff:ff:ff:ff:ff:ff
8: onbunten.2@onbunten: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 04:92:26:b7:a9:9f brd ff:ff:ff:ff:ff:ff
9: onbunten3@onbunten: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 04:92:26:b7:a9:9f brd ff:ff:ff:ff:ff:ff
onbunten.2
/패턴 onbunten3
차이는 의도적인 것입니다. 이로 인해 차이가 있는지 테스트해 보세요.
나는 내가 한 일이 해결책임을 나타내는 것처럼 보이는 설명을 인터넷에서 찾았습니다. 나는 또한 이 진술을 발견했다
이 구성은 더 이상 사용되지 않으며 더 이상 지원되지 않습니다.
이 웹사이트에서 (답변); 불행하게도 정확히 무엇이 더 이상 사용되지 않아야 하는지에 대한 명확한 설명이 없습니다(Systemd 매뉴얼 페이지에서 그러한 힌트를 찾지 못했습니다).
systemd-networkd
디버그 모드( )에서 실행했지만 SYSTEMD_LOG_LEVEL=debug
500줄의 로깅에서 VLAN 및 브리지 인터페이스와 관련된 내용을 동시에 발견하지 못했습니다. 오류 메시지가 없습니다.
구성 파일
이것이 작동하는 것입니다
==> 31-brlan.netdev <==
[NetDev]
Name=brlan
Kind=bridge
==> 32-brvlan2.netdev <==
[NetDev]
Name=brvlan2
Kind=bridge
==> 33-brvlan3.netdev <==
[NetDev]
Name=brvlan3
Kind=bridge
==> 41-onbunten-vlans.network <==
[Match]
Type=ether
Name=onbunten
[Network]
LinkLocalAddressing=no
VLAN=onbunten.2
VLAN=onbunten3
VLAN=onbunten.4
Bridge=brlan
==> 61-brlan-onbunten.network <==
[Match]
Name=onbunten
[Network]
Bridge=brlan
==> 71-brlan.network <==
[Match]
Name=brlan
[Network]
LinkLocalAddressing=no
ConfigureWithoutCarrier=yes
IgnoreCarrierLoss=yes
[Address]
Address=192.168.2.222/24
이건 작동하지 않을 거야
==> 62-brvlan2-onbunten2.network <==
[Match]
Name=onbunten.2
[Network]
Bridge=brvlan2
==> 63-brvlan3-onbunten3.network <==
[Match]
Name=onbunten3
[Network]
Bridge=brvlan3
==> 72-brvlan2.network <==
[Match]
Name=brvlan2
[Network]
DHCP=no
LinkLocalAddressing=no
# Gateway=192.168.115.1
# NTP=
ConfigureWithoutCarrier=yes
IgnoreCarrierLoss=yes
[Address]
Address=192.168.115.222/24
DuplicateAddressDetection=ipv4
Scope=global
==> 73-brvlan3.network <==
[Match]
Name=brvlan3
[Network]
DHCP=no
LinkLocalAddressing=no
Gateway=192.168.116.1
# NTP=
ConfigureWithoutCarrier=yes
IgnoreCarrierLoss=yes
[Address]
Address=192.168.116.222/24
DuplicateAddressDetection=ipv4
Scope=global
답변1
마지막으로 디버그 출력에서 다음을 발견했습니다.
onbunten.2: Failed to manage link by its new hardware address, ignoring: Die Datei existiert bereits
(존재의 사실독일어는파일이 이미 존재합니다.)
MACAddress=
이로 인해 VLAN 인터페이스에 [NetDev]
파일 블록을 추가하려고 했습니다 netdev
(아직 인터페이스 생성에 문제가 있을 것으로 예상하지 않았기 때문에 위에 표시되지 않았습니다 DOWN
).
Systemd나 커널의 일부 변경으로 인해 해당 항목 없이도 작동하기 전에 요구 사항이 있다고 생각합니다. 모든 문서에는 이것이 제공될 필요가 없다고 명확하게 명시되어 있습니다.