Étude des protocoles ARP et ICMP

Fiche d’activité

Objectifs

À l’issue de cette activité, vous devez être capable de …​ :

  • donner le rôle des protocoles ARP et ICMP

  • analyser des trames ARP et ICMP

  • forger des trames ARP et ICMP avec la librairie Python Scapy

Ressources

Matériel(s) :
  • PC Windows

  • Hôte réseau disponible sur adresse 192.168.7.10 (→ imprimante Brother MFC-L2710DW series Printer)

Logiciel(s) :
  • Packet Tracer

  • Wireshark

  • Environnement virtuel Python disposant de la librairie Scapy

Documentation :
  • <Sans objet>

Pré-requis

  • Savoir utiliser et Packet Tracer et Wireshark

  • Savoir mettre en place un environnement virtuel dans le gestionnaire d’environnement Conda

  • Bases de Python

Mise en situation

On désire étudier le détail d’une communication lorsqu’on “ping” une machine sur le réseau.

💻 Travail n° 1 Simulation dans Packet Tracer

  1. Ouvrir le fichier simu-ping-labo-ciel.pkt dans Packet Tracer

  2. Attendre que tous les indicateurs du schéma soient verts

  3. Ouvrir le command prompt de PC1 et exécuter les commandes suivantes et s’assurer que les résultats sont conformes à ceux de l’illustration :

    C:\>arp -d
    C:\>arp -a
    No ARP Entries Found
  4. Toujours dans le command prompt de PC1, relever son adresse IP attribuée par le serveur DHCP ainsi que l’adresse physique de l’interface réseau (→ adresse MAC) avec la commande :

    c:\> ipconfig /all
    
    FastEthernet0 Connection:(default port)
    
       Connection-specific DNS Suffix..:
       Physical Address................: 0001.426B.96D2 <- (1)
       Link-local IPv6 Address.........: FE80::201:42FF:FE6B:96D2
       IPv6 Address....................: ::
       IPv4 Address....................: 192.168.7.1 <- (2)
       Subnet Mask.....................: 255.255.252.0
       Default Gateway.................: ::
                                         0.0.0.0
       DHCP Servers....................: 192.168.7.254
       DHCPv6 IAID.....................:
       DHCPv6 Client DUID..............: 00-01-00-01-93-03-68-67-00-01-42-6B-96-D2
       DNS Servers.....................: ::
                                         0.0.0.0
    1 Adresse MAC
    2 Adresse IP
  5. Se mettre en mode btn simulation et s’assurer que tous les protocoles pris en charge par Packet Tracer sont filtrés à l’exception de ARP et ICMP

    filter arp icmp
  6. Dans le command prompt de PC1 exécuter à présent

    C:/> ping -n 1 192.168.7.10
  7. Étudier dans l’onglet “OSI Model” le détail de ce qui se passe à chaque couche du modèle OSI pour le 1er message en cliquant dessus dans la liste d’évènements du panneau de simulation

    pdu info
    Pour info…​
    • Pour ce 1er message seules les couches de sortie 3 et 2 du modèle OSI sont impliquées ⇒ les autres couches apparaissent grisées

    • L’explication de ce qui se passe au Layer 3 pour ce 1er message est :

      1. The Ping process starts the next ping request.

      2. The Ping process creates an ICMP Echo Request message and sends it to the lower process.

      3. The source IP address is not specified. The device sets it to the port’s IP address.

      4. The destination IP address is in the same subnet. The device sets the next-hop to destination.

    • L’explication de ce qui se passe au Layer 2 pour ce 1er message est :

      1. The next-hop IP address is a unicast. The ARP process looks it up in the ARP table.

      2. The next-hop IP address is not in the ARP table. The ARP process tries to send an ARP request for that IP address and buffers this packet.

  8. Répéter l’opération pour le 2ème message puis étudier le détail du contenu de la trame réseau qui sera envoyée depuis l’onglet “Outbound PDU details”

    • Une trame réseau est constituée de données provenant d’un ensemble de protocoles appartenant à des couches différentes du modèle OSI

    • A chaque niveau OSI correspond un message ou PDU (Protocole Data Unit) constitué d’un ensemble de champs et l’ensemble de ces champs est contenu dans le champ de données utile ou payload du niveau OSI supérieur : c’est ce qu’on appelle l'encapsulation

      encapsulation

      Pour illustrer le concept d’encapsulation, on peut prendre l’exemple des étapes de l’acheminement du courrier postal :

      • Une lettre est d’abord insérée dans une enveloppe pour être postée.

      • Cette enveloppe est ensuite placée dans un sac postal.

      • Le sac postal est lui-même transporté dans un conteneur.

      Ces étapes illustrent l’encapsulation de l’information lors de son émission. Pour la réception, on reprend les mêmes étapes dans l’ordre inverse.

    • Dans Packet Tracer le payload d’un message d’un niveau OSI déterminé se trouve dans le champ nommé “DATA (VARIABLE LENGTH)”.

      Exemple : Dans le 2nd message de notre simulation, les champs du message ARP constitue le champ “DATA (VARIABLE LENGTH)” du message EthernetII.

      pdu details

    Questionnement :

    • Quelles sont les significations des valeurs 0x0001 et 0x0800 pour les champs Hardware Type et Protocol Type dans le paquet ARP ? (chercher sur internet)

    • À quelle opération dans le protocole ARP correspond lde code opération (→ Opcode) 0x0001 ?

    • À quoi correspond l’adresse `0000 0000 0000`dans le champ Target MAC ?

    • À quoi correspond l’adresse indiquée dans le champ Source MAC du paquet ARP ?

    • À quoi correspond le Type : 0x0806 dans la trame Ethernet ?

    • À quelle type d’adresse correspond l’adresse FFFF FFFF FFFF spécifiée dans le champ Dest Address de la trame Ethernet ?

    • À quoi sert le champ FCS dans la trame Ethernet ?

  9. Appuyer sur ⏯ pour avancer pas à pas dans la simulation puis inspecter le détail de chaque message (explications de l’onglet “OSI Model” et contenu des trames depuis les onglets “Inbound PDU details” et “Outbound PDU details”)

  10. Questionnement :

    • ICMP est-il placé au dessus ou en dessous de IP dans le modèle OSI ?

    • Dans le protocole ICMP à quoi correspondent la valeur 0x08 du champs Type ?

    • À quoi correspond la valeur contenue dans le champ TTL du paquet IP ?

    • À la fin de la simulation, à quoi correspond le résultat affiché par la commande arp -a ?

    • Refaire un ping -n 1 192.168.7.10 depuis PC1. Est-ce que ce ping nécessitera autant d’échanges que dans la 1ère simulation ? Expliquer pourquoi.

💻 Travail n° 2 Analyse depuis Wireshark

  1. Ouvrir un terminal en mode administrateur et exécuter la commande arp -d pour se remettre dans les mêmes conditions que la simulation effectuée dans Packet Tracer

  2. Lancer Wireshark et mettre en place un filtre capture pour ne capturer que les échanges ARP et ICMP avec l’hôte 192.168.7.10.

  3. “Pinger” l’hôte 192.168.7.10 (imprimante du local Profs) depuis votre PC

  4. Retrouver dans la capture Wireshark les échanges identifiés dans la simulation Packet Tracer

🞄  🞄  🞄