IT Explained

IT Explained:

Ping




Qu’est-ce que Ping ?

ping

Disponible sur quasiment tous les systèmes d’exploitation dotés d’une connectivité réseau, Ping est un utilitaire de ligne de commande qui permet de déterminer si un périphérique réseau est accessible.

La commande ping transmet une requête sur le réseau adressée à un appareil spécifique. On considère un ping comme concluant si la machine cible répond à l’ordinateur émetteur.

Que signifie le nom « Ping » ?

Si l’on en croit son auteur, le Ping doit son nom à la technologie sonar. Sur un sonar, un ping est une onde sonore dont la propagation permet de localiser un objet. Si cette onde rebondit sur l’objet visé, le son résonne, répondant ainsi à l’émetteur. On peut alors déterminer la distance et la position de l’objet en fonction du temps et de la direction de l’onde de réponse.

À la manière d’un sonar, la commande ping envoie à un hôte distant une « demande d’écho ». Si celle-ci atteint sa cible, l’hôte distant, celui-ci lui renvoie une « réponse d’écho ». La distance (c’est-à-dire le « nombre de sauts ») à parcourir pour atteindre le système distant se mesure en fonction de la réponse, mais aussi d’autres facteurs (perte de paquets et temps de réaction). Si le père de l’utilitaire ping assure avoir baptisé son programme d’après l’onomatopée décrivant le son émis par un sonar, d’aucuns pensent plutôt qu’il s’agit d’un acronyme correspondant à « Packet InterNet Groper ».

Comment fonctionne l’utilitaire Ping ?

 

L’utilitaire Ping utilise la demande d’écho et les messages de réponse d’écho via le protocole ICMP (Internet Control Message Protocole), qui fait partie intégrante de tout réseau IP. Quand une commande ping est émise, un paquet « Echo Request » est envoyé à l’adresse définie. Quand l’hôte distant reçoit cette demande, il y répond sous la forme d’un paquet « Echo Reply ».

Par défaut, la commande ping envoie généralement quatre ou cinq demandes d’écho. Le résultat de chacune d’entre elles s’affiche alors, ce qui permet de savoir si elle a obtenu une réponse, mais aussi de connaître le nombre d’octets contenus dans la réponse, la durée de vie (Time to Live), et le délai de réponse, ainsi que diverses statistiques relatives aux pertes de paquets et au temps de parcours aller-retour.

Format des messages Ping

 

La demande d’écho (ou « ping ») obéit à la structure suivante :

 

Byte 0 Byte 1 Byte 2 Byte 3
Type (8 = IPv4, ICMP; 128 = IPv6, ICMP6) Code Header Checksum
Identifier Sequence Number
Payload

 

La réponse d’écho doit mentionner la charge utile (payload) exacte reçue dans la demande :

 

Byte 0 Byte 1 Byte 2 Byte 3
Type (0 = IPv4, ICMP; 129 = IPv6, ICMP6) Code Header Checksum
Identifier Sequence Number
Payload

L’utilitaire Ping

L’utilitaire ping fait partie intégrante de la quasi-totalité des systèmes d’exploitation offrant une prise en charge réseau. Alors que les demandes et réponses d’écho prennent toujours la forme de messages ICMP, l’implémentation de l’utilitaire Ping peut, pour sa part, varier légèrement d’un fabricant à l’autre.

Sous sa forme la plus simple, le logiciel ping s’utilise à partir d’une simple commande ping et d’une adresse de destination. Pour définir l’hôte distant que l’on souhaite atteindre, on précisera simplement son nom ou son adresse.

ping 168.93.37.2

ping ftp.microsoft.com

 

L’image ci-dessous représente le résultat d’un simple ping vers l’hôte cible paessler.com :

ping paessler.com
Pinging paessler.com [104.16.182.252] with 32 bytes of data:
Reply from 104.16.182.252: bytes=32 time=4ms TTL=57
Reply from 104.16.182.252: bytes=32 time=4ms TTL=57
Reply from 104.16.182.252: bytes=32 time=4ms TTL=57
Reply from 104.16.182.252: bytes=32 time=4ms TTL=57

Ping statistics for 104.16.182.252:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 4ms, Maximum = 4ms, Average = 4ms

 

Précisons toutefois que l’utilitaire ping dispose aussi de plusieurs options paramétrables.

Commutateurs et variables Ping

