PING(8) iputils PING(8) NOM ping - Envoyer un ECHO_REQUEST ICMP aux hotes du reseau SYNOPSIS ping [-aAbBdCDfhHLnOqrRUvV346] [-c nombre] [-e identifiant] [-F flowlabel] [-i intervalle] [-I interface] [-l prechargement] [-m marque] [-M pmtudisc_option] [-N nodeinfo_option] [-w echeance] [-W delai] [-p motif] [-Q tos] [-s taille_paquet] [-S tampon_emission] [-t ttl] [-T horodatage option] [saut...] {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 -3 precision RTT (sans arrondir le temps du resultat). -4 Utiliser seulement IPv4. -6 Utiliser seulement IPv6. -a Ping sonore. -A Ping adaptatif. L'intervalle entre les paquets s'adapte au delai aller-retour (round-trip time, RTT), afin qu'il n'y ait pas plus d'un essai sans reponse (ou plus, si le prechargement est utilise) sur le reseau. L'intervalle par defaut est de 2 ms, pour plus d'informations voir -i. Sur les reseaux de faible RTT, ce mode est quasiment equivalent au mode inondation. -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 identifiant 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 Forcer une resolution de nom DNS pour la sortie. Utile pour une destination numerique ou pour l'option -f qui par defaut ne fait pas de resolution de nom ; peut aider a la recherche de resolution de problemes DNS et ecrase une option -n precedemment definie. Voir aussi la variable d'environnement IPUTILS_PING_PTR_LOOKUP. -i intervalle Attendre intervalle secondes entre l'envoi de chaque paquet. Les nombres reels sont autorises avec un point comme separateur de decimales (independamment du reglage des parametres regionaux). L'attente par defaut est d'une seconde entre chaque paquet ou aucune attente en mode inondation. Seul le superutilisateur peut definir l'intervalle a une valeur inferieure a 2 ms. Les ping a une adresse de diffusion et multidestinataires (multicast) ont des limites encore plus elevees pour un utilisateur ordinaire : le minimum est 1 seconde. -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. L'attribut CAP_NET_ADMIN ou CAP_NET_RAW (depuis Linux 5.17) est necessaire (voir socket(7)). -M pmtudisc_opt Selectionner la strategie de decouverte du chemin MTU (Path MTU Discovery). L'option pmtudisc_option peut etre soit do (positionner un drapeau DF mais sujet a des verifications de chemin MTU par le noyau, les paquets trop grands seront rejetes), soit want (faire la decouverte du chemin MTU, fragmenter localement quand le paquet est grand), probe (positionner un drapeau DF et contourner les verifications de chemin MTU, utile pour la detection) ou dont (ne pas positionner de drapeau DF). -N nodeinfo_option Seulement pour IPv6. Envoyer des demandes d'information de noeud IPv6 (RFC 4620), au lieu de ECHO_REQUEST. La capacite CAP_NET_RAW est requise. help Afficher l'aide pour la prise en charge des informations de noeud. 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 Sortie numerique uniquement. Aucune tentative de recherche de noms symboliques pour les adresses d'hote ne sera faite (pas de resolution inverse de DNS). C'est le comportement par defaut pour une destination numerique ou pour l'option -f. Ecrase une option -H precedemment definie. Voir aussi la variable d'environnement IPUTILS_PING_PTR_LOOKUP. -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. La valeur maximale autorisee pour IPv4 est 65507 (65467 avec -R ou -T ou des sauts intermediaires) ou 65527 pour IPv6, mais la plupart des systemes limitent cette taille a une valeur plus basse en fonction du systeme. -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 ont ete 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. ENVIRONNEMENT Par defaut, la variable d'environnement IPUTILS_PING_PTR_LOOKUP definie a 0 desactive la resolution DNS inverse (resolution PTR). Cela peut etre ecrase par l'option -H ou -n. 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 datagrammes ICMP, l'interface de sortie doit etre specifiee. Lorsque ping utilise des n'est pas strictement necessaire de specifier l'interface de sortie, maisockets raw, il s 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). COLLISIONS D'IDENTIFIANT A la difference de TCP et d'UDP qui utilisent le port pour identifier de facon unique le destinataire pour fournir des donnees, ICMP utilise le champ identifiant (ID) pour l'identification. Par consequent, si sur la meme machine, au meme instant, deux processus de ping utilisent le meme ID, la reponse ECHO peut etre adressee au mauvais destinataire. C'est un probleme connu du a la taille limitee du champ ID de 16 bits. C'est une limite ancienne du protocole qui pour le moment ne peut pas etre corrige a moins d'encoder un ID dans la charge utiles d'un paquet ping. ping affiche une erreur DIFFERENT ADDRESS et la perte de paquet est negative. ping utilise le PID pour obtenir un numero unique. La valeur par defaut de /proc/sys/kernel/pid_max est 32768. Sur les systemes qui utilisent ping intensement et avec pid_max superieur a 65535, des collisions sont inevitables. 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. Le champ TTL des paquets TCP peut prendre differentes valeurs. La valeur maximale de ce champ est 255 ; la valeur initiale recommandee est 64. Pour davantage d'informations, consulter la section << TCP/Lower-Level Interface >> de la RFC9293. Normalement, ping affiche la valeur TTL du paquet qu'il recoit. Quand un systeme distant recoit un paquet ping, il peut faire une de ces trois choses avec le champ TTL dans sa reponse : 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 pinguant. 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 datagrammes 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 20240905 PING(8)