SNMP Erklärung: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(21 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
*Das '''Simple Network Management Protocol''' ('''SNMP''') wurde von der Internet Engineering Task Force entwickelt.
+
=Grundlagen=
*Em Netzwerkelemente von einer zentralen Station aus überwachen und steuern zu können.  
+
*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.
 
*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.
 
*SNMP beschreibt den Aufbau der Datenpakete, die gesendet werden können und den Kommunikationsablauf.
Zeile 14: Zeile 14:
 
== Funktionsweise ==
 
== Funktionsweise ==
  
[[Datei:snmp-1.png]]
+
{{#Drawio:snmp-1}}
  
[[Datei:snmp-2.png|500px]]
+
 
 +
{{#Drawio:snmp-2}}
  
 
*Zur Überwachung werden sogenannte Agenten eingesetzt.  
 
*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 impliziet können.
+
*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.
 
*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 es möglich, dass die zentrale Managementstation mit den Agenten über ein Netzwerk kommunizieren kann.
+
*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:
 
*Dazu gibt es sieben verschiedene Datenpakete, die gesendet werden können:
  
Zeile 35: Zeile 36:
 
: Antwort auf eines der vorherigen Pakete.
 
: Antwort auf eines der vorherigen Pakete.
 
; TRAP
 
; TRAP
: unaufgeforderte Nachricht von einem Agenten an den Manager, dass ein Ereignis eingetreten ist. Programme wie [[Wireshark]], die zum Dekodieren von Protokollen wie SNMP benutzt werden, nennen dieses Datenpaket auch '''REPORT'''. Ein '''TRAP''' kann auch geschickt werden, wenn die in einem '''SET-REQUEST'''-Paket beschriebene(n) Datensatzänderung(en) nicht durchgeführt werden konnte(n), und nicht nur, um eine Fehlfunktion (z. B. einen Defekt eines Moduls eines Netzelements) zu melden.
+
:ist ein vom Agenten selbst verfasster Datensatz, welcher an einen vorher festgelegten Server gesendet wird
 
; INFORM-REQUEST
 
; INFORM-REQUEST
 
: aufgebaut wie ein Trap, nur dass dieser vom Empfänger quittiert wird.
 
: aufgebaut wie ein Trap, nur dass dieser vom Empfänger quittiert wird.
  
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.
+
=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.
  
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.
+
=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 "[https://de.wikipedia.org/wiki/Management_Information_Base MIB]".
  
Wenn der Agent bei der Überwachung des Systems einen Fehler erkennt, kann er diesen mit Hilfe eines '''TRAP'''-Paketes unaufgefordert 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.
+
=Umsetzung der Abfragen=
  
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.
+
*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
 +
<!--- *Jeder Knoten ist durch eine Folge von Nummern eindeutig gekennzeichnet --->
  
== Management Information Base ==
+
=Aufbau einer OID und Zusammenspiel mit MIB=
 +
*OID’s werden in drei Notationen dargestellt.
  
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 und die man als „Management Information Base“ oder abgekürzt als „MIB“ bezeichnet.
+
=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:
 +
<pre>
 +
system  OBJECT IDENTIFIER ::= { mib-2 1 }
  
[https://de.wikipedia.org/wiki/Management_Information_Base MIB]
+
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 }
 +
</pre>
  
 
=Quelle=
 
=Quelle=
 
*https://de.wikipedia.org/wiki/Simple_Network_Management_Protocol
 
*https://de.wikipedia.org/wiki/Simple_Network_Management_Protocol

Aktuelle Version vom 2. Februar 2023, 08:59 Uhr

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 }

Quelle