1. SNMP-Dienste unter Windows
- 1.1
Was ist überhaupt ein "Dienst"?
-1.2 Windows
SNMP-Dienste, allgemein
+1.3 SNMP unter
Win95/98
-1.3.1 SNMP-Dienste unter Win 95/98
-1.3.2 Kein SNMP-Management-Dienst unter Win95/98
- 1.3.3 SNMP-Installation unter Win 95/98
- 1.3.4 Installation des Systemrichtlinien-Editors
-1.3.5 Konfiguration des SNMP-Dienstes mit Hilfe des
Systemrichtlinien-Editors
-1.3.6 Entfernen des SNMP-Dienstes unter Win95
+1.4 SNMP-Dienste unter Windows NT 4.0
- 1.4.1 Ist der Microsoft SNMP-Dienst und die Microsoft-API
die richtige Wahl für Sie?
- 1.4.2 SNMP-Installation unter WinNT 4.0
- 1.4.3 Konfiguration des SNMP-Dienstes
- 1.4.4 SNMP und die Registry
- 1.4.5 Installation eines Extension Agents
- 1.4.6 Entfernen des SNMP-Dienstes unter WinNT 4.0
1.1 Was ist überhaupt ein "Dienst"?
Bevor wir uns weiter in die Welt der Dienste (Services) vertiefen, sollten wir erst mal abklären, was denn ein Dienst überhaupt ist.
Also der WinNT SNMP Service Control Manager (SCM) besteht z.B aus einer Ansammlung von Diensten (natürlich nicht ausschließlich). Ein Dienst ist eine spezielle Win32-Anwendung, welche über die Win32-API mit dem SCM zusammenarbeitet. Dienste sind meistens Hintergrund-Prozesse (oder DAEMONS in der Unix-Sprache), welche zum überwachen von Hardware oder anderen System-Prozessen genutzt werden. Die Liste der installierten Dienste können Sie unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services in der Windows-Registry einsehen.
In der Systemsteuerung Ihres WinNT-Rechners finden Sie zwei Icons, die etwas mit Diensten zu tun haben:
Dienste: Hier finden Sie System-Dienste wie z.B. Arbeitsstationsdienst, Ereignisprotokollierdienst und Computer-Suchdienst, und deren Startart. Mit einem Programm, welches z.B. fortwährend verschiedene Prozesse oder Ports überwacht, haben Sie einen guten Kandidaten für einen System-Dienst.
Geräte: Hier finden Sie die Geräte-Dienste (auch Treiber genannt). Hier finden Sie die Geräte-Treiber Ihrer installierten Hardware.
Die Startart der verschiedenen Dienste kann beliebig (Vorsicht!!) eingestellt werden. Diese Einstellungen werden in der Registry gespeichert und vom SCM gemanagt.
1.2 Der Windows SNMP-Dienst, allgemein
Wie Sie bereits wissen, wird SNMP als ein Win32-Dienst implementiert. Unter Windows stehen dafür zwei Dienste zur Verfügung. Der erste Dienst ist der SNMP Agent-Dienst (SNMP.EXE). Dieser Dienst kann sowohl unter WinNT wie auch unter Win 95/98 aufgerufen werden. Mit diesem Dienst können Request-Nachrichten empfangen werden und Response-Nachrichten generiert und an den Sender geschickt werden. Der Agent nutzt für diese Aktionen die Windows Socket (WinSock) API. Zudem kann der Agent selbständig Trap generieren und an voreingestellte Management-Systeme senden.
Der zweite Dienst ist der SNMP Trap-Dienst. (SNMPTRAP.EXE). Dieser Dienst horcht auf Trap-Nachrichten, und leitet diese Daten an die Microsoft SNMP Management API weiter. Dieser Dienst ist unter Win 95/98 nicht ausführbar.
Der SNMP Agent-Dienst (oder Service) wird in der Microsoft-Literatur als "Windows NT extendible SNMP Agent" bezeichnet. Ein Extendible-Agent erlaubt, daß MIB-Informationen dynamisch hinzugefügt und entfernt werden können. Für einen Programmierer bedeutet dies, daß der Code des Agents nicht immer wieder neu kompiliert und ersetzt werden muss. Anstelle seiner wird ein externer "Subagent" modifiziert. Dieser wird wiederum von dem Agent genutzt, all die Anfragen entgegenzunehmen und Traps zu generieren. Diese Subagents werden allgemein als "Extension-Agents" bezeichnet. Ihre Aufgabe als Administrator ist es, solche Extension-Agents zu schreiben.
Die folgende Grafik 24 zeigt die Verwandtschaft der zwei SNMP-Dienste, des Service Control Managers (SCM) und der Extendible-Agents unter Windows NT.
Ein SNMP Extendible-Agent (Grafik 24)
Beide SNMP-Dienste werden vom SCM gesteuert. Der Extendible-Agent befindet sich innerhalb SNMP-Dienstes. Er empfängt mit Hilfe der WinSock-API die SNMP-Nachrichten und leitet sie an die verschiedenen Extension-Agents weiter. Jeder Extension-Agent ist eine DLL, welche für das Ausführen und Verarbeiten verschiedenster GetRequest-, GetNextRequest- und SetRequest-Nachrichten verantwortlich ist. Der SNMP-Trap-Dienst empfängt die Trap-Nachrichten und leitet sie an einen voreingestellten Server weiter.
Grafik 25 zeigt Ihnen ausführlicher, wie die Interaktion zwischen SNMP-Dienst, einer Reihe von Extension-Agents, der SNMP-API und der WinSock-API, funktioniert. Die SNMP-Nachrichten werden per UDP/IP-Protokolldienst von der WinSock-API entgegengenommen. Die Nachricht (im BER-Format) wird vom SNMP-Agent dekodiert, auf ihre Richtigkeit geprüft und per SNMP-API an die richtigen Extension-Agents weitergeleitet. Die Antworten nehmen den Weg in umgekehrter Reihenfolge. Sie werden vom SNMP-Agent als GetResponse-Nachricht formatiert und an das Management-System zurückgeschickt. Falls ein unbekanntes MIB-Objekt angesprochen wird, erfolgt eine noSuchName-Fehlermeldung.
Interaktion zwischen dem SNMP-Agent-Dienst und der SNMP-API (Grafik 25)
Die Aufgabe des SNMP-Trap-Dienstes ist es, etwaige Traps anderer SNMP-Agents entgegenzunehmen und sie an einen voreingestellten Management-Server weiterzuleiten. Dort werden sie von der Microsoft SNMP-Management-API, genauer gesagt der MGMTAPI.DLL, entgegengenommen. Die Trap wird dort an alle Anwendungen weiter verteilt, welche an der Management-API "lauschen" (um eben diese Traps zu empfangen).
Grafik 26 zeigt Ihnen die Interaktion zwischen dem SNMP-Trap-Dienst, einer SNMP-Management-Anwendung, der SNMP-API, der Management-API und der WinSock-API. Die Management-Anwendungen senden und empfangen die SNMP-Nachrichten die Management-API. Für Speicherzuweisung und Daten-Konvertierungsmechanismen wird die SNMP-API verwendet.
Interaktion zwischen dem SNMP-Trap-Dienst und der SNMP-Management-API (Grafik 26)
1.3.1. SNMP-Dienste unter Win 95/98
Windows 95/98 besitzen keinen Service Control Manager (SCM). Somit werden die Dienste durch Starten und Runterfahren des Systems "gemanagt". All die System-Anwendungen, die unter den RunServices und RunServicesOnce Registry-Schlüsseln aufgelistet sind, starten mit dem System und werden mit dem herunterfahren geschlossen. Sobald SNMP unter einem solchen System installiert wurde, finden Sie seine EXE-Datei (SNMP.EXE) unter RunServices in der Registry. Dienste die unter den Run- und RunOnce-Schlüsseln registriert sind werden gestartet, wenn sich ein User anmeldet und gestoppt wenn sich der User wieder abmeldet. Die Einträge unter RunOnce und RunServicesOnce werden nach dem Starten der Anwendung aus der Registry ausgetragen. Diese vier Schlüssel sind in der Registry unter HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion zu finden.
Die meisten Dienste unter Windows 95/98 werden durch ein-auslogen oder durch einen Restart des Systems gestartet bzw. gestoppt. Dies ist ein äußerst zeit- und nervenraubender Akt. Unglücklicherweise müssen Sie ihn gerade dann ausführen, wenn Sie sowieso nicht die Nerven für solche Spielchen haben (Treiber-Probleme, austesten einer Software usw., wer kennt das nicht ). Glücklicherweise kann man manche Dienste aus der Task-Leiste heraus steuern. Andere wiederum können aus der Konsole mit ein paar Befehlen gestoppt und gestartet werden.
Der SNMP-Dienst kann durch das System oder durch die Konsole gestartet und gestoppt werden. Wir bevorzugen natürlich die Konsole. Durch das eingeben von "SNMP" wird der SNMP-Service gestartet. "SNMP -close" beendet ihn wieder. Um eine Extension-Agent DLL zu testen, muss jedes Mal der SNMP-Dienst neu gestartet werden.
Wenn Sie unter Windows 95/98 einen Dienst installieren oder am automatischen Start hindern wollen, können Sie dies durch Ändern der RunServices-Schlüssel tun. Hier der Syntax:
<Name des Dienstes> <Pfad> <EXE-Datei> <Option 1> <Option 2> ...
Ein Beispiel mit Hilfe des SNMP-Dienstes:
SNMP agent "C:\WINDOWS\SNMP.EXE"
Wenn Sie noch eine Optionen anhängen wollen, können Sie dies so tun:
SNMP agent "C:\WINDOWS\SNMP.EXE /LOGLEVEL:10 /LOGTYPE:2"
Sie können den Dienst auch direkt aus der Konsole starten:
C:\> SNMP
1.3.2. Kein SNMP-Management-Dienst unter Windows95/98!
Kommen wir zu einer weiteren Einschränkung des SNMP-Dienstes unter W95/98. Sowohl WinNT und Win95/98 unterstützen SNMP-Agent-Dienste und die dazugehörenden APIs. Aber nur WinNT unterstützt den Trap-Dienst. Somit unterstützt Win95/98 keine APIs die zum aufsetzen von SNMP-Management-Anwendungen benötigt werden.
Warum ist das so? Ganz einfach, selbst Microsoft sieht keinen Sinn im
Einsatz von Win95/98-Rechner im Netzwerk-Management. Falls Sie dies nicht einsehen wollen,
müssen Sie sich eine spezielle Management-Software zulegen, die unter W95 arbeitet. Aber
wer überwacht dann Ihr Management-System????
:-)
1.3.3. Die Installation von SNMP unter Windows 95/98
Unter Windows 95 OEM Service Release 2 (4.00.95b) und Windows 98 ist der SNMP-Dienst ein fester Bestandteil der Netzwerk-Komponenten. Es muss nichts Separat heruntergeladen oder extrahiert werden!
Die Installation von SNMP unter diesem Betriebsystem ist ein bisschen
kompliziert. Die SNMP-Installation ist nicht auf normalen Weg durchzuführen. Zur
Installation wechseln Sie in das \ADMIN\NETTOOLS\SNMP Verzeichnis Ihrer Windows 95-CD.
Dort finden Sie die SNMPZP.EXE aus. Optional können Sie auch auf folgendes
FTP-Verzeichnis des Microsoft FTP-Servers wechseln: ftp://ftp.microsoft.com/Products/Windows/Windows95/CDRomExtras/AdministrationTools/NetworkTools/
Egal, welchen Weg Sie auch immer nutzen - kopieren Sie die EXE-Datei in ein leeres
Verzeichnis und führen Sie sie dort aus. Folgende Dateien werden extrahiert:
INETMIB1.DLL 50, 512
07-11-95 9:50a
SNMP.EXE 89,088
07-11-95 9:50a
SNMP.INF
3,008 07-11-95 9:50a
SNMP.TXT 1,110
08-17-95 1:28p
README.TXT 1,412
08-17-95 1:22p
LICENSE.TXT 3,315
08-15-95 9:13a
Die SNMP.EXE ist der aktuelle SNMP-Agent. Sie lädt den INETMIB1.DLL-Extension-Agent, mit dessen Hilfe W95 Workstations, MIB-II-Requests empfangen und Traps senden können. Die SNMP.INF-File wird zur Installation des SNMP-Dienstes genutzt. In ihr befinden sich eine Menge von Informationen, welche über die Registry-Schlüssel, die vom SNMP-Dienst kreiert und genutzt werden, Auskunft geben.
Nachdem Sie diese Dateien extrahiert haben , wechseln Sie in die System-Steuerung und doppelklicken Sie das Netzwerk-Icon. Bevor Sie den SNMP-Dienst installieren, muss TCP-IP installiert sein. Gehen wir davon aus , daß TCP-IP installiert ist:
Klicken Sie auf die "Hinzufügen" -Schaltfläche. Wählen Sie "Dienste" und klicken auf "OK". Windows kreiert nun eine Liste von möglichen Komponenten.
Klicken Sie nun "Diskette" und geben Sie den Pfad an, in den Sie die EXE-Datei extrahiert haben. (Bei Windows 95 Service Release 2 und Windows 98 nicht notwendig).
Wählen Sie "SNMP-Agent" aus und klicken Sie auf "OK"´.
Nun muss Win95 noch einige Dateien auf die Festplatte kopieren
Um die Installation abzuschließen, muss es neu gestartet werden
Jetzt kommen wir zum Knackpunkt der Installation. Wechseln Sie in Ihr c:\windows\system - Verzeichnis. Dort müsste sich jetzt die INETMIB1.DLL befinden. Aus Gründen, die keiner so recht kennt, befindet sich in der SNMP.INF-Datei nicht immer der Eintrag, der den Kopiervorgang für diese DLL-Datei einleitet. Ist dies der Fall, finden Sie die genannte DLL-Datei nicht im c:\windows\system - Verzeichnis. Sie müssen dann die DLL-File per Hand in genanntes Verzeichnis kopieren.
Unter Win95 und Win98 kann der SNMP-Dienst nicht über ein eigenes Menü konfiguriert werden. Sie können in aber direkt über die Registry oder den Systemrichtlinien-Editor konfigurieren.
1.3.4 Installation des Systemrichtlinien-Editors
Mit Hilfe des Systemrichtlinien-Editors können Sie den SNMP-Dienst unter Windows95/98 konfigurieren (nicht alles, aber das wichtigste). Zur Installation wechseln Sie in die Systemsteuerung:
Sie finden den Systemrichtlinien-Editor dann unter Start - Programme - Zubehör - Systemwerkzeuge
1.3.5 Konfiguration des SNMP-Dienstes mit Hilfe des Systemrichtlinien-Editors
So präsentiert sich der Systemrichtlinien-Editor, wenn Sie Ihn aufrufen (Grafik 27):
Systemrichtlinien-Editor (Grafik 27)
Klicken Sie auf "Datei" und danach auf "Neu". Der Editor legt dann einen Standardbenutzer und einen Standardcomputer an (Grafik 28)
Systemrichtlinien-Editor Mit Standardbenutzer und Standardrechner (Grafik 28)
Doppelklicken Sie danach das "Standardcomputer-Icon". Doppelklicken Sie dann das Netzwerk-Icon. Folgender Baum öffnet sich (Grafik 29). Wechseln sie mit der Maus auf das "SNMP-Icon" und öffnen Sie es. Durch markieren der einzelnen SNMP-Optionen gelangen Sie in deren Konfigurationsmodus. Nun können Sie die gewünschten Einstellungen vornehmen. Alles Änderungen die Sie mit diesem Editor vornehmen, werden in der Registry gespeichert!
SNMP-Optionen (Grafik 29)
Hier die SNMP-Optionen im Detail:
![]() | Communities: |
![]() | Zugelassene Manager: |
![]() | Traps für die Community "Public" |
![]() | Internet MIB (RFC1156) |
1.3.6 Entfernen des SNMP-Dienstes unter Win95
Sie wollen den SNMP-Dienst entfernen? Kein Problem. Halten Sie sich an folgende Punkte und SNMP ist von Ihrem Rechner verschwunden:
Wechsel Sie in die Systemsteuerung und doppelklicken Sie die das Netzwerk-Icon
Markieren Sie den Microsoft SNMP-Agent in der Netzwerk-Komponenten Liste
Klicken Sie auf die "Entfernen" -Schaltfläche
Klicken Sie auf die "OK"- Schaltfläche
Nun müssen Sie nur noch Ihren Rechner neu starten und der SNMP-Dienst ist entfernt.
Sie können den Dienst auch manuell mit Hilfe der Registry deinstallieren. Entfernen Sie einfach folgende HKEY_LOCAL_MACHINE-Schlüssel. Machen Sie dies aber nur dann, wenn Sie im Umgang mit der Registry sicher und erfahren sind!!
![]() | SYSTEM\CurrentControlSet\Services\SNMP |
![]() | SOFTWARE\Microsoft\RFC1156Agent\CurrentVersion |
![]() | SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices\SNMP agent |
1.4 SNMP-Dienste unter Windows NT 4.0
In diesem Kapitel gehe ich auf den SNMP-Dienst unter WinNT 4.0 ein. Zuerst ein paar Grundlagen, dann die Installation, Konfiguration und letztendlich ein paar Praxis-Übungen.
1.4.1 Ist der Microsoft SNMP-Dienst und die Microsoft-API die richtige Wahl für Sie?
Microsoft APIs sind nur unter Microsoft-System einsetzbar. Sie sind nicht mit anderen SNMP-APIs wie HP OpenView oder WinSNMP kompatibel. Sie sehen, das alte Problem mit der Kompatibilität begegnet uns wieder. Nun, Java wäre vielleicht eine Lösung für dieses Problem. Aber leider bekämpfen die Entwickler und Programmierer, die ihr Handwerk unter C++, Perl oder Visual Basic gelernt haben, diese universelle Java SNMP-API.
Nun wie sieht es mit der Stabilität und Fehlerhaftigkeit des SNMP-Dienstes aus. Unter WinNT kann ich aus eigener Erfahrung von keinen größeren Problemen berichten. Anders unter Win 95/98, aber wen wundert das? Die Geschwindigkeit des Dienstes hängt zum größten Teil davon ab, wie "gut" Ihre "Extension" -Agents geschrieben wurden.
Ob Sie nun den Microsoft Dienst oder den einer "third-party" -Software nutzen, können nur Sie selbst entscheiden. Hier ein paar Vorteile des Microsoft SNMP-Dienstes:
![]() | Wird auf jeder WinNT Server- und Workstation -CD mitgeliefert |
![]() | Leicht zu installieren und zu konfigurieren |
![]() | Bei dem Agent handelt es sich um einen "Extendible" -Agent, der als ein System-Dienst arbeitet |
![]() | Der Agent arbeitet mit SNMPv1 zusammen |
![]() | Der SNMP-Dienst wird von Microsoft aktiv gepflegt und erweitert |
Sie sehen im Microsoft SNMP-Dienst keine Nachteile? Gut befassen wir uns mit der Microsoft SNMP-API. (Hier finden sich die Nachteile von alleine)
Einmal ist die SNMP-API sehr komplex. SNMP-APIs von anderen Plattformen
bzw. "third-party" -Software, ermöglichen direkten Zugriff auf MIB-Datenbanken,
MIB-Compiler usw. Nicht so die Microsoft-API (sonst wäre es ja nicht Microsoft). Hier
haben Sie mit der SNMP-API nur auf die grundlegendsten SNMP-Agents und
Management-Funktionen, Zugriff. Wenn Sie auf eine Datenbank zugreifen wollen, müssen
Sie
auf die ODBC-API zugreifen. Bei einem "Low-Level" -Zugriff auf das Netzwerk
benötigen Sie die WinSock-API und wenn Sie einen Trap-Bericht benötigen, müssen
Sie auf
die Erreignisanzeige-API konsultieren.......
Erfahrene Windows-Entwickler sehen dies bestimmt nicht als Nachteil, aber für Beginner
bedeutet dies mehr Arbeit. Ein weiter Nachteil ist, daß Ihre Agents nur unter Win32 Hosts
funktionieren. Unter Win 3.1, Apple oder Unix Maschinen funktionieren Sie leider nicht.
Wollen Sie aber mit solchen Maschinen arbeiten, ist die Microsoft SNMP-API nicht die
richtige Wahl.
1.4.2 SNMP-Installation unter WinNT 4.0
Sie haben sich also für die Microsoft-API entschieden. Nun denn, auf geht's
Loggen Sie sich mit Administrator-Rechten in das System ein
Doppelklicken Sie das Netzwerk-Icon in der Systemsteuerung
Klicken Sie auf Dienste
Klicken Sie auf hinzufügen
Klicken Sie auf den SNMP-Dienst Eintrag in der Liste
Klicken Sie OK und starten den Rechner neu
Fertig :-)