Le protocole de gestion de réseau
Ce n'est pas très pratique lorsqu'on veut déclencher des alarmes
(par exemple depuis un logiciel de
À ma connaissance, pas de manière standard. Le but de SNMP est de pouvoir tourner sur des machines simples, ayant peu de moyens. Pas question donc de devoir retenir des valeurs compliquées, ou de faire des calculs. Je crois qu'il n'existe rien dans les MIB standards.
Mais ce n'est pas la fin de l'histoire. Tout équipement réseau met
en œuvre des MIB non standards qui offrent en général des tas de
possibilités supplémentaires intéressantes, dans le sous-arbre
ifIn1SecRate OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of bits per second (bps), delivered by
this (sub-)layer to its next higher (sub-)layer."
::= { ifJnxEntry 1 }
Il reste à configurer l'engin pour faire du SNMP. Cela ressemble
à :
snmp {
location "Dans le nuage";
contact "Happy Sysadmin";
v3 {
usm {
local-engine {
user USERNAME {
authentication-md5 {
authentication-key "SECRETDATA";
}
}
}
}
vacm {
security-to-group {
security-model usm {
}
}
}
}
}
}
snmp-community all {
security-name all;
}
}
view all {
oid .1 include;
oid system include;
oid internet include;
}
}
Si vous ne connaissez pas JunOS, notez que, pour obtenir ce résultat,
il a fallu charger ce fichier, ou bien taper dans la console une série
de commandes comme :
set snmp v3 usm local-engine user USERNAME authentication-md5 authentication-password MOTDEPASSESECRET
Testons que cela marche avec
% snmpget -v3 -u USERNAME -a MD5 -A MOTDEPASSESECRET \
-l authNoPriv 198.18.0.2 1.3.6.1.4.1.2636.3.3.1.1.3.513
SNMPv2-SMI::enterprises.2636.3.3.1.1.3.513 = Gauge32: 11965
Deux explications : l'
1.3.6.1.4.1.2636.3.3.1.1.1.ifIndex : in rate bits/s
1.3.6.1.4.1.2636.3.3.1.1.2.ifIndex : in rate bytes/s
1.3.6.1.4.1.2636.3.3.1.1.3.ifIndex : in rate packets/s
1.3.6.1.4.1.2636.3.3.1.1.4.ifIndex : out rate bits/s
1.3.6.1.4.1.2636.3.3.1.1.5.ifIndex : out rate bytes/s
1.3.6.1.4.1.2636.3.3.1.1.6.ifIndex : out rate packets/s
Pour trouver le
L'affichage de l'OID ci-dessus est un peu triste et on voudrait
plutôt avoir les noms des variables de la MIB Juniper. Il faut donc
copier celle-ci localement. Sur une machine
% snmpget -v3 -M +/var/lib/mibs/juniper -m JUNIPER-IF-MIB -u USERNAME \
-a MD5 -A MOTDEPASSESECRET -l authNoPriv 198.18.0.2 \
1.3.6.1.4.1.2636.3.3.1.1.3.513
JUNIPER-IF-MIB::ifIn1SecPkts.513 = Gauge32: 11914
Et voilà, on a un joli nom de variable (nombre de paquets/seconde).
Un exemple pendant une période d'activité (en fait, un test d'attaque
% snmpget -v3 -M +/var/lib/mibs/juniper -m JUNIPER-IF-MIB -u USERNAME -a MD5 -A MOTDEPASSESECRET -l authNoPriv 198.18.0.2 1.3.6.1.4.1.2636.3.3.1.1.6.512
JUNIPER-IF-MIB::ifOut1SecPkts.512 = Gauge32: 2721
% snmpget -v3 -M +/var/lib/mibs/juniper -m JUNIPER-IF-MIB -u USERNAME -a MD5 -A MOTDEPASSESECRET -l authNoPriv 198.18.0.2 1.3.6.1.4.1.2636.3.3.1.1.6.511
JUNIPER-IF-MIB::ifOut1SecPkts.511 = Gauge32: 5358
À cause de la
Et les autres variables ? Par exemple le débit en bits/s :
JUNIPER-IF-MIB::ifOut1SecRate.511 = Gauge32: 98481600
Presque 100 Mb/s, le maximum de la carte Ethernet en face.
Merci à Jean-Philippe Pick pour sa recherche (réussie) dans les MIB.