strongSwan zostane dole po reštarte peeru: obnoviť jeden tunel
Zanechajte reštart démona. Presuňte inicializáciu a DPD na spojenie, ktoré sa musí vrátiť, potom overte podľa názvu a dokážte službu, nie démona.
Vzdialená brána sa reštartuje, vráti sa do minúty a lokálny démon strongSwan ďalej beží, kým tunel zostáva dole. Cron úloha, ktorá grepuje ESTABLISHED a reštartuje démona, to nakoniec prelepí a tiež preruší každý nesúvisiaci tunel na stroji, pričom možno minie ten, ktorý zlyhal. Obnova patrí spojeniu, ktoré sa musí vrátiť, vyjadrená nastaveniami, ktoré prežijú opätovné načítanie. Táto príručka to nastaví pre jedno spojenie a výsledok dokáže podľa názvu.
Zanechajte globálny reštart, jeho dôkazy si nechajte
Reštart démona má dva konkrétne nedostatky: ničí stav každého spojenia a nič vám nepovie o tom, ktorá udalosť skutočne zlyhala. Text stavu, ktorý ste grepovali, môže pochádzať z iného spojenia, kým požadovaný child stál nečinne, pretože ho nič nespustilo.
Pred akoukoľvek zmenou si prečítajte načítané spojenia a aktívne asociácie, aby ste mali obraz pred a mohli ho po návrate peeru porovnať.
swanctl --list-conns
swanctl --list-sas
Presuňte inicializáciu a opakované pokusy na spojenie, ktoré sa vracia
V nasadení so swanctl.conf žijú tieto nastavenia na úrovni spojenia a child, nie v globálnej politike. Fragment nižšie je príklad zo strany iniciátora, ktorý predpokladá, že návrhy, autentizácia a selektory sú už správne.
connections {
branch {
keyingtries = 0
dpd_delay = 30s
children {
private-lan {
start_action = trap|start
dpd_action = restart
}
}
}
}
start_action rozhoduje, čo sa stane pri načítaní child: start inicializuje okamžite, kým trap nainštaluje politiku, ktorá spustí inicializáciu, keď sa objaví zodpovedajúca prevádzka. Zápis trap|start vyžaduje strongSwan 5.9.6 alebo novší, preto pred kopírovaním riadku skontrolujte verziu. dpd_action=restart žiada nové vyjednávanie, len čo je peer vyhlásený za mŕtvy, a keyingtries=0 na úrovni spojenia povoľuje ďalšie pokusy až do úspechu alebo trvalej chyby. Pod IKEv2 nemá dpd_timeout vôbec žiadny účinok, pretože o tom, kedy peer neodpovedá, rozhoduje bežné opätovné odosielanie.
Oneskorenie v tomto príklade je východiskový bod, nie univerzálna lehota. Vyberte ho podľa toho, ako dlho trvá reštart peeru a koľko opätovného odosielania ste ochotní vydržať.
Vedzte, z ktorej udalosti sa zotavujete
Tri poruchy vyzerajú na paneli rovnako a potrebujú rôzne nastavenia. Počiatočné spojenie, ktoré nikdy nevzniklo, je problém konfigurácie alebo dostupnosti. Peer, ktorý prestal odpovedať, je prípad DPD. Child, ktorý peer výslovne zavrel, je udalosť politiky s vlastným close_action, ktorú DPD nikdy nezaznamená. Čítanie logu okolo výpadku vám povie, ktorú z troch máte, a odpoveď mení opravu.
Nepridávajte agresívnu opätovnú inicializáciu spojeniu, ktoré operátori zámerne zatvárajú kvôli údržbe, inak sa tunel objaví uprostred okna znova. Pri návrhoch na požiadanie stačí zachovaný trap, pretože zodpovedajúca prevádzka obnoví child bez akéhokoľvek časovača.
Overujte podľa názvu, nie podľa stavu démona
Prečítajte si spojenie a jeho child podľa názvu, kým je peer ešte dole, a potom znova, keď sa vráti; rozdiel medzi týmito dvoma výstupmi je dôkaz.
swanctl --initiate --child private-lan
swanctl --terminate --ike branch
Potom potvrďte službu, nie asociáciu. Čerstvá bezpečnostná asociácia child plus úspešná požiadavka na súkromný cieľ za ňou sú tie dve fakty, na ktorých záleží, a bežiaci démon so zdravým nesúvisiacim tunelom nedokazuje ani jedno.
Ak sa child nikdy neinicializuje, skontrolujte, či testovacia prevádzka presne zodpovedá nakonfigurovaným selektorom, vrátane protokolu a portu. Ak sa inicializuje a zlyhá, prečítajte chybu autentizácie alebo návrhu namiesto toho, aby ste ju skrývali za nekonečnou slučkou, pretože keyingtries=0 bude trvalé odmietnutie opakovať večne.
Načítajte zmenu v okne a znova otestujte
Opätovné načítanie je bezpečnejšie ako reštart démona a napriek tomu nie je zadarmo: nahradenie alebo odobratie child môže zavrieť spustenú asociáciu alebo zhodiť jeho trap.
Načítajte počas okna údržby, ponechajte predchádzajúci súbor a potvrďte, že spojenie sa objaví s nastaveniami, ktoré ste zamýšľali, a nie s predvolenými.
swanctl --load-conns
swanctl --list-conns
Vráťte zmenu obnovením predchádzajúceho súboru a jeho opätovným načítaním, potom zopakujte tie isté dva príkazy. Tunel, ktorý sa vráti len po reštarte démona, nie je opravený, je resetovaný.