Dans un réseau IPv4, le protocole ARP ou Address Resolution Protocol a pour but de faire la correspondance entre une adresse MAC inconnue (celle de l'hôte destinataire) et une adresse IPv4 connue (encore celle de l'hôte destinataire). Ce protocole fait le «lien» entre les mécanismes d'adressage de la couche réseau et de la couche liaison de données. Dans un réseau IPv6, le
protocole NDP ou Neighbor Discovery Protocol se substitue au
protocole ARP pour faire la
correspondance entre les adresses MAC et les adresses IPv6 de lien local appartenant au réseau
|
Si le routage assuré au niveau réseau permet d'acheminer le trafic utilisateur d'un réseau à l'autre, il ne permet pas de joindre directement un hôte dans un réseau local de diffusion comme Ethernet. Au niveau liaison de données les adresses MAC servent à repérer un hôte unique dans le réseau local de diffusion. Il faut donc établir une correspondance entre des adresses dont la portée ne dépasse pas le réseau local et d'autres adresses dont la portée recouvre de multiples réseaux.
Dans cette section, le principal outil utilisé est la commande ip du paquet iproute2.
Comment visualiser la table des voisins ?
Le sous-système réseau du noyau Linux maintient une table «table des hôtes voisins» contenant les correspondances avec les adresses IPv4 et IPv6.
La commande ip nei
ls
fait apparaître toutes les adresses de voisins
connus dans un affichage commun. Ces résultats sont obtenus via
ARP pour les adresses
IPv4 et NDP pour les adresses IPv6.
$
ip nei ls dev eth0
192.0.2.1 dev eth0 lladdr ba:f1:b6:e4:a0:bd STALE
fe80::b8f1:b6ff:fee4:a0bd dev eth0 lladdr ba:f1:b6:e4:a0:bd router REACHABLE
2001:db8:8083:c41e::1 dev eth0 lladdr ba:f1:b6:e4:a0:bd router STALE
L'hôte avec l'adresse IPv4
|
|
L'interface Ethernet |
|
Cette adresse MAC a été
obtenue grâce au protocole ARP.
Dès qu'un paquet est émis à destination de l'hôte |
|
Les indicateurs d'état informent sur la validité de la correspondance entre les adresses de couche liaison de données et les adresses de couche réseau. |
|
La correspondance avec l'adresse IPv6 de lien local |
|
Cette ligne correspond au même hôte voisin et donne son adresse IPv6 publique ou globale. |
Tableau 2. Indicateurs d'état de la table des hôtes voisins
Indicateur | Description |
---|---|
INCOMPLETE |
La résolution d'adresse de l'hôte voisin est en cours |
REACHABLE |
La correspondance entre les adresses IP et MAC a bien été établie et l'hôte voisin est apparemment joignable |
STALE |
La correspondance entre les adresses IP et MAC a bien été établie mais l'hôte voisin n'est probablement plus joignable et une vérification sera lancée dès la première émission. |
DELAY |
Un paquet a été émis à destination
d'un voisin dans l'état STALE et une
confirmation de correspondance d'adresses est en attente |
PROBE |
La temporisation de l'état
DELAY est expirée et la correspondance
d'adresses n'a pas été confirmée ; une nouvelle résolution
d'adresse a été initiée |
FAILED |
La résolution d'adresse a échoué |
NOARP |
Le voisin est validé ; aucune vérification ne doit être faite. |
PERMANENT |
Identique à NOARP ; seul le super utilisateur a la
possibilité de supprimer l'entrée de la table |
Les voisins IPv6 peuvent
apparaître avec un indicateur router
supplémentaire ; ce qui signifie que ce voisin se présente
comme un routeur IPv6.
Comment effacer tout ou partie de la table des voisins ?
Pour tester le fonctionnement du mécanisme de résolution d'adresses, il peut être utile d'effacer une ou plusieurs entrées dans le but de provoquer une nouvelle résolution lors des prochains échanges réseau.
- Suppression d'une entrée particulière
-
$
sudo ip nei del 192.168.1.2 dev eth0 - Suppression de toutes les entrées relatives à l'interface eth0
-
$
sudo ip neighbor flush dev eth0
Pour découvrir les autres manipulations possibles, il est
conseillé de consulter les pages de manuels :
.$
man
ip-neighbour