Mae’r cleient yn cysylltu, yn methu yn ystod trafodaeth TLS, yn aros, ac yn rhoi cynnig ar yr un gweinydd eto gyda’r un canlyniad. O dan oruchwylydd sy’n ailgychwyn proses sydd wedi methu, mae’r ymdrechion hynny’n troi’n ddolen ddiderfyn yn y cyfnodolyn, ac mae’r llinell ddiagnostig gyntaf yn llithro allan o gyrraedd. Mae OpenVPN yn cynnwys opsiwn sy’n troi’r methiant trafodaeth hwnnw’n ymadawiad gweladwy yn lle ailgynnig arall. Mae’n osodiad diagnostig a goruchwylio, nid yn atgyweiriad, felly parwch ef â pholisi sy’n gadael i’r broses aros i lawr mewn gwirionedd.

Y cylch sy’n cuddio’r gwall cyntaf

Yr hyn a welwch yw bloc sy’n ailadrodd yn hytrach nag un methiant: cais cysylltu, gwall TLS, saib, ac yna’r un dilyniant. Mae pob ailadrodd yn gwthio’r llinell wreiddiol ymhellach i fyny’r cyfnodolyn. Os yw’r uned yn ailgychwyn ar fethiant, gall y cylch barhau am oriau heb i neb ddarllen yr achos. Y symptom yw’r ddolen, er mai un broblem drafodaeth yw’r bai sylfaenol.

Mae sesiynau rhyngweithiol yn goddef hyn oherwydd y gall methiant dros dro glirio ar yr ymdrech nesaf. Ni all cysylltiadau awtomatig fforddio’r un optimistiaeth: rhaid i’r broses stopio fel y gall person neu fonitr weld y statws.

Cyn newid unrhyw beth, cofnodwch un cylch llawn. Nodwch y cyfeiriad anghysbell, y cam TLS a enwir yn y gwall, ac a yw’r broses yn gadael o gwbl.

Y peirianwaith ailgynnig y tu ôl i’r ddolen

Ailgynnig yw’r rhagosodiad oherwydd bod sawl goramser diberthyn yn rhannu’r un peirianwaith. Mae connect-retry yn gosod y bwlch rhwng ceisiadau cysylltu, gall connect-retry-max gyfyngu ar ba mor aml y ceisir pob cofnod anghysbell, ac mae resolv-retry yn llywodraethu chwiliadau enwau dro ar ôl tro. Mae methiant trafodaeth TLS yn cyrraedd y peirianwaith hwnnw fel digwyddiad cludo, felly mae’r cleient yn trefnu ymdrech arall yn lle adrodd. Mae’r rhagosodiad yn helpu gyda chyswllt anwadal ac yn niweidio gyda nam na all wella.

Dim ond achos y drafodaeth y mae opsiwn --tls-exit yn ei newid. Mae’r llawlyfr yn ei ddisgrifio fel gadael ar fethiant trafodaeth TLS, sy’n dynnach na gadael ar bob gwall. Mae goramserau, methiannau datryswr a gwrthodiadau dilysu yn cadw eu hymddygiad eu hunain.

Gwneud i’r cleient adael ar fethiant TLS

Rhowch tls-exit yn y proffil y mae’r cleient yn ei lwytho mewn gwirionedd, neu ddarparwch --tls-exit wrth ei ddechrau, a’i redeg unwaith yn y blaendir. Darllenwch y statws gadael ynghyd â llinell olaf y log, oherwydd y statws yw’r hyn y mae goruchwylydd yn gweithredu arno. Ymadawiad nad yw’n sero ar ôl methiant trafodaeth yw’r canlyniad a fwriedir. Os yw’r broses yn parhau i ailgeisio yn lle gorffen, nid yw’r opsiwn yn y proffil y mae’r cleient yn ei lwytho mewn gwirionedd.

