SNMP (Simple Network Management Protocol)
Was ist SNMP?
Das Simple Network Management Protocol (SNMP) ist ein Netzwerkprotokoll der Anwendungsschicht, das zur Überwachung und Verwaltung von Netzwerkgeräten in einem lokalen Netzwerk (LAN) oder einem Weitverkehrsnetzwerk (WAN) verwendet wird. Es bietet Netzwerkgeräten wie Routern, Servern und Druckern eine gemeinsame Sprache, um Informationen mit einem Netzwerkmanagementsystem (NMS) auszutauschen.
Die Client-Server-Architektur von SNMP besteht aus vier Komponenten:
- Ein SNMP-Agent, der als Server fungiert.
- Verwaltete Netzwerkknoten, bei denen es sich um die Geräte und Dienste handelt, auf denen die Agenten ausgeführt werden.
- Ein SNMP-Manager, der als Client fungiert.
- Eine Management Information Base (MIB), die als Datenbank des Servers fungiert.
Wenn der SNMP-Manager dem Agenten eine Frage stellt, verwendet der Agent die MIB, um die Antwort zu liefern.
SNMP ist so beliebt, dass die meisten Netzwerkgeräte bereits mit SNMP-Agenten vorinstalliert sind. Um das Protokoll verwenden zu können, müssen Netzwerkadministratoren jedoch zunächst die Standardkonfigurationseinstellungen ihrer Netzwerkgeräte ändern, damit die SNMP-Agenten mit dem NMS kommunizieren können.
SNMP ist Teil der ursprünglichen Internet-Protocol-Suite (IP), wie sie von der Internet Engineering Task Force (IETF) definiert wurde. Es gibt mehrere Versionen des SNMP-Protokolls. Die neueste Version, SNMPv3, enthält Sicherheitsmechanismen für Authentifizierung, Verschlüsselung und Zugriffskontrolle.
Wofür wird SNMP verwendet?
SNMP kommt in vielen verschiedenen Unternehmensbereichen zum Einsatz:
- Monitoring und Verwaltung von Netzwerkgeräten: Netzwerkadministratoren können ein SNMP-basiertes zentrales Managementsystem verwenden, um mit den Geräten zu kommunizieren und Statusberichte zu erhalten.
- Performance-Monitoring: Mit dem Protokoll können Administratoren Hardware-Geräte überwachen, die über das gesamte Unternehmen verteilt sind und anfällig für Ausfälle. Mithilfe der SNMP-Überwachung können Drucker, unterbrechungsfreie Stromversorgungen (USV), Server, Router und andere Netzwerkgeräte überwacht werden, auch wenn sie sich an unterschiedlichen Standorten befinden.
- Betriebskontinuität: SNMP trägt dazu bei, dass Geräte betriebsbereit bleiben. So kann beispielsweise ein Drucker über SNMP Fehlermeldungen senden und Mitarbeiter auf ein Problem aufmerksam machen, bevor diese versuchen, den Drucker zu verwenden. Auch einen Ausfall der USV während eines Stromausfalls können SNMP-Meldungen verhindern. In beiden Beispielen trägt SNMP somit zur Betriebskontinuität eines Unternehmens bei.
- Gerätesicherheit: SNMP hilft auch bei der Überwachung verdächtiger Aktivitäten und schützt Geräte vor verschiedenen Arten von Cyberangriffen und anderen Bedrohungen, die zu Ausfallzeiten führen können. Wenn ein Gerät eine SNMP-Warnmeldung sendet, die auf solche Aktivitäten hinweist, können Mitarbeiter schnell reagieren und die Konfigurationen der Netzwerksicherheit verschärfen.
Wie funktioniert SNMP?
SNMP-Softwareagenten auf Netzwerkgeräten und -diensten kommunizieren mit dem Netzwerkmanagementsystem, um Statusinformationen und Konfigurationsänderungen weiterzugeben. Das NMS bietet eine einzige Schnittstelle, über die Administratoren Batch-Befehle erteilen und automatische Warnmeldungen erhalten können.
SNMP basiert auf dem MIB-Konzept, um zu organisieren, wie Informationen über Gerätemetriken ausgetauscht werden. Die MIB ist eine formale Beschreibung der Komponenten und Statusinformationen eines Netzwerkgeräts. MIBs können für jedes Netzwerkgerät, etwa im Internet der Dinge (IoT) erstellt werden. Beispiel sind IP-Videokameras, Fahrzeuge, Industrieanlagen und medizinische Geräte. Neben der Hardware kann SNMP auch zur Überwachung von Diensten wie dem Dynamic Host Configuration Protocol (DHCP) eingesetzt werden.
SNMP verwendet eine Mischung aus Pull- und Push-Kommunikation zwischen Netzwerkgeräten und dem Netzwerkmanagementsystem. Der SNMP-Agent, der sich mit der MIB auf einem Netzwerkgerät befindet, sammelt ständig Statusinformationen. Er sendet aber nur auf Anfrage oder wenn ein Aspekt des Netzwerks einen vordefinierten Schwellenwert überschreitet, der als Trap bekannt ist, Informationen an das Netzwerküberwachungssystem. Trap-Meldungen werden typischerweise an den Managementserver gesendet, wenn etwas Wichtiges auftritt, wie zum Beispiel ein schwerer Fehlerzustand.
SNMP enthält auch einen Inform-Nachrichtentyp, der es einem Netzwerk-Monitoring-Tool ermöglicht, Nachrichten von einem Gerät zu bestätigen. Inform-Meldungen ermöglichen es dem Agenten, einen ausgelösten Alarm zurückzusetzen. Netzwerkmanagement-Tools können auch eine Set-Nachricht verwenden, um über den SNMP-Agenten Änderungen an einem Netzwerkgerät vorzunehmen. Diese Fähigkeit ermöglicht es dem Netzwerkmanager, als Reaktion auf neue Netzwerkereignisse Änderungen an den Gerätekonfigurationen durchzuführen.
In den meisten Fällen funktioniert SNMP in einem synchronen Modell, wobei die Kommunikation vom SNMP-Manager initiiert wird und der Agent eine Antwort sendet. Typischerweise verwendet SNMP das User Datagram Protocol (UDP) als Transportprotokoll. Die bekannten UDP-Ports für den SNMP-Verkehr sind 161 (SNMP) und 162 (SNMPTRAP). Diese beiden Ports sind grundlegende Standardeinstellungen und in allen Versionen von SNMP gleich.
SNMP wird als simpel bezeichnet, weil die Architektur des Protokolls so unkompliziert ist. SNMP kann Lese- oder Schreibbefehle ausgeben, wie zum Beispiel das Zurücksetzen eines Passworts oder das Ändern einer Konfigurationseinstellung. Es kann auch zurückmelden, wie viel Bandbreite, CPU und Speicher in Gebrauch sind. Als eines der am weitesten verbreiteten Protokolle wird SNMP von einer breiten Palette an Hardware unterstützt – von konventionellen Netzwerkgeräten wie Routern, Switches und WLAN Access Points bis hin zu Endpunkten wie Druckern, Scannern und IoT-Geräten.