La commande ping dispose de tout un arsenal de commutateurs permettant d’en modifier les paramètres par défaut à des fins spécifiques. Malheureusement, ces commutateurs n’ont pas été uniformisés et varient donc selon les plateformes. Par exemple, Windows emploie l’indicateur -n (pour nombre) pour définir le nombre de demandes d’écho à envoyer, alors que la majorité des systèmes Unix lui préfèrent l’indicateur -c (pour count, c’est-à-dire décompte).

Voici quelques exemples de commutateurs ping. En général, il suffit de taper la requête ping/ ? dans l’invite de commandes pour connaître la liste de commutateurs, ainsi que les lettres à saisir pour utiliser le commutateur sur le système d’exploitation.

Number (or count) – définit le nombre de demandes d’écho – ou demandes ping – à envoyer. Par défaut, ce nombre est fixé à 4 sur la majorité des systèmes Windows, et à 5 sur la majorité des systèmes de type Unix. En l’augmentant, on prolonge l’exécution du ping, ce qui permet de recueillir davantage de données afin, par exemple, de voir si le temps de réponse fluctue, ou de vérifier que le système demeure réactif.

Timeout – modifie le délai au bout duquel l’utilitaire va cesser d’attendre une réponse de la part de la cible et afficher le message « délai d’attente de la demande dépassée ». Sur les systèmes Windows, cette valeur est définie par défaut à 4 000 millisecondes, soit 4 secondes.

Size – modifie la taille du paquet à envoyer. Par défaut, les requêtes font 32 octets sur Windows, et 64 sur beaucoup de systèmes Unix/Linux.

TTLchange la valeur de la durée de vie (Time To Live).

IP4 ou IP6 – répond avec des adresses IPv4 ou IPv6. (« ping -4 » ou « ping -6 » sous Windows, « ping » ou « ping6 » sous Linux)

Until stopped – le ping s’exécute en continu jusqu’à ce que l’utilisateur l’arrête (commande « -t » sous Windows)

Syntaxe des commandes ping sous Windows

 

-t Effectue un test ping sur l’hôte spécifié jusqu’à son arrêt.
Pour arrêter, appuyez sur Ctrl + C
-a Résout les adresses en noms d’hôtes

-n

Nombre de demandes d’écho à envoyer
-l  Taille du tampon d’envoi
-f Active l’indicateur Ne pas fragmenter dans le paquet (IPv4 uniquement)
-i Durée de vie
-v Définit le type de service (paramètre devenu obsolète)
-r Itinéraire d’enregistrement du nombre de sauts (IPv4 uniquement)
-s Horodatage du nombre de sauts (IPv4 uniquement)
-j Itinéraire source libre parmi la liste d’hôtes (IPv4 uniquement)
-k Itinéraire source strict parmi la liste d’hôtes (IPv4 uniquement)
-w Délai d’attente pour chaque réponse, en millisecondes
-R Utilise l’en-tête de routage pour tester également l’itinéraire inverse (IPv6 uniquement, obsolète depuis le RFC 5095)
-S Adresse source à utiliser
-c Identificateur de compartiment de routage
-p Effectue un test ping sur l’adresse de fournisseur de la virtualisation réseau Hyper-V
-4 Force l’utilisation d’IPv4
-6 Force l’utilisation d’IPv6

 

Test Your Ping Speed

Comment utiliser l’outil ping ?

S’il s’agit d’un petit utilitaire tout à fait basique, la commande ping n’en est pas moins un outil qui s’avèrera précieux dans bien des situations. Comme il est accessible depuis la ligne de commande, le logiciel ping se prête aux usages les plus simples via divers scripts qui permettent d’exécuter de nombreuses requêtes d’écho et de les enregistrer à différentes fins. Par exemple, on peut aisément transférer les résultats d’un test ping dans un fichier texte pour les consulter plus tard.

Utilisation de Ping à des fins de dépannage

C’est probablement dans le cadre du dépannage réseau que l’utilitaire ping est le plus utilisé. Quand on tente d’utiliser des applications ou des systèmes sur un réseau, l’essentiel est de savoir s’il y a vraiment une connexion opérationnelle. Heureusement, il existe une série de commandes ping qui permettent de déterminer la nature du problème.

Un ping par adresse IP permet de déterminer en quelques secondes si le système est actif, si une connexion a bien été établie, et si les deux machines sont capables de dialoguer.

 

Ping 172.168.9.13

 

