SNMP-Tutorial

Dieses Tutorial bietet eine Kurzdarstellung von:

Was ist SNMP?

Das Simple Network Management Protocol (SNMP) ist ein Anwendungsprotokoll, das vom Internet Architecture Board (IAB) in RFC1157 für den Austausch von Managementinformationen zwischen Netzwerkgeräten definiert wurde. Es ist Teil der Protokollsuite Transmission Control Protocol ⁄ Internet Protocol (TCP ⁄ IP).

SNMP ist eines der weit verbreiteten Protokolle zur Verwaltung und Überwachung von Netzwerkelementen. Die meisten professionellen Netzwerkelemente werden im Bundle mit SNMP-Agenten geliefert. Diese Agenten müssen aktiviert und konfiguriert sein, um mit dem Netzwerk-Management-System (NMS) zu kommunizieren.

SNMP-Basiskomponenten und deren Funktionalitäten

SNMP besteht aus

SNMP Manager:

Ein Manager oder Management-System ist eine separate Einheit, die für die Kommunikation mit dem SNMP-Agenten verantwortlich ist. Dies ist in der Regel ein Computer, auf dem ein oder mehrere Netzwerk-Management-Systeme ausgeführt werden.

Die wichtigsten Funktionen des SNMP Managers
  • Abfragen an Agenten
  • Antworten von Agenten annehmen
  • Variablen in Agenten einstellen
  • Bestätigung des Erhalts von asynchronen Ereignisse seitens der Agenten

Managed Devices:

Ein „Managed Device“ oder Netzwerkelement ist ein Teil des Netzwerks, das eine Form der Überwachung und Verwaltung erfordert, z. B. Router, Switches, Server, Workstations, Drucker, USVs etc.

SNMP-Agent:

Der Agent ist ein Programm, das in ein Netzelement eingebettet ist. Nach der Aktivierung kann der Agent die Management Information Base lokal vom Gerät beziehen und sie dem SNMP-Manager zur Verfügung stellen, wenn dieser abgefragt wird. Dabei kann es sich um Standard-Agenten handeln (z. B. Net-SNMP) oder spezifische Anbieter-Agenten (z. B. HP Insight Agent).

Die wichtigsten Funktionen des Agenten
  • Bezieht Management-Informationen über seine lokale Umgebung.
  • Speichert und ruft Management-Informationen ab, wie sie in der MIB definiert sind.
  • Signalisiert dem Manager ein Ereignis.
  • Dient als Proxy für einen SNMP-Netzwerkknoten, der nicht direkt verwaltet werden kann.

 

Grundlegendes SNMP-Kommunikationsdiagramm
Was ist SNMP? - ManageEngine OpManager

Management Information Database, auch als Management Information Base (MIB) bezeichnet

Jeder SNMP-Agent hat eine Informationsdatenbank zur Verfügung, in der die verwalteten Geräteparameter enthalten sind. Der SNMP-Manager verwendet diese Datenbank, um den Agenten nach bestimmten Informationen zu fragen und übersetzt die Informationen bei Bedarf für das Network Management System (NMS). Diese gemeinsam genutzte Datenbank zwischen dem Agenten und dem Manager wird als Management Information Base (MIB) bezeichnet.

Typischerweise enthält diese MIB einen Standardsatz von Statistik- und Steuerwerten, die für Hardwareknoten in einem Netzwerk definiert sind. SNMP ermöglicht auch die Erweiterung dieser Standardwerte um agentenspezifische Werte durch den Einsatz von privaten MIBs.

Kurz gesagt, MIB-Dateien sind die Anfragen, die ein SNMP-Manager an den Agenten richten kann. Der Agent bezieht diese Daten lokal und speichert sie, wie in der MIB definiert. Daher sollte der SNMP-Manager sowohl Standardanfragen als auch spezifische Anfragen für jeden Agententyp kennen.

 

SNMP MIB Browser und SNMP Walk Tool

