Wann NAT innerhalb eines Site-to-Site-VPN seinen Platz verdient
Übersetzung kann ein überlappendes Präfix oder einen einseitigen Rückweg retten, aber sie ändert die Adressen, die jede Richtlinie sieht. Entwerfen Sie die Zuordnung ausdrücklich.
Zwei Standorte verwenden beide denselben privaten Bereich, und der Tunnel kommt hoch, während nichts Nützliches ihn durchquert. Übersetzung ist die übliche Antwort, und sie ist eine echte: Dem fernen Ende einen anderen Bereich zu präsentieren, kann eine Überlappung oder einen Rückweg lösen, den das andere Netz nicht routen kann. Der übersprungene Teil ist, dass Übersetzung die Adressen ändert, die jede spätere Entscheidung sieht. Behandeln Sie es als dokumentierte Designentscheidung mit einer schriftlichen Zuordnung, nicht als Regel, die hinzugefügt wird, bis ein Ping erfolgreich ist.
Entscheiden Sie, welche Adresse umgeschrieben wird
Quellübersetzung ändert, was der entfernte Dienst und seine Protokolle als Client sehen, sodass ein Zweigstellenhost bei der Ankunft zu einer Gateway-Adresse wird. Ziel- oder Präfixübersetzung stellt stattdessen eine alternative Adresse für eine entfernte Ressource bereit. Manche Bereitstellungen benötigen eine koordinierte Übersetzung auf beiden Seiten, um zwei ansonsten identische Netze zu trennen, und in der Kombination beginnt die meiste Verwirrung.
Schreiben Sie die Quelle vor der Übersetzung auf, das Ziel so, wie die Anwendung es nennt, und das Adresspaar, auf das jedes Gateway passt. Drei Spalten reichen, und die dritte Spalte ist die, die Leute weglassen.
Auch die Reihenfolge der Selektoren zählt. Auswahl und Übersetzung der IPsec-Richtlinie erfolgen zu definierten Zeitpunkten, sodass ein Selektor, der für Adressen vor der Übersetzung geschrieben wurde, möglicherweise nie auf das Paket in der Phase passt, die Sie angenommen haben. Prüfen Sie die installierte Richtlinie statt der Richtlinie, die Sie installieren wollten, denn die beiden weichen genau dann ab, wenn eine Regel von einer Komponente akzeptiert und von einer anderen ignoriert wird:
ip xfrm policy show
ip xfrm state show
nft list ruleset | grep -A4 nat
Folgen Sie der Nutzlast und dem Rückweg
Ein Server, der die übersetzte Quelle statt des einzelnen Zweigstellenhosts protokolliert, bricht jede Regel oder jeden Bericht, die an der ursprünglichen Adresse hängen. Bevor Sie die Zuordnung ändern, prüfen Sie, ob stromabwärts etwas anhand dieses Feldes entscheidet: Zugriffslisten, Prüfberichte, Ratenbegrenzungen, Lizenzprüfungen. Jedes davon ist eine Stelle, an der die Übersetzung später als unerklärlicher Fehler auftaucht.
Protokolle, die Adressen in ihrer Nutzlast tragen, brauchen eine eigene Planung, denn das Umschreiben des äußeren Headers berührt die innere Referenz nicht. Aktives FTP, SIP und einige Fernzugriffsprodukte sind die klassischen Fälle, und ein Design, das sie ignoriert, funktioniert für Webverkehr und scheitert für die Anwendung, auf die es ankam.
Rückverkehr hängt von zustandsbehafteten Zuordnungen ab. Ein Gateway-Failover kann diesen Zustand verlieren, asymmetrisches Routing kann ihn umgehen, und ein Neustart kann ihn löschen, während Sitzungen auf der fernen Seite offen bleiben. Deshalb sind eine Anfrage, die das Ziel erreicht, und eine Sitzung, die abgeschlossen wird, zwei verschiedene Akzeptanzergebnisse.
Wägen Sie es gegen die Neunummerierung eines Standorts ab
Die Neunummerierung eines Konfliktstandorts entfernt die Zuordnung vollständig und hinterlässt einen Adressplan, der ohne Übersetzungstabellen lesbar ist. Sie ist betrieblich teuer: DNS-Einträge, statische Zuweisungen, Firewall-Regeln und jede dokumentierte Adresse müssen gemeinsam geändert werden. Die Kosten fallen einmal an, in einem geplanten Fenster, mit einem klaren Endzustand. Was Sie kaufen, ist die Fähigkeit, einen Paketmitschnitt Jahre später ohne Nachschlagetabelle zu lesen.
Übersetzung vermeidet die meisten lokalen Änderungen und schafft eine Zuordnung, die in DNS, Dokumentation und Fehlersuche für immer gepflegt werden muss. Die Kosten fallen fortlaufend an, in Form jedes zukünftigen Ingenieurs, der lernen muss, dass ein Präfix innerhalb des Tunnels etwas anderes bedeutet.
Für eine temporäre Verbindung oder ein Partnernetz, das Sie nicht kontrollieren, sind die laufenden Kosten normalerweise gerechtfertigt. Für zwei Standorte, die Sie besitzen und jahrelang besitzen werden, ist die Neunummerierung oft die billigere Entscheidung, sobald die Migration ehrlich gerechnet wird.
Beweisen Sie beide Richtungen mit einer echten Sitzung
Testen Sie eine Anwendungssitzung statt einer einzelnen Sonde. Eine erfolgreiche Echoanfrage beweist, dass eine Richtung eines Protokolls funktioniert, und sie ist vollkommen vereinbar mit einem Rückweg, der für alles Zustandsbehaftete scheitert. Verwenden Sie den Dienst, der das Design motiviert hat, und lesen Sie sein Protokoll am fernen Ende, um zu sehen, welche Quelladresse er aufgezeichnet hat.
tcpdump -ni any host 10.40.9.20 and port 443
conntrack -L | grep 10.40.9.20
ip route get 10.40.9.20
Bestätigen Sie dann, dass nur die beabsichtigten Dienste über die Zuordnung erreichbar sind. Übersetzung ändert die Adressierung und tut nichts für die Autorisierung, daher entscheidet weiterhin die Firewall-Richtlinie, was erlaubt ist. Ein Design, das sich auf ein obskures übersetztes Präfix als Zugriffskontrolle verlässt, hat überhaupt keine Zugriffskontrolle.
Halten Sie die Zuordnung, die getestete Sitzung und die von jeder Seite beobachteten Adressen fest. Die nächste Person, die diesen Tunnel debuggt, braucht diese drei Fakten mehr als die Konfigurationsdatei.