Zwei Clients hinter demselben Router sprechen mit einem IPsec-Gateway, und einer fällt immer wieder aus, während der andere verbunden bleibt. Native ESP ist IP-Protokoll 50 ohne Ports, also hat ein Übersetzer nichts, woran er eine Zuordnung festmachen kann, wenn mehrere Clients eine Adresse teilen. NAT-Traversal schließt diese Lücke, indem ESP auf 4500 in UDP verpackt wird, und dieser Header erklärt die meisten der folgenden Symptome. Er weist auch auf das Gerät hin, das geändert werden muss.

Warum die Datenebene auf Port 4500 wechselt

Beim Aufbau vergleicht IKEv2 die Adressen und Ports, die jede Seite zu nutzen glaubt, indem es Hashes in seinen NAT-Erkennungsbenachrichtigungen austauscht. Wenn die Hashes nicht übereinstimmen, sitzt irgendwo auf dem Pfad ein Übersetzer, und beide Peers schalten den geschützten Verkehr auf UDP-Kapselung um. Deshalb sieht eine Sitzung, die auf einen Übersetzer getroffen ist, anders aus als eine, die es nicht ist.

Die Verpackung ist ein Umschlag, keine Protokolländerung: ESP behält seinen Header, seine Integritätsprüfung und seine Verschlüsselung, und UDP liefert nur die Ports, die der Übersetzer braucht. Port 500 trägt den IKE-Austausch; 4500 trägt nach der Erkennung die gekapselten Daten und oft auch die späteren IKE-Nachrichten. Keiner der Ports macht den Fluss zu einer TCP-Verbindung, eine Annahme, die die meisten Menschen beim Lesen eines Mitschnitts in die Irre führt.

Prüfen Sie die beiden Stufen der Reihe nach

Beweisen Sie zuerst den Kontrollaustausch, dann den Datenpfad, und halten Sie beides in Ihren Notizen getrennt. Ein Mitschnitt, der Verkehr auf 500 und nie auf 4500 zeigt, bedeutet meist, dass der Datenpfad gefiltert wird, also gehört die Korrektur in die Firewall-Regel und nicht in den Client.

Überwachen Sie beide Ports mit tcpdump -ni any 'udp port 500 or udp port 4500' und lesen Sie die Übersetzungstabelle auf dem Router, während eine Sitzung läuft. Diese Tabelle zeigt den Quellport, den das Gateway tatsächlich sieht, und ein Mitschnitt auf dem Laptop weicht absichtlich ab: Der Laptop glaubt 500, während das Gateway 4500 mit einem übersetzten Quellport sieht, und beides ist richtig. Derselbe Fluss vor und nach der Übersetzung:

client 192.0.2.10:500 -> router 203.0.113.7:62000 -> gateway 198.51.100.9:4500

Symptome, die die Verpackung erklärt, und zwei, die sie nicht erklärt

Ein Router, der den Kontrollaustausch erlaubt und die gekapselten Daten blockiert erzeugt die Meldung, der Tunnel stehe, aber es gehe nichts hindurch. Zuordnungstabellen laufen ab, deshalb braucht eine untätige Sitzung Keepalive-Verkehr, den die Peers absichtlich senden, und diese Pakete sind keine Gesundheitsprüfungen. Wenn mehrere Clients hinter einem Gateway gemeinsam ausfallen, untersuchen Sie die Übersetzung dieses Gateways und jede alte Passthrough-Funktion. Die Verpackung erklärt weder eine Anwendung, die bei jedem Client nach dem Aufbau des Tunnels ausfällt, noch eine Zertifikatswarnung auf einer Blockseite; beides liegt über dieser Schicht.

Lesen Sie die Zuordnungstabelle für zwei Clients gleichzeitig: Wenn beide denselben übersetzten Port zeigen, trennt das Gerät sie nicht so, wie das Gateway es verlangt. Ein Passthrough-Modus, der native ESP nur einem Host übergibt, ist nicht gleichbedeutend mit der Bedienung mehrerer übersetzter Clients, obwohl Hersteller beides als IPsec-freundlich beschreiben. Doppeltes NAT fügt eine Zuordnungsebene und einen weiteren Ablaufpunkt hinzu, bricht aber ausgehende Verbindungen nicht automatisch ab.

Keepalive-Verkehr verdient eine eigene Zeile im Betriebshandbuch, denn er hält den Antwortpfad über Ruhephasen hinweg offen. Aktivieren Sie ihn dort, wo der Hersteller es dokumentiert, und prüfen Sie ihn zuerst, wenn eine Sitzung nach Minuten der Stille stirbt und nicht beim ersten Gebrauch.

Ändern Sie den Eigentümer der Zuordnung, und testen Sie dann erneut

Folgen Sie den unterstützten NAT-Traversal-Einstellungen auf beiden Peers, statt einen Port zu raten. Den lokalen Quellport auf einem Client zu ändern, kann den Dienst am anderen Ende nicht ändern, und es zerstört meist die bereits aufgebaute Zuordnung. Sitzt der Client hinter einem Gerät, das Sie nicht kontrollieren, gehört die Änderung dessen Eigentümer.

Wiederholen Sie nach jeder Änderung beide Stufenprüfungen und bestätigen Sie, dass ein Datenpaket hindurchgeht, nicht nur dass der Statusbildschirm grün geworden ist. Halten Sie die Tupel, die Ausgabe der Zuordnungstabelle und die Regeländerung in einer Notiz fest, damit die nächste Person nicht wieder beim Kontrollaustausch beginnt. Die strongSwan-Hinweise zu NAT-Traversal behandeln die Kapselungs- und Keepalive-Einstellungen hinter beiden Stufen.

Ähnliche Artikel