Provided by: manpages-it_4.23.1-1_all bug

NOME

       ping - invia ICMP ECHO_REQUEST agli host della rete

SINTASSI

       ping [-aAbBdCDfhHLnOqrRUvV46] [-c count] [-e identifier] [-F flowlabel] [-i interval]
            [-I interface] [-l preload] [-m mark] [-M pmtudisc_option] [-N nodeinfo_option]
            [-w deadline] [-W timeout] [-p pattern] [-Q tos] [-s packetsize] [-S sndbuf] [-t ttl]
            [-T timestamp option] [hop...] {destination}

DESCRIZIONE

       ping usa il's datagramma imperativo ECHO_REQUEST del protocollo ICMP per ottenere una ICMP
       ECHO_RESPONSE da un host o gateway. I datagrammi ECHO_REQUEST (“ping”) hanno
       un'intestazione IP e ICMP, seguita da un struct timeval e quindi un numero arbitrario di
       byte “pad” usati per completare il pacchetto.

       ping opera sia con IPv4 che IPv6. L'utilizzo di uno solo dei due può essere ottenuto
       specificando -4 o -6.

       ping può anche inviare Node Information Queries di IPv6 (RFC4620). Gli hop intermedi
       potrebbero non essere permessi perché l'instradamento della sorgente IPv6 è stato
       deprecato (RFC5095).

