• Aucun résultat trouvé

Processus de recherche de l'adresse physique

Section 4. Eléments de cours sur ARP

4.2 Processus de recherche de l'adresse physique

Pour accélérer la transmission des paquets et réduire le nombre de requêtes de diffusion ARP, chaque noeud dispose d'un cache ARP de résolution d'adresse. Chaque fois que le noeud diffuse une requête ARP et reçoit une réponse, il crée une entrée dans une table de correspondance stockée en mémoire cache (@ip / @ Ethernet).

Lorsque le noeud envoie un autre paquet IP, il cherche d'abord l'adresse IP dans son cache.

S'il la trouve, il utilise alors l'adresse physique correspondante pour son paquet.

Quand un poste cherche l'adresse physique correspondant à une adresse IP qu'il connaît, le protocole ARP se met en oeuvre et réalise donc les tâches suivantes :

1. recherche dans le cache ARP de la machine si l'adresse IP du destinataire y figure, s'il la trouve, il ajoute alors l'adresse physique correspondante dans l'en-tête de la trame à émettre.

2. réalisation d'un broadcast (ARP request) sur le réseau en demandant à qui correspond l'adresse IP à résoudre : il diffuse un paquet ARP qui contient l'adresse IP du destinataire

3. les machines du réseau comparent l'adresse demandée à leur adresse et le noeud correspondant renvoie son adresse physique au noeud qui a émis la requête (ARP reply) .

4. stockage de l'adresse physique lorsque le destinataire répond dans le cache ARP de la machine

Remarque : chaque entrée de la table à une durée de vie limitée (2 minutes mini sous Windows).

Voici pour exemple ce que donne le programme tcpdump avec la commande ping

192.168.1.2 à partir de la machine uranus alors que la table ARP de l'hôte uranus est vide :

13:17:14.490500 arp who-has 192.168.1.2 tell uranus.planete.net 13:17:14.490500 arp reply 192.168.1.2 is-at 0:40:33:2d:b5:dd

13:17:14.490500 uranus.planete.net > 192.168.1.2: icmp: echo request 13:17:14.490500 192.168.1.2 > uranus.planete.net: icmp: echo reply 13:17:15.500500 uranus.planete.net > 192.168.1.2: icmp: echo request 13:17:15.500500 192.168.1.2 > uranus.planete.net: icmp: echo reply

Explications :

Ligne 1, uranus demande qui est 192.168.1.2 (requête ARP) Le paquet est diffusé à tous les hôtes du réseau.

Ligne 2 réponse ARP : je suis à l'adresse Ethernet 00:40:33:2d:b5:dd Lignes 3 à 6 : échanges de paquets ICMP entre les 2 hôtes.

Travaux Pratiques : La résolution d'adresses physiques

Table of Contents

Tester la présence d'un poste sur le réseau avec la commande ping

Interface couche 3 / couche 2 , IP / ethernet : utilisation du protocole ARP Le cache ARP

La commande ARP

Tromper ARP avec une adresse inexistante

Tromper ARP avec une adresse Ethernet existante mais mal associée Utilisation de l'analyseur de trames Ethereal

examen de paquets ARP Conditions de réalisation

Ce TP nécessite des machines Windows ou Linux reliées par un réseau Ethernet et TCP/IP, et disposant d'un routeur connecté à internet. L'adresse du réseau utilisé par ce TP est 10.69.0.0, mais peut être modifiée sans problème. Il faut disposer d'un analyseur de trames, les exemples utilisent Ethereal (http://www.ethereal.com/).

Figure 1. Schéma du réseau utilisé

Tester la présence d'un poste sur le réseau avec la commande ping

Ces tests peuvent être réalisés à partir d'un poste de travail Linux ou Windows

à partir de votre poste, ouvrez une fenêtre d'invite de commandes

quelle commande utilisez-vous pour afficher les informations concernant votre carte réseau ?

testez l'adresse IP de loopback pour vérifier que les liaisons définies par TCP/IP sont correctes : ping 127.0.0.1

testez avec l'adresse IP de votre poste

testez avec l'adresse du poste d'un voisin

testez avec l'adresse du réseau : 10.69.0.0 (notez le résultat) Que signifient les réponses ?

testez avec l'adresse de broadcast sur ce réseau : 10.69.255.255 (notez le résultat) Que signifient les réponses ?

testez une adresse IP non utilisée sur le réseau par exemple 10.69.0.99 (idem) Que peut-on déduire de la réponse ? Le poste existe t-il ? Le poste n'est pas actif ?

testez l'adresse de la passerelle : 10.69.0.254

testez une adresse existante au delà de votre passerelle : 192.168.0.n (idem)

Comment expliquez-vous votre résultat ? Pourquoi ce poste répond-il alors que son adresse réseau est différente de la vôtre ?

testez une adresse au hasard ne faisant pas partie du réseau : 200.110.20.37 (idem) Que pouvez-vous déduire du résultat ?

Interface couche 3 / couche 2 , IP / ethernet : utilisation du protocole ARP

2 stations pour dialoguer doivent utiliser les adresses MAC, il faut donc un moyen pour passer de l'adresse IP à l'adresse MAC et vice versa. IP fournit pour cela le protocole ARP (Adress Resolution Protocol) et RARP (Reverse Adress Resolution Protocol)

