Manuel de l'administrateur | Table des matières |
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.
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.
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.
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.
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 |
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.
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.
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
Example of an SNMP object sysname in the mib tree
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.
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.
Query on 10.33.10.121 agent for ifentry table
Exeample d'objet snmp de type Counter dans l'assistant de LoriotPro.
snmp counter object
Example of snmp object of Gauge type from the LoriotPro Wizard
snmp gauge
Example of snmp object of IP address entry type from the LoriotPro Wizard
snmp IpAddress
Example of snmp object of TimeTicks type from the LoriotPro Wizard
snmp timeticks
www.loriotpro.com |
|