Protocoles ARP & RARP - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement... ·...

Preview:

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)

Recommended