Systemd-networkd: Bridge mit VLANs an Netzwerkport

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
bachmarc
Beiträge: 14
Registriert: 30.03.2016 11:18:17

Systemd-networkd: Bridge mit VLANs an Netzwerkport

Beitrag von bachmarc » 24.10.2022 11:35:52

Hallo,
ich bemühe mich meine Netzwerkonfiguration zu ändern aber mein Anwendungsfall ist nirgendwo extakt so beschrieben, und meine Anpassungen von ähnlichen Lösungen führt nicht zum Erfolg. SYSTEMD-NETWORKD mag nicht...

Ausgangssituation:
Ich habe hier einen funktionierenden Setup (ohne VLAN), wo ein virtueller Router mit einem virtuellen Device in eine Bridge spricht.
Die Bridge hat einen physik Netzwerkport, der dann als Uplink zum physik. Switch geht, wo dann drei WLAN Accesspoints dranhängen.
Läuft...

Ziel:
Ich möchte neben meinem internen WLAN "SolnetWLAN" ein zweites WLAN "Guestwlan" in einem anderen Subnetz an die AP bringen... Das klappt nur mit VLAN, weil die AP nur eine Buchse haben...

a) Ich brauche also eine Bridge, die VLAN versteht und selbst keine IP hat.
b) Default sollte mein VLAN 1 sein..
c) Der zugeordnete Netzwerkport muss VLAN verstehen und weitergeben. Gern per default in ID1 aber eben "GuestWlan" in id2.

Umsetzung:
Die Umsetzung ist leider extrem dünn... was immer ich mir ansehe an Docu oder Tutorial passt nicht zu dem was ich möchte:


Code: Alles auswählen

cat brsolnetwlan.netdev
[NetDev]
Name=brsolnetwlan
Kind=bridge

[Bridge]
DefaultPVID=1
VLANFiltering=1
Ich denke die bridge kennt jetzt das Konzept "VLan". ID 1 ist der default, wenn etwas untagged kommt...

Code: Alles auswählen

cat brsolnetwlan.network
[Match]
Name=brsolnetwlan

[Network]
VLAN=vlsolnetwlan
VLAN=vlguestwlan

[BridgeVLAN]
VLAN=1

[BridgeVLAN]
VLAN=2
Das habe ich "zusammengeklaut" aus https://github.com/systemd/systemd/issues/8087 mir ist nicht klar, warum die Bridge wissen muss, welche VLAN es gibt... sie soll sie ja nur konsistent durchreichen.

Code: Alles auswählen

cat vlsolnetwlan.netdev
[NetDev]
Name=vlsolnetwlan
Kind=vlan

[VLAN]
Id=1
Die NetDev sehe ich ein... es benamst die ID1
Die Network aus dem tutorial würde sowas erzeugen:

Code: Alles auswählen

