Az adott eszköz MIB alkalmazása az összes SNMP MIB modulból áll, amely az eszközhöz van megadva. Az MIB kifejezés gyakran egyetlen modulmeghatározást jelöl, ez azonban technikailag helytelen. A MIB valójában az összes olyan modul kombinációja, amely egy adott, hardverhez vagy szoftverhez kapcsolódó eszköz kezeléséhez kerül felhasználásra. Ezért a kereskedő által vagy az RFC-ben meghatározott egyes modulok pontosabb neve SNMP MIB modul.
Minden MIB modul végül is a gyökér modul kiterjesztése. Minden egyéni kereskedőtől származó MIB modul az RFC1155-SMI-ben meghatározott vállalati objektum kiterjesztése. Ezért minden SNMP ügynöknek támogatnia kell az RFC1155-öt, és minden MIB modul az RFC1155 kiterjesztése.
Ahhoz, hogy az SNMP management information base (MIB) bővíthető legyen, a cikk elemek MIB modulokba vannak rendezve, amelyek strukturált hierarchiát alkotnak. Minden egyes MIB modul az alábbi összeállításban kerül meghatározásra:
ModulNév MEGHATÁROZÁSOK ::= BEGIN END
A modulban a BEGIN és az END címkék lehetővé teszik, hogy számos modul egyetlen szövegfájlon belül legyen meghatározva. Az MIB fordítóknak képeseknek kell lenniük az egyetlen fájlon belül meghatározott tetszőleges számú modul kezelésére, de ezt nem követelhetik meg.
Egyezmények vannak minden meghatározott objektumhoz a modulon belül. A modul nevének például nagybetűs alfabetikus karakterrel kell kezdődnie, és csak betűket, számokat, kötőjeleket (-) vagy aláhúzásokat (_) tartalmazhat. Az objektum nevének kisbetűs alfabetikus karakterrel kell kezdődnie, és csak betűket, számokat, kötőjeleket vagy aláhúzásokat tartalmazhat. Az MIB modulokban a megjegyzéseket két, egymást követő kötőjel (--) jelöli, így a szimbólumot követő bármilyen szöveg, bármelyik sorban figyelmen kívül hagyható.
Az MIB-k a modulos felépítés és a könnyen bővíthető kivitel miatt bármilyen új funkcionalitást vagy eszközt képesek támogatni, egy újabb modul felvétele által. Ha egy modul egy másik modul bővítményeként működik, akkor tartalmaz egy IMPORTS szakaszt, amely a DEFINITIONS sor alatt található. Az IMPORTS szakasz határozza meg az objektumokat, amelyeket az MIB hierarchiában magasabban elhelyezkedő modulok igényelnek, illetve azok a modulok, amelyekben ezek meg vannak határozva.
RFC1157-SNMP DEFINITIONS ::= BEGIN IMPORTS ObjectName, ObjectSyntax, NetworkAddress, IpAddress, TimeTicks FROM RFC1155-SMI;
Gyakran fordulnak elő tipográfiai hibák az importált MIB nevek megadásakor. Az RFC1212 például hivatkozásként adható meg MIB modulként a helyes RFC-1212 név helyett. Ha az értelmezési hibákat a MIB Manager kiemeli, akkor ellenőrizze az IMPORTS szakaszt és győződjön meg róla, hogy az MIB modulok nevei helyesek. Néhány MIB modul egy EXPORTS szakaszt is tartalmaz (amely szintén pontosvesszővel zárul). Ez a szakasz tájékoztatja az olvasót, hogy az MIB szerző azt várja a többi MIB modultól, hogy ugyanazokat a megadott objektumokat használja. Számunkra ez a szakasz nem érdekes, így figyelmen kívül hagyható.
Az SNMP MIB modulok ASN.13 (Absztrakt szintaxisjelölés 1) formátumban vannak megadva, az SNMP azonban csak az ASN.14 egy részét használja. Az ASN.1 az ITU-T X.208-ban és az ISO 8824-ban van meghatározva. Az ASN.1 SNMP-re vonatkozó részei az RFC1155-ben vannak meghatározva. Az RFC1155 az alábbi érvényes SNMP adattípusokat határozza meg:
A meghatározott típus az adott formátumok primitív vagy konstruktor típusok számára történő meghatározásához használt mechanizmus. Az MIB szerzők megadhatnak további típusokat is a TEXTUAL-CONVENTION szerkezet használatával.
DisplayString ::= OCTET STRING (0..255)
DisplayString ::= TEXTUAL-CONVENTION
DISPLAY-HINT "255a" STATUS current DESCRIPTION "Az NVT ASCII karakterkészletből
vett szöveges információkat ábrázol, az RFC 854 4, 10-11 oldalán
meghatározottak szerint. Az RFC 854 összegzéséhez az NVT ASCII rejtjelkészlet a
következőt adja meg: - a 0-127 (decimális) karakterkódok használata - a grafikai
karakterek értelmezése (32-126) a következő: US ASCII - NUL, LF, CR, BEL, BS, HT,
VT és FF speciális jelentéssel rendelkezik az RFC 854-ben megadva - a többi 25
kódnak nincs szabványos értelmezése - a 'CR LF' sorozat új sort jelent - a 'CR NUL'
sorozat kocsivisszát jelent - az 'LF' nem 'CR' előtaggal ugyanannak az oszlopnak
az áthelyezését jelenti a következő soron. - a 'CR x' minden x esetében (kivéve az LF vagy a NUL) illegális.
(Ez azt is jelenti, hogy a karaktersorozat befejeződhet 'CR LF' vagy 'CR NUL' sorozatokkal, de CR-rel nem.) A fenti szintaxissal meghatározott bármilyen objektum nem lehet hosszabb, mint 255 karakter." SYNTAX OCTET STRING (SIZE (0..255))
A
fenti példa azt mutatja, hogy a DisplayString egy 0-255 karakter hosszúságú OCTET STRING. Megjegyzendő, hogy minden egyes OBJECT DESCRIPTOR elemnek, amely egy objektumtípusnak felel meg egy internet-szabványnak megfelelő MIB-ben, egyedi, hívóbetűs, nyomtatható karaktersorozatnak kell lennie.Az MIB modulok írásakor elkövetett gyakori hiba a nem egyedi objektumnevek létrehozása. Az RFC1155 utasítás állítólag azt jelenti, hogy csak az egyedülálló MIB modulon belüli objektumoknak kell egyedieknek lenniük. A korábban tárgyaltak alapján az MIB azon modulok teljes készletét jelenti, amelyek együtt egy adott eszközt kezelnek. Ezért az MIB modulban meghatározott minden objektumnévnek egyedinek kell lennie, nem csak a saját modulján belül, hanem minden importált modulon belül is, illetve minden olyan modulon belül is, amelyet ezek a modulok importálhatnak. Az objektumnevek egyediségének biztosítására szolgáló általános mechanizmus, ha minden modulnevet a vállalat azonosítójával vagy rövidített cégnevével kezdünk.
Az objektumok, meghatározásukkor numerikus hierarchiára kerülnek leképezésre, amely egy feszítőfára emlékeztet. Minden alkalommal, amikor meghatározunk egy objektumot, az a szülő objektum leveleként kerül meghatározásra. Az SNMP MIB fán a következő három gyökérobjektum kerül meghatározásra:
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 }
Ezek a meghatározások az objektum nevét, a társított objektumtípusokat, az egyes objektumok szülőjének nevét (vagy a szülők rendezett listáját) és az utód szülőhöz (vagy szülőkhöz) viszonyított levélszámát ábrázolják. Ezek az elemek grafikusan hierarchikus formátumot vesznek fel.
Az MIB fa nézeten az MIB fa csomópontjainak kibontásával és összehúzásával haladhat végig. Az MIB fa felső szintű ágai tartalmazzák az MIB modulok neveit, és az egyes MIB modul ágakon belül található a többi elem, melyekből az MIB felépül. Ahogy további modulok kerülnek felvételre az MIB-be, további objektumokkal bővül az MIB fa. Az egyes objektumokra az objektumnevükkel vagy az objektum azonosítójukkal (OID) lehet hivatkozni. A legpontosabb módszer, ha az OID azonosítóra hivatkozunk. Az OID az objektum számaként és az egyes ősök számaként van meghatározva, egészen a gyökér csomópontig visszaszámlálva, és összefűzve, pontokkal (.) az egyes számok között. A vállalatok objektumának (csomópont vagy levél) OID azonosítója 1.3.6.1.4.1.
Sok kereskedő nem biztosítja, hogy az objektumnév univerzálisan egyedi legyen, így lehetséges, hogy két szállító objektumai ugyanazt a nevet viselik. Ez az objektumnév objektum azonosítási képességét kicsit kétértelművé teszi.