NetDemo : Un réseau virtuel

NetDemo est un ensemble de machine virtuelles sous VirtualBox qui permette de simuler une réseau complet. A terme, les machines disponibles seront conformes au diagramme ci-dessous. Actuellement sont fonctionnelles : client, server, internalnet et externalnet.

Pour pouvoir expérimenter sans crainte, nous ne travaillons pas sur les originaux des machines virtuelles mais sur des clones. Par défaut, les “originaux” (master) des machines virtuelles se trouvent dans /usr/local/vbox/vdi et les copies de travail (clone) dans /usr/local/vbox/travail (pour travailler chez vous le plus simple est de créer ces répertoires). En cas de problèmes, il suffit de supprimer la copie. Cela se fait, soit avec le script ou soit directement avec virtualbox (pensez à supprimer les médias dans le gestionnaire) ; puis en supprimant le fichier .vdi du répertoire travail.

Pour faire fonctionner le réseau virtuel, des images (.vdi) des machines sont fournies, ainsi qu’un script permettant la création et la suppression des configurations des machines et des réseaux :

Lancer virtualbox et vérifier dans Fichier>Paramètres qu’il existe un réseau privé hôte qui s’appelle vboxnet0, sinon l’ajouter
./managevirtualmachines.sh
usage : ./managevirtualmachines.sh [clonemaster|create|run|halt|remove|info] all|[client|internalnet|server|externalnet]+

Dans les salles de TP, il n’y a rien à modifier. Les modifications indiquées ici sont utiles si vous vous voulez utiliser les images dans d’autres répertoires que ceux par défaut.

Editer le script précédent pour fixer les paramètres de base : “répertoire des images, mémoire allouée aux machines et usage de VT”

Deux utilisations sont possibles soit en utilisant directement les .vdi, soit en les clonant d’abord pour garder une copie fonctionnelle.

Dans les salles de TP, les images d’origines sont dans le répertoire local à chaque machine /usr/local/vbox/vdi, les clones pour chaque utilisateur sont dans /usr/local/vbox/travail (préfixée par <username>-).

Vous pouvez exécuter l’interface graphique de VirtualBox en parallèle.

./managevirtualmachines.sh clonemaster all

Attention, vérifier dans l’interface graphique qu’il ne reste pas de configuration de machines avec le même nom ou de disques déclarés dans le gestionnaire de media.

  ./managevirtualmachines.sh create all 

Les machines peuvent être démarrées depuis l’interface (d’abord internalnet qui héberge les serveurs DHCP et DNS).

La commande suivante supprime les configurations mais pas les .vdi.

  ./managevirtualmachines.sh remove all 

Toutes la machines peuvent être stoppées proprement via l’ACPI avec la commande :

  ./managevirtualmachines.sh halt all 
  • Toutes les machines possèdent deux comptes root/root et user/user.
  • Toutes les machines et l’hôtes sont configurées pour avoir une carte réseau sur un réseau commun : 192.168.56.0. Il est donc possible de se connecter directement depuis l’hôte vers les machines et inversement (vérifier avant l’adresse IP de la destination avec ifconfig, elle est attribuée par un DHCP propre à VirtualBox).
  • Il est donc possible d’exécuter wireshark sur chaque machine virtuelle en exportant l’affichage sur l’hôte :

ssh -X <ip de la cible> wireshark

  En cas de problème d'affichage vous pouvez faire un ''xhost +'' (Attention !) avant sur l'hôte.  

La machine client est un client classique sous Linux Debian/Squeeze. Avec les clients de base (telnet, ftp, mailx, ssh, lynx pour http, mutt ou alpine pour le mail). Elle est auto configurée par internalnet.

La machine internalnet sert de DHCP, DNS, passerelles et firewall (configuré avec shorewall) pour le réseau local (celui de client).

La machine server fait fonctionner différents serveurs:

  • un serveur smtp (postfix)
    • pas d’authentification pour les machines locales
  • des serveurs imap et pop (cyrus)
    • l’utilisateur user/user peut lire ses mails.
  • un serveur web (apache)
    • une simple page d’accueil
  • un serveur ssh (openssh)
  • un proxy web (squid)
    • pour accéder au web à l’extérieur du réseau local ajouter un proxy parent (voir /etc/squid.conf, mais attention à votre mot de passe).

La machine externalnet héberge un dns externe et assure NAT vers l’extérieur.

Pour accéder à internet : configurer le named.conf.option de externalnet avec le DNS réel et le proxy web qui se trouve sur la machine server cf. ci dessus.

version pdf