Sviluppo di un tool per la gestione di reti locali basato su SNMP
Introduzione 2
rappresentare e scambiare dati relativi al network management. In risposta a
tali esigenze, verso la fine degli anni ‘80 venne creato il Simple Network
Management Protocol (SNMP) che diventò ben presto lo standard per la
gestione di “reti eterogenee”. In seguito il progetto fu perfezionato, dapprima
nel 1991 con il Remote Monitoring (RMON) che introdusse algoritmi e
database per l’amministrazione di reti remote, quindi nel 1993 con SNMPv2, la
seconda versione del protocollo che garantì maggior controllo ed efficienza
rispetto all’originale. Negli ultimi anni è stato portato a termine lo sviluppo
della terza versione, la SNMPv3, la quale ha introdotto importanti novità nel
campo del controllo della sicurezza e sta diventando lo standard definitivo per
il network management.
Il presente lavoro di ricerca riguarda la realizzazione di un tool per la gestione
di reti locali, svolto nell’ambito di un tirocinio presso l’Istituto di Informatica e
Telematica (IIT) del CNR all’interno dell’Area della Ricerca di Pisa, in
collaborazione con il gruppo reti formato dal Dott. Claudio Menchi, l’Ing.
Abraham Gebrehiwot, l’Ing. Antonio Pinizzotto e diretto dal Dott. Marco
Sommani. Lo studio, in gran parte sperimentale, è avvenuto direttamente sulla
LAN dell’Area della Ricerca tramite una macchina Linux collegata alla rete
stessa. In particolare si sono realizzati applicativi che interrogano gli Switch
utilizzando SNMPv1 e ricavano informazioni sulle unità, sulle loro interfacce e
sulle forwarding table, permettendo di invidiare su quale segmento di rete si
trovi una macchina con un determinato MAC Address. Il tool inoltre è
accessibile via web e i dati ottenuti sono organizzati in un database.
Lo scopo della ricerca è avere uno strumento facile da utilizzare per ovviare ai
problemi più comuni in una LAN, quali l’individuazione di un host e il
Sviluppo di un tool per la gestione di reti locali basato su SNMP
Introduzione 3
controllo del corretto funzionamento fisico dei vari nodi. La necessità di un
tool come questo è dettata dal fatto che i prodotti disponibili sul mercato non
sempre riescono a fornire dati soddisfacenti, hanno spesso un raggio d’azione
limitato al livello 2 del modello OSI e presentano costi estremamente elevati. Il
nostro strumento invece lavora anche a livello superiore ed è in grado adattarsi
a qualsiasi architettura di rete.
Nei prossimi capitoli entreremo nel complesso campo del network
management e nei suoi aspetti fondamentali: i requisiti e le aree d’interesse, il
sistema di management e i suoi elementi, l’architettura del software di gestione.
A questo punto dovremmo avere un’idea della struttura su cui si basa SNMP e
potremo vedere in dettaglio le caratteristiche del protocollo: la SMI (Structure
of Management Information), i MIB (Management Information Base), le
operazioni consentite (get, getnext, set, trap) e i miglioramenti introdotti dalle
versioni successive.
Una volta chiarito l’aspetto teorico cercheremo dapprima di dare una visione
d’insieme del contesto di lavoro: in particolare il concetto di LAN, il suo
funzionamento e le sue problematiche, e la funzione degli Switch con
particolare riferimento al caso della rete corporate del CNR. Passeremo poi a
descrivere lo sviluppo del software nelle sue varie fasi: l’individuazione delle
specifiche desiderate, la ricerca dei dati, le modalità di acquisizione,
l’organizzazione e la presentazione, la lettura dei risultati. Il tutto naturalmente
implicherà l’utilizzo di vari strumenti necessari al software, dal linguaggio Perl e
dalle librerie Net-SNMP, ai database Mysql e alle interfacce web CGI, dei quali
cercheremo di sottolineare le funzioni necessarie ai nostri obiettivi.
Sviluppo di un tool per la gestione di reti locali basato su SNMP
Introduzione 4
Infine vedremo alcuni esempi di utilizzo dei programmi realizzati, mettendo in
luce i pregi e i difetti di SNMP e le altre possibili applicazioni di
quest’utilissimo ma spesso sottovalutato protocollo.
5
Cap. 1 Network Management
1.1 Scenario
L’utilizzo delle reti ha ormai assunto un’importanza fondamentale all’interno
delle aziende e il trend porta verso architetture sempre più ampie e complesse,
che devono supportare un gran numero di applicazioni e di utenti. Di pari
passo con questa crescita aumentano però i problemi sulla rete stessa, dove il
troppo traffico o il cattivo funzionamento degli apparati possono causare forti
cali di prestazioni e addirittura un blocco parziale o totale. C’è poi da dire che,
a questo punto dello sviluppo, le grandi reti non possono più essere gestite dal
solo intervento umano, ma richiedono l’uso di strumenti automatizzati e tale
necessità aumenta quanto più le reti sono eterogenee, vale a dire costituite da
dispositivi di diversa manifattura. Ecco allora com’è nata l’idea di SNMP, un
Sviluppo di un tool per la gestione di reti locali basato su SNMP
Network Management 6
set di standard per il network management delle reti TCP/IP integrato ormai
dai maggiori produttori nei loro dispositivi di rete, quali Router, Switch e
Workstation. Comunque, prima di esaminare il protocollo nel dettaglio,
facciamo una panoramica sui vari aspetti del network management.
1.2 Modello di Management ISO
Il punto di partenza, anche nel caso di un progetto di management, è fissato
dai requisiti dell’utente che in quest’ambito possiamo definire amministratore
di sistema (network manager). Naturalmente i primi risultati che si può
aspettare chi investe nel network management sono la facilità d’uso, la capacità
di risolvere i problemi e la sicurezza, seguiti dalla possibilità di controllare le
varie parti della rete e di avere un monitoraggio costante delle risorse. Per
venire incontro a queste esigenze l’International Standard Organization (ISO)
ha fissato le cinque aree chiave del management che sono poi state adottate
dalla maggior parte di produttori di sistemi di gestione. Vediamole.
1.2.1 Fault Management
Con la parola Fault non s’intende un errore ma un vero e proprio guasto. I
compiti del network manager sono pertanto:
• Localizzazione del guasto
• Isolamento dal resto della rete ancora funzionante
• Riconfigurazione della rete affinché funzioni senza la parte guasta
Sviluppo di un tool per la gestione di reti locali basato su SNMP
Network Management 7
• Riparazione del guasto e ripristino della configurazione iniziale
L’utente si aspetta una soluzione rapida ed affidabile, un pronto controllo
sul ripristino del guasto e un effetto ridotto sulle prestazioni.
1.2.2 Accounting Management
Il network manager ha la funzione di distribuire privilegi d’utilizzo delle
risorse all’interno dell’azienda secondo le effettive necessità dei singoli o dei
gruppi di utenti. Inoltre deve essere in grado di monitorare costantemente la
rete per individuare eventuali casi di sovraccarico o di errato utilizzo ed
intervenire per migliorare le prestazioni. Conoscere in dettaglio l’attività
degli utenti è quindi la chiave per pianificare un’attenta crescita della rete.
1.2.3 Configuration and Name Management
Le moderne reti sono formate da componenti fisici e logici che possono
essere configurati per eseguire differenti applicazioni. Il compito del
network manager è stabilire una configurazione base della rete e modificarla
secondo i bisogni degli utenti. Inoltre il manager deve informare gli utenti
dello stato della rete e assicurarsi che solo le persone autorizzate possano
amministrare le risorse.
Sviluppo di un tool per la gestione di reti locali basato su SNMP
Network Management 8
1.2.4 Performance Management
Il performance management si può dividere in due categorie:
• Monitoraggio delle attività sulla rete
• Controllo e regolazioni
Uno dei primi compiti del network manager è individuare le risorse critiche
della rete e determinare un livello operativo che funga da soglia tra il
funzionamento normale e l’insorgere di qualche problema. Gli utenti,
infatti, sono interessati in primis a conoscere aspetti come il tempo medio di
risposta della rete e l’affidabilità, quindi il manager deve disporre di dati
statistici che permettano di gestire le risorse e di riconoscere subito
situazioni di degrado delle prestazioni. A questo punto potrà intervenire, ad
esempio, bilanciando il traffico della rete o reinstradandone una parte per
evitare un bottleneck (collo di bottiglia).
1.2.5 Security Management
Quest’area si occupa della protezione dei dati e del controllo d’accesso.
Tutte le password e le autorizzazioni devono essere mantenute e distribuite
in modo codificato e sicuro. Inoltre occorre generare dei rapporti (log) per
monitorare l’accesso alle risorse e restringere il controllo della sicurezza a
persone autorizzate. Gli utenti, infatti, desiderano un sistema efficiente per
la tutela della privacy e protetto da intrusioni sia esterne sia interne.
Sviluppo di un tool per la gestione di reti locali basato su SNMP
Network Management 9
1.3 Sistema di Management
Un sistema di network management è un insieme di strumenti di monitoraggio
e controllo integrati nella rete stessa e facilmente accessibili tramite
un’interfaccia utente. Esso ha il compito di dare alla rete un’architettura
unificata, individuandone ogni singolo elemento e mettendolo in rapporto con
l’unità centrale di controllo.
Prendiamo in considerazione la seguente figura.
In questa possibile architettura ogni nodo della rete contiene del software
dedicato al management che è solitamente definito Network Management
Entity (NME) ed ha il compito di raccogliere dati statistici sul traffico,
immagazzinarli ed eseguire comandi quali: trasmettere dati, cambiare parametri,
informare sullo stato dell’unità, generare test di traffico. Tali comandi sono
Sviluppo di un tool per la gestione di reti locali basato su SNMP
Network Management 10
inviati da un centro di controllo (NMS, Network Management Server) che
presenta, oltre al NME, altro software provvisto di un’interfaccia utente detto
Network Management Application (NMA). Riassumendo, qualsiasi
dispositivo sulla rete (Workstation, Server, Router) può essere dotato di un
NME che viene anche definito Agent ed essere amministrato da un NMS
tramite NMA.
1.4 Architettura del software
Un qualsiasi software di network management e in particolar modo quello che
andremo a costruire, basa il proprio funzionamento sui Management
Information Base (MIB). I MIB sono una sorta di database presenti nei
dispositivi di rete, utilizzati per immagazzinare i dati raccolti dall’Agent e
contenere parametri di controllo. Lo stesso NMS ha un MIB che mantiene,
oltre alle proprie, informazioni riguardo agli Agent controllati. Lo scambio dei
dati di management tra i nodi avviene tramite un protocollo, nel nostro caso
SNMP, che è in grado di supportare delle semplici e fondamentali funzioni:
richiedere dati, impostare parametri e generare notifiche. Si tratta quindi di
integrare questi semplici strumenti per realizzare applicazioni che rispondano
alle esigenze dell’utente e infine completare il software con un’interfaccia facile
da utilizzare, versatile e veloce.
Sviluppo di un tool per la gestione di reti locali basato su SNMP
Network Management 11
1.5 Management distribuito
Fino ad ora abbiamo affrontato il network management con un approccio
centralizzato, dove una sola postazione eletta a ruolo di manager assumeva il
controllo dell’intera rete. Se tale soluzione garantisce una visione completa
delle risorse e del loro utilizzo, spesso viene preferito un management
distribuito e in particolar modo un’architettura gerarchica: due o più NMS in
grado di controllare tutto il sistema, affiancati da un certo numero di
management client distribuiti sulla rete con responsabilità limitate alle
proprie aree d’interesse. Quest’approccio, pur mantenendo un controllo
accentrato, presenta diversi lati positivi quali la diminuzione del traffico di
management, la maggiore scalabilità, la riduzione dei rischi nel caso di guasti al
centro di management ed è quindi preferibile.
12
Cap. 2 SNMP: Simple Network
Management Protocol
2.1 Cenni storici
Dalla nascita del TCP/IP nel 1969 e per molti anni a seguire non venne dato
gran credito al problema del network management. L’unico strumento
utilizzato fu l’Internet Control Message Protocol (ICMP) che consentiva lo
scambio di messaggi di controllo tra gli apparecchi di rete. La funzione
dell’ICMP più nota è echo request/echo reply che consente di testare la
connessione tra due nodi. L’applicazione basata su tale funzione tuttora più
usata è sicuramente PING (Packet Internet Groper) che consente, tra le altre
cose, di verificare la raggiungibilità di un’interfaccia fisica della rete e
monitorare il round trip time nonché la percentuale di pacchetti persi. Alla fine
Sviluppo di un tool per la gestione di reti locali basato su SNMP
SNMP: Simple Network Management Protocol 13
degli anni ‘80, a seguito dell’esponenziale sviluppo di Internet, crebbe l’esigenza
di strumenti per il management più potenti e diffusi. Dapprima nel ‘87 nacque
il Simple Gateway Management Protocol (SGMP) per il monitoraggio dei
Gateway (predecessori dei Router), ma l’esigenza di uno strumento ancor più
generalizzato diede il via a diversi progetti. Tra i tanti prevalsero il Simple
Network Management Protocol (SNMP), derivante da SGMP e il CMIP over
TCP/IP (CMOT) basato sulle specifiche ISO. L’Internet Architecture Board
(IAB), responsabile dell’evoluzione di Internet, stabilì uno sviluppo parallelo
delle due soluzioni, ma definì in comune la Structure of Management
Information (SMI: struttura di base per il formato dei dati di management) e il
Management Information Base (MIB: database contenenti i dati di
management) per garantire la compatibilità. Alla fine la semplicità e la
versatilità di SNMP vinsero contro le costrizioni dell’OSI e seguirono il
successo del TCP/IP. SNMP divenne così lo standard per il network
management e la maggior parte dei costruttori iniziò ad integrare il protocollo
nei propri apparecchi. Ormai in fase di acquisto è consigliata la scelta di
dispositivi managed e il sovrapprezzo pagato degli utenti si rivela poi essere un
ottimo investimento.
2.2 Architettura SNMP
L’unità centrale è l’NMS che offre al network manager un’interfaccia per il
controllo della rete e applicazioni per l’analisi dei dati e la soluzione dei
problemi. Inoltre ha la capacità di interagire con gli elementi remoti della rete e
possiede un central MIB che raccoglie i dati estratti dai nodi monitorati.