Il comando traceroute (8)
stampa il percorso fatto dai pacchetti fino all'host della rete. Il tab traceroute permette l'esecuzione del comando traceroute(8)
.
Internet è una grande e complessa aggregazione di network hardware, connessi tra loro mediante gateways. Tracciare il percorso seguito dai propri pacchetti (o trovare il gateway screanzato che sta scartandoli) può essere difficoltoso. Traceroute utilizza il campo time to live del protocollo IP e tenta di sollecitare una risposta ICMP TIME_EXCEEDED
da ciascun gateway lungo il percorso verso un determinato host.
Stampa gli indirizzi dei salti numericamente invece che sia simbolicamente che numericamente (ciò risparmia una richiesta di traduzione a un nameserver per ciascun gateway incontrato sul percorso).
Stabilisce il valore massimo del time-to-live (numero massimo di salti) usato nei pacchetti di prova in uscita. Il default è 30 "hops" (lo stesso usato per le connessioni TCP).
Questo programma tenta di tracciare il percorso che seguirebbe un pacchetto IP verso un host internet lanciando pacchetti di prova UDP con un piccolo ttl (time to live) e poi attendendo una risposta ICMP "time exceeded
" da un gateway. I sondaggi iniziano con un ttl di valore uno che viene progressivamente incrementato di uno fino a che non viene ricevuto un messaggio ICMP "port unreachable
" (il che significa che abbiamo trovato l'"host") o non viene raggiunto un valore massimo (che è per default 30 hop e può essere cambiato con l'opzione Numero massimo di salti).
Ogni volta che viene definito un ttl vengono lanciati tre pacchetti di sonda e viene stampata una linea che mostra il ttl, l'indirizzo del gateway e il tempo di percorrenza (round trip time) di ciascuno di essi. Se le risposte provengono da gateways differenti viene stampato l'indirizzo di ciascuno dei sistemi che hanno risposto. Se non giunge nessuna risposta entro un tempo limite di 3 secondi per quella sonda viene stampato un asterisco.
Dato che non vogliamo che l'host bersaglio processi i pacchetti sonda UDP faremo corrispondere un valore improbabile a quello della porta di destinazione.
Questo programma si intende usato per il testing, la misurazione e la gestione dei network. Esso dovrebbe essere usato principalmente per isolare manualmente i guasti. A causa del carico che può provocare sul network, non è saggio usare traceroute nel corso delle normali operazioni oppure troppo a lungo.
Implementato da Van Jacobson a partire da un suggerimento di Steve Deering. Corretto da un cast di migliaia di persone con suggerimenti o correzioni particolarmente convincenti da C. Philip Wood, Tim Seaver e Ken Adelman.