Cos’è Traceroute e per cosa lo usi?

Mentre usi Internet, è davvero facile dimenticare che ci sono molte parti e server funzionanti che aiutano a mantenere vivo il World Wide Web. Ogni pacchetto che invii, da un messaggio di chat alla foto di un gatto, deve viaggiare attraverso scambi e server per raggiungere la sua destinazione.

Sfortunatamente, niente ti ricorda meglio questa configurazione di quando non puoi più connetterti a un sito web. La causa potrebbe essere da qualche parte dalla tua parte, dal lato del sito web o da qualche parte nel mezzo. E il modo migliore per capire dove si trova il problema è utilizzare Traceroute.

Cos’è Traceroute?

Traceroute è un modo per tracciare il percorso seguito dai pacchetti di dati mentre si fanno strada attraverso Internet. Ogni sistema operativo moderno può tracciare un percorso.

Quando avvii un Traceroute, gli dici verso quale sito web o server desideri tracciare un percorso. Normalmente si tratta dell’URL di un sito web che stai tentando di raggiungere, ma puoi anche fornirgli un indirizzo IP, se lo desideri.

Una volta avviato Traceroute, invia i pacchetti verso la destinazione impostata. Quindi registra i viaggi del pacchetto e invia le informazioni al tuo PC, che poi ti mostra dove stanno andando.

Questo è davvero utile se stai cercando di trovare un guasto sulla rete. Se un server o uno scambio non funziona, Traceroute rileverà il problema e segnalerà che qualcosa non funziona correttamente. È quindi possibile utilizzare queste informazioni per diagnosticare meglio cosa sta andando storto.

Come funziona Traceroute?

Traceroute è un modo pratico per diagnosticare errori di rete. Tuttavia, l’invenzione di Traceroute è dovuta a un exploit intelligente che utilizza la variabile “Time-to-Live” di un pacchetto.

Qual è il “Time-to-Live” di un pacchetto?

Idealmente, quando un computer invia un pacchetto da un luogo a un altro, arriva lì senza problemi. Prende il percorso più veloce possibile dal punto A al punto B e non rimane bloccato o bloccato.

Sfortunatamente, le reti possono essere complicate. Se un tecnico commette un errore durante la configurazione di un server, è possibile che i pacchetti vengano inviati in un ciclo infinito tra i server. E se ciò accade troppo spesso, la rete può essere piena di pacchetti che continuano a girare all’infinito.

Le menti intelligenti dietro il pacchetto di dati hanno escogitato una soluzione per risolvere questo problema, chiamata “time-to-live” o “TTL”. Ad ogni pacchetto, prima di essere spedito verso l’ignoto, viene assegnato un numero maggiore di 0 per il suo valore TTL. Se questo valore arriva a 0, il pacchetto viene considerato “morto” e viene distrutto.

Quando il pacchetto viene inviato nel suo viaggio, effettuerà più fermate su server diversi. Ogni volta che arriva a un server, sottrae uno dal suo valore TTL. Di solito, questo valore TTL è impostato su un numero in cui il pacchetto ha tempo più che sufficiente per raggiungere la sua destinazione prima di raggiungere lo 0. Tuttavia, se il pacchetto entra in un loop, il TTL alla fine diminuirà fino alla scadenza del pacchetto.

Quando un pacchetto scade, il server con cui termina invia quello che viene chiamato un messaggio “ICMP Time Exceeded” a casa. Si tratta essenzialmente di un avviso che il pacchetto ha incontrato la sua prematura scomparsa e indica all’utente dove è scaduto il pacchetto per facilitare la risoluzione dei problemi.

Come il time-to-live di un pacchetto ha consentito a Traceroute di funzionare

Questo messaggio ICMP Time Exceeded è la chiave per far funzionare Traceroute. Per iniziare, Traceroute invia un pacchetto con un TTL impostato su 1. Ciò significa che lascia il tuo PC, arriva al primo server, sottrae uno dal suo TTL, nota che ha un TTL pari a 0 e scade.

