Tunel se vraća, klijent kaže da je povezan, a pregledač se još vrti na stranici koju je učitavao pre 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 popravku i njihovo mešanje vraća vas u VPN postavke bez razloga.

Jedan test ih čisto razdvaja i traje deset sekundi. Pošaljite novi zahtev 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. Operativni sistem 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 tačku koja nikad nije videla rukovanje. Ništa u sledu ponovnog povezivanja ne prolazi kroz utičnice aplikacije i ne popravlja ih.

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

Udaljena strana je zaboravila i vas

Daleki kraj drži sopstveno stanje: TLS sesiju, TCP kontrolni blok i verovatno unos preslikavanja koji vezuje vašu adresu i port za tok. Uređaj za prevođenje na putu može pustiti taj unos da istekne tokom prekida, čak i kad se tunel brzo uspostavi. Kad unos nestane, paketi dolaze za tok koji poslužilac 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žioca rade isto po sopstvenom rasporedu, zbog čega sesija može umreti bez ikakvog mrežnog događaja. Veza koja je mirovala duže nego što poslužilac očekuje već je nestala pre nego što primetite da se tunel pomerio.

Novi zahtev je test koji ih razdvaja

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

Zadržite svaki blok direktnog saobraćaja na mestu tokom testa. Zahtev koji uspe 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 zahtev i proveravaju drži li tabela sesija još unos za tok. Pokrenite prvu pre i posle ponovnog povezivanja da razlika bude vidljiva. Zamenite 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 saobraćaja koji se kreće je potpis koji tražite, a novi zahtev koji vraća statusni kod pokazuje da je put živ. Tabela veza odgovara preslikava li išta još tok, a to je deo koji klijent ne može videti. Upit prema razrešivaču pokriva drugu polovinu učitavanja stranice, jer neuspeh imena i zaglavljena veza u pregledaču izgledaju jednako. Zajedno, ta četiri izlaza razdvajaju zastarelu sesiju od pokvarenog tunela.

Zabeležite vreme prekida, vreme ponovnog povezivanja i razliku između starog i novog zahteva. Taj zapis pretvara nejasnu pritužbu u izveštaj na koji se neko može osloniti.

Povezani članci