VPN sa doma pripojí, ale v hotelovom Wi-Fi vyprší čas
Ten istý notebook, ten istý účet, iná sieť. Čítajte kód chyby ako etapu, skontrolujte názov a potom zachyťte vonkajší paket, skôr než zmeníte akékoľvek nastavenie.
Notebook sa pripojí k domácemu Wi-Fi, klient sa spojí za tri sekundy a ten istý profil o hodinu neskôr v hoteli zlyhá. Medzitým sa nič neaktualizovalo. Prejsť si to s klientom pred sebou znamená hlavne vedieť, ktorá chyba patrí ktorej etape, pretože užitočná informácia je v kóde, ktorý klient vypíše, nie v tom, že zlyhal. Prejdite štyri kroky nižšie v poradí a budete vedieť, či vás odmietlo meno, paket, port alebo pravidlo.
Čítajte kód chyby ako etapu, nie ako rozsudok
Klient dosiahne tri samostatné míľniky, kým tunel existuje. Preloží názov servera, dostane odpoveď od niečoho v sieti a vyjedná bezpečnostnú asociáciu. Každý míľnik má vlastnú správu o zlyhaní a Windows je obzvlášť štedrý na odlišné kódy, keď viete, ku ktorej etape patria.
| What the client says | Stage that failed | First thing to run |
|---|---|---|
| 868, name did not resolve | DNS, before any packet leaves for the server | Resolve-DnsName vpn.example.net |
| 721 or 806, remote computer did not respond | Outer protocol filtered, typically GRE or UDP | A capture on the local interface |
| 809, server not responding | A device in the path is dropping the outer flow | The same capture, from a second network |
| 789, security layer error | The security exchange started and was rejected | Certificate and proposal settings on both ends |
Dva z tých kódov znamenajú, že sieť je nevinná. 789 znamená, že pakety tiekli a obe strany sa nezhodli na kryptografii, čo je konfiguračný problém, ktorý môžete opraviť doma. 868 znamená, že žiadny paket nemusel vôbec odísť, takže návrh tunela je nepodstatný, kým sa názov nevyrieši. Zaradenie kódu do správnej etapy ušetrí viac času ako akékoľvek zachytenie, pretože vám povie, ktorý z ďalších troch krokov vynechať.
Buďte primerane opatrní, ak klient nie je Windows. Klienti tretích strán zlúčia väčšinu z toho do "pripojenie zlyhalo", a preto sa ďalšie dva kroky na správu vôbec nespoliehajú.
Skontrolujte názov, kým obviníte tunel
Hotelové a letiskové siete neustále zachytávajú DNS a resolver, ktorý odpovedá adresou portálu, vytvára zlyhanie, ktoré vyzerá presne ako mŕtvy server. Porovnajte, čo hovorí miestny resolver, s tým, čo hovorí verejný:
Resolve-DnsName vpn.example.net -Type A
nslookup vpn.example.net 1.1.1.1
ipconfig /all | findstr /i "DNS Servers"
Ak sa obe odpovede líšia, ste presmerúvaní a zvyšok diagnostiky je zbytočný, kým sa to nevyrieši. Najmä adresa portálu ochotne prijme TCP spojenie a potom sa zasekne, a preto to pri teste v prehliadači môže vyzerať ako blokovanie firewallu.
Teraz potvrďte, že adresa, ktorú chcete dosiahnuť, je tá používaná. Niektorí klienti ukladajú predchádzajúci preklad na celú životnosť profilu, takže opätovné pripojenie po zmene DNS stále ide na starú adresu. Pred novým testom klienta úplne zatvorte, namiesto stláčania odpojiť a pripojiť v tom istom okne.
Zistite, ktorý vonkajší paket mizne
Tunel má vonkajší tok, ktorý patrí celý ceste medzi vami a serverom, a práve ten tok medziľahlé zariadenia klasifikujú a zahadzujú. Zachyťte ho na klientovi a potom porovnajte funkčnú sieť so zlyhávajúcou. Vo Windows na prvý pohľad stačí vstavané zachytávanie:
pktmon filter remove
pktmon filter add -p 500 -t UDP
pktmon start --capture --pkt-size 128
pktmon stop
pktmon etl2txt PktMon.etl
Chcete vidieť, či vaše pakety vôbec odchádzajú a či sa niečo vracia. Pakety von bez ničoho späť znamenajú, že cesta alebo vzdialený koniec ich zahadzuje; ak neodíde nič, klient sa vôbec nedostal k odosielaniu, čo ukazuje späť na preklad názvov alebo na miestne pravidlo firewallu.
Zopakujte ten istý test na hotspote z telefónu. Je to jediné najinformatívnejšie porovnanie, ktoré máte, pretože odstráni z cesty každú krabicu v hoteli a pritom notebook, klient aj prihlasovacie údaje zostanú rovnaké. Ak tunel na hotspote naskočí, prestaňte sa pozerať na server. Ak zlyhá aj tam, máte problém s klientom alebo účtom, ktorý sieť nikdy nespôsobila.
Zmeňte jeden transport a znova otestujte
Keď viete, že vonkajší tok sa zahadzuje, praktická otázka je, ktorý tok sieť predsa len povoľuje. Väčšina obmedzených sietí povoľuje odchádzajúci TCP 443, pretože inak nemôže fungovať, takže presunúť počúvajúci proces tam je obvyklá odpoveď. Na OpenVPN je to prepínač na strane klienta, kým sa nezmení server:
openvpn --config corp.ovpn --proto tcp-client --remote vpn.example.net 443 --verb 4
Klienti IPsec majú ekvivalentný prepínač vo vlastných paneloch nastavení, zvyčajne opísaný ako IPsec cez TCP alebo prechod NAT. Zmeniť ho je tiež diagnostika: ak tunel naskočí cez TCP a zomrie cez UDP, dokázali ste, že sieť filtruje UDP, a našli ste aj nastavenie, ktoré budete potrebovať pri každej návšteve toho miesta.
Odolajte pokušeniu vypnúť funkcie routera na prvý pokus. Vypnúť stavovú inšpekciu alebo ochranu proti záplave v hotelovej sieti vám tak či tak nie je dostupné, a na vlastnom vybavení to vymení skutočnú ochranu za jeden notebook. Poznamenajte si, ktoré nastavenie zmenilo výsledok, potom ho vráťte a hľadajte transport, ktorý sieť už povoľuje.
Overte ten istý profil v druhej sieti
Pred zatvorením tiketu dokážte, že zmena prežila odchod z budovy. Pripojte sa znova v pôvodnej sieti s pôvodnými nastaveniami, zachyťte prvých tridsať sekúnd a potvrďte, že klient dosiahne rovnaký stav ako na hotspote:
pktmon filter add -p 443 -t TCP
pktmon start --capture
Get-VpnConnection -Name "Corp" | Select-Object ConnectionStatus, TunnelType, ServerAddress
Rozdiel, ktorý odhalí posledný príkaz, stojí za to zachovať: profil môže hlásiť pripojený tunel, zatiaľ čo smerovanie v ňom je nesprávne, a to dáva "VPN je zapnuté, ale nič nefunguje", čo je iný článok. Ak sa typ tunela po vašej úprave zmenil, profil nie je ten, ktorý ste testovali.
Potom zapíšte zistenie tam, kam sa pozrie ďalší človek. "Firemný profil potrebuje na tomto mieste TCP 443; UDP 500 filtruje hotel" je veta, na ktorú môže kolega konať. "VPN je v hoteloch nestabilné" nie je, a zaručuje, že rovnaká hodina sa budúci mesiac strávi znova.