Il comando traceroute (tracert)

  • Un comando analogo a PING, ma con interessanti caratteristiche è il comando traceroute (abbreviato in tracert sotto Windows).
  • Il comando traceroute individua il percorso che un pacchetto segue per andare dalla nostra macchina ad una qualunque destinazione.
  • Per fare questo traceroute utilizza una interessante caratteristica del protocollo IP
  • Per evitare che, a causa di eventuali errori di configurazione, un pacchetto possa girare per la rete all'infinito, ogni pacchetto possiede un campo chiamato Time to Live (ttl)
  • Ogni volta che un pacchetto attraversa un router, il suo ttl viene decrementato. Se ttl diventa 0, il pacchetto viene scartato ed una pacchetto ICMP time exceeded viene ritornato al mittente.
  • Traceroute invia una serie di pacchetti UDP ad una porta a caso, con ttl crescente, a partire da 1
  • Il pacchetto con ttl 1 verrà rifiutato dal primo router. Traceroute conoscerà allora l'IP del primo router (il pacchetto ICMP è contenuto in un pacchetto IP contenete mittente e destinatario)
  • Il pacchetto con ttl 2 riporterà l'indirizzo del secondo router e così via fino alla macchina destinazione.
  • Dato che la porta UDP usata è casuale e difficilmente ci sarà un'applicazione in ascolto, quando raggiungeremo la destinazione, esa risponderà con un pacchetto ICMP port unreachable che terminerà la ricerca.
  • Il comando traceroute cerca di associare un nome ad ogni IP che scopre. Questo porta via molto tempo ed è spesso inutile. Per accelerare la ricerca del percorso, si può usare l'opzione -n per visualizzare solo gli indirizzi IP