Le protocole
.
[ Accueil ] [ Le principe ] [ Le protocole ] [ Install. SNMP. ] [ La MIB ] [ Managers ] [ MRTG intro. ] [ MRTG en production. ]
Les multiples versions.
Commençons par le plus désagréable. SNMP existe au moins dans les versions
1, 2c, 2 et 3. Comme pour tout protocole, les références sont des RFC. Si vous
aimez ce genre de lecture :
Version |
année |
RFCs |
Titre |
Statut |
v1 |
1990 |
1155 |
Structure
and Identification of Management Information for TCP/IP-based Internets |
standard |
1156 |
Management
Information Base for network management of TCP/IP-based internets |
historique |
1157 |
Simple
Network Management Protocol (SNMP) |
historique |
|
v2c (classic) |
1993 |
1441 |
Introduction
to version 2 of the Internet-standard Network Management Framework |
historique, proposé comme standard |
1442 |
Structure
of Management Information for version 2 of the Simple Network Management
Protocol (SNMPv2) |
standard proposé, remplacé par RFC-1902 |
1443 |
Textual
Conventions for version 2 of the Simple Network Management Protocol
(SNMPv2) |
standard proposé, remplacé par RFC-1903 |
1444 |
Conformance
Statements for version 2 of the Simple Network Management Protocol
(SNMPv2) |
standard proposé, remplacé par RFC-1904 |
1445 |
Administrative
Model for version 2 of the Simple Network Management Protocol (SNMPv2) |
historique |
1446 |
Security
Protocols for version 2 of the Simple Network Management Protocol (SNMPv2) |
historique |
1447 |
Party
MIB for version 2 of the Simple Network Management Protocol (SNMPv2) |
historique |
1448 |
Protocol
Operations for version 2 of the Simple Network Management Protocol
(SNMPv2) |
standard proposé, remplacé par RFC-1905 |
1449 |
Transport
Mappings for version 2 of the Simple Network Management Protocol (SNMPv2) |
standard proposé, remplacé par RFC-1906 |
1450 |
Management
Information Base for version 2 of the Simple Network Management Protocol
(SNMPv2) |
standard proposé, remplacé par RFC-1907 |
1451 |
Manager-to-Manager
Management Information Base |
historique |
1452 |
Coexistence
between version 1 and version 2 of the Internet-standard Network
Management Framework |
standard proposé, remplacé par RFC-1908 |
|
v2 |
1996 |
1901 |
Introduction
to Community-based SNMPv2 |
historique, proposé comme expérimental |
1902 |
Structure
of Management Information for Version 2 of the Simple Network Management
Protocol (SNMPv2) |
standard, remplacé par RFC-2578 |
1903 |
Textual
Conventions for Version 2 of the Simple Network Management Protocol
(SNMPv2) |
standard, remplacé par RFC-2579 |
1904 |
Conformance
Statements for Version 2 of the Simple Network Management Protocol
(SNMPv2) |
standard, remplacé par RFC-2580 |
1905 |
Protocol
Operations for Version 2 of the Simple Network Management Protocol
(SNMPv2) (3416) |
standard, remplacé par RFC-3416 |
1906 |
Transport
Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)
(3417) |
standard, remplacé par RFC-3417 |
1907 |
Management
Information Base for Version 2 of the Simple Network Management Protocol
(SNMPv2) (3418) |
standard, remplacé par RFC-3418 |
1908 |
Coexistence
between Version 1 and Version 2 of the Internet-standard Network
Management Framework (2576) |
standard, remplacé par RFC-2576 |
|
v3 |
1999 |
2571 |
An
Architecture for Describing SNMP Management Frameworks |
standard, remplacé par RFC-3411 |
2572 |
Message
Processing and Dispatching for the Simple Network Management Protocol
(SNMP) |
standard, remplacé par RFC-3412 |
2573 |
SNMP
Applications |
standard, remplacé par RFC-3413 |
2574 |
User-based
Security Model (USM) for version 3 of the Simple Network Management
Protocol (SNMPv3) |
standard, remplacé par RFC-3414 |
2575 |
View-based
Access Control Model (VACM) for the Simple Network Management Protocol
(SNMP) |
standard, remplacé par RFC-3415 |
|
v2 et v3 |
2000 |
2576 |
Coexistence
between Version 1, Version 2, and Version 3 of the Internet-standard
Network Management Framework |
standard proposé |
2002 |
3411 |
An
Architecture for Describing Simple Network Management Protocol (SNMP)
Management Frameworks |
standard |
3412 |
Message
Processing and Dispatching for the Simple Network Management Protocol
(SNMP) |
standard |
3413 |
Simple
Network Management Protocol (SNMP) Applications |
standard |
3414 |
User-based
Security Model (USM) for version 3 of the Simple Network Management
Protocol (SNMPv3) |
standard |
3415 |
View-based
Access Control Model (VACM) for the Simple Network Management Protocol
(SNMP) |
standard |
3416 |
Version
2 of the Protocol Operations for the Simple Network Management Protocol
(SNMP) |
standard |
3417 |
Transport
Mappings for the Simple Network Management Protocol (SNMP) |
standard |
3418 |
Management
Information Base (MIB) for the Simple Network Management Protocol (SNMP) |
standard |
D'une manière générale, reportez-vous au site rfc-editor
pour retrouver les RFC, avec les informations sur leur statut (expérimental,
obsolète, actif...)
Comme vous le voyez, il règne la plus grande confusion dans la définition
des versions 2 et 3 de SNMP.
La version 2, commencée à être définie en 1996, ne se voit réellement
finalisée qu'en décembre 2002, après que la version 3 ait été définie.
Ladite version 3, trop récente, n'est pas encore largement utilisée, si bien
que c'est la version 1 qui se retrouve être supportée par tous, avec ses
(graves) défauts, comme nous le verrons plus loin.
Pour que SNMP fonctionne, il n'y a pas qu'un protocole d'échange à
définir. Il y a aussi une standardisation des informations que ce protocole
peut transporter. C'est un protocole Internet, il doit être utilisable sur des
plate-formes hétérogènes (matériel comme système d'exploitation).
C'est pour cette raison que l'on parlera de MIB (Management Information Base)
et de SMI (Structure of Management Information)
Dans ce qui suit, nous nous appuierons principalement sur SNMP v1.
Commençons par le plus simple.
Le protocole lui-même.
SNMP tire son "N" du fait qu'il s'appuie sur UDP d'une part, et
qu'il ne propose qu'un nombre très restreint de commandes.
Les commandes sont les suivantes (version 1):
Commande |
Action |
get-request |
Le Manager SNMP demande une information à un agent SNMP |
get-next-request |
Le Manager SNMP demande l'information suivante à l'agent SNMP |
set-request |
Le Manager SNMP met à jour une information sur un agent SNMP |
get-reponse |
L'agent SNMP répond à un get-request ou a un set-request |
trap |
L'agent SNMP envoie une alarme au Manager |
Jusque là, c'est on ne peut plus simple. L'agent
utilise le port 161 et le manager, le port 162. Graphiquement, ça donne ceci :

Les commandes get-request, get-next-request et set-request sont toutes
émises par le manager à destination d'un agent et attendent toutes une
réponse get-response de la part de l'agent.
La commande trap est une alerte. Elle est toujours émise par l'agent à
destination du manager, et n'attend pas de réponse.
Comme vous le voyez, jusque là, c'est extrêmement simple. Rassurez-vous,
ça va nettement se compliquer avec la MIB et la SMI.