strongSwan ostane spodaj po ponovnem zagonu peerja: obnovi en tunel
Opustite ponovni zagon daemona. Nastavite zagon in DPD na povezavo, ki se mora vrniti, nato preverite po imenu in dokažite storitev, ne daemona.
Oddaljeni prehod se znova zažene, vrne se v minuti, lokalni daemon strongSwan pa teče naprej, medtem ko je tunel še vedno spodaj. Opravilo cron, ki grepa ESTABLISHED in znova zažene daemon, bo to sčasoma zakrilo, prekinilo pa bo tudi vsak nepovezan tunel na stroju, medtem ko bo morda zgrešilo tistega, ki je odpovedal. Obnovitev pripada povezavi, ki se mora vrniti, izražena v nastavitvah, ki preživijo reload. Ta runbook to nastavi za eno povezavo in dokaže rezultat po imenu.
Opustite globalni ponovni zagon, obdržite njegove dokaze
Ponovni zagon daemona ima dve konkretni pomanjkljivosti: uniči stanje vsake povezave in ne pove ničesar o tem, kateri dogodek je dejansko odpovedal. Besedilo stanja, ki ste ga greppali, je lahko prišlo iz druge povezave, medtem ko je zahtevani child stal nedejaven, ker ga ni nič zagnalo.
Preden karkoli spremenite, preberite naložene povezave in aktivne asociacije, da boste imeli sliko pred in jo lahko primerjali po vrnitvi peerja.
swanctl --list-conns
swanctl --list-sas
Zagon in ponovne poskuse postavite na povezavo, ki se vrača
V namestitvi s swanctl.conf te nastavitve živijo na ravni povezave in childa, ne v globalni politiki. Spodnji odlomek je primer s strani sprožilca, ki predvideva, da so predlogi, preverjanje pristnosti in selektorji že pravilni.
connections {
branch {
keyingtries = 0
dpd_delay = 30s
children {
private-lan {
start_action = trap|start
dpd_action = restart
}
}
}
}
start_action odloči, kaj se zgodi ob nalaganju childa: start sproži takoj, medtem ko trap namesti politiko, ki sproži zagon, ko se pojavi ustrezni promet. Pisanje trap|start zahteva strongSwan 5.9.6 ali novejši, zato pred kopiranjem vrstice preverite različico. dpd_action=restart zahteva nova pogajanja, ko je peer razglašen za mrtvega, keyingtries=0 na ravni povezave pa dovoljuje nadaljnje poskuse do uspeha ali trajne napake. Pod IKEv2 dpd_timeout sploh nima učinka, ker običajno ponovno pošiljanje odloči, kdaj peer ne odgovarja.
Zamik v tem primeru je izhodišče in ne univerzalni rok. Izberite ga glede na to, kako dolgo traja ponovni zagon peerja in koliko ponovnega pošiljanja ste pripravljeni prenesti.
Vedite, iz katerega dogodka se obnavljate
Tri okvare so na nadzorni plošči videti enako in zahtevajo različne nastavitve. Začetna povezava, ki se nikoli ni dvignila, je težava s konfiguracijo ali dosegljivostjo. Peer, ki je prenehal odgovarjati, je primer DPD. Child, ki ga je peer izrecno zaprl, je dogodek politike z lastnim close_action, ki ga DPD nikoli ne opazi. Branje dnevnika okoli prekinitve vam pove, katero od treh imate, in odgovor spremeni popravek.
Povezavi, ki jo operaterji namerno zaprejo zaradi vzdrževanja, ne dodajajte agresivnega ponovnega zagona, sicer se tunel spet pojavi sredi okna. Pri načrtih na zahtevo zadošča ohranjen trap, ker ustrezen promet obnovi child brez kakršnega koli časovnika.
Preverite po imenu, ne po stanju daemona
Preberite povezavo in njen child po imenu, medtem ko je peer še spodaj, nato pa znova, ko se vrne; razlika med tema dvema izpisoma je dokaz.
swanctl --initiate --child private-lan
swanctl --terminate --ike branch
Nato potrdite storitev in ne asociacije. Sveža varnostna asociacija child in uspešna zahteva do zasebnega cilja za njo sta par dejstev, ki šteje, tekoč daemon z zdravim nepovezanim tunelom pa ne dokaže nobenega od obeh.
Če child nikoli ne sproži, preverite, ali preskusni promet natančno ustreza nastavljenim selektorjem, vključno s protokolom in vrati. Če se sproži in spodleti, preberite napako preverjanja pristnosti ali predloga, namesto da jo skrivate za neskončno zanko, ker bo keyingtries=0 trajno zavrnitev veselo ponavljal za vedno.
Naložite spremembo v oknu in znova preizkusite
Ponovno nalaganje je varnejše od ponovnega zagona daemona in še vedno ni brezplačno: zamenjava ali razkladanje childa lahko zapre zagnano asociacijo ali spusti njen trap.
Naložite med oknom vzdrževanja, obdržite prejšnjo datoteko in potrdite, da se povezava pojavi z želenimi nastavitvami in ne s privzetimi.
swanctl --load-conns
swanctl --list-conns
Vrnite se z obnovitvijo prejšnje datoteke in ponovnim nalaganjem, nato ponovite isti dve ukazu. Tunel, ki se vrne šele po ponovnem zagonu daemona, ni popravljen, temveč ponastavljen.