eWAN

Cyril Otal, François Echantillac

Mise à jour : Thu Nov 25 18:03:51 2004
Ce document concerne eWAN, un émulateur de grille haute performance. Il contient les instructions d'installation ainsi que le manuel d'utilisation.

1. Introduction

2. Installation

3. Utilisation de l'interface

4. Utilisation avancée

5. Fichiers de Configuration

6. FAQ


1. Introduction

eWAN est un logiciel d'émulation de réseaux haut débit, longue distance. Il se place dans le cadre de la recherche sur les grilles de calcul, agrégations de ressources informatiques interconnectés par un réseau longue distance. Il offre des possibilités d'émulation nécessaires aux expériences dans ce domaine, en assurant une grande flexibilité, un haut niveau de performances, et un environnement contrôlé avec précision. Il se décompose principalement en deux parties : une interface de création de topologies simples, et un moteur de déploiement de topologies quelconques.

1.1 License

eWAN est sous license GPL.

2. Installation

2.1 Source et Prérequis

Les source d'eWAN sont disponibles ici. eWAN s'installe sur un serveur web. Il déploye l'environnement émulé sur des noeuds reliés par un ou plusieurs switch et accessibles depuis le serveur.

Le serveur nécessite :

Les noeuds nécessitent :

Pour pouvoir jouer certains rôles, ils nécessitent également :

L'interface d'eWAN nécessite un navigateur récent, respectueux des standards :

mozilla 1.4 ou plus (Mozilla 1.7+ recommandé) et dérivés (Firefox 0.7+ firefox , Epiphany 0.8+, KMeleon 0.8+, Galeon 1.2.11+, Netscape 7.1+, Camino 0.8+) ou Opera ?

2.2 Installation

Les fichiers d'eWAN sont à installer sur le serveur de configuration, dans un répertoire accessible au serveur web, selon l'arborescence :

Par ailleurs, pour le déploiement (utilisant SSH), il faut copier la clé publique du serveur sur tous les noeuds de la grappe et autoriser la connexion en root. Puis, il faudra rajouter tous les noeuds dans le known_hosts du serveur (ce qui peut se faire en se connectant à la main une fois sur chaque noeud à partir du serveur).

3. Utilisation de l'interface

En se connectant sur la page d'accueil d'eWAN, 4 choix sont possibles : Charger une topologie, définir une nouvelle topologie, gérer les configurations matérielles, et vérifier la configuration matérielle actuelle.

3.1 Charger une topologie

Ce champ permet de charger une topologie définie préalablement, à partir d'un fichier RDF. La syntaxe de ces fichiers est détaillée dans la partie Utilisation avancée [Util_x].

3.2 Définir une nouvelle topologie

Ce lien conduit à une interface qui va guider pas à pas la création d'une topologie classique, c'est à dire constituée de points d'accès reliés à un coeur surdimensionné.

Points d'accès et Clients

Cette page détermine le nombre de points d'accès dans la topologie, ainsi que le nombre de clients pour chacun d'eux. Les limites sont déduites de la configuration matérielle utilisée (voir 3. Gestion des configurations matérielles).

Définition des liens

Ici sont calculées les caractéristiques des liens. Pour cela, l'utilisateur doit tout d'abord choisir le point d'accès le plus éloigné du coeur (selon la métrique la plus intéressante). Puis il renseigne la latence, les pertes et les duplications entre ce point d'accès et chacun des autres. Puis, ces informations n'étant pas suffisante pour caractériser totalement les liens, il faut encore choisir un couple de point d'accès (en excluant le premier) et donner les mêmes renseignements.

Attention : les valeurs données pour les liens du premier point d'accès entrainent un intervalle de cohérence pour le dernier lien. (Il est rappelé en temps réel)

Limitation des débits

Il est possible de limiter le débit au sein d'un réseau local d'un point d'accès, ou sur le lien du point d'accès au coeur.

Choix de la topologie

Le coeur peut être constitué d'un simple routeur central (topologie en étoile) ou d'un ensemble de routeurs (topologie en anneau). Il se peut que l'une des deux topologie ne soit pas accessible, du aux contraintes de la configuration matérielle.

Cross Traffic

S'il reste des machines de libre, elles peuvent servir de générateur de cross traffic, qui va congestionner une interface en sortie. Sur la page apparaît une représentation de la topologie. L'utilisateur peut choisir, en cliquant dessus, les interfaces qu'il souhaite congestionner. Il peut alors indiquer le débit du générateur dans le champ correspondant qui apparaitra.

Paramètres avancés optionnels

Pour finir, il reste 3 paramètres à préciser : La présence de qualité de service, la version du protocole IP, et la taille des frames utilisées. Les valeurs par défaut de ces 3 critères sont les plus communes.

Fin de la configuration

Cette page indique que la configuration de la topologie est terminée. Il est possible de sauvegarder son fichier de définition pour une réutilisation ultérieur. Puis si on veut déployer cette topologie, on peut débuter le processus : Voir Déploiement

3.3 Configurations matérielles

Format de sauvegarde

La configuration matérielle est stockée dans un fichier php (typiquement config.php). Le format est pour chaque machine un tableau avec différents paramètres à renseigner :

Il est possible de créer d'autres fichiers de configuration matérielle, et de choisir d'utiliser ceux-ci plutôt que celui par défaut grâce à la page Gestion des configurations matérielles. Il suffit d'indiquer le chemin du fichier choisi. Si des fichiers de configurations sont déjà stockés dans le dossier configmat, ils seront proposés. Attention : n'utilisez que des fichiers de confiance. Si vous indiquez le chemin vers un fichier malveillant qui contient du code PHP nocif, celui-ci sera exécuté...

