Simple Network Management Protocol
In informatica e telecomunicazioni Simple Network Management Protocol (SNMP) è un protocollo di rete che appartiene alla suite di protocolli Internet definito dalla IETF (Internet Engineering Task Force). Il protocollo opera al livello 7 del modello OSI e consente la configurazione, la gestione e la supervisione (monitoring) di apparati collegati in una rete (siano essi nodi interni di commutazione come i dispositivi di rete e nodi terminali di utenza), riguardo a tutti quegli aspetti che richiedono azioni di tipo amministrativo (management).
Architettura
I tre componenti logici fondamentali del framework SNMP per il suo funzionamento sono:
- sistema gestito (managed object);
- agente di gestione (management agent o master agent) e vari subagent (su sistema gestito);
- sistema di gestione (manager) da remoto;
Ogni sistema gestito (per esempio un semplice nodo, un router, una stampante o qualsiasi altro dispositivo che fornisca un'interfaccia di gestione SNMP) ospita un agente di gestione (master agent) e solitamente un certo numero di subagent. Il master agent ha almeno il ruolo di intermediario fra il manager (che è l'applicazione remota che prende le decisioni di gestione, per esempio sotto il controllo diretto dell'operatore umano) e i subagent (che sono gli esecutori di tali decisioni). Ciascun subagent è incaricato di attuare le decisioni di gestione da parte del manager nel contesto di un particolare sottosistema o relativamente a un particolare aspetto del sistema gestito. In sistemi che forniscono meccanismi di gestione particolarmente semplici, master agent e subagent possono confluire in un unico componente software capace sia di dialogare con il manager che di attuarne le decisioni; in questo caso si parlerà semplicemente di agent.
SNMP utilizza quindi una chiara separazione fra il protocollo di gestione e la struttura dell'oggetto gestito. Nell'architettura SNMP, per ogni sottosistema è definita una base di dati detta MIB (Management Information Base), gestita dal corrispondente subagent, la quale rappresenta lo stato del sottosistema gestito, o meglio, una proiezione di tale stato limitata agli aspetti di cui si vuole consentire la gestione. Si tratta di una base dati che si potrebbe definire, mutuando un termine dalla riflessione, "causalmente connessa": in altre parole, ogni modifica alla MIB causa un corrispondente mutamento nello stato del sottosistema rappresentato, e viceversa. Garantire questa proprietà della MIB è la funzione principale del subagent che la gestisce.
L'accesso alla MIB (in lettura e scrittura) rappresenta l'interfaccia fornita al manager per gestire il sistema. Ogni MIB, pur variando nei contenuti specifici, ha la medesima struttura generale e i medesimi meccanismi generali di accesso da parte del manager (lettura e scrittura dei dati). Grazie alla connessione causale della MIB, è quindi possibile al manager agire sullo stato del sottosistema in un modo che è largamente indipendente dalle procedure concrete che devono poi essere messe in atto (dal subagent) per estrarre le informazioni di stato rappresentate nella MIB, o attuare le modifiche di stato a seguito di cambiamenti dei contenuti della MIB. Così, per esempio, si potrebbe avere un dato di MIB che rappresenta l'indirizzo IP del sistema gestito; per modificare tale indirizzo, al manager è sufficiente accedere alla MIB sovrascrivendo il dato corrispondente, prescindendo dei dettagli di come una tale modifica venga poi concretamente "attuata" sul sistema gestito attraverso l'agent o il subagent.
Funzionamento
Più in dettaglio, il manager dialoga con i sistemi gestiti essenzialmente in due modi: invia richieste SNMP e riceve notifiche SNMP.
Porte utilizzate
Viene utilizzata la porta UDP 161 per le interrogazioni e le risposte, e la porta UDP 162 come destinazione dei messaggi trap SNMP generate dagli agent SNMP.
Richieste
Alcuni esempi di richieste sono:
- GET, usata per leggere uno o più dati di MIB;
- GETNEXT, usata per leggere iterativamente una sequenza di dati di MIB;
- GETBULK, usata per leggere con una sola richiesta grandi porzioni di MIB;
- SET, usata per scrivere (modificare) uno o più dati di MIB.
Notifiche
Le notifiche sono messaggi asincroni inviati dall'agent per segnalare eventi occorsi nel sistema gestito (p.es. allarmi in caso di guasti). Le notifiche SNMP senza acknowledgement vengono comunemente chiamate trap, anche se la terminologia esatta varia a seconda della versione di SNMP in questione. Le notifiche SNMP con acknowledgment vengono invece chiamate inform.
Autenticazione ed autorizzazione
Per motivi di sicurezza, i sistemi facenti parte di una rete SNMP vengono raggruppati in una cosiddetta comunità. La comunità è identificata da una stringa di 32 byte e ciascun sistema può appartenere a più di una di queste comunità. L'agent SNMP accetta richieste solo da un manager della stessa comunità che si identifica e autentica con la suddetta stringa ottenendo l'autorizzazione o meno a procedere nel controllo remoto di gestione. L'autorizzazione dei membri di una comunità ad operare su un oggetto può essere di tre tipi:
- read: il manager può interrogare l'agent solo per conoscere lo stato del sistema (solo GET o madalità di sola lettura);
- write: dove il manager può anche variarne l'impostazione (GET e SET, o modalità lettura/scrittura);
- trap: l'agent può inviare trap al manager.
Trasporto
Tipicamente, SNMP utilizza le porte UDP 161 per l'agent e 162 per il manager.
Voci correlate
Collegamenti esterni
- SimpleWeb
- http://www.henrys.de/daniel/download/SNMP.HTM
- SNMP FAQ part 1
- SNMP FAQ part 2
- RFC:
- RFC 1157 - A Simple Network Management Protocol (SNMP)
- RFC 1441 - Introduction to version 2 of the Internet-standard Network Management Framework
- RFC 3410 - Introduction and Applicability Statements for Internet Standard Management Framework
- RFC 3411 - Standard 62 - An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks
- RFC 3412 - Standard 62 - Message Processing and Dispatching for the Simple Network Management Protocol (SNMP)
- RFC 3413 - Standard 62 - Simple Network Management Protocol (SNMP) Application
- RFC 3414 - Standard 62 - User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)
- RFC 3415 - Standard 62 - View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)
- RFC 3416 - Standard 62 - Version 2 of the Protocol Operations for the Simple Network Management Protocol (SNMP)
- RFC 3417 - Standard 62 - Transport Mappings for the Simple Network Management Protocol (SNMP)
- RFC 3418 - Standard 62 - Management Information Base (MIB) for the Simple Network Management Protocol (SNMP)
- RFC 3584 - Coexistence between Version 1, Version 2, and Version 3 of the Internet-standard Network Management Framework
- RFC 3512 - Configuring Networks and Devices with Simple Network Management Protocol (SNMP)
- Implementazioni:
- Cisco: