Traceroute Command for Linux | Cerca per titolo, autore, parola chiave | ||||||||
Traceroute Command for Linux By Juergen Haas. Il comando traceroute, in Linux, restituisce il percorso utilizzato da un pacchetto di dati per andare dal computer mittente al computer di destinazione. Il percorso è fatto di HOP (router o server) intermedi, attraversati da ogni singolo pacchetto di dati. Verificare il percorso completo aiuta ad identificare gli HOP che rallentano il viaggio. Il solo parametro che dovete indicare al comando traceroute è il nome del computer o l'indirizzo IP del computer di destinazione. Traceroute utilizza il campo TTL (time to live), presente nei pacchetti di dati IP, per sollecitare una risposta ICMP TIME_EXCEEDED da ciascuno dei gateway attraversati. Il campo Time To Live ( TTL ), di 8 bit, esprime il numero massimo di router che il datagramma IP potrà attraversare, prima di essere considerato scaduto. Ogni router che il datagramma attraverserà diminuirà questo valore di 1. Quando il campo TTL sarà a zero, il datagramma verrà distrutto: in questo caso, il router intermedio invia, al computer mittente, un messaggio di errore, vale a dire un messaggio ICMP TIME_EXCEEDED. Il campo IP time-to-live (TTL), chiamato hop limit nella versione 6 di IP, viene utilizzato, da traceroute, per conoscere i router intermedi attraversati, dai dati, per arrivare al computer di destinazione. Il computer di origine (mittente) invia il primo pacchetto traceroute con il valore del TTL impostato a 1. Il primo router intermedio riceve il pacchetto di dati, diminuisce il valore TTL di uno e scarta il pacchetto di dati, poichè ha il valore TTL a zero, inviando al router mittente un messaggio ICMP TIME_EXCEEDED. Il pacchetto successivo inviato dal computer mittente avrà un valore TTL impostato a due, in modo da permettere al primo router intermedio di far proseguire il suo viaggio verso il secondo router intermedio, il quale, a sua volta, riceverà un TTL impostato a uno, lo decrementerà di uno e scarterà il pacchetto di dati, inviando, anch'esso, un messaggio di errore ICMP TIME_EXCEEDED al computer mittente. Procedendo in questo modo, traceroute utilizza i messaggi ICMP TIME_EXCEEDED per ricostruire una lista di router attraversati dai pacchetti di dati. Alla fine, l'ultimo pacchetto di dati inviato da traceroute raggiungerà il computer di destinazione, ricevendo un messaggio ICMP Destination Unreachable, nel caso si trattasse di un pacchetto di dati UDP, oppure un messaggio ICMP Echo Reply, nel caso si trattasse di un pacchetto di dati ICMP Echo. ICMP ( Internet Control Message Protocol ) è il protocollo, introdotto con la RFC 792, che ha il compito di trasportare i messaggi di sistema ( di errore, di feedback e di test ). I messaggi ICMP utilizzano gli stessi header IP di base ed occupano, di un pacchetto IP, l'area destinata ai dati. Il primo byte ( ottetto ) dell'area dei dati di un datagramma è il campo ICMP " type ", il cui valore determina il formato dei rimanenti dati. ICMP definisce 256 Type differenti. Naturalmente, non tutti i Type sono stati definiti. Un Type offre una descrizione generica del tipo di messaggio trasportato, mentre il campo ICMP successivo, Code, ne offre una descrizione più dettagliata. Anche il campo Code occupa 8 bit. I type ( ed il loro code) che interessano noi, di cui abbiamo appena parlato, sono: 00 Echo reply 03 Destination Unreachable 00 Net Unreachable 01 Host Unreachable 02 Protocol Unreachable 03 Port Unreachable 04 Fragmentation Needed & Don't Fragment Flag Set 05 Source Route Failed 06 Destination Network Unknown 07 Destination Host Unknown 08 Source Route Isolated 09 Network Administratively Prohibited 10 Host Administratively Prohibited 11 Network Unreachable for TOS 12 Host Unreachable for TOS 13 Communication Administratively Prohibited 08 Echo 11 Time Exceeded 00 Time to Live exceeded in transit 01 Fragment Reassembly Time Exceeded Nei sistemi operativi Unix-like, traceroute invia, di default, una sequenza di pacchetti User Datagram Protocol (UDP), con porta di destinazione compresa tra 33434 a 33534 (invalid port number: porte non corrispondenti, solitamente, ad alcun servizio: questo è il motivo del messaggio di errore: Destination Unreachable). Per evitare che il computer di destinazione venga costretto ad elaborare un'eccessiva quantità di pacchetti UDP, infatti, la porta di destinazione viene impostata ad un valore difficilmente utilizzato dal sistema di destinazione. Tuttavia, nessuno sa cosa accadrebbe se una qualche applicazione fosse in ascolto proprio su quella porta. L'invio di pacchetti di dati UDP, che è il metodo tradizionale dei sistemi Unix-like, non richiede i privilegi di root. In Windows, il programma tracert (corrispondente a traceroute) invia pacchetti di dati di tipo ICMP Echo Request. Quando traceroute viene eseguito, invia, di default, tre pacchetti di dati (chiamati probe) per ciascun livello TTL impostato e poi stampa una riga per TTL, contenente l'indirizzo del gateway e il tempo di risposta, espresso in millisecondi, per ciascun pacchetto. traceroute allspice.lcs.mit.edu. 1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32.216.1) 19 ms 19 ms 19 ms ......... Se la risposta ad un pacchetto arriva da un gateway (router) differente, viene stampato l'indirizzo del gateway che ha inviato la risposta. Se non arriva alcuna risposta entro cinque secondi, viene stampato un asterisco per quel pacchetto (probe). 14 * * * È bene ricordare che i protocolli Internet non richiedono che tutti i pacchetti di dati seguano lo stesso percorso, per arrivare al computer di destinazione. Quindi, i router presenti nell'output di traceroute potrebbero esser router attraversati da altri pacchetti di dati.
|
|||||||||
Traceroute Command for Linux | Disclaimer: questo è un link a contenuti ospitati su server esterni. |