Utiliser les commandes PING et ARP pour récupérer l'adresse MAC d'un équipement

Utiliser les commandes PING et ARP pour récupérer l’adresse MAC d’un équipement

Voici 3 commandes très utiles pour faire des diagnostics ou récupérer rapidement des informations sur un réseau informatique. Avec cette astuce nous allons voir comment récupérer très simplement l’adresse MAC d’une machine et pinger une adresse MAC.

Définition commande Ping, ARP, Adresse MAC

Tout d’abord, pour les plus néophytes d’entre-nous, voici une petite explication des différents termes abordés dans ce tutoriel :

  • Adresse MAC : Chaque carte / interface réseau dispose d’une adresse unique, appelée adresse MAC (Media Access Control address) , affectée par le constructeur de la carte, ce qui lui permet d’être identifiée de façon unique dans le monde parmi toutes les autres cartes réseau. La première moitié de l’adresse MAC indique le constructeur.
  • Commande Ping : Ping est le nom d’une commande informatique permettant de tester l’accessibilité d’une autre machine à travers un réseau IP. La commande mesure également le temps mis pour recevoir une réponse, appelé round-trip time (temps aller-retour). Ping utilise une requête ICMP Echo et attend une réponse Echo Reply. L’envoi est répété pour des fins de statistiques : déterminer le taux de paquet perdu et le délai moyen.
  • Commande ARP : La commande arp permet de visualiser ou modifier la table du cache ARP d’une interface. Elle donne la correspondance entre une adresse IP et une adresse MAC. Le cache ARP de l’interface est mis à jour à chaque nouvelle requête.

Fonctionnement du protocole ARP

Voici une description du fonctionnement du protocole ARP sous forme d’étapes claires et détaillées :

Étape 1 : Identification du besoin d’adresse MAC

  • Lorsqu’une machine souhaite communiquer avec une autre machine sur le même réseau local, elle a besoin de connaître l’adresse MAC de la destination.
  • Elle possède l’adresse IP de la destination, mais pas son adresse MAC.

Étape 2 : Envoi d’une requête ARP (ARP Request)

  • La machine émettrice crée une requête ARP (ARP Request) pour demander :
    « Qui possède l’adresse IP X.X.X.X ? Répondez avec votre adresse MAC. »
  • Cette requête est diffusée (broadcast) à toutes les machines du réseau local.
    • Adresse IP source : IP de l’émetteur.
    • Adresse MAC source : MAC de l’émetteur.
    • Adresse IP cible : IP de la machine recherchée.
    • Adresse MAC cible : Inconnue (souvent remplie par 00:00:00:00:00:00).

Étape 3 : Réception de la requête par les machines

  • Toutes les machines du réseau reçoivent la requête ARP grâce à la diffusion.
  • Chaque machine compare l’adresse IP cible dans la requête avec sa propre adresse IP.

Étape 4 : Réponse ARP (ARP Reply)

  • La machine dont l’adresse IP correspond à la requête ARP répond directement (unicast) à l’émetteur initial.
    • La réponse contient son adresse MAC associée à l’adresse IP demandée.
    • Ex. : « Mon adresse MAC est 00:1A:2B:3C:4D:5E pour l’adresse IP X.X.X.X. »

Étape 5 : Mise à jour du cache ARP

  • La machine émettrice reçoit la réponse ARP et stocke l’association IP ↔ MAC dans son cache ARP.
  • Cela permet de ne pas envoyer de nouvelles requêtes ARP pour cette IP tant que l’entrée est valide.

Étape 6 : Envoi des données

  • L’émetteur peut désormais envoyer ses données en incluant l’adresse MAC cible dans la trame Ethernet.
  • Les communications futures entre les deux machines utiliseront cette entrée du cache ARP tant qu’elle reste valide.

Cas particuliers et gestion

  • Entrée ARP expirée : Les entrées dans le cache ARP ont une durée de vie limitée. Si elles expirent, une nouvelle requête ARP est nécessaire.
  • ARP Proxy : Sur des réseaux complexes, un routeur ou un autre appareil peut répondre à une requête ARP pour le compte d’une machine située sur un autre sous-réseau.

Voici une vidéo qui détaille le fonctionnement du protocole ARP :

Pourquoi effectuer une commande ping avant d’utiliser arp ?

Provoquer la mise à jour de la table ARP

Quand vous pinger une adresse IP, votre ordinateur transmet une demande ICMP à l’adresse IP visée. Pour que cette communication se réalise, votre système doit préalablement identifier l’adresse MAC liée à cette IP. Si l’adresse MAC n’est pas déjà présente dans la table ARP, une requête ARP sera automatiquement émise et la réponse viendra compléter cette table.

Forcer une résolution ARP

Si l’adresse IP cible n’a pas été récemment sollicitée, il se peut que son entrée ait été supprimée de la table ARP. Le ping entraîne une résolution ARP pour l’adresse IP cible, actualisant la table ARP avec l’adresse MAC associée.

