05. Ping e traceroute
Ping
Il programma ping, disponibile su tutti i principali sistemi operativi, utilizza il protocollo ICMP per ottenere informazioni circa la raggiungibilità di un nodo di cui si conosca l'indirizzo IP.
Il programma invia il messaggio ICMP Echo Request ottenendo come risposta il messaggio Echo Replay.
Durante l'esecuzione il programma calcola il Round Trip Time (acronimo RTT), che rappresenta il tempo (espresso in millisecondi) impiegato da un pacchetto per raggiungere il destinatario e tornare indietro.
E' possibile utilizzare il comando ping per risalire al valore MTU della rete utilizzando alcune opzioni del comando. In ambiente Windows le opzioni sono:
-l dimensione: impone al comando di utilizzare un pacchetto il cui payload abbia la dimensione specificata (es. ping 8.8.8.8 -l 2000 fa viaggiare verso il destinatario un pacchetto il cui payload è di 2000 byte)
-f: impone che il pacchetto non sia frammentabile.
Il comando da utilizzare è quindi del tipo:
ping 8.8.8.8 -l 2000 -f
Si tenga conto che l'intestazione di un pacchetto IP è di 20 byte e quella del pacchetto ICMP (incapsulato in IP) è di 8 byte.
Quindi con il precedente comando ping si valuterà se il valore di MTU è 2000+28=2028.
Nell'esempio mostrato in figura, poiché il pacchetto non raggiunge il destinatario, si potrà affermare che MTU è inferiore a 2028.
Procedendo per tentativi si può determinare il primo valore utile.
In questo esempio, il valore MTU rilevato è 1464+28=1492.
Il valore di partenza del campo TTL dipende dal sistema operativo (tipicamente i sistemi basati su linux partono dal valore 64 mentre Windows da 128) . Con il comando ping è possibile forzare tale valore con l'opzione -i. Ad esempio:
ping 8.8.8.8 -i 5
Traceroute
Questo programma consente di identificare i nodi attraversati da un pacchetto per raggiungere un destinatario.
Il programma sfrutta il campo TTL dell'header del datagram IP impostando valori crescenti in invii successivi.
Al primo invio del pacchetto IP verso un host è impostato il campo TTL=1. Questo impedisce al pacchetto di andare oltre il primo gateway. Quest'ultimo risponderà con un messaggio ICMP di errore (TIME Exceeded). Il programma visualizzerà l'indirizzo IP del gateway che ha inviato la risposta
Al secondo invio verrà impostato TTL=2 e si ripeterà la sequenza descritta in precedenza. In questo caso sarà il secondo gateway a inviare il messaggio di errore
Il procedimento verrà iterato fin quando il pacchetto non raggiungerà il destinatario che invierà la risposta regolare attesa.
In ambiente Windows il comando assume la seguente forma:
tracert 8.8.8.8
dove, ovviamente, l'indirizzo può essere qualsiasi.
Sito: 7ecnologie
Sezione: 13. Reti
Capitolo: 03. La suite TCP/IP
Paragrafo: 02. Livello Internet
Approfondimento: 05. Ping e traceroute
Indice dei capitoli: 00. Risorse - 01. Le telecomunicazioni - 02. Il modello OSI - 03. La suite TCP/IP - 04. Il cablaggio strutturato - 05. LAB - 07. Tutorial - 98. Esercizi
Indice dei paragrafi: 01. Network Access - 02. Livello Internet - 03. Livello Transport - 04. Livello Application
Indice degli approfondimenti: 01. Protocolli - 02. Classificazione degli indirizzi IP - 03. Subnetting - 04. Subnetting: esempi - 05. Ping e traceroute - 06. Routing - 07. NAT - 08. Autonomous System - 09. Carrier-Grade NAT - 10. NAT Traversal