Die Suite of Free Tools von ManageEngine enthält einen SNMP MIB Browser, der das MIB-Load/Unload und Abrufen von MIB-Daten von SNMP (v1, v2c, v3)-Agenten unterstützt. Der SNMP MIB Browser ist ein komplettes Tool zur Überwachung von SNMP-fähigen Geräten und Servern. Sie können mehrere MIB-Module laden, anzeigen und die SNMP-Operationen GET, GETNEXT und SET durchführen. Dieses Tool ist einfach zu bedienen und ermöglicht es Ihnen, SNMP-Traps anzuzeigen, zu konfigurieren und zu analysieren. Sie können auch SNMP-Operationen von Windows- und Linux-Geräten aus durchführen.

 

MIB-Struktur und Object Identifier (Object ID oder OID)

Die Management Information Base (MIB) ist eine Sammlung von Informationen zur Verwaltung von Netzwerkelementen. Die MIBs umfassen verwaltete Objekte, die durch den Object Identifier (Object ID oder OID) identifiziert werden.

Jeder Identifier ist eindeutig und bezeichnet spezifische Merkmale eines verwalteten Geräts. Bei der Abfrage kann der Rückgabewert jedes Identifiers unterschiedlich sein, z. B. Text, Nummer, Zähler etc.

Es gibt zwei Arten von Managed Objects und Object IDs: Scalar und Tabular. Anhand eines Beispiels wird deutlich, worum es geht:

Scalar: Gerätename des Herstellers, es kann nur ein Ergebnis geben (gemäß der Definition, dass ein Scalar Object nur eine einzelne Objektinstanz definiert)

Tabular: Die CPU-Auslastung eines Quad-Prozessors: Das würde für jede CPU ein separates Ergebnis liefern, d. h. es gibt 4 Ergebnisse für diese spezielle Object ID (gemäß der Definition, dass ein Tabular Object mehrere zugehörige Objektinstanzen aufweist, die in MIB-Tabellen gruppiert sind)

Jede Object ID ist in der MIB hierarchisch organisiert. Die MIB-Hierarchie kann in einer Baumstruktur mit einem einzelnem, variablem Identifier dargestellt werden.

Eine typische Object ID ist eine Abfolge von ganzen Zahlen. Beispielsweise lautet die OID in RFC1213 für „sysDescr“ .1.3.6.1.2.1.1.1.1.1.1

 

MIB Baumdiagramm
SNMP Überwachung - ManageEngine OpManager
 

Grundlegende Befehle von SNMP

Die Einfachheit des Informationsaustausches hat das SNMP zu einem allgemein akzeptierten Protokoll gemacht. Der Hauptgrund hierfür ist der prägnante Befehlssatz, wie im Folgenden wiedergegeben:

  • GET: Die GET-Operation ist eine Anfrage, die vom Manager an das verwaltete Gerät gesendet wird. Sie wird durchgeführt, um einen oder mehrere Werte von dem verwalteten Gerät abzurufen.
  • GET NEXT: Diese Operation ähnelt dem GET. Der wesentliche Unterschied besteht darin, dass die Operation GET NEXT den Wert der nächsten OID im MIB-Baum abruft.
  • GET BULK: Die Operation GET BULK wird verwendet, um umfangreiche Daten aus einer großen MIB-Tabelle abzurufen.
  • SET: Diese Operation wird von den Managern verwendet, um den Wert des verwalteten Geräts zu ändern oder zuzuweisen.
  • TRAPS: Im Gegensatz zu den oben genannten Befehlen, die vom SNMP-Manager initiiert werden, werden TRAPS von den Agenten initiiert. Es handelt sich um ein Signal an den SNMP-Manager durch den Agenten beim Auftreten eines Ereignisses.
  • INFORM: Dieser Befehl ähnelt dem vom Agenten initiierten TRAP, zusätzlich beinhaltet INFORM eine Bestätigung seitens des SNMP-Managers sowie die Nachricht empfangen wird.
  • RESPONSE: Das ist der Befehl, um den/die Wert(e) oder das Signal von Aktionen, die vom SNMP-Manager ausgeführt werden, zurückzutragen.
 

