Elk oere in OpenVPN-ûnderbrekking: opnij ûnderhannelje of in echte werferbining?
In ûnderbrekking op in fertocht rûn ynterval is meastentiids in kaaiferfanging, gjin deade ferbining. Lês de effektive timer en de logrigel foar't jo eat útskeakelje.
Sechstich minuten, of tritich, of hûndert en tweintich: in ûnderbrekking dy't op in rûn ynterval falt is hast nea it netwurk. OpenVPN ferfarsket op in timer it kaaimateriaal dat it datakanaal beskermet, en in timer koarter as dy't jo oannaam hawwe sjocht der krekt út as in ferbining dy't hieltiten mislearret. Brûkers melde in brutsen ferbining wylst it log in slagge kaaiútwikseling meldt. De hantlieding hjirûnder skiedt dy ferfanging fan in echte werstart, lêst de wearde dy't eins jildt en feroaret dy pas neidat de kosten op 'e tafel lizze.
Doch de stappen yn folchoarder, want de earste beslútt oft de rest fan 'e side hielendal op jo fan tapassing is. Spring foarút en jo bringe in jûn troch mei it ôfstjen fan in timer foar in stoaring dy't der neat mei te meitsjen hat.
Skied in sêfte reset fan in werstart
De logrigel is de hiele diagnoaze. In opnij ûnderhanneljen skriuwt in sêfte reset en dêrnei in nije kaaiútwikseling yn deselde tunnel: de ynterface hâldt syn adres, rûtes wurde net op 'e nij tafoege, en fêstige TCP-sesjes oerlibje meastentiids mei in skoft. In echte werstart skuort de sesje útinoar, bout de ynterface op 'e nij, jout miskien in oar kliïntadres, en deadet elke langduorjende ferbining. Beide barren binne gewoan; mar ien fan har ferklearret in ôfbrutsen oprop.
journalctl -u openvpn-client@office -b --no-pager | grep -nE 'soft reset|Connection reset|reneg|TLS Error'
openvpn --version | head -n 1
De ferzjerigel is fan belang om't de logbewurding tusken útjeften ferskoot, en in berjocht dat jo fan 2.3 ôf kenne kin yn 2.6 oars formulearre wêze. Lês jo eigen log ynstee fan in foramfragmint fan in oar. Sitearje de krekte rigel as jo om help freegje, want in parafrase ferliest it detail dat it barren identifisearret. As it ynterface-adres by it barren net feroaret en de sesjelist oerlibbet, sjogge jo in ferfanging en jilde de oare seksjes.
Lês de effektive timer, net jo bestân
reneg-sec is it oantal sekonden tusken opnij ûnderhannelings fan it datakanaal en de standertwearde is 3600. Eltse kant draacht syn eigen wearde, en de lytsere fan 'e twa is wat de ferfanging eins útlokket. Dy iene regel ferklearret de measte meldingen: in kliïntprofyl dat in grut getal set wurdt noch elk oere reset, wylst de tsjinner de standert hâldt.
grep -Rn --include='*.conf' -E 'reneg-sec|reneg-bytes' /etc/openvpn
# server side, including included files
grep -Rn -E '^reneg-sec' /etc/openvpn/server/
Lês ek de effektive konfiguraasje fan 'e tsjinner, ynklusyf alles wat er triuwt, foar't jo út it kliïntbestân in konklúzje lûke. Ferheegje dan de detaillearring en folgje ien ynterval fan begjin oant ein: nivo 3 lit de rigels fan opnij ûnderhanneljen al sjen, en de tiidstimpels fertelle oft it barren elke 3600 sekonden weromkomt of earder aktiviteit folget.
Feroarje it dêr't it eins triuwd wurdt
It rûnomfierende middel is ien rigel yn it kliïntprofyl, en it is sawat de helte fan 'e tiid it ferkearde plak. Om't de legere wearde fan 'e kant wint, kin in kliïnt dy't de timer op nul set noch hieltyd opnij ûnderhannele wurde troch in tsjinner dy't net feroare is.
# on both ends, or on the side that owns the pushed configuration
reneg-sec 0
Dêr't profilen sintraal generearre wurde, bewurkje it sjabloan en net de útrôle kopy, oars sil de folgjende provisioning-run de wearde werombringe dy't jo krekt fuorthelle hawwe. Ferifiearje troch twa yntervallen te besjen, net ien: ien stil oere is ek te ferienigjen mei in timer dy't op 7200 set is.
Beslúd ek wat der bart by in mingde útrol. As jo de feroaring earst nei kliïnten útrôlje, bliuwt der in finster wêryn de tsjinner de ferfanging noch útlokket; dat is ûnskiedlich mar betiizjend as jo de logs op befêstiging besjen. Feroarje earst de kant mei de lytsere wearde en it symptoom ferdwynt op it punt dat jo ferwachtsje.
Wat jo opjouwe troch opnij ûnderhanneljen út te skeakeljen
Regelmjittich opnij ûnderhanneljen beheint hoe lang ien set datakanaal-kaden ferkear beskermet. De timer útskeakelje brekt de tunnel net, en op in thúsrûter of in lytse kantoarpoarte is de praktyske bleatstelling beskieden. It is noch hieltyd in ruil, en de ruil is it wurdich te neamen foar't jo him dogge. Wat feroaret is hoe lang ien kaaisset in sesje beskermet, net oft de tunnel hielendal wurket.
It ridlike gefal foar útskeakeljen is in reset dy't eat brekt dat net trochgean kin: in oprop dy't falt, in sesje foar in kompjûter op ôfstân dy't op 'e nij oprjochte wurde moat, in reservekopy dy't fan it begjin ôf begjint. As de skoft foar brûkers ûnsichtber is, kostet it behâlden fan 'e standert neat en hâldt it de kaairotasjon dy't jo krigen hawwe.
Ferken de oarsaak leaver as it patroan dat tasteat. In ferfanging dy't healwei mislearret wylst de earste hânskud slagge, wiist op it paad en net op 'e timer: sykje in probleem mei pakketgrutte yn 'e gruttere útwikseling fan it stjoerkanaal, in steatfolle fjoermuorre dy't de stream ferget, of in foarstel dat allinnich by de earste poging slagget. Elk fan dy lit in spoar efter yn itselde log dat jo krekt lêzen hawwe. De timer útskeakelje ferberget dat bewiis.
As it ynterval earne oars op wiist
Twa buorlju yn 'e konfiguraasje produsearje ferlykbere symptomen en ferskillende oplossings. ping-restart startet de tunnel op 'e nij as der yn in ynstelde perioade neat oankomt, wylst ping-exit de kliïnt folslein delhellet. In ûnderbrekking by ydelens sûnder hokker opnij ûnderhanneljen dan ek yn it log heart by dizze, of by in NAT-apparaat dat de UDP-kaart op syn eigen skema ferrinne litten hat.
Ferbrûkersrûters, mobile hotspots en NAT op operatornivo litte ydle UDP-sesjes ferrinne sûnder it immen te fertellen. Dy stoaring folget ydelens en net de klok, en dat is it teken: in sesje dy't nei tsien stille minuten falt en in oere fan gelikense ferkear oerlibbet, ûnderhannelet net op 'e nij.
Skriuw trije dingen op foar't jo in fjirde feroarje: it ynterval dat jo metten hawwe, de effektive wearde dy't jo fûn hawwe en it kommando dat it sjen liet. As it ynterval beweecht as de timer beweecht, is it meganisme identifisearre en is de oplossing in beslút oer de ruil hjirboppe. As it net beweecht, set de ynstelling werom en bliuw sjen nei keepalives, NAT-steat en pakketferlies.