[Fondamentaux] ARP / NDP
Introduction
L'ARP pour Address Resolution Protocol permet la résolution d'adresse MAC à partir des adresses IP, pour que les échanges de paquets puissent s'effectuer entre deux machines d'un même réseau local. Il agit entre la couche 2 et 3 du modèle OSI
Fonctionnement
Lors de l'arrivée d'un appareil sur le réseau, celui-ci ne peut pas communiquer avec en utilisant des paquets IP avec les autres machines du réseau car il a besoin de l'adresse MAC de destination pour pouvoir joindre l'hôte de destination.
C'est ici qu'entre en jeu ARP qui va permettre aux hôtes du réseau de remplir leur table ARP qui est une base de donnée locale faisant la correspondance entre les adresses MAC et les adresses IP.
Lorsque l'hôte enverra un paquet à un appareil du réseau dont l'adresse MAC lui est encore inconnue, il va chercher à résoudre l'adresse IP pour trouver la MAC de destination et va devoir effectué un broadcast de couche 2, aussi appelé broadcast MAC.
Il va donc envoyer un paquet contenant 12 caractères F pour que toutes les machines du réseau le reçoive, mais que seul l'hôte recherché lui réponde en indiquant son adresse MAC.
Ainsi, l'hôte source de la requête pourra envoyer son paquet (puisqu'il connait désormais la MAC de destination) et ajouter une entrée dans sa table ARP.
NDP
En IPv6, ce n'est pas ARP qui se charge de la résolution mais NDP pour Neighbor Disocvery Protocol qui a un mécanisme semblable.
Une différence majeure se fait notamment sur l'utilisation du multicast plutôt que du broadcast (qui n'existe pas en IPv6).
De plus, on ne parle plus de requête ARP mais de NS (Neighbor Solicitation) ni de réponse ARP mais de NA (Neighbor Advertisement).
En outre, une vérification est faite pour éviter le problème d'ARP spoofing grâce au DAD (Duplicate Address Detection) qui va faire un NS avec sa propre adresse MAC pour vérifier que personne n'essaye d'usurper son identité.