Les schéma ci dessous sont tiré directement du document SNMPv3 (RFC 2271). Ils montrent le fonctionnement et les divisions d’un gestionnaire SNMP traditionnel. On remarque qu’on a des divisions entre le transport, le traitement, la sécurité et les applications.

Tout d'abord, voici l'architecture d'une plateforme de gestion (ou manager) :




Le prochain diagramme montre un agent SNMP selon le document SNMPv3 (RFC 2271). Dans un agent SNMPv3, on retrouve le module « access control » et les applications qui communiquent avec l’instrumentation.



Le modèle SNMPv3 comporte donc plusieurs modules dont les plus importants sont :

  •   Le transporteur (Transport mapping)
  •   Module de traitement (Processing Module)
  •   La sécurité (Security Subsystem)
  •   Les applications.

Le standard ne fait pas que diviser les modules, il décrit aussi les primitives d’appels entre les modules. Il est important de rappeler que le standard n’impose rien quant à une mise en œuvre d’un logiciel supportant SNMPv3. Un programmeur n’est pas encouragé à suivre le découpage des modules ou les interfaces décrits dans le standard. Le découpage en modules a pour seul usage de permettre le découpage du standard SNMPv3 en plusieurs documents.

Les modules de transport
(UDP, IPX, autres)
Le protocole SNMP n’est ni lié à un protocole réseau et ni à un mode de transport particulier, même si en pratique il est plus que souvent utilisé sur le protocole UDP [RFC 768]. Pour permettre l’indépendance du moyen de transport, le module gérant cet aspect est externe au moteur SNMP. Il est possible d’en placer plusieurs qui fonctionnent simultanément. On pourrait avoir par exemple, un module de transport UDP, un AppleTalk ou un RS-232.

Les modules de traitement
(MPv1, MPv3, MPng)
Un module de traitement est requis pour faire le décodage des paquets SNMP qui arrivent du réseau et l’encodage de ceux qui s’apprêtent à partir sur le réseau. Pour garder SNMP flexible, et permettre les changements futurs, chaque paquet SNMP est marqué d’un numéro de version (voir la description d'une trame). Ce numéro de version permet à un moteur SNMP de déterminer à quel module de traitement ce message est destiné. Normalement, chaque module de traitement prend en charge une version de SNMP. Ce module a aussi la tâche d’imposer le respect d’un standard SNMP, pour la version qui le concerne. Le module de traitement est modulaire, ceci permet l’adaptation aux prochaines versions de SNMP. Un ajout d’un nouveau module de traitement pourrait permettre au moteur SNMP de comprendre des messages SNMPng (Snmp Next Generation). Ceci permet l’évolution du protocole sans entraîner les coûts de reconstruction complète du moteur. Un des grands avantages est qu’il est possible de faire fonctionner plusieurs modules de traitements simultanément. Il est donc possible pour un moteur SNMP de traiter des messages SNMPv1, SNMPv3, SNMPng tous en même temps.

Le système de sécurité
Certains environnements requièrent des interactions sécuritaires. La sécurité est normalement appliquée en deux étapes: dans la transmission et la réception du message et dans le traitement du contenu du message. Trois fonctions sont généralement communes à tous les modules de sécurité: l’authentification, l’encryption et la vérification du temps. Encore une fois, plusieurs modules de sécurité peuvent être actifs simultanément dans un moteur SNMP.

Les applications
Les applications sont des processus qui interagissent avec le moteur SNMP en utilisant des messages qui peuvent être définis dans le protocole, ou des messages décrits par une mise en œuvre spécifique du moteur. Les applications sont développées pour effectuer des opérations de gestion spécifiques. Les objectifs peuvent être fort variés d’une application à l’autre. Toutefois, toutes les applications utilisent en commun le même moteur SNMP pour effectuer les opérations de gestion. Par exemple, une application de gestion pourrait contrôler des éléments de gestion. Un proxy pourrait effectuer le relais de messages entre les médiums différents ou des versions différentes de SNMP.

Le contrôle d’accès
Le module du contrôle d’accès doit décider si une requête est permise et si une réponse peut être envoyée, ou l’ignorer si une personne non autorisée à fait la requête. Chaque application a le choix d’accepter ou de rejeter une requête. Mais si plusieurs applications fonctionnent sur un même agent, il serait avantageux de centraliser le contrôle d’accès. Le standard SNMPv3 place donc un module de contrôle d’accès qui peut être interrogé par les applications. On peut donc faire une seule configuration des droits des accès. Ce module peut autoriser une requête sur les critères de qui l’a demandé, quel type de requête et quelle information est touchée par la requête. On doit noter qu’à ce stade, l’authentification de l’entité (usager ou application) qui a effectué la requête a déjà été faite. Par conséquent, ce module n’a
donc pas à s’en préoccuper.