Académique Documents
Professionnel Documents
Culture Documents
Filière
Ingénieurs en Télécommunications
Option
Elaboré par :
Encadré par :
A ma Mère
A mon Père
A ma Femme
A ma Fille
A mes Frères
A mes Sœurs
Remerciements
Remerciements
Comme je n’y manquerais pas de remercier mes professeurs, membres ou Jury pour l’honneur
qu’ils ont fait en acceptant de faire partie de mon Jury.
I
Résumé
Résumé
Durant ce projet, nous nous sommes intéressés à trois points relatifs au Backbone IP/MPLS de
Tunisie Télécom. Le premier point concerne le problème de l’archivage des configurations des
différents routeurs. Pour remédier à ce problème, nous avons mis en place un processus de sauvegarde
périodique qui représente le premier module de notre application. Le deuxième point s’intéresse à
l’administration des équipements réseaux du Backbone. Le troisième point s’attache à la
restructuration du log généré par les routeurs sous forme d’événement à fin d’avoir une information
lisible et utile.
II
Table des matières
REMERCIEMENTS................................................................................................................................................ I
RESUME ................................................................................................................................................................II
LISTE DES FIGURES............................................................................................................................................V
LISTE DES ACRONYMES ................................................................................................................................. VI
INTRODUCTION GENERALE ............................................................................................................................ 1
CHAPITRE 1 :PRESENTATION DU PROJET..................................................................................................... 2
INTRODUCTION .................................................................................................................................................. 2
1.1. PRESENTATION DE L’ORGANISME D’ACCUEIL............................................................................ 2
1.2. PROBLEMATIQUE................................................................................................................................. 3
1.3. OBJECTIFS DU PROJET ........................................................................................................................ 4
CONCLUSION....................................................................................................................................................... 4
CHAPITRE 2 : LA GESTION DE RESEAU ......................................................................................................... 5
U
INTRODUCTION .................................................................................................................................................. 5
2.1. BUT ET DOMAINE D’APPLICATION ................................................................................................. 5
2.2. FONCTIONNALITES.............................................................................................................................. 6
2.2.1. LA CUEILLETTE DES INFORMATIONS DE GESTION : .................................................................. 6
2.2.2. L’INTERPRETATION DES DONNEES................................................................................................. 7
2.2.3. LE CONTROLE DES EQUIPEMENTS .................................................................................................. 7
2.3. PRINCIPES DE LA GESTION DE RESEAU ......................................................................................... 7
2.4. SNMP ....................................................................................................................................................... 9
2.4.1. HISTORIQUE .......................................................................................................................................... 9
2.4.2. LES ENTITES .......................................................................................................................................... 9
2.4.3. LA MANAGEMENT INFORMATION BASE ..................................................................................... 10
2.4.3.1. DECLARATION DES OBJETS........................................................................................................ 12
2.4.3.2. ORGANISATION ET IDENTIFICATION DES OBJETS ET DES INSTANCES .......................... 13
2.4.4. LES OPERATIONS DE MANAGEMENT ........................................................................................... 14
2.4.5. COMPARAISON ENTRE SNMP V1, V2 ET V3 ................................................................................. 15
2.5. LE SERVICE CMIS ............................................................................................................................... 15
2.6. LE PROTOCOLE CMIP ........................................................................................................................ 16
2.7. LE PROTOCOLE CMOT ...................................................................................................................... 18
2.8. OUTILS D’ADMINISTRATION .......................................................................................................... 19
2.8.1. OUTILS LOCAUX ................................................................................................................................ 19
2.8.2. PLATES-FORMES D’ADMINISTRATION......................................................................................... 19
CONCLUSION..................................................................................................................................................... 20
CHAPITRE 3 : DESCRIPTION DE L’EXISTANT............................................................................................. 21
INTRODUCTION ................................................................................................................................................ 21
3.1. DESCRIPTION DU BACKBONE IP DE TUNISIE TELECOM.......................................................... 21
3.2. ARCHITECTURE IP/MPLS DU BACKBONE IP................................................................................ 22
III
Table des matières
CONCLUSION..................................................................................................................................................... 25
CHAPITRE 4 : CONCEPTION ET IMPLEMENTATION ................................................................................. 26
INTRODUCTION ................................................................................................................................................ 26
4.1. CONCEPTION ....................................................................................................................................... 26
4.1.1. BASE DES DONNEES .......................................................................................................................... 26
4.1.2. LES MODULES DE BASES ................................................................................................................. 30
4.1.3. LE MODULE SNMPV1COMMUNICATIONINTERFACE ................................................................ 30
4.1.4. LE MODULE SIMPLEGET .................................................................................................................. 31
4.1.5. LE MODULE SNMPCOLLECTOR ...................................................................................................... 32
4.1.6. LE MODULE CONFIGCOLLECTOR .................................................................................................. 34
4.2. IMPLEMENTATION............................................................................................................................. 37
4.2.1. OUTILS UTILISES................................................................................................................................ 37
4.2.1.1. LANGAGE DE PROGRAMMATION : JAVA ................................................................................ 37
4.2.1.2. ENVIRONNEMENT DE DEVELOPPEMENT : JBUILDER 2005 ................................................. 39
4.2.1.3. SYSTEME DE GESTION DE BASE DE DONNEES : ORACLE 9.2.0.......................................... 39
4.2.2. INTERFACES UTILISATEURS ........................................................................................................... 39
4.2.2.1. TTNETVIEW .................................................................................................................................... 39
4.2.3. TTNETLOCATOR................................................................................................................................. 53
CONCLUSION..................................................................................................................................................... 54
CONCLUSION ET PERSPECTIVES .................................................................................................................. 55
ANNEXE1: ATTESTATIONS DE FORMATIONS............................................................................................ 57
ANNEXE2: EXEMPLE DE MIB ......................................................................................................................... 59
IV
Liste des figures
V
Liste des acronymes
VI
Introduction générale
Introduction générale
Les réseaux informatiques touchent de plus en plus notre vie courante. On compte sur
les services offerts par les réseaux pour assurer les transactions bancaires, les recherches web,
la téléconférence. Les services offerts par les réseaux sont donc rendus indispensables.
Pour s’assurer que les services rendus par les réseaux seraient convenables, il est
nécessaire de surveiller le réseau et d’agir quand une erreur se produit. Pour ce faire, il faut
obtenir les données de gestion des équipements de réseaux et, si nécessaire, contrôler ces
équipements.
Le projet que nous avons réalisé consiste à la mise en place d'une application capable
de gérer les équipements réseaux du Backbone IP/MPLS de Tunisie Télécom. A la fin de ce
projet nous serons en mesure de superviser la totalité du réseau Internet, de fournir des
statistiques utiles pour faire des prévisions, fournir la possibilité de la gestion des abonnées
Internet et à la fin générer des événements qui reflètent l’état de notre réseau.
Afin de comprendre la démarche que nous avons adopté pour mener ce projet à son
terme, le rapport se structure de la façon suivante :
1
Introduction générale
Chapitre 1
Présentation du projet
Introduction
Dans le présent chapitre, nous allons essayer de présenter notre stage. Pour ce faire,
procédons à une présentation de l’organisme d’accueil, à savoir ‘Tunisie Télécom’. Par la
suite, nous dégageons la problématique pour aboutir aux objectifs spécifiques à notre projet.
2
Introduction générale
1.2. Problématique
Tunisie Télécom a migré vers une architecture IP/MPLS qui intègre la notion qualité de
service dans une politique qui vise l’amélioration des services offerts aux clients. Cette
migration a engendré la croissance du réseau en nombre de routeurs connectés et données
partagées. Pour maintenir ce réseau opérationnel et disponible, des techniques et des outils
avancés ont dû être inventés pour assurer son fonctionnement et son administration. Notre
projet rentre dans ce cadre et vise à remédier à quelques problèmes à savoir :
- Perte des fichiers de configuration des routeurs
- Difficulté de localisation d’un client
- Manque de suivis efficaces des états des routeurs (CPU, Température, états des
interfaces...)
- Pas d’historique…
Ces problèmes ont causé une mauvaise exploitation des ressources disponibles et une
grande perte de temps.
3
Introduction générale
L’objectif principal de ce projet et de parvenir à avoir une vision globale sur la totalité du
BackboneIP/MPLS de Tunisie Télécom. La solution proposée est spécialement utile pour
identifier tout dysfonctionnement dans le réseau et de faciliter la prévision de toute
amélioration.
Le projet consiste au développement d’une application de gestion du Backbone IP/MPLS.
Cette application va être capable de :
- Avoir des informations sur les états des routeurs (Température, Alimentation,
Processeurs, Etats des interfaces, Table de routage...)
- Sauvegarder les fichiers de configuration des routeurs à fin de les utiliser en cas de panne
ou de perte de config.
- Pouvoir effectuer une recherche pour la localisation des clients.
- Génération des statistiques sur le trafic
- Génération d’événements utiles
Conclusion
Après avoir présenté notre projet, nous entamons par la suite la partie qui permet la
présentation de certains concepts liés à notre domaine d’application.
4
Chapitre 3 : Description de l’existant
2. Chapitre 2
La gestion de réseau
Introduction
L’objectif des administrateurs d’un système d’information est donc de pouvoir connaître en
permanence l’état du réseau, et d’être averti en temps réel des différents incidents pour réduire au
maximum les délais d’intervention et de coupure du service.
A présent, de nouveaux besoins se font sentir. Le premier besoin est de rompre la contrainte de
proximité de l’équipement à gérer. Avec les protocoles de gestion de réseau actuels, le réseau est
utilisé afin de permettre la gestion des équipements le composant. On se trouve donc dans le cas
5
Chapitre 3 : Description de l’existant
d’une gestion du réseau par le réseau. Le second besoin concerne la dépendance humaine. La
complexité des réseaux s’accroissant, la tâche de gestion du réseau exige une telle masse
d’informations à traiter qu’elle dépasse la capacité de l’être humain. En effet, il faut remarquer
que chaque information individuelle sur un équipement ne peut être utilisée telle quelle, elle n’est
significative que dans le contexte du réseau global.
Les considérations énoncées ci-dessus permettent d’identifier les besoins de la gestion des
réseaux:
2.2. Fonctionnalités
Une bonne gestion de réseau permet l’utilisation optimale de toutes les ressources offertes par
le réseau. La gestion de réseau a trois fonctions : la cueillette des données de gestion,
l’interprétation et le contrôle.
6
Chapitre 3 : Description de l’existant
Pour effectuer cette tâche, une technique pour démasquer les éléments de réseaux est
nécessaire. Un protocole pour obtenir les informations de gestion est aussi nécessaire. SNMP est
un protocole qui permet de réaliser ces fonctionnalités. [H1]
- La partie client, appelée manager, est l’entité qui va superviser les opérations de gestion. Elle
sert d’interface entre l’utilisateur et le serveur. Il peut y avoir, le cas échéant, plusieurs managers.
7
Chapitre 3 : Description de l’existant
8
Chapitre 3 : Description de l’existant
Dans le cadre de notre projet on a opté à l’utilisation du protocole SNMP qui offre une grande
panoplie de fonctionnalités
2.4. SNMP
2.4.1. Historique
L’activité de recherche et de standardisation au niveau de SNMP est menée sous l’égide
de l’IETF (Internet Engineering Task Force). La première version de SNMP a vu le jour en 1989.
La seconde version, appelée SNMP v2 a été standardisée en 1992 [RFC1905]. Cette version
apporte essentiellement des changements au niveau de la sécurité et de la confidentialité des
opérations de gestion. Suite à des problèmes apparus lors de la mise en opération de la seconde
version du protocole, ces aspects ont été classés obsolètes en 1996 lors d’un des meeting tri
annuel de l’IETF. Ce dernier rebondissement a eu pour effet, d’une part de renvoyer SNMP à son
état de 1989 et d’autre part, de déclencher les recherches sur SNMP v3. Les travaux se
poursuivent actuellement et petit à petit les différents éléments de l’architecture SNMP v3 sont
proposés à la communauté scientifique [RFC2274]. SNMP v3 (dans les aspects qui sont
actuellement définis) est en passe de devenir un standard car il est accepté par le working group
SNMP v3 en tant que proposed standard. A l’heure actuelle, SNMP v1 reste la version la plus
utilisée. De plus, les résultats obtenus avec SNMP v1 sont immédiatement applicables à SNMP-
v2. [H1]
9
Chapitre 3 : Description de l’existant
10
Chapitre 3 : Description de l’existant
A chaque objet correspond zéro, une ou plusieurs instances. Remarquons que les premier et
dernier cas sont rares. Lorsqu’un objet n’à aucune instance, c’est qu’il est présent dans la MIB
pour des raisons historiques mais qu’il est marqué comme obsolète.
La MIB déclaration est quelque chose de statique: on ne peut pas rajouter d’objets pendant que
l’agent fonctionne. La MIB implantation est semi-dynamique: seuls certains types d’objets
supportent l’ajout d’instances. Les autres instances existent de manière prédéfinie. Nous
reviendrons sur ces aspects ultérieurement.
11
Chapitre 3 : Description de l’existant
La MIB déclaration est décrite à l’aide d’un langage spécifié dans un standard appelé
Structure of Managed Information (SMI). Pour SNMP v1, ce standard est le Request
For Comment 1155 [RFC1155]. Le langage utilise pour sa définition la syntaxe ASN.1. Chaque
objet qui y est déclaré inclut les informations
suivantes:
- Un nom.
- Un type: il s’agit soit d’un type simple: INTEGER, OCTET-STRING, NULL, soit d’un
type de construction: SEQUENCE-OF, SEQUENCE, soit d’un type spécifique:
NetworkAddress, IpAddress, Counter, Gauge, TimeTicks.
- Un modificateur d’accès: read-write, read-only, write-only, not-acessible.
- Un modificateur de statut: mandatory, optional, obsolete.
- Une description: il s’agit d’un texte en langage naturel, qui décrit l’utilité de l’objet.
12
Chapitre 3 : Description de l’existant
Les objets et instances sont nommés par un identificateur que l’on appelle object identifier. Il
s’agit d’une suite de nombres séparés par des points. La dot notation fournit un chemin dans
l’arbre à partir de la racine. La racine est identifiée par le nombre ’1’. Le nombre suivant, c’est-à-
dire le second nombre dans la dot notation, identifie le numéro du fils de la racine. On procède
récursivement jusqu’à la fin de l’object identifier. A titre d’exemple, l’objet snmpInPkts possède
comme object identifier 1.3.6.1.2.1.11.1 Les cinq premiers identificateurs sont fixes car ils
correspondent à la racine de toute l’arborescence de management:
iso(1).org(3).dod(6).internet(1).mgmt(2)
Le sixième identificateur correspond à mib2(1) qui est la MIB permettant de gérer un stack
TCP/IP standard. L’objet snmpInPkts est le premier fils en partant de la gauche du groupe snmp
qui lui-même a l’identificateur 11. On utilise comme notation abrégée snmp(11).
L’object identifier d’une instance est construit sur base de l’object identifier de l’objet
correspondant. Suivant que l’instance appartienne à une table (un ensemble de lignes) ou soit une
instance isolée (appelée variable simple) le schéma de construction est différent.
Dans le cas des variables simples, on postfixe l’identificateur de l’objet par un numéro
d’instance. Les instances sont numérotées à partir de zéro. L’instance correspondant à l’objet
snmpInPkts sera donc identifiée par 1.3.6.1.2.1.11.1.0 Si une instance supplémentaire existe (ce
qui n’est pas le cas ici), elle porte l’identificateur 1.3.6.1.2.1.11.1.1 et ainsi de suite. L’accès à des
13
Chapitre 3 : Description de l’existant
instances appartenant à des tables est plus complexe, car SNMP utilise le concept d’adressage
associatif.
Si une des opérations de la requête échoue (ex: un SET sur un objet read-only), aucune
opération de la requête ne peut être réalisée. Ca n’est réellement intéressant que dans le cas des
opérations SET qui modifient la MIB. Cette propriété est appelée atomicité d’une requête et peut
être implantée comme suit. Le noyau de la méthode consiste à retenir dans une liste les objets
modifiés ainsi que leur valeur. Si une des opérations est source d’erreur, la liste des objets
modifiés est utilisée pour effectuer un “rollback” et restaurer le système dans l’état précédant le
traitement de la requête. Cette technique est relativement simple à implanter. D’autres techniques
du type “commit” peuvent également être utilisées.
Lors des différentes opérations, il peut survenir des erreurs. Les plus importantes sont les
suivantes:
• Non-respect du type d’une instance lors d’un SET. Ex: assigner un OCTET-STRING à une
instance de type INTEGER (erreur badValue).
14
Chapitre 3 : Description de l’existant
• Non-respect de l’accès d’une instance lors d’un SET: Ex: assigner une valeur à une
instance read-only (erreur readOnly).
• GET-NEXT d’une instance non existante. Lorsqu’il n’y a plus d’instance après le point de
départ, le GET-NEXT renvoie une erreur (noSuchName).
• GET ou SET d’un nœud de la MIB qui n’est pas une instance (erreur noSuchName).
15
Chapitre 3 : Description de l’existant
16
Chapitre 3 : Description de l’existant
17
Chapitre 3 : Description de l’existant
Une machine protocolaire est décrite sous la forme d'un automate. Celui ci se présente comme
une boite noire sollicitée par des événements extérieurs, qui déclenche un traitement interne
spécifique pour chaque événement reçu en fonction de l'état dans lequel elle se trouvait au début
du traitement, il génère des événements sortants et change éventuellement d'état à la suite de
chaque traitement déclenché. La description du protocole CMIP par la norme [ISO 9596] permet
d'identifier six états de fonctionnement de CMIPM:
· IDLE: c'est l'état de repos de CMIPM. Dans cet état, le protocole est inactif;
· ASSOCIATED: c'est l'état de fonctionnement normal de CMIPM lorsque l'association
d'application est établie. Il est prêt à accepter des primitives CMISE;
· WCFESTA: CMIPM est en attente d'une confirmation d'établissement d'association que doit
rendre l'entité SMAE distante;
· WRPESTA: CMIPM est en attente d'une réponse d'établissement d'association que doit
rendre son utilisateur, c'est à dire SMASE;
· WCFTERM: CMIPM est en attente d'une confirmation de terminaison d'association que doit
rendre l'entité SMAE distante;
· WRPTERM: CMIPM est en attente d'une réponse de terminaison d'association que doit
rendre son utilisateur SMASE. [H4]
18
Chapitre 3 : Description de l’existant
19
Chapitre 3 : Description de l’existant
d’IBM, Sun Net Manager / Solstice Enterprise Manager, Spectrum, ISM – OpenMaster.
[H3]
Parmi les services de base offerts par les plates-formes, on peut noter :
- La découverte et la gestion de la topologie du réseau ; découverte automatique des
machines du réseau, et dessin de la topologie avec les interconnexions, les routeurs, …
- La gestion des ressources
- La gestion des événements
- Les fonctions de collecte d’informations et d’interrogation
Conclusion
Après avoir fait l’étude de ces différents concepts liés à la gestion des réseaux, nous allons
essayer par la suite de présenter la Backbone IP/MPLS de Tunisie Télécom qui représente le
réseau le plus étendu en Tunisie.
20
Chapitre 3 : Description de l’existant
Chapitre 3
Description de l’existant
3.
Introduction
Dans ce chapitre nous allons présenter sommairement l’architecture déployée ainsi la variété
des équipements qui vont être géré par notre application à fin de s’arrêter sur le niveau de
complexité de la gestion d’un tel réseau.
Le Backbone IP national dont Tunisie Télécom s’occupe de son évolution ainsi que de sa
gestion est constitué principalement de 11 routeurs régionaux ou principaux éparpillés sur la
totalité du territoire tunisien. Ces routeurs sont caractérisés par leur bonne performance (les
gammes les plus répandues sont la gamme 7500 et 7200 de Cisco), ils assurent une couverture
maximale du pays, leur fonction principale est de permettre un routage fluide et efficace du trafic
transitant sur le Backbone.
Les clients ne sont pas connectés directement via les routeurs principaux mais c’est à la charge
des routeurs périphériques ainsi que les serveurs d’accès d’assurer l’interconnections des
différents types d’utilisateurs (RTC, LS, X25, FR, ADSL), plusieurs gamme de routeurs sont
utilisées tels que Cisco 3660,2600,36200 Max6000,Huwai .
Pour assurer la fiabilité du Backbone, une architecture redondante est mise en place pour
l’interconnexion des routeurs principaux. Un site doit être relié au moins à deux sites différents
pour assurer à la fois le basculement du trafic en cas de panne ainsi que le partage de charge en
cas de congestion.
Des routes statiques sont implémentées au niveau des routeurs périphériques pour permettre
d'acheminer le trafic aux clients finaux.
21
Chapitre 3 : Description de l’existant
Le routage dynamique est implémenté au niveau des routeurs principaux pour calculer de
nouvelles routes, détecter des changements de topologie et pour s'échanger les mises à jour. Ce
type de routage est utilisé aussi au niveau des routeurs périphériques pour injecter les routes
statiques contenues dans les tables de routage des routeurs principaux.
Le protocole de routage utilisé au niveau du Backbone est l'OSPF (Open Shortest Path First)
qui est un protocole " link state" (qui dépend de l'état de la liaison) et qui utilise pour le calcul des
routes l'algorithme SPF (Shortest Path First). Les routeurs principaux sont groupés dans l’area 0
(area Backbone) les routeurs périphériques de chaque zone sont groupés dans une area spécifique
AreaX.
Le routage, que ce soit statique ou dynamique, ne répond pas au besoin car le routage du trafic
sortant des clients sur le Backbone se fait généralement à la source d’où la nécessité d’utilisés la
technique PBR (Policy Based Routing). Dans le cas du Backbone IP de Tunisie Télécom, la PBR
utilisée est basée sur le routage à la source qui permet dans la majorité des cas d'acheminer le
trafic provenant des abonnés Internet vers leurs FSIs puisque à partir de l'adresse source de
l'abonné le routeur va déterminer à quel FSI il appartient. L'inconvénient majeur de cette
politique c'est qu'elle est consommatrice de CPU.
Le Backbone MPLS est constitué de routeurs Cores et de routeurs Edges. Les routeurs Edges
vont s’occuper de tout ce qui est services et les routeurs Cores ont la charge d’assurer seulement
la commutation des paquets. Le problème c’est qu'il y a des routeurs déjà opérationnels ne
supportent pas MPLS d’où il a fallu les placer derrière les routeurs Edge. Comme première étape
il faut acquérir l’acquisition de nouveaux routeurs pour assurer la fonctionnalité du Backbone
core est indispensable, la gamme 12000 de Cisco est fréquemment conseillée dans ce genre de
contexte.
22
Chapitre 3 : Description de l’existant
CE
PE
PE
P P
CE
PE
P P
PE
PE
P P PE
PE
23
Chapitre 3 : Description de l’existant
Les VRFs
La notion même de VPN implique l’isolation du trafic entre sites clients n’appartenant pas au
même VPN. Pour réaliser cette séparation, les routeurs PE ont la capacité de gérer plusieurs
tables de routage grâce à la notion de VRF (VPN Routing and Forwarding). Une VRF est
constituée d’une table de routage, d’une FIB (Forwarding Information Base) et d’une table CEF
spécifiques, indépendantes des autres VRF et de la table de routage globale. Chaque VRF est
désignée par un nom sur les routeurs PE. Les noms sont affectés localement, et n’ont aucune
signification vis-à-vis des autres routeurs. Chaque interface de PE reliée à un site client est
rattachée à une VRF particulière. Lors de la réception de paquets IP sur une interface client, le
routeur PE procède à un examen de la table de routage de la VRF à laquelle est rattachée
l’interface, et donc ne consulte pas sa table de routage globale. Cette possibilité d’utiliser
plusieurs tables de routage indépendantes permet de gérer un plan d’adressage par sites, même en
cas de recouvrement d’adresses entre VPN différents.
Pour l’échange des routes et des informations concernant les VRFs entre les routeurs PE,
plusieurs possibilités sont offertes :
Pour l’échange d’informations entre les extrémités des VRFs, des sessions BGP doivent être
établîtes. Normalement un Full-mesh est réalisé entre tous les routeurs PE, mais vue le grand
nombre de routeurs périphériques que dispose le Backbone, le fait d’appliquer un Full-mesh entre
ces différents routeurs va charger le réseau lors de la mise à jours de la table de routage. Pour
remédier à ça un Full-mesh est appliqué entre les routeurs Core et des routes reflector entre les
24
Chapitre 3 : Description de l’existant
routeurs P et PE pour informer les routeurs PE des modifications apportées à la table de routage
et communiquer des informations sur les VPNs.
Conclusion
Nous venons, au niveau de ce chapitre, de présenter l’architecture du Backbone IP/MPLS ainsi
que la politique de routage utilisée. La richesse en terme d’équipements et de technologie
déployée, rend la tâche de la mise en place d’une application pour la gestion du Backbone une
tâche assez complexe.
25
Chapitre 4 : Conception et implémentation
Chapitre 4
Conception et implémentation
4.
Introduction
La programmation orientée objet est une technique qui est à la base de tous les nouveaux
projets de développement de logiciels. La mise en oeuvre de logiciels réseau n’échappe pas à
cette tendance. Comme tous les autres projets logiciels, les logiciels réseaux peuvent profiter
des
avantages de l’orienté objet. Cette technique permet la construction d’un programme solide,
bien structuré, facile à visualiser et qui est facile à modifier et à maintenir.
Ce présent chapitre est consacré à détailler les mécanismes de fonctionnement de quelques
modules de TTNetView.
4.1. Conception
Après une étude détaillée de l’architecture du Backbone et une compréhension des MIBs
de plusieurs constructeurs (Cisco, Nortel, Luccent…), on a choisi de répartir le Backbone en
des groupes suivant la gamme des équipement et à chaque groupe on va affecter une
politique de polling SNMP.
Pour la base de données de notre application, nous avons utilisé les tables suivantes :
• Table Groupe (Figure 4.1) qui va contenir la liste des différents groupes. Les champs de
cette table sont :
- NOM_GROUPE : Nom du groupe
- DESCRIPTION : Description du groupe
26
Chapitre 4 : Conception et implémentation
• Table Routeur (Figure 4.2) qui va contenir la liste des routeurs du Backbone. Les champs
de cette table sont :
- IP_Routeur : Adresse IP du routeur
- Nom_Routeur : Nom du routeur
- Description_Routeur : détails concernant le routeur
- Niveau 1 : Mot de passe du premier niveau.
- Niveau 2 : utilisée pour entrer en communication avec des routeurs où le SSH est
activé.
- Nom_Groupe : à quel groupe appartient ce routeur.
- SNMP_Community : la communauté SNMP de ce routeur.
- CMD : commande pour avoir le fichier de configuration du routeur.
- Niveau 3 : Mot de passe pour passer au mode configuration.
• Table OID (Figure 4.3) : défini les OID des informations SNMP à extraire concernant les
routeurs et les interfaces. Les principaux champs de cette table sont :
- OID : contient les OIDs des informations SNMP à extraire
- Name : les noms des variables SNMP
- Taille : la taille du résultat en nombre caractères, cette information est utilisée pour
mettre à jour la table historique.
- Stored : on va indiquer si cette information va être sauvegardée au niveau de
l’historique.
27
Chapitre 4 : Conception et implémentation
- Créer une table historique_int_Nom_Groupe (Figure 4.5) gardant l’historique sur les
interfaces de différents routeurs.
- Créer un dossier portant le nom du groupe, dans lequel on va sauvegarder les fichiers de
configuration des routeurs de ce groupe.
28
Chapitre 4 : Conception et implémentation
Une table clients (Figure 4.6) sera créée pour contenir les différents clients (Publinets,
Lycée, Faculté, ...) qui sont connectés sur le Backbone. Les champs de cette table sont :
- IP_Routeur : adresse IP du routeur
- Nom_Routeur : Nom du routeur
- Index_int : index de l’interface
- Nom_int : nom de l’interface
- Description : Description de la liaison
- Ipaddress : Adresse IP de l’interface
- Netmask : Masque de sous réseau
- MTU : Taille maximale d’une trame qui peut passer par cette interface
- Bandwidth : Bande passante
- Routes : les routes qui passent par cette interface.
Figure 4.6
Les tables concernant l’historique sont des tables dynamiques, une colonne sera ajoutée
chaque fois qu’on veut sauvegarder les traces d’une nouvelle variable SNMP concernant les
routeurs ou leurs interfaces. La nouvelle colonne va porter le nom de la nouvelle variable.
A chaque groupe, on va choisir les informations SNMP utiles à extraire de chaque routeur.
Par exemple pour un routeur de type Huawei, il n’est pas nécessaire d’avoir la valeur de la
charge se son CPU parce que sa MIB ne contient pas une telle valeur.
29
Chapitre 4 : Conception et implémentation
Cette classe (Figure 4.7) implémente des méthodes pour la communication avec les entités
SNMP. La version SNMP utilisée est la version 1, puisque la plupart des routeurs du
Backbone supportent cette version. La communication se fait à travers le port UDP 161, le
port standard du protocole SNMP, en utilisant les sockets.
En utilisant la version 1 du protocole SNMP, les données ne seront pas cryptées. Le
constructeur de cette classe nécessite l’adresse IP d’un routeur et le nom de sa communauté
SNMP.
30
Chapitre 4 : Conception et implémentation
31
Chapitre 4 : Conception et implémentation
SNMPCollector est le processus qui a pour tâche de collecter les informations SNMP et de
les stocker dans la base de données à fin de garder un historique bien détaillé sur les états des
routeurs et leurs interfaces.
SNMPCollector commence par contacter la base de données pour avoir la liste des
différents groupes, puis pour chaque groupe, il extrait à partir de la table Routeur la liste des
routeurs formant ce groupe et, à partir des tables OID_Nom_Groupe et
OID_int_Nom_Groupe, les OIDs des variables SNMP à gérer ainsi leurs seuils. Ensuite,
SNMPCollector teste la connexion avec le routeur en envoyant des requêtes Ping, s’il y a une
réponse il va stocker les diverses informations SNMP concernant son état dans la table
Historique_Nom_Groupe et les informations concernant ses interfaces dans la table
Historique_int_Nom_Groupe. Chaque fois qu’une valeur d’une variable SNMP excède le
seuil indiqué par l’administrateur, il y aura une émission d’un événement vers un fichier log.
La figure suivante (Figure 4.9) résume le fonctionnement du ce processus.
32
Chapitre 4 : Conception et implémentation
Base de
Données
Demande la liste des groupes Groupe Historique
SNMPCollector
N groupes
Routeur OID
For 1 to N do
OIDs
For 1 to K do
Get Value
Of OID
Backbone IP/MPLS
Send Value
(Value
>
Seuil) OR
( !Ping)
Log
33
Chapitre 4 : Conception et implémentation
34
Chapitre 4 : Conception et implémentation
ConfigCollector commence par contacter la base de données pour avoir la liste des
différents groupes, puis pour chaque groupe, il extrait à partir de la table Routeur la liste des
routeurs formant ce groupe.
Ensuite, pour chacun, ConfigCollector teste la connexion en envoyant des requêtes Ping,
s’il y a une réponse, il va entrer en communication avec le routeur en utilisant le protocole
Telnet et lui envoyer la commande qui permet d’avoir son fichier de configuration, par
exemple :
- ‘’ show run ’’ pour les routeurs Cisco
- ‘’ display current-configuration ’’ pour les routeurs Huawei.
Ces fichiers de configuration seront stockés dans des dossiers portant les noms des
différents groupes. Pour les informations concernant les interfaces (Nom Interface,
description, adresse IP, Bande passante…) seront stockées dans la table clients pour être
utilisées pour la localisation d’un client. La figure suivante (Figure 4.11) résume le
fonctionnement du ce processus.
35
Chapitre 4 : Conception et implémentation
Base de
Demande la liste des groupes Groupe
ConfigCollector Données
Clients
N groupes
Routeur
For 1 to N do
For 1 to K do
ConfigCollector
Ping
Telnet
Send Config
Save Config
Get Interfaces
Log
36
Chapitre 4 : Conception et implémentation
4.2. Implémentation
Java est développé par une équipe de Sun Microsystems, est le dernier né des langages de
programmation par objet. Fondé notamment sur le principe d’indépendance du support
d’exécution, il permet de générer du pseudo-code (appelé couramment bytecode) interprété
par une machine virtuelle.
L’essor de Java a été largement catalysé et médiatisé par le développement de l’Internet et
du World Wide Web. Une des caractéristiques les plus connues du code Java est en effet de
37
Chapitre 4 : Conception et implémentation
pouvoir être téléchargé et exécuté par des navigateurs Web. L’impact est tel que l’on estime
aujourd’hui le nombre de développeurs Java à plus de 500 000 à travers le monde.
La mise en œuvre dans les réseaux privés d’entreprise des technologies de l’Internet que
constitue l’Intranet ouvre, grâce à Java, de nouvelles perspectives qui révolutionnent la
manière de concevoir les architectures Clients-Serveurs déployées jusqu’à aujourd’hui. Les
postes clients s’allègent et représentent des coûts d’administration moins importants. Les
serveurs hébergent non seulement les données de l’entreprise mais aussi les applications
écrites en Java, qui sont écrites une fois et une seule, quel que soit leur support final
d’exécution. Elles peuvent ainsi être mises à jour de manière centralisée.
Les librairies de classes Java spécialisées, qui intègrent en particulier l’interrogation des
bases de donnés, ainsi que l’apparition des Network Computers, font de Java une technologie
clé du déploiement de ce nouveau système d’information de l’entreprise, centré sur le réseau.
Java présente plusieurs avantages :
38
Chapitre 4 : Conception et implémentation
Oracle est l’un des SGBD les plus forts dans le monde des bases de données, il présente
plusieurs avantages dont :
- Sécurité au niveau ligne.
- JVM inclue dans le moteur.
- Support SQLJ, niveau 0 et 1.
- Gestion cluster, haute disponibilité.
- Edition des plan d'exécution.
- Parallélisme pour insert et update.
- Backup et restore parallèles.
- Tables de résumé.
- Rôles définis par l'utilisateur.
- Gouverneur de ressources.
- Attribution de priorités.
Le choix d’Oracle est basé sur plusieurs raisons :
- Les tables concernant l’historique sont des tables géantes.
- L’accès à la base doit être rapide.
- La base doit supporter plusieurs connexions à la fois.
- Tunisie Télécom utilise Oracle dans ses applications.
4.2.2.1. TTNetView
39
Chapitre 4 : Conception et implémentation
Panneau 1 Panneau 2
Panneau 3 Panneau 4
40
Chapitre 4 : Conception et implémentation
Groupe Cisco_12000
Routeurs de ce groupe
A la sélection d’un groupe, le deuxième panneau (Figure 4.15) va contenir les informations
concernant les routeurs de ce groupe (CPU, Mémoire utilisée, Mémoire libre, Nombre
d’interfaces…).
Pour les routeurs Cisco, on a choisit d’avoir les informations suivantes:
- Informations générales :
- IP_Routeur : Adresse IP du routeur
- sysName : Nom du système
- ifNumber : Nombre total d’interfaces
- Informations concernant l’état du routeur :
- cpu5min : Pourcentage de la charge du CPU pendant les 5 dernières minutes
- memUsed : Mémoire utilisé en bits
- memFree : Mémoire libre en bits
- tempIn : Température à l’entrée en Fahrenheit
- tempOut : Température à la sortie
- Informations concernant le protocole IP :
- ipOutNoRoutes : Nombre de paquets IP perdus
41
Chapitre 4 : Conception et implémentation
A la sélection d’un routeur, ce panneau (Figure 4.16) va contenir les informations concernant
ses interfaces.
42
Chapitre 4 : Conception et implémentation
Figure 4-16: Informations SNMP concernant les interfaces d’un routeur Cisco
43
Chapitre 4 : Conception et implémentation
44
Chapitre 4 : Conception et implémentation
45
Chapitre 4 : Conception et implémentation
Figure 4-19: Génération d’un rapport Concernant un interface d’un routeur Cisco
46
Chapitre 4 : Conception et implémentation
47
Chapitre 4 : Conception et implémentation
On n’a pas pu
avoir des
informations
sur les routeurs
193.95.52.108,
193.95.52.98,
193.95.52.2
La console
d’événements
nous indique
que ces
routeurs sont
injoignables
Indique l’état du
processus
SNMPCollector
48
Chapitre 4 : Conception et implémentation
49
Chapitre 4 : Conception et implémentation
50
Chapitre 4 : Conception et implémentation
- Configurer les OIDs des différents groupes concernant les interfaces ou les routeurs
(Figure 4.27) : On peut ajouter (Figure 4.28), supprimer ou modifier un OID.
51
Chapitre 4 : Conception et implémentation
A l’ajout d’un OID, une nouvelle information sera ajoutée (Figure 4.29) :
52
Chapitre 4 : Conception et implémentation
4.2.3. TTNetLocator
TTNetLoctor est utilisé pour la localisation d’un client dans le Backbone IP/MPLS. On
peut utiliser pour la recherche l’adresse du routeur, l’adresse IP de l’interface, la description
de l’interface ou la table de routage (Figure 4.32).
53
Chapitre 4 : Conception et implémentation
Conclusion
Nous venons, au niveau de ce chapitre, de présenter les principaux modules utilisés ainsi
que les interfaces utilisateurs. Plusieurs informations n’ont pas pu être divulguées faute de
confidentialité.
54
Conclusion et perspectives
Conclusion et perspectives
La gestion de réseaux est l’un des domaines les plus complexes auxquels l’on puisse se
confronter; elle cumule la distribution, le modèle objet, le temps réel, le transactionnel, la
gestion d’équipements complexes. C’est en conséquence une source de coût importante pour
l’opérateur, qui se voit contraint d’investir des sommes significatives et des compétences
critiques dans une fonction qui semble non immédiatement rentable.
Ce travail, qui ne consiste pas une fin en soi, pourrait être complété de plusieurs manières.
Des modules peuvent être ajoutés à savoir la découverte de la topologie du réseau ;
découverte automatique des machines du réseau, dessin de la topologie avec les
interconnexions.
55
Bibliographie
Bibliographie
Simple Network Management Protocol de Nicolas ADENIS-LAMARRE et Vincent
BEDRUNE
Understanding SNMP MIBs de David Perkins et Evan McGinnis
Néographies
[H1] http:\\www-igm.univ-mlv.fr/~dr/ XPOSE2002/vollerin/solGestion.htm
[H2] http:\\ www.f4dwu.net/download/memoire2.pdf
[H3] http:\\0ryck.free.fr/doc du site hackerz/Administration snmp.html
[H4] http://www-lor.int-evry.fr/~agirs/gestion-reseaux-v2.03.pdf
http://www.cisco.com/public/sw-center/netmgmt/cmtk/mibs.shtml
http://www.simpleweb.org/ietf/mibs/
http://www.commentçamarche.com
http://www.guill.net
http://www.faqs.org/rfcs/rfc1157.html
http://www.faqs.org/rfcs/rfc1155.html
http://www.faqs.org/rfcs/rfc1213.html
http://www.developpez.com
56
Annexes
57
Annexes
58
Annexes
• Groupe “Système”
– Informations génériques de configuration
• Groupe “Interfaces”
– Informations concernant les interfaces :
– type, adresse, nombre d’octets in/out, statut,…
• Groupe “ARP”
– Liaison Adresse Physique – Adresse logique
• Groupe “IP”
– Informations sur le niveau IP: TTL, tables de
routage, nombre de paquets,…
• Groupe “ICMP”
– Informations statistiques sur les messages ICMP:
– Nombre de messages, de messages Echo, …
• Groupe “TCP”
– Informations sur les connexions TCP : connexions en cours, nombre de messages, de
circuits ouverts, TTL, …
• Groupe “UDP”, “EGP”,“SNMP”,
RFC1213-MIB
DEFINITIONS ::= BEGIN
IMPORTS
mgmt, NetworkAddress, IpAddress, Counter, Gauge,
TimeTicks
FROM RFC1155-SMI
OBJECT-TYPE
FROM RFC-1212;
-- MIB-II (same prefix as MIB-I)
mib-2 OBJECT IDENTIFIER ::= { mgmt 1 }
59
Annexes
-- textual conventions
DisplayString ::=
OCTET STRING
-- This data type is used to model textual information taken
-- from the NVT ASCII character set. By convention, objects
-- with this syntax are declared as having
-- SIZE (0..255)
PhysAddress ::=
OCTET STRING
-- This data type is used to model media addresses. For many
-- types of media, this will be in a binary representation.
-- For example, an ethernet address would be represented as
-- a string of 6 octets.
-- groups in MIB-II
system OBJECT IDENTIFIER ::= { mib-2 1 }
interfaces OBJECT IDENTIFIER ::= { mib-2 2 }
at OBJECT IDENTIFIER ::= { mib-2 3 }
ip OBJECT IDENTIFIER ::= { mib-2 4 }
icmp OBJECT IDENTIFIER ::= { mib-2 5 }
tcp OBJECT IDENTIFIER ::= { mib-2 6 }
udp OBJECT IDENTIFIER ::= { mib-2 7 }
egp OBJECT IDENTIFIER ::= { mib-2 8 }
-- historical (some say hysterical)
-- cmot OBJECT IDENTIFIER ::= { mib-2 9 }
transmission OBJECT IDENTIFIER ::= { mib-2 10 }
snmp OBJECT IDENTIFIER ::= { mib-2 11 }
-- the System group
-- Implementation of the System group is mandatory for all
-- systems. If an agent is not configured to have a value
-- for any of these variables, a string of length 0 is
-- returned.
sysDescr OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..255))
ACCESS read-only
60
Annexes
STATUS mandatory
DESCRIPTION
"A textual description of the entity. This value should include the full name and version
identification of the system's hardware type, software operating-system, and networking
software. It is mandatory that this only contain printable ASCII characters."
::= { system 1 }
sysObjectID OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The vendor's authoritative identification of the network management subsystem contained in
the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides
an easy and unambiguous means for determining `what kind of box' is being managed. For
example, if vendor `Flintstones, Inc.' was assigned the
subtree 1.3.6.1.4.1.4242, it could assign the
identifier 1.3.6.1.4.1.4242.1.1 to its `Fred
Router'."
::= { system 2 }
sysUpTime OBJECT-TYPE
SYNTAX TimeTicks
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The time (in hundredths of a second) since the network management portion of the system
was last re-initialized."
::= { system 3 }
sysContact OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..255))
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The textual identification of the contact person for this managed node, together with
information on how to contact this person."
61
Annexes
::= { system 4 }
sysName OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..255))
………
-- the Interfaces group
-- Implementation of the Interfaces group is mandatory for
-- all systems.
ifNumber OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of network interfaces (regardless of their current state) present on this system."
::= { interfaces 1 }
-- the Interfaces table
-- The Interfaces table contains information on the entity's
-- interfaces. Each interface is thought of as being
-- attached to a `subnetwork'. Note that this term should
-- not be confused with `subnet' which refers to an
-- addressing partitioning scheme used in the Internet suite
-- of protocols.
ifTable OBJECT-TYPE
SYNTAX SEQUENCE OF IfEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A list of interface entries. The number of entries is given by the value of ifNumber."
::= { interfaces 2 }
ifEntry OBJECT-TYPE
SYNTAX IfEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"An interface entry containing objects at the subnetwork layer and below for a particular
62
Annexes
interface."
INDEX { ifIndex }
::= { ifTable 1 }
IfEntry ::=
SEQUENCE {
ifIndex INTEGER,
ifDescr DisplayString,
ifType INTEGER,
ifMtu INTEGER,
ifSpeed Gauge,
ifPhysAddress PhysAddress,
ifAdminStatus INTEGER,
ifOperStatus INTEGER,
ifLastChange TimeTicks,
ifInOctets Counter,
ifInUcastPkts Counter,
ifInNUcastPkts Counter,
ifInDiscards Counter,
ifInErrors Counter,
ifInUnknownProtos Counter,
ifOutOctets Counter,
ifOutUcastPkts Counter,
ifOutNUcastPkts Counter,
ifOutDiscards Counter,
ifOutErrors Counter,
ifOutQLen Gauge,
ifSpecific OBJECT IDENTIFIER
63