Ad una singola rete vengono collegati di­spo­si­ti­vi di diverso tipo, come computer, server, switch o router, stampanti e simili. Quanto più alto è il numero dei di­spo­si­ti­vi collegati tanto più com­pli­ca­ta sarà la gestione da parte dell’am­mi­ni­stra­to­re. L’utilizzo di tool di gestione diventa quindi d’obbligo se si vuole garantire la fun­zio­na­li­tà e la sicurezza a lungo termine dell’intero sistema. Un pro­to­col­lo che sfrutta queste soluzioni software è il Simple Network Ma­na­ge­ment Protocol (SNMP), uno dei pro­to­col­li standard più im­por­tan­ti, sup­por­ta­to og­gi­gior­no da tutti i di­spo­si­ti­vi.

Che cos’è l’SNMP?

Dopo circa due anni di sviluppo, nel maggio del 1990 è uscita la prima versione ufficiale del Simple Network Ma­na­ge­ment Protocol, ab­bre­via­to SNMP, nel RFC 1157. Il pro­to­col­lo di rete, parte della famiglia dei pro­to­col­li Internet e di­spo­ni­bi­le anche nelle versioni SNMPv2 e SNMPv3, è frutto del lavoro del gruppo IETF (Internet Engi­nee­ring Task Force). La funzione prin­ci­pa­le del pro­to­col­lo SNMP è quella di rendere possibile una su­per­vi­sio­ne e una gestione cen­tra­liz­za­ta di tutti i com­po­nen­ti di una rete. A tal fine esso descrive l’ar­chi­tet­tu­ra dei pacchetti di co­mu­ni­ca­zio­ne necessari, come anche il processo di co­mu­ni­ca­zio­ne tra la stazione centrale e i singoli di­spo­si­ti­vi.

Spie­ghia­mo l’SNMP: come funziona il Simple Network Ma­na­ge­ment Protocol

La gestione della rete tramite SNMP si basa su un modello manager-agent. Dalla ma­na­ge­ment station centrale l’am­mi­ni­stra­to­re osserva e coordina i diversi utenti di rete. A tal fine viene in­stal­la­to un ma­na­ge­ment software che rende possibile la richiesta di dati da parte dell’SNMP e l’avvio di de­ter­mi­na­te azioni. Gli agent sono le ap­pli­ca­zio­ni cor­ri­spon­den­ti che rap­pre­sen­ta­no la con­tro­par­te dei singoli com­po­nen­ti di rete: rac­col­go­no i dati rilevanti su un host di de­sti­na­zio­ne e li inviano alla ma­na­ge­ment station, ma possono anche ef­fet­tua­re delle im­po­sta­zio­ni e avviare de­ter­mi­na­te azioni. Simili ap­pli­ca­zio­ni agent sono già im­ple­men­ta­te nella maggior parte dei comuni sistemi Windows e Linux, ad esempio in forma di snmpd Daemon (solo Linux).

Per la co­mu­ni­ca­zio­ne tra manager e agent il pro­to­col­lo SNMP prevede sette possibili tipologie di messaggio:

  • GET-request: le GET-request sono messaggi standard uti­liz­za­ti per ri­chia­ma­re una de­ter­mi­na­ta serie di dati sul di­spo­si­ti­vo di rete de­si­de­ra­to.
  • GETNEXT-request: questo formato di messaggio è ne­ces­sa­rio quando sono richieste serie di dati sus­se­guen­ti, ad esempio tabelle.
  • GETBULK-request: l’ap­pli­ca­zio­ne manager può inviare una GETBULK-request (da SNMPv2) per ri­chie­de­re un numero definito di serie di dati con un’unica request. Tale richiesta è pa­ra­go­na­bi­le a diverse GETNEXT-request suc­ces­si­ve.
  • SET-request: le SET-request per­met­to­no al manager di mo­di­fi­ca­re una o diverse serie di dati del di­spo­si­ti­vo di rete de­si­de­ra­to o di avviare de­ter­mi­na­te azioni. Uno tipo di scenario in cui sono necessari degli adat­ta­men­ti è la con­fi­gu­ra­zio­ne di un indirizzo IP, che richiede anche l’in­di­ca­zio­ne di una maschera di rete.
  • GET-response: se il manager richiede una o diverse serie di dati o avvia modifiche o azioni, l’agent risponde con una GET-response. Questi pacchetti di risposta con­ten­go­no i dati richiesti, ovvero la conferma degli adat­ta­men­ti o un messaggio di errore nel caso in cui non sia possibile ri­spon­de­re in modo corretto.
  • Trap SNMP: il trap SNMP è un messaggio dell’agent che viene inviato alla manager station senza richiesta. Tale invio avviene di solito perché si è ve­ri­fi­ca­to un evento im­pre­vi­sto. I trap possono co­mu­ni­ca­re la natura dell’evento in due modi: la prima pos­si­bi­li­tà per ri­spar­mia­re risorse è ag­giun­ge­re un numero iden­ti­fi­ca­ti­vo unico; il manager potrà risalire al suo si­gni­fi­ca­to con­sul­tan­do la banca dati di in­for­ma­zio­ni (MIB) sopra men­zio­na­ta. La seconda pos­si­bi­li­tà consiste in trap SNMP che non informano solo sull’evento, ma con­ten­go­no anche i dati relativi senza indicare uno specifico numero di iden­ti­fi­ca­zio­ne.
  • INFORM-request: le INFORM-request hanno di base la stessa funzione dei trap SNMP. I pacchetti INFORM si di­stin­guo­no dai trap per la conferma di ricezione da parte del manager. Di con­se­guen­za se l’agent non è riuscito a con­tat­ta­re il manager al primo tentativo, può provare a rinviare il messaggio.

