Simple Network Management Protocol

Da Wikipedia, l'enciclopedia libera.

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[modifica | modifica sorgente]

I tre componenti logici fondamentali del framework SNMP per il suo funzionamento sono:

  1. sistema gestito (managed object);
  2. agente di gestione (management agent o master agent) e vari subagent (su sistema gestito);
  3. 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[modifica | modifica sorgente]

Più in dettaglio, il manager dialoga con i sistemi gestiti essenzialmente in due modi: invia richieste SNMP e riceve notifiche SNMP.

Porte utilizzate[modifica | modifica sorgente]

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[modifica | modifica sorgente]

Alcuni esempi di richieste sono:

  1. GET, usata per leggere uno o più dati di MIB;
  2. GETNEXT, usata per leggere iterativamente una sequenza di dati di MIB;
  3. GETBULK, usata per leggere con una sola richiesta grandi porzioni di MIB;
  4. SET, usata per scrivere (modificare) uno o più dati di MIB.

Notifiche[modifica | modifica sorgente]

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[modifica | modifica sorgente]

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 modalità 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[modifica | modifica sorgente]

Tipicamente, SNMP utilizza le porte UDP 161 per l'agent e 162 per il manager.

Voci correlate[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

Telematica Portale Telematica: accedi alle voci di Wikipedia che parlano di reti, telecomunicazioni e protocolli di rete