VPN v Windows sa nepripája? Spárujte kód s protokolom udalostí
Dialógové okno VPN v Windows skrýva fázu, ktorá zlyhala. Prečítajte kód výsledku, vytiahnite udalosť RasClient pre ten pokus a zmeňte len tú vrstvu, ktorá sa pokazila.
V piatok to fungovalo. V pondelok ten istý klient Windows odpovedá dialógom, že pokus o pripojenie zlyhal, a veta pod ním je tá, ktorú ste už videli pri tucte nesúvisiacich problémov. Ten dialóg je koniec reťaze, nie jej začiatok. Windows skrýva fázu, v ktorej pokus skutočne zomrel, a dva malé dôkazy ju pomenujú: číselný kód výsledku a jedna udalosť RasClient z tej istej minúty. Toto je poradie, ktoré používam — zafixujte pokus, prečítajte kód, vytiahnite udalosť a potom zmeňte presne jednu vrstvu.
Text dialógu je posledný krok, nie príčina
Veta, ktorú čítate, sa vyberá po tom, ako sa pokus už rozvinul. "Pripojenie bolo ukončené vzdialeným počítačom predtým, než sa pripojenie nadviazalo" sa objaví, keď server zavesí uprostred vyjednávania, keď IPsec zlyhal skôr, než bolo vaše používateľské meno vôbec odoslané, a keď zásada tunel rovno odmietla. Traja rôzni vlastníci, jedna veta. Berte formuláciu ako triedu príznakov a nedovoľte jej nič riadiť, kým s ňou kód nebude súhlasiť.
Čo ešte môžete zafixovať, je samotný pokus. Zapíšte názov pripojenia, typ tunela uložený v profile — PPTP, L2TP/IPsec, SSTP alebo IKEv2 —, čas na sekundu a kód. Ak si nie ste istí, ktorý protokol skutočne bežal, otvorte %APPDATA%\Microsoft\Network\Connections\Pbk\rasphone.pbk a prečítajte záznam namiesto toho, aby ste verili pamäti; profil znova použitý pre nový protokol si ponechá staré zobrazované meno.
Prečítajte číslo skôr, než prečítate slová
Kódy padajú do troch fáz, a fáza je dôležitejšia než presná formulácia: výmena overovania, ku ktorej sa došlo a ktorá bola odmietnutá, server, ktorý nikdy neodpovedal, alebo vyjednávanie, ktoré sa zrútilo po tom, ako spojenie nabehlo. 691 je prvý druh — kontrola prihlasovacích údajov prebehla a zlyhala, či už pre zlé heslo, uzamknutý alebo exspirovaný účet, alebo protokol overovania, ktorý server neprijíma. 812 je tiež odmietnutie, ale s platnými prihlasovacími údajmi: zásada na serveri vzdialeného prístupu rozhodla proti vám. Microsoft udržiava kanonický zoznam kódov chýb pre vytáčané a VPN pripojenia, a oplatí sa tam prečítať svoje číslo predtým, než začnete hľadať text správy.
809 je opačná trieda: nič sa nevrátilo. To je problém cesty — TCP 443 filtrovaný pre SSTP, GRE blokovaný pre PPTP, UDP 500 a 4500 alebo ESP zahodené pre priechod IPsec. Nové heslo to neopraví a nový certifikát tiež nie. 720 znamená, že spojenie nabehlo a PPP nikdy nedokončil vyjednávanie, čo ukazuje na nezladenie protokolu alebo server, ktorý nedokázal prideliť adresu. 789, alebo 13801 pri IKEv2, je identita vnútri IPsec: certifikát, ktorého subjekt nezodpovedá názvu, ktorý vytáčate, nedôveryhodná reťaz, alebo vopred zdieľaný kľúč, ktorý sa medzi dvoma koncami líši.
Vytiahnite udalosť RasClient pre tú istú minútu
V Prehliadači udalostí je Windows Logs > Application filtrované podľa zdroja RasClient prvým miestom, kam sa pozrieť. Opis Microsoftu k chybe 720 ukazuje na udalosť 20227 v tom protokole. Ten istý poskytovateľ vydáva iné identifikátory pre iné výsledky, takže čítajte správu a vložený kód výsledku namiesto toho, aby ste ID brali ako diagnózu; všeobecný dialóg plus 20227 nesúci 720 je už oveľa užší príbeh.
Z PowerShellu, bez klikania cez GUI:
Get-WinEvent -FilterHashtable @{
LogName = 'Application'
ProviderName = 'RasClient'
StartTime = (Get-Date).AddMinutes(-15)
} | Format-List TimeCreated, Id, Message
Prázdny výsledok je informatívny. Zvyčajne znamená, že vytáčanie nezašlo dosť ďaleko na to, aby RAS niečo zaprotokoloval, alebo že softvér, ktorý zlyhal, vôbec nie je natívny klient — klienti tretích strán si držia vlastnú diagnostiku a často do protokolu Application nič nepíšu. Skontrolujte protokol dodavateľa, kým usúdite, že protokolovanie udalostí je pokazené.
Postavte jednu časovú os namiesto hromady udalostí
Slučky opakovania vytvárajú šum. Päť automatických opätovných pripojení nechá skupinu udalostí a pokušenie je čítať ich ako jednu sekvenciu s jedinou príčinou. Je to päť samostatných pokusov a len niektoré z nich dosiahli server. Vezmite okno dvoch alebo troch minút, jeden názov pripojenia a vypíšte každú udalosť s jej vlastným kódom, kým čokoľvek vyložíte.
Potom sa spýtajte, kde sa pokus zastavil. Keď brána alebo backend overovania nemá pre tú časovú značku žiadny záznam, klient sa k nej nikdy nedostal a pozeráte sa na problém dosiahnuteľnosti. Keď backend ukazuje požiadavku a odmietnutie, rozhodnutie padlo tam a platí trieda prihlasovacích údajov alebo zásady. Porovnajte hodiny, kým porovnáte časy: klienti hlásia miestny čas, mnohé brány logujú v UTC a posun spôsobí, že dokonale korelovaná dvojica bude vyzerať nesúvislo.
Pre opakovateľný záznam vytočte z príkazového riadka a nechajte ho vytlačiť výsledok:
rasdial "Office VPN"
rasdial "Office VPN" /disconnect
Konzola ukazuje číslo, ktoré GUI skrýva za priateľským textom, a dvojité spustenie vám povie, či je kód stabilný alebo občasný.
Čo vám každá fáza hovorí zmeniť
Pomenovanie fázy je užitočné len vtedy, keď zúži množinu zmien na jednu vrstvu:
691— overovanie: metóda EAP, ktorú klient ponúka, proti tej, ktorú server prijíma, stav účtu, vypršanie hesla, oprávnenie na vytáčanie.812— zásada servera: zásada vzdialeného prístupu alebo pravidlo NPS, ktoré zodpovedá tomuto používateľovi a tomuto časovému oknu.809— dosiahnuteľnosť: pravidlá firewallu na ceste, NAT a priechod protokolu, port, ktorý zvolený typ tunela potrebuje.720— vyjednávanie PPP: nezladenie protokolu overovania, pridelenie adresy, nastavenie PPP na strane servera.789/13801— identita IPsec: subjekt certifikátu proti názvu, ktorý vytáčate, reťaz dôvery, vopred zdieľaný kľúč.
Zmeňte jedno z toho, otestujte znova ten istý profil a zapíšte nový kód. Iný kód po zmene je pokrok, nie rozpor: posunuli ste zlyhanie do neskoršej fázy, a tak vyzerá oprava viacfázového podania ruky. Čo by ste nemali robiť, je zmeniť firewall, certifikát a heslo v jednom sedení a potom pripísať zásluhu tomu, čo prišlo posledné.
Zdieľajte dôkazy, nie prostredie
Správy udalostí sú bohatšie, než vyzerajú. Nesú názov pripojenia, účet, často interný názov alebo adresu brány a niekedy odtlačok certifikátu. Uchovávajte originál tam, kam patrí, a pre kohokoľvek iného postavte samostatnú redigovanú kópiu; prepisovanie časovej osi z pamäti stráca presne tie detaily, ktoré ju robia užitočnou.
Odovzdávka, ktorá sa skutočne spracuje, potrebuje päť polí: kód, fázu, do ktorej patrí, klienta a typ tunela, časovú značku s jej časovým pásmom a to, či brána požiadavku vôbec videla. Všetko ostatné je voliteľné. S týmito piatimi môže ďalší človek rozlíšiť spor o prihlasovacie údaje od sporu o smerovanie bez toho, aby vyšetrovanie opakoval.
Kým niečo uzavriete, prehrajte pokus na tom istom profile a potvrďte, kam kód teraz padá. Úspech to ukončí; iné zlyhanie znamená, že pôvodná fáza je opravená a tú ďalšiu máte v ruke.