KVM/QEMU를 사용하여 격리된 가상 네트워크 역할을 하도록 물리적 업링크 없이 여러 Linux 브리지를 구성하려고 합니다. 저는 systemd-networkd를 사용하여 네트워크 인터페이스를 구성하는 Archlinux를 실행하고 있습니다. Cloud-Init을 사용하여 머신을 배포하고 있습니다. Cloud-Init이 올바른 파일을 생성하지 못하는 문제(자세한 내용은 다른 질문 참조) 외에도 어떤 형태의 업링크 포트가 구성되지 않으면 systemd-networkd가 브리지 인터페이스를 온라인으로 가져올 수 없다는 사실을 발견했습니다.
netdev 파일과 네트워크 파일이라는 두 개의 파일만 있는 경우 브리지 인터페이스가 생성되지만 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
이 두 파일의 최종 결과는 다음과 같은 긴 시작 지연입니다.
#> 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
브리지된 네트워크 파일의 [Network] 섹션을 추가해야 합니다 . (보다네트워크 섹션 옵션)
슬레이브 장치가 없는 브리지는 기본적으로 구성되지 않은 NO-CARRIER
상태로 설정되고 인터페이스는 구성되지 않은 상태로 systemd-networkd
유지됩니다 .NO-CARRIER