résumé - claude bernard university lyon 1

52
OTAL Cyril Émulateur de nuage réseau de grille Sous la tutelle de Pascale Vicat-Blanc Primet et Olivier Glück (LIP) et Alexandre Saidi (ECL) Avril-Septembre 2004

Upload: others

Post on 03-Apr-2022

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Résumé - Claude Bernard University Lyon 1

OTAL Cyril

Eacutemulateur de nuage reacuteseau de grille

Sous la tutelle de Pascale Vicat-Blanc Primet et Olivier Gluumlck (LIP) et Alexandre Saidi (ECL)

Avril-Septembre 2004

2

3

Reacutesumeacute Ce rapport deacutecrit mon travail de fin deacutetudes effectueacute au Laboratoire

dInformatique et Paralleacutelisme de lEacutecole Nationale Supeacuterieur de Lyon dans leacutequipe RESO consistant en la reacutealisation dEWAN un logiciel deacutemulation de reacuteseaux haut deacutebit longue distance

Il se place dans le cadre de la recherche sur les grilles de calcul agreacutegations de ressources informatiques interconnecteacutes par un reacuteseau longue distance

Il offre des possibiliteacutes deacutemulation neacutecessaires aux expeacuteriences dans ce domaine en assurant une grande flexibiliteacute un haut niveau de performances et un environnement controcircleacute avec preacutecision Il se deacutecompose principalement en deux parties une interface de creacuteation de topologies simples et un moteur de deacuteploiement de topologies quelconques

Ce document preacutesente le contexte du travail et les outils qui seront utiliseacutes Puis le fonctionnement des diffeacuterentes parties du logiciel seront deacutecrites et expliqueacutees Les reacutesultats de tests seront reporteacutes confirmant la reacuteussite des objectifs fixeacutes et des perspectives eacutevoqueront les ameacuteliorations agrave apporter et les travaux futurs

Abstract

This report describes my end of studies training in the Laboratoire dInformatique et Paralleacutelisme of Eacutecole Nationale Supeacuterieur de Lyon in the RESO team which consisted in developping a software for emulation of hight bandwidth long distance networks

It takes place in the research effort on computer grids aggregations of computer resources inter-connected by a wide area network

It offers an emulation framework needed by experiments in this field bringing a great flexibility a high level of performances and a precise control It can be divided into two main parts an interface for creation of simple topologies and an engine deploying every sort of topologies

This document presents the context of this work and the tools which will be used Then the different parts of the software will be described and explained

Experimental results will be given proving the success of primary objectives and possible improvements to this software and future works will be mentioned

4

Introduction et contexte Le logiciel EWAN reacutealiseacute pendant mon travail de fin deacutetudes sinscrit

dans leffort de recherche dans le domaine des grilles de calcul qui sappuie sur plusieurs projets franccedilais ou europeacuteens de grilles expeacuterimentales

Une grille est un systegraveme informatique reacuteparti agrave grande eacutechelle le plus souvent constitueacute dun nuage reacuteseau au cœur et de grappes en peacuteripheacuterie

EWAN a pour but de permettre agrave un utilisateur de tester son application ou son protocole dans un environnement eacutemuleacute et parfaitement maicirctriseacute avant de le deacuteployer sur des grilles de calcul reacuteelles

En effet pour reacutealiser ses expeacuteriences le chercheur a le choix entre la simulation (qui atteint vite ses limites en terme de taille ou de dureacutee) ou des tests grandeur nature Ces derniers sont longs voire impossibles agrave mettre en place et sujets aux aleacuteas des expeacuteriences reacuteelles ce qui rend leur reproduction deacutelicate par exemple les paramegravetres du reacuteseau dont deacutependent fortement les reacutesultats des expeacuteriences ne sont pas controcirclables (taille des paquets qualiteacute de service)

Il faut alors se tourner vers leacutemulation approche intermeacutediaire ougrave une

5

partie des eacuteleacutements sont reacuteels (applications et nœuds dextreacutemiteacute) et une partie simuleacutee (les liens longue distance) le tout dans un environnement totalement maicirctriseacute

EWAN est donc un instrument orienteacute sur leacutetude des protocoles et des logiciels haute performance pour la grille avec un tregraves grand nombre de calculateurs interconnecteacutes Il doit offrir un haut niveau de performance une fine maicirctrise des paramegravetres de communication associeacute agrave une grande flexibiliteacute dutilisation

A Preacutesentation du Laboratoire de Recherche

Mon travail de fin deacutetudes sest deacuterouleacute au LIP (Laboratoire de lInformatique du Paralleacutelisme) le laboratoire dinformatique de lENS Lyon eacutegalement associeacute au CNRS agrave lINRIA et agrave lUniversiteacute Claude Bernard de Lyon

Ce laboratoire est constitueacute de sept projets Areacutenaire (Arithmeacutetique des ordinateurs) Compsys (Compilation systegravemes enfouis et calcul intensif) MC2 (Modegraveles de calcul et de complexiteacute) PLUME (Utilisation et ameacutelioration de la deacuteduction automatique) GRAAL (Algorithmique et ordonnancement pour plates-formes heacuteteacuterogegravenes distribueacutees) TRIO (Temps Reacuteel et InterOpeacuterabiliteacute) et RESO (Logiciels et protocoles optimiseacutes pour reacuteseaux haut-deacutebit)

Cest dans cette derniegravere eacutequipe sous la tutelle de Pascale Vicat-Blanc Primet et Olivier Gluumlck que jai effectueacute mes travaux

Le projet RESO eacutetudie le problegraveme de lutilisation efficace des reacuteseaux tregraves haut deacutebit dans le contexte des grilles haute performance (qui seront deacutefinies ci dessous)

Ses travaux recouvrent deux axes

La conception darchitectures logicielles de communication optimiseacutees pour les systegravemes dextreacutemiteacute ou daccegraves multiprocesseurs ou de type grappe

Les protocoles et traitements pour le transport performant de flux heacuteteacuterogegravenes de grille

Pour cela leacutequipe deacuteveloppe des outils notamment dans le domaine de leacutemulation comme EWAN

6

B Contexte

I Grilles de calcul et topologies Une grappe de machines (cluster en anglais) est un groupe dordinateurs

mis en reacuteseau local afin de former un ensemble de forte capaciteacute tregraves utiliseacute pour les calculs parallegraveles

Une grille est un ensemble dordinateurs distribueacutes geacuteographiquement relieacutes par des reacuteseaux longue distance (Internet reacuteseaux priveacutes virtuels (VPN) ou reacuteseaux priveacutes reacuteels) qui eacutetend le principe du calcul parallegravele des grappes

Les grilles de calcul permettent une agreacutegation de ressources informatiques varieacutees (comme la puissance de calcul ou de stockage de donneacutees)

Les premiegraveres grilles connues du grand public furent les logiciels de calcul distribueacute comme SETIHome [1] puis GenomeHome [2] pour lequel les ordinateurs des particuliers travaillaient et envoyaient au serveur le reacutesultat de leurs efforts

Puis les grilles se sont affranchies du modegravele Client -Serveur afin que chaque ordinateur puisse lancer des calculs ou utiliser la puissances des autres Dans le but dobtenir du calcul parallegravele toujours plus puissant des grilles regroupant plusieurs grappes furent creacuteeacutees

Actuellement la recherche dans ce domaine prometteur avance notamment gracircce agrave la mise en place de plateformes expeacuterimentales sappuyant sur des reacuteseaux haut deacutebit (comme RENATER reacuteseau national regroupant des eacutetablissements scientifiques et universitaires ou VTHD premier reacuteseau tregraves haut deacutebit franccedilais) Par exemple Grid5000 [3] est un projet de reacutealisation dune grille expeacuterimentale destineacutee agrave la communauteacute franccedilaise des chercheurs en informatique regroupant 8 sites en France dont un agrave Lyon impliquant le LIP Les chercheurs seront inviteacutes agrave tester leurs expeacuteriences avec EWAN avant de les deacuteployer sur Grid5000

Les travaux du Global Grid Forum [4] (organisme de standardisation dans le domaine des grilles de clacul) ont permis dobtenir une caracteacuterisation tregraves complegravete des topologies reacuteseau servant agrave deacutecrire la structure des grilles [5]

1 Entiteacutes Un reacuteseau est composeacute de nœuds et de liens (unidirectionnels ou

7

bidirectionnels) Les nœuds peuvent ecirctre des clients (Host) ou des nœuds internes (routeurs

switchs proxy)

2 Proprieacuteteacutes

Les principales proprieacuteteacutes des liens (qui ont eacuteteacute eacutetudieacutees pendant le stage) sont regroupeacutees en 4 cateacutegories

La Bande passante la Latence les Pertes et les Duplications

a Bande passante

La bande passante se mesure geacuteneacuteralement en quantiteacute de donneacutees par uniteacute de temps

Cependant elle ne peut ecirctre repreacutesenteacutee par une seule valeur on introduit donc 4 caracteacuteristiques

La Capaciteacute

Cest la quantiteacute maximale de donneacutees pouvant ecirctre transmise lorsquil ny a pas dautre trafic

8

Cest une valeur theacuteorique et la seule que lon connaicirct preacuteciseacutement

LUtilisation

Cest la quantiteacute de donneacutees concregravetement transmises agrave un instant donneacute

La Bande Passante disponible

Cest la quantiteacute maximale de donneacutees quun lien peut fournir lors dune certaine utilisation

La Bande Passante atteignable

Cest la quantiteacute de donneacutees maximale pouvant ecirctre transmise selon une certaine utilisation un certain protocole et certains eacutequipements

Cest en fait la valeur la plus inteacuteressante agrave eacutetudier car la seule reacuteellement utile Malheureusement elle ne peut pas ecirctre formellement calculeacutee car deacutependante de trop de paramegravetres

On a Utilisation lt Bande Passante atteignable lt Bande Passante disponible lt Capaciteacute

Le but est de trouver les paramegravetres permettant dapprocher le plus possible la Bande Passante atteignable de la Bande Passante disponible

b Latence

Les caracteacuteristiques de la Latence sont deacutecrites en deacutetail dans les RFC 2330 2679 et 2681 [6]

Elle repreacutesente le temps entre le moment ougrave le deacutebut dun paquet part dun eacutemetteur et celui ougrave la fin du paquet arrive au reacutecepteur

Cette deacutefinition entraicircne des interrogations sur les problegravemes de synchronisation de fragmentation de paquets

La Latence (comme les autres grandeurs) peut ecirctre mesureacutee en aller simple ou en aller-retour La mesure de laller simple est tregraves importante car de nos jours la plupart des liens sont asymeacutetriques (ils peuvent par exemple avoir des qualiteacutes de service diffeacuterentes selon le sens)

La Gigue

Classeacutee dans la famille des latences eacutegalement appeleacutee IPDV (IP Packet Delay Variation) elle mesure les variations de la Latence dans le temps

La Gigue a des conseacutequences importantes pour les applications qui

9

neacutecessitent un flux reacutegulier (comme le streaming audio ou videacuteo)

c Pertes

Les pertes repreacutesentent les paquets eacutemis qui ne sont pas arriveacutes agrave destination

Cette meacutetrique est deacutefinie par la RFC 2680 [7] Les pertes peuvent ecirctre caracteacuteriseacutees par un pourcentage de paquets

perdus ou par un profil de perte Dans ce dernier cas seul un profil particulier (Loi de Poisson) a eacuteteacute

formellement deacutefini (dans la mecircme RFC) mais lInternet Society encourage des deacuteveloppeurs agrave utiliser eacutegalement dautres profils

Le logiciel qui sera utiliseacute pour leacutemulateur durant le stage (NIST Net) ne permet pas dimpleacutementer le profil de Poisson En revanche il propose deux autres profils correacutelation (cest agrave dire une valeur moyenne associeacutee agrave un coefficient de correacutelation) et DRD (Derivative Random Drop) [8]

d Duplications

Les duplications repreacutesentent les paquets qui arrivent plusieurs fois agrave destination

On peut les mesurer en pourcentage ou suivant un profil NIST Net permet dutiliser un profil de correacutelation

Un diagramme repreacutesentant la totaliteacute des proprieacuteteacutes deacutefinies est donneacute en Annexe [1]

II Outils

La premiegravere ideacutee envisageacutee peut ecirctre dutiliser un simulateur comme NS ou OpenNet Mais de part leur nature ces programmes ne permettent pas des mesures expeacuterimentales reacuteelles

Plusieurs outils complets deacutemulations existent deacutejagrave (comme Emulab [9] X-bone [10] ou ModelNet [11]) mais ils neacutetaient pas adapteacutes aux objectifs dEWAN notamment en ce qui concerne le haut deacutebit

Dautres outils se concentrent sur certains aspects preacutecis de leacutemulation (notamment pour les liens) EWAN na pas la preacutetention de reacutecrire ces briques fondamentales elles lui serviront de bases et son rocircle sera de les parameacutetrer

10

correctement

1 NIST Net

NIST Net [12] est un logiciel (sous licence libre baseacutee sur la GPL) deacuteveloppeacute par le NIST (National Institute of Standards and Technology) Il se preacutesente sous la forme dun module du noyau linux

Son but est deacutemuler un lien On souhaite recevoir des paquets par une interface et les transmettre en sortie sur une autre selon certaines conditions correspondant aux caracteacuteristiques du lien

NIST Net se place juste avant les fonction IP du noyau Il va reacutecupeacuterer les paquets reccedilus les stocker dans des files dattente et les libeacuterer selon les paramegravetres preacuteciseacutes lors de sa configuration

NIST Net peut ainsi eacutemuler des latences (y compris des gigues) des pertes (par simple pourcentage ou selon deux profils correacutelation ou DRD) des duplications (par pourcentage ou selon le profil correacutelation) et le deacutebit

Le profil DRD (Derivative Random Drop) correspond agrave une probabiliteacute de pertes qui croit lineacuteairement avec la taille de la queue apregraves un eacuteventuel seuil

Il existe un autre profil couramment utiliseacute RED (Random Early Detection) mais les concepteurs de NIST Net ont estimeacute que dans le cadre de leacutemulation de liens DRD eacutetait amplement suffisant En effet RED (deacutefini dans la RFC 2309) est un algorithme utiliseacute dans la gestion des queues des routeurs (pour deacuteterminer la faccedilon de jeter les paquets lorsque la queue est pleine)

Leacutemulation du deacutebit par NIST Net ne sera pas utiliseacutee car elle nest pas tregraves preacutecise et car nous disposons dun autre outil tregraves simple mieux adapteacute TC

NIST Net dispose dune interface graphique et dune autre en ligne de commande Vu que nous preacutevoyons de deacuteployer des configurations sur plusieurs machines dun cluster seule cette derniegravere sera utiliseacutee

11

NIST Net stocke les paquets en attente dans des tables dont les tailles sont donc conditionneacutees par la meacutemoire de la machine utiliseacutee Mais la facteur vraiment limitant selon diverses eacutetudes de performances est le CPU En effet NIST Net doit reacuteguliegraverement parcourir ces tables afin de stocker les paquets arrivant Ainsi plus la latence que lon souhaite eacutemuler est eacuteleveacutee plus les tables seront longues et plus le CPU devra ecirctre puissant

2 Dummynet

Dummynet [13] est un outil sous licence BSD pour les plateformes FreeBSD

Il permet eacutegalement deacutemuler des latences des effets de queues des limitations de deacutebits et des reacuteordonnancements de paquets en interceptant le trafic dans la pile protocolaire de la machine cliente

Les machines manipuleacutees durant le stage tourneront sous GNULinux aussi cest NIST Net qui sera utiliseacute au lieu de Dummynet

Un port de ce programme pour linux avait deacutebuteacute dans une eacutequipe de recherche parisienne mais suite agrave lengagement des travaux du LIP sur leacutemulation avec NIST Net ce deacuteveloppement fut arrecircteacute

12

3 TC

TC (Trafic Control) est une commande standard de GNULinux permettant notamment de limiter le deacutebit en sortie dune interface

Cest loutil qui sera utiliseacute pour eacutemuler le deacutebit dun lien Mais TC peut eacutegalement servir agrave deacutefinir des classes de service qui

pourront ecirctre utiles dans leacutemulation de Qualiteacute de Service

13

Reacutealisation

A Speacutecifications

EWAN signifie simplement Eacutemulateur de WAN (Wide Area Network Reacuteseaux informatiques de grande taille) et a comme objectif decirctre un eacutemulateur de topologies haut deacutebit longue distance

Cest agrave dire quEWAN doit configurer des machines lieacutees entre elles par du haut deacutebit (1Gbs) et eacutemulant des liens longue distance (donc en utilisant leacutemulateur de lien NIST-Net)

EWAN devait se deacutecomposer en briques

Une interface web geacuteneacutereacutee en PHP qui permettrait de deacutefinir intuitivement des topologies simples

Un algorithme daffectation des types de fonctionnaliteacutes aux machines de la grappe

Un algorithme de deacutetermination des IP et sous-reacuteseaux

Un algorithme de calcul de routage et de configuration des tables de routage

Une meacutethode de stockage des informations dans une base MySQL

Et un proceacutedeacute de deacuteploiement sur la grappe

Nous avons ensuite reacutealiseacute que PHP pouvait convenir pour toutes les briques aussi ce langage fut retenu pour EWAN

Linterface est preacutevue pour des expeacuterimentateurs qui ne sinteacuteressent pas au cœur du reacuteseau supposeacute surdimensionneacute et qui veulent reacutealiser simplement une topologie classique telle quils en rencontrent dans la reacutealiteacute sans avoir agrave se preacuteoccuper de sa structure interne (comme le routage)

B Architecture logique

EWAN doit donc permettre de simuler des topologies au niveau 3 de la couche OSI cest agrave dire des nœuds relieacutes par des liens avec des meacutetriques agrave deacutefinir dans des sous reacuteseaux IP

La cas de figure le plus couramment eacutetudieacute est celui de clients derriegravere des

14

points daccegraves relieacutes par des liens (aux latences non neacutegligeables) agrave un cœur de reacuteseau surdimensionneacute

On peut alors mettre en eacutevidence certaines fonctionnaliteacutes qui devront ecirctre eacutemuleacutees

- eacutemulation de lien (latence pertes et duplications)

- eacutemulation de capaciteacute (limitation de deacutebit tocken bucket)

- routage virtuel

- geacuteneacuteration de trafic concurrent

- capture de trafic concurrent

Ces fonctionnaliteacutes seront reacuteparties selon 5 types eacutemuleacutes par les nœuds

- Client

- Point daccegraves

- Routeur de cœur

- Eacutemulateur de lien

- Geacuteneacuterateur de trafic

15

C Architecture physique

EWAN est constitueacute dune grappe de nœuds non neacutecessairement mateacuteriellement identiques (avec par exemple un nombre dinterfaces une capaciteacute meacutemoire ou CPU diffeacuterents) relieacutes par un ou plusieurs commutateurs (switchs) et dun serveur qui soccupera de configurer ces nœuds et sur lequel EWAN sexeacutecute

Ces machines appartiennent donc initialement au mecircme sous-reacuteseau et sont accessibles entre-elles au niveau 2 de la couche OSI (Ethernet)

Chaque nœud utiliseacute pour la topologie souhaiteacutee sera de lun des types preacutedeacutefinis et eacutemulera une fonctionnaliteacute

- La latence les pertes et les duplications sont assureacutees par les eacutemulateurs de liens (utilisant NIST Net)

- Les limitations de deacutebits sont mises en œuvre par les nœuds aux extreacutemiteacutes du lien agrave limiter

- Le routage virtuel est reacutealiseacute par les routeurs de cœur et les points daccegraves

- La geacuteneacuteration de trafic est la fonctionnaliteacute speacutecifique des geacuteneacuterateurs

- La capture du trafic concurrent est agrave la charge des routeurs (de cœur ou daccegraves)

Pour cela tous les nœuds de la grappe doivent posseacuteder les mecircmes logiciels suivants

- Debian GNULinux

- iproute

- au moins un geacuteneacuterateur de trafic (Iperf ou Mgen)

16

- un serveur SSH

- un kernel compileacute avec les options de routage avanceacutees (IP advanced router et IP policy routing) et CPU (devcpucpuid - CPU information support)

Par ailleurs toute la configuration de la grappe et son deacuteploiement sont geacutereacutes par un serveur web qui doit disposer de

- Apache

- PHP 4 ou PHP 5 avec les bibliothegraveques

- MySQL

- XML et DOM

- GD (avec PNG et FreeType)

- MySQL

- SSH

Le logiciel EWAN reacutealiseacute en PHP comporte deux principales parties une interface de creacuteation de topologies classiques et un moteur de deacuteploiement (qui accepte nimporte quelle topologie)

D Interface de creacuteation de topologie

En se connectant sur la page daccueil dEWAN 4 choix sont possibles charger une topologie deacutefinir une nouvelle topologie geacuterer les configurations mateacuterielles et veacuterifier la configuration mateacuterielle actuelle

1 Charger une topologie

Ce champ permet de charger une topologie deacutefinie preacutealablement agrave partir dun fichier RDF Ces fichiers sont creacuteeacutes soit agrave partir de linterface soit agrave la main en respectant leur syntaxe Celle-ci est deacutetailleacutee dans la partie Deacuteploiement des topologies

17

2 Deacutefinir une nouvelle topologie

Ce lien conduit agrave linterface qui va guider pas agrave pas la creacuteation dune topologie classique cest agrave dire constitueacutee de points daccegraves relieacutes agrave un cœur surdimensionneacute

Agrave chaque eacutetape les choix offerts agrave lutilisateur sont calculeacutes agrave partir des informations quil a deacutejagrave saisies et des contraintes mateacuterielles

a Points daccegraves et Clients

Cette page deacutetermine le nombre de points daccegraves dans la topologie ainsi que le nombre de clients pour chacun deux Les limites sont deacuteduites de la configuration mateacuterielle utiliseacutee (voir 3 Gestion des configurations mateacuterielles)

18

b Deacutefinition des liens

Ici sont calculeacutees les caracteacuteristiques des liens

19

Les liens qui nous inteacuteressent ici sont ceux liant les points daccegraves aux routeurs de cœur

En effet les liens entre un point daccegraves et ses clients correspondent agrave un reacuteseau local donc sont neacutegligeables et les liens agrave linteacuterieur du cœur sont supposeacutes surdimensionneacutes

Les utilisateurs auxquels loutil est destineacute ne connaicirctront habituellement pas les caracteacuteristiques des liens Points daccegraves - Routeur de cœur Au lieu de ccedila ils disposent dinformations mesureacutees de bout en bout cest agrave dire dun point daccegraves agrave un autre Ils peuvent posseacuteder alors les caracteacuteristiques dun graphe complet soit n(n-1)2 valeurs pour n Points daccegraves

On se retrouve avec un systegraveme de n inconnues agrave n(n-1)2 eacutequations Si lutilisateur devait rentrer toutes ces valeurs on aurait un risque dincoheacuterence Cest pourquoi lutilisateur doit tout dabord choisir le point daccegraves le plus eacuteloigneacute du cœur (selon la meacutetrique la plus inteacuteressante) Puis il renseigne la latence les pertes et les duplications entre ce point daccegraves et chacun des autres (Soit n-1 valeurs) Puis il faut encore choisir un couple de point daccegraves (en excluant le premier) et donner les mecircmes renseignements

Les valeurs donneacutees pour les liens du premier point daccegraves entrainent un intervalle de coheacuterence pour le dernier lien qui est rappeleacute en temps reacuteel

