Usare Tracert e Ping per individuare problemi di connettività del vostro server

Il comando ping è trai più utilizzati per la diagnostica di rete, permette la verifica dell’effettiva esistenza di un particolare indirizzo IP e controlla che questo sia in grado di accettare delle richieste di comunicazione.

Quando ciò non accade, si verifica una perdita di pacchetti (testimoniata da una scritta di questo genere Pacchetti: Trasmessi=4, Ricevuti=0, Persi=4) nella finestra del prompt dei comandi.

In una tale situazione, l’host locale o l’host remoto, oppure entrambi, stanno funzionando correttamente, ma si sono create delle condizioni per cui alcuni pacchetti vengono persi lungo il tragitto.

Il protocollo TCP/IP è realizzato in modo che possa ripetere la trasmissione quando si verifica una perdita di pacchetti, ma questa evenienza limita drasticamente le performance. Una connessione lenta, ma senza la perdita di pacchetti, spesso è più rapida di una connessione ad alta velocità in cui si verifica la perdita di pacchetti.

Purtroppo, la perdita di pacchetti può essere difficile da individuare. Se alcune delle risposte ai comandi ping falliscono è sicuro che sia in atto una perdita di pacchetti, ma i pacchetti ICMP usati dal pinging sono così piccoli che spesso vengono restituiti con successo anche se nella rete esiste una condizione che può causare la perdita di pacchetti.

Se sospettate che ci possa essere la perdita di anlcuni pacchetti, anche se il ping non restituisce alcun errore, potete provare ad aumentare la dimensione dei pacchetti ICMP. I pacchetti più grandi sono più inclini a evidenziare difetti se esistono problemi nella rete. Si può dire al ping di utilizzare pacchetti di maggiori dimensioni attraverso lo switch -L.

Utilizzare lo switch -L è semplice. Tutto ciò che dovete fare è inserire il comando ping seguito dall’indirizzo che volete controllare, dallo switch -L e dal numero di byte che desiderate inviare.

Per esempio, supponiamo che la rete presenti scarse prestazioni durante la connessione a un host. Sospettate che si sia verificata la perdita di pacchetti, ma il ping ha sempre dato esito positivo. Pertanto, decidete di dire al ping di utilizzare un pacchetto di dimensioni di 1.024 byte. Per farlo, dovete utilizzare il seguente comando:

Ping 192.168.1.1 -L 1024

Time-to-live

Il prossimo concetto di cui parleremo in relazione al comando ping è quello di time-to-live (TTL).

Internet è costituita da un enorme numero di router che sono collegati gli uni agli altri e ogni router è connesso ad almeno due altri router. L’idea alla base di questa architettura è che se un link fallisce dovrebbe essere disponibile almeno un altro percorso che porti comunque i pacchetti a destinazione.

Il problema con questo tipo di architettura è che, in determinate circostanze, l’interruzione sui link può portare i pacchetti a viaggiare in circolo all’infinito, senza mai effettivamente raggiungere la destinazione.

In questa situazione entra in gioco il valore di TTL. Pensate al TTL come a un meccanismo di “auto-distruzione” del pacchetto. Anche se può variare in funzione del sistema operativo usato, il valore di TTL è inizialmente fissato a un numero piuttosto elevato. Ogni volta che il pacchetto viaggia attraverso un router, gli viene detto di eseguire un salto. Quando si verifica un salto, il valore di TTL viene decrementato di uno. Se TTL raggiunge lo zero, il pacchetto viene distrutto. Ciò evita a un pacchetto che “si è perso” di viaggiare in Internet per l’eternità.

Traceroute
Un altro motivo per cui TTL è molto utile è che un tool per l’individuazione dei problemi chiamato traceroute (tracert) si basa su tale valore. L’uso del comando ping è indicato per il troubleshooting di problemi in reti di piccole dimensioni dove l’host remoto è molto vicino all’host di partenza, ma quando si tratta di Internet o di una WAN (Wide Area Network), l’host remoto può essere a migliaia di chilometri di distanza.

In questo caso, il pacchetto ICMP generato dal comando ping può dover viaggiare attraverso decine di router per raggiungere l’host remoto. È possibile che occasionalmente vi troviate in situazioni in cui l’host locale o l’host remoto, oppure entrambi, stiano lavorando correttamente, ma uno dei router da qualche parte lungo il percorso sta avendo problemi. Per fortuna, potete utilizzare il comando tracert per diagnosticare questo tipo di problemi.

Il comando tracert è basato sul comando ping. L’idea alla base è che tracert invii un pacchetto ICMP all’host remoto, ma con il valore di TTL impostato a uno. Questo fa sì che il primo router incontrato rinvii un TTL scaduto nel messaggio di transito. Tale messaggio contiene le informazioni atte a identificare il router che lo ha prodotto. L’identificazione del router viene documentata e quindi il pacchetto ICMP viene inviato di nuovo, ma con un valore di TTL pari a due.

Questa volta, il pacchetto ICMP raggiunge il secondo router prima che scada il valore di TTL. Questo processo viene ripetuto, ogni volta aumentando di uno il valore di TTL, fino a quando l’host viene raggiunto.

Tale procedimento vi permette di avere un report di tutti i router tra l’host locale e quello remoto. È possibile utilizzare queste informazioni per individuare i problemi lungo il percorso che possono influenzare il flusso del traffico.

L’uso del comando tracert è molto simile a quello del comando ping. Per farlo, è sufficiente digitare il comando tracert seguito dall’indirizzo IP o dal domain name completo dell’host remoto.

Ci sono un paio di cose da tenere a mente quando si usa il comando tracert. In primo luogo, alcuni host utilizzano un firewall per bloccare i pacchetti ICMP. In questo caso, vi potrebbe capitare che una serie di asterischi vi indichi che il traceroute non è stato in grado di ottenere informazioni da un particolare host.

Un’altra regola da ricordare è che, come accade con gli host, a ogni router viene assegnato un indirizzo IP. Indipendentemente dal fatto che siano usati per gli host o per i router, gli indirizzi IP sono strutturati in un modo che consentano di riferire la loro ubicazione geografica. Infatti, a volte il tracert fornisce questa informazione geografica o anche una descrizione del router.

Se però volete maggiori informazioni ci sono tool di terze parti in grado di monitorare graficamente il comando tracert basandosi proprio su tale informazione geografica.


By |02/05/2012 - 11:01|0 Comments