Updated Modifié

Ce TP a pour but de vous faire prendre contact avec l’environnement dédié aux TPs Réseaux tant du point de vue pratique que du point vue du déroulement de l’ensemble de vos TPs.

IMPORTANT : Evaluation des TPs

Rendu des TPs

Les TPs sont évalués par un “contrôle continu”, ie par des rendus de TP (en début d’année) ainsi qu’un projet (en fin de semestre).

Vous devez rendre votre compte-rendu individuellement pour ce TP (sous-forme électronique) sur Ametice au plus tard le mardi 05/11/2024 18h00).

Conseil pour le Compte-Rendu

Ne rédigez pas le CR pendant le TP, mais prenez des notes et des copies de votre travail (voir aussi cette remarque importante).

Le compte-rendu pourra être manuscrit et scanné ou bien rédigé sur ordinateur. Dans ce dernier cas, ne pas utiliser de captures d’écran systématiquement, mais privilégiez des copies du texte affiché (terminal ou autre). Veuiller noter que le presse-papier est partagé entre machines virtuelles et station hôte. Il est donc possible de faire des copier/coller. Par ailleurs, il est possible d’obtenir une version texte des captures de wireshark en utilisant File/Export/As Plain Text… et en sauvegardant dans /vagrant.

Notez ce que vous avez fait et pourquoi dans votre CR. L’important n’est pas tant de faire des réponses complètes que de décrire clairement (= imaginez que vous vouliez vous relire dans 3 mois) ce que vous avez fait et compris. Efforcez-vous de ne pas avoir de “flou”, vos chargés de TP sont disponibles pour répondre à vos questions.

Virtualisation

Vous serez administrateur (root) de vos machines pendant les TPs. Comme cela n’est pas possible sur la machine physique virtuelle vous serez amenés à créer des machines virtuelles spécifiques afin de réaliser vos TPs.

Qu’est-ce que la virtualisation ?

Nous allons manipuler des machines virtuelles (VMs). Le système sous lequel vous êtes actuellement sera dénommé système hôte. Comme toute machine physique, une machine virtuelle est composé de

  • un CPU (partagé avec le système hôte et les autres VMs)
  • de la RAM (non partagée)
  • un disque dur virtuel sur lequel est installé un système d’exploitation
  • des périphériques :
    • partagés (clavier, souris, écran, …)
    • dédiés, virtuels (comme les cartes réseaux)

La machine virtuelle se configure avec vagrant. (en fait vagrant apporte une couche d’abstraction aux logiciels de virtualisation — VirtualBox, VMWare, … — que certains d’entre vous connaissent déjà). On ne peut configurer ses aspects “physiques” virtualisés (RAM, nombres et branchement des interfaces réseaux, …) que lorsque la machine est éteinte. Le système d’exploitation de la VM s’administre avec ses propres outils d’administration, quand la VM est démarrée.

Mise en Oeuvre

En TP nous utiliserons vagrant. L’image préinstallée à utiliser est à télécharger puis stocker sur /tmp/debianTP.box. Cette image contient une version minimaliste de Debian/XFCE. Nous allons faire ces étapes pas-à-pas.

NB Ces indications sont valables uniquement sur les postes DirNum, adapter si nécessaire les chemins concernés sur votre propre PC. Voir aussi la FAQ.

Les disques complets sont trop gros pour pouvoir être stockées sur votre compte. Seules vos (petites) modifications y seront stockées.

  1. Vérifier que vous disposez bien d’au moins 1,5Go de libre sur votre compte:
    $ quota -s
    
    la seconde valeur soustraite de la première doit faire au moins 1,5Go.
  2. Vérifier que vous disposez bien d’une partition locale accessible d’au moins 20 Gio:
    $ df -h /tmp
    Sys. de fichiers    Taille  Uti. Disp. Uti% Monté sur
    /dev/sda4              78G  3,1G   75G   4% /tmp   
    

  3. Copier l’image depuis le réseau:

    $ cd /tmp/
    $ curl -o debianTP.box https://pageperso.lis-lab.fr/emmanuel.godard/boxes/debianTP.box
    $ curl -o debianTP.box.md5 https://pageperso.lis-lab.fr/emmanuel.godard/boxes/debianTP.box.md5
    $ md5sum -c debianTP.box.md5
    

Votre première VM

Mise en place de votre “box”

Nous allons maintenant indiquer à `vagrant` quelles images disques seront virtualisées. C’est à faire une seule fois sur le semestre.

$ vagrant box add /tmp/debianTP.box --name "m1reseaux"
// si la commande précédente échoue, cela signifie que la box est déjà en place
// Pour la supprimer: $ vagrant box remove "m1reseaux"
  • Indispensable (mais à ne faire qu’une seule fois cette année)
    $ VBoxManage setproperty machinefolder "/tmp"
    

  • Avant de continuer, vérifier que la box est bien installée
    $ vagrant box list
    m1reseaux                       (virtualbox, 0)
    

