--reconnect-timeout sy’n ateb un cwestiwn cul: ar ôl i’r twnnel gwympo, pa mor hir mae’r broses cleient hon yn parhau i geisio cyn iddi roi’r gorau iddi ac allanu. Mae tudalen llawlyfr OpenConnect yn cofnodi’r opsiwn hwnnw gyda rhagosodiad dogfennol o 300 eiliad ar gyfer ailgeisiadau sy’n dilyn dolen goll neu gymar sydd wedi rhoi’r gorau i ateb, ac mae’r rhif yn derfyn amser ar gyfer un cleient sy’n rhedeg, nid yn brawf bod y VPN yn parhau’n gyrraeddadwy. Nid yw ychwaith yn bolisi ar gyfer cadw’r broses yn fyw, a dyna lle mae’r rhan fwyaf o’r dryswch yn dechrau.

Mae’r dryswch yn dwysáu pan fo ail fecanwaith yn eistedd ar ei ben. Gall goruchwyliwr sy’n ailgychwyn y cleient, archwilydd sy’n pingio’r porth, a’r ffenestr ailgynnig adeiledig i gyd ymateb i un methiant, ac yna mae’r digwyddiad yn cynhyrchu tair llinell amser na all neb eu cysoni.

Beth mae’r ffenestr ailgysylltu yn ei gyfyngu mewn gwirionedd

Dychmygwch fod y rhwydwaith mynediad yn diflannu am ychydig eiliadau. Mae’r cleient yn gweld y ddolen yn cwympo, neu’n stopio clywed atebion y cymar marw, ac yn dechrau ailsefydlu’r sesiwn wrth ddal gafael ar ba bynnag gyflwr y gall. Mae ailgeisiadau yn parhau nes bod y porth yn derbyn eto neu nes bod y ffenestr yn dod i ben, ac mae ffenestr sy’n dod i ben yn gorffen ag allanfa nad yw’n sero. Yr allanfa honno, yn hytrach na gwerth y terfyn amser, yw’r man lle mae perchnogaeth y cylch bywyd yn trosglwyddo i bwy bynnag sy’n goruchwylio’r broses.

Nid yw’r ffenestr yn dweud dim am ba mor aml y mae archwiliad yn rhedeg, ac ni all ymestyn dilysu. Os yw’r porth wedi dirymu’r sesiwn, neu os yw’r cyfrif bellach yn gofyn am ail ffactor newydd, ni fydd mwy o aros yn gwneud yr hen sesiwn yn ddilys eto. Dim ond pan fydd y llwybr yn dychwelyd, pan fydd y porth yn dal i adnabod y sesiwn, a phan fydd y manylion mewngofnodi a ofynnir yn dal yn ddefnyddiadwy y bydd ailgynnig yn llwyddo, felly darllenwch y rhif fel terfyn amser yn hytrach nag fel cyfwng bywiogrwydd.

Nid yw’r ffenestr chwaith yn llywodraethu beth mae cymwysiadau yn ei wneud tra mae’n rhedeg. Yn dibynnu ar y platfform ac ar ba mor bell yr aeth y methiant, gall y cleient ailgysylltu gyda’r llwybrau yn dal i fod wedi’u gosod, neu ar ôl iddynt gael eu tynnu. Dyna pam y mae cais a roddir yng nghanol y toriad yn tueddu i hongian nes iddo ddod i ben yn lle methu’n gyflym.

Mae ailgychwyn goruchwyliwr ac ailgeisiadau cleient yn ddau haen

Gadewch i’r cleient sy’n rhedeg dreulio ei ffenestr ei hun, a gadewch i’r rheolwr gwasanaeth ymateb i’r allanfa. Mae cleient yn y blaendir o dan systemd â pholisi ailgychwyn yn rhoi’n union y rhaniad hwnnw: ailgeisiadau am gyfnod cyfyngedig, yna un penderfyniad ailgychwyn. Y canlyniad yw un llinell amser y gallwch ei hailadeiladu wedyn.

Cleient yn y cefndir ynghyd ag archwilydd annibynnol sy’n cychwyn copi arall pan na all weld rhyngwyneb yw’r patrwm sy’n mynd o chwith. Yna mae’r ddwy broses yn ymryson am yr un nod dyfais, llwybrau a gosodiadau datryswr. Os ydych chi wir eisiau daemon, rhowch yr opsiwn ar y llinell orchymyn y mae’r cleient yn cychwyn â hi mewn gwirionedd:

sudo openconnect --background --pid-file=/run/openconnect/vpn.pid \
  --reconnect-timeout=180 \
  --user=<account> https://vpn.example.edu

