Eine Hostroute, eine Adresse, und der Ping scheitert sofort mit General failure, statt dass die Anfrage in einen Timeout läuft. Genau diese Unterscheidung ist die ganze Diagnose. Ein Timeout bedeutet, dass das Paket das Gerät verlassen hat und etwas es ignoriert hat. General failure bedeutet, dass Windows das Paket von vornherein an keine Schnittstelle übergeben konnte.

Wenn die Routentabelle also perfekt aussieht und der Fehler weiterhin General failure ist, geschieht die Blockade unterhalb der Routingentscheidung, und der Client des Anbieters ist das, was dort arbeitet.

Lesen Sie den Fehler vor der Routentabelle

Windows gibt diesen Fehler zurück, wenn es keine Schnittstelle zum Senden findet, und es sagt nichts darüber, was das Ziel mit dem Paket getan hätte. Erreichbarkeit, Firewalls auf der Gegenseite und Dienstverfügbarkeit sind alles nachgelagerte Fragen, zu denen Sie noch nicht vorgedrungen sind.

Die klassische Konfiguration für diesen Fall ist eine Hostroute, die eine einzelne LAN-Adresse auf das physische Gateway zeigt, damit sie den Tunnel umgeht. route add akzeptiert sie, route print zeigt sie an, und der Ping scheitert weiterhin, weil der Filtertreiber bereits entschieden hat, dass das Paket nicht hinausdarf.

Bevor Sie diese Erklärung akzeptieren, bestätigen Sie, dass die Route tatsächlich ausgewählt wird: Prüfen Sie den Schnittstellenindex und die Metrik und stellen Sie sicher, dass der Eintrag nach einem erneuten Verbinden nicht veraltet ist. Eine Route, die auf eine nicht mehr vorhandene Schnittstelle zeigt, erzeugt aus einem viel weniger interessanten Grund einen ähnlichen Fehler.

Drei Ebenen, drei verschiedene Eigentümer

Es gewinnt die Ebene, die zuletzt läuft, und diese drei stehen nicht in der Reihenfolge, die die meisten annehmen.

LayerWhat it decides
Routing tableWhich interface and next hop should carry the packet
Client filter driverWhether this packet is permitted to leave outside the tunnel at all
Client featureWhether a named feature, such as LAN blocking, is active right now

Die mittlere Ebene ist der Grund, warum eine Route gleichzeitig korrekt und nutzlos sein kann. Anbieter-Clients installieren einen Filter und Firewallregeln, damit Verkehr außerhalb des Tunnels verworfen wird, und das ist derselbe Mechanismus, der ihren Kill Switch umsetzt. Nichts in der Routentabelle nimmt an dieser Entscheidung teil.

Die dritte Ebene erklärt eine merkwürdige Meldung, die regelmäßig eintrifft: Das lokale Subnetz ist auch nach dem Trennen des Clients nicht erreichbar. Der Dienst läuft noch, und der Filter ist noch installiert, also ist nicht verbunden nicht dasselbe wie nicht filternd. Beenden Sie den Client, statt ihn nur zu trennen, bevor Sie irgendetwas schließen.

Was Sie der Reihe nach versuchen sollten

Beginnen Sie damit, die Funktionen zu entfernen, die billig zu entfernen und leicht wiederherzustellen sind. Die LAN-Erkennung, manchmal Unsichtbarkeit im LAN genannt, blockiert Verkehr zu privaten Adressbereichen, damit das Gerät für seine Nachbarn verborgen bleibt. Drucker, lokale Dateiserver und der Router selbst verschwinden hinter diesem Schalter. Bedrohungsschutzfunktionen, die DNS filtern, installieren ihre eigenen Hooks und sollen die lokale Erreichbarkeit in ganz ähnlicher Weise brechen.

Schalten Sie beide aus, beenden Sie den Client vollständig und testen Sie dann die Adresse. Diese Reihenfolge trennt eine Funktion, die Verkehr blockiert, von einem Tunnel, der ihn falsch routet, und sie dauert zwei Minuten statt eines Nachmittags mit statischen Routen.

ping 192.168.1.50
tracert -d 192.168.1.50
route print -4

Antwortet die Adresse, sobald die Funktionen aus sind, haben Sie eine Richtlinienentscheidung und keinen Defekt: Wählen Sie zwischen ausgeschaltet lassen, eine Ausnahme hinzufügen oder zu akzeptieren, dass das Gerät im lokalen Netz unsichtbar bleibt.

Nutzen Sie den Ausnahmepfad des Clients, eng begrenzt

Wenn eine Funktion aktiviert bleiben muss, ist das eigene Split-Tunnelling des Clients der unterstützte Ausweg. Halten Sie die Ausnahme so klein, wie es die Anforderung zulässt, was normalerweise eine Hostadresse für einen Server oder ein Präfix für ein einzelnes Segment bedeutet. Eine Regel, die einen ganzen privaten Bereich abdeckt, ist ein dauerhaftes Loch, von dem niemand sich erinnern wird, es hinzugefügt zu haben, und das niemand zu entfernen wagt.

Prüfen Sie dann zuerst über die Adresse und danach über den Namen. Antwortet die Adresse mit einem ersten Hop auf dem physischen Gateway, funktioniert die Ausnahme. Scheitert der Name weiterhin, sind Sie bei DNS angekommen, weil der Resolver des Tunnels die lokale Zone nicht kennt und keine Routingänderung ihm das beibringen wird.

Behalten Sie die Route oder die Ausnahme, nicht beides, plus eine Notiz darüber, welche die Arbeit leistet. Zwei überlappende Mechanismen verbergen einander, und die nächste Person, die dieses Gerät debuggt, wird einen davon entfernen und keine Änderung sehen.

Wenn der Client das Hindernis ist

Manche Builds filtern Verkehr auf eine Weise, die weder eine statische Route noch eine Client-Ausnahme besiegen kann. Wenn das die Erkenntnis ist, sind die ehrlichen Optionen, auf die Umgehungsfunktion zu warten oder sich mit einem einfachen OpenVPN-Client und dem eigenen Profil des Anbieters zu verbinden, was die Supportantwort des Herstellers im ursprünglichen Bericht empfahl.

Verstehen Sie den Tausch, bevor Sie ihn vornehmen. Ein einfaches Profil verhält sich wie jeder gewöhnliche Tunnel: Es installiert seine Routen und baut den Rest des Stapels nicht um, sodass eine enge Hostroute sich weiterhin so verhält, wie Sie es erwarten. Was Sie verlieren, ist alles, was der gebrandete Client rund um den Tunnel umgesetzt hat, einschließlich Kill Switch und DNS-Filterung, und das muss bewusst nachgebaut oder als fehlend akzeptiert werden.

Was immer Sie wählen, halten Sie fest, welche Ebene die Blockade besaß. Ein Paket, das das Gerät nie verlassen hat, ist ein Filterergebnis, und keine Routingänderung kann einen Filter reparieren.

Ähnliche Artikel