Cadute VPN intermittenti: cosa registrare ogni volta
Una caduta intermittente è un problema di dati prima di essere un problema di configurazione. Registra cinque campi per ogni incidente, poi confronta le fasi prima di cambiare le impostazioni.
Le cadute intermittenti sono un problema di raccolta dati prima di essere un problema di configurazione. Registra gli stessi campi a ogni occorrenza, altrimenti gli incidenti non si possono confrontare. Cambiare tre impostazioni dopo ogni evento distrugge l’unica prova che avevi.
La procedura che segue richiede circa due minuti per incidente e produce una riga per evento. Presuppone accesso in sola lettura su un dispositivo che amministri.
Fissa i campi prima del primo guasto
Prepara l’elenco dei campi prima che qualcosa si rompa, perché un modello inventato a metà incidente salta sempre una colonna. Cinque campi bastano per iniziare: l’ora locale con il suo scostamento, l’innesco, la fase che si è rotta, il testo esatto dell’errore e se un nuovo tentativo è riuscito.
L’innesco merita un vocabolario proprio: inattività, ripresa dopo la sospensione, cambio di rete, picco di carico, rinnovo delle credenziali o sconosciuto. Lascia sconosciuto etichettato come sconosciuto invece di compilarlo più tardi a memoria. Il campo della fase vale di più, perché registra dove la catena si è fermata e non che cosa ha percepito l’utente. Il testo dell’errore va copiato alla lettera, perché una parafrasi perde la distinzione fra due codici simili.
Lascia i vuoti come vuoti. Un modello che impone una risposta invita a inventare, e un contesto inventato è peggio di uno spazio bianco.
| Field | Example | Why it earns its place |
|---|---|---|
| Time with offset | 2026-11-03T09:14+08:00 | Orders events across sources in different zones |
| Trigger | resume from sleep | Separates a cause from a coincidence |
| Stage | handshake ok, no route | Names the boundary that failed |
Registra gli stessi cinque fatti al momento del guasto
Esegui gli stessi comandi nello stesso ordine ogni volta. Due minuti di output valgono più di una fotografia dell’icona nella barra, e l’ordine conta quando più tardi le marche temporali non coincidono.
date -Is journalctl -u wg-quick@wg0 --since "-2 min" --no-pager wg show wg0 latest-handshakes transfer ip route get 203.0.113.10 ping -c 3 -W 2 192.0.2.1
La prima riga contrassegna l’osservazione con uno scostamento, ed è l’unico modo per riconciliare tre fonti registrate in fusi diversi. L’estratto del journal copre il ciclo di vita del servizio, e la riga della stretta di mano dice se il peer ha risposto. La ricerca di rotta nomina l’interfaccia che una destinazione precisa userebbe, e non è lo stesso fatto dell’esistenza dell’interfaccia. Un ping all’indirizzo del tunnel mostra se qualcosa attraversa il collegamento, non se il lato opposto è raggiungibile.
Scrivi una riga per incidente in un registro continuo, con quei campi e nient’altro. Dopo cinque o sei voci, ordina per innesco e poi per fase. Gli schemi emergono come coppie ripetute, e una coppia che non si ripete mai è probabilmente una coincidenza.
Individua la fase che si è rotta
Connettività locale, stato del peer, rotte e risoluzione dei nomi falliscono in punti diversi, e ognuno lascia la propria traccia. Se l’interfaccia esiste ma nessuna rotta la indica, il guasto è di politica locale. Se la marca temporale della stretta di mano smette di avanzare mentre l’interfaccia resta attiva, il guasto sta più a monte.
La risoluzione dei nomi appartiene allo stesso rilevamento. Un resolver che lunedì seguiva il tunnel e martedì la rete locale produce guasti che a livello applicativo sembrano casuali.
Per l’accesso autorizzato al server, correla lo stesso tentativo e non una riconnessione vicina. Conserva le marche temporali originali e annota ogni scostamento a parte, perché convertirle sul posto cancella la prova della conversione. Un tentativo, un insieme di marche temporali, una conclusione.
Confronta una condizione alla volta
Un confronto controllato cambia una condizione significativa e tiene l’esecuzione fallita accanto a quella riuscita. Sposta il dispositivo su un’altra rete, oppure disattiva un’esclusione, e non cambiare nient’altro nello stesso passo.
Conserva l’esecuzione fallita nel registro. Cancellarla a favore di quella funzionante butta via l’unica prova del confine che stai cercando di localizzare.
Condividi un estratto, non il profilo
Prima di inviare qualcosa, rimuovi password, token, chiavi private, identità estranee e payload. Un profilo completo è un segreto di configurazione e non un riassunto di connessione, e non appartiene a un ticket.
Invia l’estratto con i cinque campi e indica quale fase pensi sia fallita. Così un amministratore può esaminare il confine che hai nominato invece di scorrere catture di un’icona disconnessa. Se il confine non è ancora chiaro, il passo successivo è un altro rilevamento controllato, non un’altra modifica alle impostazioni.