Examen de TP de Réseaux - L3 Informatique

Durée 3h. Les documents de cours et codes sources des TP sont autorisés.

Les réponses sont rendues sous formes de fichiers sur le moodle du cours : http://moodle.univ-tln.fr/course/view.php?id=394

Vous devez commencer par mettre en place vos machines virtuelles si vous avez changé de PC.

bruno@licinfo1:/usr/local/vbox/vdi$ ./managevirtualmachines.sh clonemaster all
bruno@licinfo1:/usr/local/vbox/vdi$ ./managevirtualmachines.sh create all
Il est possible que certaines adresses IP ne soient pas attribuées automatiquement, si c’est le cas, lancez la commande dhclient eth0 ou dchlient eth1 en root dans la machine virtuelle

En cas de problème, supprimer toutes les machines : ./managevirtualmachines.sh remove all, puis lancer virtualbox et supprimer les machines qui resteraient ainsi que les disques dur dans le gestionnaire de media, puis recréez.

Vous donnerez les réponses questions dans le fichier exo1.txt en indiquant dans quels fichiers ou avec quelles commandes vous avez obtenu ces informations.

  1. Quelles sont les nom, adresses IP et MAC de la machine hôtes sur laquelle vous êtes connecté ?
  2. Comment son adresse IP est-elle attribuée ?
  3. Quels sont ses DNS et passerelles ?
  4. Quelle est l’adresse MAC de la machine deug12.univ-tln.fr ?
  5. Comment vérifier simplement qu’un serveur écoute sur le port TCP 110 de la machine pop.univ-tln.fr ? Il s’agit d’un serveur POP qui s’appuie sur un protocole composé de commandes envoyées en ASCII. A la commande CAPA un serveur POP retourne une liste de fonctions disponibles. quelles sont-elles pour ce serveur ?

Vous donnerez la liste des commandes qui répondent aux questions suivantes dans le fichier exo2.txt.

  1. A partir de votre répertoire home sur la machine hôte, copier le fichier local /var/log/syslog dans le répertoire de login de l’utilisateur user de la machine client.
  2. A partir de votre répertoire home sur la machine hôte, copier le fichier local /var/log/syslog dans le répertoire /tmp de la machine client.
  3. A partir de votre répertoire home sur la machine hôte, copier le fichier de la machine client /var/log/auth.log dans le répertoire /tmp de l’hôte en le renommant en X.txt
  4. Depuis la machine hôte, exécuter la commande ls en tant que root sur la machine client.
  5. En root sur la machine client avec la commande adduser, créer l’utilisateur user2. Mettez en place, les clés ssh pour que les utilisateurs user et user2 puissent se connecter sans mot de passe sur le compte root de la machine internanet.

Vous mettrez vos réponses dans le fichier exo3.txt.

  1. Copier le fichier /home/perso/bruno/mystere sur la machine client. Ce programme effectue une action sur le réseau, à l’aide de wireshark, expliquez en détail laquelle.

En vous inspirant des exemples du TP sur les socket. Ecrivez un serveur (AdditionneurServeur.c) et son client (AddClient.c). Le protocole est le suivant : le serveur envoie un message de bienvenue que le client affiche, ensuite le client envoie des entiers, à chaque entier reçu le serveur l’ajoute à la somme des entiers précédents en maintenant un compteur initialisé à zéro et retourne cette somme après chaque entier au client qui l’affiche.

  1. AdditionneurServer.c fonctionne de la façon suivante :
    1. À son lancement, le serveur affiche sur sa console son adresse et son numéro de port d’attachement local.
    2. Puis il envoie au client un message d’accueil (Welcome on AdditionneurServeur).
    3. Le serveur attend ensuite un entier et retourne à chaque fois la somme de cet entier avec les précédents au client.
    4. Lorsqu’une valeur négative est reçue le serveur s’arrête.
  1. Écrire le programme AddClient.c qui prend en argument l’adresse IP et le port d’un serveur. Après la connexion, le client affiche le message de bienvenue qui vient du serveur, il permet ensuite de saisir des entiers au clavier, de les envoyer au serveur et d’afficher les réponses.
  1. Un défi en bonus pour les informaticiens écrire une version multiclients MajTCPMultiServer.c qui permet à plusieurs clients de se connecter. Il faudra un fork pour les connexions multiples et un sémaphore pour s’assurer que l’addition est en exclusion mutuelle.