3.6 Interior Gateway Routing Protocols - PowerPoint PPT Presentation

About This Presentation
Title:

3.6 Interior Gateway Routing Protocols

Description:

Open Shortest Path First (OSPF) Alternative Ans tze IS-IS IGRP / Enhanced IGRP Alle Protokolle sind verteilt und adaptiv (s. RN) ... – PowerPoint PPT presentation

Number of Views:173
Avg rating:3.0/5.0
Slides: 112
Provided by: unim63
Category:

less

Transcript and Presenter's Notes

Title: 3.6 Interior Gateway Routing Protocols


1
3.6 Interior Gateway Routing Protocols
  • Routing in einer Autonomen Einheit
  • Distance Vector Routing
  • Routing Information Protocol (RIP)
  • Routing Information Protocol Version 2 (RIP2)
  • Link State Routing
  • Open Shortest Path First (OSPF)
  • Alternative Ansätze
  • IS-IS
  • IGRP / Enhanced IGRP
  • Alle Protokolle sind verteilt und adaptiv (s. RN)

2
Distance Vector Routing - Prinzipielles Vorgehen
  • jeder Knoten kennt sich selbst (Distanz 0),
    alle anderen Knoten haben eine unendliche Distanz
  • die eigene Routing Tabelle wird in Form von
    Distanzvektoren auf allen Interfaces ausgegeben
  • periodisch, zufällige Variation der Periode
  • wenn sich die eigene Routing Tabelle geändert hat
    (als Reaktion auf einen empfangenen
    Distanzvektor)
  • für jeden empfangenen Distanzvektor wird
    überprüft ob über den Sender dieses Vektors ein
    Ziel besser erreicht werden kann, wenn ja
  • ersetze den bisherigen Eintrag durch einen neuen,
    bei dem über den Link geroutet wird, über den der
    Vektor empfangen wurde
  • neue DistanzDistanz im Vektor Distanz zum
    Sender des Vektors

3
Distance Vector Routing - Cold Start Beispiel
A
C
B
1
2
3
4
5
D
E
6
From A to
Link
Cost
From D to
Link
Cost
A
local
0
D
local
0
From B to
Link
Cost
From E to
Link
Cost
B
local
0
E
local
0
From C to
Link
Cost
Von A A0 auf links 1 und 3
C
local
0
4
Distance Vector Routing - Cold Start Beispiel
From A to
Link
Cost
From D to
Link
Cost
A
local
0
D
local
0
A
3
1
From B to
Link
Cost
B
local
0
From E to
Link
Cost
E
local
0
A
1
1
From C to
Link
Cost
Von B A1, B0 auf links 1, 4, 2 Von D A1, D0
auf links 3, 6
C
local
0
5
Distance Vector Routing - Cold Start Beispiel
From A to
Link
Cost
From D to
Link
Cost
A
local
0
D
local
0
A
3
1
B
1
1
D
3
1
From E to
Link
Cost
From B to
Link
Cost
E
local
0
B
local
0
B
4
1
A
1
1
A
4
2
D
6
1
From C to
Link
Cost
C
local
0
Von A A0, B1, D1 auf links 1, 3 Von C A2,
B1, C0 auf links 2, 5 Von E A2, B1, D1, E
0 auf links 4, 5, 6
B
2
1
A
2
2
6
Distance Vector Routing - Cold Start Beispiel
From C to
Link
Cost
From A to
Link
Cost
From E to
Link
Cost
C
local
0
A
local
0
E
local
0
B
2
1
B
1
1
B
4
1
A
2
2
D
3
1
A
4
2
E
5
1
D
6
1
From B to
Link
Cost
D
5
2
C
5
1
B
local
0
A
1
1
From D to
Link
Cost
D
1
2
D
local
0
C
2
1
A
3
1
E
4
1
B
3
2
E
6
1
Von B A1, B0, C1, D2, E1 auf links 1, 4,
2 Von C A2, B1, C0, D2, E1 auf links 2,
5 Von D A1, B2, D0, E1 auf links 3, 6 Von E
A2, B1, C1, D1, E 0 auf links 4, 5, 6
7
Distance Vector Routing - Cold Start Beispiel
From C to
Link
Cost
From A to
Link
Cost
From E to
Link
Cost
C
local
0
A
local
0
E
local
0
B
2
1
B
1
1
B
4
1
A
2
2
D
3
1
A
4
2
E
5
1
D
6
1
C
1
2
D
5
2
C
5
1
E
1
2
From B to
Link
Cost
From D to
Link
Cost
B
local
0
D
local
0
A
1
1
A
3
1
D
1
2
B
3
2
C
2
1
E
6
1
E
4
1
C
6
2
8
Distance Vector Routing - Link Ausfall
  • fällt ein Link aus, dann
  • werden alle Einträge, die über diesen Link
    geroutet wurden, auf Entfernung unendlich gesetzt
  • und, da sich die Routing Tabelle geändert hat,
    der neue Distanzvektor auf alle Links geschickt
  • erhält man auf einem Link, über den ein Ziel in
    der eigenen Routingtabelle geroutet wurde, eine
    Distanz zu diesem Ziel, der größer ist als
    bisher, dann muß die Routingtabelle entsprechend
    aktualisiert werden

9
Distance Vektor Routing - Link Ausfall Beispiel
From B to
Link
Cost
From D to
Link
Cost
A
C
B
XXXX
2
B
local
0
D
local
0
A
1
inf
A
3
1
3
4
5
D
1
inf
B
3
2
C
2
1
E
6
1
D
E
6
E
4
1
C
6
2
From C to
Link
Cost
From A to
Link
Cost
From E to
Link
Cost
C
local
0
A
local
0
E
local
0
B
2
1
B
1
inf
B
4
1
A
2
2
D
3
1
A
4
2
E
5
1
D
6
1
C
1
inf
D
5
2
C
5
1
E
1
inf
Von A A0, Binf, Cinf, D1, Einf auf Link 3
Von B Ainf, B0, C1, Dinf, E1 auf Links 2, 4
10
Distance Vektor Routing - Link Ausfall Beispiel
From B to
Link
Cost
From D to
Link
Cost
From A to
Link
Cost
B
local
0
D
local
0
A
local
0
A
1
inf
A
3
1
B
1
inf
D
1
inf
B
3
inf
D
3
1
C
2
1
E
6
1
C
1
inf
E
4
1
E
1
inf
C
6
2
From C to
Link
Cost
From E to
Link
Cost
C
local
0
E
local
0
Von C Ainf, B1, C0, D2, E1 auf Link 2, 5
Von D A1, Binf, C2, D0, E1 auf Links 3,
6 Von E Ainf, B1, C1, D1, E0 auf Links 4,
5, 6
B
2
1
B
4
1
A
2
inf
A
4
inf
E
5
1
D
6
1
D
5
2
C
5
1
11
Distance Vektor Routing - Link Ausfall Beispiel
From B to
Link
Cost
From D to
Link
Cost
From A to
Link
Cost
B
local
0
D
local
0
A
local
0
A
1
inf
A
3
1
B
1
inf
D
4
2
B
6
2
D
3
1
C
2
1
E
6
1
C
3
3
E
4
1
E
3
2
C
6
2
From C to
Link
Cost
From E to
Link
Cost
Von A A0, Binf, C3, D1, E2 auf Link 3 Von
B Ainf, B0, C1, D2, E1 auf Link 2, 4 Von
D A3, B2, C2, D0, E1 auf Links 3, 6 Von E
A2, B1, C1, D1, E0 auf Links 4, 5, 6
C
local
0
E
local
0
B
2
1
B
4
1
A
2
inf
A
6
2
E
5
1
D
6
1
D
5
2
C
5
1
12
Distance Vektor Routing - Link Ausfall Beispiel
From B to
Link
Cost
From D to
Link
Cost
From A to
Link
Cost
B
local
0
D
local
0
A
local
0
A
4
3
A
3
1
B
3
3
D
4
2
B
6
2
D
3
1
C
2
1
E
6
1
C
3
3
E
4
1
E
3
2
C
6
2
From C to
Link
Cost
From E to
Link
Cost
C
local
0
E
local
0
B
2
1
B
4
1
A
5
3
A
6
2
E
5
1
D
6
1
D
5
2
C
5
1
13
Distance Vector Routing - Counting to Infinity
From D to
Link
Cost
From A to
Link
Cost
A
C
B
XXXX
2
D
local
0
A
local
0
A
3
1
B
3
3
3
4
5
B
6
inf
D
3
1
D
E
XXXX
E
6
inf
C
3
3
E
3
2
C
6
inf
Wenn nun einer der von A periodisch versandten
Distanzvektoren bei D ankommt, bevor D den neuen
Vektor an A schickt kommt es zu Counting to
Infinity.
Von A A0, B3, C3, D1, E2 auf Link 3
14
Distance Vector Routing - Counting to Infinity
From D to
Link
Cost
From A to
Link
Cost
D
local
0
A
local
0
Von B A1, B4, C4, D0, E3 auf Link 3
A
3
1
B
3
3
B
3
4
D
3
1
E
3
3
C
3
3
E
3
2
C
3
4
From D to
Link
Cost
From A to
Link
Cost
D
local
0
A
local
0
Von B A1, B5, C5, D1, E4 auf Link 3
A
3
1
B
3
5
B
3
4
D
3
1
E
3
3
C
3
5
E
3
4
C
3
4
15
Counting to Infinity - Einfache Lösung
  • man definiert eine Zahl als unendlich
  • diese Zahl muß größer sein, als die größte
    mögliche Distanz zwischen zwei Knoten
  • wird diese Zahl erreicht, dann wird der Eintrag
    in der Routing Tabelle auf unendlich gesetzt
  • Probleme
  • dies dauert entweder sehr lange (wenn die Zahl
    groß ist),
  • oder die Größe des Netzes/Auflösung der Distanzen
    wird beschränkt (wenn die Zahl klein ist)
  • während counting to infinity stattfindet werden
    Pakete im Kreis geroutet

