Bridge Setup & Virtual Networking on SUSE (Artikel 143)
Aufbau von virtuellen Netzwerk-Bridges unter SUSE. Erfahren Sie alles über Software-Switches im Kernel, STP-Konfiguration und die Anbindung von KVM- und Xen-Instanzen.
# Virtual Bridges on SUSE: Das Rückgrat der Virtualisierung
TL;DR / Management Summary Ein Server, der virtuelle Maschinen (VMs) hostet, braucht einen Weg, um diese an das physikalische Netzwerk anzubinden. Eine Linux Bridge agiert als virtueller Switch innerhalb des SUSE-Kernels. Wir nutzen Wicked, um Bridges (
br0odervmbr0) über physische Karten oder Bonds zu legen. Ein Senior Admin muss hierbei das Spanning Tree Protocol (STP) beherrschen, um gefährliche Netzwerkschleifen in redundanten Umgebungen zu verhindern.
# 1. Einführung & Architektur
Der Switch im RAM.
Eine Bridge arbeitet auf Layer 2 (OSI). Sie lernt, welche MAC-Adresse hinter welchem Port (physisch oder virtuell) liegt.
# Die Architektur-Schichten (Mermaid)
graph TD
A[Physical Link: bond0] --- B[Bridge: br0]
B --- C[Virtual Interface: tap0 - VM 1]
B --- D[Virtual Interface: tap1 - VM 2]
B --- E[Management IP: 10.0.0.5]
subgraph "SUSE Hypervisor Host"
B
E
end
subgraph "External Network"
A --- F[Physical Switch]
end
# 2. Konfiguration via YaST
Präzise und sicher.
In SUSE ist es Best-Practice, die Management-IP des Hosts nicht auf die Karte, sondern auf die Bridge zu legen.
# Schritt-für-Schritt (YaST)
sudo yast2 lan.- Add -> “Bridge”.
- Bridge Ports: Wählen Sie das physikalische Device aus (z.B.
eth0). Dieses darf danach keine eigene IP mehr haben! - STP: Wenn Ihr Host an zwei Switches angeschlossen ist, aktivieren Sie
STP = on. - IP: Vergeben Sie die IP-Adresse des Servers nun für die Bridge
br0.
# 3. Manuelle Konfiguration (ifcfg-br0)
Für die Automatisierung.
Beispiel: /etc/sysconfig/network/ifcfg-br0
BOOTPROTO='static'
IPADDR='10.0.0.5/24'
STARTMODE='auto'
# Hier definieren wir die Bridge
BRIDGE='yes'
BRIDGE_PORTS='eth0'
BRIDGE_STP='on'
BRIDGE_FORWARDDELAY='0'
# 4. Day-2 Operations: STP und Forward Delay
Das Netz stabil halten.
# Warum STP?
Wenn zwei Netzwerkkarten eines Hosts an den gleichen Switch-Stack angeschlossen sind und beide Teil einer Bridge sind, entsteht ein Loop. STP erkennt dies und schaltet einen Pfad auf “Blocking”.
# Forward Delay
Standardmäßig wartet eine Bridge 15 Sekunden (Listening/Learning), bevor sie Pakete weiterleitet. In virtuellen Umgebungen (Proxmox/KVM) setzen wir diesen Wert oft auf 0, damit VMs nach dem Start sofort Netz haben.
# 5. Troubleshooting & “War Stories”
Wenn die Pakete im Loop sterben.
# Story 1: “Der Broadcast-Sturm”
Symptom: Das gesamte Firmennetzwerk bricht zusammen, sobald ein neuer SUSE-Node gestartet wird. Die CPU-Last auf den Switches springt auf 100%.
Ursache: Eine Bridge ohne STP wurde an zwei Switch-Ports angeschlossen, die ebenfalls kein STP (oder BPDU Guard) aktiv hatten.
Lösung: Aktivieren Sie BRIDGE_STP='on' in der Konfiguration und stellen Sie sicher, dass die Bridge-Priorität korrekt gesetzt ist.
# Story 2: “Kein Ping zur VM”
Symptom: Der Host kann das Internet erreichen, aber die VMs in der Bridge sind stumm.
Ursache: Das Kernel-Modul br_netfilter ist geladen, und die Iptables-Regeln blockieren den Traffic, der durch die Bridge fließt.
Lösung: Deaktivieren Sie das Filtern auf Bridge-Ebene (falls nicht benötigt):
echo 0 > /proc/sys/net/bridge/bridge-nf-call-iptables.
# 6. Fazit & Empfehlung
- Virtualisierung: Nutzen Sie für KVM-Umgebungen unter SUSE immer Bridges.
- Management IP: Legen Sie die IP des Hosts auf die Bridge. Das erlaubt Wartungsarbeiten am physikalischen Interface, ohne die logische IP-Verbindung zu unterbrechen.
- Wahl: Nutzen Sie Open vSwitch (OVS) nur dann, wenn Sie komplexe SDN-Features (Software Defined Networking) brauchen. Für 99% der Fälle reicht die Standard Linux Bridge.
# Anhang: Cheatsheet
| Aufgabe | SUSE / CLI Befehl |
|---|---|
| Bridge Status | bridge link show |
| MAC Tabelle | bridge fdb show dev br0 |
| STP Status | brctl showstp br0 |
| Port hinzufügen | brctl addif br0 eth1 |
| Bridge Details | wicked show br0 |
| Firewall für Bridge | yast2 firewall -> Zone für br0 setzen |