1. Grundidee und Zweck von SNMP

SNMP steht für Simple Network Management Protocol. Auf Deutsch kann man es als einfaches Netzwerkverwaltungsprotokoll übersetzen. Es wurde entwickelt, um Netzwerkgeräte zentral überwachen und verwalten zu können. In größeren Netzwerken ist es praktisch unmöglich, jedes Gerät manuell zu prüfen. Stattdessen sammeln Monitoring-Systeme automatisch Informationen über Geräte und deren Zustand. Genau dafür wird SNMP verwendet.

Das Protokoll erlaubt es, von einem zentralen System aus Statusinformationen von Geräten im Netzwerk abzufragen. Gleichzeitig können manche Parameter auch verändert werden. Ein Administrator kann also zum Beispiel sehen, wie stark ein Server ausgelastet ist, wie viel Speicher ein Router noch frei hat oder ob ein Drucker eine Fehlermeldung meldet.

SNMP basiert auf einem relativ einfachen Prinzip:
Ein Management-System (z. B. eine Monitoring-Software) fragt Daten bei einem SNMP-Agenten ab. Der Agent ist ein Dienst auf dem jeweiligen Gerät, der bestimmte Systeminformationen bereitstellt.

Das Monitoring-System wird häufig SNMP Manager genannt, während der Dienst auf dem Gerät SNMP Agent heißt.

Die abgefragten Informationen können zum Beispiel sein:

  • CPU-Auslastung
  • Speicherverbrauch
  • Netzwerkauslastung
  • Systemtemperatur
  • Laufwerksbelegung
  • Gerätefehler

Monitoring-Systeme nutzen diese Daten, um Dashboards, Warnmeldungen oder automatische Alarme zu erstellen.

2. Kommunikationsprinzip und verwendete Ports

SNMP arbeitet in der Regel über UDP, nicht über TCP. UDP ist verbindungslos und hat einen geringeren Overhead. Für Monitoring-Zwecke ist das sinnvoll, weil regelmäßig viele kleine Abfragen durchgeführt werden

Typischerweise werden folgende Ports verwendet:

  • UDP Port 161 ⟶ SNMP-Abfragen (Manager ⟶ Agent)
  • UDP Port 162 ⟶ SNMP-Traps (Agent ⟶ Manager)

Die meisten Abfragen laufen über Port 161. Der Manager fragt einen bestimmten Wert ab, und der Agent sendet eine Antwort zurück.

SNMP kennt außerdem sogenannte Traps. Dabei sendet ein Gerät selbstständig eine Nachricht an das Monitoring-System, wenn ein bestimmtes Ereignis eintritt. Beispiele wären:

  • Netzwerkinterface fällt aus
  • Temperaturgrenze überschritten
  • Speicher fast voll

Das Monitoring-System muss dann nicht ständig alles abfragen, sondern wird automatisch informiert.

3. Geräte, die SNMP unterstützen

SNMP wird von sehr vielen Geräten unterstützt, besonders von Netzwerk- und Infrastrukturkomponenten.
Das liegt daran, dass Monitoring für den stabilen Betrieb eines Netzwerks sehr wichtig ist.

Typische Geräte, die SNMP unterstützen, sind zum Beispiel:

Router
Router liefern über SNMP häufig Informationen über:

  • Netzwerkauslastung der Interfaces
  • Fehler auf Netzwerkports
  • CPU-Auslastung
  • Routing-Status

Ein Administrator kann damit erkennen, ob ein Netzwerkport überlastet ist oder ob es Paketverluste gibt.

Switches
Bei Switches sind besonders interessant:

  • Status der einzelnen Ports
  • Bandbreitenauslastung
  • Fehlerhafte Frames
  • Aktivität einzelner Ports

Damit lässt sich zum Beispiel feststellen, ob ein Port abgeschaltet ist oder ungewöhnlich viel Datenverkehr erzeugt.

Server
Auch Server können über SNMP überwacht werden. Typische Werte sind:

  • CPU-Auslastung
  • RAM-Auslastung
  • Festplattenkapazität
  • Systemtemperatur

Gerade bei Servern ist die Überwachung des freien Speicherplatzes sehr wichtig, damit Systeme nicht unerwartet stehen bleiben.

Weitere Geräte, die SNMP häufig unterstützen:

  • Drucker
  • Firewalls
  • USV-Systeme
  • Storage-Systeme
  • Access Points

Das macht SNMP zu einem der wichtigsten Monitoring-Protokolle in IT-Infrastrukturen.

4. Aufbau der SNMP-Datenstruktur (MIB und OID)

Die Daten, die SNMP bereitstellt, sind in einer hierarchischen Struktur organisiert. Diese Struktur wird MIB (Management Information Base) genannt.

Eine MIB ist im Grunde eine Art Datenbank mit allen möglichen Informationen, die ein Gerät bereitstellen kann. Jede einzelne Information wird über eine OID (Object Identifier) angesprochen.

Eine OID ist eine numerische Adresse innerhalb der MIB-Struktur.