16
Counting to Infinity - Lösung durch Split
Horizon
  • Idee wenn Knoten A Pakete zu einem Ziel X über
    Knoten B routet, dann macht es keinen Sinn für B
    Pakete nach X über A zu routen!
  • 2 Vorgehensweisen
  • Distanzvektoren werden individuell für jeden Link
    berechnet, dabei werden alle Ziele Ausgelassen,
    zu denen über diesen Link geroutet wird
  • Distanzvektoren werden individuell für jeden Link
    berechnet, dabei wird für alle Ziele, zu denen
    über diesen Link geroutet wird, die Distanz auf
    unendlich gesetzt (Poisonous Reverse)

17
Distance Vector Routing - Split Horizon
From D to
Link
Cost
From A to
Link
Cost
A
C
B
XXXX
2
D
local
0
A
local
0
A
3
1
B
3
3
3
4
5
B
6
inf
D
3
1
D
E
XXXX
E
6
inf
C
3
3
E
3
2
C
6
inf
Auch wenn nun einer der von A periodisch
versandten Distanzvektoren bei D ankommt, bevor
D den neuen Vektor an A schickt kommt es zu
keinem Problem
Von A A0, Binf, Cinf, Dinf, Einf auf Link 3
(poisonous reverse)
18
Distance Vector Routing - Problem bei Split
Horizon
A
C
B
XXXX
2
From B to
Link
Cost
B
local
0
3
4
A
4
3
5
D
4
2
From E to
Link
Cost
D
E
XXXX
C
2
1
E
local
0
E
4
1
B
4
1
A
6
inf
Von E Ainf, Binf, C1, Dinf, E0 auf Link 4
(poisonous reverse) Von E Ainf, B1, Cinf,
Dinf, E0 auf Link 5 (poisonous reverse) Der
Distanzvektor auf Link 5 geht verloren und kommt
nicht bei C an.
From C to
Link
Cost
D
6
inf
C
local
0
C
5
1
B
2
1
A
5
3
E
5
1
D
5
2
19
Distance Vector Routing - Problem bei Split
Horizon
A
C
B
XXXX
2
From B to
Link
Cost
B
local
0
3
4
A
4
inf
5
D
4
inf
From E to
Link
Cost
D
E
XXXX
C
2
1
E
local
0
E
4
1
B
4
1
A
6
inf
Nun sei für C die Zeit gekommen, daß der
Distanzvektor gesendet werden muß (periodische
Übertragung). Von C A3, Binf, C0, D2, E1
auf Link 2 (poisonous reverse) Von C Ainf,
B1, C0, Dinf, Einf auf Link 5 (poisonous
reverse)
From C to
Link
Cost
D
6
inf
C
local
0
C
5
1
B
2
1
A
5
3
E
5
1
D
5
2
20
Distance Vector Routing - Split Horizon Problem
A
C
B
XXXX
2
From B to
Link
Cost
B
local
0
3
4
A
2
4
5
D
2
3
From E to
Link
Cost
D
E
XXXX
C
2
1
E
local
0
E
4
1
B
4
1
Von B A4, B0, C1, D3, Einf auf Link 4
(poisonous reverse) Von B .... uninteressant auf
Link 2 (poisonous reverse)
A
6
inf
From C to
Link
Cost
D
6
inf
C
local
0
C
5
1
B
2
1
A
5
3
E
5
1
D
5
2
21
Distance Vector Routing - Split Horizon Problem
A
C
B
XXXX
2
From B to
Link
Cost
B
local
0
3
4
A
2
4
5
D
2
3
From E to
Link
Cost
D
E
XXXX
C
2
1
E
local
0
E
4
1
B
4
1
Jetzt existiert ein 3er Kreis, in dem es zu
count to infinity kommt!
A
4
5
From C to
Link
Cost
D
4
4
C
local
0
C
5
1
B
2
1
A
5
3
E
5
1
D
5
2
22
Distance Vector Routing - Triggered Updates
  • Wann werden Distanz Vektoren gesendet?
  • periodisch (zufällige Variation der Periode)
  • nach Änderung der Routingtabelle (triggered
    update)
  • Wenn die triggered updates schnell versandt
    werden, dann kann es zu counting to infinity nur
    durch Paketverlust kommen!

23
Distance Vector Routing - Löschen von Einträgen
in der Routingtabelle
  • wenn ein Eintrag in einer Routingtabelle nicht
    durch periodisch versandte Distanzvektoren
    bestätigt wird, wird dieser Eintrag nach einer
    gewissen Zeit gelöscht
  • dies verhindert das nicht länger gültige Einträge
    in der Routingtabelle stehen - z.B. wenn der
    Ausfall eines Links nicht erkannt wurde
  • diese Zeit ist sehr viel größer als die Periode
    für das Versenden der Distanzvektoren
  • daher nur bei Verlust mehrerer Distanzvektoren
    kann dies zum fälschlichen Löschen eines
    Eintrages führen

24
Routing Information Protocol (RIP) Version 1
  • RFC1058, Routing Information Protocol,C.L.
    Hedrick, Jun-01-1988, Status Historic
  • Implementierungen routed, gated
  • Adressen die in RIP verwendet werden sind 32 bit
    lange IPv4 Adressen
  • Netzwerkadresse Subnet ID und Host ID sind 0
  • Subnetzadresse Host ID ist 0. Nur erkennbar
    innerhalb des Netzwerkes zu dem das Subnetz
    gehört, da nur dort die Informationen über
    Subnetzaufteilung vorhanden ist. Außerhalb des
    Netzes werden alle Subnetze zu dem dazugehörigen
    Gesamtnetz zusammengefaßt.
  • Hostadressen Host ID nicht 0. Optional, muß
    nicht von jedem Router unterstützt werden.

25
RIP Version 1
  • verwendete Metrik
  • jeder Knoten hat von jedem anderen Knoten den
    Abstand 1
  • 16 ist unendlich
  • RIP verwendet UDP (port 520) um die
    Distanzvektoren zu übertragen
  • RIP verwendet
  • split horizon/poisonous reverse
  • triggered updates (mit zufälliger Verzögerung von
    1-5 sec.)
  • periodische Übertragung von Distanzvektoren alle
    30 sec.
  • timeout für Routingtabelleneinträge von 180 sec.

26
RIP Version 1 - Nachrichtenformat
IP UDP header (28 bytes)
command (1, 2)
must be zero
version (1)
must be zero
address family identifier (2)
IP address
must be zero
must be zero
metric
weitere Einträge .....
27
RIP Version 1 - Nachrichtenformat
  • command
  • 1request, wird von einem Router verwendet der
    gerade neu gestartet wurde, um von seinen
    Nachbarn die Distanzvektoren nachzufragen
  • 2reply, wird alle 30 Sekunden oder als triggered
    update oder als Antwort auf einen request
    verschickt
  • version
  • 1
  • address family identifier
  • 2 IP

28
RIP Version 2
  • RFC2453, RIP Version 2, G. Malkin, November 1998
  • abwärtskompatibel zu RIP Version 1
  • sehr umstritten, da die Experten der Meinung
    waren/sind daß Distance Vektor Routing
    Prinzipiell nicht gut ist (counting to
    infinity!!!)
  • wichtigste Erweiterungen
  • subnet routing
  • authentication

29
RIP Version 2 - Nachrichtenformat
IP UDP header (28 bytes)
command (1, 2)
routing domain
version (2)
route tag
address family identifier (2,0xFFFF)
IP adress
subnet mask
next hop
metric
weitere Einträge .....
30
RIP Version 2 - Nachrichtenformat
  • command 1request, 2reply
  • version 2
  • address family identifier
  • 2 IP
  • 0xFFFF Authentication
  • routing domain route tag
  • Unterstützung mehrerer Autonomer Einheiten auf
    dem selben LAN
  • subnet mask
  • bessere Unterstützung von subnets
  • next hop
  • wird in Zusammenspiel mit exterior gateway
    protocols (EGP, BGP) verwendet (Erklärung folgt
    bei Vorstellung dieser Protokolle)

31
RIP Version 2 - Routing per Subnet
  • da die subnet mask bei RIP 2 mitgeschickt wird,
    kann man
  • auch außerhalb eines Netzes für dessen
    verschieden Subnetze unterschiedliche Wege wählen
  • Subnetzmasken innerhalb eines Netzes verschieden
    breit wählen
  • außerdem unterstützt dies classless interdomain
    routing CIDR (besprechen wir später!)

32
RIP Version 2 - Authentication
  • in RIP Version 1 kann jeder die Routingtabellen
    durch das Verschicken von Distanzvektoren
    beliebig manipulieren
  • in RIP Version 2 kann das erste Element eines
    Vektors Authentifikationsinformationen enthalten
  • 16 byte
  • Paßwort, oder
  • digitale Unterschrift über das gesamte Paket
  • ist nicht wirklich sicher, da 16 byte zu wenig
    sind!

33
RIP Version 2 - Authentication
IP UDP header (28 bytes)
command (1, 2)
routing domain
version (2)
authentication type
address family identifier (0xFFFF)
authentication (16 bytes)
  • authentication type
  • 2 Paßwort
  • andere Werte sind spezifiziert, z.B. MD-5 Hash
  • authentication
  • Daten, ja nach authentication type (z.B. Paßwort)

34
Distance Vector Routing / RIP- Zusammenfassung
  • sehr einfach zu implementieren
  • grobe Fehler sind unwahrscheinlich
  • ABER bei Veränderungen
  • stabilisiert sich das Netz unter Umständen nur
    sehr langsam (counting to infinity)
  • während dieser Zeit gibt es Schleifen
  • RIP wird zunehmend von anderen Routingverfahren
    verdrängt die nicht auf Distance Vector Routing
    basieren, obwohl es auch neuere Distance Vector
    Routing Ansätze gibt, bei denen counting to
    infinity komplett vermieden wird. Diese sind
    allerdings nicht mit RIP kompatibel.

35
Link State Routing - Generelle Idee
  • jeder Knoten besitzt eine vollständige Karte des
    Netzwerkes in Form einer Datenbank (dies ist
    NICHT! die Routingtabelle)
  • jeder Knoten berechnet anhand dieser Karte die
    Einträge in die Routing Tabelle
  • bei Veränderungen der Topologie werden die
    relevanten Informationen im Netz geflutet

36
Link State Routing - Ausgangssituation
A
C
B
1
2
3
4
5
D
E
6
Karte/Datenbank
From
Link
Cost
From
From
Link
Cost
From
Number
Number
A
1
1
B
C
5
1
E
1
1
A
3
1
D
D
3
1
A
1
1
B
1
1
A
D
6
1
E
1
1
B
2
1
C
E
4
1
B
1
1
B
4
1
E
E
5
1
C
1
1
C
2
1
B
E
6
1
D
1
1
37
Link State Routing - Link Ausfall
A
C
B
XXXX
2
3
4
5
D
E
6
From A, to B, link 1 distance infinite, number
2 From B, to A, link 1 distance infinite,
number 2
38
Link State Routing - Nachrichtenbehandlung
  • Empfange Nachricht. Schlage den entsprechenden
    Eintrag in der Datenbank nach.
  • Wenn kein Eintrag existiert, füge die Nachricht
    als neuen Eintrag in die Datenbank ein, leite die
    Nachricht an alle Interfaces weiter, außer dem
    Interface auf dem die Nachricht empfangen wurde.
  • Wenn ein Eintrag mit niedrigerer Nummer vorhanden
    ist, aktualisiere den Eintrag und leite die
    Nachricht weiter.
  • Wenn ein Eintrag mit höherer Nummer vorhanden
    ist, schicke diesen Eintrag über das Interface,
    auf dem die veraltete Nachricht erhalten wurde
    zurück.
  • Wenn ein Eintrag mit derselben Nummer vorhanden
    ist, ignoriere die Nachricht.

