logo

Comando traceroute di Linux

Introduzione al traceroute

Il comando traceroute di Linux è un'utilità di risoluzione dei problemi di rete che ci aiuta a determinare il numero di hop e pacchetti in viaggio necessari per raggiungere una destinazione. Viene utilizzato per visualizzare come i dati vengono trasmessi da una macchina locale a una macchina remota. Il caricamento di una pagina web è uno degli esempi più comuni di traceroute. Il caricamento di una pagina Web trasferisce i dati attraverso una rete e router. Il traceroute può visualizzare i percorsi, gli indirizzi IP e i nomi host dei router su una rete. Può essere utile per diagnosticare problemi di rete.

Nell'informatica, tracert e traceroute sono i comandi per la diagnostica della rete di computer per visualizzare possibili percorsi e misurare i ritardi di transito dei pacchetti attraverso la rete IP. La cronologia del percorso viene registrata come tempo di andata e ritorno del pacchetto da tutti gli host successivi nel percorso; la somma del tempo medio in ogni hop è la misura del tempo totale impiegato per creare la connessione.

Il comando traceroute continua a meno che ogni pacchetto inviato non venga perso più di due volte; la connessione viene persa e il percorso non può essere valutato. D'altra parte, il comando ping misura solo gli ultimi tempi di andata e ritorno attraverso il punto di destinazione. A volte, lo strumento ha un nome simile, tracert6 e traceroute6, per IPv6.

Sintassi:

 traceroute [OPTION...] HOST 

Opzioni:

Le seguenti opzioni della riga di comando sono supportate dal comando traceroute:

-f, --first-hop=NUM: Viene utilizzato per impostare la distanza del salto iniziale.

-g, --gateways=PORTE: Viene utilizzato per visualizzare un elenco di gateway per il routing di origine sciolto.

-Io, --icmp: È specificato di utilizzare ICMP ECHO come sonda.

-m, --max-hop=NUM: Viene utilizzato per impostare il numero massimo di hop, il valore predefinito è 64.

-M, --type=METODO: Specifica il METODO (icmp o udp) per le operazioni traceroute, il metodo predefinito è udp.

-p, --porta=PORTA: È definito per utilizzare la porta PORT di destinazione, la PORT predefinita è 33434.

-q, --prova=NUM: Viene utilizzato per inoltrare NUM pacchetti sonda per hop, il valore predefinito è 3.

--resolve-nomihost: Viene utilizzato per risolvere i nomi host.

-t, --tos=NUM: Serve per impostare il tipo di servizio (TOS) su NUM.

-w, --wait=NUM: Viene utilizzato per attendere in secondi una risposta, il valore predefinito è 3.

-?, --aiuto: Viene utilizzato per visualizzare il manuale della guida che contiene una breve descrizione delle opzioni e dell'utilizzo supportati della riga di comando.

--utilizzo: Visualizza un breve messaggio di utilizzo.

-V, --versione: Viene utilizzato per visualizzare le informazioni sulla versione del traceroute.

convertendo int in stringa

Diamo un'occhiata all'indice rapido dell'argomento:

  • Installa il comando traceroute
  • Come funziona?
  • Traccia il percorso utilizzando IPv6
  • Traccia il percorso utilizzando Ipv4
  • Disabilita la mappatura dell'indirizzo IP e del nome host
  • Imposta il numero di query per hop
  • Imposta il tempo di attesa della risposta
  • Specificare l'interfaccia da utilizzare
  • Imposta il valore TTL iniziale
  • Imposta il numero massimo di hop
  • Ottenere aiuto

Implementazioni di traceroute

Il comando traceroute è disponibile su diversi sistemi operativi moderni. Su sistemi simili a Unix come Linux, macOS e FreeBSD, è disponibile come strumento per la riga di comando. Inoltre, traceroute è accessibile graficamente all'interno della suite Network Utilities in macOS; queste utilità sono state deprecate dalla pubblicazione di macOS Big Sur.

