Man page - ping(8)
Packages contains this manual
Available languages:
en fr es it pl nl ja uk ro zh_TW zh_CNManual
PING
NOMESINTASSI
DESCRIZIONE
OPZIONI
AMBIENTE
DESTINAZIONI LINK-LOCAL IPV6
DETTAGLI PACCHETTO ICMP
PACCHETTI DUPLICATI E DANNEGGIATI
COLLISIONI DI ID
PROVARE DIFFERENTI PATTERN DATI
DETTAGLI TTL
BUG
VEDERE ANCHE
STORIA
SICUREZZA
DISPONIBILITĂ
TRADUZIONE
NOME
ping - invia ICMP ECHO_REQUEST agli host della rete
SINTASSI
|
ping [ -aAbBdCDfhHLnOqrRUvV346 ] [ -c contatore ] [ -e identificatore ] [ -F flowlabel ] [ -i intervallo ] [ -I interfaccia ] [ -l preload ] [ -m marcatura ] [ -M pmtudisc_option ] [ -N nodeinfo_option ] [ -w deadline ] [ -W timeout ] [ -p modello ] [ -Q tos ] [ -s dimensione ] [ -S sndbuf ] [ -t ttl ] [ -T timestamp option ] [hop...] {destinazione} |
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
-3
precisione RTT (non arrotonda il tempo risultante).
-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. Può essere dâaiuto per aggirare problemi nella risoluzione dei nomi. Prevale su altre opzioni -n precedenti. Vedere anche la variabile dâambiente IPUTILS_PING_PTR_LOOKUP .
-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. Sono richieste le ÂŤcapabilityÂť CAP_NET_ADMIN o CAP_NET_RAW (dal kernel di Linux 5.17) , vedere socket (7).
-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. Vedere anche la variabile dâambiente IPUTILS_PING_PTR_LOOKUP .
-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. Il valore massimo consentito è 65507 per IPv4 (65467 quanto -R o -T o con hop intermedi) oppure 65527 per IPv6, ma molti sistemi impongono limiti minori dipendenti dal sistema.
-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.
AMBIENTE
La variabile dâambiente IPUTILS_PING_PTR_LOOKUP impostata a 0 disabilita la risoluzione DNS inversa (PTR) automatica. Può essere superata con le opzioni -H o -n . .SH "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 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 .