Pour pouvoir envoyer des paquets de données dans les réseaux TCP/IP, un ex­pé­di­teur a besoin avant tout de trois types d’in­for­ma­tions d’adresse sur l’hôte appelé : le masque de sous-réseau, l’adresse IP et l’adresse MAC (aussi adresse ma­té­rielle ou adresse physique). Les pé­ri­phé­riques réseau reçoivent au­to­ma­ti­que­ment et de manière flexible leur masque réseau et leur adresse IP lorsqu’ils se con­nec­tent à un réseau. Dans ce but, les appareils de com­mu­ni­ca­tion et de com­mu­ta­tion tels que les routeurs ou les hubs utilisent le protocole DHCP. Dans les réseaux locaux, les deux entrées peuvent aussi être saisies ma­nuel­le­ment. En revanche, l’adresse ma­té­rielle est attribuée par le fabricant de l’appareil cor­res­pon­dant et n’est liée à une adresse IP spé­ci­fique qu’au moyen du protocole ARP (Address Re­so­lu­tion Protocol).

Nom de domaine
Votre domaine en un clic
  • 1 cer­ti­fi­cat SSL Wildcard par contrat
  • Fonction incluse Domain Connect pour une con­fi­gu­ra­tion DNS sim­pli­fiée

Dé­fi­ni­tion du protocole ARP

L’Address Re­so­lu­tion Protocol (ou protocole de ré­so­lu­tion d’adresse) a été défini en 1982 dans la RFC 826, pour obtenir la ré­so­lu­tion des adresses IPv4 dans les adresses MAC. L’ARP est in­dis­pen­sable pour la trans­mis­sion de données dans les réseaux Ethernet pour deux raisons : d’une part, les trames in­di­vi­duelles (ou trames Ethernet) d’un paquet IP ne peuvent être envoyées aux hôtes cibles souhaités qu’à l’aide de l’adresse ma­té­rielle, et le protocole Internet ne peut se référer à ces adresses physiques in­dé­pen­dam­ment. D’autre part, le protocole IPv4 n’est pas en mesure de stocker les adresses des pé­ri­phé­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 cor­res­pon­dantes et fournit les mêmes services que l’ARP pour l’IPv6.

Comment fonc­tionne l’ARP ?

Dans le cas de la ré­so­lu­tion d’adresse via ARP, il est important de faire une dis­tinc­tion fon­da­men­tale 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é­ci­fique, 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 cor­res­pon­dante existe déjà dans le cache ARP.

Remarque

le cache ARP est une liste tabulaire des adresses MAC les plus fré­quem­ment utilisées, les entrées in­di­vi­duelles sont créées soit par le protocole réseau lui-même, soit ma­nuel­le­ment. Les premières entrées, aussi appelées entrées dy­na­miques, reçoivent un ho­ro­da­tage dès qu’elles sont effacées du cache. Les entrées d’adresses statiques, restent dis­po­nibles jusqu’à ce que l’appareil soit éteint ou redémarré et que le cache ARP soit en­tiè­re­ment 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’ex­pé­di­teur envoie une requête ARP (ARP Request) avec l’adresse IP de des­ti­na­tion à 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 des­ti­na­taire. Les stations in­di­vi­duelles 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 cor­res­pon­dance. Cependant, si une station en­re­gistre 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’ex­pé­di­teur contacte la pas­se­relle par défaut (un routeur en général). Il y parvient aussi grâce à la com­bi­nai­son de l’adresse MAC et de l’adresse IP, raison pour laquelle le protocole de ré­so­lu­tion d’adresse est requis. La pas­se­relle ré­cep­tionne le paquet de données après la ré­so­lu­tion de l’adresse et s’occupe fi­na­le­ment de le trans­fé­rer à l’hôte cible. Pour cela, il analyse l’en-tête IP (IP-Header), pour récupérer les in­for­ma­tions es­sen­tielles. Par la suite, il exploite aussi les pos­si­bi­li­tés du protocole ARP et résout les problèmes suivants :

  • Soit di­rec­te­ment l’adresse physique de l’or­di­na­teur cible s’il est situé dans un sous-réseau voisin.

  • Soit l’adresse ma­té­rielle d’une autre pas­se­relle si l’or­di­na­teur 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 des­ti­na­tion 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’uti­li­sa­tion d’autres pro­to­coles réseau est théo­ri­que­ment possible, d’où l’existence de champs pour le type et la taille de l’adresse ma­té­rielle et du protocole. Par con­sé­quent, la taille totale des paquets ARP peut aussi différer. Pour le scénario standard, l’uti­li­sa­tion d’ARP dans les réseaux Ethernet IPv4, par exemple, obtient une longueur de 224 bits (28 octets). Le tableau suivant montre les com­po­santes d’un tel paquet d’in­for­ma­tions :

L’en-tête ARP commence donc par la séquence d’in­for­ma­tions de 16 bits sur les spé­ci­fi­ci­tés de l’adresse ma­té­rielle. Dans le cas des pé­ri­phé­riques Ethernet prévus, le paquet aurait la valeur 1. Ceci est suivi par la spé­ci­fi­ca­tion du protocole (également 16 bits), qui doit servir de base pour la ré­so­lu­tion des adresses ARP. Les adresses IPv4 sont ca­rac­té­ri­sé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 iden­ti­fié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é­fi­ni­tion du message ARP. Ainsi, 1 re­pré­sente une requête ARP, tandis que 2 indique qu’il s’agit d’une réponse ARP. Enfin, les paquets con­tien­nent les quatre adresses per­ti­nentes et pré­cé­dem­ment déclarées :

  • Adresse physique de l’émetteur : contient dans une requête l’adresse MAC de l’or­di­na­teur demandeur, dans une réponse ARP, l’adresse physique de la cible ou de la pas­se­relle suivante est trouvée ici.
  • Adresse réseau de l’émetteur : contient l’adresse IP de l’or­di­na­teur demandeur (requête ARP) ou la des­ti­na­tion ou la pas­se­relle suivante (réponse).
  • Adresse physique du des­ti­na­taire : ce champ contient l’adresse MAC du broadcast FF:FF:FF:FF:FF:FF, si l’ex­pé­di­teur fait une requête, dans une réponse ARP, l’adresse ma­té­rielle de l’hôte demandeur est indiquée ici.
  • Adresse réseau du des­ti­na­taire : dans une requête, ce champ contient l’adresse IP de l’hôte dont l’adresse MAC re­cher­chée, dans un message de réponse, l’adresse IP de l’or­di­na­teur demandeur est affichée ici.

Con­fi­gu­ra­tion de l’ARP : fonc­tion­ne­ment

L’Address Re­so­lu­tion Protocol, en tant que protocole standard, prend en charge le support mul­ti­pla­te­forme et fournit la ré­so­lu­tion 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 dif­fé­rents systèmes d’ex­ploi­ta­tion, que vous pouvez utiliser pour afficher le cache ARP et pour ajouter ou supprimer ma­nuel­le­ment des entrées. Vous pouvez obtenir une vue d’ensemble compacte des pos­si­bi­li­té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 com­bi­nai­sons et les entrées d’adresses IP et MAC, la commande arp –a fonc­tionne sur tous les systèmes. L’entrée ré­per­to­rie les paires d’adresses pour toutes les in­ter­faces réseau utilisant l’ARP. Vous recevez également des in­for­ma­tions indiquant si une entrée a été créée dy­na­mi­que­ment ou ma­nuel­le­ment. Si vous ajoutez une adresse IP spé­ci­fique à la commande, l’ap­pli­ca­tion ne vous apportera que des in­for­ma­tions sur cette adresse.

Si vous voulez désormais ajouter la com­bi­nai­son d’adresse d’un hôte in­dé­pen­dam­ment ou la supprimer des tables ARP, vous avez besoin des pa­ra­mè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 cor­res­pon­dante avec la commande suivante :

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

Ces in­for­ma­tions sont sup­pri­mé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é­ci­fique, vous pouvez aussi utiliser le caractère *, pour supprimer toutes les données stockées tem­po­rai­re­ment.

Quelle sont les mo­di­fi­ca­tions du protocole ARP ?

Outre la fonction standard décrite ci-dessus, il existe un certain nombre d’autres uti­li­sa­tions possibles pour les paquets de messages ARP. Par exemple, un hôte peut les utiliser pour informer les autres par­ti­ci­pants 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 des­ti­na­taire. Comme cela se fait de sa propre ini­tia­tive, cette variante du protocole s’appelle aussi Gra­tui­tous ARP (ARP non sollicité). Une com­mu­ni­ca­tion 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 sug­gé­re­rait que l’adresse IP utilisée par l’ex­pé­di­teur 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 con­fi­gu­ra­tion erronée pour l’ad­mi­nis­tra­teur réseau.
     
  2. Le Gra­tui­tous ARP permet à tous les hôtes d’inclure l’adresse ma­té­rielle de l’ex­pé­di­teur dans leur propre cache. Ceci est par­ti­cu­liè­re­ment avan­ta­geux si, par exemple, cette adresse a changé suite à un échange de la carte réseau. Ha­bi­tuel­le­ment, les messages ARP modifiés sont donc toujours envoyés lorsqu’un or­di­na­teur démarre.
     
  3. Les serveurs qui sont con­fi­gu­rés en tant que serveurs de rem­pla­ce­ment partagent souvent une adresse IP pour la pro­tec­tion 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 ex­cel­lente option.
  1. L’IP Mobile permet à un hôte mobile de conserver sa propre adresse IP même en cas de chan­ge­ment 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 do­mes­tique. Pour attirer l’attention sur lui, il envoie un message Gra­tui­tous ARP. De la même manière, l’hôte mobile répond quand il retourne sur le réseau do­mes­tique.

Une autre forme de mo­di­fi­ca­tion est le protocole RARP (Reverse Address Re­so­lu­tion 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é­ter­mi­ner votre propre adresse Internet peut être utilisée pour les appareils pour lesquels l’at­tri­bu­tion ou le stockage permanent n’est pas prévu (par exemple les postes de travail sans disque dur).

Le proxy de mo­di­fi­ca­tion ARP est aussi usité cou­ram­ment ; il permet aux routeurs de répondre aux requêtes ARP pour d’autres hôtes. Cela permet de com­mu­ni­quer entre deux hôtes de sous-réseaux dif­fé­rents sans avoir à modifier les con­fi­gu­ra­tions réseau des pé­ri­phé­riques. Si une requête ARP atteint un routeur ARP proxy activé, elle répond à la place de l’or­di­na­teur cible réel. Il transmet sa propre adresse MAC et reçoit ensuite les paquets de données de l’ex­pé­di­teur. Le routeur transmet ensuite les données à l’hôte cible en utilisant les in­for­ma­tions du cache ARP.

Remarque

si les messages ARP et le cache ARP sont dé­li­bé­ré­ment manipulés pour obtenir un accès non autorisé à des données con­fi­den­tielles, on parle alors d’usur­pa­tion ARP (ARP spoofing). Vous pouvez savoir exac­te­ment comment ce type d’attaque fonc­tionne et quelles pré­cau­tions de sécurité doivent être prises dans notre article à ce sujet.

Aller au menu principal