Ricerca nel sito web

Come utilizzare Traceroute e MTR per diagnosticare problemi di rete


introduzione

Una parte importante dell'amministrazione dei server è il monitoraggio della connettività di rete.

Ci sono alcuni strumenti semplici da usare, ma utili da conoscere. In questa guida, parleremo di come utilizzare uno strumento chiamato traceroute per diagnosticare dove potrebbe verificarsi un problema di rete.

Vedremo anche un'utilità chiamata mtr che combina gran parte delle funzionalità di ping e traceroute in un'unica interfaccia.

Come usare Traceroute

traceroute è un semplice strumento per mostrare il percorso verso un server remoto. Questo può essere qualsiasi cosa, da un sito Web che stai tentando di visitare, a una stampante sulla tua rete locale.

Il programma traceroute è installato per impostazione predefinita su quasi tutte le distribuzioni Linux, quindi non dovresti aver bisogno di installarlo.

Per chiamarlo, dobbiamo semplicemente fornire un sito Web o un indirizzo IP che vorremmo esplorare:

  1. traceroute google.com

Riceverai un output simile al seguente:

Output
traceroute to google.com (173.194.38.137), 30 hops max, 60 byte packets 1 192.241.160.253 (192.241.160.253) 0.564 ms 0.539 ms 0.525 ms 2 192.241.164.241 (192.241.164.241) 0.487 ms 0.435 ms 0.461 ms 3 xe-3-0-6.ar2.nyc3.us.nlayer.net (69.31.95.133) 1.801 ms 1.802 ms 1.762 ms 4 144.223.28.73 (144.223.28.73) 0.583 ms 0.562 ms 0.550 ms 5 144.232.1.21 (144.232.1.21) 1.044 ms 1.048 ms 1.036 ms 6 74.125.49.212 (74.125.49.212) 0.494 ms 0.688 ms 0.643 ms 7 209.85.248.180 (209.85.248.180) 0.650 ms 209.85.248.178 (209.85.248.178) 0.621 ms 0.625 ms 8 72.14.236.208 (72.14.236.208) 0.618 ms 72.14.236.206 (72.14.236.206) 0.898 ms 72.14.236.208 (72.14.236.208) 0.872 ms 9 72.14.239.93 (72.14.239.93) 7.478 ms 7.989 ms 7.466 ms 10 72.14.232.73 (72.14.232.73) 20.002 ms 19.969 ms 19.975 ms 11 209.85.248.228 (209.85.248.228) 30.490 ms 72.14.238.106 (72.14.238.106) 34.463 ms 209.85.248.228 (209.85.248.228) 30.707 ms 12 216.239.46.54 (216.239.46.54) 42.502 ms 42.507 ms 42.487 ms 13 216.239.46.159 (216.239.46.159) 76.578 ms 74.585 ms 74.617 ms 14 209.85.250.126 (209.85.250.126) 80.625 ms 80.584 ms 78.514 ms 15 72.14.238.131 (72.14.238.131) 80.287 ms 80.560 ms 78.842 ms 16 209.85.250.228 (209.85.250.228) 171.997 ms 173.668 ms 170.068 ms 17 66.249.94.93 (66.249.94.93) 238.133 ms 235.851 ms 235.479 ms 18 72.14.233.79 (72.14.233.79) 233.639 ms 239.147 ms 233.707 ms 19 sin04s01-in-f9.1e100.net (173.194.38.137) 236.241 ms 235.608 ms 236.843 ms

La prima riga ci dice le condizioni in cui opera traceroute:

Output
traceroute to google.com (173.194.38.137), 30 hops max, 60 byte packets

Fornisce l'host specificato, l'indirizzo IP restituito dal DNS per quel dominio, il numero massimo di hop da controllare e la dimensione del pacchetto che verrà utilizzato.

Il numero massimo di salti può essere regolato con il flag -m. Se l'host a cui stai tentando di indirizzare è a più di 30 hop di distanza, potrebbe essere necessario specificare un valore maggiore qui. Il valore massimo che puoi impostare è 255.

  1. traceroute -m 255 obiwan.scrye.net

È possibile regolare la dimensione del pacchetto inviato a ciascun hop fornendo il numero intero dopo il nome host:

  1. traceroute google.com 70

Vedrai un output come questo:

Output
traceroute to google.com (173.194.38.128), 30 hops max, 70 byte packets 1 192.241.160.254 (192.241.160.254) 0.364 ms 0.330 ms 0.319 ms 2 192.241.164.237 (192.241.164.237) 0.284 ms 0.343 ms 0.321 ms

Dopo la prima riga, ogni riga successiva rappresenta un \hop, o host intermedio che il tuo traffico deve attraversare per raggiungere il computer rappresentato dall'host specificato.

Ogni riga ha il seguente formato:

Output
hop_number host_name (IP_address) packet_round_trip_times

Ecco un esempio di hop che potresti vedere:

Output
3 nyk-b6-link.telia.net (62.115.35.101) 0.311 ms 0.302 ms 0.293 ms

Ecco cosa significa ogni campo:

  • hop_number: un conteggio sequenziale del numero di gradi di separazione dell'host dal tuo computer. Il traffico proveniente da host con numeri più alti deve passare attraverso più computer per essere instradato.
  • nome_host: questo campo contiene il risultato di una ricerca DNS inversa sull'indirizzo IP dell'host, se disponibile. Se non viene restituita alcuna informazione dalla query DNS inversa, viene fornito l'indirizzo IP stesso.
  • IP_address: questo campo contiene l'indirizzo IP per questo hop di rete.
  • packet_round_trip_times: il resto della riga fornisce i tempi di andata e ritorno per un pacchetto all'host e viceversa. Per impostazione predefinita, vengono inviati tre pacchetti a ciascun host e ogni tentativo viene aggiunto alla fine della riga.

