Netzmanagement mit Scotty/Tkined 


Allgemeines

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 : 

Struktur von Scotty / Tkined

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. 

Tkined - Die graphische Managementoberfläche

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: 



Thomas Martin Knoll, 26.07.1997