Il Simple network management protocol (spesso abbreviato in Snmp) è un dei protocolli di Rete appartenenti alla suite TCP/IP e operante al livello 7 del modello ISO/OSI. Lo SNMP consente la configurazione, la gestione e la supervisione di dispositivi di rete collegati a una LAN o a una rete geografica più estesa. Solitamente, il protocollo è supportato da dispositivi quali router, switch di rete, server, stampanti di rete e altri. Il Simple network management protocol permette agli amministratori di rete e ai sistemisti di tenere sotto controllo le performance della rete, risolvere eventuali problematiche e pianificare uno sviluppo futuro della rete.
Struttura generale e concetti di base
In un utilizzo tipico, uno o più computer amministratori, chiamati manager, hanno il compito di monitorare e controllare un gruppo di dispositivi (un semplice nodo, un router, una stampante o qualsiasi altro dispositivo che fornisca un’interfaccia di gestione Snmp) in una rete informatica. Ogni sistema gestito così composto esegue un componente software chiamato agente il cui compito è quello di inviare report informativi al manager utilizzando gli strumenti messi a disposizione dal Simple network management protocol. I dati di gestione sono forniti al managersotto forma di variabili organizzate gerarchicamente che, all’occorrenza, possono essere modificate a discrezione di chi amministra il sistema. Ogni gerarchia esistente all’interno del sistema è descritta e rappresentata, con i suoi metadati, all’interno di un database chiamato Management Information Base (MIB).
Un sistema gestito consiste, dunque, di tre componenti fondamentali: un dispositivo gestito (managed device, in inglese), un agente e un network management station. Il dispositivo gestito, come già accennato, può essere qualunque dispositivo di rete dotato di un’interfaccia Snmp che consente un accesso unidirezionale (read-only) o bidirezionale (read and write) alle informazioni di funzionamento del dispositivo stesso. L’agente è un modulo software di gestione di rete che risiede direttamente nel dispositivo e gestisce le informazioni in modo che possano essere “lette” dal protocollo Snmp o dallo stesso device di rete. Sulla stazione di gestione della rete (network management station) sono eseguite tutte le applicazioni necessarie a controllare i dispositivi da sorvegliare.
Come funziona?
Snmp, come molti altri protocolli di rete della suite TCP/IP, basa il suo funzionamento su una serie di richieste di accesso ai dati o scrittura dei dati e ricezione di notifiche. Lo scambio di questi messaggi e informazioni è reso possibile dall’utilizzo delle porte UDP per l’invio delle richieste e la ricezione delle notifiche, mentre la porta 162 è utilizzata come destinazione dei messaggi trap. Si tratta di messaggi asincroni, non necessitanti di conferma di lettura, che notificano l’avvenimento di particolari eventi di sistema, come ad esempio il riavvio del software di controllo, inviati dal software agente al manager di riferimento.
Il manager interagisce con le altre parti del sistema gestito tramite alcune richieste predefinite. Tra le più comuni troviamo le richieste GET (usata per accedere in lettura a uno o più dati contenuti in una base dati MIB), GETNEXT (usata per accedere iterativamente a una serie dati MIB), GETBULK (per avere accesso con una sola richiesta a una grande porzione della base dati) e SET (necessaria per scrivere e modificare uno o più dati del MIB).
In una rete gestita da protocolli di rete Snmp, la sicurezza è garantita dal raggruppamento dei dispositivi sorvegliati in quelle che sono definite “comunità”. Le comunità sono identificate grazie a stringhe dati di 32 byte e ciascun sistema gestito può appartenere a più di una comunità. L’appartenenza a questi gruppi è fondamentale: un agente, infatti, accetterà richieste solo da manager appartenenti alla stessa comunità. La stringa permette di verificare se il comando arrivi o meno da un gestore “certificato” e autorizzato. Una volta verificata l’identità, il software di gestione può essere autorizzato a compiere tre differenti azioni: read (il managerpuò accedere e ottenere informazioni sullo stato del sistema, ma in modalità “solo lettura”), write (il manager può variare lo stato dell’agente grazie al comando SET) e trap (l’agente può inviare notifiche tipo trap al manager).