Beim Internet-Management werden die Managementobjekte
über den Internet-Registrierungsbaum
identifiziert und benannt. Dieser Baum besteht aus
Strukturierungsknoten und Informationsknoten. Letztere sind die
Blätter des Baumes, in denen Agenten (managementrelevante)
Information abspeichern können
.
Ein SNMP(v2)-Informationsmodul enthält die Beschreibung (in ASN.1
Notation) eines Teilbaumes der Internet-MIB,
mit Strukturierungs- und/oder Informationsknoten. Beispiel für ein
solches Modul ist die MIB-II ([MR91]):
RFC1213-MIB DEFINITIONS ::= BEGIN
IMPORTS
mgmt, NetworkAddress, IpAddress, Counter, Gauge,
TimeTicks
FROM RFC1155-SMI
OBJECT-TYPE
FROM RFC-1212;
mib-2 OBJECT IDENTIFIER ::= { mgmt 1 }
-- textual conventions
DisplayString ::=
OCTET STRING
PhysAddress ::=
OCTET STRING
-- groups in MIB-II
system OBJECT IDENTIFIER ::= { mib-2 1 }
interfaces OBJECT IDENTIFIER ::= { mib-2 2 }
at OBJECT IDENTIFIER ::= { mib-2 3 }
ip OBJECT IDENTIFIER ::= { mib-2 4 }
icmp OBJECT IDENTIFIER ::= { mib-2 5 }
tcp OBJECT IDENTIFIER ::= { mib-2 6 }
udp OBJECT IDENTIFIER ::= { mib-2 7 }
egp OBJECT IDENTIFIER ::= { mib-2 8 }
transmission OBJECT IDENTIFIER ::= { mib-2 10 }
snmp OBJECT IDENTIFIER ::= { mib-2 11 }
-- Formale Beschreibung der einzelnen Gruppen
END
Jedes solche Modul, wird auf ein IDL-Modul mit gleichem
Identifikator (im Beispiel RFC1213-MIB) abgebildet. Die dazugehörige
Datei wird nach demselben Modul und dem
Suffix ,,.idl`` benannt. Diese Ausgabedatei -- in sie werden
alle den ASN.1-Makros des Moduls entsprechenden IDL-Definitionen
geschrieben -- heißt bei obigem Beispiel ,,rfc1213.idl`` und
sieht (für obigen Auszug) folgendermaßen
aus
// rfc1213.idl
#ifndef RFC1213_MIB_idl
#define RFC1213_MIB_idl
#include ``SNMPMgmt.idl''
module RFC1213_MIB {
#include ``rfc1155.idl''
typedef RFC1155_SMI::TimeTicksType TimeTicksType;
typedef RFC1155_SMI::GaugeType GaugeType;
typedef RFC1155_SMI::CounterType CounterType;
typedef RFC1155_SMI::IpAddressType IpAddressType;
typedef RFC1155_SMI::NetworkAddressType NetworkAddressType;
#define mgmt RFC1155_SMI::mgmt;
const ASN1_ObjectIdentifier mib_2 = ``mgmt.1'';
const ASN1_ObjectIdentifier system = ``mib_2.1'';
const ASN1_ObjectIdentifier interfaces = ``mib_2.2'';
const ASN1_ObjectIdentifier at = ``mib_2.3'';
const ASN1_ObjectIdentifier ip = ``mib_2.4'';
const ASN1_ObjectIdentifier icmp = ``mib_2.5'';
const ASN1_ObjectIdentifier tcp = ``mib_2.6'';
const ASN1_ObjectIdentifier udp = ``mib_2.7'';
const ASN1_ObjectIdentifier egp = ``mib_2.8'';
const ASN1_ObjectIdentifier transmission = ``mib_2.10'';
const ASN1_ObjectIdentifier snmp = ``mib_2.11'';
// IDL-Beschreibung der Gruppen
}
#endif
Wichtig ist, daß die Objektidentifikatoren als konstante Strings übernommen
werden. Die Objektidentifikatoren werden für die Adressierung der
Managed Objects in den SNMP(v2)-PDUs benötigt.