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.
- Add: Wählen Sie “VLAN” als Gerätetyp.
- Real Interface: Wählen Sie die physikalische Karte (z.B.
eth0) oder einen Bond (bond0), auf dem das VLAN liegen soll. - VLAN ID: Geben Sie die ID ein (z.B.
10). - 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 |