Manipulation de Traps SNMP en C et Java
Principe & Concept
1. Concept
SNMP est un protocole d'administration de machines supportant TCP/IP. Il permet de répondre à un grand nombre de besoins :
- Disposer d'une cartographie du réseau
- Fournir un inventaire précis de chaque machine
- Mesurer la consommation système d'une application
- Signaler disfonctionnements

On pourra lister les avantages suivants :
- Protocole très simple, facile d'utilisation
- Permet une gestion à distance des différentes machines
- Le modèle fonctionnel pour la surveillance et pour la gestion est extensible
- indépendant de l'architecture des machines administrées
2. Modèle
Une administration SNMP est composée de trois types d'éléments :
Un agent : chaque équipement que l'on voudra manager à distance devra disposer d'un agent SNMP. Cet agent est un serveur, c'est-à-dire qu'il reste à l'écoute d'un port particulier : le port UDP 161.
La principale fonction de cet agent est de rester à l'écoute des éventuelles requêtes que l'administateur lui enverra. Il répondra si la requête est émise par une entité autorisée.
L'agent devra également éventuellement agir sur l'environnement local, si l'administateur souhaite modifier un paramètre.
Par ailleurs, l'agent SNMP pourra éventuellement émettre des alertes de sa propre initiative. Il peut y avoir une multitude d'alertes possibles suivant la complexité de l'agent : température du processeur, taux d'occupation des disques durs, taux d'occupation CPU...Un manager : c'est avant tout un client, dans la mesure où c'est lui qui envoient des requêtes aux divers agents SNMP du réseau. Il doit aussi disposer d'une fonction serveur car il doit rester à l'écoute sur le port UDP 162 des alertes que les divers équipements sont susceptibles d'émettre à tout moment.
Une MIB : (Management Information Base) décrivant les informations gérées.
3. Echanges de messages
Les commandes get-request, get-next-request et set-resquest 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.

4. Communauté
Un agent SNMP est plus ou moins finement paramétrable, suivant le système. Il est possible, par exemple de créer des groupes de sécurité qui auront accès en lecture seule, d'autres en lecture/écriture, d'autres encore en lecture seule, mais sur certaines branches seulement...
Chaque groupe devra disposer d'une sorte de mot de passe, appelé "community". En général, la communauté "public" est celle qui a le droit de lecture sur les informations non sensibles.
L'inconvénient majeur est qu'avec SNMP v1, qui est actuellement la seule version vraiment stabilisée et reconnue par tous, ce mot de passe circule en clair sur le réseau, ce qui rend dans ce cas SNMP plus que dangereux.
Les versions suivantes de SNMP corrigent ce problème majeur.
Nous avons donc des informations à consulter, des paramètres à modifier et des alarmes à émettre. Tout cela, en principe, de façon indépendante du matériel et du logiciel. Il faut donc que SNMP permette de retrouver ces informations et d'agir sur les paramètres. Il utilise pour cela la MIB.