39
Link State Routing - Link Ausfall
Karte/Datenbank nachdem die Informationen über
den Linkausfall von A und B geflutet wurden
From
Link
Cost
From
From
Link
Cost
From
Number
Number
A
1
inf
B
C
5
1
E
2
1
A
3
1
D
D
3
1
A
1
1
B
1
inf
A
D
6
1
E
2
1
B
2
1
C
E
4
1
B
1
1
B
4
1
E
E
5
1
C
1
1
C
2
1
B
E
6
1
D
1
1
40
Link State Routing - Bringing Up Adjacencies
A
C
B
XXXX
2
3
4
5
D
E
XXXX
From D, to E, link 6 distance infinite, number
2 From E, to D, link 6 distance infinite,
number 2
Im Folgenden werden die Topologieinformationen
für die beiden Partitionen unterschiedlich sein!
Wir wollen verstehen, wie sich diese
Unterschiede wieder angleichen, wenn die
Connectivität wieder hergestellt wird.
Dieser Vorgang heißt Bringing Up Adjacencies.
41
Link State Routing - Bringing Up Adjacencies
From
Link
Cost
From
Number
From
Link
Cost
From
Number
A
1
inf
B
2
A
1
inf
B
2
A
3
1
D
1
A
3
1
D
1
B
1
inf
A
2
B
1
inf
A
2
B
2
1
C
1
B
2
1
C
1
B
4
1
E
1
B
4
1
E
1
C
2
1
B
1
C
2
1
B
1
C
5
1
E
1
C
5
1
E
1
D
3
1
A
1
D
3
1
A
1
D
6
inf
E
2
D
6
1
E
1
E
4
1
B
1
E
4
1
B
1
E
5
1
C
1
E
5
1
C
1
E
6
1
D
1
E
6
inf
D
2
Datenbank von A und D
Datenbank von B, C und E
42
Link State Routing - Bringing Up Adjacencies
A
C
B
XXXX
XXXX
3
4
5
D
E
XXXX
From B, to C, link 2 distance infinite, number
2 From C, to B, link 2 distance infinite,
number 2
Diese Informationen werden nur in einer Partition
geflutet (die andere ist nicht zu erreichen)!
43
Link State Routing - Bringing Up Adjacencies
From
Link
Cost
From
Number
From
Link
Cost
From
Number
A
1
inf
B
2
A
1
inf
B
2
A
3
1
D
1
A
3
1
D
1
B
1
inf
A
2
B
1
inf
A
2
B
2
1
C
1
B
2
inf
C
2
B
4
1
E
1
B
4
1
E
1
C
2
1
B
1
C
2
inf
B
2
C
5
1
E
1
C
5
1
E
1
D
3
1
A
1
D
3
1
A
1
D
6
inf
E
2
D
6
1
E
1
E
4
1
B
1
E
4
1
B
1
E
5
1
C
1
E
5
1
C
1
E
6
1
D
1
E
6
inf
D
2
Datenbank von A und D
Datenbank von B, C und E
44
Link State Routing - Bringing Up Adjacencies
A
C
B
XXXX
1
3
4
5
D
E
XXXX
From A, to B, link 1 distance 1, number 3 From
B, to A, link 1 distance 1, number 3
Jetzt existiert wieder ein einziges
unpartitioniertes Netz. Allerdings
mit inkonsistenten Datenbanken.
45
Link State Routing - Bringing Up Adjacencies
From
Link
Cost
From
Number
From
Link
Cost
From
Number
A
1
1
B
3
A
1
1
B
3
A
3
1
D
1
A
3
1
D
1
B
1
1
A
3
B
1
1
A
3
B
2
1
C
1
B
2
inf
C
2
B
4
1
E
1
B
4
1
E
1
C
2
1
B
1
C
2
inf
B
2
C
5
1
E
1
C
5
1
E
1
D
3
1
A
1
D
3
1
A
1
D
6
inf
E
2
D
6
1
E
1
E
4
1
B
1
E
4
1
B
1
E
5
1
C
1
E
5
1
C
1
E
6
1
D
1
E
6
inf
D
2
Datenbank von A und D
Datenbank von B, C und E
46
Link State Routing -Bringing Up Adjacencies
  • sobald ein Link wieder hochfährt
  • database description packets werden ausgetausch,
    diese identifizieren die Einträge in der
    Datenbank und die jeweilige Nummer z.B. From A,
    to B, Number 3
  • der Austausch findet zwischen den beiden Knoten
    statt, zwischen denen die Verbindung wieder
    hergestellt wurde
  • diese Beschreibung wird vom Empfänger überprüft,
    sind Einträge vorhanden, die eine höhere Nummer
    haben, als in der eigenen Datenbank, dann werden
    diese Einträge mit Hilfe von link state request
    packets angefordert
  • dieses Vorgehen minimiert das Volumen der Daten,
    die übertragen werden müssen

47
Link State Routing - Sicherung der Updates
  • Nachrichten werden beim Fluten bestätigt
  • Jeder Datenbankeintrag wird durch einen Timer
    überwacht, der Eintrag wird gelöscht, wenn der
    Timer abläuft, bevor der Eintrag durch
    periodische Übertragung bestätigt wird
  • Einträge werden mit einer Checksumme gegen
    Änderungen geschützt
  • Nachrichten können beim Fluten authentifiziert
    werden (Paßwort, Signatur)

48
Link State Routing - Lokale Berechnung der
Routing Tabelle
  • Mit Hilfe des von Dijkstra entwickelten shortest
    Path first Algorithmus
  • Initialisiere E mit dem Sender S, und R mit allen
    anderen Knoten. Initialisiere O mit allen Pfaden,
    die von S einen Schritt weit entfernt sind.
    Sortiere diese Pfade nach ihren Kosten.
  • Wenn O leer ist, oder alle Pfade in O unendliche
    Kosten haben, dann markiere alle Knoten in R als
    nicht erreichbar. Ende.
  • Sei P der kürzeste Pfad in O, entferne P aus O.
    Sei V der letzte Knoten in Pfad P. Wenn V in E
    vorhanden ist dann weiter mit Schritt 2.
    Ansonsten ist P der kürzeste Pfad von S nach V.
  • Konstruiere neue Pfade, die P als Basis haben und
    die um die Pfade die von V einen Schritt weit
    wegführen. Füge diese in O in sortierter Weise
    ein. Gehe zu Schritt 2.

49
Link State Routing - Lokale Berechnung der
Routing Tabelle - Beispiel
Achtung! Nun repräsentieren die Zahlen die
Distanz ( Verzögerung, Kosten, etc.) zwischen
zwei Knoten.
A
C
B
1
5
2
2
1
D
E
2
EA, B, D, E OA-D-E-4, A-B-E-C-4,
A-B-C-6 Kürzeste Pfade A-B-1, A-D-2, A-B-E-3
EA OA-B-1, A-D-2
Achtung 2 Schritte!!! EA, B, C, D,
E OA-B-C-6 Kürzeste Pfade A-B-1, A-D-2,
A-B-E-3, A-B-E-C-4
EA, B OA-D-2, A-B-E-3, A-B-C-6 Kürzeste
Pfade A-B-1
EA, B, D OA-B-E-3, A-D-E-4,
A-B-C-6 Kürzeste Pfade A-B-1, A-D-2
Dann noch 1 weiterer Schritt bis zum Ende!
50
Link State Routing - Vorteile
  • schnelle Konvergenz ohne Schleifen
  • mehrere Metriken können gleichzeitig verwendet
    werden
  • z.B. für IP Pakete mit unterschiedlichem Inhalt
    im Type of Service Feld
  • für ein und dasselbe Paket muß dann aber dieselbe
    Metrik für das Routing verwendet werden

51
Link State Routing - Vorteile
  • es muß nicht immer über den kürzesten Pfad
    geroutet werden
  • man kann Pakete alternierend über mehrere
    annähernd gleich gute Pfade schicken
  • es läßt sich mathematisch zeigen, daß dies den
    Gesamtdurchsatz des Netzes deutlich verbessert
  • dabei besteht aber die Gefahr, daß partielle
    Schleifen entstehen
  • dies kann man verhindern indem Pakete nur zu
    Knoten weitergeleitet werden dürfen, die näher am
    Ziel sind als der Knoten an dem sie sich momentan
    befinden

52
Open Shortest Path First (OSPF)
  • Open Shortest Path First ist die Spezifikation
    der IETF für Link State Routing
  • J. Moy, OSPF Version 2, RFC-1247, 1991
  • Open, da es in offener Weise von der IETF
    standardisiert wurde
  • Shortest Path First, da der gleichnamige Dijkstra
    Algorithmus verwendet wird
  • 3 Nachrichtentypen werden in OSPF definiert
  • hello - erkennen ob Nachbarn da sind
  • exchange - Bringing Up Adjancencies
  • flooding - update der Netzwerkkarte bei laufendem
    Betrieb
  • OSPF wird direkt über IP verwendet (Protokoll
    type 89)

