SNMP, acronimo di Simple Network Management Protocol, è uno dei protocolli più utilizzati per il monitoraggio e la gestione delle infrastrutture IT. Viene impiegato per raccogliere informazioni da switch, router, firewall, access point, server, stampanti, UPS e numerosi altri dispositivi dotati di interfaccia di gestione. Attraverso SNMP un sistema di monitoring può interrogare periodicamente gli apparati per conoscere lo stato delle interfacce, l'utilizzo della CPU, la memoria disponibile, gli errori di rete, il traffico transitato e numerosi altri parametri operativi. Il protocollo può inoltre permettere al dispositivo monitorato di inviare autonomamente notifiche al sistema centrale attraverso meccanismi come le SNMP Trap. La sua importanza deriva soprattutto dalla possibilità di centralizzare il controllo di infrastrutture eterogenee, raccogliendo informazioni tecniche provenienti da apparati prodotti da vendor differenti all'interno di una piattaforma di monitoraggio comune.

Come funziona SNMP

L'architettura SNMP si basa principalmente sulla comunicazione tra un sistema di gestione, generalmente chiamato SNMP Manager, e gli apparati monitorati, denominati SNMP Agent. Il Manager è normalmente rappresentato dal software di monitoring che interroga periodicamente i dispositivi, mentre l'Agent è il componente software presente sul dispositivo che espone le informazioni disponibili attraverso SNMP.

Il Manager può effettuare richieste per ottenere specifici valori attraverso identificatori chiamati OID, Object Identifier. Ogni parametro monitorabile viene associato a un identificatore all'interno di una struttura gerarchica definita dal protocollo. In questo modo il sistema di monitoring può richiedere, per esempio, il traffico ricevuto da una determinata interfaccia, il numero di pacchetti trasmessi oppure il valore relativo alla CPU di un server.

La comunicazione avviene normalmente tramite UDP e utilizza la porta 161 per le richieste SNMP verso l'Agent. Le Trap utilizzano invece normalmente la porta UDP 162 sul sistema che riceve le notifiche. L'utilizzo di UDP permette un modello di comunicazione leggero, particolarmente adatto al polling periodico di numerosi dispositivi.

OID e MIB

Per comprendere realmente il funzionamento di SNMP è necessario conoscere la relazione tra OID e MIB. Un OID identifica in modo gerarchico uno specifico oggetto gestibile, mentre una MIB, Management Information Base, descrive gli oggetti che possono essere interrogati e il loro significato.

Quando un sistema di monitoring deve conoscere, ad esempio, lo stato di una porta Ethernet, non interroga semplicemente un valore generico chiamato "porta". Utilizza uno specifico OID associato all'oggetto previsto dalla MIB del dispositivo. Le MIB possono contenere informazioni standardizzate oppure oggetti proprietari definiti dal produttore dell'apparato.

Questo aspetto è particolarmente importante nelle infrastrutture composte da dispositivi di vendor differenti. Una piattaforma di monitoring può utilizzare gli OID standard per raccogliere informazioni comuni, mentre per parametri specifici può essere necessario importare o interpretare le MIB proprietarie del produttore.

SNMP e monitoraggio degli switch

Gli switch rappresentano uno degli apparati nei quali SNMP viene utilizzato maggiormente. Attraverso il protocollo è possibile raccogliere informazioni sulle singole interfacce, verificare lo stato operativo delle porte, misurare il traffico in ingresso e uscita e individuare errori o anomalie a livello Ethernet.

Il monitoraggio delle interfacce permette di individuare una porta che passa frequentemente da up a down, un'interfaccia che presenta un numero anomalo di errori o un collegamento che raggiunge stabilmente una percentuale elevata della propria capacità. Queste informazioni possono essere utilizzate per individuare problemi fisici, saturazione della banda, cavi difettosi o configurazioni non ottimali.

Per il traffico di rete vengono spesso utilizzati contatori SNMP associati ai byte e ai pacchetti ricevuti e trasmessi. Il software di monitoring può confrontare i valori raccolti in momenti differenti e calcolare il throughput effettivo dell'interfaccia, rappresentandolo attraverso grafici storici.

Monitoraggio dei router

Nei router SNMP può essere utilizzato per controllare interfacce WAN e LAN, traffico, errori, utilizzo delle risorse hardware e altri parametri esposti dall'apparato. Il monitoraggio delle interfacce WAN può essere particolarmente utile per individuare saturazioni della connettività Internet o collegamenti tra sedi che raggiungono frequentemente il limite della banda disponibile.

In una rete aziendale con più collegamenti, i dati raccolti tramite SNMP possono essere correlati con altri eventi di rete per individuare variazioni anomale del traffico. Un aumento improvviso dei byte trasmessi può essere normale durante un backup, ma può anche indicare un comportamento anomalo se si verifica in un momento inatteso.