Mae dau fanylyn yn y llinell honno yn pwyso. Mae --background yn datgysylltu’r broses, felly y ffeil pid sy’n dod yn unig ddolen ddibynadwy arni, ac nid yw’r terfyn amser yn cael ei dreulio ond tra bo’r un broses honno yn fyw; nid yw goruchwyliwr sy’n ei lladd yn gadael unrhyw gyllideb i barhau.

Mae angen eu signal eu hunain ar ddatgysylltiadau bwriadol. Mae saib a gynlluniwyd a thoriad gwirioneddol yn edrych yr un fath i wyliedydd naïf, ac mae’r ddau yn cael eu darllen fel „heb gysylltiad”. Gyrrwch y saib drwy weithrediad stop y goruchwyliwr, neu drwy farciwr y mae’r lapio yn ei ddeall, fel nad yw ataliad bwriadol yn sbarduno ailgychwyn na ofynnwyd amdano.

Cadw’r trosglwyddiad rhag rasio’r ddolen ailgynnig

Mae adferiad dioruchwyliaeth yn dibynnu ar fanylion mewngofnodi sy’n adnewyddu heb berson yn bresennol. Bydd cylch allweddi sy’n datgloi dim ond o fewn sesiwn bwrdd gwaith ryngweithiol, neu docyn sy’n gofyn bob amser am god wedi’i deipio, yn gadael y cleient yn sownd ar gam dilysu unwaith y bydd y llwybr yn ôl. Setlwch y llif gwaith hwnnw cyn ymestyn y ffenestr, oherwydd nid yw ffenestr hirach ond yn rhoi mwy o amser i’r un anogwr blociedig fethu.

Ni ddylid llacio dilysu gweinydd i leihau anogwyr. Y pin neu’r angor ymddiriedaeth sy’n dilysu’r porth sy’n gwneud ailgysylltiad awtomatig yn ddiogel, ac mae ei analluogi i osgoi cwestiwn tystysgrif yn cyfnewid toriad gweladwy am un anweladwy. Cadwch yr hunaniaeth ddilys ac atgyweiriwch yr anogwr yn lle hynny; mae cleient sy’n fodlon cysylltu ag unrhyw borth yn waeth nag un sy’n stopio ac yn aros.

Nid yw presenoldeb rhyngwyneb yn arwydd iechyd chwaith. Gall dyfais twnnel fodoli gyda sesiwn farw y tu ôl iddi, a gall proses lansio fodoli heb dwnnel o gwbl. Nid oes yr un o’r arsylwadau hynny yn goroesi cais go iawn. Rhaid i iechyd ddod o’r hyn sydd ei angen ar y defnyddiwr, fel cais sy’n croesi’r twnnel i wasanaeth mewnol hysbys.

Beth i’w ddilysu yn ystod toriad ac ar ôl hynny

Rhedwch bedwar digwyddiad fel profion ar wahân: toriad byrrach na’r ffenestr, toriad hirach na hi, methiant dilysu, ac ataliad bwriadol. Dylai pob un orffen mewn cyflwr gwahanol a rhagweladwy, a’r ffin rhwng y ddau gyntaf yw’r holl reswm dros ddewis gwerth.

Cadwch y gwiriadau yn wynebu allan, oherwydd ychydig iawn y mae’r tabl prosesau yn ei brofi ar ei ben ei hun. Gwyliwch y pid yn dal yn gyson drwy’r toriad byr, yna cadarnhewch ei fod wedi mynd a’i fod wedi’i ddisodli unwaith ar ôl yr un hir:

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)"

Yn ystod y toriad byr, cadarnhewch fod y cleient wedi ailgynnig mewn gwirionedd yn hytrach nag allanu’n gynnar, a bod y llwybrau a’r cofnodion datryswr wedi dod yn ôl heb ddyblygiadau. Ar gyfer y toriad hirach, cadarnhewch allanfa lân ac yn union un ailgychwyn wedi dilyn. Ar gyfer methiant dilysu, cadarnhewch nad yw’r cleient yn troelli yn erbyn porth a fydd yn parhau i’w wrthod. Ychwanegwch wiriad bod y pid yn dychwelyd i un gwerth yn hytrach na chronni.

Ar gyfer yr ataliad bwriadol, dylai’r URL iechyd aros yn anghyrraeddadwy a dylai’r broses aros i lawr. Yna caewch y ddolen o ochr y cymhwysiad: rhaid i’r un cais fethu tra bo’r twnnel yn absennol a rhaid iddo lwyddo ar ôl iddo ddychwelyd, o’r cyfeiriad ffynhonnell y mae eich polisi yn ei ddisgwyl. Nid yw eicon twnnel gwyrdd yn dystiolaeth, ond mae cais wedi’i gwblhau yn dystiolaeth.

Erthyglau cysylltiedig