SNMP-Traps:

Mit SNMP-Traps kann ein Agent den SNMP-Manager über wichtige Ereignisse durch eine unaufgeforderte SNMP-Nachricht informieren. SNMP-Trap-Protokolle beinhalten den aktuellen sysUpTime-Wert, eine OID zur Identifizierung der Art des Traps und optionale Variablenbindungen. Die Zieladressierung für SNMP-Traps wird anwendungsspezifisch festgelegt, typischerweise durch Trap-Konfigurationsvariablen in der MIB. Das Format der Trap-Nachricht wurde in SNMPv2 geändert und die Protokolldateneinheiten in SNMPv2-Trap umbenannt.

Typische SNMP-Kommunikation

Als Teil der IP-Protokoll-Suite TCP ⁄ IP werden die SNMP-Nachrichten als User Datagram Protocol (UDP) und intern im Internetprotokoll verpackt und übertragen. Das folgende Diagramm veranschaulicht das vom Department of Defense (DoD) entwickelte Vier-Layer-Modell.

SNMP Protokoll - ManageEngine OpManager

GET⁄ GET NEXT⁄ GET BULK⁄ SET

SNMP-Tutorial - ManageEngine OpManager

 

TRAP

SNMP Agent - ManageEngine OpManager

 

INFORM

SNMP Überwachung - ManageEngine OpManager

 

Der standardmäßige SNMP-Port ist 161 und TRAP⁄ INFORM verwendet den SNMP-Port 162 für die Kommunikation.
 

SNMP-Versionen

Seit der Gründung von SNMP hat es erhebliche Verbesserungen erfahren. Die SNMP-Protokolle v1 und v2c sind jedoch die am häufigsten implementierten Versionen von SNMP. Die Unterstützung des SNMP-Protokolls v3 hat in jüngster Zeit aufgeholt, da es im Vergleich zu seinen älteren Versionen sicherer ist, es hat jedoch noch keinen nennenswerten Marktanteil erreicht.

SNMPv1:

Das ist die erste Version des SNMP-Protokolls, das in den RFCs 1155 und 1157 definiert ist.

SNMPv2c:

Das ist das überarbeitete Protokoll, das Erweiterungen von SNMPv1 in den Bereichen Protokoll-Paket-Typen, Transport-Zuordnungen und MIB-Strukturelemente beinhaltet, aber weiterhin die bestehende SNMPv1-Verwaltungsstruktur nutzt („community based“ und damit SNMPv2c). Sie ist definiert in RFC 1901, RFC 1905, RFC 1906, RFC 2578.

SNMPv3:

SNMPv3 definiert die sichere Version des SNMP. Das SNMPv3-Protokoll ermöglicht auch die Fernkonfiguration der SNMP-Entitäten. Es ist definiert durch RFC 1905, RFC 1906, RFC 3411, RFC 3412, RFC 3414, RFC 3415.

Obwohl jede Version in Richtung umfassender Funktionalitäten ausgereift war, wurde bei jedem Upgrade ein zusätzlicher Schwerpunkt auf den Sicherheitsaspekt gelegt. Hier ist ein kleiner Video-Clip zu jedem Sicherheitsaspekt der Versionen.

SNMP v1 Community-basierte Sicherheit
SNMP v2c Community-basierte Sicherheit
SNMP v2u User-basierte Sicherheit
SNMP v2 Parteien-basierte Sicherheit
SNMP v3 User-basierte Sicherheit
Darüber sollte man nachdenken: OpManager unterstützt alle Versionen von SNMP. Jedes SNMP-fähige Gerät kann überwacht werden, um seine Leistung zu steuern und zu kontrollieren und SNMP-TRAPs zu verarbeiten.
– OpManager: Die Software für die Die Software für die Netzwerküberwachung von ManageEngine