Il client dice di essersi autenticato, lo stato IKE sembra sano e i contatori dei pacchetti restano a zero. Questa combinazione non è una contraddizione: IKEv2 tiene separati la relazione di controllo e la relazione di dati, e la prima può riuscire mentre la seconda non sale mai. Il genitore gestisce la negoziazione, il figlio gestisce il traffico. Leggi i due strati separatamente prima di dichiarare il tunnel abbattuto.

Che cosa fanno le due SA

L’IKE-SA è la relazione di controllo: autentica i peer e trasporta gli scambi che negoziano, sostituiscono e rimuovono la protezione. Non trasporta mai i pacchetti delle tue applicazioni. Un genitore sano dimostra quindi solo che i due estremi possono accordarsi su una politica di sicurezza, e nulla più.

Una CHILD-SA è la relazione di dati, creata sotto il genitore, con selettori di traffico e materiale di chiave per un insieme protetto. È direzionale, quindi l’output di stato elenca un’associazione in ingresso e una in uscita con identificatori separati, e di solito contatori separati per ogni direzione. È proprio questo accoppiamento a spiegare perché una direzione può funzionare mentre l’altra cade, e perché la frase il tunnel è su non dice nulla sul traffico. Un genitore può anche tenere più figli, e così una sola etichetta di connessione nasconde quello che serve.

Leggi le voci figlie, non l’etichetta di connessione

Apri insieme lo stato del genitore e l’elenco dei figli, e trova il figlio i cui selettori corrispondono al flusso che stai provando. Annota i suoi selettori di traffico, gli algoritmi negoziati, la sua durata e i contatori in entrambe le direzioni. Se ci sono più figli, confronta per selettori e non per posizione, perché la posizione cambia dopo un rinnovo delle chiavi. Scrivi gli identificatori prima di cambiare qualcosa.

Se il genitore elenca un insieme di traffico diverso da quello che provi, stai leggendo il figlio sbagliato. È un problema di selettori, non un tunnel rotto.

Annota anche le marche temporali. Un rinnovo delle chiavi può sostituire uno strato mentre l’altro resta stabilito, e un figlio che sembra nuovo può essere il sostituto di quello che stavi osservando. Confronta gli identificatori prima di concludere che un figlio è sparito.

Quando non esiste alcun figlio

L’autenticazione può riuscire mentre la proposta di dati o i selettori falliscono, e il genitore resta senza alcun figlio. La causa abituale è una discrepanza di algoritmo o di selettori di traffico, ed entrambi i peer registrano la proposta rifiutata. Leggi entrambi gli estremi, perché il lato che raggiungi potrebbe mostrare solo il rifiuto. Correggi la discrepanza invece di riavviare il genitore, che ripete la stessa negoziazione fallita e aggiunge un’interruzione alle prove.

Un genitore che si ristabilisce di continuo è un guasto diverso da un genitore che resta su senza figli. Nel secondo caso i log nominano la proposta rifiutata, quindi raccogli quella proposta da entrambi gli estremi prima di modificare una politica.

Quando il figlio esiste ma i contatori restano a zero

Invia una richiesta nuova che corrisponda ai selettori del figlio. Una richiesta verso una destinazione fuori da quella politica non muoverà i suoi contatori, per quanto riuscita sembri.

Controlla la rotta che deve spingere il flusso nel tunnel, perché un figlio senza traffico è spesso un figlio verso cui nulla è instradato. Contatori che si muovono solo in una direzione indicano una discrepanza di selettori o di politica sul percorso di ritorno. Guarda i selettori di ritorno del peer remoto prima di toccare il lato locale. Una richiesta nuova ti dà anche una marca temporale da correlare con l’output di stato dei due estremi.

Nomina lo strato nel rapporto

Riporta il guasto come tre campi invece che come verdetto: lo strato che ha fallito, lo scambio o il figlio che hai ispezionato, e le prove che hai. Lo strato è uno di tre: il genitore non si è mai stabilito, la negoziazione del figlio è stata rifiutata, oppure esiste un figlio e il traffico non lo raggiunge. La prova è l’identificatore del figlio con i suoi selettori e contatori, o la proposta rifiutata citata da entrambi i log. Chi lo legge può andare dritto allo scambio che conta invece di chiedere quale VPN intendi.

La documentazione di strongSwan su IKEv2 mostra come questi strati appaiono nell’output di stato. Allega l’output del figlio che hai provato, non solo il riepilogo del genitore.

Articoli correlati