YOU1234DEST3ms8ms22ms45ms48mshop by hop

Traceroute

10 minimo lettoDiagnostica

Traceroute è lo strumento diagnostico che svela la geografia nascosta di Internet. Digita un comando e ottieni un elenco di tutti i router che i tuoi pacchetti attraversano nel percorso verso una destinazione. Funziona grazie a una caratteristica oscura del protocollo IP, il campo Time To Live, e da trent'anni rileva problemi di rete.

Il corpo completo dell'articolo è fornito in inglese di seguito.

Traceroute rivela la sequenza di salti tra te e una destinazione. Ogni riga nell'output rappresenta un router; il tempo di andata e ritorno indica la latenza su quel router. Quando qualcosa su Internet è lento o non funziona correttamente, traceroute è solitamente il primo strumento pronto all'uso.

Come funziona: il trucco TTL

Ogni pacchetto IP ha un campo Time To Live (TTL), originariamente pensato per impedire ai pacchetti di circolare per sempre nei cicli di routing. Ogni router diminuisce il TTL di uno. Quando il TTL raggiunge lo zero, il router scarta il pacchetto e restituisce un messaggio ICMP "Time Exceeded" alla sorgente.

Traceroute lo utilizza come arma:

  1. Invia un pacchetto alla destinazione con TTL=1. Il primo router lo decrementa a 0, lo rilascia, risponde con "Time Exceeded" - rivelandosi come hop 1.
  2. Send TTL=2. Il primo router diminuisce a 1 e avanza; il secondo router diminuisce a 0, scende, risponde - rivelando l'hop 2.
  3. Continua ad incrementare fino a raggiungere la destinazione, che risponde con qualcos'altro (una porta irraggiungibile o una risposta effettiva dell'applicazione).

La risposta della destinazione è il modo in cui traceroute sa fermarsi. Tre sonde per hop è l'impostazione predefinita, motivo per cui vengono visualizzate tre misurazioni RTT per linea.

LI tre tipi di sonde

Diverse implementazioni di traceroute inviano diversi tipi di sonde:

  • UDP traceroute (Unix classico): invia pacchetti UDP a numeri di porta elevati. La destinazione risponde con "porta irraggiungibile". Impostazione predefinita su Linux/macOS.
  • ICMP traceroute (Windows tracert): invia pacchetti ICMP Echo Request. La destinazione risponde con Echo Reply. Si comporta meglio con alcuni firewall.
  • TCP traceroute: invia TCP SYN a una porta specifica (comunemente 80 o 443). Utile quando una destinazione rilascia UDP e ICMP ma accetta TCP su una porta conosciuta.

Lo strumento giusto dipende da cosa rilasciano i firewall del percorso. tcptraceroute spesso riesce dove traceroute fallisce.

Lettura dell'output

A riga tipica:

 5 ae1.cr1.fra4.de.example.net (172.16.50.1) 18,234 ms 18,012 ms 17,998 ms

LIl numero di hop, il nome e l'IP del router, quindi tre misurazioni RTT. Gli asterischi * * * indicano che il router non ha risposto: ha lasciato cadere la sonda, ha risposto ICMP con velocità limitata o è stato configurato per non identificarsi. Gli asterischi sono normali e non significano necessariamente un problema; molti router backbone non rispondono deliberatamente a traceroute.

Cosa ti dicono gli hop

Li nomi DNS dei router sono carichi di significato. ae1.cr1.fra4.de ti dice: aggregazione Ethernet bundle 1, core router 1, sito di Francoforte 4, Germania. Gli ingegneri di rete possono leggere questi nomi come targhe e dirti quale operatore possiede il percorso, in quale città si trova il pacchetto e persino quale fornitore di apparecchiature (Cisco vs Juniper vs Arista) utilizza l'operatore.

Una deviazione geografica inaspettata - i pacchetti verso una destinazione Francoforte che passano attraverso Singapore - di solito significa una decisione politica BGP piuttosto che un taglio fisico della fibra. Il routing non ottimale si verifica costantemente e non è necessariamente un problema.

