Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
Omar Cheikhrouhou
Protocoles ARP & RARP
Enseignant: 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
(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
IPIP
ARP ARP
Ethernet Driver Ethernet Driver
(1)
(3)
(2)
(4)
HOST - A HOST- 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 lui-mê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 dematériel
Le type deprotocole
La taille des adresses matérielles
La taille desadresses
de protocole
Le code del’opération
ARP2 octets 2 octets 1 octets 1 octet 2 octets
Adresse MAC source Adresse IP source6 octets 4 octets
Adresse MAC destination6 octets
Adresse IP destination4 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.
Type
Matériel
Type
ProtocoleHlen Plen Opération
AM
émetteur
IP
émetteur
AM
cible
IP
cible
2o 2o 1o 1o 1o 6o 4o 6o 4o
Adresse de destination
Adresse de source
Ether Type
0806 hexCRC
Indique des données ARP
6o 6o 2o 4o
Encapsulation ARP dans Ethernet.
Paquet ARP
TrameEthernet
0C00008A7B2C 192.120.13.1 FFFFFFFFFFF 192.120.13.501.
Requête ARP
02 0C0000328A50 192.120.13.5 0C00008A7B2C 192.120.13.1.
Réponse ARP
Exemple de message ARP
• Emission de la trame en Broadcast • La machine 192.168.223.207 répond
@ProtocoleCible
@ProtocoleSource
Exemple ARP
Matériel ProtocoleTaille
MatérielTaille
Protocole@Matériel
Source192.168.223.208
@MatérielCible
192.168.223.207
OP
2 2 1 1 2
0001 0800
66 44
6 4 102-60-8CD9-D8-D2
02-60-8CD9-E3-ED
2
• 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
Debut
oui
Je prends en charge ce type de matériel
?
Je comprends ce typede protocole?
Flag Merge mis à 0
<type protocole,adr IP émetteur>est dans la cache
ARP?
Mise à jour de L’AM emetteur dans le cahe ARP Flag Merge mis à 1
Suis-je l’adresse IP cible RejetNon
oui
Non
oui
oui
Non
Non
Rejet
Rejet
Mécanisme de Mise à Jour du CacheOrganigramme de Réception d’un paquet ARP
Le champ opération égale 1
Ajout de <type protocole,adresse de protocole émetteur,AM émetteur>dans le cache ARP
1-Echange des champs adresses source et cible dans le paquet ARP2-Champ opération indique comme réponse ARP (2)3-Renvoi du paquet ARP à l’émetteur
Fin
OuiNon
Oui
NonRejet
Oui
Le Flag merge à 0?
� 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.
Entrée ModifiéePour la Nouvelle Adr.mat0C00008A7B2C
Diffusion de la requête ARP
Adr. IP Adr..mat199.12.1.1 0C000032BA5
Adr. IP Adr..mat199.12.1.1 0C000032BA5
Table de cache ARP
Table de cache ARP
199.12.1.1
Adr. IP
Adr.mat
0C00008A7B2C
� 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
� Réponse RARP
. 03 0C00008A7B2C 0.0.0.0 FFFFFFFFFFFF 0.0.0.0
. 04 0C0000328A50 192.120.13.1 0C00008A7B2C 192.120.13.5
Code Opération @MAC source IP source @MAC destination IP destination
Problèmes
Si on dispose d’un seul serveur RARP et qu’il soit indisponible (panne par exemple) ,les clientsRARP 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)