Usare comando Traceroute

Come usare comando Traceroute in Ubuntu 21.04

In questo post vedremo come usare comando Traceroute in Ubuntu per individuare colli di bottiglia, rallentamenti di un pacchetto di rete e risolvere i problemi di connessione di rete.

Ti mostreremo come fare!

Cos’è Traceroute?

Traceroute è un comando che esegue gli strumenti utilizzati per la diagnostica di rete. Questi strumenti tracciano i percorsi dei pacchetti di dati dalla loro origine alle loro destinazioni, consentendo agli amministratori di risolvere meglio i problemi di connettività. 

Su una macchina Windows, questo comando si chiama tracert; su Linux e Mac, si chiama traceroute.

Traceroute e tracert funzionano in gran parte allo stesso modo: mappano i dati del percorso da un punto di una rete a un server IP specifico. Quando i dati vengono trasmessi tra due punti, devono “saltare” attraverso diversi dispositivi, come switch e router. 

Traceroute mappa ogni hop, fornisce i dettagli e il tempo di andata e ritorno (RTT) e, ove possibile, fornisce il nome e l’indirizzo IP del dispositivo.

Mentre ping può dirti se c’è un problema, traceroute può aiutarti a individuare dove si trova il problema. Per un esempio di come utilizzare traceroute, immagina di visitare un sito Web e il caricamento delle sue pagine richiede molto tempo. In questo caso, è possibile utilizzare traceroute per determinare dove si verificano i ritardi più lunghi per arrivare al percorso del problema.

Vediamo come usare Traceroute installandolo su Ubuntu.

Come usare comando Traceroute in Ubuntu

Segui i passaggi seguenti per installare rapidamente traceroute su Ubuntu. Puoi semplicemente seguire i passaggi da terminale della riga di comando utilizzando il gestore di pacchetti APT integrato.

sudo apt-get install traceroute

Una volta conclusa tale operazione è possibile usare 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.com
Usare comando Traceroute - Test dominio Google
Usare comando Traceroute – Test dominio Google

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.com

Traceroute delinea il percorso che un pacchetto IP segue verso un host Internet lanciando pacchetti di sonda UDP con un piccolo TTL, quindi ascoltando una risposta ICMP “tempo superato” da un gateway. Avvia le sonde con un TTL di uno e aumenta di uno finché non ottieni una “porta irraggiungibile” ICMP (che significa che il pacchetto è arrivato a destinazione) o raggiungi un valore massimo di tentativi, che per impostazione predefinita è 30 hop e può essere modificato con il  comandom .

Quando traceroute viene eseguito, invia tre hop a ciascuna impostazione TTL e quindi stampa una riga sulla console che mostra il TTL, l’indirizzo del gateway e il tempo di andata e ritorno di ciascun hop. Se le risposte del hop provengono da gateway diversi, viene stampato l’indirizzo di ciascun sistema che risponde. 

Se traceroute non riceve una risposta entro cinque secondi (modificato con il   flag -w ), stampa un asterisco per quel hop.

Per evitare che l’elaborazione del pacchetto sonda UDP travolga l’host di destinazione, traceroute imposta la porta di destinazione su un valore che è improbabile che il dispositivo utilizzi. Se una rete o un servizio nella destinazione utilizza quella porta, modificare il valore utilizzando il   flag -p .

Sintassi e opzioni di Traceroute

Oltre ad usare comando Traceroute occorre essere a conoscenza della sua sintassi:

traceroute [ -dFInrvx ] [ -f first_ttl ] [ -g gateway ] [ -i iface ] [ -m max_ttl ] [ -p port ] [ -q nqueries ] [ -s src_addr ] [ -t tos ] [ -w waittime ] [-z pausemsecs] host [packetlen]  

È possibile modificare le prestazioni o l’output del comando specificando una o più opzioni facoltative.

