Tutorial su SNMP

In questo tutorial si proverà a fornire una breve spiegazione

Cos'è il protocollo SNMP?

Il Simple Network Management Protocol (SNMP) è un protocollo a livello applicazione definito dall'IAB (Internet Architecture Board) nell'RFC1157 per lo scambio di informazioni di gestione tra dispositivi di rete. Il protocollo fa parte della suite di protocolli TCP⁄IP (Transmission Control Protocol⁄Internet Protocol).

SNMP è uno dei protocolli ampiamente accettati per la gestione e il monitoraggio degli elementi di rete. La maggior parte degli elementi di rete di tipo professionale sono accompagnati da un agente SNMP. Questi agenti devono essere attivati e configurati per comunicare con il sistema di gestione della rete (NMS).

Componenti di base del protocollo SNMP e rispettive funzionalità

SNMP è composto da

SNMP Manager:

Un manager o sistema di gestione è un'entità separata che funge da responsabile della comunicazione con i dispositivi di rete dotati di agente SNMP. Generalmente si tratta di un computer utilizzato per eseguire uno o più sistemi di gestione della rete.

Funzioni chiave dell'SNMP Manager
  • Interroga gli agenti
  • Ottiene risposte dagli agenti
  • Imposta le variabili negli agenti
  • Riconosce gli eventi asincroni provenienti dagli agenti

Dispositivi gestiti:

Un dispositivo gestito o un elemento di rete è una parte della rete che richiede una qualche forma di monitoraggio e gestione, lo sono ad esempio router, switch, server, workstation, stampanti, UPS e così via.

Agente SNMP:

L'agente è un programma incorporato nell'elemento di rete. Abilitando l'agente, si consente al programma di popolare il database MIB (Management Information Base) con le informazioni provenienti dai dispositivi in locale e lo si rende disponibili all'SNMP Manager, quando interrogato. Gli agenti possono essere standard (ad esempio Net-SNMP) o specifici di un vendor (ad esempio HP Insight Agent)

Funzioni chiave dell'agente SNMP
  • Raccoglie le informazioni di gestione relative al suo ambiente locale
  • Archivia e recupera le informazioni di gestione così come definite nel MIB.
  • Segnala un evento al manager.
  • Agisce come proxy per alcuni nodi di rete non gestibili con SNMP.

 

Diagramma di comunicazione SNMP di base
What are the basic components of SNMP? - ManageEngine OpManager SNMP

Database delle informazioni di gestione o MIB (Management Information Base)

Ogni agente SNMP conserva un database di informazioni che descrivono i parametri del dispositivo gestito. L'SNMP Manager utilizza questo database per richiedere all'agente informazioni specifiche e per tradurre successivamente le informazioni come richiesto dal sistema di gestione della rete (NMS, Network Management System). Questo database condiviso comune che si trova tra l'agente e il manager è chiamato MIB (Management Information Base).

Di solito il MIB contiene un set standard di valori statistici e di controllo definiti per i nodi hardware di una rete. SNMP consente anche di estendere questi valori standard con valori specifici di un particolare agente tramite l'uso di MIB privati.

In breve, i file MIB sono set di domande che un SNMP Manager può chiedere all'agente. L'agente raccoglie questi dati localmente e li archivia, secondo le modalità definite nel MIB. In questo modo, l'SNMP Manager potrà conoscere le risposte a queste domande standard e private per ogni tipo di agente.

 

SNMP MIB Browser e SNMP Walk Tool

La suite di strumenti gratuiti di ManageEngine include un SNMP MIB Browser che aiuta a caricare/scaricare i MIB e a recuperare i dati dei MIB degli agenti SNMP (v1, v2c, v3). SNMP MIB Browser è uno strumento completo per il monitoraggio dei dispositivi e dei server SNMP. È possibile caricare e visualizzare moduli MIB multipli ed eseguire le operazioni SNMP GET, GETNEXT e SET. Lo strumento è semplice da usare e consente di visualizzare, configurare e analizzare i trap SNMP. È inoltre possibile eseguire operazioni SNMP da dispositivi Windows e Linux.

 

Struttura di un MIB e identificatori degli oggetti (Object ID o OID)

Il MIB (Management Information Base) è una raccolta di informazioni per la gestione degli elementi di rete. I MIB sono costituiti da oggetti gestiti identificati per nome grazie all'identificatore dell'oggetto, definito Object ID o OID.

Ogni identificatore è univoco e denota caratteristiche specifiche di un dispositivo gestito. Quando richiesto, il valore restituito di ogni identificatore può essere diverso (ovvero un testo, numero, contatore, ecc.).

Esistono due tipi di Managed Object o Object ID: Scalare e Tabulare. Per comprendere meglio la differenza è possibile ricorrere a un esempio

Scalare: nome del vendor del dispositivo, il risultato può essere uno solo (la definizione è: "un oggetto Scalare definisce l'istanza di un singolo oggetto").

Tabulare: utilizzo della CPU in un processore quad, viene fornito un risultato separato per ogni CPU, ovvero 4 risultati per quel particolare Object ID (la definizione è: "un oggetto Tabulare definisce l'istanza di oggetti correlati multipli raggruppati insieme in tabelle del MIB")

