ARP et ICMP : résolution d'adresses et diagnostic réseau
ARP relie les adresses IP aux adresses MAC sur le réseau local, ICMP transporte les messages d'erreur et de diagnostic. Deux protocoles discrets, mais au cœur de tout dépannage.
Deux protocoles travaillent en coulisse à chaque communication IPv4 : ARP, qui découvre l'adresse MAC correspondant à une adresse IP sur le réseau local, et ICMP, qui signale les erreurs et sert aux outils de diagnostic comme ping et traceroute. Lorsqu'une connexion échoue, ce sont souvent eux qui donnent l'indice décisif.
Objectif : comprendre le fonctionnement d'ARP et d'ICMP, interpréter leurs messages et les utiliser méthodiquement pour diagnostiquer.
ARP : de l'adresse IP à l'adresse MAC
Pour envoyer une trame Ethernet, un hôte doit connaître l'adresse MAC du destinataire immédiat. Or les applications ne manipulent que des adresses IP. ARP (Address Resolution Protocol, RFC 826) fait le lien.
Fonctionnement
- L'hôte A (10.20.0.57) veut joindre 10.20.0.80. Il consulte son cache ARP.
- Si l'entrée est absente, il diffuse une requête ARP : « Qui a 10.20.0.80 ? Répondez à 10.20.0.57. »
- Tous les hôtes du segment reçoivent la requête ; seul 10.20.0.80 répond, en unicast, avec son adresse MAC.
- A enregistre la correspondance dans son cache, pour une durée limitée.
La règle de la passerelle
Si la destination est hors du sous-réseau local, l'hôte ne cherche pas la MAC de la destination finale : il résout l'adresse MAC de sa passerelle par défaut. C'est pourquoi une erreur de masque peut provoquer des comportements étranges : l'hôte croit une machine locale alors qu'elle ne l'est pas, et ses requêtes ARP restent sans réponse.
Consulter le cache ARP
ip neigh show # Linux
arp -a # Windows
Get-NetNeighbor -AddressFamily IPv4
Switch# show ip arp ! Cisco (routeur ou commutateur L3)
États courants sous Linux : REACHABLE (confirmée récemment), STALE (à revérifier lors du prochain usage), FAILED (aucune réponse). Une passerelle en état FAILED explique immédiatement l'absence de connectivité vers l'extérieur.
ARP gratuit
Un hôte peut annoncer sa propre correspondance IP/MAC sans qu'on le lui demande : c'est l'ARP gratuit (gratuitous ARP). Il sert à détecter les conflits d'adresse et à mettre à jour les caches lors d'une bascule, par exemple quand une adresse virtuelle de haute disponibilité change de serveur.
ICMP : le protocole de signalisation
ICMP (Internet Control Message Protocol, RFC 792 pour IPv4, RFC 4443 pour ICMPv6) transporte des messages de contrôle et d'erreur. Il est encapsulé dans IP mais fait partie intégrante de la couche réseau.
Messages ICMPv4 les plus utiles
| Type | Code | Message | Interprétation |
|---|---|---|---|
| 0 | 0 | Echo Reply | Réponse à un ping |
| 8 | 0 | Echo Request | Requête de ping |
| 3 | 0 | Network Unreachable | Aucune route vers le réseau |
| 3 | 1 | Host Unreachable | Hôte injoignable (souvent : pas de réponse ARP sur le dernier segment) |
| 3 | 3 | Port Unreachable | Aucun service UDP sur ce port |
| 3 | 4 | Fragmentation Needed (DF set) | Paquet trop grand ; indispensable à la découverte de MTU |
| 3 | 13 | Communication Administratively Prohibited | Filtré par une ACL ou un pare-feu |
| 11 | 0 | Time Exceeded (TTL) | TTL épuisé en transit ; utilisé par traceroute |
| 5 | — | Redirect | Le routeur signale un meilleur premier saut |
Utiliser ping efficacement
ping envoie des Echo Request et mesure le temps de réponse.
ping -c 4 10.20.0.1 # Linux : 4 paquets
ping -c 4 -s 1472 -M do 10.20.0.1 # taille fixe, fragmentation interdite (test de MTU)
ping -n 4 10.20.0.1
ping -f -l 1472 10.20.0.1 # Windows : DF + taille de 1472 octets de données
Test-Connection 10.20.0.1 -Count 4
Lire le résultat
- Réponses régulières : la couche 3 fonctionne jusqu'à la cible, dans les deux sens.
- « Destination host unreachable » renvoyé par la passerelle : la passerelle n'obtient pas de réponse ARP de la cible.
- Délai dépassé : paquets perdus ou filtrés, à l'aller ou au retour.
- Pertes intermittentes et latence variable : congestion, liaison sans fil dégradée, duplex incohérent.
Un ping qui échoue ne prouve pas que l'hôte est arrêté : de nombreux systèmes (le pare-feu Windows par défaut sur les profils publics, par exemple) et pare-feu filtrent ICMP. À l'inverse, un ping réussi ne prouve pas qu'un service TCP fonctionne.
Utiliser traceroute
traceroute (Linux) et tracert (Windows) découvrent les routeurs traversés en envoyant des paquets dont le TTL augmente progressivement : chaque routeur qui ramène le TTL à zéro renvoie un message Time Exceeded, révélant son adresse.
traceroute -n 203.0.113.10 # sonde UDP par défaut sous Linux
traceroute -n -T -p 443 203.0.113.10 # sonde TCP vers le port 443 (droits administrateur)
mtr -n 203.0.113.10 # combine ping et traceroute en continu
tracert -d 203.0.113.10 # sonde ICMP Echo
Lecture : des astérisques sur un saut intermédiaire, suivies de réponses aux sauts suivants, indiquent simplement que ce routeur ne répond pas ou limite ses messages ICMP. Ce n'est pas une panne. En revanche, des astérisques jusqu'à la fin, à partir d'un saut donné, situent la zone du problème.
Scénario de diagnostic combiné
Un serveur 10.30.0.25 ne joint plus son voisin 10.30.0.26, sur le même VLAN.
$ ping -c 2 10.30.0.26
From 10.30.0.25 icmp_seq=1 Destination Host Unreachable
$ ip neigh show 10.30.0.26
10.30.0.26 dev eth0 FAILED
La requête ARP n'obtient pas de réponse : le problème est en couche 2 ou sur l'hôte cible (interface arrêtée, mauvais VLAN, câble). Inutile d'examiner les routes ou le pare-feu de niveau 3. La vérification suivante se fait sur le commutateur : show mac address-table address <MAC> et l'état du port (le fonctionnement de cette table est détaillé dans Ethernet, adresses MAC et commutation).
Erreurs courantes
- Bloquer tout ICMP sur un pare-feu : on casse la découverte de MTU (Fragmentation Needed) et l'on rend le diagnostic aveugle. Autorisez au minimum les messages d'erreur essentiels.
- Interpréter les astérisques de traceroute comme des pertes.
- Oublier l'asymétrie : le retour peut emprunter un autre chemin que l'aller.
- Ignorer un conflit d'adresse IP, révélé par une adresse MAC qui change dans le cache ARP.
Implications de sécurité
ARP n'a aucun mécanisme d'authentification : un attaquant sur le segment peut envoyer de fausses réponses et se placer entre deux machines (usurpation ARP, ou ARP spoofing). Les commutateurs gérés offrent une contre-mesure, la Dynamic ARP Inspection (voir Configurer et sécuriser un commutateur Cisco), qui s'appuie sur les correspondances apprises par DHCP Snooping. Côté ICMP, la limitation de débit protège contre les abus, et le filtrage doit rester sélectif (voir la RFC 4890 pour ICMPv6). En IPv6, ARP est remplacé par NDP, exposé à des attaques similaires et protégé par RA Guard et des mécanismes équivalents.
Conclusion
ARP répond à la question « quelle MAC pour cette IP sur mon segment ? », ICMP à la question « que s'est-il passé avec mon paquet ? ». Consultez la table ARP avant d'accuser le routage, lisez les codes ICMP avant de conclure, et vous diagnostiquerez plus vite et plus juste. Pour aller plus loin, la méthodologie de dépannage réseau replace ces vérifications dans une démarche complète. Les commandes associées sont regroupées dans la référence des commandes réseau.


