Bei der Einrichtung eines neuen GRE-Tunnels ist gestern der in [Path MTU Discovery kaputt?][1] Effekt an Clients aufgetreten. Einige Webseiten wurden nicht korrekt geladen. Trotz dieses Problems hat ein PING in Richtung des Webservers Problemlos funktioniert. Das deutete auf Probleme mit der MTU hin. Mit einem tcpdump auf die Ziel-IP konnte ich das Problem mit der MTU identizifieren:
fra3.fra.de.ffrl.de > 93.184.X.X: ICMP 185.66.Y.X unreachable - need to frag (mtu 1452), length 556
Dabei war MSS-Clamping wie im verlinkten Beitrag beschrieben bereits auf den Supernodes der betroffenen Community aktiv. Eine Kontrolle der Interfaces auf dem Core Router hat allerdings folgendes gezeigt:
tun-YYXX-gw01@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1452
Die MTU des Tunnels wird auf jedem Endpunkt beim erstellen des Tunnels ermittelt und festgelegt. Auf der anderen Seite des Tunnelendpunkts war die MTU 1476. Das deutete auf ein asymmetrisches Routing der GRE-Pakete des Tunnels hin. Da die verringerte MTU von 1452 für den Supernode nicht direkt sichtbar war hat das MSS-Clamping bei diesem Problem keine Wirkung gezeigt. Der Tunnelendpunkt des Supernodes hatte ja 1476 als MTU ermittelt.
Ursache für das Problem war, dass die Pakete die vom Standort FRA3 zurück zum Tunnelendpunkt am Supernode gingen durch den GRE-Tunnel zwischen den Standorten FRA3 und BER geroutet wurden. Durch den Transport von GRE in GRE wurde die MTU entsprechend reduziert.
Als Lösung habe ich nun auf allen Core Routern eine Statische Router für die Ziel-IPs von Tunnelendpunkten auf unser Upstream Gateway gesetzt.
[1]: Path MTU Discovery kaputt? - #2 von adorfer