53
OSPF - Gemeinsamer Header
IP header (20 bytes) - protocol type 89
version (2)
packet length
type (1-5)
router ID
area ID
autype
checksum
authentication
authentication
type specific header
54
OSPF - Gemeinsamer Header
  • version 2
  • type OSPF Nachrichtentype 1-5
  • packet length Anzahl der bytes im Paket
  • router ID IP Adresse des Routers (eine wird
    ausgewählt um diesen zu identifizieren)
  • area ID identifiziert ein Gebiet (in dieser
    Vorlesung nicht besprochen!)
  • checksum über das ganze Paket (ohne IP header),
    wird wie für den IP header berechnet
  • autype welche Art der Authentifizierung wird
    gewählt (0keine, 1 Paßwort, andere)
  • authentication Paßwort

55
OSPF - Hello Protocol
OSPF packet header, type1 (hello)
network mask
options
hello interval
priority
dead interval
designated router
backup designated router
neighbor
more neighbors ...
56
OSPF - Hello Protocol
  • network mask des Subnetzes, auf welches das
    hello Packet geschickt wurde
  • hello interval in diesem Intervall wird die
    Hello Nachricht wiederholt
  • dead interval wenn keine Nachricht von einem
    Nachbar Router in dieser Zeit empfangen wurde,
    dann gilt die Verbindung als gestört, der Eintrag
    wird entfernt
  • neighbor in dieser Liste stehen alle Nachbarn,
    von denen ein hello in den letzten dead interval
    Sekunden empfangen wurde
  • alle anderen Felder hier nicht behandelt (s.
    Huitema Buch oder RFC 1247)

57
OSPF - Hello Protocol
  • für OSPF gilt eine Verbindung zwischen zwei
    Routern als hergestellt, wenn sie gegenseitig
    ihre Hello Nachrichten empfangen können
  • dies erkennt man daran, daß man eine Hello
    Nachricht von einem Nachbarn empfängt, in der man
    selbst in der neighbor Liste eingetragen ist
  • der Zusammenbruch von Verbindungen kann durch
    timeout (dead interval) oder durch Signale von
    unteren Netzwerkschichten erkannt werden

58
OSPF - Exchange Protocol
OSPF packet header, type2 (database
descritpion/dd)
options
must be 0
IMMS
must be 0
DD sequence number
link state type
link state ID
advertising router
link state sequence number
link state checksum
link state age
more record descriptions
59
OSPF - Exchange Protocol
  • IMMS 3 Bits (initialize, more, master-slave) die
    zur Signalisierung verwendet werde (s. unten).
  • DD sequence number Sequenznummer für dd Pakete.
  • Link State Type - Link State Age Zusammenfassung
    eines Eintrages in der Datenbank. Kommt für jeden
    Eintrag in der Datenbank einmal vor.
  • Achtung! Bei OSPF beinhaltet ein Datenbankeintrag
    alle Wege, die von einem Router berichtet werden!

60
OSPF - Exchange Protocol - Funktionsweise
  • Wenn ein neuer Link hochfährt
  • Sende ein leeres dd Paket mit IMMS 1 1 1 und
    einer initialen DD sequence number.
  • Warte auf Antwort, wenn Timeout, dann wiederhole
    die Übertragung.
  • Wenn man ein dd Paket bekommt
  • Falls man selbst keines geschickt hat wird man
    slave und antwortet mit einem dd Paket mit IMMS
    1 1 0 und der gleichen Sequenznummer, sowie einer
    Zusammenfassung der eigenen Einträge in der
    Datenbank soweit diese in ein einziges Paket
    passt.
  • Wenn man eines geschickt hat, dann haben sich
    beide Pakete im Netz überkreuzt (oder es ist
    eines verloren gegangen). Dann wird derjenige
    slave, der die niedrigere IP Adresse hat. Dieser
    antwortet entsprechen.

61
OSPF - Exchange Protocol - Funktionsweise
  • nachdem der Master bestimmt ist, sendet dieser
    eine Zusammenfassung aller seiner
    Datenbankeinträge
  • IMMS 0 1 1, solange weitere Pakete folgen
  • IMMS 0 0 1, für das letzte Paket
  • jedes dieser Pakete wird vom slave bestätigt mit
    einem leeren dd Paket, dessen Sequenznummer
    gleich der empfangenen Sequenznummer ist
  • wenn keine Bestätigung eintrifft wiederholt der
    master die Übertragung des Paketes
  • wenn der Master mit der Übertragung fertig ist
    setzt er im letzten Paket IMMS auf 0 0 1,
    daraufhin sendet der slave die Beschreibung
    seiner Einträge, wenn der slave ein Paket mit
    IMMS 0 0 0 sendet ist diese Phase beendet

62
OSPF - Exchange Protocol - Funktionsweise
OSPF packet header, type3 (request/rq)
link state type
link state ID
advertising router
more record requests
  • nun wissen beide Teilnehmer welche Einträge in
    derDatenbank beim anderen Teilnehmer aktuelle
    sind, diese werden nachgefragt
  • geantwortet wird wie beim OSPF - Flooding
    Protocol, das wir gleich besprechen

63
OSPF - Flooding Protocol
OSPF packet header, type4 (link state update)
number of advertisements
link state age
options
link state type (1)
link state ID
advertising router
link state sequence number
link state checksum
link state length
zero or more link descriptions
64
OSPF - Flooding Protocol
  • in jeder link state update Nachricht können
    mehrere link state advertisements enthalten sein
  • link state age - link state sequence number
    Identifikation eines Eintrages in der Datenbank
  • link state checksum wie für IP berechnet, aber
    über das ganze OSPF Paket
  • link state length Gesamtlänge diese Eintrages
  • link descriptions Beschreibung der links, die
    von dem advertising router ausgehen. Dies
    beinhaltet Metriken, die für jeden IP type of
    service getrennt angegeben werden können.

65
OSPF - Flooding Protocol
OSPF packet header, type5 (link state
acknowledgement)
link state age
options
link state type (1)
link state ID
advertising router
link state sequence number
link state checksum
link state length
more acknowledgement
66
Link State Routing/OSPF -Zusammenfassung
  • relative komplex
  • OSPF RFC hat 186 Seiten
  • OSPF braucht 5 Nachrichtentypen und baut auf
    zuverlässige Nachrichtenübertragung durch
    acknowledgements
  • ABER OSPF ist sehr viel effizienter als RIP
  • da routing wichtig ist wird die zusätzliche
    Komplexität für eine Steigerung der Effizienz in
    Kauf genommen, OSPF setzt sich zunehmend gegen
    RIP durch

67
Alternative Ansätze - IS-IS
  • Intra-Domain Intermediate System to Intermediate
    System Routeing Protocol
  • ISO-OSI Vorschlag Routing
  • basiert auf Link State Technologie, wie OSPF

68
Alternative Ansätze - IGRP
  • Interior Gateway Routing Protocol
  • proprietäres Protokoll der Firma cisco
  • verwendet distance vector Technik
  • verbessert RIP in einigen entscheidenden
    Gebieten
  • composite metrics
  • conservative protection against loops
  • multipath routing
  • einige der Verbesserungen sind von cisco
    patentiert

69
Alternative Ansätze - EIGRP
  • Enhanced Interior Gateway Routing Protocol
  • proprietäres Protokoll der Firma cisco
  • verwendet distance vector Technik
  • verbessert IGRP es ist loop-free
  • wird von einigen Experten als die bessere Lösung
    im Vergleich mit OSPF betrachtet, da die
    Komplexität niedriger ist,
  • aber ein propritäres Protokoll mit patentierten
    Bestandteilen ist problematisch!