OPZIONI

       -4
           Usa solo IPv4.

       -6
           Usa solo IPv6.

       -a
           Ping acustico.

       -A
           Ping adattivo. L'intervallo tra pacchetti viene adattato al tempo di andata/ritorno,
           in modo che effettivamente non più di un (o più, se preload è stato impostato) probe
           senza risposta sia presente sulla rete. L'intervallo predefinito è di 2 ms, per
           maggiori informazioni vedere l'opzione -i. Su reti con RTT molto basso, questa
           modalità è equivalente a quella “flood”.

       -b
           Permette di fare in ping ad indirizzi broadcast.

       -B
           Non permette a ping di cambiare l'indirizzo sorgente delle richieste. L'indirizzo è
           bloccato su quello scelto all'avvio di ping.

       -c contatore
           Si blocca dopo aver inviato contatore pacchetti ECHO_REQUEST. Con l'opzione deadline,
           ping attende per contatore pacchetti ECHO_REPLY, finché non scade il timeout.

       -C
           Effettua la chiamata di sistema connect() durante la creazione del socket.

       -d
           Imposta l'opzione SO_DEBUG sul socket utilizzato. Essenzialmente, questa opzione del
           socket non è usata dal kernel Linux.

       -D
           Stampa l'orario (tempo unix + microsecondi come in gettimeofday) prima di ogni linea.

       -e identificatore
           Imposta il campo di identificazione di ECHO_REQUEST. Il valore 0 implica l'utilizzo di
           raw socket (non supportato su ICMP datagram socket). Il valore del campo può essere
           mostrato con l'opzione -v.

       -f
           Flood ping. Per ciascun invio ECHO_REQUEST viene stampato un “.”, mentre per ogni
           ECHO_REPLY ricevuto viene stampato un carattere di cancellazione. Questo mostra
           velocemente quanti pacchetti vengono persi. Se l'intervallo non è dato, imposta
           l'intervallo a zero e manda pacchetti non appena arrivano le risposte o cento al
           secondo, a seconda da quale è maggiore. Solo il super utente può usare questa opzione
           con intervallo zero.

       -F flow label
           Solo IPv6. Alloca e imposta i 20 bit per l'etichetta «flow» (in hex) nei pacchetti
           echo request. Se il valore è zero, il kernel alloca una etichetta «flow» casuale.

       -h
           Mostra la guida.

       -H
           Impone la risoluzione dei nomi DNS per la stampa. Utile per destinazioni numeriche, o
           con l'opzione -f, che in maniera predefinita non lo fa. Prevale su altre opzioni -n
           precedenti.

       -i intervallo
           Attende interval secondi tra ogni invio di pacchetti. Sono ammessi numeri reali che
           usano il punto come separatore della parte frazionaria (al di là di impostazioni della
           locale). Il comportamento predefinito è di attendere un secondo tra normali pacchetti,
           oppure di non attendere in modalità “flood”. Solo il super utente può impostare valori
           inferiodi a 2 ms. Ping broadcast e multicast hanno maggiori limitazioni per utenti
           normali: il minimo è 1 sec.

       -I interfaccia
           interfaccia può essere un indirizzo, un nome di interfaccia o di VRF. Se interfaccia è
           un indirizzo, imposta l'indirizzo di origine come l'indirizzo dell'interfaccia
           specificata. Se interfaccia è un nome di interfaccia, imposta l'interfaccia sorgente
           con il nome di interfaccia specificato. Se interfaccia è un nome VRF, ogni pacchetto è
           inviato usando la tabella di instradamento corrispondente; in questo caso l'opzione -I
           può essere ripetuta per indicare un indirizzo sorgente. NOTA: per IPv6, quando si fa
           un ping verso un indirizzo link-local, l'indicazione del link (tramite '%'-notazione
           in destinazione, o usando questa opzione) può essere usata, ma non è più necessario.

       -l preload
           Se preload è specificato, ping invia tutti questi pacchetti senza attendere risposta.
           Solo il super utente può impostare preload a più di 3.

       -L
           Ignora il loopback di pacchetti multicast. Questa opzione si applica solo se la
           destinazione del ping è un indirizzo multicast.

       -m marcatura
           usa marcatura per etichettare i pacchetti in uscita. Questo è utile per una serie di
           ragioni all'interno del kernel quali l'utilizzo di instradamento basato su «policy»
           per selezionare una specifica manipolazione all'uscita.

       -M pmtudisc_opt
           Seleziona la strategia «Path MTU Discovery». L'opzione pmtudisc_opt può essere do
           (imposta il flag DF ma sottostà ai controlli PMTU del kernel, i pacchetto troppo
           grandi verranno rifiutati), want (effettua la scoperta PMTU, frammenta localmente
           quando la dimensione del pacchetto è grande), probe (imposta il flag DF e ignora i
           controlli PMTU, utile per i test) o dont (non impostare il flag DF).

       -N nodeinfo_option
           Solo IPv6. Invia le Node Information Queries (RFC4620) IPv6 al posto di Echo Request.
           È necessaria la «capability» CAP_NET_RAW.

           help
               Mostra l'aiuto per il supporto NI.

           nome
               Interroga il Node Names.

           ipv6
               Interroga per gli indirizzi IPv6. Ci sono vari flag specifici per IPv6.

               ipv6-global
                   Richiede indirizzi IPv6 global-scope.

               ipv6-sitelocal
                   Richiede indirizzi IPv6 site-local.

               ipv6-linklocal
                   Richiede indirizzi IPv6 link-local.

               ipv6-all
                   Richiede indirizzi IPv6 su altre interfacce.

           ipv4
               Interroga per gli indirizzi IPv4. C'è un flag specifico per IPv4.

               ipv4-all
                   Richiede indirizzi IPv4 su altre interfacce.

           subject-ipv6=ipv6addr
               Indirizzo oggetto IPv6.

           subject-ipv4=ipv4addr
               Indirizzo oggetto IPv6.

           subject-name=nodename
               Nome del soggetto. Se contiene più di un punto, viene assunto che sia un nome
               qualificato completamente.

           subject-fqdn=nodename
               Nome del soggetto. Viene sempre assunto che sia un nome qualificato completamente.

       -n
           Stampa solo numerica. Non verrà fatto nessun tentativo di cercare i nomi simbolici per
           indirizzi host (non viene fatta la risoluzione DNS inversa). Questo è il comportamento
           predefinito per le destinazioni espresse numericamente o con l'opzione -f. Ha priorità
           sull'opzione -H definita in precedenza.

       -O
           Riporta gli ECHO REPLY ancora sospesi prima di inviare il prossimo pacchetto. Questo è
           utile assieme alla marca temporale -D per memorizzare su un file di diagnostica e
           cercare le risposte mancanti.

       -p modello
           Si possono specificare fino a 16 byte “pad” per completare il pacchetto da inviare.
           Questo è utile per diagnosticare i problemi dipendenti dai dati in una rete. Per
           esempio -p ff farà sì che il pacchetto inviato venga riempito con tutti uno.

       -q
           Output silenzioso. Non è visualizzato nulla tranne le linee di sommario all'avvio e
           quando termina.

       -Q tos
           Imposta i bit di Quality of Service nei datagrammi. tos può essere un numero decimale
           (solo ping) o esadecimale.

           Nell'RFC2474 questi campi sono interpretati come Differentiated Services (DS) su 8
           bit, che consistono di: bit 0-1 (i due bit meno significativi) di dati a sé stanti,
           bit 2-7 (i 6 bit più significativi) di Differentiated Services Codepoint (DSCP). Negli
           RFC2481 e RFC3168 i bit 0-1 sono usati per ECN.

           Storicamente (RFC1349, reso obsoleto da RFC2474), questi erano interpretati come: bit
           0 (quello meno significativo) riservato (adesso è stato ridefinito come controllo di
           congestione), 1-4 per il tipo di servizio, bit 5-7 (quelli più significativi) per la
           precedenza.

       -r
           Bypassa le normali tabelle di instradamento e invia direttamente a un host su una
           interfaccia collegata. Se l'host non è su una rete collegata direttamente viene
           restituito un errore. Questa opzione può essere usata per fare un ping su un host
           locale attraverso un'interfaccia che non ha strada attraverso di esso, a condizione
           che sia presente anche l'opzione -I.

       -R
           Solo ping. Registra la strada. Include l'opzione RECORD_ROUTE nel pacchetto
           ECHO_REQUEST e visualizza il buffer dell'instradamento sui pacchetti restituiti.
           Notare che l'intestazione IP è solo abbastanza grande per nove di tali strade. Molti
           host ignorano o scartano questa opzione.

       -s dimensione
           Specifica il numero di byte di dati da inviare. Il valore predefinito è 56, che si
           traduce in 64 byte di dati ICMP quando combinato con gli 8 byte dei dati di
           intestazione di ICMP.

       -S sndbuf
           Imposta il socket sndbuf. Se non specificato viene selezionato di non bufferizzare più
           di un pacchetto.

       -t ttl
           Solo ping. Imposta il parametro Time to Live di IP.

       -T opzione timestamp
           Imposta l'opzione timestamp IP speciale. opzione timestamp può essere tsonly (solo
           timestamp), tsandaddr (timestamp e indirizzi) o tsprespec host1 [host2 [host3
           [host4]]] (timestamp su host predefiniti).

       -U
           Stampa la latenza completa utente-a-utente (il vecchio comportamento). Normalmente
           ping stampa il tempo del andata/ritorno sulla rete, che può essere differente, ad
           esempio a causa di fallimenti del DNS.

       -v
           Stampa prolissa. Non sopprime le risposte DUP durante i ping ad indirizzi multicast.

       -V
           Mostra le informazioni sulla versione ed esce.

       -w deadline
           Specifica un timeout, in secondi, prima che ping esca al di là di quanti pacchetti
           siano stati inviati o ricevuti. In questo caso ping non si ferma dopo contatore
           pacchetti inviati; attende che la deadline scada o che contatore invii ricevano
           risposta o qualche notifica di errore dalla rete.

       -W timeout
           Tempo di attesa per una risposta, in secondi. Questa opzione entra in gioco in assenza
           di una risposta di qualsiasi tipo, altrimenti ping attende due RTT. Sono permessi
           numeri reali che usano il punto come separatore dei decimali (al di là delle
           impostazioni della locale). 0 indica un'attesa illimitata.

       Quando si usa ping per isolare i guasti, deve prima essere avviato sull'host locale, per
       verificare che l'interfaccia della rete locale sia funzionante. Quindi, host e gateway
       lontani possono venire “pingati”. Vengono conteggiate le statistiche sui tempi di risposta
       e i pacchetti persi. Se vengono ricevuti pacchetti duplicati essi non sono inclusi nel
       calcolo dei pacchetti persi, sebbene il tempo di risposta di questi pacchetti sia usato
       nel calcolare i numeri di minimo/medio/massimo tempo di risposta.

       Deviazione standard della popolazione (mdev), essenzialmente è la media di quanto distante
       ogni RTT di ping si trovi rispetto alla media totale RTT. Più è alto mdev, maggiore è la
       variabilità di RTT (nel tempo). Con un'alta variabilità di RTT ci saranno problemi di
       velocità nei trasferimenti di blocchi (richiederanno più dello stretto necessario poiché
       la variabilità farà attendere gli ACK il mittente) e si avrà una qualità VoIP che va dal
       medio allo scarso.

       Quando il numero specificato di pacchetti è stato inviato (e ricevuto) o se il programma è
       terminato con un SIGINT, viene visualizzato un breve sommario. Statistiche aggiornate più
       brevi possono essere ottenute senza la terminazione del processo con il segnale SIGQUIT.

       Questo programma è pensato per l'uso nel test, misura e gestione delle reti. A causa del
       carico che può imporre alla rete è sconsigliabile usare ping durante le normali operazioni
       o da script automatizzati.

