Protocoles ARP & RARP Enseignant: Omar Cheikhrouhou Omar Cheikhrouhou
Références RFC 826 RFC 814 Cours Maher Ben jemaa (ENIS) Cours Bernard Cousin
Introduction La transmission des datagrammes IP sur le réseau physique nécessite que ces datagrammes soient encapsulés dans des trames de couche de liaison de données (couche 2 du modèle OSI). Les trames de couche liaison de données, telles que les trames Ethernet doivent contenir des adresses matérielles (adresses MAC).
Problème Comment l'émetteur peut connaître l adresse MAC de récepteur sachant qu il ne connaît que son adresse IP??
Solution Solution statique : Table d association entre adresse IP et adresse MAC. Difficulté de mise à jour Taille de la table serai trop grand Solution dynamique: Protocole de résolution d adresse ARP (Address Resolution Protocol).
Le protocole ARP
Principe HOST - A IP (1) ARP Ethernet Driver HOST- B IP ARP Ethernet Driver (3) (2) (4) (1)Hôte A veut envoyer un datagramme IP vers l hôte B (2) L hôte A envoie sur le réseau une trame en diffusion, appelé une requête ARP, contenant les adresses IP et MAC de A ainsi l adresse IP de B en incluant un champ destiné à contenir l adresse MAC de destination (3)L hôte B répond en encodant sa propre adresse matérielle dans une trame de réponse ARP (4)L hôte A envoie alors le datagramme IP vers le hôte B
Fonctionnement d ARP Réseau Local: On peut envoyer une requête ARP en diffusion à tous les nœuds du réseau local pour déterminer l @MAC du hôte cible. Les machines non concernées ne répondent pas. Gestion du cache pour ne pas effectuer de requête ARP à chaque émission. Lorsque la requête ARP est reçu, la couche liaison de données au niveau du nœud cible qui correspond à l adresse IP concerné répond avec un message ARP qui contient la paire (adresse MAC,adresse IP).
Fonctionnement d ARP Réseau distant: Dans ce cas, l émetteur doit savoir l @MAC du port du routeur auquel le datagramme IP sera transmis. Problème: Mais le protocole ARP est encapsulé par le protocole du couche liaison alors ce protocole ne peut pas franchir un routeur car la transmission d un paquet par un routeur IP nécessite une encapsulation IP.
Fonctionnement d ARP Solution: Le Proxy ARP permet à un routeur de faire croire que les machines des deux réseaux se trouvent sur le même réseau. Pour cela, il répond luimême aux requêtes ARP concernant des adresses situées de l'autre côté de la source de la requête. Il trompe ainsi la source qui associera l'adresse IP du destinataire à l'adresse physique du routeur. Le Proxy ARP implique que le routeur ait connaissance des différentes stations se trouvant sur chaque réseau.
Format de la trame ARP Le type de matériel Le type de protocole La taille des adresses matérielles La taille des adresses de protocole Le code de l opération ARP 2 octets 2 octets 1 octets 1 octet 2 octets Adresse MAC source Adresse IP source 6 octets 4 octets Adresse MAC destination 6 octets Adresse IP destination 4 octets
Le format de la trame ARP Type Matériel: Spécifie le type de l interface matérielle (Hardware). Exemple de type matériel Type Matériel Réseau Correspondant 1 Ethernet 4 Anneau à Jetons Proteon Pronet 18 Fibre Optique
Le format de la trame ARP Type de protocole : Spécifie l adresse de protocole de couche supérieur pour laquelle l adresse matériel est désirée. Dans le cas des réseaux TCP/IP, l'adresse de protocole est l adresse IP, la valeur utilisée est 0x 0800. Hlen: correspond à la longueur en octets de l adresse matériel.(@ethernet=6 octets) Plen: correspond à la longueur en octets de l adresse du protocole.(@ip=4octets)
Le format de la trame ARP Le code d opération: Indique si le paquet ARP contient une requête (1) ou une réponse ARP (2) Adresse MAC source : Contient l adresse matérielle (@MAC) de l émetteur. Adresse IP source :Contient l adresse IP de l émetteur. Adresse MAC cible :Contient l adresse MAC du nœud cible. Adresse IP cible:contient l adresse IP du nœud cible.
Encapsulation ARP dans Ethernet. 2o 2o 1o 1o 1o 6o 4o 6o 4o Type Matériel Type Protocole Hlen Plen Opération AM émetteur IP émetteur AM cible IP cible Paquet ARP 6o 6o 2o 4o Adresse de destination Adresse de source Ether Type 0806 hex CRC Trame Ethernet Indique des données ARP
Exemple de message ARP Requête ARP. 01 0C00008A7B2C 192.120.13.1 FFFFFFFFFFF 192.120.13.5 Réponse ARP. 02 0C0000328A50 192.120.13.5 0C00008A7B2C 192.120.13.1
Exemple ARP Matériel 0001 Protocole 0800 Taille Taille 6 4 OP 1 Matériel Protocole @Matériel 02-60-8C D9-D8-D2 Source @Protocole 192.168. 223.208 Source @Matériel Cible @Protocole 192.168. 223.207 Cible 2 2 1 1 2 6 4 6 4 Emission de la trame en Broadcast La machine 192.168.223.207 répond 2 02-60-8C D9-E3-ED Recopie de l entête de la trame Inversion des champs source & destination Ajout de l adresse matérielle Marque la réponse ARP Envoi de la trame - réponse
Plan Protocole ARP Format de la trame ARP Mécanisme de mise à Jour de la Cache Doublon d adresses Protocole RARP
Mécanisme de Mise à Jour du Cache Organigramme de Réception d un paquet ARP Debut Je prends en charge ce type de matériel? oui Je comprends ce type de protocole? oui Flag Merge mis à 0 Non Non Rejet Rejet <type protocole,adr IP émetteur>est dans la cache ARP? oui Non Mise à jour de L AM emetteur dans le cahe ARP Flag Merge mis à 1 Suis-je l adresse IP cible oui Non Rejet
Le Flag merge à 0? Oui Non Oui Ajout de <type protocole,adresse de protocole émetteur, AM émetteur>dans le cache ARP Le champ opération égale 1 Oui Non Rejet 1-Echange des champs adresses source et cible dans le paquet ARP 2-Champ opération indique comme réponse ARP (2) 3-Renvoi du paquet ARP à l émetteur Fin
Remarque sur le diagramme: Une table de cache peut être mise à jour par une requête ARP. Seule la table de cache ARP pour les nœuds disposant d une entrée pour l adresse IP de l émetteur est modifiée. Adr. IP 199.12.1.1 Adr.mat 0C00008A7B2C Table de cache ARP Diffusion de la requête ARP Adr. IP Adr..mat 199.12.1.1 0C000032BA5 Entrée Modifiée Pour la Nouvelle Adr.mat 0C00008A7B2C Table de cache ARP Adr. IP Adr..mat 199.12.1.1 0C000032BA5
Si le nœud cible possède déjà une entrée dans sa table de cache ARP pour la paire <type de protocole,adresse de protocole de l émetteur>, la nouvelle adresse remplace l ancienne. Cela peut survenir dans les cas suivants: Un nouveau matériel de réseau a été ajouté sur l émetteur de la requête ARP. Les adresse IP ont été réaffecté. Il y a un problème de doublon d adresse. Les tables de cache ARP sont souvent implémentées avec un mécanisme de temporisation(timeout) pour la mise à jour des entrée des tables de cache.
Le protocole RARP
Introduction Le Besoin : L'adresse IP d'une machine est configurable (elle dépend du réseau sur lequel elle se trouve) et est souvent enregistrée sur la mémoire secondaire où le système d'exploitation l'accède au démarrage. Ce fonctionnement usuel n'est plus possible dès lors que la machine est une station sans mémoire secondaire (diskless station).
Introduction Problème : Déterminer un mécanisme permettant à la station d obtenir son adresse IP depuis le réseau. La Solution : Protocole de bas niveau appelé Reverse Adress resolution Protocol. Permet d obtenir son adresse IP à partir de l adresse physique qui lui est associée.
Principe Un serveur RARP sur le réseau a pour rôle de fournir les adresses IP associées aux adresse physiques des stations du réseau. Le serveur possède une base de données contenant les couples <@ physique,@ IP>. Les stations émettent une requête RARP sur le réseau, consistant à demander l adresse IP associée à leur adresse physique.
Principe Les requêtes sont propagées vers le, ou les, serveurs RARP par diffusion. Les serveurs répondent par un message de type RARP.
Fonctionnement Une station voudrant savoir son adresse IP envoie en diffusion une requête RARP. Tous les nœuds sur le réseau reçoivent la requête mais seul le(s) nœud(s) tenant(s) lieu de serveur(s) RARP répondent. Le serveur RARP consulte sa table de correspondance. S il trouve une entrée dans cette table correspondant à l @MAC dans la requête, il envoie l @ IP dans une réponse RARP.
Fonctionnement En cas de plusieurs serveurs RARP, chacun d eux traitent la requête RARP. Le client RARP accepte la première réponse reçue et ignore toutes les autres.
Format de la trame RARP Les paquets de requête et de réponse RARP utilisent le même format que les paquets ARP avec EtherType=8035 (hexadécimal). Exemple: Requête RARP Code Opération @MAC source IP source @MAC destination IP destination. 03 0C00008A7B2C 0.0.0.0 FFFFFFFFFFFF 0.0.0.0 Réponse RARP. 04 0C0000328A50 192.120.13.1 0C00008A7B2C 192.120.13.5
Problèmes Si on dispose d un seul serveur RARP et qu il soit indisponible (panne par exemple),les clients RARP ne peuvent pas démarrer et ils envoient continuellement des requêtes RARP en diffusion. La charge du trafic réseau est alourdie. On dit qu il y a une tempête RARP.
Serveurs RARP principaux et auxiliaires La solution consiste à utiliser plusieurs serveurs RARP. Et mieux on désigne un serveur principal et les autres seront des serveurs secondaires. Le serveur primaire reçoit la demande ou la requête RARP, il recherche dans la table de correspondance l adresse IP de la machine demandeuse et la renvoie à cette dernière. Les serveurs secondaires enregistrent l heure de la demande RARP.
Serveurs RARP principaux et auxiliaires Dans le cas où le serveur primaire est non disponible, le temporisateur de la machine demandeuse expire. Celle-ci renvoie la copie de sa demande RARP. Lorsqu un serveur secondaire reçoit une deuxième copie d une demande, peu de temps après avoir la première, il répond après un délai aléatoire pour éviter l encombrement du trafic par les réponses des autres serveurs secondaires.
La commande ARP arp <hostname> : résout l'adresse de la station passée en paramètre arp -a : affiche le contenu de la table arp -s <hostname> < @MAC> : ajoute une entrée dans la table d'association d'adresse arp -d <hostname> : supprime une entrée de la table d'association d'adresse man arp (sous Linux) & arp /? (sous Windows)