IBM Tivoli Netcool/OMNIbus Versione 8.1

Concetti e progettazione MIB

Tutti i moduli MIB SNMP definiti per essere utilizzati da un dispositivo specifico sono costituiti dal MIB relativo a tale dispositivo. Il termine MIB viene spesso utilizzato per descrivere una singola definizione di modulo, tuttavia, ciò è tecnicamente errato. In realtà, il MIB è la combinazione di tutti i moduli utilizzati per la gestione di un dispositivo specifico, se il dispositivo è correlato all'hardware o al software. Quindi, il nome più preciso per ciascun modulo definito da un fornitore, o in un RFC, è modulo MIB SNMP.

Tutti i moduli MIB sono infine estensioni del modulo root. Tutti i moduli MIB rilasciati dai singoli fornitori, si estendono dagli oggetti azienda definiti in RFC1155-SMI. Quindi, tutti gli agent SNMP devono supportare RFC1155 e tutti i moduli MIB sono estensioni di RFC1155.

SMI (Structure of Management Information)

Per rendere estensibile il MIB (management information base) SNMP, gli elementi correlati vengono disposti in moduli MIB che formano una gerarchia strutturata. Ciascun modulo MIB viene definito all'interno del seguente costrutto:

ModuleName DEFINITIONS ::= BEGIN END

I tag BEGIN e END nel modulo consentono di definire vari moduli all'interno di un singolo file di testo. I compilatori MIB dovrebbero essere in grado di gestire qualsiasi numero di moduli definito in un singolo file, ma ciò non dovrebbe essere necessario.

Esistono convenzioni per ciascun oggetto definito all'interno del modulo. Ad esempio, un nome modulo deve iniziare con un carattere alfabetico minuscolo e contenere solo lettere, numeri, trattini (-) o caratteri di sottolineatura (_). Un nome oggetto deve iniziare con un carattere alfabetico minuscolo e deve contenere solo lettere, numeri, trattini o caratteri di sottolineatura. I commenti nei moduli MIB sono rappresentati da due trattini consecutivi (--) e qualsiasi testo che segue il simbolo, su qualsiasi riga, può essere ignorato.

La progettazione modulare, facilmente estensibile dei MIB rende i MIB in grado di supportare qualsiasi nuova funzionalità o dispositivo, aggiungendo un modulo supplementare. Quando un modulo viene scritto come estensione di un altro modulo, includerà una sezione IMPORTS, situata al di sotto della riga DEFINITIONS. La sezione IMPORTS definisce gli oggetti richiesti dai moduli più in alto nella gerarchia MIB e i moduli in cui tali oggetti sono definiti.

La seguente definizione deriva da RFC1157 e indica vari oggetti importati da RFC1155. Questa sezione può essere visualizzata come analoga all'istruzione include in un linguaggio di programmazione come C o Perl, oppure in un file delle regole Netcool. Inoltre, per conoscere gli oggetti presenti nel modulo MIB corrente (RFC1157-SNMP), è necessario anche essere consapevoli degli oggetti presenti nel modulo MIB precedente (RFC1155-SMI).
RFC1157-SNMP DEFINITIONS ::= BEGIN IMPORTS ObjectName, ObjectSyntax, NetworkAddress, IpAddress, TimeTicks FROM RFC1155-SMI;

Errori tipografici vengono spesso effettuati quando si specificano nomi MIB importati. Ad esempio, è possibile fare riferimento a RFC1212 come un modulo MIB anziché con il nome corretto, RFC-1212. Qualora MIB Manager evidenziasse errori di analisi, è necessario controllare la sezione IMPORTS per confermare la corretta denominazione dei moduli MIB. Alcuni moduli MIB contengono anche una sezione EXPORTS che termina con un carattere di punto e virgola. Questa sezione informa il reader che l'autore MIB si aspetta che altri moduli MIB utilizzino gli stessi oggetti specificati. Per gli scopi di questo manuale, questa sezione è irrilevante e può essere ignorata.

Tipi di dati definiti

I moduli MIB SNMP sono definiti in un formato conosciuto come ASN.13 (Abstract Syntax Notation 1). SNMP, tuttavia, utilizza solo una parte di ASN.14. ASN.1 è definito in ITU-T X.208 e in ISO 8824. Le parti di ASN.1 valide per SNMP sono definite in RFC1155. RFC1155 definisce i seguenti tipi di dati SNMP validi:

Un tipo definito è un meccanismo utilizzato per specificare un particolare formato per i tipi primitivi e costruttori. Gli autori MIB possono specificare altri tipi utilizzando il costrutto TEXTUAL-CONVENTION.