ReactOS e Microsoft Windows offrono un programma chiamato tracert che implementa una funzione simile di tracciamento del percorso. Inoltre, i sistemi operativi basati su Windows NT offrono PathPing, che può combinare la funzionalità del comando ping con tracert. L'edizione ReactOS è stata integrata da Get Murphy ed è concessa in licenza GPL.

Per impostazione predefinita, traceroute invia un ordine di pacchetti UDP (User Datagram Protocol) su sistemi operativi simili a Unix, con numeri di destinazione delle porte che vanno da 33434 a 33534. Le implementazioni di traceroute fornite con macOS, DragonFly BSD, OpenBSD, NetBSD, FreeBSD e Linux hanno l'opzione di utilizzare pacchetti ICMP Echo Request come TCP e UDP utilizzando pacchetti ICMP o TCP SYN. Per impostazione predefinita, tracert trasferisce i pacchetti ICMP Echo Request su Windows anziché i trasferimenti traceroute dei pacchetti UDP.

Utilizzo di traceroute

La maggior parte delle implementazioni hanno almeno alcune opzioni per definire il numero di query da trasferire per hop, il tempo di attesa per una risposta, il limite di hop e la porta utilizzata. Se non invochiamo traceroute con le opzioni specificate, mostra l'elenco delle opzioni disponibili, mentre il comando man traceroute rappresenta maggiori dettagli, come i flag di errore.

Origini del traceroute

La pagina di manuale del traceroute afferma che l'effettivo programma traceroute è stato specificato da Van Jacobson nel 1987 su raccomandazione di Steve Deering, con correzioni e raccomandazioni particolarmente convincenti di C. Philip Wood, Ken Adelman e Tim Seaver. Mike Muuss, l'autore del programma ping, afferma che il traceroute è stato specificato con il supporto del kernel ICMP che aveva codificato in precedenza per attivare i socket ICMP grezzi mentre inizialmente specificava il programma ping.

Limitazioni del traceroute

Le limitazioni di traceroute sono famigerate e dovrebbero essere prese in considerazione quando si utilizza lo strumento. Ad esempio, un traceroute riconosce i percorsi a livello di interfaccia ma non a livello di percorso. Altre limitazioni si verificano quando i router non rispondono all'esame o quando i router includono una restrizione per le risposte ICMP.

Traceroute può rappresentare un percorso che non esiste nell'esistenza del bilanciamento del carico del traffico. Per ridurre al minimo questo problema, è disponibile una modifica del traceroute nota come Paris-traceroute, che gestisce l'identificatore del flusso di esame in modo da ignorare il bilanciamento del carico.

Installa il comando traceroute

Il traceroute non è un'utilità predefinita di Linux sistema. Per utilizzare il traceroute, dobbiamo installarlo manualmente. Per installarlo, eseguire uno dei seguenti comandi:

 sudo apt install inetutils-traceroute sudo apt install traceroute 

I comandi precedenti installeranno l'utilità traceroute sul nostro sistema. Al termine dell'installazione, l'output sarà simile al seguente:

Tracciatore Linux

Come funziona?

Per tracciare il percorso di un host di rete connesso, passa il nome del server o l'indirizzo IP a cui desideri connetterti. Ad esempio, per tracciare il percorso del server 'javatpoint.com', eseguire il comando seguente:

 traceroute javatpoint.com 

Il comando precedente visualizzerà hop, pacchetti e molte altre informazioni sul percorso specificato. Considera l'output seguente:

Tracciatore Linux

Dall'output sopra, possiamo vedere diverse cose. capiamo ogni parte dell'output:

  • La prima riga mostra il nome host e l'indirizzo IP da raggiungere, i salti che verranno tentati dal comando traceroute e la dimensione dei pacchetti da inviare.
  • Dalla seconda riga, ciascuna riga mostra un salto verso la destinazione. E il nome host seguito dall'indirizzo IP dell'host, tempo di andata e ritorno. Il tempo di andata e ritorno è la somma del tempo necessario per l'invio di un segnale e il tempo necessario per rispondere all'host.
  • Per impostazione predefinita, invia tre pacchetti per ciascun host, quindi vengono elencati tre tempi di risposta.
  • Il simbolo '*' rappresenta la perdita di pacchetti. La perdita di pacchetti si verifica a causa di un'interruzione della rete, di un traffico elevato dovuto alla congestione della rete o forse il firewall sta interrompendo il traffico. In caso di perdita di pacchetti, il traceroute visualizzerà l'errore come 'la destinazione non è stata raggiunta'.