Come detto in pre­ce­den­za, il Simple Network Ma­na­ge­ment Protocol richiede l’utilizzo del pro­to­col­lo di trasporto UDP senza con­nes­sio­ne per la consegna dei pacchetti di messaggi. In questo modo è garantito un mo­ni­to­rag­gio della rete par­ti­co­lar­men­te van­tag­gio­so per le risorse. Per le diverse GET-request agli agent (e per le relative risposte) l’SNMP utilizza la porta UDP 161, mentre i trap SNMP au­to­ma­ti­ci vengono inviati tramite la porta UDP 162.

Le diverse versioni del pro­to­col­lo SNMP a confronto

Ini­zial­men­te l’SNMP non con­sen­ti­va ai manager di co­mu­ni­ca­re tra loro, né agli agenti di inviare messaggi con conferma di ricezione. Anche il supporto di molte ap­pli­ca­zio­ni ini­zial­men­te fun­zio­na­va solo in parte, no­no­stan­te il principio di standard aperto. Per questo motivo i lavori di revisione del pro­to­col­lo negli anni seguenti ebbero lo scopo di integrare i nuovi mec­ca­ni­smi nel Simple Network Ma­na­ge­ment Protocol. Un altro im­por­tan­te obiettivo del gruppo di lavoro IETF, raggiunto so­prat­tut­to nella terza versione del pro­to­col­lo, è stato sin dall’inizio quello di rendere più sicuro il processo di am­mi­ni­stra­zio­ne. Questo passo e quelli suc­ces­si­vi, volti ad ot­ti­miz­za­re il pro­to­col­lo SNPM, sono af­fron­ta­ti nel dettaglio nelle seguenti de­scri­zio­ni delle singole versioni SNMPv1, SNMPv2 e SNMPv3.

SNMPv1

L’SNMPv1, la prima versione del pro­to­col­lo di gestione di rete, si basa sul modello manager-agent e rap­pre­sen­ta la base per la co­mu­ni­ca­zio­ne tra la manager station e i singoli agent. Il Simple Network Ma­na­ge­ment Protocol è un pro­to­col­lo semplice che agisce sul livello di ap­pli­ca­zio­ne e su UDP (User Datagram Protocol) e Internet Protocol (IP), ma può poggiarsi anche su pro­to­col­li di rete simili come Ap­ple­Talks DDP (Datagram Delivery Protocol) o Internet Packet Exchange (IPX). L’unico mec­ca­ni­smo di sicurezza integrato è lo scambio di una co­sid­det­ta “stringa di comunità” che viene inviata tramite la relativa request.

SNMPv2

Un grosso limite della prima versione del pro­to­col­lo SNMP è che la stringa di comunità veniva trasmessa solo in testo semplice. Ciò non era ab­ba­stan­za in termini di sicurezza, così gli svi­lup­pa­to­ri si misero al lavoro per ottenere una nuova variante dal nome Secure SNMP, in cui le stringhe venivano trasmesse in forma cifrata. Tale versione, tuttavia, non è mai stata pub­bli­ca­ta in quanto venne rim­piaz­za­ta di­ret­ta­men­te dall’SNMPv2. Vennero ef­fet­tua­ti ulteriori mi­glio­ra­men­ti alla versione originale del pro­to­col­lo, tra cui un’ot­ti­miz­za­zio­ne della gestione degli errori, la pos­si­bi­li­tà di una co­mu­ni­ca­zio­ne manager-manager e comandi SET più fun­zio­na­li. Tuttavia il grosso vantaggio in confronto all’SNMPv1 è rap­pre­sen­ta­to dall’im­ple­men­ta­zio­ne di nuove tipologie di messaggi GETBULK (per la richiesta di più dati in un’unica request) e INFORM (per le conferme di ricezione alle risposte degli agent).

SNMPv3

Dopo i primi piccoli mi­glio­ra­men­ti della seconda versione del pro­to­col­lo, lo IETF si è fo­ca­liz­za­to sull’aspetto della sicurezza e ha so­sti­tui­to le stringhe di comunità con username e password. La terza versione del pro­to­col­lo, a dif­fe­ren­za delle pre­ce­den­ti, contiene delle funzioni che per­met­to­no di crit­to­gra­fa­re la tra­smis­sio­ne di pacchetti SNMP. SNMPv3 offre tre diverse modalità di au­ten­ti­ca­zio­ne e cifratura:

  Au­ten­ti­ca­zio­ne Cifratura Username Password
noAu­th­No­Priv No No No
au­th­No­Priv No
authPriv
N.B.

Se la manager station supporta la terza versione del pro­to­col­lo SNMP, bi­so­gne­reb­be preferire sempre questa alle versioni pre­ce­den­ti. Inoltre, conviene usare il livello di sicurezza più alto in SNMPv3 (authPriv), se il di­spo­si­ti­vo lo permette.

Vai al menu prin­ci­pa­le