TP1
Découverte du réseau
Le but de ce premier TP est de découvrir le fonctionnement d’un réseau à travers l’analyse de trames, c’est à dire en observant tout ce qui a circulé sur un réseau lors d’une communication.
Pour celà, on utilise Wireshark.
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.
Si vous êtes sur les machines de la fac, wireshark est déjà installé. Si vous souhaitez utiliser votre propre machine pour ce premier TP, vous pouvez télécharger wireshark sous Windows ou OSX en cliquant ici. Sous linux, vous devriez le trouver dans votre gestionnaire de paquets.
1.1 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
- IPv4 : tout décocher sauf
2 Le réseau
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.
3 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 plus loin.
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.
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
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
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
En cliquant sur la ligne suivante, trouver le message envoyé
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:
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).
Faites le même travail avec le paquet numéro 4.
Trouver ce que le serveur a répondu au client.
4 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.
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.
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)
5 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.
On regarde uniquement les deux dernières trames de chaque capture (celle où il est écrit UDP), et on ne se préoccupe pas pour l’instant de celles où il est écrit ARP. Trouvez les points communs et les différences entre les trames dans exp3.pcapng et exp4.pcapng
Trouver l’adresse IP de pc2
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.
Attention:
La couche Ethernet spécifie quelle est la source et quelle est la destination du point de vue du réseau local. Donc, si on voit apparaître une adresse MAC dans une capture, c’est forcément l’adresse MAC d’un équipement sur le réseau local
Les routeurs sont sur deux réseaux locaux à la fois. Ils sont donc connectés à chaque réseau local par une interface différente, et ont donc deux adresses MAC (une par interface), et deux adresses IP.
6 Retour sur les expériences
Regardez maintenant les trames ARP observées dans les expériences 1 et 3. A quoi peuvent-elle servir ? (Aide:
ff:ff:ff:ff:ff:ff
est une adresse MAC spéciale qui veut dire “envoyer à tout le réseau”)En déduire les deux adresses IP 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.
Regardez les 3 captures. Trouver l’adresse MAC et l’adresse IP de pc3, ainsi que les deux adresses MAC du routeur r2.
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.
Regardez attentivement la couche réseau (IP) des trames et trouver ce qui change.
8 Expérience meta
Observez la deuxième trame de la capture mystere.pcapng.
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
Essayez de comprendre.