Olive
Olive
Olive
UNIVERSITÉ DU QUÉBEC
MÉMOIRE PRÉSENTÉ À
L'ÉCOLE DE TECHNOLOGIE SUPÉRIEURE
PAR
OLIVIER TRUONG
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
CE MÉMOIRE A ÉTÉ ÉVALUÉ
PAR UN JURY COMPOSÉ DE :
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
ÉTUDE ET DÉVELOPPEMENT D'OUTILS D'OPTIMISATION DE GESTION
DE SERVICES DANS LES RÉSEAUX MPLS
Olivier Truong
SOMMAIRE
Pour répondre à ce besoin, nous avons conçu un nouvel outil, permettant de fournir à
l'administrateur une vue globale de son réseau MPLS via une interface Web. Il s'intègre
avec un outil dédié à la qualité de service pour former QoS MPLS Assistant (QMA). La
collecte d'informations est définie selon des standards établis, rendant QMA
interopérable, fonctionnel quel que soit le constructeur des équipements. Par ailleurs,
une méthode de surveillance de réseau a été mise au point, après étude et analyse des
mécanismes actuellement proposés ou en cours de développement.
Lors du développement de cet outil, il a fallu tenir compte de l'écart constaté entre
standards publiés et implémentations effectives dans les routeurs. De fait, certaines des
fonctionnalités de QMA élaborées en théorie n'ont pu être concrètement mises en place.
Pour autant, QMA est un outil riche, offrant à 1' administrateur un moyen ergonomique et
convivial de visualisation d'un réseau MPLS. Il a été testé avec succès sur une plate-
forme de tests de notre partenaire industriel Bell Canada.
Conçu avec une approche modulaire, pour faciliter son évolution, QMA pourra être
repris dans le cadre d'un autre projet, et inclure de nouvelles fonctionnalités, voire même
s'intégrer dans une solution professionnelle de gestion des réseaux.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
STUDY AND DEVELOPMENT OF NETWORK MANAGEMENT
OPTIMIZATION TOOLS IN MPLS NETWORKS
Olivier Truong
ABSTRACT
Aware that services must be efficiently managed to be profitable, service providers have
recently put a lot of effort into operation, administration and maintenance of MPLS
networks. Various tools have been implemented in the university and industry world to
address one or several network management issues. However no tool can visualize the
configuration of a heterogeneous MPLS network, along with its main applications,
traffic engineering and VPN. Besides, the issue of fault detection is only tackled at a
theoreticallevel.
This need has led to the design and implementation of a new tool providing the
administrator with an overview of their MPLS network through a web interface. It is
combined with a QoS tool and is called QoS MPLS Assistant (QMA). Information
gathering is defined according to standards, making QMA work regardless of the
vendor. A network monitoring method has also been set up after analysis of current or
under development mechanisms.
Designed with a modular approach to make its evolution easy, QMA could be improved
in another project, including new features, and even be integrated into a professional
network management solution.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
REMERCIEMENTS
1' équipe au sein de Bell Canada, pour leur accueil, leur bonne humeur et leur passion
Je remercie aussi les autres membres du projet Bell d'avoir partagé cette aventure, en
Virginie Convert pour ses tests de l'outil, ainsi qu'à Jeff de Subway pour son soutien
Enfin, je dédie ce mémoire à mon Seigneur Jésus-Christ que je remercie de tout mon
cœur pour Sa présence, Sa patience et Sa bonté inconditionnelles. Sans Lui, rien n'aurait
été possible.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
TABLE DES MATIÈRES
Page
SOMMAIRE ...................................................................................................................... i
ABSTRACT ...................................................................................................................... ii
REMERCIEMENTS ......................................................................................................... iii
TABLE DES MATIÈRES ................................................................................................ iv
LISTE DES TABLEAUX ............................................................................................... vii
LISTE DES FIGURES ..................................................................................................... ix
LISTE DES ABRÉVIATIONS ET SIGLES .................................................................. xiii
INTRODUCTION ............................................................................................................. 1
CHAPITRE 1 PROBLÉMATIQUE .................................................................................. 2
1.1 Les enjeux de la gestion réseau .................................................................. 2
1.2 Problématique du projet.. ........................................................................... 5
1.3 Contexte du projet ...................................................................................... 7
CHAPITRE 2 ÉTAT DE L'ART ET BESOINS ............................................................... 8
2.1 Multi Protoco1 Label Switching ................................................................. 8
2.1.1 Terminologie .............................................................................................. 8
2.1.2 Présentation .............................................................................................. 10
2.1.3 Applications ............................................................................................. 15
2.1.3 .1 Virtual Private N etworks ......................................................................... 15
2.1.3 .2 Traffic Engineering .................................................................................. 19
2.1.4 Le contexte de MPLS : le paradigme des réseaux convergents ............... 21
2.2 Approches et outils de gestion MPLS ...................................................... 24
2.2.1 RFC .......................................................................................................... 24
2.2.2 Approches expérimentales ....................................................................... 26
2.2.3 Outils industriels ...................................................................................... 28
2.2.4 Forces et faiblesses de ces outils .............................................................. 31
2.3 Des besoins non satisfaits ........................................................................ 33
CHAPITRE 3 QMA : UN NOUVEL OUTIL ................................................................. 34
3.1 Spécifications proposées .......................................................................... 34
3.1.1 Exigences fonctionnelles ......................................................................... 35
3.1.2 Exigences non fonctionnelles .................................................................. 36
3.2 Réponses aux exigences ........................................................................... 37
3 .2.1 Interaction avec le réseau (spécifications 1 à 4, 14, 15) .......................... 38
3.2.1.1 Position du problème ............................................................................... 38
3 .2.1.2 Différentes alternatives ............................................................................ 38
3.2.1.3 ChoixdeSNMP ....................................................................................... 41
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
v
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
VI
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
LISTE DES TABLEAUX
Page
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Vlll
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
LISTE DES FIGURES
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
x
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Xl
Figure 57 Diagramme de réception d'une trap d'un tunnel tombé ......................... l25
Figure 58 Diagramme de création d'utilisateur ...................................................... 127
Figure 59 Aperçu de Bugzilla ................................................................................. 131
Figure 60 Affichage de la topologie du réseau ....................................................... 132
Figure 61 Affichage des informations par tooltip .................................................. 133
Figure 62 Affichage des LSP .................................................................................. 134
Figure 63 Configuration des LSP vue du routeur P1.. ............................................ 135
Figure 64 Affichage des tunnels ............................................................................. 136
Figure 65 Affichage de statistiques d'un tunnel.. ................................................... 137
Figure 66 Configuration d'un tunnel vu du routeur ............................................... 137
Figure 67 Affichage d'un VRF ............................................................................... l39
Figure 68 Configuration d'un VRF vu du routeur .................................................. l40
Figure 69 Notification d'un nouvel évènement.. .................................................... l41
Figure 70 Nouvel évènement dans l'onglet Event .................................................. l41
Figure 71 Affichage des traps dans l'onglet traps .................................................. 142
Figure 72 Onglet d'authentification ....................................................................... 143
Figure 73 Message d'erreur lors d'authentification incorrecte .............................. 143
Figure 74 Logs de cinq utilisateurs simultanés ...................................................... 144
Figure 75 Aperçu du trafic échangé entre client et serveur QMA. ......................... 146
Figure 76 Configuration de liS pour le WebService .............................................. l59
Figure 77 Vérification de la version du WebService ............................................. 160
Figure 78 Configuration du Famework .NET ........................................................ 161
Figure 79 Ajustement de la sécurité dans .Net ....................................................... 162
Figure 80 Onglet MPLS Config .............................................................................. 165
Figure 81 Erreur lors du démarrage de la surveillance ........................................... 166
Figure 82 Onglet User: création d'utilisateurs ..................................................... 167
Figure 83 Onglet User : modification d'utilisateurs .............................................. 168
Figure 84 Onglet Authentication ............................................................................ 169
Figure 85 Onglet Network ...................................................................................... 171
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Xll
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
LISTE DES ABRÉVIATIONS ET SIGLES
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
XlV
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
xv
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
INTRODUCTION
«Sans maîtrise la puissance n 'est rien.» Cet adage bien connu de Pirelli s'applique à de
nombreux domaines, y compris celui des réseaux informatiques. En effet, alors que les
technologies se multiplient et se complexifient, offrant toujours plus, plus vite, il devient
crucial de les gérer efficacement, de mieux les maîtriser.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
CHAPITRE 1
PROBLÉMATIQUE
Dans ce premier chapitre, nous présentons tout d'abord les enjeux de la gestion réseau,
en définissant celle-ci d'un point de vue général, puis plus technique. Forts de cette
compréhension, nous pourrons alors exposer la problématique abordée dans ce mémoire.
Enfin, ce chapitre se conclura par la mise en contexte de ce mémoire dans un projet plus
global, afin de bien cerner dans quel cadre il intervient.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
3
gestion efficace. Les défis auxquels 1' administrateur réseau doit faire face sont
principalement: les pannes des équipements, les attaques contre le réseau, les
manœuvres maladroites d'employés, mais aussi, plus fréquemment, la congestion de
certains équipements.
Face à ces exigences, l'administrateur réseau doit travailler avec des contraintes
opérationnelles. Les enjeux financiers peuvent en effet s'avérer substantiels. Par
exemple, une panne de réseau bancaire, bloquant des transactions, pourrait coûter des
milliers voire des millions de dollars à la banque et ses clients. Le droit à l'erreur est
alors difficilement toléré.
a. Fault management (gestion de fautes): cet aspect comprend deux volets: d'une
part, il s'agit ici de réagir aux problèmes quand ceux-ci se produisent: des
méthodes de détection, localisation, diagnostic, isolation puis de correction
doivent donc être mises en place, le tout en un temps acceptable pour le client.
D'autre part, il est également nécessaire de prendre des mesures préventives
(proactives), avant que des pannes n'aient lieu. L'objectif est de minimiser le
temps où le réseau n'est pas fonctionnel;
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
4
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
5
Beaucoup de recherches ont été menées sur des technologies et des outils abordant un ou
plusieurs de ces points. Par exemple, dans le monde IP, le protocole Internet Control
Message Protocol (ICMP) [2] permet de signaler différentes erreurs, et des outils
exploitant cette technologie forment le célèbre duo ping/traceroute [3]. Le premier
permet de tester la connectivité entre deux équipements, le second détermine le chemin
emprunté. Le protocole Simple Network Management Protocol (SNMP) [4-6] a été
développé pour obtenir des informations sur les différents composants du réseau avec la
possibilité de les modifier.
Après cette présentation de la problématique générale que présente la gestion réseau sur
un plan général, considérons donc le cas du MPLS, sur lequel se concentre notre projet.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
6
Dans ce contexte, notre projet consiste à étudier puis développer un outil d'optimisation
de gestion de services dans les réseaux MPLS. Cet outil doit permettre une gestion plus
efficace du réseau, en présentant à 1' administrateur de manière claire et structurée les
informations cruciales, mais aussi en 1'assistant par 1' automatisation de certaines
fonctionnalités.
Ensuite, nous étudierons les approches, démarches et outils existants dans le domaine de
la gestion des réseaux MPLS, pour relever leurs forces et faiblesses respectives ; voir
notamment quels aspects ne sont pas encore traités, ou pas assez convenablement. Ceci
nous permettra alors de proposer de nouvelles approches, approfondissant certaines
parties de la gestion réseau, ou en abordant d'autres.
Nous pourrons dès lors établir des spécifications sur un nouvel outil et définir une
architecture. Puis, pour chacune de ses fonctionnalités, nous examinerons les différentes
alternatives pour choisir la plus appropriée. Nous justifierons notamment nos choix
technologiques.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
7
Dans la section suivante, nous placerons les objectifs de ce projet dans un contexte
global de gestion des réseaux avec Bell Canada.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
CHAPITRE2
Ce chapitre présente tout d'abord la technologie MPLS dans son contexte et ses
applications. Puis, dans le cadre de notre problématique, les approches et outils déjà
existants en matière de gestion de réseaux MPLS sont examinés. Ceci nous permettra
d'identifier et de discuter les limitations des approches actuelles pour la gestion des
réseaux MPLS.
Depuis quelques années, MPLS est de plus en plus plébiscité par les fournisseurs
d'accès. Cette technologie prometteuse retient ainsi toute l'attention des différents
acteurs du monde des réseaux.
2.1.1 Terminologie
Afin de bien saisir les concepts de MPLS, nous listons ici son vocabulaire principal.
Certains termes sont spécifiques à cette technologie, d'autres non. Dans tous les cas, la
définition proposée ici est avant tout valide dans le cadre de MPLS.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
9
b. Downstream : en aval;
c. Egress : désigne un routeur de sortie du réseau;
d. FEC: Forwarding Equivalence Class: terme décrivant un groupe de paquets IP
qui sont commutés de la même manière;
e. FRR: Fast Reroute: liés au TE, mécanismes permettant de minimiser la perte
de paquets en cas de bris de LSP;
f. Ingress : désigne un routeur d'entrée du réseau;
g. Label: valeur, placée dans l'en-tête MPLS, d'après laquelle la commutation se
fait. Un label est associé à une FEC;
h. LDP : Label Distribution Protocol : protocole de distribution des labels MPLS le
plus utilisé;
1. LER : Label Edge Router : routeur MPLS de bordure de réseau;
J. LSP: Label Switched Path: chemin suivi par un paquet dans un réseau MPLS. Il
est composé d'une succession de segments;
k. LSR : Label Switch Router : routeur MPLS;
1. P: Provider: dans un VPN, routeur du fournisseur d'accès;
m. PE: Provider Edge: dans un VPN, routeur qui fait l'interface entre le réseau
client et celui du fournisseur d'accès;
n. PHP : Penultimate Hop Popping : fait de ne pas imposer de label sur le dernier
segment, afin de minimiser le temps de traitement du dernier routeur, en lui
retirant 1' opération de Pop;
o. Pop : action de retirer un label sur un paquet MPLS;
p. Push: action d'apposer un label sur un paquet MPLS (ou IP);
q. Segment : partie d'un LSP entre deux routeurs voisins;
r. Swap: action d'échanger un label sur un paquet MPLS;
s. TE : Traffic Engineering : ingénierie de trafic;
t. Upstream: en amont.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
10
2.1.2 Présentation
Ainsi, un groupe de travail de l'Internet Engineering Task Force (IETF) regroupant des
professionnels des réseaux (Cisco, Juniper) [11] a proposé en 2001 une architecture du
Multi Protocol Label Switching [8].
L'idée de base de MPLS consiste à acheminer un paquet à l'aide d'un label et non plus
de 1' adresse de destination. MPLS effectue ainsi de la commutation de label tout en
bénéficiant du routage de la couche réseau. En reprenant la classification par niveaux du
modèle Open Systems Interconnection (OSI) [12], MPLS combine la puissance de
commutation de la couche liaison aux avantages du routage de la couche réseau [10]. On
parle de Multi Protocol car, en s'insérant entre les couches 2 et 3 (certains évoquent
quelquefois la couche 2,5), MPLS est indépendant des différentes technologies, comme
le montre la figure 1.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
11
Apple
Niveau 3 ta.lk
MPLS 1
l::lr:::J
r-==!L..____________Frame
L.=_j__::_:_'---==--Jc.=J
Figure 1 Caractère Multi Protocoles de MPLS
MPLS peut ainsi transporter des protocoles comme IPv4, IPv6, Internetwork Packet
Exchange (IPX), AppleTalk sur des technologies comme Ethernet, Asynchronous
Transfer Mode (ATM), Frame Relay ou Point-ta-Point Protocol (PPP). Ainsi, quelle
que soit la technologie utilisée au niveau 3, le niveau 2 ne voit que MPLS, et
réciproquement le niveau 3 ne voit comme couche inférieure que MPLS. La gestion du
cœur de réseau s'en trouve donc simplifiée, facilitant notamment l'ajout de
fonctionnalités.
L'en-tête MPLS est constitué de 32 bits répartis de la manière illustrée à la figure 2 [13].
Il s'organise de la manière suivante:
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
12
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Label 1 Exp !SI TTL
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
De par son caractère multi protocoles, l'en-tête MPLS s'adapte aux différentes
technologies sous-jacentes, comme le montre la figure 3 [14].
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
13
{c)ATMCell
Les valeurs de l'en-tête MPLS sont placées dans un nouveau format, appelé shim [8],
lequel s'insère entre l'en-tête de la couche liaison et celui de la couche réseau.
Cependant, certaines technologies comme ATM ou Frame Rel ay implémentent déjà le
concept de commutation par étiquette. Ainsi leurs en-têtes respectifs peuvent être utilisés
pour contenir des labels [8]. Pour ATM, MPLS utilise le champ Virtual Path Identifier
(VPI) 1 Virtual Channel Identifier (VCI). Pour Frame Relay, c'est le champ Data Link
Connection Identifier (DLCI) qui est utilisé.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
14
PE1 (lngress) P3 P4
- PE2 (Egress)
~~~~out '~01!1
;f'~
·,,,~,,
·<;f~~~i
" :~f-~J t~ :~-*;··t,·
Plusieurs remarques s'imposent: on constate qu'un label n'a de valeur que pour un
routeur donné, sa portée est donc locale. En théorie, un même label pourrait avoir
différentes significations selon l'interface d'entrée [8]. Dans un tel cas, la table de
commutation MPLS se baserait à la fois sur le label et sur l'interface d'entrée pour
déterminer l'interface de sortie et le label à imposer. Dans la pratique des réseaux
actuels, un label a souvent la même signification quelle que soit son interface d'entrée.
Cela peut s'avérer utile dans certains cas, comme pour le Fast Reroute [15] où, en cas de
panne, une nouvelle route doit être trouvée.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
15
Pour calculer les chemins des LSP, MPLS a recours aux mêmes protocoles de routage
que IP. L'établissement des labels se fait grâce à un protocole de signalisation. Il en
existe plusieurs, mais le plus utilisé reste le Label Distribution Protocol (LDP) [16].
2.1.3 Applications
Le principe d'un VPN est d'établir la connectivité entre différents sites d'un client en
utilisant une infrastructure publique, tout en fournissant un contrôle d'accès et des
politiques de sécurité semblables à un réseau privé [10]. Ce concept n'est donc en lui-
même aucunement lié à MPLS et était déjà mis en place avant son apparition. Ainsi, afin
de mieux cerner 1' apport de MPLS dans le cadre de VPN, considérons d'abord son
déploiement sans MPLS. Deux implémentations de VPN se sont très répandues: le
modèle Overlay et le modèle Peer-to-Peer [10].
Le modèle Overlay est illustré à la figure 5 [18]. Ici, le fournisseur établit des lignes
émulées entre les différents sites du VPN [10]. Le client peut alors établir des
communications entre ses routeurs via ces circuits. L'infrastructure du fournisseur
d'accès est ainsi transparente au client, alors que le réseau interne de ce dernier reste
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
16
VPlT A
Ce modèle, bien que très utilisé, présente plusieurs inconvénients majeurs. Simple dans
son concept, il devient très complexe à déployer à grande échelle quand le client possède
de nombreux sites. En effet, s'il yaN sites qui veulent communiquer entre eux, il faut
configurer au moins N(N -1) circuits. L'ajout d'un N+ r site nécessite donc le
provisionnement de N nouveaux circuits. De plus, il faut savoir dimensionner chaque
circuit avant que le trafic n'y circule.
Le modèle Peer-ta-Peer [1 0] a été mis au point pour pallier aux faiblesses du modèle
Over/ay. Il est présenté à la figure 6 [18].
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
17
Si1
VPIT A.' Si te 3
VPlT Ai Site 1
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
18
approche de VPN, qui combine les avantages du modèle Overlay (isolement entre les
clients) à la flexibilité de routage du modèle Peer-to-Peer. On parle de la technologie
MPLSNPN [21]. Le principe de ce modèle est illustré à la figure 7 [18].
Customer Edge
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
I9
Une autre grande application de MPLS est le traffic engineering, ou ingénierie de trafic.
Pour bien comprendre son principe, on a coutume de présenter le fameux « problème du
poisson », illustré par la topologie de la figure 8.
R6
R2
Supposons que RI et R2 veuillent tous deux envoyer du trafic à R7. L'Interior Gateway
Protocol (IGP) choisissant le chemin le moins coûteux, tout le trafic sera dirigé vers le
routeur R6.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
20
b. Réajuster les métriques pour effectuer du load-sharing entre les routes R3-R6-R7
et R3-R4-R5-R6-R7 : si cette solution apparaît satisfaisante pour ce cas-ci, elle
n'en reste pas moins difficile à mettre en place pour des topologies de réseau
plus larges, et souffre donc d'un sérieux problème de mise à l'échelle;
c. Utiliser plusieurs chemins définis selon plusieurs critères, incluant la métrique,
mais aussi la bande passante nécessaire, afin d'optimiser l'exploitation des
ressources réseaux: c'est là que MPLS TE entre enjeu.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
21
MPLS en tant que tel ne se limite pas à 1' apport d'une technologie supplémentaire parmi
tant d'autres, mais s'affiche comme un élément clé d'une mutation majeure des réseaux.
En effet, l'observation de l'évolution du monde des télécommunications montre depuis
quelques années une tendance très forte vers un nouveau paradigme de réseau. Ce
profond changement s'est opéré du fait de plusieurs facteurs [22] :
a. La dérégulation des marchés, qui a permis une concurrence plus féroce entre les
différents acteurs, poussant chacun à innover tout en réalisant des économies
d'échelle pour rester compétitif;
b. L'apparition de nouveaux services proposés au consommateur: l'échange de
voix seule ne suffit plus, de nombreuses fonctionnalités multimédia sont
déployées, notamment l'accès à Internet à haut débit, quel que soit l'endroit où se
trouve 1'usager;
c. Les évolutions technologiques des réseaux de données de ces dernières
décennies, notamment la prépondérance, pour ne pas dire hégémonie, de la
technologie IP dans le monde, le développement de nouvelles technologies
comme MPLS, lesquelles permettent de nouvelles fonctionnalités et l'évolution
des réseaux de transport vers du très haut débit (commutation optique,
multiplexage de longueur d'ondes, en anglais Wavelength Dense Multiplexing
(WDM)).
Ces différents éléments ont clairement fait ressortir à la fois le besoin et la possibilité
technique d'une évolution des réseaux de télécommunications traditionnels, vers un
réseau plus rapide, plus riche en fonctionnalités tout en étant plus économique. Les
nouvelles technologies ont notamment permis d'acheminer sur IP des informations avec
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
22
des contraintes de QoS fortes, chose impossible avec IP seulement. Ainsi, les réseaux de
voix et de données, jusqu'alors clairement distincts, ont convergé pour ne former qu'un
seul et même réseau: on parle de réseau convergent. Toute l'information, voix ou
données, transite sous forme de paquets sur des réseaux de données, majoritairement IP.
La figure 9 [22] illustre la structure actuelle des réseaux métropolitains (Metropolitan
Area Network (MAN)), régionaux (Regional Area Network (RAN)) et étendus (Wide
Area Network (WAN)).
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
23
commutation par paquets, mais aussi la commutation temporelle, spectrale (par longueur
d'onde) et spatiale.
Le propos ici n'est pas d'expliciter chacune des technologies évoquées (leur complexité
mériterait une présentation qui dépasserait le cadre de notre mémoire) mais bien de
montrer que MPLS (et à terme G-MPLS) est une technologie incontournable dans la
mutation des réseaux qui est en train de s'opérer. Pour les opérateurs ne l'ayant pas
encore déployée, la question n'est pas de savoir s'il faut ou non le faire, mais quand. Le
groupe d'experts GARTNER prévoit une hausse de NGN de plus de 60% ces 5
prochaines années [24].
MPLS est donc une technologie riche et puissante, devenue essentielle ces dernières
années. Néanmoins, comme nous l'avons expliqué dans le chapitre précédent, la
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
24
croissance en complexité des réseaux requiert une gestion toujours plus rapide, plus
économique et plus efficace, et MPLS ne fait pas exception. Il est donc crucial de fournir
aux administrateurs un moyen de superviser le réseau MPLS, visualiser les LSP,
dimensionner les tunnels TE et détecter les pertes de paquets ou même les congestions.
L'utilisation d'un terminal où passer des commandes pour obtenir des informations ne
suffit plus ou devient trop coûteuse en temps quand le nombre de LSP devient important.
Ainsi, après avoir présenté cette technologie et ses applications principales, examinons
dans le cadre de notre problématique les approches et outils existants.
2.2.1 RFC
Ainsi, un .framework pour la gestion de MPLS a été établi, A Framework for Multi-
Protocol Label Switching (MP LS) Operations and Management (OAM) [25]. Cette
RFC (4378) reprend les cinq points de la gestion réseau (FCAPS) tout en explicitant
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
25
chacun dans le cadre de MPLS. Il permet ainsi une vue globale de la problématique
abordée ici. Néanmoins ce document reste général : il tire les grandes lignes des défis à
relever pour la gestion des réseaux MPLS, sans vraiment proposer de solutions.
La RFC 4377 [9], OAM Requirements for MPLS Networks présente également les
exigences en OAM de réseaux MPLS, collectées auprès de professionnels des réseaux
ayant déployé et testé MPLS, notamment les fournisseurs de service. Cette RFC permet
donc d'être sensibilisé aux besoins de gestion des réseaux MPLS, tout en tirant profit de
1' expérience du monde industriel. Cependant, là encore, aucun élément de résolution
n'est apporté, la RFC soulevant seulement les difficultés de l'OAM.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
26
Dans la première catégorie, les auteurs dans [32] présentent une vue globale de la
gestion de réseaux MPLS, à l'instar de la RFC4377 évoquée précédemment. Cependant,
en plus des RFC de l'IETF, cet article se base sur des recommandations de l'ITU-T.
AT&T partage ses expérimentations de MPLS dans [7]. Le principal thème abordé ici
est l'objectif d'une gestion totalement automatisée en préconisant l'utilisation des MIB,
mis en relief par 1' expérience de 1' entreprise.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
27
Ces différents recherches, bien qu'intéressantes dans leur contenu, ne présentent aucun
résultat, fruit d'une implémentation de méthodes ou techniques évoquées, sauf celui de
[7] mais qui n'offre que des statistiques, telles le trafic transitant et l'utilisation des
processeurs des routeurs PE. Examinons à présent les travaux réalisés en matière d'outils
dédiés à MPLS.
D'autres outils de gestion MPLS ont également été développés, mais ils couvrent le plus
souvent un aspect précis, souvent lié à la QoS. Ainsi, Routing and Traffic Engineering
Server (RATES) [3 7] est un outil mis au point pour MPLS TE. Il permet la mise en
place dynamique de LSP, mais seulement quand la bande passante est garantie. Enfin,
MPLS Adaptive Traffic Engineering (MATE) [38] est une autre initiative d'outil pour
MPLS TE, permettant de répartir la charge de trafic entre plusieurs LSP à même
destination.
Les différents outils proposés dans le monde de la recherche abordent donc la gestion de
configuration, en automatisant au maximum le dimensionnement des LSP pour satisfaire
la QoS et éviter la congestion. TEAM a été 1' outille plus riche en fonctionnalités.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
28
Le monde industriel, bien conscient des réalités de la gestion des réseaux, propose lui
aussi plusieurs outils pour assister l'administrateur réseau.
Un des outils les plus connus est What's Up d'Ipswitch [39], lequel fournit une solution
de gestion d'un réseau IP qui se veut la plus complète possible. Il permet notamment de
découvrir les différents équipements dans un réseau donné, de visualiser rapidement
1'état du réseau, et d'être alerté en temps réel de pannes, par notification graphique,
courriel, voire Short Message Service (SMS). Une capture d'écran de What's Up est
présentée à la figure 11 [39].
Alroute1s
IPAangeScan (2005-C
El Cil,.,...".
New Engl<lnd
· (ijlpswich Aout
: (ij Sales Swich
'Q MaiMool
Central MA Office
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
29
Il est cependant dédié au réseau IP et ne prend pas en charge la technologie MPLS. Nous
avons néanmoins jugé souhaitable de mentionner cet outil, car même s'il ne s'applique
pas dans notre problématique, sa richesse en fonctionnalités en fait une référence dont
on peut s'inspirer.
Un autre outil, ou plutôt une autre famille d'outils reconnue dans la gestion de réseaux
est la série HP OpenView [40]. Il s'agit en fait d'une gamme de logiciels dédiée à la
gestion des services informatiques. L'architecture d'HP OpenView est modulaire. En
particulier, le module Infrastructure management prend en charge la gestion des
infrastructures. Au sein de ce dernier, il existe un composant dédié à MPLS, HP
OpenView Network Services Management Solution for MPLS networks [41] . MPLS est
ici principalement perçu pour son utilisation en tant que VPN. Ainsi, cette solution
permet notamment de mesurer le trafic circulant dans les VPN MPLS, s'assurant que la
QoS définie est bien respectée. La figure 12 [40] en présente un aperçu. Néanmoins,
aucune mention n'est faite d'autres aspects de MPLS, comme le TE. De plus, de par ses
nombreuses caractéristiques autres que MPLS, cette famille d'outils reste onéreuse et
lourde à déployer, comme tout outil très complexe.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
30
·-.. - ......_---
. . . . . 1(# . . . . . .~. . . . . . . . . ._,._4,.,.,_ ................... .,.................
..._,_ --
................. ... - ·- .......
- ,.-=-'
.... ...
• ... •
--
~ .....
,....., .................
,.,.,.. ....
... .................
,_.._,._'litlli
-
....,._
~ ..'tlt'N._._. ............... -
...
"
....-· ......
............_ H
•
•
'
.......
.. __-.
~..._...,_.,..,...._H
--
........... ......
- --
-
~
..•
,
Une troisième famille d'applications de gestion réseau trouvée est Cisco IP Solution
Center (ISC) [42]. Il s'agit d'un outil complet s'attaquant à chacun des aspects de
MPLS, VPN comme TE. Son architecture est illustrée figure 13.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
31
On imagine aisément qu'il s'intègre bien avec l' Integrated Operating System (lOS)
Cisco [43], du fait de la même compagnie. Cependant c'est par là même une lacune
majeure: ISC ne fonctionne en effet qu'avec des équipements pourvus de l'lOS Cisco.
L'étude menée sur l'état de l'art de la gestion des réseaux MPLS fait ressortir plusieurs
points. Comme nous l'avons expliqué précédemment, la problématique de gestion des
réseaux est vaste et complexe, et MPLS ne fait pas exception. Ainsi plusieurs
recommandations ont été établies ne serait-ce que pour lister tous les besoins en matière
de réseaux MPLS. Les RFC et articles «généraux» permettent d'être sensibilisés aux
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
32
divers défis, grâce à l'expérience industrielle. Ils n'offrent aucune solution tangible,
mais servent plutôt de guide, d'orientation, de référence.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
33
L'étude de 1' état de 1' art a montré la richesse et la complexité de la gestion des réseaux
MPLS. Alors que cette technologie devient incontournable, son besoin de gestion l'est
également. Plusieurs problématiques de la gestion ont été abordées, notamment la
gestion de configuration à travers 1' automatisation dimensionnement des tunnels MPLS
TE pour maximiser les ressources du réseau.
Néanmoins, aucun outil n'a été trouvé, permettant simplement de visualiser un réseau
MPLS avec toutes ses caractéristiques (LSP, VPN, TE ... ), dans un réseau aux
équipements provenant de différents constructeurs. De plus, la problématique de gestion
des pannes dans MPLS n'est pas souvent abordée, ou alors seulement en théorie. La
jeunesse des différents travaux et des références abordant ce sujet témoigne de la
primeur de ce champ d'études.
Comme nous l'avons mentionné, la gestion des réseaux MPLS est un domaine large,
alors sans avoir la prétention de fournir un outil couvrant toute cette thématique, notre
outil se propose de répondre à des points non abordés jusque là, ou d'améliorer les
aspects déjà étudiés.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
CHAPITRE3
« Les idées ne sont pas faites pour être pensées mais vécues. »
André Malraux
Après avoir présenté l'état de l'art de la gestion des réseaux MPLS, nous proposons un
nouvel outil QoS MPLS Assistant (QMA) pour répondre à certains besoins identifiés.
Comme son nom l'indique, QMA comprend deux volets: un pour la QoS, l'autre pour
MPLS. Ce mémoire se concentre exclusivement sur l'aspect MPLS, la partie QoS
faisant l'objet d'une autre maîtrise [44]. Ce chapitre s'organise ainsi: tout d'abord les
différentes spécifications de QMA sont énumérées et expliquées. Ensuite, pour chacune
des spécifications, les différentes options sont présentées et la meilleure alternative est
retenue en justifiant.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
35
2. Afficher les LSP : QMA doit offrir une visualisation des LSP mis en place dans le
réseau. L'utilisateur doit pouvoir lister les LSP par origine-destination, ou alors
énumérer les LSP passant par un équipement précis. Pour chaque LSP, la liste des
segments doit être affichée. Également, QMA doit afficher pour chaque LSP sa FEC
(souvent une adresse ou une plage d'adresses IP et/ou des numéros de ports).
3. Afficher les Tunnels: les tunnels MPLS TE étant des LSP particuliers, une partie de
cette exigence a déjà été exprimée précédemment. Cependant, QMA doit afficher les
propriétés propres des tunnels, comme la description, la bande passante utilisée, les
priorités d'établissement et de maintien, l'affinité et les statuts administratif et
opérationnel. Il est souhaitable d'avoir des statistiques sur les tunnels, comme la
quantité de trafic y transitant.
4. Afficher les VPN : QMA doit permettre la visualisation des VPN : pour chaque
routeur les informations des VRF.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
36
6. Prévoir le réseau : il serait souhaitable que QMA puisse prévoir le trafic d'un lien,
LSP ou tunnel donné, afin d'en connaître la valeur sans avoir à interroger trop
souvent le réseau, ce qui encombrerait inutilement la bande passante. En elle-même
cette fonctionnalité garde un intérêt limité, mais constitue un premier pas dans des
perspectives d'évolution où l'on voudrait ajouter de la configuration dynamique de
LSP ou tunnels, aspect largement abordé dans les articles donc non repris ici.
En plus des exigences fonctionnelles, voici d'autres spécifications que doit respecter
QMA:
8. Plusieurs utilisateurs : QMA doit pouvoir être utilisé par plusieurs personnes en
même temps, au moins cinq, nombre estimé d'administrateurs travaillant
simultanément sur le réseau.
11. Évolutivité : QMA doit permettre des évolutions, notamment des ajouts de
fonctionnalités, éventuellement son intégration dans une application plus large. Un
soin particulier sera donc apporté pour fournir un produit modulaire, documenté,
facilitant au maximum la réutilisation des composants. Il va sans dire que QMA doit
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
37
être conçu et développé avec un maximum de simplicité. Une telle spécification est
difficilement quantifiable, mais permet de donner une direction au travail.
12. Simplicité: QMA se veut être simple d'utilisation. On estime donc qu'il faudra donc
au plus une heure à un nouvel utilisateur pour maîtriser l'outil : il s'agit du temps
maximum estimé pour qu'un néophyte puisse découvrir et maîtriser toutes les
fonctionnalités.
13. Ergonomie: QMA est conçu pour faire gagner du temps à ses utilisateurs. Ainsi, il
est conçu dans une perspective ergonomique : il ne faudra pas plus de quatre clics de
souris pour atteindre une fonctionnalité du système.
14. Indépendance du constructeur: QMA doit pouvoir opérer quelle que soit la
marque de l'équipement MPLS, pourvu que celui-ci respecte les standards établis
dans les RFC. Il s'agit de la fonctionnalité innovante principale par rapport à ISC.
15. Impact minimum sur le réseau: QMA doit avmr un impact minimum sur le
réseau, en termes de trafic généré. Là encore, il s'agit d'une spécification non
quantifiée, mais qui confère un cap à suivre.
QMA doit proposer un certain nombre de solutions à des problèmes précis. Nous
présentons ici l'approche de QMA pour répondre à ses exigences, d'un point de vue
architectural tout d'abord. Rappelons, une fois de plus, que les détails de
l'implémentation de QMA seront fournis dans le chapitre suivant. Pour l'heure, il
convient premièrement de comprendre la structure de QMA à haut niveau. Reprenons
donc les spécifications exposées pour y répondre.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
38
Un aspect crucial de QMA est son interaction avec le réseau. Les premières
spécifications (1-4) imposent que QMA obtienne de celui-ci toutes les informations
jugées essentielles, tout en minimisant l'encombrement de la bande passante (14).
Notons que dans le cadre des spécifications proposées, il s'agit davantage de collecter
des informations du réseau (lecture) que de les modifier (écriture). QMA n'est en effet
pas prévu pour la configuration automatique de LSP, mais plutôt pour leur visualisation.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
39
• Trivial File Transfer Protocol (TFTP) [51] : davantage utilisé pour des
configurations que pour des commandes ponctuelles, même régulières.
Les outils présentés au chapitre précédent comme What 's Up ou TEAM montre une
préférence très nette pour SNMP, du moins quand il s'agit de récupérer des informations
du réseau. Pour la configuration, TEAM utilise un client Te/net ou alors TFTP pour
uploader un fichier de configuration. L'implémentation de serveurs SSH au sein des
routeurs est relativement récente (elle n'est présente dans aucune General Deployment
des lOS Cisco ), ce qui expliquerait encore que ce protocole ne soit pas encore utilisé,
malgré ses qualités. IP Solution Center de Cisco, en revanche, l'utilise déjà [42].
La première idée est donc de recourir à un protocole sécurisé, si 1' on souhaite accéder au
réseau de n'importe où, comme le montre la figure 14.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
40
/ LER log""'
1
'~-<$-~-1--,C"_ _ _ _ _ LSR _ _ _ _
Néanmoins, le recours à Telnet peut ne pas être gênant, si le serveur qui établit la
communication avec le(s) routeur(s) se trouve dans une "zone de confiance". La figure
15 illustre un tel cas. Il faut alors utiliser un protocole sécurisé entre la machine client, et
le serveur situé dans la zone de confiance.
Dans tous les cas, il est important de souligner que les différents moyens d'interagir avec
un routeur ne s'excluent pas mutuellement. Certes, avec SSH, Te/net devient inutile,
mais SSH ne remplacera jamais SNMP, ou même 1'utilisation de TFTP. Au contraire, ils
peuvent être complémentaires.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
41
LSR
Dans le cadre de QMA, SNMP reste la meilleure option pour les raisons suivantes :
• C'est un protocole conçu pour un échange automatisé d'informations, à l'inverse
de Te/net ou SSH. En effet, ces deux protocoles sont plutôt utilisés par un
administrateur directement pour interagir avec un routeur. Au contraire, les
informations telles qu'elles sont obtenues par SNMP sont certes riches, mais
difficilement compréhensibles sans traitement préalable.
• Grâce à l'utilisation d'UDP, il encombre moins la bande passante que des
protocoles basés sur TCP, satisfaisant ainsi la spécification 14.
• Il permet l'indépendance des constructeurs (spécification 13) dans le sens où
l'implémentation des MIB est standardisée par des RFC. Si les informations
étaient obtenues par Telnet par exemple, il faudrait s'adapter à chacun des
logiciels sur les routeurs des différents constructeurs.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
42
Une problématique majeure que devrait traiter QMA est la détection de pannes. Celle-ci
existait bien évidemment déjà avant MPLS, et quelle que soit la technologie réseau des
mécanismes de détection y ont toujours été implémentés.
Comme MPLS s'insère entre la couche liaison et la couche réseau, on peut être porté à
croire que les dispositifs pour ces deux niveaux sont suffisants. Or il n'en est rien.
En effet, considérons par exemple qu'un problème dans une session LDP, ou une
intervention humaine maladroite, corrompe la table des labels MPLS dans un routeur.
Alors le routeur contiendrait dans sa table des valeurs de labels qui ne correspondent
plus à celles de la table de son voisin. Il se pourrait que le label erroné puisse être
interprété par le routeur suivant comme ayant une autre signification (dans le cas d'un
renouvellement de la table par exemple), auquel cas le paquet sera envoyé vers une
mauvaise destination. Mais plus simplement, une corruption de labels pourrait faire
qu'un routeur enverrait un label inconnu à son voisin, lequel ignorera alors purement et
simplement le paquet comme spécifié dans [8]. Un tel cas est illustré figure 16.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
43
Une panne au niveau MPLS peut ainsi conduire à un "trou noir". Or, s'il s'agitjuste
d'une corruption de labels : au niveau de la couche liaison, tout sera fonctionnel, aucune
anomalie ne sera détectée. Les auteurs de [33] résument les anomalies au niveau de LDP
qui peuvent provoquer des erreurs dans les labels : erreur de session, erreur de
configuration, labels obsolètes, erreurs dans l'implémentation du protocole, corruption
de la table des labels.
Figure 16 « Trou noir » suite à une corruption dans la table des labels
Bien conscients des limites, dans le monde MPLS, des mécanismes de détection
traditionnels, les chercheurs et ingénieurs se sont appliqués à imaginer et concevoir des
mécanismes pouvant détecter et/ou diagnostiquer des pannes dans un réseau MPLS. Les
deux groupes pnnc1paux ayant étudié cette question sont 1'International
Telecommunication Union (ITU) et 1'IETF.
ITU-T
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
44
seconde, des paquets "tests" sur le LSP, contenant l'information du LSR Ingress et du
LSR Egress [32]. Le format d'un paquet CV est présenté figure 17 [32].
Il y a un empilement de labels, le second label servant à désigner un paquet de contrôle
avec un label 14 (désigné comme le label Operation Administration and Maintenance
(OAM) [52]), le champ EXP devant désigner la priorité maximum. Le champ clé est le
champ Trail Termination Source Identifier (TTSI) identifiant le LSR Ingress (LSR ID)
et le LSP (LSP ID).
LSPlTSI
,c
f ,..
10
<
:::J
a. V\
m
! i ~
r;
....~
r-
22 Vi V\ 10 0
... ~ iii ~
V\ I<
-- à
:::J
Paddi'm
...
'"til :;:g Q.
..... '"Cl
:::.: 8
tr
(ali 00 Q;' '< i r-
en 6 6
-i
Al
= ....... 0
0 i s ....
.-. ë
10
0 ô..... è
e -
2 octets 18 octets 4 16 octets 3 8 bits 1 3 bits 1 8bitsl 3 20
octets octets 1 bits bits
1 octet 1 bit 20 bits 1 bit
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
45
Pour permettre une détection plus rapide, la recommandation révisée 1711 a en outre
développé le concept de Fast Failure Detection (FFD), permettant d'envoyer des
paquets CV à intervalle plus court.
IETF
L'IETF, de son côté, a proposé une gamme plus large d'initiatives pour la détection et le
diagnostic de bris de LSPs.
Pingffraceroute MPLS
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
46
..,
4 bytes V IIHll ToS length
Fragment
4 bytes Identification offset
4 bytes Til jProtocol Header CKS > 1Pv4 header
4 bytes Source address
/,__.,...
1 = MPLS echo
2 bytes 0000 request
2 = MPLS echo
1 byte Message type reply
\
1 byte Return code/subcode 2 = R'tly via 1Pv4
OP
4 bytes Sender handle 3 = Repw via UDP
wit RA
4 bytes Sequence number
Ping MPLS présente typiquement deux types de messages, echo request et echo reply,
mais il est plus souple que son prédécesseur IP : on peut spécifier au destinataire de ne
pas répondre (avec reply-mode mis à 1) : l'intérêt est alors au niveau du récepteur de
compter les ping reçus et d'enregistrer des statistiques de délai, gigue, par exemple dans
une MIB à l'instar des ping IP, ce qui en outre traite la question du chemin de retour (si
un ping ne reçoit pas de réponse, il est difficile de déterminer lequel des paquets request
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
47
ou reply s'est perdu). Il est également possible de demander une réponse avec l'option
Router Alert dans l'en-tête IP, obligeant les routeurs à examiner plus attentivement le
paquet[53].
Un ping MPLS sert à vérifier qu'un paquet envoyé sur un certain LSP arrive bien au
LER Egress de ce LSP. Pour cela, il contient un ou plusieurs champs Type Length Value
(TLV) servant à identifier la FEC. Par exemple, un LER associe 1' adresse 172.168.18.64
au label 37, et il veut s'assurer que ce label permet bien d'acheminer le paquet vers
l'adresse donnée. Alors il envoie un ping MPLS avec le label 37, contenant un champ
TLV où le type sera "LDP !Pv4 Prefix", avec comme valeur 172.168.18.64. Le champ
TTL de la shim est mis à 255, pour s'assurer que le paquet peut aller jusqu'au LER
Egress, et le champ TTL de l'en tête IP à 1 pour ne pas sortir du nuage MPLS. Ainsi, le
routeur Egress pourra analyser le champ TLV et vérifier qu'il est bien le routeur Egress
pour cette adresse.
Traceroute MPLS est semblable à traceroute IP : il consiste à envoyer des ping avec des
TTL croissants, afin notamment de localiser une faute. Un champ TLV spécial est conçu
dans le cas de chemin multiple Equal Cast MultiPath (ECMP) :il s'agit du Downstream
Mapping. Il permet à un routeur Downstream d'informer le routeur Ingress de plusieurs
chemins ; dans ce cas, le routeur Ingress envoie différentes requêtes pour tester les
chemins possibles. Une utilisation habituelle de pingltraceroute MPLS est donc
d'effectuer des ping réguliers et de recourir au traceroute en cas de problème, c'est-à-
dire paquets perdus ou contenant un code d'erreur indiquant un dysfonctionnement.
Cependant, à cause de ses mécanismes de contrôles, ping MPLS ne permet pas des
détections de pannes inférieures à la seconde.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
48
BFD est un principe qui n'est pas limité au monde MPLS, puisqu'il est multicouches
[54]. Cependant, des travaux ont été menés pour l'adapter à MPLS [55]. Le principe est
d'établir des sessions pour chaque LSP et d'envoyer régulièrement des paquets pour
vérifier la connectivité. Les sessions sont démarrées par des ping MPLS, permettant
ainsi la vérification du champ de contrôle (le bon label est utilisé pour la bonne FEC),
puis maintenues par des paquets de contrôle BFD.
Un mode adjoint est le mode écho, où les paquets reçus sont renvoyés à l'expéditeur.
Chacun des modes a ses avantages et inconvénients respectifs, suivant les protocoles
pour lesquels BFD est utilisé. Néanmoins dans le cadre de MPLS, le mode asynchrone
paraît le plus adapté : on souhaite un temps de détection court, ce qui disqualifie le mode
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
49
Le principe de LSR Self Test est d'effectuer une vérification locale [56]. Ainsi, LSP Self
Test ne vérifie pas un LSP, seulement la connectivité entre les routeurs Test, Upstream
et Downstream. Le fonctionnement de Self-Test est illustré figure 19.
L1
. 1
. 4
2 3 Downstream
Upstream Test
L1 L2
Le routeur Test envoie une requête à son routeur Upstream (1) avec un TTL qui doit
expirer au routeur Downstream. Celui-ci renvoie le paquet au routeur Test (2), lequel le
transmet au routeur Downstream (3). Le routeur Downstream émet alors une réponse
vers le routeur Test pour le notifier du succès du test (4).
Les paquets échangés sont des ping MPLS, mais pour minimiser le travail du routeur
Downstream, deux nouveaux types de messages ping MPLS sont créés : MP LS Data
Plane Verification Request et MPLS Data Plane Verification Reply: les timestamps sont
notamment supprimés.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
50
Pour minimiser la charge du routeur Upstream, LSR Self-Test introduit la notion de FEC
de type Loopback. En cas de réception d'un label de FEC Loopback, le routeur ôte ce
label (POP), puis renvoie le paquet via son interface d'arrivée. La FEC Loopback permet
en outre de tester des labels entrants du routeur Test qui ne sont pas encore assignés par
le routeur Upstream.
L'étude des mécanismes proposés par l'ITU-T et l'IETF fait apparaître un contraste
assez marquant : les propositions IETF sont plus nombreuses, plus accessibles, et
proviennent de professionnels d'équipements de réseaux, notamment Cisco et Juniper.
C'est donc sans surprise que les mécanismes implantés actuellement dans les routeurs
sont principalement issus des travaux de l'IETF.
Par ailleurs, les propositions IETF sont préférables pour des raisons plus techniques :
a. la recommandation Y.1711 ITU-T nécessite de pouvoir gérer le champ TTSI,
alors que ping MPLS utilise des TLV déjà connues (par exemple une adresse
IPv4);
b. la fréquence d'envoi des paquets CV de Y.1711 est fixe, alors que celle de BFD
est modifiable ainsi que l'envoi des pings MPLS. Mais il est vrai que FFD
permet aussi une fréquence modifiable;
c. la recommandation Y.l711 permet de détecter une erreur (perte de paquet,
mélange de LSP ... ), alors que ping/traceroute MPLS permet aussi de localiser
l'erreur.
Ainsi, la gamme d'outils proposée par l'IETF est plus riche, et plus souple que les
recommandations ITU-T en matière de détection et diagnostic de LSP brisés. De plus,
les propositions sont actualisées régulièrement : il est significatif de voir que les
références de ping MPLS, BFD, LSR Self-Test datent toutes de moins d'un an.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
51
L'analyse des outils proposés par l'IETF suggère ces quelques points:
a. ping/traceroute MPLS permet de détecter et localiser les pannes mais les
contrôles effectués prennent du temps;
b. BFD est rapide pour détecter une perte de connectivité, mais effectue moins de
contrôle que ping MPLS;
c. LSR Self-Test est efficace pour la vérification d'un routeur, mais il ne permet
pas de vérifier un LSP dans son ensemble. Dépendant le type de protection à
apporter, ce mécanisme sera choisi ou délaissé.
Ainsi les différents outils proposés ont chacun leurs spécificités, mats une sage
combinaison permettra d'en tirer le meilleur profit : on peut par exemple utiliser BFD
pour une détection rapide, en cas de panne recourir à ping MPLS afin de vérifier le
contrôle de données, puis localiser le problème avec traceroute MPLS.
Il est important avant tout de proposer une architecture disponible pour le maximum de
réseaux, nous supposons que le serveur chargé d'automatiser la surveillance du réseau
ne se trouve pas dans une zone de confiance, et par conséquent requiert une
communication sécurisée avec le routeur. SSH et SNMPv3 doivent donc être utilisés
pour les échanges équipements/serveur.
On suppose ici que la topologie du réseau est parfaitement connue, notamment tous les
LSP.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
52
Une des premières choses à faire est de se "mettre à l'écoute" du réseau, en configurant
le serveur pour recevoir des traps précises. Les traps sont définissables par l'agent, en
particulier pour des MIB expérimentales, c'est pourquoi nous ne pouvons pas fournir ici
de liste de traps à écouter et quelles actions prendre pour chacune, il s'agit plutôt d'une
recommandation générale.
Idéalement, il faudrait même configurer des informs plutôt que des traps, les informs
étant acquittées. Néanmoins, les traps restent encore plus fréquentes.
Certains LSP peuvent être plus importants que d'autres. En fait, de nombreux LSP
existants ne sont pas utilisés pour transiter les données. C'est le cas des LSP entre
routeurs de cœur de réseau. Ainsi, il faut définir quels sont les LSP à vérifier. Ceci peut
être accompli de plusieurs manières :
a. Lister explicitement les LSP à vérifier (ou à ne pas vérifier) : pratique, mais
seulement adapté pour des petits réseaux;
b. Considérer les LSP avec une ou plusieurs propriété(s) précise(s) : par exemple,
une origine avec un LER défini, un nombre minimum de sauts, etc ....
Une fois la liste des LSP à vérifier établie, il faut les contrôler un à un. Ceci permet de
contrôler chacun des LSP, mais à grande échelle, une telle pratique s'avère coûteuse, en
termes de trafic notamment. Cependant une telle procédure est nécessaire pour garantir
un temps de détection de pannes maximum. En revanche, certains LSP peuvent ne pas
nécessiter de détection rapide, auquel cas ils peuvent être contrôlés ponctuellement, sur
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
53
la base d'une fréquence déterminée par l'administrateur. En cas de très grand nombre de
LSP, on peut imaginer une vérification statistique où un certain nombre de routeurs, là
encore paramétrable, sont aléatoirement sélectionnés et contrôlés, le tout à une fréquence
donnée. Néanmoins, une telle approche ne doit pas être utilisée pour des LSP dont on
veut garantir une détection rapide. Elle peut s'avérer utile sur des LSP de secours en
revanche.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
54
On souhaite connaître, pour un lien donné, la bande passante d'un lien, le plus souvent
possible, et avec le minimum d'erreur. Le mot «souvent» étant subjectif, il conviendra
à l'utilisateur de définir l'intervalle de temps entre chaque valeur calculée. Les résultats
doivent être calculés automatiquement, sans intervention humaine.
Le trafic est supposé inconnu, rendant toute modélisation aléatoire et par conséquent
risquée. Néanmoins, on peut conjecturer qu'une saisonnalité sera présente (le trafic étant
généralement plus faible la nuit et les jours de repos).
Le besoin de prévision étant très largement répandu, dans divers domaines, plusieurs
méthodes de prévision ont été mises au point. On peut diviser les méthodes en 3
catégories : les méthodes par expertise, les méthodes explicatives, et les méthodes par
extrapolation.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
55
réinterroge les experts en leur faisant tenir compte des résultats globaux. Ce processus
est réitéré autant de fois que jugé nécessaire.
Bien qu'intéressante dans des cas très précis, cette approche souffre de deux principaux
inconvénients : son efficacité repose sur la qualité des personnes interrogées, mais
surtout il est très difficile, voire impossible, d'automatiser ce type de méthode. Les
méthodes par expertises sont donc inappropriées pour notre problématique.
Méthodes explicatives
On compare ici la série à prévoir avec d'autres séries, qui servent alors de références. En
démontrant le lien entre la série et ses références, on peut la prévoir à partir des
estimations de celles-là. Or, si là encore dans plusieurs situations précises une telle
approche peut s'avérer payante, il convient de trouver des séries « références » que 1' on
connaît davantage, afin d'obtenir des estimés fiables rapidement. Ne disposant que de
peu d'informations sur le trafic que l'on cherche à prévoir, il paraît difficile d'expliquer
notre série à l'aide d'autres séries plus connues.
Les méthodes par extrapolation consistent à étudier le passé d'une série afin d'en
apprendre le plus possible, pour ensuite deviner les valeurs futures en extrapolant le
passé. Examinons différentes méthodes par extrapolation :
Une série peut être décomposée en une combinaison des éléments suivants [57] :
.Kt=Tt+St+Ct+et (3.1)
a. T1 Tendance: effet à long terme de la série;
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
56
Par exemple, pour une suite à saisonnalité additive (la saison s'ajoute à la tendance), la
suite se décomposera ainsi :
X,=Tt+St+Ct+t:t (3.2)
Dans le cadre d'une suite à saisonnalité multiplicative, on aura plutôt:
X,=TtSt+Ct+t:t (3.3)
Lissage exponentiel
Le lissage exponentiel [57] suppose que la série va suivre le même modèle que dans le
passé. Il consiste, dans sa forme la plus simple, à prédire la série comme somme des
valeurs passées pondérées par des coefficients calculés de façon à privilégier les valeurs
récentes.
Le cas le plus basique est le lissage exponentiel simple, où, pour une suite Yt. la valeur
estimée St est
(3.4)
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
57
Cependant ce premier modèle s'est vite avéré insuffisant pour des séries sophistiquées
(du moins avec présence d'une tendance), d'où l'apparition de lissage exponentiel
double voire triple (dans le cas où la série présente une tendance et une saisonnalité).
Plus de calculs sont alors nécessaires.
Filtre de Kalman
Le filtre de Kalman [57] est un filtre récursif puissant permettant de déterminer l'état du
système à partir de mesures incomplètes et bruitées, en minimisant la covariance de
l'erreur d'estimation. Les applications de cette théorie sont diverses, et en particulier
dans le domaine des réseaux de télécommunications.
Le filtre de Kalman suppose que le trafic est modélisé sous la forme suivante :
Où x(k) désigne le vecteur d'état, y(k) le vecteur de sortie, u(k) le vecteur de contrôle,
w(k) et v(k) les bruits de modélisation et observation, supposés de loi normale avec
moyenne nulle et covariances respectives Q(k) et R(k).
Prédiction:
x(m/m -1) = Ax(m -1/m -1) + Bu(m)
{ P(m/ m -1) = AP(m -1/ m -1)Ar + Q(m)
(3.6)
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
58
Estimation :
K(m) = P(m 1m -1)Cr [CP(m 1m -1)Cr + R(m)r 1
x(m 1m) = x(m 1m -1) + K(m)[y(m)- Cx(m 1m -1)]
{
P(m 1m) = {/- K(m)C}P(m 1m -1)
(3.7)
Le filtre de Kalman est une technique puissante dont la précision n'est plus à démontrer.
Cependant il suppose que le modèle sur lequel sont bâties les équations est correct. En
effet, des chercheurs l'ayant implémenté [36, 58] l'ont toujours fait dans le cadre d'un
réseau particulier avec des hypothèses précises. Ainsi, pour un trafic dont on ne sait
finalement que peu de choses, il est hasardeux d'établir un modèle sur lequel reposera le
filtre de Kalman. Des méthodes implémentent un filtrage de Kalman adaptatif, où le
modèle est dynamiquement adapté, mais elles demeurent très sophistiquées et donc par
là même dispendieuses en termes de calculs.
Par ailleurs, son horizon de prédiction est de 1 : il peut prévoir la valeur à t+ 1, mais pas
t+ 2, t+ 3... Nul doute donc de la richesse du filtre de Kalman, mais il s'adapte
finalement mal au cadre de notre projet.
Il n'existe pas de méthode miracle pour toutes les situations, et le nombre de méthodes
de prédiction existantes reflète bien la diversité des situations rencontrées. Il convient
donc de choisir d'après le problème la méthode la plus adéquate.
Après examen des différentes méthodes, la meilleure approche qui nous permet de faire
des prévisions relativement fiables pour un trafic qu'on connaît peu semble être le
lissage exponentiel triple, aussi appelé méthode Holt-Winters. En effet, il est adapté pour
une série avec tendance et saisonnalité, on peut choisir 1'horizon de prédiction et surtout
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
59
cette méthode peut être automatisée. Ses diverses qualités en font donc une technique
appréciée [57, 59, 60].
Où:
Simulation
Pour éprouver cette théorie et ainsi constater par nous-mêmes ses capacités, nous l'avons
implémentée à l'aide de l'outil Matlab sur une série chronologique. Nous avons
composé notre série chronologique d'une tendance linéaire (le trafic augmente petit à
petit), d'une saisonnalité multiplicative, censée représenter les variations journalières, et
d'une composante aléatoire non négligeable.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
60
Nous sommes partis de 500 valeurs de départ, et souhaitons connaître les 100 prochaines
valeurs, à raison d'une mesure tous les cinq. Entre chaque mesure, il faut donc prévoir
quatre valeurs. Les coefficients a, p et y optimaux sont calculés par notre programme.
Simulation de trafic
1500
1400
1300
1200
1100
1000
900
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
61
Notons toutefois que du fait d'une composante aléatoire, chaque simulation ne donnera
pas exactement les mêmes résultats, mais après avoir effectué plusieurs simulations,
nous constatons que les résultats sont similaires.
Nous avons ainsi effectué 1000 simulations et obtenu une erreur carrée moyenne de 400
pour des valeurs autour de 1500.
Prévision de Holt-Winters
1600
~ Prédiction
1550 Suite originale
1500
1450
1400
1350
1300
1250 ~
1200~--~--~--~----~--~--~--~----~~~--~
0 10 20 30 40 50 60 70 80 90 100
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
62
QMA doit imposer une authentification pour s'assurer que seules les personnes
autorisées peuvent 1'utiliser et accéder aux informations. Plusieurs modes
d'authentification existent, du mot de passe à la biométrie. Néanmoins dans le cadre de
cet outil, il ne s'agit pas de prendre un mode démesuré par rapport à 1' information à
protéger. On suppose que l'accès à l'outil en lui-même sera déjà protégé. Le traditionnel
usage du nom d'utilisateur couplé au mot de passe est donc repris ici pour sa simplicité
et son acceptation au sein du personnel.
QMA doit pouvoir être utilisé simultanément par plusieurs personnes (spécification 10).
QMA ne peut donc être un seul programme, une architecture de type client-serveur doit
être déployée : différents clients effectuent des requêtes auprès d'un serveur en charge
de leur répondre. Seul le serveur communique avec le réseau, supprimant ainsi toute
redondance d'informations. De plus, cette architecture est préférable pour des raisons de
sécurité : l'accès au réseau MPLS ne passe que par le serveur, ce qui facilite son
contrôle.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
63
modèle 3-tier. En effet, le modèle 3-tier permet une plus grande flexibilité en séparant
les différentes tâches.
NIVEAV 1 NIVEAV2
4
envoi cles
Set-veut·
Nous choisissons ici l'architecture 3-tier, légèrement plus complexe que l'architecture 2-
tier mais qui apporte la flexibilité recherchée. Sa mise en place dans notre projet est
présentée à la figure 23.
Dans notre architecture 3-tier, chacun des composants a un rôle bien précis :
• Le client cherche l'information auprès du serveur, et la présente de manière
ergonomique à l'utilisateur.
• Le serveur répond aux requêtes du client, en interrogeant les modules adéquats.
Il sert principalement d'interface.
• Les modules sont véritablement le cœur de 1' outil. Ils gèrent la base de données,
communiquent avec le réseau MPLS et exploitent les informations obtenues.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
64
Ce modèle permet donc une approche modulaire, où à chaque partie est affecté un rôle
bien précis. Il permet une plus grande flexibilité : par exemple le changement de base de
données affectera les modules mais restera transparent au serveur web. Il est en outre
possible d'ajouter des mécanismes de sécurité à chaque niveau, rendant le tout plus
robuste. Par ailleurs, les différents modules sont cachés à l'utilisateur qui ne connaît que
le serveur. Pour garantir la confidentialité la communication entre client et serveur se
fait par le protocole HTTPS utilisant la technologie Secure Socket Layer (SSL).
De plus, pour faciliter la disponibilité de cet outil, la partie client sera téléchargée depuis
un serveur web à l'instar d'une applet. Cela dispense les différents utilisateurs de devoir
installer un programme client spécifique. De plus, en cas de contrôles d'accès accrus,
notamment par pare-feu, le recours au web évite de devoir modifier les configurations
relatives aux ports autorisés, le port 80 étant un port commun.
QMA est un projet qui se fait conjointement: comme nous l'avons mentionné
précédemment, il comprend un aspect QoS et un aspect MPLS. De plus il doit pouvoir
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
65
Pour ce besoin majeur d' évolutivité, la solution retenue consiste donc à offrir une
structure la plus modulaire possible, afin que certains composants puissent être aussi
bien utilisés pour l'aspect QoS de QMA que pour MPLS, mais aussi qu'ils puissent être
facilement repris. La modularité de QMA s'exprime dans son implémentation, présentée
au chapitre suivant.
Comme nous l'avons expliqué précédemment, QMA repose sur une architecture 3-tier
pour une meilleure souplesse et plus de sécurité. Se pose alors le choix des technologies
à utiliser pour implémenter 1' outil.
Pour implémenter une solution web, deux technologies phares sont reconnues :
a. Java Platform, Enterprise Edition (Java EE) anciennement J2EE, par Sun [62];
b. .Net proposée par Microsoft [63].
Chacune des technologies avec ses forces et faiblesses respectives a été explicité par un
collaborateur du projet [64]. De nombreuses ressources comparant ces deux technologies
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
66
abondent sur Internet. Le souci d'objectivité n'est cependant pas toujours respecté,
certains choisissant parfois l'une ou l'autre technologie pour des raisons affectives et/ou
idéologiques.
La figure 22 résume les services proposés par ces deux technologies. Rappelons que les
plateformes .Net et Java EE sont concurrentes et qu'à ce titre, aucune ne se démarque
vraiment de l'autre dans les fonctionnalités offertes, du fait de leur compétition
perpétuelle. Java EE est arrivé en 1998 sur le marché, soit trois ans avant .Net. Le
premier bénéficie donc de plus d'expérience et en outre du soutien de la communauté
OpenSource. De plus, il est interopérable, pouvant se déployer sur différents systèmes
d'exploitation..Net quant à lui comble son manque de maturité par une simplicité de
développement, permettant notamment d'utiliser plusieurs langages de développement,
dont C# spécialement conçu pour cette technologie. Ainsi, il tendrait à gagner en
popularité. Néanmoins, il reste à ce jour utilisable seulement sur Microsoft Internet
Information Services (IlS) lequel nécessite un système d'exploitation de la même
compagnie. De plus, des fonctionnalités avancées comme le recours à une applet .Net ne
sont actuellement possibles qu'avec l'utilisation du navigateur Internet Explorer. Les
comparaisons en termes de performances restent contentieuses, nous les supposerons
donc sensiblement équivalentes.
L'équipe du projet Bell s'est donc retrouvée face un choix: d'un côté Java EE, une
technologie interopérable, bénéficiant d'une expérience certaine, mais qui reste
complexe à développer et à maintenir, et de l'autre .Net, technologie jeune mais
prometteuse à l'environnement de développement puissant Visual Studio .Net. La
décision a alors été prise de retenir .Net pour ce projet, pour son côté novateur. Dans le
cadre de ce mémoire, le choix de .Net a ainsi été imposé.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
67
J2EE
J2EE
.Net
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
68
Notons cependant que ce choix reste d'importance secondaire: en effet, de par la nature
modulaire de QMA, toute modification du type de serveur n'impactera que le module en
charge de la communication avec la base de données. Outre la migration des données, il
sera donc facile si besoin de changer le serveur.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
CHAPITRE4
CONCEPTION ET IMPLÉMENTATION
Le choix de .Net ayant été retenu pour ce projet, QMA a été implémenté avec
l'environnement de développement Microsoft Visual Studio [69], d'abord la version
Visual Studio .Net, puis Visual Studio 2005, une fois celle-ci disponible.
Les diagrammes de classes proposés ici ne sont pas exhaustifs pour des raisons de clarté
et de concision. Les listes complètes des composants de chacune des classes
alourdiraient considérablement le mémoire, n'en rendant sa lecture que plus laborieuse.
Ne sont donc présentés ici que les membres et méthodes jugés importants pour la
compréhension de QMA. Ces diagrammes ont été générés automatiquement par Visual
Studio.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
70
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
71
part entière soit exécuté côté client. Celui-ci doit en outre être exécutable depuis
une page Web, d'où l'applet .Net;
e. La base de données: il s'agit de Microsoft SQL Server. La base est donc de type
relationnelle et le langage utilisé SQL.
Sous Visual Studio, chaque composant est un projet, le tout formant une solution comme
le montre la figure 26.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
72
À présent, expliquons chacun des composants plus en détail. Il n'a pas été jugé judicieux
de présenter dans ce chapitre le modèle de la base de données. Celui-ci est néanmoins
disponible à l'annexe 4.
ApplicationPar allele
https ://localhost/WS_QMA/
ModulesQMA
L'applet est un programme devant s'exécuter dans une page Web. Son organisation est
présentée à la figure 27. Ses différents éléments sont les suivants :
a. Les contrôles utilisateurs (User control) peuvent être perçus comme différentes
briques, chacune ayant un rôle précis, formant un tout cohérent et fonctionnel. Ils
sont regroupés en un contrôle plus grand, appelé d'ailleurs QMA qui structure
l'applet, comme le montre la figure 28. Chaque contrôle est explicité dans une
section subséquente, sauf QoSConjig.cs et QosStatsUC.cs exclusivement dédiés
à la QoS et donc non traités ici;
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
73
d. Les autres éléments sont soit des images, soit des fichiers générés
automatiquement par Visual Studio pour son bon fonctionnement. Une référence
au WebService est définie explicitement.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
74
13-·a•~r~
l±l ~ Properties
l±l ;!Ill References
13 l:.::il
Web References
~ QMA_Webservice
8 IL:i; GraphContainer
l±l 4}1 GraphContainer.cs
l±l 4}1 Graphline. cs
~ GraphlineCollection.cs
f±l qi GraphRouter.cs
8 · IG InfoContainer
~ Lsp.cs
~ Tunnel.cs
~ Vrf.cs
~ app.config
•·· ·· ~ Assemblylnfo.cs
l±l ii AuthControl.cs
~ Bell.gif
~ ClassDiagraml .cd
l±l ii ConfigControl.cs
l±l ii DisplayControl.cs
l±l ii EventControl.cs
~ favicon.ico
~ logo.jpg
t±l [il QMA.cs
l±l Il QoSConfig, cs
l±l· fi QosStatsUC.cs
lM routeur, bmp
l±l ii StatsControl. cs
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
75
Cette classe contient donc des TextBox ainsi que des accesseurs Get pour lire le nom
d'utilisateur et le mot de passe rentrés par l'utilisateur. L'utilisation du protocole HTTPS
avec SSL entre l'applet et le Webservice garantit la confidentialité de la vérification,
aucune information ne transitant sur le réseau en clair.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
76
f
~
+Usereontrol
!
13 Fields
:JI login_textBox : TextBox
:JI password_textBox: TextBox
13 Methods
'" AuthControl{)
,. get_login_textBox{): string
'" get_password_textBox{): string
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
77
f
El Fields
:;/' _QMA_WS: Servicel
(1 graphRoutercel: GraphRouter
• graphRouterce2 : GraphRouter
(1 graphRouterce3: GraphRouter
9 graphRouterpl: GraphRouter
• graphRouterp2: GraphRouter
9 graphRouterp3: GraphRouter
9 graphRouterpel: GraphRouter
9 graphRouterpe2: GraphRouter
(1 graphRouterpe3 : GraphRouter
.JI listBoxl: ListBox
:;/' listBox2: ListBox
:;/' statsControll: StatsControl
.JI textBoxl : TextBox
:;/' textBox2: TextBox
# timer_stats: Timer
13 Methods
~· create_data{): void
:JIÎI create_info{): void
~· DisplayControiQ
Jj• explore{) : void
Il• listBoxl_SelectedlndexChanged(objectsender, EventArgs e): void
~· listBox2_SelectedlndexChanged(object sender, EventArgs e): void
Jj., OnTimedEventl{object sender, EventArgs e): void
~· StartTelnet(strlng IP): void
~· updatelistBox2{): void
Jj• updateLSP(string lsp): void
l±.l Nested Types
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
78
Les données sont représentées dans trois classes, contenues dans le répertoire
InfoContainer. La première est la classe LSP, dont la structure est illustrée figure 31.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
79
tsp
Oass
5I Fields
s/1 _egress : string
s/1 _id: string
:JI _ingress : string
Jfl _nod es: SortedList
s/1 _segments : Sortedlist
5I Methods
~"' add_segment{string origin, string destina ...
'Î[il crossing{string router_name): bool
:(f get_segment_infoQ: string
:(f get_segment_lines{): Graphline[J
~• Lsp{string id, stringingress, string egress)
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
80
e. LSP (string id, string ingress, string egress) : constructeur qui prend en
arguments l'id du LSP dans la base de données ainsi que le nom des routeurs
d'origine et de destination.
Un tunnel est un LSP avec des propriétés particulières. Ainsi, la classe Tunnel hérite de
LSP. Elle est présentée figure 32.
Tunnel
Oass
+Lsp
l:l Fields
s/1 _admin_Status : string
s/1 _affinity: string
:;{1 _bw: string
s/1 _descr: string
s/1 _llolding_Priority: string
.JI _mibindex : string
.JI _name : string
s/1 _oper_Status : string
,JI _setup_Priority: string
.JI _totai_Uptime: string
@ Methods
,. get_tunnel_index(): string
"• get_tunnel_properties{): string
~· Tunnel{string id, string name, s ...
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
81
La classe VRF est représentée figure 33. Ses membres sont les suivants:
a. _active_interfaces: nombre d'interfaces actives;
b. _confstorage_type: type de stockage;
c. _eurre nt_routes : nombre de routes configurées;
d. _description : description du VRF;
e. If_ list: liste des interfaces reliées à ce VRF;
f. _illegal_label_violations: nombre de violation de labels dans ce VRF;
g. _ name : nom du VRF;
h. _node : nom du routeur où se trouve le VRF;
1. _ oper_status : statut opérationnel;
j. _rd : Route Distinguisher du VRF;
k. _Route _list : liste des routes du VRF;
1. _ vrf_index : index du VRF.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
82
13 Fields
:;(J _active_interfaces : string
:;(J _confstorage_type: string
:;(J _current_routes: string
:fi _description: string
:;(J _If_list: SortedList
.Ji _illegal_label_violations: sbing
.# _name: string
.JI _node: string
:;(J _oper_status :string
.JI _rd : string
:;(J _Route_list: SortedList
.JI _vrf_index: string
13 Methods
co4ll add_interface(string if_index,. string if_name, string lab .. .
'41 add_route{string destination, string mask,string next_h .. .
"• displayName{): string
~• displayRouter(): string
"• displayRouter_and_Name(): string
~· get_vrf_config_and_ifO: string
~• get_vrf_route(): string
,., Vrf{stringvrf_index,.string node,string name,string rd, ...
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
83
Ce contrôle a pour tâche de lister les évènements enregistrés par QMA. Il est donc
composé d'un Texbox pour l'affichage et d'un accesseur pour l'écriture, comme le
montre la figure 34.
Eventcontrol l"'..·
A;
C2ass
+ Usere:ontrd
r
1:1 Aelds
:;li textBoxl : TextBox
8 Methods
,. set_textBoxl{string value): void
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
84
ConfigCont:rol
aass
.. UserControl
r
5I Fields
gl DbN_textBox : TextBox
gl DbP_textBox: TextBox
gl DbS_textBox: TextBox
# DbSN_textBox: TextBox
..JI DbU_textBox: TextBox
:zP QMA_ws : Servicel
# tabControll :TabControl
.JI tabPagel : TabPage
:;(J tabPage2 : TabPage
:zP tabPage3 : TabPage
il textBox_logs : TextBox
:;(J textBox_traps : TextBox
8 Methods
,. ConfigControl()
,..,
set_DbN_textBox(string text): void
set_DbP_textBox(string text): void
,..,
,. set_DbS_textBox(string text): void
~• set_DbSN_textBox(string text): void
"• set_DbU_textBox(string text): void
s(ff set_log_textbox(string text): void
'"' set_SP_textBox(string text) : void
,., set_su_textBox(string text): void
,. set_traps_textbox{string text): void
.:J• upload_settings{objectsender, EVen ...
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
85
r
EJ Fields
1 :JI tabControll: TabControl
:JI tabMain: TabPage
:JI tabPage2 : TabPage
:JI tabPage3: TabPage
:JI tabPage4: TabPage
:;/' tabPageS : TabPage
:JI textBox_main : TextBox
:JI zgControll: ZedGraphControl
:JI zgControl2: ZedGraphControl
:JI zgControl3: ZedGraphControl
:JI zgControl4: ZedGraphControl
EJ Methods
,. StatsControiO
~· update_stats{string datetime, st ...
li.l Nested Types
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
86
Ce contrôle utilisateur est le composant principal de l'applet. C'est lui qui inclut tous les
autres et qui les coordonne. Il s'organise en onglets, chacun contenant un des contrôles
utilisateurs listés précédemment, à l'exception de StatsControl instancié dans
DisplayControl. La structure du contrôle utilisateur QMA est présentée figure 37.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
87
QHA
Chss
+ UserCantrd
f
8 Fields
authControll: AuthControl
checkBox_explore: CheckBox
checkBox_listen_events : CheckBox
checkBox_listentraps : CheckBox
checkBox_monitor: CheckBox
checkBox_stats_collectîon: CheckBox
confîgControll: ConfîgControl
displayControll: DîsplayComol
eventControll: EventControl
login :string
notifylconl: Notifylcon
pwd: string
QMA_ws : Service!
tabControll : TabControl
tabPageAdvconf: TabPage
tabPageAuth : TabPage
tabPageConfig : TabPage
tabPageEvents : TabPage
tabPageHelp : TabPage
tabPageNetwork: TabPage
textBox_explore: TextBox
textBox_monitor : TextBox
textBox_refresh: TextBox
timer_explore: Timer
timer_new_event: Timer
timer_refresh: Timer
8 Methods
~· check_eventO: void
~· OnTimed_Timer_explore(objectsource, ElapsedEventArgs e): void
~· OnTimed_Timer_new_event(object source, ElapsedEventArgs e): void
.~· OnTimed_Timer_refresh(object source, ElapsedEventArgs e): void
~· QMAO
~· tabPageAdvconf_Enter(object sender, EventArgs e): void
..J• tabPageAuth_Leave(object sender, EventArgs e): void
~· tabPageConfîg_Enter(object sender, EventArgs e): void
~· tabPageEvents_Enter(object sender, EventArgs e): void
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
88
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
89
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
90
Pour que l'applet fonctionne dans une page web, il suffit de commander son exécution
directement dans le code de la page, en utilisant la balise <object>, par exemple :
<object id= "ctlDotNET" classid= ''AppletQMA.dll#Applet. QMA "> </object> où
classid permet de spécifier la dll à exécuter suivi de l'espace de nom (Applet) et de la
classe à instancier (QMA). Un fichier de configuration Web est aussi nécessaire
(Web.Config) ; celui-ci est automatiquement rempli lors de la compilation par Visual
Studio.
4.3 WebService
Le Webservice fait le lien entre l'applet et les modules. Il permet de fournir des
informations aux utilisateurs, tout en cachant la logique interne pour des raisons de
simplicité et de sécurité. Suivant les informations souhaitées par l'applet, il appelle les
classes des modules appropriés. Pour éviter toute autorisation frauduleuse, chaque
service requiert une identification. Il n'y a pas à proprement parler de session entre
l'applet et le Webservice. Chaque fois que celle-ci a besoin d'informations, elle envoie
une requête en s'identifiant. Ainsi, il devient plus difficile d'effectuer un détournement
de session. Rappelons en outre que la communication applet-Webservice se fait avec le
protocole HTTPS, pour plus de confidentialité.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
91
Serviœl
O.Ss
+WebSenrice
r
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
92
des requêtes sur plusieurs tables à l'aide de jointures. La méthode retourne est un
DataSet, objet s'apparentant à un tableau;
f getdata_c(int DBType, string login, string pwd, string table, string columns,
string condition): même méthode que précédemment, mais en précisant une
condition dans la requête;
g. modify_settings(string login, string pwd, string [] param) : permet de modifier
les paramètres du serveur évoqués dans la méthode check_config;
h. re ad_jile(string login, string pwd, int option) : retourne le contenu du fichier de
logs de QMA si l'option est à 0, et du fichier de traps si l'option est à 1. Sinon
un champ vide est renvoyé. Pour des raisons de sécurité évidentes, le nom du
fichier reste inconnu à l'utilisateur, ce qui l'empêche en outre d'utiliser cette
fonction pour lire n'importe quel fichier;
1. refresh(string login, string pwd) : permet à l'applet de signaler au serveur sa
présence. Cette fonction est donc périodiquement appelée;
J. Service] :constructeur;
k. update_config(string login, string pwd, string columns) : cette fonction sert à
mettre à jour les paramètres de configuration de QMA relatifs à la surveillance
(écouter les traps, collecter les statistiques ... ) évoqués dans l'onglet QMA de
l'applet.
4.4 Modules
Les modules QMA sont une bibliothèque de classes, réparties selon leur but :
a. AuthManagement: module en charge de l'authentification et plus généralement
de la gestion des comptes usagers, et contient en outre les informations d'accès à
la base de données et le nom d'utilisateur/mot de passe nécessaire à la
communication avec les routeurs;
b. DbManagement : module en charge de la gestion de la base de données et de la
recherche d'informations dans le réseau;
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
93
Notons que ces différents modules ne sont pas nécessairement indépendants. Par
exemple, les fonctions d'authentification requièrent l'accès à la base de données donc
des classes de DbManagement. Pour une meilleure compréhension de ce composant
majeur de QMA, le lecteur est invité à se reporter à l'annexe 4 qui présente
1'organisation de la base de données.
4.4.1 AuthManagement
La protection de l'outil QMA, en plus de celle fournie par un serveur Web sécurisé, se
réalise par l'utilisation de noms d'utilisateur/mots de passe stockés dans une base de
données. Pour empêcher leur lecture directe, les mots de passe ne sont pas écrits
directement, mais sous forme hachée avec un sel généré aléatoirement. L'algorithme de
hachage utilisé est le Secure Hash Algorithm (SHA) 256. Plus précisément, la valeur
stockée dans la base de données est le mot de passe haché avec le sel suivi du sel lui-
même. Sans connaître ce sel, il serait impossible de vérifier la valeur hachée ...
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
94
13 Aelds
~ database_login: string
~ database_name: string
~ database_password: string
~ server_name : string
13 Methods
'~ check_access{string user, string pwd): bool
'"' check_authorization{string user,string pwd,string column): stringO
~· check_hash{string attempt string hashed_password): bool
~· check_user_not_logged{string user): bool
~· Controi_Auth()
,., create_user{string login, string pwd, bool ad min): bool
'" delete_user{string login): bool
~· hash{string text) : string
~· hash(string text, byteO salt_bytes): string
,., list_users{) :Sortedlist
~· set_settings{string user, string pwd, stringO parameters): void
,. update_user{string login,string pwd): bool
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
95
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
96
4.4.2 DbManagement
La structure de la classe Snmp est décrite figure 40. Elle implémente des méthodes
adaptées aux différents types d'objets dans la MIB.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
97
Smnp
Class
~ Fields
,.JI _login : string
:J; _password :string
8 Methods
,. snmp_get{string host, string oid, string leaf): string
,. snmp_geth{string llost, string oid 1 string leaf): string
~· snmp_gets{string host string oid, string leaf): string
~9 snmp_walk{string host, string oid): stringO
Ses paramètres sont les informations nécessaires pour interroger un routeur avec
SNMPv3 :un nom d'utilisateur et un mot de passe.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
98
Database
dass
13 Methods
•• createTable{string table): void
•• delete{string table, string condition): void
•• deleteTable{string table): void
,. insert(string table, string values): void
•• select{string table, string columns): DataSet
,. select{string table, string columns, string condition): DataSet
•(!; select_first{strlng table,strlng columns): stringO
"(!; select_first{string table,strlng columns,strlng condition): stringO
"• table_exists{string table_name): bool
•• update{strlng table, strlng columns): void
•• update{string table,strlng columns, string condition): void
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
99
Si les classes Database et Snmp sont principalement des interfaces vers la base de
données et le réseau, la classe Control_DB implémente davantage la logique de l'outil.
Elle est donc beaucoup plus complexe que les classes précédentes. Sa structure est
présentée figure 42. Un point important à mentionner est l'utilisation de tables duales
pour les informations susceptibles d'être modifiées fréquemment. Ceci est davantage
expliqué dans l'annexe 3. L'idée est juste de permettre aux utilisateurs de consulter la
base de données alors que celle-ci se met à jour : pour cela plusieurs tables sont
disponibles en double (exemple: LSPO et LSP 1), l'une servant à la consultation et
l'autre à la mise à jour, leur rôle changeant tour à tour. Les MIB utilisées sont les MIB
standards MPLS définies dans les RFC [28, 29, 73] explicitées dans [74].
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
100
Control_DB
dass
r
S Fields
:;{1 _database: Database
:;{1 _snmp : Snmp
:;{1 _table_number: string
S Methods
,. fill_all_tables{): void
,J)IÎf fill_database{): void
~· fill_link_table() :void
.~· fiii_LSP_table(): void
:lJfÎII fill_other{string method_name, string[] param): void
~· fill_segment_IP(string IP) : void
~· fill_segment_table{): void
~· fill_tunnel_table() : void
~· fiii_VPNQ: void
~· fiii_VPN_IP(string IP, string node): void
~· fill_vrf_if{string IP, string node, string vrf_index): void
..;.;• fill_vrf_route(string IP, string node, string vrf_index): void
,. handle_if_down(string IP): void
=• handle_tunnel_dowo{string node, string tunnel_interface): void
,. handle_tunnel_up{string node, string tunnel_index_original): void
siÎf if_down(string IP): void
=• insert{string table, string values): void
,'ÎJ. order_segmentsQ: void
,. select(string table, string columns): DataSet
,. select(string table, string columns, string conditions): Data Set
,. select_first{string table, string columns): string[]
,. select_first(string table, string columns, string conditions}: string[)
~· set_table{stringtable_original): string
,. snmp_get(string host, string oid, string leaf): string
,. table_exists{string table_name): bool
~· tunnel_down{string node, string tunnel_interface): void
.-;t;ftl tunnel_up{string node, string tunnel_index_original): void
·• update{string table, string columns): void
=9 update{string table, string columns, string conditions): void
'~--------------------------------------------~
Figure 42 Structure de Control DB
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
101
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
102
NON
Réservation
dela table
Mise en attente de
ffll_database
-----autre
ÈJJ
l
Ubératlon de
la flle
d'attente
Attendre S
secondes
+
Libération dé
la table
OUI _ _-<
NON
fll_database
NON
OUI
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
103
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
104
'l
fill_database
OUI
NON autre
Réservation
dela table
Mise en attente de Attendte5
la fonction secondes
Exéœtion de
la fonction
Ubération de
la ile
A.llendre 5
d'attente seeondes
Ubération de
la table
OUI _ _-<
NON
NON
OUI
OUI
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
105
PE2
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
106
Dans la MIB MPLS-LSR [29] les segments entrants et sortants sont listés dans
des tables séparément. La correspondance se fait au travers d'un index partagé,
XC/ndex. Le principe de fill_segment_IP est d'une part de lister tous les
segments entrants avec l'objet mpls/nSegmentXC/ndex de la MIB et d'autre part
les segments sortants avec les objets mplsOutSegmentNextHoplpv4Addr (adresse
du prochain saut) et mplsOutSegmentTopLabel (label du segment sortant). Pour
chacun de ses segments, l'index de l'interface entrante ou sortante est examiné
pour déterminer si celle-ci est considérée par QMA (selon les informations de la
base de données), ce qui permet de filtrer les segments qui sortent du champ du
réseau traité par 1' outil.
Ensuite, pour chaque segment sortant, on cherche les segments entrants
correspondant, et pour chaque segment entrant trouvé, une entrée est ajoutée
dans la table des Segments. Dans le cas de la figure 45, deux segments sont
ajoutés pour P3 : le premier entrant par l'interface 1 avec un label 10 et sortant
par l'interface 3 avec un «label POP», le second entrant par l'interface 2 avec
les autres propriétés similaires. Si pour un segment sortant, aucun segment
entrant n'est trouvé, il est tout de même ajouté à la base : il s'agit alors du
premier segment d'un LSP.
• fill_segment: liste l'ensemble des segments du réseau. D'abord routeur par
routeur, avec la fonction fill_segment_/P. Ensuite, un assemblage est fait pour
regrouper les segments par LSP.
• Pour comprendre l'algorithme d'assemblage, il convient là encore d'apporter
deux précisions. fill_segment_IP ajoute dans la table Segment, pour chaque
segment sortant autant d'entrées que le nombre de segments sortants, ou au
moins une s'il n'y a pas de segments entrants. Cependant dans certains cas,
certaines entrées ne sont pas nécessairement utilisées. Dans le cas de la figure
45, rien ne garantit en effet par exemple que PEl ait effectivement un segment
sortant vers P3 avec un label 10. D'autre part, un couple segment entrant-
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
107
segment sortant peut même être utilisé par plus qu'un LSP, comme le montre la
figure 46.
__;~_l!a_;J_....... _I-_:,_~_:i_:_.,.~~o~fi1
P4 PE3
PE2
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
108
0
11
OUI
Prend le preml&r
NO N-. S8(,T1181111
Nouv.u LSP id
!
1 •
Prend le premier
f segment sans
valeur entrante{
Nouveau lSP id
... OUI
~ On~àpw
1
OUI On atreela au
segment!&
VNO ._._. _!!:-_de::e........
Onalfed&au
segment le
lSPid
OUI
Ondonele
LSPid
segment et On clone le
Oll Yaffecle le segmellt&t
lSPid onyllffllclele
LSPid
~OUI
OUI
NONj
~--~~~~====----------------------~·ON__j
Figure 47 Algorithme de regroupement des segments par LSP
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
109
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
110
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
111
• order_segments : pour chaque LSP, numérote les segments dans 1' ordre (pour
permettre à l'applet d'ordonner les segments).
• set_table(string table_originaV : comme mentionné précédemment, certaines
tables sont doublées, de manière transparente à 1' applet même au W ebservice.
Cette méthode effectue 1' opération suivante selon la table fournie en argument:
o s'il s'agit d'une table doublée, retourne le nom de la table
disponible en lecture: par exemple set_table("LSP'')
retourne LSPO ou LSP 1.
o s'il s'agit d'une table non doublée, retourne le nom tel
quel.
• tunnel_down(string node, string tunnel_interface) : appelée quand un tunnel
tombe, passe un tunnel de l'état d'opérationnel à celui d'éteint dans la base de
données (en supprimant notamment le LSP associé).
• tunnel_up(string node, string tunnel_index_original) : appelée quand un nouveau
tunnel apparaît, cherche dans les MIB les informations relatives à ce nouveau
tunnel, et en particulier le LSP emprunté.
Les autres méthodes sont des méthodes de la classe Database : en effet, le membre
_ database est privé dans Control_DB. Ces méthodes (select, select_jirst, insert,
update) appellent donc simplement les méthodes du même nom de Database, mais
en utilisant la fonction set_table. Ainsi grâce à ces méthodes, quand le Webservice
veut sélectionner une information de la table LSP par exemple, il n'a pas besoin de
savoir qu'il s'agit en fait de LSPO ou LSP 1.
4.4.3 MonitorManagement
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
112
Trap_manager
Oass
8 Fields
JI; dbmgr: Controi_DB
~ proc: Pro cess
8 Metnods
.fl•handle_traps(string origin, string des cr): void
,. kill_procO: void
"• listen_trapsO :void
.~• notify{string timestamp, string event_descr, string node): void
,. Trap_manager{Controi_DB dbmanager)
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
113
Cette classe collecte les statistiques des tunnels. Pour cela, des tables dédiées à chaque
tunnel sont dynamiquement créées. Sa structure est décrite figure 49.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
114
stats_:.Manager
Oass
8 Fields
./1 _dbmgr: Controi_DB
JI _dbstats : Database
JI _ti merl :Ti mer
./1 _tunnel_list: Sortedlist
JI _tunnel_perf_list: Sortedlist
8 Methods
~· dean_tablesO: void
=• get_timer_intervalO : string
~· initQ: void
~· OnTimedEventl(object source, ElapsedEventArgs e): void
.~• refresh_statsO: void
~· set_timer_interval(string value): void
c:;f; start_monitor() : void
~• stats_Manager(Control_DB db manager, Database dbstats)
El/; stop_monitor{): void
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
115
Controi_Monitor
dan
El Fields
,.JI dbmgr: Controi_DB
:;/1 stats_mgr: stats_Manager
:;/1 stats_monltoring :bool
..JI ti merl: limer
..JI trap_mgr: Trap_manager
8 Methods
'Y Controi_Monitor{Controi_DB dbmanager, Data base db)
.~~ii~ OnTimedEventl(object source, ElapsedEventArgs e): void
'~ start_monitoring{): void
'~ stop_monitoring{): void
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
116
4.4.4 LogManagement
Ce module a pour rôle de consigner certains évènements dans des fichiers textes. Il se
compose de la classe Control_Log dont la structure est présentée figure 51.
~ntroi_Log
r@ Metnods
'~ add_~ntry{~tring identi~ication,string datetime, string action, string file): void
'"' readf1le{stnng file): stnng
1
'---------------------------------------------------/
Figure 51 Structure de Control_Log
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
117
L'onglet MPLS est composé du contrôle utilisateur MPLSControl, dont la structure est
illustrée figure 52.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
118
MPLSControl
a.ss
·+UsaCanbd
l
13 Fields
:JI crtl_monitor: Controi_Monitor
:.JI db mgr : Controi_DB
::JI timerl: Ti mer
13 Methods
.~· button_switch_Ciick{object sender, EventArgs e): void
:iiOcheckBox_listentraps_CheckedChanged{objectsender, EventArgs e): void
ii• checkBox_monitor_CheckedChanged{objectsender, EventArgs e) :void
ii(fcheckBox_periodic_refresh_CheckedChanged(object sender, EventArgs e): void
"(f MPLSControiQ
~· OnTimedEventl(object source, ElapsedEventArgs e): void
.z• SetText{string[] infos): void
.z• textBox_monitor_Leave{object sender, EventArgs e): void
f±l Nested Types
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
119
!3 Fields
i :/' authmgr: Controi_Auth
1!3 Methods
\ ,'lJ. create_user_Ciick{object sender, EventArgs e}: void
l 1: delete_user_Ciick{object s.~~~er, EventArgs e): void
1
j
~·
~· list_user_Ciick{object sen der, EventArgs e): void
~·
l update_user_Ciick{objectsender, EventArgs e): v ...
~· UserMgtControiO
'----------------------------------~
Figure 53 Structure de UserMgtControl
Ce contrôle, en plus des composants graphiques, nécessite comme membre une instance
de Control Auth.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
120
Après avoir vu chacun des composants de QMA, examinons avec quelques exemples
d'utilisation de l'outil, comment ceux-ci interagissent entre eux. Là encore établir une
liste exhaustive de tous les cas d'utilisation serait fastidieux, donc seuls des cas typiques
sont considérés ici, les autres fonctionnant de manière similaire. Par exemple, lister les
Tunnels et les LSP sont deux opérations semblables.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
121
-
--- - -······
WebSer.1ce COOt..Oi A~h'
-·--·· J
1
login, Password
- - ·::>-
1
1 1 r
~ !tabPageAuth_Lea..e 1
1 1
1 >J 1
1 1
check_access 1
:' ----> 1
1 1
check_access 1
1 1
::>·
select 1 1
1
login, password_hashed
.< 1
True .- 1
<
True 1 1
1 1
Retresh
> 1 1
update 1 1
>·
add_ent1
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
122
AuthManage : .
DbManagement LogManage
!ment ment
Control Auth
1
1 1
1
Login, False_pwd 1 1
>· 1
1
1
tabPageAuth_Leaw
> 1
1
1
check_access > 1 1
1
>~
1
check_access 1
1
1 1 select 1
1 1 1
login, password_hashed
1 1 < 1
1 1 False 1
1 1 1
1 1 1
1 1 1 1 add entry
-----+---~-~------>·
1 1
False 1 1
1 1<
1 < MessageBox .. 1 1
1 1
1
1 1
1
1
' 1
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
123
La figure 56 présente les échanges qui ont lieu lorsque 1'utilisateur souhaite obtenir les
informations sur les tunnels du réseau. On suppose que l'usager est déjà dans l'onglet
Network de l'applet et donc qu'il s'est déjà authentifié.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
124
· DbManagement
1 tunneiBylngressEgressTooiStripMenultem_Ciick l 1
.L, )>L
1 1
l get_data 1 1
>,J
1 1
1
check::-authorizatio~.J.
1 r 1
select
1 1
>ri
1 1 login, paSSIMlrd_hashed
<
1 1 select
)>
1 1
Parameters
1 1 <
Parameters
1 1
< 1
1 1
1 1 J select
1 1 Tunnel inlbrmation
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
125
• Le Webservice renvoie alors les informations à 1' applet qui se charge de les
traiter pour les présenter d'une manière ergonomique à l'utilisateur.
La figure 57 présente l'interaction entre les différents composants, lorsqu'une trap est
reçue signalant un tunnel tombé.
1 1
1 1 Trap
1 1
1<
add_entry
1 1
,!.<
add_entry
1 1 <
1 1 "<"
1 1< -"
1
get_data 1 handle_l~nel_down
">L 1 1
1< j"
1 1
1 check_authorizatio; 1
1
+rt
para meters 1 1
'L<
1 1
selfCI 1 1
>
1<
data
k
+ 1
1
<"
notift_ewnt 1
1 1
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
126
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
127
---------~
~·--l
!_! create_user_Ciick
1
Li
i
:_:
[]
---- ·- -:;>;-~1 1
1
1
i !
l) create_user 1
1
----~, 1
1 1
l_l select JI
il~-ji.-·--·-----------··--····--····l-.
1
1 answer
1 1 ~~---~----------
1
1
lT: msert
1
--- -- ---- ----:;:.;J
1 True I_T]
rl,<;
i 1
i i 1
'ri r' 1
1
1 1
1
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
128
Tout d'abord, le constructeur Cisco nous a confirmé ne pas avoir implémenté jusque là
dans son lOS la MIB dédiée à la correspondance entre FEC et LSP, en l'occurrence la
MIB MPLS-FTN [30]. Ainsi, il est impossible d'obtenir par SNMP le trafic qui y est
envoyé dans chaque LSP. Le protocole SSH étant rarement installé sur l'lOS, la seule
option disponible serait alors d'obtenir ces informations par Telnet. Mais ceci
compromettrait la sécurité de QMA, et génèrerait beaucoup plus de trafic que des
requêtes SNMP. De plus, cela nécessiterait un traitement supplémentaire pour l'outil,
puisque les informations affichées par Telnet sont faites pour être lues par un utilisateur.
Il a donc été jugé plus sage de réserver cette fonctionnalité quand la MIB MPLS-FTN
sera disponible.
Pour la fonctionnalité de surveillance du réseau, là encore une MIB pour BFD est en
développement mais pas encore implémentée [75]. Pour les mêmes raisons évoquées
précédemment, il apparaît plus raisonnable d'attendre la disponibilité de cette MIB pour
réaliser la fonctionnalité. En effet, sans la MIB la problématique consiste alors à trouver
un moyen d'interaction avec les routeurs pour passer des commandes, moyen qui doit
être sécurisé et indépendant du constructeur ce qui paraît difficile à réaliser en pratique.
Cependant, l'écoute de traps, préconisée par la méthode de surveillance explicitée au
chapitre précédent, est quant à elle réalisée dans QMA et donc bien disponible.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
129
Enfin, l'algorithme de prédiction de trafic n'a pas été réalisé, car, comme nous l'avons
expliqué lors de la définition des exigences, en tant que telle cette fonctionnalité a un
intérêt limité, mais sert de base pour des travaux d'approfondissement dans ce domaine.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
CHAPITRES
EXPÉRIMENTATION
«Que la stratégie soit belle est un fait, mais n'oubliez pas de regarder le résultat. »
Winston Churchill
Ce chapitre présente les résultats de l'expérimentation qui a été menée sur QMA afin
d'éprouver l'outil et de voir s'il satisfait bien les exigences évoquées au chapitre 3. La
première section explique la méthodologie de test et de suivi des bogues. Puis des
résultats validant les spécifications sont fournis. Il ne s'agit pas ici de décrire chaque
bouton; là encore, rappelons que des guides d'installation et d'utilisation sont fournis en
annexe 2 et 3, expliquant notamment l'interface.
En plus des tests unitaires, un autre membre du projet a été chargé de tester QMA dans
son ensemble, c'est-à-dire la partie MPLS et la partie QoS. Ceci permet d'avoir un
regard neuf et objectif sur 1' outil.
Pour mener à bien le suivi des bogues, l'outil Bugzilla [76] a été mis en place. Il s'agit
d'un logiciel serveur permettant le suivi rigoureux des fautes, offrant notamment une
interface Web et un système automatique de courriels. Ainsi, au fur et à mesure que les
bogues ou améliorations ont été soumis, ceux-ci ont été corrigés, conduisant à plusieurs
versions, stockées sur un serveur dédié. La figure 59 présente un aperçu de Bugzilla.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
131
Bugzllla
Bugz!lla Version 2.20.2
Bua List: Curreot Buas
:\loa Jaa 12 2006 13:35:03
Etrolom d'ail/mJrs, c'est 4tr~ ici.
Actions: Home 1New 1Search 1bug# _ _ 1Fin<! Il Repgrts 1My Reguests 1Mv Votes 1Sanity check llog out [email protected]
Edit Prefs 1Parameters 1User Preferences 1Users 1Products 1~ 1Field Vakles 1Groups 1Kevwords 1Whinmg
Saved Searches: Mï!!!m 1~ 1Current Bugs
Pour prouver que QMA répond bien aux besoins initiaux, la méthodologie choisie ici est
de reprendre les spécifications une par une et de montrer les résultats de 1'outil. Les tests
présentés ici sont effectués sur un réseau de tests de Bell Canada, comprenant six
routeurs et une centaine de LSP. La partie serveur de QMA est installée sur un PC avec
comme processeur un Pentium cadencé à 3GHz et IGo de RAM. Le navigateur Web
utilisé est Internet Explorer.
Dans l'onglet Network de l'applet, les routeurs sont dessinés et déplaçables à souhait par
l'utilisateur. De plus, le bouton "General Information" du menu permet l'affichage des
informations du réseau. En cliquant dessus, trois options sont proposées :
a. Lister les adresses IP disponibles : en cliquant sur l'une d'entre elle, le routeur
auquel elle appartient est surligné et ses informations Sont représentées;
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
132
b. Lister les routeurs par nom: en cliquant sur l'un d'entre eux, le routeur en
question est surligné et ses informations sont représentées;
c. Lister les liens physiques: permet d'obtenir pour chaque lien les informations
caractéristiques : adresses IP, type de lien et bande passante.
~ CE2
Network topoloçy t
Routerby Name
"
~links
PEl P3
cE• CE3
Router by IP
n2.20 1.G
172.20.1.9
... PE2
Fast8hemet010:
172.20.121.1 Fast8hemet0/0.4 r
17220.2.1 FastBt.ne!0/1 r
172.20.253.1 FastBt.ne!0/1.1: 10.100.2.1
172.20.253.2 FastE!hemet0/1.120:
172.20.253.3 FastE!hemet0/1.2: 10.200.2.1
172.20.253.4 Fast~0/1.3: 10.133.2.1
172.20.253.5 FaotE!hemet0/1.30: 17220.1.46
172.20.253.6 Fast8hemet011 .320 :
172.20.254.1 FaotEthemet0/1.4: 10.166.2.1
17220.254.11 FastEthemet0/1.5 : 10.50.1.5
_ _ _.so_:_1o_.so_.2__, _ _ ___,.[.,.]
'-Fa-stBt.net011
172.20.254.13
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
133
De plus, en passant le curseur sur un des routeurs, les informations de celui-ci sont
également affichées par tooltip comme illustré sur la figure 61 qui s'affiche quand le
curseur est placé sur le routeur Pl. Ceci permet une consultation rapide sans clics.
Pl
ATM2/0:
ATM2/0.0:
ATM2/0.1: 172.20.1.5
FastEthemeto/0: 172.20.1.33
FastEthemeto/1 :
FastEtherneto/1.1235: 10.254.235.253
,....._-tfastEthemetl/0 : 172.20.1.13
FastEthemetl/1: 172.20.1.1
LoopbackO : 172.20.254.1
NuOO:
CE1 CE3
Dans l'onglet Network de l'applet, il est possible de lister les LSP par ongme-
destination. QMA dresse alors tous les LSP correspondants. En sélectionnant un LSP
particulier, sa décomposition en segments est affichée. La figure 62 présente cette
fonctionnalité, pour un LSP entre PEl et PE2. Elle dessine notamment le LSP composé
des segments PEJ-P1 avec le label3J et P l-PE2 avec le labelJ9.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
134
Assistant
LSP by lngress-Egress
PE1->P3 't-
PE1·>PE3
PE2·>P1
PE2·>P2
PE2->P3
PE2->PE1
PE2->PE3
PE3->P1
PE3->P2
PE3->P3
PE3->PE1
r.
PE3->PE2 !;-
Total 137 LSP
CE1 CE3
~--------------------~.~~
On peut vérifier cette information en tapant sur le routeur avec la commande show mpls
forwarding-table comme le montre la figure 63.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
135
0
20 0 172.20.1.14
21 0 172.20.1.14
On retrouve notamment le LSP affiché figure 62. On peut vérifier la correspondance des
labels 31 (label entrant) et 19 (label sortant) et l'adresse du prochain saut (172.20.1.34).
Comme expliqué précédemment, QMA n'affiche pas l'adresse à laquelle est affecté le
LSP, puisque la MIB MPLS-FTN n'est à ce jour pas implémentée. Par ailleurs, certaines
entrées de la table du routeur Pl peuvent ne pas se retrouver dans QMA, si celles-ci sont
liées à des interfaces non répertoriées dans la base de données de l'outil. QMA ne
considère en effet que les LSP sur la topologie connue.
À l'instar des LSP, QMA permet l'affichage des tunnels MPLS TE avec leur
configuration et, s'ils sont opérationnels, des statistiques sur le trafic qui y transite. La
figure 64 illustre un exemple de tunnel affiché par QMA. Ses propriétés de configuration
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
136
sont présentées, et, étant opérationnel (qu'on peut vou avec Oper status : up), des
statistiques régulièrement rafraîchies sont affichées .
.A ...Il. .-------------,.
113" '"Il"
.... _ _ _ ! .. ·
J fj QoS MP!.S Assist.>t
,...
i
..c..L
Tunnel by lngress·
Earess
PEl·>?
PE1·>PE2
PE1·>PE3
Total: 6 Tunnels
1'3
CEl CE3
\'lelcane Virginie
Comme expliqué dans le chapitre précédent, quatre types de données sont fournies
(nombre d'octets, nombre de paquets, bande passante en octets par seconde et bande
passante en paquets par seconde) répartis chacun dans un onglet. La figure 65 fournit un
meilleur aperçu, avec la bande passante en paquets par seconde.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
137
...
t
...
~100
"fi
Q.
0
13:.58 14:06 14:13 14:18
ost.Tlmll
Une fois de plus, ces informations peuvent être vérifiées en se connectant par Te/net au
routeur. La figure 66 montre le résultat affiché dans le terminal.
tunnels tunnell
Config Parameters:
Bandwidtb: 25000 kbps (Global) Priority: 3 3 Affinity: OxO/OxFFFF
Metric Type: TE (default)
AutoRoute: enabled LockDown: disabled Loadshare: 25000 bw-based
auto-bw: disabled
Active Path Option Parameters:
State: dynamic path option 10 is active
BandwidthOVerride: disabled LockDown: disabled Verbatim: disabled
In Label
OutLabel FastEthernet0/0, 55
RSVP Signalling Info:
Src 172.20.254.12, Dst 172.20.254.13, Tun Id 1, Tun Instance 7905
RSVP Path Info:
~~ Address: 172.20.1.34
Explicit Route: 172.20.1.33 172.20.1.1 172.20.1.2 172.20.1.17
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
138
Les informations obtenues avec une ligne de commande par une connexion Telnet sont
alors disponibles en quelques clics avec QMA.
QMA permet l'affichage des VPN en listant des propriétés de chaque VRF. Il est
possible de lister les VRF par VPN ou par routeur. En choisissant un VRF dans la liste,
ses propriétés, interfaces et routes sont alors affichées La figure 67 en donne un
exemple, avec 1' affichage du VRF cust1 sur PE 1.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
139
<fit
~-
+ r, QoS MPLS Assistant
~",',~-', 4-"~lc.-·.«·.'"-· -~~·"'
[~1
~CE2
23VPN
crt t"!
cust2
custl PE2
cust4 ;;;
~
cust5
custG
demo1 -
demo2 P1 P2
ETS1
ETS2
ETS3
internet b'r
Total: 59VRF
P3
CE1 CEl
3 VRF formill!l VPN cust1 Configuration and interiaœs of custl(PE1) Routes of cust1(PE1)
Wertace: FaatBhemet210.1
Label Edge type: pmvidarEdge Destination/Mas!<: 10.10.1.11/255.255.255.252
VPN dassil'ici!lion: enterprise Stcrage: volatie i Next Hop: 0.0.0.0 Typed osvice: 0
Status: activa Weoface: FastEihernet210.1 Type: local
~ocol: local /lqe: 4111231 seconds
Weoface: i..oopback 1 Label Edge type: ,.otus: activa Stcnge: volatie
vidarEdge c'
'----------------'~
Une connexion Te/net au routeur permet une fois de plus de corroborer l'information,
comme le montre la figure 68.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
140
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
141
En cliquant sur 1' onglet Event, cet évènement est répertorié comme illustré sur la figure
70.
last Events
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
142
I
~ 1Ne!wori< 1Configtniion 1Events 1OoSConlig 1QoS Stats Advancec!Conlig 1Help
SerY« parame~ers 1 l.ogs Traps 1
Traps
5.2.7 Authentification
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
143
1Jr
"
+
~ H
r a! QoS MPlS Assistant
.~::<<J;,>" i iJ".:"<
~~, ,; 0 &&:H'~"~ "''at~« ,,,, ·::::._~,
Login IVtrginie
Res et
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
144
li
~ 1NetWOik 1~ 1EverU 1QoSCcriig 1QoS&ala ~Oiri'iil ~ 1
Serverpanpneters logs 1r,.l
L095
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
145
Il est notamment possible de connaître les adresses IP des postes clients. Dans le cadre
de ce test il s'agit de 192.168.11.25, 192.168.11.240, 192.168.11.20, 192.168.11.5 et
192.168.11.21.
5.2.9 Disponibilité
5.2.10 Confidentialité
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
146
3 1.130039 192.168.11.5 192 .168 .11. 21 TCP 1561 > tps SYN Seq=O Ac =0 W1n=64240 Len
4 1.130260 192.168.11.21 192.168.11.5 TCP https > 1S61 [SYN, ACK] Seq=O Ack=1 Win=6SS3
5 1.130299 192.168.11.5 192.168.11.21 TCP 1561 > https [ACK] Seq=1 Ack=1 Win=64240 Len
6 1.130339 192.168.11.5 192.168.11.21 TCP [TCP Dup ACK 5#1] 1S61 > https [ACK] Seq=1 A
7 1.223454 192.168.11.5 192 .168 .11. 21 TLS Client Hello
8 1.223489 192.168.11. s 192 .168 .11. 21 TLS [TCP Retransmission] Client Hello
9 1. 224189 192.168.11.21 192.168.11. s TLS Server Hello, Change Cipher Spec, Encrypted
10 1.230573 192.168.11.5 192 .168 .11. 21 TLS Change Cipher Spec, Encrypted Handshake Mess
11 1.230612 192.168.11.5 192 .168 .11. 21 TLS [TCP Retransmission] change Cipher Spec, Enc
12 1.231521 192 .168 .11. 21 192.168.11. s TLS Encrypted Handshake Message
13 1.234159 192.168.11. s 192 .168 .11. 21 TLS Encrypted Handshake Message
14 1.234185 192.168.11.5 192.168.11.21 TLS [TCP Retransmission] Encrypted Handshake Mes
15 1.2 35044 192.168.11.21 192.168.11.5 TLS Encrypted Handshake Message, [Unreassembled
16 1.235156 192.168.11.21 192.168.11.5 TLS Cont1nuation Data, [Unreassembled Packet]
1r-,... 1 • • r ...... "\ .- ,..,.,. • 1 ... ,...,.,.. • •• ..- """ •
e e
00 30 41 cS 40 00 80 06 21 98 cO aB Ob OS cO aB
Ob 15 06 19 01 bb 7b bd 28 58 00 00 00 00 70 02
fa fO 44 da 00 00 02 04 OS b4 01 01 04 02
5.2.11 Évolutivité
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
147
Les MIB utilisées sont des MIB définies dans des RFC. Ainsi, elles ne dépendent pas
d'un seul constructeur. En pratique, il pourrait arriver que l'équipementier ne respecte
pas le standard ; dans un tel cas, il suffirait alors de définir différentes classes par
constructeur, dérivant des classes originales comme Control_DB et d'instancier l'une ou
l'autre dépendamment de la marque du routeur.
Hormis les aspects non implémentés, expliqués dans le chapitre précédent, QMA répond
aux exigences initiales et permet ainsi, comme nous l'avons vu, de visualiser rapidement
des informations accessibles certes par une connexion directe avec le routeur, mais de
manière beaucoup moins conviviale.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
CONCLUSION
La gestion des réseaux est un domaine vaste et complexe, quelle que soit la technologie
à laquelle elle s'applique, y compris MPLS. Devenue incontournable dans la mutation
vers des réseaux nouvelle génération, celle-ci requiert une attention particulière en
matière de gestion. Des équipes de recherche en ont abordé plusieurs aspects,
notamment la configuration dynamique de tunnels. Des professionnels ont quant à eux
adapté des outils déjà existants. Cependant, aucun outil ne permet de présenter toutes les
informations liées à MPLS (LSP, tunnels et VPN) d'une façon simple et claire à
l'administrateur. QMA a donc été conçu pour permettre une visualisation rapide des
informations tout en offrant de la surveillance de réseau. Contrairement aux simulations
où l'on peut supposer l'environnement idéal, il a fallu prendre en compte les éléments
existants actuellement dans les routeurs pour son implémentation, limitant de fait
certaines des fonctionnalités de 1' outil. De plus un système de gestion de réseaux
complet dépasse largement le cadre d'un mémoire de maîtrise. Néanmoins, QMA est
pleinement fonctionnel comme les tests 1' ont prouvé.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
RECOMMANDATIONS
Comme nous l'avons évoqué précédemment, nous n'avons pas ici la prétention en un
mémoire de proposer un outil qui répond à chacun des aspects de la gestion des réseaux
MPLS. C'est pourquoi QMA a été conçu de manière modulaire, pour faciliter son
évolution. Seule l'imagination des développeurs peut limiter les fonctionnalités que l'on
pourrait y ajouter; voici néanmoins quelques suggestions.
Également, quand la MIB liée à BFD sera implémentée dans les routeurs, QMA pourrait
détecter tout bris de LSP et tunnel par ce moyen complémentaire de 1' écoute des traps
déjà mis en place.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
150
Si d'autres équipementiers ne respectent pas les MIB MPLS standards, il serait judicieux
d'ajouter une couche d'abstraction au niveau des objets standards dans les MIB. Ensuite,
des fichiers de configuration permettraient d'adapter les différentes MIB présentes chez
les constructeurs, rendant ainsi QMA interopérable même si les standards proposés dans
les RFC ne sont pas respectés.
Enfin, comme 1' a suggéré notre partenaire industriel Bell Canada, il serait vraiment
intéressant d'étudier la faisabilité d'une intégration de QMA dans un outil professionnel
de gestion de réseaux, tel What's up [39].
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
ANNEXEl
Organisation du code
Holt winters
x_prev=[x zeros(l,h)];
N=length (x) ;
S=zeros(l, N+h);
b=zeros(l, N+h);
I=zeros(l, N+h);
%http://www.itl.nist.gov/div898/handbook/pmc/section4/pmc435.htm
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
152
for i=1:p
b(1)=b(1)+x(p+i) -x(i);
end
b(1)=b(1)/(pA2);
k=floor (N/p);
A= zeros(1,k);
for j=O:k
A(j+1)=0;
for i=1:p
A(j+1)=A(j+1)+x(k*j+i);
end
end
for i=1:p
for j=O:k-1
I(i)=I(i)+x(k*j+i)/A(j+1);
end
I(i)=I(i)/k;
end
for i=2:N
i f i-p > 0
S(i)=alpha*(x(i)/I(i-p))+(1-alpha)*(S(i-1)-b(i-1));
el se
S(i)=alpha*(x(i)/I(i))+(1-alpha)*(S(i-1)-b(i-1));
end
b(i)=gamma*(S(i)-S(i-1))+(1-gamma)*b(i-1);
i f (i-p > 0)
I(i)=beta*(x(i)/S(i))+(1-beta)*I(i-p);
end
end
i=N;
for j=1:h
x_prev(i+j)=(S(i)+j*b(i))*I(i-p+j);
end
Mse
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
153
el se
for i=l:L
erreur erreur+ (x(i)-y(i))A2;
end
erreur erreur/L;
end
Optimise
pas=O.l;
abg=zeros(l,3);
erreur = lOAlO;
for alpha=O.l:pas:l
for beta=O:pas:l
for gamma=O:pas:l
x_prev = holt_winters( x, h, p, alpha, beta, gamma);
if mse(x_prev,y) < erreur
abg(l)=alpha;
abg(2)=beta;
abg(3)=gamma;
erreur= mse(x_prev,y);
end
end
end
end
Pred f
function erreur=pred_f
N=SOO;
range=lOO;
periode =100;
p=periode;
y=zeros(l,N+range);
tendance=zeros(l,N+range);
a=Ol;
b=800;
saison=zeros(l,N+range);
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
154
aleatoire =100*rand(1,N+range);
for i=1:N+range
tendance(i} = a*i+b;
q = floor(i/periode);
r = i-q*periode;
i f (r<11)
saison(i)=1;
elseif (r>10) & (r<21)
saison(i)=O.OOS*r+1;
elseif (r>20) & (r<51)
saison (i) =1.1;
elseif (r>SO) & (r<81)
saison(i)=-0.005*r+1.355;
el se
saison(i)=0.955;
end
saison(i)=1*saison(i);
%saison(i)=sin(2*pi*i/100);
y(i)=tendance(i)*saison(i)+aleatoire(i);
end
xx= zeros ( 1, N) ;
for i=l:length(xx)
xx ( i ) =y ( i ) i
end
h=4;
xx2=zeros(1,N+h);
for i=1:length(xx2)
xx2 ( i) =y ( i) ;
end
xx3=zeros(l,N-h);
for i=l:length(xx3)
xx3 ( i) =Y ( i) ;
end
x_ref=zeros(1,N);
for i=1:N
x_ref(i)=y(i);
end
temoin=[];
temoin2=[];
for j=N:h+1:N+range-h
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
155
x_ref(j)=y(j);
xx4=zeros(l,j-p);
for i=l:length(xx4)
xx4(i)=x_ref(i);
end
xxS=zeros(l,j-p+h);
for i=l:length(xxS)
xxS(i)=x_ref(i);
end
%plot (y);
%prediction maintenant
alpha=O;
beta=O;
gamma=O;
h=4;
alpha = opt(l);
beta=opt(2);
gamma=opt(3);
end
x_ref(N+range)=y(N+range);
serie_diff=zeros(l,N+range);
serie_diff=abs(y-x_ref);
%-hold on
%-plot (x_ref 1'r');
%plot (y 'k' ) ;
1
%plot(serie_diff 1 'b');
%legend('Prédiction', 'Suite originale' 1 'Erreur');
%title('Prévision de Holt-Winters');
%plot (y, 'g 1 ) ;
% plot ( temoin2, temoin, 1 bo 1 ) ;
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
156
erreur mse(y,x_ref)*(N+range)/range;
Simu
%parametres
clear all;
close all;
clc;
N=lOOO;
xx = zeros (l,N);
tic
for i=l:N
xx(i)=pred_f;
end
toc
mean(xx)
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
ANNEXE2
Cette annexe présente comment installer QMA. Elle comprend les étapes suivantes:
• Installation de Net-Snmp
• Configuration de la base de données
• Création des fichiers de logs
• Installation du WebService
• Configuration de 1' App let
• Configuration des clients
Installation de Net-Snmp
Pour sa communication avec le réseau par SNMP, QMA utilise la bibliothèque Net-
Snmp[72]. L'outil suppose donc que celle-ci est installée sur le serveur, dans le
répertoire d'installation par défaut (C:\usr\bin).
QMA ne peut évidemment pas fonctionner sans une base de données correctement
configurée. Pour cela, un script est livré avec 1' outil, permettant la génération
automatique des bases de données requises. Le modèle des différentes tables est
expliqué à l'annexe 4.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
158
QMA requiert deux fichiers de logs pour permettre à l'administrateur un suivi des
opérations de 1' outil. Deux fichiers doivent donc être créés, avec les droits de lecture et
d'écriture pour le compte ASPNET:
a. C:\Temp\ log12345.txt;
b. C:\Temp\ traps.txt.
Installation du WebService
L'installation du WebService peut sembler être une opération déroutante pour quiconque
n'y est pas habitué. C'est pourquoi il semble utile de préciser les quelques étapes à
respecter:
• Après avoir recopié le répertoire WS_QMA de l'outil dans le répertoire d'liS, il faut
déclarer auprès du serveur Web, ce répertoire comme une application ASP, en
cliquant sur le bouton Create dans le champ de propriétés, comme illustré sur la
figure 76. Une fois ce bouton pressé, il faut vider le champ Application name.
• Il faut bien s'assurer que la version d' ASP utilisée dans l'onglet ASP .Net qui doit
être 2.0.* comme le montre la figure 77.
• Enfin, il faut s'assurer que les droits d'exécutions sont correctement configurés pour
ce répertoire. En particulier, les comptes IUSR_NOMDUPC et IWAM_NOMDUPC
doivent avoir les droits de lecture et d'exécution.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
159
0 Aredirection to a !!RL
i\pplication name
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
160
HTJP Headm
IIIP.net
ASP .NET version:
gdit Configi.Rtion...
Configuration de l'applet
Avant de mettre l'applet à disposition des utilisateurs, il faut juste configurer l'adresse
du WebService dans le code. Celui-ci n'est pas visible dans l'interface graphique pour
des raisons de confidentialité. Certes, un usager insistant pourra le retrouver en analysant
les paquets échangés depuis son poste, ou en décompilant 1' applet, mais de telles actions
requièrent déjà un effort particulier.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
161
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
162
Enfin, il faut répertorier le site où se trouve l' Applet comme un site de confiance
(Trusted Sites) dans Internet Explorer puis configurer le Framework pour permettre à ces
sites d'avoir le niveau de confiance maximum (Full Trust), dans le champ Adjust Zone
Security comme présenté sur la figure 79.
Root
!IJ. .NET Fremework 2.0 Configuration
8 ~ My Computer
'.. ··~ Assembly Cache The common language runtime's code access security system
~ Configured Assemblies determines an assembly's permissions to access protected resources.
Ji] Remotinç Services Each permission set granted to an assembly is based on the
•+i ~ Rlnline Sea.rity Poky assembly's evidence (such as its URl or publisher certificate), which in
····~ Applications tum is based on configurable security policy.
To leam more about the code access security model, refer to the
Microsoft .NET Framework SDK documentation.
The wizards and task links below wiU help you set and distribute
security policy. For complete control of security policy, use the tree
views under this node.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
ANNEXE3
Cette annexe présente comment utiliser QMA. Elle s'organise ainsi: tout d'abord les
configurations préalables sont explicitées. Puis les fonctionnements du contrôleur du
serveur puis de 1' applet sont détaillés.
Préalable
QMA communique avec le réseau via SNMP v3. Il faut donc que chaque routeur soit
configuré pour traiter les requêtes SNMP. Ainsi, un utilisateur avec un mot de passe doit
être défini. Sous l'lOS Cisco, voici la démarche à suivre :
• Créer un groupe SNMPv3. Par exemple pour créer un groupe du nom de project :
IPE2(config)#snmp-server group project v3 aut§
• Créer un compte SNMPv3. Par exemple pour créer un compte du nom de student
avec comme mot de passe password :
IPE2 (config) #snmp-server user student project v3 auth mdsl
!Passwordj
De même, pour la surveillance du réseau, il faut configurer les routeurs dont on souhaite
écouter les traps. La procédure est la suivante :
• On précise les catégories de traps souhaitées : ici on souhaite les traps SNMP
standards ainsi que les traps propres au MPLS TE :
IPE2 (config) #snmp-server enable traps snmpl
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
164
jPublicl
Il est nécessaire que la table Router ainsi que la table Link soient préalablement
remplies. Il ne s'agit a priori pas de configurations censées changer fréquemment. De
plus, une méthode dans la partie QoS de QMA permet de mettre à jour automatiquement
la table Router.
Cet onglet sert à la surveillance du réseau. Il est nécessaire de cliquer sur Start
Monitoring pour que celle-ci soit effective. Tant qu'elle n'est pas lancée ici aucune
surveillance n'a lieu. Une fois démarrée, les différents paramètres s'affichent:
a. Possibilité d'écouter les traps (Listen to traps);
b. Possibilité de collecter les statistiques des tunnels (Stats collection) en précisant
la fréquence (Frequency).
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
165
~ Monitor networi<
0 Usten to traps
~ Stats coUection
Frequency seconds
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
166
Reuy c~
Ce message signifie que QMA démarre le processus snmptrapd.exe pour écouter les
traps mais que celui-ci s'exécute déjà. Il faut donc tuer le processus existant puis cliquer
sur Retry.
Onglet Users
Cet onglet permet de gérer les différents utilisateurs. Il en existe deux classes : les
administrateurs qui disposent de tous les droits, et les usagers « normaux » qui sont
privés de certaines fonctionnalités avancées, détaillées plus tard. Un onglet est dédié à la
création d'utilisateurs (figure 82), l'autre à la modification de mot de passe et la
suppression de mots de passe (figure 83). Dans le second onglet, la liste des différents
utilisateurs se retrouve automatiquement en cliquant sur le bouton Re.fresh.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
167
Login
Password
Confinn password
D Administrator
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
168
~~Ji. ~~.:9..~.11'----------------.
login
I L - l_ _ _ __..El_·. . L ' liE!~ J
New password 1 1
Utilisation de l'applet
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
169
Onglet Authentification
f"~··!l
.................. . 1Everts 1QoS Config 1 QoS ~s 1 Help
·-········-···· Network 1Configuration
Login !Virginie
Password
Res et
Onglet Network
Cet onglet présente les informations du réseau: il est composé d'un menu, de champs
d'affichage des informations (2 /istbox et 2 textbox) et de la représentation du réseau. Un
aperçu visuel est fourni figure 85. Listons ses fonctionnalités :
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
170
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
171
~ CE2
ListBox1
~ Pl
~ PE1
~ CE1
~
CEl
\llelcane Virginie
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
172
b. Afficher les tunnels par Routeur (Tunnel by Router) : en sélectionnant cette option,
la ListBoxl liste les différents routeurs par lesquels passent des tunnels. En
sélectionnant un des items, la ListBox2 affiche les différents tunnels qui passent par
le routeur sélectionné. Quand un tunnel particulier est sélectionné, ses propriétés sont
présentées dans la TexBoxl. S'il est opérationnel, il est dessiné sur le schéma du
réseau, sa décomposition en segments est présentée dans la TextBoxl et ses
statistiques sont affichées dans un contrôle utilisateur à 1' emplacement de la
TextBox2.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
173
En cliquant sur le bouton Explore un rafraîchissement des informations est démarré. Une
fois celui-ci effectué, une bulle d'information apparaît dans la barre de notifications pour
signaler la fin de l'opération. Ceci n'est valable que si QMA est configuré pour vérifier
de nouveaux évènements, comme expliqué dans la section suivante.
Onglet Configuration
Cet onglet comprend deux volets : la configuration au niveau de 1' applet et celle au
niveau du serveur, réservée aux administrateurs. Il est présenté figure 86.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
174
JQMA Configuration
1Server Configuration
1
P' Monitor network
r Listen to traps
Advanœd configuration
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
175
Comme il s'agit des paramètres du serveur, chaque modification de ces paramètres doit
être validée par le bouton Apply new settings avant d'être effective. Le bouton Advanced
Configuration ouvre un onglet explicité ultérieurement.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
176
Onglet Event
Cet onglet a pour rôle de lister les différents évènements du plus récent au plus ancien
comme le montre la figure 88.
Last Events
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
177
Onglet AdvancedConfig
Cet onglet, réservé aux administrateurs, contient les paramètres avancés. Il se divise lui-
même en trois sous onglets :
a. Le premier est la configuration des différents paramètres, exposés à la figure 89 :
nom du serveur de la base de données, nom des deux bases, nom d'utilisateur et
mot de passe, ainsi que les crédits nom d'utilisateur/mot de passe pour SNMP.
Pour rendre les modifications effectives, il faut valider avec le bouton Upload
Settings. Les boutons Load Settings from a file et Save Settings in a file
permettent respectivement de charger la configuration d'un fichier texte et de la
sauvegarder.
Database Name
Password
Username j.,
Password
Reset Reset
Uplœd Settings
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
178
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
ANNEXE4
Introduisons tout d'abord quelles données sont nécessaires à QMA et comment celles-ci
sont organisées. Deux catégories de données sont utilisées dans QMA:
Données du réseau
Le cœur de QMA est de fournir à l'utilisateur des informations sur un réseau MPLS. La
collecte d'informations est donc centrale. Pour mener à bien cette opération, QMA a
besoin de connaître la topologie du réseau. Deux tables doivent donc être préalablement
remplies:
a. Router_MPLS : contient les informations nécessaires pour chaque routeur MPLS
considéré;
b. Link : contient les informations sur les liens reliant les routeurs.
Ces tables servent de référence pour QMA, et ne sont donc que rarement modifiées.
À partir des éléments contenus dans ces tables, QMA peut récolter les informations
désirées, regroupées dans sept tables :
a. Segment : contient les informations des segments MPLS;
b. LSP : permet de lister tous les LSP;
c. Tunnel : informations relatives aux tunnels MPLS TE;
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
180
En pratique, les sept tables précédentes sont doublées, pour éviter de priver 1'utilisateur
de la consultation de ces tables pendant que celles-ci sont mises à jour, laps de temps
pendant lesquelles la base de données est considérée dans un état instable. Ainsi, il y a la
table SegmentO et Segment!, LSPO et LSP 1 etc. . .. Pendant que la table SegmentO est
remplie, l'utilisateur peut donc toujours consulter la table Segment! et inversement.
Enfin des tables de statistiques sont créées dynamiquement, une par Tunnel dont on
souhaite évaluer le trafic. Les tables se nomment Tunnel index du tunnel.
Router MPLS
Router MPLS contient les informations nécessaires pour chaque routeur MPLS
considéré. Il ne s'agit pas à proprement parler une table, mais une vue de la table Router,
rempli par l'outil pour la QoS. En effet, celui-ci nécessite une connaissance précise des
routeurs, notamment la liste et les informations de chaque interface et sous-interface. Il a
donc été jugé préférable de reprendre cette table Router, en élaguant les informations
superflues dans le cadre de MPLS. D'où la vue. Chaque entrée correspond à une entrée
dans la MIB interfaces. Sa structure est illustrée au tableau 1.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
181
Tableau I
Un exemple de remplissage pour les routeurs PEl et PE3 est proposé au tableau II.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
182
Tableau II
Exemple de Router_MPLS
Link
Link contient les informations sur les liens reliant les routeurs. Chaque entrée
correspond à un lien physique unilatéral entre deux routeurs. Sa structure est illustrée au
tableau III.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
183
Tableau III
Table Link
Un exemple de remplissage pour les routeurs PEI et PE3 est proposé au tableau IV.
Tableau IV
Exemple Link
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
184
SegmentO, Segment!
Segment contient les informations sur les segments composant les LSP. Il permet donc
d'en avoir une vue détaillée. Chaque entrée correspond à un segment entre deux
routeurs. Sa structure est illustrée au tableau V.
Tableau V
Table Segment
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
185
Un exemple de remplissage pour un LSP entre PE2 et PE3 est proposé au tableau VI.
Tableau VI
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
186
LSPO,LSPl
La table LSP permet d'avoir une vue d'ensemble de tous les LSP. Chaque entrée
correspond à un LSP. Elle s'organise de la manière illustrée tableau VII.
Tableau VII
Table LSP
Le tableau VIII donne un exemple de deux LSP, l'un tunnel l'autre non.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
187
Tableau VIII
TunnelO, Tunnell
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
188
Tableau IX
Table Tunnel
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
189
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
190
TableauX
Setup_ Holding_
Id Name Descr Ingress Egress (suite)
Priority Priority
Tunnel! TE
465 Tunnel! PE2 PE3 3 3
vers PE3
467 Tunnel2 PEI t2 PEI PE3 5 5
A dm in
(suite) BW Affinity (suite)
Status
25000000 0 up
0 0 up
VPNO, VPNl
VPN est une vue qui liste les différents VPN à partir de la table VRF. Chaque entrée
correspond à un VPN. Elle s'organise de la manière présentée au tableau Xl.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
191
Tableau XI
VueVPN
Tableau XII
Remarquons que l'index du VRF contient en fait le nom de celui-ci; en effet, en faisant
abstraction du premier, chaque chiffre correspond au code American Standard Code for
Information Interchange (ASCII) d'un caractère. Ainsi 100 est le code du caractère
« d », 101 pour« e », 109 pour« rn» etc ....
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
192
VRFO, VRFl
VRF liste les différents VRF présents dans les LER. Chaque entrée correspond à un
VRF. Sa structure est décrite tableau XIII.
Tableau XIII
Table VRF
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
193
Tableau XIV
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
194
VRF_IFO, VRF_IFl
VRF_IF contient les informations pour chaque interface configurée dans le cadre d'un
VRF. À chaque entrée correspond une interface configurée pour un VRF donné. Sa
structure est présentée tableau XV.
Tableau XV
Table VRF IF
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
I95
Tableau XVI
VRF_ROUTEO, VRF_ROUTEl
VRF_ROUTE contient les informations pour chaque route configurée dans le cadre
d'un VRF. À chaque entrée dans la table correspond donc une route. La structure de la
table est fournie au tableau XVII.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
196
Tableau XVII
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
I97
Tableau XVIII
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
198
Tableau XIX
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
199
Tableau XX
Données de gestion
En plus des tables contenant des données qui sont récoltées du réseau par SNMP, QMA
utilise des tables nécessaires à son fonctionnement. Il s'agit des cinq tables :
a. Management: gère l'accès aux tables;
b. Monitor : contient les informations relatives à la surveillance du réseau;
c. Event : contient les évènements jugés importants;
d. Authentication :contient les données d'authentification des utilisateurs;
e. Corifiguration : contient les données de configuration nécessaires à QMA.
Manager
La table Manager a pour rôle de s'assurer du bon emploi des tables. Comme nous
l'avons mentionné plus tôt, dans un souci de disponibilité de l'outil, les tables propres à
la configuration MPLS sont doublées, pour ne pas empêcher de consultation lors de leur
mise à jour. Manager va notamment permettre de connaître quelles tables sont
disponibles. En outre, elle facilite la gestion de plusieurs méthodes concurrentes voulant
modifier les tables. Sa structure est présentée au tableau XXI.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
200
Tableau :XXI
Table Manager
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
201
Tableau XXII
Dans ce cas ci, les tables doublées disponibles sont les tables finissant par 0 (SegmentO,
LSPO etc .... ) ; les tables finissant par 1 sont présentement en cours de mise à jour, et
une méthodefill_database attend de pouvoir mettre à jour les tables, ce qu'elle essaiera
de faire 100 fois.
Monitor
Tableau XXIII
Table Monitor
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
202
Tableau XXIV
Admin status DateTime check Refresh stats Refresh freq Listen traps
True 2006-05-30 15:23:31 True 30000 False
Event
La table Event permet de lister tous les évènements jugés importants, par exemple un
tunnel MPLS TE qui tombe. Sa structure est présentée au tableau XXV.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
203
Tableau XXV
Table Event
Tableau XXVI
Authentication
La table Authentication sert à vérifier les accès. Sa structure est présentée au tableau
XXVII.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
204
Tableau XXVII
Table Authentication
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
205
Tableau XXVIII
Configuration
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
206
Tableau XXIX
Table Configuration
a. Id : identifiant de 1'ensemble;
b. Database_Server : nom du serveur de la base de données;
c. Database_Name: nom de la base de données;
d. Database_Stats_Name: nom de la base de données de statistiques;
e. Database_Login: nom d'utilisateur de la base de données;
f. Database_Password : mot de passe de la base de données;
g. Snmp_Login: nom d'utilisateur SNMP dans les routeurs;
h. Snmp_Password : mot de passe SNMP dans les routeurs.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
207
Tableau :XXX
Fichiers de logs
En plus des tables, QMA stocke de l'information dans des fichiers textes, plus légers et
facilement accessibles : deux fichiers sont ainsi utilisés :
a. /ogs.txt: contient les évènements liés au fonctionnement de QMA, permet de
savoir quelles opérations sont effectuées et à quel moment;
b. traps.txt: contient les traps reçues ; utile si l'information consignée dans la
table Event ne suffit pas, et que des détails techniques sont nécessaires.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
208
BIBLIOGRAPHIE
[3] Hares, S., RFC1574- Essential Toolsfor the OS! Internet. 1994.
[7] Ash, J., et al., AT&T's MPLS OAM architecture, experience, and evolution.
Communications Magazine, IEEE, 2004. 42(1 0): p. 100-111.
[9] Nadeau, T., M. Morrow, and G. Swallow, RFC4377- OAM Requirements for
MPLS Networks. 2006.
[10] Guichard, J., I. Pepelnjak, and J. Apcar, MPLS and VPN architectures. 2001,
Indianapolis, IN: Cisco Press. 2 v.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
209
[11] MPLS, W.G. Mu/ti Protocol Label Switching Charter. 2005 [En ligne]
http://www.ietf.org/html.charters/mpls-charter.html.
[13] Rosen, E., et al., RFC3032- MPLS Label Stack Encoding. 2001.
[14] Stallings, W., MPLS, in The Internet Protocol Journal (IPJ). 2001.
[15] Osborne, E. and A. Simha, Traffic Engineering with MPLS. 2003, Indianapolis,
IN: Ci seo Press.
[19] Farinacci, D., et al., RFC2784- Generic Routing Encapsulation (GRE). 2000.
[20] Kent, S. and R. Atkinson, RFC2401 - Security Architecture for the Internet
Protocol. 1998.
[24] Gao Xianrui, Z.Y., The NGN age has arrived Huawei technologies, 2005(20).
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
210
[33] Fang, L., et al., LDP failure detection and recovery. Communications Magazine,
IEEE, 2004. 42(10): p. 117-123.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
211
[34] Akyildiz, I.F., et al., A new traffic engineering manager for Dif!Serv!MPLS
networks: design and implementation on an IP QoS Testbed Computer
Communications, 2003. 26(4): p. 388-403.
[35] Scoglio, C., et al., TEAM: A traffic engineering automated manager for Dif!Serv-
based MPLS networks. Communications Magazine, IEEE, 2004. 42(10): p. 134-
145.
[36] Anjali, T., C. Scoglio, and G. Uhl, A new scheme for traffic estimation and
resource allocation for bandwidth brokers. Computer Networks, 2003. 41(6): p.
761-777.
[37] Aukia, P., et al., RATES: A Server for MPLS Traffic Engineering. IEEE Network,
2000. vol. 14(Mar./Apr. 2000): p. pp. 34-41.
[38] Elwalid, A., et al. MATE: MPLS adaptive traffic engineering. in INFOCOM.
2001.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
212
[46] Ylonen, T. and E. C. Lonvick, RFC4251 - The Secure Shell (SSH) Protocol
Architecture. 2006.
[49] Fielding, R., et al., RFC2616- Hypertext Transfer Protocol-- HTTP/1.1. 1999.
[51] Sollins, K., RFCJ350- The TFTP protocol (revision 2). 1992.
[52] Ohta, H., RFC3429 - Assignment of the 'DAM Alert Label' for Multiprotocol
Label Switching Architecture (MP LS) Operation and Maintenance (DAM)
Functions. 2002.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
213
[56] Swallow, G., K. Kompella, and D. Tappan, Label Switching Router Self-Test
draft-ietf-mpls-lsr-self-test-06. txt. 2005.
[57] Chatfield, C., The analysis of time series : an introduction. 6th ed. Texts in
statistical science. 2004, Boca Raton, Flor.: Chapman & Hall/CRC. xiii, 333.
[58] Kolarov, A., A. Atai, and J. Hui. Application of Kalman fi/ter in high-speed
networks. in Global Telecommunications Conference, 1994. GLOBECOM '94.
'Communications: The Global Bridge'., IEEE. 1994.
[62] Sun. Java Platform, Entreprise Edition (Java EE). 2006 [En ligne]
http://java.sun.com/javaee/index. jsp.
[64] Simonnet, J., Rapport de stage de jin d'études- « Outil de surveillance dans un
réseau MPLS ». 2005, LAGRIT- École de Technologie Supérieure.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
214
[71] Obviex. How To: Hash Data with Salt (C#IVB.NET). 2006 [En ligne]
http://www.obviex.com/samples/hash.aspx.
[73] Nadeau, T. and H. Van der Linde, RFC4382 - MPLS/BGP Layer 3 Virtual
Private Network Management Information Base. 2006.
[74] Nadeau, T., MPLS Network Management. 2003: Morgan Kaufmann Publishers.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.