Se desideri modificare il numero di pacchetti testati su ciascun host, puoi specificare un numero con l'opzione -q, in questo modo:

  1. traceroute -q1 google.com

Se desideri rinunciare alla ricerca DNS inversa per velocizzare la traccia, puoi passare il flag -n:

  1. traceroute -n google.com

Otterrai un output come questo:

Output
traceroute to google.com (74.125.235.7), 30 hops max, 60 byte packets 1 192.241.160.253 0.626 ms 0.598 ms 0.588 ms 2 192.241.164.241 2.821 ms 2.743 ms 2.819 ms 3 69.31.95.133 1.470 ms 1.473 ms 1.525 ms

Se il tuo traceroute si dissolve in alcuni asterischi (*), c'è un problema con il percorso verso l'host.

Output
... 15 209.85.248.220 (209.85.248.220) 121.809 ms 72.14.239.12 (72.14.239.12) 76.941 ms 209.85.248.220 (209.85.248.220) 78.946 ms 16 72.14.239.247 (72.14.239.247) 101.001 ms 92.478 ms 92.448 ms 17 * * 209.85.250.124 (209.85.250.124) 175.083 ms 18 * * * 19 * * *

Che cosa significa un problema di percorso?

Se il tuo tentativo di traceroute si ferma su un particolare hop o nodo e non riesci a trovare un percorso verso l'host, hai un problema.

Mentre l'hop in cui il percorso non riesce a tornare può essere la posizione del problema di rete, non è sempre così facile da diagnosticare.

A causa del fatto che ogni ping rappresenta un pacchetto di andata e ritorno e della situazione in cui i pacchetti utilizzano spesso percorsi diversi in entrambe le direzioni, potrebbe indicare un problema in un percorso completamente diverso, possibilmente più vicino.

Può anche darsi che il problema riguardi l'hop subito dopo l'ultimo hop che vedete. È difficile diagnosticare la posizione esatta del problema a meno che non sia possibile ottenere un traceroute di ritorno da quello specifico hop. Questo di solito non è possibile al di fuori della propria rete.

Come usare MTR

Un'alternativa dinamica al programma traceroute è mtr. Combinando le funzionalità di ping e traceroute, mtr ti consente di interrogare costantemente un server remoto e vedere come la latenza e le prestazioni cambiano nel tempo.

A differenza di traceroute, mtr non è installato di default sulla maggior parte dei sistemi. Puoi ottenerlo digitando i seguenti comandi.

Ubuntu/Debian:

  1. sudo apt-get install mtr

Cent OS/Fedora:

  1. yum install mtr

Arco:

  1. pacman -S mtr

Una volta installato, puoi chiamarlo digitando:

  1. mtr google.com

Riceverai un output come questo:

Output
My traceroute [v0.80] traceroute (0.0.0.0) Tue Oct 22 20:39:42 2013 Resolver: Received error response 2. (server failure)er of fields q uit Packets Pings Host Loss% Snt Last Avg Best Wrst StDev 1. 192.241.160.253 0.0% 371 0.4 0.6 0.1 14.3 1.0 2. 192.241.164.241 0.0% 371 7.4 2.5 0.1 37.5 4.8 3. xe-3-0-6.ar2.nyc3.us. 2.7% 371 3.6 2.6 1.1 5.5 1.1 4. sl-gw50-nyc-.sprintli 0.0% 371 0.7 5.0 0.1 82.3 13.1

Sebbene l'output possa sembrare simile, il grande vantaggio rispetto a traceroute è che l'output viene costantemente aggiornato. Ciò ti consente di accumulare tendenze e medie e ti consente anche di vedere come le prestazioni della rete variano nel tempo.

Se hai eseguito un traceroute, è possibile che i pacchetti inviati a ciascun hop abbiano effettuato il viaggio senza incidenti, anche in una situazione in cui il percorso soffre di perdita di pacchetti intermittente. L'utilità mtr consente di monitorare questa situazione raccogliendo dati in un intervallo di tempo più ampio.

È anche possibile eseguire mtr con l'opzione --report, che restituisce i risultati dell'invio di 10 pacchetti a ciascun hop.

  1. mtr --report google.com

Il rapporto ha questo aspetto:

Output
HOST: traceroute Loss% Snt Last Avg Best Wrst StDev 1.|-- 192.241.160.254 0.0% 10 1.5 0.9 0.4 1.5 0.4 2.|-- 192.241.164.237 0.0% 10 0.6 0.9 0.4 2.7 0.7 3.|-- nyk-b6-link.telia.net 0.0% 10 0.5 0.5 0.2 0.7 0.2 4.|-- nyk-bb2-link.telia.net 0.0% 10 67.5 18.5 0.8 87.3 31.8

Questo può essere utile quando non vuoi necessariamente misurare in tempo reale, ma vuoi una gamma di dati più ampia di quella fornita da traceroute.

Conclusione

Con traceroute e mtr, puoi avere un'idea di quali server sulla tua strada verso un dominio o indirizzo specifico stanno causando problemi. Questo può essere utile durante la risoluzione dei problemi di una rete interna e anche quando si tenta di fornire informazioni per supportare membri o ISP quando si verificano problemi di rete.

Articoli correlati: