Metodi di pagamento Abuse

Come funziona il comando ping

26.11.2021, 18:30

Sicuramente vi sarà capitato di trovarvi in una situazione in cui Internet sul vostro computer si interrompe improvvisamente; questo comportamento può essere osservato quando si utilizzano modem ADSL, Wifi a lunga distanza, GSM e altre tecnologie simili inaffidabili. È possibile scoprire rapidamente se il computer dispone di Internet utilizzando l'utilità ping.

Tuttavia, l'ambito di applicazione è molto più ampio: viene utilizzato dagli amministratori di rete per verificare la disponibilità di un nodo remoto nella rete, viene utilizzato in vari script e in molti altri luoghi. In questo articolo esamineremo il comando ping in Linux, parleremo di come utilizzare l'utilità, del suo funzionamento, delle sue opzioni e delle sue caratteristiche.

Come funziona il comando

L'utilità ping è un semplice strumento di risoluzione dei problemi di rete. Permette di verificare se un host remoto è disponibile o meno e basta. A tale scopo, l'utility controlla se l'host può rispondere alle richieste di rete utilizzando il protocollo ICMP. Spero di non dovervi dire che tutti i dati in rete vengono trasmessi sotto forma di piccoli pacchetti. Il programma trasmette un piccolo pacchetto di dati ICMP e si aspetta di ricevere un pacchetto di risposta; in caso affermativo, l'host remoto è considerato raggiungibile. L'ICMP o Internet Control Message Protocol è un'aggiunta al protocollo IP utilizzata per trasmettere messaggi di servizio e di errore.

Il protocollo ICMP può trasmettere solo due tipi di pacchetti: messaggi di segnalazione di errori e messaggi di richiesta. A loro volta, i messaggi di richiesta si dividono in:

Messaggio di richiesta di eco;

messaggio di risposta eco.

Vediamo quindi cosa fa il comando ping. Una volta inviata una richiesta di ping a un host remoto, l'utility imposta un identificatore univoco per ogni pacchetto, nonché il TTL e l'ora di invio del pacchetto. Se l'host è raggiungibile, invia una risposta; in base all'ora di invio, l'utilità può calcolare il tempo di andata e ritorno del pacchetto. Quindi viene inviato il pacchetto successivo. Alla fine, vengono calcolati il numero totale di pacchetti inviati e ricevuti, la percentuale di perdita e altri dati.

Comando ping

Ora ci rimane un po' di pratica. Ma prima di passare alla pratica, vediamo la sintassi del comando e le sue opzioni. La sintassi è abbastanza semplice:

$ ping [options] host_address

Il formato del comando ping è molto semplice. Si può passare un indirizzo IP o un nome di dominio come indirizzo dell'host. Le opzioni configurano il comportamento dell'utility. Consideriamo le principali:

-4 - utilizza solo ipv4 (default);

-6 - utilizza solo ipv6;

-A - modalità adattiva, il tempo tra l'invio di un pacchetto e l'altro è adattato al tempo di trasmissione e ricezione del pacchetto, ma non inferiore a 200 millisecondi;

-b - consente il ping dell' indirizzo broadcast;

-c - numero di pacchetti da inviare;

-D - tempo di uscita come timestamp UNIX;

-f - modalità flood, in questa modalità i pacchetti vengono trasmessi senza ritardo, può essere usata per attacchi DoS a singoli nodi. Il numero di punti emessi dall'utilità indica il numero di pacchetti persi;

-i - l'intervallo in secondi tra l'invio di pacchetti;

-I - utilizzare questa interfaccia di rete per inviare pacchetti;

-l - modalità di sovraccarico, vengono inviati molti pacchetti e il sistema non monitora i pacchetti di risposta;

-n - non riceve domini per gli indirizzi ip;

-r - ignora le tabelle di routing e invia il pacchetto all'interfaccia specificata;

-s - dimensione di un pacchetto;

-t - imposta manualmente il TTL;

-v - output più dettagliato.

Ora che abbiamo trattato i parametri di base del comando ping e la sua sintassi, è giunto il momento di fare pratica; la prossima volta parleremo di come eseguire il ping di un host specifico in Linux.

Come si usa

Per verificare le prestazioni della rete si usa spesso pingare un sito qualsiasi che sia sempre disponibile, come google.com o anche il più semplice e breve ya.ru. È sufficiente passare questo indirizzo all'utilità nei parametri, che troverà l'ip stesso e farà tutte le cose necessarie:

$ ping ya.ru

Ogni pacchetto riceve un identificatore univoco icmp_seq, il numero di nodi verso il nodo di destinazione ttl e il tempo impiegato per consegnare il pacchetto. Per interrompere il ping, premere la scorciatoia da tastiera Ctrl+C. Al termine, l'utilità visualizza le statistiche generali:

pacchetti trasmessi - pacchetti inviati;

ricevuti - pacchetti ricevuti;

packet loss - percentuale di pacchetti persi;

tempo - tempo totale di lavoro;

rtt min/avg/max/mdev - tempominimo/tempo medio/tempo massimo/deviazione quadratica.

Se il comando ping non viene interrotto, i pacchetti possono essere inviati per un tempo molto lungo, creando un ulteriore carico sul server e quindi non è auspicabile. È possibile limitare il numero di pacchetti inviati immediatamente nella chiamata di comando usando l'opzione -c:

$ ping -c 3 ya.ru

Come per il ping di un dominio, è possibile specificare direttamente l'indirizzo IP. Questo permette di verificare se esiste una rete quando i server DNS sono mal configurati. Ad esempio:

 $ ping -c 3 8.8.8.8

Il tipo successivo di invio di messaggi ping è il ping flood. Con l'aiuto di questi pacchetti è possibile eseguire test di carico del canale o addirittura interrompere la connessione a Internet su una delle macchine. Ma queste funzioni possono essere utilizzate solo con i diritti di superutente. Per organizzare un ping flood, specificare l'opzione -f:

$ ping -f losst.ru

Per impostazione predefinita, in modalità normale, ogni pacchetto successivo viene inviato quando viene ricevuta una risposta al precedente. È però possibile impostare l'intervallo tra l'invio dei pacchetti -i:

$ ping -i 0.2 losst.ru

In questo caso il programma ping esegue un cosiddetto flood configurabile, specificando con quale intensità si desidera inviare i pacchetti. Con l'opzione -D è possibile visualizzare il timestamp Unix di ogni messaggio:

$ ping -D losst.ru

Abbiamo visto cos'è il comando ping in Linux, come si usa, i parametri di base e i metodi di applicazione. Questo strumento molto semplice può essere utilizzato per verificare i problemi di rete e risolverli. In questo senso, l'utility può diventare indispensabile.