Įkeltas strongSwan profilis nėra aktyvus tunelis
strongSwan įkelia apibrėžtis, o paskui derasi dėl IKE ir CHILD SA. Tai, kad profilis įkeltas, nieko nesako apie tai, ar tunelis egzistuoja, ar kas jį paleidžia.
Sąraše nurodyti ryšį strongSwan konfigūracijoje įrodo tik tai, kad apibrėžtis buvo įkelta. Tai nereiškia, kad partneris buvo susiektas, kad egzistuoja IKE SA ar kad koks nors srautas yra apsaugotas. Diegmuo apibrėžtis ir gyvas asociacijas laiko atskirais objektais, o atstumas tarp jų yra sąmoningas projektavimo sprendimas. Žinojimas, kokį objektą tikrinate, neaiškų gedimą paverčia konkrečiu kitu įsakymu.
Įkėlimas nėra prisijungimas
Įkeltas ryšys yra teiginys apie tai, dėl ko bus galima derėtis vėliau: partnerio adresai, prisijungimo duomenys, pasiūlymai ir srauto selektoriai. Niekas tame teiginyje nereikalauja, kad diegmuo kam nors būtų paskambinęs. Tinklo vartai gali laukti kitos pusės, inicijuoti paleidžiant arba laukti, kol juos pažadins atitinkamas srautas. Visi trys variantai galioja, ir visi trys konfigūracijos faile atrodo vienodai, kol neperskaitysite paleidimo politikos.
Operatoriai patenka į bėdą skaitydami apibrėžčių sąrašą kaip būsenos sąrašą. Profilis yra, todėl manoma, kad tunelis veikia, ir kita valanda nueina derinant maršrutus asociacijai, kuri niekada nebuvo sukurta.
Priešinga klaida tokia pat dažna. Trūkstamas profilis siunčia žmones ieškoti tinklo gedimo, kai konfigūracija niekada nebuvo įkelta. Įvardykite objektą, tada paleiskite įsakymą, kuris jį stebi.
Trys objektai, trys stebėjimai
strongSwan laiko įkeltą apibrėžtį, IKE SA ir CHILD SA. Pirmoji yra konfigūracija, antroji yra autentifikuotas valdymo ryšys, o trečioji yra suderėta apsauga pasirinktam srautui. Jie net turi atskirus pavadinimus, todėl profilis, vadinamas hq, gali turėti child, vadinamą hq-lan.
Lentelė priskiria kiekvienam sluoksniui įsakymą, kuris jį parodo. Perskaitykite eilutę prieš skaitydami žurnalą.
| Layer | What it contains | Command |
|---|---|---|
| Definition | Peer addresses, credentials, proposals, and traffic selectors | swanctl --list-conns |
| IKE SA | One authenticated control channel to the peer | swanctl --list-sas |
| CHILD SA | Keys and selectors for the traffic being protected | Child rows under the IKE SA |
Prašant child pirmiausia sukuriama jo pagrindinė IKE SA, kai jos nėra. Prašyti vien IKE SA yra kitas kvietimas. Valdymo kanalas, kuris tvarkingai autentifikuojasi, negarantuoja prašyto child.
Šis skirtumas svarbus dalinio gedimo metu. IKE SA gali būti sveika, kol child nepavyksta dėl selektoriaus neatitikimo ar pasiūlymo, kurio partneris nepriima. Abu objektai nepavyksta dėl skirtingų priežasčių, todėl nusipelno atskirų stebėjimų.
Pasirinkite paleidimo veiksmą sąmoningai
Failo swanctl.conf child start_action nusprendžia elgseną po įkėlimo. Numatytoji none palieka apibrėžtį rankiniam paleidimui arba naudojimui kaip responder. start ją surenka, tuo tarpu trap palieka politiką, kuri derasi, kai tik pasirodo atitinkamas srautas.
Taigi ir „įkėlimas niekada nepaleidžia tunelio“, ir „įkėlimas visada jį paleidžia“ yra neteisingi. Veiksmas yra profilio dalis ir turėtų atitikti partnerio vaidmenį. Du tinklo vartai, kurie abu laukia kitos pusės, sukuria tylą, o ne tunelį.
Su trap srautas turi atitikti selektorius, todėl nesusijęs ping nieko nepažadins. Su start partnerio adresas turi būti naudingas ir abi pusės turi sutarti dėl autentifikavimo ir pasiūlymų. Nė vienas veiksmas nepakeičia šių sąlygų tikrinimo.
Atkūrimas yra atskira politika
Paleidimas nėra keepalive. Mirusio partnerio aptikimas, aiškus partnerio uždarymas, raktų atnaujinimas ir proceso paleidimas iš naujo yra skirtingi gyvavimo ciklo įvykiai su savais nustatymais. Kiekvieną jų sukonfigūruokite sąmoningai, užuot tikėjęsi, kad pradinis paleidimas apims juos visus.
Tunelis, kuris pakyla paleidžiant ir miršta po valandos, yra atkūrimo klausimas. Paleidimo politika atliko savo darbą ir tada nustojo turėti reikšmės. Pažiūrėkite į DPD ir raktų atnaujinimo nustatymus, prieš kaltindami pradines derybas.
Įkeltų apibrėžčių pakeitimas yra atskira operacija. Ne numatytosios paleidimo politikos turi dokumentuotus atvirkštinius veiksmus, o perkrovimas yra operacinis pokytis, o ne prielaida, kad kiekviena asociacija buvo atnaujinta vietoje. Perkrovimus atlikite etapais, kur pakartotinis prisijungimas priimtinas. Laikykite seną konfigūraciją, kol naujoji bus įrodyta.
Patikrinkite, kas egzistuoja, prieš derindami maršrutus
Atlikite tris stebėjimus iš eilės: įkeltas apibrėžtis, aktyvias IKE SA ir child įrašus. Kiekvienas atsakymas susiaurina kitą klausimą. Praleiskite žingsnį ir galiausiai derinsite sluoksnį, kuris niekada nebuvo sukurtas.
Pradėkite nuo to, kas įkelta, ir nuo to, kas iš tikrųjų nustatyta:
swanctl --list-conns
swanctl --list-sas
Jei child trūksta, o profilis teisingas, inicijuokite jį pagal pavadinimą ir stebėkite, kas nutiks. Išvestis paprastai pasako, ar pirma pakilo pagrindinis elementas.
swanctl --initiate --child hq-lan
Aktyvus CHILD SA nėra finišo linija. Persiuntimo taisyklės, maršrutai ir pačios programos autorizacija vis dar turi sutapti. Gyvavimo ciklas atsako, dėl ko buvo susitarta; jis negali nuspręsti, kas gali naudotis paslauga.