STATO DI USCITA

       Se ping non riceve assolutamente nessuna riposta, uscirà con codice 1. Se vengono indicati
       sia contatore che deadline e sono ricevuti meno di contatore pacchetti prima che scada
       deadline, uscirà ancora con codice 1. A seguito di altri errori uscirà con codice 2.
       Altrimenti uscirà con codice 0. Questo permette di usare il codice d'uscita per vedere se
       un host è vivo o meno.

DESTINAZIONI LINK-LOCAL IPV6

       In IPv6, quando l'indirizzo di destinazione è nell'ambito link-local e ping sta usando
       socket datagrammi ICMP, l'interfaccia d'uscita deve essere specificata. Quando ping sta
       usando socket raw non è strettamente necessario indicare l'interfaccia di uscita, ma
       dovrebbe essere fatto per evitare ambiguità quando le possibili interfacce di uscita sono
       più di una.

       Ci sono due modi per specificare l'interfaccia d'uscita:

       • usando la % notazione
           L'indirizzo di destinazione ha appeso il carattere % e il nome dell'interfaccia o il
           suo indice, per esempio:

           ping fe80::5054:ff:fe70:67bc%eth0

           ping fe80::5054:ff:fe70:67bc%2

       • usando una -I opzione
           Quando si usano socket datagrammi ICMP, questo metodo è supportato con le seguenti
           versioni del kernel: 5.17, 5.15.19, 5.10.96, 5.4.176, 4.19.228, 4.14.265. Inoltre non
           è supportato con la libc musl.

