Netzmanagement mit Scotty/Tkined
Die in diesem Kapitel vorgestellte Managementsoftware
stellt eine Erweiterung der "Tool Command Language (Tcl)" dar.
Diese interpretierte Script-Sprache dient der Steuerung und Erweiterung
von Anwendungen. Sie ist in C einbettbar und bietet einen erweiterbaren
Kommandosatz an. Die Abarbeitung der Scripts erfolgt in einer speziellen
Schell - "tclsh".
Das Programmpaket "Scotty", das seit 1993
von J. Schönwälder und H. Langendörfer an der Technischen
Universität Braunschweig entwickelt wird, erweitert nun den Befehlssatz
um managementspezifische Kommandos.
Dem Nutzer wird auf diese Weise ein schneller und
auf hoher Abstraktionsebene möglicher Zugang zu eigenen Managementapplikationen
geboten. Durch das Schreiben von kurzen und sehr aussagekräftigen
Scriptfiles können in kurzer Zeit komplexe Managementoperationen realisiert
und in einfacher Form notwendige Anpassungen vorgenommen werden.
Die neuen Kommandos umfassen folgende Punkte
:
Scotty hält sich strikt an des Paradigma
der ereignisgesteuerten Programmierung. Dazu bedient sich die Software
der Bibliothek "Event Management Library of Tk 4.0".
Managementapplikationen werden als Scriptfiles verfaßt
und beim Aufruf in den Interpreter geladen. Bei dem anschließenden
Initialisierungsvorgang werden einige Ereignisbehandlungsroutinen "Basic
Event Handler" eingerichtet. Danach wird die Applikation in die Ereignis-Warteschlange
integriert.
Jeder Management-Script wird als eigenständiger
Prozeß im System angelegt, so daß ein Blockieren einer Scriptabarbeitung
keinen Einfluß auf die anderen hat. Diese Stabilität erkauft
man mit erhöhter CPU-Last infolge meherer Interpreterprozesse.
Da die Erstellung der Management-Protokolldateneinheiten vollständig
im Scotty-Kern erledigt wird, entfällt für die Anwendung z.B.
die Kodierung und Dekodierung nach ASN.1, die Implementierung der "Authentication"-
und "Privacy"-Routinen bei Verwendung von SNMPv2, die Verwaltung
der MIB-Datenbank und vieles mehr.
Eine Anwendung, die die von Scotty gebotenen Funktionen nutzt, ist die
graphische Benutzeroberfläche "Tkined". Diese Anwendung
verwendet das "Toolkit (Tk)" für die Beschreibung der Oberflaechendarstellung
im X11-Windowssystem. Sie kann sowohl für den direkten Einsatz in
der Netzadministrierung als auch als Beispiel für eigene Entwicklungen
dienen. Eine sehr praktische Herangehensweise ist die Integration der eigenen
"Spezial-Scripts" im "Tkined". Da einige standardmäßig
gebotene Tools bereits in dieser Weise integriert sind, fällt es leicht,
diesem Beispiel zu folgen.
Bereits vorhandene Tools sind z.B. :
Weiterhin bietet Tkined auch einen online-Zugriff auf die mSQL-Datenbank
der Firma Hughes Technologies .
Die für die neuen Kommandos nötige Tcl-Erweiterung wurde in C
programmiert und nennt sich "Tcl-Network-Management (TNM)". Folgende
Kommando-Gruppen sind damit implementiert worden :
Auf die Gruppe "SNMP" wird nun kurz näher eingegangen.
Die hier gebotenen Kommandos sind: session, configure,
cget, get, getnext, getbulk, set, inform, trap, bind, wait, walk, destroy
und info. Wie an dieser Aufzählung bereits zu erkennen ist, werden
prinzipiell beide Versionen von SNMP unterstützt.
Mit dem Schlüsselwort "agent" lassen
sich die Kommandos instance, bind und walk zusätzlich
auch zum Aufbau eines Scotty-Agenten verwenden. Beim Realisieren des Agenten
wird von dem sonst statischen Zugriff auf die MIB-Objekte zu einem dynamischen
übergegangen. Dabei sind die MIB-Objekte an Tcl-Variablen des jeweiligen
Typs gebunden, wodurch Veränderungen an den Tcl-Variablen sich auch
in der SNMP-Session auswirken. Dazu ist zu sagen, daß zur Ausführung
der SNMP-Operationen eine SNMP-Session eingerichtet wird. Dies geschieht
mittels dem Schlüsselwort "session" (Optionen: address,
port, version, community, writecommunity, user). Die übergebenen Optionen
legen somit die Grunddaten aller in dieser Sitzung generierten SNMP-Pakete
fest. Es können mehrere "Session" gleichzeitig bestehen,
da sie über generierte Bezeichner getrennt ansprechbar sind.
Zum Gebrauch der Tcl-Erweiterung startet man die
Shell "Scotty2.1.5". Das nachfolgende Beispiel wurde in dieser
Shell ausgeführt.
Eröffnung der Sitzung zum Rechner "Aphrodite"
auf dem Port 161 mit dem Community-String 'public'
(Die Verwendung von SNMPv1 braucht nicht mit angegeben
zu werden, da dies voreingestellt ist.)
% set s [snmp session -address
aphrodite -port 161 -community public]
Rückmeldung des von Scotty generierten Sitzungsbezeichners,
der der Variablen s zugwiesen wurde.
snmp0
Eigentliche Abfrage des Objektes mit dem Namen "sysDescr"
innerhalb der Sitzung "$s = snmp0".
% $s get "sysDescr.0"
Anzeige der vom Agenten mittels Response-PDU gelieferten
Information.
{1.3.6.1.2.1.1.1.0 {OCTET STRING}
{Unix 4.3BSD}}
Ein weiteres Einsatzgebiet von Scotty ergibt sich
aus der Nutzung der vorhandenen Compiler für die SNMP-MIB bzw. GDMO.
Diese Möglichkeit wurde an der TU Braunschweig zur Erstellung zweier
WWW-Browser genutzt:
Durch die Unterstützung von HTTP und der Möglichkeit Scotty-Agenten
zu schreiben, ist folgender Mechanismus anwendbar. Auszuführende Managementaufgaben
werden in Form von Tcl-Scripts mittels HTTP dem Agenten übermittelt,
wo sie lokal und autonom abgearbeitet werden. Dies verringert die Netzlast
drastisch und ermöglicht die Implementierung verteilter schnellerer
und stabilerer Managementanwendungen.
Um den Umgang mit der Tcl-Erweiterung zu erleichtern,
gibt es die graphische Netzmanagementoberfläche "Tkined".
In der Arbeitsfläche des Programms kann man automatisch generierte
Netzdarstellungen bzw. selbst gezeichnete Netzausschnitte abbilden.
Jedes Element der Darstellung (Node, Network, Link, Group, Reference, Text,
Image, Stripchart, Barchart) wird dabei als eigenes Objekt verwaltet. Es
ist eine beliebige Anordnung der Objekte erlaubt und jedem können
sogenannte "Attributes" zugewiesen werden.
Wie bereits oben erwähnt, sind in Tkined verschiedene
Tools (Scotty-Scripts) integriert. Ist nun ein Objekt selektiert
und es wird ein Tool gestartet, so werden dem Script die Objekt-Attribute
(z. B. IP-Addresse eines Rechners) übergeben. Die gestarteten Aktionen
beziehen sich dann ausschließlich auf diese Attributwerte. Bei einer
Selektion mehrerer Objekte, wird die gewählte Aktion auf ein jedes
dieser Objekte angewendet.
Alle Vorgänge der gestarteten Aktionen werden
mitprotokolliert und in zusätzlichen Fenstern angezeigt.
Auf einem Bildschirmfoto
sind einige dieser Fensterdarstellungen einmal dargestellt.
Die Darstellung des Subnetzes 4 des Universitätsnetzes wurde mit der Managementoberfläche Tkined erstellt.
Nachfolgend sind einige Verweise zu Scotty / Tkined aufgeführt:
Scotty arbeitet mit Tcl7.5 und Tk4.1 ohne Probleme. Dies wurde während der Studienarbeit getestet. Einige Dokumente zu Tcl/Tk sind nachfolgend zu finden: