Comando traceroute in Linux: interpretare hop, tempi e asterischi

traceroute sonda il percorso verso una destinazione aumentando gradualmente il TTL o limite di hop e osservando le risposte dei nodi intermedi. Aiuta a indagare ritardi e tracce incomplete, ma un asterisco o un tempo elevato su una riga non identificano da soli un router guasto.

Un hop è un passaggio della rete, generalmente attraverso un router. Il TTL (Time To Live) limita il numero di passaggi di un pacchetto IPv4; IPv6 usa un limite di hop. Quando il limite si esaurisce, un router può inviare una risposta ICMP (Internet Control Message Protocol) di tempo superato. traceroute usa queste risposte per mostrare quanto riesce a osservare del percorso.

Sintassi e metodo di rilevazione

traceroute [options] destination

Parentesi e segnaposto descrivono la sintassi e non si digitano. La destinazione può essere un nome o un indirizzo. Controlla traceroute --version, traceroute --help e man traceroute sulla distribuzione: gli esempi seguono l'implementazione Traceroute for Linux, mentre altre implementazioni possono differire.

Il metodo predefinito usa sonde UDP (User Datagram Protocol). -I, con la lettera i maiuscola, seleziona ICMP Echo; -T seleziona sonde TCP (Transmission Control Protocol). Metodo, permessi e regole di rete influenzano quali risposte si ottengono.

Ogni risposta riguarda una sonda diagnostica. Indirizzi, porte, protocollo e bilanciamento del carico possono far seguire al traffico dell'applicazione un percorso diverso. Anche il ritorno delle risposte può essere diverso dall'andata: una traccia non è una mappa definitiva di tutto il traffico.

Esempi di base e confronto ICMP

Tracciare verso un nome

traceroute example.com

Osserva indirizzo di destinazione, numero di hop e tempi delle risposte. example.com è il nome dell'esempio: non garantisce risposte né il completamento della traccia. Per una diagnosi usa la destinazione pertinente che puoi verificare.

Mostrare indirizzi numerici

traceroute -n example.com

-n evita di tradurre gli indirizzi dei nodi in nomi nell'output, riducendo le attese dovute alla risoluzione inversa. Il nome di destinazione deve ancora essere risolto: l'opzione non elimina la risoluzione iniziale e non rende più rapido il percorso dei pacchetti.

Confrontare con sonde ICMP

traceroute -I example.com

Se UDP ottiene poche risposte, un confronto ICMP può fornire informazioni diverse quando consentito dalla rete e dai permessi. Mantieni uguali destinazione e famiglia IP, verificando l'indirizzo scelto nell'intestazione. Una risposta con un metodo e non con un altro può dipendere dalle politiche sui protocolli.

Un errore di permessi è distinto da una sonda senza risposta. Non cambiare indiscriminatamente autorizzazioni o firewall per completare la traccia; verifica prima quali metodi sono previsti nel tuo ambiente. Puoi interrompere un test con Ctrl+C.

Leggere hop, tempi e asterischi

Riprendiamo la vista numerica per concentrarci sulle risposte:

traceroute -n example.com

Questo è uno schema illustrativo e parziale, non un percorso misurato. L'indirizzo 192.0.2.1 è riservato alla documentazione e non rappresenta il tuo gateway reale:

1  192.0.2.1  1.0 ms  0.9 ms  1.1 ms
2  * * *

La prima colonna indica il valore di hop sondato. Con le impostazioni predefinite del programma Linux vengono normalmente inviate tre sonde per hop; i tre tempi della prima riga sono quindi tre misure di andata e ritorno, non tre collegamenti diversi. La colonna dei nodi può mostrare più indirizzi se rispondono sistemi diversi.

Un * indica che per quella sonda non è arrivata una risposta entro l'attesa prevista. Tre asterischi non dimostrano che il router abbia bloccato tutti i pacchetti in transito. Se compaiono hop successivi, almeno alcune sonde sono andate oltre quel punto; il nodo intermedio può semplicemente non rispondere o limitare le risposte diagnostiche.

I tempi includono andata e ritorno tra il tuo sistema e il nodo che risponde. La differenza fra i tempi di due righe consecutive non misura con certezza il ritardo del collegamento tra quei router. Un nodo può inoltrare normalmente il traffico e dedicare meno risorse alle risposte ICMP.

Se l'aumento di tempo riguarda solo un hop e i successivi rispondono più rapidamente, evita di dichiararlo un collo di bottiglia. Confronta risposte della destinazione e più misure brevi nelle stesse condizioni. Se la traccia termina senza raggiungere il destinatario, registra anche il limite di hop e gli eventuali errori espliciti.

Opzioni principali

Opzione Uso
-n Mostra gli indirizzi numerici senza risoluzione inversa dei nodi.
-I Seleziona sonde ICMP Echo.
-T Seleziona sonde TCP SYN.
-m hop Imposta il massimo limite di hop da sondare.
-q count Imposta il numero di sonde per hop.
-w time Regola l'attesa delle risposte alle sonde, in secondi nella forma semplice.

hop, count e time sono segnaposto da sostituire con valori appropriati. Il limite di hop non è una scadenza in secondi; -q non è il numero totale di richieste dell'intera traccia e -w non è un limite complessivo di esecuzione. Il manuale descrive anche la forma estesa di -w e l'attesa adattiva.

Verificare una possibile interruzione

  1. Conferma che il nome venga risolto e annota l'indirizzo e la famiglia IP scelti. Un errore prima dell'invio non descrive un guasto di un router intermedio.
  2. Valuta insieme il primo asterisco, gli hop successivi e l'eventuale risposta finale. Una traccia con pochi hop consentiti può fermarsi prima del destinatario.
  3. Confronta protocollo e regole pertinenti; se usi metodi diversi, mantieni gli altri parametri coerenti. Ridurre troppo l'attesa può produrre più asterischi senza che la rete sia cambiata.
  4. Controlla l'instradamento locale con la guida al comando ip e ai percorsi, poi verifica il servizio dal client interessato. Una traccia arrivata a destinazione non prova che l'applicazione risponda correttamente.

Per indagare la dimensione dei pacchetti lungo un percorso, la guida a tracepath e alla Path MTU spiega anche i limiti delle tracce parziali. Evita prove continue o un numero eccessivo di sonde: i limiti alle risposte dei router possono aumentare i vuoti senza indicare perdita del normale traffico applicativo.

Domande frequenti

Un asterisco a metà percorso significa che il pacchetto si è fermato lì?

Non necessariamente. Manca la risposta di quella sonda, per esempio perché il router limita i messaggi di tempo superato. Guarda gli hop successivi, il destinatario e gli eventuali errori; dal solo asterisco non puoi identificare il dispositivo guasto.

Documentazione di riferimento

Il manuale di Traceroute for Linux descrive metodi, permessi e opzioni. La RFC 5737 sugli indirizzi IPv4 di documentazione definisce l'intervallo usato nello schema.