Création de la VM

Pour vagrant, une VM correspondra à un répertoire contenant un fichier Vagrantfile.

  • Créer un répertoire reseaux et un sous-répertoire tp0, puis VM1
    $ mkdir -p ~/reseaux/tp0/VM1
    $ mkdir ~/reseaux/tp0/partage
    $ cd ~/reseaux/tp0/VM1
    

  • dans ce répertoire VM1, copier le fichier Vagrantfile. Il décrit les propriétés de votre machine vituelle VM1
  • lancer la VM
    $ vagrant up
    

    La connexion est automatique. Votre login est debian-tp, votre mot de passe identique.

Compte-rendu

  1. Au démarrage de la VM, lire les informations.
  2. Combien d’interfaces réseaux possèdent actuellement votre VM ?
  3. Quels sont tous les paramètres réseaux de votre machine virtuelle?
  4. Pouvez-vous vous connecter à Internet, à la page du TP avec wget?
  5. Stopper la VM. (quelle est la bonne manière ?)
  6. Éditer le fichier Vagrantfile : ajouter une ligne
    config.vm.network "private_network", ip:"0.0.0.0", auto_config: false, virtualbox__intnet: "LAN2" après celle existante
    
  7. Relancer la VM.
  8. Combien d’interfaces réseaux possèdent actuellement votre VM ?

Communication avec les VMs

Afin de faciliter la communication vers les VMs, nous allons vérifier la mise en place du copier/coller ainsi que d’un dossier partagé entre l’hôte et les VMs.

Copier/Coller
Vérifier que vous pouvez copier depuis l’hôte puis coller vers la VM, et vice-versa.

Dossiers partagés
Ils vous permettront d’échanger des fichiers (même lorsque le réseau ne fonctionne pas!)
  • entre l’hôte et votre VM :
    • sur l’hôte : répertoire de la VM (ie VM1)
    • sur la VM : répertoire /vagrant

  • entre toutes vos VMS :
    • sur l’hôte : répertoire partage (au même niveau que VM1)
    • sur la VM : répertoire /mnt/partage

Vers le Routage

Une Nouvelle VM

Créer une nouvelle VM VM2 comme précédemment.

  1. Pouvez-vous accéder à internet depuis les VMs ? Faire un schéma.
  2. Quelles sont les configurations réseau existantes?
  3. On va considérer que les machines sont reliées par un réseau privée de classe C sur leurs interfaces eth1. Mettre comme adresse 192.168.1.1 (resp. 192.168.1.2) pour VM1 (resp. VM2).

    Indication : vous pouvez redéfinir la connexion nommée “Connexion filaire 1” de la gestion du réseau (applet en haut à droite). ne pas utiliser le Vagrantfile pour affecter ces paramètres
  4. Si vous n’aviez jamais configuré le réseau explicitement
  1. Pouvez-vous “voir” (ping) les autres stations sur le réseau ?
    1. depuis le système hôte ?
    2. depuis les VMs ?
  2. Pour conclure, quels sont les paramètres réseaux à connaître pour “configurer le réseau” d’une station? Lesquels sont indispensables?

Observation du Trafic Réseau

  1. Vérifier que les deux VMs se voient par des ping
  2. Démarrer le logiciel d’écoute réseau wireshark.
  3. A partir du trafic réseau intercepté entre VM1 et VM2, mettre en évidence le protocole ARP. Il pourra être nécessaire de vider les caches ARP en désactivant les interfaces puis en les réactivant.

Nettoyage

Les disques de vos machines virtuelles sont stockées dans /tmp. Par conséquent, elles sont perdues à la fin du TP (NB: ce n’est pas le cas de la “box” préinstallée, qui est sur votre compte, donc votre quota).

Par terminer, n’oubliez pas de stopper vos VMs avec

$ vagrant halt

Et avant de partir proprement, dans chaque répertoire de VM, détruire les VMs récupérer les informations utiles à votre CR avant!

$ vagrant destroy

Par ailleurs, il existe une VM maîtresse qui est aussi à supprimer, vagrant ne fait pas le nettoyage automatiquement, donc il faut également faire

$ rm ~/.vagrant.d/boxes/m1reseaux/0/virtualbox/master_id

Vous devriez certainement créer un alias pour effectuer ces opérations rapidement en fin de séance.

Note finale: ces dernières manipulations sont dues au fait que votre quota de stockage est limité. Si vous trouvez cela trop pénible, faites réclamer (encore) une augmentation de quota pour les étudiants en Informatique via vos délégué.e.s.