Qu’est-ce que l’ARP (Address Resolution Protocol) ?

Pour pouvoir envoyer des paquets de données dans les réseaux TCP/IP, un expéditeur a besoin avant tout de trois types d’informations d’adresse sur l’hôte appelé : le masque de sous-réseau, l’adresse IP et l’adresse MAC (aussi adresse matérielle ou adresse physique). Les périphériques réseau reçoivent automatiquement et de manière flexible leur masque réseau et leur adresse IP lorsqu’ils se connectent à un réseau. Dans ce but, les appareils de communication et de commutation tels que les routeurs ou les hubs utilisent le protocole DHCP. Dans les réseaux locaux, les deux entrées peuvent aussi être saisies manuellement. En revanche, l’adresse matérielle est attribuée par le fabricant de l’appareil correspondant et n’est liée à une adresse IP spécifique qu’au moyen du protocole ARP (Address Resolution Protocol).

Définition du protocole ARP

L’Address Resolution Protocol (ou protocole de résolution d’adresse) a été défini en 1982 dans la RFC 826, pour obtenir la résolution des adresses IPv4 dans les adresses MAC. L’ARP est indispensable pour la transmission de données dans les réseaux Ethernet pour deux raisons : d’une part, les trames individuelles (ou trames Ethernet) d’un paquet IP ne peuvent être envoyées aux hôtes cibles souhaités qu’à l’aide de l’adresse matérielle, et le protocole Internet ne peut se référer à ces adresses physiques indépendamment. D’autre part, le protocole IPv4 n’est pas en mesure de stocker les adresses des périphériques en raison de sa longueur limitée. Avec son propre mécanisme de mise en cache, le protocole ARP est ainsi la bonne solution. Le Neighbor Discovery Protocol (NDP) reprend les fonctions correspondantes et fournit les mêmes services que l’ARP pour l’IPv6.

Comment fonctionne l’ARP ?

Dans le cas de la résolution d’adresse via ARP, il est important de faire une distinction fondamentale entre le fait que l’adresse IP de l’hôte cible se trouve sur le même réseau local ou sur un autre sous-réseau. Si l’adresse MAC doit être affectée à une adresse IP spécifique, un contrôle du masque de sous-réseau est effectué en premier lieu.

Si l’adresse IP est située dans le réseau local, la première étape consiste à vérifier si une entrée correspondante existe déjà dans le cache ARP.

Remarque

le cache ARP est une liste tabulaire des adresses MAC les plus fréquemment utilisées, les entrées individuelles sont créées soit par le protocole réseau lui-même, soit manuellement. Les premières entrées, aussi appelées entrées dynamiques, reçoivent un horodatage dès qu’elles sont effacées du cache. Les entrées d’adresses statiques, restent disponibles jusqu’à ce que l’appareil soit éteint ou redémarré et que le cache ARP soit entièrement vidé.

Si un pendant physique est déjà affecté à l’adresse IP, cela peut être utilisé pour l’adressage. Si ce n’est pas le cas, l’expéditeur envoie une requête ARP (ARP Request) avec l’adresse IP de destination à tous les hôtes du réseau. Il utilise dans ce but l’adresse de broadcast ARP FF:FF:FF:FF:FF:FF comme adresse de destinataire. Les stations individuelles comparent l’adresse IP spécifiée dans la requête avec la leur et rejettent la requête s’il n’y a pas de correspondance. Cependant, si une station enregistre qu’il s’agit de sa propre adresse, elle réagit avec une réponse ARP (ARP Reply), dans laquelle elle transmet aussi l’adresse MAC, entre autres. Les deux parties peuvent désormais mettre en cache leurs adresses MAC et IP, créant ainsi la base pour l’échange de données.

Si l’hôte cible n’est pas dans le même sous-réseau, l’expéditeur contacte la passerelle par défaut (un routeur en général). Il y parvient aussi grâce à la combinaison de l’adresse MAC et de l’adresse IP, raison pour laquelle le protocole de résolution d’adresse est requis. La passerelle réceptionne le paquet de données après la résolution de l’adresse et s’occupe finalement de le transférer à l’hôte cible. Pour cela, il analyse l’en-tête IP (IP-Header), pour récupérer les informations essentielles. Par la suite, il exploite aussi les possibilités du protocole ARP et résout les problèmes suivants :

  • Soit directement l’adresse physique de l’ordinateur cible s’il est situé dans un sous-réseau voisin.

  • Soit l’adresse matérielle d’une autre passerelle si l’ordinateur cible est situé dans un sous-réseau distant et si le chemin du paquet ne peut pas être déterminé à l’aide de la table de routage.

Dans ce dernier scénario, le processus est répété jusqu’à ce que le paquet de données atteigne sa destination ou alors jusqu’à ce que le champ TTL (Time to live) ait atteint la valeur 0 dans l’en-tête IP.

A quoi ressemble la structure des messages ARP ?

Le protocole ARP utilise un format de message simple pour envoyer des requêtes ou des réponses. Bien qu’il soit à l’origine destiné aux adresses IPv4 et MAC, l’utilisation d’autres protocoles réseau est théoriquement possible, d’où l’existence de champs pour le type et la taille de l’adresse matérielle et du protocole. Par conséquent, la taille totale des paquets ARP peut aussi différer. Pour le scénario standard, l’utilisation d’ARP dans les réseaux Ethernet IPv4, par exemple, obtient une longueur de 224 bits (28 octets). Le tableau suivant montre les composantes d’un tel paquet d’informations :

L’en-tête ARP commence donc par la séquence d’informations de 16 bits sur les spécificités de l’adresse matérielle. Dans le cas des périphériques Ethernet prévus, le paquet aurait la valeur 1. Ceci est suivi par la spécification du protocole (également 16 bits), qui doit servir de base pour la résolution des adresses ARP. Les adresses IPv4 sont caractérisées par la valeur 0x0800 (2048), qui est également utilisée dans les trames Ethernet comme valeur pour le protocole IPv4 (EtherType). Les deux champs suivants indiquent la longueur des deux adresses (en octets). Les adresses MAC ont une taille de 6 octets (48 bits) et sont donc identifiées par la valeur 6. Les adresses IP ont une longueur de 4 octets (32 bits), c’est pourquoi la valeur par défaut est 4.

Les 16 bits suivants (operation) sont réservés à la définition du message ARP. Ainsi, 1 représente une requête ARP, tandis que 2 indique qu’il s’agit d’une réponse ARP. Enfin, les paquets contiennent les quatre adresses pertinentes et précédemment déclarées :

  • Adresse physique de l’émetteur : contient dans une requête l’adresse MAC de l’ordinateur demandeur, dans une réponse ARP, l’adresse physique de la cible ou de la passerelle suivante est trouvée ici.
  • Adresse réseau de l’émetteur : contient l’adresse IP de l’ordinateur demandeur (requête ARP) ou la destination ou la passerelle suivante (réponse).
  • Adresse physique du destinataire : ce champ contient l’adresse MAC du broadcast FF:FF:FF:FF:FF:FF, si l’expéditeur fait une requête, dans une réponse ARP, l’adresse matérielle de l’hôte demandeur est indiquée ici.
  • Adresse réseau du destinataire : dans une requête, ce champ contient l’adresse IP de l’hôte dont l’adresse MAC recherchée, dans un message de réponse, l’adresse IP de l’ordinateur demandeur est affichée ici.

Configuration de l’ARP : fonctionnement

L’Address Resolution Protocol, en tant que protocole standard, prend en charge le support multiplateforme et fournit la résolution d’adresse MAC, que ce soit un système Linux, Windows ou MacOs. De plus, il existe un outil en ligne de commande du même nom pour les différents systèmes d’exploitation, que vous pouvez utiliser pour afficher le cache ARP et pour ajouter ou supprimer manuellement des entrées. Vous pouvez obtenir une vue d’ensemble compacte des possibilités en ouvrant l’invite de commande ou le terminal et en entrant la commande arp (Windows) ou arp -man (Linux).

Si vous voulez examiner les combinaisons et les entrées d’adresses IP et MAC, la commande arp –a fonctionne sur tous les systèmes. L’entrée répertorie les paires d’adresses pour toutes les interfaces réseau utilisant l’ARP. Vous recevez également des informations indiquant si une entrée a été créée dynamiquement ou manuellement. Si vous ajoutez une adresse IP spécifique à la commande, l’application ne vous apportera que des informations sur cette adresse.

Si vous voulez désormais ajouter la combinaison d’adresse d’un hôte indépendamment ou la supprimer des tables ARP, vous avez besoin des paramètres -S ou -d. Par exemple, si l’adresse physique 00-aa-00-62-c6-0 est située derrière l’adresse IP 157.55.85.212, créez une entrée statique correspondante avec la commande suivante :

arp -a 157.55.85.212 00-aa-00-62-c6-09

Ces informations sont supprimées du cache si vous appliquez le paramètre « Delete » à une des adresses archivées :

arp -d 157.55.85.212

Au lieu d’une adresse Internet spécifique, vous pouvez aussi utiliser le caractère *, pour supprimer toutes les données stockées temporairement.

Quelle sont les modifications du protocole ARP ?

Outre la fonction standard décrite ci-dessus, il existe un certain nombre d’autres utilisations possibles pour les paquets de messages ARP. Par exemple, un hôte peut les utiliser pour informer les autres participants du réseau de sa propre adresse MAC. A cette fin, il envoie une requête ARP à l’adresse MAC de diffusion et saisit son propre IP en tant qu’adresse source et adresse destinataire. Comme cela se fait de sa propre initiative, cette variante du protocole s’appelle aussi Gratuitous ARP (ARP non sollicité). Une communication auto-initiée de l’adresse physique de ce type peut se produire par exemple, pour les raisons suivantes :

  1. En théorie, les messages GARP ne doivent en principe pas produire de réponse en raison de leur adresse IP. Autrement cela suggérerait que l’adresse IP utilisée par l’expéditeur serait assignée deux fois. Si l’un des hôtes contactés par broadcast répond toujours un message de réponse, cela indique alors une configuration erronée pour l’administrateur réseau.

  2. Le Gratuitous ARP permet à tous les hôtes d’inclure l’adresse matérielle de l’expéditeur dans leur propre cache. Ceci est particulièrement avantageux si, par exemple, cette adresse a changé suite à un échange de la carte réseau. Habituellement, les messages ARP modifiés sont donc toujours envoyés lorsqu’un ordinateur démarre.

  3. Les serveurs qui sont configurés en tant que serveurs de remplacement partagent souvent une adresse IP pour la protection contre les pannes. Pour que le trafic soit redirigé vers le serveur entrant en cas d’urgence, il doit annoncer son adresse MAC aux autres hôtes. Pour cela, les messages GARP sont une excellente option.
  1. L’IP Mobile permet à un hôte mobile de conserver sa propre adresse IP même en cas de changement de réseau. A cet effet, un soi-disant Home Agent prend en charge l’IP de l’hôte mobile lorsqu’il quitte le réseau domestique. Pour attirer l’attention sur lui, il envoie un message Gratuitous ARP. De la même manière, l’hôte mobile répond quand il retourne sur le réseau domestique.

Une autre forme de modification est le protocole RARP (Reverse Address Resolution Protocol), qui en principe inverse la fonction de l’ARP : il ne résout pas les adresses IP dans les adresses Mac, mais plutôt les adresses MAC dans les adresses IP. Cette option pour déterminer votre propre adresse Internet peut être utilisée pour les appareils pour lesquels l’attribution ou le stockage permanent n’est pas prévu (par exemple les postes de travail sans disque dur).

Le proxy de modification ARP est aussi usité couramment ; il permet aux routeurs de répondre aux requêtes ARP pour d’autres hôtes. Cela permet de communiquer entre deux hôtes de sous-réseaux différents sans avoir à modifier les configurations réseau des périphériques. Si une requête ARP atteint un routeur ARP proxy activé, elle répond à la place de l’ordinateur cible réel. Il transmet sa propre adresse MAC et reçoit ensuite les paquets de données de l’expéditeur. Le routeur transmet ensuite les données à l’hôte cible en utilisant les informations du cache ARP.

Remarque

si les messages ARP et le cache ARP sont délibérément manipulés pour obtenir un accès non autorisé à des données confidentielles, on parle alors d’usurpation ARP (ARP spoofing). Vous pouvez savoir exactement comment ce type d’attaque fonctionne et quelles précautions de sécurité doivent être prises dans notre article à ce sujet.