SNMP (Simple Network Management Protocol) est un protocole de communication permettant de gérer/superviser/diagnostiquer les périphériques réseau : switchs, UPS, pare-feux matériels, routeurs, etc.
La plupart des solutions de supervision utilisent ce protocole.
Fonctionnement
SNMP est un datagramme fonctionnant selon un modèle manager-agent via les ports UDP 161 et 162.
Les agents sont les périphériques réseau (switchs, UPS, pare-feux matériels, routeurs, etc.) et le manager envoie des requêtes à l’agent, lequel retourne des réponses
Les agents
Les agents sont des entités qui se trouvent au niveau de chaque interface, connectant au réseau l’équ@ipement et permettant de récupérer des informations sur différents objets issus de la MIB.
L’agent SNMP fournit des OID (Object Identifiers) = des paires clé-valeur uniques.
Les managers
Un manager SNMP (ou Serveur SNMP) peut effectuer des requêtes aux agents avec ces paires clé-valeur à propos d’informations spécifiques.
Les OID SNMP peuvent être lus ou écrits.
Données des périphériques
MIB
Une MIB (Management Information Base) est une base de données arborescente contenues dans chaque équ@ipement où sont stockés ses informations.
Les outils de supervision interrogent cette base.
La MIB est présentées sous forme d’une arborescence où chaque noeud est un identifiant appelé OID (Object Identifier).
OID
L’OID est unique et universel. Il est représenté sous forme d’une énumération de nombres séparés par des “.”. Les nombres sont placés de manière hiérarchique selon une norme établie par des RFC. Pour récolter une information, il suffit de suivre l’arborescence et d’envoyer à l’équ@ipement tous les nombres depuis la racine jusqu’à l’information voulues.
Supervision
SNMP peut être utilisé avec le polling ou les traps.
Pooling
Le polling consiste à envoyer une requête à intervalles réguliers pour obtenir une valeur en retour (vérification active).
Si la requête échoue, il est possible qu’il y ait un problème avec le pér@iphérique.
Note : SNMP est un protocole UDP, il faut réitérer la requête pour confirmer le problème
Traps
Les traps sont envoyés au manager par un agent (ou plusieurs intervalles d’agents) lorqu’un problème doit être signalé (vérification passive).
Il est possible de configurer un pér@iphérique réseau pour qu’il envoie un trap SNMP lors de certains événements (ex: ligne coupée).
Traps host
Quand un événement trap apparait, l’agent sur le pér@iphérique va envoyer le trap vers une destination pré-configurée : le trap host.
Le trap host possède son propre agent SNMP qui va accepter et traiter les traps lorsqu’ils arrivent.
Traps handler
Le traitement des traps est effectué par des trap handlers.
Le trap handler réagit au trap, par exemple em envoyant un mail d’alerte.
Administration et configuration
Configuration
Le fichier de configurations est :
/etc/snmp/snmpd.conf
Administration
Pour utiliser SNMP, il existe 2 commandes princ@ipales :
snmpwalk
: sortir des informations du pér@iphériquesnmpget
: obtenir des informations sur un OID
Snmpwalk
Help (Extraits)
Extrait de l’aide :
snmpwalk --help (return code: 1) |
Exemples
Interrogez les informations système d’un hôte distant à l’aide de SNMPv1 et d’une chaîne de communauté (mot de passe en clair) :
# snmpwalk -v1 -c community @ip |
Interrogez les informations système sur un hôte distant par OID à l’aide de SNMPv2 sur un port spécifié :
# snmpwalk -v2c -c community @ip:port oid |
Interrogez les informations système sur un hôte distant par OID à l’aide de SNMPv3 et d’une authentification sans chiffrement :
# snmpwalk -v3 -l authNoPriv -u username -a MD5|SHA -A passphrase @ip oid |
Interrogez les informations système sur un hôte distant par OID à l’aide de SNMPv3 et d’une authentification avec chiffrement :
# snmpwalk -v3 -l authPriv -u username -a MD5|SHA -A auth_passphrase -x DES|AES -X enc_passphrase @ip oid |
Interrogez les informations système sur un hôte distant par OID à l’aide de SNMPv3 sans authentification ni chiffrement :
# snmpwalk -v3 -l noAuthNoPriv -u username @ip oid |
Snmpget
Help
L’aide :
USAGE: snmpget [OPTIONS] AGENT OID [OID]... |
Exemples
Informations sur un OID :
# snmpget -v1 -c public <device IP> OID |
Récupérer des données à partir d’un hôte distant en fonction de son nom d’hôte, des informations d’authentification et d’un OID :
# snmpget -v 1 -c demopublic test.net-snmp.org system.sysUpTime.0 |
Documentation
MAN snmpcmd
https://[email protected]/snmp-simple-network-management-protocol/
http://igm.univ-mlv.fr/~dr/XPOSE2010/supervision/liens.html
https://2001.jres.org/actes/snmpvhttp.pdf
https://doc.ubuntu-fr.org/snmp
https://www.noction.com/blog-francais/snmp-traps-expliques
https://[email protected]/snmp/
https://www.thegeekdiary.com/snmpwalk-command-examples-in-linux/
https://www.paessler.com/fr/whatisansnmpcommunitystring
https://docs.oracle.com/cd/E19469-01/820-6413-13/SNMP_commands_reference_appendix.html
https://snmplabs.thola.io/snmpclitools/snmpget.html
https://net-snmp.sourceforge.io/tutorial/tutorial-5/commands/snmpget.html