Beispiel für eine OID:

1.3.6.1.2.1.25.2.3.1.6

Diese Zahlenfolge beschreibt genau, welche Information abgefragt wird. Hinter dieser OID könnte zum Beispiel der freie Speicherplatz eines Laufwerks stehen.

Monitoring-Systeme kennen viele dieser OIDs bereits und können automatisch bestimmte Werte anzeigen.

5. Community Strings (SNMP Version 1)

In der ersten Version von SNMP (SNMPv1) erfolgt die Zugriffskontrolle über sogenannte Community Strings.

Ein Community String ist im Grunde ein Passwort, das beim Zugriff auf den SNMP-Agenten mitgesendet wird. Das Gerät prüft, ob dieser String erlaubt ist.

Typische Beispiele sind:

  • public
  • private

Dabei gilt meistens:

  • public ⟶ nur lesender Zugriff
  • private ⟶ auch schreibender Zugriff

Das Problem dabei ist, dass Community Strings nicht verschlüsselt übertragen werden. Sie können also theoretisch im Netzwerk mitgelesen werden. Deshalb gelten SNMPv1 und SNMPv2 heute als unsicher.

Moderne Systeme verwenden deshalb häufig SNMPv3, das Authentifizierung und Verschlüsselung unterstützt.

-- Praktischer Teil -- SNMP unter Windows

1. Installation und Konfiguration des SNMP-Dienstes

Auf Windows-Systemen kann ein SNMP-Agent installiert werden, damit der Rechner von Monitoring-Systemen überwacht werden kann.

Der SNMP-Dienst wird über die Windows-Features installiert.

Typischer Weg:

  1. Server Manager öffnen
  2. Features hinzufügen
  3. SNMP-Dienst installieren

Nach der Installation erscheint der Dienst SNMP Service in der Windows-Dienstverwaltung.

2. Wichtige Einstellungen im SNMP-Dienst

In den Eigenschaften des SNMP-Dienstes können mehrere wichtige Einstellungen vorgenommen werden.

Community Strings
Hier werden die erlaubten Community Strings definiert.
Man legt fest:

  • welcher String erlaubt ist
  • ob er nur lesen darf oder auch schreiben

Beispiel

Community Name: public
Rechte: READ ONLY


Zugelassene Hosts

Hier kann man definieren, welche Systeme überhaupt SNMP-Anfragen stellen dürfen. Das erhöht die Sicherheit, da nur bekannte Monitoring-Server Zugriff bekommen.


SNMP Traps

Hier kann eingestellt werden, an welchen Server SNMP-Traps gesendet werden sollen.

3. SNMP-Abfrage mit dem Paessler SNMP Tester

Ein praktisches Tool zum Testen von SNMP ist der Paessler SNMP Tester.

Dieses Programm ermöglicht es, direkt eine OID an ein Gerät zu senden und die Antwort zu sehen. Dadurch kann man schnell prüfen, ob SNMP korrekt funktioniert.

Typischer Ablauf:

  1. IP-Adresse des Zielsystems eintragen
  2. Community String eingeben
  3. SNMP-Version auswählen
  4. OID eingeben
  5. Abfrage starten

Das Tool zeigt dann die Antwort des SNMP-Agenten an.

4. Beispiel: freien Speicherplatz von Laufwerk C abfragen

Eine typische Monitoring-Aufgabe ist das Abfragen des freien Speicherplatzes eines Servers.

Der SNMP-Agent stellt diese Information über bestimmte OIDs bereit.

Der Ablauf sieht dann so aus:

  1. Der Monitoring-Server sendet eine SNMP-Anfrage an den Windows-Server.
  2. Die Anfrage enthält eine OID für den freien Speicherplatz.
  3. Der SNMP-Agent liest den Wert aus dem System aus.
  4. Der Wert wird als Antwort zurückgesendet.

Der Paessler SNMP Tester zeigt anschließend den Wert an. Dieser Wert wird meist in Bytes ausgegeben und kann dann in Prozent oder Gigabyte umgerechnet werden.

Monitoring-Systeme nutzen diese Werte, um Warnungen zu erzeugen, wenn zum Beispiel der freie Speicherplatz unter einem bestimmten Schwellenwert fällt.

5. Bedeutung von SNMP im Netzwerkbetrieb

SNMP ist eines der wichtigsten Werkzeuge für das Monitoring von IT-Infrastrukturen. Ohne Monitoring wäre es sehr schwer, Probleme frühzeitig zu erkennen.

Mit SNMP lassen sich:

  • Server überwachen
  • Netzwerkgeräte analysieren
  • Kapazitätsprobleme erkennen
  • automatische Warnmeldungen erzeugen

Viele bekannte Monitoring-Systeme basieren auf SNMP, zum Beispiel:

  • PRTG
  • Zabbix
  • Nagios
  • SolarWinds

Damit ist SNMP ein grundlegendes Werkzeug für Administratoren, um den stabilen Betrieb von Netzwerken und Systemen sicherzustellen.