SNMP Erklärung
Version vom 2. Februar 2023, 08:59 Uhr von Linkai.zhang (Diskussion | Beiträge) (→Umsetzung der Abfragen)
Grundlagen
- Das Simple Network Management Protocol (SNMP) wurde von der Internet Engineering Task Force entwickelt, um Netzwerkelemente von einer zentralen Station aus zu überwachen und steuern.
- Das Protokoll regelt dabei die Kommunikation zwischen den überwachten Geräten und der Überwachungsstation.
- SNMP beschreibt den Aufbau der Datenpakete, die gesendet werden können und den Kommunikationsablauf.
- Es wurde dabei so ausgelegt, dass jedes netzwerkfähige Gerät mit in die Überwachung aufgenommen werden kann.
- Zu den Aufgaben des Netzwerkmanagements, die mit SNMP möglich sind, zählen:
- Überwachung von Netzwerkkomponenten,
- Fernsteuerung und Fernkonfiguration von Netzwerkkomponenten,
- Fehlererkennung und Fehlerbenachrichtigung.
Durch seine Einfachheit, Modularität und Vielseitigkeit hat sich SNMP zum Standard entwickelt.
- Es wird sowohl von den meisten Managementprogrammen als auch von Endgeräten unterstützt.
Funktionsweise
- Zur Überwachung werden sogenannte Agenten eingesetzt.
- Dabei handelt es sich um Programme, die direkt auf den überwachten Geräten laufen, oder um Hardware die dies implizit können.
- Diese Programme/Geräte sind in der Lage, den Zustand des Netzwerkgerätes zu erfassen und auch selbst Einstellungen vorzunehmen oder Aktionen auszulösen.
- Mit Hilfe von SNMP ist die Kommunikation der zentralen Managementstation mit den Agenten über ein Netzwerk möglich.
- Dazu gibt es sieben verschiedene Datenpakete, die gesendet werden können:
- GET-REQUEST
- zum Anfordern eines Management-Datensatzes.
- GETNEXT-REQUEST
- um den nachfolgenden Datensatz abzurufen (um Tabellen zu durchlaufen).
- GETBULK (ab SNMPv2)
- um eine angegebene Anzahl an Datensätzen auf einmal abzurufen, ähnelt mehreren GETNEXT-REQUEST.
- SET-REQUEST
- um einen oder mehrere Datensätze eines Netzelementes zu verändern. Manchmal verlangt ein Netzelement die gleichzeitige Änderung mehrerer Datensätze, um die Konsistenz zu überprüfen. Beispielsweise erfordert die Konfiguration einer IP-Adresse die gleichzeitige Angabe der Netzwerkmaske.
- GET-RESPONSE
- Antwort auf eines der vorherigen Pakete.
- TRAP
- ist ein vom Agenten selbst verfasster Datensatz, welcher an einen vorher festgelegten Server gesendet wird
- INFORM-REQUEST
- aufgebaut wie ein Trap, nur dass dieser vom Empfänger quittiert wird.
Erklärung
Get
- Die drei GET-Pakete (GET, GETNEXT, GETBULK) können vom Manager zu einem Agenten gesendet werden, um Daten über die jeweilige Station anzufordern.
- Dieser antwortet mit einem RESPONSE-Paket, das entweder die angeforderten Daten oder eine Fehlermeldung enthält.
Set
- Mit dem SET-REQUEST-Paket kann ein Manager Werte beim Agenten verändern.
- Damit ist es möglich, Einstellungen vorzunehmen oder Aktionen auszulösen.
- Der Agent bestätigt die Übernahme der Werte ebenfalls mit einem GET-RESPONSE-Paket.
Trap
- Wenn der Agent bei der Überwachung des Systems einen Fehler erkennt, kann er diesen mit einem TRAP-Paket an die Management-Station melden.
- Diese Pakete werden nicht vom Manager bestätigt. Der Agent kann daher nicht feststellen, ob das gesendete TRAP-Paket beim Manager angekommen ist.
Protokoll
- Damit die Netzwerkbelastung gering bleibt, wird zum Versenden der Nachrichten das verbindungslose Protokoll UDP verwendet.
- Der Agent und der Manager kommunizieren (Requests/Responses) auf dem Port 161, während der Port 162 zum Empfangen der TRAP-Meldungen vorgeschrieben ist.
Management Information Base
- Zum Rahmenwerk des SNMP-basierten Management gehört nicht nur das Protokoll.
- Sondern auch die Repräsentation der Datenbasis, die im Netzwerkgerät vorhanden ist.
- Diese bezeichnet man als „Management Information Base“ oder abgekürzt als "MIB".
Umsetzung der Abfragen
- SNMP ist ein Framework für Datenabfragen.
- Man kann sich mit SNMP Informationen von verschiedenen Kompeneten im Netzwerk besorgen.
- Diese Infos sind oft unterschiedlich bei einem Switch ist dies beispielsweise der Datendurchsatz der Ports
- bei einem Server die Temperatur oder die CPU Auslastung
- Um verschiedene Werte von verschiedenen Managern auswerten zu können, benutzt man sogenannte Communities
- Diese Commmunities sind Pre-Shared-Keys, um sich zu legitmieren
- Die Standardlese-Community ist public
- Die Standardschreib-Community ist private
- Die Informationen stehen als TAG/Value zur Verfügung
- SNMP verwendet ein Object Identifier (OID) ein weltweit eindeutiger Bezeichner, der benutzt wird, um die jeweiligen Werte zu benennen
- Sie sind in einer Baumstruktur verwaltet
- Ein OID stellt einen Knoten in einem hierarchisch zugewiesenen Namensraum dar
Aufbau einer OID und Zusammenspiel mit MIB
- OID’s werden in drei Notationen dargestellt.
OID
- Jeder einzelne Wert wird als Eigenschaft durch eine OID repräsentiert.
- All diese Werte und Eigenschaften werden dann in eine MIB (Management Information Base) zusammengefasst.
- Jeder Manager hat so eine MIB. In ihr sind alle OID’s der enthaltenen Geräte gespeichert.
- Jedes neue Gerät kann durch ein einfaches Einlesen der OID’s der MIB hinzugefügt werden.
- MIB ist in der RFC 1213 definiert.
Syntaxbeispiel
- Syntaxbeispiel aus der MIB-II, definiert in RFC 1213
system OBJECT IDENTIFIER ::= { mib-2 1 } sysDescr OBJECT-TYPE SYNTAX DisplayString (SIZE (0..255)) ACCESS read-only STATUS mandatory DESCRIPTION "A textual description of the entity. This value should include the full name and version identification of the system's hardware type, software operating-system, and networking software. It is mandatory that this only contain printable ASCII characters." ::= { system 1 }