back to top

Traceroute: cos’è, come funziona e come eseguirlo su Windows, Linux e Mac

I sistemi informatici comunicano attraverso lo scambio di pacchetti di dati. Questi package si muovono, all’interno delle reti informatiche, attraverso dei percorsi che prendono il nome di Traceroute, con lo stesso termine vengono indicate anche le applicazioni che permettono di risalire i vari passaggi di ogni percorso (le tappe del percorso prendono il nome di nodi).

Un package di dati puรฒ essere quindi rappresentato come un viaggiatore che per raggiungere la sua destinazione affronta un volo aereo con piรน scali in diversi aeroporti, mentre il Traceceroute รจ in sostanza il suo itinerario o lo strumento che consente di ricostruirlo tappa per tappa.

Pubblicitร 

Ma come funziona esattamente un Traceroute?

IP (Internet Protocol) e TTL (Time To Live)

L’Internet Protocol (IP) รจ uno standard pensato per connettere tra loro dei dispositivi elettronici all’interno di reti, a volte eterogenee sia in termini di performance che di caratteristiche.

Per il loro funzionamento le soluzioni per il tracerouting utilizzano una feature specifica del sistema IP chiamata TTL (Time To Live, o โ€œtempo di vitaโ€), nota anche come hop limit (โ€œlimite di saltiโ€), che offre una metrica circa il numero massimo di dispositivi di rete che un package di dati puรฒ attraversare prima della sua scadenza.

Un diagramma del campo TTL registra, in pratica, l’andamento del valore numerico di TTL: definito come n il numero massimo di network device attraversabili da un pacchetto di dati, ogni passaggio attraverso un router determinerร  un decremento unitario (n-1) e nel momento in cui tale valore sarร  pari a 0 il Traceroute invierร , al terminale che ha formulato la richiesta iniziale, una notifica di errore ICMP (Internet Control Message Protocol) che รจ il protocollo incaricato di trasmettere le informazioni relative ai malfunzionamenti che si verificano in una rete.

Nel messaggio sarร  presente anche il dato riguardante l’indirizzo del router che ha determinato l’errore stesso.

Come funziona il Traceroute

Come abbiamo detto lo scopo del Traceroute รจ seguire il percorso di un pacchetto di dati dalla sua sorgente fino a destinazione. Per farlo dovrร  registrare ogni singolo “salto” del pacchetto.

In fase di esecuzione un Traceroute invia una serie di pacchetti di dati generando una modifica del valore Max_ttl che viene, inizialmente, impostato su 1 e incrementato via via di una unitร  sino a quando il pacchetto non giunge a destinazione.

Lo scopo รจ di ottenere da ciascun nodo del percorso una notifica ICMP, โ€œTime Exceededโ€ in cui vengano restituiti il periodo di tempo passato tra l’invio del package e la sua ricezione, in millisecondi, e l’indirizzo IP del router contattato.

Al primo package viene attribuito un valore Max_ttl pari ad un 1 hop, il record risultante รจ facilmente riconoscibile perchรฉ riporta generalmente l’indirizzo IP (ad esempio โ€œ192.168.1.1โ€) del router associato al terminale che ha lanciato l’istanza di tracerouting:

1 3 ms 2 ms 1 ms home.hub [192.168.1.1]

Ricevuto il primo package (Max_TT = 1) il nodo decrementa il valore di uno ottenendo zero ed inviando, pertanto, la prima notifica ICMP.

Si susseguono poi gli ulteriori package con valore Max_ttl crescente su base unitaria (2 hop, 3 hop.. n hop) e tale incremento prosegue fino al massimo valore consentito di hop (ad esempio non piรน di 30 punti di passaggio), fino all’arrivo a destinazione del package (notifica ICMP โ€œEcho Replyโ€) o fino a quando l’ultimo gateway non restituisce il messaggio โ€œport_unreachableโ€ testimoniando che il package ricevuto non puรฒ essere piรน utilizzato in alcun modo.

Al termine dell’analisi il sistema sarร  in grado di restituire informazioni dettagliate su ciascun nodo coinvolto nel transito del pacchetto dati.

Vantaggi e svantaggi del tracerouting

Il tracerouting puรฒ rivelarsi particolarmente utile quando si ha la necessitร  di risalire a tutti gli indirizzi IP dei terminali presenti sul percorso attraversato dai package inviati tramite una richiesta. E’ infatti possibile ripercorrere gli itinerari verso diverse tipologie di destinazione, come per esempio un sito Web, un IP specifico, una Webmail, un FTP o un server per la posta elettronica.

Le informazioni ricavate tramite Traceroute possono essere utilizzate inoltre per valutare il grado di affidabilitร  di una connessione, nello stesso modo il tracerouting รจ una pratica che consente di misurare i tempi di risposta dei router verificando il periodo che trascorre tra l’invio di un package e l’arrivo dell’eventuale notifica di errore ad esso associata.

Utilizzare (o ripercorrere a seconda del senso che si vuole dare al termine) un Traceroute non offre perรฒ delle metriche necessariamente affidabili, package e notifiche di errore possono seguire infatti dei percorsi differenti alterando i valori relativi alla velocitร  di risposta dei router. E’ poi necessario tenere conto del fatto che non di rado i package stessi attraversano piรน percorsi, ciรฒ determina l’estrazione di indirizzi IP che fanno riferimento a itinerari diversi impedendo di indentificare il router che ha determinato tale situazione.