DETTAGLI PACCHETTO ICMP

       Un'intestazione IP senza opzioni è di 20 byte. Un pacchetto ICMP ECHO_REQUEST contiene
       un'intestazione addizionale ICMP di 8 byte seguita da un ammontare arbitrario di dati.
       Quando viene data una dimensione questo indica la dimensione di questa parte extra di dati
       (il valore predefinito è 56). Quindi l'ammontare di dati ricevuti in un pacchetto IP di
       tipo ICMP ECHO_REPLY sarà sempre 8 byte in più dello spazio dati richiesto (l'intestazione
       ICMP).

       Se lo spazio dati è grande almeno come la struct timeval, ping usa questo spazio iniziale
       per includere data e ora, che usa nel computo dei tempi di risposta. Se lo spazio è
       inferiore non vengono dati tempi di risposta.

PACCHETTI DUPLICATI E DANNEGGIATI

       ping riporterà i pacchetti duplicati e danneggiati. Non devono mai esserci pacchetti
       duplicati, e ciò sembra causato da ritrasmissioni inappropriate a livello di connessione.
       Le duplicazioni possono avvenire in molte situazioni e sono raramente (per non dire mai)
       un buon segno, sebbene la presenza di bassi livelli di duplicati potrebbe non sempre
       essere causa di allarme.

       I pacchetti danneggiati una seria causa di allarme, e spesso indicano hardware
       malfunzionante da qualche parte nel percorso dei pacchetti di ping (nella rete o negli
       host).

COLLISIONI DI ID

       Contrariamente a TCP e UDP, che usano porte per identificare il destinatario al quale
       consegnare i dati, ICMP usa un campo di identità (ID) per l'identificazione. Quindi, se
       sulla stessa macchina e allo stesso momento, due processi ping usano lo stesso ID, le
       risposte echo possono finire al destinatario errato. Questo è un problema conosciuto
       dovuto alla limitata dimensione di 16 bit del campo ID. Questa è una limitazione storica
       del protocollo che non può essere corretta ora a meno di inserire l' ID nella parte di
       carico del pacchetto ping. ping stampa l'errore INDIRIZZO DIVERSO è il numero di pacchetti
       persi diventa negativo.

       ping usa PID per ottenere un numero unico.Il valore predefinito di
       /proc/sys/kernel/pid_max è 32768. Su sistemi che usano molto ping e nei quali pid_max è
       maggiore di 65535 è possibile che ci siano delle collisioni.

