Zum Hauptinhalt springen

4. The Structure of the MIB Modules

Es gibt drei separate MIB-Module, die in diesem Dokument beschrieben werden:

  1. SNMP-TARGET-MIB: Die Management-Target-MIB
  2. SNMP-NOTIFICATION-MIB: Die Benachrichtigungs-MIB
  3. SNMP-PROXY-MIB: Die Proxy-MIB

Die Verwendung dieser MIBs durch bestimmte Arten von Anwendungen wird später in diesem Dokument beschrieben:

  • Die Verwendung der Management-Target-MIB und der Benachrichtigungs-MIB in Notification Originator-Anwendungen wird in Abschnitt 5 beschrieben.
  • Die Verwendung der Benachrichtigungs-MIB zum Filtern von Benachrichtigungen in Notification Originator-Anwendungen wird in Abschnitt 6 beschrieben.
  • Die Verwendung der Management-Target-MIB und der Proxy-MIB in Proxy-Forwarding-Anwendungen wird in Abschnitt 7 beschrieben.

4.1. Das Management-Target-MIB-Modul

Das SNMP-TARGET-MIB-Modul enthält Objekte zur Definition von Management Targets. Es besteht aus zwei Tabellen und Konformitäts-/Compliance-Anweisungen.

4.1.1. Strukturübersicht

Die SNMP-TARGET-MIB bietet:

  • snmpTargetAddrTable: Enthält Informationen über Transport-Domains und Adressen. Sie enthält snmpTargetAddrTagList, die einen Mechanismus zur Gruppierung von Einträgen bietet.

  • snmpTargetParamsTable: Enthält Informationen über SNMP-Version und Sicherheitsinformationen, die beim Senden von Nachrichten an bestimmte Transport-Domains und Adressen verwendet werden sollen.

Die Management-Target-MIB soll einen universellen Mechanismus zur Spezifikation von Transportadressen und zur Spezifikation von Parametern von SNMP-Nachrichten bereitstellen, die von einer SNMP-Entität erzeugt werden. Sie wird in diesem Dokument für die Erzeugung von Benachrichtigungen und für Proxy-Weiterleitung verwendet. Sie kann jedoch auch für andere Zwecke verwendet werden.

4.1.2. Tag-Listen

Das snmpTargetAddrTagList-Objekt wird zur Gruppierung von Einträgen in der snmpTargetAddrTable verwendet. Der Wert dieses Objekts enthält eine Liste von Tag-Werten, die zur Auswahl von Zieladressen verwendet werden, die für eine bestimmte Operation verwendet werden sollen.

Ein Tag-Wert ist eine beliebige Zeichenkette von Oktetten, darf aber kein Trennzeichen enthalten. Trennzeichen sind als eines der folgenden Zeichen definiert:

  • Ein ASCII-Leerzeichen (0x20)
  • Ein ASCII-TAB-Zeichen (0x09)
  • Ein ASCII-Wagenrücklauf (CR)-Zeichen (0x0D)
  • Ein ASCII-Zeilenvorschub (LF)-Zeichen (0x0A)

Trennzeichen werden verwendet, um Tag-Werte in einer Tag-Liste zu trennen. Ein Objekt dieses Typs kann enthalten:

  • Eine Oktettfolge der Länge Null, die eine leere Liste darstellt, oder
  • Einen einzelnen Tag-Wert (keine Trennzeichen erlaubt), oder
  • Eine Liste von Tag-Werten, getrennt durch einzelne Trennzeichen

Für eine Liste von Tag-Werten implizieren diese Einschränkungen:

  • Es darf kein führendes oder abschließendes Trennzeichen geben
  • Es darf keine mehrfachen benachbarten Trennzeichen geben

4.1.3. Schlüsselobjekte in SNMP-TARGET-MIB

snmpTargetSpinLock

Dieses Objekt wird verwendet, um die Modifikation von Tabelleneinträgen im SNMP-TARGET-MIB-Modul durch mehrere Manager zu erleichtern, insbesondere bei der Modifikation des snmpTargetAddrTagList-Objekts.

