Come usare il comando traceroute in Linux

Contenuti

Puoi usare Linux traceroute comando per rilevare la parte lenta del percorso di un pacchetto di rete e risolvere i problemi di connessione di rete lenta. Ti mostreremo come!

Come funziona traceroute

Quando apprezzi come traceroute Funziona, rende molto più facile capire i risultati. Più complicato è il percorso pacchetto di rete devi prendere per raggiungere la tua destinazione, più difficile è identificare dove potrebbe verificarsi un rallentamento.

Una piccola organizzazione Rete locale (LAN) potrebbe essere relativamente semplice. Probabilmente avrai almeno un server e un router o due. La complessità aumenta di rete geografica (VAN) comunicare tra luoghi diversi o su Internet. Il tuo pacchetto di rete successivamente trova (ed è inoltrato e instradato da) un sacco di hardware, come router e passerelle.

Le intestazioni dei metadati dei pacchetti di dati descrivono la loro lunghezza, da dove vengono, dove stai andando, il protocollo che usano, eccetera. La specifica del protocollo imposta l'intestazione. Se riesci a identificare il protocollo, può determinare l'inizio e la fine di ogni campo nell'intestazione e leggere i metadati.

traceroute utilizzare il TCP / IP suite di protocolli e invii Protocollo del datagramma utente Pacchetti. L'intestazione contiene il Tempo di vivere (TTL), contenente un valore intero di otto bit. Nonostante quello che suggerisce il nome, rappresenta un conteggio, non una durata.

Un pacchetto viaggia dalla sua origine alla sua destinazione attraverso un router. Ogni volta che il pacchetto raggiunge un router, decrementa il contatore TTL. Se il valore TTL raggiunge mai uno, il router che riceve il pacchetto diminuisce il valore e nota che ora è zero. Dopo, il pacchetto viene scartato e non inoltrato all'hop successivo nel suo viaggio a causa del timeout.

Il router invia a Protocollo di controllo dei messaggi Internet (ICMP) Tempo superato messaggio di ritorno all'origine del pacchetto per informarti che il pacchetto è scaduto. Il messaggio Time Exceeded contiene l'intestazione originale e le prime 64 bit di dati del pacchetto originale. Questo è riportato a pagina sei di Richiesta di commenti 792.

Quindi sì traceroute inviare un pacco, ma in seguito imposta il valore TTL su uno, il pacchetto raggiungerà solo il primo router prima di essere scartato. Riceverai un messaggio ICMP di superamento del tempo dal router e potrai registrare il tempo impiegato per il viaggio di andata e ritorno.

Quindi ripeti l'esercizio con TTL impostato su 2, che fallirà dopo due salti. traceroute aumenta il TTL a tre e riprova. Questa procedura viene ripetuta fino a quando non viene raggiunta la destinazione o non viene testato il numero massimo di hop (30, predefinito).

Alcuni router non funzionano bene

Alcuni router hanno errori. Tentano di inoltrare pacchetti con un TTL pari a zero invece di eliminarli e generare un messaggio di timeout ICMP.

Secondo Cisco, alcuni fornitori di servizi Internet (ISP) limita il numero di messaggi ICMP trasmessi dai tuoi router.

Alcuni dispositivi sono configurati per non inviare mai pacchetti ICMP. Spesso, Questo viene fatto per garantire che il dispositivo non possa essere inavvertitamente costretto a partecipare a un Distributed Denial of Service, come un puffi attacco.

traceroute ha un timeout predefinito per le risposte di cinque secondi. Se non ricevi una risposta entro cinque secondi, il tentativo è abbandonato. Ciò significa che le risposte dei router molto lenti vengono ignorate.

Installazione di traceroute

traceroute era già installato in Fedora 31 ma deve essere installato in Manjaro 18.1 e Ubuntu 18.04. Installare traceroute in Manjaro usa il seguente comando:

sudo pacman -Sy traceroute

Installare traceroute in Ubuntu, usa il seguente comando:

sudo apt-get install traceroute

usando traceroute

Come copriamo sopra, traceroute's Lo scopo è ottenere una risposta dal router su ogni hop dal tuo computer alla destinazione. Alcuni possono essere silenziosi e non rivelare nulla, mentre altri probabilmente rovesceranno i fagioli senza scrupoli.

Come esempio, eseguiremo un traceroute al Castello di Blarney portale web in Irlanda, casa del famoso Pietra di Blarney. La leggenda narra che se baci la Blarney Stone, serás bendecido con eldon de la palabra”. Speriamo che i router che incontriamo lungo la strada siano abbastanza loquaci.

Scriviamo il seguente comando:

traceroute www.blarneycastle.ie

La prima riga ci fornisce le informazioni successive:

  • La destinazione e il suo indirizzo IP.
  • Il numero di salti traceroute ci proverò prima di arrendermi.
  • La dimensione dei pacchetti UDP che inviamo.

Tutte le altre righe contengono informazioni su uno dei salti. Nonostante questo, prima di entrare nei dettagli, possiamo vedere cosa c'è 11 salta tra il nostro computer e il portale web di Blarney Castle. Il salto 11 ci dice anche che abbiamo raggiunto la nostra destinazione.

Il formato di ogni linea di salto è il seguente:

  • Il nome del dispositivo o, se il dispositivo non viene identificato, l'indirizzo IP.
  • L'indirizzo IP.
  • Il tempo impiegato per il viaggio di andata e ritorno per ciascuna delle tre prove. Se c'è un asterisco qui, significa che non c'è stata risposta per quel test. Se il dispositivo non risponde affatto, vedrai tre asterischi e nessun nome del dispositivo o indirizzo IP.

