Introduzione
Traceroute è uno strumento cruciale nella diagnostica di rete. Insieme ad altri comandi Linux come ping, ip e netstat (o l'alternativa più recente ss), Traceroute identifica il percorso dei pacchetti dall'origine alla destinazione. Lo strumento è universalmente disponibile per Linux, Windows e macOS.
Questo articolo spiega il traceroute
o tracert
comando, come funziona e come eseguire e leggere un traceroute su Linux, Windows e macOS.
Prerequisiti
- Accesso alla riga di comando/terminale.
- Connessione alla rete.
- Un sito Web o un indirizzo IP da tracciare (facoltativo, fornito negli esempi).
Cos'è Traceroute?
traceroute
è un comando utilizzato nella risoluzione dei problemi di rete per mappare il percorso che i pacchetti viaggiano attraverso la rete. Lo strumento aiuta nella scoperta di possibili percorsi di informazioni dalla fonte alla destinazione. Inoltre, il comando aiuta anche a calcolare i tempi di trasferimento tra i punti.
Quando applicato alla risoluzione dei problemi di rete, traceroute
aiuta a individuare dove il traffico rallenta tra la sorgente e la destinazione.
Come funziona Traceroute?
Il protocollo invia pacchetti ICMP (Internet Control Message Protocol) a ogni router in trasferimento tra la sorgente e la destinazione. Quando esegui un traceroute, l'output mostra:
- L'indirizzo IP del router che ha ricevuto correttamente il pacchetto.
- La latenza del viaggio, o il tempo impiegato per ottenere una risposta per ciascuno dei tre probe.
Traceroute agisce come una serie di comandi ping. Mentre il ping richiede una risposta dalla destinazione, traceroute raccoglie anche le informazioni intermedie.
Per raccogliere le informazioni disponibili tra la sorgente e la destinazione, un traceroute riduce il TTL (time to live) del pacchetto al minimo (1). Quando un router riceve le informazioni, riduce il valore TTL a 0, indicando che deve inviare le informazioni alla fonte. La sorgente raccoglie le informazioni intermedie sul router, reimposta il valore TTL su 1 e lo incrementa.
In questo modo, il pacchetto raggiunge il router successivo nella rete. Il processo iterativo si ripete finché il pacchetto finale non raggiunge l'IP di destinazione. Quindi traceroute riconosce l'IP di destinazione ed emette tutte le informazioni intermedie raccolte.
Il comando invia tre sonde per impostazione predefinita per ogni valore TTL e stampa il tempo di andata e ritorno per ogni pacchetto.
Come eseguire un traceroute?
Traceroute è disponibile sulla maggior parte delle macchine moderne. Il programma è uno strumento da riga di comando con diverse opzioni e sintassi a seconda del sistema operativo.
Per impostazione predefinita, un traceroute è di 30 hop per una dimensione del pacchetto di 60 byte per IPv4 e 80 byte per IPv6.
Esegui un traceroute su Linux
Su Ubuntu, il traceroute
il comando non è disponibile per impostazione predefinita. Installa lo strumento utilizzando il gestore di pacchetti apt.
1. Apri il terminale (CTLR +ALT +T ) e installa traceroute con:
sudo apt install traceroute
2. Nel terminale, esegui un traceroute con:
traceroute [options] <hostname or IP> [packet length]
Ad esempio, tracciare una delle posizioni IP del test di velocità di phoenixNAP:
traceroute 131.153.40.84
In alternativa, usa un nome host:
traceroute phoenixnap.com
Opzioni avanzate per Traceroute su Linux
Per impostazione predefinita, un traceroute invia pacchetti UDP. Aggiungi l'opzione -I
per i pacchetti sonda ICMP:
traceroute -I <hostname or IP>
Includi il -n
opzione per nascondere i nomi dei dispositivi per un output più pulito:
traceroute -In <hostname or IP>
Per impostazione predefinita, il numero di pacchetti inviati è tre. Modifica il numero con il -q
opzione seguita dal numero di pacchetti:
traceroute -Inq <number> <hostname or IP>
Ridurre il numero di pacchetti a uno aumenta la velocità di un traceroute.
Per tutte le opzioni aggiuntive di traceroute
, controlla la pagina di manuale nel terminale con il comando man:
man traceroute
Il manuale contiene informazioni su tutte le opzioni di comando disponibili e su come applicarle al comando.
Esegui un traceroute in Windows
Traceroute è disponibile per Windows utilizzando il nome più breve tracert
. Per eseguire un traceroute su Windows, segui questi passaggi:
1. Premi il tasto Windows e digita CMD .
2. Premi Invio e apri il prompt dei comandi.
3. Infine, esegui traceroute con:
tracert [options] <hostname or IP>
L'output stampa Traccia completa alla console al termine del traceroute.
Esegui Traceroute su macOS
Per eseguire un traceroute su macOS utilizzando la GUI, segui i passaggi seguenti:
1. Fai clic su In evidenza (lente d'ingrandimento).
2. Quindi, cerca Utility di rete nel campo di ricerca.
3. Fare doppio clic su Utility di rete dal risultato della ricerca.
4. Individua e fai clic su Traceroute scheda.
5. Infine, inserisci l'indirizzo IP o l'host della destinazione e fai clic su Traccia . La casella di testo sotto la Traccia emette i risultati di Traceroute.
Come leggere un traceroute?
Quando si esegue un traceroute, l'output mostra il percorso seguito dai pacchetti durante il viaggio verso un punto di destinazione. Il risultato stampato si divide in tre colonne generali:
1. Ogni riga indica un router hop. La prima colonna mostra il numero di hop.
2. Le tre colonne seguenti mostrano il tempo di andata e ritorno (RTT) per un totale di tre pacchetti:
- Per le reti vicine, questi numeri sono generalmente inferiori a 100 ms.
- Per le reti distanti in altri paesi, i valori RTT tipici arrivano fino a 300 ms.
Tre simboli di asterisco (* * *) invece di numeri seguiti da "Richiesta scaduta " messaggio può indicare:
- Il router è inattivo.
- Il router è configurato per non restituire risultati di traceroute.
- Sul router è abilitato un firewall.
- Un timeout per uno dei router precedenti.
3. L'ultima colonna mostra l'indirizzo IP di destinazione e, ove possibile, il nome di dominio risolto.
Le righe di output di traceroute si raggruppano in un totale di cinque unità:
1. La rete locale.
2. Il provider di servizi Internet (ISP) per la rete locale.
3. Internet.
4. La rete dell'host di destinazione.
5. L'indirizzo di destinazione.
Aggiungi > <filename>.txt
alla fine del traceroute
o tracert
comando per salvare i risultati in un file di testo per un uso e un'analisi successivi. Ad esempio, su Linux e macOS:
traceroute 8.8.8.8 > results.txt
Gli utenti Windows possono seguire gli stessi passaggi:
tracert 8.8.8.8 > result.txt
In entrambi i casi, l'output non stampa nulla e ritorna al normale input della riga di comando. Il file viene salvato nella posizione in cui viene eseguito il comando.