Tunel se vraća, klijent kaže da je povezan, a preglednik se još vrti na stranici koju je učitavao prije prekida. Ponovno povezivanje VPN-a vraća put i ne vraća stanje veze koje su aplikacije i udaljena strana nakupile na starom putu. To su različite stvari za popravak i njihovo miješanje vraća vas u VPN postavke bez razloga.

Jedan test ih čisto razdvaja i traje deset sekundi. Pošaljite novi zahtjev na isto odredište dok stari visi.

Šta preživi ponovno povezivanje, a šta ne

Tunel je skup ruta, ključeva i adresa, a ponovno povezivanje može obnoviti sve tri dok svaki uspostavljeni tok ostaje mrtav. Operacijski sustav drži utičnicu otvorenom jer ju je aplikacija zatražila, a rok te utičnice može biti udaljen minute ili sate. Ispod toga je partner zaboravio tok, unos prevođenja je istekao, ili put sada prolazi kroz krajnju točku koja nikad nije vidjela rukovanje. Ništa u slijedu ponovnog povezivanja ne prolazi kroz utičnice aplikacije i ne popravlja ih.

Neki klijenti dodaju kuku koja odbacuje zastarjele veze pri ponovnom povezivanju, a većina ne. Ponašanje ovdje zavisi od klijenta, platforme i verzije.

Udaljena strana je zaboravila i vas

Daleki kraj drži vlastito stanje: TLS sesiju, TCP kontrolni blok i vjerojatno unos preslikavanja koji veže vašu adresu i port uz tok. Uređaj za prevođenje na putu može pustiti taj unos da istekne tijekom prekida, čak i kad se tunel brzo uspostavi. Kad unos nestane, paketi dolaze za tok koji poslužitelj više ne prepoznaje, a odgovor može biti reset koji klijent nikad ne pokaže. Aplikacije to prijavljuju kao zastoj, a ne kao grešku, jer još čekaju utičnicu koja nikad neće odgovoriti.

Rokovi mirovanja na strani poslužitelja rade isto po vlastitom rasporedu, zbog čega sesija može umrijeti bez ikakvog mrežnog događaja. Veza koja je mirovala dulje nego što poslužitelj očekuje već je nestala prije nego što primijetite da se tunel pomaknuo.

Novi zahtjev je test koji ih razdvaja

Pošaljite novi zahtjev na isti host dok stari još visi i gledajte oba. Ako novi zahtjev uspije, tunel, ruta i razrješavanje imena rade, a kvar je ograničen na zastarjeli tok. Ako i novi zahtjev padne, imate problem s putem i stanje sesije aplikacije je lažni trag.

Zadržite svaki blok izravnog prometa na mjestu tijekom testa. Zahtjev koji uspije kroz slučajni rezervni put ne dokazuje ništa o tunelu.

Potvrdite novom vezom, ne starom

Naredbe ispod pokazuju utičnice koje su još otvorene, pokreću jedan novi zahtjev i provjeravaju drži li tablica sesija još unos za tok. Pokrenite prvu prije i poslije ponovnog povezivanja da razlika bude vidljiva. Zamijenite host i port svojom uslugom.

ss -tanp | grep -E ':(443|8443)'
curl -sS -o /dev/null -w '%{http_code} %{time_connect}\n' --max-time 8 https://intranet.example.com/
conntrack -L 2>/dev/null | grep 8443
dig +short intranet.example.com

Uspostavljena utičnica bez prometa koji se kreće je potpis koji tražite, a novi zahtjev koji vraća statusni kod pokazuje da je put živ. Tablica veza odgovara preslikava li išta još tok, a to je dio koji klijent ne može vidjeti. Upit prema razrješivaču pokriva drugu polovicu učitavanja stranice, jer neuspjeh imena i zaglavljena veza u pregledniku izgledaju jednako. Zajedno, ta četiri izlaza razdvajaju zastarjelu sesiju od pokvarenog tunela.

Zabilježite vrijeme prekida, vrijeme ponovnog povezivanja i razliku između starog i novog zahtjeva. Taj zapis pretvara nejasnu pritužbu u izvještaj na koji se netko može osloniti.

Povezani članci