Učitan strongSwan profil nije aktivan tunel
strongSwan učitava definicije, a zatim pregovara IKE i CHILD SA. To što je profil učitan ne govori ništa o tome postoji li tunel ili ko ga pokreće.
Navođenje konekcije u strongSwan konfiguraciji dokazuje samo da je definicija učitana. To ne znači da je partner kontaktiran, da postoji IKE SA ili da je bilo koji saobraćaj zaštićen. Daemon tretira definicije i žive asocijacije kao odvojene objekte, a razmak između njih je namjerna dizajnerska odluka. Znati koji objekt pregledate pretvara nejasnu grešku u konkretnu sljedeću komandu.
Učitavanje nije povezivanje
Učitana konekcija je izjava o tome šta se može pregovarati kasnije: adrese partnera, akreditivi, prijedlozi i selektori saobraćaja. Ništa u toj izjavi ne zahtijeva da je daemon nekoga pozvao. Gateway može čekati drugu stranu, inicirati pri pokretanju ili čekati da ga probudi odgovarajući saobraćaj. Sva tri su valjana, i sva tri izgledaju identično u konfiguracijskoj datoteci dok ne pročitate politiku pokretanja.
Operateri upadaju u nevolje čitajući listu definicija kao listu statusa. Profil je tu, pa se tunel smatra aktivnim, a sljedeći sat odlazi na otklanjanje grešaka u rutama za asocijaciju koja nikada nije izgrađena.
Suprotna greška je jednako česta. Nedostajući profil šalje ljude u potragu za mrežnom greškom kad se konfiguracija nikada nije učitala. Imenujte objekt, a zatim pokrenite komandu koja ga posmatra.
Tri objekta, tri posmatranja
strongSwan drži učitanu definiciju, IKE SA i CHILD SA. Prva je konfiguracija, druga je autentificirani kontrolni odnos, a treća je pregovarano štićenje odabranog saobraćaja. Imaju čak i odvojena imena, pa profil po imenu hq može posjedovati child po imenu hq-lan.
Tabela povezuje svaki sloj s komandom koja ga prikazuje. Pročitajte red prije nego što pročitate log.
| 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 |
Zahtjev za child prvo gradi njegovu nadređenu IKE SA kada nijedna ne postoji. Zahtjev samo za IKE SA je drugi poziv. Kontrolni kanal koji se ispravno autentificira ne garantuje child koji ste tražili.
Ta razlika je važna tokom djelimičnog kvara. IKE SA može biti zdrav dok child pada na neusklađenosti selektora ili prijedlogu koji partner ne prihvata. Dva objekta padaju iz različitih razloga, pa zaslužuju odvojena posmatranja.
Odaberite akciju pokretanja namjerno
U swanctl.conf start_action childa odlučuje o ponašanju nakon učitavanja. Zadana vrijednost none ostavlja definiciju za ručno iniciranje ili korištenje kao responder. start je poziva, dok trap ostavlja politiku koja pregovara čim se pojavi odgovarajući saobraćaj.
Dakle, i „učitavanje nikada ne pokreće tunel” i „učitavanje uvijek pokreće jedan” su pogrešni. Akcija je dio profila i treba odgovarati ulozi partnera. Dva gatewaya koja oba čekaju drugu stranu proizvode tišinu, ne tunel.
Uz trap saobraćaj mora odgovarati selektorima, pa nepovezani ping neće ništa probuditi. Uz start adresa partnera mora biti upotrebljiva i obje strane se moraju složiti o autentifikaciji i prijedlozima. Nijedna od akcija ne zamjenjuje provjeru tih uslova.
Oporavak je odvojena politika
Pokretanje nije keepalive. Otkrivanje mrtvog partnera, eksplicitno zatvaranje od strane partnera, obnavljanje ključeva i ponovno pokretanje procesa različiti su događaji životnog ciklusa s vlastitim postavkama. Konfigurirajte svaki namjerno umjesto da očekujete da će početno pokretanje pokriti sve.
Tunel koji se podigne pri pokretanju i umre sat kasnije pitanje je oporavka. Politika pokretanja odradila je svoj posao i zatim prestala biti važna. Pogledajte DPD i postavke obnavljanja ključeva prije nego što okrivite početno pregovaranje.
Zamjena učitanih definicija je zasebna operacija. Nestandardne politike pokretanja imaju dokumentirane inverzne akcije, a ponovno učitavanje je operativna promjena, a ne pretpostavka da je svaka asocijacija ažurirana na mjestu. Izvodite ponovna učitavanja u fazama, gdje je ponovno povezivanje prihvatljivo. Zadržite staru konfiguraciju dok se nova ne dokaže.
Provjerite šta postoji prije nego što otklanjate greške u rutiranju
Izvedite tri posmatranja redom: učitane definicije, aktivne IKE SA i child unose. Svaki odgovor sužava sljedeće pitanje. Preskočite korak i na kraju ćete otklanjati greške u sloju koji nikada nije izgrađen.
Počnite s onim što je učitano i s onim što je zaista uspostavljeno:
swanctl --list-conns
swanctl --list-sas
Ako child nedostaje dok je profil ispravan, inicirajte ga po imenu i posmatrajte šta se događa. Izlaz obično kaže je li roditelj prvi podignut.
swanctl --initiate --child hq-lan
Aktivna CHILD SA nije ciljna linija. Pravila prosljeđivanja, rute i vlastita autorizacija aplikacije još se moraju poklopiti. Životni ciklus odgovara šta je pregovarano; ne može odlučiti ko smije koristiti uslugu.