PROVARE DIFFERENTI PATTERN DATI

       Lo strato di (inter)network non deve mai trattare i pacchetti in modo differente in
       funzione dei dati contenuti nella porzione dati. Sfortunatamente sono noti problemi
       dipendenti dai dati che si infilano nelle reti e rimangono nascosti per lunghi periodi di
       tempo. In molti casi il particolare schema che avrà problemi è qualcosa che non ha
       sufficienti "transizioni", come tutti uno o tutti zero, o uno schema al confine, come uno
       con quasi tutti zero. Non è necessariamente sufficiente specificare uno schema dati di
       tutti zero (per esempio) sulla linea di comando, perché lo schema di interesse è al
       livello collegamento dati, e la relazione tra ciò che si digita e ciò che il controller
       trasmette può essere complessa.

       Ciò significa che se si ha un problema dipendente dai dati bisognerà probabilmente fare
       molti test per trovarlo. Se si è fortunati si può trovare un file che non può essere
       inviato attraverso la propria rete o che impiega troppo tempo per trasferirsi di altri
       file di lunghezza simile. Si può quindi esaminare questo file per trovare gli schemi
       ripetuti, che si possono testare usando l'opzione -p di ping.

DETTAGLI TTL

       Il valore TTL di un pacchetto IP rappresenta il numero massimo di router IP che il
       pacchetto può attraversare prima di essere cestinato. Nella pratica corrente ci si può
       aspettare che ciascun router in Internet decrementi il campo TTL esattamente di uno.

       Il campo TTL per pacchetti TCP può prendere vari valori6. Il valore massimo ammesso per
       questo campo è 255, un valore iniziale raccomandato è 64. Per maggiori informazioni vedere
       la sezione «TCP/Lower-Level Interface» dell'RFC9293.

       Nelle operazioni normali ping stampa il valore ttl dal pacchetto che riceve. Quando un
       sistema remoto riceve un pacchetto ping, esso può fare una tra tre cose con il campo TTL
       nella risposta:

           • Non lo cambia; questo è ciò che i sistemi Berkeley Unix facevano prima della release
           4.3BSD Tahoe. In questo caso il valore TTL nel pacchetto ricevuto sarà 255 meno il
           numero di router nel percorso di ritorno.

           • Impostarlo a 255; questo è ciò che fanno attualmente i sistemi Berkeley Unix. In
           questo caso il valore TTL nel pacchetto ricevuto sarà 255 meno il numero di router nel
           percorso dal sistema remoto all'host che fa inviato il ping..

           • Impostarlo su qualche altro valore. Alcune macchine usano per i pacchetti ICMP lo
           stesso valore che usano per i pacchetti TCP, per esempio o 30 o 60. Altri possono
           usare valori completamente generici.

BUG

           • Molti Host e Gateway ignorano l'opzione RECORD_ROUTE.

           • La lunghezza massima dell'intestazione IP è troppo piccola per opzioni come
           RECORD_ROUTE per essere completamente utile. Tuttavia su questo non si può fare molto.

           • Il flood pinging in generale non è consigliato, e il flood pinging su indirizzo
           broadcast deve essere fatto solo sotto condizioni strettamente controllate.

VEDERE ANCHE

       ip(8), ss(8).

STORIA

       Il comando ping è apparso in BSD 4.3.

       La versione qui descritta è un derivato specifico per Linux.

       Dalla versione s20150815, l'eseguibile ping6 non esiste più. È stato inglobato in ping.
       Creare un link simbolico chiamato ping6 che punta a ping risulterà nella stessa
       funzionalità che c'era prima.

SICUREZZA

       ping richiede la «capability» CAP_NET_RAW per essere eseguito 1) nel caso che il programma
       sia usato per delle query non-echo (vedere l'opzione -N) o quando il campo di
       identificazione viene impostato a 0 per ECHO_REQUEST (vedere -e), o 2) se il kernel non
       supporta socket datagrammi ICMP, o 3) se l'utente non ha il permesso di creare un socket
       echo ICMP. Il programma può essere impostato come set-uid root.

DISPONIBILITÀ

       ping fa parte del pacchetto iputils.

TRADUZIONE

       La traduzione italiana di questa pagina di manuale è stata creata da Giulio Daprelà
       <giulio@pluto.it> e Giuseppe Sacco <eppesuig@debian.org>

       Questa traduzione è documentazione libera; leggere la GNU General Public License Versione
       3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ o successiva per le condizioni di copyright.
       Non ci assumiamo alcuna responsabilità.

       Per segnalare errori nella traduzione di questa pagina di manuale inviare un messaggio a
       ⟨pluto-ildp@lists.pluto.it⟩.