snmpTargetAddrTable

Eine Tabelle von Transportadressen, die bei der Erzeugung von SNMP-Nachrichten verwendet werden sollen. Jeder Eintrag enthält:

  • snmpTargetAddrName: Lokal eindeutiger Identifikator für diesen Eintrag
  • snmpTargetAddrTDomain: Transporttyp (z.B. snmpUDPDomain)
  • snmpTargetAddrTAddress: Transportadresse
  • snmpTargetAddrTimeout: Erwartete maximale Rundlaufzeit
  • snmpTargetAddrRetryCount: Anzahl der Wiederholungen für nicht zugestellte Nachrichten
  • snmpTargetAddrTagList: Liste von Tag-Werten zur Gruppierung von Einträgen
  • snmpTargetAddrParams: Referenz auf snmpTargetParamsTable-Eintrag
  • snmpTargetAddrStorageType: Speichertyp für diesen Eintrag
  • snmpTargetAddrRowStatus: Zeilenstatus für Erstellen/Löschen von Einträgen

snmpTargetParamsTable

Enthält SNMP-Parameter, die beim Erzeugen von SNMP-Nachrichten an bestimmte Ziele verwendet werden sollen. Jeder Eintrag enthält:

  • snmpTargetParamsName: Lokal eindeutiger Identifikator
  • snmpTargetParamsMPModel: Message Processing Model (0=SNMPv1, 1=SNMPv2c, 3=SNMPv3)
  • snmpTargetParamsSecurityModel: Security Model (1=SNMPv1, 2=SNMPv2c, 3=USM)
  • snmpTargetParamsSecurityName: Security Name (Community oder Benutzername)
  • snmpTargetParamsSecurityLevel: Security Level (noAuthNoPriv, authNoPriv, authPriv)
  • snmpTargetParamsStorageType: Speichertyp für diesen Eintrag
  • snmpTargetParamsRowStatus: Zeilenstatus für Erstellen/Löschen von Einträgen

4.2. Das Benachrichtigungs-MIB-Modul

Das SNMP-NOTIFICATION-MIB-Modul enthält Objekte zur Konfiguration der Erzeugung von Benachrichtigungen. Es enthält drei Tabellen.

4.2.1. Strukturübersicht

Die SNMP-NOTIFICATION-MIB bietet:

  • snmpNotifyTable: Wählt Management Targets aus, die Benachrichtigungen basierend auf Tag-Werten erhalten sollen.
  • snmpNotifyFilterProfileTable: Verknüpft Filterprofile mit Target-Parameter-Namen.
  • snmpNotifyFilterTable: Definiert Filterregeln für selektive Benachrichtigungszustellung.

4.2.2. Schlüsselobjekte in SNMP-NOTIFICATION-MIB

snmpNotifyTable

Wählt Management Targets aus, die Benachrichtigungen erhalten sollen, sowie den Typ der Benachrichtigung (Trap oder Inform), die erzeugt werden soll. Jeder Eintrag enthält:

  • snmpNotifyName: Lokal eindeutiger Identifikator
  • snmpNotifyTag: Tag-Wert, der mit snmpTargetAddrTagList abgeglichen wird
  • snmpNotifyType: trap(1) oder inform(2)
  • snmpNotifyStorageType: Speichertyp für diesen Eintrag
  • snmpNotifyRowStatus: Zeilenstatus für Erstellen/Löschen von Einträgen

snmpNotifyFilterProfileTable

Verknüpft Filterprofil-Namen mit Target-Parameter-Namen. Jeder Eintrag enthält:

  • snmpTargetParamsName: Index, referenziert snmpTargetParamsTable
  • snmpNotifyFilterProfileName: Name des Filterprofils
  • snmpNotifyFilterProfileStorType: Speichertyp
  • snmpNotifyFilterProfileRowStatus: Zeilenstatus

snmpNotifyFilterTable