Le cache ARP

Affichez le cache ARP : tapez la commande arp -aàl'invite de commandes

Notez le résultat

faites un ping sur une autre station

Affichez de nouveau le cache arp (notez le résultat) Que contient le cache ARP à l'issue du PING ?

faites un ping sur l'adresse interne de votre passerelle internet (192.168.0.254)

affichez le cache arp (notez le résultat)

Que contient le cache ? Expliquez le résultat. Cela confirme-t-il vos hypothèses précédentes (question 1) ?

Décrivez les entrées du cache ARP La commande ARP

Utilisez les commandes pour obtenir de l'aide sur la commande arp : arp /? ou arp --help et man arp sous Liniux

videz le cache arp (notez l'instruction qu'il faut utiliser)

Sous Linux reprenez les opérations du paragraphe précédent, afin de mettre des informations en cache. Pour vider le cache vous utiliserez les instructions suivantes :

ifconfig eth0 down

arp -a /* vous constaterez qu'il n'y a plus rien en cache */

ifconfig eth0 up

A l'aide de la commande « man ifconfig », expliquez ce que font les commandes ifconfig eth0 down et ifconfig eth0 up.

Reprenons les manipulations une fois le cache vidé

notez l'adresse ethernet du poste voisin

ajoutez manuellement cette entrée arp dans la cache (donnez l'instruction qu'il faut passer)

affichez votre cache arp pour vérifier.

Quel est le type de l'entrée ?

testez cette entrée avec ping

Quelles sont les différentes possibilités de la commande ARP ? Tromper ARP avec une adresse inexistante

utiliser la commande arp permettant de modifier l'adresse matérielle de la passerelle par défaut (donnez l'instruction qu'il faut utiliser)

(donnez lui par exemple 08-00-02-22-22-20 qui est une fausse adresse)

faites un ping sur votre passerelle (notez le résultat) expliquez-le

faites un ping au delà de votre passerelle (notez le résultat) expliquez-le

supprimez cette entrée incorrecte quelle est l'instruction ?

Tromper ARP avec une adresse Ethernet existante mais mal associée

prenez l'adresse ethernet d'un poste

prenez l'adresse ip d'un autre poste

affectez avec arp l'adresse ip à l'adresse ethernet

testez l'adresse ip avec ping Notez le résultat et expliquez-le

Utilisation de l'analyseur de trames Ethereal

Lancer ethereal et au besoin sélectionnez la carte réseau sur laquelle vous souhaitez capturer le trafic (vérifiez son adresse Mac)

Démarrer la capture : Capture/Start,activez le rafraîchissement temps réel et OK

générer du trafic réseau

- ouvrez une fenêtre d'invite de commande xterm - faites un ping sur l'adresse ip de votre voisin

arrêter la capture des données réseau. Revenez au moniteur réseau « stop »

Analyser les données capturées

Le moniteur réseau vous affiche trois fenêtres.

Décrivez les types d'informations que vous obtenez dans chacune de ces fenêtres.

Mettre en évidence des données capturées

o Menu Display/Colorize Display.

o Ajouter une option name : NomName, filter : icmp

o Choisissez les couleurs de fond et de texte et validez.

Afficher le détail des trames ICMP

dans la première fenêtre sélectionnez une trame ICMP dont la colonne de description contient l'entrée « REQUEST ».

dans la fenêtre de détails, cliquez sur le signe + devant ICMP (le contenu du paquet ICMP est mis en évidence et affiché selon la notation hexadécimale dans la fenêtre du bas)

dans la fenêtre détail, cliquez sur ICMP: Packet type = request Quel nombre hexadécimal correspond à ICMP: packet type =request ?

cliquez sur identifier (notez sa valeur)

cliquez sur sequence number (notez sa valeur)

cliquez sur data

Les données reçues dans le message d'écho ( echo-request)doivent être renvoyées dans le message de réponse d'écho ( echo-reply).

Vérifiez-le.

dans le menu affichage, cliquez sur cherchez la trame suivante qui doit être une trame reply

sur la trame suivante notez le packet type, l'identifier et lesequence number comparez avec les valeurs précédentes, qu'en déduisez-vous ?

enregistrer la capture à des fins d'analyse ultérieure (File / Save As)

pour imprimer (File / Print)

Examen de paquets ARP

démarrez une capture réseau

générez un flux réseau (avec ping)

arrêtez la capture

mettez en évidence les trames comportant le protocole ARP_RARP

Affichez le détail des trames ARP:request - détail de frame : taille de la trame de base - détail Ethernet : adresse destination

- l'adresse de destination est-elle l'adresse physique(MAC d'une machine ? - quelle est la partie constructeur de l'adresse physique?

- quelle est l'adresse source ? - quel est le type de trame ethernet ? - combien d'octets contient la trame ? - A quoi servent les 14 premiers octets ?

détail ARP_RARP

- adresse matérielle de l'expéditeur ? - adresse IP de l'expéditeur ?

- adresse matérielle de la cible ? - adresse IP de la cible ?

- pourquoi l'adresse matérielle de la cible contient-elle des FF ?

Affichez le détail de la trame ARP:Reply - répétez les opérations précédentes et comparez - expliquez le fonctionnement du protocole ARP.