SNMP non interpreta autonomamente la causa dell'anomalia: fornisce dati che devono essere elaborati dal sistema di monitoring insieme ad altri indicatori. È proprio questa capacità di raccogliere metriche storiche a rendere SNMP particolarmente utile per l'analisi delle prestazioni.

SNMP sui server

SNMP può essere utilizzato anche per monitorare server fisici e sistemi operativi, purché sia disponibile un Agent compatibile. In questo caso è possibile raccogliere informazioni relative a CPU, memoria, storage, interfacce di rete e altri parametri esposti dall'Agent.

Il monitoraggio SNMP di un server può essere integrato con controlli più specifici effettuati attraverso altri protocolli o agenti software. Questo permette di distinguere il semplice stato dell'infrastruttura da quello dei servizi applicativi. Un server può infatti risultare raggiungibile e avere CPU e memoria nella norma, mentre un'applicazione ospitata sul sistema potrebbe essere non disponibile.

SNMP rappresenta quindi uno strumento per il monitoraggio infrastrutturale, ma non deve essere necessariamente considerato sostitutivo di sistemi specifici per Application Performance Monitoring o monitoraggio dei servizi.

Polling SNMP e raccolta delle metriche

Il polling è il meccanismo attraverso il quale il sistema di monitoring interroga periodicamente i dispositivi. L'intervallo deve essere scelto in base al tipo di parametro monitorato e alla dimensione dell'infrastruttura. Un polling troppo frequente può generare un numero elevato di richieste e aumentare il carico sul sistema di monitoring e sugli apparati, mentre un intervallo troppo lungo può ritardare l'individuazione di un problema.

La frequenza può quindi variare in funzione dell'importanza del dispositivo e della metrica. Un'interfaccia WAN critica potrebbe richiedere una raccolta più frequente rispetto a un parametro meno rilevante di un apparato secondario.

La piattaforma di monitoring deve inoltre gestire correttamente timeout, retry e dispositivi temporaneamente non raggiungibili. Un singolo timeout non dovrebbe necessariamente essere interpretato come un guasto definitivo, soprattutto in reti nelle quali possono verificarsi perdite temporanee di pacchetti.

SNMP Trap

Il polling è un modello nel quale il sistema centrale chiede informazioni agli apparati. Le SNMP Trap introducono invece un modello event-driven nel quale il dispositivo invia autonomamente una notifica al Manager quando si verifica una determinata condizione.

Una Trap può essere generata, per esempio, quando un'interfaccia cambia stato, quando viene rilevato un evento hardware oppure quando una condizione configurata nell'apparato viene raggiunta. Questo permette di notificare rapidamente determinati eventi senza attendere il successivo ciclo di polling.

Le Trap non eliminano comunque l'utilità del polling. In un sistema di monitoring professionale i due meccanismi possono essere utilizzati insieme: il polling permette di costruire uno storico delle metriche, mentre le Trap possono fornire notifiche immediate relative a eventi specifici.

Differenze tra SNMPv1, SNMPv2c e SNMPv3

Le versioni del protocollo hanno caratteristiche di sicurezza differenti. SNMPv1 e SNMPv2c utilizzano il modello delle community string, che può essere considerato una forma di autenticazione molto semplice. La community viene utilizzata dal Manager per accedere agli oggetti SNMP autorizzati, ma non offre lo stesso livello di protezione fornito da SNMPv3.

SNMPv3 introduce meccanismi di sicurezza più avanzati, tra cui autenticazione e cifratura. Questo permette di proteggere maggiormente le comunicazioni SNMP e di ridurre il rischio che informazioni sensibili vengano intercettate o che un soggetto non autorizzato possa interagire con l'Agent.

In un'infrastruttura aziendale moderna è quindi preferibile valutare SNMPv3 quando supportato dagli apparati. Se viene utilizzata una versione precedente, la configurazione dovrebbe almeno limitare gli host autorizzati a effettuare richieste e impedire che SNMP sia accessibile indiscriminatamente da reti non fidate.

Sicurezza di SNMP

Un errore comune consiste nel considerare SNMP un protocollo innocuo perché viene utilizzato principalmente per il monitoraggio. In realtà, una configurazione debole può fornire informazioni preziose a un attaccante. Attraverso SNMP possono essere esposti hostname, interfacce, indirizzi IP, informazioni hardware, contatori e caratteristiche dell'infrastruttura.

Per questo motivo l'accesso SNMP dovrebbe essere limitato attraverso ACL e firewall, consentendo le richieste solamente dagli indirizzi IP dei sistemi di monitoring autorizzati. La community string non dovrebbe essere quella predefinita e, quando possibile, dovrebbe essere preferito SNMPv3 con autenticazione e privacy.