Validation de la connexion

Le ping permet aussi de vérifier que l’adresse IP cible est accessible sur le réseau, ce qui est utile pour s’assurer que l’appareil est actif.

Messages d’erreur courants avec la commande ping et comment les résoudre

Destination Host Unreachable

Destination Host Unreachable, ce message indique que le routeur ou le périphérique intermédiaire ne peut pas atteindre l'hôte cible. Cela signifie que le paquet ICMP n'a pas pu être transmis à l'adresse IP de destination.

Ce message indique que le routeur ou le périphérique intermédiaire ne peut pas atteindre l’hôte cible. Cela signifie que le paquet ICMP n’a pas pu être transmis à l’adresse IP de destination.

Causes possibles :

  • Mauvaise configuration de la passerelle par défaut sur l’hôte source.
  • Le périphérique cible ou un routeur intermédiaire est hors ligne.
  • Filtrage des paquets ICMP par un pare-feu local ou réseau.

Solutions :

  • Vérifiez la passerelle par défaut et assurez-vous qu’elle est configurée correctement.
  • Vérifiez si le périphérique cible est allumé et connecté au réseau.
  • Désactivez temporairement les pare-feux pour tester si ICMP est bloqué.
  • Si vous avez accès à un routeur ou un switch intermédiaire, vérifiez sa configuration réseau.

Request Timed Out

Ce message signifie que la demande ICMP a été envoyée, mais aucune réponse n'a été reçue dans le délai imparti.

Ce message signifie que la demande ICMP a été envoyée, mais aucune réponse n’a été reçue dans le délai imparti.

Causes possibles :

  • L’adresse IP cible est incorrecte ou hors du sous-réseau actuel.
  • Le périphérique cible est hors ligne ou non disponible.
  • Filtrage ICMP par des pare-feux.
  • Problèmes physiques comme des câbles débranchés ou des points d’accès inaccessibles.

Solutions :

  • Vérifiez l’adresse IP cible et assurez-vous qu’elle est correcte.
  • Vérifiez la connectivité physique (câbles, ports, connexions Wi-Fi).
  • Testez la commande avec un autre périphérique sur le même réseau pour identifier s’il s’agit d’un problème généralisé.
  • Inspectez les règles de pare-feu locales et réseau pour ICMP.

Unknown Host

Ce message apparaît lorsque le nom d'hôte que vous avez essayé de pinguer ne peut pas être résolu en une adresse IP.

Ce message apparaît lorsque le nom d’hôte que vous avez essayé de pinguer ne peut pas être résolu en une adresse IP.

Causes possibles :

  • Problème de configuration DNS ou serveur DNS inaccessible.
  • Erreur typographique dans le nom d’hôte saisi.
  • Le domaine ou l’hôte n’existe pas ou n’est pas connu par le DNS.

Solutions :

  • Vérifiez l’orthographe du nom d’hôte.
  • Assurez-vous que le serveur DNS est accessible en testant une autre requête DNS (ex. : utiliser nslookup).
  • Configurez correctement les serveurs DNS dans vos paramètres réseau (vérifiez les paramètres DHCP ou IP statique).

General Failure

Ce message signifie que le ping a échoué de manière globale et que le système d'exploitation n'a pas pu envoyer la demande ICMP.

Ce message signifie que le ping a échoué de manière globale et que le système d’exploitation n’a pas pu envoyer la demande ICMP.

Causes possibles :

  • Problème lié au réseau local (pile réseau corrompue).
  • Problème matériel sur l’interface réseau.
  • Permissions limitées pour l’utilisation de la commande ping.

Solutions :

  • Redémarrez l’interface réseau ou l’adaptateur réseau.
  • Exécutez la commande ping en tant qu’administrateur (sous Windows, ouvrez le terminal avec des privilèges élevés).
  • Réinitialisez la pile TCP/IP en utilisant les commandes appropriées (netsh int ip reset sous Windows, ou sudo ip route flush cache sous Linux).
  • Vérifiez les paramètres de votre interface réseau et les pilotes.

TTL Expired in Transit

Ce message indique que le TTL (Time-To-Live) d’un paquet a atteint zéro avant d'arriver à sa destination. Il est couramment utilisé pour diagnostiquer les boucles réseau.

Ce message indique que le TTL (Time-To-Live) d’un paquet a atteint zéro avant d’arriver à sa destination. Il est couramment utilisé pour diagnostiquer les boucles réseau.

Causes possibles :

  • Problèmes de routage causant des boucles réseau.
  • TTL initial trop faible configuré pour la commande ping.
Solutions :

  • Vérifiez la topologie réseau pour identifier les boucles possibles.
  • Utilisez la commande avec une valeur TTL plus élevée (par exemple, sous Windows ping -i 128 <adresse_IP>).

Ping : Network is Unreachable

Ce message signifie que le système d'exploitation ne trouve aucune route valide pour atteindre l'adresse IP cible.

