Rechnernetze
Home Nach oben Stichworte

Managementobjekte

Nach dem Internet-Ansatz ist ein Managementobjekt (MO) in der Regel nicht strukturiert, sondern besteht nur aus einer Variablen, die eine Zustandsgröße einer Komponente des Rechnernetzes speichern kann. Die einzige Ausnahme hiervon bilden geordnete Mengen von Variablen, die als Zeilen einer Tabelle aufgefasst werden. Dieses sind die einzigen Managementobjekte, deren Anzahl sich dynamisch verändert, und die somit nicht fest in einer Agentenimplementierung kodiert sein können. Um eine zusätzliche Strukturierung zu ermöglichen, können innerhalb eines MIB-Moduls eng zusammenhängende Objekttypdefinitionen zu Gruppen zusammengefasst werden; eine weitere Aufteilung von Gruppen in Untergruppen ist nicht vorgesehen.

Im [RFC1155] wird die Struktur der Managementinformation (Structure of Management Information (SMI)) definiert. Die Objekttypen werden mit dem ASN.1-Makro OBJECT-TYPE-Macro definiert:

OBJECT-TYPE MACRO ::=
BEGIN
TYPE NOTATION ::= "SYNTAX" type (TYPE ObjectSyntax)
    "ACCESS" Access
    "STATUS" Status
VALUE NOTATION ::= value (VALUE ObjectName)
Access ::= "read-only"
  | "read-write"
  | "write-only"
  | "not-accessible"
Status ::= "mandatory"
  | "optional"
  | "deprecated"
  | "obsolete"
END

Das folgende einfache Beispiel zeigt eine mögliche Typdefinition mit diesem Makro:

sysDescr OBJECT-TYPE
    SYNTAX
DisplayString (SIZE (0.255))
    ACCESS read-only
    STATUS mandatory
    := { system 1 }

Hier wird ein Objekttyp mit dem Namen sysDescr definiert, der unter system 1 im globalen Registrierungsbaum eingeordnet ist. Die Syntax von Objekten dieses Typs ist die eines DisplayString bis zu 255 Zeichen Länge; die Zugriffsrechte für Objekte dieses Typs sind auf read-only gesetzt, und jede SNMP-MIB muß ein Objekt dieses Typs enthalten (mandatory).

Der Definition eines Objekttyps wird – zusätzlich zu ihrem Object Identifier – ein Name zugeordnet, der in der gesamten MIB eindeutig sein muss. Zur Laufzeit eines Managementsystems ist – Zeilen von Tabellen ausgenommen – für jeden Agenten höchstens eine Instanz eines Objekttyps verfügbar, so dass zu deren Benennung der um .0 erweiterte Object Identifier eines Objekttyps vorgesehen ist. Die eindeutige Benennung von Objekten innerhalb eines Rechnernetzes ist gewährleistet, da über die Zieladresse eines Pakets mit Managementdaten implizit der Agent ausgewählt wird, der eine Objektinstanz ansprechen soll.

Die Syntax verwalteter Objekte wird durch den ASN.1-Datentyp ObjectSyntax definiert, der einen von mehreren durch CHOICE definierten Datentypen enthält, von denen es drei mögliche Arten gibt:

<list> ::= SEQUENCE { <type1>,
                      ...
                      typeN>,
                    }
<table> ::= SEQUENCE OF <list>

Einfache Typen (simple types) sind einer der folgenden vier primitiven ASN.1-Typen.
INTEGER
OCTET STRING
OBJECT IDENTIFIER
NULL
Einfach konstruierte Typen (simply constructed)) sind zusammengesetzte ASN.1-Typen.
Anwendungsweite Typen (application wide:) sind sechs spezielle Datentypen, die durch die SMI definiert sind und im SNMP-Ansatz verwendet werden.
IpAddress: Ein Datentyp für eine Internetadresse
    IpAddress ::= [APPLICATION 0]  IMPLICIT OCTET STRING (SIZE (4))
NetworkAddress: Ein Datentyp für eine Adresse einer bestimmten Protokollfamilie. Zur Zeit gibt es nur ein CHOICE.
   NetworkAddress ::= CHOICE { internet IpAddress }
Counter: Eine nicht negative Zahl (0..232-1), die monoton wächst, bis sie einen maximalen Wert erreicht; dann wird sie auf null zurückgesetzt.
    Counter ::= [APPLICATION 1] IMPLICIT INTEGER (0..4294967295)
Gauge: Eine nicht negative Zahl (0..232-1), die wachsen oder fallen kann, die jedoch an einem maximalem Wert anhält.
    Gauge ::= [APPLICATION 2] IMPLICIT INTEGER (0..4294967295)
TimeTicks: Ein Datentyp für eine nicht negative ganze Zahl, welche die Zeit in hundertstel Sekunden zählt; der maximale Wert beträgt: 232-1.
    TimeTicks ::= [APPLICATION 3] IMPLICIT INTEGER (0..4294967295)
In der Definition eines Objekts, welches TimeTicks verwendet, muß der Startzeitpunkt festgelegt sein.
Opaque: Ein Datentyp für eine beliebige Kodierung.
 Opaque ::= [APPLICATION 4] IMPLICIT OCTET STRING

Der Typ Opaque erweitert die restriktiven Datentypen, die sonst in SMI verwendet werden. Eine Instanz eines beliebigen ASN.1-Datentyps wird mittels der Basic Encoding Rules kodiert. Die so entstehende Oktett-Zeichenkette bildet den Wert des Opaque-Typen. Deren Bedeutung muss zwischen dem verwalteten Knoten und der Management-Station vereinbart sein.

SMI definiert zwei zusammengesetzte Typen, deren Anwendungsmöglichkeiten jedoch eingeschränkt sind.

Der erste zusammengesetzte Datentyp ist die Liste (list) mit der Form

<list> ::= SEQUENCE { <type1>,
                      ...
                      <typeN>,
                    }

in welchem jeder <type> ein primitiver Typ sein muss, der weder SEQUENCE noch OPTIONAL sein darf. Der Typ <list> wird als Zeile in dem zweiten zusammengesetzten Datentyp, der Tabelle (table), verwendet.

<table> ::= SEQUENCE OF <list>

Somit sind alle im SNMP-Managementansatz definierten Tabellen zweidimensional: Eine Tabelle besteht bei der Instanzierung aus keiner oder mehr Zeilen, wobei jede Zeile die gleiche Anzahl von Spalten hat.