Ein Drucker auf dem Schreibtisch funktioniert weiter, nachdem der Tunnel steht, während ein Server im anderen Büro still auf etwas Lokales aufgelöst wird. Beide Verhalten folgen derselben Regel: Die spezifischste Route gewinnt, und ein direkt angeschlossenes Präfix ist so spezifisch, wie es nur geht. Das ist meist das gewünschte Design, und es ist auch der Weg, auf dem ein doppelter privater Bereich eine entfernte Adresse stiehlt. Wer zuerst die Entscheidung des Kernels liest, verwandelt einen rätselhaften Fehler in einen Präfixvergleich.

Ein verbundenes Präfix ist spezifischer als eine Standardroute

Ein Tunnel installiert typischerweise eine Standardroute oder eine Reihe von Präfixen, während eine lokale Schnittstelle ein verbundenes Präfix plus eine Route zum gesamten LAN trägt. Zwischen beiden entscheidet die längste Präfixübereinstimmung, daher erreicht ein Ziel innerhalb des LAN-Präfixes den Tunnel nie. Deshalb bleiben ein Drucker, die Administrationsseite eines Routers und ein lokales NAS erreichbar, solange die VPN läuft. Deshalb geht auch eine entfernte Ressource in einem überlappenden Bereich an die falsche Maschine.

Privater Adressraum ist nicht eindeutig, und dass zwei Standorte dasselbe Präfix wählen, ist häufig genug, um es einzuplanen. Wenn sich die Bereiche überlappen, kommt die lokale Antwort schnell und wirkt autoritativ, sodass der Fehler leicht als Anmeldeproblem missverstanden wird. Das Ziel hat geantwortet, nur nicht das gemeinte.

Lesen Sie die Entscheidung, die der Kernel treffen würde

Fragen Sie den Kernel, welche Route er für das genaue Ziel verwenden würde, statt die Tabelle von oben zu lesen. Suchen Sie dann nach Policy-Regeln, die eine andere Tabelle auswählen könnten. Zwei Befehle beantworten beide Fragen in wenigen Sekunden.

ip route get 10.20.30.41
ip route show table all | grep -E '10\.|default'
ip rule show

Die erste Ausgabe nennt die Schnittstelle, den nächsten Hop und die Quelladresse, die der Kernel verwenden würde, und das ist die Antwort, auf die es ankommt. Ein dev-Wert, der auf die lokale Bridge zeigt, bedeutet, dass das Paket nie in den Tunnel gelangt, was auch immer das Statusfenster des VPN-Clients behauptet. Die gefilterte Tabellenliste zeigt, ob eine andere Tabelle dasselbe Präfix hält, und die Regelliste zeigt die Reihenfolge, in der diese Tabellen befragt werden. Eine Policy-Regel kann ein Präfix über eine bestimmte Tabelle senden selbst dann, wenn die Haupttabelle widerspricht, also ist diese Reihenfolge Teil der Antwort.

Lokaler Zugriff ist eine eigene Berechtigung

Eine Route zu haben ist nicht dasselbe wie sie nutzen zu dürfen. Die meisten Clients können lokale Netzwerkkommunikation blockieren, während der Tunnel steht, und diese Einstellung ist eine Richtlinienentscheidung und kein Routing-Artefakt. Wenn ein vertrauenswürdiger Dienst in der Nähe zum Entwurf gehört, aktivieren Sie die unterstützte Option für lokalen Zugriff, statt Routen zu erfinden. Wenn das Gerät in einem öffentlichen WLAN ist, lassen Sie sie aus.

Die beiden Schichten scheitern unterschiedlich. Ein blockierter lokaler Pfad erzeugt einen Timeout, obwohl die Route existiert, während eine überlappende Route eine Antwort vom falschen Host liefert. Sie zu unterscheiden kostet eine Abfrage und spart einen Nachmittag mit Firewall-Änderungen, und die Weiterleitungsanordnung ist in die Weiterleitungsnotizen von strongSwan beschrieben.

Beheben Sie eine Überlappung ohne Anhäufung von Host-Routen

Eine Host-Route für eine Adresse scheint eine Überlappung zu beheben und scheitert in dem Moment, in dem eine zweite Adresse im selben Bereich gebraucht wird. Zwanzig davon später kann niemand sagen, welches Präfix maßgeblich ist. Dauerhafte Lösungen sind eine Änderung der Adressierung, eine dokumentierte Topologie, die den doppelten Bereich vermeidet, oder Übersetzung an einem Ende. Jede kostet einmal Planungszeit statt Wartung für immer.

Wenn eine vorübergehende Host-Route wirklich nötig ist, notieren Sie daneben den Grund, den Verantwortlichen und das Datum, damit sie später entfernt werden kann. Testen Sie dann die genaue Adresse und den Dienst plus ein öffentliches Ziel, denn eine Änderung des lokalen Zugriffs, die stillschweigend unbeteiligte Anwendungen aus dem Tunnel ausschließt, ist schlimmer als der ursprüngliche Fehler. Halten Sie das lokale Präfix und das entfernte Präfix getrennt notiert; diese Gewohnheit verhindert, dass ein funktionierender lokaler Ping als Beweis dafür herumgereicht wird, dass das entfernte Büro erreichbar ist.

Ähnliche Artikel