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 :
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]+
Mise ne place rapide
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.
Cloner les machines
./managevirtualmachines.sh clonemaster all
Enregistrer et paramétrer les machines dans VirtualBox
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
Démarrer les machines
Les machines peuvent être démarrées depuis l’interface (d’abord internalnet qui héberge les serveurs DHCP et DNS).
Supprimer les configurations
La commande suivante supprime les configurations mais pas les .vdi.
./managevirtualmachines.sh remove all
Stopper les machines
Toutes la machines peuvent être stoppées proprement via l’ACPI avec la commande :
./managevirtualmachines.sh halt all
Informations communes
- Toutes les machines possèdent deux comptes
root/root
etuser/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 avecifconfig
, 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.
Les machines
Client
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
.
Internalnet
La machine internalnet
sert de DHCP, DNS, passerelles et firewall (configuré avec shorewall) pour le réseau local (celui de client
).
Server
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).
Externalnet
La machine externalnet
héberge un dns externe et assure NAT vers l’extérieur.
Configuration avancée
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.