--- format: DocBook title: Anhang: Berechnung des Routingverlaufs einer einfachen IGP-Kopplung zur Veranschaulichung des counting-to-infinity Problems ...
Anhang: Berechnung des Routingverlaufs einer einfachen IGP-Kopplung zur Veranschaulichung des counting-to-infinity Problems Dieses Dokument ist ein Anhang des Dokuments Fußgängerzonenproblem. Im Folgenden wird die Dynamik des Routings in einer IGP-Kopplung als eine Folge von Zustandstabellen veranschaulicht. In diesem Beispiel erfolgt eine Partitionierung der Router { S } und { A B C }, was zum Kreislauf einer von S stammenden Route führt. Wie man beim Vergleich der Zustände T=5 und T=8 sieht, entsteht ein counting-to-infinity Kreislauf, der bei jedem Durchgang die Metrik der Route um 3 erhöht. Notation T=0, T=1, ... Nr. des Routingzyklus. Ein Routingszyklus umfasst den Transport einer Route durch eine IGP-Instanz und ihre Verarbeitung im Router. Das läuft in allen IGPs und Routern parallel ab, sodass zum "Zeitpunkt" T=n+1 im gesamten Diagramm der Folgezustand von T=n erreicht ist. S Quellrouter für den Präfix der betrachteten Route. Der Präfix wird nicht mitnotiert, da er sich nicht ändert. A, B, C Grenzrouter der betrachteten IGP-Kopplung. a, b, c, d IGP-Instanzen der betrachteten IGP-Kopplung. 1, 2, 3, ... Metrikwerte einer einfachen hop count Metrik. Diese Metrik wird global verwendet, d.h. gilt in allen betrachteten IGPs. A(a) <- S:1 Die Routingtabelle für das IGP a im Router A erhält aus dem IGP a eine Route für den betrachteten Präfix mit next hop S und Metrik 1. —————————
B = A:2<C:3
Die zentrale Routingtabelle des Routers B enthält für den betrachteten Präfix eine Route über A mit Metrik 2, sowie eine Route über C mit Metrik 3. Tie-breaker bei gleicher Metrik ist die Router ID. "<" ist das Symbol der so entstehenden totalen Ordnungsrelation auf den Routen der zentralen Tabelle des Routers.
=> A:1 -> b Die Route zum betrachteten Präfix mit der Metrik 1 wird weiterhin vom Router A mit next hop self ins IGP b redistribuiert. => retract A:1 -> b Die Route zum betrachteten Präfix mit der Metrik 1 wird vom Router A aus dem IGP b zurückgezogen. => new B:3 -> b Die Route zum betrachteten Präfix mit der Metrik 1 wird vom Router B mit next hop self ins IGP b exportiert, wohin sie im vorigen Zyklus noch nicht exportiert wurde. ... * Dieser Eintrag wurde im aktuellen Routingzyklus verändert.
Ausgangssituation
(T=0)
A hat die direkte
Route von S
verloren
(T=1)
S
|a
A
b / \ c
B—C
d
S
       a
A
b / \ c
B—C
d
T=0 T=1 T=2 T=3 T=4 T=5 T=6 T=7 T=8 A(a) <- S:1
A(b) <-
A(c) <-
—————————
A = S:1
A(a) <- *
A(b) <-
A(c) <-
—————————
A= *
A(a) <-
A(b) <-
A(c) <-
—————————
A =
A(a) <-
A(b) <- B4 *
A(c) <- C4 *
—————————
A = B:4<C:4 *
A(a) <-
A(b) <- *
A(c) <- *
—————————
A = *
A(a) <-
A(b) <-
A(c) <-
—————————
A =
A(a) <-
A(b) <- B:7 *
A(c) <-
—————————
A = B:7 *
A(a) <-
A(b) <- *
A(c) <-
—————————
A = *
A(a) <-
A(b) <-
A(c) <-
—————————
A =
=> A:1 -> b
=> A:1 -> c
=> retract A:1 -> b *
=> retract A:1 -> c *
=> new A:4 -> c * => retract A:4 -> c * => new A:7 -> c * => retract A:7 -> c *
B(b) <- A:2
B(d) <- C:3
—————————
B = A:2<C:3
B(b) <- A:2
B(d) <- C:3
—————————
B = A:2<C:3
B(b) <- *
B(d) <- C:3
—————————
B = C:3 *
B(b) <-
B(d) <- *
—————————
B =
B(b) <-
B(d) <-
—————————
B =
B(b) <-
B(d) <- C:6 *
—————————
B = C:6 *
B(b) <-
B(d) <- *
—————————
B = *
B(b) <-
B(d) <-
—————————
B =
B(b) <-
B(d) <- C:9 *
—————————
B = C:9 *
=> B:2 -> d => B:2 -> d => retract B:2 -> d *
=> new B:3 -> b
=> retract B:3 -> b => new B:6 -> b => retract B:6 -> b * => new B:9 -> b *
C(c) <- A:2
C(d) <- B:3
—————————
C = A:2<B:3
C(c) <- A:2
C(d) <- B:3
—————————
C = A:2<B:3
C(c) <- *
C(d) <- B:3
—————————
C = B:3 *
C(c) <-
C(d) <- *
—————————
C =
C(c) <-A:5 *
C(d) <- *
—————————
C = A:5
C(c) <- *
C(d) <-
—————————
C = *
C(c) <-
C(d) <-
—————————
C =
C(c) <- A:8 *
C(d) <-
—————————
C = A:8
C(c) <- *
C(d) <-
—————————
C = *
=> C:2 -> d => C:2 -> d => retract C:2 -> d *
=> new C:3 -> c *
=> retract C:3 -> c => new c:5 -> d * => retract C:5 -> d * => new C:8 -> d * => retract C:8 -> d *