Rivediamo cosa abbiamo dopo:

  • salto 1: Il primo porto di scalo (nessun gioco di parole) è il router DrayTek Vigor nella rete locale. Ecco come i nostri pacchetti UDP lasciano la rete locale e si collegano a Internet.
  • salto 2: Questo dispositivo non ha risposto. Forse è stato configurato per non inviare mai pacchetti ICMP. O forse ha risposto, ma era troppo lento, affinché traceroute disconnesso.
  • salto 3: Un dispositivo ha risposto, ma non abbiamo avuto il suo nome, solo l'indirizzo IP. Nota che c'è un asterisco su questa riga, il che significa che non abbiamo ricevuto risposta a tutte e tre le richieste. Questo potrebbe indicare la perdita di pacchetti.
  • Salto 4 e 5: Altri salti anonimi.
  • salto 6: C'è molto testo qui a causa di un diverso dispositivo remoto che gestisce ciascuna delle nostre tre richieste UDP. I nomi sono stati stampati (abbastanza lungo) e gli indirizzi IP di ciascun dispositivo. Esto puede suceder cuando se encuentra con una redmuy pobladaen la que hay una gran cantidad de hardware para manejar grandes volúmenes de tráfico. Questo salto è all'interno di uno dei più grandi ISP del Regno Unito. Perché, sarebbe un piccolo miracolo se lo stesso hardware remoto gestisse le nostre tre richieste di connessione.
  • salto 7: Questo è il salto che hanno fatto i nostri pacchetti UDP quando hanno lasciato la rete dell'ISP.
  • salto 8: Ancora, otteniamo un indirizzo IP ma non il nome del dispositivo. Tutti e tre i test sono stati restituiti con successo.
  • Salto 9 e 10: Altri due salti anonimi.
  • salto 11: Siamo arrivati ​​al portale web di Blarney Castle. Il castello è a Cork, Irlanda, ma, secondo Geolocalizzazione degli indirizzi IP, il portale web è a Londra.

Quindi, era un miscuglio. Alcuni dispositivi giocavano a palla, alcuni hanno risposto ma non ci hanno detto i loro nomi e altri sono rimasti assolutamente anonimi.

Nonostante questo, siamo arrivati ​​a destinazione, sappiamo che lo sono 11 salta via e il tempo di andata e ritorno per il viaggio è stato 13,773 e 14,715 millisecondi.

Nascondi i nomi dei dispositivi

Come abbiamo visto, a volte l'inclusione dei nomi dei dispositivi porta a un display disordinato. Per facilitare la visualizzazione dei dati, puoi usare il -n (nessuna mappatura) opzione.

Per farlo con il nostro esempio, scriviamo quanto segue:

traceroute -n blarneycastle.ie

Ciò semplifica la scelta di numeri grandi per i tempi di andata e ritorno che potrebbero indicare un collo di bottiglia..

Salto 3 inizia a sembrare un po' sospetto. L'ultima volta, risposto solo due volte, e questa volta, risposto solo una volta. In questa fase, è fuori dal nostro controllo, in ogni caso.

Nonostante questo, se stavi effettuando ricerche sulla tua rete aziendale, varrebbe la pena scavare un po' più a fondo in quel nodo.

Impostazione del valore di timeout del traceroute

Forse se estendiamo il tempo di attesa predefinito (cinque secondi), avremo più risposte. Per fare questo, useremo il -w (tempo di attesa) per cambiarlo in sette secondi. (Nota che questo è un numero in virgola mobile).

Scriviamo il seguente comando:

traceroute -w 7.0 blarneycastle.ie

Non ha fatto una grande differenza., quindi le risposte probabilmente si stanno esaurendo. È probabile che i salti anonimi vengano deliberatamente riservati.

Impostazione del numero di test

Predefinito, traceroute invia tre pacchetti UDP a ciascun hop. Possiamo usare il -q (numero di richieste) per regolare questo su o giù.

Per velocizzare il traceroute prova, scriviamo quanto segue per ridurre a uno il numero di pacchetti di polling UDP che inviamo:

traceroute -q 1 blarneycastle.ie

Questo invia una singola sonda a ciascun hop.

Impostazione del valore TTL iniziale

Possiamo impostare il valore TTL iniziale su qualcosa di diverso da uno e saltare alcuni salti. Generalmente, I valori TTL sono impostati su uno per la prima serie di test, due per la prossima serie di test, e così via. Se lo impostiamo a cinque, la prima prova proverà a saltare cinque e saltare da uno a quattro.

Come sappiamo, il portale web di Blarney Castle è all'indirizzo 11 salta da questo computer, scriviamo quanto segue per andare direttamente al Jump 11:

traceroute -f 11 blarneycastle.ie

Questo ci dà un bel resoconto condensato sullo stato del collegamento con la destinazione..

Sii premuroso

traceroute è un ottimo strumento per investigare il routing di rete, controllare le velocità di connessione o identificare i colli di bottiglia. Windows ha anche tracert comando che funziona in modo simile.

Nonostante questo, non vuoi bombardare dispositivi sconosciuti con torrent di pacchetti UDP e fai attenzione a includerli traceroute in script o lavori non presidiati.

Carico traceroute può essere inserito in una rete può influire negativamente sulle sue prestazioni. A meno che tu non sia in una situazione per risolverlo ora, potresti volerlo usare al di fuori del normale orario lavorativo.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.