Linux: comando “traceroute” per diagnosticare problemi di rete e percorsi IP
traceroute è uno strumento diagnostico per tracciare il percorso che i pacchetti di dati seguono dalla macchina sorgente fino alla destinazione. È utile per individuare problemi di connettività, verificare il percorso dei dati e analizzare la latenza su reti complesse.
Sintassi di Base
traceroute [opzioni] destinazione
destinazione: Indirizzo IP o nome di dominio da tracciare.
opzioni: Varie opzioni per personalizzare il comportamento del comando.
Esempio:
traceroute www.google.com
Funzionamento
traceroute invia pacchetti UDP con un TTL (Time To Live) crescente. Ogni router attraversato decrementa il TTL. Quando il TTL raggiunge zero, il router invia un messaggio “ICMP Time Exceeded” all’origine. In questo modo, traceroute registra ogni “salto” (hop) fino alla destinazione.
Opzioni Principali
Opzioni Generali
- -m [max_hop]: Imposta il numero massimo di salti (hop) da eseguire. Predefinito: 30.
- -w [timeout]: Definisce il tempo di attesa per una risposta da ciascun hop. Predefinito: 5 secondi.
- -n: Disabilita la risoluzione dei nomi di dominio, mostrando solo indirizzi IP per velocizzare l’output.
Esempio per ciascuna opzione:
traceroute -m 20 www.google.com
traceroute -w 3 www.google.com
traceroute -n www.google.com
Opzioni Avanzate
- -I: Utilizza pacchetti ICMP Echo Request (come il comando ping) invece di UDP.
- -T: Usa pacchetti TCP SYN, utili per testare la connettività TCP (ad esempio su una specifica porta).
- -p [porta]: Specifica la porta di destinazione per i pacchetti UDP (utile per testare servizi particolari).
- -q [n]: Specifica il numero di pacchetti da inviare a ciascun hop (predefinito: 3).
Esempio per ciascuna opzione:
traceroute -I www.google.com
traceroute -T www.google.com
traceroute -p 80 www.google.com
traceroute -q 1 www.google.com
Opzioni di Output
- -A: Mostra informazioni aggiuntive sugli ASN (Autonomous System Number) per ogni hop.
- -f [TTL]: Imposta il valore iniziale del TTL per partire da un determinato hop.
Esempio per ciascuna opzione:
traceroute -A www.google.com
traceroute -f 5 www.google.com
Output di traceroute
L’output di traceroute è una lista di “hop”, con tre tempi di risposta per ciascuno. Se un hop non risponde, può comparire con * * * per indicare un timeout o un firewall che blocca i pacchetti.
Esempio di output:
traceroute to www.google.com (142.250.74.68), 30 hops max 1 192.168.1.1 (192.168.1.1) 1.065 ms 1.015 ms 1.010 ms 2 10.45.12.1 (10.45.12.1) 5.012 ms 5.011 ms 5.009 ms 3 72.14.236.234 (72.14.236.234) 15.341 ms 15.332 ms 15.329 ms 4 * * * 5 142.250.74.68 (142.250.74.68) 30.432 ms 30.423 ms 30.419 ms
Esempi di Utilizzo
Tracciare un dominio con risoluzione IP
traceroute www.google.com
Tracciare un percorso con pacchetti ICMP
traceroute -I www.google.com
Limitare il numero massimo di salti a 15
traceroute -m 15 www.google.com
Tracciare utilizzando pacchetti TCP su una porta specifica (ad esempio 443 per HTTPS)
traceroute -T -p 443 www.google.com
Tracciare un indirizzo IP senza risoluzione dei nomi di dominio
traceroute -n 8.8.8.8
Visualizzare i numeri ASN (Autonomous System Number) per ogni hop
traceroute -A www.google.com
Diagnosi di Problemi di Rete
Timeout su un Hop
Se un hop mostra * * *, potrebbe essere bloccato da un firewall o il router potrebbe non rispondere ai pacchetti ICMP o UDP. Ciò non sempre indica un problema critico, ma è da verificare se il timeout persiste su più hop.
Latenza Elevata su un Hop
Se un hop ha tempi di risposta significativamente superiori rispetto agli altri, potrebbe indicare congestione della rete o problemi di routing.
Identificare Colli di Bottiglia
Analizzare i tempi di risposta di ogni hop può aiutare a identificare colli di bottiglia nella rete, dove i pacchetti subiscono ritardi anomali.
Considerazioni di Sicurezza
Alcuni firewall e router possono bloccare pacchetti di traceroute per motivi di sicurezza, quindi non tutti gli hop potrebbero rispondere correttamente. In questi casi, è consigliabile combinare l’uso di traceroute con altri strumenti di diagnostica come ping, netstat o analizzatori di traffico di rete.
Sono amante della tecnologia e delle tante sfumature del mondo IT, ho partecipato, sin dai primi anni di università ad importanti progetti in ambito Internet proseguendo, negli anni, allo startup, sviluppo e direzione di diverse aziende; Nei primi anni di carriera ho lavorato come consulente nel mondo dell’IT italiano, partecipando attivamente a progetti nazionali ed internazionali per realtà quali Ericsson, Telecom, Tin.it, Accenture, Tiscali, CNR. Dal 2010 mi occupo di startup mediante una delle mie società techintouch S.r.l che grazie alla collaborazione con la Digital Magics SpA, di cui sono Partner la Campania, mi occupo di supportare ed accelerare aziende del territorio .
Attualmente ricopro le cariche di :
– CTO MareGroup
– CTO Innoida
– Co-CEO in Techintouch s.r.l.
– Board member in StepFund GP SA
Manager ed imprenditore dal 2000 sono stato,
CEO e founder di Eclettica S.r.l. , Società specializzata in sviluppo software e System Integration
Partner per la Campania di Digital Magics S.p.A.
CTO e co-founder di Nexsoft S.p.A, società specializzata nella Consulenza di Servizi in ambito Informatico e sviluppo di soluzioni di System Integration, CTO della ITsys S.r.l. Società specializzata nella gestione di sistemi IT per la quale ho partecipato attivamente alla fase di startup.
Sognatore da sempre, curioso di novità ed alla ricerca di “nuovi mondi da esplorare“.