Si le test ping par nom et par adresse IP se déroule sans anicroche, mais que les temps de réponse sont élevés, c’est que vous avez un problème de routage, de vitesse du réseau ou de congestion. Un test ping, même s’il reste sans réponse, peut être l’occasion d’obtenir des informations précieuses dans une optique de dépannage.

Si un ping par adresse IP fonctionne comme prévu, mais qu’un ping par nom reste sans réponse, c’est que la résolution des noms est en cause. Si le ping échoue totalement, vous pouvez essayer d’effectuer un test sur d’autres parties du réseau afin d’isoler le souci. Si le ping est réussi sur la passerelle par défaut, vous pouvez en conclure que la connexion réseau fonctionne normalement, mais que quelque chose interfère avec une connexion au système distant.

Si vous parvenez à pinguer le même sous-réseau du système distant, mais pas le système cible en soi, la connectivité réseau de l’hôte distant est probablement en cause. Si la passerelle par défaut est injoignable, mais que l’adresse de bouclage (127.0.0.1) réagit normalement au test ping, c’est que l’interface réseau fonctionne, mais qu’il n’y a pas de connexion au réseau.

Échec du test ping

Si la demande ping ne reçoit pas de réponse de la part de l’hôte cible, la plupart des instances de ping n’affichent rien, ou une notification d’expiration. Le résultat peut ressembler à ceci :

Pinging 121.242.124.9 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

 

Détection

Quoique la méthode soit peu orthodoxe, on peut se servir de ping comme d’un outil de détection rapide. Étant donné que la quasi-totalité des périphériques connectés au réseau sont voués à répondre à un ping, un administrateur peut envoyer une demande d’écho à une plage d’adresses de sorte, par exemple, à détecter tous les appareils raccordés sur cette plage, ce quel que soit leur type ou leur système d’exploitation.

Supervision

Le ping permet de vérifier que les périphériques du réseau sont disponibles. Via une commande ping qui s’exécute à intervalles prédéfinis, on peut interroger de façon rudimentaire n’importe quel appareil ou ordinateur connecté à un réseau sans avoir à installer d’agents logiciel supplémentaires ou à ouvrir des ports supplémentaires. On peut ainsi effectuer le test de disponibilité le plus élémentaire en envoyant une requête d’écho conçue pour tourner en continu jusqu’à ce qu’elle soit arrêtée. Quand la requête d’écho commence à rester sans réponse, c’est qu’il y a un problème pour joindre le système.

À l’évidence, ces solutions sont bien plus efficaces si on les utilise conjointement à un outil de supervision comme PRTG, qui s’appuie lui aussi sur l’utilisation de commandes ping, mais qui dispense l’utilisateur de consulter leurs résultats, ou d’avoir à transférer ces résultats dans un quelconque document.

Dans sa version standard, le capteur Ping fait tourner des commandes ping en arrière-plan. On peut configurer celles-ci pour qu’elles s’exécutent à des intervalles spécifiques, ou en réaction à un autre événement. Par exemple, si un capteur détecte une défaillance de la connexion, un ping peut permettre de déterminer s’il y a toujours une connexion réseau. Il est aussi possible de paramétrer le mécanisme de supervision pour qu’il avertisse l’administrateur si les temps de réponse deviennent excessivement longs, ou si un trop grand nombre de paquets se perdent en route.

Parmi les capteurs reposant sur la commande ping, on peut également s’intéresser au capteur Cloud Ping, qui pingue les systèmes à superviser depuis un cloud distant de systèmes distribués. Cette sonde dispose d’un système d’alerte aussi sophistiqué qu’utile, qui vous prévient quand vos systèmes semblent fonctionner à la perfection de votre côté, mais qu’ils sont, pour un motif inconnu, injoignables de l’extérieur par les utilisateurs ou clients distants.

Sécurité

Parfois, il suffit à une personne malveillante de savoir qu’un système existe et qu’il est connecté au réseau pour lancer une attaque. Une analyse minutieuse des réponses d’écho peut apporter des informations supplémentaires comme la nature du système d’exploitation sur lequel la cible tourne, la localisation de la machine, etc.

Parmi les outils dont se servent les hackers, nombreux sont ceux s’appuient sur la technique qui consiste à « parcourir la plage IP », c’est-à-dire à envoyer un ping à chacune des adresses d’un réseau ciblé afin d’obtenir une liste des systèmes qui sont joignables et prêts à répondre. C’est la raison pour laquelle beaucoup de pare-feu sont configurés pour bloquer les demandes d’écho émanant de réseaux non approuvés.