En värdrutt, en adress, och ping misslyckas omedelbart med General failure i stället för att begäran tar timeout. Den skillnaden är hela diagnosen. En timeout betyder att paketet lämnade datorn och att något ignorerade det. General failure betyder att Windows inte kunde lämna paketet till något gränssnitt över huvud taget.

Så när rutttabellen ser perfekt ut och felet fortfarande är General failure sker blockeringen under routingbeslutet, och leverantörens klient är det som verkar där.

Läs felet före rutttabellen

Windows returnerar det felet när det inte hittar något gränssnitt att skicka på, och det säger ingenting om vad destinationen skulle ha gjort med paketet. Nåbarhet, brandväggar i andra änden och tjänstens tillgänglighet är alla senare frågor som du ännu inte har nått.

Den klassiska konfigurationen för det här fallet är en värdrutt som pekar en enda LAN-adress mot den fysiska gatewayn så att den går förbi tunneln. route add accepterar den, route print visar den, och ping misslyckas fortfarande, eftersom filterdrivrutinen redan har beslutat att paketet inte får gå ut.

Innan du accepterar den förklaringen, bekräfta att rutten faktiskt väljs: kontrollera gränssnittsindexet och metriken, och se till att posten inte är inaktuell efter en återanslutning. En rutt som pekar på ett gränssnitt som inte längre finns ger ett liknande fel av en mycket mindre intressant anledning.

Tre lager, tre olika ägare

Det lager som vinner är det som körs sist, och dessa tre står inte i den ordning som de flesta antar.

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

Det mellersta lagret är anledningen till att en rutt kan vara både korrekt och oanvändbar samtidigt. Leverantörernas klienter installerar ett filter och brandväggsregler så att trafik utanför tunneln släpps, och det är samma mekanism som implementerar deras kill switch. Ingenting i rutttabellen deltar i det beslutet.

Det tredje lagret förklarar en märklig rapport som kommer regelbundet: det lokala subnätet är onåbart även efter att klienten har kopplats från. Tjänsten körs fortfarande och filtret är fortfarande installerat, så inte ansluten är inte samma sak som inte filtrerande. Avsluta klienten i stället för att bara koppla från den innan du drar någon slutsats.

Vad du bör prova, i ordning

Börja med att ta bort de funktioner som är billiga att ta bort och lätta att återställa. LAN-upptäckt, ibland kallat osynlighet på LAN, blockerar trafik till privata adressområden så att datorn hålls dold för sina grannar. Skrivare, lokala filservrar och själva routern försvinner bakom den brytaren. Hotskyddsfunktioner som filtrerar DNS installerar sina egna krokar och rapporteras bryta lokal nåbarhet på ungefär samma sätt.

Stäng av båda, avsluta klienten helt och testa sedan adressen. Den sekvensen skiljer en funktion som blockerar trafik från en tunnel som routar den fel, och den tar två minuter i stället för en eftermiddag med statiska rutter.

ping 192.168.1.50
tracert -d 192.168.1.50
route print -4

Om adressen svarar när funktionerna är av har du ett policybeslut och inte ett fel: välj mellan att låta funktionen vara av, lägga till ett undantag eller acceptera att datorn förblir osynlig på det lokala nätet.

Använd klientens undantagsväg, snävt

När en funktion måste vara på är klientens egen delade tunnling den stödda vägen ut. Håll undantaget så litet som kravet tillåter, vilket vanligtvis betyder en värdadress för en server eller ett prefix för ett enda segment. En regel som täcker ett helt privat område är ett permanent hål som ingen kommer att minnas att de lade till och som ingen kommer att våga ta bort.

Verifiera sedan först via adress och sedan via namn. Om adressen svarar med ett första hopp på den fysiska gatewayn fungerar undantaget. Om namnet fortfarande misslyckas har du flyttat till DNS, eftersom tunnelns resolver inte känner till den lokala zonen och ingen routingändring kommer att lära den det.

Behåll rutten eller undantaget, inte båda, plus en anteckning om vilken som gör jobbet. Två överlappande mekanismer döljer varandra, och nästa person som felsöker den här datorn kommer att ta bort en av dem och inte se någon förändring.

När klienten är hindret

Vissa byggen filtrerar trafik på sätt som varken en statisk rutt eller ett klientundantag kan besegra. När det är fyndet är de ärliga alternativen att vänta på kringgåendefunktionen eller att ansluta med en vanlig OpenVPN-klient med leverantörens egen profil, vilket leverantörens support svar rekommenderade i den ursprungliga rapporten.

Förstå bytet innan du gör den ersättningen. En vanlig profil beter sig som vilken vanlig tunnel som helst: den installerar sina rutter och bygger inte om resten av stacken, så en smal värdrutt beter sig fortfarande som du förväntar dig. Det du förlorar är allt som den varumärkta klienten implementerade runt tunneln, inklusive kill switch och DNS-filtrering, och det måste medvetet återskapas eller accepteras som frånvarande.

Vad du än väljer, anteckna vilket lager som ägde blockeringen. Ett paket som aldrig lämnade datorn är ett filterresultat, och ingen routingändring kan reparera ett filter.

Relaterade artiklar