Definizione di un MIB per il controllo di un - Luca Deri

Transcript

Definizione di un MIB per il controllo di un - Luca Deri
Complementi di Gestione di Rete
A.A. 2005/2006
Definizione di un MIB per il controllo di un impianto antifurto
Abstract
Fino a qualche anno fa, possedere un impianto antifurto era prerogativa di pochi: in genere erano
industrie, banche, enti (pubblici o privati) e comunque erano pochi i privati che se lo potevano
permettere. Chiaramente, lo sviluppo tecnologico degli ultimi anni ha portato ad una maggior
accessibilità (soprattutto economica) e quindi ad una maggior diffusione di questi impianti, la cui
complessità aumenta di pari passo con la tecnologia. Questa complessità fa in modo che si
aggiungano problemi di gestione: mentre un tempo il numero di impianti era limitato ed erano
abbastanza semplici (quindi erano di facile manutenzione anche da parte di poche persone), oggi
non possiamo affermare altrettanto (il carico di lavoro per coloro che installano e gestiscono tali
sistemi è notevolmente maggiore).
Per cercare di agevolare la risoluzione di questo problema, nelle successive pagine verrà mostrata
una possibile definizione di un MIB per la gestione da remoto di tali impianti, in modo da poter
intervenire in modo mirato ove ce ne fosse bisogno.
Tommaso Ciampalini 244652
Indice
1. Il Sistema
1.1. Breve descrizione delle Componenti........................................ 3
1.2. Funzionamento............................................................................... 4
2. Il Mib
2.1. Descrizione delle variabili........................................................... 5
2.2. Descrizione delle Trap.................................................................. 7
2.3. Definizione del MIB....................................................................... 8
3. Conclusioni
3.1. Limiti del lavoro............................................................................. 20
3.2. Riferimenti....................................................................................... 20
2
1. Il Sistema
1.1 Breve descrizione delle Componenti
Nonostante la trattazione non faccia riferimento a nessun modello in particolare, il funzionamento
di una generico impianto è molto semplice (per agevolare la descrizione, si può fare riferimento allo
schema sottostante). Ovviamente è possibile avere sistemi molto più complessi e articolati (anche in
modo diverso) ma per la trattazione è sufficiente il modello evidenziato.
La centralina è il cuore del sistema (evidenziata in verde), attraverso essa è possibile gestire tutto
l’impianto: per cercare di semplificare la trattazione, supporremo la centralina composta da un
piccolo modulo di memoria, da una serie di interfacce (per comunicare con tutte le periferiche
possibili), da un dispositivo radio (per comunicare con sensori senza filo), da un alimentatore e da
una batteria (per garantire un’autonomia alla centralina anche in caso di blackout).
Volendo elencare i possibili elementi con cui essa interagisce avremo:
- Una quantità variabile di sensori: ne esistono di vari modelli, tra cui quelli volumetrici (per
controllare i movimenti all’interno di una stanza tramite fasci di raggi infrarossi, ultrasuoni,
o altro), quelli da applicare a porte e finestre (che scattano all’apertura), quelli a contatto (da
applicare a vetri, oggetti preziosi e via dicendo), ecc.;
- Una (o più) sirene;
- Una centralina telefonica, in grado di poter chiamare dei numeri telefonici definiti
dall’utente e di avviare l’ascolto di un nastro registrato che avverte l’interlocutore del furto
in corso;
- Uno (o più) tastierini numerici (o comunque apparecchi per l’accensione/spegnimento del
sistema - chiavi elettroniche, tessere magnetiche,ecc. -);
Nello schema è presente anche un’ulteriore componente, chiamato “punto di accesso”
(schematizzato in blu) il quale è, per l’appunto, il punto di accesso per monitorare il nostro sistema
tramite il MIB. Questo componente è stato volutamente “astratto” in quanto potrebbe avere varie
implementazioni hardware: per come è stato ideato il nostro MIB, questo componente potrebbe
3
offrire due interfacce agli eventuali manager: un’interfaccia che comunica tramite un manager in
remoto (quindi un’interfaccia connessa a Internet e dotata di un proprio indirizzo IP) e un’altra
interfaccia locale (una normalissima presa di rete, usate dai PC) alla quale l’eventuale gestore possa
connettersi direttamente sul posto dove è installato l’impianto. Le due interfacce sono fondamentali
in quanto la prima permette all’installatore/gestore di accorgersi di eventuali malfunzionamenti del
sistema senza necessariamente disturbare il cliente con continue visite e verifiche e, anzi,
eventualmente di porre rimedio senza che il cliente si accorga di nulla mentre la seconda è utile per
poter avere una visione complessiva della situazione direttamente sul campo (utile nel caso di
aggiornamento delle periferiche, di sostituzione di alcune componenti, di particolari verifiche).
1.2 Funzionamento
Nonostante tutti si conosca a grandi linee il funzionamento di un anti-furto, la descrizione che segue
permette una migliore focalizzazione sull’inserimento del MIB all’interno del sistema.
Il sistema ha sostanzialmente due stati: inserito e disinserito. In alcuni modelli è possibile
specificare il livello di protezione desiderato: per esempio, un sistema domestico (composto da
sensori volumetrici e sensori messi alle porte) potrebbe avere due stati di attivazione, uno totale e
uno perimetrico (cioè avere attivato solo i sensori sugli infissi, permettendo la libera circolazione
all’interno dello stabile).
La centralina, come già detto precedentemente, è il cuore del nostro sistema: è in costante contatto
con le altre componenti del sistema, in particolare con i sensori. Proprio da questi ultimi ottiene la
visione complessiva dell’ambiente in cui opera: ogni qualvolta un individuo attraversa una stanza,
apre una finestra, muove un qualcosa, i sensori lo comunicano alla centralina. Sarà questa ultima
che deciderà l’azioni conseguenti da fare (se far scattare l’allarme o no). Da questa descrizione
deduciamo che i sensori devono essere sempre accesi (anche quando non vengono utilizzati dal
livello di sicurezza impostato) e che quindi, uno stato di un sensore su off implica il conseguente
malfunzionamento dello stesso.
Per quanto riguarda i sensori, ne esistono di diversi tipi: da quelli volumetrici (alcuni modelli
emanano un fascio di raggi infrarossi i quali rilevano con facilità il movimento all’interno di una
stanza, altri usano raggi laser o ultrasuoni), a quelli a pressione, passando dai sensori da applicare a
porte e infissi (sensibili alle aperture degli stessi), a quelli radio-controllati o filo-controllati e via
dicendo.
Il tastierino numerico ricopre l’importante ruolo di strumento per il riconoscimento degli utenti:
questi ultimi infatti, digitano dei codici (alfa)numerici per l’attivazione e degli altri per il
disinserimento (le password). In molti casi, il tastierino ricopre anche la funzione di piccolo
terminale dal quale si è in grado di settare alcuni parametri all’interno della centralina. Da notare
che la centralina può far scattare l’allarme anche nel caso in cui dal tastierino numerico si veda
arrivare valanghe di codici (infatti è molto probabile che qualcuno stia cercando di forzarlo).
Nel caso in cui la centralina faccia scattare l’antifurto, comunica alla sirena il segnale di attivazione
e allo stesso tempo, da il via alla centralina telefonica la quale inizia a chiamare i numeri in
memoria e fa partire la registrazione vocale contenente la richiesta di aiuto.
Come si nota da questa banale descrizione, tra le compenti c’è un forte dipendenza, ogni compente
ha bisogno delle altre affinchè svolga efficacemente il proprio lavoro. C’è da dire anche che, in
genere, un’antifurto, nonostante chi ce l’abbia lo usi quotidianamente, non scatta tutti i giorni, cioè,
per intenderci, la sirena non suona tutti i giorni né tanto meno la centralina telefonica parte
quotidianamente: quindi, affinchè nel momento del reale bisogno tutto funzioni correttamente,
bisogna sottoporre ad un attento monitoraggio tutto il sistema. Ed è proprio in questo ambito che si
inserisce il nostro MIB (agent). L’azione di monitoraggio eseguita dall’agent è pressochè costante e
coinvolge tutte la variabili usate per mantenere lo stato complessivo del sistema: ogni qualvolta si
verifichi anomalie invia una trap al manager impostato (questo controllo è affiancato anche nel
momento in cui il sistema viene inserito).
4
2. Il Mib
2.1 Descrizione delle variabili
Elenchiamo ora le variabili con cui l’agent mantiene lo stato del sistema. Tutte le variabili sono da
considerarsi read-only tranne dove esplicitamente precisato.
1) Centralina:
1.1) Dati generali impianto
1.1.1) Locazione dell’impianto (domicilio del cliente)
1.1.2) Data di installazione dell’impianto
1.1.3) Codice addetto responsabile dell’installazione
1.1.4) Codice certificazione dell’impianto
1.1.5) Ultima revisione [read-write]
1.1.6) Codice addetto revisionatore [read-write]
1.2) Stato centralina
1.2.1) Nome modello centralina
1.2.2) Codice seriale produzione centralina
1.2.3) Ditta costruttrice centralina
1.2.4) Stato Centralina
-1 Fuori Servizio
0 Disinserito
1 Inserito (Livello_1) (inserito al livello di sicurezza Livello_1)
2 Inserito (Livello_2) (
“”
“”
Livello_2)
3 Inserito (Livello_3) (
“”
“”
Livello_3)
1.2.5) Tempo complessivo di attività
1.2.6) Ultimo Avvio Impianto (inserimento)
1.2.7) Ultimo Stop Impianto (disinserimento)
1.2.8) utentiTable
1.2.8.1)utentiEntry
1.2.8.1.1) Nome Utente
1.2.8.1.2) Password [not-accessible]
1.2.8.1.3) Ultimo accesso effettuato
1.2.9) Ultimo Utente Entrato
1.2.10) Stato Alimentazione (in caso di black-out subentra la batteria)
0 Alimentazione rete fissa
1 Alimentazione Batteria
1.2.11) Stato Batteria (monitorato continuamente)
1.2.12) Voltaggio in ingresso (non importa se proveniente da batteria o dalla rete)
2) Sensori:
2.1) Stato Sensori
2.1.1) sensoriTable
2.1.1.1) sensoriEntry
2.1.1.1.1) idSensore
2.1.1.1.2) Nome Modello
2.1.1.1.3) Codice seriale produzione
2.1.1.1.4) Locazione del Sensore
2.1.1.1.5) Stato Attività Sensore
5
0 Funzionante (On)
1 Non Funzionante (Off)
2.1.1.1.6) Rilevamento Attività
0 No
1 Si
2.1.1.1.7) Stato Alimentazione (dipende dal modello)
0 Alimentazione rete fissa
1 Alimentazione Batteria
2.1.1.1.8) Stato batteria (valido solo se il modello ha la batteria)
Valore Negativo se non ha la batteria
Voltaggio altrimenti
2.1.1.1.9) Voltaggio in ingresso (non importa se proveniente da
batteria o dalla rete)
2.1.1.1.10) Ultima volta scattato
2.2) Livello Protezione desiderato (suppongo che siano possibili 3 livelli di sicurezza)
(in questa tabella è possibile la scrittura)
2.2.1) sicurezzaTable
2.2.1.1) sicurezzaEntry
2.2.1.1.1) idSensore
2.2.1.1.2) Livello_1 [read-write]
0 Non Partecipante
1 Partecipante
2.2.1.1.3) Livello_2 [read-write]
0 Non Partecipante
1 Partecipante
2.2.1.1.4) Livello_3 [read-write]
0 Non Partecipante
1 Partecipante
3) Sirena:
3.1) Stato Sirena (suppongo una sola sirena)
3.1.1) Nome modello sirena
3.1.2) Codice seriale produzione sirena
3.1.3) Locazione della sirena
3.1.4) Stato attività sirena
0 Funzionante (On)
1 Non Funzionante (Off)
3.1.5) Stato Alimentazione (in caso di black-out subentra la batteria)
0 Alimentazione rete fissa
1 Alimentazione Batteria
3.1.6) Stato Batteria (monitorato continuamente)
3.1.7) Voltaggio in ingresso (non importa se proveniente da batteria o dalla rete)
4) Tastierino Numerico:
4.1) Stato Tastierino (suppongo un solo tastierino)
4.1.1) Nome modello tastierino numerico
4.1.2) Codice seriale produzione tastierino numerico
4.1.3) Locazione del tastierino numerico
4.1.4) Numero Tentativi Consentiti [read-write]
4.1.5) Stato attività tastierino numerico
0 Funzionante (On)
1 Non Funzionante (Off)
6
4.1.6) Stato Alimentazione (in caso di black-out subentra la batteria)
0 Alimentazione rete fissa
1 Alimentazione Batteria
4.1.7) Stato Batteria (monitorato continuamente)
4.1.8) Voltaggio in ingresso (non importa se proveniente da batteria o dalla rete)
5) Centralina Telefonica:
5.1) Stato Centralina Telefonica (suppongo una sola centralina)
5.1.1) Nome modello centralina telefonica
5.1.2) Codice seriale produzione centralina telefonica
5.1.3) Locazione del centralina telefonica
5.1.4) Stato attività centralina telefonica
0 Funzionante (On)
1 Non Funzionante (Off)
5.1.5) Stato Alimentazione (in caso di black-out subentra la batteria)
0 Alimentazione rete fissa
1 Alimentazione Batteria
5.1.6) Stato Batteria (monitorato continuamente)
5.1.7) Voltaggio in ingresso (non importa se proveniente da batteria o dalla rete)
5.1.8) Connessione linea telefonica
0 Presente
1 Assente
5.2) Elenco Numeri da chiamare
(in questa tabella è possibile la scrittura)
5.2.1) elencoPersoneTable
5.2.1.1) elencoPersoneEntry
5.2.1.1.1) NomePersona [read-write]
5.2.1.1.2) NumeroTelefono [read-write]
2.2 Descrizione delle Trap
Analogamente a quanto fatto per le variabili, elenchiamo le trap generate dall’agent.
CentralinaOutOfService: la centralina non funziona correttamente;
CentralinaBattery: alla centralina o non arriva energia sufficiente (non importa se dalla rete
elettrica o dalla batteria) o ne arriva troppa;
SensoreOff: il sensore non funziona correttamente;
SensoreBattery: al sensore o non arriva energia sufficiente (non importa se dalla rete elettrica o
dalla batteria) o ne arriva troppa;
SensoreScattato : il sensore ha rilevato attività di qualche tipo (segnalazione inviata solo ad
impianto inserito);
SirenaOff : la sirena non funziona correttamente;
SirenaBattery: alla sirena o non arriva energia sufficiente (non importa se dalla rete elettrica o
dalla batteria) o ne arriva troppa;
7
TastierinoOff : il tastierino non funziona correttamente;
TasierinoBattery: al tastierino o non arriva energia sufficiente (non importa se dalla rete elettrica
o dalla batteria) o ne arriva troppa;
TastierinoTooCodes: il tastierino genera troppi codici (segnalazione inviata solo ad impianto
inserito);
CentralinaTelefonicaOff : la centralina telefonica non funziona correttamente;
CentralinaTelefonicaBattery: alla centralina telefonica o non arriva energia sufficiente (non
importa se dalla rete elettrica o dalla batteria) o ne arriva troppa;
CentralinaTelefonicaNoTelephoneLine: la centralina telefonica non ha accesso alla rete telefonica;
2.3 Definizione del MIB
ANTIFURTO-MIB DEFINITIONS::=BEGIN
IMPORTS
MODULE-IDENTITY,OBJECT-TYPE,NOTIFICATION-TYPE,Gauge32,
Unsigned32,private,Counter32,Integer32,TimeTicks FROM SNMPv2-SMI
DisplayString, DateAndTime FROM SNMPv2-TC;
antifurtoMIB MODULE-IDENTITY
LAST-UPDATED "200605291616Z"
ORGANIZATION"Antifurti Riuniti s.r.l."
CONTACT-INFO
"Tommaso Ciampalini
e-mail:[email protected]"
DESCRIPTION "Modulo MIB per il monitoraggio di sistemi antifurto."
::= { private 7 }
-- Definizione Oggetti
centralina OBJECT IDENTIFIER ::= { antifurtoMIB 1 }
sensori OBJECT IDENTIFIER ::= { antifurtoMIB 2 }
sirena OBJECT IDENTIFIER ::= { antifurtoMIB 3 }
tastierinoNumerico OBJECT IDENTIFIER ::= { antifurtoMIB 4 }
centralinaTelefonica OBJECT IDENTIFIER ::= { antifurtoMIB 5 }
segnalazioni OBJECT IDENTIFIER ::= { antifurtoMIB 6 }
datiGeneraliImpianto OBJECT IDENTIFIER ::= { centralina 1 }
statoCentralina OBJECT IDENTIFIER ::= { centralina 2 }
statoSensori OBJECT IDENTIFIER ::= { sensori 1 }
livelloProtezioneDesiderato OBJECT IDENTIFIER ::= { sensori 2 }
8
statoSirena OBJECT IDENTIFIER ::= { sirena 1 }
statoTastierinoNumerico
OBJECT IDENTIFIER ::= { tastierinoNumerico 1 }
statoCentralinaTelefonica OBJECT IDENTIFIER ::= { centralinaTelefonica
elencoNumeriTel OBJECT IDENTIFIER ::= { centralinaTelefonica
1}
2 }
-- CENTRALINA
locazioneImpianto OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Locazione dell'impianto."
::= { datiGeneraliImpianto 1 }
dataInstalazioneImpianto OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Data di installazione dell'impianto."
::= { datiGeneraliImpianto 2 }
codiceAddettoInstalazioneImpianto OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Codice dell'addetto all' installazione dell'impianto."
::= { datiGeneraliImpianto 3 }
codiceCertificazioneImpianto OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Codice di certificazione dell'impianto."
::= { datiGeneraliImpianto 4 }
ultimaRevisioneImpianto OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-write
STATUS current
DESCRIPTION "Data ultima revisione dell'impianto."
::= { datiGeneraliImpianto 5 }
addettoUltimaRevisioneImpianto OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-write
STATUS current
DESCRIPTION "Codice dell'addetto all'ultima revisione dell'impianto."
::= { datiGeneraliImpianto 6 }
nomeModelloCentralina OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Nome del modello della centralina."
::= { statoCentralina 1 }
9
codiceSerialeCentralina OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Il codice seriale di produzione della centralina."
::= { statoCentralina 2 }
industriaProduttriceCentralina OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Industria produttrice della centralina."
::= { statoCentralina 3 }
statoOperanteCentralina OBJECT-TYPE
SYNTAX INTEGER { fuoriServizio(-1), disinserito(0),
attivoSicurezza1(1), attivoSicurezza2(2), attivoSicurezza3(3) }
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Indica lo stato corrente della centralina, se e' fuori
servizio, se e' disinserita, se e' attiva e a quale livello di
sicurezza."
::= { statoCentralina 4 }
attivitaCentralina OBJECT-TYPE
SYNTAX TimeTicks
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Tempo complessivo di attivita' della centralina
dall'ultima interruzione di servizio riscontrato (in ore)."
::= { statoCentralina 5 }
ultimoAvvio OBJECT-TYPE
SYNTAX DateAndTime
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Ultimo avvio dell'impianto (inserimento)."
::= { statoCentralina 6 }
ultimoStop OBJECT-TYPE
SYNTAX DateAndTime
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Ultimo stop dell'impianto (disinserimento)."
::= { statoCentralina 7 }
utentiTable OBJECT-TYPE
SYNTAX SEQUENCE OF UtentiEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION " Tabella (concettuale) di record riguardante gli utenti
che hanno accesso al sistema."
::= { statoCentralina 8 }
utentiEntry OBJECT-TYPE
SYNTAX UtentiEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Informazioni riguardo ogni utente che ha accesso al
sistema."
INDEX { nomeUtente }
::= { utentiTable 1 }
10
UtentiEntry ::= SEQUENCE
{
nomeUtente DisplayString,
passwordUtente DisplayString,
ultimoAccessoUtente DateAndTime
}
nomeUtente OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Nome e Cognome dell'utente."
::= { utentiEntry 1 }
passwordUtente OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Password relativa all'utente."
::= { utentiEntry 2 }
ultimoAccessoUtente OBJECT-TYPE
SYNTAX DateAndTime
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Ultimo accesso dell'utente (in cui ha disinserito
l'antifurto)."
::= { utentiEntry 3 }
ultimoUtente OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Ultimo utente che e' entrato (e che ha conseguentemente
disinserito l'antifurto)."
::= { statoCentralina 9}
alimentazioneCentralina OBJECT-TYPE
SYNTAX INTEGER { reteFissa(0), batteria(1) }
STATUS current
DESCRIPTION "Indica il tipo di alimentazione che e' attualmente in
uso nella centralina."
::= { statoCentralina 10}
statoBatteriaCentralina OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Il livello di carica della batteria (in centesimi di
volt)."
::= { statoCentralina 11}
correnteIngressoCentralina OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Voltaggio in ingresso della centralina (in centesimi di
volt). Quando e' in uso la batteria, il valore corrisponde al
voltaggio erogato dalla batteria, altrimenti misura il
voltaggio ottenuto dalla rete fissa."
::= { statoCentralina 12}
11
-- SENSORI
sensoriTable OBJECT-TYPE
SYNTAX SEQUENCE OF SensoriEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION " Tabella (concettuale) di record riguardante i sensori
in uso nel sistema."
::= { statoSensori 1 }
sensoriEntry OBJECT-TYPE
SYNTAX SensoriEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Informazioni riguardo ogni sensore del sistema."
INDEX { idSensore }
::= { sensoriTable 1 }
SensoriEntry ::= SEQUENCE
{
idSensore DisplayString,
nomeModelloSensore DisplayString,
codiceSerialeSensore DisplayString,
locazioneSensore DisplayString,
statoAttivitaSensore Integer32,
rilAttivitaSensore INTEGER,
statoAlimentazioneSensore INTEGER,
statoBatteriaSensore INTEGER,
correnteIngressoSensore Integer32,
ultimoScattoSensore DateAndTime
}
idSensore OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Identificatore del sensore all'interno del sistema."
::= { sensoriEntry 1 }
nomeModelloSensore OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Nome del modello."
::= { sensoriEntry 2 }
codiceSerialeSensore OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Codice seriale del prodotto."
::= { sensoriEntry 3 }
locazioneSensore OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Locazione del sensore all'interno dell'edificio."
::= { sensoriEntry 4 }
12
statoAttivitaSensore OBJECT-TYPE
SYNTAX INTEGER { on(0), off(1) }
STATUS current
DESCRIPTION "Stato corrente del sensore. Da notare che lo stato Off
implica malfunzionamento."
::= { sensoriEntry 5 }
rilAttivitaSensore OBJECT-TYPE
SYNTAX INTEGER { no(0), si(1) }
STATUS current
DESCRIPTION "Indica se il sensore e' scattato in questo preciso
momento."
::= { sensoriEntry 6 }
statoAlimentazioneSensore OBJECT-TYPE
SYNTAX INTEGER { reteFissa(0), batteria(1) }
STATUS current
DESCRIPTION "Indica se il sensore e' alimentato a batteria o a rete
fissa."
::= { sensoriEntry 7 }
statoBatteriaSensore OBJECT-TYPE
SYNTAX INTEGER (-2147483648..2147483647)
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Indica il livello di carica della batteria (in centesimi
di volt). Un valore negativo implica che il sensore non
possiede nessuna batteria."
::= { sensoriEntry 8 }
correnteIngressoSensore OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Voltaggio in ingresso al sensore (in centesimi di volt).
Quando e' in uso la batteria, il valore corrisponde al
voltaggio erogato dalla batteria, altrimenti misura il
voltaggio ottenuto dalla rete fissa."
::= { sensoriEntry 9 }
ultimoScattoSensore OBJECT-TYPE
SYNTAX DateAndTime
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Ultima volta che il sensore e' scattato (ad antifurto
inserito)."
::= { sensoriEntry 10 }
sicurezzaTable OBJECT-TYPE
SYNTAX SEQUENCE OF SicurezzaEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION " Tabella (concettuale) di record riguardante i vari
livelli di sicurezza adottati nel sistema."
::= { statoSensori 2 }
sicurezzaEntry OBJECT-TYPE
SYNTAX SicurezzaEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Informazioni riguardo i livelli di sicurezza adottati
13
nel sistema."
INDEX { idSensoreSic }
::= { sicurezzaTable 1 }
SicurezzaEntry ::= SEQUENCE
{
idSensoreSic DisplayString,
livello1 INTEGER,
livello2 INTEGER,
livello3 INTEGER
}
idSensoreSic OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Identificatore del sensore all'interno del sistema (il
valore è lo stesso del campo 2.1.1.1.1)."
::= { sicurezzaEntry 1 }
livello1 OBJECT-TYPE
SYNTAX INTEGER { nonPartecipante(0), partecipante(1) }
STATUS current
DESCRIPTION "Indica se il sensore partecipa o meno al livello di
sicurezza."
::= { sicurezzaEntry 2 }
livello2 OBJECT-TYPE
SYNTAX INTEGER { nonPartecipante(0), partecipante(1) }
STATUS current
DESCRIPTION "Indica se il sensore partecipa o meno al livello di
sicurezza."
::= { sicurezzaEntry 3 }
livello3 OBJECT-TYPE
SYNTAX INTEGER { nonPartecipante(0), partecipante(1) }
STATUS current
DESCRIPTION "Indica se il sensore partecipa o meno al livello di
sicurezza."
::= { sicurezzaEntry 4 }
-- SIRENA
nomeModelloSirena OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Nome del modello di sirena."
::= { statoSirena 1 }
codiceSerialeSirena OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Codice seriale del modello di sirena."
::= { statoSirena 2 }
locazioneSirena OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
14
DESCRIPTION "Locazione all'interno dell'edificio della sirena."
::= { statoSirena 3 }
statoAttivitaSirena OBJECT-TYPE
SYNTAX INTEGER { on(0), off(1) }
STATUS current
DESCRIPTION "Stato corrente della sirena. Da notare che lo stato Off
implica malfunzionamento."
::= { statoSirena 4 }
statoAlimentazioneSirena OBJECT-TYPE
SYNTAX INTEGER { reteFissa(0), batteria(1) }
STATUS current
DESCRIPTION "Indica se la sirena e' alimentata a batteria o a rete
fissa."
::= { statoSirena 5 }
statoBatteriaSirena OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Indica il livello di carica della batteria (in centesimi
di volt)."
::= { statoSirena 6 }
correnteIngressoSirena OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Voltaggio in ingresso alla sirena (in centesimi di
volt). Quando e' in uso la batteria, il valore corrisponde al
voltaggio erogato dalla batteria, altrimenti misura il
voltaggio ottenuto dalla rete fissa."
::= { statoSirena 7 }
-- TASTIERINO NUMERICO
nomeModelloTastierino OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Nome del modello di sirena."
::= { statoTastierinoNumerico 1 }
codiceSerialeTastierino OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Codice seriale del tastierino numerico."
::= { statoTastierinoNumerico 2 }
locazioneTastierino OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Locazione all'interno dell'edificio del tastierino."
::= { statoTastierinoNumerico 3 }
maxNumTentativiTastierino OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
15
STATUS current
DESCRIPTION "Numero massimo di tentativi di accesso consecutivi
errati."
::= { statoTastierinoNumerico 4 }
statoAttivitaTastierino OBJECT-TYPE
SYNTAX INTEGER { on(0), off(1) }
STATUS current
DESCRIPTION "Stato corrente del tastierino. Da notare che lo stato
Off implica malfunzionamento."
::= { statoTastierinoNumerico 5 }
statoAlimentazioneTastierino OBJECT-TYPE
SYNTAX INTEGER { reteFissa(0), batteria(1) }
STATUS current
DESCRIPTION "Indica se il tastierino e' alimentato a batteria o a
rete fissa."
::= { statoTastierinoNumerico 6 }
statoBatteriaTastierino OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Indica il livello di carica della batteria (in centesimi
di volt)."
::= { statoTastierinoNumerico 7 }
correnteIngressoTastierino OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Voltaggio in ingresso al tastierino (in centesimi di
volt). Quando e' in uso la batteria, il valore corrisponde al
voltaggio erogato dalla batteria, altrimenti misura il
voltaggio ottenuto dalla rete fissa."
::= { statoTastierinoNumerico 8 }
-- CENTRALINA TELEFONICA
nomeModelloCentrTel OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Nome del modello di centralina telefonica."
::= { statoCentralinaTelefonica 1 }
codiceSerialeCentrTel OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Codice seriale di centralina telefonica."
::= { statoCentralinaTelefonica 2 }
locazioneCentrTel OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Locazione all'interno dell'edificio della centralina
telefonica."
::= { statoCentralinaTelefonica 3 }
16
statoAttivitaCentrTel OBJECT-TYPE
SYNTAX INTEGER { on(0), off(1) }
STATUS current
DESCRIPTION "Stato corrente della centralina telefonica. Da notare
che lo stato Off implica malfunzionamento."
::= { statoCentralinaTelefonica 4 }
statoAlimentazioneCentrTel OBJECT-TYPE
SYNTAX INTEGER { reteFissa(0), batteria(1) }
STATUS current
DESCRIPTION "Indica se la centralina telefonica e' alimentata a
batteria o a rete fissa."
::= { statoCentralinaTelefonica 5 }
statoBatteriaCentrTel OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Indica il livello di carica della batteria (in centesimi
di volt)."
::= { statoCentralinaTelefonica 6 }
correnteIngressoCentrTel OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Voltaggio in ingresso alla centralina telefonica (in
centesimi di volt). Quando e' in uso la batteria, il valore
corrisponde al voltaggio erogato dalla batteria, altrimenti
misura il voltaggio ottenuto dalla rete fissa."
::= { statoCentralinaTelefonica 7 }
lineaTelefonicaCentrTel OBJECT-TYPE
SYNTAX INTEGER { presente(0), assente(1) }
STATUS current
DESCRIPTION "Indica se e' presente il segnale di libero sulla
centralina telefonica."
::= { statoCentralinaTelefonica 8 }
elencoPersoneTable OBJECT-TYPE
SYNTAX SEQUENCE OF ElencoPersoneEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION " Tabella (concettuale) di record che elenca i numeri
Telefonici delle persone da chiamare nel caso in cui
l'antifurto scatti."
::= { elencoNumeriTel 2 }
elencoPersoneEntry OBJECT-TYPE
SYNTAX ElencoPersoneEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Informazioni riguardo le persone da chiamare."
INDEX { nomePersona }
::= { elencoPersoneTable 1 }
ElencoPersoneEntry ::= SEQUENCE
{
nomePersona DisplayString,
numeroTel DisplayString
}
17
nomePersona OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-write
STATUS current
DESCRIPTION "Nome della persona da chiamare."
::= { elencoPersoneEntry 1 }
numeroTel OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-write
STATUS current
DESCRIPTION "Numero della persona da chiamare."
::= { elencoPersoneEntry 2 }
-- NOTIFICHE (TRAP)
centralinaOutOfService NOTIFICATION-TYPE
OBJECTS {statoOperanteCentralina}
STATUS current
DESCRIPTION "Centralina fuori servizio."
::= { segnalazioni 1 }
centralinaBattery NOTIFICATION-TYPE
OBJECTS { correnteIngressoCentralina }
STATUS current
DESCRIPTION "Alla centralina non arriva abbastanza energia
elettrica."
::= { segnalazioni 2 }
sensoreOff NOTIFICATION-TYPE
OBJECTS { idSensore, locazioneSensore, statoAttivitaSensore }
STATUS current
DESCRIPTION "Il sensore ha smesso di funzionare."
::= { segnalazioni 3 }
sensoreBattery NOTIFICATION-TYPE
OBJECTS { correnteIngressoSensore }
STATUS current
DESCRIPTION "Al sensore non arriva abbastanza energia elettrica."
::= { segnalazioni 4 }
sensoreScattato NOTIFICATION-TYPE
OBJECTS { idSensore, locazioneSensore, rilAttivitaSensore }
STATUS current
DESCRIPTION "Il sensore ha rilevato attivita' di qualche tipo. Questa
trap e' inviata solo se l'impianto e' inserito."
::= { segnalazioni 5 }
sirenaOff NOTIFICATION-TYPE
OBJECTS { statoAttivitaSirena }
STATUS current
DESCRIPTION "La sirena ha smesso di funzionare."
::= { segnalazioni 6 }
sirenaBattery NOTIFICATION-TYPE
OBJECTS { correnteIngressoSirena }
STATUS current
DESCRIPTION "Alla sirena non arriva abbastanza energia elettrica."
::= { segnalazioni 7 }
18
tastierinoOff NOTIFICATION-TYPE
OBJECTS { statoAttivitaTastierino }
STATUS current
DESCRIPTION "Il tastierino ha smesso di funzionare."
::= { segnalazioni 8 }
tastierinoBattery NOTIFICATION-TYPE
OBJECTS { correnteIngressoTastierino }
STATUS current
DESCRIPTION "Al tastierino non arriva abbastanza energia elettrica."
::= { segnalazioni 9 }
tastierinoTooCodes NOTIFICATION-TYPE
OBJECTS { maxNumTentativiTastierino }
STATUS current
DESCRIPTION "Il tastierino genera troppi tentativi di accesso errati
(probabilemente qualcuno tenta di forzarlo). Questa trap e'
inviata solo se l'impianto e' inserito."
::= { segnalazioni 10 }
centralinaTelefonicaOff NOTIFICATION-TYPE
OBJECTS { statoAttivitaCentrTel }
STATUS current
DESCRIPTION "La Centralina Telefonica ha smesso di funzionare."
::= { segnalazioni 11 }
centralinaTelefonicaBattery NOTIFICATION-TYPE
OBJECTS { correnteIngressoCentrTel }
STATUS current
DESCRIPTION "Alla Centralina Telefonica non arriva abbastanza energia
elettrica."
::= { segnalazioni 12 }
centralinaTelefonicaNoTelephoneLine NOTIFICATION-TYPE
OBJECTS { lineaTelefonicaCentrTel }
STATUS current
DESCRIPTION "La Centralina Telefonica non riesce ad accedere alla
linea telefonica."
::= { segnalazioni 13 }
END
-- FINE MIB
Il MIB e’ stato testato sul sito:
http://www.simpleweb.org/ietf/mibs/validate/
19
3. Conclusioni
3.1 Limiti del lavoro
Il sistema antifurto sopra descritto è molto semplice: essendo un sistema modulare e trovando
in commercio una vastissima gamma di “moduli” (dal sensore di ultima generazione, al
sistema di accesso che sfrutta la retina e/o le impronte digitali e via dicendo), le possibili
combinazioni danno luogo ad un insieme potenzialmente infinito di impianti antifurto, più o
meno complessi, più o meno costosi. Il mio lavoro ha voluto sostanzialmente mostrare un
possibile uso di MIB per il controllo remoto di tali sistemi: chiaramente il MIB descritto può
essere reso più complesso o essere semplificato a seconda delle effettive necessità.
In ugual maniera, il sistema può essere fatto interagire con altri sistemi (da quello per
l’illuminazione a quello per aperture di porte/garage), arricchendolo ulteriormente, ma per
motivi di tempo tutto ciò non viene trattato.
3.2 Riferimenti
J. Schönwälder, L.Deri “Sistemi di elaborazione dell'informazione: Gestione di Rete”
( http://luca.ntop.org/ )
20