EFORT http://www.efort.com
LISO a propos dans les annes 80 la norme CMIS/CMIP (Common Management Information Service, Common Management Information Protocol) comme protocole dadministration de rseau utilis entre un gestionnaire et un agent. Le but de ce tutoriel est de dcrire l'architecture, le protocole et les services CMIS/CMIP.
1 Le modle gestionnaire-agent
La gestion OSI (Open System Interconnection) fait reposer son modle relationnel sur deux concepts importants qui sont le gestionnaire et l'agent, et prcise aussi leur communication. Les correspondants administratifs (gestionnaire/agent) sont reprsents par des processus qui changent des informations travers un protocole (agent/gestionnaire). L'change entre agent (administr) et gestionnaire (administrateur) se fait: Soit par un mcanisme de demande du gestionnaire/rponse de l'agent, soit par un compte rendu spontan de l'administr l'administrateur la suite d'un vnement. Nous obtenons ainsi le modle de la gestion systme (figure 1).
Systme gestionnaire
Oprations de gestion
Systme gr
Excution d'oprations de gestion Notifications mises Objet de gestion Ressource de tlcommunication
Gestionnaire
Notifications
Agent
CMISE offre les moyens d'effectuer des changes entre processus de gestion pour raliser ces oprations et notifications. Les changes sont de type demande et demande-rponse. CMISE assure la mise en oeuvre des services suivants: M-CREATE qui permet un gestionnaire de crer un objet dans la MIB de l'agent, M-DELETE qui permet un gestionnaire de supprimer un objet dans la MIB de l'agent, M-ACTION, confirme ou non, qui permet un gestionnaire de demander qu'une action soit effectue par un objet gr, M-EVENT-REPORT, confirme ou non, qui permet un agent de transmettre la notification mise par un objet gr un gestionnaire, M-GET qui permet un gestionnaire de lire les valeurs dattributs d'objets grs, M-SET, confirme ou non, qui permet un gestionnaire de modifier les valeurs d'attributs, M-CANCEL-GET qui permet dannuler un service M-GET invoqu. M-CREATE, M-DELETE, M-GET et M-CANCEL-GET sont des services oprant toujours en mode confirm. CMISE permet de demander un ensemble d'objets grs travers une demande de service grce aux mcanismes de cadrage et de filtrage. Le cadrage (scoping) permet de slectionner un sous-arbre dans la hirarchie de nommage en spcifiant la racine et la profondeur de ce sous-arbre. La demande de service s'applique ensuite tous les objets du domaine ainsi dlimit. Lobjet gr de base (base object) est dfini comme la racine de larbre de nommage partir duquel le cadrage doit tre appliqu. Quatre spcifications de niveau de cadrage sont dfinies indiquant si le filtre doit tre appliqu : lobjet de base seul (base object only ), aux subordonns de niveau N de lobjet de base (Nth level subordinates only), lobjet de base et tous ses subordonns jusquau niveau N, ce niveau compris (base object and all subordinates down to and including the Nth level), lobjet de base et tous ses subordonns (ensemble du sous-arbre) (entire subtree). Lorsque le paramtre de cadrage nest pas spcifi, lobjet gr de base est le seul objet slectionn.
Sous-arbre cadr
Base object only First level subordinates only Base object and all subordinates down to and including the Nth level Nth level subordinates only Entire subtree
Objet slectionn
Figure 2: Cadrage et filtrage Le filtrage (Filtering) consiste effectuer slectivement l'opration de gestion sur les objets qui sont dans le domaine de la demande en appliquant un critre de filtrage aux attributs de l'objet. Un filtre est un ensemble de une ou plusieurs assertions sur la prsence ou les valeurs des attributs dun objet gr slectionn par le mcanisme de cadrage. Si le filtre comprend
plusieurs assertions, elle sont regroupes laide doprateurs logiques ET (AND), OU (OR) et NON (NOT). Si le rsultat de lapplication du filtre un objet gr est positif, cet objet est retenu pour lexcution de lopration. Lorsque le paramtre de filtrage nest pas spcifi, tous les objets grs cadrs sont slectionns. Les assertions sont : equality (galit) : la valeur dun attribut fait lobjet de tests dgalit par rapport une valeur donne. Ex : operationalState = disabled, greaterOrEqual (suprieur ou gal) : la valeur dun attribut est teste en fonction dune valeur donne, afin de dterminer si elle est plus grande. Ex : bitrate greaterOrEqual 1.000.000, lessOrEqual (infrieur ou gal) : la valeur dun attribut est compare une valeur donne pour dterminer si elle est plus petite. Ex : bitrate lessOrEqual 10.000.000, present (lattribut est prsent) : Ex : present (administrativeState), substrings (la valeur dattribut comprend les sous-chanes dans l ordre indiqu) [crossconnectionId substrings (xcon, xc)] subset of (Tous les membres indiqus sont prsents dans la liste de valeurs de lattribut prcis) [crossConnectionList subset of (xcon1, xcon2, xcon3)] superset of (Tous les membres de la liste de valeur de l attribut sont prsents dans la liste indique) [crossConnectionList subperset of (xcon1, xcon2, xcon3, xcon4, xcon5)] non-null-intersection : (au moins un des membres indiqus est prsent dans la valeur d attribut) [crossConnectionList non-null-intersection (xcon1, xcon2) On peut noter les similarits entre cadrage (scoping) et filtrage (filtering), et la requte SQL SELECT dans le monde des bases de donnes relationnelles. L'opration ainsi cadre peut tre effectue en mode atomique (atomic) ou au mieux (best effort). Il sagit l de la fonctionnalit de synchronisation. Le mode "atomique" implique que l'opration sera excute soit correctement sur tous les objets, soit sur aucun. Le mode "au mieux" stipule que l'opration n'est effectue que sur les objets qui admettent l'opration. Illustrons rapidement les rles respectifs de ACSE, CMISE et ROSE sur un exemple (figure 3). Considrons qu'un gestionnaire dsire connatre auprs d'un agent l'tat oprationnel d'un commutateur ATM. Il s'agira donc de lire la valeur de l'attribut tat oprationnel de l'objet commutateur dans la MIB de l'agent. Le gestionnaire commence par tablir une association avec l'agent en invoquant le service offert par ACSE. Une fois l'association tablie, le gestionnaire utilise le service offert par CMISE afin d'mettre une requte de lecture de l'objet et de recevoir la rponse (5, 8). ROSE, dont les services sont utiliss par CMISE (6,7), supporte l'mission de la requte et l'envoi de la rponse.
Gestionnaire
5 1 4 CMISE 6 ACSE ROSE ACSE 2 3
Agent
8 CMISE 7 ROSE Prsentation Session Transport Rseau Liaison Physique
Dans les paragraphes qui suivent sont dcrits les paramtres de chacun des services CMISE travers des tableaux. Dans ces derniers, M signifie Mandatory (obligatoire), C est mis pour Conditional, U pour User ( la diligence de l'utilisateur) et - signifie l'absence du paramtre correspondant. Lorsque le symbole = est prsent dans un champ de rponse, il indique que la valeur du champ est identique celle du champ correspondant dans la requte. Les paramtres du service M-EVENT-REPORT sont lidentifiant de la requte (Invoke Identifier), le mode du service M-EVENT-REPORT (confirm ou non confirm), le nom de la classe dobjet (Managed Object Class) dont une des instances (Managed Object Instance) a mis la notification, le type dvnement mis qui indique le nom de la notification (Event Type). Parmi les paramtres facultatifs, figurent linstant dmission de la notification (Event Time), et des informations associes lvnement (Event Information). Si le mode est confirm, alors le gestionnaire met une rponse en direction de lagent qui contient le mme identifiant de requte. Cette rponse peut rappeler certains paramtres, et contient un type derreur si une erreur est survenue (e.g., no such event) (tableau 1). Nom du paramtre Requte Rponse Invoke Identifier M M(=) Mode M Managed Object M U Class Managed Object M U Instance Event Time U Event Type M C(=) Event Information U Current Time U Event Reply C Errors C Tableau 1: Paramtres de la primitive M-EVENT-REPORT La primitive M-GET fonctionne toujours en mode confirm (requte/rponse). L'opration MGET tout comme les oprations M-SET, M-ACTION et M-DELETE utilisent les principes de cadrage et filtrage. Le cadrage comprend lidentification du ou des objets grs auxquels un filtre doit tre appliqu. Le filtrage comprend lapplication dun ensemble de tests chaque lment de lensemble des objets grs slectionns par le cadrage, pour en extraire un sous-ensemble. Le sous-ensemble des objets slectionns par le cadrage qui satisfont le filtre est retenu pour lopration. A lmission, le paramtre Base Object Class identifie la classe dont une des instances (Base Object instance) sera lobjet racine du sous-arbre de nommage slectionn par lopration de cadrage. Le paramtre cadre (Scope) indique la profondeur du sous-arbre avec les possibilits suivantes : Base object only, first level subordinates only, Nth level subordinate only, entire subtree. Le paramtre filtre (Filter) est appliqu au sous arbre slectionn par le cadrage. Le paramtre contrle daccs (Access Control) peut tre utilis pour ne permettre que les accs autoriss aux objets de gestion. La synchronisation peut tre soit atomique soit au mieux. La liste didentifiants dattributs (Attribute Identifier List) contient lidentifiant de chaque attribut dont la valeur est souhaite par le gestionnaire. A une requte M-GET peuvent correspondre plusieurs rponses (rponse multiple), en fonction du nombre dobjets slectionns par les oprations de cadrage et de filtrage (une rponse M-GET par objet slectionn). Chaque rponse possde un identifiant de rponse (Linked identifier), le nom de la classe dobjet (Managed Object Class) dont linstance a t slectionne (Managed Object Instance), linstant de gnration de la rponse (Current
Time), et la liste dattributs avec leurs valeurs associes (Attribute list). Une erreur peut ventuellement survenir; dans ce cas un identifiant derreur est rapport au gestionnaire (e.g., no such object class, no such object instance, etc.) (tableau 2). Nom du paramtre Requte Rponse Invoke Identifier M M Linked Identifier C Base Object Class M Base Object Instance M Scope U Filter U Access Control U Synchronisation U Attribute Identifier List U Managed Object C Class Managed Object C Instance Current Time U Attribute List C Errors C Tableau 2 : Paramtres de la primitive M-GET Les paramtres de la primitive M-SET sont identiques ceux de la requte M-GET lexception de l'attribut Modification List (tableau 3). Chaque lment de cette liste contient un identifiant dattribut, un oprateur de modification (replace, add value, remove value, set to default) et de manire optionnelle une ou des valeurs dattributs. Add value et remove value sappliquent des attributs dont les valeurs sont des listes. Nom du paramtre Requte Rponse Invoke Identifier M M Linked Identifier C Mode M Base Object Class M Base Object Instance M Scope U Filter U Access Control U Synchronisation U Managed Object C Class Managed Object C Instance Modification List M U Current Time C Attribute List C Errors C Tableau 3 : Paramtres de la primitive M-SET M-ACTION ressemble aux requtes M-GET et M-SET, la diffrence quelle ne transporte pas des attributs mais des actions (tableau 4). Les informations associes laction sont
Action Type qui correspond au type daction tel quil est dfini par le formulaire ACTION, Action Information indiquant l'information ncessaire l'invocation de l'action. Nom du paramtre Requte Rponse Invoke Identifier M M Linked Identifier C Mode M Base Object Class M Base Object Instance M Scope U Filter U Access Control U Synchronisation U Managed Object C Class Managed Object C Instance Action Type M C(=) Action Information C Action Reply C Current Time U Errors C Tableau 4 : Paramtres de la primitive M-ACTION Les paramtres de la primitive M-CREATE sont le nom de la classe dobjet de gestion (Managed Object Class) dont une instance sera cre (Managed Object Instance). Le paramtre Superior Object Instance identifie lobjet dans larbre de nommage auquel linstance qui sera cre sera rattache. Attribute list spcifie les valeurs dattributs pour la nouvelle instance. Il est aussi possible dindiquer un paramtre Reference Object Instance qui identifie une instance de la classe dont les valeurs dattributs seront les valeurs par dfaut des attributs de la nouvelle instance (tableau 5). Nom du paramtre Requte Rponse Invoke Identifier M M(=) Managed Object M U Class Managed Object U C Instance Superior Object U instance Access Control U Reference Object U Instance Attribute List U C Current Time U Errors C Tableau 5: Paramtres de la primitive M-CREATE A la diffrence de M-CREATE, M-DELETE supporte le cadrage et le filtrage. En effet, il est possible de supprimer un ensemble dobjets travers une unique invocation du service MDELETE (tableau 6).
Nom du paramtre Requte Rponse Invoke Identifier M M Linked Identifier C Base Object Class M Base Object Instance M Scope U Filter U Access Control U Synchronisation U Managed Object C Class Managed Object C Instance Current Time U Attribute List C Errors C Tableau 6: Paramtres de la primitive M-DELETE Le paramtre important de la primitive M-CANCEL-GET est lidentifiant de la requte M-GET annuler (Get Invoke Identifier) (tableau 7). Nom du paramtre Requte Rponse Invoke Identifier M M(=) Get Invoke Identifier M Errors C Tableau 7: Paramtres de la primitive M-CANCEL-GET Etant donn la complexit de CMIS, la plupart des plateformes de gestion de rseau TMN offrent des interfaces de programmation de plus haut niveau [Miller 94].
3 Le protocole CMIP
Le protocole CMIP est exprim par un ensemble d'oprations CMIP correspondant aux services CMISE. Si un service peut fonctionner dans les modes confirm et non-confirm, deux oprations sont alors utilises, une pour chaque mode. C'est le cas du service MEVENT-REPORT pour lequel deux oprations sont dfinies savoir : m-EventReport et mEventReport-Confirmed. C'est aussi le cas pour M-SET (m-Set et m-Set-Confirmed), MACTION (m-Action et m-Action-Confirmed). Si le service est toujours confirm, il est traduit en une seule opration : M-GET (m-Get), M-CREATE (m-Create), M-DELETE (m-Delete), MCANCEL-GET (m-CancelGet). Enfin, pour transporter des rponses multiples, une opration m-Linked-Reply est utilise. Ce sont donc 11 oprations CMIP qui sont dfinies (tableau 8). m-EventReport m-EventReportConfirmed m-Linked-Reply m-Get m-Set m-Set-Confirmed m-Action m-Action-Confirmed
Figure 4 : Exemple d'arbre de nommage Dcrivons lenvoi un gestionnaire dun vnement mis par lobjet atmXCON1 (Figure 5). Le nom de lvnement est stateChange indiquant que ltat oprationnel de lobjet XCON1 a dsormais pour valeur disabled . Le mode choisi est non confirm.
Systme grant Processus grant CMIP Systme gr Processus gr
Dcrivons les requtes de lecture des attributs crossConnectionId et administrativeState de lensemble des connexions dans le commutateur atmSW1 ainsi que des rponses retournes par chacune des connexions (Figure 6).
Systme grant Processus grant CMI Systme gr Processus gr
Id-get-1 atmSW atmSW1 Second level subordinates only objectClass= atmXCON and operationalState = enabled atomic crossConnectionId administrativeState
Id-get-1 Id-linked-1 atmXCON atmXCON1 199803141425 crossConnectionId XCON1 administrativeState unlocked} Id-get-1 Id-linked-2 atmXCON atmXCON2 199803141425 crossConnectionId XCON2 administrativeState unlocked} Id-get-1 Id-linked-2 atmXCON atmXCON3 199803141425 crossConnectionId XCON3 administrativeState unlocked}
Dcrivons les requtes de modification de lattribut administrativeState de la connexions atmXCON1 dans le commutateur atmSW1 ainsi que la confirmation mise par lagent du commutateur (Figure 7).
Copyright EFORT 2011 9
Systme gr Processus gr
Id-set-1 Confirmed atmXCON atmXCON1 operationalState = enabled atomic administrativeState Locked Replace
Figure 7 : Exemple de requte M-SET et de la rponse associe La requte suivante (Figure 8) transporte une action reset destine lobjet atmFabric dont le but est de rinitialiser ce fabric (en franais rseau de connexion).
Systme grant Processus grant CMIP Systme gr Processus gr
Id-action-1 non-confirmed atmSW atmSW1 First level subordinates only operationalState = enabled reset
10
Dcrivons la requte de supression de lensemble des connexions du commutateur atmSW1 ainsi que les rponses qui confirment les suppressions de ces connexions (Figure 9).
Systme grant Processus grant CMIP Systme gr Processus gr
Id-action-1 atmFabric atmFabric1 First level subordinates only objectClass= atmXCON userxzv91 atomic
M-DELETE.confirm {Invoke Identifier Id-delete-1 Linked Identifier Id-linked-1 ManagedObjectClass XCON ManagedObjectInstance XCON1 Current Time 199803141622 }
M-DELETE.confirm {Invoke Identifier Linked Identifier ManagedObjectClass ManagedObjectInstance Current Time } M-DELETE.confirm {Invoke Identifier Linked Identifier ManagedObjectClass ManagedObjectInstance Current Time }
Figure 9 : Exemple de requte M-DELETE et des rponses associes La requte suivante dcrit lannulation dune requte M-GET dinvoke identifier id-get-1 (Figure 10). On suppose quune telle requte M-GET nexiste pas.
11
Systme gr Processus gr
Id-cancel-get-1 Id-get-1}
12