4. The Structure of the MIB Modules
Es gibt drei separate MIB-Module, die in diesem Dokument beschrieben werden:
- SNMP-TARGET-MIB: Die Management-Target-MIB
- SNMP-NOTIFICATION-MIB: Die Benachrichtigungs-MIB
- 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:
- Erstellen Sie einen Eintrag in snmpTargetAddrTable, der die Adresse der Management-Station angibt
- Erstellen Sie einen Eintrag in snmpTargetParamsTable, der die SNMP-Version und Sicherheitsparameter angibt
- 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:
- Konfigurieren Sie Muster 1 (Einfache Benachrichtigungskonfiguration)
- Erstellen Sie einen Eintrag in snmpNotifyFilterProfileTable, der ein Filterprofil mit den Target-Parametern verknüpft
- 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:
- Erstellen Sie Einträge in snmpTargetAddrTable und snmpTargetParamsTable für die Ziel-SNMP-Engine
- 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:
- Der Zugriff auf diese MIB-Objekte unter Verwendung von VACM (View-based Access Control Model) wie in RFC 3415 definiert eingeschränkt wird
- Nur autorisierte Sicherheitsadministratoren Schreibzugriff auf diese Objekte haben
- SNMPv3 mit Authentifizierung und Verschlüsselung (authPriv) verwendet wird, wenn diese Objekte modifiziert werden
- Ä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.