Il server che gestisce il pacchetto in quel momento invia quindi un messaggio ICMP Time Exceeded al tuo PC, insieme alla sua posizione. Il tuo PC registra quindi la posizione del server come primo passo verso il tuo obiettivo.

Quindi invia un pacchetto con un TTL impostato su 2, 3 e così via finché il pacchetto non arriva a destinazione. Ogni pacchetto scadrà nella fase successiva del passaggio e ciascun server lungo il percorso segnalerà il pacchetto scaduto, fornendo al tuo PC le informazioni necessarie per individuare dove stanno andando i tuoi pacchetti.

A cosa serve Traceroute?

A livello base, Traceroute ti consente di dare un’occhiata a come i pacchetti si muovono su una rete. Che tu sia un ingegnere di rete che controlla due volte per vedere tutto scorre come dovrebbe o che tu sia semplicemente interessato a come viaggiano i tuoi pacchetti quando visiti Google, Traceroute è la strada da percorrere.

Tuttavia, è utile anche per individuare errori nel sistema. Se Traceroute tenta di contattare un server che non risponde, noterà che il pacchetto inviato non ha attivato una risposta per un po’. Una volta trascorso il tempo sufficiente, Traceroute dichiara che la “Richiesta è scaduta”, il che significa che la risposta non è arrivata nel tempo assegnato.

Naturalmente, una richiesta scaduta non significa sempre che il server sia inattivo; a volte al server non piacciono le richieste di Traceroute e le blocca non appena arrivano. Ma se sei relativamente certo che nessun server della catena dovrebbe bloccare un Traceroute, è un buon modo per diagnosticare un sito Web o un server che non risponde quando provi a connetterti ad esso.

Qual è la differenza tra Traceroute e Ping?

I lettori tecnicamente esperti noteranno che Traceroute suona molto simile a un altro utile strumento di rete, Ping. Tuttavia, anche se le due funzionalità si sovrappongono un po’, le persone le utilizzano per ragioni diverse.

Come abbiamo spiegato sopra, Traceroute ti aiuta a capire dove va un pacchetto una volta che lascia il tuo PC. Nel frattempo, Ping ti dice se il tuo PC può raggiungere un server specifico e quanto tempo impiega per arrivarci.

Pertanto, se vuoi vedere ogni parte della catena di rete, Traceroute è dove si trova. Nel frattempo, se vuoi solo vedere se un server sta rispondendo, puoi eseguire il ping. Certo, puoi farlo anche con Traceroute, ma dovrai aspettare un po’ prima che arrivi finalmente al tuo server prima di ottenere la risposta che stai cercando.

Come eseguire un traceroute

Come abbiamo detto prima, tutti i principali sistemi operativi possono eseguire un Traceroute. È facile come aprire un terminale di comando e inserire il comando Traceroute.

Per macOS, devi solo aprire Terminale e digitare “traceroute”, seguito dall’URL o dall’indirizzo IP della destinazione. È lo stesso su Linux, ma potrebbe essere necessario installare Traceroute prima di poterlo eseguire.

Esecuzione del comando traceroute su Linux.

Sui sistemi operativi Windows funziona allo stesso modo, tranne che la funzione si chiama “tracert”. Abbiamo trattato tracert e altri comandi nella nostra guida sui comandi per gestire le reti wireless su Windows, quindi assicurati di leggerlo se desideri conoscere gli strumenti a tua disposizione.

Credito immagine: Michel Bakni/Wikimedia Commons

Tracciare i tuoi pacchetti con Traceroute

Se vuoi vedere dove vanno i tuoi pacchetti dopo aver lasciato il tuo PC, Traceroute è la strada da percorrere. Sia che tu voglia diagnosticare un problema di rete o che tu sia semplicemente curioso di vedere dove si avventurano i tuoi pacchetti, è facile configurarne uno e osservare i dati andare.