Definiert Filterregeln, die verwendet werden, um zu bestimmen, welche Benachrichtigungen an welche Management Targets gesendet werden sollen. Jeder Eintrag enthält:

  • snmpNotifyFilterProfileName: Index, referenziert Filterprofil
  • snmpNotifyFilterSubtree: Index, Objektidentifikator des Subtrees
  • snmpNotifyFilterMask: Bit-Maske für OID-Matching
  • snmpNotifyFilterType: included(1) oder excluded(2)
  • snmpNotifyFilterStorageType: Speichertyp
  • snmpNotifyFilterRowStatus: Zeilenstatus

4.3. Das Proxy-MIB-Modul

Das SNMP-PROXY-MIB-Modul enthält Objekte zur Definition von Übersetzungen, die von Proxy-Forwarder-Anwendungen verwendet werden. Es besteht aus einer einzigen Tabelle.

4.3.1. Strukturübersicht

Die SNMP-PROXY-MIB bietet:

  • snmpProxyTable: Definiert Übersetzungsregeln für Proxy-Weiterleitung von SNMP-Nachrichten.

4.3.2. Schlüsselobjekte in SNMP-PROXY-MIB

snmpProxyTable

Definiert Übersetzungsparameter, die von Proxy Forwarders verwendet werden. Jeder Eintrag enthält:

  • snmpProxyName: Lokal eindeutiger Identifikator
  • snmpProxyType: Typ der Proxy-Operation:
    • read(1): Read-Class-PDUs weiterleiten
    • write(2): Write-Class-PDUs weiterleiten
    • trap(3): Trap-Benachrichtigungen weiterleiten
    • inform(4): Inform-Benachrichtigungen weiterleiten
  • snmpProxyContextEngineID: Eingehende Context Engine ID zum Abgleichen
  • snmpProxyContextName: Eingehender Context Name zum Abgleichen
  • snmpProxyTargetParamsIn: Referenz auf snmpTargetParamsTable für eingehende Nachrichtenparameter
  • snmpProxySingleTargetOut: Für Single-Target-Weiterleitung, gibt Target-Adressnamen an
  • snmpProxyMultipleTargetOut: Für Multiple-Target-Weiterleitung, gibt Tag-Wert an
  • snmpProxyStorageType: Speichertyp für diesen Eintrag
  • snmpProxyRowStatus: Zeilenstatus für Erstellen/Löschen von Einträgen

4.4. Konformität und Compliance

Jedes MIB-Modul beinhaltet:

  • Objektgruppen: Logische Gruppierungen verwandter Objekte
  • Compliance-Anweisungen: Definieren, welche Objekte für Konformität implementiert werden müssen
  • Modul-Compliance: Spezifiziert minimale Implementierungsanforderungen

SNMP-TARGET-MIB Compliance

Implementierungen müssen unterstützen:

  • snmpTargetBasicGroup: Grundlegende Target-Adressen- und Parameter-Objekte
  • snmpTargetResponseGroup: Objekte für Response-/Wiederholungsbehandlung (für Command Generators und Notification Originators)

SNMP-NOTIFICATION-MIB Compliance

Implementierungen müssen unterstützen:

  • snmpNotifyGroup: Grundlegende Benachrichtigungsauswahl-Objekte
  • snmpNotifyFilterGroup: Benachrichtigungsfilter-Objekte (optional, aber empfohlen)

SNMP-PROXY-MIB Compliance

Implementierungen müssen unterstützen:

  • snmpProxyGroup: Alle Proxy-Übersetzungs-Objekte

4.5. Verwendungsmuster

Muster 1: Einfache Benachrichtigungskonfiguration

Um Trap-Benachrichtigungen an eine Management-Station zu senden:

  1. Erstellen Sie einen Eintrag in snmpTargetAddrTable, der die Adresse der Management-Station angibt
  2. Erstellen Sie einen Eintrag in snmpTargetParamsTable, der die SNMP-Version und Sicherheitsparameter angibt
  3. Erstellen Sie einen Eintrag in snmpNotifyTable mit einem Tag, der mit der snmpTargetAddrTagList übereinstimmt

Muster 2: Gefilterte Benachrichtigungen

Um nur bestimmte Benachrichtigungen an eine Management-Station zu senden:

  1. Konfigurieren Sie Muster 1 (Einfache Benachrichtigungskonfiguration)
  2. Erstellen Sie einen Eintrag in snmpNotifyFilterProfileTable, der ein Filterprofil mit den Target-Parametern verknüpft
  3. Erstellen Sie Einträge in snmpNotifyFilterTable, die definieren, welche OID-Subtrees einzubeziehen/auszuschließen sind

Muster 3: Proxy-Weiterleitung

Um Anfragen über einen Proxy weiterzuleiten:

  1. Erstellen Sie Einträge in snmpTargetAddrTable und snmpTargetParamsTable für die Ziel-SNMP-Engine
  2. Erstellen Sie einen Eintrag in snmpProxyTable, der Folgendes angibt:
    • Den eingehenden Kontext und Sicherheitsparameter zum Abgleichen
    • Die ausgehende Zieladresse (über snmpProxySingleTargetOut)
    • Den Proxy-Typ (read, write, trap oder inform)

4.6. Sicherheit und Zugriffskontrolle

Die in diesem Dokument definierten MIB-Module enthalten Objekte mit MAX-ACCESS von read-write und/oder read-create. Das Setzen dieser Objekte kann:

  • SNMP-Verkehr zu nicht autorisierten Zielen umleiten
  • Sicherheitsparameter modifizieren, was möglicherweise die Sicherheit schwächt
  • Filterregeln ändern, was möglicherweise sensible Informationen offenlegt

Es wird EMPFOHLEN, dass:

  1. Der Zugriff auf diese MIB-Objekte unter Verwendung von VACM (View-based Access Control Model) wie in RFC 3415 definiert eingeschränkt wird
  2. Nur autorisierte Sicherheitsadministratoren Schreibzugriff auf diese Objekte haben
  3. SNMPv3 mit Authentifizierung und Verschlüsselung (authPriv) verwendet wird, wenn diese Objekte modifiziert werden
  4. Änderungen an diesen Objekten für Audit-Zwecke protokolliert werden

4.7. Implementierungshinweise

Speichertypen

Die *StorageType-Objekte in jeder Tabelle ermöglichen es Implementierungen, die Persistenz der Konfiguration zu steuern:

  • volatile: Konfiguration geht beim Neustart verloren (Standard)
  • nonVolatile: Konfiguration bleibt über Neustarts hinweg erhalten
  • permanent: Konfiguration kann nicht gelöscht werden
  • readOnly: Konfiguration ist schreibgeschützt (kann nicht über SNMP modifiziert werden)
  • other: Implementierungsspezifischer Speicher

Zeilenstatus

Die *RowStatus-Objekte folgen der Standard-RowStatus-Textkonvention (RFC 2579):

  • Verwenden Sie createAndGo, um einen Eintrag in einem Schritt zu erstellen und zu aktivieren
  • Verwenden Sie createAndWait, um einen Eintrag zu erstellen und andere Spalten vor der Aktivierung zu setzen
  • Verwenden Sie active, um anzuzeigen, dass ein Eintrag betriebsbereit ist
  • Verwenden Sie notInService, um einen Eintrag vorübergehend zu deaktivieren
  • Verwenden Sie notReady (schreibgeschützt), um anzuzeigen, dass ein Eintrag noch nicht aktiviert werden kann
  • Verwenden Sie destroy, um einen Eintrag zu löschen

Index-Überlegungen

Das IMPLIED-Schlüsselwort wird in mehreren Tabellenindizes verwendet (z.B. snmpTargetAddrName). Dies bedeutet:

  • Die Indexlänge wird nicht separat in der OID codiert
  • Der Index-String ist variabel lang und verbraucht den Rest der OID
  • Nur ein IMPLIED-Index kann pro Tabelle erscheinen, und er muss der letzte sein

Diese Designentscheidung ermöglicht längere, aussagekräftigere Namen ohne den Overhead separater Längenkodierung.