È inoltre importante evitare di esporre SNMP direttamente su Internet. Il servizio dovrebbe essere confinato alla rete di management o a segmenti specifici dell'infrastruttura, applicando il principio del minimo privilegio anche a livello di rete.

SNMP e capacità delle interfacce

Uno degli utilizzi più interessanti di SNMP consiste nell'analisi storica del traffico. I contatori presenti nelle MIB possono essere letti a intervalli regolari e utilizzati per calcolare l'utilizzo della banda.

Questo permette di individuare non soltanto problemi immediati, ma anche trend di crescita. Se un collegamento Internet passa progressivamente da un utilizzo medio del 30% a un utilizzo dell'80%, il dato può essere utilizzato per pianificare un incremento della connettività prima che si verifichi una saturazione.

Lo stesso principio può essere applicato agli uplink degli switch, ai collegamenti tra sedi, alle interfacce dei firewall e ai link verso sistemi di storage. La disponibilità di dati storici trasforma quindi SNMP da semplice strumento di controllo a componente del capacity planning dell'infrastruttura.

SNMP e monitoraggio degli errori

Il controllo dei contatori di errore delle interfacce è particolarmente utile per individuare problemi di rete che non sempre producono un'interruzione completa del servizio. Errori CRC, pacchetti scartati, collisioni o problemi di negoziazione possono indicare problemi fisici o configurazioni non corrette.

Un'interfaccia può infatti risultare apparentemente operativa mentre presenta un numero crescente di errori. Un sistema di monitoring configurato correttamente può rilevare la variazione dei contatori e generare un alert prima che il problema provochi un degrado significativo delle prestazioni.

Questo tipo di monitoraggio è particolarmente importante per collegamenti critici, uplink tra switch e connessioni verso server o sistemi di storage.

SNMP e monitoraggio centralizzato

Il vero valore di SNMP emerge quando viene integrato all'interno di una piattaforma centralizzata di monitoring. Invece di accedere manualmente all'interfaccia web di ogni switch o router, l'amministratore può visualizzare da un unico sistema lo stato dell'intera infrastruttura.

Il software di monitoring può raccogliere metriche, memorizzarle in un database o in un sistema time-series, generare grafici, applicare soglie e produrre notifiche. È inoltre possibile correlare dati provenienti da dispositivi differenti, rendendo più semplice individuare la relazione tra un problema di rete e un eventuale problema infrastrutturale.

Un esempio tipico è rappresentato da un server che presenta un aumento del traffico di rete contemporaneamente a un incremento dell'utilizzo CPU e a una saturazione dell'interfaccia dello switch. L'analisi combinata delle metriche può fornire informazioni molto più utili rispetto al controllo isolato di un singolo apparato.

Limiti di SNMP

Nonostante la sua diffusione, SNMP non deve essere considerato una soluzione universale per il monitoraggio. La quantità e la qualità delle informazioni disponibili dipendono dall'Agent e dalle MIB supportate dal dispositivo. Apparati differenti possono inoltre esporre metriche differenti, rendendo necessaria una fase di normalizzazione all'interno della piattaforma di monitoring.

SNMP fornisce principalmente dati infrastrutturali e non descrive necessariamente lo stato reale di un'applicazione. Un server può rispondere correttamente alle richieste SNMP mentre un servizio web, un database o un'applicazione aziendale sono completamente indisponibili.

Per questo motivo SNMP dovrebbe essere integrato con altri sistemi di controllo, come monitoring dei servizi, controlli HTTP, monitoraggio dei processi, log centralizzati e sistemi di observability, creando una visione più completa dello stato dell'infrastruttura.

Perché utilizzare SNMP nell'infrastruttura aziendale

SNMP continua a rappresentare una tecnologia fondamentale per il monitoraggio delle infrastrutture di rete perché permette di raccogliere informazioni tecniche da dispositivi estremamente differenti attraverso un protocollo standardizzato. Switch, router, firewall, server, access point, UPS e altri apparati possono essere integrati in una piattaforma centralizzata, consentendo di controllare prestazioni, disponibilità, traffico ed errori.

La progettazione di un sistema SNMP efficace richiede però una corretta configurazione degli Agent, una gestione adeguata delle MIB e degli OID, una frequenza di polling coerente con le dimensioni dell'infrastruttura e soprattutto una configurazione sicura degli accessi. L'utilizzo di SNMPv3, la limitazione delle sorgenti autorizzate, la segmentazione della rete di management e il monitoraggio degli eventi permettono di ridurre i rischi associati al protocollo.

Integrato con una piattaforma di monitoring, SNMP permette infine di trasformare i dati raccolti dagli apparati in informazioni utili per individuare guasti, analizzare prestazioni, prevedere saturazioni e pianificare l'evoluzione dell'infrastruttura IT.