Gateway-i i largët rindizet, kthehet brenda një minute, dhe daemon-i lokal strongSwan vazhdon të punojë ndërsa tuneli është ende poshtë. Një punë cron që bën grep për ESTABLISHED dhe rindez daemon-in do ta mbulojë përfundimisht atë, dhe do të ndërpresë çdo tunel të palidhur në makinë, duke humbur ndoshta pikërisht atë që dështoi. Rikuperimi i përket lidhjes që duhet të kthehet, i shprehur në cilësime që i mbijetojnë reload-it. Ky runbook e përgatit atë për një lidhje të vetme dhe e provon rezultatin me emër.

Hiqni dorë nga rindezja globale, ruani provat e saj

Rindezja e daemon-it ka dy defekte konkrete: shkatërron gjendjen e çdo lidhjeje dhe nuk ju tregon asgjë për atë se cili ngjarje dështoi në të vërtetë. Teksti i statusit që kërkuat mund të ketë ardhur nga një lidhje tjetër, ndërsa child-i i nevojshëm qëndroi pa punë sepse asgjë nuk e aktivizoi.

Lexoni lidhjet e ngarkuara dhe shoqatat aktive përpara se të ndryshoni diçka, që të keni një pamje të mëparshme për të krahasuar kur peer-i të kthehet.

swanctl --list-conns
swanctl --list-sas

Vendosni nisjen dhe përpjekjet e përsëritura në lidhjen që kthehet

Në një implementim me swanctl.conf këto cilësime jetojnë në nivel lidhjeje dhe child-i, jo në një politikë globale. Fragmenti më poshtë është një shembull nga ana e iniciatorit që supozon se propozimet, vërtetimi dhe selektorët janë tashmë të saktë.

connections {
    branch {
        keyingtries = 0
        dpd_delay = 30s
        children {
            private-lan {
                start_action = trap|start
                dpd_action = restart
            }
        }
    }
}

start_action vendos se çfarë ndodh kur ngarkohet child-i: start nis menjëherë, ndërsa trap instalon një politikë që aktivizon nisjen kur shfaqet trafik përputhës. Shkrimi i trap|start kërkon strongSwan 5.9.6 ose më të ri, prandaj kontrolloni versionin përpara se të kopjoni rreshtin. dpd_action=restart kërkon një negocim të ri sapo peer-i shpallet i vdekur, dhe keyingtries=0 në nivel lidhjeje lejon përpjekje të mëtejshme deri në sukses ose një gabim të përhershëm. Nën IKEv2, dpd_timeout nuk ka fare efekt, sepse ritransmetimi i zakonshëm vendos kur peer-i nuk përgjigjet.

Vonesa në atë shembull është pikënisje dhe jo afat universal. Zgjidhni atë sipas kohës që zgjat rindezja e peer-it dhe sa ritransmetim jeni të gatshëm të duroni.

Dijeni nga cila ngjarje po rikuperoni

Tre dështime duken njësoj në një panel dhe kërkojnë cilësime të ndryshme. Një lidhje fillestare që nuk u ngrit kurrë është problem konfigurimi ose arritshmërie. Një peer që ndaloi së përgjigjuri është rasti DPD. Një child që peer-i e mbylli në mënyrë të qartë është ngjarje politike me close_action të vetin, të cilën DPD nuk e vëren kurrë. Leximi i logut rreth ndërprerjes ju tregon se cila nga të tre, dhe përgjigja ndryshon rregullimin.

Mos shtoni rinisje agresive në një lidhje që operatorët e mbyllin qëllimisht për mirëmbajtje, përndryshe tuneli shfaqet përsëri në mes të dritares. Për dizajnet sipas kërkesës mjafton një trap i mbajtur, sepse trafiku përputhës e rikrijon child-in pa asnjë kohëmatës.

Verifikoni me emër, jo me statusin e daemon-it

Lexoni lidhjen dhe child-in e saj me emër ndërsa peer-i është ende poshtë, pastaj përsëri kur kthehet; ndryshimi midis këtyre dy daljeve është prova.

swanctl --initiate --child private-lan
swanctl --terminate --ike branch

Pastaj konfirmoni shërbimin dhe jo shoqatën. Një shoqatë e sigurisë child e freskët plus një kërkesë e suksesshme drejt destinacionit privat pas saj janë çifti i fakteve që ka rëndësi, dhe një daemon që punon me një tunel të shëndetshëm të palidhur nuk provon asnjërën.

Nëse child-i nuk niset kurrë, kontrolloni nëse trafiku i testit përputhet saktësisht me selektorët e konfiguruar, përfshirë protokollin dhe portin. Nëse niset dhe dështon, lexoni gabimin e vërtetimit ose të propozimit në vend që ta fshihni pas një cikli të pafund, sepse keyingtries=0 do të përsëritë me kënaqësi një refuzim të përhershëm përgjithmonë.

Ngarkoni ndryshimin në një dritare dhe ritestoni

Reload është më i sigurt se rindezja e daemon-it, dhe gjithsesi nuk është falas: zëvendësimi ose shkarkimi i një child mund të mbyllë një shoqatë të nisur ose të hedhë trap-in e saj.

Ngarkoni gjatë një dritareje mirëmbajtjeje, mbani skedarin e mëparshëm dhe konfirmoni që lidhja shfaqet me cilësimet që kishit ndërmend dhe jo me ato të parazgjedhura.

swanctl --load-conns
swanctl --list-conns

Kthehuni pas duke rikthyer skedarin e mëparshëm dhe duke e ngarkuar përsëri, pastaj përsëritni të njëjtat dy komanda. Një tunel që kthehet vetëm pas një rindezjeje të daemon-it nuk është riparuar, është rindezur.

Artikuj të ngjashëm