Kauge lüüs taaskäivitub, tuleb tagasi minuti jooksul ja kohalik strongSwan-deemon jätkab tööd, samal ajal kui tunnel on endiselt maas. Cron-töö, mis grep'ib ESTABLISHED-i ja taaskäivitab deemoni, katab selle lõpuks kinni, aga katkestab ka iga selle masina mitteseotud tunneli, jättes samas võib-olla vahele just selle, mis ebaõnnestus. Taastamine kuulub ühendusele, mis peab naasma, väljendatuna seadetes, mis peavad reload'i üle elama. See runbook seab selle ühe ühenduse jaoks üles ja tõestab tulemuse nime järgi.

Jäta üldine taaskäivitus maha, hoia alles selle tõendid

Deemoni taaskäivitusel on kaks konkreetset puudust: see hävitab iga ühenduse oleku ega ütle sulle midagi selle kohta, milline sündmus tegelikult ebaõnnestus. Otsitud staatuse tekst võis tulla teisest ühendusest, samal ajal kui vajalik child seisis jõude, sest miski ei käivitanud seda.

Loe laaditud ühendused ja aktiivsed assotsiatsioonid enne muudatuste tegemist, et sul oleks enne-pilt, millega võrrelda pärast peer'i naasmist.

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

Pane algatamine ja korduskatsed naasvale ühendusele

swanctl.conf-i juurutuses elavad need seaded ühenduse ja child-i tasandil, mitte üldises poliitikas. Allolev fragment on algatajapoolne näide, mis eeldab, et ettepanekud, autentimine ja selektorid on juba korrektsed.

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

start_action otsustab, mis juhtub child-i laadimisel: start algatab kohe, samal ajal kui trap paigaldab poliitika, mis käivitab algatamise siis, kui ilmub sobiv liiklus. trap|start kirjutamine nõuab strongSwan 5.9.6 või uuemat, seega kontrolli versiooni enne rea kopeerimist. dpd_action=restart nõuab uut läbirääkimist, kui peer on surnuks kuulutatud, ja ühenduse tasandil keyingtries=0 lubab täiendavaid katseid kuni õnnestumise või püsiva veani. IKEv2 juures ei ole dpd_timeout'il mingit mõju, sest tavaline kordussaatmine otsustab, millal peer ei vasta.

Selle näite viivitus on lähtepunkt, mitte universaalne tähtaeg. Vali see selle järgi, kui kaua peer'i taaskäivitus kestab ja kui palju kordussaatmist sa oled valmis taluma.

Tead, millisest sündmusest sa taastud

Kolm riket näevad armatuurlaual ühesugused välja ja nõuavad erinevaid seadeid. Algne ühendus, mis kunagi ei tõusnud, on konfiguratsiooni või kättesaadavuse probleem. Peer, mis lakkas vastamast, on DPD juhtum. Child, mille peer selgesõnaliselt sulges, on poliitikasündmus oma close_action'iga, mida DPD kunagi ei märka. Logi lugemine katkestuse ümber ütleb sulle, milline neist kolmest sul on, ja vastus muudab parandust.

Ära lisa agressiivset uuesti algatamist ühendusele, mille operaatorid sulgevad hoolduse ajaks meelega, muidu ilmub tunnel keset akent uuesti. Nõudmisel töötavate lahenduste puhul piisab alles hoitud trap'ist, sest sobiv liiklus taastab child-i ilma ühegi taimerita.

Kontrolli nime järgi, mitte deemoni staatuse järgi

Loe ühendus ja selle child nime järgi, kui peer on veel maas, ja siis uuesti, kui see naaseb; nende kahe väljundi vahe on tõend.

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

Seejärel kinnita teenust, mitte assotsiatsiooni. Värske child-i turbetasotsiatsioon pluss edukas päring selle taga olevasse privaatsesse sihtkohta on see faktipaar, mis loeb, ja töötav deemon koos terve mitteseotud tunneliga ei tõesta kumbagi.

Kui child ei algata kunagi, kontrolli, kas testliiklus vastab konfigureeritud selektoritele täpselt, sealhulgas protokoll ja port. Kui see algatab ja ebaõnnestub, loe autentimis- või ettepaneku viga, selle asemel et peita seda lõputu tsükli taha, sest keyingtries=0 kordab püsivat tagasilükkamist igavesti.

Laadi muudatus aknas ja testi uuesti

Reload on turvalisem kui deemoni taaskäivitamine ja ikkagi mitte tasuta: child-i asendamine või mahalaadimine võib sulgeda alustatud assotsiatsiooni või selle trap'i maha visata.

Laadi hooldusakna ajal, hoia alles eelmine fail ja kinnita, et ühendus ilmub kavatsetud seadetega, mitte vaikeväärtustega.

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

Võta muudatus tagasi, taastades eelmise faili ja laadides selle uuesti, seejärel korda samu kahte käsku. Tunnel, mis naaseb alles pärast deemoni taaskäivitust, ei ole parandatud, vaid lähtestatud.

Seotud artiklid