-
TECHNISCHES GEBIET
-
Diese Erfindung betrifft das Gebiet der Netzwerkeinheiten-Konfigurationsverwaltung. Insbesondere betrifft die Erfindung die Verwaltung von Befehlsaktualisierungen an Netzwerkeinheitenkonfigurationen.
-
BISHERIGER STAND DER TECHNIK
-
Studien deuten darauf hin, dass über 60% der Netzwerkausfälle durch Fehler verursacht werden, die von Benutzern begangen werden, während sie Netzwerkelementkonfigurationen ändern. Dies wird durch syntaktisch komplexe Befehlszeilenschnittstellen verschärft, die von vielen Netzwerkelementen verwendet werden. Zu vorhandenen Ansätzen zur Verringerung von Benutzerfehlern zählen: Bereitstellen von Hilfetext innerhalb der Schnittstelle selbst; Auto-Vervollständigen von Befehlen, wenn der Benutzer auf der Schnittstelle tippt; und Einschränkung des durch den Benutzer ausgebbaren Befehlssatzes auf der Grundlage von Sicherheitsberechtigungen. Keiner dieser Ansätze ist jedoch vollständig und Fehler sind nach wie vor sehr verbreitet, so dass zusätzliche Mechanismen erforderlich sind, welche die Anzahl von Fehlern weiter verringern könnten.
-
Ein beispielhafter Netzwerkkonfigurationsverwalter ist der IBM Tivoli Netcool Configuration Manager (ITNCM) (IBM, Tivoli und Netcool sind Marken der International Business Machines Corporation). Die Funktion der ITNCM-Anwendung liegt darin, es Benutzern zu ermöglichen, Netzwerkelemente einfach, zuverlässig und wiederholt zu konfigurieren. Die Mechanismen, die der ITNCM verwendet, um dies zu erreichen, sind hauptsächlich um die Verwendung eines Modells der Einheitenkonfigurationsschnittstelle herum aufgebaut. Das beschriebene Verfahren und das beschriebene System beruhen auf vorhandenen Netzwerkkonfigurationsverwaltern, wie beispielsweise dem ITNCM, und erweitern diese.
-
Bei einem Netzwerkelement handelt es sich um eine Einheit, die Teil eines Datenübertragungsnetzwerks ist. Jedes Netzwerkelement besitzt eine Konfiguration, bei der es sich um eine Reihe intern gespeicherter Einstellungen handelt, die beeinflussen, wie sie arbeitet. Die Konfiguration weist üblicherweise eine durch den Menschen lesbare Darstellung auf, welche die Einheit auf Anforderung, oftmals als reinen Text, bereitstellen kann. Das Netzwerkelement besitzt zudem eine Konfigurationsschnittstelle, bei der es sich um einen Mechanismus handelt, durch den die Konfiguration geändert werden kann, was oftmals mittels reiner Textbefehle erfolgt, die auf einer Befehlszeilenschnittstelle (command-line interface (CLI)) ausgegeben werden. Um ein Netzwerkelement einzurichten und zu verwalten, muss der menschliche Bediener verstehen, wie in der Datenübertragungsschnittstelle eingegebene Befehle wirken, um die Konfiguration zu beeinflussen.
-
Das ITNCM-System enthält eine Bibliothek von Modellen für unterschiedliche Einheiten (jedes Modell ist spezifisch für einen Typ oder eine Familie von Einheiten von einem Anbieter). Das Modell besitzt syntaktische, verhaltensorientierte und Darstellungs(rendering)-Aspekte. Beim vorhandenen ITNCM-Prozess wird die aktuelle Konfiguration von der Einheit abgerufen und unter Verwendung des syntaktischen Teils des Modells die native Konfiguration zum leichteren Umgang innerhalb der Anwendung in eine interne Darstellung der Konfiguration (eine XML(extended markup language)-Struktur) umgewandelt. Die Darstellungsaspekte des Modells werden durch die grafische Benutzeroberfläche (graphical user interface (GUI)) des Systems verwendet, um dem Benutzer die Konfiguration mit geeigneten Anmerkungen anzuzeigen, wie beispielsweise einer visuellen Angabe des zulässigen Bereichs für einen Parameter. Der Benutzer kann durch Bearbeiten der GUI-Darstellung oder Übernehmen einer zuvor gespeicherten Konfigurationsvorlage Änderungen an der Konfiguration vornehmen und dann anfordern, dass die Änderungen auf die Einheit angewendet werden. Unter Verwendung der syntaktischen und verhaltensorientierten Aspekte des Modells wandelt der ITNCM die auf die interne Darstellung der Konfiguration angewendeten Änderungen in eine Reihe von Befehlen um, die an die Einheit ausgegeben werden können, um ihre Konfiguration so zu beeinflussen, dass sie mit der internen ITNCM-Darstellung übereinstimmt.
-
Es ist wünschenswert, das Potenzial für menschliche Fehler beim Konfigurieren einer Einheit zu verringern, indem die Weisen eingeschränkt werden, auf die gewisse Benutzer Einheitenkonfigurationen ändern können – wodurch weniger erfahrene Techniker vom Ausgeben der potenziell destruktivsten Befehle abgehalten werden. Dies kann derzeit beim ITNCM erreicht werden, indem der Zugriff auf gewisse Teile der Konfiguration gesperrt wird, wenn sie auf der GUI dargestellt wird. Bei Kundenkontakten wurde jedoch herausgefunden, dass Netzwerktechniker auch Zugriff direkt auf die Befehlszeilenschnittstelle (CLI) verlangen.
-
Der ITNCM stellt einen Befehlszeilenschnittstellen-Zugriff mittels eines integrierten Einheitenterminals (integrated device terminal (IDT)) bereit, innerhalb dessen es einen Mechanismus gibt, um die Befehle einzuschränken, die ein Benutzer an eine Einheit übermitteln kann. Dies beruht jedoch auf einem simplen Textzeichenkettenvergleich, um Befehle zu sperren, und bürdet dem ITNCM-Administrator praktisch die ganze Arbeit auf, geeignete Textfilter festzulegen. Beim aktuellen Ansatz muss der Benutzer für jeden Einheitentyp detaillierte Kenntnisse der Befehlssyntax besitzen, und er erfordert das Aufbauen komplexer Sequenzen des Vergleichs von Mustern regulärer Ausdrücke.
-
Die Internationale Patentanmeldung, Veröffentlichungsnummer
WO 2011/088898 (FEDOR, Szymon et al (VERIFICATION OF COMPATIBILITY AMONG TELECOMMUNICATION NETWORK FEATURES, 28.07.2011), offenbart ein Verfahren und eine Vorrichtung zum Bewerten der Kompatibilität einer ausgewählten Netzwerkfunktion mit den Netzwerkfunktionen eines bestehenden Telekommunikationsnetzwerks, aufweisend ein Bereitstellen einer Abstraktion jeder Netzwerkfunktion in der Form eines Datenmodells, das die Beziehungen zwischen beliebigen Netzwerkelementen oder Knoten, Software-Elementen und Software-Funktionen definiert, die für jede Netzwerkfunktion erforderlich sind.
-
Es ist daher ein Bedarf in der Technik vorhanden, das zuvor genannte Problem zu lösen.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Gemäß einem ersten Aspekt der vorliegenden Erfindung wird ein Verfahren zur Netzwerkeinheiten-Konfigurationsverwaltung bereitgestellt, aufweisend: Empfangen eines Satzes von Benutzerbefehlen für eine Konfiguration einer Netzwerkeinheit; Abrufen eines syntaktischen Modells einer Netzwerkeinheiten-Konfigurationsschnittstelle für einen Netzwerkeinheitentyp und Erzeugen einer modellierten Konfiguration einer aktuellen Konfiguration der Netzwerkeinheit; Vorhersagen des Effekts der Benutzerbefehle auf die modellierte Konfiguration, um eine vorhergesagte modellierte Konfiguration zu erzeugen; und Anwenden von Regeln für einen Benutzer und/oder einen Netzwerkeinheitentyp, um zu ermitteln, ob die Befehle auf der Grundlage des vorhergesagten modellierten Konfiguration der Netzwerkeinheit erlaubt sind.
-
Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird ein System für die Netzwerkeinheiten-Konfigurationsverwaltung bereitgestellt, aufweisend: einen Prozessor; eine Benutzereingabekomponente zum Empfangen eines Satzes von Benutzerbefehlen für eine Konfiguration einer Netzwerkeinheit; eine Modellierkomponente zum Abrufen eines syntaktischen Modells einer Netzwerkeinheiten-Konfigurationsschnittstelle für einen Netzwerkeinheitentyp und Erzeugen einer modellierten Konfiguration einer aktuellen Konfiguration der Netzwerkeinheit; eine modellgestützte Konfigurationsvorhersagekomponente zum Vorhersagen des Effekts des Benutzerbefehls auf die modellierte Konfiguration, um eine vorhergesagte modellierte Konfiguration zu erzeugen; und eine Regelkomponenten zum Anwenden von Regeln für einen Benutzer und oder einen Netzwerkeinheitentyp, um zu ermitteln, ob der Befehl auf der Grundlage des vorhergesagten modellierten Konfiguration der Netzwerkeinheit erlaubt ist.
-
Gemäß einem dritten Aspekt der vorliegenden Erfindung wird ein auf einem computerlesbaren Medium gespeichertes und in den internen Speicher eines digitalen Computers ladbares Computerprogramm bereitgestellt, das Software-Codebereiche umfasst, die bei Ausführung des Programms auf einem Computer die Schritte der Erfindung durchführen können.
-
Hinsichtlich eines weiteren Aspekts stellt die vorliegende Erfindung ein Computerprogrammprodukt für die Netzwerkeinheiten-Konfigurationsverwaltung bereit, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium aufweist, das durch eine Verarbeitungsschaltung lesbar ist und Anweisungen zur Ausführung eines Verfahrens zum Durchführen der Schritte der Erfindung durch die Verarbeitungsschaltung speichert.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die vorliegende Erfindung wird nun in lediglich beispielhafter Weise unter Bezugnahme auf bevorzugte Ausführungsformen beschrieben, wie sie in den folgenden Figuren dargestellt sind:
-
1 zeigt ein Blockschaubild eines Systems gemäß der vorliegenden Erfindung;
-
2 zeigt ein Blockschaubild eines Computersystems, in dem die vorliegende Erfindung realisiert werden kann;
-
3 zeigt einen Ablaufplan einer Ausführungsform eines Verfahrens gemäß der vorliegenden Erfindung; und
-
4 zeigt ein schematisches Schaubild, das eine Ausführungsform eines Verfahrens gemäß der vorliegenden Erfindung zeigt.
-
DETAILLIERTE BESCHREIBUNG
-
Er ist ersichtlich, dass zur Einfachheit und Klarheit der Abbildung in den Figuren gezeigte Elemente nicht unbedingt maßstäblich gezeichnet wurden. Zum Beispiel können zur Klarheit die Abmessungen einiger der Elemente relativ zu anderen Elementen übertrieben dargestellt sein. Weiterhin können Bezugszeichen innerhalb der Figuren wiederholt werden, wo dies angemessen scheint, um entsprechende oder analoge Merkmale zu bezeichnen.
-
In der folgenden detaillierten Beschreibung werden zahlreiche spezifische Details aufgeführt, um ein umfassendes Verständnis der Erfindung zu ermöglichen. Der Fachmann versteht jedoch, dass die vorliegende Erfindung ohne diese spezifischen Details ausgeführt werden kann. In anderen Beispielen wurden bereits bekannte Verfahren, Vorgehensweisen und Komponenten nicht im Detail beschrieben, um die vorliegende Erfindung nicht zu verschleiern.
-
Ein Verfahren und ein System werden beschrieben, die ein vollständiges oder teilweises syntaktisches Modell einer Netzwerkeinheiten-Konfigurationsschnittstelle (d. h. die Befehle, die ausgegeben werden könnten) und ein Modell der aktuellen Netzwerkeinheitenkonfiguration verwenden, um in nahezu Echtzeit den Effekt der Befehle, die der Benutzer eingibt, auf die Netzwerkeinheitenkonfiguration vorherzusagen. Durch Anwenden einschränkender Regeln auf die vorhergesagte Konfiguration anstatt auf die durch den Benutzer getippten Textbefehle, kann eine genauere und wirksamere Einschränkung der Benutzeraktionen mit einer einfacheren Regeldefinition für den Administrator erreicht werden.
-
Ein Systemadministrator kann eine grafische Benutzeroberfläche (GUI) oder einen anderen Mechanismus verwenden, um einen Satz von Regeln zu definieren, welche die Weisen beschreiben, auf die der Benutzer die Konfiguration beeinflussen kann. Diese Regeln können Sätzen von Netzwerkeinheiten (auf der Grundlage von Anbieter, Familie, Rolle im Netzwerk usw.) und Sätzen von die GUI verwendenden Benutzern (auf der Grundlage von Gruppenmitgliedschaft) zugeordnet werden.
-
Zu Beispielen einiger Typen von Regeln, die definiert werden können, zählen die folgenden (hierbei handelt es sich um eine nicht abschließende Liste):
- – Abschnitte der Konfiguration, die der Benutzer ändern darf/nicht ändern darf;
- – Konfigurationsmuster, die verboten sind, z. B. Muster die einfache Einschränkungen wie beispielsweise „darf CDP nicht aktivieren” (Cisco Discovery Protocol, Cisco ist eine Marke von Cisco Systems, Inc.) oder Muster, die komplexere Szenarien darstellen, die unterschiedliche Teile der Konfiguration miteinander in Beziehung setzen, wie beispielsweise „vorhandene ACLs (access control lists, Zugangskontrolllisten), die auf einer oder mehreren Schnittstellen in Verwendung sind, dürfen nicht bearbeitet werden”;
- – Einschränkungen auf der Grundlage interner Richtlinien des Netzwerkbetreibers, z. B. „VLAN (virtual local area network, virtuelles lokales Netzwerk) 5 ist reserviert, und nur der Netzwerkadministrator darf es konfigurieren”; und
- – Definierte Grenzen, innerhalb derer Parameter geändert werden dürfen (z. B. vermeiden, dass die Bandbreite einer Schnittstelle höher als 1 Mbit/s gesetzt wird).
-
Wenn der Benutzer eine Konfigurationszeilenschnittstellen(CLI)-Sitzung mit einer Netzwerkeinheit startet, ruft der beschriebene Konfigurationsverwalter eine Kopie der aktuellen Konfiguration ab und wandelt sie in ein internes Darstellungsformat um. Wenn der Benutzer einen Befehl in die CLI-Sitzung eingibt, verwendet das System ein syntaktisches und verhaltensorientiertes Modell, um die Weise vorherzusagen, in der die Netzwerkeinheitenkonfiguration durch diesen Befehl geändert werden wird. Am Punkt, an dem der Benutzer den Prozess eines Sendens des Befehlspuffers an die Einheit startet, werden die relevanten Regeln auf die vorhergesagte Konfiguration angewendet, um zu ermitteln, ob das Senden der Befehle erlaubt werden soll.
-
Vielfältige Mechanismen können benutzt werden, um die Leistung des Regelabgleichs zu verbessern, wie beispielsweise Vorberechnen des gesammelten Effekts mehrerer relevanter Regeln für jeden Einheitensatz und jede Benutzergruppe; und Vorbearbeiten des Modells, um ein Format zu erzeugen, das für ein schnelles Suchen optimiert ist, wie beispielsweise eine binärer Baum.
-
Bei dem beschriebenen Verfahren und dem beschriebenen System beruhen Benutzereinschränkungen auf dem Endkonfigurationszustand der Netzwerkeinheit anstelle der zum Erreichen dieses Zustands ausgegebenen Befehle. In vielen Fällen gibt es mehrere unterschiedliche Arten, auf die derselbe Effekt erreicht werden kann: unterschiedliche Befehlssätze, die in Kombination dasselbe Ergebnis besitzen, in vielen Fällen von anderen Dingen abhängen, die zuvor auf der Einheit konfiguriert wurden, und durch Abkürzungen und alternative Befehlsschreibweisen auf der Einheitenkonfigurationsschnittstelle noch komplexer gemacht werden. Es ist äußerst komplex, Textfilterregeln herzustellen, welche den unerwünschten Befehlssatz sperren können, ohne auch Befehle zu sperren, auf die der Benutzer Zugriff haben muss, um seine Aufgaben durchzuführen. Durch Einschränken des Endkonfigurationszustands stattdessen muss sich der Administrator keine Gedanken über die vielen Wege machen, die zu diesem Endzustand führen könnten.
-
Unter Bezugnahme auf 1 zeigt ein Blockschaubild eine Ausführungsform des beschriebenen Systems 100.
-
Bei einer Netzwerkeinheit 110 handelt es sich um eine Einheit, die Teil eines Datenübertragungsnetzwerks ist und die eine Konfiguration 111 besitzt, bei der es sich um Einstellungen handelt, die festlegen, wie die Netzwerkeinheit 110 arbeitet.
-
Ein Netzwerkkonfigurationsverwalter 120 wird bereitgestellt, der ein Konfigurieren der Netzwerkeinheiten 110 ermöglicht. Zu vorhandenen Netzwerkkonfigurationsverwaltern 120 zählt als ein Beispiel der IBM Tivoli Netcool Configuration Manager (ITNCM). Der beschriebene Netzwerkkonfigurationsverwalter 120 besitzt zusätzliche Funktionalität, wie nachstehend weiter beschrieben.
-
Der Netzwerkkonfigurationsverwalter 120 kann eine Modellierkomponente 130 zum Bereitstellen und Verwenden eines Modells 131 in der Form eines syntaktischen und verhaltensorientierten Modells einer Netzwerkeinheiten-Konfigurationsschnittstelle für einen Typ von Netzwerkeinheit 110 enthalten. Das Modell 131 kann als Teil seiner Struktur eine Baumdarstellung aller möglichen Schlüsselwortbefehle beinhalten, die an diese Netzwerkeinheit 110 ausgegeben werden können.
-
Die Modellierkomponente 130 kann eine Konfigurationsabrufkomponente 132 zum Abrufen einer Kopie der aktuellen Konfiguration 111 der Netzwerkeinheit 110 und eine Konfigurationsmodellierkomponente 133 zum Bestücken des Modells und somit Ableiten einer modellierten Konfiguration 134 für die aktuelle Konfiguration der Netzwerkeinheit 110 beinhalten.
-
Der Netzwerkkonfigurationsverwalter 120 kann zudem eine modellgestützte Konfigurationsvorhersagekomponente 140 enthalten, die eine Befehlsverarbeitungskomponente 141 zum Verarbeiten eines durch einen Benutzer eingegebenen Befehls und eine Befehlseffektkomponente 142 zum Ermitteln des Effekts des Befehls auf die Konfiguration 111 der Netzwerkeinheit 110 enthalten, wodurch eine Version einer vorhergesagten modellierten Konfiguration 143 der modellierten Konfiguration 134 erzeugt wird.
-
Der Netzwerkkonfigurationsverwalter 120 kann zudem eine Regelkomponente 150 beinhalten, die eine Regelanwendekomponente 151 zum Anwenden vorgegebener Regeln 153 hinsichtlich Berechtigungen eines Benutzers, des Typs der Netzwerkeinheit 110 und weiterer Kriterien enthält. Die Regeln 153 können durch die Regelanwendekomponenten 151 auf die vorhergesagte modellierte Konfiguration 143 angewendet werden. Eine Befehlserlaubniskomponente 152 kann bereitgestellt werden, die einen Befehl an die Netzwerkeinheit 110 erlaubt oder verweigert.
-
Der Netzwerkkonfigurationsverwalter 120 kann eine Benutzereingabekomponente 160 enthalten, die eine Anmeldekomponente 161 enthält, damit sich ein Benutzer zu einer Konfigurationssitzung für eine Netzwerkeinheit 110 anmelden kann. Die Benutzereingabekomponente 160 kann zudem eine Befehlseingabekomponente 162 enthalten, mit der ein Benutzer vorgeschlagene Befehle eingeben kann, die durch die modellierende Vorhersagekomponente 140 modelliert werden.
-
Der Netzwerkkonfigurationsverwalter 120 kann zudem eine Befehlskomponente 170 enthalten, die eine Befehlspufferkomponente 171 enthalten kann, um durch den Benutzer eingegebene Befehle zu Puffern, bis die die Befehle durch die Befehlserlaubniskomponente 152 erlaubt oder verweigert werden. Eine Pufferleerungskomponente 172 kann bereitgestellt werden, um Befehle aus einem Puffer zu leeren, wenn sie abgelehnt werden. Eine Befehlssendekomponente 173 kann bereitgestellt werden, um Befehlen an die Netzwerkeinheit 110 zu senden, wenn sie erlaubt werden.
-
Unter Bezugnahme auf 2 beinhaltet ein beispielhaftes System zum Realisieren von Aspekten der Erfindung ein Datenverarbeitungssystem 200, das zum Speichern und/oder Ausführen von Programmcode geeignet ist und mindestens einen Prozessor 201 enthält, der direkt oder indirekt über ein Bussystem 203 mit Speicherelementen verbunden ist. Zu den Speicherelementen können ein lokaler Speicher, der während der tatsächlichen Ausführung des Programmcodes eingesetzt wird, Massenspeicher und Cachespeicher zählen, welche die vorübergehende Speicherung mindestens eines Teils des Programmcodes bereitstellen, um die Anzahl des Abrufens von Code vom Massenspeicher während der Ausführung zu verringern.
-
Zu den Speicherelementen kann ein Systemspeicher 202 in der Form von Nur-Lese-Speicher (read only memory (ROM)) 204 und Speicher mit wahlfreiem Zugriff (random access memory (RAM)) 205 zählen. Ein grundlegendes Eingabe/Ausgabe-System (basic input/output system (BIOS)) 206 kann im ROM 204 gespeichert sein. Systemsoftware 207 kann im RAM 205 gespeichert sein und Betriebssystemsoftware 208 einschließen. Softwareanwendungen 210 können ebenfalls im RAM 205 gespeichert sein.
-
Das System 200 kann zudem ein Primärdatenspeichermittel 211 wie beispielsweise ein Magnetfestplattenlaufwerk und ein Sekundärdatenspeichermittel 212 wie beispielsweise ein Magnetplattenlaufwerk und ein optisches Plattenlaufwerk beinhalten. Die Laufwerke und ihre zugehörigen computerlesbaren Medien stellen nichtflüchtigen Datenspeicher von durch Computer ausführbaren Anweisungen, Datenstrukturen, Programmmodulen und anderen Daten für das System 200 bereit.
-
Software-Anwendungen können auf dem Primär- und dem Sekundärdatenspeichermittel 211, 212 sowie dem Systemspeicher 202 gespeichert werden.
-
Das Computersystem 200 kann in einer Netzwerkumgebung arbeiten, in der logische Verbindungen zu einem oder mehreren entfernt angeordneten Computern über einen Netzwerkadapter 216 verwendet werden.
-
Eingabe/Ausgabe-Einheiten 213 können entweder direkt oder über zwischengeschaltete E/A-Steuereinheiten mit dem System verbunden sein. Ein Benutzer kann über Eingabeeinheiten wie beispielsweise eine Tastatur, eine Zeigeeinheit oder andere Eingabeeinheiten (zum Beispiel ein Mikrofon, ein Joystick, eine Spielesteuerung (game pad), eine Satellitenantenne, einen Scanner oder Ähnliches) Befehle und Informationen in das System 200 eingeben. Zu Ausgabeeinheiten können Lautsprecher, Drucker usw. zählen. Zudem ist eine Anzeigeeinheit 214 über eine Schnittstelle, wie beispielsweise einen Videoadapter 215, mit dem Systembus 203 verbunden.
-
Unter Bezugnahme auf 3 zeigt ein Ablaufplan 300 das beschriebene Verfahren, das durch einen modifizierten Netzwerkeinheiten-Konfigurationsverwalter ausgeführt wird. Bevor der Prozess starten kann, kann ein Satz von Regeln für einen Benutzer und/oder einen Typ oder ein Modell von Netzwerkeinheit definiert werden. Ein allgemeines syntaktisches und Verhaltensmodell wird für einen Netzwerkeinheitentyp oder ein Netzwerkeinheitenmodell erzeugt.
-
Eine Benutzersitzung kann für eine Netzwerkeinheit mit einer den Benutzer identifizierenden Benutzeranmeldung gestartet werden 301. Die aktuelle Netzwerkeinheitenkonfiguration kann abgerufen werden 302 und ein Modell für den Netzwerkeinheitentyp kann verwendet werden 303, um eine modellierte Konfiguration der aktuellen Konfiguration zu erzeugen.
-
Ein Satz von Benutzerbefehlen für die Netzwerkeinheit kann empfangen und gepuffert werden 304.
-
Das Modell kann verwendet werden 305, um den Effekt der Befehle auf die modellierte Konfiguration zu ermitteln, um eine vorhergesagte modellierte Konfiguration zu erzeugen.
-
Vordefinierte Regeln für den Benutzer und/oder den Netzwerkeinheitentyp können auf die vorhergesagte modellierte Konfiguration angewendet werden 306. Es wird ermittelt 307, ob der Benutzerbefehl durch die Regeln erlaubt ist. Wenn sie nicht erlaubt sind, können die Befehle abgebrochen werden 309 und der Puffer kann geleert werden 310, um die nicht erlaubten Befehle zu löschen. Wenn die Befehle durch die Regeln erlaubt sind. können die gepufferten Befehle abgerufen 308 und an die Netzwerkeinheit gesendet werden.
-
Unter Bezugnahme auf 4 zeigt ein schematisches Schaubild 400 eine Beispielausführungsform des Betriebs einer Netzwerkeinheitenkonfiguration. Die bereits in 1 eingeführten Elemente besitzen dieselbe Bezugsziffer.
-
Ein Benutzer kann über eine grafische Benutzeroberfläche 401 eines Netzwerkkonfigurationsverwalters oder einer Komponente, die in Verbindung mit einem Netzwerkkonfigurationsverwalter (als das System bezeichnet) agiert, eine direkte Konfigurierung einer Netzwerkeinheit 110 starten, indem er eine Sitzung öffnet und sich anmeldet.
-
Das System ruft eine Kopie der aktuellen Netzwerkeinheitenkonfiguration 111 in ihrem nativen Format auf und unter Verwendung des syntaktischen und verhaltensorientierten Modells 131 (hierin nachstehend als das Modell bezeichnet) der Konfigurationsschnittstelle für diesen speziellen Einheitentyp erzeugt eine Konfigurationsmodellierkomponente 133 eine modellierte Konfiguration 134. Weitere Details der modellierten Konfiguration 134 werden nachstehend angegeben.
-
Der Benutzer kann in der interaktiven Sitzung über die grafische Benutzeroberfläche 401 einen oder mehrere Befehle eingeben, die das System in Vorbereitung auf das Senden an die Netzwerkeinheit 110 puffert. Das System kann das Modell 131 (das als Teil seiner Struktur eine Baumdarstellung aller möglichen Schlüsselwortbefehle enthält, die an diese Einheit ausgegeben werden können) verwenden, um die durch den Benutzer eingegebenen Befehle eindeutig zu machen und zu erweitern. So wird zum Beispiel „int eth 0” zu „interface ethernet 0” erweitert.
-
Das System verwendet das Modell 131 um den Effekt der neu eingetippten Befehle auf die modellierte Konfiguration 134 zu ermitteln, um unter Verwendung der Befehlseffektkomponente 142 eine vorhergesagte modellierte Konfiguration 143 zu erzeugen. Weitere Details der Befehlseffektkomponente 142 werden nachstehend angegeben.
-
Das System führt unter Verwendung der Regelanwendekomponente 151 ein Regelanwenden aus, das den geeigneten Satz von regelgestützten Beschränkungen der vordefinierten Regeln 153 auf die neue vorhergesagte modellierte Konfiguration 143 anwendet. Die Regeln 153 werden aus der vollständigen Bibliothek von Regeln auf der Grundlage der Gruppenmitgliedschaften des Benutzers, des Typs und des Modells der Einheit und weiterer Kriterien ausgewählt. Weitere Details der Regelanwendekomponente 151 werden nachstehend angegeben.
-
Nach Abschluss der gesamten Regelverarbeitung wird das Ergebnis bewertet, und wenn dem Benutzer das Vornehmen dieser Änderung an der Netzwerkeinheit 110 erlaubt ist 402, übermittelt das System die Befehle an die Netzwerkeinheit 110. Wenn die Änderung nicht erlaubt ist, wird der Befehl abgebrochen 403 und der Benutzer informiert, dass es ihm nicht gestattet ist, diese Befehle zu senden, und der Puffer wird geleert.
-
MODELLIERTE KONFIGURATION
-
Die Netzwerkeinheitenkonfiguration kann eine Reihe von Zeichenketten enthalten, zum Beispiel:
-
Bei dem syntaktischen und verhaltensorientierten Modell (dem Modell) kann es sich um eine Kombination aus Code und Metadaten handeln, durch die das System die Konfiguration in einem strukturierten Format ausdrücken kann, das dann einfacher zur Ansicht dargestellt und im System bearbeitet werden kann, zum Beispiel:
-
BEFEHLSEFFEKTKOMPONENTE
-
Wenn der Benutzer einen Satz von Befehlen in die interaktive Sitzung der Netzwerkeinheit eintippt, kann das System zuerst die eingegebenen Befehle unter Verwendung des Befehlsabschnitts des syntaktischen Modells verarbeiten, um die eingegebenen Befehle zu identifizieren und eindeutig zu machen. Das System kann dann das Modell verwenden, um den Effekt dieser Befehle auf die gespeicherte strukturierte Konfiguration zu ermitteln. Das Modell kann die Befehlssyntax auf die Konfigurationssyntax beziehen, wo sich diese unterscheiden (zum Beispiel wenn die Befehle durch den Menschen lesbar sind, die Konfiguration jedoch als Tabelle ganzer Zahlen gespeichert ist) und drückt den Gesamteffekt des Befehlssatzes auf die Konfiguration aus. In manchen Fällen ist dies ziemlich offensichtlich, wenn eine gegebene Befehlszeichenkette direkt in die Konfigurationsdatei eingegeben wird, in vielen Fällen kann jedoch ein einzelner Befehl zu separaten Änderungen an mehreren Teilen der Konfiguration führen. Der eingegebene Befehlssatz kann mit jedem anderen auf komplexe Weisen interagieren und sich wechselseitig modifizieren, was das Modell beim Ermitteln des Gesamteffekts auf die Konfiguration berücksichtigen muss. Mithilfe des Modells wird es dem System ermöglicht, auf der Grundlage des gesamten verarbeiteten Befehlssatzes zu ermitteln, welche Teile der Konfiguration verändert werden müssen und welches die Gesamtänderungen in jedem Teil sein sollten.
-
In einem einfachen Beispiel wird der Befehl „no policy-map NEWPOL” zum Löschen des gesamten Konfigurationsabschnitts führen, der in der modellierten Konfiguration wie gezeigt dargestellt wird:
-
Das System kann die Befehlszeichenkette unter Verwendung des Modells als Referenz verarbeiten und es kann als Ergebnis einen oder mehrere Abschnitte in der die Konfiguration darstellenden Struktur hinzufügen, modifizieren oder löschen. Wenn somit im vorstehenden Beispiel der Benutzer eine Befehlssequenz
eingibt, wird das System das Modell verwenden, um, diese eindeutig zu machen und zu erweitern auf
und wird dann das Modell verwenden, um nachzuschlagen, welche Teile der modellierten Konfiguration durch diesen Befehl betroffen sind, und ihn entsprechend aktualisieren, in diesem Fall modifizieren:
-
Wenn es keine Abhängigkeiten von anderen Teilen der Konfiguration gibt, werden diese auch realisiert (Hinzufügungen, Modifizierungen und Löschungen anderer Zweige, falls angebracht). Befehlssequenzen, die auf der Grundlage der im Modell codifizierten Syntax und Wechselbeziehungen ungültig sind, können zurückgewiesen werden.
-
Das Ergebnis ist eine vorhergesagte modellierte Konfiguration für die Netzwerkeinheit, welche die Vorhersage des Systems dessen darstellt, was die Einheit tun würde, wenn sie diese Befehle empfangen würde, ausgedrückt im modellierten Konfigurationsformat.
-
REGELANWENDEKOMPONENTE
-
Regeln können unter Verwendung der GUI eingegeben und im System gespeichert werden. Der Teilsatz von Regeln, der unter allen Umständen angewendet werden kann, kann durch das System auf der Grundlage der Berechtigungen des Benutzers, des Typs der Einheit und weiterer relevanter Kriterien (wie möglicherweise die Netzwerkrolle der Einheit oder ein manueller administrativer Prozess, Regeln auf Einheiten zu beziehen) ermittelt werden.
-
iese Regeln können im Hinblick auf die modellierte Konfiguration wie vorstehend gezeigt ausgedrückt werden und könnten so einfach sein wie „dieser Benutzer darf keinen Konfigurationszweig ändern, der sich auf eine Gigabit-Ethernet-Schnittstelle bezieht” oder könnten sehr komplex sein und Abhängigkeiten von anderen Teilen der Konfiguration aufweisen, wie beispielsweise die nachstehenden Beispiele.
-
Die Regeln können an der kompletten vorhergesagten Konfiguration ausgeführt werden, wodurch der Administrator komplexe Beziehungen zwischen unterschiedlichen Teilen der Konfiguration ausdrücken kann, und wodurch dem System kritischerweise nicht nur erlaubt wird, die Auswirkung der vom Benutzer tatsächlich eingetippten Befehle zu bewerten, sondern dies auch innerhalb des Kontextes der zuvor vorhandenen Konfigurationszustands (d. h. Dinge, die der Benutzer nicht eingetippt hat) zu tun.
-
Beispiele:
-
- 5. Der Benutzer darf die Duplex-Einstellung auf einer Gigabit-Ethernet-Schnittstelle nicht ändern (darf sie aber auf einer schnellen Ethernet-Schnittstelle ändern).
- 6. Der Benutzer darf die Duplex-Einstellung auf einer Gigabit-Ethernet-Schnittstelle nicht ändern, wenn sich diese Schnittstelle im Teilnetz 172.2.x.x befindet.
- 7. Zum Beispiel fügt auf einem Router der folgende Befehl eine Zeile zur Konfiguration hinzu.
-
– access-list 99 permit any
-
In diesem Beispiel kann der Konfiguration eine neue Konfigurationszeile hinzugefügt werden. Diese Änderung an der Konfiguration wird jedoch nicht zu einer Änderung am Verhalten der Netzwerkeinheit führen. Dieser Befehl erzeugt lediglich eine Einrichtung, die andernorts in der Konfiguration verwendet werden kann. Um diese Zeile aus der Konfiguration zu entfernen, kann der Benutzer den Befehl eingeben.
-
– no access-list 99
-
Dieser Befehl wird die gesamte Zugangsliste aus der Konfiguration entfernen. Es wird jedoch keine Warnung ausgegeben, wenn auf die Einrichtung andernorts in der Konfiguration Bezug genommen wird, die Konfiguration wird einfach mit einem verwaisten Bezug auf die Einrichtung belassen. Das Verhalten der Einheit wird sich ändern, sobald der Befehl ausgegeben wird. In diesem Beispiel könnte dies möglicherweise zu einem Sicherheitsleck führen.
-
Ein Haupterfordernis für und somit ein Hauptvorteil des hierein beschriebenen modellgestützten Befehlseinschränkungsmechanismus liegt darin, dass das Modell die Verknüpfungen zwischen Elementen in der Konfiguration bereitstellt. Das Verständnis der Verknüpfungen zwischen den Konfigurationselementen stellt die Fähigkeit bereit, zu verstehen, wie die Anwendung eines Befehls das Verhalten der Netzwerkeinheit beeinflussen wird.
-
Im gegebenen Beispiel wurde nur die Zeile der Konfiguration der Einheit geändert, es könnte jedoch die Bedeutung vieler Zeilen in der Konfiguration betroffen sein. Unter Verwendung des Modells ist es möglich, Richtlinienregeln zu erzeugen, die das Ausführen von Befehlen verhindern, die verwaiste Bezüge erzeugen würden.
-
Es wird das folgende Konfigurationsfragment betrachtet:
-
Regeln können konstruiert werden, die Folgendes durchsetzen: Dem Benutzer ist nicht erlaubt, irgendwelche Befehle auszuführen, welche Dienstrichtlinien oder ACLs ändern, die auf irgendeiner Schnittstelle in Verwendung sind, somit können „NEWPOL”, „class-map fred” und die ACL „access-list 1” nicht bearbeitet werden, es wird ihm jedoch erlaubt, „access-list 2” zu ändern.
-
Der Stand der Technik für die Einschränkung von Benutzerkonfigurationsbefehlen kann wie folgt definiert werden:
Sei S der Satz aller Einheitenkonfigurationszustände;
Sei C der Satz aller gültigen und vollständigen Befehlszeichenketten für die Einheit.
-
Derzeit werden Benutzerbefehle durch Realisieren einer Funktion eingeschränkt:
f:C → {wahr,falsch} wobei:
f(c) = wahr, wenn es sich bei c um einen erlaubten Befehl handelt;
f(c) = falsch, wenn es sich bei c um einen verbotenen Befehl handelt.
-
Beim beschriebenen Modell werden, anstatt eine rein syntaktische Einschränkung wie vorstehend durchzuführen, der aktuelle und der modellierte zukünftige Zustand wie folgt berücksichtigt:
Definiere eine Funktion:
g:C, S → S definiert durch:
g(c, s) = der Konfigurationszustand einer Einheit, nachdem der Befehl c auf den Konfigurationszustand s angewandt wird.
-
Definiere dann eine Funktion:
-
- – h: S → {wahr, falsch} definiert als:
- – h(s) = wahr, wenn es sich um einen akzeptablen Konfigurationszustand handelt
- – h(s) = falsch, sonst.
-
Wenn nun ein Befehl c übermittelt wird, berechne h(g(c, s)) und verwende die Ausgabe, um zu ermitteln, ob der Befehl erlaubt wird.
-
Die Netzwerkeinheiten-Konfigurationsverwaltung kann einem Kunden über ein Netzwerk als Dienst bereitgestellt werden.
-
Die Erfindung kann in Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform oder einer Ausführungsform, die sowohl Hardware- als auch Software-Elemente enthält, ausgeführt sein. In einer bevorzugten Ausführungsform ist die Erfindung in Software oder Programmcode ausgeführt, was Firmware, residente Software, Mikrocode usw. mit einschließt, ohne darauf beschränkt zu sein.
-
Die Erfindung kann in Form eines von einem von einem Computer verwendbaren oder computerlesbaren Medium zugänglichen Computerprogrammprodukts ausgebildet sein, das Programmcode zur Verwendung durch oder in Verbindung mit einem Computer oder einem beliebigen System zur Ausführung von Anweisungen bereitstellt. Zum Zwecke dieser Beschreibung kann es sich bei einem von einem Computer verwendbaren oder computerlesbaren Medium um jede beliebige Vorrichtung handeln, die das Programm zur Verwendung durch oder in Verbindung mit dem System, der Vorrichtung oder der Einheit zur Ausführung von Anweisungen beinhalten, speichern, übermitteln, verbreiten oder transportieren kann.
-
Bei dem Medium kann es sich um ein System (oder eine Vorrichtung oder Einheit) oder ein Verbreitungsmedium elektronischer, magnetischer, optischer, elektromagnetischer, Infrarot oder Halbleiter verwendender Art handeln. Zu Beispielen eines computerlesbaren Mediums zählen ein Halbleiter- oder Festkörperspeicher, Magnetband, eine Wechselcomputerdiskette, ein Speicher mit wahlfreiem Zugriff (RAM), ein Nur-Lese-Speicher (ROM), eine starre Magnetplatte und eine optische Platte. Zu aktuellen Beispielen für optische Platten zählen ein Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine Schreib/Lese-Compact-Disk (CD-R/W) und eine DVD.
-
Verbesserungen und Modifikationen können am Vorgenannten vorgenommen werden, ohne den Umfang der vorliegenden Erfindung zu verlassen.