-
Allgemeiner Stand der Technik
-
Die
vorliegende Erfindung betrifft IP-Netzwerke und insbesondere Techniken
zum Sequenzieren von Konfigurationsänderungen in einem Netzwerk
von IP-Routern.
-
Derzeitige
IP-Netzwerke bestehen in der Regel aus Routern, die durch Strecken
verbunden werden. Ein zu dem Netzwerk gesendetes Paket erreicht ein
bestimmtes Ziel durch Spezifizieren der IP-Adresse eines Zielports.
Ein Paket erreicht den gewünschten
Zielport, indem es sequentiell durch eine Anzahl von Routern geroutet
wird.
-
Eine
OSPF-Domäne
eines IP-Netzwerks kann logisch in eine Ansammlung von ABR (Area Border
Router) unterteilt werden, die über "Backbone"-Strecken mit einem
oder mehreren Gebieten verbunden werden. Jedes Gebiet umfaßt ein Subnetzwerk
von Routern, die durch Strecken verbunden werden. Innerhalb eines
Gebiets kann es auch Subnetze geben und jedes Subnetz ist eine Ansammlung verbundener
IP-Router mit einem Gateway, das das Subnetz an den Rest des Netzwerks
anschaltet.
-
IP-Router
besitzen zahlreiche Parameter, die sich auf ihren Betrieb auswirken.
Zum Beispiel können
Router dafür
ausgelegt werden, ein angefordertes Dienstniveau bereitzustellen,
die Sicherheit der Kommunikation zu verbessern, Kommunikation von verschiedenen
Quellen zu blockieren, Verwaltungsinformationen bereitzustellen
usw. Natürlich
müssen Router
auch ihre Hauptaufgabe des Routens von Paketen ausführen und
zu diesem Zweck führen
Router ein Routing-Protokoll aus. Als Teil dieses Protokolls muß jeder
der Router ein Gefühl
für die
Konnektivität des
IP-Netzwerks, in dem er operiert, entwickeln und eine Routing-Tabelle
zur Anleitung des Routens von Paketen durch den Router erstellen.
Das Routing-Protokoll operiert gemäß verschiedenen Para metern,
die mit dem Routing-Protokoll assoziiert sind. Wie bei den zuvor
erwähnten
Parametern werden die Routing-Protokoll-Parameter von einem oder mehreren
Systemadministratoren für
die Router konfiguriert (z.B. aktualisiert).
-
Um
das Konfigurieren oder Aktualisieren auszuführen, greifen Administratoren
entweder durch Außerband-
oder Inband-Kanäle
auf Router zu. Die Außerband-Konfiguration wird
durch die Konsole des Routers oder abgesetzt entweder durch einen
Modemport des Routers oder einen separaten Ethernet-Port des Routers
erreicht. Inband-Konfiguration wird durch Erreichen des Routers über das Netzwerk
selbst erreicht, d.h. durch "Telneting" zu dem Router. Inband-Konfiguration
ist das üblichste Verfahren
des Zugriffs, da es keine Verwendung eines separaten Zugangsnetzwerks
erfordert.
-
Das
Konfigurieren von Routern von einem zentralen Konfigurationsstandort
aus durch den Inband-Kanal stellt ein potentielles Problem dar,
das von dem Umstand stammt, daß das
Aktualisieren der Parameter eines Routers bewirken kann, daß ein anderer
Router unzugänglich
wird. Das Problem ist nur ein potentielles Problem, weil es nur
auftreten kann, wenn Parameter, die sich auf die Erreichbarkeit
von Ports auswirken, aktualisiert werden, und nur wenn die Aktualisierung
zufällig
in der falschen Sequenz erfolgt. Folglich ist es wichtig, das Aktualisieren
von Routern ordnungsgemäß zu sequenzieren,
um eine Situation zu vermeiden, bei der ein Router von dem zentralen
Standort aus aktualisiert werden muß, aber dem zentralen Standort
unzugänglich
ist.
-
Es
wird angemerkt, daß die
europäische
Patentanmeldung
EP 0 817 424 der
Digital Equipment Corporation ein Mesh-verbundenes lokales Netzwerk beschreibt,
bei dem immer dann, wenn eine neue Vermittlung oder Strecke zu dem
Netzwerk hinzugefügt
wird und immer dann wenn eine Vermittlung oder eine Strecke ausfällt, die
Vermittlungen in dem Netzwerk das Netzwerk durch Neuberechnung der
Menge legaler Wege durch das Netzwerk automatisch neukonfigurieren.
-
Kurzfassung
-
Das
Aktualisieren von Routern wird erreicht, indem sichergestellt wird,
daß die
Ablaufplanung von Routeraktualisierungen dergestalt ist, daß eine Turbolenzzone,
die auftritt, wenn die Aktualisierung stattfindet, nicht verhindert,
daß ein
etwaiger Router, der möglicherweise
aktualisiert werden muß,
erreicht werden kann. Bei IP-Routern, die eine Task-Ablaufplanungsfähigkeit
besitzen, wird dies erzielt durch Schätzen der Zeit zum Übermitteln
von Aktualisierungsinformationen zu allen Routern, die aktualisiert werden
müssen,
Addieren dieser Schätzung
zu der Tageszeit und Senden der Aktualisierungsspezifikationen.
Die Router empfangen die Aktualisierungsspezifikationen, planen
die Aktualisierungs-Task ein und aktualisieren sich unabhängig selbst
zum entsprechenden Zeitpunkt. Bei Anordnungen, in denen Router keine
Task-Ablaufplanungsfähigkeit
besitzen, wird die Aktualisierung sequenziert. Es werden drei Verfahren
offenbart. Eine Ausführungsform
erzeugt eine Menge von Traceroute-Bäumen, die die zu aktualisierenden
Knoten abdecken, und es werden Blattknoten der Bäume zufällig aufgenommen. Alle Blattknoten,
die berücksichtigt
werden, werden aus den Bäumen
entfernt, so daß Knoten
zurückbleiben,
die Zwischenknoten anderer Bäume
waren. Wenn solche Knoten zu den einzigen übrigen Blattknoten werden,
werden sie entfernt und der Prozeß wird fortgesetzt, bis keine
Knoten in irgendwelchen der Bäume verbleiben.
Die zweite Ausführungsform
ist insofern mehr baumzentrisch, als sobald ein Startknoten identifiziert
ist (und sein assoziierter Baum), alle seine Knoten betrachtet werden,
bevor zu einem anderen Baum fortgeschritten wird.
-
Kurze Beschreibung der Zeichnung
-
1 zeigt
ein Flußdiagramm
eines Verfahrens für
IP-Router, die ihre
Parameter unabhängig auf
ablaufgeplanter Zeitbasis aktualisieren;
-
2 zeigt
einen gerichteten Baum für
ein Netzwerk von Knoten;
-
3 zeigt
ein Flußdiagramm
eines ersten Verfahrens zum Sequenzieren der Aktualisierung von
IP-Routern in einem Netzwerk;
-
4 zeigt
die Etikettierung von Knoten und Strecken, die bei der Ausführung des
durch 3 offenbarten Verfahrens auftritt; und
-
5 zeigt
ein Flußdiagramm
eines zweiten Verfahrens zum Sequenzieren der Aktualisierung von
IP-Routern in einem Netzwerk.
-
Ausführliche Beschreibung
-
Das
Problem des Sequenzierens wird beseitigt, wenn die Router, die aktualisiert
oder konfiguriert werden müssen,
eine "Ablaufplanungsfähigkeit" bereitstellen, d.h.
eine Fähigkeit
zum Empfang von Konfigurationsaktualisierungen, sie speichern und
die Änderungen
zu einem späteren
Zeitpunkt ausführen. Gemäß diesem
Ansatz werden über
das in 1 abgebildete Verfahren Mengen von Routern aktualisiert.
-
In
der ersten Phase wird im Block 10 eine Schätzung der
erforderlichen Zeit zum Herunterladen der Konfigurationsinformationen
zu allen Routern in der Menge von zu aktualisierenden Routern erhalten. Diese
Schätzung
kann grob sein, wie etwa eine bestimmte große vorsichtige Schätzung von
zum Beispiel 10 Minuten. Es kann zum Beispiel auch eine genauere
Schätzung
erhalten werden, indem man ein Ping zu den verschiedenen Routern
durchführt
(wodurch man die Erreichbarkeitszeit erhält) und die maximale Erreichbarkeitszeit,
addiert zu der maximalen geschätzten
Aktualisierungsheraufladezeit, verwendet. Erreichbarkeitszeiten
(die mit den "Dings" abgeleitet werden)
können
gespeichert werden, um ein Histogramm zu erzeugen, so daß die maximale
Zeit, die durch Block 10 ausgewählt wird, die größte in dem
gespeicherten Histogramm gefundene maximale Zeit ist. Gemäß dem in 1 abgebildeten
Prozeß wird
die Schätzung
der maximalen Erreichbarkeitszeiten zu der Tages-Uhrzeit addiert
und im Block 20 mit den Aktualisierungsinformationen zusammengelegt.
Block 30 sendet diese Informationen inband zu der Menge
von zu aktualisierenden Routern. Als letztes aktualisieren sich
die Router gemäß Block 40 selbst
unter der Kontrolle der zuvor empfangenen und gespeicherten Anweisungen
zum entsprechenden Zeitpunkt.
-
Das
Verfahren von 1 arbeitet gut, erfordert aber,
daß die
Router eine Task-Ablaufplanungsfähigkeit
besitzen. Für
Netzwerke, die Router verwenden, die keine Task-Ablaufplanungsfähigkeit
aufweisen, ist eine ordnungsgemäße Sequenzierung
die einzige Alternative bei Verwendung eines Inband-Zugangskanals
oder einer Mischung von Außerband- und
Inband-Zugangskanälen.
-
In
den meisten Fällen
wirkt sich das Ändern eines
kritischen Routing-Protokoll-Parameters auf die Fähigkeit
dieses Routers zum Austausch von Routing-Informationen mit anderen
Routern aus. Dies hat zur Folge, daß Wege, die durch diesen Router
verlaufen, zumindest für
einige Zeit unbenutzbar sein könnten.
Während
Parameter auf mehreren Routern geändert werden, wird eine "Turbolenzzone" erzeugt, die abklingt,
wenn alle erforderlichen Router aktualisiert sind. Das Ziel besteht
darin, die Turbolenzzone so zu erzeugen, daß die Möglichkeit, alle erforderlichen
Router zu erreichen, nicht beeinträchtigt wird.
-
Um
die Aktualisierung von Routern so zu sequenzieren, daß die Turbolenzzone
die entsprechende Eigenschaft aufweist, muß die Topologie des Netzwerks
bekannt sein. Dies kann durch ein IPNC-Werkzeug (IP Network Configurator)
erreicht werden, das von Lucent Technologies erhältlich ist. In der Regel ist
das IPNC-Werkzeug
auf einer an das Netzwerk angeschlossenen UNIX-Workstation installiert.
Die Topologie des Netzwerks wird durch das IPNC-Werkzeug entdeckt.
Ein Verfahren dafür
besteht darin, eine Menge von Traceroute-Befehlen auszuführen, die
alle Knoten abdecken, die aktualisiert werden müssen. Der hier verwendete Begriff "abdecken" bedeutet "berücksichtigt". Traceroute ist ein
Standard-Vernetzungswerkzeug, das im Betriebssystem enthalten ist
und als Eingabe ein Ziel nimmt und den Weg ausgibt, der von dem
Startort zu dem Ziel gemäß derzeitigen
Routing-Tabellen genommen wird. Aus diesen Informationen kann man einen
gerichteten Baum konstruieren, der zeigt, wie Pakete von dem IPNC-Werkzeug
zu den verschiedenen Routern geroutet werden. Der Zweckmäßigkeit halber
werden in der vorliegenden Offenbarung die konstruierten Bäume als "Traceroute-Bäume" bezeichnet, gleichgültig, ob
die Informationen für
das Konstruieren der Bäume
mittels eines Traceroute-Werkzeugs oder anderweitig erhalten werden. 2 zeigt
einen einfachen Traceroute-Baum eines Netzwerks, der durch ein Traceroute
von dem IPNC-Werkzeug
auf der Maschine R0 zu dem Router (d.h. Knoten) R5, gefolgt durch
Traceroutes zu den Knoten R2 und R3, konstruiert worden sein könnte. Da
ein Netzwerk und die entsprechenden Routing-Tabellen sich von Zeit
zu Zeit ändern
können, werden
diese Informationen vorteilhafterweise jedesmal gesammelt, wenn
eine Aktualisierungsoperation unternommen wird, statt nur einmal.
Es wird angenommen, daß der
Routing-Baum für
die Zeit, die erforderlich ist, um die Konfigurationen auszuführen, stabil
ist.
-
Die
Sequenz für
das Aktualisieren wird von den Blättern bis zu der Wurzel des
Baums spezifiziert, so daß alle
Knoten, die von einem Knoten aus erreichbar sind, in der Sequenzierungsreihenfolge vor
dem Knoten erscheinen müssen.
Im allgemeinen kann man die notwendige Sequenzierungsreihenfolge
durch Verwendung einer herkömmlichen
tiefenorientierten Suche erreichen. Siehe zum Beispiel "The Design and Analysis
of Computer Algorithms" von Aho,
Hopcroft und Ullman für
eine Beschreibung der tiefenorientierten Suche. Das Sequenzierungsproblem
wird jedoch durch die Details, die über den grundlegenden Ansatz
in Bezug auf ein IP-Netzwerk hinausgehen,
interessant und schwierig.
-
Im
allgemeinen Fall kann es mehrere mögliche Startknoten zur Einleitung
des Traceroute geben. Zum Beispiel wird in 2 das Traceroute
erreicht, indem sich das IPNC-Werkzeug in die Maschine R1 einloggt
und eine Anzahl von Traceroutes von R1 aus ausführt. Es ist jedoch möglich, daß die Menge
der zu aktualisierenden Router nicht von einer einzigen Maschine,
wie etwa R1, aus abgedeckt werden kann. Deshalb ist es notwendig,
Login-Zugang zu einer Anzahl der Router (die auch als Knoten oder
Maschinen bezeichnet werden) zu besitzen, von denen aus Traceroute
auszuführen
ist, und vielleicht sogar zu allen Routern zu besitzen. Ferner muß es einen
Login-Weg zu diesem Traceroute-Startknoten geben, der durch keine
anderen Knoten, die aktualisiert werden müssen, verläuft.
-
Die
Menge von Routern, die die Anforderungen des "Traceroute-Startknoten" erfüllen (oder
sie für
Teilmengen der zu aktualisierenden Router erfüllen), umfaßt folgendes.
- • Die
Maschine, auf der das IPNC-Werkzeug ausgeführt wird. Offensichtlich ist
Zugang zu der Maschine, auf der das IPNC-Werkzeug abläuft, immer
verfügbar.
- • Router
mit Außerband-Verbindung.
Auch hier ist offensichtlich, daß angenommen werden kann, daß der Zugang
zu Routern mit Außerband-Konnektivität immer
verfügbar
ist.
- • ABR
(Area Border Router). Für
andere Gebiete als das Gebiet des Routers, in dem das IPNC-Werkzeug
verankert ist, oder des Routers, in dem das IPNC-Werkzeug eingeloggt ist, ist der ABR
der Knoten, der vor dem Erreichen jedes anderen Knotens in dem Gebiet
immer erreicht wird. Die Wahl des ABR als Startknoten für das Gebiet ist
deshalb eine effektive Wahl.
- • Gateway-Router.
Wie bei ABR stellt das Gateway eine gute Wahl als Traceroute-Startknoten
für das
Subnetz des Gateways dar.
-
Es
sei angemerkt, daß häufig die
Menge von Knoten, die der Administrator aktualisieren möchte, in
einem Gebiet des Netzwerks oder in einem IP-Subnetz gefunden wird.
-
3 zeigt
ein Flußdiagramm
eines ersten Echtzeit-Sequenzierungsverfahrens
zum Aktualisieren von IP-Netzwerk-Routern.
Im Prinzip erzeugt das Verfahren von 3 eine geordnete
Liste von Elementen {si, snj},
wobei si ein Knoten aus einer Menge S von
Knoten ist, an denen Aktualisierungsänderungen vorgenommen werden
sollen, und snj ein Knoten aus einer Menge
SN von Knoten ist, die "Traceroute-Start"-Knoten bilden. Die
Aktualisierungen werden in der durch die geordnete Liste spezifizierten
Reihenfolge ausgeführt.
Für das
Beispiel der Topologie von 2 ist die
geordnete Liste (R3, R0), (R4, R0), (R2, R0), (R5, R0), (R6, R0),
(R1, R0) akzeptabel.
-
In
einfachsten Fall wird ein Traceroute-Baum von einem Knoten sn1 in der Menge SN erzeugt, bis alle Knoten
in S in dem Traceroute-Baum enthalten sind oder keine neuen Knoten
zu dem Baum hinzugefügt
werden. Zu letzterem könnte
es kommen, wenn es keinen Routing-Weg von sn1 zu bestimmten der
Knoten in S gibt. Es sei angemerkt, daß, wenn ein Traceroute zu einem
Knoten j ausgeführt
wird, der Weg mehrere Zwischenknoten durchlaufen kann, die sich
in der Menge S befinden. Unter solchen (relativ häufigen)
Umständen
ist es offensichtlich nicht notwendig, separate Traceroutes zu diesen
Zwischen knoten auszuführen.
Für jedes
ausgeführte
Traceroute wird jeder durchquerte Knoten mit sn1 etikettiert und
das gleiche gilt für
jede durchquerte Strecke (oder "Kante"). Ein Knoten, der
bereits etikettiert wurde, wird auch dann nicht erneut etikettiert,
wenn er mit einem anderen Traceroute durchquert wird. So lange Knoten
in S verbleiben, die noch nicht etikettiert wurden, wird der Traceroute-Prozeß fortgesetzt, wobei
ein anderer Knoten in SN, z.B. sn2, als
der Traceroute-Startknoten
dient und jeder neue Knoten bzw. jede neue Kante der bzw. die durchquert
wird, mit sn2 etikettiert wird. Die resultierende
Struktur kann wie in 4 aussehen, wenn die Traceroute-Startknoten
R1 und dann R7 sind. Das Ergebnis ist eine Menge von Bäumen, die
sich möglicherweise überlappen
(z.B. Knoten R6). Die Menge von Bäumen wird durch Block 11 in 3 erzeugt.
-
Sobald
Block 11 seine Task abschließt, kann die Erzeugung einer
Aktualisierungssequenz beginnen. Gemäß einer beispielhaften Ausführungsform wird
die Sequenz gemäß dem folgenden
Pseudocode erzeugt:
While (es sind Knoten in irgendeinem der
Menge von Bäumen übrig) do
{zufälliges
Auswählen
eines Blatts si aus der Menge von Bäumen zufällig dergestalt,
daß der
Knoten si für keinen Baum ein interner
Knoten ist (OR Versagen).
-
Das
Blatt si und seine Kennzeichnung snj an die geordnete Aktualisierungssequenzliste
ausgeben
Knoten si aus dem Baum snj entfernen
folgendes wiederholen {
wenn
es keine Kante mit Kennzeichnung x aus einem Nicht-Blattknoten heraus
gibt,
Entfernen der Kennzeichnung x aus allen Kanten in diesen
Knoten hinein (oder Kanten mit der Kennzeichnung x in diesen Knoten
hinein), wenn der Knoten nicht mit x gekennzeichnet ist;
}
until (keine Kante oder Kennzeichnung ist entfernbar);
}
-
Dieser
Pseudocode wird in 3 wiedergegeben, wobei, nachdem
die Steuerung an den Block 12 abgegeben wurde, ein Blattknoten
willkürlich
aus der Menge von Bäumen
so ausgewählt
wird, daß der Knoten
für keinen
Baum ein interner Knoten ist (OR Versagen). Der gewählte Blattknoten
si und sein Kennzeichnung snj,
das den Baum bezeichnet, zu dem der Knoten si hauptsächlich gehört, werden durch
Block 13 als das Tupel {si, snj} an die geordnete Liste angehängt. Block 14 entfernt
das Blatt aus dem Baum snj und alle Kanten
des Baums snj, die zu dem entfernten si zeigen. Dann wird die Steuerung an Block 15 abgegeben,
der eine "Aufräum"-Operation ausführt. In
einer Schleife mit Block 16 prüft Block 15 auf alle
Knoten, die eine in ihn hineinkommende Kante mit der Kennzeichnung
x aber keine aus ihm herausgehende Kante mit der Kennzeichnung x
aufweisen, wobei die Kennzeichnung x von der Kennzeichnung des Knotens
verschieden ist. Für
alle solche Knoten werden die Kennzeichnung x an den Kanten in den
Knoten entfernt. Dann wird die Steuerung an Block 17 abgegeben,
der bestimmt, ob Knoten übrig sind.
Wenn dies der Fall ist kehrt die Steuerung zum Block 12 zurück. Andernfalls
endet der Algorithmus mit Block 18, der Aktualisierungsausführungsbefehle zu
den Routern in der Reihenfolge zu den Routern sendet, die in der
im Block 13 erzeugten geordneten Liste spezifiziert wird.
Natürlich
kann es Knoten in der geordneten Liste geben, die nicht aktualisiert
werden müssen.
Die diesen Knoten entsprechenden Tupel können aus der geordneten Liste
entfernt (oder erst gar nicht in diese gesetzt) werden. Bei einer
solchen Ausführungsform
wird der Prozeß des
Löschens
entweder in Block 13 sozusagen "im Verlauf" oder in Block 18 ausgeführt. Ein
Beispiel für
eine akzeptable Sequenz für 4 ist
(R2, R1), (R4, R1), (R9, R7), (R8, R7), (R6, R1), (R7, R7), (R5,
R1), (R3, R1), (R1, R1).
-
Das
oben beschriebene Verfahren kann durch Voridentifizieren einer Teilmenge
PSN (bevorzugte Startknoten) in der Menge SN beschleunigt werden.
Diese Teilmenge kann natürlich
alle Knoten in SN enthalten, es ist aber in der Praxis am besten, in
die PSN die Knoten in SN aufzunehmen, die "schnell" von der Station, die Host für das IPNC-Werkzeug
ist, erreicht werden kann. Nachdem die PSN-Knoten identifiziert
wurden, kann man Bäume
konstruieren, indem die Knoten identifiziert werden, die direkt
mit den PSN-Knoten verbunden sind, wie folgt:
Entferne alle
Knoten von PSN aus S;
Kennzeichne jeden Knoten in PSN mit der
Kennzeichnung psnj
Für jeden
Knoten psnj in PSN do {
Es sei n1, n2, ..., nk die Menge von Knoten (Routern), die eine
direkt verbundene Schnittstelle zu psnj aufweisen;
For
i = 1...k {
Wenn ni nicht schon gekennzeichnet
ist {
Kennzeichne ni mit psnj und füge
eine Kante von psnj zu ni mit
der Kennzeichnung psnj hinzu;
Entferne
ni aus der Menge S;
}
}
-
Nach
diesem Identifikations- und Kennzeichnungsprozeß können die oben beschriebenen
Prozesse zum Aufbau von Bäumen
und zum Entwickeln einer Aktualisierungssequenz für die Bäume für die PSN-Bäume voranschreiten.
Danach können
die oben beschriebenen Prozesse, wenn Knoten in S übrig sind,
für diese
Knoten wiederholt werden.
-
Der
Prozeß von 3 konzentriert
sich auf den zu aktualisierenden Knoten (knotenzentrisch). Ein zweites
Verfahren, das den hier offenbarten Prinzipien genügt, konzentriert
sich auf den Startknoten (baumzentrisch) und ist in 5 abgebildet.
-
Block 25 erzeugt
eine Menge von Bäumen, die
die zu aktualisierenden Knoten abdecken. Wie bei Block 11 könnte die
Menge Knoten enthalten, die nicht aktualisiert werden müssen. Vorausgesetzt, daß es jmax Startknoten snj,
j = 1, 2, ..., jmax, gibt und daß es mmax Knoten Nm, m
= 1, 2, ..., mmax, gibt, die aktualisiert
werden müssen,
wird für
jeden Startknoten snj ein separater Traceroute-Baum
(mit der Kennzeichnung snj) konstruiert.
Das Ergebnis können
jmax Traceroute-Bäume sein (die zu aktualisierenden Router
könnten
durch weniger Traceroute-Bäume abgedeckt
werden). Natürlich
wird an besuchten Knoten am nächsten
Startknoten nicht noch mal ein Traceroute ausgeführt. Eine Erweiterung wäre, einen Baum
zu beschneiden, wenn ein anderer Startknoten während des Traceroute erreicht
wird, weil die von dem Baum dieses anderen Startknotens abgeleiteten Informationen
bereits die gewünschte
Abdeckung bereitstellen.
-
Nach
dem Abschluß der
Menge von Bäumen gibt
Block 25 die Steuerung an Block 26 ab, in dem ein
Startknoten snj z.B. zufällig ausgewählt wird. Nachdem der Startknoten
snj und sein Baum ausgewählt wurden, wird die Steuerung
an Block 27 abgegeben, in dem ein Blattknoten sa aus dem snj-Baum ausgewählt wird.
Die Steuerung wird dann an Block 29 abgegeben, der bestimmt,
ob der gewählte sa-Knoten
ein Zwischenknoten eines anderen Baums ist. Wenn dem so ist, springt
die Steuerung zum Block 28. Andernfalls wird die Steuerung
an Block 31 abgegeben, der das Tupel {sa,
snj} an die geordnete Liste ausgibt und
den Knoten sa aus dem snj-Baum entfernt.
Die Steuerung wird dann an Block 28 abgegeben, der bestimmt,
ob es weitere Knoten in dem Baum gibt. Wenn der Baum nicht leer
ist, kehrt die Steuerung zum Block 26 zurück. Wenn
der Baum leer ist, wird die Steuerung an Block 23 abgegeben, der
die oben in Verbindung mit 5 beschriebenen Funktionen
ausführt.
Wie in Verbindung mit dem oben offenbarten ersten Verfahren werden
Knoten, die nicht aktualisiert werden müssen, aus der geordneten Liste
entfernt oder erst gar nicht in diese aufgenommen.
-
Ausgedrückt in Pseudocode
folgt das Verfahren von 5 der folgenden Logik:
While
(es gibt einen Knoten in irgendeinem Baum) do {
Startknoten
snj zufällig
aussuchen
While (Blattknoten si existiert
im Baum snj und der Knoten si ist
kein Zwischenknoten eines Baums außer snj)
{
Setze (si, snj)
auf Aktualisierungssequenzliste
Entferne Knoten si aus
dem Baum snj
}
}
-
Das
Verfahren von 5 ist einfach zu implementieren
und ist wahr, wenn in Verbindung mit allen Knoten folgendes wahr
ist: wenn Knoten A C erreichen kann, Knoten B C erreichen kann und
Knoten C D erreichen kann, können
die Knoten A und B D erreichen.
-
Die
Auswahl der Menge von Startknoten ist ein interessantes Problem.
Insbesondere wenn eine Änderung
von Parametern mit gebietsweiter Auswirkung vorgenommen wird, wird
die Wahl der Startknoten wichtig. Router mit Außerband-Zugang werden automatisch
in die SN-Menge aufgenommen und können bei einer Ausführungsform,
die das Prinzip einer PSN-Menge verwendet, in die PSN-Menge (abhängig von
Performance-Aspekten) aufgenommen werden oder nicht. Wenn das IPNC-Werkzeug
in demselben Gebiet wie die Menge aktualisierter Router verankert
ist, reicht ein Traceroute von der Maschine, auf der das IPNC-Werkzeug
abläuft,
aus, und der Startknoten ist die Maschine, auf der das IPNC-Werkzeug
abläuft.
Wenn die Menge von aktualisierten Routern zu einem Gebiet außerhalb
des Gebiets gehört,
in dem das IPNC-Werkzeug abläuft,
enthält
die SN-Menge (und die PSN-Menge) die Menge von ABR. Wenn das Ziel
in einem virtuellen Gebiet liegt, enthält die SN-Menge die Menge virtueller
ABR zu dem Zielgebiet.
-
Von
besonderer praktischer Signifikanz ist der Fall, daß Aktualisierungen
an Routern an einem Subnetz vorgenommen werden müssen. Obwohl die oben offenbarten
Techniken ausreichen, kann man den Umstand ausnutzen, daß direkt
verbundene Schnittstellen fast immer von einem Nachbar in dem Subnetz
aus zugänglich
sind. Da Schnittstellen in einem Subnetz als direkt verbunden betrachtet
werden, muß das
IPNC-Werkzeug lediglich einen der Nachbarn erreichen und diesen
Nachbarknoten als Startknoten verwenden. Wenn eine Außerband-Verbindung zu einem
der Subnetzknoten verfügbar
ist, ist dies dann der Startknoten. Wenn nicht, kann man die folgende
Technik verwenden:
- • Durchführen eines Traceroutes zu einer
willkürlich
ausgewählten
existierenden Schnittstelle des Subnetzes
- • Es
sei r der erste Router in der Traceroute-Sequenz, der eine Schnittstelle in dem
Subnetz aufweist. Dieser Knoten ist dann der Gateway-Knoten für das Subnetz.
- • Es
sei SN = {r}, so daß Knoten
r zu einem Startknoten wird.
- • Ausgabe:
{r1, r}, {r2, r}, ..., {rN, r}, {r, r}, wobei r1, r2, ..., rN die
Router (außer
r) sind, die eine Schnittstelle in dem Subnetz aufweisen.
-
Wenn
Zugang zu einem der Router in dem Subnetz zur Verfügung steht,
ist eine andere, effizientere Technik die folgende:
- • Einloggen
in einen Router rr mit der Schnittstelle ii in dem Subnetz.
- • Durchführen eines
Traceroute von dem Router rr zu der IPNC-Werkzeug-Hostmaschine M.
- • Auswählen der
letzten Schnittstelle i in der Traceroute-Liste (mit vorangestelltem
ii), die zu dem Subnetz gehört;
es sei i zu dem Router r gehörend.
Dieser ist wieder das Gateway des Subnetzes. (Äquivalent wähle man den letzten Router
r in der Traceroute-Liste (mit vorangestelltem rr), der eine Schnittstelle
i in dem Subnetz aufweist.) Es sei angemerkt, daß es in den meisten Fällen ausreicht,
nur den ersten Sprung von dem Router rr zu untersuchen, um die Schnittstelle
i und den Router r zu bestimmen).
- • Es
sei SN = {r}, wodurch der Knoten r zu einem Startknoten wird.
- • Ausgabe:
{r1, r}, {r2, r}, ..., {rN, r}, {r, r}, wobei r1, r2, ..., rN die
Router (außer
r) sind, die eine Schnittstelle in dem Subnetz aufweisen.
-
In
beiden Fällen
kann der aufwendige Traceroute von dem Router r vermieden werden,
da direkt verbundene Schnittstellen von dem Router r aus erreicht
werden können.
Es sei angemerkt, daß in
beiden Fällen
die Ausgabe r1, r2, ..., r auch gültig ist; d.h. direktes Telnet
zu jedem Router, in r hinein am Ende der Sequenz.