SNMP-Versionen
Bis heute gibt es drei Versionen von SNMP, die sich jeweils durch unterschiedliche Funktionen und Nachteile auszeichnen.
- SNMPv1 legte den Fokus auf Benutzerfreundlichkeit und einfache Einrichtung. Im Vergleich zu späteren Protokollversionen verfügte es jedoch nur über begrenzte Funktionen und Sicherheitsmaßnahmen. Alle zwischen den verbundenen Geräten und dem zentralen Managementsystem ausgetauschten Daten wurden lediglich mit einem Klartext-Passwort authentifiziert. Dieses Passwort war als Community-String bekannt und für jeden mit Netzwerkzugriff sichtbar, somit auch für unbefugte Benutzer. Außerdem waren oft mehrere Nachrichten erforderlich, um große Datenmengen zu übertragen.
- SNMPv2, auch SNMPv2c genannt, verfügte über mehr Funktionen als Version 1, verwendete jedoch dieselbe fehlerhafte Authentifizierungsmethode. Positiv zu vermerken ist, dass SNMPv2c größere Datenmengen schneller übertragen konnte und die neue Kommunikationsform Informs hinzufügte. Während Trap-Meldungen das Managementsystem über einen Fehler oder ein Problem informierten, ermöglichten Inform-Meldungen einem SNMP-Manager, den Empfang einer Meldung eines SNMP-Agenten zu bestätigen. Der Agent sendete die Inform-Nachricht so lange, bis er eine Antwort vom Manager erhielt.
- SNMPv3 bietet die höchste Sicherheit mit verbesserten Mechanismen, die sicherstellen, dass nur autorisierte Benutzer SNMP-Nachrichten sehen können. Im Gegensatz zu früheren Versionen bietet Version 3 auch eine Verschlüsselung, bei der SNMP-Nachrichten verschlüsselt werden, sodass sie für unbefugte Benutzer unlesbar sind. Für diese Version ist eine komplexere Einrichtung erforderlich, um die zusätzlichen Sicherheitsmaßnahmen zu konfigurieren. Außerdem sind mehr Ressourcen für eine höhere Rechenleistung und einen höheren Speicherbedarf erforderlich.
Wichtige Komponenten von SNMP
Die vier Hauptkomponenten in einem SNMP-verwalteten Netzwerk sind die folgenden:
1. SNMP-Agent: Diese Software läuft auf der zu überwachenden Hardware oder dem zu überwachenden Dienst und sammelt Daten über Festplattenspeicher, Bandbreitennutzung und andere wichtige Metriken zur Netzwerkleistung. Bei einer Abfrage durch den SNMP-Manager sendet der Agent die angeforderten Informationen zurück an das Managementsystem. Ein Agent kann das NMS auch proaktiv benachrichtigen, wenn ein Fehler auftritt. Auf den meisten Geräten ist ein SNMP-Agent vorinstalliert, er muss jedoch in der Regel eingeschaltet und konfiguriert werden.
2. SNMP-verwaltete Netzwerkknoten: Dies sind die Netzwerkgeräte und -dienste, auf denen die Agenten laufen.
3. SNMP-Manager: Das Netzwerkmanagementsystem ist eine Softwareplattform, die als zentrale Konsole fungiert, an die die Agenten Informationen liefern. Das NMS fordert die Agenten aktiv auf, in regelmäßigen Abständen Updates zu senden. Was ein Netzwerkmanager mit diesen Informationen machen kann, hängt stark davon ab, wie funktionsreich das NMS ist. Es gibt mehrere kostenlose SNMP-Manager, die jedoch in der Regel in ihren Fähigkeiten oder der Anzahl der unterstützten Knoten begrenzt sind. Am anderen Ende des Spektrums bieten Enterprise-Grade-Plattformen erweiterte Funktionen für komplexere Netzwerke, wobei einige Produkte bis zu Zehntausende von Netzwerkknoten unterstützen.
4. Managementinformationsbasis (MIB): Diese Datenbank ist eine Textdatei (.mib), die alle Objekte auf einem bestimmten Gerät auflistet und beschreibt, die über SNMP abgefragt oder gesteuert werden können. Jedem MIB-Element wird ein Objektidentifikator (OID) zugewiesen.

SNMP-Befehle
Mit einer Mischung aus Push- und Pull-Kommunikation zwischen Netzwerkgeräten und dem Managementsystem kann SNMP eine Vielzahl von Funktionen ausführen. Dazu gehören das Ausgeben von Lese-/Schreibbefehlen sowie das Bereitstellen von Aktualisierungen zu Bandbreite, Rechenleistung und Speichernutzung. Einige SNMP-Manager senden dem Administrator automatisch eine E-Mail- oder Textnachricht, wenn ein vordefinierter Schwellenwert überschritten wird.
Diese Befehle und Nachrichten werden als Protokolldateneinheiten (PDU) bezeichnet und in der Regel über UDP oder TCP/IP übertragen. Zu den gängigen SNMP-Befehlen gehören die folgenden:
- GETRequest: Wird vom SNMP-Manager erzeugt und an einen Agenten gesendet, um den Wert einer Variablen, die durch ihre OID identifiziert wird, in einer MIB zu erhalten.
- RESPONSE: Wird vom Agenten an den SNMP-Manager gesendet und als Antwort auf einen GETRequest, GETNEXTRequest, GETBULKRequest und einen SETRequest ausgegeben. Enthält die Werte der angeforderten Variablen.
- GETNEXTRequest: Wird vom SNMP-Manager an den Agenten gesendet, um die Werte der nächsten OID in der Hierarchie der MIB abzurufen.
- GETBULKRequest: Wird vom SNMP-Manager an den Agenten gesendet, um eine potenziell große Menge an Daten, insbesondere große Tabellen, effizient abzurufen.
- SETRequest: Wird vom SNMP-Manager an den Agenten gesendet, um Konfigurationen oder Befehle auszugeben.
- TRAP: Ein asynchroner Alarm, der vom Agenten an den SNMP-Manager gesendet wird, um anzuzeigen, dass ein bedeutendes Ereignis, etwa ein Fehler oder eine Störung, aufgetreten ist.
- INFORMRequest: Ein asynchroner Alarm, der einem TRAP ähnelt, aber eine Empfangsbestätigung durch den SNMP-Manager erfordert.