Hversu lengi á OpenConnect að reyna við rofið VPN?
Tímamörk endurtengingar í OpenConnect takmarka endurteknar tilraunir eftir að tenging rofnar eða jafningi deyr. Þetta er ekki ferlisumsjón, ekki endurnýjun skilríkja og ekki traffíkblokkun.
--reconnect-timeout svarar einni þröngri spurningu: eftir að göngin falla, hversu lengi heldur þetta biðlaraferli áfram að reyna áður en það gefst upp og hættir. Handbókarsíða OpenConnect skráir þann valkost með skjalfestu sjálfgefnu gildi upp á 300 sekúndur fyrir endurteknar tilraunir sem fylgja týndri tengingu eða jafningja sem hætti að svara, og talan er frestur fyrir einn keyrandi biðlara, ekki sönnun þess að VPN-ið haldist aðgengilegt. Þetta er heldur ekki stefna til að halda ferlinu lifandi, og þar byrjar mestur hluti ruglingsins.
Ruglingurinn eykst þegar önnur aðferð situr ofan á. Eftirlitsaðili sem endurræsir biðlarann, prófari sem pingar gáttina og innbyggði endurtengingargluggi geta allir brugðist við einni bilun, og atvikið gefur þá þrjár tímalínur sem enginn getur sætt.
Hvað endurtengingarglugginum takmarkar í raun
Ímyndaðu þér að aðgangsnetið hverfi í nokkrar sekúndur. Biðlarinn sér tenginguna rofna, eða hættir að heyra svör frá dauðum jafningja, og byrjar að endurreisa setuna meðan hann heldur því ástandi sem hann getur. Tilraunir halda áfram þar til gáttin tekur við aftur eða glugginn klárast, og gluggi sem klárast endar í útgöngu sem er ekki núll. Sú útganga, ekki tímamarkagildið, er staðurinn þar sem eignarhald á lífsferlinum fer til þess sem hefur umsjón með ferlinu.
Glugginn segir ekkert um hversu oft prófari er keyrður, og hann getur ekki lengt auðkenningu. Ef gáttin hefur afturkallað setuna, eða reikningurinn krefst nú nýs annars þáttar, mun lengri bið ekki gera gömlu setuna gilda aftur. Endurtekin tilraun heppnast aðeins þegar leiðin kemur aftur, gáttin þekkir setuna enn og skilríkin sem hún biður um haldast nothæf, svo lestu töluna sem frest en ekki sem lífvænlegt bil.
Glugginn stjórnar heldur ekki hvað forrit gera meðan hann gengur. Eftir kerfinu og hversu langt bilunin náði getur biðlarinn verið að endurtengjast með leiðirnar enn uppsettar, eða eftir að þær voru fjarlægðar. Þess vegna hanga beiðnir sem sendar eru um miðja truflun oft þar til tímamörkin renna út í stað þess að mistakast hratt.
Endurræsingar eftirlitsaðila og endurteknar tilraunir biðlarans eru tvö lög
Leyfðu keyrandi biðlaranum að eyða eigin glugga, og leyfðu þjónustustjóranum að bregðast við útgöngunni. Biðlari í forgrunni undir systemd með endurræsingarstefnu gefur nákvæmlega þessa skiptingu: tilraunir í takmarkaðan tíma, svo ein endurræsingarákvörðun. Niðurstaðan er ein tímalína sem þú getur enn endurbyggt síðar.
Biðlari í bakgrunni ásamt óháðum prófara sem ræsir aðra eintak þegar hann sér ekki viðmót er mynstrið sem fer úrskeiðis. Þá keppa bæði ferlin um sama tækjahnoð, leiðir og stillingar leysisins. Ef þú vilt sannarlega daemon skaltu setja valkostinn á þá skipanalínu sem biðlarinn raunverulega byrjar með:
sudo openconnect --background --pid-file=/run/openconnect/vpn.pid \
--reconnect-timeout=180 \
--user=<account> https://vpn.example.eduTveir smáatriðir í þeirri línu vega þungt. --background losar ferlið, svo pid-skráin verður eina áreiðanlega handfangið á það, og tímamörkin eyðast aðeins meðan sama ferli lifir; eftirlitsaðili sem drepur það skilur ekkert fjárhagsáætlun eftir til að halda áfram.
Viljandi aftengingar þurfa sitt eigið merki. Skipulögð hlé og raunveruleg truflun líta eins út fyrir barnlausan áhorfanda, bæði lesin sem „ekki tengt”. Stýrðu hléinu í gegnum stöðvunaraðgerð eftirlitsaðilans, eða merki sem umbúðirnar skilja, svo viljandi stöðvun hrinti ekki af stað endurræsingu sem enginn bað um.
Koma í veg fyrir að afhendingin keppi við endurtengingarlykkjuna
Ómannuð endurheimt byggist á skilríkjum sem endurnýjast án viðveru manns. Lyklakippa sem opnast aðeins inni í gagnvirku skjáborðssetunni, eða tákn sem krefst alltaf innritaðs kóða, mun skilja biðlarann eftir á auðkenningarstiginu þegar leiðin kemur aftur. Lagaðu það vinnuflæði áður en þú lengir gluggann, því lengri gluggi gefur sama læsta boðinu meiri tíma til að mistakast.
Staðfestingu þjónsins á ekki að slaka á til að fækka boðum. Það er einmitt festingin eða traustsankerðið sem staðfestir gáttina sem gerir sjálfvirka endurtengingu örugga, og að slökkva á því til að komast hjá vottorðsspurningu skiptir sýnilegri truflun fyrir ósýnilega. Haltu staðfestu auðkenni og lagaðu frekar boðið; biðlari sem er reiðubúinn að tengjast hvaða gátt sem er er verri en sá sem stöðvar og bíður.
Viðvera viðmóts er heldur ekki heilsumerki. Tæki gönganna getur verið til með dauða setu að baki, og ræsiferli getur verið til án nokkurra ganga. Ekkert þessara athugana stenst raunverulega beiðni. Heilsa verður að koma frá því sem notandinn þarf, til dæmis beiðni sem fer í gegnum göngin til þekktrar innri þjónustu.
Hvað á að staðfesta meðan á truflun stendur og eftir hana
Keyrðu fjögur atvik sem aðskilin próf: truflun styttri en glugginn, bilun lengri en hann, auðkenningarbilun og viljandi stöðvun. Hvert þeirra á að enda í öðru, fyrirsjáanlegu ástandi, og landamærin milli fyrstu tveggja eru öll ástæðan fyrir að velja gildi.
Haltu prófununum út á við, því ferlatöflan sannar mjög lítið eitt og sér. Fylgstu með því að pid haldist stöðugt í gegnum stutta truflun, og staðfestu svo að það sé farið og hafi verið skipt út einu sinni eftir þá löngu:
curl -sS --max-time 5 -o /dev/null -w '%{http_code}\n' https://intranet.example.internal/health
cat /run/openconnect/vpn.pid
ps -o pid,etime,cmd -p "$(cat /run/openconnect/vpn.pid)"Meðan á stuttu trufluninni stendur skaltu staðfesta að biðlarinn hafi raunverulega reynt aftur í stað þess að hætta snemma, og að leiðir og færslur leysisins hafi komið til baka án tvítekninga. Fyrir lengri bilunina skaltu staðfesta hreina útgöngu og nákvæmlega eina endurræsingu á eftir. Fyrir auðkenningarbilunina skaltu staðfesta að biðlarinn snúist ekki gegn gátt sem mun halda áfram að hafna honum. Bættu við athugun að pid fari aftur í eitt gildi í stað þess að safnast upp.
Fyrir viljandi stöðvun ætti heilsu-URL að vera óaðgengilegt og ferlið að vera niðri. Lokaðu svo lykkjunni frá forritshliðinni: sama beiðnin verður að mistakast meðan göngin vantar og að heppnast eftir að þau koma aftur, frá upprunavistfanginu sem stefna þín gerir ráð fyrir. Grænt ganganartákn er ekki sönnun, en fullkláruð beiðni er það.