Manuel de l'administrateur Table des matières LinkedIn social network LinkedIn social network LinkedIn social network LinkedIn social network Share on social media

Objets SNMP

Index des objets SNMP

L'accès par un manager SNMP à un objet d'un agent SNMP doit toujours préciser un numéro d'index. Un index à valeur 0 permet d'accéder à un objet non indexé.

Par contre tous les objets situés dans des tables d'objets SNMP possède un index distinct.

L'exemple ci-dessous présente l'arbre des objets de MIB de LoriotPro et deux objets, ifnumber un objet dont l'index sera toujours 0 et ifdescr objet indexé dont les valeurs d'index pourront varier d'un agent snmp à l'autre.

indexed snmp object

Lors de l’utilisation d’équipements ayant plusieurs fois le même type d’élément interne, plusieurs cartes réseaux par exemple, il faut alors spécifier le numéro de la carte pour obtenir des informations relatives à celles-ci. Cette sélection est faite par le numéro d’index. Typiquement, tous les routeurs ou  châssis nécessitent l'utilisation d'index pour pouvoir sélectionner une carte puis un port de la carte.

Exemple : l'objet dont l'OID (Object IDentifier) est affiché ci-dessous, est utilisé pour obtenir le nombre octets transmis sur le port 1 de la carte fille 2 sur la carte 2 du commutateur Ethernet.

snmp index

Les index peuvent avoir des valeurs modifiées à chaque requête. C'est le cas par exemple de la table des processus de la HOTS RESSOURCE MIB qui utilise le PID du process comme index.

process snmp index

snmp v1 trap et snmp v2 notification

Les équipements réseaux et systèmes équipés d'agent SNMP peuvent être configurés pour émettre des alarmes SNMP vers le gestionnaire de Traps intégré au manager snmp LoriotPro.  LoriotPro gère les Traps de type SNMP V1 et les notifications ou Informs SNMP V2C et V3 (restreint). LoriotPro assure la translation entre les Traps standards et les notifications V2c ou V3 associées.

Par défaut, un manager SNMP, LoriotPro en l'occurence, reçoit tous les Traps sur le port UDP standard 162.

LoriotPro analyse les différents types de Traps reçus  et affiche les résultats de l’analyse dans la fenêtre de gestion des Traps. Le fichier trapfilters.txt de LoriotPro permet à l’administrateur de filtrer le résultat de l’analyse pour générer ou pas un événement (local ou distant) associé aux Traps reçus. Il est possible de réaliser une action, au moyen de filtre au moment de la réception d’un événement de type Trap.

trap snmp

SNMP notifications can be sent as traps (SNMP V1) or inform requests (SNMP V2c). Traps are unreliable because the receiver does not send any acknowledgment when it receives a trap. The sender cannot determine if the trap was received. However, an SNMP manager that receives an inform request acknowledges the message with an SNMP response PDU. If the manager does not receive an inform request, it does not send a response. If the sender never receives a response, the inform request can be sent again. Thus, informs are more likely to reach their intended destination.

Because they are more reliable, informs consume more resources in the SNMP device and in the network. Unlike a trap, which is discarded as soon as it is sent, an inform request must be held in memory until a response is received or the request times out. Also, traps are sent only once, while an Inform may be retried several times. The retries increase traffic and contribute to a higher overhead on the network. Thus, snmp trap and snmp nform requests provide a trade-off between reliability and resources. If it is important that the SNMP manager receives every notification, use Inform requests. On the other hand, if you are concerned about traffic on your network or memory in the router and you do not need to receive every notification, use traps.

Les TRAP SNMP V1sont définis dans le RFC 1157, avec les champs suivants:

Enterprise Identifi le type de l'objet managé générateur du TRAP snmp v1. Le champ Enterprise contient l'objet snmp sysObjectID de l'équipement à l'origine de ce TRAP. For vendor specific snmp v1 traps, Generic snmp v1 trap type field is set to enterpriseSpecific(6).
Agent address Adresse IP de l'agent à l'origine du TRAP en SNMP version 1.
Generic trap type Type de trap generique en SNMP version 1, voir tableau ci-après
Specific trap code Numéro spécifique d'un trap de type enterprise.
Time stamp Temps écoulé depuis le dernière redémmarage de l'agent snmp et l'envoi de ce TRAP
Variable bindings Variable liée contenant une référence à un objet SNMP OID et une valeur pour cet objet

Les TRAP SNMP V1 génériques sont :

0 coldStart L'agent snmp a été lancé
1 warmStart L'agent SNMP a été relancé
2 linkDown Une interface réseau est déconnecté
3 linkUp Une interface réseau est connecté
4 authenticationFailure Tentative d'accès à un agent SNMP avec des communautés snmp incorrectes
5 egpNeighborLoss Une passerelle de routage EGP a perdu la connexion avec un routeur voisin
6 enterprise specific Trap spécifiques ouverte aux entreprises