Comandi Traceroute
ComandiSpiegazione
-FImposta il tempo di vita iniziale utilizzato nel primo pacchetto sonda in uscita.
-FImposta il bit “non frammentare”.
-DAbilita il debug a livello di socket.
-GSpecificare un gateway di route di origine libero (massimo 8).
-ioSpecificare un’interfaccia di rete per ottenere l’indirizzo IP di origine per i pacchetti probe in uscita. Questo è normalmente utile solo su un host multi-homed. (Vedi il   flag -s per un altro modo per farlo.)
-IOUsa ICMP ECHO invece di  datagrammi UDP .
-mImposta il tempo massimo di vita (numero massimo di hop) utilizzato nei pacchetti sonda in uscita. Il valore predefinito è 30 hop (lo stesso predefinito utilizzato per le connessioni TCP).
-nPrint hop indirizzi numericamente piuttosto che simbolicamente e numericamente (salva una ricerca da indirizzo a nome del server dei nomi per ogni gateway trovato sul percorso).
-PImposta il numero di porta UDP di base utilizzato nelle sonde (il valore predefinito è 33434). Traceroute spera che nulla sia in ascolto sulle porte UDP da  base  a  base + nhops – 1  sull’host di destinazione (quindi verrà restituito un messaggio ICMP PORT_UNREACHABLE per terminare la traccia del percorso). Se qualcosa è in ascolto su una porta nell’intervallo predefinito, questa opzione può essere utilizzata per selezionare un intervallo di porte inutilizzato.
-RIgnora le normali tabelle di routing e invia direttamente a un host su una rete collegata. Se l’host non è su una rete direttamente collegata, viene restituito un errore. Questa opzione può essere utilizzata per eseguire il ping di un host locale attraverso un’interfaccia che non ha un percorso attraverso di essa (ad esempio, dopo che l’interfaccia è stata eliminata da  routed (8C)).
-SUtilizzare il seguente indirizzo IP (che di solito viene fornito come numero IP, non come nome host) come indirizzo di origine nei pacchetti sonda in uscita. Su host multi-homed (quelli con più di un indirizzo IP), questa opzione può essere utilizzata per forzare l’indirizzo di origine ad essere qualcosa di diverso dall’indirizzo IP dell’interfaccia su cui viene inviato il pacchetto probe. Se l’indirizzo IP non è uno degli indirizzi di interfaccia di questa macchina, viene restituito un errore e non viene inviato nulla. (Vedi il   flag -i per un altro modo per farlo.)
-TImposta il  tipo di servizio  nei pacchetti probe sul valore seguente (predefinito zero). Il valore deve essere un numero intero decimale nell’intervallo da 0 a 255. Questa opzione può essere utilizzata per vedere se diversi tipi di servizio determinano percorsi diversi. (Se non stai eseguendo 4.4bsd, questo potrebbe essere accademico, poiché i normali servizi di rete come telnet e ftp non ti consentono di controllare il TOS.) Non tutti i valori di TOS sono legali o significativi: vedi le specifiche IP per le definizioni. I valori utili sono probabilmente ` -t  16 ‘ (basso ritardo) e ` -t  8 ‘ (alta velocità di trasmissione).
-vUscita dettagliata. Sono elencati i pacchetti ICMP ricevuti diversi da TIME_EXCEEDED e UNREACHABLE.
-wImpostare il tempo (in secondi) di attesa di una risposta ad una sonda (default 5 sec.).
-XAttiva/disattiva i checksum IP  . Normalmente, questo impedisce a traceroute di calcolare i checksum IP. In alcuni casi, il  sistema operativo  può sovrascrivere parti del pacchetto in uscita ma non ricalcolare il checksum; quindi, in alcuni casi l’impostazione predefinita è non calcolare i checksum e l’uso di  -x  fa sì che vengano calcolati. Si noti che i checksum sono generalmente richiesti per l’ultimo hop quando si utilizzano sonde ECHO ICMP ( -I ), quindi vengono sempre calcolati quando si utilizza ICMP.
-zImposta il tempo (in millisecondi) per la pausa tra le sonde (default 0). Alcuni sistemi come Solaris e router di Cisco, inviano messaggi icmp con limite di velocità. Un buon valore da utilizzare con questo è 500 (ad esempio, 1/2 secondo).
Come usare comando Traceroute in Ubuntu

Conclusione

Abbiamo visto come usare comando Traceroute e i suoi comandi base. L’unico vero modo per imparare la sua logica é utilizzarlo.

Se hai difficolta nell’ usare comando Traceroute scrivimi nei commenti.

Autore Bartolomeo

Consulente tecnico con la passione per il web e la tecnologia e tutto quello che le ronza intorno.
Nel tempo libero scrivo articoli per il mio blog su argomenti vari, in particolare su configurazione Windows, Linux e WordPress.

Condividi questo articolo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Ho letto la policy privacy e accetto il trattamento dei miei dati personali in conformità al D.Lgs. 196/2003