Ce message signifie que le système d’exploitation ne trouve aucune route valide pour atteindre l’adresse IP cible.

Causes possibles :

  • Configuration réseau incorrecte (pas de passerelle par défaut).
  • Le sous-réseau cible est inaccessible depuis votre réseau local.
Solutions :

  • Vérifiez les paramètres de routage sur votre machine avec route print sous Windows ou ip route sous Linux.
  • Confirmez que la passerelle par défaut est configurée et accessible.
  • Vérifiez les configurations réseau avancées (telles que le VPN ou les tunnels).

Conseils supplémentaires pour la résolution de problèmes ping

  • Traceroute/tracert : Utilisez traceroute (Linux/macOS) ou tracert (Windows) pour diagnostiquer le chemin réseau et identifier où les paquets sont bloqués.
  • ARP & Adresse MAC : Vérifiez la table ARP pour vous assurer que l’adresse IP cible résout correctement son adresse MAC sur le réseau local.
  • Nmap ou autres scanners : Utilisez des outils comme nmap pour scanner les ports ouverts et vérifier si des services bloquent ICMP.

Ces étapes devraient vous permettre d’identifier et de résoudre les problèmes courants liés à la commande ping.

Récupérer l’adresse MAC d’une machine

Pour récupérer l’adresse MAC d’une machine, vous devez tout d’abord effectuer un ping. Par exemple

quicktutoriel#ping biquette

Pour récupérer l'adresse MAC d'une machine, vous devez tout d'abord effectuer un ping.

Si la machine est présente sur le réseau elle doit vous répondre (voir ci-dessus). Par contre si la machine est injoignable, vous aurez cette réponse

Récupérer l'adresse MAC d'une machine

Une fois le ping effectué vous pouvez récupérer l’adresse ip, ici 192.168.1.3 et maintenant il suffit d’utiliser la commande arp pour trouver l’adresse MAC.

quicktutoriel# arp -a 192.168.1.3

Une fois le ping effectué vous pouvez récupérer l'adresse ip, ici 192.168.1.3 et maintenant il suffit d'utiliser la commande arp pour trouver l'adresse MAC.

La machine ayant l’adresse 192.168.1.3 à comme adresse MAC 00:19:70:0B:14:6B.

Vous pouvez maintenant exploiter le résultat de cette commande pour bloquer / autoriser un accès à une machine, effectuer une réservation DHCP, les applications sont multiples.

Si l’adresse MAC n’apparaît pas après le ping, assurez-vous que :

  • L’appareil cible est en ligne.
  • Vous êtes sur le même réseau local (ARP ne fonctionne pas au-delà des routeurs).
  • Les réponses ARP ne sont pas bloquées par un pare-feu ou des configurations réseau spécifiques.
  • Si le système cible est configuré pour ne pas répondre aux requêtes ARP (peu fréquent), vous devrez peut-être utiliser des outils spécialisés comme arp-scan.

En résumé, la commande ping prépare l’environnement pour que arp puisse fournir l’adresse MAC correspondante à une adresse IP en actualisant la table ARP.

Si la ligne de commande vous rebute, vous pouvez télécharger le logiciel gratuit Advanced IP Scannerc’est un programme qui vous sera d’une très grande utilité si vous désirez prendre le contrôle d’une machine à distance ou exécuter des actions sur des PC distants situés sur un même réseau. C’est un programme très efficace qui est compatible avec différents protocoles comme par exemple le protocole ARP et qui dispose d’une interface graphique intuitive.

Récupérer votre adresse MAC avec la commande AWK sous Linux

Grâce à cette ligne de commande vous allez pouvoir récupérer très facilement l’adresse MAC de votre carte réseau.

$ ifconfig | awk '/^eth0/ {print $5}'

Récupérer votre adresse MAC avec la commande AWK sous Linux

Bien sur vous pouvez récupérer l’adresse MAC d’une autre interface que Eth0, par exemple Eth1, il suffit pour cela de remplacer Eth0 par Eth1 dans le bout de script.

Une définition s’impose sur le terme Adresse MAC : c’est une adresse physique d’une interface réseau fixée par le constructeur qui permet d’identifier de façon unique une machine sur un réseau local.

L’adresse MAC est un identifiant physique unique pour toutes les cartes réseaux dans le monde. Elle est inscrite en usine de manière définitive dans la ROM.

Elle est constituée de 6 octets variant de 0 à 255. L’adresse est souvent donnée sous forme hexadécimale (par exemple 5E.FF.56.A2.AF.15). L’adresse FF.FF.FF.FF.FF.FF est particulière, les données sont envoyées à l’ensemble du réseau. C’est l’adresse de broadcast.

Le protocole Ethernet utilise cette adresse MAC pour faire communiquer des équipements entre eux via un réseau local. Quand une machine veut communiquer avec une autre, elle envoie un paquet sur le réseau, contenant l’adresse MAC destination et l’adresse MAC source.

signature manuelle Guillaume

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *