Docker Networking intern: iptables/nftables, NAT und conntrack erklärt

Docker Networking ist ein zentrales Element, um Container isoliert, performant und sicher miteinander kommunizieren zu lassen. Hinter den einfachen CLI-Befehlen verbirgt sich ein komplexes Zusammenspiel aus iptables oder nftables, NAT-Regeln und dem Connection Tracking (conntrack). Wer diese Mechanismen versteht, kann Probleme schneller lösen und Netzwerke stabil betreiben.

1. Grundlagen des Docker-Netzwerks

Docker erstellt standardmäßig drei Netzwerke: bridge, host und none. Bridge-Netzwerke sind die am häufigsten genutzten, da sie Container isolieren, aber dennoch Kommunikation untereinander ermöglichen.

  • Bridge-Netzwerk: Isoliert Container und stellt NAT zur Verfügung
  • Host-Netzwerk: Container teilen den Netzwerkstack des Hosts
  • None-Netzwerk: Container ohne Netzwerkzugang

2. IP-Adressen und Subnetze

Jedes Bridge-Netzwerk bekommt ein eigenes Subnetz. Docker verwendet private IPv4-Bereiche, standardmäßig 172.17.0.0/16, um Container-Adressen zu vergeben.

Subnetzberechnung

Die IP-Range eines Netzwerks wird über die Subnetzmaske definiert. Beispiel:

172.17.0.0/16

Hier können 2^16 – 2 = 65534 Hostadressen vergeben werden, da die erste Adresse das Netz und die letzte die Broadcast-Adresse ist.

3. NAT (Network Address Translation) in Docker

Docker verwendet NAT, um Container mit privaten IPs ausgehenden Zugriff auf das Internet zu ermöglichen. Das Bridge-Netzwerk übersetzt Container-IP-Adressen auf die Host-IP.

Funktionsweise

  • Container sendet Paket an Gateway (Docker-Bridge)
  • iptables NAT-Regeln ändern die Quell-IP auf Host-IP
  • Antwortpakete werden zurückübersetzt auf die Container-IP
# Anzeigen der NAT-Tabelle
sudo iptables -t nat -L -n -v

4. iptables vs. nftables

Linux verwendet iptables oder nftables für Firewall und NAT. Docker schreibt automatisch Regeln in diese Tabellen.

iptables

  • Traditionelle Firewall auf Linux
  • Docker fügt Ketten DOCKER und DOCKER-ISOLATION hinzu
  • Erlaubt NAT für Bridge-Netzwerke

nftables

  • Modernes Framework, ersetzt iptables
  • Kompatibel mit iptables über iptables-nft
  • Regeln sind einfacher zu verwalten und performanter
# Anzeigen aller Regeln in nftables
sudo nft list ruleset

5. Docker-Ketten und deren Funktionen

Docker erstellt spezifische iptables-Ketten für die Verwaltung von Container-Netzwerken:

  • DOCKER: Enthält NAT- und Filterregeln für Container
  • DOCKER-ISOLATION-STAGE-1/2: Isoliert Netzwerke untereinander
  • DOCKER-USER: Platz für eigene Regeln, die vor Docker-Regeln angewendet werden

6. Connection Tracking (conntrack)

conntrack hält Verbindungen zwischen Container-IP und Host-IP nach, um NAT korrekt zu ermöglichen. Jeder ausgehende TCP-Stream wird im Conntrack-Table gespeichert.

Prüfung der aktuellen Verbindungen

# Alle TCP-Verbindungen im Conntrack
sudo conntrack -L -p tcp

Ein überfülltes Conntrack-Table kann zu Verbindungsabbrüchen führen.

7. Port Forwarding und Publish

Damit Container von außen erreichbar sind, werden Ports veröffentlicht:

docker run -d -p 8080:80 nginx
  • Host-Port 8080 wird auf Container-Port 80 gemappt
  • Docker erstellt iptables NAT-Regeln automatisch
  • Port-Konflikte vermeiden, da Host-Port einmalig belegt sein muss

8. Multi-Host-Netzwerke

Mit Overlay-Netzwerken können Container über mehrere Hosts kommunizieren. Docker Swarm oder andere Orchestratoren nutzen VXLAN für verschachtelte Netzwerke.

  • Overlay-Netzwerk erstellt Tunnel zwischen Hosts
  • IP-Adressen bleiben innerhalb des virtuellen Subnetzes konsistent
  • conntrack und NAT arbeiten weiterhin auf jedem Host lokal

9. Troubleshooting und Best Practices

Häufige Probleme:

  • “Connection refused” → Prüfen, ob Service läuft und Port korrekt gemappt ist
  • Container erreichen sich nicht → Prüfen von Bridge-Subnetz und DOCKER-ISOLATION-Regeln
  • NAT funktioniert nicht → iptables/nftables Regeln überprüfen, eventuell Firewall anpassen
  • conntrack-Tabelle voll → sysctl-Parameter erhöhen: net.netfilter.nf_conntrack_max
# Beispiel: Prüfen der Docker Bridge-IP
docker network inspect bridge

10. Sicherheitsaspekte

Docker regelt Netzwerkzugriff automatisch, aber folgende Punkte beachten:

  • Vermeiden, dass Container unnötig offene Ports auf dem Host haben
  • Eigene Regeln in DOCKER-USER einfügen für zusätzliche Firewallkontrolle
  • NAT-Regeln prüfen, um Traffic-Isolation zu gewährleisten

11. Fazit

Ein tiefes Verständnis von iptables/nftables, NAT und conntrack ist essenziell für stabile Docker-Netzwerke. Nur wer diese Mechanismen kennt, kann Networking-Probleme effizient lösen, Sicherheit gewährleisten und die Performance von Containern optimieren.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles