-
Les
protocole ARP (Adress Resolution Protocol)
- et
RARP (Reverse ARP)
-
-
Menu
-
-
-
A.
Le protocole ARP
-
- Le protocole IP a principalement
comme fonction de router et adresser les machines. Seulement le routage n’est
envisageable qu’avec le support d’un protocole de la couche Réseau, puisqu’une
adresse IP n’a de sens que pour le protocole IP. En effet, la couche Réseau
ne sait absolument pas gérer la transmission d’un datagramme vers une adresse
IP. Cette couche ne peut transmettre les datagrammes que vers une adresse
MAC (nous avons vu précédemment que tout élément actif d’un réseau :
carte réseau, switch, router, passerelle… possédait une adresse MAC). Or le
problème devant lequel nous sommes est de taille : nous connaissons souvent
les adresses IP vers lesquelles nous voulons envoyer des données, mais jamais
les adresses physiques (MAC). Il nous faut donc un moyen pour obtenir l’adresse
MAC d’une machine (sa carte réseau) à partir de son adresse IP. C’est le rôle
du protocole ARP, qui va effectuer la correspondance en toute transparence.
-
- Le protocole ARP possède ses propres datagrammes avec
son en-tête. Cet en-tête est encapsulé directement au dessus de la couche
Accès réseau (Ethernet). Bien que l’en-tête ARP soit dans un en-tête Ethernet,
nous considérerons ARP du niveau Accès Réseau, car sa tâche est belle est
bien de permettre l’accès au réseau (connecter les périphériques entre eux
par les adresses MAC) et ne sert en aucun cas à effectuer des tâches de niveau
supérieur (comme le routage qui est réservé à IP). Etudions-le :
-
-
-
-
-
- Quelles sont les informations contenues dans un datagramme
ARP ?
- Ø
HARDWARE TYPE : ce champ
va contenir le type d’adresses physiques utilisées dans les champs SENDER
HA (pour l’émetteur du datagramme) et TARGET HA (pour le récepteur du datagramme).
Dans notre cas pour des adresses MAC (Ethernet) ce champ vaudra 1.
- Ø
PROTOCOL TYPE : ce champ
va contenir le type d’adresses logiques utilisées dans les champs SENDER ADR
(adresse de l’émetteur) et TARGET ADR (adresse du récepteur). Dans notre cas,
l’adressage logique utilisé est l’adressage IP : ce champ vaudra 0x0800
(hexadécimale).
- Ø
HLEN 1 : pour spécifier
la taille de l’adressage physique : 6 octets pour Ethernet.
- Ø
HLEN 2 : pour spécifier
la taille de l’adressage logique : 4 octets pour IP.
- Ø
OPERATION : ce champ sert
à différencier les requêtes des protocoles ARP et RARP : ce second protocole
dont nous allons étudier le fonctionnement plu tard, partage avec ARP le même
en-tête :
-
-
Question Reply
-
ARP :
1
2
-
RARP :
3
4
-
- Ø
SENDER HA : adresse physique
de l’émetteur.
- Ø
SENDER ADR : adresse logique
de l’émetteur.
- Ø
TARGET HA : adresse physique
du destinataire.
- Ø
TARGET ADR : adresse logique
du destinataire.
-
- Remarque : Pour rendre
la lecture plus aisée, nous avons colorés les champs représentant la même
entité. En effet, alors qu’une adresse IP est codée sur 32 bits (4 octets),
une adresse MAC est codée sur 48 bits (6 octets). C’est pour cela que les
champs colorés ne sont pas sur des lignes complètes.
-
- Le fonctionnement va donc être le suivant :
- Ø
Nous sommes sur un réseau local
(le protocole ARP gérant les connections physiques entre machines directement
reliées entre elles, il ne peut franchir les routeurs). La machine A veut
communiquer avec B. Seulement elle ne connaît pas son adresse MAC.
- Ø
A va envoyer sur le réseau un
datagramme « ARP QUESTION » avec son adresse physique, à destination
du broadcast physique (comme pour le broadcast IP, tous les bits sont à 1).
Cela va correspondre à l’adresse : ff :ff :ff :ff :ff :ff
en hexadécimale. L’adresse logique de l’émetteur sera celle de A, et celle
du récepteur celle de B. Cette opération signifie : « Est-ce que
l’ordinateur ayant l’adresse IP X.X.X.X pourrait m’envoyer son adresse MAC ? »
- Ø
B va alors répondre à A directement par
une « ARP Reply », en lui donnant son adresse physique.
- Ø
A va mémoriser la correspondance
MAC/IP dans sa « table ARP », et va pouvoir communiquer avec B.
-
- Pour mémoriser les adresses dernièrement utilisées, le protocole
ARP possède une table. Le contenu de cette table peut être connu sous UNIX
ou DOS par la commande ‘arp –a’.
-
- Il faut noter qu’à ce moment, toutes les machines du réseau
écoutent l’échange (réseau non switché), et peuvent mettre à jour leurs tables
ARP. La bande passante du réseau est ainsi économisée : la réponse se
fait non pas en broadcast, mais en unicast (les données sont adressées uniquement
à la machine réceptrice, et non pas à toutes comme en broadcast). De plus,
les tables ARP permettant de mémoriser un certain nombre de correspondances
d’adresses (une table ARP garde en mémoire les correspondances environ 20
minutes), ce genre d’opération ne se produit qu’une fois.
-
- Remarque : Si lors d’une
tentative de connection, une machine ne répond plus, toutes les machines « entendant »
l’échec de réponse suppriment la correspondance existante (elles reçoivent
un message d’erreur ICMP : voir plus loin). De même, si B n’avait
pas répondu à A, A aurait continué de poser la question indéfiniment.
-
-
B.
Le protocole RARP
-
- Ce protocole est utilisé principalement
par les machines démarrant sur un réseau où elles ne connaissent pas leur
adresse IP. Elles vont alors envoyer les mêmes datagrammes que le protocole
ARP, sous forme cette fois-ci de « RARP Question », en spécifiant
comme adresse physique de l’émetteur sa propre adresse Mac, et a destination
du broadcast physique. Un serveur RARP habilité à délivrer une adresse IP
à cette machine répondra en unicast, et lui fournira son adresse.
-
Menu