EN SNMP version 2c les Trap sont remplacés par des NOTIFICATION et formatés differemment comparé à SNMPv1.

sysUpTime Comme le Time stamp en SNMP v1 trap
snmpTrapOID Défini dans le RFC 1907, for vendor specific traps snmpTrapOID is essentially a concatenation of the SNMPv1 Enterprise parameter and two additional sub-identifiers, '0', and the SNMPv1 Specific trap code parameter.
VarBindList Variable liée contenant une référence à un objet SNMP OID et une valeur pour cet objet

 

Securité et communautés SNMP

La sécurité est importante en management de réseaux car l’accès aux équipements doit être restreint au seul administrateur.

A cette fin, SNMP définit la notion de communauté ou Community. Une communauté représente un groupe d’équipements ayant le même administrateur.

Communautés SNMP

Il existe trois Communautés en SNMP V1 et V2c:


Un manager doit connaître les communautés d'un équipement pour lire et/ou écrire les objets SNMP de cet équipement.

Dans un message SNMP, la communauté SNMP fonctionne comme un mot de passe, le message est authentifié dans la mesure où l'émetteur connaît le mot de passe. La communauté n’étant pas cryptée dans les paquets SNMP parcourant le réseau, un nombre important de failles de sécurité basées sur l’usurpation d’adresse et de communauté, est possible. Le mécanisme de communauté du protocole SNMP dans ses versions 1 et 2c en fait un protocole mal sécurisé. Pour faire face à cette problématique, diverses études ont été entreprises pour finalement aboutir à la version trois du protocole qui permet plusieurs modes de sécurisation basés sur une authentification forte et un possible chiffrement des informations contenues dans le paquet. La version 3 du protocole permet l’utilisation d’un profil utilisateur associé à un mot de passe.

LoriotPro supporte SNMP version 1 et 2c en utilisant des communautés et une partie des spécifications d’authentification de SNMP version 3.

Le logiciel LoriotPro supporte l’authentification avec profil nommé et mot de passe utilisant  les algorithmes HMAC-MD5-96.

Structureof Management Information

Le SMI ou Structure  of Management Information spécifie un ensemble de règles sur les noms des objets et la structure de stockage de ces objets. L’ensemble des objets est organisé dans une structure d’arbre hiérarchique.   La RFC 1155 définit les règles de la version 1 appliquées à la création de cette structure.  Il existe actuellement une version 2 du SMI et vous pouvez trouver des fichiers de MIB utilisant la syntaxe SMI V1 ou SMI V2. LoriotPro compile les deux versions de SMI.

La figure ci-dessous montre la structure de la partie racine de cette arborescence.


Tree structure of SNMP objects

Chaque objet est identifié par son OID (OBJECT IDENTIFIER). L’OID se décline sous deux formes, la représentation nominale et la représentation numérique. L’OID permet de positionner de manière très rapide un  objet dans l’arbre global des MIBs et est utilisé pour la construction des paquets de requête  émis sur le réseau entre le manager et l’agent.

Exemple

Nominal

iso.org.dod.internet.mgmt.mib-2.ip.ipInReceives

Numeric

1.3.6.1.2.1.4.3

Le SMI utilise la notation ASN.1 pour construire la définition de l’arbre. L’exemple suivant montre la définition de la structure pour SMI V1.

-- RFC1155 MIB
RFC1155-SMI DEFINITIONS ::= BEGIN
-- the path to the root
org OBJECT IDENTIFIER ::= { iso 3 }
dod OBJECT IDENTIFIER ::= { org 6 }
internet OBJECT IDENTIFIER ::= { dod 1 }
directory OBJECT IDENTIFIER ::= { internet 1 }
mgmt OBJECT IDENTIFIER ::= { internet 2 }
experimental OBJECT IDENTIFIER ::= { internet 3 }
private OBJECT IDENTIFIER ::= { internet 4 }
enterprises OBJECT IDENTIFIER ::= { private1 }
mib-2 OBJECT IDENTIFIER ::= { mgmt 1 }
END

La norme SMI V2 apporte plusieurs modifications dans la logique d’écriture des fichiers de MIB, et la structure de l’arbre a été modifiée, la RFC 1902 précise ces modifications.

