-
TECHNISCHES GEBIET
-
Ausführungsformen
der vorliegenden Erfindung beziehen sich allgemein auf Verfahren
und Systeme zum akkuraten Identifizieren der Topologie eines Netzwerkes
und insbesondere auf Methoden und Verfahren zum Entdecken von unnummerierten
Netzwerkverbindungen.
-
HINTERGRUND
-
Ein
Zwischennetzwerk von Computern besteht typischerweise aus einer
geografisch verteilten Ansammlung von miteinander verbundenen Netzwerksegmenten,
die unter Verwendung von Routing-Vorrichtungen, wie etwa Routern,
verbunden sind. Ein Netzwerksegment kann ein Lokalbereichsnetzwerk
(LAN) oder ein Weitbereichsnetzwerk (WAN) sein. Ein LAN ist ein
Netzwerk von Computern in enger Nähe, wie etwa ein Netzwerk in
einem Unternehmensbüro.
Die verschiedenen LANs können
dann miteinander über Punkt-zu-Punkt-Verbindungen
verbunden werden, die ein WAN bilden, wie etwa ein WAN, das alle
verschiedenen unterschiedlichen Orte der Büros eines Unternehmens verbindet.
Diese zahlreichen LAN- und WAN-Segmente,
die durch Router verbunden sind, bilden eine relativ komplexe Topologie
des Netzwerkes. Aufgrund solcher komplexer Topologien von Unternehmensnetzwerken
wird es sehr wichtig, das Netzwerk genau zu überwachen, um einen korrekten
Betrieb sicherzustellen und Fehler im Netzwerk rasch und akkurat
zu detektieren und zu korrigieren.
-
Netzwerkmanagementsoftware
stellt die Fähigkeit
bereit, Einrichtungen auf einem Computernetzwerk von einem zentralen
Ort zu steuern und zu überwachen.
Eine verwaltete Vorrichtung kann jegliche Art von Knoten, die auf
einem Netzwerk sitzen, sein, wie etwa ein Computer, Drucker oder
Router. Das Simple Network Management Protocol (SNMP), (einfaches
Netzwerkverwaltungsprotokoll) (ein Teil der TCP/IP Protokollfamilie)
ist das Protokoll, das typischerweise für Verwaltungsbezogene Kommunikation
zwischen der Netzwerkverwaltungssoftwareanwendung und den verwalteten
Vorrichtungen verwendet wird.
-
Da
Netzwerke kontinuierlich modifiziert und mit neuen Benutzern, Diensten
und Anwendungen modifiziert und expandiert werden, ist eine solche
Netzwerkverwaltungssoftware ein lebenswichtiges Werkzeug für einen
Netzwerkmanager, um die Netzwerkressourcen nachzuverfolgen und die
Netzwerkbandbreite in der effektivsten Weise zu allozieren. Diese
Werkzeuge, wie etwa beispielsweise Novell's ZENworks® gestatten
es dem Netzwerkverwalter, Bandbreite zwischen Benutzern, Orten und
Anwendungen bereitzustellen und allgemein Netzwerkverkehr zu verwalten.
Typische Überwachungsdienste,
die von einer solchen Software bereitgestellt werden, beinhalten
die Fähigkeit,
Bandbreitenverbrauch, Verbindungszeit, Reaktionszeit und Verbindungsversagen
zu überwachen.
Unter Verwendung der Software können
dann Vorgehensregeln für
das Netzwerk definiert werden, um den Verkehr zu optimieren und
spezifisch können
auch die Anwender, Dienste und Zeiten, für welche die Regeln gelten,
definiert werden. Darüber
hinaus kann die Software die Konfiguration und die entfernte Verwaltung
von Routern und Switches, wie auch anderen Netzwerkvorrichtungen
ermöglichen. Dementsprechend
stellen Netzwerkverwaltungssysteme typischerweise Funktionen für die Fehlerverwaltung (zum
Detektieren und Benachrichtigen des Netzwerkverwalters, wenn ein
Fehler in der Netzwerkhardware oder Software auftritt), Konfigurationsverwaltung
(zum Fern-Konfigurieren
von Netzwerkvorrichtungen), der Buchhaltung (zum Loggen der Verwendung
von Netzwerkressourcen), Leistungsverwaltung (zum Überwachen
der Leistungsfähigkeit
des Netzwerks und der Netzwerkvorrichtungen) und der Netzwerksicherheit
(zum Detektieren und Notifizieren des Netzwerkmanagers von potentiellem
Missbrauch von Netzwerkressourcen) bereitstellen.
-
Typische
Netzwerkverwaltungssoftware detektiert auch automatisch die Topologie
des Netzwerkes und stellt sie in Form einer Karte dar. Genauer gesagt
tastet die typische Netzwerkverwaltungssoftware die Konfigurationsdaten
für die
Netzwerksvorrichtungen, wie sie etwa in Routentabellen und/oder
Schnittstellenlisten verfügbar
sind, ab, um die Anordnung der Vorrichtungen im Netzwerk und der
Verbindungen zwischen jenen Vorrichtungen zu entdecken. Diese Vorrichtungen
können
Computer, Drucker, Hubs, Switches und Router beinhalten und die
Verbindungen können
Netzwerksknoten oder Verknüpfungen
zwischen Vorrichtungen beinhalten. Das genaue Wissen der Netzwerkstopologie
ist für
die korrekte Verwaltung des Netzwerkes wie auch für die Vorhersage
der Leistungsfähigkeit
des Netzwerkes wichtig. Beispielsweise muss die Netzwerkverwaltungsanwendung
die Konfiguration und Verknüpfungen
im Netzwerk kennen, um die Netzwerkressourcen zu verwalten, wie
etwa geteilte Softwareanwendungsressourcen und andere Ressourcen
wie etwa Speicher und Druckerressourcen. Dieses Wissen kann auch
dabei helfen, vorherzusagen, wo der Netzwerkverkehr hoch sein kann
und die Ressourcen entsprechend zu planen. Darüber hinaus kann dieses Wissen
nützlich
sein beim Bestimmen der Ursache und des Orts von Fehlern, die im
Netzwerk auftreten können.
-
Aufgrund
der Komplexität
der meisten Netzwerke würde
die Entdeckung der Netzwerktopologie für Netzwerkverwaltungszwecke
mühsam
und zeitraubend sein. Entsprechend sind automatisierte Systeme für Netzwerktopologieentdeckung
entwickelt worden, die Informationen bezüglich der verschiedenen Netzwerkadressen
der Vorrichtungen im Netzwerk einsetzen. Insbesondere wird üblicherweise
jede Vorrichtung auf dem Netzwerk durch eine eindeutige Adresse
identifiziert. Falls das Internetprotokoll verwendet wird, wird
diese Adresse eine Internetadresse (oder eine IP-Adresse) genannt.
Eine IP-Adresse besteht aus einer Netzwerk-ID and einer Host-ID.
Die Netzwerk-ID repräsentiert
das LAN- oder das WAN-Segment, zu dem die Vorrichtung gehört. Eine
typische Netzwerkmanagementanwendung verwendet die Netzwerkadresse
jedes Netzwerksegmentes, das mit einem Router verbunden ist, um
die Topologie des Netzwerks zu entdecken und darzustellen. Solche
Systeme hatten die Fähigkeit
zur Identifikation der Adressen der verschiedenen Vorrichtungen
auf dem Netzwerk wie auch der Adressen der Schnittstellen einer
gegebenen Vorrichtung, wobei sie mit anderen Vorrichtungen im Netzwerk
verknüpft
wird. Somit kann durch automatisches Identifizieren der Netzwerkadressen der
Vorrichtungen, Schnittstellen und Verknüpfungen die Topologie des Netzwerkes
bekannt werden.
-
Ein
typisches automatisches Topologieentdeckungsverfahren würde ein
Segment S für
jede Schnittstelle eines Routers erzeugen, wobei das Netzwerksegment
durch die Netzwerknummer N der Routerschnittstelle identifiziert
würde.
Von anderen Computern wird dann gesagt, dass sie zum Netzwerksegment
S gehören,
falls sie eine Adresse aufweisen, die zur selben Netzwerknummer
N wie die Routerschnittstelle gehört. Dann wird, falls der Router
B eine Adresse enthält,
die zur selben Netzwerknummer N gehört, der Router B zum Segment
S hinzugefügt
und andere Segmente, die zu B gehören, werden über den
Router B mit S verknüpft.
-
Zuvor
sind den Schnittstellen einer Vorrichtung Adressen zugewiesen worden.
Beispielsweise kann jeder Ausgang eines Routers einer Netzwerkadresse
zugewiesen werden, die sie identifiziert. Jedoch ist kürzlich ein
Merkmal auf Vorrichtungen wie Routern und Servern bereitgestellt
worden, die es gestatten, dass keine Adresse einer Punkt-zu-Punkt-Schnittstelle (zum
Beispiel einer Kommunikationsschnittstelle, die zwei Netzwerke verbindet,
wie etwa zwei LAN's
eines Unternehmens in verschiedenen Städten) zugewiesen oder dafür definiert
wird. Dieses Merkmal sollte der Verknappung von Adressen begegnen,
da mehr und mehr Adressen aufgrund des Ansteigens der Anzahl von
vernetzten Vorrichtungen vergeben sind. Insbesondere fließt Punkt-zu-Punkt-Verkehr
nur zu einem einzelnen Ziel oder "Peer" und
wird daher nicht zu irgendeinem anderen Ziel geroutet. Daher verschwendet
das Zuweisen einer eindeutigen Adresse an diese Schnittstelle Adressen innerhalb
des dem Netzwerk zugewiesenen Adresspools. Solche Schnittstellen
werden unnummerierte Schnittstellen genannt und die Punkt-zu-Punkt-Verbindungen
zwischen zwei Routerschnittstellen werden unnummerierte Verbindungen
genannt. Unnummerierte Verbindungen können beispielsweise auf PPP-,
Frame Relay- und X.25-Schnittstellentypen konfiguriert werden.
-
Solche
unnummerierten und unadressierten Verbindungen und Schnittstellen
bereiten ein Problem bei automatischen Netzwerkadress-basierten
Topologieentdeckungsverfahren, die von Netzwerkverwaltungssoftwareanwendungen
eingesetzt werden. Insbesondere verwenden alle unnummerierten Schnittstellen
eine Standardnetzwerkadresse, wie etwa 0.0.0.0. Dementsprechend
würden
typische automatisierte Netzwerkentdeckungsverfahren daran scheitern,
eine unnummerierte Schnittstelle eines Routers von einer anderen
unnummerierten Schnittstelle zu unterscheiden und würden darin
versagen, Vorrichtungen dem/der richtigen Segment oder Routerverknüpfung korrekt
zuzuweisen. Daher kann eine genaue Information bezüglich der Netzwerktopologie
nicht erhalten werden.
-
Während andere
Ansätze
zur Identifizierung von unnummerierten Schnittstellen die Verwendung
der Adresse des Nächst-Sprung-Routers in der Routingtabelle
involvierten, sind solche Verfahren gleichermaßen oft nicht genau. Insbesondere
weisen viele Router von populären
Herstellern wie Cisco und Nortel einen Wert von 0.0.0.0 der Adresse
des nächsten
Sprung-Routers zu
(der ipRouteNextHop, falls das SNMP Protokoll eingesetzt wird).
Daher kann die Verwendung dieser Verfahren dabei versagen, einen
distinkten und bedeutungsbehafteten Wert für eine unnummerierte Schnittstelle
eines Routers zu identifizieren. Darüber hinaus können viele
Entdeckungsverfahren auch darin versagen, Veränderungen in der Netzwerktopologie
akkurat zu handhaben, so etwa wenn eine unnummerierte Verbindung
ausfällt.
-
Dementsprechend
sind Verfahren und Systeme zur automatischen und genauen Identifizierung
von unnummerierten Netzwerkverbindungen erwünscht.
-
EP-A1-1322068 offenbart
ein Verfahren zur automatischen Entdeckung von logischen Verbindungen zwischen
Netzwerkvorrichtungen. Das Verfahren umfasst ein Netzwerkverwaltungssystem
(NM), das einen diskreten Satz von Netzwerkvorrichtungen verwaltet.
Das NM sendet SNMP-Anfragen an individuelle Vorrichtungen, um Schnittstellenkonfigurationsdaten
für jede
dieser Netzwerkschnittstellen der Vorrichtungen zu erhalten. Die
angeforderte Information beinhaltet Zielinformationen für aus der
Schnittstelle gesendete Pakete. Das NM überprüft, um zu sehen, ob eine logische
Verbindung, die der empfangenen Information entspricht, bereits
in einer logischen Verbindungsdatenbank existiert. Falls eine solche
Verbindung existiert, wird sie überprüft, um sicherzustellen,
dass die Information gültig
ist. Falls die Information nicht gültig ist oder falls es keine existierende
Verbindung in der Datenbank gibt, wird eine neue Verbindung eingegeben.
-
Waddinton
et al "Topology
Discovery for Public IPv6 Networks", ACM SIGCOMM Computer Communications
Review, Band 33, Nr. 3: Juli 2003, offenbart ein System, welches
das automatische Einfangen von IPv6 Netzwerktopologieinformationen
aus einem einzelnen Testhost erleichtert und diskutiert IPv6 Netzwerkphänomene,
die vom System berücksichtigt
werden müssen.
-
Yao
et al "Topology
Inference in the presence of Anonymous routers", IEEE INFOCOMM 2003, Zweiundzwanzigste
jährliche
gemeinsame Konferenz der IEEE Computer und Kommunikationsgesellschaften, Band
1, 30. März
2003, Seiten 353–363,
Band 1, ISBN 0-7803-7752-4 erwägt
das Problem des Ableitens der Netzwerktopologie in Anwesenheit von
anonymen Routern und illustriert, wie offensichtliche Ansätze zur Handhabung
anonymer Router zu unvollständigen,
aufgeblasenen oder ungenauen Topologien führen.
-
Zusammenfassung der Erfindung
-
Entsprechend
stellt eine erste Ausführungsform
der Erfindung ein Verfahren zur automatischen Entdeckung einer Netzwerktopologie
in Netzwerken bereit, die Netzwerk-Routingvorrichtungen mit unnummerierten
Schnittstellen aufweisen, wie im Detail im Anspruch 1 beschrieben.
Die Erfindung stellt auch ein Computernetzwerk wie in Anspruch 4
detailliert dargestellt bereit. Vorteilhafte Ausführungsformen
werden in den abhängigen
Ansprüchen
bereitgestellt.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die
beigefügten
Zeichnungen, die inkorporiert sind und Teil der Spezifikation bilden,
stellen verschiedene illustrative Ausführungsformen dar, die gemeinsam
mit ihren Beschreibungen dazu dienen, die Prinzipien der vorliegenden
Erfindungen zu erläutern.
In den Zeichnungen sind:
-
1 ein
Flussdiagramm, das ein Verfahren illustriert, das arbeitet, um unnummerierte
Routerverbindungen zu entdecken, gemäß dem Prinzipien der vorliegenden
Erfindung;
-
2 ein
schematisches Diagramm, das ein Beispiel von verbundenen Routern
illustriert, die unnummerierte Punkt-zu-Punkt-Verbindungen aufweisen,
die durch die illustrativen Verfahren und Systeme entdeckt werden
können,
die hierin beschrieben sind;
-
3 ein
Flussdiagramm, welches ein anderes Beispiel eines Verfahrens illustriert,
das zum Entdecken von unnummerierten Verbindungen in einem Netzwerk
gemäß den Prinzipien
der vorliegenden Erfindung arbeitet;
-
4 ein
schematisches Diagramm, das ein anderes Beispielnetzwerk mit unnummerierten
Verbindungen, die gemäß Prinzipien
der vorliegenden Erfindung identifiziert werden können, illustriert;
-
5 ein
Flussdiagramm eines illustrativen Entdeckungsprozesses, der für unnummerierte
Verbindungs-Entdeckung gemäß Prinzipien
der vorliegenden Erfindung eingesetzt werden kann;
-
6 ein
Datenstrukturdiagramm, welches Datenstrukturen darstellt, die eingesetzt
werden können, um
ein Verfahren zur Identifizierung urinummerierter Schnittstellen
gemäß Prinzipien
der vorliegenden Erfindung zu implementieren;
-
7 ein Flussdiagramm, das ein anderes Beispiel
eines detaillierten Verfahrens darstellt, das von einer Netzwerkverwaltungsanwendung
verwendet werden kann, um die Router im Netzwerk zu entdecken und unnummerierte
Verbindungen zu identifizieren, gemäß Aspekten der vorliegenden
Erfindung; und
-
8 ein
schematisches Diagramm eines Netzwerkes, das ein Netzwerkverwaltungssystems
beinhaltet, das gemäß Prinzipien
der vorliegenden Erfindung arbeitet.
-
DETAILLIERTE BESCHREIBUNG
BEISPIELHAFTER AUSFÜHRUNGSFORMEN
-
Allgemein
bezieht sich eine Ausführungsform
der vorliegenden Erfindung auf ein Verfahren und System zum automatischen
Bestimmen der Netzwerktopologie eines Computernetzwerks, das unnummerierte oder
unadressierte Verbindungen zwischen den Routern enthält. Eine
unnummerierte Verbindung ist eine Punkt-zu-Punkt-Verbindung zwischen
zwei Routerschnittstellen, die keine an sie gebundenen Adressen
aufweisen. Das Verfahren gemäß einer
Ausführungsform
verwendet die bei jedem solcher Router erhältlichen Netzwerkverwaltungsinformationsdaten.
Nach Entdecken der Routerkonfiguration und Identifizieren aller
unnummerierten Schnittstellen werden die Zielrouten für jede unnummerierte
Schnittstelle verwendet, um unnummerierte Verbindungen zu identifizieren.
Insbesondere verwendet für
eine unnummerierte Schnittstelle das Verfahren dieser Ausführungsform
Werte in den Routertabellen, welche die Zielrouter für die unnummerierte
Schnittstelle anzeigen, und auch, wie solche Zielrouter miteinander
und mit der unnummerierten Schnittstelle verbunden sind. Aus der
Information kann das Verfahren alle Router bestimmen, die mit einer
gegebenen unnummerierten Schnittstelle verbunden sind. Dann kann
das Verfahren automatisch bestimmen, welche dieser Router der unmittelbare
Nachbar ist, indem verglichen wird, wie sie mit der unnummerierten
Schnittstelle verbunden sind (über
die Schnittstellennummer) und wie sie miteinander verbunden sind.
Sobald der unmittelbare Nachbar einmal bekannt ist, kann dann die
Verbindung zwischen dem unmittelbaren Nachbarn und der unnummerierten
Schnittstelle in der Netzwerktopologie identifiziert werden.
-
1 ist
ein Flussdiagramm eines illustrativen Verfahrens unnummerierter
Verbindungsentdeckung, das gemäß den Prinzipien
der vorliegenden Erfindung arbeitet. Zuerst werden, wie in Block 10 gezeigt,
die unnummerierten Schnittstellen eines Routers identifiziert. Dann
werden, wie in Block 12 gezeigt, für jede unnummerierte Schnittstelle
die Routen an alle Zielnetzwerke über diese bestimmte Schnittstelle
identifiziert (d.h. es wird bestimmt, welche anderen Routen von
dieser Schnittstelle aus erreicht werden können, entweder direkt oder über zusätzliche
Router. Für
diese Zielnetzwerke werden dann alle Router auf den Zielnetzwerken
in einer Verbundene-Router-Liste platziert, wie in Block 14 gezeigt.
Dann werden, wie in den Blöcken 15–16 gezeigt, die
Router in der Verbundene-Router-Liste untersucht und es wird bestimmt,
welche dieser Router die Eigenschaft aufweist, eine Route zu dem
Router zu haben, der untersucht wird, und Routen zu allen anderen
Routern in der Verbundene-Router-Liste über zwei unterschiedliche Schnittstellen
aufzuweisen. Diese Eigenschaft wird so verwendet, um den unmittelbaren
Nachbarn des untersuchten Routers zu identifizieren (d.h. des Routers
am anderen Ende der unnummerierten Verbindung), wie in Block 17 gezeigt.
Falls so gefunden wird, dass der unmittelbare Nachbar eine Route
zurück
zum untersuchten Router oder eine Standardroute hat, wird eine unnummerierte
Verbindung zwischen dem untersuchten Router und dem unmittelbaren
Nachbarn erzeugt, wie in Block 18 gezeigt.
-
Änderungen
in der Netzwerkkonnektivität
treten typischerweise oft auf, wenn Vorrichtungen hinzugefügt oder
aus dem Netzwerk entfernt werden, wenn Netzwerkverbindungen versagen
oder ansonsten unverfügbar
werden oder wenn Netzwerkverbindungen modifiziert werden. Um solche Änderungen
in der Topologie zu entdecken, kann das Verfahren dieser Ausführungsform
von 1 zyklisch wiederholt werden. In jedem Zyklus
kann die entdeckte Konnektivität
gespeichert werden. Im nachfolgenden Zyklus, falls es eine Änderung der
Topologie gibt (z.B. ist eine unnummerierte Verbindung abgeschaltet),
wird sich die Routingtabelle von Routern ebenfalls verändert haben.
Die neue Routentabelleninformation kann dann verwendet werden, um
die neue Topologie zu identifizieren und die unnummerierten Verbindungen,
die abgeschaltet sind, zu löschen.
-
2 illustriert
ein Beispiel von verbundenen Routern mit unnummerierten Punkt-zu-Punkt-Verbindungen,
die durch die illustrativen Ausführungsformen,
wie hierin beschrieben, entdeckt werden können. In 2 ist
die unnummerierte Schnittstelle If1 im Router R1 nur mit R2 und
R3 verbunden. Diese zwei Router würden somit in einer Liste verbundener
Router platziert werden oder anders gespeichert oder notiert werden. Daher
muss einer von R2 oder R3 der unmittelbare Nachbar zur Schnittstelle
If1 von Router R1 sein.
-
Insbesondere
enthält
im Beispiel von 2 der Router R3 eine Route nach
R1 (der untersuchte Router) und R2 (der andere Router in der Verbundene-Router-Liste),
aber über
dieselbe Schnittstelle If1 (d.h. R3 hat dieselbe relative Kommunikationsperspektive
in Bezug auf R2 und R1, so dass, um ein Signal an R2 und R1 zu kommunizieren,
R3 das Signal aus derselben Schnittstelle If1 senden würde). Daher
kann R3 nicht zwischen R1 und R2 gelegen sein und ist kein unmittelbarer
Nachbar zur Schnittstelle If1 von R1. Im Gegensatz dazu enthält R2 eine
Route nach R1 über
If1 und eine Route nach R3 über
If2. Daher wird R2 als zwischen R1 und R3 befindlich identifiziert,
weil er mit ihnen über
zwei unterschiedliche R2 Schnittstellen verbunden ist.
-
Somit
werden in dieser Ausführungsform
und gemäß den Prinzipien
der vorliegenden Erfindung die mit der unnummerierten Schnittstelle
des untersuchten Routers verbundenen Router identifiziert und es
wird bestimmt, wie diese verbundenen Router miteinander verbunden
sind. Insbesondere wird der verbundene Router, der mit dem untersuchten
Router und jedem anderen Router in der Verbundene-Router-Liste über zwei unterschiedliche
Schnittstellen verbunden ist, identifiziert. Diese Technik kann
auch verwendet werden, wenn es mehr als zwei Router in der Verbundene-Router-Liste
gibt. Falls beispielsweise R3 in 2 eine unnummerierte
Verbindung zu einem zusätzlichen
Router R4 aufweist, würde
dann die Schnittstelle If1 im Router R1 mit R2, R3 und R4 verbunden
sein. Somit muss einer von R2, R3 oder R4 der unmittelbare Nachbar
sein. Dies kann gemäß den Prinzipien
der vorliegenden Erfindung bestimmt werden, indem jede der Schnittstellen
R2, R3 und R4 und wie sie mit den anderen Routern verbunden sind,
untersucht wird. Insbesondere kann bestimmt werden, dass R3 zwischen
R1 und R4 gelegen ist (d.h. mit R1 und R4 auf unterschiedlichen
R3 Schnittstellen verbunden ist), aber dass R1 und R2 auf derselben
Seite von R3 liegen (d.h. sowohl R1 als auch R2 sind mit derselben
R3 Schnittstelle verbunden). Es wird jedoch gefunden, dass R2 zwischen
R1 und R3 und auch zwischen R1 und R4 gelegen ist, weil es mit R1
auf einer seiner (R2's)
Schnittstelle verbunden ist und auf einer separaten R2 Schnittstelle
mit allen anderen Zielroutern der unnummerierten Schnittstelle (von
R1), die untersucht wird. Somit ist R2 der unmittelbare Nachbar.
-
3 ist
ein Flussdiagramm, das ein anderes Beispiel eines Verfahrens zum
Entdecken der unnummerierten Schnittstellen in einem Netzwerk illustriert,
gemäß den Prinzipien
der vorliegenden Erfindung. Das illustrative Verfahren arbeitet
wie folgt. Wie in Block 30 gezeigt, wird die Konfiguration
aller Router im Netzwerk erst durch Untersuchen von Konfigurationsdaten
für die
Router entdeckt. Bei einer Ausführungsform
kann diese Konfigurationsinformation aus Konfigurationsdaten in den nachfolgenden MIB-2 Gruppen oder
Tabellen erhalten werden, obwohl es sich versteht, dass andere Netz
werkmanagementdaten in anderen Ausführungsformen verwendet werden
können –
- • Systemgruppe – enthält den Systemnamen
etc.
- • ifTable – enthält Schnittstelleninformation
- • ipAddrTable – enthält IP Adresse
zur Schnitt
- • info – stellenbindung
- • ipRouteTable – enthält Routinginformationen
-
Dann
werden für
jeden entdeckten Router R aus Block 30 die unnummerierten
Schnittstellen dieses Routers identifiziert. Insbesondere werden
die betrieblichen PPP, Frame Relay oder X.25 Schnittstellen ohne an
sie gebundene IP Adressen identifiziert, wie in Block 32 gezeigt.
Dann werden, wie in Block 34 gezeigt, für jede solche unnummerierte
Schnittstelle I und für
jede Netzwerkroute, die in der Routetabelle gefunden wird, die Router
des Zielnetzwerkes gefunden und zu einer Liste hinzugefügt (Verbundene-Router-Liste)
oder sonst wie gespeichert. Entsprechend enthält zu diesem Zeitpunkt die
verbundene Routerliste für
jede unnummerierte Schnittstelle Router, die über diese Schnittstelle erreichbar
sind. Dann kann, wie in Block 36 gezeigt, für jeden entdeckten
Router R und für
jede unnummerierte Schnittstelle I von R und für jeden Router Ri in
der Verbundene-Router-Liste der unnummerierten Schnittstelle I und
für jedes
Rj in der Verbundene-Router-Liste (außer Ri) eine Schnittstellenvergleichsoperation
durchgeführt
werden, um zu bestimmen, ob Ri ein unmittelbarer Nachbar
von R ist. Dies kann durch beispielsweise die nachfolgend illustrative
Softwarebedingungsoperation durchgeführt werden:
Falls isIntermediateRouter
(Ri, R, Rj) = TRUE
für alle
Rj, ist Ri der unmittelbare
Nachbar.
-
Die
Operation "isIntermediateRouter" überprüft, ob der Router R
i zwischen R und R
j liegt
und kann beispielsweise wie folgt definiert werden
-
Schließlich wird,
wie im Block 38 gezeigt, falls Ri ein
unmittelbarer Nachbar ist und falls Ri auch
eine Route zurück
zu R über
die unnummerierte Schnittstelle J aufweist (Route zu einem der R's Netzwerke oder eine
Standardroute), eine unnummerierte Verbindung zwischen R's Schnittstelle I
und Ri's
Schnittstelle J identifiziert.
-
Es
versteht sich, dass die für
Ausführungsformen
wie diese notwendigen Daten von einer oder mehreren gespeicherten
Routertabellen für
die analysierten Router erhalten werden können. Insbesondere speichern
und halten typischerweise Router und andere Netzwerkvorrichtungen
eine Routingtabelle, welche Informationen über Zielnetzwerke enthält, die
ihm bekannt sind (z.B. Adressen von Netzwerken oder Netzwerkvorrichtungen,
die ihm bekannt sind, kann er über
eine spezifische seiner Schnittstellen kommunizieren). Solche Tabellen
enthalten typischerweise die Zielnummern oder Adressen wie auch
für jedes
Ziel die entsprechenden Schnittstellennummer, über welche dieses Netzwerk
erreichbar ist und die entsprechende nächste Sprungrouteradresse (die
Adresse des ersten Routers auf dem Pfad zu diesem Zielnetzwerk).
Diese werden "Netzwerkrouten" genannt. Eine "Standardroute" ist andererseits
ein spezieller Eintrag in einer Routingtabelle. Bei Ausführungsformen,
bei denen IP-Adressen
verwendet werden, wird sie die Zielnetzwerknummer wie 0.0.0.0 haben,
wobei alle anderen Informationen wie eine Netzwerkroute sind. Für eine Standardroute,
wenn ein Signal, wie etwa ein Paket oder andere Daten zu einer entfernten
Maschine zu senden sind, wird der Router zuerst versuchen, zu sehen,
ob er eine Netzwerkroute zu der Netzwerknummer der entfernten Maschine
hat. Falls er keine findet, verwendet er die Standardroute. Anders
ausgedrückt
sendet der Router das Signal an jeglichen nächsten Sprungrouter, der für die Standardroute über die
entsprechende Standardschnittstelle aufgelistet ist.
-
4 ist
ein schematisches Diagramm, das einen Beispielnetzwerkbereich illustriert,
der unnummerierte Schnittstellen aufweist, die gemäß den Prinzipien
der vorliegenden Erfindung identifiziert werden können. Aus
Gründen
der Einfachheit wird angenommen, dass das Beispielnetzwerk ein isoliertes
Netzwerk ohne konfigurierte Standardrouten ist. Unter Erwägung des
bestimmten Falles von Schnittstelle 2 (If2) von Router 1 kann gezeigt
werden, wie die oben beschriebenen Verfahren die unnummerierte Verbindung
zum Router 2 über
diese Schnittstelle identifizieren können. Die Router würden in
diesem Beispiel die folgende Routentabelle haben, falls IP-Adressierung
verwendet würde,
obwohl einzusehen ist, dass die erfinderischen Verfahren und Systeme
auf eine Vielzahl von Adressierungsschemata und Protokollen anwendbar
sind. Man beachte, dass es in diesen Tabellen verschiedene unnummerierte
Verbindungen gibt. Zum Beispiel ist die Verbindung zwischen Router
1 und Router 2 unnummeriert, wie durch die Tabellen gezeigt, wo
die ipRouteNextHop für Schnittstelle
2 von Router 1 und für
Schnittstelle 1 von Router 2 den Wert von 0.0.0.0 aufweisen. Dies
gilt auch für
die anderen Punkt-zu-Punkt-Verbindungen, wie etwa zwischen Router
2 (Schnittstelle 4) und Router 5 (Schnittstelle 1). Routingtabelle für Router 1
ipRouteDest | ipRouteIfIndex | ipRouteNextHop |
11.0.0.0 | 1 | 11.0.0.1 |
12.0.0.0 | 3 | 0.0.0.0 |
13.0.0.0 | 2 | 0.0.0.0 |
14.0.0.0 | 2 | 0.0.0.0 |
15.0.0.0 | 2 | 0.0.0.0 |
Routingtabelle für Router 2
ipRouteDest | ipRouteIfIndex | ipRouteNextHop |
11.0.0.0 | 1 | 0.0.0.0 |
12.0.0.0 | 1 | 0.0.0.0 |
13.0.0.0 | 2 | 13.0.0.1 |
14.0.0.0 | 3 | 0.0.0.0 |
15.0.0.0 | 4 | 0.0.0.0 |
Routingtabelle für Router 4
ipRouteDest | ipRouteIfIndex | ipRouteNextHop |
11.0.0.0 | 1 | 0.0.0.0 |
12.0.0.0 | 1 | 0.0.0.0 |
13.0.0.0 | 1 | 0.0.0.0 |
14.0.0.0 | 2 | 14.0.0.1 |
15.0.0.0 | 1 | 0.0.0.0 |
Routingtabelle für Router 5
ipRouteDest | ipRouteIfIndex | ipRouteNextHop |
11.0.0.0 | 1 | 0.0.0.0 |
12.0.0.0 | 1 | 0.0.0.0 |
13.0.0.0 | 1 | 0.0.0.0 |
14.0.0.0 | 1 | 0.0.0.0 |
15.0.0.0 | 2 | 15.0.0.1 |
-
5 ist
ein Flussdiagramm eines illustrativen Prozesses, der gemäß den Prinzipien
der vorliegenden Erfindung eingesetzt hat, und spezifisch eingesetzt
werden sollte, und die unnummerierte Verbindung zwischen Schnittstelle
2 von Router 1 und Schnittstelle 1 von Router 2 des Beispiels von 4 (wie
auch der anderen unnummerierten Verbindungen) zu identifizieren
und zu benennen. Insbesondere wird die Konfiguration aller Router
im Netzwerk im Operationsblock 40 entdeckt. Dann werden
für jeden
Router die unnummerierten Schnittstellen identifiziert (d.h. betriebliche
PPP, Frame Relay oder X.25 Typ Schnittstellen ohne gebundene IP
Adresse), wie in Block 42 von 5 gezeigt.
In diesem Beispiel wird insbesondere Router 1 untersucht. Somit
würden
Schnittstellen 2 und 3 als unnummerierte Schnittstellen von Router
1 im Block 42 identifiziert werden. Dann wird für die unnummerierte
Schnittstelle 2 eine Liste erzeugt, welche die Router im Zielnetzwerk für jede Netzwerkroute über Schnittstelle
2, die in der Routingtabelle gefunden worden ist, erzeugt. In diesem Fall
existieren ipRouteDest 13.0.0.0, 14.0.0.0 und 15.0.0.0 in der Routingtabelle
für Route
1 über
die Schnittstelle 2. Dementsprechend würde die verbundene Routerliste
erzeugt werden, um Router 2, Router 4 und Router 5 zu enthalten,
da dies Router auf Netzwerken 13.0.0.0, 14.0.0.0 und 15.0.0.0 sind.
Diese Listenerzeugung wird in Block 44 von 5 gezeigt.
Dann werden für
jeden Router in der Liste die folgenden Determinierungen durchgeführt:
Falls
isIntermediateRouter(Ri, R, Rj)
= WAHR für
alle Rj (d.h. für alle anderen Router in der
Routerliste).
-
In
solch einer Ausführungsform
kann die Bestimmung durch sukzessive Entscheidungsoperationen vorgenommen
werden, die durchgeführt
werden, um a) die Schnittstelle, welche die bestimmten verbundenen Router
mit dem untersuchten Router verbindet mit b) der Schnittstelle,
die den bestimmten verbundenen Router mit einem anderen verbundenen
Router in der Verbundene-Router-Liste verbindet, zu vergleichen.
Diese Operationen können
ausgeführt
werden, bis alle Vergleiche für
den verbundenen Router gegen alle anderen verbundenen Router in
der Verbundene-Router-Liste vorgenommen worden sind. Falls diese
Schnittstellen sich für
alle anderen verbundenen Router als andere herausstellen, ist Ri der unmittelbare Nachbar. Somit würde in diesem
Beispiel, falls Ri Router 2 ist (der erste
Router in der erzeugten Verbundene-Router-Liste), Rj dann Router
4 und Router 5 sein (die anderen Router in der Verbundene-Router-Liste).
Die erste Entscheidungsoperation kann dann durchgeführt werden,
um die Schnittstelle von Router 2, der mit Router 1 verbunden ist, mit
der Schnittstelle von Router 2, der mit Router 4 verbunden ist,
zu vergleichen. In diesem Fall wird bestimmt, dass sich diese Schnittstellen
unterscheiden (d.h. Schnittstelle 1 von Router 2 ist nicht gleich
Schnittstelle 3 von Router 2), wie in Block 46 von 5 gezeigt.
Dann kann eine nachfolgende Operation durchgeführt werden, um die Schnittstelle
von Router 2, die mit Router 1 verbunden ist, mit der Schnittstelle
von Router 2, die mit Router 5 verbunden ist, zu vergleichen. In
diesem Fall wird bestimmt, dass diese Schnittstellen sich auch unterscheiden
(d.h. Schnittstelle 1 von Router 2 ist nicht gleich Schnittstelle
4 von Router 2), wie in Block 48 von 5 gezeigt.
Diese Operationen können
durch die nachfolgenden illustrativen Bedingungsoperationen ausgedrückt werden:
isIntermediateRouter(Router
2, Router 1 Router 4) = WAHR
isIntermediateRouter(Router 2,
Router 1 Router 5) = WAHR
-
Damit
ist, weil beide Bedingungen wahr sind, Router 2 der unmittelbare
Nachbar, wie in Block 50 gezeigt.
-
Dieselben
Entscheidungsfunktionen können
für die
anderen Schnittstellen jedes anderen Routers in der Verbundene-Router-Liste durchgeführt werden
(d.h. für
Router 4 und 5).
-
Somit
würde Ri
dann auf Router 4 gesetzt werden, um diesen Router zu untersuchen,
und Rj kann auf Router 2 und Router 5 gesetzt
werden (die anderen zwei Router in der Verbundene-Router-Liste). In
diesem Fall:
isIntermediateRouter(Router 4, Router 1 Router
2) = FALSCH
isIntermediateRouter(Router 4, Router 1 Router
5) = FALSCH
-
Somit
ist Router 4 NICHT der unmittelbare Nachbar.
-
In ähnlicher
Weise, wenn Ri Router 5 ist, ist dann Rj Router
2 und Router 4 und:
isIntermediateRouter(Router 5, Router 1
Router 2) = FALSCH
isIntermediateRouter(Router 5, Router 1
Router 4) = FALSCH
-
Somit
ist Router 5 NICHT der unmittelbare Nachbar.
-
Diese
Operationen werden in Block 52 von 5 gezeigt.
-
Schließlich wird
bei dieser Ausführungsform
bestätigt,
ob Ri eine unnummerierte Route zurück zu R über die
Schnittstelle J hat. Dies kann durchgeführt werden, indem die Routentabelle
von Ri überprüft wird,
um zu bestätigen,
dass Ri eine entsprechende Route an eines
von R's Netzwerken
oder eine Standardroute aufweist, und dass Schnittstelle J von Ri eine unnummerierte Schnittstelle ist. Dann
wird eine unnummerierte Verbindung zwischen R's Schnittstelle 1 und Ri's Schnittstelle J
identifiziert, indem für
diese Verbindung indikative Daten gespeichert werden oder sonstwie
ein Identifizierer oder eine Adresse für diese Verbindung zugewiesen werden.
In diesem Beispiel wird Router 2 als der unmittelbare Nachbar identifiziert.
Durch Analyse der Routerdaten für
Router 2 wird bestätigt,
dass Router 2 eine Route zu Router 1 über die Schnittstelle 1 hat
(d.h. Router 1 Netzwerk 11.0.0.0 ist das ipRouteDest von Schnittstelle
1 von Router 2) und dass diese Schnittstelle 1 von Router 2 eine
unnummerierte Schnittstelle ist (d.h. Schnittstelle 1 von Router
2 hat eine IP Adresse von 0.0.0.0 in der ipAddrTable), wie in Blöcken 54 und 56 gezeigt.
Daher werden Daten gespeichert, um anzuzeigen, dass es eine unnummerierte
Verbindung zwischen der Router 1 Schnittstelle 2 (dem Router und
der Schnittstelle, die untersucht worden sind) und Router 2 Schnittstelle
1 gibt, wie in Block 58 gezeigt. Dies kann beispielsweise durch
Speichern einer Indikation oder von Daten wie den folgenden erreicht
werden:
[Router 1-Schnittstelle 2] verbunden mit [Router 2-Schnittstelle 1]
-
Diese
Indikation kann dann dem Netzwerkverwalter auf dem Netzwerktopologieanzeigeschirm
oder Bericht angezeigt werden, um dem Verwalter anzuzeigen, dass
diese Verbindung, die zuvor unidentifizierbar war, tatsächlich existiert.
-
Das
Nachfolgende beschreibt Beispiele von Datenstrukturen, die mit einem
oder mehrerer dieser Beispielverfahren und Systeme, die hier beschrieben
sind, eingesetzt werden können.
-
Insbesondere
kann die folgende Routerstruktur verwendet werden, um die Informationen
eines Routers zu speichern. Diese Information kann auch in nachfolgenden
Zyklen der Entdeckung eingesetzt werden, um Änderungen zu detektieren.
verwiesen
werden.
-
Darüber hinaus
kann die folgende Struktur verwendet werden, um eine Schnittstelle
des Routers zu repräsentieren.
Diese Struktur kann zu einem Teil der oben beschriebenen Router-Struktur gemacht
werden. Sie repräsentiert
eine Schnittstelle des Routers.
-
Zusätzlich kann
eine Datenstruktur namens "snmp
route" definiert
werden, um eine einem Router bekannte Route zu repräsentieren,
etwa wie folgt:
-
Eine
andere Struktur, die if_route-Struktur, kann erzeugt werden, um
eine Route über
eine bestimmte Schnittstelle zu repräsentieren. Ein Eintrag dieser
Art kann Interface.if_route_list hinzugefügt werden, falls man findet,
dass die Schnittstelle eine unnummerierte Schnittstelle ist:
-
Zusätzlich kann
eine Struktur namens connected router definiert werden, um einen
Router zu definieren, der über
eine bestimmte Schnittstelle erreichbar ist. Ein Eintrag dieses
Typs kann Interface.conn_router_list hinzugefügt werden, falls man findet,
dass die Schnittstelle eine unnummerierte Schnittstelle ist und
sie eine Route zu einem der Netzwerke dieses Routers hat:
-
Das
Blockdiagramm von 6 zeigt eine illustrative Beziehung
zwischen den obigen Beispieldatenstrukturen. Diese Datenstrukturen
und die hierin beschriebenen Verfahren können mittels irgendeiner Vielzahl von
Softwareprogrammiersprachen implementiert werden und können die
hierin beschriebenen Funktionen als Teil eines im Speicher gespeicherten
und durch ein oder mehrere Prozessoren einer Computervorrichtung,
die mit einem Computernetzwerk verbunden ist, zur Entdeckung der
Topologie dieses Netzwerks, ausgeführten Netzwerkmanagementsoftwareprogramms
ausführen.
Es versteht sich, dass, während
diese Datenstrukturen hierin mit spezifischen Namen und Architekturen
offenbart sind, die hierin beschriebenen Datenstrukturen und Verfahren
unter Verwendung eines breiten Bereichs von Software- und Hardwaretechniken
und -architekturen implementiert werden kann.
-
Zusätzlich zu
den obigen Strukturen kann eine connectivity_node Struktur erzeugt
werden, um eine unnummerierte Konnektivität zu repräsentieren (d.h. eine unnummerierte
Verbindung), die zwischen zwei Routern gemäß den hierin beschriebenen
Verfahren identifiziert wird. Es ist diese Datenstruktur, die dann
dem Netzwerkverwalter bereitgestellt werden kann und/oder verwendet
werden kann, um eine Topologiekarte zu erzeugen, welche die identifizierte
Konnektivität
anzeigt:
-
Darüber hinaus
kann für
sämtliche
durch das Verfahren identifizierte unnummerierte Konnektivität eine Liste
gehalten werden, um alle solche gefundenen Orte zu speichern. Beispielsweise
kann auf eine Liste aller solchen unnummerierten Konnektivität, die identifiziert
wurde, durch eine Variable verwiesen werden, wie die unten definierte.
Der Netzwerkverwalter kann auch Zugriff auf diese Tabelle haben
und/oder eine Topologie kann daraus erzeugt werden:
connectivity_node
*connectivity_table;
-
7 ist ein Flussdiagramm, welches ein anderes
Beispiel eines Verfahrens darstellt, das von einer Netzwerkverwaltungsanwendung
verwendet werden kann, um gemäß Aspekten
der vorliegenden Erfindung die Router im Netzwerk zu entdecken und
unnummerierte Verbindungen zu identifizieren. Dieses Verfahren kann
in jedem Zyklus der Entdeckung wiederholt werden. Bei dieser Ausführungsform
werden MIB- und SNMP-Daten eingesetzt, obwohl die Prinzipien des
Verfahrens auf andere Protokolle angewendet werden können, die
jetzt bekannt sind oder später
entwickelt werden.
-
Wie
durch die Schritte 72–79 des
Beispiels von 7 gezeigt, wird bei
dieser Ausführungsform
zuerst Information bezüglich
der Router im Netzwerk entdeckt. Insbesondere werden zuerst die
Adressen der Router durch den Nutzer einer Datenstruktur bereitgestellt,
wie etwa beispielsweise Router_List, wie in Block 72 gezeigt.
Insbesondere stellt in dieser Ausführungsform der Nutzer die Adresse
des Standardgateways und Adressen aller Router, die unnummerierte
Verbindungen enthalten, bereit. Bei dieser Ausführungsform entdeckt das Verfahren
nicht automatisch die Router mit unnummerierten Verbindungen, da
die Routeradresse nicht in der ipRouteNextHop der ipRouteTable irgendeines
Routers gefunden werden kann. Jedoch können bei anderen Ausführungsformen
automatische Verfahren verwendet werden.
-
Dann,
wie durch Block 74 gezeigt, wird für jeden Router R in der Router_List
die Variable R.found_in_this_cycle auf Falsch gesetzt und es wird
die MIB-II Systemgruppe abgefragt, welche die Namen des Systems,
seinen physikalischen Ort und dergleichen enthält, von dem ein Beispiel detailliert
nahe dem Ende der Beschreibung gegeben wird.
-
Zusätzlich,
wie bei Block 76 gezeigt, wird für jeden Router R die Schnittstellendatenstruktur
für jeden Eintrag
in der ifTable erzeugt. Insbesondere, falls eine Schnittstelle eine
an sie gebundene IP-Adresse aufweist, wird diese Information in
der Schnittstellendatenstruktur aktualisiert. Falls eine Schnittstelle
mehr als eine gebundene IP-Adresse hat, wird eine Kopie der Schnittstellendatenstruktur
für jede
IP-Adresse erzeugt. Zusätzlich wird
jede Schnittstelle zu R.interface_list hinzugefügt, wie in Block 77 gezeigt.
-
Als
nächstes,
wie in Block 78 gezeigt, wird für jeden Router R eine snmp_route
für jede
Spalte in ipRouteTable erzeugt und zu R.route_list hinzugefügt. Falls
eine gültige
Adresse in ipRouteNextHop gefunden wird, wird diese zur Router_List
hinzugefügt.
-
Dann,
wie in Block 79 gezeigt, falls alle Informationen erfolgreich
erhalten worden sind, wird R.found_in_this_cycle auf Wahr gesetzt,
falls alle Informationen. Wie ebenfalls in diesem Block gezeigt,
wird die Routerinformation in der Topologiedatenbank aktualisiert.
Diese Operationen werden dann wiederholt, bis der letzte Router
in der Router_List bearbeitet worden ist. Die Operationen der Blöcke 72–79 können durch den
nachfolgenden Pseudocode dargestellt werden:
- 1.1.
Füge vom
Anwender bereitgestellte Routeradressen zu Router_List hinzu
1.2.
Für jeden
Router in Router_List
1.2.1 Setze R.found _in_this_cycle =
Falsch
1.2.2 Frage MIB-II Systemgruppe ab
1.2.3 Frage
MIB-II ifTable und ipAddrTable ab
1.2.4 Frage MIB-II ipRouteTable
ab
1.2.5 Setze R.found_in_this_cycle auf Wahr, falls alle Informationen
erfolgreich erhalten
1.2.6 Aktualisierte die Routerinformation
in der Topologiedatenbank
1.2.6 Gehe zunächst zum Router in Router_List
-
Dann
wird, wie durch Blöcke 84–88 gezeigt,
eine Routenliste für
alle unnummerierte Schnittstellen angelegt, die in den vorherigen
Schritten der Blöcke 72–79 entdeckt
worden sind. Insbesondere wird in diesen Schritten für jede unnummerierte
Schnittstelle die if_route_list mit den existierenden Routen (zu
Zielnetzwerken) über
diese unnummerierte Schnittstelle besetzt. Spezifisch findet in
Bezug auf Block 84 dieses Verfahren für jeden Router R in der Routerliste,
der gefunden worden ist, und für
jede Route in R's
Routeliste die Schnittstelle in der Schnittstellenliste für den ip_route_if_index,
was der ifIndexwert ist, der in der Routentabelle gefunden wird,
die diese Route mit einem Eintrag in der Schnittstellentabelle verknüpft oder
querreferenziert. Dann, falls bestimmt wird, dass die Schnittstelle
eine PPP oder X.25 oder frame relay Type (eine Punkt-zu-Punkt-Type)
ist und die Schnittstelle operational ist und die Schnittstelle
eine IP Adresse von 0.0.0.0 aufweist, wird die Netzwerkroute für die Schnittstelle
zur Netzwerkroutenliste für
die Schnittstelle hinzugefügt, wie
in Block 86 gezeigt. Falls jedoch das Routenziel eine Standardroute
ist, werden alle anderen Routen in der Schnittstellenroutenliste
entfernt und es wird verhindert, dass neue Routen hinzugefügt werden,
wie in Block 88 gezeigt. Diese Schritte von Blöcken 84–88 können auch
durch den folgenden Pseudocode repräsentiert werden:
- 2.1 Für
jeden Router R in Router_List mit R.found_in_this_cycle = Wahr
2.1.1.
Für jede
Route in R.route_list
– Finde
die Schnittstelle in R.interface_list für den ip_route_if_index
– Falls
(Interface.if_type = (PPp oder X.25 oder Frame Relay)
UND
Interface.
operational_status = Läuft
UND
Interface.ip_address
= 0.0.0.0)
– Füge ip_route_dest
zu Interface, if_route_list hinzu
– Falls ip_route_dest = 0.0.0.0
(d.h. Standardroute)
– Entferne
alle anderen Routen in if_route_list (bereits hinzugefügte Routen)
– Verbiete,
dass neue Routen zu dieser if_route_list hinzugefügt werden.
-
Der
nächste
Schritt im Beispielverfahren von 7 ist
es, die im vorherigen Entdeckungszyklus entdeckte unnummerierte
Konnektivität
zu markieren. Dies wird so vorgenommen, dass zuvor entdeckte unnummerierte
Verbindungen aus den Datenstrukturen entfernt werden können, falls
sie in diesem Entdeckungszyklus nicht gefunden werden. Dieser Schritt
wird in Block 90 gezeigt und kann durch das Nachfolgende
repräsentiert
werden:
3.1 Setze connectivity_node.flag_found = Falsch für alle existierenden
Knoten in connectivity_table
-
Die
Schritte 92–102 von 7 können
dann eingesetzt werden, um eine verbundene Routerliste zu bauen,
unter Verwendung der Liste den unmittelbaren Nachbarn zu identifizieren
und Konnektivitätsknoten
in der Topologiedatenbank für
jede unnummerierte Verbindung zu erzeugen, gemäß den Prinzipien der vorliegenden
Erfindung. Insbesondere wird in diesen Schritten die verbundene
Routerliste für
jede unnummerierte Schnittstelle mit Routern bevölkert, die über diese Schnittstelle erreichbar
sind. Von diesen Routern hat der direkt mit dem anderen Ende der
unnummerierten Verbindung verbundene Router (der unmittelbare Nachbar) die
Eigenschaft, dass er Routen zum Router, der untersucht wird, und
zu allen anderen Routern in der Verbundene-Router-Liste über zwei
unterschiedliche Schnittstellen aufweist. Diese Eigenschaft wird
verwendet, um den unmittelbaren Nachbarn zu identifizieren. Dann
ist, falls der so identifizierte unmittelbare Nachbar eine Route
zurück
zum untersuchten Router über
eine unnummerierte Schnittstelle hat, eine unnummerierte Verbindung
identifiziert worden.
-
Insbesondere
werden in den Schritten 92 und 94 für jeden
Router R, der in die Routerliste eingetragen worden ist und für jede Schnittstelle
I von R, die in die Schnittstellenliste eingetragen worden ist,
und für
jeden Eintrag in der Schnittstellenroutenliste für jede Schnittstelle: a) Jeder
Zielrouter der Verbundene-Router-Liste hinzugefügt und b),
falls keine Zielrouter gefunden werden, diese Route aus der Schnittstellenroutenliste
entfernt. Dann werden die Schnittstellen der Router in der Verbundene-Router-Liste
untersucht, um den unmittelbaren Nachbarn zu bestimmen. Insbesondere
wird, wie in den Blöcken 96 und 98 gezeigt,
für jeden
Router Ri in der Verbundene-Router-Liste
und für
jeden anderen Router Rj in der Verbundene-Router-Liste bestimmt,
ob Ri mit R und mit allen anderen Routern Rj über zwei unterschiedliche Schnittstellen
verbunden ist. Falls dies der Fall ist, ist Ri der unmittelbare
Nachbar und dies wird vermerkt. Dann wird, wie in Blöcken 99–102 gezeigt, bestimmt,
ob der unmittelbare Nachbar Ri eine Route zu einem von R's Netzwerken oder
zu einer Standardroute über
eine unnummerierte Schnittstelle J aufweist. Insbesondere wird,
wie in Block 99 gezeigt, falls der Schnittstellentyp für die Schnittstelle
I des Routers R und für
die Schnittstelle J unterschiedlich sind, die Analyse in Bezug auf
die nächste
Schnittstelle wiederholt. Falls in Block 100 bestimmt wird,
dass es einen Konnektivitätsknoten
zwischen R und Ri mit demselben Schnittstellentyp und denselben
Schnittstellenindizes gibt, enthält
die Konnektivitätsliste
(eine laufende Liste unnummerierter Konnektivitäten oder Verbindungen) bereits diese
Konnektivität
(sie wurde in einem vorherigen Zyklus entdeckt). Somit muss für diese
Konnektivität
nur das Konnektivitätsknotenflag
für diesen
Knoten auf wahr gesetzt werden, wodurch dieser Knoten, wie von Block 102 gezeigt,
identifiziert wird. Ansonsten, wie durch Block 101 gezeigt,
muss eine Konnektivitätsknotendatenstruktur
für den
Knoten erzeugt werden und die unnummerierte Konnektivität wird der
Topologiedatenbank hinzugefügt,
so dass sie vom Netzwerkmanager identifiziert wird, der auf diese
Datenbank zugreift oder eine daraus erzeugte Topologie betrachtet.
Das Konnektivitätsknotenflag
wird auch in diesem Fall auf Wahr gesetzt.
-
Diese
Schritte können
durch den folgenden Pseudocode repräsentiert werden:
- 4.1. Für
jeden Router R in Router_List mit R.found_in_this_cycle = wahr
4.2.
Für jede
Schnittstelle I in R.interface_list
4.2.1. Für jeden
Eintrag in if_route_list
– Füge Router
auf i-_route dest connected_router_list hinzu, falls dieser Router
in diesem Zyklus gefunden wird. Jeder Knoten von connected_router_list
enthält
Verweise auf den tatsächlichen
Router. Ein neuer Router wird nur hinzugefügt, falls er nicht existiert.
– Falls
keine Router in ip_route_dest gefunden werden, entferne diese Route
aus if_route_list
4.2.3. Für
jeden Router Ri in connected_router_list
– Für jedes
Rj in connected_router_list (außer Ri)
– Falls
isIntermediateRouter(Ri, R, Rj)
= WAHR für
alle Rj Ri ist der
unmittelbare Nachbar
– Falls
Ri (der unmittelbare Nachbar) eine Route
zu einem von R's
Netzwerken aufweist oder eine Standardroute über eine unnummerierte Schnittstelle
J enthält
– Falls
ifType der Schnittstelle I von R und Schnittstelle J von Ri unterschiedlich sind, gehe zur nächsten Schnittstelle
(Schritt 4.2)
– Finde
einen connectivity_node zwischen R und Ri (irgendeine
IP Adresse) mit gleichen ifType und ifIndizes
– Falls
ein Knoten gefunden wird, setze connectivity_node.flag_found = Wahr
– Anderenfalls
erzeuge connectivity_node mit flagfound = Wahr.
Füge unnummerierte
Konnektivität
der Topologiedatenbank hinzu.
-
Schließlich werden,
wie in Block 104 gezeigt, Verbindungen aus der Konnektivitätstabelle
entfernt, falls diese Verbindungen in diesem Zyklus nicht entdeckt
worden sind. Insbesondere falls die Konnektivitätstabelle eine Verbindung zwischen
zwei Routern enthält,
die in einem vorherigen Zyklus entdeckt worden sind, aber nicht
in diesem Zyklus, und falls die zwei Router in diesem Zyklus erfolgreich
entdeckt worden sind, wird die unnummerierte Konnektivität gelöscht. Die
Konnektivität
wird nicht gelöscht,
falls einer der Router in diesem Zyklus nicht entdeckt wird. Insbesondere,
wie in Block 104 gezeigt, wird für jeden Konnektivitätsknoten
in der Konnektivitätstabelle,
falls das Flag oder der Knoten falsch ist, auf die zwei Router für diesen
Knoten aus der Routerliste zugegriffen. Falls dann das Flag, das
anzeigt, dass der Router im aktuellen Zyklus gefunden worden ist,
für beide
Router wahr ist, wird der entsprechende Konnektivitätsknoten
für die
Router aus der Konnektivitätstabelle
entfernt und der unnummerierte Konnektivitätsknoten wird aus der Topologiedatenbank
entfernt, wie in Block 104 gezeigt. Anders ausgedrückt wurde
der unnummerierte Knoten im aktuellen Zyklus des Entdeckungsverfahrens
nicht aufgefunden und daher sollte der Knoten nicht mehr als unerreichbar
indiziert werden (d.h. er ist nunmehr entweder nummeriert oder nicht
mehr eine aktuelle Verbindung). Diese Schritte können durch den folgenden Pseudocode
repräsentiert
werden:
- 5.1 Für jeden connectivity_node in
connectivity_table
5.2 Falls connectivity_node.flag_found =
falsch
5.3.1 Finde zwei Router in RouterList
5.3.2 Falls
Router.found_in_this_ cycle = wahr für beide Router
– Entferne
connectivity node aus der connectivity_table
– Entferne
die unnummerierte Konnektivität
aus der Topologiedatenbank
-
Obwohl
verschiedene Protokolle mit den obigen Beispielausführungsformen
implementiert werden könnten,
können
die Ausführungsformen
auf das SNMP Protokoll angewendet werden. Die nachfolgende Tabelle
ist eine Zusammenfassung der SNMP Information, die vom oben diskutierten
Routerauffindverfahren verwendet werden kann, um die erfinderischen
unnummerierten Verbindungsentdeckungstechniken auszuführen.
Protokoll | Objektindentifikator | Was
wird entdeckt |
SNMP-Systemgruppe
sysDeser
sysName
sysContact
sysLocation | 1.3.6.1.2.1.2.1
1.3.6.1.2.1.1.6
1.3.6.1.2.1.1.4
1.3.6.1.2.1.1.5 | Systeminformation |
ifNumber
SNMP-ifTable
ifIndex
ifDeser
ifType
ifPhysAddress
ifOperStatus | 1.3.6.1.2.1.1.1
1.3.6.1.2.1.2.2.1.8
1.3.6.1.2.1.2.2.1.6
1.3.6.1.2.1.2.2.1.3
1.3.6.1.2.1.2.2.1.2
1.3.6.1.2.1.2.2.1.1 | Informationen über jede
Schnittstelle im Router |
ipForwarding
SNMP-ipAddrTable
ipAdEntAddr
ipAdEntlflndex
ipAdEntNetMask | 1.3.6.1.2.1.4.20.1.3
1.3.6.1.2.1.4.20.1.2
1.3.6.1.2.1.4.20.1.1
1.3.6.1.2.1.4.1 | IP
an MAC Bindungen für
diesen Wirt. Der Wert von ipForwarding entscheidet darüber, ob
in dieser Vorrichtung IP Routing freigegeben wird. ipAdEntlflndex ist
der ifIndex-Wert der Schnittstelle in ifTable, an welche die IP
Adresse gebunden ist |
SNMP-ipRouteTable
ipRouteDest
ipRouteIfIndex
ipRouteNextHop
ipRouteType | 1.3.6.1.2.1.4.21.1.8
1.3.6.1.2.1.4.21.1.7
1.3.6.1.2.1.4.21.1.2
1.3.6.1.2.1.4.21.1.1 | Die
diesem Router bekannte Routen ipRouteDest ist das Zielnetzwerk.
Eine Adresse von 0.0.0.0 bezeichnet die Standardroute. ipRouteIfIndex
ist der ifIndexwert der Schnittstelle in ifTable, über welche
die Route zum Zielnetzwerk existiert. |
-
8 ist
ein schematisches Diagramm, das ein Beispiel eines Systems illustriert,
wo die oben beschriebenen Methoden ausgeführt werden könnten. Insbesondere
beinhaltet in diesem Beispiel das Netzwerkverwaltungssystem 120 Software,
die vom Netzwerkverwaltungsserver 122 ausgeführt wird,
der vom Netzwerkverwalter über
eine Verwaltungskonsole 124 gesteuert werden kann, um Netzwerk 126 zu
steuern, zu konfigurieren und zu überwachen. Das Netzwerkverwaltungssystem 120 kann
Standardnetzwerksoftwaremodule oder Funktionen 128 enthalten,
wie auch Module, die gemäß den Prinzipien
der vorliegenden Erfindung arbeiten, etwa solche, die gemäß dem beschriebenen
Beispielverfahren arbeiten. In diesem Beispiel beinhaltet das System
ein verbundenes Listenerzeugungsmodul 130 zum Identifizieren
unnummerierter Schnittstellen und Bestimmen von Routern, die mit
unnummerierten Schnittstellen verbunden sind, ein unmittelbares
Nachbarbestimmungsmodul 132 zum Bestimmen des unmittelbaren
Nachbarn zu einer unnummerierten Schnittstelle, basierend auf Eigenschaften
der verbundenen Router, ein Standard/Netzwerkroutenbestätigungsmodul 134 zum
Bestätigen
von Verbindung des unmittelbaren Nachbarn zur unnummerierten Schnittstelle
und ein unnummeriertes Verbindungslistenerzeugungs- und Wartungsmodul
zum Warten von Identifikatoren der unnummerierten Verbindungen.
Diese Verbindungen, wie die unnummerierte Verbindung zwischen R1
und R2 können
dann gegenüber
einem Netzwerkverwalter identifiziert werden, der das System 120 verwendet,
um die Netzwerktopologie zu entdecken.
-
Die,
verschiedene Aspekte der Erfindung darstellenden, obigen illustrativen
Ausführungsformen
können
in einer breiten Vielzahl von Anwendungen, Protokollen, Datenkonfigurationen,
Netzwerkarchitekturen und Adressierungsschemata eingesetzt werden.
Beispielsweise finden die Verfahren, obwohl Bezug genommen worden
ist auf Router und das SNMP Protokoll, Anwendung bei einer Vielzahl
von Netzwerkvorrichtungen und einer Vielzahl von Netzwerkprotokollen.
Darüber
hinaus versteht sich, dass die Verfahren, Systeme und Funktionen,
die hierin beschrieben sind, in Computer-ausführbaren Anweisungen, Routinen,
Codeabschnitten, Softwarekomponenten, Programmen und dergleichen
implementiert werden können,
die mittels eines oder mehrerer Prozessoren, Controller, Berechnungsvorrichtungen
oder geeignete Hardwarekomponenten arbeiten. Jegliche aus der Vielzahl
von Software- oder Programmsprachen kann für diesen Zweck eingesetzt werden.
Darüber
hinaus können
die hier referenzierten Daten und programmierten Verfahren auf jeglichem
geeigneten Speichermedium gespeichert werden, wie etwa Festplattenlaufwerken,
CD-ROM Laufwerken, Sicherungsspeichervorrichtungen oder anderen
Speichervorrichtungen, wie etwa geeigneten nicht-flüchtigen
optischen, magnetischen oder elektronischen Speichervorrichtungen.
Weiterhin könnte
eine Vielzahl von geeigneten Berechnungsvorrichtungen eingesetzt
werden, um die hierin beschriebenen Verfahren und Systeme zu implementieren,
einschließlich
Computern, Datenprozessoren oder anderen Vorrichtungen mit geeigneten Schaltkreisen
oder Hardware, die in einer geeigneten Weise zur Verwendung für die beschriebenen
Funktionen verbunden ist. Dementsprechend ist die vorstehende Beschreibung
illustrativer Ausführungsformen
zu Zwecken der Illustration und Beschreibung der verschiedenen Prinzipien
der Erfindungen präsentiert
worden. Es wird nicht beabsichtigt, dass diese erschöpfend ist
oder die Erfindungen beschränkt
auf genau die offenbarten Formen und es sind Modifikationen und
Variationen im Hinblick auf die obigen Lehren möglich. Beispielsweise versteht
sich, obwohl eine Anzahl von Verfahren, Systemen, Operationen und
Konfigurationen in den illustrierten Ausführungsformen beschrieben worden
ist, dass zusätzliche
oder alternative Verfahren, Systeme, Betriebsanordnungen und Konfigurationen
verwendet werden könnten,
ohne vom Schutzumfang der Erfindungen, wie beansprucht, abzuweichen.
Darüber
hinaus, obwohl verschiedene Aspekte der Erfindungen illustriert
worden sind, müssen
diese Aspekte nicht in Kombination eingesetzt werden. Gleichermaßen sind
die Prinzipien der vorliegenden Erfindung auf eine Anzahl von Routingvorrichtungen
anwendbar, einschließlich Routern,
Switchvorrichtungen, Computern und Gateways, wie auch anderen Netzwerkvorrichtungen.
-
Daher
sollte verstanden werden, dass die Ausführungsformen gewählt und
beschrieben wurden, lediglich um die Prinzipien der Erfindungen
und einige Beispiele möglicher
praktischer Anwendungen am besten zu illustrieren. Diese Illustration
wurde auch bereitgestellt, um damit den Durchschnittsfachmann in
die Lage zu versetzen, die Aspekte der Erfindung in verschiedenen
Ausführungsformen
und mit verschiedenen Modifikationen, die für den bestimmten erwogenen
Einsatz geeignet sind, einzusetzen. Dementsprechend ist beabsichtigt,
dass der Schutzumfang der Erfindung durch die hieran angehängten Ansprüche definiert
ist.