Traccia il percorso utilizzando IPv6

L'opzione '6' viene utilizzata per tracciare il percorso verso una rete host utilizzando il protocollo Ipv6. Considera il comando seguente:

 traceroute6 google.com 

Il comando precedente traccerà il percorso verso 'google.com' utilizzando il protocollo Ipv6. Considera l'output seguente:

Tracciatore Linux

Traccia il percorso utilizzando IPv4

L'opzione '4' viene utilizzata per tracciare il percorso verso una rete host utilizzando il protocollo Ipv6. Considera il comando seguente:

 traceroute 4 google.com 

Il comando precedente traccerà il percorso verso 'google.com' utilizzando il protocollo Ipv6. Considera l'output seguente:

Tracciatore Linux

Disabilita la mappatura dell'indirizzo IP e del nome host

L'opzione 'n' viene utilizzata per disabilitare la mappatura dell'indirizzo IP e del nome host. Considera il comando seguente:

 traceroute n google.com 

Il comando precedente produrrà l'output come segue:

Tracciatore Linux

Imposta il numero di query per hop

L'opzione '-q' viene utilizzata per impostare il numero di query per hop. Considera il comando seguente:

 traceroute -q 2 google.com 

Il comando precedente produrrà l'output come segue:

join e tipi di join
Tracciatore Linux

Imposta il tempo di attesa della risposta

L'opzione '-w' viene utilizzata per impostare il tempo di attesa della risposta in traceroute. Specificherà il tempo di attesa in secondi per rispondere a una sonda. Considera il comando seguente:

 traceroute -w 1 google.com 

Dal comando precedente, il tempo di attesa della risposta è di 1 secondo. Produrrà l'output come segue:

Tracciatore Linux

Specificare l'interfaccia da utilizzare

L'opzione 'i' viene utilizzata per impostare l'interfaccia di rete che traceroute dovrebbe utilizzare. Se non è impostato, imposterà l'interfaccia in base alla tabella di routing. Considera il comando seguente:

 traceroute i wlp3s0b1 google.com 

Il comando precedente produrrà l'output come segue:

Tracciatore Linux

Imposta il valore TTL iniziale

Possiamo impostare il valore TTL (time to live) iniziale diverso dal valore predefinito. Salterà alcuni salti. Di solito è impostato su uno, due, tre e così via per la rispettiva serie di test. Quindi, se lo impostiamo su sette, il primo test tenterà il salto sette e salterà i salti da uno a sei. Considera il comando seguente:

 traceroute -f 7 google.com 

Il comando precedente andrà direttamente al salto sette. Considera l'output seguente:

Tracciatore Linux

Imposta il numero massimo di hop

L'opzione '-m' viene utilizzata per impostare il numero massimo di salti affinché il pacchetto raggiunga la destinazione. Il valore predefinito per il numero massimo di hop è 30. Considera il comando seguente:

 traceroute -m 7 google.com 

Il comando precedente imposterà 7 hop massimi affinché il pacchetto raggiunga la destinazione. Considera l'output seguente:

Tracciatore Linux

Ottenere aiuto

Per visualizzare il manuale della guida che contiene un riepilogo dell'utilizzo e delle opzioni supportate, eseguire il comando seguente:

 traceroute --help 

Il comando precedente visualizzerà la guida. Produrrà l'output come segue:

Tracciatore Linux

Possiamo anche accedere alle pagine man eseguendo il comando man come segue:

 man traceroute 

Il comando precedente visualizzerà la pagina manuale del comando traceroute. Apparirà come segue:

Tracciatore Linux

Scorrere la pagina per saperne di più e premere il tasto 'q' per uscire dalla pagina man.