(En effet si le lien de A vers B a une latence de 100ms et celui de A vers C 20ms le lien entre B et C doit forceacutement se trouver dans lintervalle 80-120ms

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 2: Résumé - Claude Bernard University Lyon 1

2

3

Reacutesumeacute Ce rapport deacutecrit mon travail de fin deacutetudes effectueacute au Laboratoire

dInformatique et Paralleacutelisme de lEacutecole Nationale Supeacuterieur de Lyon dans leacutequipe RESO consistant en la reacutealisation dEWAN un logiciel deacutemulation de reacuteseaux haut deacutebit longue distance

Il se place dans le cadre de la recherche sur les grilles de calcul agreacutegations de ressources informatiques interconnecteacutes par un reacuteseau longue distance

Il offre des possibiliteacutes deacutemulation neacutecessaires aux expeacuteriences dans ce domaine en assurant une grande flexibiliteacute un haut niveau de performances et un environnement controcircleacute avec preacutecision Il se deacutecompose principalement en deux parties une interface de creacuteation de topologies simples et un moteur de deacuteploiement de topologies quelconques

Ce document preacutesente le contexte du travail et les outils qui seront utiliseacutes Puis le fonctionnement des diffeacuterentes parties du logiciel seront deacutecrites et expliqueacutees Les reacutesultats de tests seront reporteacutes confirmant la reacuteussite des objectifs fixeacutes et des perspectives eacutevoqueront les ameacuteliorations agrave apporter et les travaux futurs

Abstract

This report describes my end of studies training in the Laboratoire dInformatique et Paralleacutelisme of Eacutecole Nationale Supeacuterieur de Lyon in the RESO team which consisted in developping a software for emulation of hight bandwidth long distance networks

It takes place in the research effort on computer grids aggregations of computer resources inter-connected by a wide area network

It offers an emulation framework needed by experiments in this field bringing a great flexibility a high level of performances and a precise control It can be divided into two main parts an interface for creation of simple topologies and an engine deploying every sort of topologies

This document presents the context of this work and the tools which will be used Then the different parts of the software will be described and explained

Experimental results will be given proving the success of primary objectives and possible improvements to this software and future works will be mentioned

4

Introduction et contexte Le logiciel EWAN reacutealiseacute pendant mon travail de fin deacutetudes sinscrit

dans leffort de recherche dans le domaine des grilles de calcul qui sappuie sur plusieurs projets franccedilais ou europeacuteens de grilles expeacuterimentales

Une grille est un systegraveme informatique reacuteparti agrave grande eacutechelle le plus souvent constitueacute dun nuage reacuteseau au cœur et de grappes en peacuteripheacuterie

EWAN a pour but de permettre agrave un utilisateur de tester son application ou son protocole dans un environnement eacutemuleacute et parfaitement maicirctriseacute avant de le deacuteployer sur des grilles de calcul reacuteelles

En effet pour reacutealiser ses expeacuteriences le chercheur a le choix entre la simulation (qui atteint vite ses limites en terme de taille ou de dureacutee) ou des tests grandeur nature Ces derniers sont longs voire impossibles agrave mettre en place et sujets aux aleacuteas des expeacuteriences reacuteelles ce qui rend leur reproduction deacutelicate par exemple les paramegravetres du reacuteseau dont deacutependent fortement les reacutesultats des expeacuteriences ne sont pas controcirclables (taille des paquets qualiteacute de service)

Il faut alors se tourner vers leacutemulation approche intermeacutediaire ougrave une

5

partie des eacuteleacutements sont reacuteels (applications et nœuds dextreacutemiteacute) et une partie simuleacutee (les liens longue distance) le tout dans un environnement totalement maicirctriseacute

EWAN est donc un instrument orienteacute sur leacutetude des protocoles et des logiciels haute performance pour la grille avec un tregraves grand nombre de calculateurs interconnecteacutes Il doit offrir un haut niveau de performance une fine maicirctrise des paramegravetres de communication associeacute agrave une grande flexibiliteacute dutilisation

A Preacutesentation du Laboratoire de Recherche

Mon travail de fin deacutetudes sest deacuterouleacute au LIP (Laboratoire de lInformatique du Paralleacutelisme) le laboratoire dinformatique de lENS Lyon eacutegalement associeacute au CNRS agrave lINRIA et agrave lUniversiteacute Claude Bernard de Lyon

Ce laboratoire est constitueacute de sept projets Areacutenaire (Arithmeacutetique des ordinateurs) Compsys (Compilation systegravemes enfouis et calcul intensif) MC2 (Modegraveles de calcul et de complexiteacute) PLUME (Utilisation et ameacutelioration de la deacuteduction automatique) GRAAL (Algorithmique et ordonnancement pour plates-formes heacuteteacuterogegravenes distribueacutees) TRIO (Temps Reacuteel et InterOpeacuterabiliteacute) et RESO (Logiciels et protocoles optimiseacutes pour reacuteseaux haut-deacutebit)

Cest dans cette derniegravere eacutequipe sous la tutelle de Pascale Vicat-Blanc Primet et Olivier Gluumlck que jai effectueacute mes travaux

Le projet RESO eacutetudie le problegraveme de lutilisation efficace des reacuteseaux tregraves haut deacutebit dans le contexte des grilles haute performance (qui seront deacutefinies ci dessous)

Ses travaux recouvrent deux axes

La conception darchitectures logicielles de communication optimiseacutees pour les systegravemes dextreacutemiteacute ou daccegraves multiprocesseurs ou de type grappe

Les protocoles et traitements pour le transport performant de flux heacuteteacuterogegravenes de grille

Pour cela leacutequipe deacuteveloppe des outils notamment dans le domaine de leacutemulation comme EWAN

6

B Contexte

I Grilles de calcul et topologies Une grappe de machines (cluster en anglais) est un groupe dordinateurs

mis en reacuteseau local afin de former un ensemble de forte capaciteacute tregraves utiliseacute pour les calculs parallegraveles

Une grille est un ensemble dordinateurs distribueacutes geacuteographiquement relieacutes par des reacuteseaux longue distance (Internet reacuteseaux priveacutes virtuels (VPN) ou reacuteseaux priveacutes reacuteels) qui eacutetend le principe du calcul parallegravele des grappes

Les grilles de calcul permettent une agreacutegation de ressources informatiques varieacutees (comme la puissance de calcul ou de stockage de donneacutees)

Les premiegraveres grilles connues du grand public furent les logiciels de calcul distribueacute comme SETIHome [1] puis GenomeHome [2] pour lequel les ordinateurs des particuliers travaillaient et envoyaient au serveur le reacutesultat de leurs efforts

Puis les grilles se sont affranchies du modegravele Client -Serveur afin que chaque ordinateur puisse lancer des calculs ou utiliser la puissances des autres Dans le but dobtenir du calcul parallegravele toujours plus puissant des grilles regroupant plusieurs grappes furent creacuteeacutees

Actuellement la recherche dans ce domaine prometteur avance notamment gracircce agrave la mise en place de plateformes expeacuterimentales sappuyant sur des reacuteseaux haut deacutebit (comme RENATER reacuteseau national regroupant des eacutetablissements scientifiques et universitaires ou VTHD premier reacuteseau tregraves haut deacutebit franccedilais) Par exemple Grid5000 [3] est un projet de reacutealisation dune grille expeacuterimentale destineacutee agrave la communauteacute franccedilaise des chercheurs en informatique regroupant 8 sites en France dont un agrave Lyon impliquant le LIP Les chercheurs seront inviteacutes agrave tester leurs expeacuteriences avec EWAN avant de les deacuteployer sur Grid5000

Les travaux du Global Grid Forum [4] (organisme de standardisation dans le domaine des grilles de clacul) ont permis dobtenir une caracteacuterisation tregraves complegravete des topologies reacuteseau servant agrave deacutecrire la structure des grilles [5]

1 Entiteacutes Un reacuteseau est composeacute de nœuds et de liens (unidirectionnels ou

7

bidirectionnels) Les nœuds peuvent ecirctre des clients (Host) ou des nœuds internes (routeurs

switchs proxy)

2 Proprieacuteteacutes

Les principales proprieacuteteacutes des liens (qui ont eacuteteacute eacutetudieacutees pendant le stage) sont regroupeacutees en 4 cateacutegories

La Bande passante la Latence les Pertes et les Duplications

a Bande passante

La bande passante se mesure geacuteneacuteralement en quantiteacute de donneacutees par uniteacute de temps

Cependant elle ne peut ecirctre repreacutesenteacutee par une seule valeur on introduit donc 4 caracteacuteristiques

La Capaciteacute

Cest la quantiteacute maximale de donneacutees pouvant ecirctre transmise lorsquil ny a pas dautre trafic

8

Cest une valeur theacuteorique et la seule que lon connaicirct preacuteciseacutement

LUtilisation

Cest la quantiteacute de donneacutees concregravetement transmises agrave un instant donneacute

La Bande Passante disponible

Cest la quantiteacute maximale de donneacutees quun lien peut fournir lors dune certaine utilisation

La Bande Passante atteignable

Cest la quantiteacute de donneacutees maximale pouvant ecirctre transmise selon une certaine utilisation un certain protocole et certains eacutequipements

Cest en fait la valeur la plus inteacuteressante agrave eacutetudier car la seule reacuteellement utile Malheureusement elle ne peut pas ecirctre formellement calculeacutee car deacutependante de trop de paramegravetres

On a Utilisation lt Bande Passante atteignable lt Bande Passante disponible lt Capaciteacute

Le but est de trouver les paramegravetres permettant dapprocher le plus possible la Bande Passante atteignable de la Bande Passante disponible

b Latence

Les caracteacuteristiques de la Latence sont deacutecrites en deacutetail dans les RFC 2330 2679 et 2681 [6]

Elle repreacutesente le temps entre le moment ougrave le deacutebut dun paquet part dun eacutemetteur et celui ougrave la fin du paquet arrive au reacutecepteur

Cette deacutefinition entraicircne des interrogations sur les problegravemes de synchronisation de fragmentation de paquets

La Latence (comme les autres grandeurs) peut ecirctre mesureacutee en aller simple ou en aller-retour La mesure de laller simple est tregraves importante car de nos jours la plupart des liens sont asymeacutetriques (ils peuvent par exemple avoir des qualiteacutes de service diffeacuterentes selon le sens)

La Gigue

Classeacutee dans la famille des latences eacutegalement appeleacutee IPDV (IP Packet Delay Variation) elle mesure les variations de la Latence dans le temps

La Gigue a des conseacutequences importantes pour les applications qui

9

neacutecessitent un flux reacutegulier (comme le streaming audio ou videacuteo)

c Pertes

Les pertes repreacutesentent les paquets eacutemis qui ne sont pas arriveacutes agrave destination

Cette meacutetrique est deacutefinie par la RFC 2680 [7] Les pertes peuvent ecirctre caracteacuteriseacutees par un pourcentage de paquets

perdus ou par un profil de perte Dans ce dernier cas seul un profil particulier (Loi de Poisson) a eacuteteacute

formellement deacutefini (dans la mecircme RFC) mais lInternet Society encourage des deacuteveloppeurs agrave utiliser eacutegalement dautres profils

Le logiciel qui sera utiliseacute pour leacutemulateur durant le stage (NIST Net) ne permet pas dimpleacutementer le profil de Poisson En revanche il propose deux autres profils correacutelation (cest agrave dire une valeur moyenne associeacutee agrave un coefficient de correacutelation) et DRD (Derivative Random Drop) [8]

d Duplications

Les duplications repreacutesentent les paquets qui arrivent plusieurs fois agrave destination

On peut les mesurer en pourcentage ou suivant un profil NIST Net permet dutiliser un profil de correacutelation

Un diagramme repreacutesentant la totaliteacute des proprieacuteteacutes deacutefinies est donneacute en Annexe [1]

II Outils

La premiegravere ideacutee envisageacutee peut ecirctre dutiliser un simulateur comme NS ou OpenNet Mais de part leur nature ces programmes ne permettent pas des mesures expeacuterimentales reacuteelles

Plusieurs outils complets deacutemulations existent deacutejagrave (comme Emulab [9] X-bone [10] ou ModelNet [11]) mais ils neacutetaient pas adapteacutes aux objectifs dEWAN notamment en ce qui concerne le haut deacutebit

Dautres outils se concentrent sur certains aspects preacutecis de leacutemulation (notamment pour les liens) EWAN na pas la preacutetention de reacutecrire ces briques fondamentales elles lui serviront de bases et son rocircle sera de les parameacutetrer

10

correctement

1 NIST Net

NIST Net [12] est un logiciel (sous licence libre baseacutee sur la GPL) deacuteveloppeacute par le NIST (National Institute of Standards and Technology) Il se preacutesente sous la forme dun module du noyau linux

Son but est deacutemuler un lien On souhaite recevoir des paquets par une interface et les transmettre en sortie sur une autre selon certaines conditions correspondant aux caracteacuteristiques du lien

NIST Net se place juste avant les fonction IP du noyau Il va reacutecupeacuterer les paquets reccedilus les stocker dans des files dattente et les libeacuterer selon les paramegravetres preacuteciseacutes lors de sa configuration

NIST Net peut ainsi eacutemuler des latences (y compris des gigues) des pertes (par simple pourcentage ou selon deux profils correacutelation ou DRD) des duplications (par pourcentage ou selon le profil correacutelation) et le deacutebit

Le profil DRD (Derivative Random Drop) correspond agrave une probabiliteacute de pertes qui croit lineacuteairement avec la taille de la queue apregraves un eacuteventuel seuil

Il existe un autre profil couramment utiliseacute RED (Random Early Detection) mais les concepteurs de NIST Net ont estimeacute que dans le cadre de leacutemulation de liens DRD eacutetait amplement suffisant En effet RED (deacutefini dans la RFC 2309) est un algorithme utiliseacute dans la gestion des queues des routeurs (pour deacuteterminer la faccedilon de jeter les paquets lorsque la queue est pleine)

Leacutemulation du deacutebit par NIST Net ne sera pas utiliseacutee car elle nest pas tregraves preacutecise et car nous disposons dun autre outil tregraves simple mieux adapteacute TC

NIST Net dispose dune interface graphique et dune autre en ligne de commande Vu que nous preacutevoyons de deacuteployer des configurations sur plusieurs machines dun cluster seule cette derniegravere sera utiliseacutee

11

NIST Net stocke les paquets en attente dans des tables dont les tailles sont donc conditionneacutees par la meacutemoire de la machine utiliseacutee Mais la facteur vraiment limitant selon diverses eacutetudes de performances est le CPU En effet NIST Net doit reacuteguliegraverement parcourir ces tables afin de stocker les paquets arrivant Ainsi plus la latence que lon souhaite eacutemuler est eacuteleveacutee plus les tables seront longues et plus le CPU devra ecirctre puissant

2 Dummynet

Dummynet [13] est un outil sous licence BSD pour les plateformes FreeBSD

Il permet eacutegalement deacutemuler des latences des effets de queues des limitations de deacutebits et des reacuteordonnancements de paquets en interceptant le trafic dans la pile protocolaire de la machine cliente

Les machines manipuleacutees durant le stage tourneront sous GNULinux aussi cest NIST Net qui sera utiliseacute au lieu de Dummynet

Un port de ce programme pour linux avait deacutebuteacute dans une eacutequipe de recherche parisienne mais suite agrave lengagement des travaux du LIP sur leacutemulation avec NIST Net ce deacuteveloppement fut arrecircteacute

12

3 TC

TC (Trafic Control) est une commande standard de GNULinux permettant notamment de limiter le deacutebit en sortie dune interface

Cest loutil qui sera utiliseacute pour eacutemuler le deacutebit dun lien Mais TC peut eacutegalement servir agrave deacutefinir des classes de service qui

pourront ecirctre utiles dans leacutemulation de Qualiteacute de Service

13

Reacutealisation

A Speacutecifications

EWAN signifie simplement Eacutemulateur de WAN (Wide Area Network Reacuteseaux informatiques de grande taille) et a comme objectif decirctre un eacutemulateur de topologies haut deacutebit longue distance

Cest agrave dire quEWAN doit configurer des machines lieacutees entre elles par du haut deacutebit (1Gbs) et eacutemulant des liens longue distance (donc en utilisant leacutemulateur de lien NIST-Net)

EWAN devait se deacutecomposer en briques

Une interface web geacuteneacutereacutee en PHP qui permettrait de deacutefinir intuitivement des topologies simples

Un algorithme daffectation des types de fonctionnaliteacutes aux machines de la grappe

Un algorithme de deacutetermination des IP et sous-reacuteseaux

Un algorithme de calcul de routage et de configuration des tables de routage

Une meacutethode de stockage des informations dans une base MySQL

Et un proceacutedeacute de deacuteploiement sur la grappe

Nous avons ensuite reacutealiseacute que PHP pouvait convenir pour toutes les briques aussi ce langage fut retenu pour EWAN

Linterface est preacutevue pour des expeacuterimentateurs qui ne sinteacuteressent pas au cœur du reacuteseau supposeacute surdimensionneacute et qui veulent reacutealiser simplement une topologie classique telle quils en rencontrent dans la reacutealiteacute sans avoir agrave se preacuteoccuper de sa structure interne (comme le routage)

B Architecture logique

EWAN doit donc permettre de simuler des topologies au niveau 3 de la couche OSI cest agrave dire des nœuds relieacutes par des liens avec des meacutetriques agrave deacutefinir dans des sous reacuteseaux IP

La cas de figure le plus couramment eacutetudieacute est celui de clients derriegravere des

14

points daccegraves relieacutes par des liens (aux latences non neacutegligeables) agrave un cœur de reacuteseau surdimensionneacute

On peut alors mettre en eacutevidence certaines fonctionnaliteacutes qui devront ecirctre eacutemuleacutees

- eacutemulation de lien (latence pertes et duplications)

- eacutemulation de capaciteacute (limitation de deacutebit tocken bucket)

- routage virtuel

- geacuteneacuteration de trafic concurrent

- capture de trafic concurrent

Ces fonctionnaliteacutes seront reacuteparties selon 5 types eacutemuleacutes par les nœuds

- Client

- Point daccegraves

- Routeur de cœur

- Eacutemulateur de lien

- Geacuteneacuterateur de trafic

15

C Architecture physique

EWAN est constitueacute dune grappe de nœuds non neacutecessairement mateacuteriellement identiques (avec par exemple un nombre dinterfaces une capaciteacute meacutemoire ou CPU diffeacuterents) relieacutes par un ou plusieurs commutateurs (switchs) et dun serveur qui soccupera de configurer ces nœuds et sur lequel EWAN sexeacutecute

Ces machines appartiennent donc initialement au mecircme sous-reacuteseau et sont accessibles entre-elles au niveau 2 de la couche OSI (Ethernet)

Chaque nœud utiliseacute pour la topologie souhaiteacutee sera de lun des types preacutedeacutefinis et eacutemulera une fonctionnaliteacute

- La latence les pertes et les duplications sont assureacutees par les eacutemulateurs de liens (utilisant NIST Net)

- Les limitations de deacutebits sont mises en œuvre par les nœuds aux extreacutemiteacutes du lien agrave limiter

- Le routage virtuel est reacutealiseacute par les routeurs de cœur et les points daccegraves

- La geacuteneacuteration de trafic est la fonctionnaliteacute speacutecifique des geacuteneacuterateurs

- La capture du trafic concurrent est agrave la charge des routeurs (de cœur ou daccegraves)

Pour cela tous les nœuds de la grappe doivent posseacuteder les mecircmes logiciels suivants

- Debian GNULinux

- iproute

- au moins un geacuteneacuterateur de trafic (Iperf ou Mgen)

16

- un serveur SSH

- un kernel compileacute avec les options de routage avanceacutees (IP advanced router et IP policy routing) et CPU (devcpucpuid - CPU information support)

Par ailleurs toute la configuration de la grappe et son deacuteploiement sont geacutereacutes par un serveur web qui doit disposer de

- Apache

- PHP 4 ou PHP 5 avec les bibliothegraveques

- MySQL

- XML et DOM

- GD (avec PNG et FreeType)

- MySQL

- SSH

Le logiciel EWAN reacutealiseacute en PHP comporte deux principales parties une interface de creacuteation de topologies classiques et un moteur de deacuteploiement (qui accepte nimporte quelle topologie)

D Interface de creacuteation de topologie

En se connectant sur la page daccueil dEWAN 4 choix sont possibles charger une topologie deacutefinir une nouvelle topologie geacuterer les configurations mateacuterielles et veacuterifier la configuration mateacuterielle actuelle

1 Charger une topologie

Ce champ permet de charger une topologie deacutefinie preacutealablement agrave partir dun fichier RDF Ces fichiers sont creacuteeacutes soit agrave partir de linterface soit agrave la main en respectant leur syntaxe Celle-ci est deacutetailleacutee dans la partie Deacuteploiement des topologies

17

2 Deacutefinir une nouvelle topologie

Ce lien conduit agrave linterface qui va guider pas agrave pas la creacuteation dune topologie classique cest agrave dire constitueacutee de points daccegraves relieacutes agrave un cœur surdimensionneacute

Agrave chaque eacutetape les choix offerts agrave lutilisateur sont calculeacutes agrave partir des informations quil a deacutejagrave saisies et des contraintes mateacuterielles

a Points daccegraves et Clients

Cette page deacutetermine le nombre de points daccegraves dans la topologie ainsi que le nombre de clients pour chacun deux Les limites sont deacuteduites de la configuration mateacuterielle utiliseacutee (voir 3 Gestion des configurations mateacuterielles)

18

b Deacutefinition des liens

Ici sont calculeacutees les caracteacuteristiques des liens

19

Les liens qui nous inteacuteressent ici sont ceux liant les points daccegraves aux routeurs de cœur

En effet les liens entre un point daccegraves et ses clients correspondent agrave un reacuteseau local donc sont neacutegligeables et les liens agrave linteacuterieur du cœur sont supposeacutes surdimensionneacutes

Les utilisateurs auxquels loutil est destineacute ne connaicirctront habituellement pas les caracteacuteristiques des liens Points daccegraves - Routeur de cœur Au lieu de ccedila ils disposent dinformations mesureacutees de bout en bout cest agrave dire dun point daccegraves agrave un autre Ils peuvent posseacuteder alors les caracteacuteristiques dun graphe complet soit n(n-1)2 valeurs pour n Points daccegraves

On se retrouve avec un systegraveme de n inconnues agrave n(n-1)2 eacutequations Si lutilisateur devait rentrer toutes ces valeurs on aurait un risque dincoheacuterence Cest pourquoi lutilisateur doit tout dabord choisir le point daccegraves le plus eacuteloigneacute du cœur (selon la meacutetrique la plus inteacuteressante) Puis il renseigne la latence les pertes et les duplications entre ce point daccegraves et chacun des autres (Soit n-1 valeurs) Puis il faut encore choisir un couple de point daccegraves (en excluant le premier) et donner les mecircmes renseignements

Les valeurs donneacutees pour les liens du premier point daccegraves entrainent un intervalle de coheacuterence pour le dernier lien qui est rappeleacute en temps reacuteel

(En effet si le lien de A vers B a une latence de 100ms et celui de A vers C 20ms le lien entre B et C doit forceacutement se trouver dans lintervalle 80-120ms

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 3: Résumé - Claude Bernard University Lyon 1

3

Reacutesumeacute Ce rapport deacutecrit mon travail de fin deacutetudes effectueacute au Laboratoire

dInformatique et Paralleacutelisme de lEacutecole Nationale Supeacuterieur de Lyon dans leacutequipe RESO consistant en la reacutealisation dEWAN un logiciel deacutemulation de reacuteseaux haut deacutebit longue distance

Il se place dans le cadre de la recherche sur les grilles de calcul agreacutegations de ressources informatiques interconnecteacutes par un reacuteseau longue distance

Il offre des possibiliteacutes deacutemulation neacutecessaires aux expeacuteriences dans ce domaine en assurant une grande flexibiliteacute un haut niveau de performances et un environnement controcircleacute avec preacutecision Il se deacutecompose principalement en deux parties une interface de creacuteation de topologies simples et un moteur de deacuteploiement de topologies quelconques

Ce document preacutesente le contexte du travail et les outils qui seront utiliseacutes Puis le fonctionnement des diffeacuterentes parties du logiciel seront deacutecrites et expliqueacutees Les reacutesultats de tests seront reporteacutes confirmant la reacuteussite des objectifs fixeacutes et des perspectives eacutevoqueront les ameacuteliorations agrave apporter et les travaux futurs

Abstract

This report describes my end of studies training in the Laboratoire dInformatique et Paralleacutelisme of Eacutecole Nationale Supeacuterieur de Lyon in the RESO team which consisted in developping a software for emulation of hight bandwidth long distance networks

It takes place in the research effort on computer grids aggregations of computer resources inter-connected by a wide area network

It offers an emulation framework needed by experiments in this field bringing a great flexibility a high level of performances and a precise control It can be divided into two main parts an interface for creation of simple topologies and an engine deploying every sort of topologies

This document presents the context of this work and the tools which will be used Then the different parts of the software will be described and explained

Experimental results will be given proving the success of primary objectives and possible improvements to this software and future works will be mentioned

4

Introduction et contexte Le logiciel EWAN reacutealiseacute pendant mon travail de fin deacutetudes sinscrit

dans leffort de recherche dans le domaine des grilles de calcul qui sappuie sur plusieurs projets franccedilais ou europeacuteens de grilles expeacuterimentales

Une grille est un systegraveme informatique reacuteparti agrave grande eacutechelle le plus souvent constitueacute dun nuage reacuteseau au cœur et de grappes en peacuteripheacuterie

EWAN a pour but de permettre agrave un utilisateur de tester son application ou son protocole dans un environnement eacutemuleacute et parfaitement maicirctriseacute avant de le deacuteployer sur des grilles de calcul reacuteelles

En effet pour reacutealiser ses expeacuteriences le chercheur a le choix entre la simulation (qui atteint vite ses limites en terme de taille ou de dureacutee) ou des tests grandeur nature Ces derniers sont longs voire impossibles agrave mettre en place et sujets aux aleacuteas des expeacuteriences reacuteelles ce qui rend leur reproduction deacutelicate par exemple les paramegravetres du reacuteseau dont deacutependent fortement les reacutesultats des expeacuteriences ne sont pas controcirclables (taille des paquets qualiteacute de service)

Il faut alors se tourner vers leacutemulation approche intermeacutediaire ougrave une

5

partie des eacuteleacutements sont reacuteels (applications et nœuds dextreacutemiteacute) et une partie simuleacutee (les liens longue distance) le tout dans un environnement totalement maicirctriseacute

EWAN est donc un instrument orienteacute sur leacutetude des protocoles et des logiciels haute performance pour la grille avec un tregraves grand nombre de calculateurs interconnecteacutes Il doit offrir un haut niveau de performance une fine maicirctrise des paramegravetres de communication associeacute agrave une grande flexibiliteacute dutilisation

A Preacutesentation du Laboratoire de Recherche

Mon travail de fin deacutetudes sest deacuterouleacute au LIP (Laboratoire de lInformatique du Paralleacutelisme) le laboratoire dinformatique de lENS Lyon eacutegalement associeacute au CNRS agrave lINRIA et agrave lUniversiteacute Claude Bernard de Lyon

Ce laboratoire est constitueacute de sept projets Areacutenaire (Arithmeacutetique des ordinateurs) Compsys (Compilation systegravemes enfouis et calcul intensif) MC2 (Modegraveles de calcul et de complexiteacute) PLUME (Utilisation et ameacutelioration de la deacuteduction automatique) GRAAL (Algorithmique et ordonnancement pour plates-formes heacuteteacuterogegravenes distribueacutees) TRIO (Temps Reacuteel et InterOpeacuterabiliteacute) et RESO (Logiciels et protocoles optimiseacutes pour reacuteseaux haut-deacutebit)

Cest dans cette derniegravere eacutequipe sous la tutelle de Pascale Vicat-Blanc Primet et Olivier Gluumlck que jai effectueacute mes travaux

Le projet RESO eacutetudie le problegraveme de lutilisation efficace des reacuteseaux tregraves haut deacutebit dans le contexte des grilles haute performance (qui seront deacutefinies ci dessous)

Ses travaux recouvrent deux axes

La conception darchitectures logicielles de communication optimiseacutees pour les systegravemes dextreacutemiteacute ou daccegraves multiprocesseurs ou de type grappe

Les protocoles et traitements pour le transport performant de flux heacuteteacuterogegravenes de grille

Pour cela leacutequipe deacuteveloppe des outils notamment dans le domaine de leacutemulation comme EWAN

6

B Contexte

I Grilles de calcul et topologies Une grappe de machines (cluster en anglais) est un groupe dordinateurs

mis en reacuteseau local afin de former un ensemble de forte capaciteacute tregraves utiliseacute pour les calculs parallegraveles

Une grille est un ensemble dordinateurs distribueacutes geacuteographiquement relieacutes par des reacuteseaux longue distance (Internet reacuteseaux priveacutes virtuels (VPN) ou reacuteseaux priveacutes reacuteels) qui eacutetend le principe du calcul parallegravele des grappes

Les grilles de calcul permettent une agreacutegation de ressources informatiques varieacutees (comme la puissance de calcul ou de stockage de donneacutees)

Les premiegraveres grilles connues du grand public furent les logiciels de calcul distribueacute comme SETIHome [1] puis GenomeHome [2] pour lequel les ordinateurs des particuliers travaillaient et envoyaient au serveur le reacutesultat de leurs efforts

Puis les grilles se sont affranchies du modegravele Client -Serveur afin que chaque ordinateur puisse lancer des calculs ou utiliser la puissances des autres Dans le but dobtenir du calcul parallegravele toujours plus puissant des grilles regroupant plusieurs grappes furent creacuteeacutees

Actuellement la recherche dans ce domaine prometteur avance notamment gracircce agrave la mise en place de plateformes expeacuterimentales sappuyant sur des reacuteseaux haut deacutebit (comme RENATER reacuteseau national regroupant des eacutetablissements scientifiques et universitaires ou VTHD premier reacuteseau tregraves haut deacutebit franccedilais) Par exemple Grid5000 [3] est un projet de reacutealisation dune grille expeacuterimentale destineacutee agrave la communauteacute franccedilaise des chercheurs en informatique regroupant 8 sites en France dont un agrave Lyon impliquant le LIP Les chercheurs seront inviteacutes agrave tester leurs expeacuteriences avec EWAN avant de les deacuteployer sur Grid5000

Les travaux du Global Grid Forum [4] (organisme de standardisation dans le domaine des grilles de clacul) ont permis dobtenir une caracteacuterisation tregraves complegravete des topologies reacuteseau servant agrave deacutecrire la structure des grilles [5]

1 Entiteacutes Un reacuteseau est composeacute de nœuds et de liens (unidirectionnels ou

7

bidirectionnels) Les nœuds peuvent ecirctre des clients (Host) ou des nœuds internes (routeurs

switchs proxy)

2 Proprieacuteteacutes

Les principales proprieacuteteacutes des liens (qui ont eacuteteacute eacutetudieacutees pendant le stage) sont regroupeacutees en 4 cateacutegories

La Bande passante la Latence les Pertes et les Duplications

a Bande passante

La bande passante se mesure geacuteneacuteralement en quantiteacute de donneacutees par uniteacute de temps

Cependant elle ne peut ecirctre repreacutesenteacutee par une seule valeur on introduit donc 4 caracteacuteristiques

La Capaciteacute

Cest la quantiteacute maximale de donneacutees pouvant ecirctre transmise lorsquil ny a pas dautre trafic

8

Cest une valeur theacuteorique et la seule que lon connaicirct preacuteciseacutement

LUtilisation

Cest la quantiteacute de donneacutees concregravetement transmises agrave un instant donneacute

La Bande Passante disponible

Cest la quantiteacute maximale de donneacutees quun lien peut fournir lors dune certaine utilisation

La Bande Passante atteignable

Cest la quantiteacute de donneacutees maximale pouvant ecirctre transmise selon une certaine utilisation un certain protocole et certains eacutequipements

Cest en fait la valeur la plus inteacuteressante agrave eacutetudier car la seule reacuteellement utile Malheureusement elle ne peut pas ecirctre formellement calculeacutee car deacutependante de trop de paramegravetres

On a Utilisation lt Bande Passante atteignable lt Bande Passante disponible lt Capaciteacute

Le but est de trouver les paramegravetres permettant dapprocher le plus possible la Bande Passante atteignable de la Bande Passante disponible

b Latence

Les caracteacuteristiques de la Latence sont deacutecrites en deacutetail dans les RFC 2330 2679 et 2681 [6]

Elle repreacutesente le temps entre le moment ougrave le deacutebut dun paquet part dun eacutemetteur et celui ougrave la fin du paquet arrive au reacutecepteur

Cette deacutefinition entraicircne des interrogations sur les problegravemes de synchronisation de fragmentation de paquets

La Latence (comme les autres grandeurs) peut ecirctre mesureacutee en aller simple ou en aller-retour La mesure de laller simple est tregraves importante car de nos jours la plupart des liens sont asymeacutetriques (ils peuvent par exemple avoir des qualiteacutes de service diffeacuterentes selon le sens)

La Gigue

Classeacutee dans la famille des latences eacutegalement appeleacutee IPDV (IP Packet Delay Variation) elle mesure les variations de la Latence dans le temps

La Gigue a des conseacutequences importantes pour les applications qui

9

neacutecessitent un flux reacutegulier (comme le streaming audio ou videacuteo)

c Pertes

Les pertes repreacutesentent les paquets eacutemis qui ne sont pas arriveacutes agrave destination

Cette meacutetrique est deacutefinie par la RFC 2680 [7] Les pertes peuvent ecirctre caracteacuteriseacutees par un pourcentage de paquets

perdus ou par un profil de perte Dans ce dernier cas seul un profil particulier (Loi de Poisson) a eacuteteacute

formellement deacutefini (dans la mecircme RFC) mais lInternet Society encourage des deacuteveloppeurs agrave utiliser eacutegalement dautres profils

Le logiciel qui sera utiliseacute pour leacutemulateur durant le stage (NIST Net) ne permet pas dimpleacutementer le profil de Poisson En revanche il propose deux autres profils correacutelation (cest agrave dire une valeur moyenne associeacutee agrave un coefficient de correacutelation) et DRD (Derivative Random Drop) [8]

d Duplications

Les duplications repreacutesentent les paquets qui arrivent plusieurs fois agrave destination

On peut les mesurer en pourcentage ou suivant un profil NIST Net permet dutiliser un profil de correacutelation

Un diagramme repreacutesentant la totaliteacute des proprieacuteteacutes deacutefinies est donneacute en Annexe [1]

II Outils

La premiegravere ideacutee envisageacutee peut ecirctre dutiliser un simulateur comme NS ou OpenNet Mais de part leur nature ces programmes ne permettent pas des mesures expeacuterimentales reacuteelles

Plusieurs outils complets deacutemulations existent deacutejagrave (comme Emulab [9] X-bone [10] ou ModelNet [11]) mais ils neacutetaient pas adapteacutes aux objectifs dEWAN notamment en ce qui concerne le haut deacutebit

Dautres outils se concentrent sur certains aspects preacutecis de leacutemulation (notamment pour les liens) EWAN na pas la preacutetention de reacutecrire ces briques fondamentales elles lui serviront de bases et son rocircle sera de les parameacutetrer

10

correctement

1 NIST Net

NIST Net [12] est un logiciel (sous licence libre baseacutee sur la GPL) deacuteveloppeacute par le NIST (National Institute of Standards and Technology) Il se preacutesente sous la forme dun module du noyau linux

Son but est deacutemuler un lien On souhaite recevoir des paquets par une interface et les transmettre en sortie sur une autre selon certaines conditions correspondant aux caracteacuteristiques du lien

NIST Net se place juste avant les fonction IP du noyau Il va reacutecupeacuterer les paquets reccedilus les stocker dans des files dattente et les libeacuterer selon les paramegravetres preacuteciseacutes lors de sa configuration

NIST Net peut ainsi eacutemuler des latences (y compris des gigues) des pertes (par simple pourcentage ou selon deux profils correacutelation ou DRD) des duplications (par pourcentage ou selon le profil correacutelation) et le deacutebit

Le profil DRD (Derivative Random Drop) correspond agrave une probabiliteacute de pertes qui croit lineacuteairement avec la taille de la queue apregraves un eacuteventuel seuil

Il existe un autre profil couramment utiliseacute RED (Random Early Detection) mais les concepteurs de NIST Net ont estimeacute que dans le cadre de leacutemulation de liens DRD eacutetait amplement suffisant En effet RED (deacutefini dans la RFC 2309) est un algorithme utiliseacute dans la gestion des queues des routeurs (pour deacuteterminer la faccedilon de jeter les paquets lorsque la queue est pleine)

Leacutemulation du deacutebit par NIST Net ne sera pas utiliseacutee car elle nest pas tregraves preacutecise et car nous disposons dun autre outil tregraves simple mieux adapteacute TC

NIST Net dispose dune interface graphique et dune autre en ligne de commande Vu que nous preacutevoyons de deacuteployer des configurations sur plusieurs machines dun cluster seule cette derniegravere sera utiliseacutee

11

NIST Net stocke les paquets en attente dans des tables dont les tailles sont donc conditionneacutees par la meacutemoire de la machine utiliseacutee Mais la facteur vraiment limitant selon diverses eacutetudes de performances est le CPU En effet NIST Net doit reacuteguliegraverement parcourir ces tables afin de stocker les paquets arrivant Ainsi plus la latence que lon souhaite eacutemuler est eacuteleveacutee plus les tables seront longues et plus le CPU devra ecirctre puissant

2 Dummynet

Dummynet [13] est un outil sous licence BSD pour les plateformes FreeBSD

Il permet eacutegalement deacutemuler des latences des effets de queues des limitations de deacutebits et des reacuteordonnancements de paquets en interceptant le trafic dans la pile protocolaire de la machine cliente

Les machines manipuleacutees durant le stage tourneront sous GNULinux aussi cest NIST Net qui sera utiliseacute au lieu de Dummynet

Un port de ce programme pour linux avait deacutebuteacute dans une eacutequipe de recherche parisienne mais suite agrave lengagement des travaux du LIP sur leacutemulation avec NIST Net ce deacuteveloppement fut arrecircteacute

12

3 TC

TC (Trafic Control) est une commande standard de GNULinux permettant notamment de limiter le deacutebit en sortie dune interface

Cest loutil qui sera utiliseacute pour eacutemuler le deacutebit dun lien Mais TC peut eacutegalement servir agrave deacutefinir des classes de service qui

pourront ecirctre utiles dans leacutemulation de Qualiteacute de Service

13

Reacutealisation

A Speacutecifications

EWAN signifie simplement Eacutemulateur de WAN (Wide Area Network Reacuteseaux informatiques de grande taille) et a comme objectif decirctre un eacutemulateur de topologies haut deacutebit longue distance

Cest agrave dire quEWAN doit configurer des machines lieacutees entre elles par du haut deacutebit (1Gbs) et eacutemulant des liens longue distance (donc en utilisant leacutemulateur de lien NIST-Net)

EWAN devait se deacutecomposer en briques

Une interface web geacuteneacutereacutee en PHP qui permettrait de deacutefinir intuitivement des topologies simples

Un algorithme daffectation des types de fonctionnaliteacutes aux machines de la grappe

Un algorithme de deacutetermination des IP et sous-reacuteseaux

Un algorithme de calcul de routage et de configuration des tables de routage

Une meacutethode de stockage des informations dans une base MySQL

Et un proceacutedeacute de deacuteploiement sur la grappe

Nous avons ensuite reacutealiseacute que PHP pouvait convenir pour toutes les briques aussi ce langage fut retenu pour EWAN

Linterface est preacutevue pour des expeacuterimentateurs qui ne sinteacuteressent pas au cœur du reacuteseau supposeacute surdimensionneacute et qui veulent reacutealiser simplement une topologie classique telle quils en rencontrent dans la reacutealiteacute sans avoir agrave se preacuteoccuper de sa structure interne (comme le routage)

B Architecture logique

EWAN doit donc permettre de simuler des topologies au niveau 3 de la couche OSI cest agrave dire des nœuds relieacutes par des liens avec des meacutetriques agrave deacutefinir dans des sous reacuteseaux IP

La cas de figure le plus couramment eacutetudieacute est celui de clients derriegravere des

14

points daccegraves relieacutes par des liens (aux latences non neacutegligeables) agrave un cœur de reacuteseau surdimensionneacute

On peut alors mettre en eacutevidence certaines fonctionnaliteacutes qui devront ecirctre eacutemuleacutees

- eacutemulation de lien (latence pertes et duplications)

- eacutemulation de capaciteacute (limitation de deacutebit tocken bucket)

- routage virtuel

- geacuteneacuteration de trafic concurrent

- capture de trafic concurrent

Ces fonctionnaliteacutes seront reacuteparties selon 5 types eacutemuleacutes par les nœuds

- Client

- Point daccegraves

- Routeur de cœur

- Eacutemulateur de lien

- Geacuteneacuterateur de trafic

15

C Architecture physique

EWAN est constitueacute dune grappe de nœuds non neacutecessairement mateacuteriellement identiques (avec par exemple un nombre dinterfaces une capaciteacute meacutemoire ou CPU diffeacuterents) relieacutes par un ou plusieurs commutateurs (switchs) et dun serveur qui soccupera de configurer ces nœuds et sur lequel EWAN sexeacutecute

Ces machines appartiennent donc initialement au mecircme sous-reacuteseau et sont accessibles entre-elles au niveau 2 de la couche OSI (Ethernet)

Chaque nœud utiliseacute pour la topologie souhaiteacutee sera de lun des types preacutedeacutefinis et eacutemulera une fonctionnaliteacute

- La latence les pertes et les duplications sont assureacutees par les eacutemulateurs de liens (utilisant NIST Net)

- Les limitations de deacutebits sont mises en œuvre par les nœuds aux extreacutemiteacutes du lien agrave limiter

- Le routage virtuel est reacutealiseacute par les routeurs de cœur et les points daccegraves

- La geacuteneacuteration de trafic est la fonctionnaliteacute speacutecifique des geacuteneacuterateurs

- La capture du trafic concurrent est agrave la charge des routeurs (de cœur ou daccegraves)

Pour cela tous les nœuds de la grappe doivent posseacuteder les mecircmes logiciels suivants

- Debian GNULinux

- iproute

- au moins un geacuteneacuterateur de trafic (Iperf ou Mgen)

16

- un serveur SSH

- un kernel compileacute avec les options de routage avanceacutees (IP advanced router et IP policy routing) et CPU (devcpucpuid - CPU information support)

Par ailleurs toute la configuration de la grappe et son deacuteploiement sont geacutereacutes par un serveur web qui doit disposer de

- Apache

- PHP 4 ou PHP 5 avec les bibliothegraveques

- MySQL

- XML et DOM

- GD (avec PNG et FreeType)

- MySQL

- SSH

Le logiciel EWAN reacutealiseacute en PHP comporte deux principales parties une interface de creacuteation de topologies classiques et un moteur de deacuteploiement (qui accepte nimporte quelle topologie)

D Interface de creacuteation de topologie

En se connectant sur la page daccueil dEWAN 4 choix sont possibles charger une topologie deacutefinir une nouvelle topologie geacuterer les configurations mateacuterielles et veacuterifier la configuration mateacuterielle actuelle

1 Charger une topologie

Ce champ permet de charger une topologie deacutefinie preacutealablement agrave partir dun fichier RDF Ces fichiers sont creacuteeacutes soit agrave partir de linterface soit agrave la main en respectant leur syntaxe Celle-ci est deacutetailleacutee dans la partie Deacuteploiement des topologies

17

2 Deacutefinir une nouvelle topologie

Ce lien conduit agrave linterface qui va guider pas agrave pas la creacuteation dune topologie classique cest agrave dire constitueacutee de points daccegraves relieacutes agrave un cœur surdimensionneacute

Agrave chaque eacutetape les choix offerts agrave lutilisateur sont calculeacutes agrave partir des informations quil a deacutejagrave saisies et des contraintes mateacuterielles

a Points daccegraves et Clients

Cette page deacutetermine le nombre de points daccegraves dans la topologie ainsi que le nombre de clients pour chacun deux Les limites sont deacuteduites de la configuration mateacuterielle utiliseacutee (voir 3 Gestion des configurations mateacuterielles)

18

b Deacutefinition des liens

Ici sont calculeacutees les caracteacuteristiques des liens

19

Les liens qui nous inteacuteressent ici sont ceux liant les points daccegraves aux routeurs de cœur

En effet les liens entre un point daccegraves et ses clients correspondent agrave un reacuteseau local donc sont neacutegligeables et les liens agrave linteacuterieur du cœur sont supposeacutes surdimensionneacutes

Les utilisateurs auxquels loutil est destineacute ne connaicirctront habituellement pas les caracteacuteristiques des liens Points daccegraves - Routeur de cœur Au lieu de ccedila ils disposent dinformations mesureacutees de bout en bout cest agrave dire dun point daccegraves agrave un autre Ils peuvent posseacuteder alors les caracteacuteristiques dun graphe complet soit n(n-1)2 valeurs pour n Points daccegraves

On se retrouve avec un systegraveme de n inconnues agrave n(n-1)2 eacutequations Si lutilisateur devait rentrer toutes ces valeurs on aurait un risque dincoheacuterence Cest pourquoi lutilisateur doit tout dabord choisir le point daccegraves le plus eacuteloigneacute du cœur (selon la meacutetrique la plus inteacuteressante) Puis il renseigne la latence les pertes et les duplications entre ce point daccegraves et chacun des autres (Soit n-1 valeurs) Puis il faut encore choisir un couple de point daccegraves (en excluant le premier) et donner les mecircmes renseignements

Les valeurs donneacutees pour les liens du premier point daccegraves entrainent un intervalle de coheacuterence pour le dernier lien qui est rappeleacute en temps reacuteel

(En effet si le lien de A vers B a une latence de 100ms et celui de A vers C 20ms le lien entre B et C doit forceacutement se trouver dans lintervalle 80-120ms

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 4: Résumé - Claude Bernard University Lyon 1

4

Introduction et contexte Le logiciel EWAN reacutealiseacute pendant mon travail de fin deacutetudes sinscrit

dans leffort de recherche dans le domaine des grilles de calcul qui sappuie sur plusieurs projets franccedilais ou europeacuteens de grilles expeacuterimentales

Une grille est un systegraveme informatique reacuteparti agrave grande eacutechelle le plus souvent constitueacute dun nuage reacuteseau au cœur et de grappes en peacuteripheacuterie

EWAN a pour but de permettre agrave un utilisateur de tester son application ou son protocole dans un environnement eacutemuleacute et parfaitement maicirctriseacute avant de le deacuteployer sur des grilles de calcul reacuteelles

En effet pour reacutealiser ses expeacuteriences le chercheur a le choix entre la simulation (qui atteint vite ses limites en terme de taille ou de dureacutee) ou des tests grandeur nature Ces derniers sont longs voire impossibles agrave mettre en place et sujets aux aleacuteas des expeacuteriences reacuteelles ce qui rend leur reproduction deacutelicate par exemple les paramegravetres du reacuteseau dont deacutependent fortement les reacutesultats des expeacuteriences ne sont pas controcirclables (taille des paquets qualiteacute de service)

Il faut alors se tourner vers leacutemulation approche intermeacutediaire ougrave une

5

partie des eacuteleacutements sont reacuteels (applications et nœuds dextreacutemiteacute) et une partie simuleacutee (les liens longue distance) le tout dans un environnement totalement maicirctriseacute

EWAN est donc un instrument orienteacute sur leacutetude des protocoles et des logiciels haute performance pour la grille avec un tregraves grand nombre de calculateurs interconnecteacutes Il doit offrir un haut niveau de performance une fine maicirctrise des paramegravetres de communication associeacute agrave une grande flexibiliteacute dutilisation

A Preacutesentation du Laboratoire de Recherche

Mon travail de fin deacutetudes sest deacuterouleacute au LIP (Laboratoire de lInformatique du Paralleacutelisme) le laboratoire dinformatique de lENS Lyon eacutegalement associeacute au CNRS agrave lINRIA et agrave lUniversiteacute Claude Bernard de Lyon

Ce laboratoire est constitueacute de sept projets Areacutenaire (Arithmeacutetique des ordinateurs) Compsys (Compilation systegravemes enfouis et calcul intensif) MC2 (Modegraveles de calcul et de complexiteacute) PLUME (Utilisation et ameacutelioration de la deacuteduction automatique) GRAAL (Algorithmique et ordonnancement pour plates-formes heacuteteacuterogegravenes distribueacutees) TRIO (Temps Reacuteel et InterOpeacuterabiliteacute) et RESO (Logiciels et protocoles optimiseacutes pour reacuteseaux haut-deacutebit)

Cest dans cette derniegravere eacutequipe sous la tutelle de Pascale Vicat-Blanc Primet et Olivier Gluumlck que jai effectueacute mes travaux

Le projet RESO eacutetudie le problegraveme de lutilisation efficace des reacuteseaux tregraves haut deacutebit dans le contexte des grilles haute performance (qui seront deacutefinies ci dessous)

Ses travaux recouvrent deux axes

La conception darchitectures logicielles de communication optimiseacutees pour les systegravemes dextreacutemiteacute ou daccegraves multiprocesseurs ou de type grappe

Les protocoles et traitements pour le transport performant de flux heacuteteacuterogegravenes de grille

Pour cela leacutequipe deacuteveloppe des outils notamment dans le domaine de leacutemulation comme EWAN

6

B Contexte

I Grilles de calcul et topologies Une grappe de machines (cluster en anglais) est un groupe dordinateurs

mis en reacuteseau local afin de former un ensemble de forte capaciteacute tregraves utiliseacute pour les calculs parallegraveles

Une grille est un ensemble dordinateurs distribueacutes geacuteographiquement relieacutes par des reacuteseaux longue distance (Internet reacuteseaux priveacutes virtuels (VPN) ou reacuteseaux priveacutes reacuteels) qui eacutetend le principe du calcul parallegravele des grappes

Les grilles de calcul permettent une agreacutegation de ressources informatiques varieacutees (comme la puissance de calcul ou de stockage de donneacutees)

Les premiegraveres grilles connues du grand public furent les logiciels de calcul distribueacute comme SETIHome [1] puis GenomeHome [2] pour lequel les ordinateurs des particuliers travaillaient et envoyaient au serveur le reacutesultat de leurs efforts

Puis les grilles se sont affranchies du modegravele Client -Serveur afin que chaque ordinateur puisse lancer des calculs ou utiliser la puissances des autres Dans le but dobtenir du calcul parallegravele toujours plus puissant des grilles regroupant plusieurs grappes furent creacuteeacutees

Actuellement la recherche dans ce domaine prometteur avance notamment gracircce agrave la mise en place de plateformes expeacuterimentales sappuyant sur des reacuteseaux haut deacutebit (comme RENATER reacuteseau national regroupant des eacutetablissements scientifiques et universitaires ou VTHD premier reacuteseau tregraves haut deacutebit franccedilais) Par exemple Grid5000 [3] est un projet de reacutealisation dune grille expeacuterimentale destineacutee agrave la communauteacute franccedilaise des chercheurs en informatique regroupant 8 sites en France dont un agrave Lyon impliquant le LIP Les chercheurs seront inviteacutes agrave tester leurs expeacuteriences avec EWAN avant de les deacuteployer sur Grid5000

Les travaux du Global Grid Forum [4] (organisme de standardisation dans le domaine des grilles de clacul) ont permis dobtenir une caracteacuterisation tregraves complegravete des topologies reacuteseau servant agrave deacutecrire la structure des grilles [5]

1 Entiteacutes Un reacuteseau est composeacute de nœuds et de liens (unidirectionnels ou

7

bidirectionnels) Les nœuds peuvent ecirctre des clients (Host) ou des nœuds internes (routeurs

switchs proxy)

2 Proprieacuteteacutes

Les principales proprieacuteteacutes des liens (qui ont eacuteteacute eacutetudieacutees pendant le stage) sont regroupeacutees en 4 cateacutegories

La Bande passante la Latence les Pertes et les Duplications

a Bande passante

La bande passante se mesure geacuteneacuteralement en quantiteacute de donneacutees par uniteacute de temps

Cependant elle ne peut ecirctre repreacutesenteacutee par une seule valeur on introduit donc 4 caracteacuteristiques

La Capaciteacute

Cest la quantiteacute maximale de donneacutees pouvant ecirctre transmise lorsquil ny a pas dautre trafic

8

Cest une valeur theacuteorique et la seule que lon connaicirct preacuteciseacutement

LUtilisation

Cest la quantiteacute de donneacutees concregravetement transmises agrave un instant donneacute

La Bande Passante disponible

Cest la quantiteacute maximale de donneacutees quun lien peut fournir lors dune certaine utilisation

La Bande Passante atteignable

Cest la quantiteacute de donneacutees maximale pouvant ecirctre transmise selon une certaine utilisation un certain protocole et certains eacutequipements

Cest en fait la valeur la plus inteacuteressante agrave eacutetudier car la seule reacuteellement utile Malheureusement elle ne peut pas ecirctre formellement calculeacutee car deacutependante de trop de paramegravetres

On a Utilisation lt Bande Passante atteignable lt Bande Passante disponible lt Capaciteacute

Le but est de trouver les paramegravetres permettant dapprocher le plus possible la Bande Passante atteignable de la Bande Passante disponible

b Latence

Les caracteacuteristiques de la Latence sont deacutecrites en deacutetail dans les RFC 2330 2679 et 2681 [6]

Elle repreacutesente le temps entre le moment ougrave le deacutebut dun paquet part dun eacutemetteur et celui ougrave la fin du paquet arrive au reacutecepteur

Cette deacutefinition entraicircne des interrogations sur les problegravemes de synchronisation de fragmentation de paquets

La Latence (comme les autres grandeurs) peut ecirctre mesureacutee en aller simple ou en aller-retour La mesure de laller simple est tregraves importante car de nos jours la plupart des liens sont asymeacutetriques (ils peuvent par exemple avoir des qualiteacutes de service diffeacuterentes selon le sens)

La Gigue

Classeacutee dans la famille des latences eacutegalement appeleacutee IPDV (IP Packet Delay Variation) elle mesure les variations de la Latence dans le temps

La Gigue a des conseacutequences importantes pour les applications qui

9

neacutecessitent un flux reacutegulier (comme le streaming audio ou videacuteo)

c Pertes

Les pertes repreacutesentent les paquets eacutemis qui ne sont pas arriveacutes agrave destination

Cette meacutetrique est deacutefinie par la RFC 2680 [7] Les pertes peuvent ecirctre caracteacuteriseacutees par un pourcentage de paquets

perdus ou par un profil de perte Dans ce dernier cas seul un profil particulier (Loi de Poisson) a eacuteteacute

formellement deacutefini (dans la mecircme RFC) mais lInternet Society encourage des deacuteveloppeurs agrave utiliser eacutegalement dautres profils

Le logiciel qui sera utiliseacute pour leacutemulateur durant le stage (NIST Net) ne permet pas dimpleacutementer le profil de Poisson En revanche il propose deux autres profils correacutelation (cest agrave dire une valeur moyenne associeacutee agrave un coefficient de correacutelation) et DRD (Derivative Random Drop) [8]

d Duplications

Les duplications repreacutesentent les paquets qui arrivent plusieurs fois agrave destination

On peut les mesurer en pourcentage ou suivant un profil NIST Net permet dutiliser un profil de correacutelation

Un diagramme repreacutesentant la totaliteacute des proprieacuteteacutes deacutefinies est donneacute en Annexe [1]

II Outils

La premiegravere ideacutee envisageacutee peut ecirctre dutiliser un simulateur comme NS ou OpenNet Mais de part leur nature ces programmes ne permettent pas des mesures expeacuterimentales reacuteelles

Plusieurs outils complets deacutemulations existent deacutejagrave (comme Emulab [9] X-bone [10] ou ModelNet [11]) mais ils neacutetaient pas adapteacutes aux objectifs dEWAN notamment en ce qui concerne le haut deacutebit

Dautres outils se concentrent sur certains aspects preacutecis de leacutemulation (notamment pour les liens) EWAN na pas la preacutetention de reacutecrire ces briques fondamentales elles lui serviront de bases et son rocircle sera de les parameacutetrer

10

correctement

1 NIST Net

NIST Net [12] est un logiciel (sous licence libre baseacutee sur la GPL) deacuteveloppeacute par le NIST (National Institute of Standards and Technology) Il se preacutesente sous la forme dun module du noyau linux

Son but est deacutemuler un lien On souhaite recevoir des paquets par une interface et les transmettre en sortie sur une autre selon certaines conditions correspondant aux caracteacuteristiques du lien

NIST Net se place juste avant les fonction IP du noyau Il va reacutecupeacuterer les paquets reccedilus les stocker dans des files dattente et les libeacuterer selon les paramegravetres preacuteciseacutes lors de sa configuration

NIST Net peut ainsi eacutemuler des latences (y compris des gigues) des pertes (par simple pourcentage ou selon deux profils correacutelation ou DRD) des duplications (par pourcentage ou selon le profil correacutelation) et le deacutebit

Le profil DRD (Derivative Random Drop) correspond agrave une probabiliteacute de pertes qui croit lineacuteairement avec la taille de la queue apregraves un eacuteventuel seuil

Il existe un autre profil couramment utiliseacute RED (Random Early Detection) mais les concepteurs de NIST Net ont estimeacute que dans le cadre de leacutemulation de liens DRD eacutetait amplement suffisant En effet RED (deacutefini dans la RFC 2309) est un algorithme utiliseacute dans la gestion des queues des routeurs (pour deacuteterminer la faccedilon de jeter les paquets lorsque la queue est pleine)

Leacutemulation du deacutebit par NIST Net ne sera pas utiliseacutee car elle nest pas tregraves preacutecise et car nous disposons dun autre outil tregraves simple mieux adapteacute TC

NIST Net dispose dune interface graphique et dune autre en ligne de commande Vu que nous preacutevoyons de deacuteployer des configurations sur plusieurs machines dun cluster seule cette derniegravere sera utiliseacutee

11

NIST Net stocke les paquets en attente dans des tables dont les tailles sont donc conditionneacutees par la meacutemoire de la machine utiliseacutee Mais la facteur vraiment limitant selon diverses eacutetudes de performances est le CPU En effet NIST Net doit reacuteguliegraverement parcourir ces tables afin de stocker les paquets arrivant Ainsi plus la latence que lon souhaite eacutemuler est eacuteleveacutee plus les tables seront longues et plus le CPU devra ecirctre puissant

2 Dummynet

Dummynet [13] est un outil sous licence BSD pour les plateformes FreeBSD

Il permet eacutegalement deacutemuler des latences des effets de queues des limitations de deacutebits et des reacuteordonnancements de paquets en interceptant le trafic dans la pile protocolaire de la machine cliente

Les machines manipuleacutees durant le stage tourneront sous GNULinux aussi cest NIST Net qui sera utiliseacute au lieu de Dummynet

Un port de ce programme pour linux avait deacutebuteacute dans une eacutequipe de recherche parisienne mais suite agrave lengagement des travaux du LIP sur leacutemulation avec NIST Net ce deacuteveloppement fut arrecircteacute

12

3 TC

TC (Trafic Control) est une commande standard de GNULinux permettant notamment de limiter le deacutebit en sortie dune interface

Cest loutil qui sera utiliseacute pour eacutemuler le deacutebit dun lien Mais TC peut eacutegalement servir agrave deacutefinir des classes de service qui

pourront ecirctre utiles dans leacutemulation de Qualiteacute de Service

13

Reacutealisation

A Speacutecifications

EWAN signifie simplement Eacutemulateur de WAN (Wide Area Network Reacuteseaux informatiques de grande taille) et a comme objectif decirctre un eacutemulateur de topologies haut deacutebit longue distance

Cest agrave dire quEWAN doit configurer des machines lieacutees entre elles par du haut deacutebit (1Gbs) et eacutemulant des liens longue distance (donc en utilisant leacutemulateur de lien NIST-Net)

EWAN devait se deacutecomposer en briques

Une interface web geacuteneacutereacutee en PHP qui permettrait de deacutefinir intuitivement des topologies simples

Un algorithme daffectation des types de fonctionnaliteacutes aux machines de la grappe

Un algorithme de deacutetermination des IP et sous-reacuteseaux

Un algorithme de calcul de routage et de configuration des tables de routage

Une meacutethode de stockage des informations dans une base MySQL

Et un proceacutedeacute de deacuteploiement sur la grappe

Nous avons ensuite reacutealiseacute que PHP pouvait convenir pour toutes les briques aussi ce langage fut retenu pour EWAN

Linterface est preacutevue pour des expeacuterimentateurs qui ne sinteacuteressent pas au cœur du reacuteseau supposeacute surdimensionneacute et qui veulent reacutealiser simplement une topologie classique telle quils en rencontrent dans la reacutealiteacute sans avoir agrave se preacuteoccuper de sa structure interne (comme le routage)

B Architecture logique

EWAN doit donc permettre de simuler des topologies au niveau 3 de la couche OSI cest agrave dire des nœuds relieacutes par des liens avec des meacutetriques agrave deacutefinir dans des sous reacuteseaux IP

La cas de figure le plus couramment eacutetudieacute est celui de clients derriegravere des

14

points daccegraves relieacutes par des liens (aux latences non neacutegligeables) agrave un cœur de reacuteseau surdimensionneacute

On peut alors mettre en eacutevidence certaines fonctionnaliteacutes qui devront ecirctre eacutemuleacutees

- eacutemulation de lien (latence pertes et duplications)

- eacutemulation de capaciteacute (limitation de deacutebit tocken bucket)

- routage virtuel

- geacuteneacuteration de trafic concurrent

- capture de trafic concurrent

Ces fonctionnaliteacutes seront reacuteparties selon 5 types eacutemuleacutes par les nœuds

- Client

- Point daccegraves

- Routeur de cœur

- Eacutemulateur de lien

- Geacuteneacuterateur de trafic

15

C Architecture physique

EWAN est constitueacute dune grappe de nœuds non neacutecessairement mateacuteriellement identiques (avec par exemple un nombre dinterfaces une capaciteacute meacutemoire ou CPU diffeacuterents) relieacutes par un ou plusieurs commutateurs (switchs) et dun serveur qui soccupera de configurer ces nœuds et sur lequel EWAN sexeacutecute

Ces machines appartiennent donc initialement au mecircme sous-reacuteseau et sont accessibles entre-elles au niveau 2 de la couche OSI (Ethernet)

Chaque nœud utiliseacute pour la topologie souhaiteacutee sera de lun des types preacutedeacutefinis et eacutemulera une fonctionnaliteacute

- La latence les pertes et les duplications sont assureacutees par les eacutemulateurs de liens (utilisant NIST Net)

- Les limitations de deacutebits sont mises en œuvre par les nœuds aux extreacutemiteacutes du lien agrave limiter

- Le routage virtuel est reacutealiseacute par les routeurs de cœur et les points daccegraves

- La geacuteneacuteration de trafic est la fonctionnaliteacute speacutecifique des geacuteneacuterateurs

- La capture du trafic concurrent est agrave la charge des routeurs (de cœur ou daccegraves)

Pour cela tous les nœuds de la grappe doivent posseacuteder les mecircmes logiciels suivants

- Debian GNULinux

- iproute

- au moins un geacuteneacuterateur de trafic (Iperf ou Mgen)

16

- un serveur SSH

- un kernel compileacute avec les options de routage avanceacutees (IP advanced router et IP policy routing) et CPU (devcpucpuid - CPU information support)

Par ailleurs toute la configuration de la grappe et son deacuteploiement sont geacutereacutes par un serveur web qui doit disposer de

- Apache

- PHP 4 ou PHP 5 avec les bibliothegraveques

- MySQL

- XML et DOM

- GD (avec PNG et FreeType)

- MySQL

- SSH

Le logiciel EWAN reacutealiseacute en PHP comporte deux principales parties une interface de creacuteation de topologies classiques et un moteur de deacuteploiement (qui accepte nimporte quelle topologie)

D Interface de creacuteation de topologie

En se connectant sur la page daccueil dEWAN 4 choix sont possibles charger une topologie deacutefinir une nouvelle topologie geacuterer les configurations mateacuterielles et veacuterifier la configuration mateacuterielle actuelle

1 Charger une topologie

Ce champ permet de charger une topologie deacutefinie preacutealablement agrave partir dun fichier RDF Ces fichiers sont creacuteeacutes soit agrave partir de linterface soit agrave la main en respectant leur syntaxe Celle-ci est deacutetailleacutee dans la partie Deacuteploiement des topologies

17

2 Deacutefinir une nouvelle topologie

Ce lien conduit agrave linterface qui va guider pas agrave pas la creacuteation dune topologie classique cest agrave dire constitueacutee de points daccegraves relieacutes agrave un cœur surdimensionneacute

Agrave chaque eacutetape les choix offerts agrave lutilisateur sont calculeacutes agrave partir des informations quil a deacutejagrave saisies et des contraintes mateacuterielles

a Points daccegraves et Clients

Cette page deacutetermine le nombre de points daccegraves dans la topologie ainsi que le nombre de clients pour chacun deux Les limites sont deacuteduites de la configuration mateacuterielle utiliseacutee (voir 3 Gestion des configurations mateacuterielles)

18

b Deacutefinition des liens

Ici sont calculeacutees les caracteacuteristiques des liens

19

Les liens qui nous inteacuteressent ici sont ceux liant les points daccegraves aux routeurs de cœur

En effet les liens entre un point daccegraves et ses clients correspondent agrave un reacuteseau local donc sont neacutegligeables et les liens agrave linteacuterieur du cœur sont supposeacutes surdimensionneacutes

Les utilisateurs auxquels loutil est destineacute ne connaicirctront habituellement pas les caracteacuteristiques des liens Points daccegraves - Routeur de cœur Au lieu de ccedila ils disposent dinformations mesureacutees de bout en bout cest agrave dire dun point daccegraves agrave un autre Ils peuvent posseacuteder alors les caracteacuteristiques dun graphe complet soit n(n-1)2 valeurs pour n Points daccegraves

On se retrouve avec un systegraveme de n inconnues agrave n(n-1)2 eacutequations Si lutilisateur devait rentrer toutes ces valeurs on aurait un risque dincoheacuterence Cest pourquoi lutilisateur doit tout dabord choisir le point daccegraves le plus eacuteloigneacute du cœur (selon la meacutetrique la plus inteacuteressante) Puis il renseigne la latence les pertes et les duplications entre ce point daccegraves et chacun des autres (Soit n-1 valeurs) Puis il faut encore choisir un couple de point daccegraves (en excluant le premier) et donner les mecircmes renseignements

Les valeurs donneacutees pour les liens du premier point daccegraves entrainent un intervalle de coheacuterence pour le dernier lien qui est rappeleacute en temps reacuteel

(En effet si le lien de A vers B a une latence de 100ms et celui de A vers C 20ms le lien entre B et C doit forceacutement se trouver dans lintervalle 80-120ms

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 5: Résumé - Claude Bernard University Lyon 1

5

partie des eacuteleacutements sont reacuteels (applications et nœuds dextreacutemiteacute) et une partie simuleacutee (les liens longue distance) le tout dans un environnement totalement maicirctriseacute

EWAN est donc un instrument orienteacute sur leacutetude des protocoles et des logiciels haute performance pour la grille avec un tregraves grand nombre de calculateurs interconnecteacutes Il doit offrir un haut niveau de performance une fine maicirctrise des paramegravetres de communication associeacute agrave une grande flexibiliteacute dutilisation

A Preacutesentation du Laboratoire de Recherche

Mon travail de fin deacutetudes sest deacuterouleacute au LIP (Laboratoire de lInformatique du Paralleacutelisme) le laboratoire dinformatique de lENS Lyon eacutegalement associeacute au CNRS agrave lINRIA et agrave lUniversiteacute Claude Bernard de Lyon

Ce laboratoire est constitueacute de sept projets Areacutenaire (Arithmeacutetique des ordinateurs) Compsys (Compilation systegravemes enfouis et calcul intensif) MC2 (Modegraveles de calcul et de complexiteacute) PLUME (Utilisation et ameacutelioration de la deacuteduction automatique) GRAAL (Algorithmique et ordonnancement pour plates-formes heacuteteacuterogegravenes distribueacutees) TRIO (Temps Reacuteel et InterOpeacuterabiliteacute) et RESO (Logiciels et protocoles optimiseacutes pour reacuteseaux haut-deacutebit)

Cest dans cette derniegravere eacutequipe sous la tutelle de Pascale Vicat-Blanc Primet et Olivier Gluumlck que jai effectueacute mes travaux

Le projet RESO eacutetudie le problegraveme de lutilisation efficace des reacuteseaux tregraves haut deacutebit dans le contexte des grilles haute performance (qui seront deacutefinies ci dessous)

Ses travaux recouvrent deux axes

La conception darchitectures logicielles de communication optimiseacutees pour les systegravemes dextreacutemiteacute ou daccegraves multiprocesseurs ou de type grappe

Les protocoles et traitements pour le transport performant de flux heacuteteacuterogegravenes de grille

Pour cela leacutequipe deacuteveloppe des outils notamment dans le domaine de leacutemulation comme EWAN

6

B Contexte

I Grilles de calcul et topologies Une grappe de machines (cluster en anglais) est un groupe dordinateurs

mis en reacuteseau local afin de former un ensemble de forte capaciteacute tregraves utiliseacute pour les calculs parallegraveles

Une grille est un ensemble dordinateurs distribueacutes geacuteographiquement relieacutes par des reacuteseaux longue distance (Internet reacuteseaux priveacutes virtuels (VPN) ou reacuteseaux priveacutes reacuteels) qui eacutetend le principe du calcul parallegravele des grappes

Les grilles de calcul permettent une agreacutegation de ressources informatiques varieacutees (comme la puissance de calcul ou de stockage de donneacutees)

Les premiegraveres grilles connues du grand public furent les logiciels de calcul distribueacute comme SETIHome [1] puis GenomeHome [2] pour lequel les ordinateurs des particuliers travaillaient et envoyaient au serveur le reacutesultat de leurs efforts

Puis les grilles se sont affranchies du modegravele Client -Serveur afin que chaque ordinateur puisse lancer des calculs ou utiliser la puissances des autres Dans le but dobtenir du calcul parallegravele toujours plus puissant des grilles regroupant plusieurs grappes furent creacuteeacutees

Actuellement la recherche dans ce domaine prometteur avance notamment gracircce agrave la mise en place de plateformes expeacuterimentales sappuyant sur des reacuteseaux haut deacutebit (comme RENATER reacuteseau national regroupant des eacutetablissements scientifiques et universitaires ou VTHD premier reacuteseau tregraves haut deacutebit franccedilais) Par exemple Grid5000 [3] est un projet de reacutealisation dune grille expeacuterimentale destineacutee agrave la communauteacute franccedilaise des chercheurs en informatique regroupant 8 sites en France dont un agrave Lyon impliquant le LIP Les chercheurs seront inviteacutes agrave tester leurs expeacuteriences avec EWAN avant de les deacuteployer sur Grid5000

Les travaux du Global Grid Forum [4] (organisme de standardisation dans le domaine des grilles de clacul) ont permis dobtenir une caracteacuterisation tregraves complegravete des topologies reacuteseau servant agrave deacutecrire la structure des grilles [5]

1 Entiteacutes Un reacuteseau est composeacute de nœuds et de liens (unidirectionnels ou

7

bidirectionnels) Les nœuds peuvent ecirctre des clients (Host) ou des nœuds internes (routeurs

switchs proxy)

2 Proprieacuteteacutes

Les principales proprieacuteteacutes des liens (qui ont eacuteteacute eacutetudieacutees pendant le stage) sont regroupeacutees en 4 cateacutegories

La Bande passante la Latence les Pertes et les Duplications

a Bande passante

La bande passante se mesure geacuteneacuteralement en quantiteacute de donneacutees par uniteacute de temps

Cependant elle ne peut ecirctre repreacutesenteacutee par une seule valeur on introduit donc 4 caracteacuteristiques

La Capaciteacute

Cest la quantiteacute maximale de donneacutees pouvant ecirctre transmise lorsquil ny a pas dautre trafic

8

Cest une valeur theacuteorique et la seule que lon connaicirct preacuteciseacutement

LUtilisation

Cest la quantiteacute de donneacutees concregravetement transmises agrave un instant donneacute

La Bande Passante disponible

Cest la quantiteacute maximale de donneacutees quun lien peut fournir lors dune certaine utilisation

La Bande Passante atteignable

Cest la quantiteacute de donneacutees maximale pouvant ecirctre transmise selon une certaine utilisation un certain protocole et certains eacutequipements

Cest en fait la valeur la plus inteacuteressante agrave eacutetudier car la seule reacuteellement utile Malheureusement elle ne peut pas ecirctre formellement calculeacutee car deacutependante de trop de paramegravetres

On a Utilisation lt Bande Passante atteignable lt Bande Passante disponible lt Capaciteacute

Le but est de trouver les paramegravetres permettant dapprocher le plus possible la Bande Passante atteignable de la Bande Passante disponible

b Latence

Les caracteacuteristiques de la Latence sont deacutecrites en deacutetail dans les RFC 2330 2679 et 2681 [6]

Elle repreacutesente le temps entre le moment ougrave le deacutebut dun paquet part dun eacutemetteur et celui ougrave la fin du paquet arrive au reacutecepteur

Cette deacutefinition entraicircne des interrogations sur les problegravemes de synchronisation de fragmentation de paquets

La Latence (comme les autres grandeurs) peut ecirctre mesureacutee en aller simple ou en aller-retour La mesure de laller simple est tregraves importante car de nos jours la plupart des liens sont asymeacutetriques (ils peuvent par exemple avoir des qualiteacutes de service diffeacuterentes selon le sens)

La Gigue

Classeacutee dans la famille des latences eacutegalement appeleacutee IPDV (IP Packet Delay Variation) elle mesure les variations de la Latence dans le temps

La Gigue a des conseacutequences importantes pour les applications qui

9

neacutecessitent un flux reacutegulier (comme le streaming audio ou videacuteo)

c Pertes

Les pertes repreacutesentent les paquets eacutemis qui ne sont pas arriveacutes agrave destination

Cette meacutetrique est deacutefinie par la RFC 2680 [7] Les pertes peuvent ecirctre caracteacuteriseacutees par un pourcentage de paquets

perdus ou par un profil de perte Dans ce dernier cas seul un profil particulier (Loi de Poisson) a eacuteteacute

formellement deacutefini (dans la mecircme RFC) mais lInternet Society encourage des deacuteveloppeurs agrave utiliser eacutegalement dautres profils

Le logiciel qui sera utiliseacute pour leacutemulateur durant le stage (NIST Net) ne permet pas dimpleacutementer le profil de Poisson En revanche il propose deux autres profils correacutelation (cest agrave dire une valeur moyenne associeacutee agrave un coefficient de correacutelation) et DRD (Derivative Random Drop) [8]

d Duplications

Les duplications repreacutesentent les paquets qui arrivent plusieurs fois agrave destination

On peut les mesurer en pourcentage ou suivant un profil NIST Net permet dutiliser un profil de correacutelation

Un diagramme repreacutesentant la totaliteacute des proprieacuteteacutes deacutefinies est donneacute en Annexe [1]

II Outils

La premiegravere ideacutee envisageacutee peut ecirctre dutiliser un simulateur comme NS ou OpenNet Mais de part leur nature ces programmes ne permettent pas des mesures expeacuterimentales reacuteelles

Plusieurs outils complets deacutemulations existent deacutejagrave (comme Emulab [9] X-bone [10] ou ModelNet [11]) mais ils neacutetaient pas adapteacutes aux objectifs dEWAN notamment en ce qui concerne le haut deacutebit

Dautres outils se concentrent sur certains aspects preacutecis de leacutemulation (notamment pour les liens) EWAN na pas la preacutetention de reacutecrire ces briques fondamentales elles lui serviront de bases et son rocircle sera de les parameacutetrer

10

correctement

1 NIST Net

NIST Net [12] est un logiciel (sous licence libre baseacutee sur la GPL) deacuteveloppeacute par le NIST (National Institute of Standards and Technology) Il se preacutesente sous la forme dun module du noyau linux

Son but est deacutemuler un lien On souhaite recevoir des paquets par une interface et les transmettre en sortie sur une autre selon certaines conditions correspondant aux caracteacuteristiques du lien

NIST Net se place juste avant les fonction IP du noyau Il va reacutecupeacuterer les paquets reccedilus les stocker dans des files dattente et les libeacuterer selon les paramegravetres preacuteciseacutes lors de sa configuration

NIST Net peut ainsi eacutemuler des latences (y compris des gigues) des pertes (par simple pourcentage ou selon deux profils correacutelation ou DRD) des duplications (par pourcentage ou selon le profil correacutelation) et le deacutebit

Le profil DRD (Derivative Random Drop) correspond agrave une probabiliteacute de pertes qui croit lineacuteairement avec la taille de la queue apregraves un eacuteventuel seuil

Il existe un autre profil couramment utiliseacute RED (Random Early Detection) mais les concepteurs de NIST Net ont estimeacute que dans le cadre de leacutemulation de liens DRD eacutetait amplement suffisant En effet RED (deacutefini dans la RFC 2309) est un algorithme utiliseacute dans la gestion des queues des routeurs (pour deacuteterminer la faccedilon de jeter les paquets lorsque la queue est pleine)

Leacutemulation du deacutebit par NIST Net ne sera pas utiliseacutee car elle nest pas tregraves preacutecise et car nous disposons dun autre outil tregraves simple mieux adapteacute TC

NIST Net dispose dune interface graphique et dune autre en ligne de commande Vu que nous preacutevoyons de deacuteployer des configurations sur plusieurs machines dun cluster seule cette derniegravere sera utiliseacutee

11

NIST Net stocke les paquets en attente dans des tables dont les tailles sont donc conditionneacutees par la meacutemoire de la machine utiliseacutee Mais la facteur vraiment limitant selon diverses eacutetudes de performances est le CPU En effet NIST Net doit reacuteguliegraverement parcourir ces tables afin de stocker les paquets arrivant Ainsi plus la latence que lon souhaite eacutemuler est eacuteleveacutee plus les tables seront longues et plus le CPU devra ecirctre puissant

2 Dummynet

Dummynet [13] est un outil sous licence BSD pour les plateformes FreeBSD

Il permet eacutegalement deacutemuler des latences des effets de queues des limitations de deacutebits et des reacuteordonnancements de paquets en interceptant le trafic dans la pile protocolaire de la machine cliente

Les machines manipuleacutees durant le stage tourneront sous GNULinux aussi cest NIST Net qui sera utiliseacute au lieu de Dummynet

Un port de ce programme pour linux avait deacutebuteacute dans une eacutequipe de recherche parisienne mais suite agrave lengagement des travaux du LIP sur leacutemulation avec NIST Net ce deacuteveloppement fut arrecircteacute

12

3 TC

TC (Trafic Control) est une commande standard de GNULinux permettant notamment de limiter le deacutebit en sortie dune interface

Cest loutil qui sera utiliseacute pour eacutemuler le deacutebit dun lien Mais TC peut eacutegalement servir agrave deacutefinir des classes de service qui

pourront ecirctre utiles dans leacutemulation de Qualiteacute de Service

13

Reacutealisation

A Speacutecifications

EWAN signifie simplement Eacutemulateur de WAN (Wide Area Network Reacuteseaux informatiques de grande taille) et a comme objectif decirctre un eacutemulateur de topologies haut deacutebit longue distance

Cest agrave dire quEWAN doit configurer des machines lieacutees entre elles par du haut deacutebit (1Gbs) et eacutemulant des liens longue distance (donc en utilisant leacutemulateur de lien NIST-Net)

EWAN devait se deacutecomposer en briques

Une interface web geacuteneacutereacutee en PHP qui permettrait de deacutefinir intuitivement des topologies simples

Un algorithme daffectation des types de fonctionnaliteacutes aux machines de la grappe

Un algorithme de deacutetermination des IP et sous-reacuteseaux

Un algorithme de calcul de routage et de configuration des tables de routage

Une meacutethode de stockage des informations dans une base MySQL

Et un proceacutedeacute de deacuteploiement sur la grappe

Nous avons ensuite reacutealiseacute que PHP pouvait convenir pour toutes les briques aussi ce langage fut retenu pour EWAN

Linterface est preacutevue pour des expeacuterimentateurs qui ne sinteacuteressent pas au cœur du reacuteseau supposeacute surdimensionneacute et qui veulent reacutealiser simplement une topologie classique telle quils en rencontrent dans la reacutealiteacute sans avoir agrave se preacuteoccuper de sa structure interne (comme le routage)

B Architecture logique

EWAN doit donc permettre de simuler des topologies au niveau 3 de la couche OSI cest agrave dire des nœuds relieacutes par des liens avec des meacutetriques agrave deacutefinir dans des sous reacuteseaux IP

La cas de figure le plus couramment eacutetudieacute est celui de clients derriegravere des

14

points daccegraves relieacutes par des liens (aux latences non neacutegligeables) agrave un cœur de reacuteseau surdimensionneacute

On peut alors mettre en eacutevidence certaines fonctionnaliteacutes qui devront ecirctre eacutemuleacutees

- eacutemulation de lien (latence pertes et duplications)

- eacutemulation de capaciteacute (limitation de deacutebit tocken bucket)

- routage virtuel

- geacuteneacuteration de trafic concurrent

- capture de trafic concurrent

Ces fonctionnaliteacutes seront reacuteparties selon 5 types eacutemuleacutes par les nœuds

- Client

- Point daccegraves

- Routeur de cœur

- Eacutemulateur de lien

- Geacuteneacuterateur de trafic

15

C Architecture physique

EWAN est constitueacute dune grappe de nœuds non neacutecessairement mateacuteriellement identiques (avec par exemple un nombre dinterfaces une capaciteacute meacutemoire ou CPU diffeacuterents) relieacutes par un ou plusieurs commutateurs (switchs) et dun serveur qui soccupera de configurer ces nœuds et sur lequel EWAN sexeacutecute

Ces machines appartiennent donc initialement au mecircme sous-reacuteseau et sont accessibles entre-elles au niveau 2 de la couche OSI (Ethernet)

Chaque nœud utiliseacute pour la topologie souhaiteacutee sera de lun des types preacutedeacutefinis et eacutemulera une fonctionnaliteacute

- La latence les pertes et les duplications sont assureacutees par les eacutemulateurs de liens (utilisant NIST Net)

- Les limitations de deacutebits sont mises en œuvre par les nœuds aux extreacutemiteacutes du lien agrave limiter

- Le routage virtuel est reacutealiseacute par les routeurs de cœur et les points daccegraves

- La geacuteneacuteration de trafic est la fonctionnaliteacute speacutecifique des geacuteneacuterateurs

- La capture du trafic concurrent est agrave la charge des routeurs (de cœur ou daccegraves)

Pour cela tous les nœuds de la grappe doivent posseacuteder les mecircmes logiciels suivants

- Debian GNULinux

- iproute

- au moins un geacuteneacuterateur de trafic (Iperf ou Mgen)

16

- un serveur SSH

- un kernel compileacute avec les options de routage avanceacutees (IP advanced router et IP policy routing) et CPU (devcpucpuid - CPU information support)

Par ailleurs toute la configuration de la grappe et son deacuteploiement sont geacutereacutes par un serveur web qui doit disposer de

- Apache

- PHP 4 ou PHP 5 avec les bibliothegraveques

- MySQL

- XML et DOM

- GD (avec PNG et FreeType)

- MySQL

- SSH

Le logiciel EWAN reacutealiseacute en PHP comporte deux principales parties une interface de creacuteation de topologies classiques et un moteur de deacuteploiement (qui accepte nimporte quelle topologie)

D Interface de creacuteation de topologie

En se connectant sur la page daccueil dEWAN 4 choix sont possibles charger une topologie deacutefinir une nouvelle topologie geacuterer les configurations mateacuterielles et veacuterifier la configuration mateacuterielle actuelle

1 Charger une topologie

Ce champ permet de charger une topologie deacutefinie preacutealablement agrave partir dun fichier RDF Ces fichiers sont creacuteeacutes soit agrave partir de linterface soit agrave la main en respectant leur syntaxe Celle-ci est deacutetailleacutee dans la partie Deacuteploiement des topologies

17

2 Deacutefinir une nouvelle topologie

Ce lien conduit agrave linterface qui va guider pas agrave pas la creacuteation dune topologie classique cest agrave dire constitueacutee de points daccegraves relieacutes agrave un cœur surdimensionneacute

Agrave chaque eacutetape les choix offerts agrave lutilisateur sont calculeacutes agrave partir des informations quil a deacutejagrave saisies et des contraintes mateacuterielles

a Points daccegraves et Clients

Cette page deacutetermine le nombre de points daccegraves dans la topologie ainsi que le nombre de clients pour chacun deux Les limites sont deacuteduites de la configuration mateacuterielle utiliseacutee (voir 3 Gestion des configurations mateacuterielles)

18

b Deacutefinition des liens

Ici sont calculeacutees les caracteacuteristiques des liens

19

Les liens qui nous inteacuteressent ici sont ceux liant les points daccegraves aux routeurs de cœur

En effet les liens entre un point daccegraves et ses clients correspondent agrave un reacuteseau local donc sont neacutegligeables et les liens agrave linteacuterieur du cœur sont supposeacutes surdimensionneacutes

Les utilisateurs auxquels loutil est destineacute ne connaicirctront habituellement pas les caracteacuteristiques des liens Points daccegraves - Routeur de cœur Au lieu de ccedila ils disposent dinformations mesureacutees de bout en bout cest agrave dire dun point daccegraves agrave un autre Ils peuvent posseacuteder alors les caracteacuteristiques dun graphe complet soit n(n-1)2 valeurs pour n Points daccegraves

On se retrouve avec un systegraveme de n inconnues agrave n(n-1)2 eacutequations Si lutilisateur devait rentrer toutes ces valeurs on aurait un risque dincoheacuterence Cest pourquoi lutilisateur doit tout dabord choisir le point daccegraves le plus eacuteloigneacute du cœur (selon la meacutetrique la plus inteacuteressante) Puis il renseigne la latence les pertes et les duplications entre ce point daccegraves et chacun des autres (Soit n-1 valeurs) Puis il faut encore choisir un couple de point daccegraves (en excluant le premier) et donner les mecircmes renseignements

Les valeurs donneacutees pour les liens du premier point daccegraves entrainent un intervalle de coheacuterence pour le dernier lien qui est rappeleacute en temps reacuteel

(En effet si le lien de A vers B a une latence de 100ms et celui de A vers C 20ms le lien entre B et C doit forceacutement se trouver dans lintervalle 80-120ms

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 6: Résumé - Claude Bernard University Lyon 1

6

B Contexte

I Grilles de calcul et topologies Une grappe de machines (cluster en anglais) est un groupe dordinateurs

mis en reacuteseau local afin de former un ensemble de forte capaciteacute tregraves utiliseacute pour les calculs parallegraveles

Une grille est un ensemble dordinateurs distribueacutes geacuteographiquement relieacutes par des reacuteseaux longue distance (Internet reacuteseaux priveacutes virtuels (VPN) ou reacuteseaux priveacutes reacuteels) qui eacutetend le principe du calcul parallegravele des grappes

Les grilles de calcul permettent une agreacutegation de ressources informatiques varieacutees (comme la puissance de calcul ou de stockage de donneacutees)

Les premiegraveres grilles connues du grand public furent les logiciels de calcul distribueacute comme SETIHome [1] puis GenomeHome [2] pour lequel les ordinateurs des particuliers travaillaient et envoyaient au serveur le reacutesultat de leurs efforts

Puis les grilles se sont affranchies du modegravele Client -Serveur afin que chaque ordinateur puisse lancer des calculs ou utiliser la puissances des autres Dans le but dobtenir du calcul parallegravele toujours plus puissant des grilles regroupant plusieurs grappes furent creacuteeacutees

Actuellement la recherche dans ce domaine prometteur avance notamment gracircce agrave la mise en place de plateformes expeacuterimentales sappuyant sur des reacuteseaux haut deacutebit (comme RENATER reacuteseau national regroupant des eacutetablissements scientifiques et universitaires ou VTHD premier reacuteseau tregraves haut deacutebit franccedilais) Par exemple Grid5000 [3] est un projet de reacutealisation dune grille expeacuterimentale destineacutee agrave la communauteacute franccedilaise des chercheurs en informatique regroupant 8 sites en France dont un agrave Lyon impliquant le LIP Les chercheurs seront inviteacutes agrave tester leurs expeacuteriences avec EWAN avant de les deacuteployer sur Grid5000

Les travaux du Global Grid Forum [4] (organisme de standardisation dans le domaine des grilles de clacul) ont permis dobtenir une caracteacuterisation tregraves complegravete des topologies reacuteseau servant agrave deacutecrire la structure des grilles [5]

1 Entiteacutes Un reacuteseau est composeacute de nœuds et de liens (unidirectionnels ou

7

bidirectionnels) Les nœuds peuvent ecirctre des clients (Host) ou des nœuds internes (routeurs

switchs proxy)

2 Proprieacuteteacutes

Les principales proprieacuteteacutes des liens (qui ont eacuteteacute eacutetudieacutees pendant le stage) sont regroupeacutees en 4 cateacutegories

La Bande passante la Latence les Pertes et les Duplications

a Bande passante

La bande passante se mesure geacuteneacuteralement en quantiteacute de donneacutees par uniteacute de temps

Cependant elle ne peut ecirctre repreacutesenteacutee par une seule valeur on introduit donc 4 caracteacuteristiques

La Capaciteacute

Cest la quantiteacute maximale de donneacutees pouvant ecirctre transmise lorsquil ny a pas dautre trafic

8

Cest une valeur theacuteorique et la seule que lon connaicirct preacuteciseacutement

LUtilisation

Cest la quantiteacute de donneacutees concregravetement transmises agrave un instant donneacute

La Bande Passante disponible

Cest la quantiteacute maximale de donneacutees quun lien peut fournir lors dune certaine utilisation

La Bande Passante atteignable

Cest la quantiteacute de donneacutees maximale pouvant ecirctre transmise selon une certaine utilisation un certain protocole et certains eacutequipements

Cest en fait la valeur la plus inteacuteressante agrave eacutetudier car la seule reacuteellement utile Malheureusement elle ne peut pas ecirctre formellement calculeacutee car deacutependante de trop de paramegravetres

On a Utilisation lt Bande Passante atteignable lt Bande Passante disponible lt Capaciteacute

Le but est de trouver les paramegravetres permettant dapprocher le plus possible la Bande Passante atteignable de la Bande Passante disponible

b Latence

Les caracteacuteristiques de la Latence sont deacutecrites en deacutetail dans les RFC 2330 2679 et 2681 [6]

Elle repreacutesente le temps entre le moment ougrave le deacutebut dun paquet part dun eacutemetteur et celui ougrave la fin du paquet arrive au reacutecepteur

Cette deacutefinition entraicircne des interrogations sur les problegravemes de synchronisation de fragmentation de paquets

La Latence (comme les autres grandeurs) peut ecirctre mesureacutee en aller simple ou en aller-retour La mesure de laller simple est tregraves importante car de nos jours la plupart des liens sont asymeacutetriques (ils peuvent par exemple avoir des qualiteacutes de service diffeacuterentes selon le sens)

La Gigue

Classeacutee dans la famille des latences eacutegalement appeleacutee IPDV (IP Packet Delay Variation) elle mesure les variations de la Latence dans le temps

La Gigue a des conseacutequences importantes pour les applications qui

9

neacutecessitent un flux reacutegulier (comme le streaming audio ou videacuteo)

c Pertes

Les pertes repreacutesentent les paquets eacutemis qui ne sont pas arriveacutes agrave destination

Cette meacutetrique est deacutefinie par la RFC 2680 [7] Les pertes peuvent ecirctre caracteacuteriseacutees par un pourcentage de paquets

perdus ou par un profil de perte Dans ce dernier cas seul un profil particulier (Loi de Poisson) a eacuteteacute

formellement deacutefini (dans la mecircme RFC) mais lInternet Society encourage des deacuteveloppeurs agrave utiliser eacutegalement dautres profils

Le logiciel qui sera utiliseacute pour leacutemulateur durant le stage (NIST Net) ne permet pas dimpleacutementer le profil de Poisson En revanche il propose deux autres profils correacutelation (cest agrave dire une valeur moyenne associeacutee agrave un coefficient de correacutelation) et DRD (Derivative Random Drop) [8]

d Duplications

Les duplications repreacutesentent les paquets qui arrivent plusieurs fois agrave destination

On peut les mesurer en pourcentage ou suivant un profil NIST Net permet dutiliser un profil de correacutelation

Un diagramme repreacutesentant la totaliteacute des proprieacuteteacutes deacutefinies est donneacute en Annexe [1]

II Outils

La premiegravere ideacutee envisageacutee peut ecirctre dutiliser un simulateur comme NS ou OpenNet Mais de part leur nature ces programmes ne permettent pas des mesures expeacuterimentales reacuteelles

Plusieurs outils complets deacutemulations existent deacutejagrave (comme Emulab [9] X-bone [10] ou ModelNet [11]) mais ils neacutetaient pas adapteacutes aux objectifs dEWAN notamment en ce qui concerne le haut deacutebit

Dautres outils se concentrent sur certains aspects preacutecis de leacutemulation (notamment pour les liens) EWAN na pas la preacutetention de reacutecrire ces briques fondamentales elles lui serviront de bases et son rocircle sera de les parameacutetrer

10

correctement

1 NIST Net

NIST Net [12] est un logiciel (sous licence libre baseacutee sur la GPL) deacuteveloppeacute par le NIST (National Institute of Standards and Technology) Il se preacutesente sous la forme dun module du noyau linux

Son but est deacutemuler un lien On souhaite recevoir des paquets par une interface et les transmettre en sortie sur une autre selon certaines conditions correspondant aux caracteacuteristiques du lien

NIST Net se place juste avant les fonction IP du noyau Il va reacutecupeacuterer les paquets reccedilus les stocker dans des files dattente et les libeacuterer selon les paramegravetres preacuteciseacutes lors de sa configuration

NIST Net peut ainsi eacutemuler des latences (y compris des gigues) des pertes (par simple pourcentage ou selon deux profils correacutelation ou DRD) des duplications (par pourcentage ou selon le profil correacutelation) et le deacutebit

Le profil DRD (Derivative Random Drop) correspond agrave une probabiliteacute de pertes qui croit lineacuteairement avec la taille de la queue apregraves un eacuteventuel seuil

Il existe un autre profil couramment utiliseacute RED (Random Early Detection) mais les concepteurs de NIST Net ont estimeacute que dans le cadre de leacutemulation de liens DRD eacutetait amplement suffisant En effet RED (deacutefini dans la RFC 2309) est un algorithme utiliseacute dans la gestion des queues des routeurs (pour deacuteterminer la faccedilon de jeter les paquets lorsque la queue est pleine)

Leacutemulation du deacutebit par NIST Net ne sera pas utiliseacutee car elle nest pas tregraves preacutecise et car nous disposons dun autre outil tregraves simple mieux adapteacute TC

NIST Net dispose dune interface graphique et dune autre en ligne de commande Vu que nous preacutevoyons de deacuteployer des configurations sur plusieurs machines dun cluster seule cette derniegravere sera utiliseacutee

11

NIST Net stocke les paquets en attente dans des tables dont les tailles sont donc conditionneacutees par la meacutemoire de la machine utiliseacutee Mais la facteur vraiment limitant selon diverses eacutetudes de performances est le CPU En effet NIST Net doit reacuteguliegraverement parcourir ces tables afin de stocker les paquets arrivant Ainsi plus la latence que lon souhaite eacutemuler est eacuteleveacutee plus les tables seront longues et plus le CPU devra ecirctre puissant

2 Dummynet

Dummynet [13] est un outil sous licence BSD pour les plateformes FreeBSD

Il permet eacutegalement deacutemuler des latences des effets de queues des limitations de deacutebits et des reacuteordonnancements de paquets en interceptant le trafic dans la pile protocolaire de la machine cliente

Les machines manipuleacutees durant le stage tourneront sous GNULinux aussi cest NIST Net qui sera utiliseacute au lieu de Dummynet

Un port de ce programme pour linux avait deacutebuteacute dans une eacutequipe de recherche parisienne mais suite agrave lengagement des travaux du LIP sur leacutemulation avec NIST Net ce deacuteveloppement fut arrecircteacute

12

3 TC

TC (Trafic Control) est une commande standard de GNULinux permettant notamment de limiter le deacutebit en sortie dune interface

Cest loutil qui sera utiliseacute pour eacutemuler le deacutebit dun lien Mais TC peut eacutegalement servir agrave deacutefinir des classes de service qui

pourront ecirctre utiles dans leacutemulation de Qualiteacute de Service

13

Reacutealisation

A Speacutecifications

EWAN signifie simplement Eacutemulateur de WAN (Wide Area Network Reacuteseaux informatiques de grande taille) et a comme objectif decirctre un eacutemulateur de topologies haut deacutebit longue distance

Cest agrave dire quEWAN doit configurer des machines lieacutees entre elles par du haut deacutebit (1Gbs) et eacutemulant des liens longue distance (donc en utilisant leacutemulateur de lien NIST-Net)

EWAN devait se deacutecomposer en briques

Une interface web geacuteneacutereacutee en PHP qui permettrait de deacutefinir intuitivement des topologies simples

Un algorithme daffectation des types de fonctionnaliteacutes aux machines de la grappe

Un algorithme de deacutetermination des IP et sous-reacuteseaux

Un algorithme de calcul de routage et de configuration des tables de routage

Une meacutethode de stockage des informations dans une base MySQL

Et un proceacutedeacute de deacuteploiement sur la grappe

Nous avons ensuite reacutealiseacute que PHP pouvait convenir pour toutes les briques aussi ce langage fut retenu pour EWAN

Linterface est preacutevue pour des expeacuterimentateurs qui ne sinteacuteressent pas au cœur du reacuteseau supposeacute surdimensionneacute et qui veulent reacutealiser simplement une topologie classique telle quils en rencontrent dans la reacutealiteacute sans avoir agrave se preacuteoccuper de sa structure interne (comme le routage)

B Architecture logique

EWAN doit donc permettre de simuler des topologies au niveau 3 de la couche OSI cest agrave dire des nœuds relieacutes par des liens avec des meacutetriques agrave deacutefinir dans des sous reacuteseaux IP

La cas de figure le plus couramment eacutetudieacute est celui de clients derriegravere des

14

points daccegraves relieacutes par des liens (aux latences non neacutegligeables) agrave un cœur de reacuteseau surdimensionneacute

On peut alors mettre en eacutevidence certaines fonctionnaliteacutes qui devront ecirctre eacutemuleacutees

- eacutemulation de lien (latence pertes et duplications)

- eacutemulation de capaciteacute (limitation de deacutebit tocken bucket)

- routage virtuel

- geacuteneacuteration de trafic concurrent

- capture de trafic concurrent

Ces fonctionnaliteacutes seront reacuteparties selon 5 types eacutemuleacutes par les nœuds

- Client

- Point daccegraves

- Routeur de cœur

- Eacutemulateur de lien

- Geacuteneacuterateur de trafic

15

C Architecture physique

EWAN est constitueacute dune grappe de nœuds non neacutecessairement mateacuteriellement identiques (avec par exemple un nombre dinterfaces une capaciteacute meacutemoire ou CPU diffeacuterents) relieacutes par un ou plusieurs commutateurs (switchs) et dun serveur qui soccupera de configurer ces nœuds et sur lequel EWAN sexeacutecute

Ces machines appartiennent donc initialement au mecircme sous-reacuteseau et sont accessibles entre-elles au niveau 2 de la couche OSI (Ethernet)

Chaque nœud utiliseacute pour la topologie souhaiteacutee sera de lun des types preacutedeacutefinis et eacutemulera une fonctionnaliteacute

- La latence les pertes et les duplications sont assureacutees par les eacutemulateurs de liens (utilisant NIST Net)

- Les limitations de deacutebits sont mises en œuvre par les nœuds aux extreacutemiteacutes du lien agrave limiter

- Le routage virtuel est reacutealiseacute par les routeurs de cœur et les points daccegraves

- La geacuteneacuteration de trafic est la fonctionnaliteacute speacutecifique des geacuteneacuterateurs

- La capture du trafic concurrent est agrave la charge des routeurs (de cœur ou daccegraves)

Pour cela tous les nœuds de la grappe doivent posseacuteder les mecircmes logiciels suivants

- Debian GNULinux

- iproute

- au moins un geacuteneacuterateur de trafic (Iperf ou Mgen)

16

- un serveur SSH

- un kernel compileacute avec les options de routage avanceacutees (IP advanced router et IP policy routing) et CPU (devcpucpuid - CPU information support)

Par ailleurs toute la configuration de la grappe et son deacuteploiement sont geacutereacutes par un serveur web qui doit disposer de

- Apache

- PHP 4 ou PHP 5 avec les bibliothegraveques

- MySQL

- XML et DOM

- GD (avec PNG et FreeType)

- MySQL

- SSH

Le logiciel EWAN reacutealiseacute en PHP comporte deux principales parties une interface de creacuteation de topologies classiques et un moteur de deacuteploiement (qui accepte nimporte quelle topologie)

D Interface de creacuteation de topologie

En se connectant sur la page daccueil dEWAN 4 choix sont possibles charger une topologie deacutefinir une nouvelle topologie geacuterer les configurations mateacuterielles et veacuterifier la configuration mateacuterielle actuelle

1 Charger une topologie

Ce champ permet de charger une topologie deacutefinie preacutealablement agrave partir dun fichier RDF Ces fichiers sont creacuteeacutes soit agrave partir de linterface soit agrave la main en respectant leur syntaxe Celle-ci est deacutetailleacutee dans la partie Deacuteploiement des topologies

17

2 Deacutefinir une nouvelle topologie

Ce lien conduit agrave linterface qui va guider pas agrave pas la creacuteation dune topologie classique cest agrave dire constitueacutee de points daccegraves relieacutes agrave un cœur surdimensionneacute

Agrave chaque eacutetape les choix offerts agrave lutilisateur sont calculeacutes agrave partir des informations quil a deacutejagrave saisies et des contraintes mateacuterielles

a Points daccegraves et Clients

Cette page deacutetermine le nombre de points daccegraves dans la topologie ainsi que le nombre de clients pour chacun deux Les limites sont deacuteduites de la configuration mateacuterielle utiliseacutee (voir 3 Gestion des configurations mateacuterielles)

18

b Deacutefinition des liens

Ici sont calculeacutees les caracteacuteristiques des liens

19

Les liens qui nous inteacuteressent ici sont ceux liant les points daccegraves aux routeurs de cœur

En effet les liens entre un point daccegraves et ses clients correspondent agrave un reacuteseau local donc sont neacutegligeables et les liens agrave linteacuterieur du cœur sont supposeacutes surdimensionneacutes

Les utilisateurs auxquels loutil est destineacute ne connaicirctront habituellement pas les caracteacuteristiques des liens Points daccegraves - Routeur de cœur Au lieu de ccedila ils disposent dinformations mesureacutees de bout en bout cest agrave dire dun point daccegraves agrave un autre Ils peuvent posseacuteder alors les caracteacuteristiques dun graphe complet soit n(n-1)2 valeurs pour n Points daccegraves

On se retrouve avec un systegraveme de n inconnues agrave n(n-1)2 eacutequations Si lutilisateur devait rentrer toutes ces valeurs on aurait un risque dincoheacuterence Cest pourquoi lutilisateur doit tout dabord choisir le point daccegraves le plus eacuteloigneacute du cœur (selon la meacutetrique la plus inteacuteressante) Puis il renseigne la latence les pertes et les duplications entre ce point daccegraves et chacun des autres (Soit n-1 valeurs) Puis il faut encore choisir un couple de point daccegraves (en excluant le premier) et donner les mecircmes renseignements

Les valeurs donneacutees pour les liens du premier point daccegraves entrainent un intervalle de coheacuterence pour le dernier lien qui est rappeleacute en temps reacuteel

(En effet si le lien de A vers B a une latence de 100ms et celui de A vers C 20ms le lien entre B et C doit forceacutement se trouver dans lintervalle 80-120ms

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 7: Résumé - Claude Bernard University Lyon 1

7

bidirectionnels) Les nœuds peuvent ecirctre des clients (Host) ou des nœuds internes (routeurs

switchs proxy)

2 Proprieacuteteacutes

Les principales proprieacuteteacutes des liens (qui ont eacuteteacute eacutetudieacutees pendant le stage) sont regroupeacutees en 4 cateacutegories

La Bande passante la Latence les Pertes et les Duplications

a Bande passante

La bande passante se mesure geacuteneacuteralement en quantiteacute de donneacutees par uniteacute de temps

Cependant elle ne peut ecirctre repreacutesenteacutee par une seule valeur on introduit donc 4 caracteacuteristiques

La Capaciteacute

Cest la quantiteacute maximale de donneacutees pouvant ecirctre transmise lorsquil ny a pas dautre trafic

8

Cest une valeur theacuteorique et la seule que lon connaicirct preacuteciseacutement

LUtilisation

Cest la quantiteacute de donneacutees concregravetement transmises agrave un instant donneacute

La Bande Passante disponible

Cest la quantiteacute maximale de donneacutees quun lien peut fournir lors dune certaine utilisation

La Bande Passante atteignable

Cest la quantiteacute de donneacutees maximale pouvant ecirctre transmise selon une certaine utilisation un certain protocole et certains eacutequipements

Cest en fait la valeur la plus inteacuteressante agrave eacutetudier car la seule reacuteellement utile Malheureusement elle ne peut pas ecirctre formellement calculeacutee car deacutependante de trop de paramegravetres

On a Utilisation lt Bande Passante atteignable lt Bande Passante disponible lt Capaciteacute

Le but est de trouver les paramegravetres permettant dapprocher le plus possible la Bande Passante atteignable de la Bande Passante disponible

b Latence

Les caracteacuteristiques de la Latence sont deacutecrites en deacutetail dans les RFC 2330 2679 et 2681 [6]

Elle repreacutesente le temps entre le moment ougrave le deacutebut dun paquet part dun eacutemetteur et celui ougrave la fin du paquet arrive au reacutecepteur

Cette deacutefinition entraicircne des interrogations sur les problegravemes de synchronisation de fragmentation de paquets

La Latence (comme les autres grandeurs) peut ecirctre mesureacutee en aller simple ou en aller-retour La mesure de laller simple est tregraves importante car de nos jours la plupart des liens sont asymeacutetriques (ils peuvent par exemple avoir des qualiteacutes de service diffeacuterentes selon le sens)

La Gigue

Classeacutee dans la famille des latences eacutegalement appeleacutee IPDV (IP Packet Delay Variation) elle mesure les variations de la Latence dans le temps

La Gigue a des conseacutequences importantes pour les applications qui

9

neacutecessitent un flux reacutegulier (comme le streaming audio ou videacuteo)

c Pertes

Les pertes repreacutesentent les paquets eacutemis qui ne sont pas arriveacutes agrave destination

Cette meacutetrique est deacutefinie par la RFC 2680 [7] Les pertes peuvent ecirctre caracteacuteriseacutees par un pourcentage de paquets

perdus ou par un profil de perte Dans ce dernier cas seul un profil particulier (Loi de Poisson) a eacuteteacute

formellement deacutefini (dans la mecircme RFC) mais lInternet Society encourage des deacuteveloppeurs agrave utiliser eacutegalement dautres profils

Le logiciel qui sera utiliseacute pour leacutemulateur durant le stage (NIST Net) ne permet pas dimpleacutementer le profil de Poisson En revanche il propose deux autres profils correacutelation (cest agrave dire une valeur moyenne associeacutee agrave un coefficient de correacutelation) et DRD (Derivative Random Drop) [8]

d Duplications

Les duplications repreacutesentent les paquets qui arrivent plusieurs fois agrave destination

On peut les mesurer en pourcentage ou suivant un profil NIST Net permet dutiliser un profil de correacutelation

Un diagramme repreacutesentant la totaliteacute des proprieacuteteacutes deacutefinies est donneacute en Annexe [1]

II Outils

La premiegravere ideacutee envisageacutee peut ecirctre dutiliser un simulateur comme NS ou OpenNet Mais de part leur nature ces programmes ne permettent pas des mesures expeacuterimentales reacuteelles

Plusieurs outils complets deacutemulations existent deacutejagrave (comme Emulab [9] X-bone [10] ou ModelNet [11]) mais ils neacutetaient pas adapteacutes aux objectifs dEWAN notamment en ce qui concerne le haut deacutebit

Dautres outils se concentrent sur certains aspects preacutecis de leacutemulation (notamment pour les liens) EWAN na pas la preacutetention de reacutecrire ces briques fondamentales elles lui serviront de bases et son rocircle sera de les parameacutetrer

10

correctement

1 NIST Net

NIST Net [12] est un logiciel (sous licence libre baseacutee sur la GPL) deacuteveloppeacute par le NIST (National Institute of Standards and Technology) Il se preacutesente sous la forme dun module du noyau linux

Son but est deacutemuler un lien On souhaite recevoir des paquets par une interface et les transmettre en sortie sur une autre selon certaines conditions correspondant aux caracteacuteristiques du lien

NIST Net se place juste avant les fonction IP du noyau Il va reacutecupeacuterer les paquets reccedilus les stocker dans des files dattente et les libeacuterer selon les paramegravetres preacuteciseacutes lors de sa configuration

NIST Net peut ainsi eacutemuler des latences (y compris des gigues) des pertes (par simple pourcentage ou selon deux profils correacutelation ou DRD) des duplications (par pourcentage ou selon le profil correacutelation) et le deacutebit

Le profil DRD (Derivative Random Drop) correspond agrave une probabiliteacute de pertes qui croit lineacuteairement avec la taille de la queue apregraves un eacuteventuel seuil

Il existe un autre profil couramment utiliseacute RED (Random Early Detection) mais les concepteurs de NIST Net ont estimeacute que dans le cadre de leacutemulation de liens DRD eacutetait amplement suffisant En effet RED (deacutefini dans la RFC 2309) est un algorithme utiliseacute dans la gestion des queues des routeurs (pour deacuteterminer la faccedilon de jeter les paquets lorsque la queue est pleine)

Leacutemulation du deacutebit par NIST Net ne sera pas utiliseacutee car elle nest pas tregraves preacutecise et car nous disposons dun autre outil tregraves simple mieux adapteacute TC

NIST Net dispose dune interface graphique et dune autre en ligne de commande Vu que nous preacutevoyons de deacuteployer des configurations sur plusieurs machines dun cluster seule cette derniegravere sera utiliseacutee

11

NIST Net stocke les paquets en attente dans des tables dont les tailles sont donc conditionneacutees par la meacutemoire de la machine utiliseacutee Mais la facteur vraiment limitant selon diverses eacutetudes de performances est le CPU En effet NIST Net doit reacuteguliegraverement parcourir ces tables afin de stocker les paquets arrivant Ainsi plus la latence que lon souhaite eacutemuler est eacuteleveacutee plus les tables seront longues et plus le CPU devra ecirctre puissant

2 Dummynet

Dummynet [13] est un outil sous licence BSD pour les plateformes FreeBSD

Il permet eacutegalement deacutemuler des latences des effets de queues des limitations de deacutebits et des reacuteordonnancements de paquets en interceptant le trafic dans la pile protocolaire de la machine cliente

Les machines manipuleacutees durant le stage tourneront sous GNULinux aussi cest NIST Net qui sera utiliseacute au lieu de Dummynet

Un port de ce programme pour linux avait deacutebuteacute dans une eacutequipe de recherche parisienne mais suite agrave lengagement des travaux du LIP sur leacutemulation avec NIST Net ce deacuteveloppement fut arrecircteacute

12

3 TC

TC (Trafic Control) est une commande standard de GNULinux permettant notamment de limiter le deacutebit en sortie dune interface

Cest loutil qui sera utiliseacute pour eacutemuler le deacutebit dun lien Mais TC peut eacutegalement servir agrave deacutefinir des classes de service qui

pourront ecirctre utiles dans leacutemulation de Qualiteacute de Service

13

Reacutealisation

A Speacutecifications

EWAN signifie simplement Eacutemulateur de WAN (Wide Area Network Reacuteseaux informatiques de grande taille) et a comme objectif decirctre un eacutemulateur de topologies haut deacutebit longue distance

Cest agrave dire quEWAN doit configurer des machines lieacutees entre elles par du haut deacutebit (1Gbs) et eacutemulant des liens longue distance (donc en utilisant leacutemulateur de lien NIST-Net)

EWAN devait se deacutecomposer en briques

Une interface web geacuteneacutereacutee en PHP qui permettrait de deacutefinir intuitivement des topologies simples

Un algorithme daffectation des types de fonctionnaliteacutes aux machines de la grappe

Un algorithme de deacutetermination des IP et sous-reacuteseaux

Un algorithme de calcul de routage et de configuration des tables de routage

Une meacutethode de stockage des informations dans une base MySQL

Et un proceacutedeacute de deacuteploiement sur la grappe

Nous avons ensuite reacutealiseacute que PHP pouvait convenir pour toutes les briques aussi ce langage fut retenu pour EWAN

Linterface est preacutevue pour des expeacuterimentateurs qui ne sinteacuteressent pas au cœur du reacuteseau supposeacute surdimensionneacute et qui veulent reacutealiser simplement une topologie classique telle quils en rencontrent dans la reacutealiteacute sans avoir agrave se preacuteoccuper de sa structure interne (comme le routage)

B Architecture logique

EWAN doit donc permettre de simuler des topologies au niveau 3 de la couche OSI cest agrave dire des nœuds relieacutes par des liens avec des meacutetriques agrave deacutefinir dans des sous reacuteseaux IP

La cas de figure le plus couramment eacutetudieacute est celui de clients derriegravere des

14

points daccegraves relieacutes par des liens (aux latences non neacutegligeables) agrave un cœur de reacuteseau surdimensionneacute

On peut alors mettre en eacutevidence certaines fonctionnaliteacutes qui devront ecirctre eacutemuleacutees

- eacutemulation de lien (latence pertes et duplications)

- eacutemulation de capaciteacute (limitation de deacutebit tocken bucket)

- routage virtuel

- geacuteneacuteration de trafic concurrent

- capture de trafic concurrent

Ces fonctionnaliteacutes seront reacuteparties selon 5 types eacutemuleacutes par les nœuds

- Client

- Point daccegraves

- Routeur de cœur

- Eacutemulateur de lien

- Geacuteneacuterateur de trafic

15

C Architecture physique

EWAN est constitueacute dune grappe de nœuds non neacutecessairement mateacuteriellement identiques (avec par exemple un nombre dinterfaces une capaciteacute meacutemoire ou CPU diffeacuterents) relieacutes par un ou plusieurs commutateurs (switchs) et dun serveur qui soccupera de configurer ces nœuds et sur lequel EWAN sexeacutecute

Ces machines appartiennent donc initialement au mecircme sous-reacuteseau et sont accessibles entre-elles au niveau 2 de la couche OSI (Ethernet)

Chaque nœud utiliseacute pour la topologie souhaiteacutee sera de lun des types preacutedeacutefinis et eacutemulera une fonctionnaliteacute

- La latence les pertes et les duplications sont assureacutees par les eacutemulateurs de liens (utilisant NIST Net)

- Les limitations de deacutebits sont mises en œuvre par les nœuds aux extreacutemiteacutes du lien agrave limiter

- Le routage virtuel est reacutealiseacute par les routeurs de cœur et les points daccegraves

- La geacuteneacuteration de trafic est la fonctionnaliteacute speacutecifique des geacuteneacuterateurs

- La capture du trafic concurrent est agrave la charge des routeurs (de cœur ou daccegraves)

Pour cela tous les nœuds de la grappe doivent posseacuteder les mecircmes logiciels suivants

- Debian GNULinux

- iproute

- au moins un geacuteneacuterateur de trafic (Iperf ou Mgen)

16

- un serveur SSH

- un kernel compileacute avec les options de routage avanceacutees (IP advanced router et IP policy routing) et CPU (devcpucpuid - CPU information support)

Par ailleurs toute la configuration de la grappe et son deacuteploiement sont geacutereacutes par un serveur web qui doit disposer de

- Apache

- PHP 4 ou PHP 5 avec les bibliothegraveques

- MySQL

- XML et DOM

- GD (avec PNG et FreeType)

- MySQL

- SSH

Le logiciel EWAN reacutealiseacute en PHP comporte deux principales parties une interface de creacuteation de topologies classiques et un moteur de deacuteploiement (qui accepte nimporte quelle topologie)

D Interface de creacuteation de topologie

En se connectant sur la page daccueil dEWAN 4 choix sont possibles charger une topologie deacutefinir une nouvelle topologie geacuterer les configurations mateacuterielles et veacuterifier la configuration mateacuterielle actuelle

1 Charger une topologie

Ce champ permet de charger une topologie deacutefinie preacutealablement agrave partir dun fichier RDF Ces fichiers sont creacuteeacutes soit agrave partir de linterface soit agrave la main en respectant leur syntaxe Celle-ci est deacutetailleacutee dans la partie Deacuteploiement des topologies

17

2 Deacutefinir une nouvelle topologie

Ce lien conduit agrave linterface qui va guider pas agrave pas la creacuteation dune topologie classique cest agrave dire constitueacutee de points daccegraves relieacutes agrave un cœur surdimensionneacute

Agrave chaque eacutetape les choix offerts agrave lutilisateur sont calculeacutes agrave partir des informations quil a deacutejagrave saisies et des contraintes mateacuterielles

a Points daccegraves et Clients

Cette page deacutetermine le nombre de points daccegraves dans la topologie ainsi que le nombre de clients pour chacun deux Les limites sont deacuteduites de la configuration mateacuterielle utiliseacutee (voir 3 Gestion des configurations mateacuterielles)

18

b Deacutefinition des liens

Ici sont calculeacutees les caracteacuteristiques des liens

19

Les liens qui nous inteacuteressent ici sont ceux liant les points daccegraves aux routeurs de cœur

En effet les liens entre un point daccegraves et ses clients correspondent agrave un reacuteseau local donc sont neacutegligeables et les liens agrave linteacuterieur du cœur sont supposeacutes surdimensionneacutes

Les utilisateurs auxquels loutil est destineacute ne connaicirctront habituellement pas les caracteacuteristiques des liens Points daccegraves - Routeur de cœur Au lieu de ccedila ils disposent dinformations mesureacutees de bout en bout cest agrave dire dun point daccegraves agrave un autre Ils peuvent posseacuteder alors les caracteacuteristiques dun graphe complet soit n(n-1)2 valeurs pour n Points daccegraves

On se retrouve avec un systegraveme de n inconnues agrave n(n-1)2 eacutequations Si lutilisateur devait rentrer toutes ces valeurs on aurait un risque dincoheacuterence Cest pourquoi lutilisateur doit tout dabord choisir le point daccegraves le plus eacuteloigneacute du cœur (selon la meacutetrique la plus inteacuteressante) Puis il renseigne la latence les pertes et les duplications entre ce point daccegraves et chacun des autres (Soit n-1 valeurs) Puis il faut encore choisir un couple de point daccegraves (en excluant le premier) et donner les mecircmes renseignements

Les valeurs donneacutees pour les liens du premier point daccegraves entrainent un intervalle de coheacuterence pour le dernier lien qui est rappeleacute en temps reacuteel

(En effet si le lien de A vers B a une latence de 100ms et celui de A vers C 20ms le lien entre B et C doit forceacutement se trouver dans lintervalle 80-120ms

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 8: Résumé - Claude Bernard University Lyon 1

8

Cest une valeur theacuteorique et la seule que lon connaicirct preacuteciseacutement

LUtilisation

Cest la quantiteacute de donneacutees concregravetement transmises agrave un instant donneacute

La Bande Passante disponible

Cest la quantiteacute maximale de donneacutees quun lien peut fournir lors dune certaine utilisation

La Bande Passante atteignable

Cest la quantiteacute de donneacutees maximale pouvant ecirctre transmise selon une certaine utilisation un certain protocole et certains eacutequipements

Cest en fait la valeur la plus inteacuteressante agrave eacutetudier car la seule reacuteellement utile Malheureusement elle ne peut pas ecirctre formellement calculeacutee car deacutependante de trop de paramegravetres

On a Utilisation lt Bande Passante atteignable lt Bande Passante disponible lt Capaciteacute

Le but est de trouver les paramegravetres permettant dapprocher le plus possible la Bande Passante atteignable de la Bande Passante disponible

b Latence

Les caracteacuteristiques de la Latence sont deacutecrites en deacutetail dans les RFC 2330 2679 et 2681 [6]

Elle repreacutesente le temps entre le moment ougrave le deacutebut dun paquet part dun eacutemetteur et celui ougrave la fin du paquet arrive au reacutecepteur

Cette deacutefinition entraicircne des interrogations sur les problegravemes de synchronisation de fragmentation de paquets

La Latence (comme les autres grandeurs) peut ecirctre mesureacutee en aller simple ou en aller-retour La mesure de laller simple est tregraves importante car de nos jours la plupart des liens sont asymeacutetriques (ils peuvent par exemple avoir des qualiteacutes de service diffeacuterentes selon le sens)

La Gigue

Classeacutee dans la famille des latences eacutegalement appeleacutee IPDV (IP Packet Delay Variation) elle mesure les variations de la Latence dans le temps

La Gigue a des conseacutequences importantes pour les applications qui

9

neacutecessitent un flux reacutegulier (comme le streaming audio ou videacuteo)

c Pertes

Les pertes repreacutesentent les paquets eacutemis qui ne sont pas arriveacutes agrave destination

Cette meacutetrique est deacutefinie par la RFC 2680 [7] Les pertes peuvent ecirctre caracteacuteriseacutees par un pourcentage de paquets

perdus ou par un profil de perte Dans ce dernier cas seul un profil particulier (Loi de Poisson) a eacuteteacute

formellement deacutefini (dans la mecircme RFC) mais lInternet Society encourage des deacuteveloppeurs agrave utiliser eacutegalement dautres profils

Le logiciel qui sera utiliseacute pour leacutemulateur durant le stage (NIST Net) ne permet pas dimpleacutementer le profil de Poisson En revanche il propose deux autres profils correacutelation (cest agrave dire une valeur moyenne associeacutee agrave un coefficient de correacutelation) et DRD (Derivative Random Drop) [8]

d Duplications

Les duplications repreacutesentent les paquets qui arrivent plusieurs fois agrave destination

On peut les mesurer en pourcentage ou suivant un profil NIST Net permet dutiliser un profil de correacutelation

Un diagramme repreacutesentant la totaliteacute des proprieacuteteacutes deacutefinies est donneacute en Annexe [1]

II Outils

La premiegravere ideacutee envisageacutee peut ecirctre dutiliser un simulateur comme NS ou OpenNet Mais de part leur nature ces programmes ne permettent pas des mesures expeacuterimentales reacuteelles

Plusieurs outils complets deacutemulations existent deacutejagrave (comme Emulab [9] X-bone [10] ou ModelNet [11]) mais ils neacutetaient pas adapteacutes aux objectifs dEWAN notamment en ce qui concerne le haut deacutebit

Dautres outils se concentrent sur certains aspects preacutecis de leacutemulation (notamment pour les liens) EWAN na pas la preacutetention de reacutecrire ces briques fondamentales elles lui serviront de bases et son rocircle sera de les parameacutetrer

10

correctement

1 NIST Net

NIST Net [12] est un logiciel (sous licence libre baseacutee sur la GPL) deacuteveloppeacute par le NIST (National Institute of Standards and Technology) Il se preacutesente sous la forme dun module du noyau linux

Son but est deacutemuler un lien On souhaite recevoir des paquets par une interface et les transmettre en sortie sur une autre selon certaines conditions correspondant aux caracteacuteristiques du lien

NIST Net se place juste avant les fonction IP du noyau Il va reacutecupeacuterer les paquets reccedilus les stocker dans des files dattente et les libeacuterer selon les paramegravetres preacuteciseacutes lors de sa configuration

NIST Net peut ainsi eacutemuler des latences (y compris des gigues) des pertes (par simple pourcentage ou selon deux profils correacutelation ou DRD) des duplications (par pourcentage ou selon le profil correacutelation) et le deacutebit

Le profil DRD (Derivative Random Drop) correspond agrave une probabiliteacute de pertes qui croit lineacuteairement avec la taille de la queue apregraves un eacuteventuel seuil

Il existe un autre profil couramment utiliseacute RED (Random Early Detection) mais les concepteurs de NIST Net ont estimeacute que dans le cadre de leacutemulation de liens DRD eacutetait amplement suffisant En effet RED (deacutefini dans la RFC 2309) est un algorithme utiliseacute dans la gestion des queues des routeurs (pour deacuteterminer la faccedilon de jeter les paquets lorsque la queue est pleine)

Leacutemulation du deacutebit par NIST Net ne sera pas utiliseacutee car elle nest pas tregraves preacutecise et car nous disposons dun autre outil tregraves simple mieux adapteacute TC

NIST Net dispose dune interface graphique et dune autre en ligne de commande Vu que nous preacutevoyons de deacuteployer des configurations sur plusieurs machines dun cluster seule cette derniegravere sera utiliseacutee

11

NIST Net stocke les paquets en attente dans des tables dont les tailles sont donc conditionneacutees par la meacutemoire de la machine utiliseacutee Mais la facteur vraiment limitant selon diverses eacutetudes de performances est le CPU En effet NIST Net doit reacuteguliegraverement parcourir ces tables afin de stocker les paquets arrivant Ainsi plus la latence que lon souhaite eacutemuler est eacuteleveacutee plus les tables seront longues et plus le CPU devra ecirctre puissant

2 Dummynet

Dummynet [13] est un outil sous licence BSD pour les plateformes FreeBSD

Il permet eacutegalement deacutemuler des latences des effets de queues des limitations de deacutebits et des reacuteordonnancements de paquets en interceptant le trafic dans la pile protocolaire de la machine cliente

Les machines manipuleacutees durant le stage tourneront sous GNULinux aussi cest NIST Net qui sera utiliseacute au lieu de Dummynet

Un port de ce programme pour linux avait deacutebuteacute dans une eacutequipe de recherche parisienne mais suite agrave lengagement des travaux du LIP sur leacutemulation avec NIST Net ce deacuteveloppement fut arrecircteacute

12

3 TC

TC (Trafic Control) est une commande standard de GNULinux permettant notamment de limiter le deacutebit en sortie dune interface

Cest loutil qui sera utiliseacute pour eacutemuler le deacutebit dun lien Mais TC peut eacutegalement servir agrave deacutefinir des classes de service qui

pourront ecirctre utiles dans leacutemulation de Qualiteacute de Service

13

Reacutealisation

A Speacutecifications

EWAN signifie simplement Eacutemulateur de WAN (Wide Area Network Reacuteseaux informatiques de grande taille) et a comme objectif decirctre un eacutemulateur de topologies haut deacutebit longue distance

Cest agrave dire quEWAN doit configurer des machines lieacutees entre elles par du haut deacutebit (1Gbs) et eacutemulant des liens longue distance (donc en utilisant leacutemulateur de lien NIST-Net)

EWAN devait se deacutecomposer en briques

Une interface web geacuteneacutereacutee en PHP qui permettrait de deacutefinir intuitivement des topologies simples

Un algorithme daffectation des types de fonctionnaliteacutes aux machines de la grappe

Un algorithme de deacutetermination des IP et sous-reacuteseaux

Un algorithme de calcul de routage et de configuration des tables de routage

Une meacutethode de stockage des informations dans une base MySQL

Et un proceacutedeacute de deacuteploiement sur la grappe

Nous avons ensuite reacutealiseacute que PHP pouvait convenir pour toutes les briques aussi ce langage fut retenu pour EWAN

Linterface est preacutevue pour des expeacuterimentateurs qui ne sinteacuteressent pas au cœur du reacuteseau supposeacute surdimensionneacute et qui veulent reacutealiser simplement une topologie classique telle quils en rencontrent dans la reacutealiteacute sans avoir agrave se preacuteoccuper de sa structure interne (comme le routage)

B Architecture logique

EWAN doit donc permettre de simuler des topologies au niveau 3 de la couche OSI cest agrave dire des nœuds relieacutes par des liens avec des meacutetriques agrave deacutefinir dans des sous reacuteseaux IP

La cas de figure le plus couramment eacutetudieacute est celui de clients derriegravere des

14

points daccegraves relieacutes par des liens (aux latences non neacutegligeables) agrave un cœur de reacuteseau surdimensionneacute

On peut alors mettre en eacutevidence certaines fonctionnaliteacutes qui devront ecirctre eacutemuleacutees

- eacutemulation de lien (latence pertes et duplications)

- eacutemulation de capaciteacute (limitation de deacutebit tocken bucket)

- routage virtuel

- geacuteneacuteration de trafic concurrent

- capture de trafic concurrent

Ces fonctionnaliteacutes seront reacuteparties selon 5 types eacutemuleacutes par les nœuds

- Client

- Point daccegraves

- Routeur de cœur

- Eacutemulateur de lien

- Geacuteneacuterateur de trafic

15

C Architecture physique

EWAN est constitueacute dune grappe de nœuds non neacutecessairement mateacuteriellement identiques (avec par exemple un nombre dinterfaces une capaciteacute meacutemoire ou CPU diffeacuterents) relieacutes par un ou plusieurs commutateurs (switchs) et dun serveur qui soccupera de configurer ces nœuds et sur lequel EWAN sexeacutecute

Ces machines appartiennent donc initialement au mecircme sous-reacuteseau et sont accessibles entre-elles au niveau 2 de la couche OSI (Ethernet)

Chaque nœud utiliseacute pour la topologie souhaiteacutee sera de lun des types preacutedeacutefinis et eacutemulera une fonctionnaliteacute

- La latence les pertes et les duplications sont assureacutees par les eacutemulateurs de liens (utilisant NIST Net)

- Les limitations de deacutebits sont mises en œuvre par les nœuds aux extreacutemiteacutes du lien agrave limiter

- Le routage virtuel est reacutealiseacute par les routeurs de cœur et les points daccegraves

- La geacuteneacuteration de trafic est la fonctionnaliteacute speacutecifique des geacuteneacuterateurs

- La capture du trafic concurrent est agrave la charge des routeurs (de cœur ou daccegraves)

Pour cela tous les nœuds de la grappe doivent posseacuteder les mecircmes logiciels suivants

- Debian GNULinux

- iproute

- au moins un geacuteneacuterateur de trafic (Iperf ou Mgen)

16

- un serveur SSH

- un kernel compileacute avec les options de routage avanceacutees (IP advanced router et IP policy routing) et CPU (devcpucpuid - CPU information support)

Par ailleurs toute la configuration de la grappe et son deacuteploiement sont geacutereacutes par un serveur web qui doit disposer de

- Apache

- PHP 4 ou PHP 5 avec les bibliothegraveques

- MySQL

- XML et DOM

- GD (avec PNG et FreeType)

- MySQL

- SSH

Le logiciel EWAN reacutealiseacute en PHP comporte deux principales parties une interface de creacuteation de topologies classiques et un moteur de deacuteploiement (qui accepte nimporte quelle topologie)

D Interface de creacuteation de topologie

En se connectant sur la page daccueil dEWAN 4 choix sont possibles charger une topologie deacutefinir une nouvelle topologie geacuterer les configurations mateacuterielles et veacuterifier la configuration mateacuterielle actuelle

1 Charger une topologie

Ce champ permet de charger une topologie deacutefinie preacutealablement agrave partir dun fichier RDF Ces fichiers sont creacuteeacutes soit agrave partir de linterface soit agrave la main en respectant leur syntaxe Celle-ci est deacutetailleacutee dans la partie Deacuteploiement des topologies

17

2 Deacutefinir une nouvelle topologie

Ce lien conduit agrave linterface qui va guider pas agrave pas la creacuteation dune topologie classique cest agrave dire constitueacutee de points daccegraves relieacutes agrave un cœur surdimensionneacute

Agrave chaque eacutetape les choix offerts agrave lutilisateur sont calculeacutes agrave partir des informations quil a deacutejagrave saisies et des contraintes mateacuterielles

a Points daccegraves et Clients

Cette page deacutetermine le nombre de points daccegraves dans la topologie ainsi que le nombre de clients pour chacun deux Les limites sont deacuteduites de la configuration mateacuterielle utiliseacutee (voir 3 Gestion des configurations mateacuterielles)

18

b Deacutefinition des liens

Ici sont calculeacutees les caracteacuteristiques des liens

19

Les liens qui nous inteacuteressent ici sont ceux liant les points daccegraves aux routeurs de cœur

En effet les liens entre un point daccegraves et ses clients correspondent agrave un reacuteseau local donc sont neacutegligeables et les liens agrave linteacuterieur du cœur sont supposeacutes surdimensionneacutes

Les utilisateurs auxquels loutil est destineacute ne connaicirctront habituellement pas les caracteacuteristiques des liens Points daccegraves - Routeur de cœur Au lieu de ccedila ils disposent dinformations mesureacutees de bout en bout cest agrave dire dun point daccegraves agrave un autre Ils peuvent posseacuteder alors les caracteacuteristiques dun graphe complet soit n(n-1)2 valeurs pour n Points daccegraves

On se retrouve avec un systegraveme de n inconnues agrave n(n-1)2 eacutequations Si lutilisateur devait rentrer toutes ces valeurs on aurait un risque dincoheacuterence Cest pourquoi lutilisateur doit tout dabord choisir le point daccegraves le plus eacuteloigneacute du cœur (selon la meacutetrique la plus inteacuteressante) Puis il renseigne la latence les pertes et les duplications entre ce point daccegraves et chacun des autres (Soit n-1 valeurs) Puis il faut encore choisir un couple de point daccegraves (en excluant le premier) et donner les mecircmes renseignements

Les valeurs donneacutees pour les liens du premier point daccegraves entrainent un intervalle de coheacuterence pour le dernier lien qui est rappeleacute en temps reacuteel

(En effet si le lien de A vers B a une latence de 100ms et celui de A vers C 20ms le lien entre B et C doit forceacutement se trouver dans lintervalle 80-120ms

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 9: Résumé - Claude Bernard University Lyon 1

9

neacutecessitent un flux reacutegulier (comme le streaming audio ou videacuteo)

c Pertes

Les pertes repreacutesentent les paquets eacutemis qui ne sont pas arriveacutes agrave destination

Cette meacutetrique est deacutefinie par la RFC 2680 [7] Les pertes peuvent ecirctre caracteacuteriseacutees par un pourcentage de paquets

perdus ou par un profil de perte Dans ce dernier cas seul un profil particulier (Loi de Poisson) a eacuteteacute

formellement deacutefini (dans la mecircme RFC) mais lInternet Society encourage des deacuteveloppeurs agrave utiliser eacutegalement dautres profils

Le logiciel qui sera utiliseacute pour leacutemulateur durant le stage (NIST Net) ne permet pas dimpleacutementer le profil de Poisson En revanche il propose deux autres profils correacutelation (cest agrave dire une valeur moyenne associeacutee agrave un coefficient de correacutelation) et DRD (Derivative Random Drop) [8]

d Duplications

Les duplications repreacutesentent les paquets qui arrivent plusieurs fois agrave destination

On peut les mesurer en pourcentage ou suivant un profil NIST Net permet dutiliser un profil de correacutelation

Un diagramme repreacutesentant la totaliteacute des proprieacuteteacutes deacutefinies est donneacute en Annexe [1]

II Outils

La premiegravere ideacutee envisageacutee peut ecirctre dutiliser un simulateur comme NS ou OpenNet Mais de part leur nature ces programmes ne permettent pas des mesures expeacuterimentales reacuteelles

Plusieurs outils complets deacutemulations existent deacutejagrave (comme Emulab [9] X-bone [10] ou ModelNet [11]) mais ils neacutetaient pas adapteacutes aux objectifs dEWAN notamment en ce qui concerne le haut deacutebit

Dautres outils se concentrent sur certains aspects preacutecis de leacutemulation (notamment pour les liens) EWAN na pas la preacutetention de reacutecrire ces briques fondamentales elles lui serviront de bases et son rocircle sera de les parameacutetrer

10

correctement

1 NIST Net

NIST Net [12] est un logiciel (sous licence libre baseacutee sur la GPL) deacuteveloppeacute par le NIST (National Institute of Standards and Technology) Il se preacutesente sous la forme dun module du noyau linux

Son but est deacutemuler un lien On souhaite recevoir des paquets par une interface et les transmettre en sortie sur une autre selon certaines conditions correspondant aux caracteacuteristiques du lien

NIST Net se place juste avant les fonction IP du noyau Il va reacutecupeacuterer les paquets reccedilus les stocker dans des files dattente et les libeacuterer selon les paramegravetres preacuteciseacutes lors de sa configuration

NIST Net peut ainsi eacutemuler des latences (y compris des gigues) des pertes (par simple pourcentage ou selon deux profils correacutelation ou DRD) des duplications (par pourcentage ou selon le profil correacutelation) et le deacutebit

Le profil DRD (Derivative Random Drop) correspond agrave une probabiliteacute de pertes qui croit lineacuteairement avec la taille de la queue apregraves un eacuteventuel seuil

Il existe un autre profil couramment utiliseacute RED (Random Early Detection) mais les concepteurs de NIST Net ont estimeacute que dans le cadre de leacutemulation de liens DRD eacutetait amplement suffisant En effet RED (deacutefini dans la RFC 2309) est un algorithme utiliseacute dans la gestion des queues des routeurs (pour deacuteterminer la faccedilon de jeter les paquets lorsque la queue est pleine)

Leacutemulation du deacutebit par NIST Net ne sera pas utiliseacutee car elle nest pas tregraves preacutecise et car nous disposons dun autre outil tregraves simple mieux adapteacute TC

NIST Net dispose dune interface graphique et dune autre en ligne de commande Vu que nous preacutevoyons de deacuteployer des configurations sur plusieurs machines dun cluster seule cette derniegravere sera utiliseacutee

11

NIST Net stocke les paquets en attente dans des tables dont les tailles sont donc conditionneacutees par la meacutemoire de la machine utiliseacutee Mais la facteur vraiment limitant selon diverses eacutetudes de performances est le CPU En effet NIST Net doit reacuteguliegraverement parcourir ces tables afin de stocker les paquets arrivant Ainsi plus la latence que lon souhaite eacutemuler est eacuteleveacutee plus les tables seront longues et plus le CPU devra ecirctre puissant

2 Dummynet

Dummynet [13] est un outil sous licence BSD pour les plateformes FreeBSD

Il permet eacutegalement deacutemuler des latences des effets de queues des limitations de deacutebits et des reacuteordonnancements de paquets en interceptant le trafic dans la pile protocolaire de la machine cliente

Les machines manipuleacutees durant le stage tourneront sous GNULinux aussi cest NIST Net qui sera utiliseacute au lieu de Dummynet

Un port de ce programme pour linux avait deacutebuteacute dans une eacutequipe de recherche parisienne mais suite agrave lengagement des travaux du LIP sur leacutemulation avec NIST Net ce deacuteveloppement fut arrecircteacute

12

3 TC

TC (Trafic Control) est une commande standard de GNULinux permettant notamment de limiter le deacutebit en sortie dune interface

Cest loutil qui sera utiliseacute pour eacutemuler le deacutebit dun lien Mais TC peut eacutegalement servir agrave deacutefinir des classes de service qui

pourront ecirctre utiles dans leacutemulation de Qualiteacute de Service

13

Reacutealisation

A Speacutecifications

EWAN signifie simplement Eacutemulateur de WAN (Wide Area Network Reacuteseaux informatiques de grande taille) et a comme objectif decirctre un eacutemulateur de topologies haut deacutebit longue distance

Cest agrave dire quEWAN doit configurer des machines lieacutees entre elles par du haut deacutebit (1Gbs) et eacutemulant des liens longue distance (donc en utilisant leacutemulateur de lien NIST-Net)

EWAN devait se deacutecomposer en briques

Une interface web geacuteneacutereacutee en PHP qui permettrait de deacutefinir intuitivement des topologies simples

Un algorithme daffectation des types de fonctionnaliteacutes aux machines de la grappe

Un algorithme de deacutetermination des IP et sous-reacuteseaux

Un algorithme de calcul de routage et de configuration des tables de routage

Une meacutethode de stockage des informations dans une base MySQL

Et un proceacutedeacute de deacuteploiement sur la grappe

Nous avons ensuite reacutealiseacute que PHP pouvait convenir pour toutes les briques aussi ce langage fut retenu pour EWAN

Linterface est preacutevue pour des expeacuterimentateurs qui ne sinteacuteressent pas au cœur du reacuteseau supposeacute surdimensionneacute et qui veulent reacutealiser simplement une topologie classique telle quils en rencontrent dans la reacutealiteacute sans avoir agrave se preacuteoccuper de sa structure interne (comme le routage)

B Architecture logique

EWAN doit donc permettre de simuler des topologies au niveau 3 de la couche OSI cest agrave dire des nœuds relieacutes par des liens avec des meacutetriques agrave deacutefinir dans des sous reacuteseaux IP

La cas de figure le plus couramment eacutetudieacute est celui de clients derriegravere des

14

points daccegraves relieacutes par des liens (aux latences non neacutegligeables) agrave un cœur de reacuteseau surdimensionneacute

On peut alors mettre en eacutevidence certaines fonctionnaliteacutes qui devront ecirctre eacutemuleacutees

- eacutemulation de lien (latence pertes et duplications)

- eacutemulation de capaciteacute (limitation de deacutebit tocken bucket)

- routage virtuel

- geacuteneacuteration de trafic concurrent

- capture de trafic concurrent

Ces fonctionnaliteacutes seront reacuteparties selon 5 types eacutemuleacutes par les nœuds

- Client

- Point daccegraves

- Routeur de cœur

- Eacutemulateur de lien

- Geacuteneacuterateur de trafic

15

C Architecture physique

EWAN est constitueacute dune grappe de nœuds non neacutecessairement mateacuteriellement identiques (avec par exemple un nombre dinterfaces une capaciteacute meacutemoire ou CPU diffeacuterents) relieacutes par un ou plusieurs commutateurs (switchs) et dun serveur qui soccupera de configurer ces nœuds et sur lequel EWAN sexeacutecute

Ces machines appartiennent donc initialement au mecircme sous-reacuteseau et sont accessibles entre-elles au niveau 2 de la couche OSI (Ethernet)

Chaque nœud utiliseacute pour la topologie souhaiteacutee sera de lun des types preacutedeacutefinis et eacutemulera une fonctionnaliteacute

- La latence les pertes et les duplications sont assureacutees par les eacutemulateurs de liens (utilisant NIST Net)

- Les limitations de deacutebits sont mises en œuvre par les nœuds aux extreacutemiteacutes du lien agrave limiter

- Le routage virtuel est reacutealiseacute par les routeurs de cœur et les points daccegraves

- La geacuteneacuteration de trafic est la fonctionnaliteacute speacutecifique des geacuteneacuterateurs

- La capture du trafic concurrent est agrave la charge des routeurs (de cœur ou daccegraves)

Pour cela tous les nœuds de la grappe doivent posseacuteder les mecircmes logiciels suivants

- Debian GNULinux

- iproute

- au moins un geacuteneacuterateur de trafic (Iperf ou Mgen)

16

- un serveur SSH

- un kernel compileacute avec les options de routage avanceacutees (IP advanced router et IP policy routing) et CPU (devcpucpuid - CPU information support)

Par ailleurs toute la configuration de la grappe et son deacuteploiement sont geacutereacutes par un serveur web qui doit disposer de

- Apache

- PHP 4 ou PHP 5 avec les bibliothegraveques

- MySQL

- XML et DOM

- GD (avec PNG et FreeType)

- MySQL

- SSH

Le logiciel EWAN reacutealiseacute en PHP comporte deux principales parties une interface de creacuteation de topologies classiques et un moteur de deacuteploiement (qui accepte nimporte quelle topologie)

D Interface de creacuteation de topologie

En se connectant sur la page daccueil dEWAN 4 choix sont possibles charger une topologie deacutefinir une nouvelle topologie geacuterer les configurations mateacuterielles et veacuterifier la configuration mateacuterielle actuelle

1 Charger une topologie

Ce champ permet de charger une topologie deacutefinie preacutealablement agrave partir dun fichier RDF Ces fichiers sont creacuteeacutes soit agrave partir de linterface soit agrave la main en respectant leur syntaxe Celle-ci est deacutetailleacutee dans la partie Deacuteploiement des topologies

17

2 Deacutefinir une nouvelle topologie

Ce lien conduit agrave linterface qui va guider pas agrave pas la creacuteation dune topologie classique cest agrave dire constitueacutee de points daccegraves relieacutes agrave un cœur surdimensionneacute

Agrave chaque eacutetape les choix offerts agrave lutilisateur sont calculeacutes agrave partir des informations quil a deacutejagrave saisies et des contraintes mateacuterielles

a Points daccegraves et Clients

Cette page deacutetermine le nombre de points daccegraves dans la topologie ainsi que le nombre de clients pour chacun deux Les limites sont deacuteduites de la configuration mateacuterielle utiliseacutee (voir 3 Gestion des configurations mateacuterielles)

18

b Deacutefinition des liens

Ici sont calculeacutees les caracteacuteristiques des liens

19

Les liens qui nous inteacuteressent ici sont ceux liant les points daccegraves aux routeurs de cœur

En effet les liens entre un point daccegraves et ses clients correspondent agrave un reacuteseau local donc sont neacutegligeables et les liens agrave linteacuterieur du cœur sont supposeacutes surdimensionneacutes

Les utilisateurs auxquels loutil est destineacute ne connaicirctront habituellement pas les caracteacuteristiques des liens Points daccegraves - Routeur de cœur Au lieu de ccedila ils disposent dinformations mesureacutees de bout en bout cest agrave dire dun point daccegraves agrave un autre Ils peuvent posseacuteder alors les caracteacuteristiques dun graphe complet soit n(n-1)2 valeurs pour n Points daccegraves

On se retrouve avec un systegraveme de n inconnues agrave n(n-1)2 eacutequations Si lutilisateur devait rentrer toutes ces valeurs on aurait un risque dincoheacuterence Cest pourquoi lutilisateur doit tout dabord choisir le point daccegraves le plus eacuteloigneacute du cœur (selon la meacutetrique la plus inteacuteressante) Puis il renseigne la latence les pertes et les duplications entre ce point daccegraves et chacun des autres (Soit n-1 valeurs) Puis il faut encore choisir un couple de point daccegraves (en excluant le premier) et donner les mecircmes renseignements

Les valeurs donneacutees pour les liens du premier point daccegraves entrainent un intervalle de coheacuterence pour le dernier lien qui est rappeleacute en temps reacuteel

(En effet si le lien de A vers B a une latence de 100ms et celui de A vers C 20ms le lien entre B et C doit forceacutement se trouver dans lintervalle 80-120ms

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 10: Résumé - Claude Bernard University Lyon 1

10

correctement

1 NIST Net

NIST Net [12] est un logiciel (sous licence libre baseacutee sur la GPL) deacuteveloppeacute par le NIST (National Institute of Standards and Technology) Il se preacutesente sous la forme dun module du noyau linux

Son but est deacutemuler un lien On souhaite recevoir des paquets par une interface et les transmettre en sortie sur une autre selon certaines conditions correspondant aux caracteacuteristiques du lien

NIST Net se place juste avant les fonction IP du noyau Il va reacutecupeacuterer les paquets reccedilus les stocker dans des files dattente et les libeacuterer selon les paramegravetres preacuteciseacutes lors de sa configuration

NIST Net peut ainsi eacutemuler des latences (y compris des gigues) des pertes (par simple pourcentage ou selon deux profils correacutelation ou DRD) des duplications (par pourcentage ou selon le profil correacutelation) et le deacutebit

Le profil DRD (Derivative Random Drop) correspond agrave une probabiliteacute de pertes qui croit lineacuteairement avec la taille de la queue apregraves un eacuteventuel seuil

Il existe un autre profil couramment utiliseacute RED (Random Early Detection) mais les concepteurs de NIST Net ont estimeacute que dans le cadre de leacutemulation de liens DRD eacutetait amplement suffisant En effet RED (deacutefini dans la RFC 2309) est un algorithme utiliseacute dans la gestion des queues des routeurs (pour deacuteterminer la faccedilon de jeter les paquets lorsque la queue est pleine)

Leacutemulation du deacutebit par NIST Net ne sera pas utiliseacutee car elle nest pas tregraves preacutecise et car nous disposons dun autre outil tregraves simple mieux adapteacute TC

NIST Net dispose dune interface graphique et dune autre en ligne de commande Vu que nous preacutevoyons de deacuteployer des configurations sur plusieurs machines dun cluster seule cette derniegravere sera utiliseacutee

11

NIST Net stocke les paquets en attente dans des tables dont les tailles sont donc conditionneacutees par la meacutemoire de la machine utiliseacutee Mais la facteur vraiment limitant selon diverses eacutetudes de performances est le CPU En effet NIST Net doit reacuteguliegraverement parcourir ces tables afin de stocker les paquets arrivant Ainsi plus la latence que lon souhaite eacutemuler est eacuteleveacutee plus les tables seront longues et plus le CPU devra ecirctre puissant

2 Dummynet

Dummynet [13] est un outil sous licence BSD pour les plateformes FreeBSD

Il permet eacutegalement deacutemuler des latences des effets de queues des limitations de deacutebits et des reacuteordonnancements de paquets en interceptant le trafic dans la pile protocolaire de la machine cliente

Les machines manipuleacutees durant le stage tourneront sous GNULinux aussi cest NIST Net qui sera utiliseacute au lieu de Dummynet

Un port de ce programme pour linux avait deacutebuteacute dans une eacutequipe de recherche parisienne mais suite agrave lengagement des travaux du LIP sur leacutemulation avec NIST Net ce deacuteveloppement fut arrecircteacute

12

3 TC

TC (Trafic Control) est une commande standard de GNULinux permettant notamment de limiter le deacutebit en sortie dune interface

Cest loutil qui sera utiliseacute pour eacutemuler le deacutebit dun lien Mais TC peut eacutegalement servir agrave deacutefinir des classes de service qui

pourront ecirctre utiles dans leacutemulation de Qualiteacute de Service

13

Reacutealisation

A Speacutecifications

EWAN signifie simplement Eacutemulateur de WAN (Wide Area Network Reacuteseaux informatiques de grande taille) et a comme objectif decirctre un eacutemulateur de topologies haut deacutebit longue distance

Cest agrave dire quEWAN doit configurer des machines lieacutees entre elles par du haut deacutebit (1Gbs) et eacutemulant des liens longue distance (donc en utilisant leacutemulateur de lien NIST-Net)

EWAN devait se deacutecomposer en briques

Une interface web geacuteneacutereacutee en PHP qui permettrait de deacutefinir intuitivement des topologies simples

Un algorithme daffectation des types de fonctionnaliteacutes aux machines de la grappe

Un algorithme de deacutetermination des IP et sous-reacuteseaux

Un algorithme de calcul de routage et de configuration des tables de routage

Une meacutethode de stockage des informations dans une base MySQL

Et un proceacutedeacute de deacuteploiement sur la grappe

Nous avons ensuite reacutealiseacute que PHP pouvait convenir pour toutes les briques aussi ce langage fut retenu pour EWAN

Linterface est preacutevue pour des expeacuterimentateurs qui ne sinteacuteressent pas au cœur du reacuteseau supposeacute surdimensionneacute et qui veulent reacutealiser simplement une topologie classique telle quils en rencontrent dans la reacutealiteacute sans avoir agrave se preacuteoccuper de sa structure interne (comme le routage)

B Architecture logique

EWAN doit donc permettre de simuler des topologies au niveau 3 de la couche OSI cest agrave dire des nœuds relieacutes par des liens avec des meacutetriques agrave deacutefinir dans des sous reacuteseaux IP

La cas de figure le plus couramment eacutetudieacute est celui de clients derriegravere des

14

points daccegraves relieacutes par des liens (aux latences non neacutegligeables) agrave un cœur de reacuteseau surdimensionneacute

On peut alors mettre en eacutevidence certaines fonctionnaliteacutes qui devront ecirctre eacutemuleacutees

- eacutemulation de lien (latence pertes et duplications)

- eacutemulation de capaciteacute (limitation de deacutebit tocken bucket)

- routage virtuel

- geacuteneacuteration de trafic concurrent

- capture de trafic concurrent

Ces fonctionnaliteacutes seront reacuteparties selon 5 types eacutemuleacutes par les nœuds

- Client

- Point daccegraves

- Routeur de cœur

- Eacutemulateur de lien

- Geacuteneacuterateur de trafic

15

C Architecture physique

EWAN est constitueacute dune grappe de nœuds non neacutecessairement mateacuteriellement identiques (avec par exemple un nombre dinterfaces une capaciteacute meacutemoire ou CPU diffeacuterents) relieacutes par un ou plusieurs commutateurs (switchs) et dun serveur qui soccupera de configurer ces nœuds et sur lequel EWAN sexeacutecute

Ces machines appartiennent donc initialement au mecircme sous-reacuteseau et sont accessibles entre-elles au niveau 2 de la couche OSI (Ethernet)

Chaque nœud utiliseacute pour la topologie souhaiteacutee sera de lun des types preacutedeacutefinis et eacutemulera une fonctionnaliteacute

- La latence les pertes et les duplications sont assureacutees par les eacutemulateurs de liens (utilisant NIST Net)

- Les limitations de deacutebits sont mises en œuvre par les nœuds aux extreacutemiteacutes du lien agrave limiter

- Le routage virtuel est reacutealiseacute par les routeurs de cœur et les points daccegraves

- La geacuteneacuteration de trafic est la fonctionnaliteacute speacutecifique des geacuteneacuterateurs

- La capture du trafic concurrent est agrave la charge des routeurs (de cœur ou daccegraves)

Pour cela tous les nœuds de la grappe doivent posseacuteder les mecircmes logiciels suivants

- Debian GNULinux

- iproute

- au moins un geacuteneacuterateur de trafic (Iperf ou Mgen)

16

- un serveur SSH

- un kernel compileacute avec les options de routage avanceacutees (IP advanced router et IP policy routing) et CPU (devcpucpuid - CPU information support)

Par ailleurs toute la configuration de la grappe et son deacuteploiement sont geacutereacutes par un serveur web qui doit disposer de

- Apache

- PHP 4 ou PHP 5 avec les bibliothegraveques

- MySQL

- XML et DOM

- GD (avec PNG et FreeType)

- MySQL

- SSH

Le logiciel EWAN reacutealiseacute en PHP comporte deux principales parties une interface de creacuteation de topologies classiques et un moteur de deacuteploiement (qui accepte nimporte quelle topologie)

D Interface de creacuteation de topologie

En se connectant sur la page daccueil dEWAN 4 choix sont possibles charger une topologie deacutefinir une nouvelle topologie geacuterer les configurations mateacuterielles et veacuterifier la configuration mateacuterielle actuelle

1 Charger une topologie

Ce champ permet de charger une topologie deacutefinie preacutealablement agrave partir dun fichier RDF Ces fichiers sont creacuteeacutes soit agrave partir de linterface soit agrave la main en respectant leur syntaxe Celle-ci est deacutetailleacutee dans la partie Deacuteploiement des topologies

17

2 Deacutefinir une nouvelle topologie

Ce lien conduit agrave linterface qui va guider pas agrave pas la creacuteation dune topologie classique cest agrave dire constitueacutee de points daccegraves relieacutes agrave un cœur surdimensionneacute

Agrave chaque eacutetape les choix offerts agrave lutilisateur sont calculeacutes agrave partir des informations quil a deacutejagrave saisies et des contraintes mateacuterielles

a Points daccegraves et Clients

Cette page deacutetermine le nombre de points daccegraves dans la topologie ainsi que le nombre de clients pour chacun deux Les limites sont deacuteduites de la configuration mateacuterielle utiliseacutee (voir 3 Gestion des configurations mateacuterielles)

18

b Deacutefinition des liens

Ici sont calculeacutees les caracteacuteristiques des liens

19

Les liens qui nous inteacuteressent ici sont ceux liant les points daccegraves aux routeurs de cœur

En effet les liens entre un point daccegraves et ses clients correspondent agrave un reacuteseau local donc sont neacutegligeables et les liens agrave linteacuterieur du cœur sont supposeacutes surdimensionneacutes

Les utilisateurs auxquels loutil est destineacute ne connaicirctront habituellement pas les caracteacuteristiques des liens Points daccegraves - Routeur de cœur Au lieu de ccedila ils disposent dinformations mesureacutees de bout en bout cest agrave dire dun point daccegraves agrave un autre Ils peuvent posseacuteder alors les caracteacuteristiques dun graphe complet soit n(n-1)2 valeurs pour n Points daccegraves

On se retrouve avec un systegraveme de n inconnues agrave n(n-1)2 eacutequations Si lutilisateur devait rentrer toutes ces valeurs on aurait un risque dincoheacuterence Cest pourquoi lutilisateur doit tout dabord choisir le point daccegraves le plus eacuteloigneacute du cœur (selon la meacutetrique la plus inteacuteressante) Puis il renseigne la latence les pertes et les duplications entre ce point daccegraves et chacun des autres (Soit n-1 valeurs) Puis il faut encore choisir un couple de point daccegraves (en excluant le premier) et donner les mecircmes renseignements

Les valeurs donneacutees pour les liens du premier point daccegraves entrainent un intervalle de coheacuterence pour le dernier lien qui est rappeleacute en temps reacuteel

(En effet si le lien de A vers B a une latence de 100ms et celui de A vers C 20ms le lien entre B et C doit forceacutement se trouver dans lintervalle 80-120ms

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 11: Résumé - Claude Bernard University Lyon 1

11

NIST Net stocke les paquets en attente dans des tables dont les tailles sont donc conditionneacutees par la meacutemoire de la machine utiliseacutee Mais la facteur vraiment limitant selon diverses eacutetudes de performances est le CPU En effet NIST Net doit reacuteguliegraverement parcourir ces tables afin de stocker les paquets arrivant Ainsi plus la latence que lon souhaite eacutemuler est eacuteleveacutee plus les tables seront longues et plus le CPU devra ecirctre puissant

2 Dummynet

Dummynet [13] est un outil sous licence BSD pour les plateformes FreeBSD

Il permet eacutegalement deacutemuler des latences des effets de queues des limitations de deacutebits et des reacuteordonnancements de paquets en interceptant le trafic dans la pile protocolaire de la machine cliente

Les machines manipuleacutees durant le stage tourneront sous GNULinux aussi cest NIST Net qui sera utiliseacute au lieu de Dummynet

Un port de ce programme pour linux avait deacutebuteacute dans une eacutequipe de recherche parisienne mais suite agrave lengagement des travaux du LIP sur leacutemulation avec NIST Net ce deacuteveloppement fut arrecircteacute

12

3 TC

TC (Trafic Control) est une commande standard de GNULinux permettant notamment de limiter le deacutebit en sortie dune interface

Cest loutil qui sera utiliseacute pour eacutemuler le deacutebit dun lien Mais TC peut eacutegalement servir agrave deacutefinir des classes de service qui

pourront ecirctre utiles dans leacutemulation de Qualiteacute de Service

13

Reacutealisation

A Speacutecifications

EWAN signifie simplement Eacutemulateur de WAN (Wide Area Network Reacuteseaux informatiques de grande taille) et a comme objectif decirctre un eacutemulateur de topologies haut deacutebit longue distance

Cest agrave dire quEWAN doit configurer des machines lieacutees entre elles par du haut deacutebit (1Gbs) et eacutemulant des liens longue distance (donc en utilisant leacutemulateur de lien NIST-Net)

EWAN devait se deacutecomposer en briques

Une interface web geacuteneacutereacutee en PHP qui permettrait de deacutefinir intuitivement des topologies simples

Un algorithme daffectation des types de fonctionnaliteacutes aux machines de la grappe

Un algorithme de deacutetermination des IP et sous-reacuteseaux

Un algorithme de calcul de routage et de configuration des tables de routage

Une meacutethode de stockage des informations dans une base MySQL

Et un proceacutedeacute de deacuteploiement sur la grappe

Nous avons ensuite reacutealiseacute que PHP pouvait convenir pour toutes les briques aussi ce langage fut retenu pour EWAN

Linterface est preacutevue pour des expeacuterimentateurs qui ne sinteacuteressent pas au cœur du reacuteseau supposeacute surdimensionneacute et qui veulent reacutealiser simplement une topologie classique telle quils en rencontrent dans la reacutealiteacute sans avoir agrave se preacuteoccuper de sa structure interne (comme le routage)

B Architecture logique

EWAN doit donc permettre de simuler des topologies au niveau 3 de la couche OSI cest agrave dire des nœuds relieacutes par des liens avec des meacutetriques agrave deacutefinir dans des sous reacuteseaux IP

La cas de figure le plus couramment eacutetudieacute est celui de clients derriegravere des

14

points daccegraves relieacutes par des liens (aux latences non neacutegligeables) agrave un cœur de reacuteseau surdimensionneacute

On peut alors mettre en eacutevidence certaines fonctionnaliteacutes qui devront ecirctre eacutemuleacutees

- eacutemulation de lien (latence pertes et duplications)

- eacutemulation de capaciteacute (limitation de deacutebit tocken bucket)

- routage virtuel

- geacuteneacuteration de trafic concurrent

- capture de trafic concurrent

Ces fonctionnaliteacutes seront reacuteparties selon 5 types eacutemuleacutes par les nœuds

- Client

- Point daccegraves

- Routeur de cœur

- Eacutemulateur de lien

- Geacuteneacuterateur de trafic

15

C Architecture physique

EWAN est constitueacute dune grappe de nœuds non neacutecessairement mateacuteriellement identiques (avec par exemple un nombre dinterfaces une capaciteacute meacutemoire ou CPU diffeacuterents) relieacutes par un ou plusieurs commutateurs (switchs) et dun serveur qui soccupera de configurer ces nœuds et sur lequel EWAN sexeacutecute

Ces machines appartiennent donc initialement au mecircme sous-reacuteseau et sont accessibles entre-elles au niveau 2 de la couche OSI (Ethernet)

Chaque nœud utiliseacute pour la topologie souhaiteacutee sera de lun des types preacutedeacutefinis et eacutemulera une fonctionnaliteacute

- La latence les pertes et les duplications sont assureacutees par les eacutemulateurs de liens (utilisant NIST Net)

- Les limitations de deacutebits sont mises en œuvre par les nœuds aux extreacutemiteacutes du lien agrave limiter

- Le routage virtuel est reacutealiseacute par les routeurs de cœur et les points daccegraves

- La geacuteneacuteration de trafic est la fonctionnaliteacute speacutecifique des geacuteneacuterateurs

- La capture du trafic concurrent est agrave la charge des routeurs (de cœur ou daccegraves)

Pour cela tous les nœuds de la grappe doivent posseacuteder les mecircmes logiciels suivants

- Debian GNULinux

- iproute

- au moins un geacuteneacuterateur de trafic (Iperf ou Mgen)

16

- un serveur SSH

- un kernel compileacute avec les options de routage avanceacutees (IP advanced router et IP policy routing) et CPU (devcpucpuid - CPU information support)

Par ailleurs toute la configuration de la grappe et son deacuteploiement sont geacutereacutes par un serveur web qui doit disposer de

- Apache

- PHP 4 ou PHP 5 avec les bibliothegraveques

- MySQL

- XML et DOM

- GD (avec PNG et FreeType)

- MySQL

- SSH

Le logiciel EWAN reacutealiseacute en PHP comporte deux principales parties une interface de creacuteation de topologies classiques et un moteur de deacuteploiement (qui accepte nimporte quelle topologie)

D Interface de creacuteation de topologie

En se connectant sur la page daccueil dEWAN 4 choix sont possibles charger une topologie deacutefinir une nouvelle topologie geacuterer les configurations mateacuterielles et veacuterifier la configuration mateacuterielle actuelle

1 Charger une topologie

Ce champ permet de charger une topologie deacutefinie preacutealablement agrave partir dun fichier RDF Ces fichiers sont creacuteeacutes soit agrave partir de linterface soit agrave la main en respectant leur syntaxe Celle-ci est deacutetailleacutee dans la partie Deacuteploiement des topologies

17

2 Deacutefinir une nouvelle topologie

Ce lien conduit agrave linterface qui va guider pas agrave pas la creacuteation dune topologie classique cest agrave dire constitueacutee de points daccegraves relieacutes agrave un cœur surdimensionneacute

Agrave chaque eacutetape les choix offerts agrave lutilisateur sont calculeacutes agrave partir des informations quil a deacutejagrave saisies et des contraintes mateacuterielles

a Points daccegraves et Clients

Cette page deacutetermine le nombre de points daccegraves dans la topologie ainsi que le nombre de clients pour chacun deux Les limites sont deacuteduites de la configuration mateacuterielle utiliseacutee (voir 3 Gestion des configurations mateacuterielles)

18

b Deacutefinition des liens

Ici sont calculeacutees les caracteacuteristiques des liens

19

Les liens qui nous inteacuteressent ici sont ceux liant les points daccegraves aux routeurs de cœur

En effet les liens entre un point daccegraves et ses clients correspondent agrave un reacuteseau local donc sont neacutegligeables et les liens agrave linteacuterieur du cœur sont supposeacutes surdimensionneacutes

Les utilisateurs auxquels loutil est destineacute ne connaicirctront habituellement pas les caracteacuteristiques des liens Points daccegraves - Routeur de cœur Au lieu de ccedila ils disposent dinformations mesureacutees de bout en bout cest agrave dire dun point daccegraves agrave un autre Ils peuvent posseacuteder alors les caracteacuteristiques dun graphe complet soit n(n-1)2 valeurs pour n Points daccegraves

On se retrouve avec un systegraveme de n inconnues agrave n(n-1)2 eacutequations Si lutilisateur devait rentrer toutes ces valeurs on aurait un risque dincoheacuterence Cest pourquoi lutilisateur doit tout dabord choisir le point daccegraves le plus eacuteloigneacute du cœur (selon la meacutetrique la plus inteacuteressante) Puis il renseigne la latence les pertes et les duplications entre ce point daccegraves et chacun des autres (Soit n-1 valeurs) Puis il faut encore choisir un couple de point daccegraves (en excluant le premier) et donner les mecircmes renseignements

Les valeurs donneacutees pour les liens du premier point daccegraves entrainent un intervalle de coheacuterence pour le dernier lien qui est rappeleacute en temps reacuteel

(En effet si le lien de A vers B a une latence de 100ms et celui de A vers C 20ms le lien entre B et C doit forceacutement se trouver dans lintervalle 80-120ms

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 12: Résumé - Claude Bernard University Lyon 1

12

3 TC

TC (Trafic Control) est une commande standard de GNULinux permettant notamment de limiter le deacutebit en sortie dune interface

Cest loutil qui sera utiliseacute pour eacutemuler le deacutebit dun lien Mais TC peut eacutegalement servir agrave deacutefinir des classes de service qui

pourront ecirctre utiles dans leacutemulation de Qualiteacute de Service

13

Reacutealisation

A Speacutecifications

EWAN signifie simplement Eacutemulateur de WAN (Wide Area Network Reacuteseaux informatiques de grande taille) et a comme objectif decirctre un eacutemulateur de topologies haut deacutebit longue distance

Cest agrave dire quEWAN doit configurer des machines lieacutees entre elles par du haut deacutebit (1Gbs) et eacutemulant des liens longue distance (donc en utilisant leacutemulateur de lien NIST-Net)

EWAN devait se deacutecomposer en briques

Une interface web geacuteneacutereacutee en PHP qui permettrait de deacutefinir intuitivement des topologies simples

Un algorithme daffectation des types de fonctionnaliteacutes aux machines de la grappe

Un algorithme de deacutetermination des IP et sous-reacuteseaux

Un algorithme de calcul de routage et de configuration des tables de routage

Une meacutethode de stockage des informations dans une base MySQL

Et un proceacutedeacute de deacuteploiement sur la grappe

Nous avons ensuite reacutealiseacute que PHP pouvait convenir pour toutes les briques aussi ce langage fut retenu pour EWAN

Linterface est preacutevue pour des expeacuterimentateurs qui ne sinteacuteressent pas au cœur du reacuteseau supposeacute surdimensionneacute et qui veulent reacutealiser simplement une topologie classique telle quils en rencontrent dans la reacutealiteacute sans avoir agrave se preacuteoccuper de sa structure interne (comme le routage)

B Architecture logique

EWAN doit donc permettre de simuler des topologies au niveau 3 de la couche OSI cest agrave dire des nœuds relieacutes par des liens avec des meacutetriques agrave deacutefinir dans des sous reacuteseaux IP

La cas de figure le plus couramment eacutetudieacute est celui de clients derriegravere des

14

points daccegraves relieacutes par des liens (aux latences non neacutegligeables) agrave un cœur de reacuteseau surdimensionneacute

On peut alors mettre en eacutevidence certaines fonctionnaliteacutes qui devront ecirctre eacutemuleacutees

- eacutemulation de lien (latence pertes et duplications)

- eacutemulation de capaciteacute (limitation de deacutebit tocken bucket)

- routage virtuel

- geacuteneacuteration de trafic concurrent

- capture de trafic concurrent

Ces fonctionnaliteacutes seront reacuteparties selon 5 types eacutemuleacutes par les nœuds

- Client

- Point daccegraves

- Routeur de cœur

- Eacutemulateur de lien

- Geacuteneacuterateur de trafic

15

C Architecture physique

EWAN est constitueacute dune grappe de nœuds non neacutecessairement mateacuteriellement identiques (avec par exemple un nombre dinterfaces une capaciteacute meacutemoire ou CPU diffeacuterents) relieacutes par un ou plusieurs commutateurs (switchs) et dun serveur qui soccupera de configurer ces nœuds et sur lequel EWAN sexeacutecute

Ces machines appartiennent donc initialement au mecircme sous-reacuteseau et sont accessibles entre-elles au niveau 2 de la couche OSI (Ethernet)

Chaque nœud utiliseacute pour la topologie souhaiteacutee sera de lun des types preacutedeacutefinis et eacutemulera une fonctionnaliteacute

- La latence les pertes et les duplications sont assureacutees par les eacutemulateurs de liens (utilisant NIST Net)

- Les limitations de deacutebits sont mises en œuvre par les nœuds aux extreacutemiteacutes du lien agrave limiter

- Le routage virtuel est reacutealiseacute par les routeurs de cœur et les points daccegraves

- La geacuteneacuteration de trafic est la fonctionnaliteacute speacutecifique des geacuteneacuterateurs

- La capture du trafic concurrent est agrave la charge des routeurs (de cœur ou daccegraves)

Pour cela tous les nœuds de la grappe doivent posseacuteder les mecircmes logiciels suivants

- Debian GNULinux

- iproute

- au moins un geacuteneacuterateur de trafic (Iperf ou Mgen)

16

- un serveur SSH

- un kernel compileacute avec les options de routage avanceacutees (IP advanced router et IP policy routing) et CPU (devcpucpuid - CPU information support)

Par ailleurs toute la configuration de la grappe et son deacuteploiement sont geacutereacutes par un serveur web qui doit disposer de

- Apache

- PHP 4 ou PHP 5 avec les bibliothegraveques

- MySQL

- XML et DOM

- GD (avec PNG et FreeType)

- MySQL

- SSH

Le logiciel EWAN reacutealiseacute en PHP comporte deux principales parties une interface de creacuteation de topologies classiques et un moteur de deacuteploiement (qui accepte nimporte quelle topologie)

D Interface de creacuteation de topologie

En se connectant sur la page daccueil dEWAN 4 choix sont possibles charger une topologie deacutefinir une nouvelle topologie geacuterer les configurations mateacuterielles et veacuterifier la configuration mateacuterielle actuelle

1 Charger une topologie

Ce champ permet de charger une topologie deacutefinie preacutealablement agrave partir dun fichier RDF Ces fichiers sont creacuteeacutes soit agrave partir de linterface soit agrave la main en respectant leur syntaxe Celle-ci est deacutetailleacutee dans la partie Deacuteploiement des topologies

17

2 Deacutefinir une nouvelle topologie

Ce lien conduit agrave linterface qui va guider pas agrave pas la creacuteation dune topologie classique cest agrave dire constitueacutee de points daccegraves relieacutes agrave un cœur surdimensionneacute

Agrave chaque eacutetape les choix offerts agrave lutilisateur sont calculeacutes agrave partir des informations quil a deacutejagrave saisies et des contraintes mateacuterielles

a Points daccegraves et Clients

Cette page deacutetermine le nombre de points daccegraves dans la topologie ainsi que le nombre de clients pour chacun deux Les limites sont deacuteduites de la configuration mateacuterielle utiliseacutee (voir 3 Gestion des configurations mateacuterielles)

18

b Deacutefinition des liens

Ici sont calculeacutees les caracteacuteristiques des liens

19

Les liens qui nous inteacuteressent ici sont ceux liant les points daccegraves aux routeurs de cœur

En effet les liens entre un point daccegraves et ses clients correspondent agrave un reacuteseau local donc sont neacutegligeables et les liens agrave linteacuterieur du cœur sont supposeacutes surdimensionneacutes

Les utilisateurs auxquels loutil est destineacute ne connaicirctront habituellement pas les caracteacuteristiques des liens Points daccegraves - Routeur de cœur Au lieu de ccedila ils disposent dinformations mesureacutees de bout en bout cest agrave dire dun point daccegraves agrave un autre Ils peuvent posseacuteder alors les caracteacuteristiques dun graphe complet soit n(n-1)2 valeurs pour n Points daccegraves

On se retrouve avec un systegraveme de n inconnues agrave n(n-1)2 eacutequations Si lutilisateur devait rentrer toutes ces valeurs on aurait un risque dincoheacuterence Cest pourquoi lutilisateur doit tout dabord choisir le point daccegraves le plus eacuteloigneacute du cœur (selon la meacutetrique la plus inteacuteressante) Puis il renseigne la latence les pertes et les duplications entre ce point daccegraves et chacun des autres (Soit n-1 valeurs) Puis il faut encore choisir un couple de point daccegraves (en excluant le premier) et donner les mecircmes renseignements

Les valeurs donneacutees pour les liens du premier point daccegraves entrainent un intervalle de coheacuterence pour le dernier lien qui est rappeleacute en temps reacuteel

(En effet si le lien de A vers B a une latence de 100ms et celui de A vers C 20ms le lien entre B et C doit forceacutement se trouver dans lintervalle 80-120ms

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 13: Résumé - Claude Bernard University Lyon 1

13

Reacutealisation

A Speacutecifications

EWAN signifie simplement Eacutemulateur de WAN (Wide Area Network Reacuteseaux informatiques de grande taille) et a comme objectif decirctre un eacutemulateur de topologies haut deacutebit longue distance

Cest agrave dire quEWAN doit configurer des machines lieacutees entre elles par du haut deacutebit (1Gbs) et eacutemulant des liens longue distance (donc en utilisant leacutemulateur de lien NIST-Net)

EWAN devait se deacutecomposer en briques

Une interface web geacuteneacutereacutee en PHP qui permettrait de deacutefinir intuitivement des topologies simples

Un algorithme daffectation des types de fonctionnaliteacutes aux machines de la grappe

Un algorithme de deacutetermination des IP et sous-reacuteseaux

Un algorithme de calcul de routage et de configuration des tables de routage

Une meacutethode de stockage des informations dans une base MySQL

Et un proceacutedeacute de deacuteploiement sur la grappe

Nous avons ensuite reacutealiseacute que PHP pouvait convenir pour toutes les briques aussi ce langage fut retenu pour EWAN

Linterface est preacutevue pour des expeacuterimentateurs qui ne sinteacuteressent pas au cœur du reacuteseau supposeacute surdimensionneacute et qui veulent reacutealiser simplement une topologie classique telle quils en rencontrent dans la reacutealiteacute sans avoir agrave se preacuteoccuper de sa structure interne (comme le routage)

B Architecture logique

EWAN doit donc permettre de simuler des topologies au niveau 3 de la couche OSI cest agrave dire des nœuds relieacutes par des liens avec des meacutetriques agrave deacutefinir dans des sous reacuteseaux IP

La cas de figure le plus couramment eacutetudieacute est celui de clients derriegravere des

14

points daccegraves relieacutes par des liens (aux latences non neacutegligeables) agrave un cœur de reacuteseau surdimensionneacute

On peut alors mettre en eacutevidence certaines fonctionnaliteacutes qui devront ecirctre eacutemuleacutees

- eacutemulation de lien (latence pertes et duplications)

- eacutemulation de capaciteacute (limitation de deacutebit tocken bucket)

- routage virtuel

- geacuteneacuteration de trafic concurrent

- capture de trafic concurrent

Ces fonctionnaliteacutes seront reacuteparties selon 5 types eacutemuleacutes par les nœuds

- Client

- Point daccegraves

- Routeur de cœur

- Eacutemulateur de lien

- Geacuteneacuterateur de trafic

15

C Architecture physique

EWAN est constitueacute dune grappe de nœuds non neacutecessairement mateacuteriellement identiques (avec par exemple un nombre dinterfaces une capaciteacute meacutemoire ou CPU diffeacuterents) relieacutes par un ou plusieurs commutateurs (switchs) et dun serveur qui soccupera de configurer ces nœuds et sur lequel EWAN sexeacutecute

Ces machines appartiennent donc initialement au mecircme sous-reacuteseau et sont accessibles entre-elles au niveau 2 de la couche OSI (Ethernet)

Chaque nœud utiliseacute pour la topologie souhaiteacutee sera de lun des types preacutedeacutefinis et eacutemulera une fonctionnaliteacute

- La latence les pertes et les duplications sont assureacutees par les eacutemulateurs de liens (utilisant NIST Net)

- Les limitations de deacutebits sont mises en œuvre par les nœuds aux extreacutemiteacutes du lien agrave limiter

- Le routage virtuel est reacutealiseacute par les routeurs de cœur et les points daccegraves

- La geacuteneacuteration de trafic est la fonctionnaliteacute speacutecifique des geacuteneacuterateurs

- La capture du trafic concurrent est agrave la charge des routeurs (de cœur ou daccegraves)

Pour cela tous les nœuds de la grappe doivent posseacuteder les mecircmes logiciels suivants

- Debian GNULinux

- iproute

- au moins un geacuteneacuterateur de trafic (Iperf ou Mgen)

16

- un serveur SSH

- un kernel compileacute avec les options de routage avanceacutees (IP advanced router et IP policy routing) et CPU (devcpucpuid - CPU information support)

Par ailleurs toute la configuration de la grappe et son deacuteploiement sont geacutereacutes par un serveur web qui doit disposer de

- Apache

- PHP 4 ou PHP 5 avec les bibliothegraveques

- MySQL

- XML et DOM

- GD (avec PNG et FreeType)

- MySQL

- SSH

Le logiciel EWAN reacutealiseacute en PHP comporte deux principales parties une interface de creacuteation de topologies classiques et un moteur de deacuteploiement (qui accepte nimporte quelle topologie)

D Interface de creacuteation de topologie

En se connectant sur la page daccueil dEWAN 4 choix sont possibles charger une topologie deacutefinir une nouvelle topologie geacuterer les configurations mateacuterielles et veacuterifier la configuration mateacuterielle actuelle

1 Charger une topologie

Ce champ permet de charger une topologie deacutefinie preacutealablement agrave partir dun fichier RDF Ces fichiers sont creacuteeacutes soit agrave partir de linterface soit agrave la main en respectant leur syntaxe Celle-ci est deacutetailleacutee dans la partie Deacuteploiement des topologies

17

2 Deacutefinir une nouvelle topologie

Ce lien conduit agrave linterface qui va guider pas agrave pas la creacuteation dune topologie classique cest agrave dire constitueacutee de points daccegraves relieacutes agrave un cœur surdimensionneacute

Agrave chaque eacutetape les choix offerts agrave lutilisateur sont calculeacutes agrave partir des informations quil a deacutejagrave saisies et des contraintes mateacuterielles

a Points daccegraves et Clients

Cette page deacutetermine le nombre de points daccegraves dans la topologie ainsi que le nombre de clients pour chacun deux Les limites sont deacuteduites de la configuration mateacuterielle utiliseacutee (voir 3 Gestion des configurations mateacuterielles)

18

b Deacutefinition des liens

Ici sont calculeacutees les caracteacuteristiques des liens

19

Les liens qui nous inteacuteressent ici sont ceux liant les points daccegraves aux routeurs de cœur

En effet les liens entre un point daccegraves et ses clients correspondent agrave un reacuteseau local donc sont neacutegligeables et les liens agrave linteacuterieur du cœur sont supposeacutes surdimensionneacutes

Les utilisateurs auxquels loutil est destineacute ne connaicirctront habituellement pas les caracteacuteristiques des liens Points daccegraves - Routeur de cœur Au lieu de ccedila ils disposent dinformations mesureacutees de bout en bout cest agrave dire dun point daccegraves agrave un autre Ils peuvent posseacuteder alors les caracteacuteristiques dun graphe complet soit n(n-1)2 valeurs pour n Points daccegraves

On se retrouve avec un systegraveme de n inconnues agrave n(n-1)2 eacutequations Si lutilisateur devait rentrer toutes ces valeurs on aurait un risque dincoheacuterence Cest pourquoi lutilisateur doit tout dabord choisir le point daccegraves le plus eacuteloigneacute du cœur (selon la meacutetrique la plus inteacuteressante) Puis il renseigne la latence les pertes et les duplications entre ce point daccegraves et chacun des autres (Soit n-1 valeurs) Puis il faut encore choisir un couple de point daccegraves (en excluant le premier) et donner les mecircmes renseignements

Les valeurs donneacutees pour les liens du premier point daccegraves entrainent un intervalle de coheacuterence pour le dernier lien qui est rappeleacute en temps reacuteel

(En effet si le lien de A vers B a une latence de 100ms et celui de A vers C 20ms le lien entre B et C doit forceacutement se trouver dans lintervalle 80-120ms

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 14: Résumé - Claude Bernard University Lyon 1

14

points daccegraves relieacutes par des liens (aux latences non neacutegligeables) agrave un cœur de reacuteseau surdimensionneacute

On peut alors mettre en eacutevidence certaines fonctionnaliteacutes qui devront ecirctre eacutemuleacutees

- eacutemulation de lien (latence pertes et duplications)

- eacutemulation de capaciteacute (limitation de deacutebit tocken bucket)

- routage virtuel

- geacuteneacuteration de trafic concurrent

- capture de trafic concurrent

Ces fonctionnaliteacutes seront reacuteparties selon 5 types eacutemuleacutes par les nœuds

- Client

- Point daccegraves

- Routeur de cœur

- Eacutemulateur de lien

- Geacuteneacuterateur de trafic

15

C Architecture physique

EWAN est constitueacute dune grappe de nœuds non neacutecessairement mateacuteriellement identiques (avec par exemple un nombre dinterfaces une capaciteacute meacutemoire ou CPU diffeacuterents) relieacutes par un ou plusieurs commutateurs (switchs) et dun serveur qui soccupera de configurer ces nœuds et sur lequel EWAN sexeacutecute

Ces machines appartiennent donc initialement au mecircme sous-reacuteseau et sont accessibles entre-elles au niveau 2 de la couche OSI (Ethernet)

Chaque nœud utiliseacute pour la topologie souhaiteacutee sera de lun des types preacutedeacutefinis et eacutemulera une fonctionnaliteacute

- La latence les pertes et les duplications sont assureacutees par les eacutemulateurs de liens (utilisant NIST Net)

- Les limitations de deacutebits sont mises en œuvre par les nœuds aux extreacutemiteacutes du lien agrave limiter

- Le routage virtuel est reacutealiseacute par les routeurs de cœur et les points daccegraves

- La geacuteneacuteration de trafic est la fonctionnaliteacute speacutecifique des geacuteneacuterateurs

- La capture du trafic concurrent est agrave la charge des routeurs (de cœur ou daccegraves)

Pour cela tous les nœuds de la grappe doivent posseacuteder les mecircmes logiciels suivants

- Debian GNULinux

- iproute

- au moins un geacuteneacuterateur de trafic (Iperf ou Mgen)

16

- un serveur SSH

- un kernel compileacute avec les options de routage avanceacutees (IP advanced router et IP policy routing) et CPU (devcpucpuid - CPU information support)

Par ailleurs toute la configuration de la grappe et son deacuteploiement sont geacutereacutes par un serveur web qui doit disposer de

- Apache

- PHP 4 ou PHP 5 avec les bibliothegraveques

- MySQL

- XML et DOM

- GD (avec PNG et FreeType)

- MySQL

- SSH

Le logiciel EWAN reacutealiseacute en PHP comporte deux principales parties une interface de creacuteation de topologies classiques et un moteur de deacuteploiement (qui accepte nimporte quelle topologie)

D Interface de creacuteation de topologie

En se connectant sur la page daccueil dEWAN 4 choix sont possibles charger une topologie deacutefinir une nouvelle topologie geacuterer les configurations mateacuterielles et veacuterifier la configuration mateacuterielle actuelle

1 Charger une topologie

Ce champ permet de charger une topologie deacutefinie preacutealablement agrave partir dun fichier RDF Ces fichiers sont creacuteeacutes soit agrave partir de linterface soit agrave la main en respectant leur syntaxe Celle-ci est deacutetailleacutee dans la partie Deacuteploiement des topologies

17

2 Deacutefinir une nouvelle topologie

Ce lien conduit agrave linterface qui va guider pas agrave pas la creacuteation dune topologie classique cest agrave dire constitueacutee de points daccegraves relieacutes agrave un cœur surdimensionneacute

Agrave chaque eacutetape les choix offerts agrave lutilisateur sont calculeacutes agrave partir des informations quil a deacutejagrave saisies et des contraintes mateacuterielles

a Points daccegraves et Clients

Cette page deacutetermine le nombre de points daccegraves dans la topologie ainsi que le nombre de clients pour chacun deux Les limites sont deacuteduites de la configuration mateacuterielle utiliseacutee (voir 3 Gestion des configurations mateacuterielles)

18

b Deacutefinition des liens

Ici sont calculeacutees les caracteacuteristiques des liens

19

Les liens qui nous inteacuteressent ici sont ceux liant les points daccegraves aux routeurs de cœur

En effet les liens entre un point daccegraves et ses clients correspondent agrave un reacuteseau local donc sont neacutegligeables et les liens agrave linteacuterieur du cœur sont supposeacutes surdimensionneacutes

Les utilisateurs auxquels loutil est destineacute ne connaicirctront habituellement pas les caracteacuteristiques des liens Points daccegraves - Routeur de cœur Au lieu de ccedila ils disposent dinformations mesureacutees de bout en bout cest agrave dire dun point daccegraves agrave un autre Ils peuvent posseacuteder alors les caracteacuteristiques dun graphe complet soit n(n-1)2 valeurs pour n Points daccegraves

On se retrouve avec un systegraveme de n inconnues agrave n(n-1)2 eacutequations Si lutilisateur devait rentrer toutes ces valeurs on aurait un risque dincoheacuterence Cest pourquoi lutilisateur doit tout dabord choisir le point daccegraves le plus eacuteloigneacute du cœur (selon la meacutetrique la plus inteacuteressante) Puis il renseigne la latence les pertes et les duplications entre ce point daccegraves et chacun des autres (Soit n-1 valeurs) Puis il faut encore choisir un couple de point daccegraves (en excluant le premier) et donner les mecircmes renseignements

Les valeurs donneacutees pour les liens du premier point daccegraves entrainent un intervalle de coheacuterence pour le dernier lien qui est rappeleacute en temps reacuteel

(En effet si le lien de A vers B a une latence de 100ms et celui de A vers C 20ms le lien entre B et C doit forceacutement se trouver dans lintervalle 80-120ms

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 15: Résumé - Claude Bernard University Lyon 1

15

C Architecture physique

EWAN est constitueacute dune grappe de nœuds non neacutecessairement mateacuteriellement identiques (avec par exemple un nombre dinterfaces une capaciteacute meacutemoire ou CPU diffeacuterents) relieacutes par un ou plusieurs commutateurs (switchs) et dun serveur qui soccupera de configurer ces nœuds et sur lequel EWAN sexeacutecute

Ces machines appartiennent donc initialement au mecircme sous-reacuteseau et sont accessibles entre-elles au niveau 2 de la couche OSI (Ethernet)

Chaque nœud utiliseacute pour la topologie souhaiteacutee sera de lun des types preacutedeacutefinis et eacutemulera une fonctionnaliteacute

- La latence les pertes et les duplications sont assureacutees par les eacutemulateurs de liens (utilisant NIST Net)

- Les limitations de deacutebits sont mises en œuvre par les nœuds aux extreacutemiteacutes du lien agrave limiter

- Le routage virtuel est reacutealiseacute par les routeurs de cœur et les points daccegraves

- La geacuteneacuteration de trafic est la fonctionnaliteacute speacutecifique des geacuteneacuterateurs

- La capture du trafic concurrent est agrave la charge des routeurs (de cœur ou daccegraves)

Pour cela tous les nœuds de la grappe doivent posseacuteder les mecircmes logiciels suivants

- Debian GNULinux

- iproute

- au moins un geacuteneacuterateur de trafic (Iperf ou Mgen)

16

- un serveur SSH

- un kernel compileacute avec les options de routage avanceacutees (IP advanced router et IP policy routing) et CPU (devcpucpuid - CPU information support)

Par ailleurs toute la configuration de la grappe et son deacuteploiement sont geacutereacutes par un serveur web qui doit disposer de

- Apache

- PHP 4 ou PHP 5 avec les bibliothegraveques

- MySQL

- XML et DOM

- GD (avec PNG et FreeType)

- MySQL

- SSH

Le logiciel EWAN reacutealiseacute en PHP comporte deux principales parties une interface de creacuteation de topologies classiques et un moteur de deacuteploiement (qui accepte nimporte quelle topologie)

D Interface de creacuteation de topologie

En se connectant sur la page daccueil dEWAN 4 choix sont possibles charger une topologie deacutefinir une nouvelle topologie geacuterer les configurations mateacuterielles et veacuterifier la configuration mateacuterielle actuelle

1 Charger une topologie

Ce champ permet de charger une topologie deacutefinie preacutealablement agrave partir dun fichier RDF Ces fichiers sont creacuteeacutes soit agrave partir de linterface soit agrave la main en respectant leur syntaxe Celle-ci est deacutetailleacutee dans la partie Deacuteploiement des topologies

17

2 Deacutefinir une nouvelle topologie

Ce lien conduit agrave linterface qui va guider pas agrave pas la creacuteation dune topologie classique cest agrave dire constitueacutee de points daccegraves relieacutes agrave un cœur surdimensionneacute

Agrave chaque eacutetape les choix offerts agrave lutilisateur sont calculeacutes agrave partir des informations quil a deacutejagrave saisies et des contraintes mateacuterielles

a Points daccegraves et Clients

Cette page deacutetermine le nombre de points daccegraves dans la topologie ainsi que le nombre de clients pour chacun deux Les limites sont deacuteduites de la configuration mateacuterielle utiliseacutee (voir 3 Gestion des configurations mateacuterielles)

18

b Deacutefinition des liens

Ici sont calculeacutees les caracteacuteristiques des liens

19

Les liens qui nous inteacuteressent ici sont ceux liant les points daccegraves aux routeurs de cœur

En effet les liens entre un point daccegraves et ses clients correspondent agrave un reacuteseau local donc sont neacutegligeables et les liens agrave linteacuterieur du cœur sont supposeacutes surdimensionneacutes

Les utilisateurs auxquels loutil est destineacute ne connaicirctront habituellement pas les caracteacuteristiques des liens Points daccegraves - Routeur de cœur Au lieu de ccedila ils disposent dinformations mesureacutees de bout en bout cest agrave dire dun point daccegraves agrave un autre Ils peuvent posseacuteder alors les caracteacuteristiques dun graphe complet soit n(n-1)2 valeurs pour n Points daccegraves

On se retrouve avec un systegraveme de n inconnues agrave n(n-1)2 eacutequations Si lutilisateur devait rentrer toutes ces valeurs on aurait un risque dincoheacuterence Cest pourquoi lutilisateur doit tout dabord choisir le point daccegraves le plus eacuteloigneacute du cœur (selon la meacutetrique la plus inteacuteressante) Puis il renseigne la latence les pertes et les duplications entre ce point daccegraves et chacun des autres (Soit n-1 valeurs) Puis il faut encore choisir un couple de point daccegraves (en excluant le premier) et donner les mecircmes renseignements

Les valeurs donneacutees pour les liens du premier point daccegraves entrainent un intervalle de coheacuterence pour le dernier lien qui est rappeleacute en temps reacuteel

(En effet si le lien de A vers B a une latence de 100ms et celui de A vers C 20ms le lien entre B et C doit forceacutement se trouver dans lintervalle 80-120ms

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 16: Résumé - Claude Bernard University Lyon 1

16

- un serveur SSH

- un kernel compileacute avec les options de routage avanceacutees (IP advanced router et IP policy routing) et CPU (devcpucpuid - CPU information support)

Par ailleurs toute la configuration de la grappe et son deacuteploiement sont geacutereacutes par un serveur web qui doit disposer de

- Apache

- PHP 4 ou PHP 5 avec les bibliothegraveques

- MySQL

- XML et DOM

- GD (avec PNG et FreeType)

- MySQL

- SSH

Le logiciel EWAN reacutealiseacute en PHP comporte deux principales parties une interface de creacuteation de topologies classiques et un moteur de deacuteploiement (qui accepte nimporte quelle topologie)

D Interface de creacuteation de topologie

En se connectant sur la page daccueil dEWAN 4 choix sont possibles charger une topologie deacutefinir une nouvelle topologie geacuterer les configurations mateacuterielles et veacuterifier la configuration mateacuterielle actuelle

1 Charger une topologie

Ce champ permet de charger une topologie deacutefinie preacutealablement agrave partir dun fichier RDF Ces fichiers sont creacuteeacutes soit agrave partir de linterface soit agrave la main en respectant leur syntaxe Celle-ci est deacutetailleacutee dans la partie Deacuteploiement des topologies

17

2 Deacutefinir une nouvelle topologie

Ce lien conduit agrave linterface qui va guider pas agrave pas la creacuteation dune topologie classique cest agrave dire constitueacutee de points daccegraves relieacutes agrave un cœur surdimensionneacute

Agrave chaque eacutetape les choix offerts agrave lutilisateur sont calculeacutes agrave partir des informations quil a deacutejagrave saisies et des contraintes mateacuterielles

a Points daccegraves et Clients

Cette page deacutetermine le nombre de points daccegraves dans la topologie ainsi que le nombre de clients pour chacun deux Les limites sont deacuteduites de la configuration mateacuterielle utiliseacutee (voir 3 Gestion des configurations mateacuterielles)

18

b Deacutefinition des liens

Ici sont calculeacutees les caracteacuteristiques des liens

19

Les liens qui nous inteacuteressent ici sont ceux liant les points daccegraves aux routeurs de cœur

En effet les liens entre un point daccegraves et ses clients correspondent agrave un reacuteseau local donc sont neacutegligeables et les liens agrave linteacuterieur du cœur sont supposeacutes surdimensionneacutes

Les utilisateurs auxquels loutil est destineacute ne connaicirctront habituellement pas les caracteacuteristiques des liens Points daccegraves - Routeur de cœur Au lieu de ccedila ils disposent dinformations mesureacutees de bout en bout cest agrave dire dun point daccegraves agrave un autre Ils peuvent posseacuteder alors les caracteacuteristiques dun graphe complet soit n(n-1)2 valeurs pour n Points daccegraves

On se retrouve avec un systegraveme de n inconnues agrave n(n-1)2 eacutequations Si lutilisateur devait rentrer toutes ces valeurs on aurait un risque dincoheacuterence Cest pourquoi lutilisateur doit tout dabord choisir le point daccegraves le plus eacuteloigneacute du cœur (selon la meacutetrique la plus inteacuteressante) Puis il renseigne la latence les pertes et les duplications entre ce point daccegraves et chacun des autres (Soit n-1 valeurs) Puis il faut encore choisir un couple de point daccegraves (en excluant le premier) et donner les mecircmes renseignements

Les valeurs donneacutees pour les liens du premier point daccegraves entrainent un intervalle de coheacuterence pour le dernier lien qui est rappeleacute en temps reacuteel

(En effet si le lien de A vers B a une latence de 100ms et celui de A vers C 20ms le lien entre B et C doit forceacutement se trouver dans lintervalle 80-120ms

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 17: Résumé - Claude Bernard University Lyon 1

17

2 Deacutefinir une nouvelle topologie

Ce lien conduit agrave linterface qui va guider pas agrave pas la creacuteation dune topologie classique cest agrave dire constitueacutee de points daccegraves relieacutes agrave un cœur surdimensionneacute

Agrave chaque eacutetape les choix offerts agrave lutilisateur sont calculeacutes agrave partir des informations quil a deacutejagrave saisies et des contraintes mateacuterielles

a Points daccegraves et Clients

Cette page deacutetermine le nombre de points daccegraves dans la topologie ainsi que le nombre de clients pour chacun deux Les limites sont deacuteduites de la configuration mateacuterielle utiliseacutee (voir 3 Gestion des configurations mateacuterielles)

18

b Deacutefinition des liens

Ici sont calculeacutees les caracteacuteristiques des liens

19

Les liens qui nous inteacuteressent ici sont ceux liant les points daccegraves aux routeurs de cœur

En effet les liens entre un point daccegraves et ses clients correspondent agrave un reacuteseau local donc sont neacutegligeables et les liens agrave linteacuterieur du cœur sont supposeacutes surdimensionneacutes

Les utilisateurs auxquels loutil est destineacute ne connaicirctront habituellement pas les caracteacuteristiques des liens Points daccegraves - Routeur de cœur Au lieu de ccedila ils disposent dinformations mesureacutees de bout en bout cest agrave dire dun point daccegraves agrave un autre Ils peuvent posseacuteder alors les caracteacuteristiques dun graphe complet soit n(n-1)2 valeurs pour n Points daccegraves

On se retrouve avec un systegraveme de n inconnues agrave n(n-1)2 eacutequations Si lutilisateur devait rentrer toutes ces valeurs on aurait un risque dincoheacuterence Cest pourquoi lutilisateur doit tout dabord choisir le point daccegraves le plus eacuteloigneacute du cœur (selon la meacutetrique la plus inteacuteressante) Puis il renseigne la latence les pertes et les duplications entre ce point daccegraves et chacun des autres (Soit n-1 valeurs) Puis il faut encore choisir un couple de point daccegraves (en excluant le premier) et donner les mecircmes renseignements

Les valeurs donneacutees pour les liens du premier point daccegraves entrainent un intervalle de coheacuterence pour le dernier lien qui est rappeleacute en temps reacuteel

(En effet si le lien de A vers B a une latence de 100ms et celui de A vers C 20ms le lien entre B et C doit forceacutement se trouver dans lintervalle 80-120ms

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 18: Résumé - Claude Bernard University Lyon 1

18

b Deacutefinition des liens

Ici sont calculeacutees les caracteacuteristiques des liens

19

Les liens qui nous inteacuteressent ici sont ceux liant les points daccegraves aux routeurs de cœur

En effet les liens entre un point daccegraves et ses clients correspondent agrave un reacuteseau local donc sont neacutegligeables et les liens agrave linteacuterieur du cœur sont supposeacutes surdimensionneacutes

Les utilisateurs auxquels loutil est destineacute ne connaicirctront habituellement pas les caracteacuteristiques des liens Points daccegraves - Routeur de cœur Au lieu de ccedila ils disposent dinformations mesureacutees de bout en bout cest agrave dire dun point daccegraves agrave un autre Ils peuvent posseacuteder alors les caracteacuteristiques dun graphe complet soit n(n-1)2 valeurs pour n Points daccegraves

On se retrouve avec un systegraveme de n inconnues agrave n(n-1)2 eacutequations Si lutilisateur devait rentrer toutes ces valeurs on aurait un risque dincoheacuterence Cest pourquoi lutilisateur doit tout dabord choisir le point daccegraves le plus eacuteloigneacute du cœur (selon la meacutetrique la plus inteacuteressante) Puis il renseigne la latence les pertes et les duplications entre ce point daccegraves et chacun des autres (Soit n-1 valeurs) Puis il faut encore choisir un couple de point daccegraves (en excluant le premier) et donner les mecircmes renseignements

Les valeurs donneacutees pour les liens du premier point daccegraves entrainent un intervalle de coheacuterence pour le dernier lien qui est rappeleacute en temps reacuteel

(En effet si le lien de A vers B a une latence de 100ms et celui de A vers C 20ms le lien entre B et C doit forceacutement se trouver dans lintervalle 80-120ms

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 19: Résumé - Claude Bernard University Lyon 1

19

Les liens qui nous inteacuteressent ici sont ceux liant les points daccegraves aux routeurs de cœur

En effet les liens entre un point daccegraves et ses clients correspondent agrave un reacuteseau local donc sont neacutegligeables et les liens agrave linteacuterieur du cœur sont supposeacutes surdimensionneacutes

Les utilisateurs auxquels loutil est destineacute ne connaicirctront habituellement pas les caracteacuteristiques des liens Points daccegraves - Routeur de cœur Au lieu de ccedila ils disposent dinformations mesureacutees de bout en bout cest agrave dire dun point daccegraves agrave un autre Ils peuvent posseacuteder alors les caracteacuteristiques dun graphe complet soit n(n-1)2 valeurs pour n Points daccegraves

On se retrouve avec un systegraveme de n inconnues agrave n(n-1)2 eacutequations Si lutilisateur devait rentrer toutes ces valeurs on aurait un risque dincoheacuterence Cest pourquoi lutilisateur doit tout dabord choisir le point daccegraves le plus eacuteloigneacute du cœur (selon la meacutetrique la plus inteacuteressante) Puis il renseigne la latence les pertes et les duplications entre ce point daccegraves et chacun des autres (Soit n-1 valeurs) Puis il faut encore choisir un couple de point daccegraves (en excluant le premier) et donner les mecircmes renseignements

Les valeurs donneacutees pour les liens du premier point daccegraves entrainent un intervalle de coheacuterence pour le dernier lien qui est rappeleacute en temps reacuteel

(En effet si le lien de A vers B a une latence de 100ms et celui de A vers C 20ms le lien entre B et C doit forceacutement se trouver dans lintervalle 80-120ms

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 20: Résumé - Claude Bernard University Lyon 1

20

sous peine dobtenir des latences neacutegatives entre un point daccegraves et le cœur)

c Limitation des deacutebits

Il est possible de limiter le deacutebit au sein dun reacuteseau local dun point

daccegraves ou sur le lien du point daccegraves au cœur

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 21: Résumé - Claude Bernard University Lyon 1

21

d Choix de la topologie

Le cœur peut ecirctre constitueacute dun simple routeur central (topologie en eacutetoile) ou dun ensemble de routeurs (topologie en anneau) Ce sont les seules topologies qui permettent deacutemuler un cœur surdimensionneacute sans ecirctre trop gourmand en routeurs Si un utilisateur souhaite utiliser une topologie diffeacuterente il faut quil la creacutee directement sans passer par linterface

Il se peut que lune de ces deux topologies ne soit pas accessible du aux contraintes de la configuration mateacuterielle

e Cross Traffic

Sil reste des machines de libre elles peuvent servir de geacuteneacuterateur de cross traffic qui va congestionner une interface en sortie Sur la page apparaicirct une repreacutesentation de la topologie Lutilisateur peut choisir en cliquant dessus les interfaces quil souhaite congestionner Il peut alors indiquer le deacutebit du geacuteneacuterateur dans le champ correspondant qui apparaicirctra

Dans la creacuteation de ces topologies simplifieacutees on ne deacutefinit pas de puits pour le cross traffic (Une machine qui reccediloit ce trafic et le jette Cette opeacuteration est tregraves peu coucircteuse) Comme nous le verrons plus tard le moteur dEWAN est capable den affecter un par deacutefaut

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 22: Résumé - Claude Bernard University Lyon 1

22

f Paramegravetres avanceacutes optionnels

Pour finir il reste 3 paramegravetres agrave preacuteciser La preacutesence de qualiteacute de service la version du protocole IP et la taille des trames utiliseacutees Les valeurs par deacutefaut de ces 3 critegraveres sont les plus communes

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 23: Résumé - Claude Bernard University Lyon 1

23

g Fin de la configuration

Cette page indique que la configuration de la topologie est termineacutee Il est possible de sauvegarder son fichier de deacutefinition pour une reacuteutilisation ulteacuterieure ou pour le modifier ponctuellement

Puis si lutilisateur veut deacuteployer immeacutediatement cette topologie il peut deacutebuter le processus Voir Deacuteploiement des topologies

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 24: Résumé - Claude Bernard University Lyon 1

24

3 Gestion des configurations mateacuterielles

La configuration mateacuterielle est stockeacutee dans le fichier configphp dont le format est deacutefini en Annexe [2]

Il est possible de creacuteer dautres fichiers de configuration mateacuterielle et de choisir dutiliser ceux-ci plutocirct que celui par deacutefaut gracircce agrave la page Gestion des configurations mateacuterielles

Il suffit dindiquer le chemin du fichier choisi Si des fichiers de configurations sont deacutejagrave stockeacutes dans le dossier

configmat ils seront proposeacutes

4Veacuterification de la configuration mateacuterielle

Cette page permet de veacuterifier la configuration mateacuterielle utiliseacutee (deacutefinie par le fichier configphp ou chargeacutee dynamiquement par la fonction preacuteceacutedente) Si certaines machines ne sont pas accessibles par SSH elles seront retireacutees le la configuration en meacutemoire et ne seront donc pas utiliseacutees par EWAN Pour les autres le script veacuterifie en plus certaines caracteacuteristiques (CPU et nombre dinterfaces) et met agrave jour la configuration utiliseacutee

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 25: Résumé - Claude Bernard University Lyon 1

25

E Deacuteploiement des topologies

La partie dEWAN deacutedieacutee au deacuteploiement des topologies utilise en entreacutee une deacutefinition de topologie provenant soit directement de linterface soit dun fichier de deacutefinition puis va calculer les diffeacuterents paramegravetres de configuration des nœuds de la grappe et finalement va les deacuteployer et mettre agrave jour ces machines

1 Format de deacutefinition des topologies

Comme nous lavons vu preacuteceacutedemment une topologie est composeacutee de nœuds et de liens ayant chacuns certaines proprieacuteteacutes

Ce sont ces informations quil faut stocker dans le format de sauvegarde des topologies

Agrave des fins dinteropeacuterabiliteacutes nous avons retenu le langage RDFXML [14]

deacutefini par le W3C En effet et sans rentrer dans les deacutetails qui sortent du cadre de ce

meacutemoire contrairement aux fichiers en simple XML ougrave un parseur speacutecifique doit ecirctre utiliseacute pour comprendre leur contenu nimporte quel parseur RDF suffit pour en retirer le sens Par exemple la portion de XML ltnœudgtltpoint-acces gtltnœudgt indique-t-elle un nœud qui est un point daccegraves ou un nœud qui a un

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 26: Résumé - Claude Bernard University Lyon 1

26

point daccegraves En RDF lambiguiumlteacute est leveacutee (ici par exemple si leacuteleacutement nœud correspond agrave une ressource point-acces est une proprieacuteteacute ce qui se traduit par le nœud a un point daccegraves)

Un scheacutema RDF deacutecrivant une nouvelle ontologie a alors eacuteteacute mis au point pour preacuteciser les classes repreacutesentant principalement les entiteacutes de la topologie (par exemple nœud Lien Routeur Client) et les proprieacuteteacutes (deacutebit latence)

Il est disponible agrave ladresse httppurlorgnettopons qui est dailleurs le namespace de cette ontologie et redonneacute en Annexe [3]

Ce format permet la description de nimporte quelle topologie de niveau 3 cest agrave dire ensemble de nœuds (clients routeurs ou points daccegraves) relieacutes par des liens de faccedilon quelconque

Ainsi EWAN nest pas limiteacute aux topologies simples produites par linterface (comme cest le cas pour dautres produits) mais peut au contraire eacutemuler toutes les topologies envisageables

2 Exeacutecution du deacuteploiement

Le processus se deacutecompose en deux phases la geacuteneacuteration des scripts pour chaque nœud reacutealiseacute en plusieurs eacutetapes et lexeacutecution de ces scripts sur les diffeacuterents nœuds

a Affectation des machines

La premiegravere eacutetape consiste agrave affecter agrave chaque fonctionnaliteacute agrave eacutemuler un nœud de la grappe

Ces nœuds sont classeacutes en deux cateacutegories Client et Reseau Les machines se trouvant dans la premiegravere ne peuvent eacutemuler que des

clients et des geacuteneacuterateurs de trafic Les autres nont pas ces restrictions (Dans le futur il sera envisageable dajouter dautres cateacutegories si dautres

infrastructures (comme des nœuds aux applications tregraves orienteacutees ou des appareils speacutecifiques) sont incorporeacutees agrave EWAN)

Par ailleurs chaque fonctionnaliteacute impose des contraintes physiques au nœud candidat

Par exemple un routeur de cœur doit avoir au moins 3 interfaces un eacutemulateur de lien doit posseacuteder suffisamment de capaciteacute CPU pour assurer la latence demandeacutee (plus la latence est eacuteleveacutee plus les files dattente des paquets sont longues et plus les opeacuterations sur ces files prennent du temps)

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 27: Résumé - Claude Bernard University Lyon 1

27

Lalgorithme du premier script cherche donc agrave assigner des nœuds aux fonctionnaliteacutes en essayant de trouver un combinaison satisfaisante

b Deacutetermination des sous-reacuteseaux et IP

Tous les nœuds sont relieacutes entre eux par un ou plusieurs commutateurs formant ainsi un sous-reacuteseau leur permettant de communiquer de lun vers lautre directement

Or pour notre simulation nous devons eacuteviter cela Si un client sadresse agrave un autre client ses paquets devront normalement passer par un point daccegraves un eacutemulateur de lien plusieurs routeurs de cœur un autre eacutemulateur de lien et enfin un autre point daccegraves

Pour cela nous regroupons ces nœuds en sous-reacuteseau comme cela est deacutejagrave le cas dans une topologie reacuteelle en creacuteant un sous-reacuteseau pour chaque paire de routeurs posseacutedant un lien en commun La seule diffeacuterence avec la reacutealiteacute vient du fait que les eacutemulateurs de liens sont eux mecircme techniquement des routeurs Si un point daccegraves et son routeur de cœur eacutetaient dans le mecircme sous-reacuteseau les paquets ne traverseraient jamais leacutemulateur de lien et ne seraient pas retardeacutes

La deacutetermination de ces sous-reacuteseaux permet ensuite daffecter des IP priveacutees aux interfaces des nœuds

Toutefois une IP du sous-reacuteseau initial est conserveacutee afin de former un reacuteseau de controcircle offrant ainsi un accegraves direct aux nœuds sans avoir agrave passer agrave travers les diffeacuterents sous-reacuteseaux Cette seacutecuriteacute permet dintervenir sur des machines mecircme si le routage ne fonctionne plus

Afin de ne pas reacuteduire le nombre dinterfaces disponibles par nœud (qui est un facteur tregraves limitant) ces interfaces de controcircle sont en reacutealiteacute des interfaces virtuelles agrave une interface physique on associe deux interfaces virtuelles aux IP distinctes qui se partageront le deacutebit

Linconveacutenient des interfaces virtuelles est donc la baisse de performance quengendre ce partage Mais comme linterface de controcircle nest utiliseacutee quavant lexpeacuterience agrave sa fin ou en cas derreur elle ne perturbera pas lautre interface durant les mesures

Cest eacutegalement dans cette phase que sont calculeacutees les adresses neacutecessaires aux geacuteneacuterateurs cross traffic lIP de linterface agrave congestionner en sortie lIP de linterface de ce mecircme routeur mais agrave utiliser en entreacutee lIP dune interface du puits qui ne soit pas le mecircme sous-reacuteseau que le geacuteneacuterateur ou linterface dentreacutee Si aucun puits na eacuteteacute deacutefini lalgorithme en assigne un parmi les nœuds du sous-reacuteseau de linterface de sortie

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 28: Résumé - Claude Bernard University Lyon 1

28

c Calcul du routage

Une fois ces sous-reacuteseaux formeacutes nous pouvons calculer le routage qui sera reacutealiseacute par les routeurs de la topologie

Celui-ci est statique cest agrave dire quil ne va pas varier durant lexpeacuterience (par exemple aucun nœud ne va disparaicirctre aucun lien ne va se couper) Ainsi si un routage optimal est deacutetermineacute au deacutebut il na aucune raison de changer

Cest pourquoi le routage sera reacutealiseacute statiquement avant le lancement de lexpeacuterience routage dynamique eacutetant ici inutile

Lalgorithme de calcul de routage retenu est celui dOSPF [15] baseacute sur le calcul du plus court chemin (algorithme de Dijkstra)

EWAN integravegre donc cet algorithme impleacutementeacute en PHP (et donneacute en Annexe [4])

d Tables MySQL

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 29: Résumé - Claude Bernard University Lyon 1

29

Diverses informations aussi bien sur les nœuds reacuteels que sur fonctionnaliteacutes eacutemuleacutees sont stockeacutees dans une base MySQL agrave la fin du processus

Cela permet agrave une personne ou une application exteacuterieure davoir des renseignements sur la topologie eacutemuleacutee ou sur la grappe reacuteelle (par exemple les tables de routage des nœuds)

Pour illustrer cette fonctionnaliteacute un petit script eacutecrit agrave loccasion dune deacutemonstration est fourni en Annexe [5]

e Deacuteploiement

Le deacuteploiement se fait en 3 mouvements

Pour chaque nœud agrave utiliser un script de configuration est geacuteneacutereacute localement sur le serveur (et afficheacute sur la page web)

Chaque script est copieacute par SSH sur le nœud correspondant

Le script est exeacutecuteacute (toujours par SSH) sur le nœud (Les erreurs et les messages dalertes sont transmis agrave lutilisateur)

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 30: Résumé - Claude Bernard University Lyon 1

30

F Reacutesultats

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 31: Résumé - Claude Bernard University Lyon 1

31

1 Validation

Les premiers tests reacuteels ont eacuteteacute reacutealiseacutes sur quatre machines mises agrave disposition pour EWAN sur un reacuteseau de 100Mbs Nous avons deacutefini des tests unitaires que nous avons pu veacuterifier gracircce aux outils ping (pour veacuterifier laccessibiliteacute agrave un nœud et ses conditions comme la latence) traceroute (pour en plus connaicirctre le chemin suivi pour atteindre un nœud) et iperf (pour notamment effectuer des mesures de deacutebit et de pertes)

a Eacutemulation de lien

Testeacute avec ping et traceroute OK

b Routage

Puis

Testeacute avec ping et traceroute OK

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 32: Résumé - Claude Bernard University Lyon 1

32

c Limitation de deacutebit

Testeacute avec ping traceroute et iperf Agrave calibrer Les reacutesultats sont approximatifs pendant les premiegraveres secondes mais cela peut se reacutegler en choisissant de meilleurs paramegravetres pour tc (Voir 2 Performances)

d Geacuteneacuteration de Cross Traffic

Testeacute avec ping et traceroute et iperf OK

Il ny a eu aucun obstacle majeur rencontreacute lors de ces tests si ce nest celui de la protection rp_filter

Dans le cas des topologies agrave plus de quatre points daccegraves et avec un cœur de distance nulle les routeurs de cœur sont organiseacutes en anneau unidirectionnel sans eacutemulateur de liens entre eux Cette configuration permet de reacutealiser un cœur surdimensionneacute par rapport au reste de la topologie Linconveacutenient de cette organisation est que lon retrouve dans les tables ARP deux lignes pour une mecircme adresse MAC une associeacutee agrave linterface darriveacutee et lautre agrave celle de deacutepart diffeacuterente de la premiegravere agrave cause de laspect unidirectionnel de lanneau Certains meacutecanismes de protection contre le spoofing (comme le rp_filter sous GNULinux) jettent alors les paquets reccedilus Cest pourquoi EWAN les deacutesactive (en le signalant) au moment de la configuration des nœuds

Puis des tests sur une grappe de douze nœuds agrave 1Gbs ont eacuteteacute effectueacutes et passeacutes avec succegraves

Les topologies essayeacutees sont constitueacutees dun cœur en anneau et de quatre point daccegraves agrave distances eacutegales dans le cas eacutequilibreacute ou avec lun ou plusieurs

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 33: Résumé - Claude Bernard University Lyon 1

33

dentre eux plus eacuteloigneacutes dans les cas deacuteseacutequilibreacutes Elles preacutesentent eacutegalement diverses limitations de deacutebit

Larchitecture de la topologie deacuteployeacutee et le routage ont eacuteteacute veacuterifieacutes avec ping et traceroute

La latence eacutemuleacutee a eacuteteacute mesureacutee avec ping Les valeurs de 20ms agrave 200ms correspondaient bien aux preacutevisions

Les deacutebits allant de 1Gbs (donc sans limitation) agrave 1Mbs ont eacuteteacute mesureacutes avec iperf

2 Performances

Leacutetude des performances des topologies deacuteployeacutees par EWAN est lune des tacircches dun ingeacutenieur du laboratoire pour les semaines agrave venir

Neacuteanmoins les premiers reacutesultats sont encourageants Par exemple la limitation de deacutebit effectueacutee par tc (comme lors du

troisiegraveme test unitaire) nest pas effective instantaneacutement mais apregraves un temps proportionnel au deacutebit voulu (le temps que les tampons de tc se remplissent)

La preacutecision avec laquelle NIST Net eacutemule la latence est au moins supeacuterieure agrave celle de loutil de mesure (ping)

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 34: Résumé - Claude Bernard University Lyon 1

34

Perspectives Cette premiegravere version dEWAN remplit les objectifs qui lui eacutetaient fixeacutes Il dispose dune interface simple facilitant la deacutefinition de topologies

eacuteleacutementaires puis dun moteur permettant leur deacuteploiement et celui de topologies quelconques

Une publication agrave son sujet est en cours de reacutedaction dans leacutequipe RESO Cependant cet outil pourrait ecirctre ameacutelioreacute en lui rajoutant des fonctions de

visualisation permettant par exemple dobserver en temps reacuteel le trafic les congestions

MapCenter [16] est un outil impleacutementant ces fonctionnaliteacutes Son ajout dans EWAN est eacutetudieacute par des membres du laboratoire

Durant ces cinq mois deacutetude dautres solutions deacutemulation de latence sont apparues Des comparatifs entre eux et NIST-Net (utiliseacute par EWAN) sont en cours

sch_netem est un module du noyau Linux qui reprend les mecircmes fonctionnaliteacutes que NIST-Net

Des cartes reacuteseaux contenant des microprocesseurs programmables (Network Processor) commencent agrave sortir Elles permettent de reacutealiser leacutemulation au niveau de la carte sans faire intervenir le processeur principal du nœud

La derniegravere solution eacutetudieacutee est GNET-1 [17] un appareil speacutecifiquement deacutedieacute agrave leacutemulation de latence Preacutesenteacute sous la forme dune boite sur laquelle il suffit de brancher des cables en entreacutee et en sortie il eacutemulera un lien entre ces points Pour linstant le prototype atteint le deacutebit de 1Gbs et il est preacutevu darriver agrave 10Gbs

Ces cinq mois de stage passeacutes agrave lENS ont eacuteteacute tregraves inteacuteressants et enrichissants Jai eacutenormeacutement appreacutecieacute le travail deacutequipe Au vu des reacutesultats positifs du projet jai fortement envie de continuer agrave contribuer agrave la suite des travaux Lanneacutee prochaine ayant eacuteteacute accepteacute en deuxiegraveme anneacutee de Master agrave lENS il me sera donc possible de participer agrave la suite des recherches dans le laboratoire

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 35: Résumé - Claude Bernard University Lyon 1

35

Bibliographie

[1] SETIHome httpsetiathomesslberkeleyedu

[2] GenomeHome httpwwwstanfordedugrouppandegroupgenome

[3] Grid5000 httpwwwgrid5000org

[4] GGF Global Grid Forum httpggforg

[5] A Hierarchy of Network Performance Characteristics for Grid Applications and Services Meacutemo du GGF (httpwwwgridforumorg) disponible par exemple sur httpwww-didclblgovNMWGdocsmeasurementspdf

[6] RFC 2330 - Framework for IP Performance Metrics RFC 2679 - A One-way Delay Metric for IPPM RFC 2681 - A Round-trip Delay Metric for IPPM

[7] RCF 2680 - A One-way Packet Loss Metric for IPPM

[8] DRD Proactive Packet Dropping Methods for IP Gateways Mark Gaynor httpwwweecsharvardedu~gaynorfinalps

[9] Emulab httpwwwemulabnet

[10] X-Bone httpwwwisieduxbone

[11] ModelNet httpissgcsdukeedumodelnethtml

[12] NIST Net httpsnadncslnistgovitgnistnet

[13] Dummynet httpinfoietunipiit~luigiip_dummynet

[14] RDF httpw3orgRDF

[15] OSPF httpwwwietforghtmlchartersospf-charterhtml

[16] MapCenter httpmapcenterin2p3fr

[17] GNET-1 httpwwwgtrcaistgojpgnetgnet1ehtml

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 36: Résumé - Claude Bernard University Lyon 1

36

Remerciements

Agrave leacutequipe RESO notamment

Pascale Vicat-Blanc Primet

Olivier Gluumlck

Francois Echantillac

Laurent Lefegravevre

CongDuc Pham

Marc Herbert

Eric Lemoine

Pablo Neira Ayuso

Dino Martin Lopez Pacheco

Au LIP et agrave son directeur Jean-Michel Muller

Et agrave Alexandre Saidi

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 37: Résumé - Claude Bernard University Lyon 1

37

Annexes

Annexe 1 Diagramme des propreteacutes des liens

Annexe 2 Exemple de fichier de configuration mateacuterielle

configphp ltphp Machines disponibles $machine1=array() $machine1[id]=1407715128

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 38: Résumé - Claude Bernard University Lyon 1

38

$machine1[cpu]=1000 $machine1[interfaces]=2 $machine1[Frames]=1500 $machine1[JumboFrames]=9000 $machine1[type]=reseau $machine2=array() $machine2[id]=1407715127 $machine2[cpu]=1000 $machine2[interfaces]=2 $machine2[Frames]=1500 $machine2[JumboFrames]=9000 $machine2[type]=reseau $machine3=array() $machine3[id]=1407715121 $machine3[cpu]=800 $machine3[interfaces]=2 $machine3[Frames]=1500 $machine3[JumboFrames]=9000 $machine3[type]=reseau $machine4=array() $machine4[id]=1407715122 $machine4[cpu]=800 $machine4[interfaces]=2 $machine4[Frames]=1500 $machine4[JumboFrames]=9000 $machine4[type]=reseau $machine5=array() $machine5[id]=1407715126 $machine5[cpu]=500 $machine5[interfaces]=1 $machine5[Frames]=1500 $machine5[JumboFrames]=9000 $machine5[type]=client $machines=array(

$machine1 $machine2 $machine3 $machine4 $machine5 )

Utilisation CPU $cpurout = 300 $cpupt_acc = 200 $cpucli = 100 $tocken_buffer=15400000 $switch_routeur=0 timeout SSH $sshtimeout=3

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 39: Résumé - Claude Bernard University Lyon 1

39

Passerelle par deacutefaut pour chaque reacuteseau de controle potentiel $ip_par_defaut=array(

14077150 =gt 14077151 )

$netmask_control=2552552550 $ip_privee=192168 gt

Annexe 3 Scheacutema RDFS Ce fichier deacutecrit le format utiliseacute pour sauvegarder et charger des

topologies La derniegravere version se trouve sur purlorgnettopons

ltxml version=10 encoding=iso-8859-15 gt ltxml-stylesheet type=textcss href=stylecss gt ltxml-stylesheet type=textcss href=frcss title=frgt ltxml-stylesheet type=textcss href=encss title=en alternate=truegt ltrdfRDF xmlnstopo=httppurlorgnettopons xmlnsrdf=httpwwww3org19990222-rdf-syntax-ns xmlnsrdfs=httpwwww3org200001rdf-schema xmlnsowl=httpwwww3org200207owl xmlnsdc=httppurlorgdcelements11 xmlnsfoaf=httpxmlnscomfoaf01 xmlnsdoap=httpusefulinccomnsdoap xmlbase=httppurlorgnettopons xmllang=frgt

ltowlOntology rdfabout=httppurlorgnettoponsgt ltowlversionInfogt013ltowlversionInfogt ltdctitle xmllang=frgtOntologie de description des topologies de

reacuteseaux informatiquesltdctitlegt ltdctitle xmllang=engtOntology describing computers networks

topologiesltdctitlegt ltfoafmakergt

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotalgt

ltfoafnamegtCyril Otalltfoafnamegt ltfoafmbox rdfresource=mailtocyrilotalens-

lyonfr gt ltrdfsseeAlso rdfresource=httppersoens-

lyonfrcyrilotalcotalphpcotal gt ltfoafPersongt

ltfoafmakergt ltrdftype rdfresource=httpusefulinccomnsdoapProject gt ltdoaphomepage rdfresource=httppurlorgnettopons gt ltdoapcreatedgt2004-04-30ltdoapcreatedgt ltdoapdescription xmllang=frgt Cette ontologie permet de decrire des topologies reacuteseau Elle

deacutefinit entre autres le format de fichier utiliseacute par le logiciel EWAN ltdoapdescriptiongt ltdoapdescription xmllang=engt the goal of this Ontology is the descriptions of network

topologies It is for exemple used by the software named EWAN ltdoapdescriptiongt ltdoapprogramming-languagegtRDFRDFSOWLltdoapprogramming-

languagegt ltdoaplicence

rdfresource=httpusefulinccomdoaplicencesGPL gt ltdoapmaintainergt

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 40: Résumé - Claude Bernard University Lyon 1

40

ltfoafPerson rdfabout=httppersoens-lyonfrcyrilotalcotalphpcotal gt

ltdoapmaintainergt ltdcrightsgt copy 2004 ENS Lyonltdcrightsgt

ltrdfscommentgtltrdfscommentgt ltowlOntologygt

ltrdfsClass rdfabout=httppurlorgnettoponsTopologiegt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtTopologieltrdfslabelgt ltrdfscomment xmllang=frgtUne topologie dun

reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA network topologyltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16topology-4 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMachinegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMachineltrdfslabelgt ltrdfscomment xmllang=frgtUne machine du reacuteseaultrdfscommentgt ltrdfscomment xmllang=engtA computer of the

networkltrdfscommentgt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16computer gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsClientgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtClientltrdfslabelgt ltrdfscomment xmllang=frgtUne machine clientltrdfscommentgt ltrdfscomment xmllang=engtA computer acting as a

clientltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16client-3 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsRouteurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtRouteurltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur de coeurltrdfscommentgt ltrdfscomment xmllang=engtA core-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsPt-accesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtPt-accesltrdfslabelgt ltrdfscomment xmllang=frgtUn routeur daccegravesltrdfscommentgt ltrdfscomment xmllang=engtAn ingres-routerltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfssubClassOf

rdfresource=httpxmlnscomwordnet16router-2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsGenerateurgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtGenerateurltrdfslabelgt ltrdfscomment xmllang=frgtUn geacuteneacuterateur de cross-

trafficltrdfscommentgt ltrdfscomment xmllang=engtA cross-traffic

generatorltrdfscommentgt ltrdfssubClassOf

rdfresource=httppurlorgnettoponsMachine gt ltrdfsClassgt

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 41: Résumé - Claude Bernard University Lyon 1

41

ltrdfsClass rdfabout=httppurlorgnettoponsLiengt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtLienltrdfslabelgt ltrdfscomment xmllang=frgtUn lien unidirectionnel entre deux

machinesltrdfscommentgt ltrdfscomment xmllang=engtAn unidirectional link between two

computersltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16link-

9 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsDef-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtDef-pertesltrdfslabelgt ltrdfscomment xmllang=frgtLa deacutefinition des pertes dun

lienltrdfscommentgt ltrdfscomment xmllang=engtDefinition of the data loss on one

linkltrdfscommentgt ltrdfssubClassOf rdfresource=httpxmlnscomwordnet16Loss-

2 gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsMoyenne-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMoyenne-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn taux moyen de pertesltrdfscommentgt ltrdfscomment xmllang=engtThe loss averageltrdfscommentgt ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-

pertes gt ltrdfsClassgt ltrdfsClass rdfabout=httppurlorgnettoponsProfil-pertesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtProfil-pertesltrdfslabelgt ltrdfscomment xmllang=frgtUn profil de pertes (Cette ressource

peut avoir une proprieteacute rdfsseeAlso pointant vers plus dinformations caracteacuterisant le profil)ltrdfscommentgt

ltrdfscomment xmllang=engtA loss pattern (This resource can have a rdfsseeAlso property linking to more information about this pattern)ltrdfscommentgt

ltrdfssubClassOf rdfresource=httppurlorgnettoponsDef-pertes gt

ltrdfsClassgt ltrdfsClass rdfID=List-noeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsMachine gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-noeuds gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-liensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 42: Résumé - Claude Bernard University Lyon 1

42

syntax-nsList gt

ltrdfssubClassOfgt ltowlRestrictiongt

ltowlonProperty rdfresource=httpwwww3org19990222-rdf-syntax-nsfirst gt

ltowlallValuesFrom rdfresource=httppurlorgnettoponsLien gt

ltowlRestrictiongt ltrdfssubClassOfgt ltrdfssubClassOfgt

ltowlRestrictiongt ltowlonProperty

rdfresource=httpwwww3org19990222-rdf-syntax-nsrest gt ltowlallValuesFrom rdfresource=List-liens gt

ltowlRestrictiongt ltrdfssubClassOfgt

ltrdfsClassgt ltrdfsClass rdfID=List-paramsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfssubClassOf rdfresource=httpwwww3org19990222-rdf-

syntax-nsSeq gt

ltrdfsContainerMembershipProperty rdfresource=httpwwww3org200010XMLSchemafloatgt

ltrdfsClassgt

ltrdfProperty rdfabout=httppurlorgnettoponsIPvgt ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtIPvltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLa version du protocole IP

utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe IP version usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsQoSgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtQoSltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemabooleangt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtUtilisation ou non de Qualiteacute de

Serviceltrdfscommentgt ltrdfscomment xmllang=engtIf Quality of Service is

usedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsMTUgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtMTUltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLe type de MTU utiliseacuteltrdfscommentgt ltrdfscomment xmllang=engtThe MTU usedltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsptaccesgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtptaccesltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsPt-accesgt

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 43: Résumé - Claude Bernard University Lyon 1

43

ltrdfsdomain rdfresource=httppurlorgnettoponsClient gt ltrdfscomment xmllang=frgtLe point daccegraves auquel le client est

relieacuteltrdfscommentgt ltrdfscomment xmllang=engtThe ingres router linked to this

clientltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsfromgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtfromltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine destination du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is the destination

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstogt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttoltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa machine origine du

lienltrdfscommentgt ltrdfscomment xmllang=engtThe computer which is at the begining

of this linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslatencegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlatenceltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa latence du lienltrdfscommentgt ltrdfscomment xmllang=engtThe link delayltrdfscommentgt

ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponspertegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtperteltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsDef-

pertesgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLes pertes du lienltrdfscommentgt ltrdfscomment xmllang=engtThe data loss on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebitltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLe deacutebit du lienltrdfscommentgt ltrdfscomment xmllang=engtThe capacity of the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsduplicationgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtduplicationltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsLien gt ltrdfscomment xmllang=frgtLa duplication sur ce

lienltrdfscommentgt ltrdfscomment xmllang=engtThe duplication on the

linkltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsliensgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 44: Résumé - Claude Bernard University Lyon 1

44

ltrdfslabelgtliensltrdfslabelgt ltrdfsrange rdfresource=List-liens gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes liens existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe links of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeudsgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeudsltrdfslabelgt ltrdfsrange rdfresource=List-noeuds gt ltrdfsdomain rdfresource=httppurlorgnettoponsTopologie

gt ltrdfscomment xmllang=frgtLes noeuds existants dans la

topologieltrdfscommentgt ltrdfscomment xmllang=engtThe nodes of the

topologyltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsdebit-gengt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtdebit-genltrdfslabelgt ltrdfsrange

rdfresource=httpwwww3org200010XMLSchemafloatgt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe deacutebit geacuteneacutereacute pour le cross

trafficltrdfscommentgt ltrdfscomment xmllang=engtThe speed of the cross

trafficltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponslien-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtlien-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsLiengt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe lien correspondant agrave linterface agrave

congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe link of the target

interfaceltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-ciblegt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-cibleltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe noeud auquel appartient linterface

agrave congestionnerltrdfscommentgt ltrdfscomment xmllang=engtThe node whose interface is

targetedltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsnoeud-puitgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtnoeud-puitltrdfslabelgt ltrdfsrange rdfresource=httppurlorgnettoponsMachinegt ltrdfsdomain rdfresource=httppurlorgnettoponsGenerateur

gt ltrdfscomment xmllang=frgtLe puit vers lequel est dirigeacute le

trafic geacuteneacutereacuteltrdfscommentgt ltrdfscomment xmllang=engtThe node where the generated traffic

goesltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponsparam-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgtparam-profilltrdfslabelgt

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 45: Résumé - Claude Bernard University Lyon 1

45

ltrdfsrange rdfresource=List-paramsgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLes paramegravetres dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtParameteres of a loss

patternltrdfscommentgt ltrdfPropertygt ltrdfProperty rdfabout=httppurlorgnettoponstype-profilgt

ltrdfsisDefinedBy rdfresource=httppurlorgnettopons gt ltrdfslabelgttype-profilltrdfslabelgt ltrdfsrange rdfresource=httpwwww3org200001rdf-

schemaLiteralgt ltrdfsdomain rdfresource=httppurlorgnettoponsProfil-

pertes gt ltrdfscomment xmllang=frgtLe nom dun profil de

pertesltrdfscommentgt ltrdfscomment xmllang=engtName of a loss patternltrdfscommentgt

ltrdfPropertygt

lt-- Compatibiliteacute partielle OWL DL --gt ltowlAnnotationProperty rdfabout=httppurlorgdcelements11title

gt ltowlAnnotationProperty

rdfabout=httppurlorgdcelements11rights gt ltowlAnnotationProperty rdfabout=httpxmlnscomfoaf01maker gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaphomepage

gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoapcreated

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapdescription gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapprogramming-language gt ltowlAnnotationProperty rdfabout=httpusefulinccomnsdoaplicence

gt ltowlAnnotationProperty

rdfabout=httpusefulinccomnsdoapmaintainer gt

ltrdfRDFgt

Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP

ltphp $links tableau des liens $routeurs tableaux des routeurs (coeur + pt dacces + NIST-Net) $metrique metrique utiliseacutee pour le routage $tables tables de routage

$tables[$i] table du routeur $i $tables[$i][$j] routeur inscrit sur la ligne de la table pour le sous reacuteseau $j

$reseaux tableau des sous reseaux (creacuteeacute au moment de laffectation des IPs) $reseaux[$i][noeuds] liste des routeurs appartenant au sous reseau $i

$chemins tableaux des chemins $chemins[$i][$j] numero du routeur agrave qui le routeur $i doit envoyer les messages

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 46: Résumé - Claude Bernard University Lyon 1

46

agrave destination de $j Creacuteation de la constante NAN si elle nexiste pas if(array_key_exists(NANget_defined_constants()))

define(NANacos(11))

Initialisation des tables de routages Par deacutefaut tous les $tables[$i][$j] valent -1 (default) On repegravere les reseaux dont fait parti le routeur et on ecrit sur les lignes correspondantes le numero du routeur Ce qui eacutequivaudra agrave un ``

Initialisation des chemins par deacutefaut -1 (pas de chemin) $chemins=array() $tables=array() for($i=0$iltcount($routeurs)$i++)

if(count($routeurs)) $chemins[$i]=array_fill(0count($routeurs)-1) if(count($reseaux)) $tables[$i]=array_fill(0count($reseaux)-1) for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$i][id]$reseaux[$z][noeuds]))

$tables[$i][$z]=$i

$chemins[$i][$i]=$i

Plus court chemin for($i=0$iltcount($routeurs)$i++)

$m=array($i) $c=array() $c[$i]=0 for($j=0$jltcount($routeurs)$j++)

if($i=$j)

$t=1 for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$i][id] ampamp

$links[$l][to]==$routeurs[$j][id]) $t=0 distance $c[$j]=$links[$l][$metrique] chemin $chemins[$i][$j]=$j table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs[$j][id]

$reseaux[$z][noeuds])) if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$j

else

pas de routeur preacutevu $tables[$i][$z]=$j

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 47: Résumé - Claude Bernard University Lyon 1

47

if($t)

$c[$j]=NAN

while(count($m)ltcount($routeurs)) $min=NAN $w=NAN for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

if($c[$j]lt$min ampamp is_nan($c[$j]))

$w=$j $min=$c[$j]

if(is_nan($w)) echo ltbr gt il nexiste aucun chemin du routeur vers les points restants break

array_push($m$w) for($j=0$jltcount($routeurs)$j++)

if(in_array($j$m))

$p=NAN for($l=0$lltcount($links)$l++)

if($links[$l][from]==$routeurs[$w][id] ampamp $links[$l][to]==$routeurs[$j][id])

$p=$links[$l][$metrique]

if($c[$j]gt$c[$w]+$p ampamp is_nan($c[$w]+$p))

distance $c[$j]=$c[$w]+$p chemin $chemins[$i][$j]=$chemins[$i][$w] table for($z=0$zltcount($reseaux)$z++)

if(in_array($routeurs [$j][id] $reseaux[$z][noeuds]))

if($tables[$i][$z]gt-1)

if($c[$j]lt$c[$tables[$i][$z]])

Le plus court chemin passe par $j

$tables[$i][$z]=$chemins[$i][$j]

else

pas de routeur preacutevu $tables[$i][$z]=$chemins[$i][$j]

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 48: Résumé - Claude Bernard University Lyon 1

48

gt

Annexe 5 Script de geacuteneacuteration de nom dhocirctes

Ce script se connecte agrave la base MySQL tenue agrave jour par EWAN reacutecupegravere les interfaces des routeurs et affiche en sortie des lignes agrave rajouter dans le fichier systegraveme etchosts afin que lors dopeacuterations sur les nœuds de la grappe leur nom soit utiliseacute agrave la place de leur adresse (qui est normalement inconnue de lutilisateur)

ltphp include(incvarphp) if($link=mysql_connect($serveur$user$mdp))

if(mysql_select_db($db))

$r=mysql_query(SELECT IDInterfaces FROM Routeurs)

while($n=mysql_fetch_array($r)) $ip=unserialize($n[Interfaces]) for($i=0$iltcount($ip)$i++)

echo n$ip[$i] $n[ID]

else echo Base injoignable

else

echo Connexion impossible

gt

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 49: Résumé - Claude Bernard University Lyon 1

49

Annexe 6 Listing des fichiers dEWAN affectphp chargerphp configphp configmat css

sitecss deployphp dijkstraphp equationphp exemples img

nuagephp nuagepng routeurpng stonettf topophp VeraItttf inc

footerphp headphp headersphp navphp prologuesphp varphp

indexphp interfacephp ipphp lat2cpuphp processphp routagephp topologiephp

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 50: Résumé - Claude Bernard University Lyon 1

50

Table des Matiegraveres

Reacutesumeacute 3 Abstract3 Introduction et contexte4

A Preacutesentation du Laboratoire de Recherche 5 B Contexte 6

I Grilles de calcul et topologies 6 1 Entiteacutes 6 2 Proprieacuteteacutes 7

a Bande passante7 La Capaciteacute 7

LUtilisation 8

La Bande Passante disponible 8

La Bande Passante atteignable 8

b Latence8 La Gigue 9

c Pertes9 d Duplications9

II Outils 9 1 NIST Net 10 2 Dummynet 11 3 TC 12

Reacutealisation 13 A Speacutecifications13 B Architecture logique13 C Architecture physique 15 D Interface de creacuteation de topologie16

1 Charger une topologie 16 2 Deacutefinir une nouvelle topologie 17

a Points daccegraves et Clients 17 b Deacutefinition des liens 18 c Limitation des deacutebits 19 d Choix de la topologie 20 e Cross Traffic 21 f Paramegravetres avanceacutes optionnels 21 g Fin de la configuration 22

3 Gestion des configurations mateacuterielles 23 4Veacuterification de la configuration mateacuterielle 23

E Deacuteploiement des topologies 24 1 Format de deacutefinition des topologies 24 2 Exeacutecution du deacuteploiement 25

a Affectation des machines 25 b Deacutetermination des sous-reacuteseaux et IP 26

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 51: Résumé - Claude Bernard University Lyon 1

51

c Calcul du routage 27 d Tables MySQL 28 e Deacuteploiement 28

F Reacutesultats30 1 Validation 30

a Eacutemulation de lien 30 b Routage 30 c Limitation de deacutebit 31 d Geacuteneacuteration de Cross Traffic 31

2 Performances 32 Perspectives 33 Bibliographie 34 Remerciements 35 Annexes 36

Annexe 1 Diagramme des propreteacutes des liens36 Annexe 2 Exemple de fichier de configuration mateacuterielle 36 Annexe 3 Scheacutema RDFS 38 Annexe 4 Impleacutementation de lalgorithme de Dijkstra en PHP46 Annexe 5 Script de geacuteneacuteration de nom dhocirctes48 Annexe 6 Listing des fichiers dEWAN 50

Table des Matiegraveres51

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 52: Résumé - Claude Bernard University Lyon 1

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only