Dans un réseau local Ethernet, les commutateurs de couche 2 utilisent des tables d'adresses MAC pour transmettre les paquets. Cependant, lorsqu'un hôte A (adresse IP 10.0.1.10) souhaite communiquer avec un hôte B (adresse IP 10.0.1.20), il ne connaît que l'adresse IP de ce dernier. Pour résoudre ce problème, le protocole ARP (Address Resolution Protocol) entre en jeu. L'hôte A envoie une requête ARP diffusée sur le réseau pour obtenir l'adresse MAC de l'hôte B. Une fois cette information acquise, l'hôte A encapsule l'adresse MAC de destination dans les trames, permettant au commutateur de les acheminer correctement. De plus, l'hôte B apprend simultanément les adresses IP et MAC de l'hôte A, ce qui évite une requête ARP supplémentaire pour la réponse.
Remarque : ARP est exclusif aux réseaux IPv4 car il repose sur la diffusion, alors que IPv6 utilise d'autres mécanismes comme NDP (Neighbor Discovery Protocol).
Fonctionnement des paquets ARP
Requête ARP
Un paquet de requête ARP contient les champs suivants, illustrés par un exemple simulé :
Trame Ethernet II
Source : 00:1A:2B:3C:4D:5E (adresse MAC de l'hôte A)
Destination : ff:ff:ff:ff:ff:ff (adresse MAC de diffusion)
Protocole de Résolution d'Adresses (requête)
Type matériel : Ethernet (1)
Type de protocole : IPv4 (0x0800)
Taille matérielle : 6
Taille protocole : 4
Code opération : requête (1)
Adresse MAC émetteur : 00:1A:2B:3C:4D:5E
Adresse IP émetteur : 10.0.1.10
Adresse MAC cible : 00:00:00:00:00:00 (inconnue)
Adresse IP cible : 10.0.1.20
- Champ Ethernet II : L'adresse source est celle de l'hôte émetteur. L'adresse de destination est l'adresse de diffusion pour atteindre tous les appareils du réseau.
- Champ ARP : Le code opération à 1 indique une requête. L'adresse MAC cible est définie à zéro car elle est inconnue, tandis que l'adresse IP cible correspond à l'hôte recherché.
Réponse ARP
Voici un exemple de paquet de réponse ARP :
Trame Ethernet II
Source : 00:5E:6F:7A:8B:9C (adresse MAC de l'hôte B)
Destination : 00:1A:2B:3C:4D:5E (adresse MAC de l'hôte A)
Protocole de Résolution d'Adresses (réponse)
Code opération : réponse (2)
Adresse MAC émetteur : 00:5E:6F:7A:8B:9C
Adresse IP émetteur : 10.0.1.20
Adresse MAC cible : 00:1A:2B:3C:4D:5E
Adresse IP cible : 10.0.1.10
L'hôte B répond directement à l'hôte A, car il a appris son adresse MAC via la requête ARP. Cette échange permet d'établir la communication.
ARP Gratuit (ARP Announcement)
Un paquet ARP gratuit est envoyé par un hôte pour annoncer son adresse MAC à tout le réseau, souvent après un changement d'adresse IP. Il ressemble à une requête ARP, mais les adresses IP source et cible sont identiques.
Trame Ethernet II
Source : 00:AA:BB:CC:DD:EE
Destination : ff:ff:ff:ff:ff:ff
Protocole de Résolution d'Adresses (annonce ARP)
Code opération : requête (1)
[Gratuit : Vrai]
Adresse MAC émetteur : 00:AA:BB:CC:DD:EE
Adresse IP émetteur : 10.0.1.15
Adresse MAC cible : 00:00:00:00:00:00
Adresse IP cible : 10.0.1.15 (identique à la source)
Sonde ARP (ARP Probe)
Lorsqu'un hôte reçoit une adresse IP via DHCP, il peut envoyer une sonde ARP pour vérifier si cette adresse est déjà utilisée. Si une réponse est reçue, l'adresse est considérée comme en conflit.
Exemple de sonde ARP :
Trame Ethernet II
Source : 00:11:22:33:44:55
Destination : ff:ff:ff:ff:ff:ff
Protocole de Résolution d'Adresses (sonde)
Code opération : requête (1)
[Sonde : Vrai]
Adresse MAC émetteur : 00:11:22:33:44:55
Adresse IP émetteur : 0.0.0.0 (adresse non encore attribuée)
Adresse MAC cible : 00:00:00:00:00:00
Adresse IP cible : 10.0.1.30 (adresse à vérifier)
Si un autre hôte répond avec un paquet ARP indiquent l'utilisation de cette adresse, un conflit d'adresse IP est détecté.
Aspects avancés d'ARP
ARP Statique et Dynamique
Les entrées ARP statiques sont permanentes et doivent être configurées manuellement. Sur les commutateurs Huawei, la commande reset arp static supprime toutes les entrées statiques, tandis que undo arp static 10.0.1.1 0001-0001-0001 en supprime une seule. Les entrées ARP dynamiques ont un temps de vie par défaut de 20 minutes et peuvent être effacées avec reset arp dynamic.
Apprentissage ARP Strict
Cette fonctionnalité limite l'apprentissage ARP aux réponses aux requêtes envoyées par l'appareil, renforçant ainsi la sécurité. La commande arp learning strict avec des paramètres comme force-enable ou trust permet de contrôler ce comportement.
ARP Miss et Protection contre les Attaques
Lorsqu'un appareil reçoit des paquets IP dont l'adresse de destination ne peut être résolue via ARP, cela déclenche des messages ARP Miss. Cela peut surcharger le processeur et consommer de la bande passante. Pour atténuer ce risque, des mécanismes de limitation de débit sont disponibles, comme ajuster le temps de vie des entrées ARP temporaires via la commande arp fake timeout sur une interface.
Proxy ARP
Le proxy ARP permet à un routeur de répondre aux requêtes ARP pour des hôtes sur d'autres sous-réseaux, facilitant ainsi la communication entre réseaux séparés sans passerelle configurée sur les hôtes. Par exemple, si l'hôte A (10.0.1.10/24) cherche à atteindre l'hôte B (10.0.2.10/24), le routeur avec proxy ARP activé répondra à la requête ARP de l'hôte A en son propre nom.
RARP (Reverse ARP)
Le protocole RARP (Reverse Adress Resolution Protocol) est utilisé pour obtenir une adresse IP à partir d'une adressse MAC. Bien que rarement employé aujourd'hui, il a été historiquement utilisé par des dispositifs sans stockage local pour découvrir leur configuration réseau.