General failure při pingování adresy LAN se zapnutým klientem VPN
Windows hlásí, že se vůbec nedokáže dostat k adaptéru, zatímco směrovací tabulka vypadá správně. Určete, zda blokování způsobuje směrování, filtrování, nebo klient.
Jedna hostitelská trasa, jedna adresa a ping hned selže s General failure místo toho, aby požadavek vypršel. Právě tento rozdíl je celá diagnóza. Vypršení znamená, že paket odešel a něco ho ignorovalo. General failure znamená, že Windows nedokázal paket vůbec předat žádnému rozhraní.
Když tedy směrovací tabulka vypadá dokonale a chyba je stále General failure, blokování probíhá pod rozhodnutím o směrování a klient poskytovatele je to, co tam působí.
Přečtěte chybu dřív než směrovací tabulku
Windows tuto chybu vrací, když nenajde rozhraní, kterým by odeslal, a neříká nic o tom, co by s paketem udělal cíl. Dostupnost, firewally na vzdálené straně a dostupnost služby jsou všechny další otázky, ke kterým jste se ještě nedostali.
Klasickou konfigurací pro tento případ je hostitelská trasa, která směruje jednu adresu LAN na fyzickou bránu, aby obešla tunel. route add ji přijme, route print ji zobrazí a ping přesto selže, protože filtr ovladače už rozhodl, že paket nesmí ven.
Než toto vysvětlení přijmete, ověřte, že se trasa skutečně vybírá: zkontrolujte index rozhraní a metriku a ujistěte se, že záznam není po opětovném připojení zastaralý. Trasa, která ukazuje na rozhraní, jež už neexistuje, dává podobnou chybu z mnohem méně zajímavého důvodu.
Tři vrstvy, tři různí vlastníci
Vyhrává vrstva, která běží poslední, a tyto tři nejsou v pořadí, jaké většina lidí předpokládá.
| Layer | What it decides |
|---|---|
| Routing table | Which interface and next hop should carry the packet |
| Client filter driver | Whether this packet is permitted to leave outside the tunnel at all |
| Client feature | Whether a named feature, such as LAN blocking, is active right now |
Prostřední vrstva je důvod, proč může být trasa současně správná i k ničemu. Klienti poskytovatelů instalují filtr a pravidla firewallu, aby provoz mimo tunel zahazovaly, což je stejný mechanismus, který realizuje jejich kill switch. Na tomto rozhodnutí se nic ze směrovací tabulky nepodílí.
Třetí vrstva vysvětluje zvláštní hlášení, které přichází pravidelně: místní podsíť je nedostupná i po odpojení klienta. Služba stále běží a filtr je stále nainstalovaný, takže nepřipojeno není totéž jako nefiltruje. Před jakýmkoli závěrem z klienta úplně vystupte, místo abyste ho jen odpojili.
Co vyzkoušet, v pořadí
Začněte odstraněním funkcí, které se levně odstraní a snadno obnoví. Zjišťování v LAN, někdy nazývané neviditelnost v LAN, blokuje provoz do rozsahů privátních adres, aby stroj zůstal před sousedy skrytý. Tiskárny, místní souborové servery i samotný router za tímto přepínačem mizí. Funkce ochrany před hrozbami, které filtrují DNS, instalují vlastní háčky a podle zpráv narušují místní dostupnost velmi podobným způsobem.
Vypněte obojí, úplně ukončete klienta a potom adresu otestujte. Tato posloupnost oddělí funkci, která provoz blokuje, od tunelu, který ho směruje špatně, a zabere dvě minuty místo odpoledne se statickými trasami.
ping 192.168.1.50
tracert -d 192.168.1.50
route print -4
Pokud adresa po vypnutí funkcí odpoví, máte rozhodnutí o politice, nikoli závadu: vyberte si mezi ponecháním funkce vypnuté, přidáním výjimky, nebo přijetím toho, že stroj zůstane v místní síti neviditelný.
Použijte výjimku klienta, úzce
Když funkce musí zůstat zapnutá, podporovaným východiskem je vlastní rozdělené tunelování klienta. Držte výjimku tak malou, jak požadavek dovolí, což obvykle znamená jednu adresu hostitele pro jeden server nebo jeden prefix pro jediný segment. Pravidlo pokrývající celý privátní rozsah je trvalá díra, o níž si nikdo nevzpomene, že ji přidal, a kterou se nikdo neodváží odstranit.
Potom ověřujte nejprve podle adresy a teprve pak podle jména. Pokud adresa odpoví s prvním skokem na fyzické bráně, výjimka funguje. Pokud jméno stále selhává, přesunuli jste se k DNS, protože resolver tunelu místní zónu nezná a žádná změna směrování ho to nenaučí.
Ponechte trasu, nebo výjimku, ne obojí, plus poznámku o tom, která z nich dělá práci. Dva překrývající se mechanismy se navzájem skrývají a příští člověk, který bude tento stroj ladit, jeden z nich odstraní a neuvidí žádnou změnu.
Když je překážkou klient
Některá sestavení filtrují provoz tak, že je nepřekoná statická trasa ani výjimka klienta. Když je toto zjištění, poctivé možnosti jsou počkat na funkci obejití nebo se připojit obyčejným klientem OpenVPN s profilem samotného poskytovatele, což doporučila odpověď podpory výrobce v původní zprávě.
Než tuto náhradu provedete, pochopte kompromis. Obyčejný profil se chová jako každý běžný tunel: nainstaluje své trasy a nepřestavuje zbytek zásobníku, takže úzká hostitelská trasa se stále chová podle očekávání. O to přijdete: všechno, co značkový klient kolem tunelu implementoval, včetně kill switch a filtrování DNS, a to je třeba záměrně reprodukovat, nebo přijmout jako chybějící.
Ať už zvolíte cokoli, poznamenejte si, která vrstva blokování vlastnila. Paket, který stroj nikdy neopustil, je výsledkem filtru a žádná změna směrování filtr neopraví.