Mae’r goruchwylydd yn penderfynu a yw’r ymadawiad hwnnw’n weladwy. Mae uned systemd gyda Restart=always neu Restart=on-failure yn dechrau’r cleient eto, felly mae’r ddolen yn parhau ac mae’r opsiwn yn ymddangos fel pe na bai’n gwneud dim. Gwiriwch y polisi cyn beio’r cleient:

systemctl show -p Restart -p RestartSec openvpn-client@office
journalctl -u openvpn-client@office -n 40 --no-pager

Mae Restart=no yn gadael i’r broses aros i lawr, ac mae Restart=on-failure yn dal i ailgychwyn ar ôl statws nad yw’n sero. Os ydych am i’r methiant fod yn weladwy ond i’r gwasanaeth wella o chwalfaoedd diberthyn, gosodwch Restart=on-failure a defnyddiwch StartLimitBurst a StartLimitIntervalSec i atal y storm ailgychwyn. Yna darllenwch statws yr uned i gadarnhau’r cod gadael olaf: mae systemctl status yn ei adrodd, ac mae’r cyfnodolyn yn cadw’r gwall cyntaf uwchlaw’r ailgychwyniadau.

Ysgrifennwch y penderfyniad yn yr uned neu yn nodiadau’r proffil. Mae proffil sy’n gadael ar fethiant TLS yn edrych fel damwain i’r person nesaf oni bai bod y rheswm wedi’i gofnodi. Nodwch ba fethiannau ddylai atal y broses a pha rai ddylid eu hailgeisio.

Profwch hyn gyda phennod taflu

I weld yr ymddygiad cyn ymddiried ynddo, copïwch y proffil a phwyntiwch y copi at bennod sy’n derbyn cysylltiad TCP ond nad yw byth yn siarad OpenVPN. Mae gwrandawr sy’n ateb ac yna’n tewi yn ddigon. Gyda tls-exit, dylai’r cleient orffen pan fydd yr ysgwyd llaw yn methu; heb hynny, dylai’r un proffil barhau i gylchio. Defnyddiwch y copi, byth y proffil gweithio.

Cymharwch y ddau rediad yn ôl statws gadael ac yn ôl y llinell gwall gyntaf, nid yn ôl pa mor hir y parhaodd pob un. Mae’r statws yn dweud a yw’r opsiwn wedi tanio, ac mae’r llinell gyntaf yn dweud pa gam a fethodd.

Tynnwch y proffil prawf pan fyddwch wedi gorffen. Mae copi â phennod anghywir yn fwriadol yn fagl i unrhyw un sy’n dechrau pob proffil yn y cyfeiriadur yn ddiweddarach.

Camau nad yw’r opsiwn hwn byth yn eu cyrraedd

Mae gwrthodiad dilysu yn gam diweddarach. Os yw’r gweinydd yn gwerthuso’r cyfrif ac yn ei wrthod, mae TLS eisoes wedi’i drafod, felly nid yw tls-exit yn tanio. Gosodiadau ailgeisio dilysu yw’r man nesaf i edrych, ac mae rheswm y gweinydd yn bwysicach na llinell olaf y cleient. Gall cyfrinair anghywir a thystysgrif ar goll gynhyrchu negeseuon tebyg ar ochr y cleient.

Mae llwybr ar goll, datryswr anghywir neu borth anghyraeddadwy hefyd y tu allan i’r opsiwn, oherwydd nid ydynt yn fethiannau trafodaeth. Colled pecynnau dawel yw’r achos lleiaf amlwg: yn dibynnu ar ba mor bell yr aeth y cyfnewid, gall y cleient adrodd methiant trafodaeth neu fynd heibio’r amser yn syml.

Cadwch y gwahaniaeth yn eich nodiadau. Mae’r gosodiad ar gyfer diagnosteg a goruchwyliaeth yn hytrach nag atgyweirio, felly nid yw’n trwsio anghydffurf cipher, problem tystysgrif na phorth anghywir. Atgyweiriwch achos y drafodaeth fethiedig yn gyntaf, yna penderfynwch a yw gadael ar unwaith yn dal i fod yn addas i’r defnydd.

Erthyglau cysylltiedig