Le problema del percorso asimmetrico

Traceroute mostra solo il percorso outbound. Il percorso di ritorno può essere – e spesso lo è – completamente diverso, perché ciascun AS sceglie il proprio percorso di uscita. Un RTT elevato su un hop potrebbe significare un collegamento lento in quel punto, oppure potrebbe significare che il collegamento lento si trova sul percorso di ritorno da quell'hop. Senza traceroute dalla destinazione, non puoi dirlo.

Questo è il motivo per cui "traceroute sembra a posto ma la mia latenza è terribile" è una situazione comune. La sonda esplora il percorso in una direzione alla volta.

Alternative moderne: strumenti MTR e stile mtr

MTR (My Traceroute) è un traceroute continuo: esegue il ping di ogni hop in un loop e mostra le statistiche di esecuzione: RTT medio, percentuale di perdita, jitter. Molto più utile per diagnosticare problemi intermittenti rispetto a un traceroute one-shot. WinMTR su Windows, mtr su Unix, PathPing come alternativa integrata a Windows.

Per diagnosticare un percorso che non possiedi, RIPE Atlas e i server looking-glass gestiti dalle principali reti ti consentono di eseguire traceroute da un punto di osservazione remoto: preziosissimo per comprendere percorsi asimmetrici.

Limitazioni e peculiaritàI router che supportano

MPLS possono nascondere gli hop non diminuendo il TTL in un cloud MPLS. Le reti con carico bilanciato possono mostrare percorsi diversi su sonde consecutive, rendendo l'output caotico. La limitazione della velocità ICMP su router occupati può produrre false letture di "slow hop" che non riflettono le prestazioni effettive del piano dati. L'RTT dei router intermedi misura il tempo trascorso fino al piano di controllo del router , che spesso è più lento del piano dati attraverso lo stesso router. Usa traceroute come suggerimento, non come metrica.

Domande frequenti

Perché il mio traceroute indica "* * *" per alcuni hop?
Il router esiste ma non ha risposto alla sonda. Motivi comuni: limitazione della velocità ICMP, politica del firewall che elimina le risposte TTL superate o decisione dell'operatore di rendere invisibile il router. I pacchetti sono ancora in transito; semplicemente non puoi vedere quei luppoli.
Traceroute funziona tramite una VPN?
Sì, ma il tracciamento parte dall'uscita della VPN, non dalla tua posizione reale. I primi hop che vedresti normalmente (il tuo router di casa, il tuo ISP) vengono sostituiti dal singolo hop nel tunnel VPN. La traccia diventa una visualizzazione della rete del provider VPN e del suo percorso successivo.
Perché traceroute mostra percorsi diversi ogni volta che lo eseguo?
Molte reti di grandi dimensioni bilanciano il carico del traffico su più percorsi a pari costo e la chiave di bilanciamento del carico include campi di pacchetto. Diverse sonde seguono percorsi diversi e tu vedi l'unione. Strumenti come Paris-traceroute mantengono costante la chiave di bilanciamento del carico per produrre un output stabile.
Cosa significa un improvviso picco di latenza in un salto?
Potrebbe essere un collegamento congestionato, un piano di controllo lento su quel router specifico (molto probabilmente) o un percorso di ritorno asimmetrico. Osserva i salti successivi: se il loro RTT è simile, il picco è una vera congestione; se il loro RTT diminuisce, il picco era dovuto al fatto che il piano di controllo del router era lento a rispondere.
Esiste uno strumento che combina traceroute e ping continuo?
MTR (mtr su Unix, WinMTR su Windows). Esegue il ping di ogni hop in un ciclo e mostra le statistiche in esecuzione: RTT medio, percentuale di perdita di pacchetti, deviazione standard. Molto più utile del traceroute vanilla per problemi intermittenti.
Spiegazione di Traceroute: come vedere ogni salto effettuato da un pacchetto