Site icon bintorosoft.com

MTU & Fragmentierung in Overlay: PMTUD Blackholes verhindern

Penguin with glasses and a surprised look on his face is looking at a laptop on white background.

Overlay-Netzwerke in Docker, insbesondere in Swarm- oder Multi-Host-Setups, bringen eine zusätzliche Schicht zwischen den Containern und dem physischen Netzwerk mit sich. Diese Virtualisierung erhöht die Komplexität, wenn es um MTU und Fragmentierung geht. Falsch konfigurierte MTU-Werte können zu PMTUD (Path MTU Discovery) Blackholes führen, wodurch Pakete verschwinden, Verbindungen hängen bleiben und TCP-Streams einfrieren. Dieses Tutorial zeigt, wie MTU korrekt gesetzt, Fragmentierung verstanden und PMTUD-Probleme vermieden werden.

1. Grundlagen: MTU, Fragmentierung und PMTUD

Die Maximum Transmission Unit (MTU) beschreibt die maximale Paketgröße, die ein Interface ohne Fragmentierung übertragen kann. Standardwerte:

Fragmentierung

Wenn ein Paket größer als die MTU des nächsten Hops ist, wird es fragmentiert oder verworfen, falls DF (Don’t Fragment) gesetzt ist. Fragmentierte Pakete können die Performance reduzieren und führen zu höheren CPU-Lasten.

Path MTU Discovery (PMTUD)

PMTUD erkennt automatisch die größte Paketgröße entlang des Pfads, indem ICMP “Fragmentation Needed” Nachrichten genutzt werden. Fällt diese Kommunikation aus, entstehen Blackholes: Pakete verschwinden, ohne dass der Sender informiert wird.

2. Overlay-Netzwerke und MTU

Overlay-Netzwerke, z. B. VXLAN in Docker Swarm, kapseln Pakete und fügen Header hinzu. Daraus folgt:

Die falsche MTU führt häufig zu TCP-Timeouts oder hängenden HTTP-Verbindungen, da die Pakete nicht fragmentiert werden können.

3. MTU korrekt bestimmen

Die MTU sollte so gewählt werden, dass der Overlay-Overhead berücksichtigt wird und keine Fragmentierung notwendig ist:

# Host-MTU ermitteln
ip link show eth0
# typischer Output: mtu 1500

# Overlay MTU kalkulieren: Host MTU - VXLAN Header
Overlay MTU = 1500 - 50 = 1450

Praktische Tests

Mit ping und DF-Flag können Sie die maximale Paketgröße prüfen:

ping -M do -s 1450 
# -M do: Don't Fragment
# -s: Payloadgröße

Erfolgreiche Pings bestätigen, dass PMTUD keine Blackholes erzeugt.

4. Docker Overlay MTU konfigurieren

Beim Start des Docker-Daemons kann die MTU für Overlay-Netzwerke gesetzt werden:

# Beispiel /etc/docker/daemon.json
{
  "mtu": 1450
}
# Docker neu starten
sudo systemctl restart docker

In Swarm-Netzwerken gilt die MTU für alle Overlay-Netzwerke, wodurch konsistente Paketgrößen gewährleistet werden.

Individuelle Netzwerke

Für benutzerdefinierte Overlay-Netzwerke kann die MTU auch beim Erstellen gesetzt werden:

docker network create -d overlay 
  --opt com.docker.network.driver.mtu=1450 
  my_overlay_network

5. Fragmentierungsfallen in der Cloud

Cloud-Provider und VPNs fügen zusätzlichen Overhead hinzu. Typische Probleme:

Lösung: MTU so konfigurieren, dass der gesamte Pfad bis zum entfernten Host passt.

6. Monitoring und Diagnose

Zur Fehlerdiagnose eignen sich:

docker network inspect my_overlay_network
docker service inspect my_service --pretty

7. Best Practices

8. Zusammenfassung

Die korrekte MTU-Konfiguration in Overlay-Netzwerken verhindert PMTUD Blackholes und sorgt für stabile Container-Kommunikation. Durch systematisches Messen, Testen mit ping -M do und Konfiguration der Docker-Daemon MTU können TCP-Streams zuverlässig übertragen werden. Monitoring und Dokumentation der Netzwerk-Topologie sind essenziell, um Fragmentierungsprobleme frühzeitig zu erkennen und Performance-Probleme zu vermeiden.

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:

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

Exit mobile version