Llistar una connexió a la configuració de strongSwan només demostra que s’ha carregat una definició. No vol dir que s’hagi contactat amb el parell, que existeixi una SA d’IKE ni que cap trànsit estigui protegit. El dimoni tracta les definicions i les associacions vives com a objectes separats, i la distància entre ells és una decisió de disseny deliberada. Saber quin objecte estàs inspeccionant converteix una fallada vaga en una ordre següent concreta.

Carregar no és connectar

Una connexió carregada és una declaració del que es podrà negociar més endavant: adreces del parell, credencials, propostes i selectors de trànsit. Res en aquesta declaració obliga el dimoni a haver trucat a ningú. Una passarel·la pot esperar l’altre costat, iniciar a l’arrencada o esperar que un trànsit coincident la desperti. Les tres són vàlides, i les tres són idèntiques al fitxer de configuració fins que no llegeixes la política d’inici.

Els operadors s’emboliquen llegint la llista de definicions com una llista d’estat. El perfil hi és, així que es dona per fet que el túnel està aixecat, i l’hora següent se’n va a depurar rutes per a una associació que mai es va construir.

L’error contrari és igual de comú. Un perfil absent envia la gent a buscar una fallada de xarxa quan la configuració mai es va carregar. Anomena l’objecte i després executa l’ordre que l’observa.

Tres objectes, tres observacions

strongSwan manté una definició carregada, una SA d’IKE i una SA CHILD. La primera és configuració, la segona una relació de control autenticada i la tercera protecció negociada per al trànsit seleccionat. Fins i tot tenen noms separats, així que un perfil anomenat hq pot posseir un child anomenat hq-lan.

La taula associa cada capa a l’ordre que la mostra. Llegeix la fila abans de llegir el registre.

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

Demanar el child construeix primer la seva SA d’IKE pare quan no n’existeix cap. Demanar només la SA d’IKE és una crida diferent. Un canal de control que s’autentica bé no garanteix el child que has demanat.

Aquesta diferència compta durant una fallada parcial. Una SA d’IKE pot estar sana mentre el child falla per una discrepància de selector o una proposta que el parell no accepta. Els dos objectes fallen per motius diferents, així que mereixen observacions separades.

Tria l’acció d’inici deliberadament

A swanctl.conf, el start_action d’un child decideix el comportament després de la càrrega. El valor per defecte none deixa la definició per a iniciació manual o ús com a responedor. start la marca, mentre que trap deixa una política que negocia tan bon punt apareix trànsit coincident.

Així, tant «carregar no inicia mai un túnel» com «carregar sempre n’inicia un» són falsos. L’acció forma part del perfil i ha de coincidir amb el rol del parell. Dues passarel·les que esperen totes dues l’altre costat produeixen silenci, no un túnel.

Amb trap, el trànsit ha de coincidir amb els selectors, així que un ping no relacionat no despertarà res. Amb start, l’adreça del parell ha de ser utilitzable i els dos costats s’han de posar d’acord en autenticació i propostes. Cap de les dues accions no substitueix la comprovació d’aquestes condicions.

La recuperació és una política a part

L’arrencada no és un keepalive. La detecció de parell mort, el tancament explícit pel parell, la renovació de claus i el reinici del procés són esdeveniments de cicle de vida diferents amb els seus propis ajustos. Configura cada un deliberadament en lloc d’esperar que un inici inicial els cobreixi tots.

Un túnel que puja a l’arrencada i mor una hora després és una qüestió de recuperació. La política d’inici va fer la seva feina i després va deixar d’importar. Mira els ajustos de DPD i de renovació de claus abans de culpar la negociació inicial.

Substituir definicions carregades és una operació pròpia. Les polítiques d’inici no predeterminades tenen accions inverses documentades, i una recàrrega és un canvi operatiu en lloc de la suposició que cada associació s’ha actualitzat al seu lloc. Fes les recàrregues per etapes, on una reconnexió sigui acceptable. Conserva la configuració antiga fins que la nova estigui provada.

Comprova què existeix abans de depurar l’encaminament

Executa les tres observacions en ordre: definicions carregades, SA d’IKE actives i entrades de child. Cada resposta estreny la pregunta següent. Salta una passa i acabaràs depurant una capa que mai es va construir.

Comença pel que està carregat i pel que està realment establert:

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

Si falta el child mentre el perfil és correcte, inicia’l pel nom i observa què passa. La sortida normalment diu si el pare va pujar primer.

swanctl --initiate --child hq-lan

Una SA CHILD activa no és la meta. Les regles de reenviament, les rutes i l’autorització pròpia de l’aplicació encara han d’encaixar. El cicle de vida respon què es va negociar; no pot decidir qui pot usar el servei.

Articles relacionats