Container-Netzwerke folgen einem einfachen Grundprinzip: Alles läuft
in isolierten Netzwerknamespaces, und der Entwickler entscheidet, wie
dieser Namespace an die Außenwelt oder andere Container angeschlossen
wird. Podman bietet drei fundamentale Netzwerkmodelle, die für 90 %
aller Anwendungsfälle relevant sind: Host,
Bridge und Slirp4netns. Jedes Modell
adressiert unterschiedliche Anforderungen an Performance, Isolation,
Sicherheit und Privilegien – und jedes hat charakteristische Stärken und
Schwächen, die man kennen muss, um produktionsnahe Architekturen
konsistent zu gestalten.
Das Host-Netzwerkmodell ist das radikalste und zugleich einfachste
Modell. Der Container erhält keinen eigenen Netzwerknamespace –
stattdessen agiert er direkt im Netzwerk des Hosts.
45.1.1 Eigenschaften des
Host-Modells
beste Performance (keine NAT- oder Overlay-Schichten)
keine Netzwerkisolation
Container sieht alle Interfaces des Hosts
Ports sind ohne Portmapping verfügbar
perfekt für High-Performance-Dienste
ungeeignet für untrusted Code oder Multi-Tenant-Szenarien
Die fehlende Isolation ist Segen und Fluch. Es eignet sich für:
Software, die eigene Netzwerkkonfigurationen setzen muss
Tools, die Host-Netzwerkzustände analysieren (z. B. Traceroute,
Scanning, Netflow)
Im Rootless-Modus ist host networking stark eingeschränkt und oft gar
nicht verfügbar, da unprivilegierte Prozesse keinen Zugriff auf den
Netzwerknamespace des Hosts erhalten.
Praktischer Hinweis: Host-Netzwerke sind das Netzwerkmodell, das
Sicherheitsteams am häufigsten verbieten – aus gutem Grund.
45.2 Bridge-Netzwerk: isoliert,
flexibel und der Standardfall
Das Bridge-Modell ist das klassische Container-Netzwerkmodell und
heute de facto Standard in Podman-, Docker- und Kubernetes-nahen
Architekturen. Jeder Container erhält:
einen eigenen Namespace
eine virtuelle Ethernet-Schnittstelle
eine private IP
NAT-Zugang zur Außenwelt
DNS und Service Discovery über Aardvark
45.2.1 Stärken des
Bridge-Netzwerks
starke Isolation
vorhersehbare IP-Zuteilung (IPAM)
Container können sich gegenseitig finden (DNS)
Ports werden explizit freigegeben
im Root-Modus hohe Performance
Bridge-Netzwerke sind besonders geeignet für serviceorientierte
Architekturen:
Microservices
Entwicklungsumgebungen
Testsysteme
klassische Container-Stacks
Multi-Container-Anwendungen ohne Orchestrator
Die Isolation ist granular und erklärbar – wichtig für Sicherheit,
Compliance und reproduzierbare Deployments.
45.2.2 Bridge-Netzwerk im
Rootless-Modus
Wenn Podman rootless läuft, kann die Engine keine Kernel-Bridges
bauen. Deshalb wird das Bridge-Modell im Hintergrund mit
Userspace-Mechanismen simuliert, aber semantisch bleibt es
identisch:
Container erreichen sich gegenseitig
DNS funktioniert
NAT ermöglicht Internetzugriff
Performance ist dabei gut, aber nicht so hoch wie im Root-Modus.
45.3 Slirp4netns: Rootless
Networking für alle Fälle
Slirp4netns ist das Kernstück des Rootless-Netzwerkmodells. Da
unprivilegierte Nutzer keine Bridging-, NAT- oder Routingoperationen im
Kernel durchführen dürfen, übernimmt slirp4netns diese Aufgaben im
Userspace.
45.3.1 Eigenschaften von
Slirp4netns
NAT im Userspace, kein Kernelzugriff
DNS und DHCP werden nachgebildet
keine Port-Binds unter 1024 möglich
deutlich geringerer Durchsatz als Kernel-NAT
dennoch stabil, portabel und nahezu überall einsetzbar
Slirp4netns ist ideal für:
sichere Entwicklungsumgebungen
Multi-User-Labore
CI/CD-Pipelines ohne Rootrechte
isolierte Build-Prozesse
Slirp4netns ist bewusst konservativ implementiert. Es garantiert:
keine Interferenz mit Host-Routing
kein versehentliches Überschreiben von Firewallregeln
keine Sicherheitslücken durch falsch gesetzte
Kernel-Netzwerkoptionen
45.3.2
Performancecharakteristik
Slirp4netns verursacht zusätzlichen Overhead:
15–40 % weniger Latenz
20–60 % geringerer Durchsatz
CPU-lastiger bei parallelen Verbindungen
Für produktionsnahe Performance-Benchmarks ist rootless networking
kaum geeignet. Für lokale Arbeitsabläufe dagegen ideal.
45.3.3 Portmapping im
Slirp-Modell
Da slirp4netns keinen privilegierten Zugriff hat, muss die Engine
Portmapping umsetzen:
Ports unter 1024 → nur über Host-Port >1024 erreichbar
reverse NAT im Userspace
Regeln werden komplett von Podman verwaltet
Wer lokale Entwicklungscontainer startet, merkt davon wenig – außer
wenn man traditionelle Ports wie 80 oder 443 nutzen möchte.
45.4 Vergleich der drei
Modelle
Ein direkter Vergleich hilft, Architekturentscheidungen zu
treffen:
45.4.1 Empfehlung nach
Szenario
Entwicklung rootless → Slirp4netns
Mehrere Container in projektbezogenen Netzwerken →
Bridge
Performancekritische Anwendungen mit
Host-Abhängigkeiten → Host (mit Vorsicht)
Multi-Tenant- oder Enterprise-Szenarien → Bridge
oder Slirp, niemals Host
45.5 Fehlerszenarien
Typische Probleme zeigen sofort, welches Netzwerkmodell im Einsatz
ist:
45.5.1 Host-Netzwerk
Container „verschluckt“ Hostports
Tools überschreiben Host-Routing unwissentlich
Multi-Container-Kommunikation muss manuell eingerichtet werden
45.5.2 Bridge-Netzwerk
DNS-Auflösung fehlerhaft (Aardvark prüfen)
Portmapping vergessen
falsche Netzwerkzuweisung durch Optionen oder CNI/Netavark
Mismatch
45.5.3 Slirp4netns
Ports <1024 nicht verfügbar
Performance-Probleme bei großen Transfermengen
NAT-Schicht blockiert Sonderprotokolle (z. B. einige
UDP-Broadcasts)