linux-suse-opensuse networking vlan 802.1q wicked sles opensuse

VLAN Configuration: 802.1Q on SUSE (Artikel 142)

Konfiguration von virtuellen LANs (VLANs) unter SUSE. Erfahren Sie alles über Tagging, die Erstellung von Sub-Interfaces via Wicked und die Segmentierung im Enterprise-Netz.

# VLAN on SUSE: Netzwerk-Segmentierung mit Wicked

TL;DR / Management Summary Um verschiedene Netzwerke (z.B. Management, Produktion, Backup) sicher voneinander zu trennen, ohne für jedes Netz ein eigenes Kabel ziehen zu müssen, nutzen wir VLANs (Virtual LANs) nach dem Standard IEEE 802.1Q. Unter SUSE erlaubt das Wicked-Framework die Erstellung von virtuellen Sub-Interfaces auf Basis einer physischen Karte oder eines Bonds. Wer VLANs beherrscht, schafft die Grundlage für moderne, mandantenfähige Infrastrukturen.


# 1. Einführung & Architektur

Tagging und Sub-Interfaces.

Ein VLAN-fähiger Switch fügt Ethernet-Frames einen “Tag” (ID zwischen 1 und 4094) hinzu. Das Linux-System muss diese Tags erkennen und an die richtigen virtuellen Interfaces verteilen.

# Die VLAN-Hierarchie (Mermaid)

graph TD
    A[Physical Trunk Interface: eth0] --> B[VLAN Kernel Module]
    B --> C[Virtual Interface: vlan10]
    B --> D[Virtual Interface: vlan20]
    C --> E[IP Layer: 10.10.10.5]
    D --> F[IP Layer: 10.20.20.5]
    G[Switch Port: Tagged 10, 20] --- A

# 2. Konfiguration via YaST

Der einfache Weg.

Starten Sie das Modul: sudo yast2 lan.

  1. Add: Wählen Sie “VLAN” als Gerätetyp.
  2. Real Interface: Wählen Sie die physikalische Karte (z.B. eth0) oder einen Bond (bond0), auf dem das VLAN liegen soll.
  3. VLAN ID: Geben Sie die ID ein (z.B. 10).
  4. IP: Konfigurieren Sie die Adresse für dieses VLAN-Interface.

Benennung: YaST nutzt standardmäßig das Format vlan<ID> (z.B. vlan10). Dies ist in SUSE-Umgebungen der Standard und sollte beibehalten werden.


# 3. Manuelle Konfiguration (ifcfg-vlan10)

Für Automatisierung.

Datei: /etc/sysconfig/network/ifcfg-vlan10

BOOTPROTO='static'
IPADDR='10.10.10.5/24'
STARTMODE='auto'
ETHERDEVICE='eth0'
VLAN_ID='10'
VLAN='yes'

# 4. Day-2 Operations: MTU & Troubleshooting

Wenn die Pakete zu groß sind.

# Die MTU-Falle

VLAN-Tags verbrauchen 4 Bytes Platz im Ethernet-Frame.

  • Wenn das physikalische Interface eine MTU von 1500 hat, kann es vorkommen, dass das VLAN-Interface ebenfalls 1500 meldet, aber die Pakete am Switch verworfen werden.
  • Best Practice: Setzen Sie die MTU der physikalischen Karte (Trunk) auf 1504 oder höher, damit das VLAN-Interface echte 1500 Bytes Payload übertragen kann.

# Status prüfen

# Zeigt alle konfigurierten VLANs im Kernel
cat /proc/net/vlan/config

# Detaillierte Statistiken für vlan10
cat /proc/net/vlan/vlan10

# 5. Troubleshooting & “War Stories”

Wenn das Tagging fehlschlägt.

# Story 1: “Der stumme Tunnel”

Symptom: Das Interface vlan10 ist up, aber kein Ping geht durch. tcpdump zeigt ausgehende Pakete, aber keine Antworten. Ursache: Der Switch-Port ist nicht als “Tagged” (oder “Trunk”) für diese VLAN-ID konfiguriert. Er empfängt die Pakete mit dem Tag und verwirft sie sofort. Lösung: Switch-Konfiguration prüfen. Stellen Sie sicher, dass das VLAN auf dem Port erlaubt (allowed) ist.

# Story 2: “Native VLAN Konflikt”

Symptom: Traffic für VLAN 10 funktioniert, aber Traffic ohne Tag auf der physikalischen Karte (eth0) wird verworfen. Ursache: Das “Native VLAN” am Switch passt nicht zur Konfiguration am Server. Lösung: Vermeiden Sie es, gleichzeitig ungetaggten Traffic (Native) und getaggten Traffic auf dem gleichen Interface zu nutzen. Nutzen Sie für das Management-Netz ebenfalls eine VLAN-ID.


# 6. Fazit & Empfehlung

  • Bonds: Legen Sie VLANs immer auf einen Bond (bond0.10) statt auf Einzelkarten, um Redundanz zu gewährleisten.
  • Struktur: Nutzen Sie für jedes VLAN eine eigene ifcfg-Datei für maximale Übersichtlichkeit.
  • Wahl: Nutzen Sie YaST für die initiale Einrichtung, da es die korrekten Modul-Abhängigkeiten im Hintergrund auflöst.

# Anhang: Cheatsheet

Aufgabe SUSE / CLI Befehl
VLAN Status wicked show vlan10
Alle VLANs listen ip -d link show type vlan
VLAN Paket-Scan tcpdump -i eth0 -e vlan 10
MTU ändern ip link set dev eth0 mtu 1504
Interface löschen yast2 lan -> Delete
VLAN Modul laden modprobe 8021q