Les commutateurs HPE comware embarquent les fonctionnalités SNMP Trap, par exemple: trap pour le seuil du processeur, vlancreate, vlandelete, tranceiver, tty, etc. Mais on ne trouve pas des traps SNMP pour tous les éléments.
Pour afficher les interruptions disponibles que l'on peut activer, exécuter dans la vue système la commande:
snmp-agent trap enable?
Pour afficher les objets disponibles dans la MIB du commutatuer utilliser la commande:
show snmp-agent mib-node | include CidrRouteProto
|-*ipCidrRouteProto<1.3.6.1.2.1.4.24.4.1.7>(RO)
|-*inetCidrRouteProto<1.3.6.1.2.1.4.24.7.1.9>(RO)
Si la trap n'est pas disponible dans la configuration, cette section présente comment activer d'autres fonctionnalités de trap qui ne sont pas disponibles sur le commutateur basé sur comware.
Trigger permet de programmer une interruption lorsqu'un événement ce produit sur un objet surveillé. L'objet peut être n'importe lequel des objets des MIBs SNMP du commutateur, mais l'interruprion envoyée doit être une event-notification ( cf le guide Comware V7 Platform Notification Message)
Pour configurer SNMPv3 sur un périphérique basé sur Comware, il faut activer SNMPv3:
[Sysname] snmp-agent sys-info version v3 [Sysname] undo snmp-agent sys-info version v1 v2c [Sysname] dis snmp-agent sys-info version SNMP version running in the system: SNMPv3
La prochaine étape consiste à créer un groupe. Le groupe est utilisé pour autoriser l'accès à certains MIB et/ou OID SNMP. On utilise la vue par défaut ViewDefault1), mais on peut également définir un groupe avec des vues personnalisées.
Pour créer une vue personnalisée procéder ainsi:
[Sysname] snmp-agent mib-view included TestView iso
[Sysname] snmp-agent group v3 g3 read-view TestView write-view TestView notify-view TestView
Pour créer le groupe, utiliser cette commande:
[Sysname] snmp-agent group v3 {group-name} read-view ViewDefault
Cela créera le groupe «{group-name}» qui utilise la vue «ViewDefault» pour «read-view». Cela permettra d'accéder à tous les MIB et OID.
L'étape suivante consiste à créer l'utilisateur SNMPv3:
[Sysname] snmp-agent usm-user v3 {owner-name} {group-name}
Pour créer un utilisateur en utilisant «sha» pour l'authentification avec le mot de passe «imc» et la clé de cryptage «imc» il faut utiliser cette commande:
snmp-agent usm-user v3 imc snmpv3 authentication-mode sha imcimc privacy-mode aes128 imcimc
Ou pour Comware 7, il faut utiliser cette commande:
snmp-agent usm-user v3 imc snmpv3 simple authentication-mode sha imcimc privacy-mode aes128 imcimc
On peut définir certaines informations système pour reconnaître le périphérique en conséquence dans le système de gestion de réseau:
[Sysname] snmp-agent sys-info contact {nom-du-contact}
[Sysname] snmp-agent sys-info location {nom-de-leu}
Afin d'avoir un contexte permettant à plusieurs versions des mêmes objets MIB d'être mises à disposition par un seul moteur SNMPv3, comme si on disposait de plusieurs agents s'exécutant sur la même adresse IP et le même port, paramétrer le context SNMP:
[Sysname] snmp-agent context {context-name}
Configurer le commutateur pour utiliser le nom d'utilisateur {owner-name} pour envoyer des notifications SNMPv3 au NMS à xx.xx.xxx.xxx
[Sysname] snmp-agent target-host trap address udp-domain xx.xx.xxx.xxx params securityname {owner-name} v3
[Sysname] snmp-agent trap enable event-mib
L'échantillonnage définit dans la RFC 3176, fournit les mécanismes suivants:
- Échantillonnage de flux - Obtient des informations sur les paquets. Lorsque l'échantillonnage de flux est activé sur une interface, le commutateur échantillonne les paquets reçus sur l'interface à la fréquence d'échantillonnage définie et envoie les informations au CPU.
- Échantillonnage de compteur - Obtient des informations de compteur d'interface. Lorsque l'échantillonnage de compteur est activé, le commutateur interroge la MIB pour obtenir les informations à l'intervalle d'échantillonnage du compteur défini à l'aide de la commande sflow counter interval dans la vue d'interface).
Les informations échantillonnées sont encapsulées dans des paquets et enregistrées dans le tampon de paquets. Lorsque la mémoire tampon est pleine ou que le temporisateur de vieillissement (fixé à 1 seconde) expire, le système envoie les paquets au collecteur.
Pour une meilleure scalabilité du système et afin d'éviter de perdre des traps il convient de configurer:
Définir l'intervalle d'échantillonnage minimum de la MIB d'événement:
[Sysname] snmp mib event sample minimum 50
Définir le nombre maximal d'instances d'objet pouvant être échantillonnées simultanément
[Sysname] snmp mib event sample instance maximum 100
Il est important de bien calibrer ce seuil car un nombre trop petit, risque de faire des trous dans l'échantillonage. Ainsi pour l'exemple ci-dessous le seuil de 100 est mal adapté, comme on peut le constater en faisant un display snmp mib event summary:
TriggerFailures : 34483
EventFailures : 0
SampleMinimum : 50
SampleInstanceMaximum : 100
SampleInstance : 0
SampleInstancesHigh : 100
SampleInstanceLacks : 34483
Les compteurs TriggerFailures et SampleInstanceLacks indiquent une déperdition de l'échantillonage.
Son regarde le contenu de la MIB surveillée on constate que celle ci comporte plus d'objets que le seuil spécifé:
snmpwalk -v 1 xx.xx.xxx.xxx -c lanread .1.3.6.1.2.1.4.24.7.1.7| wc -l
101
Il faut donc adapter le nombre maximal d'instances d'objet pouvant être échantillonnées simultanément.
Spécifier son propriétaire comme propriétaire 1 et son nom comme déclencheurs.
[Sysname] snmp mib event trigger owner {owner-name} name {trigger-name}
Régler l'intervalle d'échantillonnage sur 60 secondes. Assurez-vous que l'intervalle d'échantillonnage est supérieur ou égal à l'intervalle d'échantillonnage minimum de la MIB d'événement.
[Sysname-trigger-{owner-name}-{trigger-name}] frequency 60
Spécifier l'objet inetCidrRouteProto OID 1.3.6.1.2.1.4.24.7.1.9 comme objet surveillé. Activer la recherche par caractères génériques pour les OID.
[Sysname-trigger-{owner-name}-{trigger-name}] oid 1.3.6.1.2.1.4.24.7.1.9
[Sysname-trigger-{owner-name}-{trigger-name}] wildcard oid
Configurer le contexte {context-name} pour l'objet surveillé et activer la recherche par caractères génériques pour les contextes.
[Sysname-trigger-{owner-name}-{trigger-name}] context {context-name}
[Sysname-trigger-{owner-name}-{trigger-name}] wildcard context
On peutspécifier une liste d'objets MIB d'événements à l'aide de la commande object list owner dans la vue de trigger, la vue trigger-test et la vue de action-notification. Les objets de la liste seront ajoutés aux notifications déclenchées.
Si on spécifie une liste d'objets respectivement dans deux des vues ou dans les trois vues, les listes d'objets sont ajoutées à la notification déclenchée dans cette séquence: vue trigger, la vue trigger-test et la vue de action-notification.
Pour configurer une liste d'objets:
[Sysname] snmp mib event object list owner {owner-name} name {object-name} oid {object-identifier} [wildcard]
Le TRAP est notifié dans un vecteur d'un event-notification, le NMS recevra un TRAP de cet event (OID de l'event-notification et non pas de l'objet surveillé).
Par défaut les commuateurs COMWARE utilisent un event-notification de la MIB DISMAN-EVENT-MIB (rfc2981m: Module MIB pour définir les déclencheurs d'événements et les actions à des fins de gestion de réseau.)
Le propriétaire doit être un utilisateur SNMPv3.)
[Sysname] snmp mib event owner {owner-name} name {event-name}[Sysname-event-{owner-name}-{event-name}] description {text}[Sysname-event-{owner-name}-{event-name}] action [notification|set][Sysname-event-{owner-name}-{event-name}] event enableLorsqu'une action set est activée, une entrée set est créée automatiquement. Tous les champs de l'entrée ont des valeurs par défaut.
[Sysname] snmp mib event owner {owner-name} name {event-name}[Sysname-event-{owner-name}-{event-name}] action set[Sysname-event-{owner-name}-{event-name}-set] oid {object-identifier}[Sysname-event-{owner-name}-{event-name}-set] wildcard oid[Sysname-event-{owner-name}-{event-name}-set] value {integer-value}context {context-name}wildcard contextLorsqu'une action de notification est activée, une entrée de notification est créée automatiquement. Tous les champs de l'entrée ont des valeurs par défaut.
[Sysname] snmp mib event owner {owner-name} name {event-name}[Sysname-event-{owner-name}-{event-name}] action notification[Sysname-event-{owner-name}-{event-name}-notification] oid {object-identifier}[Sysname-event-{owner-name}-{event-name}-notification] object list owner {owner-name} name {object-name}Il existe trois types de tests
Sppécifie un test de déclenchement booléen. Ce test compare la valeur de l'objet surveillé avec la valeur de référence:
[Sysname] snmp mib event object list owner {owner-name} name {object-name} 1 oid 1.3.6.1.2.1.4.24.7.1.9[Sysname] snmp mib event trigger owner {owner-name} name {trigger-name}[Sysname-trigger-{owner-name}-{trigger-name}] object list owner {owner-name} name {object-name}[Sysname-trigger-{owner-name}-{trigger-name}] test boolean[Sysname-trigger-{owner-name}-{trigger-name}-boolean] comparison {equal|greater|greaterorequal|less |lessorequal|unequal}[Sysname-trigger-{owner-name}-{trigger-name}-boolean] value {integer-value} (La valeur de référence par défaut pour un test de déclenchement booléen est 0)[Sysname-trigger-{owner-name}-{trigger-name}-boolean] event owner {event-owner} name {event-name}startup enable[Sysname-trigger-{owner-name}-{trigger-name}] trigger enableSpécifie un test de déclenchement d'existence. Ce test surveille l'absence, la présence et le changement de l'objet surveillé:
[Sysname] snmp mib event object list owner {owner-name} name {object-name} 1 oid 1.3.6.1.2.1.4.24.7.1.9[Sysname] snmp mib event trigger owner {owner-name} name {trigger-name}[Sysname-trigger-{owner-name}-{trigger-name}] object list owner {owner-name} name {object-name}[Sysname-trigger-{owner-name}-{trigger-name}] test existence[Sysname-trigger-{owner-name}-{trigger-name}-existence] event owner {event-owner} name {event-name}[Sysname-trigger-{owner-name}-{trigger-name}-existence] type {absent|changed|present}startup {absent|present}[Sysname-trigger-{owner-name}-{trigger-name}] trigger enableSpécifie un test de seuil. Ce test compare la valeur de l'objet surveillé aux seuils spécifiés, tels que le seuil croissant et le seuil décroissant.
[Sysname] snmp mib event object list owner {owner-name} name {object-name} 1 oid 1.3.6.1.2.1.4.24.7.1.9[Sysname] snmp mib event trigger owner {owner-name} name {trigger-name}[Sysname-trigger-{owner-name}-{trigger-name}] object list owner {owner-name} name {object-name}[Sysname-trigger-{owner-name}-{trigger-name}] test threshold[Sysname-trigger-{owner-name}-{trigger-name}-threshold] rising value 80[Sysname-trigger-{owner-name}-{trigger-name}-threshold] falling value 10startup {falling|rising|rising-or-falling}[Sysname-trigger-{owner-name}-{trigger-name}] trigger enableAfficher la configuration et les statistiques de la MIB d'événement.
[Sysname] display snmp mib event summary
Afficher les informations sur le déclencheur.
[Sysname] display snmp mib event trigger owner {owner-name} name {trigger-name}
Les familles de commutateurs HP bénéficient d'une conformité totale avec la RFC 4292 qui définit une partie de la base d'informations de gestion (MIB) à utiliser dans la gestion des objets liés à la transmission de paquets de protocole Internet (IP) d'une manière indépendante de la version IP. L'implémentation de l'objet ipCidrRouteTable permet d'accèder directement à la table de routage pour récupérer toutes les routes Static et Dynamic.
<Sf034_A5500_013SNS1>show snmp-agent mib-node | include ipCidrRoute
|-*ipCidrRouteNumber<1.3.6.1.2.1.4.24.3>(RO)
|-ipCidrRouteTable<1.3.6.1.2.1.4.24.4>(NA)
|-ipCidrRouteEntry<1.3.6.1.2.1.4.24.4.1>(NA)
|-*ipCidrRouteDest<1.3.6.1.2.1.4.24.4.1.1>(RO)
|-*ipCidrRouteMask<1.3.6.1.2.1.4.24.4.1.2>(RO)
|-*ipCidrRouteTos<1.3.6.1.2.1.4.24.4.1.3>(RO)
|-*ipCidrRouteNextHop<1.3.6.1.2.1.4.24.4.1.4>(RO)
|-*ipCidrRouteIfIndex<1.3.6.1.2.1.4.24.4.1.5>(RC)
|-*ipCidrRouteType<1.3.6.1.2.1.4.24.4.1.6>(RC)
|-*ipCidrRouteProto<1.3.6.1.2.1.4.24.4.1.7>(RO)
|-*ipCidrRouteAge<1.3.6.1.2.1.4.24.4.1.8>(RO)
|-*ipCidrRouteInfo<1.3.6.1.2.1.4.24.4.1.9>(RC)
|-*ipCidrRouteNextHopAS<1.3.6.1.2.1.4.24.4.1.10>(RC)
|-*ipCidrRouteMetric1<1.3.6.1.2.1.4.24.4.1.11>(RC)
|-*ipCidrRouteMetric2<1.3.6.1.2.1.4.24.4.1.12>(RC)
|-*ipCidrRouteMetric3<1.3.6.1.2.1.4.24.4.1.13>(RC)
|-*ipCidrRouteMetric4<1.3.6.1.2.1.4.24.4.1.14>(RC)
|-*ipCidrRouteMetric5<1.3.6.1.2.1.4.24.4.1.15>(RC)
|-*ipCidrRouteStatus<1.3.6.1.2.1.4.24.4.1.16>(RC)
Afin d'être notifié chaque fois qu'une route est ajoutée ou modifiée dans la configuration du commutateur Sf034_A5500_013SNS1 on va mettre en place un interrupteur avec un test exist sur l'OID ipCidrRouteDest<1.3.6.1.2.1.4.24.4.1.1>:
# Créer le groupe SNMPv3 g145 et ajouter l'utilisateur SNMPv3 o145 à g145. snmp-agent usm-user v3 o145 g145 snmp-agent group v3 g145 read-view v145 write-view v145 notify-view v145 snmp-agent mib-view included v145 iso # Configurer le contexte c145 pour l'agent. snmp-agent context c145 # Activer les notifications SNMP pour le module Event MIB. Spécifier le NMS xx.xx.xxx.xxx comme hôte cible pour les notifications. snmp-agent trap enable event-mib snmp-agent target-host trap address udp-domain xx.xx.xxx.xxx params securityname o145 v3 # Régler l'intervalle d'échantillonnage minimum de la MIB d'événement à 50 secondes. snmp mib event sample minimum 50 # Définisser le nombre maximal sur 200 pour les instances d'objet pouvant être échantillonnées simultanément. snmp mib event sample instance maximum 200 # Créer un déclencheur et entrer dans sa vue. Spécifier son propriétaire o145 et son nom t145. snmp mib event trigger owner o145 name t145 # Régler l'intervalle d'échantillonnage sur 60 secondes, il doit être supérieur ou égal à l'intervalle d'échantillonnage minimum. frequency 60 # Spécifier l'OID d'objet 1.3.6.1.2.1.4.24.4.1.1 comme objet surveillé. Activer le caractère générique OID. oid 1.3.6.1.2.1.4.24.4.1.1 wildcard oid # Configurer le contexte c145 pour l'objet surveillé et activer le caractère générique contexte. context c145 wildcard context # Spécifier le test d'existence pour le déclencheur. test existence quit # Activer le déclencheur d'échantillonnage. trigger enable quit