태그가 지정되지 않은 트래픽은 브리지를 통과한 후 태그가 지정된 트래픽이 되어야 합니다.

태그가 지정되지 않은 트래픽은 브리지를 통과한 후 태그가 지정된 트래픽이 되어야 합니다.

나는 간단한 것을 달성하려고 노력하고 있습니다.

단일 물리적 포트를 가진 컴퓨터가 있습니다 enp89s0. 이는 기본 VLAN( VLAN=1)에 연결됩니다.

VM을 생성하여 별도의 VLAN=166.

시스템 네트워크에서 머신의 인터페이스 이름을 지정하지 않기 위해 브리지를 만들고 거기에 VM을 연결했습니다.

eth.166이 브리지에는 메인 브리지에 연결된 VLAN 인터페이스가 업링크로 포함되어 있습니다 .

디자인은 다음과 같습니다

              -------------               -------------
  enps890    |             |     eth.166 |              |
-------------|   br0       |-------------|    br166     | 
             |             |             |              |
             --------------               --------------

VM이 br166.

VM은 트래픽에 태그를 지정하지 않으므로 트래픽은 태그 없이 도착하며 인터페이스는 eth.166트래픽에 태그를 지정하고 스위치에 전달해야 합니다. 내 스위치는 트렁크 포트로 구성되어 있으므로 스위치 문제는 아닌 것 같습니다. 나는 그것에 시간을 보냈지 만 길을 찾을 수 없었습니다.

여기 내 구성

br0.netdev

[NetDev]
Name=br0
Kind=bridge

[Bridge]
VLANFiltering=yes

br0.network

[Match]
Name=br0

[Network]
DHCP=yes

[Network]
VLAN=eth.166

enps890.network

[Match]
Name=enp89s0
[Network]
Bridge=br0
[BridgeVLAN]
VLAN=166

br166.netdev

[NetDev]
Name=br166
Kind=bridge

[Bridge]
VLANFiltering=yes

br166.network

[Match]
Name=br166

[Network]
DHCP=no

eth.166.network

[Match]
Name=eth.166

[Network]
Bridge=br166
DHCP=no

[BridgeVLAN]
VLAN=166
PVID=166
EgressUntagged=166

eth.166.netdev

[NetDev]
Name=eth.166
Kind=vlan

[VLAN]
Id=166
$ bridge vlan

port              vlan-id
enp89s0           1 PVID Egress Untagged
                  166
br0               1 PVID Egress Untagged
br166             1 PVID Egress Untagged
eth.166           1 Egress Untagged
                  166 PVID Egress Untagged
virbr0            1 PVID Egress Untagged

답변1

이것은 systemd-networkd를 처음 사용하는 것이지만 헤드리스 libvirt 호스트, 단일 물리적 인터페이스, 여러 VLAN에서 게스트를 호스팅하는 데 적합한 도구임이 분명해 보였습니다. 나는 그것으로 어려움을 겪었지만 방금 작동하게 되었기 때문에 나에게 효과가 있었던 것을 공유하겠습니다. 호스트와 게스트는 각각의 네트워크와 인터넷을 사용할 수 있습니다. 모든 호스트-게스트 트래픽은 물리적 네트워크와 라우터(호스트 외부)를 통과해야 합니다.

(1) 물리적 INF: enp4s0f0
(2) VLAN: f0.2 , f0.613
(2) 게스트 연결용 브리지: brV2, brV613 태그가
지정되지 않은 VLAN 1에서 DHCP 주소를 가져오는 호스트
게스트 트래픽은 게스트에 대해 태그가 지정되지 않고 호스트와 호스트 사이에 태그가 지정됩니다. 업스트림 스위치. 게스트는 Bridge 인터페이스 brV2또는 brV613.
게스트 전용 브리지인 경우 <key>=no[Network] 섹션 아래의 모든 항목은 에서 '성능 저하' 상태가 표시되는 것을 방지합니다 networkctl list.

systemd-networkd에 처음 입문할 때 도움이 되는 그림을 찾았습니다.
구성 도면 - libvirt 게스트용 VLAN이 있는 systemd.networkd

/etc/systemd/network files:  

10-enp4s0f0.network

[Match]
Name=enp4s0f0

[Network]
DHCP=ipv4
VLAN=f0.2
VLAN=f0.613

[DHCPv4]
UseDNS=no

28-vlan2.netdev

[NetDev]
Name=f0.2
Kind=vlan

[VLAN]
Id=2

28-vlan613.netdev

[NetDev]
Name=f0.613
Kind=vlan

[VLAN]
Id=613

30-vlan2.network

[Match]
Name=f0.2

[Network]
Bridge=brV2  

30-vlan613.network

[Match]
Name=f0.613

[Network]
Bridge=brV613

30-br2.netdev

[NetDev]
Name=brV2
Kind=bridge

30-br613.netdev

[NetDev]
Name=brV613
Kind=bridge

30-V2-brNET.network

[Match]
Name=brV2

[Network]
DHCP=no
LinkLocalAddressing=no
LLDP=no
EmitLLDP=no
IPv6AcceptRA=no
IPv6SendRA=no

30-V613-brNET.network

[Match]
Name=brV613

[Network]
DHCP=no
LinkLocalAddressing=no
LLDP=no
EmitLLDP=no
IPv6AcceptRA=no
IPv6SendRA=no

관련 정보