Dopo un periodo di quiete il tunnel si riconnette, nessun registro nomina un colpevole, e la mossa ovvia è scegliere il dispositivo con la documentazione del timeout più impressionante. È un’ipotesi travestita da diagnosi. Lo stato può sopravvivere per un po’ in un router domestico, in un traduttore dell’operatore e al bordo di un cloud, e ognuno di essi può lasciar cadere un flusso che tace. Quello che potete fare invece è mappare il percorso, segnare quali dispositivi potete davvero osservare ed eseguire una prova di inattività che potete ripetere.

Una prova ripetibile trasforma un aneddoto in una misura. Tutto ciò che segue presuppone un client, un server e un protocollo, e presuppone che resistiate a cambiare due variabili insieme. Lo scopo è rendere il prossimo caso meno costoso di questo.

Eseguite la stessa prova di inattività ogni volta

Annotate quando il flusso era l’ultima volta a posto, quanto è rimasto inattivo dopo e se un solo pacchetto nuovo lo ha riportato. Questi tre fatti sono la misura; senza di essi avete una storia su un portatile che è caduto. Usate lo stesso client, lo stesso server e lo stesso protocollo a ogni ripetizione, e annotate il momento in cui è stato inviato il primo pacchetto dopo il silenzio.

Poi confrontate cosa ha visto davvero ogni confine che possedete. La distinzione che decide l’indagine è se il server non ha visto proprio nulla dopo la pausa, oppure ha visto la richiesta e ha risposto verso un percorso che non portava più le risposte.

What you observeWhat it suggestsWhat it does not prove
server records no packet after the pausestate was lost upstream of the serverwhich hop dropped it
server answers, client never receivesreturn-path state or filteringthat the timer belongs to the client
client sends nothing at allclient-side timer or application behaviourthat the network path is healthy

Confrontare percorsi senza cambiare cinque cose

Una seconda rete di accesso approvata è un confronto legittimo, perché la catena NAT è diversa. Differisce anche per fornitore, condizioni radio e forse famiglia di indirizzi, quindi il risultato è un confine e non un’attribuzione. Registrate i limiti insieme al risultato invece di lasciarli cadere in silenzio quando riportate. Annotate anche il percorso: dispositivo, ruolo e se il suo stato può essere letto.

Ciò che un confronto di percorsi vi compra è una domanda circoscritta: il flusso sopravvive su uno e muore sull’altro dopo un silenzio simile, quindi la variabile vive da qualche parte nelle parti che differiscono. È un risultato reale anche quando nessun dispositivo viene nominato, e dice al prossimo ingegnere dove passare un pomeriggio e dove no.

Vale la pena leggere lo stato locale prima di speculare sugli operatori. Su un gateway Linux, conntrack -L elenca i flussi tracciati con la loro vita residua, il che trasforma un’ipotesi su un timer in un numero che potete vedere scadere. Leggetelo prima e dopo il periodo di inattività, non solo dopo.

Cosa terrà un segnale di mantenimento e cosa no

Un segnale di mantenimento supportato tiene aperta una mappatura, e tenere aperta una mappatura non dimostra nulla sul servizio che sta dietro. Il tunnel può restare mappato mentre l’applicazione che trasporta ha smesso di rispondere, e da una spia di stato queste due situazioni sembrano uguali. Trattate il segnale di mantenimento come un’assicurazione contro la scadenza per inattività, non come un controllo di salute.

Impostate l’intervallo sul timeout più corto che avete davvero misurato, non su un numero copiato da un forum. Un segnale di mantenimento regolato sotto ogni timer plausibile è traffico di cui nessuno aveva bisogno, e toglie anche il sintomo che vi avrebbe detto quale confine scade per primo. Scegliete l’intervallo dal numero misurato e lasciate tutto il resto in pace.

Una modifica, poi misurate di nuovo

Resistete all’impulso di alzare tutti i timeout e svuotare ogni gateway durante una prova dal vivo. Questo cancella le prove per cui siete venuti e interrompe flussi di altre persone, il che è un cattivo scambio per un’ipotesi che non avete verificato. Cambiate un’impostazione supportata su un solo dispositivo, poi ripetete il periodo di inattività e il recupero dell’applicazione.

Annotate quale osservazione di confine si è spostata, e annotatelo anche quando nulla è migliorato. Un’impostazione che non ha risolto nulla è informazione, ed è più economico notarlo una volta che farlo girare su tutto il parco.

Scrivere una conclusione che potete difendere

Quando un traduttore a monte non è ispezionabile, dite solo ciò che le prove sostengono: lo scambio muore da qualche parte lungo questo tratto del percorso dopo altrettanto silenzio, e il salto responsabile resta non attribuito. Un’affermazione circoscritta sopravvive alla revisione e indirizza la persona successiva al segmento giusto. Nominare un router nascosto come causa non fa né l’una né l’altra cosa. Consegnate la conclusione circoscritta a chi possiede il segmento non osservabile, con l’intervallo allegato.

RFC 4787 descrive perché i timer di mappatura UDP sono difficili da dedurre da un solo estremo, e questa difficoltà è il motivo per cui la conclusione circoscritta è quella onesta. I timer sono reali, e lo è anche l’incertezza che li circonda.

Articoli correlati