4. Structure des modules MIB
Ce document définit trois modules MIB pour prendre en charge les applications SNMP : SNMP-TARGET-MIB, SNMP-NOTIFICATION-MIB et SNMP-PROXY-MIB.
4.1. Structure de SNMP-TARGET-MIB
Le module SNMP-TARGET-MIB définit des objets pour l'identification et la configuration des cibles de gestion SNMP. Une cible de gestion est une combinaison d'informations de destination de transport et de paramètres SNMP qui identifie une seule entité SNMP.
4.1.1. Table des adresses des cibles
La table snmpTargetAddrTable contient des informations sur les adresses de transport des cibles de gestion.
Objets clés de snmpTargetAddrTable :
-
snmpTargetAddrTDomain : Identifie le domaine de transport (par exemple, UDP sur IPv4, UDP sur IPv6, TCP, etc.).
-
snmpTargetAddrTAddress : Adresse de transport dans le format spécifique au domaine de transport. Pour UDP sur IPv4, il s'agit d'une combinaison de 6 octets d'adresse IP et de port.
-
snmpTargetAddrTimeout : Valeur de délai d'attente en centisecondes pour cette cible. Utilisé lors de l'envoi de messages nécessitant une réponse (comme les requêtes inform).
-
snmpTargetAddrRetryCount : Nombre de nouvelles tentatives à effectuer avant d'abandonner.
-
snmpTargetAddrTagList : Liste d'étiquettes séparées par des espaces permettant de regrouper des cibles pour des applications de notification et de proxy.
-
snmpTargetAddrParams : Pointeur vers une entrée dans snmpTargetParamsTable qui contient les paramètres de message SNMP pour cette cible.
-
snmpTargetAddrStorageType : Type de stockage pour cette ligne (volatile, nonVolatile, permanent, readOnly, other).
-
snmpTargetAddrRowStatus : Contrôle la création et la suppression de lignes dans cette table (active, notInService, notReady, createAndGo, createAndWait, destroy).
4.1.2. Table des paramètres des cibles
La table snmpTargetParamsTable contient des informations sur les paramètres de message SNMP à utiliser lors de la génération de messages vers des cibles de gestion.
Objets clés de snmpTargetParamsTable :
-
snmpTargetParamsMPModel : Version du modèle de traitement des messages à utiliser (0 = SNMPv1, 1 = SNMPv2c, 3 = SNMPv3).
-
snmpTargetParamsSecurityModel : Modèle de sécurité à utiliser (1 = SNMPv1, 2 = SNMPv2c, 3 = USM).
-
snmpTargetParamsSecurityName : Nom de sécurité à utiliser avec cette cible. Pour SNMPv1/v2c, il s'agit du nom de communauté.
-
snmpTargetParamsSecurityLevel : Niveau de sécurité à utiliser :
- 1 = noAuthNoPriv (pas d'authentification, pas de chiffrement)
- 2 = authNoPriv (authentification, pas de chiffrement)
- 3 = authPriv (authentification et chiffrement)
-
snmpTargetParamsStorageType : Type de stockage pour cette ligne.
-
snmpTargetParamsRowStatus : Contrôle la création et la suppression de lignes.
4.1.3. Statistiques non disponibles
-
snmpUnavailableContexts : Nombre de fois où le contexte cible n'était pas disponible.
-
snmpUnknownContexts : Nombre de fois où le contexte cible était inconnu.
4.2. Structure de SNMP-NOTIFICATION-MIB
Le module SNMP-NOTIFICATION-MIB définit des objets pour la configuration de la génération de notifications SNMP (traps et informs).
4.2.1. Table de notification
La table snmpNotifyTable sélectionne les cibles de gestion qui doivent recevoir des notifications, ainsi que le type de notification à envoyer.
Objets clés de snmpNotifyTable :
-
snmpNotifyTag : Étiquette utilisée pour sélectionner des entrées dans snmpTargetAddrTable. Toutes les entrées dans snmpTargetAddrTable dont snmpTargetAddrTagList contient cette étiquette sont sélectionnées comme destinataires de notification.
-
snmpNotifyType : Type de notification à générer :
- trap(1) : Génère un SNMPv2-Trap-PDU (notification non confirmée)
- inform(2) : Génère un InformRequest-PDU (notification confirmée nécessitant un accusé de réception)
-
snmpNotifyStorageType : Type de stockage pour cette ligne.
-
snmpNotifyRowStatus : Contrôle la création et la suppression de lignes.
4.2.2. Table de filtrage de notification
La table snmpNotifyFilterProfileTable associe des contextes à des profils de filtrage.
Objets clés de snmpNotifyFilterProfileTable :
-
snmpNotifyFilterProfileName : Nom du profil de filtrage à utiliser lors de la génération de notifications dans ce contexte.
-
snmpNotifyFilterProfileStorType : Type de stockage pour cette ligne.
-
snmpNotifyFilterProfileRowStatus : Contrôle la création et la suppression de lignes.
4.2.3. Table de filtrage
La table snmpNotifyFilterTable définit les profils de filtrage qui déterminent quelles liaisons de variables peuvent être incluses dans les notifications.
Objets clés de snmpNotifyFilterTable :
-
snmpNotifyFilterSubtree : Sous-arbre MIB auquel ce filtre s'applique (OID).
-
snmpNotifyFilterMask : Masque de bits appliqué au sous-arbre pour déterminer quels OID correspondent.
-
snmpNotifyFilterType : Type de filtre :
- included(1) : Les objets MIB dans ce sous-arbre doivent être inclus dans les notifications
- excluded(2) : Les objets MIB dans ce sous-arbre doivent être exclus des notifications
-
snmpNotifyFilterStorageType : Type de stockage pour cette ligne.
-
snmpNotifyFilterRowStatus : Contrôle la création et la suppression de lignes.
4.3. Structure de SNMP-PROXY-MIB
Le module SNMP-PROXY-MIB définit des objets pour la configuration du comportement de redirection proxy dans les applications de redirecteur proxy.
4.3.1. Table proxy
La table snmpProxyTable est utilisée pour définir les traductions qu'un redirecteur proxy doit effectuer lors de la redirection de messages.
Objets clés de snmpProxyTable :
-
snmpProxyType : Type de redirection proxy :
- read(1) : Proxy pour les opérations de lecture (Get, GetNext, GetBulk)
- write(2) : Proxy pour les opérations d'écriture (Set)
- trap(3) : Proxy pour les notifications trap
- inform(4) : Proxy pour les notifications inform
-
snmpProxyContextEngineID : ID de moteur de contexte reçu dans le message entrant.
-
snmpProxyContextName : Nom de contexte reçu dans le message entrant.
-
snmpProxyTargetParamsIn : Pointeur vers une entrée dans snmpTargetParamsTable identifiant les paramètres de message SNMP attendus dans les messages entrants.
-
snmpProxyMultipleTargetOut : Étiquette utilisée pour sélectionner des entrées dans snmpTargetAddrTable. Si cette colonne contient une chaîne de longueur non nulle, c'est une configuration de "redirection proxy à destinations multiples".
-
snmpProxySingleTargetOut : Pointeur vers une entrée dans snmpTargetAddrTable identifiant la cible de gestion unique vers laquelle les messages doivent être redirigés. Utilisé uniquement si snmpProxyMultipleTargetOut est une chaîne de longueur nulle.
-
snmpProxyStorageType : Type de stockage pour cette ligne.
-
snmpProxyRowStatus : Contrôle la création et la suppression de lignes.
4.3.2. Modes de redirection proxy
Le SNMP-PROXY-MIB prend en charge deux modes de redirection :
1. Redirection vers une cible unique (Single Target) :
- snmpProxyMultipleTargetOut est une chaîne vide
- snmpProxySingleTargetOut identifie une entrée unique dans snmpTargetAddrTable
- Les messages sont redirigés vers cette cible unique
2. Redirection vers des cibles multiples (Multiple Targets) :
- snmpProxyMultipleTargetOut contient une étiquette
- Toutes les entrées dans snmpTargetAddrTable dont snmpTargetAddrTagList contient cette étiquette sont sélectionnées
- Les messages sont redirigés vers toutes les cibles sélectionnées
- Principalement utilisé pour la redirection de notifications
4.4. Relations entre les modules MIB
Les trois modules MIB fonctionnent ensemble pour fournir une infrastructure complète pour les applications SNMP :
-
SNMP-TARGET-MIB fournit l'infrastructure de base pour définir où envoyer des messages (adresses et paramètres).
-
SNMP-NOTIFICATION-MIB utilise les étiquettes définies dans snmpTargetAddrTable pour sélectionner les cibles de gestion qui doivent recevoir des notifications. Il fournit également des mécanismes de filtrage pour contrôler le contenu des notifications.
-
SNMP-PROXY-MIB utilise les informations de snmpTargetAddrTable et snmpTargetParamsTable pour déterminer comment rediriger les messages entre les entités SNMP.
4.4.1. Flux de travail typique pour la génération de notifications
-
Un événement se produit qui déclenche une notification.
-
L'application d'initiateur de notifications consulte snmpNotifyTable pour déterminer quelles étiquettes doivent être utilisées pour sélectionner les cibles.
-
Pour chaque étiquette trouvée, snmpTargetAddrTable est consultée pour trouver toutes les entrées dont snmpTargetAddrTagList contient cette étiquette.
-
Pour chaque cible sélectionnée, snmpTargetParamsTable est consultée (via snmpTargetAddrParams) pour déterminer les paramètres de message SNMP.
-
Si un filtrage est configuré, snmpNotifyFilterProfileTable et snmpNotifyFilterTable sont consultées pour déterminer quelles liaisons de variables inclure.
-
Une notification est générée et envoyée à chaque cible sélectionnée avec les paramètres et le contenu appropriés.
4.4.2. Flux de travail typique pour la redirection proxy
-
Un message SNMP entrant est reçu par le redirecteur proxy.
-
Le redirecteur proxy extrait les informations clés du message : contextEngineID, contextName, type de PDU, et paramètres de sécurité.
-
Le redirecteur proxy consulte snmpProxyTable pour trouver une entrée correspondante basée sur :
- snmpProxyType (correspondant au type de PDU)
- snmpProxyContextEngineID
- snmpProxyContextName
- snmpProxyTargetParamsIn (correspondant aux paramètres de sécurité entrants)
-
Si snmpProxyMultipleTargetOut n'est pas vide :
- Utilise l'étiquette pour sélectionner plusieurs cibles dans snmpTargetAddrTable
- Redirige le message vers toutes les cibles sélectionnées
-
Sinon, si snmpProxySingleTargetOut n'est pas vide :
- Identifie la cible unique dans snmpTargetAddrTable
- Redirige le message vers cette cible
-
Pour chaque cible, snmpTargetParamsTable est consultée pour déterminer les paramètres de message SNMP sortants.
-
Le message est traduit selon les besoins (conversion de version SNMP, traduction de sécurité) et redirigé vers la ou les cibles.
4.5. Conformité MIB
Chaque module MIB définit des groupes de conformité qui spécifient quels objets doivent être implémentés pour différents niveaux de conformité.
4.5.1. Conformité SNMP-TARGET-MIB
-
snmpTargetBasicGroup : Contient les objets de base nécessaires pour identifier les cibles de gestion. Implémentation obligatoire pour toute application utilisant ce module.
-
snmpTargetResponseGroup : Contient les objets liés aux délais d'attente et aux nouvelles tentatives. Obligatoire uniquement pour les applications qui envoient des messages nécessitant des réponses (comme inform).
4.5.2. Conformité SNMP-NOTIFICATION-MIB
-
snmpNotifyGroup : Contient les objets de base pour la génération de notifications. Obligatoire pour les applications d'initiateur de notifications.
-
snmpNotifyFilterGroup : Contient les objets pour le filtrage de notifications. Facultatif, mais recommandé pour un contrôle fin sur le contenu des notifications.
4.5.3. Conformité SNMP-PROXY-MIB
- snmpProxyGroup : Contient tous les objets nécessaires pour la redirection proxy. Obligatoire pour les applications de redirecteur proxy.
4.6. Considérations de sécurité pour les modules MIB
L'accès aux objets dans ces modules MIB peut affecter significativement le comportement d'une entité SNMP. Par conséquent, des contrôles d'accès appropriés doivent être appliqués :
-
Contrôle en écriture : L'accès en écriture à ces objets doit être strictement limité au personnel administratif autorisé. Une modification non autorisée pourrait :
- Rediriger les notifications vers des destinations non autorisées
- Désactiver la génération de notifications
- Modifier le comportement de redirection proxy pour intercepter ou rediriger le trafic de gestion
-
Contrôle en lecture : Même l'accès en lecture doit être contrôlé, car ces objets peuvent révéler :
- La topologie du réseau de gestion
- Les informations d'identification de sécurité (noms de sécurité)
- Les configurations de surveillance
-
Recommandation VACM : Il est fortement recommandé d'utiliser le modèle de contrôle d'accès basé sur les vues (VACM, défini dans RFC 3415) pour restreindre l'accès à ces objets MIB.
-
Niveau de sécurité : Pour les déploiements SNMPv3, un niveau de sécurité authPriv (authentification et chiffrement) devrait être utilisé lors de l'accès à ces objets MIB pour protéger contre l'écoute clandestine et la modification non autorisée.