A betöltött strongSwan-profil nem aktív alagút
A strongSwan betölti a definíciókat, majd egyezteti az IKE- és CHILD-SA-kat. Az, hogy egy profil be van töltve, semmit nem mond arról, létezik-e alagút, vagy ki indítja el.
Egy kapcsolat felsorolása a strongSwan konfigurációjában csak azt bizonyítja, hogy egy definíció betöltődött. Ez nem jelenti azt, hogy felvették a kapcsolatot a partnerrel, hogy létezik IKE-SA, vagy hogy bármilyen forgalom védett lenne. A démon a definíciókat és az élő asszociációkat külön objektumként kezeli, és a kettő közötti távolság tudatos tervezési döntés. Annak ismerete, melyik objektumot vizsgálod, egy homályos hibát konkrét következő paranccsá alakít.
A betöltés nem kapcsolódás
Egy betöltött kapcsolat arról szóló állítás, hogy mit lehet később egyeztetni: partner-címek, hitelesítő adatok, javaslatok és forgalomszelektorok. Ebben az állításban semmi nem követeli meg, hogy a démon felhívott volna bárkit. Egy átjáró várhat a másik félre, indíthat induláskor, vagy várhat arra, hogy egy megfelelő forgalom felébressze. Mindhárom érvényes, és mindhárom ugyanúgy néz ki a konfigurációs fájlban, amíg el nem olvasod az indítási szabályt.
Az üzemeltetők bajba kerülnek, amikor a definíciók listáját állapotlistaként olvassák. A profil ott van, tehát az alagutat felállítottnak tekintik, és a következő óra egy soha meg nem épült asszociáció útvonalainak hibakeresésével telik.
Az ellenkező hiba ugyanilyen gyakori. Egy hiányzó profil embereket küld hálózati hiba keresésére, amikor a konfiguráció soha nem töltődött be. Nevezd meg az objektumot, aztán futtasd a parancsot, amely megfigyeli.
Három objektum, három megfigyelés
A strongSwan betöltött definíciót, IKE-SA-t és CHILD-SA-t tart. Az első konfiguráció, a második hitelesített vezérlőkapcsolat, a harmadik pedig egyeztetett védelem a kiválasztott forgalom számára. Még külön nevük is van, így egy hq nevű profil birtokolhat egy hq-lan nevű childot.
A táblázat minden réteget ahhoz a parancshoz rendel, amely megmutatja. Olvasd el a sort, mielőtt a naplót olvasod.
| 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 |
A child kérése először felépíti a szülő IKE-SA-t, ha még nincs ilyen. Csak az IKE-SA kérése más hívás. Egy jól hitelesítő vezérlőcsatorna nem garantálja a kért childot.
Ez a különbség részleges hiba esetén számít. Az IKE-SA lehet egészséges, miközben a child szelektor-eltérés vagy a partner által el nem fogadott javaslat miatt meghiúsul. A két objektum különböző okokból hiúsul meg, ezért külön megfigyeléseket érdemelnek.
Válaszd meg szándékosan az indítási műveletet
A swanctl.conf fájlban a child start_action beállítása dönt a betöltés utáni viselkedésről. Az alapértelmezett none a definíciót kézi indításra vagy responder-ként való használatra hagyja. A start tárcsázza, míg a trap olyan szabályt hagy, amely egyeztet, amint megfelelő forgalom jelenik meg.
Tehát a „betöltés soha nem indít alagutat” és a „betöltés mindig indít egyet” egyaránt téves. A művelet a profil része, és illeszkednie kell a partner szerepéhez. Két átjáró, amely mindkettő a másik félre vár, csendet eredményez, nem alagutat.
Trap esetén a forgalomnak illeszkednie kell a szelektorokhoz, így egy független ping semmit nem ébreszt fel. Start esetén a partner címe használhatónak kell lennie, és mindkét félnek meg kell egyeznie a hitelesítésben és a javaslatokban. Egyik művelet sem helyettesíti e feltételek ellenőrzését.
A helyreállítás külön szabály
Az indítás nem keepalive. A halott partner érzékelése, a partner explicit lezárása, a kulcscsere és a folyamat újraindítása különböző életciklus-események saját beállításokkal. Mindegyiket tudatosan konfiguráld, ahelyett hogy elvárnád, hogy egy kezdeti indítás mindet lefedi.
Egy alagút, amely induláskor feláll és egy óra múlva meghal, helyreállítási kérdés. Az indítási szabály elvégezte a dolgát, majd megszűnt számítani. Nézd meg a DPD- és kulcscsere-beállításokat, mielőtt a kezdeti egyeztetést hibáztatnád.
A betöltött definíciók lecserélése önálló művelet. A nem alapértelmezett indítási szabályoknak dokumentált inverz műveleteik vannak, és az újratöltés operatív változás, nem pedig annak feltételezése, hogy minden asszociáció helyben frissült. Az újratöltéseket szakaszosan végezd, ahol az újracsatlakozás elfogadható. Tartsd meg a régi konfigurációt, amíg az új bizonyítást nem nyer.
Ellenőrizd, mi létezik, mielőtt az útválasztást hibakeresed
Hajtsd végre a három megfigyelést sorrendben: betöltött definíciók, aktív IKE-SA-k és child-bejegyzések. Minden válasz szűkíti a következő kérdést. Hagyj ki egy lépést, és végül egy soha meg nem épült réteget hibakeresel.
Kezdd azzal, ami be van töltve, és azzal, ami valóban létrejött:
swanctl --list-conns
swanctl --list-sas
Ha a child hiányzik, miközben a profil helyes, indítsd el név szerint, és figyeld, mi történik. A kimenet általában megmondja, hogy a szülő állt-e fel előbb.
swanctl --initiate --child hq-lan
Egy aktív CHILD-SA nem a célvonal. A továbbítási szabályoknak, az útvonalaknak és az alkalmazás saját jogosultságának még össze kell illeszkedniük. Az életciklus azt válaszolja meg, mit egyeztettek; nem döntheti el, ki használhatja a szolgáltatást.