Būsenos išvestyje neatsiranda CHILD SA, tunelis atrodo negyvas, o tada ping į tolimą potinklį jį pakelia. Pagal poreikį IPsec sąrankoje ši seka yra dizainas, o ne gedimas. Trap politika įdiegia selektorių ir laukia, o pirmasis ją atitinkantis paketas pradeda IKE ir CHILD SA derybas.

Dalis painiavos yra žodynas: „up“ vartojamas dviem skirtingoms būsenoms. Konfigūracija įkelta, o branduolio politika egzistuoja, bet duomenų asociacijos nėra. Monitorius, skaičiuojantis tik aktyvius SA, sveiką svetainę praneš kaip neveikiančią tol, kol niekas į ją nesiunčia srauto.

Neaktyvus pagal poreikį tunelis neturi CHILD SA, kurį parodytų

Trap įrašas pats savaime nieko neautentifikuoja. Jis prašo branduolio laikyti politiką pasirinktam srautui ir iškelti acquisition, kai paketui reikia šios politikos. Daemonas gauna acquisition, susieja jį su child apibrėžtimi ir derasi nuo ten. Iki to momento nėra ir IKE SA, kurį būtų galima parodyti, todėl abu sąrašai gali būti tušti vienu metu.

Būtent ši seka daro žurnalus įskaitomus. Pirmiausia ateina acquisition, tada IKE_SA_INIT ir IKE_AUTH, tada CHILD SA. Jei žurnalas baigiasi iškart po acquisition, trigeris suveikė. Derybos nepavyko, o kitas klausimas yra apie kredencialus, pasiūlymus ar pasiekiamumą, o ne apie trap.

Su Linux branduolio backend galite matyti politiką prieš atsirandant bet kuriam SA. Vykdykite ip xfrm policy ir ieškokite selektoriaus su kryptimi out ir šablonu, nukreiptu į jungtį. Tas įrašas yra pagal poreikį būsena, o jo buvimas yra pirmas dalykas, kurį reikia patvirtinti.

start_action nusprendžia, ar apskritai kažkas lauks

Kiekvienas child swanctl.conf turi start_action. start paleidžiamas įkėlus konfigūraciją, trap įdiegia politiką ir laukia, o none paleidimą palieka kam nors kitam. Tik trap sukuria aukščiau aprašytą „ping ir jis pakyla“ elgseną.

children {
    office-lan {
        local_ts = 192.168.50.0/24
        remote_ts = 192.168.70.0/24
        start_action = trap
    }
}

Du srauto selektoriai apibrėžia, kas laikoma įdomu, o paketas iš hosto už šių prefiksų trap nesuveikia; jis maršrutizuojamas kaip įprasta. Selektorių išplėtimas, kad trigeris būtų noriau, išplečia ir apimtį, kurią tunelis teigia saugantis, todėl išveskite juos iš srauto, kurį tikrai ketinate šifruoti.

Čia swanctl.conf nuoroda išvardija priimtinas reikšmes kartu su atskirais close ir DPD veiksmais, kurie nustato, kas vyksta, kai SA jau egzistuoja.

Išsiaiškinkite, ar trigeris apskritai suveikė

Pradėkite nuo swanctl --list-conns ir patvirtinkite, kad child įkeltas su numatytu veiksmu. Tada nusiųskite vieną paketą iš hosto, esančio local_ts viduje, į adresą, esantį remote_ts viduje, ir stebėkite swanctl --list-sas. Jei išvestis nesikeičia, joks acquisition nepasiekė daemono.

Dvi įprastos tylios trap priežastys: paketas buvo source-NAT'intas prieš pasiekiant politiką ir nebeatitinka local_ts, arba jungtis niekada nebuvo įkelta dėl sintaksės ar kredencialų klaidos. Paleiskite iš naujo swanctl --load-all ir perskaitykite jo išvestį prieš liedami selektorius. Jungtis, kuri nebuvo įkelta, neįdiegia politikos, tad srautui nėra ko suveikti.

Kryptis taip pat svarbi: trap, įdiegtas išeinančiam srautui, neprasideda nuo įeinančio paketo. Jei tolimoji pusė turi pakelti tunelį, jai reikia savo trap, arba šiai pusei reikia start.

Laukti pirmo paketo ne visada teisinga mainai

Interaktyvios sesijos pajunta sąrankos kainą. Pirmoji užklausa sumoka už IKE mainus ir CHILD derybas, o klientas su trumpu terminu gali pasiduoti, kol SA dar neegzistuoja. Proaktyvus start pašalina tą pirmo paketo vėlavimą. Tačiau jis laiko tunelį atidarytą srautui, kuris gali niekada neateiti.

Trys faktai nulemia pasirinkimą: kaip dažnai naudojamas kelias, ar pirmoji užklausa turi griežtą terminą ir ar peer pasiekiamas paleidimo metu. Retkarčiais pasitaikantis paketinis srautas ir peer, kuris paleidimo metu gali būti neprisijungęs, abu palankūs trap. Delsos jautrus klientas ir visada pasiekiamas peer palankūs start. Jei abi pusės gali inicijuoti, susitarkite, kas valdo trigerį, kad nebūtų dubliuojamų derybų.

Įdiegta politika taip pat nėra sandarumo garantija. Jei reikalavimas yra fail-closed, ugniasienė turi mesti srautą be SA, ir ši taisyklė gyvena už child apibrėžties.

Užsirašykite tris eilutes, kurios baigs kitą ginčą

Užrašykite selektorius, paleidimo veiksmą ir komandos išvestį, rodančią politikos buvimą be SA. Tos trys eilutės atskiria „pagal poreikį ir neaktyvų“ nuo „neįkeliama“ kitą kartą, kai kas nors praneš tunelį kaip neveikiantį. Joms užfiksuoti reikia minutės. Be jų ta pati tyrimas prasideda nuo nulio.

Išbandykite iš hosto, kuris tikrai yra selektoriaus viduje. Ping iš paties maršrutizatoriaus dažnai eina kitu keliu ir nieko neįrodo apie politiką, saugančią potinklį už jo.

Susiję straipsniai