Un altro elemento a sfavore del Traceroute riguarda la possibile perdita dei package: nel momento in cui un package non viene tracciato entro un determinato periodo di tempo l’informazione non disponibile sul tempo di risposta viene rimpiazzata in output tramite un asterisco (โ€œ*โ€), la conseguenza รจ che il router da cui si attendeva la notifica ICMP non sarร  identificabile. Il limite di tempo previsto รจ in genere impostato sui 3 o 5 secondi ma in alcune applicazioni per il tracerouting puรฒ essere personalizzato a seconda delle proprie esigenze.

Si consideri infine che gli IP ricavati tramite Traceroute fanno riferimento alle interfacce in ingresso dei router e questo dato non รจ per forza di cose uguale a quello dell’IP che dovrebbe certificare il passaggio del package.

Traceroute in Windows

Su Windows รจ disponibile l’applicazione per il tracerouting TRACERT utilizzabile direttamente da linea di comando tramite una sintassi come la seguente:

C:>tracert www.google.it

TRACERT รจ un’utilitร  di diagnostica a cui si accede dal โ€œPrompt dei comandiโ€ del sistema operativo di Microsoft, una volta avviato quest’ultimo รจ poi sufficiente lanciare il comando tracert seguito dal nome (con o senza prefisso โ€œwww.โ€) o dall’indirizzo IP dell’host di destinazione:

Nell’output generato si possono notare i valori Max_ttl da 1 a 10 hop (con un limite di default pari a 30 passaggi), i risultati delle misurazioni relative ai tempi tra ricezione e risposta e gli indirizzi IP dei gateway, il primo dei quali รจ quello predefinito.

Traceroute in Linux

Su Linux รจ possibile effettuare operazioni di tracerouting tramite il comando traceroute che perรฒ non viene fornito di default su tutte le distribuzioni del โ€œPinguinoโ€. Se si opera per esempio su Ubuntu o derivate รจ possibile installare l’applicazione per traceroute tramite una semplice procedura che prevede innanzitutto di aggiornare i repository dei pacchetti software con l’istruzione:

$ sudo apt-get update

Fatto questo si possono aggiornare i software disponibili attraverso il comando:

$ sudo apt-get upgrade

per poi passare definitivamente alla fase di installazione digitando:

$ sudo apt-get install inetutils-traceroute

Una volta conclusa tale operazione รจ possibile utilizzare il comando traceroute passandogli come parametro l’host di destinazione (con o senza prefisso โ€œwww.โ€ nel caso si tratti di un nome a dominio) per i package di dati inviati dall’applicazione:

$ sudo traceroute www.google.it

Dato che, traceroute lavora su UDP (User Datagram Protocol) a differenza di TRACERT, che opera su ICMP, รจ possibile che per alcune richieste il tracerouting restituisca unicamente degli asterischi. Per ovviare a questa problematica รจ possibile forzare il tracciamento tramite ICMP utilizzando l’opzione โ€œ-Iโ€:

$ sudo traceroute -I www.google.it

Su altre distribuzioni molto utilizzate come per esempio CentOS (una derivata di Red Hat Linux) traceroute invece รจ generalmente disponibile in modalitร  predefinita, anche in questo caso รจ perรฒ consigliabile utilizzare l’opzione โ€œ-Iโ€ per forzare il tracerouting su ICMP:

Traceroute in macOS

Su macOS esistono 2 modalitร  per eseguire procedure di tracerouting. La prima prevede di utilizzare il Terminale che puรฒ essere avviato seguendo il percorso di sistema โ€œFinder > Applicazioni > Utility > Terminaleโ€, in alternativa รจ possibile aprire Spotlight e cercare il termine โ€œTerminaleโ€.

Fatto questo si potrร  lanciare l’applicazione traceroute specificando l’host di destinazione (con o senza prefisso โ€œwww.โ€ nel caso si tratti di un nome a dominio):

traceroute www.google.it

La seconda procedura disponibile per questo OS prevede di utilizzare le โ€œNetwork utilityโ€ di macOS reperibili anch’esse tramite il Finder o via Spotlight (percorso di sistema โ€œ/System/Library/CoreServices/Applicationsโ€).

Fatto questo si puรฒ accedere alla tab โ€œTracerouteโ€ e specificare l’hostname di destinazione direttamente nel campo che si aprirร  in questa sezione.

Altri contenuti interessanti

Pubblicitร 

Potrebbero interessarti queste guide

Claudio Garau
Claudio Garau
Web developer, programmatore, Database Administrator, Linux Admin, docente e copywriter specializzato in contenuti sulle tecnologie orientate a Web, mobile, Cybersecurity e Digital Marketing per sviluppatori, PA e imprese.

Leggi anche...

Cavo Ethernet cat 6, cat 7 e cat 8: quale scegliere?

I cavi Ethernet sono un elemento fondamentale nelle reti...

Mbps, Megabit, Gigabit, Megabyte e Gigabyte: che differenza c’รจ?

Quando si parla di connessioni Internet e velocitร  di...

Handshake: cos’è e come funziona il processo di handshaking nella comunicazione di Rete

Con il termine Handshake (letteralmente "stretta di mano") si...

DNS_PROBE_FINISHED_NXDOMAIN: cos’è e come risolvere questo errore di Chrome

DNS_PROBE_FINISHED_NXDOMAIN è un messaggio di errore tipico del browser...

DNS Google 8.8.8.8 – come funzionano e perché usarli

Il DNS primario 8.8.8.8 e il DNS secondario 8.8.4.4...

192.168.1.1: come accedere alla pagina del router

Prima di affrontare l'argomento di questo articolo - cos'è...
Pubblicitร