PING(8) | iputils | PING(8) |
NOM¶
ping - Envoyer un ECHO_REQUEST ICMP aux hôtes du réseau
SYNOPSIS¶
ping [-aAbBdDefhLnOqrRUvV46] [-c nombre] [-e identifiant] [-F flowlabel] [-i intervalle] [-I interface] [-l préchargement] [-m marque] [-M pmtudisc_option] [-N nodeinfo_option] [-w échéance] [-W délai] [-p motif] [-Q tos] [-s taille_paquet] [-S tampon_émission] [-t ttl] [-T horodatage option] [saut...] {destination}
DESCRIPTION¶
ping utilise le datagramme ECHO_REQUEST obligatoire du protocole ICMP pour obtenir une réponse ECHO_RESPONSE ICMP d'un hôte ou d'une passerelle. Les datagrammes ECHO_REQUEST (« pings ») comportent des en-têtes IP et ICMP, suivis d'une struct timeval et d'un nombre arbitraire d'octets de bourrage utilisés pour remplir le paquet.
ping fonctionne avec IPv4 et IPv6. L'utilisation explicite de l'un des deux peut être forcée en spécifiant -4 ou -6.
ping peut également envoyer des requêtes d'information sur les nœuds IPv6 (RFC4620). Les sauts intermédiaires peuvent ne pas être autorisés, car le routage de la source IPv6 est déconseillé (RFC5095).
OPTIONS¶
-4
-6
-a
-A
-b
-B
-c nombre
-C
-d
-D
-e identifiant
-f
-F flow label
-h
-H
-i intervalle
-I interface
-l préchargement
-L
-m marque
-M pmtudisc_opt
-N nodeinfo_option
help
nom
ipv6
ipv6-global
ipv6-sitelocal
ipv6-linklocal
ipv6-all
ipv4
ipv4-all
subject-ipv6=ipv6addr
subject-ipv4=ipv4addr
subject-name=nom_du_nœud
subject-fqdn=nom_du_nœud
-n
-O
-p motif
-q
-Q tos
Dans la RFC2474, ces champs sont interprétés comme un champ de 8 bits destiné aux services différenciés (Differentiated Services, DS), constitué des bits 0-1 (les deux bits les plus faibles) de données indépendantes, 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 utilisés pour l'ECN (NdT : Explicit Congestion Notification, notification explicite de congestion).
Historiquement (la RFC1349, rendue obsolète par la RFC2474), l'interprétation était la suivante : le bit 0 (bit le plus faible) est réservé (actuellement en cours de redéfinition pour le contrôle de congestion), 1-4 pour le type de service (Type of Service, ToS), et les bits 5-7 (bits les plus forts) pour la Priorité.
-r
-R
-s taille_paquet
-S tampon_émission
-t ttl
-T horodatage option
-U
-v
-V
-w échéance
-W délai
Quand vous utilisez ping pour la localisation de pannes, il devrait d'abord être exécuté sur l'hôte local, pour vérifier que l'interface réseau locale est activée et fonctionne correctement. Ensuite, un ping devrait être envoyé aux hôtes et aux passerelles de plus en plus éloignés. Les délais aller-retour et les statistiques de perte de paquets sont calculés. Si des paquets dupliqués sont reçus, ils ne sont pas inclus dans le calcul des paquets perdus, bien que le temps d'aller-retour de ces paquets soit utilisé pour calculer les temps d'aller-retour minimal/moyen/maximal/écart type.
L'écart type de la population (mdev), essentiellement une moyenne de l'écart entre le RTT de chaque ping et le RTT moyen. Plus l'écart type est élevé, plus le RTT est variable (dans le temps). Avec une variabilité élevée du RTT, vous aurez des problèmes de vitesse avec les transferts de masse (ils prendront plus de temps que nécessaire à proprement parler, car la variabilité fera que l'expéditeur finira par attendre les acquittements) et vous aurez une qualité de VoIP moyenne à médiocre.
Lorsque le nombre de paquets indiqués ont été envoyés (et reçus) ou si le programme se termine avec un SIGINT, un bref résumé est affiché. Des statistiques actuelles plus courtes peuvent être obtenues sans terminer le processus en utilisant le signal SIGQUIT.
Ce programme est fait pour être utilisé dans les tests, la mesure et l'administration du réseau. À cause de la charge qu'il peut infliger au réseau, il est imprudent d'utiliser ping pendant les opérations normales ou à partir de scripts automatisés.
CODE DE RETOUR¶
Si ping ne reçoit aucun paquet en retour, il quittera avec le code 1. Si un paquet est spécifié avec à la fois nombre et échéance, et que moins de paquets que nombre sont reçus au moment où l'échéance 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 hôte est actif ou non.
DESTINATIONS IPV6 LINK-LOCAL¶
Pour IPv6, lorsque l'adresse de destination a une portée locale (link-local scope) et que ping utilise des sockets de datagrames ICMP, l'interface de sortie doit être spécifiée. Lorsque ping utilise des sockets raw, il n'est pas strictement nécessaire de spécifier l'interface de sortie, mais cela est préférable pour lever l'ambigüité lorsqu'il y a plusieurs interfaces de sortie possibles.
Il y a deux manières de spécifier l'interface de sortie :
• en utilisant la notation %
ping fe80::5054:ff:fe70:67bc%eth0
ping fe80::5054:ff:fe70:67bc%2
• en utilisant l'option -l
DÉTAILS D'UN PAQUET ICMP¶
Un en-tête IP sans option comporte 20 octets. Un paquet ICMP ECHO_REQUEST contient 8 octets supplémentaires d'en-tête ICMP suivis d'une quantité arbitraire de données. Quand une taille_paquet est fournie, elle indique la taille de cette partie de données supplémentaires (56 octets par défaut). Par conséquent, la quantité de données reçues à l'intérieur d'un paquet IP de type ICMP ECHO_REPLY sera toujours de 8 octets supérieure à l'espace requis par les données (l'en-tête ICMP).
Si l'espace occupé par les données 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 délais aller-retour. Si l'espace des données est plus faible, aucun délai aller-retour n'est donné.
PAQUETS DUPLIQUÉS ET ENDOMMAGÉS¶
ping signalera les paquets dupliqués ou endommagés. Une duplication de paquets ne devrait jamais se produire, et semble être causée par des retransmissions inadéquates 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 présence d'une faible proportion de paquets dupliqués ne doive pas toujours vous inquiéter.
Les paquets endommagés constituent évidemment une cause sérieuse d'alerte et indiquent souvent une panne matérielle quelque part sur le chemin du paquet ping (dans le réseau ou dans les hôtes).
COLLISIONS D'IDENTIFIANT¶
À la différence de TCP et d'UDP qui utilisent le port pour identifier de façon unique le destinataire pour fournir des données, ICMP utilise le champ identifiant (ID) pour l'identification. Par conséquent, si sur la même machine, au même instant, deux processus de ping utilisent le même ID, la réponse ECHO peut être adressée au mauvais destinataire. C'est un problème connu dû à la taille limitée du champ ID de 16 bits. C'est une limite ancienne du protocole qui pour le moment ne peut pas être corrigé à 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 négative.
ping utilise le PID pour obtenir un numéro unique. La valeur par défaut de /proc/sys/kernel/pid_max est 32768. Sur les systèmes qui utilisent ping intensément et avec pid_max supérieur à 65535, des collisions sont inévitables.
TESTER DES MOTIFS DE DONNÉES DIFFÉRENTS¶
La couche (inter)réseau ne devrait jamais traiter des paquets différemment en fonction des données contenues dans la partie de données. Malheureusement, on a signalé des problèmes dépendant des données qui s'immiscent dans les réseaux et restent non détectés pendant une longue période de temps. Dans beaucoup de cas, le motif particulier qui aura des problèmes est un motif ne comportant pas suffisamment de « transitions », comme que des « un » ou que des « zéro », ou bien un motif proche de la limite (comme presque uniquement des « zéro »). Il ne suffit pas nécessairement de spécifier un motif de données ne comportant que des zéros (par exemple) sur la ligne de commandes étant donné que le motif qui entre en jeu est celui qui se trouve au niveau liaison de données, et que la relation entre ce que vous tapez et ce qui sera réellement envoyé sur le réseau par les contrôleurs peut être complexe.
Cela signifie que si vous avez un problème dépendant des données, 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 être envoyé sur votre réseau, ou qui prend beaucoup plus de temps à être transféré que d'autres fichiers de longueur similaire. Vous pouvez ensuite examiner ce fichier pour trouver des motifs répétés que vous pouvez tester en utilisant l'option -p de ping.
DÉTAILS SUR LE TTL¶
La valeur TTL (Time To Live, temps de vie) d'un paquet IP représente le nombre maximal de routeurs IP que ce paquet est autorisé à traverser avant d'être rejeté. Dans la pratique actuelle, vous pouvez vous attendre à ce que chaque routeur sur Internet décrémente le champ TTL d'exactement une unité.
Le champ TTL des paquets TCP peut prendre différentes valeurs. La valeur maximale de ce champ est 255 ; la valeur initiale recommandée 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 reçoit. Quand un système distant reçoit un paquet ping, il peut faire une de ces trois choses avec le champ TTL dans sa réponse :
BOGUES¶
VOIR AUSSI¶
HISTORIQUE¶
La commande ping apparaît dans 4.3BSD.
La version décrite ici est sa descendance spécifique à Linux.
Avec la version s20150815, le binaire ping6 disparait. Il a été fusionné à ping. La création d'un lien symbolique nommé ping6 pointant sur ping résultera en la même fonctionnalité qu'auparavant.
SÉCURITɶ
ping nécessite la capacité CAP_NET_RAW pour être exécuté : 1) si le programme est utilisé pour des requêtes sans écho (voir l'option -N) ou lorsque le champ d'identification est défini à 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 autorisé à créer un socket d'écho ICMP. Le programme peut nécessiter d'être utilisé dans le mode set-uid superutilisateur.
DISPONIBILITɶ
ping fait partie du paquet iputils.
TRADUCTION¶
La traduction française de cette page de manuel a été créée par Frédéric Delanoy <delanoy_f@yahoo.com> et bubu <bubub@no-log.org>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.
iputils 20240117 |