RAPPORT DE PROJET DE FIN D’ETUDES Filière
Ingénieurs en Télécommunications
Option
Ingénierie des Réseaux
Développement d’un gestionnaire de réseau pour le Backbone IP/MPLS de Tunisie Télécom Elaboré par :
Sabri Ben Amara Encadré par :
M. Mounir Frikha
M. Montassar Bachwerdiane
Année universitaire : 2004/2005
DEDICACE
A ma Mère A mon Père A ma Femme A ma Fille A mes Frères A mes Sœurs
Remerciements
Remerciements Je suis profondément reconnaissant à mes deux encadreurs Mr Mounir Frikha et Mr Montassar Bachwerdiane pour m’avoir fait le grand honneur de diriger mon projet dans les meilleures conditions, ainsi que pour leurs encadrements, leurs conseils et leurs disponibilités. Je voudrais aussi témoigner ma reconnaissance à Monsieur Slim Jarraya directeur de la Direction des Technologies de l’Information et des Réseaux à Tunisie telecom pour son aide et les facilitées qu’il m’a offert au sein du Backbone IP/MPLS ainsi que pour tous les personnels de la DTIR pour leurs collaborations. 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.
Mots clés : Backbone IP, SNMP, administration, génération d’événement.
II
Table des matières
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. 4.2.2.1. 4.2.3.
INTERFACES UTILISATEURS ........................................................................................................... 39 TTNETVIEW .................................................................................................................................... 39 TTNETLOCATOR................................................................................................................................. 53
CONCLUSION..................................................................................................................................................... 54 CONCLUSION ET PERSPECTIVES .................................................................................................................. 55 ANNEXE1: ATTESTATIONS DE FORMATIONS............................................................................................ 57 ANNEXE2: EXEMPLE DE MIB ......................................................................................................................... 59
IV
Liste des figures
Liste des figures
FIGURE 2-1: RELATIONS ENTRE MANAGER, AGENTS ET PROTOCOLE...................................................... 8 FIGURE 2-2: ARCHITECTURE SNMP ..................................................................................................... 10 FIGURE 2-3: STRUCTURE D’INDEXATION DES DONNEES DANS LA MIB-2 SNMP................................. 11 FIGURE 2-4: COMPOSITION DE CMISE ............................................................................................... 12 FIGURE 3-2 : OPTIMISATION DU ROUTEUR BGP INTER-PE................................................................... 25 FIGURE 4-1: STRUCTURE DE LA TABLE GROUPE ................................................................................... 26 FIGURE 4-2: STRUCTURE DE LA TABLE ROUTEUR ................................................................................. 27 FIGURE 4-3: STRUCTURE DE LA TABLE OID ......................................................................................... 28 FIGURE 4-4: STRUCTURE DE LA TABLE HISTORIQUE ............................................................................. 28 FIGURE 4-5: STRUCTURE DE LA TABLE HISTORIQUE ............................................................................. 28 FIGURE 4-6: STRUCTURE DE LA TABLE CLIENTS ................................................................................... 29 FIGURE 4-7: STRUCTURE DE LA CLASSE SNMPV1COMMUNICATIONINTERFACE................................. 31 FIGURE 4-8: STRUCTURE DE LA CLASSE SIMPLEGET ............................................................................ 32 FIGURE 4-9: SCHEMA DE FONCTIONNEMENT DU SNMPCOLLECTOR.................................................... 33 FIGURE 4-10: STRUCTURE DE LA CLASSE SNMPCOLLECTOR .............................................................. 34 FIGURE 4-11: SCHEMA DE FONCTIONNEMENT DU CONFIGCOLLECTOR ................................................ 36 FIGURE 4-12: STRUCTURE DE LA CLASSE CONFIGCOLLECTOR............................................................. 37 FIGURE 4-13: INTERFACE PRINCIPALE DE TTNETVIEW ........................................................................ 40 FIGURE 4-14: GROUPES ET ROUTEURS .................................................................................................. 41 FIGURE 4-15: INFORMATIONS SNMP CONCERNANT LES ROUTEURS CISCO ......................................... 42 FIGURE 4-16: INFORMATIONS SNMP CONCERNANT LES INTERFACES D’UN ROUTEUR CISCO ............. 43 FIGURE 4-17: STATISTIQUES CONCERNANT UN INTERFACE D’UN ROUTEUR CISCO .............................. 44 FIGURE 4-18: STATISTIQUES CONCERNANT UN ROUTEUR CISCO .......................................................... 45 FIGURE 4-19: GENERATION D’UN RAPPORT CONCERNANT UN INTERFACE D’UN ROUTEUR CISCO ...... 46 FIGURE 4-20: GENERATION DES EVENEMENTS ..................................................................................... 47 FIGURE 4-21: EXEMPLE D’EVENEMENTS CRITIQUES ............................................................................. 48 FIGURE 4-22: COMPOSITION DU MENU ‘’FILE’’ .................................................................................... 49 FIGURE 4-23: CREATION D’UN NOUVEAU GROUPE ............................................................................... 49 FIGURE 4-24: CREATION D’UN NOUVEAU ROUTEUR ............................................................................. 50 FIGURE 4-25: COMPOSITION DU MENU ‘’EDIT’’.................................................................................... 50 FIGURE 4-26: CONFIGURATION DES PROCESSUS ................................................................................... 51 FIGURE 4-27: CONFIGURATION DES OIDS ............................................................................................ 51 FIGURE 4-28: AJOUT D’UN OID ............................................................................................................ 52 FIGURE 4-29: AJOUT DE L’INFORMATION ‘’WHYRELOAD’’.................................................................. 52 FIGURE 4-30: MENU PROCESS DE TTNETVIEW .................................................................................... 52 FIGURE 4-31: INTERFACE DE CONFIGCOLLECTOR ................................................................................ 53 FIGURE 4-32: OPTIONS DE RECHERCHE DANS TTNETLOCATOR ........................................................... 53 FIGURE 4-33: INTERFACE DE L’APPLICATION TTNETLOCATOR ........................................................... 54
V
Liste des acronymes
Liste des acronymes
ASN : Abstract Syntax Notation CEF : Cisco Express Forwarding CMIP: Common Management Information Protocol CMIS: Common management Information Service FIB : Forwarding Information Base FSI : Fournisseur de Services Internet IETF : Internet Engineering Task Force IGP : Interior Gateway Protocol IP : Internet Protocol LDP : Label Distribution Protocol LPP : Lightweight Presentation Protocol MIB : Management Information Base M-BGP : Multi-Border Gateway Protocol MPLS : Multi Protocole Label Switching MTU : Maximum Transmission Unit OSPF : Open Shortest Path First PBR : Policy Based Routing PE : Provider Edge QoS : Quality Of Services RFC : Request For Comment SMI : Structure of Managed Information SNMP : Simple Network Management Protocol TDP : Tag Distribution Protocol UDP : User Datagram Protocol VPN : Virtual Private Network VRF : VPN Routing and Forwarding
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 : Première partie : Présentation de la gestion de réseau, Deuxième partie : Description de l’existant Troisième partie : Conception et implémentation de notre application
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.
1.1.
Présentation de l’organisme d’accueil
Le 1er janvier 1996, l’office national des télécommunications (ONT) ou « TUNISIE TELECOM » est entrée en activité en tant qu’opérateur de télécommunication doté de sa propre autonomie et son propre réseau (sous la forme juridique d’établissement public a caractère industriel et commercial). Tunisie Télécom a pour mission d’assurer toutes les activités relatives au domaine des télécommunications dont notamment : -
La coopération avec les organismes similaires et l’application des traites internationales en matière de télécommunication.
-
L’installation, le développement, l’entretien et l’exploitation des réseaux publics de télécommunication et en particulier, les réseaux de téléphone et de transmission de données.
-
La promotion de nouveaux services de télécommunication à travers l’installation de l’équipement technologique dans le domaine la contribution au développement aux études et recherches scientifiques liées au secteur des télécommunications.
Direction des Technologies de l’information et des Réseaux
Cette direction est spécialisée dans la conception, la sécurisation, la mise en service et la gestion
des réseaux informatiques qui sont nécessaire au fonctionnement de différents
services de la compagnie, comme elle fournit l’accès à Internet aux différents sites de Tunisie Télécom ainsi qu’elle prend en charge l’administration, le contrôle, la maintenance et
2
Introduction générale
l’exploitation de l’infrastructure de l’Internet en Tunisie à travers le Backbone IP/MPLS qui couvre tout le pays. La DTIR comprend trois équipes : -
Equipe sécurité : sa mission est la sécurisation des réseaux informatiques en étudiant les vulnérabilités et en installant des détecteurs d’intrusions, des firewalls, des sondes, des analyseurs et des antivirus.
-
Equipe de développement : développement et maintenance des applications utilisées par la société et du site web de Tunisie Télécom.
-
Equipe réseaux : installation, mise en services, maintenance et exploitations des réseaux informatiques à savoir o L’intranet de Tunisie Télécom : ce réseau interconnecte les différents sites de Tunisie Télécom (Kasbah, Ouardia, Hasdurbal et Montplaisir) à travers des connexion de type MAN (Metropolitan Area Network). o Le Backbone : Réseau d’Internet National o Le réseau GIS.
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
1.3.
Objectifs du projet
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 :
- Parcourir le Backbone et d’extraire les informations nécessaires à partir des différents routeurs à fin d’avoir une documentation dynamique, ces informations seront stockées dans une base de données qui sera exploitée pour localiser l’emplacement des abonnés (Nœud, Routeur, Interface, adresse WAN,...) à fin de faciliter la maintenance des différentes liaisons (Publinets, Lycées,...).
- 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 Devant l’évolution technologique et la mise en place de nouveaux services Tunisie Télécom a été obligé d’élargir et de diversifier son réseau qui est devenu complexe. Par rapport à un tel réseau le concept gestion de réseau est devenu une nécessité afin d’assurer l’administration et pouvoir faire des prévisions.
2.1.
But et domaine d’application
La notion de gestion s’applique essentiellement dans un contexte de réseau privé. L’idée maîtresse de la supervision est de contrôler la bonne santé du réseau et des services informatiques afin de mesurer la Qualité de Service (QoS). Cette notion de QoS n’est pas récente, mais elle est devenue le point d’intérêt central des stratégies de développement d’entreprise. La situation économique actuelle peu favorable exige des entreprises qu’elles contrôlent leurs dépenses. La tendance n’est pas à l’investissement dans de nouvelles technologies, mais à l’optimisation et au rendement de l’existant à moindre coût. De plus, l’évolution des méthodes de travail au sein même de l’entreprise veut qu’une part de plus en plus importante de l’activité de celle-ci sollicite les outils informatiques. Dans le cas des sociétés de services en informatique, c’est toute l’activité des ingénieurs et dirigeants qui repose intégralement sur la bonne disponibilité des services informatiques et réseaux. C’est dans cette volonté de contrôle que s’intègre la supervision de réseaux.
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: • S’adapter à toutes les tailles de réseaux. • Gérer des équipements hétérogènes et possiblement complexes. • Permettre les opérations de gestion à distance. • Assister l’utilisateur en: – Automatisant certaines tâches. – Aidant l’utilisateur dans les tâches qui ne sont pas automatisées. – Fournissant une vue adaptée du réseau selon les opérations à réaliser.
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.
2.2.1. La cueillette des informations de gestion : Un logiciel qui fait de la gestion de réseau doit amasser toutes les informations de gestion dont il a besoin. Ces informations parviennent de chacun des éléments du réseau. Pour les obtenir, une étape de découverte des éléments de réseau est effectuée, puis les requêtes sont envoyées aux éléments un à un pour en tirer les informations de gestion. Ces informations de gestion comprennent toutes sortes d’informations reliées à un élément de réseau : le type d’équipement, le nombre de paquets qui passent sur chaque port d’un routeur, l’usager qui utilise une station de travail...
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]
2.2.2. L’interprétation des données Une fois que l’on a les informations de gestion, il est important de les interpréter correctement. Par exemple : 5000 paquets par seconde sur un port d’un routeur est peut-être normal ou peut-être le signe d’une surcharge et d’une dégradation de la qualité du service offert. Même si on connaît la charge exacte d’un routeur, cette information ne suffit pas pour prendre des décisions pertinentes de gestion. Les manufacturiers d’équipements offrent quelquefois des logiciels qui savent interpréter les informations de gestion de leurs équipements de gestion. Toutefois, une interprétation automatique complète et correcte de l’état d’un réseau et de ses équipements est difficile à réaliser. L’intervention humaine est souvent requise pour interpréter les données ou pour placer des bornes acceptables. [H1]
2.2.3. Le contrôle des équipements Quand des informations de gestion sont obtenues et comprises, il est quelquefois nécessaire d’agir. Il doit être possible de demander à un équipement, par exemple, de se réinitialiser, de couper ou d’activer des services... Pour ce faire, un protocole de gestion doit transmettre un ordre (requête) à l’équipement approprié pour déclencher l’action. En raison de l’absence de sécurité par le passé, cette fonctionnalité a rarement été utilisée. [H1]
2.3.
Principes de la gestion de réseau
Les architectures de gestion de réseau sont classées dans la catégorie des systèmes client/serveur. On peut donc identifier trois composants:
- 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
- La partie serveur, appelée agent représente un ou plusieurs équipements. Un agent sert d’interface entre l’équipement et le manager. Il peut également servir d’interface entre plusieurs autres agents et le manager. L’agent permet de fournir une vue abstraite de l’équipement et masque ainsi les différences qui existent entre les équipements. Il y a bien entendu plusieurs agents dans un réseau. - Le protocole est le langage utilisé par le manager et l’agent pour communiquer (SNMP, CMIS, CMIP, CMOT, …) Il est mis en oeuvre par le biais d’un réseau. Ce protocole permet au manager d’interroger l’agent (dans le cas du monitoring) ou de lui demander de modifier l’état de l’équipement (dans le cas de la configuration). Le protocole est également utilisé par l’agent afin d’avertir le manager de l’occurrence d’événements.
Figure 2-1: Relations entre manager, agents et protocole
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 à SNMPv2. [H1]
2.4.2. Les entités SNMP suit l’architecture client/serveur, le client étant le manager et le serveur l’agent. Contrairement aux architectures client/serveur habituelles où un serveur interagit avec plusieurs clients, SNMP est l’exemple d’un schéma inverse: un client, souvent unique, communique avec plusieurs serveurs. Il y a un agent par équipement à gérer. L’agent conserve une série de variables qui modélisent l’équipement. Le manager, au travers de l’agent, consulte et/ou modifie les valeurs des variables à l’aide d’opérations de management. Des changements d’état internes à l’équipement modifient eux aussi les valeurs des variables. La manière dont l’agent doit être informé de ces changements n’est pas spécifiée dans SNMP. L’ensemble des variables gérées est appelé MIB (Management Information Base). Le manager interagit avec l’agent via un protocole de communication qui
9
Chapitre 3 : Description de l’existant
spécifie la dynamique de la communication (mécanismes de question/réponse), ainsi que la structure des messages échangés.
Figure 2-2: Architecture SNMP
2.4.3. La Management Information Base La Management Information Base (MIB) contient les variables qui forment le modèle informationnel de l’équipement. Les variables sont organisées sous une forme arborescente. Les nœuds intermédiaires servent uniquement de points de rattachement pour les branches, ils ne contiennent aucune valeur. Les feuilles par contre stockent des valeurs. La MIB doit être considérée sous deux points de vue. [H2] La première vision est une vision en terme de spécification du modèle informationnel c’est-àdire les variables qui existent, leur type et les relations entre ces variables. Il est important d’insister sur le fait que, selon cette optique, la MIB ne contient aucune valeur, il s’agit uniquement d’une spécification structurelle. Les nœuds de l’arbre sont appelés, dans ce cas, objets. Comme on le verra ultérieurement, la distinction en faite entre objet et instance. Cette distinction est la base de la philosophie orientée objet. Le parallèle ne peut cependant être mené plus loin: les notions de classe, héritage et polymorphisme n’ont pas d’équivalent dans le modèle informationnel SNMP. [H2] Le second point de vue est celui de l’arborescence de valeurs. Les valeurs sont les instances des objets cités ci-dessus. Pour une MIB ’déclaration’ (uniquement les objets) et son équivalent ’implantation’ (uniquement les instances), on a les règles suivantes: A chaque instance correspond un et un seul objet dans la MIB ’déclaration’.
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.
Figure 2-3: Structure d’indexation des données dans la MIB-2 SNMP
11
Chapitre 3 : Description de l’existant
Nom de la MIB-2 SNMP
Utilité
System
Nom, emplacement et description de l’équipement (switch, routeur)
Interfaces Ip
Interfaces réseau et les données liées au trafic mesuré Statistiques sur le trafic IP, table de routage, table ARP
Icmp
Statistiques sur le trafic ICMP
Tcp
Paramètres et statistiques du trafic TCP
Udp
Paramètres et statistiques du trafic UDP
Egp
Informations sur la mise en œuvre du protocole EGP (External Gateway Protocol)
Transmission Snmp
Informations au sujet des moyens de transmission et des protocoles d’accès aux interfaces de l’équipement Paramètres et statistiques du trafic SNMP
Tableau 1 : Informations principales de la MIB-2 SNMP
2.4.3.1. Déclaration des objets 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
L’objet snmpInPkts dans MIB II : snmpInPkts OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The total number of Messages delivered to the SNMP entity from the transport service." ::= { snmp 1 } 2.4.3.2. Organisation et identification des objets et des instances 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.
2.4.4. Les opérations de management La simplicité de SNMP est en partie due à la simplicité de ses opérations de gestion. Il y en a quatre: -
GET : permet au manager de récupérer la valeur contenue dans une instance.
-
SET : permet au manager d’assigner une valeur à une instance.
-
GET-NEXT : permet à partir d’un point de l’arborescence de trouver l’instance la plus proche.
-
TRAP : permet à l’agent d’envoyer une notification spontanée au manager.
La distinction est faite entre une opération SNMP et une requête SNMP. Les relations entre ces deux concepts sont les suivantes: •
Une requête SNMP contient plusieurs opérations.
•
Toutes les opérations d’une requête doivent être du même type (ex: uniquement des GET).
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).
2.4.5. Comparaison entre SNMP v1, v2 et v3 SNMP en est actuellement à sa troisième version. Les deux premières versions sont standardisées [RFC1157, RFC1905]. La troisième est en cours d’élaboration et un working group (SNMP version 3) lui est dédiée au sein de l’IETF [RFC2274]. Il faut également citer l’activité du working group Distributed Management qui examine les conséquences liées à l’utilisation de plusieurs managers pour gérer un réseau. Avant que les aspects relatifs à la sécurité ne soient rendus obsolètes, SNMP v2 différait de SNMP v1 selon deux critères: 1. Le support pour sécuriser (authentification et confidentialité) les opérations a été renforcé. SNMP v2 offre la notion de groupe défini comme étant un contexte d’exécution des opérations de gestion. Ce contexte définit, entre autres, l’ensemble des objets qui peuvent être gérés, le protocole de transport utilisé (ex: UDP) et la méthode d’authentification utilisée pour reconnaître la légitimité d’une requête. 2. L’ajout d’une opération GET-BULK qui permet de rapatrier vers le manager des grandes quantités de données en les répartissant sur plusieurs messages de réponse. A présent, l’opération GET-BULK est la seule différence avec la première version du protocole. [H2]
2.5.
Le service CMIS
CMIS est l'ensemble des fonctions communes de la gestion système permettant de réaliser le transfert des opérations et des notifications de gestion. Il est offert par l'entité de service CMISE de la couche application. L'élément CMISE se compose de quatre entités distinctes:
15
Chapitre 3 : Description de l’existant
· cœur de CMISE, la machine protocolaire CMIPM (Common Management Information Protocol Machine) qui met en oeuvre le protocole et gère les unités de données du protocole CMIP; · le fournisseur de service CMISE qui est chargé de recevoir les primitives CMISE et de transmettre les unités de données de service correspondantes (Service Data Unit, SDU) à CMIPM; · l'utilisateur de service ROSE qui gère les requêtes faites à ROSE. Elles permettent d'échanger les PDUs entre deux protocoles CMIP; Enfin, un gestionnaire de d'entité qui gère les primitives non normalisées de communication avec la fonction de contrôle d'association simple (SACF). L'entité CMISE distingue les six services d'opérations (qu'elle peut traiter sans aucune connaissance du contenu, laquelle est laissée à SMASE) et un service de notification, qui sont: - M_CREATE pour demander la création d'un objet dans la MIB de l'agent (Mode confirmé); - M_DELETE pour supprimer des objets dans la MIB de l'agent (Mode confirmé); - M_ACTION pour demander l'exécution d'une action sur un ou plusieurs objets (confirmé ou non); - M_SET pour modifier les valeurs d'attributs d'objets (confirmé ou non); - M_GET pour consulter les valeurs associées aux attributs d'objets (confirmé ou non); - M_CANCEL_GET pour demander de ne pas recevoir les résultats d'un GET précédent (Mode confirmé); - M_EVENT_REPORT pour transmettre un rapport d'événement relatif à un objet (confirmé ou non). [H4]
2.6.
Le protocole CMIP
Pour présenter le protocole CMIP qui se base sur les états de fonctionnement de la machine protocolaire CMIPM (CMIP Machine), il faut connaître la structure de CMISE (Figure 2.4) . Une instance de ce dernier est composée d'une machine protocolaire CMIPM, d'un fournisseur de service CMISE (CMISE-provider), d'un utilisateur de service ROSE (ROSE-user), d'un gestionnaire et de trois SAPs, SAPcmise- smase, SAP-cmise-rose, SAP-cmise-sacf. La machine CMIPM met en oeuvre les éléments de procédure du protocole CMIP et gère les unités de protocole CMIP (CMIP-PDUs). CMISE-provider gère les primitives de service CMISE. Il reçoit
16
Chapitre 3 : Description de l’existant
les primitives CMISE de requête et de réponse provenant du CMISE-user de SMASE et en transmet les unités de service CMISE (CMISE-SDUs) à CMIPM. Il émet des primitives CMISE d'indication et de confirmation à l'intention du CMISE-user de SMASE lorsque CMIPM lui demande de transférer des CMISE-SDUs. ROSE-user gère les primitives de service ROSE. Il reçoit des primitives ROSE d'indication provenant du ROSE-provider de ROSE et en transmet les unités de service ROSE (ROSE-SDUs) à CMIPM. Il émet des primitives ROSE de requête à l'intention du ROSE-provider de ROSE lorsque CMIPM lui demande de transférer des ROSESDUs. Le gestionnaire gère les primitives non normalisées d'interaction avec SACF (Single Association Control Function) chargé de coordonner le travail des ASEs (Application Service Element). SAP-cmise-smase représente le point d'accès aux services de CMISE. C'est l'une des extrémités de la connexion qui relie SMASE à CMISE. Par cette connexion transitent les primitives CMISE entre ces deux éléments. SAPcmise- rose représente le point d'accès aux services de ROSE. Par cette connexion transitent les primitives ROSE entre ces deux éléments. SAPcmise- sacf représente le point d'accès aux services non normalisés offerts par CMISE à la fonction SACF.
Figure 2.4 : Composition de CMISE
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]
2.7.
Le protocole CMOT
Le protocole CMOT est la migration du système de gestion de réseaux TCP/IP vers la normalisation. Le groupe qui travaille sur CMOT (CMIP over TCP/IP) s'est intégré à l'OSI sous le nom de OIM (OSI Internet Management). Son principal rôle est de produire un ensemble de spécifications qui offrent les services CMIS et le protocole CMIP sur des réseaux de type TCP/IP. L'architecture envisagée pour CMOT consiste à rajouter au-dessus des protocoles TCP et UDP une couche présentation simplifiée LPP (Lightweight Presentation Protocol), les services ACSE, ROSE, CMIP, et CMIS. Avec CMOT, la relation gestionnaire agent fonctionne en mode connecté et la MIB est constituée d'un ensemble d'objets comme pour la gestion OSI. Cependant, bien que la démarche semble fort intéressante, il n'y a pas à l'heure actuelle de véritable implémentation de ce protocole sur les diverses plates-formes commerciales. [H4]
18
Chapitre 3 : Description de l’existant
2.8.
Outils d’administration
Les outils d’administration se répartissent en deux catégories : -
Les outils locaux d’administration
-
Les plates-formes d’administration
2.8.1. Outils Locaux La plupart des outils sont prévus pour travailler sur un modèle client/serveur, ce qui permet des interventions à distance. Parmi ces outils, on distingue : -
Les outils de diagnostic tels que ping, traceroute, nslookup, …
-
Les consoles d’administration de câblage
-
Les moniteurs de réseau (LANalyzer de Novell, 3Com Networking Monitoring, …)
-
Les analyseurs de protocoles (analyseurs de réseau) ; ce sont des outils matériels ou logiciels qui permettent d’interpréter la charge utile des paquets, de capturer des données transmises sans cryptage les testeurs de câblage pour le test de continuité et de défaillance du câblage
-
Les sondes insérées dans les réseaux pour surveiller le fonctionnement, détecter les nœuds d’un segment, capturer du trafic depuis et vers des nœuds sélectionnés.
2.8.2. Plates-formes d’administration Elles offrent des services de base et des outils qui donnent à l’utilisateur un environnement homogène à partir duquel il lancera les applications dont il a besoin pour administrer le réseau. On distingue : - Les hyperviseurs qui sont des plates-formes complètes d’administration de réseau. Ils offrent des services d’une administration propriétaire (Netview d’IBM, Openview de HP). Les hyperviseurs offrent une vue d’ensemble du réseau (état des liens, d’un port d’un routeur, d’une carte, …) - Les plates-formes ou systèmes intégrés au système d’exploitation qui sont des ensembles d’outils non seulement pour la gestion des utilisateurs, des ressources et de la sécurité, mais aussi la supervision du fonctionnement général et tout particulièrement de la machine serveur (charge du CPU, …). On peut citer entre autres systèmes intégrés Systemview
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.
3.1.
Description du Backbone IP de Tunisie Télécom
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.
3.2.
Architecture IP/MPLS du Backbone IP
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. Pour passer à MPLS quelques actions ont été réalisées : -
La vérification des versions des routeurs,
-
L’activation de IP MPLS sur les interfaces du routeur,
22
Chapitre 3 : Description de l’existant
-
La spécification d’un protocole d’échange de label (LDP / TDP),
-
Vérification du protocole de routage IGP,
-
La définition des MTU sur les routeurs et les switchs.
CE PE
PE P
P
CE
PE
P
P PE
PE
P
P
PE
PE
Figure 3.1: Architecture MPLS pour le Backbone IP
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 : -
Un protocole de routage spécifique pour chaque VRF, mais avec l’augmentation du nombre de VRF nous aurons un problème de scalabilité et un traitement supplémentaire coté routeurs PE.
-
Un seul protocole de routage dédié pour tous les VRFs, le problème c’est que le routeur PE aura connaissance de touts les routes clients des différents VRFs.
-
La solution la plus intéressante est l’utilisation du protocole M-BGP qui permet l’échange des routes entre les routeurs PE seulement.
Optimisation du routage Inter-PE 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.
Figure 3-1 : Optimisation du routeur BGP inter-PE
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.
4.1.1. Base des données 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
Figure 4-1: Structure de la table 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.
Figure 4-2: Structure de la table Routeur
•
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
-
Seuil : Pour la gestion des événements, si la valeur de l’information SNMP est
supérieure à ce seuil un événement est généré. -
Cible : Cette OID concerne un routeur ou un interface.
Figure 4-3: Structure de la table OID
Pour chaque groupe on va : - Créer une table historique_Nom_Groupe (Figure 4.4) gardant l’historique sur les états de différents routeurs.
Figure 4-4: Structure de la table historique
- Créer une table historique_int_Nom_Groupe (Figure 4.5) gardant l’historique sur les interfaces de différents routeurs.
Figure 4-5: Structure de la table historique
-
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 Figure 4-6: Structure de la table clients
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
4.1.2. Les modules de bases Parmi les modules importants du TTNetView, nous citons : - SNMPv1CommunicationInterface. - SimpleGet. - SNMPCollector. - ConfigCollector. - TTNetLocator.
4.1.3. Le Module SNMPv1CommunicationInterface 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.
Les principales fonctions de cette classe : - getMibEntry()
(équivaut à l’opération Get du protocole SNMP) : permet au
manager de récupérer la valeur contenue dans une instance. - getNextMibEntry()
(équivaut à l’opération Get-Next du protocole SNMP) : permet
à partir d’un point de l’arborescence de trouver l’instance la plus proche. - retrieveAllMIBInfo() : cette fonction retourne les valeurs de toutes les variables d’une MIB. - retrieveMIBTable() : retourne le résultat d’une variable SNMP sous la forme d’une table, exemple : Table ARP. - setMibEntry() (équivaut à l’opération Set du protocole SNMP) : permet au manager d’assigner une valeur à une instance. -
closeConnection() : fermeture de la connexion entre le manager et le routeur.
30
Chapitre 4 : Conception et implémentation
Figure 4-7: Structure de la classe SNMPv1CommunicationInterface
4.1.4. Le module SimpleGet Cette classe (Figure 4.8) étend la classe SNMPv1CommunicationInterface. Elle implémente d’autres fonctions pour la gestion de la table de routage d’un routeur à fin d’extraire les routes qui passent par chaque interface, cette fonction n’est pas implémentée dans tous les gestionnaires du réseau d’aujourd’hui. Les principales fonctions de cette classe : -
get_longueur_table_routage() : retourne le nombre total des routes contenues dans
la table de routage d’un routeur. -
get_Table_de_Routage() : avoir la table de routage d’un routeur, cette fonction est
consommatrice en ressources CPU, mais elle ne perturbe pas le fonctionnement du routeur.
31
Chapitre 4 : Conception et implémentation
Figure 4-8: Structure de la classe SimpleGet
4.1.5. Le module SNMPCollector 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
Historique
Groupe
SNMPCollector N groupes Routeur
OID
For 1 to N do Routeurs appartenant à groupe i
SNMPCollector K Routeurs OIDs de groupe i OIDs
For 1 to K do
Stockage de Value
SNMPCollector Get Value Of OID
Backbone IP/MPLS
Send Value
(Value > Seuil) OR ( !Ping)
Log
Figure 4-9: Schéma de fonctionnement du SNMPCollector
33
Chapitre 4 : Conception et implémentation
Les principales fonctions de cette classe (Figure 4.10) : - SNMPCollector() : le constructeur nécessite une adresse IP et le nom de la communauté SNMP d’un routeur. Il vérifie s’il y a de nouveaux OID pour chaque groupe pour mettre à jour les tables d’historique. - get_Data() : Cette fonction est nécessaire pour la communication avec la base de données à fin d’extraire les informations nécessaires (les OIDs, les seuils, …) - Get_SNMP() : C’est le cœur de cette classe, elle est responsable de la gestion des communications SNMP entre le manager et les routeurs. - Send_Event() : pour la gestion des événements pour le log.
Figure 4-10: Structure de la classe SNMPCollector
4.1.6. Le module ConfigCollector Le rôle de ConfigCollector est de sauvegarder les fichiers de configurations des routeurs et d’extraire les informations sur les clients connectés sur le Backbone. 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
Demande la liste des groupes
Groupe
ConfigCollector
Base de Données Clients
N groupes Routeur
For 1 to N do Routeurs appartenant à groupe i
ConfigCollector K Routeurs
For 1 to K do
ConfigCollector
Ping
Telnet Ping
Get Config
Backbone IP/MPLS Send Config Save Config
Get Interfaces
Log
Figure 4-11: Schéma de fonctionnement du ConfigCollector
36
Chapitre 4 : Conception et implémentation
Les principales fonctions de cette classe (Figure 4.12) : - Open_Connection() : cette fonction permet d’ouvrir une session Telnet sur un routeur. - Ping() : teste la liaison avec un routeur. - getConfig() : Avoir le fichier de configuration d’un routeur. - saveConfig() : Enregistrement du fichier de configuration dans un fichier texte. - getInterfaces() : Avoir les informations nécessaires concernant les interfaces d’un routeur.
Figure 4-12: Structure de la classe ConfigCollector
4.2.
Implémentation
4.2.1. Outils utilisés 4.2.1.1. Langage de programmation : Java 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 :
- Simplicité : Java réduit le nombre de structures de données utilisables au minimum et élimine les zones de recouvrement. Pour le programmeur, la simplicité de Java s’exprime aussi en grande partie par le fait qu’il est libéré de la gestion explicite des adresses mémoire des objets qu’il manipule. Cette disposition évite les erreurs de programmation les plus fréquentes et les plus délicates à corriger.
- Neutralité vis-à-vis des architectures matérielles et logicielles : Java utilise un double mécanisme de compilation et d’interprétation. Ce mécanisme permet au code généré par le compilateur Java, appelé bytecode, d’être indépendant des architectures matérielles et des systèmes d’exploitation. Le bytecode Java est en effet chargé et interprété par une machine virtuelle, qui est elle-même portée sur la plupart des systèmes d’exploitation du marché.
- Vers une nouvelle architecture Client-Serveur : La mise en oeuvre d’applications Java dans un réseau d’entreprise permet, en s’appuyant sur les APIs d’extension telles que JDBC ou JavaIDL, de déployer des applications client – serveur. On peut dès aujourd’hui bâtir un véritable Intranet en s’appuyant sur les standards du Web. En intégrant les possibilités de relier simplement les applications Java au système d’information de l’entreprise, on est maintenant capable de déployer des applications distribuées qui héritent naturellement des qualités intrinsèques de Java.
38
Chapitre 4 : Conception et implémentation
4.2.1.2. Environnement de développement : JBuilder 2005 L’environnement de développement choisi est
Borland JBuilder 2005. Il offre une
multitude d'atouts pour conserver son titre de meilleur outil de développement Java disponible sur le marché. Il intègre, dans une interface agréable, tous les concepts d'ingénierie moderne, WebServices, XML, tests unitaires, refactoring, debuger HotSwap, conception d'EJB 1.1 et 2.0 , JSP/Servlet, optimisation avec OptimizeIt et outil pour UML. 4.2.1.3. Système de gestion de base de données : Oracle 9.2.0 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. Interfaces utilisateurs 4.2.2.1. TTNetView L’interface
principale
(Figure
4.13)
du
TTNetView
présente
la
console
d’administration du Backbone IP/MPLS. Elle donne une vue globale sur les états des routeurs et leurs interfaces ainsi un contrôle continu sur les événements générés par les différents processus (SNMPCollector, ConfigCollector) 39
Chapitre 4 : Conception et implémentation
Panneau 2
Panneau 1
Panneau 3
Panneau 4
Figure 4-13: Interface principale de TTNetView
L’interface principale se compose de 4 panneaux, le premier (Figure 4.14) comporte la liste des différents groupes et la liste des routeurs de chaque groupe.
40
Chapitre 4 : Conception et implémentation
Groupe Cisco_12000
Routeurs de ce groupe
Figure 4-14: Groupes et Routeurs
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
- Informations concernant le protocole SNMP : - SNMPBadCommunityName : Nombre de paquets SNMP qui ont un nom de communauté erroné, si ce nombre dépasse quelques centaines, il y aura un risque d’attaque. - Informations concernant le protocole TCP : - tcpOpen : le nombre de connexions TCO ouverts - tcpInErrors : Nombre de paquets TCP qui présentent des erreurs à l’entrée. - Informations concernant le protocole de routage BGP : - bgpId : Identifiant du routeur pour le protocole de routage BGP - Informations concernant le protocole de routage OSPF : - ospf_enabled : représente le statut du protocole OSPF 1 : Activé ou 2 : Désactivé - ospf_Version : Version du protocole OSPF activée au niveau du routeur. - ospf_Id : Identifiant du routeur pour le protocole de routage OSPF
Figure 4-15: Informations SNMP concernant les routeurs Cisco
A la sélection d’un routeur, ce panneau (Figure 4.16) va contenir les informations concernant ses interfaces. Pour un routeur Cisco, on a choisit les informations suivantes : - nom_int : Nom d’interface (exemple : Serial 1/2) - Description : Nom de la liaison (exemple : LS with ATI) - Ip_address : Adresse IP de cet interface - Netmask : masque de sous réseau - MTU : Taille maximale pour une trame qui peut passer par cette interface - Admin_Status : Etat administratif de l’interface
42
Chapitre 4 : Conception et implémentation
- Oper_Status : Etat opérationnel de l’interface - Inbits : Trafic en entrée en bits - Inpackets : Trafic en entrée en paquets - Outbits : Trafic à la sortie en bits - Outpackets : Trafic à la sortie en paquets - CRC : Nombre de paquets à l’entrée qui présentent une erreur au niveau du CRC - Collisions : nombre de collisions détectées à la sortie de cette interface. - inQueueDrop : nombre de paquets rejetés parce que la file d’attente à l’entrée est saturée - outQueueDrop : nombre de paquets rejetés parce que la file d’attente à la sortie est saturée.
Figure 4-16: Informations SNMP concernant les interfaces d’un routeur Cisco
Le panneau 3 va contenir des statistiques concernant les OID où le champ ‘’Stored’’ de la table OID est égal à ‘’yes’’. - Statistiques d’une interface (Figure 4.17): Pour les routeurs Cisco, on a choisit de sauvegarder : Inbits, Inpackets, Outbits, Outpackets, CRC, Collisions, inQueueDrops, OutQueueDrops.
43
Chapitre 4 : Conception et implémentation
Figure 4-17: Statistiques concernant un interface d’un routeur Cisco
-
Statistiques d’un routeur (Figure 4.18) : Pour les routeurs Cisco, on a choisit de sauvegarder : CPU5min, memUsed,
memFree, TempIn, TempOut.
44
Chapitre 4 : Conception et implémentation
Figure 4-18: Statistiques concernant un routeur Cisco
Dans la base de données, on garde l’historique même d’une année. A chaque courbe générée, on peut soit : - Sauvegarder le résultat sous la forme d’une image portant l’extension.jpg - Imprimer cette image - Générer un rapport sous la forme d’une page html (Figure 4.19), cette page va contenir toutes les statistiques des différentes informations SNMP.
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
Le quatrième panneau (Figure 4.20) va contenir le log de SNMPCollector et du ConfigCollector. Chaque fois, q’une valeur d’un OID dépasse sa seuil, un événement est généré sous la forme : ‘’ Date de génération d’événement
+ Heure de génération d’événement +
Routeur cible + Information SNMP + valeur ‘’ -
La couleur blanche indique un événement concernant un interface
-
La couleur bleue indique un événement concernant un routeur
-
La couleur rouge indique un événement critique : un routeur inaccessible pour lequel on ne peut pas avoir les informations SNMP (Figure 4.21).
Figure 4-20: Génération des événements
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
Figure 4-21: Exemple d’événements critiques
48
Chapitre 4 : Conception et implémentation
A partir du menu ‘’File’’ (Figure 4.22) du TTNetView, on peut : -
Ajouter un groupe (Figure 4.23) ou un routeur (Figure 4.24)
-
Supprimer un routeur ou un groupe
Figure 4-22: Composition du menu ‘’File’’
Figure 4-23: Création d’un nouveau groupe
49
Chapitre 4 : Conception et implémentation
Figure 4-24: Création d’un nouveau routeur
A partir du menu ‘’Edit’’ (Figure 4.25) du TTNetView, on peut : -
Configurer les processus SNMPCollector et ConfigCollector (Figure 4.26) : pour SNMPCollector, on doit spécifier l’intervalle de temps qui sépare 2 sessions de polling du réseau. Pour ConfigCollector on doit indiquer le jour du sauvegarde des fichiers de configuration des routeurs, cette opération se lance toujours à minuit lorsque le réseau n’est pas chargé.
Figure 4-25: Composition du menu ‘’Edit’’
50
Chapitre 4 : Conception et implémentation
Figure 4-26: Configuration des processus
- 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.
Figure 4-27: Configuration des OIDs
51
Chapitre 4 : Conception et implémentation
Figure 4-28: Ajout d’un OID
A l’ajout d’un OID, une nouvelle information sera ajoutée (Figure 4.29) :
Figure 4-29: Ajout de l’information ‘’whyReload’’
A partir du menu Process (Figure 4.30), on peut lancer :
Figure 4-30: Menu Process de TTNetView
Le processus ConfigCollector (Figure 4.31) : Chaque fois que le processus ConfigCollector passe par un routeur son adresse sera affichée dans une boîte de dialogue. 52
Chapitre 4 : Conception et implémentation
Figure 4-31: Interface de ConfigCollector
L’application TTNet Locator
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).
Figure 4-32: Options de recherche dans TTNetLocator
Le résultat de la recherche va contenir : -
Adresse IP du routeur.
-
Nom du routeur.
-
Nom d’interface.
-
Description de l’interface.
-
Adresse IP du client.
-
Masque du réseau.
-
MTU.
-
Bande passante.
-
Routes passantes par cette interface.
53
Chapitre 4 : Conception et implémentation
A la sélection d’un client, on va avoir des informations supplémentaires concernant ce client, ce sont les informations SNMP concernant le groupe auquel appartient le routeur de ce client (Figure 4.33).
Figure 4-33: Interface de l’application TTNetLocator
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.
Néanmoins, le souhait exprimé ici concerne la compréhension de la nécessité de la fonction Gestion de Réseaux, et son intérêt pour l’entreprise; ce n’est qu’à travers de la gestion efficace que ce dernier sera en mesure d’offrir les services qui le différencieront de la concurrence. L’objectif de ce projet était essentiellement de développer un gestionnaire de réseau pour le Backbone IP/MPLS de Tunisie Télécom pour offrir aux utilisateurs une certaine qualité de service et permettre une utilisation optimale des ressources disponibles. 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 & Néographies
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
Annexe1: Attestations de formations
57
Annexes
58
Annexes
Annexe2: Exemple de MIB MIB II (RFC 1213) : • 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