o tráfego não marcado deve se tornar tráfego marcado depois de passar pela ponte

o tráfego não marcado deve se tornar tráfego marcado depois de passar pela ponte

Estou tentando conseguir algo simples.

Eu tenho uma máquina que possui uma única porta física enp89s0. isso está conectado à VLAN nativa ( VLAN=1).

Preciso criar VMs e colocá-las em um arquivo VLAN=166.

Para não especificar o nome da interface das máquinas na rede systemd, criei uma ponte e conectei VMs lá.

Esta ponte tem como uplink uma interface vlan eth.166que está conectada à ponte principal.

o design ficaria parecido com o seguinte

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

as VMs são conectadas ao br166.

As VMs não marcam o tráfego, portanto o tráfego chega sem marcação e a interface eth.166deve marcá-lo e passá-lo para o switch. Meu switch está configurado com porta de tronco, então não acho que seja um problema do switch. Passei algum tempo nisso, mas não consegui encontrar o caminho.

Aqui minha configuração

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

Responder1

Este é meu primeiro uso do systemd-networkd, mas claramente parecia ser a ferramenta certa para host libvirt sem cabeça, interface física única, hospedando convidados em várias VLANs. Tenho lutado com isso, mas acabei de fazer funcionar, então compartilharei o que funcionou para mim. Host e convidados podem usar suas respectivas redes e Internet. Qualquer tráfego host-convidado teria que atravessar redes físicas e roteador (externo ao host).

(1) INF físico: enp4s0f0
(2) VLANs: f0.2 , f0.613
(2) Pontes para conexão de convidado: brV2, brV613
Host obtendo endereço DHCP de VLAN 1 não marcada
O tráfego do convidado não é marcado para o convidado e marcado entre o host e interruptor a montante. Os convidados usam a interface Bridge brV2ou brV613.
Bridges destinadas apenas a convidados, todas as <key>=noentradas na seção [Rede] evitam ver um status 'degradado' de networkctl list.

Para a primeira entrada no systemd-networkd, achei um desenho útil.
Desenho de configuração - systemd.networkd com VLANs para convidados libvirt

/etc/systemd/network files:  

10-enp4s0f0.rede

[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.rede

[Match]
Name=f0.2

[Network]
Bridge=brV2  

30-vlan613.rede

[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.rede

[Match]
Name=brV2

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

30-V613-brNET.rede

[Match]
Name=brV613

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

informação relacionada