JavaBased Network Management (1) „Warum JAVA-based network management ?“ (Frank Rechenberger) (2) JAVA-Extensions (Robert Nickel) (3) Zwei Ansätze (Daniel Scheibler) (4) Protokollmapping (Falk Hamann) Gliederung •Kurze Wiederholung: Netzwerkmanagement •Anforderungen und Probleme •Aktuelle Situation •Entwicklungen •Ziele •Warum Java ? •Überleitung ... User Interface Manager SNMP Agent Agent Agent MIB MIB MIB Agenten •Lesen der Informationen aus der MIB •Weitergabe von Änderungen an die MIB •Konvertierung nach den „BER-Encoding Rules“ •keine Vorverarbeitung der Daten, nur bei RMON •Lebenslauf: Start, dann Dauerbetrieb Agenten - Anforderungen •Stabilität •Geringe CPU-Belastung •Sicherheit (authentification, encryption) •Erweiterbarkeit •Wartbarkeit •Erreichbarkeit MIB •Agentenseite •Menge der MOs •Strukturvorgabe durch Internet-MIB •ASN.1 Manager •Visualisierung der Netzstruktur •Abfrage der Information •Datensammlung und Haltung (DB) •Setzen von Managementparametern •Kommunikationszyklen 30s ...1h •Pooling trotz Traps Manager - Anforderungen •Erweiterbarkeit •Personalextensiv •Intelligente Vorinterpretation und Aufbereitung der Daten •Automatismen (Trouble Tickets, Ereignissteuerung) •Umfassend Konfigurierbar SNMP - Probleme •schlechte Sicherheitsmechanismen in SNMPv1, SNMPv2 •SNMPv3 kein Sicherung vor: DOS, Verkehrsanalyse •BER-encoding ineffizient •SNMP varbind lists relativ groß •bei hohe Datenaustauschraten SNMP ineffizient Heutige Situation im NM •Homogene Netzwerkstrukturen •Agenten und Manager vom Hardwareanbieter mit Minimal_funktionalität und -sicherheit •Agenten nicht erweiterbar , Development-Kits •Manager-Funktionalität oft nur erweiterbar über Manager-APIs Entwicklungen •Größe und Komplexität steigen explosionsartig •Sicherheitsanforderungen steigen •Homogene Netzwerkstrukturen sind nicht mehr haltbar •Heterogene Netzwerke sind unter heutigen Bedingungen teuer •Lebenszyklen der Systeme und Standards werden kürzer •Personalkosten bleiben hoch •Fremdmanagement durch Serviceanbieter Ziel •Portabilität •Stabilität •Erweiterbarkeit •Effizienz •Geringe Entwicklungskosten •Automatische Managementfunktionen •Manager-Manager Kommunikation Warum ist Java die beste Lösung? Java ist Plattform- und Hardwareunabhängig, Java bietet ein umfassendes OO-Konzept Modularität, Vererbung, Wiederverwendbarkeit Java bietet von Haus aus und der Geburt an Netzwerk- und NM Unterstützung Java unterstützt alle nützlichen Protokolle Java bietet ein ausgeprägtes Sicherheitskonzept Weiter im Programm... JavaBased Network Management Java-Features Robert Nickel java.net Umfassende leicht verständliche Netzwerkfunktionalität TCP (URL, Socket, ServerSocket) UDP (Datagram, Multicast) Wozu ??? Leicht implementierbare Kommunikation zwischen Agents und Managern Reflection API Analyse von Java-Klassen (Attribute/Methoden) Dynamisches Laden Wozu ??? Versenden von ausführbarem Code Java Native Interface Nutzen von Nicht-Java-Code Zugriff auf Systemspezifische Funktionalität Wozu ??? Zugriff des Agenten auf die Attribute des MO Security (I) JCE : Verschlüsselung (symmetrisch, asymmetrisch, block cipher, stream cipher) Message-Authentication-Algorithmen (MAC) Security (II) JAAS: Algorithmen zur Authentisierung/Authorisierung Nutzer-, Gruppen- und Rollen-basierte Zugriffskontrollmechanismen Security (III) JSSE: Unterstützung für SSL und TSL bei bel. Protokoll (HTTP, Telnet, NNTP, FTP, TCP/IP) Security (IV) Wozu ??? Sicherer, d.h. vor Manipulation geschützter Informationsaustausch Authentisierung der Agents => Schutz vor Fremdlingen JDBC Umfangreiche Datenbankfunktionalität Wozu ??? Strukturierte Speicherung von umfangreichen MIBs Agenten verfügen über Liste zuständiger Manager => Suchfunktion Archivierung zu Statistikzwecken auf Managerseite JNDI (I) Strukturierung und Identifizierung von Entitäten mit menschenverständlichen Namen / Adressen SPI bietet Zugang zu anderen Verzeichnisdiensten wie DNS, LDAP, DAP, NDS, NIS JNDI (II) JNDI (III) Wozu ??? Intuitive Strukturierung der MOs Bildung von Hierarchien, die sich im Name-to-Adress-Mapping wiederspiegeln RMI / RMI-IIOP Aufruf von Funktionen auf entfernten Entitäten Neu: Jetzt auch CORBA-basiert Wozu ??? Alternative zu Sockets IDL CORBA-Feature: IDL Sprachneutrale Schnittstellendefinition Java-IDL = IDL-Mapping für Java RMI / IDL Wozu ??? Remote-Steuerung der MOs Einbinden fremder Agents die über RMI gesteuert werden Management von CORBA-Agents Java Beans (I) Wiederverwertbare Softwarekomponenten Einfacher Entwurf Hierarchische Strukturierung in Kontexten Service-Funktionalität Java Beans (II) Wozu ??? Entwurf wiederverwertbarer modularer Agents / Manager Nutzen der geg. Funktionalität zum Anbieten von Services JMX basiert auf BeanTechnologie JMX Instruction-Level (einfaches Management aller Javabasierten Objekte) Agent-Level (rudimentäre Agent-Container, die mit Funktionalität / Resourcen erweitert werden können) Manager-Level (Management-Komponenten, die sowohl als Agent als auch Manager operieren können) Zusätzliche Protokoll-APIs (SNMP, WBEM, TMN...) Weiter im Programm... JavaBased NetworkManagement Zwei Ansätze Daniel Scheibler Inhalt Einleitung Ansatz der Arizona State University, USA Ansatz der University of Essex, UK Vergleich Literatur Arizona – Manager Kommunikation Manager - Agent Auslesen der Parameter aus der GUI Generierung des OID strings Generierung einer Java Klasse mit OID string Compilierung der Klasse in Bytecode Versand des Bytecode an den Agent Ausführen der enthaltenen Methode beim Agent und auswerten des gelesenen OID strings Arizona – Agent Hauptfunktionen des Agenten Anfragen vom Manager bearbeiten MIB tree parsen Ereignismeldungen an den Manager schicken Arizona – CMU - Vergleich Eigenschaften CMU-SNMP Java/Web Transport protocol Deamon MIB type Encoding Message passing Extensible Agent Security Auto. configuration UDP SNMPd ASN.1 BER SNMP PDU difficult low level not defined TCP Agent ASN.1 Bytecode Class easy good defined Arizona – future work Agenten mittels Broadcast automatisch auffinden Mehrere Agenten mit einem Manager verwalten MIB Struktur expandieren und reduzieren Mobile Agenten unterstützen Essex – Manager Browser-basierte GUI Kommunikation: Socket-basiert TCP & UDP unterstützt Authentifiktion von Managern Datenverschlüsselung bei Agenten weitere Möglichkeiten Navigation durch MIB Automatisches Ausführen von Network Discovery Essex - Agent Hintergrundprozess horcht an einem bekannten TCP oder UDP port pro eingehender Anfrage wird ein thread gestartet Multi-Managerfähigikeit Essex – MIB Parser Aufbau eines Random Access File Object name mib-2 System ifType Syntax Integer Access Read-only Status ... Mandatory Description Parent node Mgmt mib-2 ifEntry Identifier 1 1 3 Record Index 0 1 23 Essex - Sicherheitsaspekte Manager signiert Anfragen Agenten verschlüsselt Antworten Verschlüsselungsverfahren: RSA Essex – future work Optimierung des Codes von Manager und Agent, um die Antwortzeit zu verringern Konstruktion einer erweiter- und reduzierbaren Repräsentation der MIB im Manager Unterstützung von mobilen Agenten Vergleich Arizona – Essex Weiter im Programm... JavaBased Network Management Protokollmapping Falk Hamann Protokollmapping Zwei Möglichkeiten um möglichst viele Clients anzubinden homogen = alle Sprechen selbe Sprache (Java) Protokollmapping Wo liegt das Problem ? Viele Clients, alle mit unterschiedlichen Protokollen anzusprechen Manager soll relativ unabhängig davon sein Manager untereinander könnten über RMI kommunizieren, oder eine andere modere „Sprache“ Was ist die Idee ? Wie in der Softwaretechnik vorgehen: Verwendung von Entwurfsmustern Qualitätsziele: Wiederverwendbarkeit, Anpassbarkeit, Erreichbarkeit Kapselung von Daten und Funktionalität Entwurfsmuster Abstract Factory „Bietet eine Schnittstelle zum Erzeugen von Familien verwandter oder voneinander unabhängigen Objekten, ohne ihre konkreten Klassen zu benennen.“(1) Adapter „Passt die Schnittstelle einer Klasse an eine andere von ihren Klienten erwartete Schnittstelle an.“(1) Abstract Factory denkbar auch als Kette von Fabriken, um Abstraktionsstufen zu erhalten Abstract Factory (2) Vorteile Managerfunktionalität kann gekapselt werden von den Protokollen. letztendlich: Manager kann mit vielen Clients kommunizieren Nachteil: viel Code für das Protokollmapping nötig, nur wenn viele Gemeinsamkeiten, dann lohnt es sich Quellen (1) E.Gamma, R.Helm, R.Johnson, J.Vlissides: Entwurfsmuster: AddisonWessley (2) Jae-Oh Lee : Enabling Network Managemant Using Java Technologies : WarePlus Inc./Korea Telecom (3) Luderer G., Ku H., Subbiah B., Narayaanan A., „Network management agents supported by Java environment“, 1997, URL: http://www.eas.asu.edu/~netsys/areas/isinmabs.html (4) Gavalas D., Greenwood D., Ghanbari M., O‘Mahony M., „A progressive network management architecture enabled by Java technology“ (5) Java - Tutorial, URL: http://java.sun.com (6) http://www.cisco.com