Rapport Snmp

download Rapport Snmp

of 21

Transcript of Rapport Snmp

  • La gestion rseau et le protocole SNMP Page 1/21

    LLaa ggeessttiioonn rrsseeaauu eett llee pprroottooccoollee SSNNMMPP

    Aurlien Mr

    FIIFO4

  • La gestion rseau et le protocole SNMP Page 2/21

    TTaabbllee ddeess mmaattiirreess

    PREMIERE PARTIE : LES RESEAUX 3

    QUEST-CE QUUN RESEAU 3 LES RESEAUX INFORMATIQUES 3 LEVOLUTION PERMANENTE DES RESEAUX 4 LA GESTION RESEAU 5 LES APPLICATIONS DE LA GESTION RESEAU 6

    DEUXIEME PARTIE : LES PROTOCOLES DE GESTION RESEAU 8

    TELNET, SSH 8 INTERFACE WEB 9 LE PROTOCOLE SNMP 10 COMPARAISON DES PROTOCOLES 10

    TROISIEME PARTIE : LE PROTOCOLE SNMP 11

    HISTORIQUE 11 PRESENTATION 11 PRINCIPE DE FONCTIONNEMENT 12 LES VARIABLES SNMP ET LE MODELE SMI 13 LES FICHIERS MIBS 14 LA SECURITE 16 FONCTIONNEMENT PRATIQUE 16 LES IMPLEMENTATIONS EXISTANTES DU PROTOCOLE SNMP 17 EXEMPLE DE TRANSACTION SNMP 18 AVANTAGES ET INCONVENIENTS 21 AVENIR DE SNMP 21

  • La gestion rseau et le protocole SNMP Page 3/21

    Premire partie : Les rseaux

    Quest-ce quun rseau

    La notion de rseau a fortement volu au fil des annes, et qualifie aujourdhui, dans son sens le plus strict, un ensemble ordonn dobjets ou de personnes ayant tous une mme tche bien dfinie. On parle ainsi de rseaux despionnage, de rseaux ferrs, de rseaux informatiques, etc

    Le fait que ces rseaux soient ordonns nous permet de considrer aisment ceux-ci dun point de vue algorithmique, et on les reprsente typiquement sous forme de graphes. Chaque objet ou personne constituant ce rseau est alors un nud du graphe.

    Les rseaux informatiques

    Lobjet de notre tude portant sur linformatique, nous nous intresserons spcialement aux rseaux informatiques dans lesquels chaque nud a pour tche le traitement dinformations.

    Serveur central

    Ordinateur Ordinateur Ordinateur Ordinateur

    Ordinateur Ordinateur Ordinateur Ordinateur

    Etage 2

    Etage 1

    Fig.1 : Exemple de rseau informatique

    Dans la reprsentation graphique dun rseau informatique, un nud peut parfois reprsenter un rseau en lui-mme : on parle alors dun sous-rseau de ce rseau, et on le reprsente par un nuage. On obtient ainsi plusieurs niveaux de reprsentation des rseaux, chacun plus tendu que le prcdent. Les deux schmas suivants prsentent ces diffrents niveaux dabstraction : le premier montre le rseau dans son ensemble, et le second le montre totalement droul.

  • La gestion rseau et le protocole SNMP Page 4/21

    Internet

    Serveurs

    Ordinateurs

    Fig.2 : Epine dorsale du rseau informatique

    Internet

    Serveur ServeurOrdinateur Ordinateur Ordinateur Ordinateur

    Ordinateur Ordinateur Ordinateur Ordinateur

    Ordinateur

    Fig.3 : Le mme rseau au niveau de reprsentation le plus complet

    Comme nous pouvons le constater sur ces prcdents schmas, les rseaux informatiques sont souvent constitus par ce quon appelle une pine dorsale, constituant le cur du rseau et reprsentant les lments essentiels son fonctionnement (figure 1). Il sagit gnralement de matriel rseau : les routeurs, qui reprsentent les ponts entre les diffrents rseaux logiques, et les concentrateurs qui permettent plusieurs nuds, tel un groupe dordinateurs, dtre interconnects.

    Lvolution permanente des rseaux

    Depuis la cration des premiers rseaux de communication informatise dans les annes 70 aux Etats-Unis, ceux-ci ont normment volu. Premirement, les matriels dinfrastructures rseaux (routeurs, concentrateurs, modems, etc..) ont des capacits de traitement de plus en plus importantes et offrent des fonctions de plus en plus complexes : qualit de service, rseaux virtuels, scurisation des communications, dbit accru, etc

    Par ailleurs, outre lvolution technique, lvolution la plus flagrante est limportance des rseaux informatiques et le nombre de nuds interconnects. Il suffit de prendre lexemple dInternet : alors quil tait rserv aux militaires dans un premier temps, ce rseau sest ouvert aux universits dans les annes 70 puis aux commerciaux dans les annes 80. Aujourdhui, de plus en plus de produits ont un support de connexion Internet.

  • La gestion rseau et le protocole SNMP Page 5/21

    Ordinateurs, tlphones, assistants personnels, tous ces outils sont aujourdhui relis en rseau et accroissent limportance des rseaux de tlcommunications mondiaux. Alors quau dbut des annes 90 Internet tait constitu denviron 400.000 nuds, il y en aurait plus de 40.000.000 aujourdhui.

    La gestion rseau

    Lvolution des rseaux dont nous venons de parler pose un problme majeur : la manire dont ceux-ci sont grs pratiquement. En effet, le nombre de nuds ne cessant de stendre, il est important de pouvoir grer tout ceux-ci le plus facilement possible, mais en conservant certaines contraintes techniques.

    Nous lavons dit prcdemment, le matriel est de plus en plus sophistiqu et permet dtre contrl distance : cest l un des points fondamentaux de la gestion rseau, il est aujourdhui ncessaire, tant donne ltendue des rseaux, de pouvoir le grer distance depuis son poste de travail et navoir se dplacer quen dernier recours, lorsquune opration physique est ncessaire. Cela peut sembler exagr, voire tre peru comme un luxe pour ladministrateur rseau, toutefois lorsque lon a ne serait-ce quune centaine de nuds sa charge, il est important de pouvoir agir distance dessus.

    La centralisation de la gestion rseau permet galement deffectuer simultanment une mme opration sur plusieurs matriels : si lon souhaite appliquer une modification un ensemble de matriels donnes, il suffit dutiliser la liste de ce matriel dans notre programme et de lexcuter depuis la machine de gestion. En labsence de central, il aurait fallu se dplacer sur chaque matriel afin dy appliquer ladite modification : la centralisation offre un gain de temps considrable.

    Lvolution des rseaux entrane une contrainte intressante aux protocoles de gestion : ceux-ci doivent tre volutifs et prendre en compte uniformment les volutions des diffrents matriels. Dans un souci defficacit, il est important que ses volutions compltent les capacits prcdentes du matriel, afin dviter tout alourdissement de sa gestion, et pour viter des surcots de recherche ou dapprentissage pour les administrateurs et les programmeurs.

    Une autre contrainte pour ladministrateur rseau est la fiabilit des transactions : il est essentiel que lorsquune commande est envoye un matriel, celui-ci approuve cette modification afin que ladministrateur soit certain que la commande ait t excute correctement. Dans le cas contraire, la commande doit tre rexpdie jusqu ce quelle ait t accepte par le matriel. Un tat incohrent (le matriel na pas reu la commande par exemple) pourrait conduire des problmes de fonctionnement du rseau. Par ailleurs, par le terme de fiabilit , nous considrons galement le fait que le matriel gr doit pouvoir rpondre immdiatement toutes nos requtes et tre constamment disponible.

    La diversit du matriel prsent dans les rseaux a impos une nouvelle contrainte pour la gestion : lhomognisation des moyens dadministration. Il est impratif que les matriels se paramtrent de manire similaire afin dviter lapprentissage de toutes les interfaces spcifiques chaque constructeur et parfois chaque modle. Cette contrainte est malheureusement peu respecte et la solution celle-ci consiste acheter du matriel de mme marque et/ou de mme modle suivant les besoins.

  • La gestion rseau et le protocole SNMP Page 6/21

    Enfin, la dernire contrainte de ladministrateur rseau est la scurit : le matriel dinfrastructure rseau est gnralement protg au maximum car perdre laccs celui-ci implique gnralement une interruption prolonge du service, ce qui, dans les rseaux courants, nest pas tolrable. Ainsi, les transactions entre ladministrateur et le matriel doivent tre scurises au maximum afin dviter toute tentative de dtournement des droits daccs au matriel.

    Les applications de la gestion rseau

    La gestion rseau est la tche quotidienne de tout administrateur de rseau : il sagit de vrifier le fonctionnement optimal de chacun du matriel, de paramtrer celui-ci, de le mettre jour rgulirement, etc Ainsi, dans les rseaux informatiques daujourdhui, la gestion (ou management) est un problme de tous les jours.

    Internet

    Serveur ServeurOrdinateur Ordinateur Ordinateur Ordinateur

    Ordinateur Ordinateur Ordinateur Ordinateur

    Ordinateur

    Fig.4 : Un rseau dentreprise simplifi

    Si nous reprenons le rseau prsent prcdemment, la tche de ladministrateur peut par exemple tre dinterdire lordinateur en haut gauche de communiquer avec celui en bas droite ; il peut sagir dinterdire ou dautoriser tel ou tel ordinateur laccs Internet ; il peut sagir de distinguer deux groupes de travail diffrents et de crer deux rseaux virtuels , ceux-ci ne pouvant communiquer entre eux ; il peut sagir de vrifier quil ny a pas derreur de transmission sur les diffrents cbles rseaux ; etc le nombre de possibilits applicatives de la gestion rseau est incalculable, sur un simple rseau dentreprise.

    Les rseaux ayant tendance voluer, nous approchons de plus en plus vers une lectronisation et une informatisation du quotidien. Le futur nous rserve certainement quelques surprises, mais nous pouvons dors et dj faire une projection de la gestion rseau dans une maison futuriste. Lalliance de la domotique et des rseaux informatiques provoquera certainement lextension ultime de ces rseaux.

    Nous pourrons alors considrer que chaque appareil lectrique est un lment du rseau, reli un concentrateur qui ragit aux diffrentes commandes dun ordinateur de contrle central. On obtient ainsi un systme entirement informatis et gr par le rseau :

  • La gestion rseau et le protocole SNMP Page 7/21

    Gestiondes

    lumiresGestion de

    llectromnager

    Modem

    Gestiondes

    tlcomGestion de

    linformatique

    Ordinateur

    Ordinateur

    Serveur de controle

    Fig.5 : Les maisons de demain

    En couplant les technologies actuelles de gestion rseau permettant de contrler distance les appareils, il suffira ainsi dun simple clic pour teindre les lumires quelque part dans la maison ou pour changer de chane sur sa tlvision. Quel intrt me direz-vous : certes, dans la mesure actuelle des choses lintrt est trs limit. Toutefois, si lon couple ceci avec la technologie de la reconnaissance vocale, qui samliore sans cesse, il suffira alors de dire lumire pour que la lumire bascule de ltat allum ltat teint et inversement. Linformatique et les rseaux ne sont pas forcment ncessaires, toutefois la gestion sen trouve centralise et de ce fait particulirement simplifie. Enfin, les possibilits dvolution ne sen retrouvent limites que par notre imagination.

    Lintrt de la gestion rseau dans ce schma est galement accru par la diversit du matriel gr : il peut aussi bien sagir dun tlphone, que dune ampoule ou dune cafetire. La seule difficult surmonter est que chacun de ses appareils doit tre dot dune interface commune de communication : par exemple, un concentrateur dampoules, dont les caractristiques seront la prise en charge dun nombre dtermin de matriels sous-jacents, sur lesquels il sera possible de modifier ltat (allum/teint), ventuellement la puissance fournie (lumire forte/diffuse/etc). Ce concentrateur est ensuite donn dune interface de gestion accessible distance.

    La fusion des diffrentes technologies fera des miracles : Si lon couple lensemble la robotique, il suffira bientt de dire caf pour que la cafetire soit mise en route et que notre robot domestique nous lapporte

  • La gestion rseau et le protocole SNMP Page 8/21

    Deuxime partie : Les protocoles de gestion rseau

    Il existe plusieurs protocoles de gestion rseau, actuellement tous utiliss couramment. Nous nous limiterons dans cette prsentation aux protocoles bass sur TCP/IP, la norme protocolaire utilise dans les rseaux de type Internet.

    Telnet, SSH

    Le premier protocole historique est Telnet. Ce protocole TCP est largement utilis pour le contrle distance de matriel rseau. La conception est excessivement simple : une fois que lon est connect la machine distante, les touches tapes au clavier sont directement transmises la machine distante et telnet nous renvoie les rponses de ladite machine. Gnralement, la machine distante commence la transaction par nous demander un mot de passe daccs, puis nous donne accs un shell sur lequel nous pouvons lancer nos commandes.

    Fig.5 : Exemple de session Telnet sur un Cisco

    Ci-dessus nous pouvons analyser lexemple dune session Telnet sur un commutateur Cisco Catalyst : celui-ci nous rclame un mot de passe daccs, puis nous pouvons excuter des commandes. Ici show version nous affiche la version du systme dexploitation du matriel.

    Fig.6 : Exemple de session Telnet sur un 3Com

    La session Telnet sur un commutateur 3Com Superstack commence de manire similaire la session Cisco par lentre dun mot de passe. Puis nous accdons un menu de

  • La gestion rseau et le protocole SNMP Page 9/21

    gestion : il faut alors choisir lune de ces options pour naviguer travers les diffrentes commandes possibles et effectuer des modifications sur le matriel.

    Comme nous pouvons le constater, telnet nest pas un protocole fournissant une interface commune tous les matriels rseau. Chaque constructeur inclut son propre gestionnaire telnet personnalis, et la gestion du rseau nest donc pas uniforme suivant le type de matriel. Telnet assure intrinsquement la fiabilit de la transaction de par lutilisation du protocole TCP, toutefois la communication entre ladministrateur et le matriel nest pas crypte et la seule scurit apporte est lauthentification initiale.

    Le protocole SSH comble cette lacune en cryptant la transaction via le protocole SSL. Il permet galement deffectuer des transferts de fichiers entre les deux htes (protocole SCP). Toutefois linterface reste propre chaque matriel et ne permet pas deffectuer des transactions parallles ou une gestion uniforme de ceux-ci.

    Interface Web

    La gestion rseau par interface Web sest dveloppe durant ces dernires annes, car celle-ci fournit une interface plus intuitive et plus agrable utiliser que linterface Telnet. Toutefois, linstar de Telnet, linterface reste propre chaque matriel rseau et ne permet aucune homognisation de la gestion.

    Fig.7 : Exemple de session web sur un Cisco Catalyst.

    De plus, la gestion peut vite savrer fastidieuse sil y a un grand nombre de nuds au sein de notre rseau et quil soit ncessaire dappliquer plusieurs modifications sur chaque. Enfin, les serveurs Web consomment souvent un important nombre de ressources sur le matriel, apportant un risque de baisse de performances.

  • La gestion rseau et le protocole SNMP Page 10/21

    Le protocole SNMP

    Le protocole SNMP (Simple Network Management Protocol, ou autrement dit protocole de gestion rseau simplifi ), que nous allons tudier plus en dtails dans la partie suivante, a pour rle exclusif la gestion rseau, et offre en consquence un grand nombre davantages que nont pas les autres protocoles. SNMP propose une interface de transaction commune tous les matriels, et donc la plus homogne possible. Son utilisation reste peu importante suite des dbuts difficiles, mais SNMP tend devenir terme lune des rfrences en matire de gestion rseau.

    Comparaison des protocoles

    Chaque protocole que nous avons prsent a ses propres objectifs et en consquence ses propres avantages.

    Telnet est un standard en matire de communication distance et son objectif est dexcuter par lintermdiaire dune interface des commandes de gestion.

    SSH est similaire Telnet, tout en offrant une couche supplmentaire permettant de crypter le contenu de la transaction.

    Linterface Web permet de grer intuitivement le matriel et deffectuer des modifications basiques de la manire la plus simplifie possible.

    Enfin, SNMP est un protocole proposant une interface commune tous les matriels et donc une homognit accrue. Nous allons tudier ce dernier plus en dtail, car il respecte la plupart des contraintes que nous avons poses au dbut de cette synthse.

  • La gestion rseau et le protocole SNMP Page 11/21

    Troisime partie : Le protocole SNMP

    Historique

    La premire version de SNMP, SNMPv1, a t conue la fin des annes 80 et standardise dans le courant de lanne 1990. Sa conception permettait de grer la plupart des contraintes que nous avons dfinies dans la partie prcdente, mais un certain nombre de lacunes persistaient : manque de hirarchie, peu de codes derreur et de notifications, faibles performances, scurit laxiste, etc

    Lensemble de ces problmes a entran le dveloppement dune nouvelle version de SNMP, nomme SNMPv2, et dont la conception a commenc en 1993. Toutefois, plusieurs diteurs ont rejet les standards proposs, conduisant la cration dautres normes :

    SNMPv2p (historique): Beaucoup de travaux ont t excuts pour faire une mise jour de SNMPv1. Ces travaux ne portaient pas seulement sur la scurit. Le rsultat est une mise jour des oprations du protocole, des nouvelles oprations, des nouveaux types de donnes. Cette version est dcrite dans les RFC 1441, RFC 1445, RFC 1446, RFC 1448 et RFC 1449.

    SNMPv2c (exprimental): Cette version du protocole est appele community string based SNMPv2 . Ceci est une amlioration des oprations de protocole et des types doprations de SNMPv2p et utilise la scurit par chane de caractres community de SNMPv1. Cette version est dfinie dans les RFC 1901, RFC 1905 et RFC 1906.

    SNMPv2u (exprimental): Cette version du protocole utilise les oprations, les types de donnes de SNMPv2c et la scurit base sur les usagers. Cette version est dcrite dans les RFC 1905, RFC 1906, RFC 1909 et RFC 1910.

    SNMPv2* (exprimental): Cette version combine les meilleures parties de SNMPv2p et SNMPv2u, mais les documents qui dcrivent cette version nont jamais t publis.

    La version la plus utilise de SNMP est actuellement SNMPv2c, mais la tendance sinverse avec lintroduction en 1997 de la troisime version du protocole : SNMPv3. Cette version ajoute la prcdente une scurit plus importante, ainsi quune gestion hirarchise, mais sa complexit accrue entrane des difficults dimplmentation et une charge de mise en uvre plus dlicate que sur les versions prcdentes.

    Prsentation

    SNMP est un protocole de la famille TCP/IP (Internet protocol), et peut donc tre utilis sur tous les rseaux de type Internet. Il exploite les capacits du protocole de transport UDP :

    Chaque trame possde une adresse source et une adresse destination qui permettent aux protocoles de niveaux suprieurs comme SNMP de pouvoir adresser leurs requtes.

  • La gestion rseau et le protocole SNMP Page 12/21

    Le protocole UDP peut utiliser un checksum optionnel qui couvre l'en-tte et les donnes de la trame. En cas d'erreur, la trame UDP reue est ignore : gage de fiabilit.

    Le protocole UDP fonctionne en mode non connect, cest--dire quil nexiste pas de lien persistant entre la station dadministration et lagent administr. Cela oblige les deux parties sassurer que leurs messages sont bien arrivs destination, ce qui apporte galement un important gage de fiabilit pour la gestion rseau.

    Deux ports sont dsigns pour l'utilisation de SNMP : - Port 161 pour les requtes un agent SNMP. - Port 162 pour l'coute des alarmes destines la station d'administration.

    Principe de fonctionnement

    Le protocole SNMP se base sur le fait quil existe une station de gestion rseau, le manageur, dont le rle est de contrler le rseau et de communiquer via ce protocole avec un agent. Lagent est de manire gnrale une interface SNMP embarque sur le matriel destin tre administr distance.

    Fig.8 : Base de SNMP

    Le protocole SNMP est constitu de plusieurs commandes diffrentes :

    Get : Cette commande, envoye par le manageur lagent, a pour objectif de demander une information lagent. Celui-ci, dans le cas o la validit de la requte est confirme, renvoie au manageur la valeur correspondant linformation demande.

    Getnext : Cette commande, envoye par le manageur lagent, a pour objectif de demander linformation suivante lagent : il arrive quil soit ncessaire de parcourir toute une liste de variables de lagent. On utilise alors cette commande, la suite dune requte get, afin dobtenir directement le contenu de la variable suivante.

    Getbulk : Cette commande, est envoye par la manageur lagent pour connatre la valeur de plusieurs variables : cela vite deffectuer plusieurs requtes Get en srie, amliorant les performances (implment dans SNMPv2).

  • La gestion rseau et le protocole SNMP Page 13/21

    Set : Cette commande, envoye par le manageur lagent, a pour objectif de dfinir la valeur dune variable de lagent administr. Cela permet deffectuer des modifications sur le matriel.

    Trap : Lorsquun vnement particulier survient chez lagent (connexion, modification de la valeur dune variable donne, etc), celui-ci est susceptible denvoyer ce que lon appelle une trap , savoir un message dinformation destin la station dadministration : celle-ci pourra alors la traiter et ventuellement agir en consquence. Sil sagit par exemple de la coupure dun lien rseau, cela permet ladministrateur rseau den tre immdiatement inform.

    Inform : Dans certains cas, il peut tre intressant pour lagent dobtenir une rponse une Trap quil a mise, afin dobtenir confirmation que celle-ci a bien t reue et analyse : cest lobjectif dune commande inform . (Implment dans SNMPv2).

    Fig.9 : Rsum des commandes SNMPv2

    Les variables SNMP et le modle SMI

    Lobjectif de SNMP est donc dobtenir ou de modifier la valeur dune ou plusieurs variables du matriel : Il peut sagir par exemple de ltat dune interface rseau (allum/teint). Les variables SNMP exploitent le modle SMI (Structure of Management Information) qui dfinit un modle hirarchique des variables. Le modle est dfini dans les RFC1155 et 2578.

    Dans ce modle, les variables sont rpertories dans une hirarchie dobjets. Chaque objet est identifi par ce que lon appelle un OID (Object IDentifier). La hirarchie de ces objets se reprsente sous la forme dun arbre. Les branches constituent les diffrents OIDs et les feuilles les variables. Une variable peut donc tre rfrence par la liste ordonne des diffrents OIDs parcourus partir de la racine de larbre.

    Le modle SMI dfinit galement les types de donnes utilisables pour les variables : entier, rel, dure, compteur, etc

  • La gestion rseau et le protocole SNMP Page 14/21

    Un ensemble dobjets dun mme module est appel une MIB (Module Information Bases). Il sagit dune base de donnes rfrenant la liste des objets et des variables associes, des types de donnes utiliss pour chaque variable et dun descriptif de cette variable. La base contient ventuellement des types de donnes personnaliss

    Fig.10 : Larborescence des OIDs en SNMP

    La figure 10 prsente larborescence des OIDs, constituant les MIBs. En SNMP, on utilise communment deux branches :

    iso.org.dod.internet.mngt.mib-2 (1.3.6.1.2.1) : il sagit de la branche contenant tous les objets standards, dfinis prcisment dans les RFC. Ainsi, tout agent SNMP doit pouvoir reconnatre cette branche et les variables qui y sont dfinies.

    iso.org.dod.internet.private.enterprises (1.3.6.1.4.1) : cette branche est lorigine de tous les objets propres au matriel et dfinies par le constructeur. Ainsi, chaque constructeur se voit attribu un identifiant (VendorID), qui lui fournit un espace de donnes au sein de larbre des MIBs. Si nous prenons lexemple de Cisco, dont lidentifiant est 9, toutes les variables propres Cisco ont une cl dbutant par 1.3.6.1.4.1.9.

    Les fichiers MIBs

    Les fichiers MIBs dcrivent prcisment chaque chiffre (OID) de la liste identifiant une variable (la cl), et sa signification. Prenons lexemple simple de la variable contenant le nom du matriel interrog. Il sagit dune proprit de lobjet standard system que nous pouvons voir dans larborescence de la figure 10. La proprit sappelle sysName . On en dduit que la variable sappelle alors : iso.org.dod.internet.mngt.mib-2.system.sysName.

  • La gestion rseau et le protocole SNMP Page 15/21

    Analysons le fichier MIB dcrivant lobjet system (RFC 1213) :

    sysName OBJECT-TYPE SYNTAX DisplayString (SIZE (0..255)) ACCESS read-write STATUS mandatory DESCRIPTION "An administratively-assigned name for this managed node. By convention, this is the node's fully-qualified domain name." ::= { system 5 }

    Le fichier fournit toutes les informations relatives la proprit sysName : Syntaxe : il sagit dune chane de caractres de taille variant entre 0 et 255. Accs : laccs cette variable se fait en lecture ou en criture Etat : cette variable existe et est toujours utilisable. Description : il sagit du nom complet du nud. Sa place dans larborescence : 5e proprit de lobjet system : On en dduit

    que cette variable a pour cl la valeur 1.3.6.1.2.1.1.5.

    Ainsi, nous avons la description de toutes les variables, leur mthode daccs et la cl que nous devons utiliser pour lire ou crire sa valeur. La majorit des constructeurs fournit des fichiers MIBs contenant des informations sur les variables propres leur matriel, ne faisant pas partie des informations standards.

    Il existe un grand nombre doutils permettant de visualiser larbre des MIBs et de rechercher une variable au sein de celui-ci. Lexemple de la figure 11 est tir du site www.snmplink.org.

    Fig.11 : Explorateur de MIBs

  • La gestion rseau et le protocole SNMP Page 16/21

    La scurit

    Sous SNMPv1 et SNMPv2c, la scurit est assure par deux choses : Dans sa requte, il faut envoyer une chane de communaut, qui correspond en

    quelque sorte un mot de passe, et dont les droits varient suivant cette chane : il est ainsi possible dautoriser certaines personnes un accs en lecture seule, et dautres personnes un accs complet suivant la communaut quils utilisent.

    Lagent peut vrifier et contrler lorigine des donnes, afin de vrifier que la personne en question a accs aux informations. Il sagit gnralement dune vrification base sur ladresse IP source.

    Nous constatons toutefois que la scurit est particulirement lacunaire pour deux raisons : le contenu de la transaction nest pas crypt, et il suffit que la communaut soit connue de nimporte qui pour que cette personne puisse lire les informations.

    Ces diffrents problmes ont t rsolus dans SNMPv3. En effet, celui-ci propose plusieurs modles de scurits diffrents :

    Le premier modle est dpourvu de scurits et est comparable SNMPv1/v2c. Le second modle offre des capacits dauthentification par utilisateur, cest--

    dire que chaque utilisateur dispose dun mot de passe daccs, ainsi que dune cl publique de cryptage permettant de scuriser le contenu de la transaction.

    Le troisime modle ajoute au prcdent un niveau de cryptage supplmentaire en utilisant le principe dchange des cls prives : le contenu des paquets est ainsi totalement crypt mais ce modle nest applicable quen fonction des lois sur la cryptographie en vigueur.

    Fonctionnement pratique

    Lorsquune commande est expdie un agent, on attend de celui-ci une rponse. Plusieurs cas peuvent se produire :

    Aucune rponse (Temps dattente dpass) Erreur dans la requte La requte a russi.

    Aucune rponse

    Plusieurs cas sont susceptibles de produire une absence de rponse de la part du matriel interrog :

    SNMP est bas sur UDP et il peut arriver que les paquets narrivent pas destination. Dans ce cas, le temps dattente de rponse finit par scouler et il convient alors de rmettre la requte.

    Suivant limplmentation des agents et la version de SNMP utilise, si lauthentification choue (mauvaise communaut, mot de passe incorrect), lagent peut ne pas rpondre la requte.

    Le temps dattente de rponse peut tre paramtr dynamiquement et il est possible que le temps dfini soit trop court pour permettre la rponse de revenir.

  • La gestion rseau et le protocole SNMP Page 17/21

    Enfin, dans le pire des cas, il est possible quil ny ait pas dagent SNMP disponible sur le matriel interrog. Nous ne pouvons en consquence avoir de rponse notre requte.

    Erreur

    Plusieurs cas sont susceptibles de conduire au renvoi dune erreur : Lorsquon lon essaie dcrire sur une variable en lecture seule Lorsque lon essaie de dfinir la valeur dune variable avec un type de donnes

    incorrect (si lon essaie dcrire une chane de caractres dans une variable de type entier par exemple).

    Lorsque la variable nexiste pas. Lorsque la trame SNMP est incorrecte (corruption, longueur non valide) Lorsque lauthentification SNMPv3 a chou.

    Russite

    Lorsque la requte lagent SNMP russit, celui-ci nous envoie la valeur de la variable laquelle on a accd (que ce soit en lecture ou en criture).

    Les implmentations existantes du protocole SNMP

    Il existe des centaines dimplmentations diffrentes du protocole SNMP, de par le fait quil sagit dun protocole parfaitement bien dfini et quil est de plus en plus exploit au sein des rseaux. Chaque implmentation a ses propres avantages et inconvnients. Certaines ont pour but de fournir des applications de gestion SNMP, dautres ont pour but de fournir des bibliothques de fonctions (API) pour la gestion SNMP. Certaines fournissent les deux, comme la distribution net-snmp (www.net-snmp.org) du domaine libre. Celle-ci propose les applications de base pour dbuter et utiliser efficacement SNMP.

    On retrouve dans la plupart des distributions le mme ensemble dapplications de base pour la gestion du matriel via SNMP. Il sagit des applications suivantes :

    Snmpget : Permet de lire une variable dun agent SNMP Snmpset : Permet de dfinir la valeur dune variable dun agent SNMP Snmpwalk : Permet de parcourir une liste de variables dun agent SNMP. Snmptrap : Envoie une trap un manageur Snmpbulkget, Snmpbulkwalk : Identique Snmpget et Snmpwalk mais en

    utilisant des requtes de type Snmpbulk. Snmpinform : Envoie une requte Inform un manageur

    Ces applications sont gnralement bases sur la mme architecture de programmation. Certains programmes contiennent directement les applications, ou limplmentation du protocole, de manire acclrer la vitesse de traitement des informations.

  • La gestion rseau et le protocole SNMP Page 18/21

    Par ailleurs, la plupart des distributions Unix ainsi que les distributions Microsoft Windows Server fournissent un agent SNMP pour contrler distance la station et obtenir des informations sur celles-ci. Enfin, la plupart des matriels rseaux administrables daujourdhui embarquent dans leur systme dexploitation un agent SNMP pour grer le matriel distance.

    Exemple de transaction SNMP

    Procdons lanalyse dun matriel rseau classique, par exemple un routeur. Cherchons connatre son nom, son temps de fonctionnement et des informations sur ses interfaces. Nous considrerons que la communaut daccs est TdS et que ladresse de ce matriel est 172.17.67.253 .

    Reprenons tout dabord lexemple prsent dans une partie prcdente, concernant le nom de lhte. Nous en avions conclu que la cl de la variable tait 1.3.6.1.2.1.1.5. Effectuons une requte de type GET sur ce matriel et sur cette cl afin de voir sil rpond conformment nos attentes :

    $ snmpget -c TdS 172.17.67.253 .1.3.6.1.2.1.1.5 system.sysName = router-exemple $

    La syntaxe de la commande est trs simple : on appelle snmpget en dfinissant le nom de la communaut (-c TdS). On lui fournit ladresse IP du matriel interroger ainsi que la cl que lon cherche obtenir. La commande a russi et lagent nous a renvoy la valeur router-exemple . Le nom de ce systme est donc router-exemple .

    Nous pouvons constater que le principe de scurit bas sur la communaut est oprationnel. Essayons dinterroger lagent en utilisant un nom de communaut diffrent, par exemple test :

    $ snmpget -c test 172.17.67.253 .1.3.6.1.2.1.1.5 Timeout: No Response from 172.17.67.253. $

    Snmpget nous signale alors quil na pas eu de rponse : la scurit fonctionne. De mme, si lon essaye daccder une variable inexistante, lagent renvoie une erreur :

    $ snmpget -c TdS 172.17.67.253 .1.3.6.1.99 Error in packet Reason: (noSuchName) There is no such variable name in this MIB. $

    Lagent renvoie une erreur similaire lorsque lon interroge une branche et non une feuille de larbre des OIDs. Essayons une requte snmpget sur lobjet system lui-mme :

    $ snmpget -c TdS 172.17.67.253 .1.3.6.1.2.1.1 Error in packet Reason: (noSuchName) There is no such variable name in this MIB. $

  • La gestion rseau et le protocole SNMP Page 19/21

    Il est ncessaire, pour parcourir toute la branche, deffectuer une requte de type walk , qui constitue en fait une srie de requtes get et get-next. On obtient ainsi la liste de toutes les variables de la branche :

    $ snmpwalk -c TdS 172.17.67.253 .1.3.6.1.2.1.1 system.sysDescr = Cisco Internetwork Operating System Software system.sysObjectID = OID: enterprises.9.1.172 system.sysUpTime = Timeticks: (9360890) 1 day, 2:00:08.90 system.sysContact = [email protected] system.sysName = router-exemple system.sysLocation = Rsidence Fleming system.sysServices = 78 $

    On obtient ainsi un ensemble dinformations relatives au systme : sa description, le temps depuis quand il fonctionne, lendroit o il se trouve, la personne qui sen occupe, etc Il faut bien sr que ces paramtres aient t prcdemment dfinis dans la configuration de lagent.

    Nous pouvons galement modifier les informations directement depuis notre console, par lutilisation de commandes SET. Essayons par exemple de modifier la description de lendroit o le matriel se trouve (system.sysLocation, .1.3.6.1.2.1.1.6). Cela se fait par le biais de la commande snmpset. Il est galement ncessaire de lui fournir le type de donnes utilis (ici s pour string, chane de caractres ) :

    $ snmpset -c TdS 172.17.67.253 .1.3.6.1.2.1.1.6 s "chez moi" system.sysLocation = chez moi $

    Nous pouvons vrifier que la commande a bien t prise en compte :

    $ snmpget -c TdS 172.17.67.253 .1.3.6.1.2.1.1.6 system.sysLocation = chez moi $

    La MIB standard fournit des informations sur ltat des interfaces rseaux du matriel interrog. LOID set iso.org.dod.internet.mgmt.mib-2.interfaces.ifNumber nous permet tout dabord de connatre le nombre dinterfaces :

    $ snmpget -c TdS 172.17.67.253 .1.3.6.1.2.1.2.1.0 interfaces.ifNumber.0 = 4

    Les interfaces sont alors regroupes dans un tableau .interfaces.ifTable contenant la liste des proprits de chaque interface. Si nous dsirons par exemple connatre le type des interfaces, il nous faudra interroger lOID interfaces.ifTable.ifEntry.ifType :

    $ snmpwalk -c TdS 172.17.67.253 .1.3.6.1.2.1.2.2.1.3 interfaces.ifTable.ifEntry.ifType.1 = ethernetCsmacd(6) interfaces.ifTable.ifEntry.ifType.2 = ethernetCsmacd(6) interfaces.ifTable.ifEntry.ifType.3 = propPointToPointSerial(22) interfaces.ifTable.ifEntry.ifType.4 = other(1)

  • La gestion rseau et le protocole SNMP Page 20/21

    On constate que lagent a ajout lOID le numro de linterface : nous avions vu quil y en avait 4, aussi le tableau est index de 1 4. Nous constatons que les interfaces n1 et n2 sont de types ethernet , alors que celle de type n3 est de type pppSerial . Enfin la 4e interface est de type inconnue (ou de type dfini par le constructeur).

    Nous pouvons connatre ltat de chacune des interfaces en interrogeant la proprit ifOperStatus (tat courant de linterface, ix=8) de lobjet ifEntry :

    $ snmpwalk -c TdS 172.17.67.253 .1.3.6.1.2.1.2.2.1.8 interfaces.ifTable.ifEntry.ifOperStatus.1 = up(1) interfaces.ifTable.ifEntry.ifOperStatus.2 = up(1) interfaces.ifTable.ifEntry.ifOperStatus.3 = down(2) interfaces.ifTable.ifEntry.ifOperStatus.4 = up(1)

    Le programme nous apprend ainsi que les interfaces n1, 2 et 4 sont actives, mais que linterface n3 est inactive. Il nous serait possible, compte tenu de ces informations, de dsactiver lune des 3 interfaces actives en dfinissant la valeur via une commande de type set.

    Il existe plusieurs centaines de milliers dinformations rcuprables via SNMP, en raison de la quantit impressionnante du nombre dobjets. De plus, ceux-ci sont en constante volution, aussi ce nombre ne cesse daugmenter, chaque constructeur ajoutant ses propres spcificits.

    Par ailleurs, pour montrer que linterface de communication est rellement standard et fonctionne avec nimporte quel agent SNMP, nous allons essayer de communiquer avec une station Windows et de sassurer que le rsultat est similaire :

    $ snmpwalk -c public 172.17.64.28 .1.3.6.1.2.1.1 system.sysDescr = Windows 2000 Version 5.0 (Build 2195) system.sysObjectID.0 = OID: enterprises.311.1.1.3.1.2 system.sysUpTime.0 = Timeticks: (7541868) 20:56:58.68 system.sysContact.0 = system.sysName.0 = SERVEUR system.sysLocation.0 = system.sysServices.0 = 76

    La chane dinformations qualifie cet agent de Windows 2000 . Nous constatons que cet agent fournit beaucoup moins dinformations que le prcdent, toutefois mme si les champs sont vides, les variables existent, ce qui nous conforte dans lide que SNMP est un protocole grant tout type de matriel rseau.

    $ snmpget -c public 172.17.64.28 .1.3.6.1.2.1.2.1 interfaces.ifNumber = 3

    Nous constatons que cette machine a 3 interfaces rseau : il y a bien un respect de la norme, et nous pouvons interroger indpendamment un serveur Windows 2000 ou un matriel de gestion rseau central, sachant que les rsultats sont similaires ;

  • La gestion rseau et le protocole SNMP Page 21/21

    Avantages et inconvnients

    Nous lavons vu, le protocole SNMP a de nombreux avantages en tant quoutil de gestion rseau :

    Accs centralis : la gestion rseau seffectue depuis une machine centrale sans soucis, et cest mme prfrable pour la scurit.

    Scurit : la scurit sest accrue au cours des diffrentes versions, jusqu respecter la plupart des contraintes imposes.

    Fiabilit : le protocole utilis permet de sassurer que les requtes sont bien arrives destination et quelles ont t correctement interprtes.

    Evolutivit : lutilisation dune arborescence pour la gestion des variables permet davoir une volution continuelle des capacits fonctionnelles accessibles via ce protocole.

    Gestion de la diversit : lutilisation dune interface standard tous les matriels permet de contrler de la mme manire tous les quipement rseaux, ce qui a des avantages indniables lorsque lon dispose dun parc informatique trs diversifi.

    Toutefois, certains reproches peuvent tre faits SNMP : linterface standard de communication est trs pauvre et ne fournit quun nombre trs limit dinformations : tat des interfaces rseaux, nombre doctets transmis, etc mais tous les constructeurs ont dcid dexploiter leurs spcificits directement dans leur MIB propre plutt que dessayer duniformiser au maximum et de faire voluer la MIB standard. Ainsi, mme si certaines informations peuvent tre obtenues identiquement sur des matriels distincts, il sera parfois ncessaire de rechercher dans la MIB du constructeur pour obtenir des informations plus pointues.

    Avenir de SNMP

    SNMP est un protocole plein davenir : il se dveloppe de plus en plus ces dernires annes, paralllement lessor des rseaux. La seule crainte que lon puisse avoir est que les constructeurs, plutt que dadopter et de continuer faire voluer ce protocole devenu standard, continuent dexploiter leurs propres protocoles, dtruisant un espoir duniformisation de la gestion rseau.

    En soi, le protocole SNMP a beaucoup davantages indniables que nous avons pu mettre en avant, et les implmentations de celui-ci sont de plus en plus solides et fournissent des bases de plus en plus intressantes aux dveloppeurs et aux intgrateurs de systmes.