vlsolnetwlan: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.112.1  netmask 255.255.255.0  broadcast 192.168.112.255
        inet6 fe80::6017:d1ff:fe7c:595f  prefixlen 64  scopeid 0x20<link>
        ether 62:17:d1:7c:59:5f  txqueuelen 1000  (Ethernet)
        RX packets 9  bytes 3989 (3.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 44  bytes 9676 (9.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
Das kollidiert mit dem Router... und ich verstehe auch nicht was es repräsentieren soll... Ein in der Bridge hängendes virtuelles device für VLAN?
Habe daher keine network Datei

Code: Alles auswählen

cat vlguestwlan.netdev
[NetDev]
Name=vlguestwlan
Kind=vlan

[VLAN]
Id=2
Wieder ohne Network, weil mir das Ergebnis nichts sagt. Ein Device mit MAC an der Bridge, dass ich icht will...

Code: Alles auswählen

 cat enp8s0f1.network
[Match]
Name=enp8s0f1

[Network]
Bridge=brsolnetwlan
DHCP=no
LinkLocalAddressing=no
KeepConfiguration=yes
Das enp8s0f1 ist der Glasfaster Port am PC zum Switch...
Hier hätte ich jetzt erwartet, dass dem Port sagt: "VLAN id1 und id2 da fühle ich mich angesprochen und gebe es weiter... jetzt mal egal ob id1 getagged ist oder nicht... id2 muss getagged durch die Schnittstelle.

Code: Alles auswählen

       enp8s0f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 90:e2:ba:88:a3:dd  txqueuelen 1000  (Ethernet)
        RX packets 1177909  bytes 266127927 (253.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3679420  bytes 4221796711 (3.9 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
VLAN sollte ja über eine MAC gehen und nur die Pakete flaggen... insofern ok?


Was ich sehe ist, die VLAN leben aber sind ungenutzt:

Code: Alles auswählen

 
cat  /proc/net/vlan/vlsolnetwlan
vlsolnetwlan  VID: 1     REORDER_HDR: 1  dev->priv_flags: 1001
         total frames received            0
          total bytes received            0
      Broadcast/Multicast Rcvd            0

      total frames transmitted            0
       total bytes transmitted            0
Device: brsolnetwlan
INGRESS priority mappings: 0:0  1:0  2:0  3:0  4:0  5:0  6:0 7:0
 EGRESS priority mappings:
Ich finde irgendwie keine konsistente Doku, die nicht irgendwann in unpassende spezielle Beispiele abdriftet.

Gruß Marc

bachmarc
Beiträge: 14
Registriert: 30.03.2016 11:18:17

Re: Systemd-networkd: Bridge mit VLANs an Netzwerkport

Beitrag von bachmarc » 24.10.2022 11:51:10

Ich habe jetzt mal die

Code: Alles auswählen

cat  enp8s0f1.network
[Match]
Name=enp8s0f1

[Network]
Bridge=brsolnetwlan
DHCP=no
LinkLocalAddressing=no
KeepConfiguration=yes
VLAN=vlsolnetwlan
VLAN=vlguestwlan
Die VLan auch auf die Karte enp8s0f1 eingetragen... zumindest scheint es jetzt benutzt zu werden:

Code: Alles auswählen

 cat  /proc/net/vlan/vlsolnetwlan
vlsolnetwlan  VID: 1     REORDER_HDR: 1  dev->priv_flags: 1001
         total frames received         3505
          total bytes received       387483
      Broadcast/Multicast Rcvd         1777

      total frames transmitted          745
       total bytes transmitted        62971
Device: brsolnetwlan
INGRESS priority mappings: 0:0  1:0  2:0  3:0  4:0  5:0  6:0 7:0
 EGRESS priority mappings:

Muss die Bridge von den VLANS wissen? sie soll die ja nur weiterleiten und hat kein umtaggen zu tun

bachmarc
Beiträge: 14
Registriert: 30.03.2016 11:18:17

Re: Systemd-networkd: Bridge mit VLANs an Netzwerkport

Beitrag von bachmarc » 26.10.2022 17:43:08

OK, das Drama liegt an libvirt :(
Man kann drehen was man möchte: am Ende kann libvirt nix mit VLAN linux Bridge anfangen

bachmarc
Beiträge: 14
Registriert: 30.03.2016 11:18:17

Re: Systemd-networkd: Bridge mit VLANs an Netzwerkport

Beitrag von bachmarc » 28.10.2022 22:24:16

Ich habe es gelöst... ein Drama!

Jedes VLAN Vorhaben braucht eine eigene Bridge.
Man hängt an eine Bridge, die man vlan enabled hat zunächst die vnet adapter der virtuellen maschinen...
Damit man damit aus dem Host Rechner kommt legt man zu einem physik. Interface jeweils virtuelle Interfaces mit vlan Zuweisungen an.. die hängt man dann in die Bridges, die fürs jeweile Vlan zuständig sind sind.

So wollte ich nicht 100 vlans konfigurieren aber ich kam im open vswitch rum...

Aber es läuft... es hat jetzt hier IOT und guest wlan

Marc

Antworten