Vérification de la configuration matérielle

Cette page permet de vérifier la configuration matérielle utilisée. Si certaines machines ne sont pas accessible par SSH, elles seront retirées. Pour les autres, le script vérifie certaines caractéristiques (CPU et nombre d'interfaces) et met à jour la configuration

3.4 Déploiement

Préparation au Déploiement

Cette page prépare le déploiement, en générant les tables MySQL, en répartissant les fonctionnalités sur les machines, en leur affectant des IP et en déterminant les sous-réseaux, puis en calculant les tables de routage

Déploiement

C'est par cette page que les configurations sont effectivement déploiées sur les noeuds. On trouve d'abord pour chaque machine un récapitulatif du script exécuté, puis le résultat du déployement.

4. Utilisation avancée

L'interface permet de créer des topologies classiques : des points d'accès reliés à un routeur central ou un anneau unidirectionnel de routeurs.

Pour ceux qui veulent étudier d'autres topologies, il est possible de les créer de toutes pièces, en écrivant leur fichier de définition. Ce fichier est au format RDF/XML (langage universel de description de ressources). Il utilise une ontologie définie par le schéma RDF localisé à l'adresse http://purl.org/net/topo/ns/

Pour ceux qui ne connaissent pas RDF, et qui veulent tout de suite créer leur fichier de définition, voici comment procéder :

Débutez le fichier par le traditionnel prologue XML, suivit de l'élément racine RDF, et des namespaces utilisés : <?xml version="1.0" encoding="iso-8859-15" ?> <rdf:RDF xmlns=" http://purl.org/net/topo/ns/" xmlns:rdf=" http://www.w3.org/1999/02/22-rdf-syntax-ns#" xml:base=" http://localhost/" xml:lang="fr">

Puis créez l'élément "Topologie". Celui-ci a 2 fils : noeuds et liens. Chacun des deux doit posséder l'attribut rdf:parseType="Collection" (ce qui indique en RDF que ce qui suit est une liste)

Dans l'élément noeuds, vous allez écrire les différents noeuds de la topologie, en n'oubliant pas de leur assigner un nom avec l'attribut rdf:ID Les noeuds possibles sont <Client />, <Pt-acces />, <Routeur /> et <Generateur />. Les noeuds <Client /> ont un unique fils indiquant le point d'accès utilisé. Cela se traduit par l'élément <ptacces /> avec l'attribut rdf:ressource indiquant le nom du point d'accès (précédé d'un "#" car le lien est interne) Les noeuds <Generateur /> ont plusieurs fils indiquant leurs propriétés : <debit-gen /> (contenant la valeur du débit) et <lien-cible/>, <noeud-cible />, <noeud-puit />, contenant chacun un rdf:ressource pointant vers l'objet voulu.

Dans l'élément liens, se trouvent évidement les liens entre les noeuds. Ils sont décrits par l'élément <Lien /> (disposant également de l'attribut rdf:ID pour identification), avec les fils : <from /> et <to /> pour la destination et l'origine, chacun avec un rdf:ressource pointant vers le noeud en question, <latence />, <debit /> et <duplication />, contenant chacun la valeur de cette métrique, et <perte /> qui définit les pertes. Cela peut être fait de 2 manières : Soit c'est une simple moyenne, auquel cas l'élément <perte /> a un fils <Moyenne-pertes /> qui avec l'attribut rdf:value indique cette moyenne. Soit c'est un profil de perte. Dans ce cas, son fils est l'élément <Profil-pertes />, qui possède les fils suivants : <type-profil /> qui donne le nom du profil, et <param-profil /> la liste des paramètres : il contient un élément <rdf:Seq /> avec à l'intérieur les différents paramètres encadrés par des <rdf:li>

(Voir exemples fournis dans examples/)

5. Fichiers de Configuration

5.1 Matérielle

Un exemple de fichier de configuration materielle. Ce fichier n'est pas utilisable puisqu'il definit un cluster à 2 machines alors qu'il en faut un minimum de 4 pour eWAN. C'est un extrait du fichier inclus dans les sources d'eWAN sous le nom de config.php.

<?php

//Machines disponibles
$machine1=array();
$machine1['id']='140.77.12.61';
$machine1['cpu']=1000;
$machine1['interfaces']=3;
$machine1['Frames']=1500;
$machine1['JumboFrames']=9000;
$machine1['type']=array('reseau','client');

$machine2=array();
$machine2['id']='140.77.12.62';
$machine2['cpu']=1000;
$machine2['interfaces']=3;
$machine2['Frames']=1500;
$machine2['JumboFrames']=9000;
$machine2['type']=array('reseau');

$machines=array(
        $machine1,
        $machine2,
        );

//Utilisation CPU :
$cpurout = 300;
$cpupt_acc = 200;
$cpucli = 100;

$tocken_buffer=15400000;

//timeout SSH
$sshtimeout=3;

$switch_routeur=0;

/* Passerelle par défaut pour chaque réseau de controle potentiel */
$ip_par_defaut=array(
        '140.77.12.0' => '140.77.12.1'
        );

$netmask_control='255.255.255.0';
$ip_privee='192.168.';

?>

5.2 Topologie

Il y a de nombreux exemple de fichier de topologie dans le repertoire examples/ des sources d'EWAN.

6. FAQ

Q: Lors de l'installation, quel est le mot de passe demandé pour l'installation de la base MySQL

R: Il s'agit du mot de passe administrateur de MySQL (rien à voir avec le mot de passe root de la machine). Pour une installation de MySQL par défaut, ce mot de passe est vide...