TP1

Découverte du réseau

1. Introduction à Wireshark

Wireshark est un outil qui permet de capturer le trafic réseau et de l'analyser. Dans ce cours, on va principalement l'utiliser pour observer des captures qui ont déjà été réalisées, mais vous pouvez aussi vous amuser à capturer votre propre trafic réseau et à essayer de comprendre ce qui se passe.

Pour télécharger wireshark sous Windows ou OSX, c'est par là. Sous linux, vous devriez le trouver dans votre gestionnaire de paquets.

2. Configuration de Wireshark

Dans sa configuration initiale, wireshark fait quelquefois un peu trop de choses et on ne comprend pas tout. On va donc légèrement modifier sa config:

  • Lancez wireshark et décochez les options suivantes dans les préférences:
    • Name resolution : tout décocher
    • Protocols :
      • IPv4 : tout décocher sauf
        • show IPV4 summary in protocol tree
        • Decode Ipv4 TOS
      • UDP : tout décocher sauf
        • show UDP summary in protocol tree
      • TCP : tout décocher sauf
        • show TCP summary in protocol tree

3. Introduction

Le but du premier TP est d'observer les communications entre des clients et un serveur.

Le réseau utilisé est représenté ci-dessous.

Les boîtes r1 et r2 représentent des routeurs. Ils permettent donc de relier des réseaux locaux différents: les machines pc1 et pcS ne sont donc pas sur le même réseau local que la machine pc2, qui n'est pas non plus sur le même réseau local que la machine pc3.

La machine pcS contient un serveur super intelligent qui répond à toutes les questions qu'on lui pose. Le but du TP est de regarder les trames qui circulent sur le réseau lorsque les ordinateurs pc1, pc2, et pc3 interrogent le serveur.

4. Première expérience

Dans cette expérience, le but est de regarder et de comprendre les trames de la capture exp1.pcapng Vous devez donc lancer wireshark et lui demander d'ouvrir la capture.

Cette capture correspond au lancement du client sur la machine pc1, qui va donc interroger le serveur qui va répondre à toutes ses questions.

Il a 4 paquets dans la capture: on va regarder les paquets 3 et 4. Les deux premiers paquets seront utiles pour un autre TP.

Cliquer sur le paquet 3. Wireshark devrait se présenter ainsi:

La zone supérieure (celle où vous avez cliqué) contient tous les paquets et un bref descriptif de chacun d'entre eux.

La zone du milieu permet de comprendre un paquet vis à vis de chaque couche. Dans l'exemple, on peut visualiser:

  • Ce qui correspond à la couche physique (Frame 3: ...)
  • Ce qui correspond à la couche liaison (Ethernet II: ...)
  • Ce qui correspond à la couche réseau (Internet Protocol: ...)
  • Ce qui correspond à la couche transport (UDP: ...)
  • Ce qui correspond à la couche application (data: ...)

    Comme dit en cours,il n'y a rien d'intéressant dans la couche physique, on va regarder les 4 autres couches.

La zone tout en bas permet de visualiser les octets qui ont effectivement été transmis par le réseau. Pour des raisons compliquées liées au fonctionnement des cartes réseaux, il manque les 4 derniers octets, qui correspondent à la checksum d'Ethernet (on en apprendra plus sur ce CRC dans le cours). Dans les dessins qu'on vous demande de faire, vous pouvez les mentionner, ou ne pas les mentionner.

  1. En cliquant sur Ethernet, trouver :
    • l'adresse source de la trame du point de vue d'Ethernet
    • l'adresse destination
    • le nom du protocole réseau encapsulé
    • quels sont les octets envoyés sur le réseau qui contiennent toutes ces infos

  2. En cliquant sur la ligne suivante, trouver:
    • l'adresse source de la trame du point de vue de la couche réseau
    • l'adresse destination
    • le nom du protocole transport encapsulé
    • quels sont les octets envoyés sur le réseau qui contiennent toutes ces infos

  3. En cliquant sur la ligne suivante, trouver:
    • l'adresse source de la trame du point de vue de la couche transport
    • l'adresse destination
    • quels sont les octets envoyés sur le réseau qui contiennent toutes ces infos

  4. En cliquant sur la ligne suivante, trouver le message envoyé

  5. Représenter le paquet en entier sur le même modèle que celui vu en cours. Voici un exemple (qui n'a rien à voir) pour voir ce qui est attendu. Pour la partie IP, ne mettez que ce qui vous parait important:

  6. Essayer de deviner l'adresse IP de pcS et de pc1 à partir de ce paquet (Aide: dans une communication client-serveur, c'est très généralement le client qui parle d'abord au serveur).

  7. Faites le même travail avec le paquet numéro 4.

  8. Trouver ce que le serveur a répondu au client.

5. Deuxième expérience

Dans cette expérience, le but est de regarder et de comprendre les trames de la capture exp2.pcapng. Cette capture a été obtenue lorsque deux clients, tous les deux présents sur la machine pc1, ont envoyé une question au serveur.

  1. Regarder les 4 trames envoyées et en particulier les deux premières. Trouver comment le serveur peut différencier les trames et voir qu'il s'agit de deux clients différents. Trouver comment apparier les questions avec les réponses.

  2. Trouver quelle est la fonctionnalité de la couche transport qui est mis en évidence par cette expérience (chercher le mot "transport" dans le cours)

6. Troisième expérience

On regarde maintenant ce qui se passe lorsqu'un client sur la machine pc2 parle au serveur. On a accès à deux captures différentes : exp3.pcapng exp4.pcapng. L'une d'entre elles a été effectuée sur le réseau du haut, l'autre sur le réseau du milieu.

  1. On regarde uniquement les deux dernières trames de chaque capture (celle où il est écrit UDP), et on ne se préoccupe pas dans ce TP de celles où il est écrit ARP. Trouvez les points communs et les différences entre les trames dans exp3.pcapng et exp4.pcapng

  2. Trouver l'adresse IP de pc2

  3. Les adresses Ethernet, aussi appelées adresses MAC, sont les adresses des interfaces réseaux des machines. La couche Ethernet explique donc, sur un même réseau local, de quelle interface réseau est partie la trame, et à quelle interface réseau elle est destinée. En comparant ces deux trames, ainsi que les trames de la toute première expérience, trouvez les adresses MAC de pc1, pc2, pcS et les deux adresses MAC (une par interface) du routeur r1.

7. Quatrième expérience

Dans la dernière expérience, c'est pc3 qui parle au serveur. On a accès à trois captures différentes : exp51.pcapng exp52.pcapng exp53.pcapng. Une des captures a été effectuée dans le réseau au dessus, une autre dans le réseau du milieu, et la troisième dans le réseau en bas, mais vous ne savez pas à quel réseau correspond chacune des captures.

  1. Regardez les 3 captures (comme d'habitude, oubliez les requêtes ARP). Trouver l'adresse MAC et l'adresse IP de pc3, ainsi que les deux adresses MAC du routeur r2.

  2. Trouvez quelle est la capture qui a été faite sur le réseau du haut, celle qui a été faite sur le réseau du milieu, et celle qui a été faite sur le réseau du bas.

  3. Regardez attentivement la couche réseau (IP) des trames et trouver ce qui change.

8. Expérience meta

  1. Observez la deuxième trame de la capture mystere.pcapng.

  2. Faites le dessin des différentes couches de cette trame. Attention! Wireshark se trompe un peu. Il y a 6 couches (sans compter la couche physique) et non pas 4: il faudra regarder attentivement ce qu'il y a dans la partie ICMP pour faire le dessin

  3. Essayez de comprendre.