Nicht gekennzeichneter Verkehr muss nach der Überquerung der Brücke zu gekennzeichnetem Verkehr werden

Nicht gekennzeichneter Verkehr muss nach der Überquerung der Brücke zu gekennzeichnetem Verkehr werden

Ich versuche, etwas Einfaches zu erreichen.

Ich habe eine Maschine mit einem einzelnen physischen Port enp89s0. Dieser ist mit dem nativen VLAN ( VLAN=1) verbunden.

Ich muss VMs erstellen und sie auf einem separaten platzieren VLAN=166.

Um den Schnittstellennamen der Maschinen nicht im Systemd-Networkd angeben zu müssen, habe ich eine Brücke erstellt und verbinde dort die VMs.

Diese Bridge verfügt als Uplink über eine VLAN-Schnittstelle eth.166, die mit der Hauptbridge verbunden ist.

Das Design würde wie folgt aussehen

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

die VMs werden mit dem verbunden br166.

Die VMs kennzeichnen den Datenverkehr nicht, sodass er ungekennzeichnet ankommt und die Schnittstelle eth.166ihn kennzeichnen und an den Switch weiterleiten sollte. Mein Switch ist mit Trunk-Port konfiguriert, daher glaube ich nicht, dass es ein Problem des Switches ist. Ich habe einige Zeit damit verbracht, konnte aber den Weg nicht finden.

Hier meine Konfiguration

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

Antwort1

Dies ist meine erste Verwendung von systemd-networkd, aber es schien eindeutig das richtige Tool für einen Headless-Libvirt-Host, eine einzelne physische Schnittstelle und das Hosten von Gästen in mehreren VLANs zu sein. Ich hatte Probleme damit, aber es funktionierte gerade, also werde ich mitteilen, was bei mir funktioniert hat. Host und Gäste können ihr jeweiliges Netzwerk und Internet verwenden. Jeglicher Host-Gast-Verkehr müsste physische Netzwerke und Router (extern zum Host) durchlaufen.

(1) physische INF: enp4s0f0
(2) VLANs: f0.2 , f0.613
(2) Bridges für Gastverbindung: brV2, brV613
Host erhält DHCP-Adresse von ungetaggtem VLAN 1.
Gastverkehr ist für den Gast ungetaggt und zwischen Host und Upstream-Switch getaggt. Gäste verwenden die Bridge-Schnittstelle brV2oder brV613.
Bridges sind nur für Gäste gedacht, alle <key>=noEinträge im Abschnitt [Netzwerk] vermeiden die Anzeige eines „herabgestuften“ Status von networkctl list.

Für den ersten Einstieg in systemd-networkd fand ich eine Zeichnung hilfreich.
Konfigurationszeichnung - systemd.networkd mit VLANs für Libvirt-Gäste

/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

verwandte Informationen