70
3.7 Exterior Gateway Routing Protocols
  • ursprünglich war das Internet eine einzige
    Einheit, d.h. ein einziges homogenes routing
    Protokoll wurde für das gesamte Internet
    verwendet (Gateway to Gateway Protocol - GGP)
  • große routing Tabellen
  • hoher Kommunikationsoverhead
  • Interoperabilität zwischen Routern verschiedener
    Hersteller war schwierig
  • Umstellung auf neue Routingprotokolle war nahezu
    unmöglich
  • Lösung das Netzwerk wird in Autonome Einheiten
    eingeteilt, in jeder dieser Einheiten kann
    individuell geroutet werden
  • Routing zwischen Autonomen Einheiten über
    exterior gateway routing protocols

71
Autonomous System
  • ASA set of routers and networks under the same
    administration
  • technische Definition alle Bestandteile eines AS
    müssen intern miteinander verbunden sein
  • jedem AS wird eine 2 Byte lange Autonomous System
    ID zugewiesen
  • i.d.R. sollte in einem AS genau ein Interior
    Gateway Routing Protocol (z.B. OSPF) verwendet
    werden
  • zwischen AS wird ein Exterior Gateway Protocol
    verwendet
  • Exterior Gateway Protocol (EGP) - inzwischen
    veraltet, da es von einer Internetarchitektur
    ausgeht, bei der die AS über EIN backbone Netz
    miteinander verbunden sind
  • Border Gateway Protocol (BGP) - wird zur Zeit
    verwendet

72
Autonomous System Definition im BGP RFC
  • The classic definition of an Autonomous System is
    a set of routers under a single technical
    administration, using an interior gateway
    protocol and common metrics to route packets
    within the AS and using an exterior gateway
    protocol to route packets to other AS's.
  • Since this classic definition was developed, it
    has become common for a single AS to use several
    interior gateway protocols and sometimes several
    sets of metrics within an AS. The use of the term
    Autonomous System here stresses the fact that,
    even when multiple IGPs and metrics are used, the
    administration of an AS appears to other AS's to
    have a single coherent interior routing plan and
    presents a consistent picture of which
    destinations are reachable through it.

73
Warum eigenständige Exterior Routing Protokolle
und nicht RIP oder OSPF?
  • Die interior gateway protocols (IGPs) sind für
    eine kleine Anzahl an Routern gedacht (z.B. OSPF
    lt200) exterior gateway protocols müssen viele
    tausend AS miteinander verknüpfen.
  • Die IGPs gehen von einem homogenen Umfeld aus,
    bei dem ein und dasselbe Paket nach einer
    einzigen Politik geroutet wird (minimiere
    Verzögerung/Kosten, etc.) dies ist nicht mehr der
    Fall, wenn ein Paket die Grenzen eines AS
    verläßt. Hier kann jeder Router eines neue AS
    verschiedene Prioritäten setzen, wenn man dies
    nicht berücksichtigt kommt es zu Routing
    Schleifen und anderen Anomalien!

74
Border Gateway Protocol Version 3 (BGP-3)
  • K. Lougheed, Y. Rekhter. Border Gateway Protocol
    3 (BGP-3). RFC 1267. 1991.
  • wichtiges Ziel in BGP-3 ist es, daß jedes AS frei
    Politiken entscheiden kann, wie der Verkehr aus
    dem eigenen AS und wie Verkehr aus anderen AS
    (transit Verkehr) weitergeleitet wird
  • ein AS kann sich weigern Verkehr, der nicht aus
    dem eigenen AS stammt oder in diesem AS
    terminiert, weiterzuleiten
  • ein AS kann Verkehr für einige spezifische AS
    durchleiten
  • ein AS kann aus diesem AS kommenden Verkehr mit
    Präferenz über bestimmte AS weiterleiten oder
    explizit über bestimmte AS nicht weiterleiten
  • etc.
  • dies ist mit IGPs nicht möglich!

75
BGP-3 Designentscheidungen
  • BGP-3 benutzt ein zuverlässiges
    Transportprotokoll (TCP) für die Kommunikation
    zwischen Routern
  • dies reduziert die Komplexität des Protokolls,
  • erhöht aber gleichzeitig die Abhängigkeit (TCP
    ist Voraussetzung für die Verwendung von BGP-3)
  • BGP-3 verwendet Path Vectors
  • ein Path-Vector ist ähnlich zu einem Distance
    Vector beschreibt jedoch den kompletten Weg zum
    Ziel AS, d.h. jeder Router auf diesem Weg trägt
    sich in jedes Element des Vektors ein
  • dies ermöglicht Schleifen-Freiheit und
  • verschiedene routing Politiken

76
Path Vectors - Beispiel
R11
136.3.0.0
140.1.0.0 133.10.0.0
R41
136.3.0.0
R12
R33
R31
R21
R32
R51
R22
149.10.0.0
155.20.0.0
R52
Beispiele für Path Vectors AS3 - AS5
(155.20.0.0) kann von R31 zu R11 angekündigt
werden, AS2-AS5-AS4 (140.1.0.0/133.10.0.0) kann
von R21 angekündigt werden, je nach Politik kann
AS1 auch AS3-AS4 (140.1.0.0/133.10.0.0) wählen,
etc.
77
BGP-3 Generelle Funktionsweise
  • zunächst wird zwischen zwei Routern auf TCP Ebene
    eine Verbindung hergestellt
  • dann erfolgt ein Nachrichtenaustausch um eine BGP
    Verbindung herzustellen
  • dann werden die kompletten BGP routing Tabellen
    als Path Vectors ausgetauscht
  • diese beinhaltet nur jeweils den besten Weg den
    ein AS zu einem Ziel kennt
  • dieser beste Weg wird durch die lokale Politik
    eines AS bestimmt
  • ein AS merkt sich alle Wege, die von den Nachbarn
    für ein Ziel angekündigt wurden, nimmt aber nur
    den besten in die Routing Tabelle auf
  • fällt der beste Weg aus, so wird der zweitbeste
    Weg verwendet, dies erfordert eine
    Benachrichtigung der Nachbarn über diesen neuen
    Weg

78
BGP-3 Generelle Funktionsweise
  • anschließend werden nur noch die Veränderungen an
    dieser Tabelle dem jeweiligen Partner mitgeteilt
    - es erfolgt kein weiterer Austausch der
    vollständigen Tabelle
  • periodisch wird mittels einer KeepAlive Nachricht
    geprüft of der Kommunikationspartner noch da ist

79
BGP-3 Header
marker (16 byte)
length
type (1-4)
marker der Inhalt dieses Feldes wird durch von
BGP getrennt spezifizierteSicherheitsalgorithmen
festgelegt, er soll der Authentifikation
dienen length Gesamtlänge des Paketes -
notwendig, da TCP einen byte-stream verschickt
und keine einzelnen Pakete type Pakettyp
(1OPEN, 2UPDATE, 3NOTIFICATION Fehlermeldung -
hier nicht weiter besprochen, 4KEEPALIVE)
80
BGP-3 Open Message
marker (16 byte)
length
type OPEN
version
my autonomous system
hold time
BGP identifier
authentication data
auth. code
81
BGP-3 Open Message
  • wird versendet sobald eine Transport (TCP)
    Verbindung hergestellt ist
  • version 3 für BGP-3
  • my autonomous system Identifier für die AS ID
    des Senders
  • hold time Zeitraum in dem ein BGP-3 Paket (z.B.
    KeepAlive) empfangen werden muß, damit die
    Verbindung bestehen bleibt
  • BGP identifier eine IP Adresse des Senders,
    diese muß durchgehend für jede BGP Kommunikation
    verwendet werden