Ciascun Object ID è organizzato gerarchicamente in MIB. La gerarchia di MIB può essere rappresentata con una struttura ad albero con un identificatore variabile individuale.

Un tipico Object ID è composto da un elenco di numeri interi separati da un punto. Ad esempio, l'OID di "sysDescr", così come stabilito nell'RFC1213, è .1.3.6.1.2.1.1.1

 

Diagramma ad albero di un MIB
SNMP MIB Tutorial - ManageEngine OpManager SNMP
 

Comandi di base SNMP

La semplicità nello scambio delle informazioni ha fatto sì che SNMP sia diventato un protocollo ampiamente adottato. Il motivo principale è il set di comandi conciso, tutti elencati di seguito:

  • GET: l'operazione GET è una richiesta inviata dal manager al dispositivo gestito. È eseguita per recuperare uno o più valori dal dispositivo gestito.
  • GET NEXT: questa operazione è simile a GET. La differenza sostanziale risiede nel fatto che l'operazione GET NEXT recupera il valore dell'OID successivo nella struttura MIB.
  • GET BULK: l'operazione GETBULK è utilizzata per recuperare dati voluminosi da tabelle MIB di grandi dimensioni.
  • SET: questa operazione è utilizzata dai manager per modificare o assegnare il valore di un dispositivo gestito.
  • TRAPS: a differenza dei comandi precedenti che hanno origine nell'SNMP Manager, TRAPS ha origine negli agenti. Si tratta di un segnale diretto all'SNMP Manager dall'agente al verificarsi di un evento.
  • INFORM: questo comando è simile al TRAP avviato dall'agente, ma in più INFORM include la conferma dall'SNMP Manager alla ricezione del messaggio.
  • RESPONSE: è il comando utilizzato per trasportare i valori o i segnali delle azioni dirette dall'SNMP Manager.
 

Trap SNMP:

i trap SNMP permettono a un agente di informare l'SNMP Manager di eventi significativi mediante messaggi SNMP non richiesti. I protocolli trap SNMP includono il valore sysUpTime corrente, un OID che identifica il tipo di trap e binding di variabili facoltativi. L'indirizzamento di destinazione dei trap SNMP è determinato da una modalità specifica dell'applicazione che generalmente si concretizza in variabili di configurazione trap nel MIB. Il formato del messaggio trap è stato modificato in SNMPv2 e l'unità dati del protocollo è stata rinominata in SNMPv2-Trap.

Comunicazione SNMP tipica

Essendo parte della suite di protocolli TCP⁄ IP, i messaggi SNMP vengono racchiusi in datagrammi UDP (User Datagram Protocol) e successivamente inglobati e trasmessi tramite il protocollo IP (Internet Protocol). Nel diagramma seguente è illustrato il modello a quattro livelli sviluppato dal Dipartimento della Difesa (DoD).

What is SNMP Manager & Agent? - ManageEngine OpManager SNMP

GET⁄ GET NEXT⁄ GET BULK⁄ SET

How SNMP Monitoring works in Networking? - ManageEngine OpManager SNMP

 

TRAP

SNMP Traps Tutorial - ManageEngine OpManager SNMP

 

INFORM

SNMP Tutorial for beginners - ManageEngine OpManager SNMP

 

Per impostazione predefinita, la porta SNMP è la 161 mentre TRAP⁄ INFORM utilizzano la porta SNMP 162 per la comunicazione.
 

Versioni di SNMP

Fin dalla sia introduzione, l'SNMP ha subito aggiornamenti significativi. Tuttavia, le versioni più implementate del protocollo SNMP sono la v1 e la v2c. Recentemente è iniziato il supporto a SNMP v3, più sicuro rispetto alle versioni precedenti ma non ancora diffuso in maniera considerevole.

SNMPv1:

la prima versione del protocollo SNMP, definita negli RFC 1155 e 1157

SNMPv2c:

rivisitazione del protocollo, che include miglioramenti di SNMPv1 nelle aree dei tipi di pacchetti del protocollo, mapping del trasporto, elementi della struttura del MIB, ma dotato della stessa struttura di amministrazione della versione SNMPv1 esistente ("basata su community" e per questo SNMPv2c). È definito in RFC 1901, RFC 1905, RFC 1906, RFC 2578.

SNMPv3:

SNMPv3 definisce la versione sicura di SNMP. Il protocollo SNMPv3 inoltre facilita la configurazione remota delle entità SNMP. È definito da RFC 1905, RFC 1906, RFC 3411, RFC 3412, RFC 3414, RFC 3415.

Sebbene ogni versione presenti miglioramenti dal punto di vista della ricchezza di funzionalità, in ogni upgrade viene data maggiore enfasi all'aspetto della sicurezza. Segue un breve riassunto dell'aspetto sicurezza in ogni versione.

SNMP v1 Sicurezza basata su community
SNMP v2c Sicurezza basata su community
SNMP v2u Sicurezza basata sugli utenti
SNMP v2 Sicurezza basata sulla parte
SNMP v3 Sicurezza basata sugli utenti
Punti da valutare: OpManager supporta tutte le versioni di SNMP. È possibile monitorare qualsiasi dispositivo abilitato per SNMP per gestire⁄monitorare le sue prestazioni e per elaborare TRAP SNMP.
– OpManager: Software di monitoraggio della rete di ManageEngine