Ricerca nel sito web

MTR: uno strumento diagnostico di rete


Matt's Traceroute (MTR) è un potente strumento diagnostico di rete multipiattaforma che combina funzionalità ping e traceroute. MTR è un'evoluzione del traceroute che visualizza informazioni approfondite determinando il percorso del pacchetto verso l'host di destinazione. Il rapporto sul percorso contiene la percentuale di risposta e il tempo di risposta di tutti i passaggi tra la macchina di origine e quella di destinazione.

L'articolo descrive in dettaglio il funzionamento di MTR, fornisce alcuni esempi di riga di comando e spiega i dati che genera. Alla fine, dato l'output, eseguiamo l'analisi del report.

Come funziona l'MTR?

Strumenti di diagnostica di rete, come ping, traceroute e MTR, sondano la connessione tra due dispositivi con pacchetti ICMP per la risoluzione dei problemi di connettività di rete. Mentre l'utilità ping utilizza ICMP echo_request ed echo_replies, al contrario, traceroute e MTR utilizzano pacchetti ICMP con TTL time-to-live.

Per l'analisi hop-to-hop, innanzitutto, MTR stabilisce gli indirizzi degli switch, gateway e router tra i dispositivi locali e remoti. Quindi utilizza i pacchetti ICMP con TTL per eseguire il ping di ogni hop in modo che il TTL controlli i nodi che il pacchetto raggiungerà prima di morire. Quindi invia una serie di echo_request ICMP con il TTL impostato su uno, due, tre e così via finché MTR non assembla l'intero percorso.

Il processo sopra riportato restituisce statistiche che contengono informazioni aggiuntive, come stato dell'hop, connessione di rete, reattività del nodo, latenza di rete e jitter. La cosa più interessante è che è simile al comando top poiché continua ad aggiornarsi con la connettività di rete in tempo reale.

Installazione MTR

Per impostazione predefinita, lo strumento si trova nella directory /user/sbin poiché è preinstallato con la maggior parte delle distribuzioni. Se non è disponibile, installa MTR con il gestore pacchetti predefinito della distribuzione.

Per Ubuntu:

ubuntu@ubuntu:~$ sudo apt-get -y install mtr

Per RHEL:

ubuntu@ubuntu:~$ sudo yum -y install mtr

Per Arco:

ubuntu@ubuntu:~$ sudo pacman -y install mtr

Generazione e lettura di report MTR in tempo reale

Come mostrato negli screenshot qui sopra, oltre a elencare gli hop di rete, MTR tiene traccia anche della latenza. In altre parole, stima anche il tempo di andata e ritorno dalla macchina locale a ciascun dispositivo sul percorso.

Per avere un'idea migliore, utilizzare il flag –report per generare un report che costituisce le statistiche relative alla qualità della rete. Gli utenti possono anche utilizzarlo con l'opzione -c, poiché verrà eseguito solo per il numero di cicli da essa specificato e uscirà dopo aver stampato le statistiche.

ubuntu@ubuntu:~$ sudo mtr -r -c 5 google.com

Lo screenshot precedente restituisce diversi campi/colonne per accedere al traffico di rete. Queste colonne riportano le seguenti statistiche:

  • %Loss: percentuale di perdita di pacchetti su ciascuna macchina

  • Snt: numero di pacchetti inviati

  • Ultimo: il tempo di andata e ritorno per l'ultimo pacchetto traceroute

  • Avg: il tempo medio di andata e ritorno per tutte le sonde

  • Migliore: tempo di andata e ritorno più breve di un pacchetto verso un particolare host

  • Primo: tempo di andata e ritorno più lungo di un pacchetto verso un host

  • StDev: deviazione standard delle latenze

Le colonne Snt to Wrst misurano le latenze in millisecondi, ma solo la colonna Avg è quella più importante. L'unico svantaggio della generazione di report sulla qualità della rete è che utilizza molto traffico di rete che riduce le prestazioni della rete.

Opzioni utili

La sezione seguente contiene alcuni degli esempi di comandi flag MTR più utili. Spiegheremo i dettagli dell'output nella sezione Lettura del report MTR in seguito.

IPv6: MTR utilizza IPv6 come opzione predefinita, che richiede l'inclusione dell'indirizzo IP o del nome di dominio dell'host di destinazione come argomento. Verrà visualizzato un output in tempo reale, premi Ctrl+C o q per uscire:

ubuntu@ubuntu:~$ sudo mtr google.com

O

ubuntu@ubuntu:~$ sudo mtr 8.8.8.8

Solo IPv4: lo switch IPv4 (-4) visualizza solo gli indirizzi IPv4 e include nomi di dominio completi:

ubuntu@ubuntu:~$ sudo mtr -4 google.com

b: per visualizzare sia i nomi di dominio che gli indirizzi IPv4, utilizzare il flag -b come segue:

ubuntu@ubuntu:~$ sudo mtr -b google.com

c: Come discusso in precedenza, il flag limita il numero di ping inviati a ciascuna macchina. Dopo aver completato il numero di ping, interrompe l'aggiornamento live ed esce da MTR subito dopo:

ubuntu@ubuntu:~$ sudo mtr -c7 google.com

T/u: Sostituisci i pacchetti echo ICMP con TCP SYN -T/–tcp o datagrammi UDP -u/–udp:

ubuntu@ubuntu:~$ sudo mtr --tcp google.com

O

ubuntu@ubuntu:~$ sudo mtr --udp google.com

o: disponi il campo di output secondo le tue esigenze. Ad esempio, il comando indicato visualizza l'output nel modo seguente:

ubuntu@ubuntu:~$ mtr -o "LSDR NBAW JMXI" 8.8.8.8

m: specifica gli hop tra l'host locale e il computer remoto. L'esempio seguente imposta il salto su 5, mentre il valore predefinito è 30:

ubuntu@ubuntu:~$ mtr -m 5 8.8.8.8

s: sonda la rete specificando la dimensione del pacchetto ICMP, comprese le intestazioni IP/ICMP in byte:

ubuntu@ubuntu:~$ mtr -s PACKETSIZE -c 5 google.com

Analisi dei rapporti

L'analisi del report di output MTR costituisce o è focalizzata principalmente sulla perdita di pacchetti e sulla latenza di rete. Discutiamo ciascuno di questi in dettaglio:

Perdita di pacchetti

Il rapporto MTR genera una percentuale del campo di perdita di pacchetti ad ogni hop per indicare un problema. Tuttavia, i fornitori di servizi hanno una pratica comune di pacchetti ICMP MTR con limite di velocità che danno l’illusione di una perdita di pacchetti, il che non è vero. Per identificare se la perdita di pacchetti è effettivamente dovuta alla limitazione della velocità o meno, annotare la perdita di pacchetti dell'hop successivo. Come nello screenshot qui sopra, per l'esempio del flag –o , osserviamo una perdita di pacchetti del 16,7% agli hop 5 e 6. Se non si verifica alcuna perdita di pacchetti sul dispositivo successivo , allora risulta a causa della limitazione della velocità.

In un altro scenario, se i report rappresentano quantità diverse di perdita agli hop iniziali successivi e gli ultimi dispositivi mostrano la stessa percentuale di perdita di pacchetti, allora la perdita sulle macchine iniziali è dovuta a entrambi i fattori: limitazione della velocità e perdita effettiva. Pertanto, quando MTR segnala diverse perdite di pacchetti nei vari hop, fidarsi della perdita negli hop successivi.

Latenza di rete

La latenza di una rete aumenta con il numero di hop tra due endpoint. Tuttavia, la latenza dipende anche dalla qualità della connessione di rete tra le macchine locali e remote. Ad esempio, le connessioni remote mostrano una latenza maggiore rispetto ai modem via cavo.

È anche importante notare che la latenza della rete non implica un percorso inefficiente. Indipendentemente dall’elevata latenza di rete sui vari nodi, i pacchetti possono raggiungere la destinazione e tornare alla fonte senza alcuna perdita.

Nell'esempio sopra, osserviamo un salto di latenza dall'ottavo salto in poi, ma nessun pacchetto è andato perso tranne che nell'host di destinazione.

Conclusione

Comprendere le basi di MTR è necessario per cogliere e capire i problemi di connettività di rete più comuni, come la configurazione errata dell'ISP/router residenziale e della rete host di destinazione, i timeout e la limitazione della velocità ICMP. L'articolo costituisce le basi affinché un utente principiante possa comprendere l'utilizzo e il funzionamento di MTR. Mostra inoltre come generare report MTR ed eseguire analisi per identificare problemi di perdita di pacchetti correlati alla limitazione della velocità e analizzare la latenza di rete.

Articoli correlati: