Pam mae OpenVPN yn marw ar ôl i’r gliniadur ddeffro?
Gall cwsg ladd sesiwn OpenVPN tra’n gadael tun0 ar ôl. Profwch y tiwnel, yna ailgychwynnwch yr uned o fachyn cwsg systemd, nid y ddyfais.
Ataliwch y peiriant, ei ailddechrau, yna gwiriwch dri peth yn y drefn hon cyn cyffwrdd ag unrhyw ffurfweddiad: a yw tun0 yn dal i fodoli, a yw’r llwybr i gyfeiriad mewnol yn dal i’w ddewis, ac a yw’r gweinydd yn dal i restru’r peer hwn. Mae dyfais sy’n goroesi cwsg tra bod y llwybr yn pwyntio i rywle arall yn weddill, nid yn diwnel. Pan fo’r llwybr yn iawn ac mae traffig yn dal i farw, mae’r nam uwchben y tiwnel ac ni fydd ailgychwyn y cleient yn ei newid. Dim ond ar ôl i brawf â llaw ddangos pa un o’r tri achos hyn sydd gennych y mae awtomeiddio ailgychwyn yn gwneud synnwyr.
ip -br address show tun0
ip route get 10.20.0.10
journalctl -u openvpn-client@office -b --no-pager | tail -30
Atgynhyrchwch yr ailddechrau cyn ei awtomeiddio
Mae atal yn gorffen y sesiwn wedi’i hamgryptio’n amlach nag y mae’n tynnu’r ddyfais. Mae’r llif UDP a oedd yn cadw’r tiwnel yn fyw yn stopio, efallai y bydd y gweinydd yn gollwng y peer, ac mae’r cleient naill ai’n sylwi ac yn ailgysylltu neu’n cadw rhyngwyneb heb ddim y tu ôl iddo. Ychydig a brofir gan archwiliad rhyngwyneb ar ei ben ei hun, oherwydd mae dyfais hen yn edrych yn union fel un sy’n gweithio nes bod yn rhaid i becynnau groesi’n groes iddo. Rhedwch y chwiliad llwybr ynghyd ag un cais go iawn ar draws y tiwnel, yna darllenwch y cylchgrawn o amgylch eiliad yr ailddechrau.
Os daw’r cleient yn ôl ei hun, mae bachyn yn ychwanegu trafferth yn lle dibynadwyedd. Os na fydd byth yn gwella, awtomeiddio yw’r ateb gonest.
Lle mae bachyn cwsg systemd yn byw mewn gwirionedd
Mae llawer o ganllawiau hŷn yn pwyntio at /etc/pm/sleep.d, cyfeiriadur sy’n eiddo i pm-utils ac nad yw ataliad sy’n seiliedig ar systemd byth yn ymgynghori ag ef. Mae systemd yn darllen bachynnau o /usr/lib/systemd/system-sleep/ a /etc/systemd/system-sleep/, gan drosglwyddo’r cyfnod yn gyntaf a’r llawdriniaeth yn ail, felly pre a post yw’r unig werthoedd y mae bachyn yn canghennu arnynt. Cadwch y copi lleol o dan /etc yn lle golygu ffeil becynnog, a chofiwch fod y sgript yn rhedeg fel root yng nghanol y trosglwyddiad, felly rhaid iddi ddychwelyd yn gyflym.
#!/bin/sh
case "$1" in
post)
systemctl --no-block try-restart [email protected]
;;
esac
exit 0
try-restart dim ond cyffwrdd ag uned pan fydd eisoes yn weithredol, felly mae tiwnel a ddiffoddwyd gennych yn fwriadol yn aros i lawr drwy’r ailddechrau. Mae --no-block yn cadw’r bachyn rhag aros tra bod y cleient yn trafod, sy’n bwysig pan nad yw’r rhwydwaith wedi codi eto. Gyda’i gilydd mae’r ddau faner yn golygu bachyn sy’n methu’n dawel yn lle dal y dilyniant ailddechrau cyfan. Nid oes dim yn digwydd o gwbl pan fydd yr uned eisoes wedi stopio, sef yn union y canlyniad rydych chi ei eisiau yno.
Adferwch y gwasanaeth, gadewch tun0 yn llonydd
Mae tynnu tun0 i lawr â llaw yn gadael y daemon yn goruchwylio rhyngwyneb nad yw’n berchen arno mwyach, ac mae’r newid cyflwr nesaf yn cynhyrchu gwallau dryslyd. Targedwch y gwasanaeth neu ei broffil cysylltiad yn lle’r rhyngwyneb; gwiriwch enw union yr uned yn gyntaf, oherwydd mae pecynnau dosbarthiadau, OpenVPN 3 a NetworkManager i gyd yn dewis rhai gwahanol. Mae proffil NetworkManager yn dychwelyd pan fydd y cysylltiad hwnnw’n cael ei ailgylchu, felly nid uned systemd yw’r targed yno. Beth bynnag yw’r mecanwaith, dylai fod yr un weithred a wiriwyd gennych â llaw.
Mae ailgychwyn yn ailosod y llwybrau a wthiwyd gan y cleient pan gysylltodd. Mae’r rhan fwyaf o ailddechreuadau’n dymuno hynny. Nid yw peiriant lle gwnaethoch ychwanegu llwybrau eich hun yn dymuno hynny, felly ailwiriwch y rheini yn lle tybio bod yr adferiad wedi’u hadfer, a’u hysgrifennu lle gall yr ailddechrau nesaf eu cael.
Ymdrinwch â’r amseru na allwch ei reoli
Mae cysylltiad di-wifr a DHCP yn aml yn gorffen ar ôl i’r bachyn redeg, felly gall ailgychwyn fethu tra nad oes llwybr at y gweinydd eto. Arhoswch ychydig am y cyfeiriad hwnnw, ceisiwch unwaith eto a chofnodwch y canlyniad.
Mae datrys enwau yn ras ar wahân, oherwydd gall pentwr rhwydwaith y ddesg adfer DNS ar ôl i’r tiwnel fod i fyny’n barod. Profwch chwiliadau ar eu pen eu hunain gyda resolvectl query internal.example yn lle casglu ohonynt o lwybr sy’n gweithio. Mae tiwnel sy’n llwybreiddio’n gywir ac yn datrys dim yn broblem DNS, nid yn broblem bachyn.
Cadwch benderfyniad y bachyn yn weladwy drwy ysgrifennu’r cyfnod, enw’r uned a’r canlyniad i’r cylchgrawn. Nodwch yn nodiadau’r peiriant pa brawf ailddechrau a gynhaliwyd gennych, fel y gellir gwahaniaethu adferiad sy’n gweithio oddi wrth un lwcus. Dewiswch y weithred leiaf tarfu sy’n dod â’r gwasanaeth yn ôl, a gadewch i gleient sy’n gwella’i hun wneud hynny. Mae ailgychwyn llawn yn gollwng sesiynau ar y gweill, sy’n gost wirioneddol ar liniadur sy’n ailddechrau sawl gwaith y dydd.