PING(8) iputils PING(8) NOM ping - Envoyer un ECHO_REQUEST ICMP aux hotes du reseau SYNOPSIS 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} DESCRIPTION ping utilise le datagramme ECHO_REQUEST obligatoire du protocole ICMP pour obtenir une reponse ECHO_RESPONSE ICMP d'un hote ou d'une passerelle. Les datagrammes ECHO_REQUEST (<< pings >>) comportent des en-tetes IP et ICMP, suivis d'une struct timeval et d'un nombre arbitraire d'octets de bourrage utilises pour remplir le paquet. ping fonctionne avec IPv4 et IPv6. L'utilisation explicite de l'un des deux peut etre forcee en specifiant -4 ou -6. ping peut egalement envoyer des requetes d'information sur les noeuds IPv6 (RFC4620). Les sauts intermediaires peuvent ne pas etre autorises, car le routage de la source IPv6 est deconseille (RFC5095). OPTIONS -4 Utiliser seulement IPv4. -6 Utiliser seulement IPv6. -a Ping sonore. -A Adaptive ping. Interpacket interval adapts to round-trip time, so that effectively not more than one (or more, if preload is set) unanswered probe is present in the network. The default interval is 2 ms, for more info see option -i. On networks with low RTT this mode is essentially equivalent to flood mode. -b Autoriser a envoyer un ping a une adresse de diffusion (broadcast). -B Ne pas autoriser ping a changer l'adresse source des essais. L'adresse est liee a celle selectionnee au demarrage de ping. -c nombre Arreter apres avoir envoye nombre paquets ECHO_REQUEST. Avec l'option echeance, ping attend pour nombre paquets ECHO_REPLY, jusqu'a ce que le delai expire. -C Appeler l'appel systeme connect() lors de la creation de socket. -d Definir l'option SO_DEBUG sur le socket utilise. Generalement, cette option de socket n'est pas utilisee par le noyau Linux. -D Afficher l'horodatage (temps Unix + les microsecondes comme dans gettimeofday) avant chaque ligne. -e identifier Definir le champ d'identification de ECHO_REQUEST. La valeur 0 implique l'usage de socket raw (non gere par le socket de datagrammes ICMP). La valeur du champ peut etre affichee avec l'option -v. -f Mode inondation (flood ping). Pour chaque ECHO_REQUEST envoye, un point (<< . >>) est affiche, alors que pour chaque ECHO_REPLY recu un effacement arriere (backspace) est affiche. Cela fournit un affichage rapide de combien de paquets ont ete abandonnes. S'il n'y a pas d'intervalle donne, l'intervalle est defini a zero et ping renvoie les paquets aussi vite qu'ils reviennent ou cent fois par seconde, selon le plus rapide. Seul le superutilisateur peut utiliser cette option avec un intervalle de zero. -F flow label Seulement pour IPv6. Allouer et inscrire une etiquette de flux de 20 bits (en hexadecimal) sur les paquets ECHO_REQUEST. Si la valeur est zero, le noyau alloue une etiquette de flux aleatoire. -h Afficher l'aide. -H Force DNS name resolution for the output. Useful for numeric destination, or -f option, which by default do not perform it. Override previously defined -n option. -i intervalle Wait interval seconds between sending each packet. Real number allowed with dot as a decimal separator (regardless locale setup). The default is to wait for one second between each packet normally, or not to wait in flood mode. Only super-user may set interval to values less than 2 ms. Broadcast and multicast ping have even higher limitation for regular user: minimum is 1 sec. -I interface L'interface est soit une adresse, un nom d'interface ou un nom VRF. Si l'interface est une adresse, son adresse source est definie par l'adresse de l'interface specifiee. Si l'interface est un nom d'interface, son interface source est definie a l'interface specifiee. Si l'interface est un nom VRF, chaque paquet est route en utilisant la table de routage correspondante ; dans ce cas, l'option -I peut etre repetee pour specifier une adresse source. NOTE : Pour IPv6, lors d'un ping a une adresse de portee liaison locale, la specification de la liaison (par la notation << % >> dans destination ou par cette option) peut etre utilisee, mais n'est plus necessaire. -l prechargement Si prechargement est specifie, ping envoie plusieurs paquets sans attendre de reponse. Seul le superutilisateur peut selectionner un prechargement superieur a trois. -L Enlever la boucle locale (loopback) des paquets multidestinataires (multicast). Cette option ne s'applique que si la destination du ping est une adresse multidestinataire. -m marque Utiliser marque pour etiqueter les paquets sortants. Cela est utile pour diverses raisons dans le noyau comme l'utilisation du routage selon la politique pour selectionner un traitement specifique des sorties. -M pmtudisc_opt Select Path MTU Discovery strategy. pmtudisc_option may be either do (set DF flag but subject to PMTU checks by kernel, packets too large will be rejected), want (do PMTU discovery, fragment locally when packet size is large), probe (set DF flag and bypass PMTU checks, useful for probing), or dont (do not set DF flag). -N nodeinfo_option IPv6 only. Send IPv6 Node Information Queries (RFC4620), instead of Echo Request. CAP_NET_RAW capability is required. help Afficher l'aide pour la prise en charge de NI. nom Demander les noms de noeuds. ipv6 Demander les adresses IPv6. Il y a plusieurs drapeaux specifiques a IPv6. ipv6-global Demander les adresses global-scope IPv6. ipv6-sitelocal Demander les adresses site-local IPv6. ipv6-linklocal Demander les adresses link-local IPv6. ipv6-all Demander les adresses IPv6 sur les autres interfaces. ipv4 Demander les adresses IPv4. Il y a un drapeau specifique a IPv4. ipv4-all Demander les adresses IPv4 sur les autres interfaces. subject-ipv6=ipv6addr Adresse de sujet IPv6. subject-ipv4=ipv4addr Adresse de sujet IPv4. subject-name=nom_du_noeud Nom du sujet. S'il contient plus qu'un point (<< . >>), un nom de domaine pleinement qualifie est suppose. subject-fqdn=nom_du_noeud Nom du sujet. Un nom de domaine pleinement qualifie est toujours suppose. -n Numeric output only. No attempt will be made to lookup symbolic names for host addresses (no reverse DNS resolution). This is the default for numeric destination or -f option. Override previously defined -H option. -O Rapporter la reponse ICMP ECHO en suspens avant d'envoyer le paquet suivant. Cela est utile avec l'horodatage -D pour enregistrer la sortie dans un fichier de diagnostic et rechercher les reponses manquantes. -p motif Vous pouvez specifier jusqu'a 16 octets de << pad >> pour remplir le paquet que vous envoyez. Cela est utile pour diagnostiquer les problemes dependant des donnees dans un reseau. Par exemple, -p ff fera en sorte que le paquet envoye soit rempli avec des 1. -q Sortie silencieuse. Rien n'est affiche a part les lignes de resume au demarrage et a la fin de l'execution. -Q tos Definir la qualite de service, relative aux bits dans les datagrammes ICMP. tos peut etre un nombre decimal (ping seulement) ou hexadecimal. Dans la RFC2474, ces champs sont interpretes comme un champ de 8 bits destine aux services differencies (Differentiated Services, DS), constitue des bits 0-1 (les deux bits les plus faibles) de donnees independantes, et des bits 2-7 (les six bits les plus forts) du Differentiated Services Codepoint (DSCP). Dans les RFC2481 et RFC3168, les bits 0-1 sont utilises pour l'ECN (NdT : Explicit Congestion Notification, notification explicite de congestion). Historiquement (la RFC1349, rendue obsolete par la RFC2474), l'interpretation etait la suivante : le bit 0 (bit le plus faible) est reserve (actuellement en cours de redefinition pour le controle de congestion), 1-4 pour le type de service (Type of Service, ToS), et les bits 5-7 (bits les plus forts) pour la Priorite. -r Ne pas utiliser les tables de routage normales et envoyer les paquets directement a un hote present sur une interface directement connectee. Si l'hote n'est pas situe dans un reseau directement connecte, une erreur est renvoyee. Cette option peut etre utilisee pour envoyer un ping a un hote local au travers d'une interface ne faisant partie d'aucune route a condition que l'option -I soit egalement utilisee. -R ping seulement. Enregistrer la route. Inclut l'option RECORD_ROUTE dans le paquet ECHO_REQUEST et affiche le tampon de la route dans les paquets renvoyes. Notez que l'en-tete IP ne peut contenir au plus que neuf de ces routes. Beaucoup d'hotes ignorent ou desactivent cette option. -s taille_paquet Specifier le nombre d'octets de donnees a envoyer. Le nombre par defaut est 56, ce qui se traduit en 64 octets de donnees ICMP quand ils sont combines avec les 8 octets de donnees de l'en-tete ICMP. -S tampon_emission Definir le tampon d'emission du socket. S'il n'est pas specifie, il n'est pas mis en memoire tampon plus d'un paquet. -t ttl ping seulement. Specifier le champ IP Time to Live. -T horodatage option Definir les options d'horodatage d'IP speciales. horodatage option peut etre soit tsonly (seulement les horodatages), tsandaddr (horodatages et adresses) ou tsprespec hote1 [hote2 [hote3 [hote4]]] (sauts predetermines d'horodatage). -U Afficher le temps de latence total utilisateur-a-utilisateur (l'ancien comportement). Normalement ping affiche le RTT (round trip time) du reseau, qui peut etre different par exemple a cause d'echecs du DNS. -v Sortie loquace. Ne pas supprimer les reponses DUP (paquets dupliques) lors de l'envoi d'un ping sur une adresse multidestinataire. -V Afficher la version et quitter. -w echeance Specifier un delai, en secondes, avant que ping ne quitte independamment de combien de paquets ont ete envoyes ou recus. Dans ce cas ping ne stoppe pas apres que nombre paquets soient envoyes, il attend soit que l'echeance expire ou que nombre essais aient recu une reponse, ou encore qu'une notification d'erreur provienne du reseau. -W delai Temps d'attente d'une reponse, en secondes. L'option ne concerne que le delai en l'absence d'une quelconque reponse, sinon ping attend deux RTT. Les nombres reels sont autorises avec un point comme separateur de decimales (independamment du reglage des parametres regionaux). 0 signifie un delai infini. Quand vous utilisez ping pour la localisation de pannes, il devrait d'abord etre execute sur l'hote local, pour verifier que l'interface reseau locale est activee et fonctionne correctement. Ensuite, un ping devrait etre envoye aux hotes et aux passerelles de plus en plus eloignes. Les delais aller-retour et les statistiques de perte de paquets sont calcules. Si des paquets dupliques sont recus, ils ne sont pas inclus dans le calcul des paquets perdus, bien que le temps d'aller-retour de ces paquets soit utilise pour calculer les temps d'aller-retour minimal/moyen/maximal/ecart type. L'ecart type de la population (mdev), essentiellement une moyenne de l'ecart entre le RTT de chaque ping et le RTT moyen. Plus l'ecart type est eleve, plus le RTT est variable (dans le temps). Avec une variabilite elevee du RTT, vous aurez des problemes de vitesse avec les transferts de masse (ils prendront plus de temps que necessaire a proprement parler, car la variabilite fera que l'expediteur finira par attendre les acquittements) et vous aurez une qualite de VoIP moyenne a mediocre. Lorsque le nombre de paquets indiques ont ete envoyes (et recus) ou si le programme se termine avec un SIGINT, un bref resume est affiche. Des statistiques actuelles plus courtes peuvent etre obtenues sans terminer le processus en utilisant le signal SIGQUIT. Ce programme est fait pour etre utilise dans les tests, la mesure et l'administration du reseau. A cause de la charge qu'il peut infliger au reseau, il est imprudent d'utiliser ping pendant les operations normales ou a partir de scripts automatises. CODE DE RETOUR Si ping ne recoit aucun paquet en retour, il quittera avec le code 1. Si un paquet est specifie avec a la fois nombre et echeance, et que moins de paquets que nombre sont recus au moment ou l'echeance est atteinte, ping quittera aussi avec le code 1. Pour une autre erreur, il quittera avec le code 2. Sinon, il quittera avec le code 0. Cela rend possible l'utilisation du code de sortie pour savoir si un hote est actif ou non. DESTINATIONS IPV6 LINK-LOCAL Pour IPv6, lorsque l'adresse de destination a une portee locale (link-local scope) et que ping utilise des sockets de datagrames ICMP, l'interface de sortie doit etre specifiee. Lorsque ping utilise des sockets raw, il n'est pas strictement necessaire de specifier l'interface de sortie, mais cela est preferable pour lever l'ambiguite lorsqu'il y a plusieurs interfaces de sortie possibles. Il y a deux manieres de specifier l'interface de sortie : o en utilisant la notation % L'adresse de destination est suffixee avec % puis le nom de l'interface de sortie ou l'indice d'interface (ifIndex), par exemple : ping fe80::5054:ff:fe70:67bc%eth0 ping fe80::5054:ff:fe70:67bc%2 o en utilisant l'option -l Lors de l'utilisation de sockets de datagrammes ICMP, cette methode est prise en charge depuis les versions du noyau suivantes : 5.17, 5.15.19, 5.10.96, 5.4.176, 4.19.228, 4.14.265. En outre, ce n'est pas pris en charge par la libc musl. DETAILS D'UN PAQUET ICMP Un en-tete IP sans option comporte 20 octets. Un paquet ICMP ECHO_REQUEST contient 8 octets supplementaires d'en-tete ICMP suivis d'une quantite arbitraire de donnees. Quand une taille_paquet est fournie, elle indique la taille de cette partie de donnees supplementaires (56 octets par defaut). Par consequent, la quantite de donnees recues a l'interieur d'un paquet IP de type ICMP ECHO_REPLY sera toujours de 8 octets superieure a l'espace requis par les donnees (l'en-tete ICMP). Si l'espace occupe par les donnees est d'au moins la taille d'une struct timeval, ping utilise les huit premiers octets de cet espace pour inclure un horodatage qu'il utilise dans le calcul des delais aller-retour. Si l'espace des donnees est plus faible, aucun delai aller-retour n'est donne. PAQUETS DUPLIQUES ET ENDOMMAGES ping signalera les paquets dupliques ou endommages. Une duplication de paquets ne devrait jamais se produire, et semble etre causee par des retransmissions inadequates au niveau liaison. Les duplications peuvent se produire dans de nombreuses situations, et sont rarement (pour ne pas dire jamais) un bon signe, bien que la presence d'une faible proportion de paquets dupliques ne doive pas toujours vous inquieter. Les paquets endommages constituent evidemment une cause serieuse d'alerte et indiquent souvent une panne materielle quelque part sur le chemin du paquet ping (dans le reseau ou dans les hotes). ID COLLISIONS Unlike TCP and UDP, which use port to uniquely identify the recipient to deliver data, ICMP uses identifier field (ID) for identification. Therefore, if on the same machine, at the same time, two ping processes use the same ID, echo reply can be delivered to a wrong recipient. This is a known problem due to the limited size of the 16-bit ID field. That is a historical limitation of the protocol that cannot be fixed at the moment unless we encode an ID into the ping packet payload. ping prints DIFFERENT ADDRESS error and packet loss is negative. ping uses PID to get unique number. The default value of /proc/sys/kernel/pid_max is 32768. On the systems that use ping heavily and with pid_max greater than 65535 collisions are bound to happen. TESTER DES MOTIFS DE DONNEES DIFFERENTS La couche (inter)reseau ne devrait jamais traiter des paquets differemment en fonction des donnees contenues dans la partie de donnees. Malheureusement, on a signale des problemes dependant des donnees qui s'immiscent dans les reseaux et restent non detectes pendant une longue periode de temps. Dans beaucoup de cas, le motif particulier qui aura des problemes est un motif ne comportant pas suffisamment de << transitions >>, comme que des << un >> ou que des << zero >>, ou bien un motif proche de la limite (comme presque uniquement des << zero >>). Il ne suffit pas necessairement de specifier un motif de donnees ne comportant que des zeros (par exemple) sur la ligne de commandes etant donne que le motif qui entre en jeu est celui qui se trouve au niveau liaison de donnees, et que la relation entre ce que vous tapez et ce qui sera reellement envoye sur le reseau par les controleurs peut etre complexe. Cela signifie que si vous avez un probleme dependant des donnees, alors vous devrez probablement effectuer beaucoup de tests pour le trouver. Si vous avez de la chance, vous pouvez trouver un fichier qui ne peut etre envoye sur votre reseau, ou qui prend beaucoup plus de temps a etre transfere que d'autres fichiers de longueur similaire. Vous pouvez ensuite examiner ce fichier pour trouver des motifs repetes que vous pouvez tester en utilisant l'option -p de ping. DETAILS SUR LE TTL La valeur TTL (Time To Live, temps de vie) d'un paquet IP represente le nombre maximal de routeurs IP que ce paquet est autorise a traverser avant d'etre rejete. Dans la pratique actuelle, vous pouvez vous attendre a ce que chaque routeur sur Internet decremente le champ TTL d'exactement une unite. The TTL field for TCP packets may take various values. The maximum possible value of this field is 255, a recommended initial value is 64. For more information, see the TCP/Lower-Level Interface section of RFC9293. In normal operation ping prints the TTL value from the packet it receives. When a remote system receives a ping packet, it can do one of three things with the TTL field in its response: o Ne pas le modifier ; c'est ce que les systemes Unix de Berkeley faisaient avant la version Tahoe 4.3BSD. Dans ce cas, la valeur TTL du paquet recu sera 255 moins le nombre de routeurs dans le chemin de l'aller-retour. o Le definir a 255 ; c'est la maniere actuelle de faire des systemes Unix de Berkeley. Dans ce cas la valeur TTL dans le paquet recu sera 255 moins le nombre de routeurs sur le chemin du systeme distant a l'hote pingeant. o Le definir a une autre valeur. Quelques machines utilisent la meme valeur pour les paquets ICMP qu'elles utilisent pour les paquets TCP, par exemple 30 ou 60. D'autres peuvent utiliser des valeurs totalement etranges. BOGUES o Plusieurs hotes et passerelles ignorent l'option RECORD_ROUTE. o La taille maximale de l'en-tete IP est trop courte pour que des options comme RECORD_ROUTE soient vraiment utiles. Cependant, il n'y a pas grand chose qui peut etre fait pour cela. o Inonder de pings n'est en general pas recommande et inonder de pings l'adresse de diffusion generale (broadcast) ne devrait etre fait que dans des circonstances tres particulieres. VOIR AUSSI ip(8), ss(8) HISTORIQUE La commande ping apparait dans 4.3BSD. La version decrite ici est sa descendance specifique a Linux. Avec la version s20150815, le binaire ping6 disparait. Il a ete fusionne a ping. La creation d'un lien symbolique nomme ping6 pointant sur ping resultera en la meme fonctionnalite qu'auparavant. SECURITE ping necessite la capacite CAP_NET_RAW pour etre execute : 1) si le programme est utilise pour des requetes sans echo (voir l'option -N) ou lorsque le champ d'identification est defini a 0 pour l'ECHO_REQUEST (voir -e), ou 2) si le noyau ne prend pas en charge les sockets de datagrames ICMP, ou 3) si l'utilisateur n'est pas autorise a creer un socket d'echo ICMP. Le programme peut necessiter d'etre utilise dans le mode set-uid superutilisateur. DISPONIBILITE ping fait partie du paquet iputils. TRADUCTION La traduction francaise de cette page de manuel a ete creee par Frederic Delanoy et bubu Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . iputils 20240117 PING(8)