A lista o conexiune în configurația strongSwan dovedește doar că s-a încărcat o definiție. Nu înseamnă că partenerul a fost contactat, că există o SA IKE sau că vreun trafic este protejat. Daemonul tratează definițiile și asocierile active ca obiecte separate, iar distanța dintre ele este o alegere de proiectare deliberată. Să știi ce obiect inspectezi transformă o defecțiune vagă într-o comandă următoare concretă.

Încărcarea nu este conectare

O conexiune încărcată este o declarație despre ce se poate negocia mai târziu: adrese ale partenerului, credențiale, propuneri și selectori de trafic. Nimic din acea declarație nu cere ca daemonul să fi sunat pe cineva. O poartă poate aștepta cealaltă parte, poate iniția la pornire sau poate aștepta ca un trafic potrivit să o trezească. Toate trei sunt valide și toate trei arată identic în fișierul de configurare până când citești politica de pornire.

Operatorii intră în necaz citind lista de definiții ca pe o listă de stare. Profilul există, deci tunelul este presupus activ, iar următoarea oră se duce pe depanarea rutelor pentru o asociere care nu a fost niciodată construită.

Greșeala opusă este la fel de obișnuită. Un profil lipsă trimite oamenii să caute o defecțiune de rețea atunci când configurația nu a fost niciodată încărcată. Numește obiectul, apoi rulează comanda care îl observă.

Trei obiecte, trei observații

strongSwan păstrează o definiție încărcată, o SA IKE și o SA CHILD. Prima este configurație, a doua este o relație de control autentificată, iar a treia este protecție negociată pentru traficul selectat. Au chiar nume separate, așa că un profil numit hq poate deține un child numit hq-lan.

Tabelul asociază fiecărui strat comanda care îl arată. Citește rândul înainte de a citi jurnalul.

LayerWhat it containsCommand
DefinitionPeer addresses, credentials, proposals, and traffic selectorsswanctl --list-conns
IKE SAOne authenticated control channel to the peerswanctl --list-sas
CHILD SAKeys and selectors for the traffic being protectedChild rows under the IKE SA

Solicitarea child-ului îi construiește mai întâi SA IKE părinte atunci când nu există niciuna. A solicita doar SA IKE este un alt apel. Un canal de control care se autentifică bine nu garantează child-ul cerut.

Această diferență contează în timpul unei defecțiuni parțiale. O SA IKE poate fi sănătoasă în timp ce child-ul eșuează pe o nepotrivire de selector sau pe o propunere pe care partenerul nu o acceptă. Cele două obiecte eșuează din motive diferite, așa că merită observații separate.

Alege acțiunea de pornire cu intenție

În swanctl.conf, start_action al unui child decide comportamentul după încărcare. Valoarea implicită none lasă definiția pentru inițiere manuală sau pentru utilizare ca responder. start îl apelează, în timp ce trap lasă o politică ce negociază imediat ce apare trafic potrivit.

Deci atât „încărcarea nu pornește niciodată un tunel”, cât și „încărcarea pornește mereu unul” sunt greșite. Acțiunea face parte din profil și ar trebui să corespundă rolului partenerului. Două porți care așteaptă amândouă cealaltă parte produc liniște, nu un tunel.

Cu trap, traficul trebuie să corespundă selectorilor, așa că un ping irelevant nu va trezi nimic. Cu start, adresa partenerului trebuie să fie utilizabilă și ambele părți trebuie să cadă de acord asupra autentificării și a propunerilor. Niciuna dintre acțiuni nu înlocuiește verificarea acestor condiții.

Recuperarea este o politică separată

Pornirea nu este un keepalive. Detectarea partenerului mort, închiderea explicită de către partener, reînnoirea cheilor și repornirea procesului sunt evenimente diferite din ciclul de viață, cu propriile setări. Configurează fiecare în mod deliberat în loc să te aștepți ca o pornire inițială să le acopere pe toate.

Un tunel care urcă la pornire și moare o oră mai târziu este o chestiune de recuperare. Politica de pornire și-a făcut treaba și apoi a încetat să mai conteze. Uită-te la setările DPD și de reînnoire a cheilor înainte de a da vina pe negocierea inițială.

Înlocuirea definițiilor încărcate este o operațiune separată. Politicile de pornire care nu sunt implicite au acțiuni inverse documentate, iar o reîncărcare este o schimbare operațională, nu presupunerea că fiecare asociere a fost actualizată la loc. Fă reîncărcările în etape, acolo unde o reconectare este acceptabilă. Păstrează configurația veche până când cea nouă este dovedită.

Verifică ce există înainte de a depana rutarea

Rulează cele trei observații în ordine: definiții încărcate, SA IKE active și intrări child. Fiecare răspuns îngustează întrebarea următoare. Sari peste un pas și ajungi să depanezi un strat care nu a fost niciodată construit.

Începe cu ce este încărcat și cu ce este într-adevăr stabilit:

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

Dacă child-ul lipsește în timp ce profilul este corect, inițiază-l după nume și urmărește ce se întâmplă. Rezultatul spune de obicei dacă părintele a urcat primul.

swanctl --initiate --child hq-lan

O SA CHILD activă nu este linia de sosire. Regulile de redirecționare, rutele și autorizarea proprie a aplicației trebuie încă să se alinieze. Ciclul de viață răspunde la ce s-a negociat; nu poate decide cine are voie să folosească serviciul.

Articole similare