82
BGP-3 Open Message
  • authentication code/data Möglichkeit zur
    Authentifikation der Nachricht
  • wenn der Verbindungsaufbau erfolgreich war (BGP
    Versionen stimme überein und der Empfänger der
    open Nachricht akzeptiert eine Verbindung mit dem
    Sender), dann sendet der Empfänger der open
    Nachricht eine KeepAlive Nachricht zum Sender
  • wenn der Verbindungsaufbau erfolglos war, wird
    mit einer notification Nachricht geantwortet

83
BGP-3 KeepAlive Message
  • BGP-3 header ohne weitere Daten
  • wird verwendet um zu Prüfen ob ein Nachbar noch
    da ist
  • wird in der Regel so versandt, daß
    durchschnittlich 3 BGP-3 Nachrichten beim
    Nachbarn in hold time Sekunden ankommen, d.h.
    wenn viele andere BGP-3 Nachrichten an einen
    Nachbarn versendet werden müssen wenige KeepAlive
    Nachrichten versandt werden

84
BGP-3 Update Message
marker (16 byte)
length
type UPDATE
path attr. length
path attributes
path attr. length
network 1
more networks
85
BGP-3 Update Messages
  • network 1-n die Netze, die über diese Route
    erreicht werden können
  • path attribute length Gesamtlänge aller
    folgenden Attribute
  • path attributes

attribute flags
attribute type
attribute length (1/2 Bytes)
attribute data
86
BGP-3 Update Message
  • attribute flags
  • bit 0 (high order bit) optional bit wenn 0, dann
    ist dieses Attribut bekannt (well-known) und muß
    von allen BGP Routern verstanden werden wenn 1,
    dann ist das Attribut optional
  • bit 1 transitive bit wenn 0, dann wird dieses
    Attribut nur vom Empfänger interpretiert und
    nicht von diesem weitergeleitet wenn 1, dann
    wird dieses Attribut (möglicherweise nach einem
    update) weitergeleitet
  • bit 2 partial bit wird von einem Router auf 1
    gesetzt wenn ein optionales Attribut nicht
    erkannt wurde
  • bit 3 extended length bit das length Feld für
    dieses Attribut ist 2 byte lang wenn dieses bit
    gesetzt ist, sonst nur ein Byte

87
BGP-3 Update Message
  • Attribute die im BGP-3 RFC festgelegt sind
  • ORIGIN, type 1, length 1, well-known, transitive
    ein Wert von 0 sagt aus, daß die Netzwerke intern
    zum AS des ursprünglichen Senders sind, 1 sagt
    aus, daß die Netzwerke über EGP vom Sender
    kennengelernt wurden und 2 sagt aus, daß die
    Netzwerke durch andere Methoden dem Sender
    bekanntgegeben wurden.
  • AS_PATH, type 2, length variable, well-known,
    transitive dies ist der Pfad den die Ankündigung
    vom ursprünglichen Sender zurückgelegt hat. Hier
    trägt jeder BGP Router, der die Ankündigung
    weiterleitet seine AS ID ein.

88
BGP-3 Udate Message
  • weitere Attribute die im BGP-3 RFC festgelegt
    sind
  • UNREACHABLE, type 4, length 0, well-known,
    transitive dies signalisiert, daß die angegebene
    Route nicht mehr zur Verfügung steht
  • INTER_AS METRIC, type 5, length 2, optional,
    non-transitive dies erlaubt extern vorzugeben
    welche Route bevorzugt werden soll. Prinzipiell
    wird ein AS zunächst lokale Politiken verwenden
    um festzustellen, welche Route am besten geeignet
    ist. Führen die lokalen Politiken für mehr als
    eine Route zum gleichen Ergebnis, so wird diese
    Metrik verwendet die Route mit dem niedrigeren
    Wert gewinnt.

89
BGP-3 Zusammenspiel mit IGPs
R1
R2
BGP
IGP
IGP
IGP
R3
R5
IGP
R4
AS
90
BGP-3 Zusammenspiel mit IGPs
  • jeder BGP Router eines AS hat eine BGP Verbindung
    zu jedem anderen BGP Router des AS
  • Router die nicht BGP sprechen kommunizieren mit
    Hilfe des IGPs (z.B. OSPF) mit den BGP Routern,
    dabei kündigen die BGP Router die externen Netze
    so an, daß es zu dem Verwendeten IGP paßt
  • als Distanzvektoren für RIP2
  • als Topologieinformationen in Form von externen
    Links in OSPF

91
BGP-3 Zusammenfassung
  • BGP-3 löst das Problem, daß verschiedene AS
    unterschiedliche Politiken zum Routing verwenden
    wollen
  • BGP-3 trifft beschränkt nicht die Struktur, in
    der mehrere AS zusammengeschaltet werden
  • BGP-3 löst nicht das Problem, daß Routing
    Tabellen sehr groß werden können
  • BGP-3 löst auch nicht das Problem, daß Klasse B
    Adressen zu vergeben werden und damit schnell
    erschöpft sind
  • BGP-4 mit Classless Interdomain Routing (CIDR)

92
Problem Class B Exhaustion
  • Class A Adressen sind nur unter sehr besonderen
    Umständen zu bekommen
  • Class C Adressen sind i.d.R. zu klein für eine
    Netzwerkstruktur
  • Class B Adressen sind bevorzugte Wahl in vielen
    Fällen, sind aber in aller Regel zu groß, d.h. es
    werden Adressen verschwendet
  • ABER es gibt nur 16.384 Class B Adressen!
  • diese wären bis März 1994 aufgebraucht gewesen,
    hätte man keine Gegenmaßnahmen ergriffen

93
Problem Routing Table Explosion
  • je mehr Netzwerke an das Internet angeschlossen
    werden, desto größer werden die Routing Tabellen
    für Exterior Gateway Routing Protocols
  • das Wachstum der an das Internet Angeschlossenen
    Netze war in den letzten Jahren exponentiell!
  • daher sind die Routingtabellen förmlich
    explodiert
  • Speicherprobleme und Zeitprobleme bei der
    Bestimmung von Routen sind die Folge
  • in 1993 hatte man bereits Routing Tabellen mit
    über 10000 Einträgen!

94
Kurzfristige Lösung Classless Iterdomain
Routing (CIDR)
  • Organisationen bekommen nicht mehr eine Class B
    Adresse (die zu groß für sie wäre) sondern
    soviele zusammenhängende Class C Adressen wie sie
    benötigen
  • die Verteilung der Class C Adressen erfolgt nicht
    zufällig sondern nach einem Schema, welches deren
    Aggregation beim Routing erlaubt
  • dies erfolgt hierarchisch, z.B.
  • Europa 194.0.0.0 - 195.255.255.255
  • North America 198.0.0.0 - 199.255.255.255
  • etc.
  • so können z.B. alle Ziele die sich in Europa
    befinden in den USA mit einem einzigen Routing
    Tabellen Eintrag bezeichnet werden!

95
CIDR Provider based Allocation
  • auf einer tieferen Ebene (Kontinental/National)
    muß berücksichtigt werden, daß Provider lieber
    innerhalb ihres Netzes routen und es u.U. nur 1
    oder 2 Austauschpunkte zwischen den Provider in
    einem Land/Kontinent gibt
  • eine feinere Unterteilung sollte daher auf
    Provider Basis erfolgen
  • Problem dann gehören die Adressen dem
    jeweiligen Provider und man kann sie nicht
    beibehalten, wenn man den Provider wechselt!