-- RFC 1902
SNMPv2-SMI DEFINITIONS ::= BEGIN
-- the path to the root
org OBJECT IDENTIFIER ::= { iso 3 }
dod OBJECT IDENTIFIER ::= { org 6 }
internet OBJECT IDENTIFIER ::= { dod 1 }
directory OBJECT IDENTIFIER ::= { internet 1 }
mgmt OBJECT IDENTIFIER ::= { internet 2 }
mib-2 OBJECT IDENTIFIER ::= { mgmt 1 }
transmission OBJECT IDENTIFIER ::= { mib-2 10 }
experimentalOBJECT IDENTIFIER ::= { internet 3 }
private OBJECT IDENTIFIER ::= { internet 4 }
enterprises OBJECT IDENTIFIER ::= { private 1 }
security OBJECT IDENTIFIER ::= { internet 5 }
snmpV2 OBJECT IDENTIFIER ::= { internet 6 }
-- transport domains
snmpDomains OBJECT IDENTIFIER ::= { snmpV2 1 }
-- transport proxies
snmpProxysOBJECT IDENTIFIER ::= { snmpV2 2 }
-- module identities
snmpModules OBJECT IDENTIFIER ::= { snmpV2 3 }
-- definitions for information modules
END

Le point de départ de l’arbre est l’objet iso suivi de l’objet org. La figure suivante visualise cette structuration des objets de l’agent sous la forme d’un arbre. Chaque nom d’objet dans l’arbre est associé à un numéro, ce qui permet de référencer un objet dans l’arbre en donnant la suite des numéros partant de l’objet iso jusqu‘à l’objet lui-même. Cette notation est appelée l’OID de l’objet.

Exemple : OID de l’objet sysname

 iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1).sysname(5).0
ou plus simplement : 1.3.6.1.2.1.1.5.0

mib tree to sysname
Example of an SNMP object sysname in the mib tree

Types d'objet SNMP

Les objets SNMP avoir plusieur types différents.

Scalar. Le scalaire permet de manipuler des valeurs sans structure particulière.

Table. L'objet snmp Table permet de travailler sur des objets nécessitant des index (table d'interface réseau, table des processus, tablde des connexion TCP etc..

Les autres types d'objet sont aussi disponibles:

Counter: Entier non-negatif qui s'incrémente pour atteindre une valeur maximale (32 bits ou 64 bits avec le type counter64). Le compteur est remis à zero quand il atteind son maximum.

Gauge: Entier non-negatif qui peut osciller entre 0 et son maximum (32 bits)

IpAddress: Une adresse IP sur 32 bits en format dotted de type octet (Exemple: F1:01:45:56)

NetworkAddress: Utilisé pour les adresses réseau de la couche MAC Medium Access Control

Opaque: Utilisé pour encapsuler des données non-formatées

TimeTicks: Un entier non-negatif pour la sauvegarde du temps écoulé en 100th de seconds.

Syntaxe supportée par LoriotPro

Loriot Pro supporte les deux types de notation avec une restriction pour la notation nominale. Pour la notation nominale le logiciel supporte uniquement des noms uniques avec le cas échéant une suite numérique séparée par des points.
 
Il arrive que des noms d’OID soient dupliqués dans des MIBs propriétaires, dans ce cas il faut différencier l’origine de l’OID.  LoriotPro intègre une notation comportant en première position le nom de définition de la MIB d’origine suivit du signe : et du nom de l’OID.

Exemples

Syntaxes

supportée

Org.1.2.1.1.0

 

Oui

ipinreceives

Oui

Rfc1213-mib:ipinreceives

oui

Org.dod.2.1.4.1

Non

Org.1.dod.1.4

Non

 

Exemples d'objets

Exemple d'objet de type table:

sysDescr 

Describe the model and the mark of the equipment.

IfEntry

This object contains a synthesis table of equipment’s network interfaces.

ipRouteTable

This object contains the IP routing table of the host.

The following text is an extract of the MIB file and describes the table object AtEntry :

AtEntry ::=
SEQUENCE {
atIfIndex
INTEGER,
atPhysAddress
PhysAddress,
atNetAddress
NetworkAddress
}

Exemple de scaliare :

L’outil Advanced Query de LoriotPro nous permet d’interroger l’objet sysDescr  de l’agent 10.33.10.121, sa valeur courante est affichée dans l’écran Result. Cette variable est de type chaîne de caractères (string).


Query on 10.33.10.121 agent for its sysdescr objet

Exemple : la table ifEntry

L’objet ifentry représenté ici sous la forme d’une table contient un ensemble d’objets de type scalaire.

mib table
Query on 10.33.10.121 agent for ifentry table

Exeample d'objet snmp de type Counter dans l'assistant de LoriotPro.

snmp counter mib object
snmp counter object

Example of snmp object of Gauge type from the LoriotPro Wizard

snmp gauge mib definition
snmp gauge

Example of snmp object of IP address entry type from the LoriotPro Wizard

snmp paddress mib object type
snmp IpAddress

Example of snmp object of TimeTicks type from the LoriotPro Wizard

snmp timeticks

snmp timeticks


www.loriotpro.com