In diesem Abschnitt werden die in SNMP V1 und V2 definierten Objekttypen beschrieben.
Sie finden die in den nachfolgenden Abschnitten beschriebenen Objektinformationen, indem Sie in der Sicht MIB-Module ein Modul auswählen und dann im Feld Suche der Sicht OID-Baumstruktur nach ifIndex suchen. Klicken Sie auf das Objekt ifIndex in der Hierarchie der OID-Baumstruktur, um Informationen zum Objekt und zur Textkonvention in der Sicht Details anzuzeigen.
OBJECT IDENTIFIER wird in SNMP V1 definiert und ist der Hauptbaustein der MIB-Baumstruktur. Objekt-IDs (Object Identifier) sind analog zu einer Kapitelüberschrift in einem Buch: Sie enthalten keine echten Daten, sondern vermitteln vielmehr, welche Inhalte die zugehörigen untergeordneten Objekte aufweisen.
OBJECT-TYPE wird in SNMP V1 definiert und wird als Container für die Speicherung von Informationen über das verwaltete Gerät oder einen gemessenen Wert auf dem Gerät verwendet.
TEXTUAL-CONVENTION (TC) ist eine Definition eines Objekttyps, nicht eines tatsächlichen Objekts. In der Sicht MIB-Module können Sie die Option Textkonventionen in der Liste Sicht auswählen, um die geparsten Textkonventionen in der MIB-Baumstruktur anzuzeigen. Wählen Sie einen TC-Namen in der MIB-Baumstruktur aus, um die zugehörige Definition in der Sicht Details anzuzeigen.
bgpEstablished TRAP-TYPE ENTERPRISE bgp VARIABLES { bgpPeerRemoteAddr, bgpPeerLastError,
bgpPeerState } DESCRIPTION "The BGP Established event is generated when the BGP FSM
enters the ESTABLISHED state." ::= 1
Im Abschnitt ENTERPRISE wird definiert, welches Objekt das übergeordnete Objekt des Traps ist. Es ist jedoch möglich, dass ein Objekt in der MIB-Baumstruktur bgp als übergeordnetes Objekt hat und als untergeordnetes Objekt mit der Nummer 1 definiert wird. Tatsächlich ist bgpVersion im RFC1269-MIB-Modul als { bgp 1} definiert. Daher ist es unmöglich, einen Trap aus V1 als Blatt zu der MIB-Baumstruktur hinzuzufügen und dabei ENTERPRISE als übergeordnetes Objekt zu verwenden.
In SNMP V2 wird die Definition für TRAP-TYPE in NOTIFICATION-TYPE geändert und wird angegeben, dass dieser neue Trap aus V2 wie andere MIB-Objekte definiert wird, mit einer Nummer für ein übergeordnetes und einer Nummer für ein untergeordnetes Objekt. Dadurch ist dies nur ein Problem für Traps aus V1. In Abschnitt 4.1 von RFC1155 wird definiert, dass die Verwendung von Null (0) als Nummer für ein untergeordnetes Element ungültig und für die zukünftige Verwendung reserviert ist. In SNMP V2 wird diese Null dahingehend genutzt, dass Lieferanten ihre Traps aus V1 einer MIB aus V2 hinzufügen können, indem sie dem Unternehmensnamen eine Null hinzufügen und dann die Trapnummer an die Null anfügen. Daher ist es in V2 möglich, eine Objekt-ID mit einer Null als untergeordnetes Objekt des Unternehmens zu definieren und dann die Traps aus V1 als untergeordnete Objekte dieser Null hinzuzufügen.
Diese Konvention führt zu einem anderen häufigen Fehler der MIB-Verfasser. In Abschnitt 4 von RFC1155 sind folgende Informationen enthalten:
"An object type definition consists of five fields: OBJECT: ------- A textual name, termed the OBJECT DESCRIPTOR, for the object type, along with its corresponding OBJECT IDENTIFIER. Syntax: The abstract syntax for the object type. This must resolve to an instance of the ASN.1 type ObjectSyntax (defined below). Definition: A textual description of the semantics of the object type. Implementations should ensure that their instance of the object fulfills this definition since this MIB is intended for use in multi-vendor environments. As such it is vital that objects have consistent meaning across all machines. Access: One of read-only, read-write, write-only, or not-accessible. Status: One of mandatory, optional, or obsolete. Future memos may also specify other fields for the objects which they define."
adslAtucPerfLofsThreshTrap NOTIFICATION-TYPE OBJECTS { adslAtucPerfCurr15MinLofs, adslAtucThresh15MinLofs } STATUS current DESCRIPTION "Loss of Framing 15-minute interval threshold reached." ::= { adslAtucTraps 0 1 }
Objekte, die mit dem Trap aus V1 oder der Benachrichtigung aus V2 übertragen werden, werden als Variablenbindungen (varbinds) bezeichnet. Varbinds enthält zusätzliche Informationen zu dem gemeldeten Ereignis. In einem V1-Trap werden die Variablenbindungen als Elemente im Abschnitt VARIABLES dargestellt, in einer V2-Benachrichtigung sind sie im Abschnitt OBJECTS aufgeführt. Ihr Nutzen ist in allen Versionen von SNMP derselbe. Die Reihenfolge, in der die Variablenbindungen in der Liste erscheinen, ist von Bedeutung, weil die PDU (das SNMP-Paket) die zugehörigen Werte in derselben Reihenfolge codiert, wie sie in der MIB aufgelistet sind.
Beispiel: Der Abschnitt OBJECTS enthält die folgenden drei Variablenbindungen: ifIndex, ifAdminStatus und ifOperStatus. Somit wird ifIndex als erste Variablenbindung codiert, ifAdminStatus als zweite und ifOperStatus als dritte. Die Überprüfung der IF-MIB ergibt, dass der ifIndex-Objekttyp als InterfaceIndex definiert ist. Da dies kein gültiger primitiver ASN.1-Typ für SNMP ist, muss es sich um eine Textkonvention handeln. Die Suche in den Textkonventionen ergibt, dass InterfaceIndex in eine 32-Bit-Integer (Integer32) aufgelöst wird. Daher wird beim Eingang der PDU bei MIB Manager die erste Variablenbindung eine Integer sein. Um die Bedeutung dieser Integer zu bestimmen, muss MIB Manager das IF-MIB-Modul referenzieren, ifIndex nachschlagen und die zugehörigen Objektinformationen auslesen. Die Überprüfung der zweiten Variablenbindung ergibt, dass ein Integertyp mit einer Aufzählung vorliegt:
SYNTAX INTEGER { up(1), -- ready to pass packets down(2),
testing(3) -- in some test mode }
Wenn die Variablenbindung aus dem SNMP-Paket decodiert wird, wird ihr Wert eine Integer sein, deren Wert auf Basis der Elemente in der Aufzählungsliste interpretiert werden muss. Wenn mit MIB Manager eine Regeldatei erstellt wird, dann erstellt MIB Manager eine Lookup-Tabelle, in der die Aufzählungs-Integer automatisch mit der Textdarstellung verlinkt wird. Die dritte Variablenbindung ist ebenfalls ein Aufzählungstyp mit den gleichen Werten. Wenn nun ifAdminStatus den Wert 1 hat (up) und ifOperStatus den Wert 2 (down), dann ist nachvollziehbar, warum das Ereignis generiert wurde und es kann damit begonnen werden, nach der Ursache für den Ausfall zu suchen.
Variablenbindungen werden dem Benutzer in einer Regeldatei als $1, $2, $3 usw. dargestellt, wobei die einzelnen Zahlen jeweils eine Variablenbindungsnummer darstellen. MIB Manager erstellt Elemente auf Basis der Variablenbindungselemente und verwendet diese zum Setzen von Variablen in der Detailtabelle. Beispielsweise könnten die Elemente in der Detailtabelle $ifIndex = $1 lauten, was einer Integer entspricht, oder $ifAdminStatus = $2, was z. B. "up" (1) entspricht, oder $ifOperStatus = $3, was etwa "down" (3) entspricht. Alle Änderungen an den Objekteinstellungen werden automatisch in der Regeldatei gesetzt. Dabei werden die Konventionen verwendet, die in der Netcool Knowledge Library (NCKL) definiert sind.
Tabellen stellen die Entsprechung einer mehrdimensionalen Feldgruppe mit Zeilen und Spalten mit Daten dar. Das Tabellenobjekt wird als SEQUENCE OF eines Eintragsobjekts definiert. Das Eintragsobjekt wird dann als SEQUENCE von OBJECT-TYPE-Objekten definiert. Gelegentlich entwirft ein Lieferant ein ungewöhnliches System, z. B. den Cisco 10k-Router. Dieses Gerät verwaltet eine interne Tabelle mit Alarmbedingungen und generiert einen Trap oder eine Benachrichtigung, wenn die Tabelle geändert wird. Dann müssen Sie eine SNMP-GET-Anforderung für den Inhalt der Tabelle ausgeben, um den aktuellen Status der aktiven Alarme im Gerät festzustellen. Dadurch wird das Abrufen der Alarme durch den SNMP-Manager etwas erschwert, aber nicht unmöglich gemacht, wenn der Administrator über die entsprechenden Tools verfügt.
Ein Oktett ist ein Datenkonstrukt, das aus acht Bit (in der Regel als Byte bezeichnet) besteht. OCTET STRING ist also eine Feldgruppe aus Byte (oder eine Zeichenfolge aus Byte). Der Begriff OCTET STRING impliziert nicht, dass alle Byte in der Zeichenfolge alphanumerisch sind. Die Zeichen können auch Binärzeichen sein und werden als Bitmasken verwendet.