TD réseau (coronavirus)

Xavier Redon

1  Le programme de l’atelier

Le but de ces travaux dirigés est de comprendre le fonctionnement des réseaux TCP/IP.

2  Première approche d’un réseau local

2.1  Adresse Ethernet

Pour communiquer sur un réseau local il faut commencer par avoir une adresse Ethernet. L’adresse Ethernet doit être unique et respecter quelques régles.

2.2  Simulation de réseau Ethernet

Pour faire une simulation de communication Ethernet vous allez vous placer dans canal de chat. Vous taperez, dans ce canal, un message par envoi Ethernet que vous devez envoyer et vous lirez les messages pour voir si une "machine" Ethernet cherche à vous envoyer un paquet.

Pour simplifier, vous ne taperez que l’adresse Ethernet de destination et les données Ethernet.

Pour voir l’effet du cloisonnement dans plusieurs réseaux locaux distincts, vous répéterez cet exercice en vous séparant dans 4 réseaux locaux distincts.

2.3  Manipulation de paquets Ethernet

Cette fois vous allez vraiment envoyer des paquets Ethernet. Comme nous sommes en mode "dispersé" cela se fera sur un réseau Ethernet un peu particulier réalisé au dessus de connexions Internet.

Vous allez déjà récupérer le programme permettant de vous connecter sur ce pseudo-réseau Ethernet (http://rex.plil.fr/Enseignement/Reseau/TD.Reseau.GIS3/virtualhub.tgz). Compilez les sources en utilisant le Makefile fourni. Quand vous exécutez le programme, vous allez vous connecter sur un serveur de l’école qui va jouer le rôle de commutateur Ethernet (confback.plil.fr port 4000). Le programme va aussi vous créer une nouvelle interface Ethernet (précisez tap0 comme nom en troisième paramètre). Trouvez-là en utilisant la commande ip l. Changez l’adresse Ethernet de cette nouvelle interface avec l’adresse que vous vous êtes affecté. Pour changer l’adresse MAC vous pouvez utiliser la commande ip link set tap0 address xx:yy:zz:aa:bb:cc. Pour démarrer l’interface utilisez la commande ip link set tap0 up.

Une fois connecté sur le réseau, récupérez le programme permettant de manipuler des paquets Ethernet (http://rex.plil.fr/Enseignement/Reseau/TD.Reseau.GIS3/LSF.tgz). Là encore utilisez le binaire ou recompilez les sources. Ouvrez une fenêtre pour faire afficher les paquets arrivant à votre nouvelle interface Ethernet (./ether -d -i tap0 en tant que root). Ouvrez une autre fenêtre pour envoyer un paquet Ethernet sur votre nouvelle Interface (./ether -s -i tap0 toujours en tant que root).

Envoyez des paquets Ethernet avec un type 0x1111. Les paquets doivent être tapés sur l’entrée standard du ether -s -i tap0 sous la forme de tableau d’octets, tous écrits en hexadécimal et séparés par des espaces.

3  Réseaux IPv4

3.1  Calculs d’adresses et de masques

Pour connaître la taille d’un réseau IPv4, le masque réseau est un élément fondamental. Vous allez vous manipuler ces masques réseaux pour passer d’une notation moderne de masque réseau (sous la forme d’un entier) à une notation classique (sous la forme d’une adresse IPv4).

Un second exercice consiste à calculer les adresses de début et de fin d’un réseau IPv4 que vous devez trouver en fonction d’une adresse IPv4 d’une machine du réseau et du masque réseau. La première adresse du réseau qui est justement appelée adresse du réseau se trouve facilement en calculant le ET bit à bit entre l’adresse IPv4 de la machine et le masque réseau écrit sous sa forme classique. La dernière adresse du réseau qui est l’adresse de diffusion se trouve en calculant le OU bit à bit entre l’adresse IPv4 de la machine et l’inverse bit à bit du masque réseau.

Les machines du réseau IPv4 doivent avoir une adresse IPv4 comprise entre l’adresse du réseau et l’adresse de diffusion excluses.

3.2  S’affecter une adresse IPv4

Pour communiquer sur Internet, il faut commencer par avoir une adresse IPv4. Nous allons considérer que vous êtes répartis sur 4 réseaux IPv4 suivant votre numéro de groupe de travaux pratiques. Les réseaux IPv4 pour les différents réseaux seront :

3.3  Simulation de réseaux IPv4

Pour faire une simulation de communication IPv4 vous allez vous placer dans un canal de chat. Nous allons supposer, dans un premier temps, que vous êtes tous dans le même réseau IPv4 192.168.42.0/24.

Vous taperez, dans le canal, un message par envoi IPv4 que vous devez envoyer et vous lirez les messages pour voir si une "machine" IPv4 cherche à vous envoyer un paquet. Pour simplifier, ne tapez que l’adresse Ethernet de destination, l’adresse IPv4 de destination et les données IPv4.

Ensuite vous vous répartirez entre différents réseaux IPv4. Il est rappelé que vous êtes dans le réseau de numéro votre groupe de travaux pratiques. Pour faire la simulation, vous allez vous placer dans les 4 canaux correspondant à votre numéro de réseau.

Vous taperez, dans ce canal, un message par envoi IPv4 que vous devez envoyer et vous lirez les messages pour voir si une "machine" IPv4 cherche à vous envoyer un paquet. Pour simplifier, ne tapez que l’adresse Ethernet de destination, l’adresse IPv4 de destination et les données IPv4. Faites attention au fait, que comme votre correspondant est forcément dans un autre réseau IPv4, les adresses Ethernet et IPv4 ne vont pas désigner la même machine. En effet, vous devez faire transiter votre paquet par un routeur.

3.4  Manipulation de paquets IPv4

Nous allons encore utiliser notre réseau Ethernet virtuel (cf 2.3) pour envoyer des paquets mais cette fois ce seront des paquets IPv4. C’est à dire des paquets constitués d’une entête Ethernet, d’une entête IPv4 et de données IPv4.

Lancez le programme "client" du hub virtuel comme la dernière fois sur le serveur de l’école confback.plil.fr. Mais cette fois vous utiliserez un port différent suivant votre numéro de réseau : 4001 pour le réseau 1, 4002 pour le réseau 2, 4003 pour le réseau 3 ou 4004 pour le réseau 4. Changez l’adresse MAC en la votre avec la commande ip link set tap0 address xx:yy:zz:aa:bb:cc. Démarrez l’interface en utilisant la commande ip link set tap0 up.

Vous avez ensuite à mettre votre adresse IPv4 sur l’interface tap0 par la commande ip address add dev tap0 192.168.42.xxx/26. Pour assurer le routage, il faut, sur une seule machine, créer 4 interfaces Ethernet vers les 4 différents ports, affecter les adresses MAC de 00:11:22:33:44:01 à 00:11:22:33:44:04 à ces interfaces et leur donner des adresses IPv4 dans les différents réseaux. Enfin il faut activer le routage sur la dite machine.

Une fois connecté sur le réseau, utilisez le programme permettant de manipuler des paquets Ethernet. Ouvrez une fenêtre pour faire afficher les paquets arrivant à votre nouvelle interface Ethernet (./ether -d -i tap0 en superutilisateur). Ouvrez une autre fenêtre pour envoyer un paquet Ethernet sur votre nouvelle Interface (./ether -s -i tap0 en tant, là aussi, que superutilisateur).

Envoyez les paquets avec le type Ethernet 0x0800 qui correspond à IPv4. Dans l’entête IPv4 vous pouvez laisser les champs services, identification et fragmentation à zéro. Vous pouvez faire de même pour le champ somme de contrôle, le paquet sera détruit mais ce n’est pas grave. Une durée de vie de 1 suffit et vous pouvez utiliser le protocole IP non utilisé 0x07. Traduisez le message à envoyer en données sous forme de codes ASCII. Les paquets doivent être tapés sur l’entrée standard du ether -s -i tap0 sous la forme de tableau d’octets, tous écrits en hexadécimal et séparés par des espaces.


Ce document a été traduit de LATEX par HEVEA