DisplayString è un buon esempio di tipo definito. Nel modulo MIB SNMPv2-SMI-v1 , la versione v1 di DisplayString presenta la seguente definizione:
DisplayString ::= OCTET STRING (0..255)
Nel modulo MIB SNMPv2-TC, la versione v2 di DisplayString presenta la seguente definizione:
DisplayString ::= TEXTUAL-CONVENTION DISPLAY-HINT "255a" STATUS current DESCRIPTION "Represents textual information taken from the NVT ASCII character set, as defined in pages 4, 10-11 of RFC 854. To summarize RFC 854, the NVT ASCII repertoire 
specifies: - the use of character codes 0-127 (decimal) - the graphics characters 
(32-126) are interpreted as US ASCII - NUL, LF, CR, BEL, BS, HT, VT and FF have the 
special meanings specified in RFC 854 - the other 25 codes have no standard 
interpretation - the sequence 'CR LF' means newline - the sequence 'CR NUL' means 
carriage-return - an 'LF' not preceded by a 'CR' means moving to the same column on 
the next line. - the sequence 'CR x' for any x other than LF or NUL is illegal. 
(Note that this also means that a string may end with either 'CR LF' or 'CR NUL', but not with CR.) Any object defined using this syntax may not exceed 255 characters in length." SYNTAX OCTET STRING (SIZE (0..255))
L'esempio riportato in precedenza mostra che DisplayString è una OCTET STRING di una lunghezza compresa tra 0 e 255 caratteri. Ciascun OBJECT DESCRIPTOR che corrisponde ad un tipo di oggetto in un MIB internet standard deve essere una stringa univoca, mnemonica e stampabile.

Definizione di oggetti

Un errore comune effettuato durante la scrittura dei moduli MIB è la creazione di un nome oggetto non univoco. L'istruzione RFC1155 indica che solo gli oggetti all'interno di un singolo modulo MIB devono essere univoci. Come affermato in precedenza, il MIB è la serie completa di moduli che, quando combinati, vengono utilizzati per gestire un particolare dispositivo. Tutti gli oggetti definiti in qualsiasi modulo MIB, quindi, devono essere univoci non solo nel relativo modulo, ma anche in qualsiasi altro nome oggetto di qualsiasi modulo importato e in qualsiasi modulo che quei moduli potrebbero importare. Un meccanismo comune per garantire che i nomi oggetti siano univoci è anteporre tutti i nomi modulo con il simbolo commerciale dell'azienda o il nome abbreviato dell'azienda.

Quando sono definiti degli oggetti, tali oggetti sono associati in una gerarchia numerica che somiglia ad una struttura ad albero di espansione. Ogni volta che un oggetto viene definito, viene definito come una foglia di un oggetto parent. I tre oggetti root di seguito riportati vengono definiti nella struttura ad albero MIB SNMP:

Tutti gli altri nodi nella struttura ad albero MIB sono child di uno di questi tre nodi root. Ad esempio, RFC1155-SMI definisce i seguenti oggetti:
internet OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 } directory OBJECT IDENTIFIER ::=
 { internet 1 } mgmt OBJECT IDENTIFIER ::= { internet 2 } experimental OBJECT IDENTIFIER
 ::= { internet 3 } private OBJECT IDENTIFIER ::= { internet 4 } enterprises OBJECT
IDENTIFIER ::= { private 1 }

Queste definizioni indicano il nome oggetto, i tipi di oggetto associati, ciascun nome parent dell'oggetto (o elenco ordinato di parent) e il numero foglia di questo child rispetto a quel parent o a quei parent. Graficamente, questi elementi assumono una forma gerarchica.

È possibile spostarsi nella vista Struttura ad albero MIB espandendo e riducendo i nodi all'interno della struttura ad albero MIB. Le diramazioni di primo livello della struttura ad albero MIB contengono i nomi dei moduli MIB e, contenuti all'interno di ciascuna diramazione di modulo MIB, si travano gli altri elementi che costituiscono il MIB. Man mano che altri moduli vengono aggiunti al MIB, altri oggetti vengono aggiunti alla struttura ad albero MIB. A ciascun oggetto si può fare riferimento mediante il nome dell'oggetto o l'OID (object identifier). Il metodo più accurato è fare riferimento al relativo OID. L'OID dell'oggetto è definito dal numero dell'oggetto e da ciascuno dei numeri degli antenati, continuando all'indietro fino al nodo root, concatenati con un punto (.) che separa ciascun numero. L'OID per l'oggetto aziende (nodo o foglia) è 1.3.6.1.4.1.

Molti fornitori non garantiscano che i nomi oggetto siano univoci in modo universale, quindi è possibile che due fornitori abbiano un oggetto che condivide lo stesso nome. Questo rende leggermente ambiguo l'utilizzo del nome oggetto per identificare un oggetto.


Libreria | Supporto |