96
CIDR - Beispiel
Router in den USA 194.x.x.x - 195.x.x.x über Link
1
Link 1
Router im Europäischen Backbone (z.B.
London) 194.0.x.x - 194.30.x.x über Link 2 nach
D 194.31.x.x - 194.60.x.x über Link 3 nach F
Link 2
Router im Deutschen Backbone (z.B.
Berlin) 194.0.x.x - 194.8.x.x über Link 10 nach
T-Online D 194.9.x.x - 194.12.x.x über Link 11
nach AOL D
Link 10
Link 12
97
BGP-4
  • Rekhter and Li, A Border Gateway Protocol 4
    (BGP-4), RFC 1771, 1995
  • die wichtigste Erweiterung gegenüber BGP-3 ist,
    daß CIDR unterstützt wird
  • BGP-4 Router dürfen Routen aggregieren wenn dies
    nach der lokal festgelegten Politik als sinnvoll
    erscheint
  • daher haben die Rechnernetze deren Erreichbarkeit
    mit einer Update Message angekündigt werden ein
    anderes Format

length
significant bits (1-4 bytes)
98
BGP-4 Aggregation von Routen Beispiel
AS X 24 / 197.8.2.0
AS T (Provider) es werden lokal 24 /
197.8.0.0 und 24 / 197.8.1.0 verwendet
AS Z
AS Y 24 / 197.8.3.0
  • Ziel der Provider würde gerne eine einzigen
    Eintrag der Art 22 / 197.8.0.0 an AS Z
    weitergeben
  • Frage was schreiben wir in die Liste der AS die
    wir mit der Route durchqueren, wenn wir mehrere
    Einträge aggregieren?

99
BGP-4 Aggregation von Routen - Beispiel
  • 1. Möglichkeit nur T
  • das kann zu Schleifen über X und Y führen, da die
    Informationen fehlen daß diese AS in der Route
    enthalten sind!
  • 2. Möglichkeit T, X und Y
  • auch nicht gut, da dies wie ein Pfad aussieht,
    der durch 3 AS führt!
  • Lösung die Informationen werden in 2 Teile
    zerlegt, eine Liste und eine Menge
  • Sequence (T), Set (X, Y)
  • wenn der Pfad z.B. von Z weitergeleitet wird
    kommt Z in de Liste Sequence (Z, T), Set (X, Y)
  • wenn die Pfade rekursiv weiter aggregiert werden,
    dann wird die Sequence zur Schnittmenge aller
    aggregierten Sequences und die Set beinhaltet
    alle anderen AS aus der Vereinigung aller
    Sequences und Sets

100
BGP-4 Update Message
marker (16 byte)
length
type UPDATE
infeasible route len
infeasible route len
withdrawn routes (variable length)
path attributes (variable length)
path attribute length
network layer reachability information (variable
length)
101
BGP-4 Update Message
  • infeasible route length Anzahl der Routen, die
    zurückgezogen werden sollen, da sie nicht länger
    gültig sind (in BGP-3 über das UNREACHABLE
    Attribut signalisiert)
  • infeasible routes die Routen die zurückgezogen
    werden jetzt mit dem Paar Anzahl signifikante
    Bits (1 Byte) und Signifikante Bits (1-4 Bytes)
    beschrieben - z.B. 16 / 192.100
  • path attributes der AS Path wird jetzt
    entsprechend der neuen Regel mit sequence und set
    beschrieben
  • die Netze die über diese Route erreicht werden
    werden jetzt mit dem Paar Anzahl signifikante
    Bits (1 Byte), Signifikante Bits (1-4 Bytes)
    beschrieben

102
BGP-4 Zusammenfassung
  • BGP-4 ist das Aktuelle Protokoll für inter AS
    Routing im Internet
  • es löst die Probleme Class B Address Depletion
    und Routing Table Explosion zumindest soweit, daß
    das Internet heute noch funktioniert
  • dazu wird CIDR verwendet, ansonsten ist BGP-4
    sehr ähnlich zu BGP-3

103
Routing Zusammenfassung
  • jedes System im Internet besitzt eine Routing
    Tabelle
  • bei Endsystemen ist diese meist trivial und
    besteht häufig im wesentlichen nur aus dem
    default route Eintrag zum nächsten Router
  • bei Routern können die Einträge manuell
    konfiguriert sein oder durch Interior und
    Exterior Gateway Protocols automatisiert bestimmt
    werden
  • Interior Gateway Protocols werden zum Routing in
    einem Autonomen System unter einheitlicher
    Administration verwendet
  • Exterior Gateway Protocols werden zum Routing
    zwischen Autonomen Systemen verwendet, die
    unterschiedliche Politiken für das Weiterleiten
    von Paketen haben können

104
IP Fragmentation
  • ein IP Paket kann auf seinem Weg zum Sender Netze
    mit unterschiedlicher maximum transmission unit
    (MTU) durchqueren
  • die MTUs sind i.d.R. kleiner als die maximale
    Größe eines IP Paketes (65536 Bytes)
  • es ist also möglich, daß ein IP Paket zu groß für
    ein Netz ist, in das es weitergeleitet werden
    soll
  • um dieses Problem transparent für höhere
    Schichten zu lösen gibt es IP Fragmentation

105
IP Fragmentation - Terminologie
  • IP Datagramm eine IP Übertragungseinheit, wie
    sie vom Sender erzeugt wird
  • IP Paket ein IP Datagramm, oder ein Fragment
    eines fragmentierten IP Datagramms

106
IP Fragmentation - Unterstützung im IP Header
version
total length
type of service
hlength
identification
flags
fragment offset
time to live
header checksum
protocol
source IP address
destination IP address
options (if any)
data
107
IP Fragmentation -Unterstützung im IP-Header
  • das identification Feld hat den gleichen Wert für
    alle Fragmente eines IP Datagramms und
    verschiedene Werte für verschiedene IP Datagramme
  • das fragment offset Feld sagt aus wieweit dieses
    Fragment vom Anfang des IP Datagramms entfernt
    ist
  • das flags Feld beinhaltet das more fragments bit,
    dieses ist genau dann gesetzt, wenn das IP Paket
    nicht das letzte für ein IP Datagramm ist
  • das total length Feld wird nach einer
    Fragmentierung neu berechnet, so daß es die Länge
    des Fragmentes beinhaltet

108
Fragmentation Considered Harmfull
  • Fragmentierung wird im Allgemeinen als etwas
    sehr! schlecht angesehen geht ein Fragment
    verloren, so müssen auch alle Fragmente desselben
    IP Datagramms verworfen werden, die beim
    Empfänger angekommen sind! Es besteht keine
    Möglichkeit lediglich das verlorengegangene
    Fragment nocheinmal zu übertragen - der Sender
    weis nichts von der Fragmentierung.

109
Vermeidung der Fragmentierung - Path MTU
Discovery
  • im flags Feld im IP Header gibt es ein Dont
    Fragment Bit (DF Bit)
  • ist das DF Bit gesetzt, so fragmentiert ein
    Router das Paket nicht, sondern verwirft es, wenn
    es größer als die MTU des Netzes ist, in welches
    es weitergeleitet werden soll
  • außerdem schickt der Router einen ICMP
    Unreachable Error (Fragmentation Required) an den
    Sender des Paketes zurück
  • dieser Error beinhaltet die MTU die zu klein für
    das Paket war
  • der Sender verringert daraufhin die Größe seiner
    IP Pakete an den Empfänger

110
ICMP Unreachable Error - Fragmentation Required
IP header (20 bytes)
type (3)
checksum
code (4)
unused (0)
MTU of next-hop network
IP header (incl. options) first 8 bytes of
original IP packet data
111
Fragmentation Demo
  • mit -s kann unter LINUX die Größe eines ping
    Paketes festgelegt werden
  • dann kann man mit tcpdump nachsehen was passiert
    wir verwenden diesmal ein nettes GUI frontend zu
    tcpdump mit dem Name ethereal
  • mit -D kann man das dont fragment Bit setzen,
    dies bringt jedoch nicht viel, da meist die MTU
    des LAN der Engpaß ist, d.h. man sieht nichts da
    das Paket nie den Rechner verläßt
Write a Comment
User Comments (0)
About PowerShow.com