Professional Documents
Culture Documents
Nicolas Sayer
Nicolas.Sayer@inria.fr
Nick@loplop.net
1
Plan
1: Introduction;
2: SMI, MIB and OIDs;
3: Commandes SNMP;
4: Exemples d’agents et de requêtes;
5: Plus de SNMP.
2
1: Introduction
3
Définition (général)
4
Définition (SNMP)
5
Grace à SNMP
6
Histoire
7
SNMP versions
8
Protocole SNMP
9
Architecture
Network Managment System Network Managment System
Network
10
Architecture (détail)
Alerte (trap)
eq
uê
te
Réponse
(
ge )
t
Device
SNMP MIB
Agent
11
Agent
12
Le Manager
13
RMON (Remote Monitoring)
14
2: SMI, MIB et OID
15
MIB (généralités)
Il faut voir une MIB comme une base de donnée stockant une liste d’objets et
leurs définitions. Le format de la SMI peut paraître un peu complexe à première
vu, mais il est extrêmement claire et extensible. Ce format n’est pas spécifique
aux MIB de SNMP.
La RFC SNMP spécifie que l’agent, comme le client doivent posséder une copie
de la MIB. Ceci n’est pas entièrement vrai. La majorité des clients étant capable
de faire des requêtes SNMP seront capable de faire une requête en utilisant
uniquement l’identifiant numérique. Cependant l’agent, lui, doit obligatoirement
avoir une table, il serait incapable de savoir quel valeur utiliser et avec quel "type"
la formater.
16
MIB (II)
S’il y a une MIB−II, il existait évidement une MIB−I, mais celle−ci à été
remplacée durant les premiers âges de SNMP.
La MIB−II doit OBLIGATOIREMENT être supporté par tout agent SNMP. Elle
défini des éléments génériques comme la localisation de l’équipement, le nom de
la personne à contacter pour l’administration. Elle défini toute les informations
réseau de base. S’il y a SNMP, il y a au moins une interface réseau sachant
transmettre des informations.
Comme les mondes du réseau et du système sont de plus en plus liés; il existe une
MIB spécifique aux systèmes d’exploitation (Host Resources MIB (RFC2790)).
Celle−ci gère un certains nombres d’objets génériques au différents systèmes
d’exploitation sur le marché:
− Charge CPU ;
− Utilisation des disques ;
− Nombre d’utilisateurs connectés ;
− Table des processus.
Certains agents préfèrent utiliser des MIBs propriétaires pour l’OS, en y ajoutant
chacun leur grain de sel. Il n’y a aucune obligation d’implanter cette MIB (que la
MIB−II est obligatoire).
17
Structure de l’arborescence
SMI
root (.)
org (3)
dod(6)
internet(1)
mib−2(1) enterprises(1)
18
Syntaxe des Object IDentifiers
(OID)
INTEGER: un nombre 32bits. Souvent utilisé pour
donner un état. Par exemple l’état de l’interface d’un
routeur: 1=up, 2=down, 3=testing. 0 n’est
généralement pas utilisé;
OCTET STRING: Une suite de 0 ou + d’octets: (texte,
adresse MAC);
COUNTER: nombre 32bits, ne peut q’être incrémenté,
repasse à zéro quand il dépasse (232−1);
OBJECT IDENTIFIER: un autre objet;
IpAddress;
19
Syntaxe des Object IDentifiers
(OID) (2)
Gauge: nombre de 32bits. Possède une valeur min. et
max. (vitesse d’un port ethernet);
TimeTicks: nombre sur 32bits, mesure le temps en
centièmes de secondes (uptime);
DISPLAY STRING: Chaîne de caractères (max. 255).
Counter64: Comme un compteur 32, sauf qu’il est sur
64bits;
Il en existe beaucoup d’autres... Bon nombres de
nouveaux ont été ajoutés dans la v2 de SMI.
20
Groupes d’arbres définis dans
la MIB−II (RFC1213) (1.3.6.1.2.1)
system: Défini des objets donnant des indications sur
le système: UpTime, Description, Fonction, Contact
system...
interfaces: Donne des informations sur les interfaces
réseau du système: état, trafic, erreurs...
at: Translation d’adresse (legacy);
ip: Information sur la pile IP, en l’occurrence le
routage;
icmp;
tcp: État des connexions TCP (closed, listen,
synSent...);
26/01/2002 − v1.0 Nicolas.Sayer@inria.fr 21
21
Groupes d’arbres définis dans
la MIB−II (RFC1213) (1.3.6.1.2.1)
udp: Statistiques UDP (datagram
envoyés, reçus...);
egp: État de l’EGP (Exterior Gateway
Protocol);
snmp: Informations sur l’état et le
fonctionnement de l’agent SNMP du
système.
22
Les indexes
23
Les indexes (2)
.ifTable.ifEntry.ifDescr.3 = eth3
.ifTable.ifEntry.ifDescr.47 = ge47
24
3: Commandes SNMP
25
Types de commandes
26
GET
GET−RESPONSE, avec
t
la valeur correspondant à
Device l’OID demandé.
SNMP system.sysLocation.0 =
MIB "INRIA Rocquencourt /
Agent Bat 7/25"
27
GET−NEXT
GET−RESPONSE, avec
la valeur correspondant à
Device
l’OID placé APRÈS l’OID
SNMP
Agent
MIB demandé.
system.sysName.0 =
"gw.inria.fr"
C’est le GET−NEXT qui est utilisé pour "Walker" la MIB. L’agent ne conservant
aucun historique des requêtes reçus, il est incapable de savoir ce que le NMS à
demandé plus tôt.
28
SET
getResponse
eq
uê
te
SET gw.inria.fr
(
private
system.sysContact.0 s
"Nicolas"
se )
t
29
TRAP
warmStart, 2−
linkDown, 3−linkUp...
En SNMPv2 et v3, le
30
Les Communautés (SNMPv1)
read−write: private
31
Nouveaux PDU (Protocol Data
Units) v2 et v3
Notification: Standardise les TRAP pour
avoir un format cohérent avec les GET et
SET;
Inform: Mécanisme de communication
NMS à NMS;]
Report (unused): permet aux NMS
d’informer d’autres NMS de problemes
de communication SNMP.
26/01/2002 − v1.0 Nicolas.Sayer@inria.fr 32
32
4: Implantations SNMP
4.1: Des Agents
33
Cisco’s IOS (agent)
34
Net−SNMP SNMPd (Agent)
# Standard
syslocation INRIA/Rocq Bat. 25
syscontact Nicolas Sayer <Nick@loplop.net>
# Propritaire NET−SNMP (NET−SNMP−MIB)
proc snmpd
exec echotest /bin/echo hello world
disk / 10000
disk /dev
disk /usr
disk /u1
load 12 14 14
35
4.2: Exemples de requêtes
(Net−SNMP)
36
snmpget
[nick]$ snmpget xxx.xxx.xxx.xxx public system.sysDescr.0
system.sysDescr.0 = Linux xxxx.inria.fr 2.4.6_1.4_VTHD #1 SMP Mon Jul 16
11:53:55 CEST 2001 i686
[nick]$ snmpget −On xxx.xxx.xxx.xxx public system.sysContact.0
.1.3.6.1.2.1.1.4.0 = "Nicolas Sayer <Nicolas.Sayer@inria.fr >"
[nick]$ snmpget xxx.xxx.xxx.xxx public interfaces.ifNumber.0
interfaces.ifNumber.0 = 2
37
snmpwalk (1) (Net−SNMP)
[nick]$ snmpwalk localhost system
system.sysDescr.0 = Linux xxxxx.inria.fr 2.4.6_1.4_VTHD #1
SMP Mon Jul 16 11:53:55 CEST 2001 i686
system.sysObjectID.0 = OID:
enterprises.ucdavis.ucdSnmpAgent.linux
system.sysUpTime.0 = Timeticks: (201463445) 23 days,
7:37:14.45
system.sysContact.0 = "Nicolas Sayer"
system.sysName.0 = rocq−vthd−demof.inria.fr
system.sysLocation.0 = "Bat 7 VTHD"
system.sysORLastChange.0 = Timeticks: (0) 0:00:00.00
(...)
38
snmpwalk (2) −> Cisco
Cat6.5K
[nick]$ snmpwalk gateway public | less
system.sysDescr.0 = Cisco Internetwork Operating System Software
IOS (tm) MSFC Software (C6MSFC−IS−M), Version 12.0(7)XE1, EARLY DEPLOYMENT RELEASE SOFTWARE
(fc1)
TAC:Home:SW:IOS:Specials for info
Copyright (c) 1986−2000 by cisco Systems, Inc.
Compiled Fri 04−Feb−00 00:
system.sysObjectID.0 = OID: enterprises.9.1.258
system.sysUpTime.0 = Timeticks: (52728446) 6 days, 2:28:04.46
system.sysContact.0 =
system.sysName.0 = xxxx.inria.fr
system.sysLocation.0 = Batiment 0x − Salle Machine
system.sysServices.0 = 6
system.sysORLastChange.0 = Timeticks: (0) 0:00:00.00
interfaces.ifNumber.0 = 7
interfaces.ifTable.ifEntry.ifIndex.2 = 2
interfaces.ifTable.ifEntry.ifIndex.3 = 3
interfaces.ifTable.ifEntry.ifIndex.4 = 4
interfaces.ifTable.ifEntry.ifIndex.5 = 5
interfaces.ifTable.ifEntry.ifIndex.6 = 6
interfaces.ifTable.ifEntry.ifIndex.7 = 7
interfaces.ifTable.ifEntry.ifIndex.8 = 8
interfaces.ifTable.ifEntry.ifDescr.2 = Null0
interfaces.ifTable.ifEntry.ifDescr.3 = Loopback1
interfaces.ifTable.ifEntry.ifDescr.4 = Vlan3
interfaces.ifTable.ifEntry.ifDescr.5 = Vlan4
interfaces.ifTable.ifEntry.ifDescr.6 = Vlan230
interfaces.ifTable.ifEntry.ifDescr.7 = Vlan591
interfaces.ifTable.ifEntry.ifDescr.8 = Vlan592
interfaces.ifTable.ifEntry.ifType.2 = other(1)
interfaces.ifTable.ifEntry.ifType.3 = softwareLoopback(24)
interfaces.ifTable.ifEntry.ifType.4 = ethernetCsmacd(6)
39
5: Plus de SNMP / Biliographie.
40
HP−OV Network Node
Manager http://openview.hp.com
41
MRTG / Cricket
http://people.ee.ethz.ch/~oetiker/webtools/mrtg
http://cricket.sourceforge.net
MRTG et Cricket sont des outils différents. Cependant ils sont basés sur le même
moteur de stockage et de "graphage": Les sublimes RRD Tool !
42
Tk MIB http://net−snmp.sourceforge.net
Tkmib est livré avec Net−SNMP. Il est écrit en Perl/Tk. Il nécessite donc: Perl,
les modules Perl/Tk, et les modules SNMP de Perl (http://www.cpan.org).
43
autres...
44
Bibliographie
45