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

Martin Mauve
Alle Protokolle sind verteilt und adaptiv (s. RN)
Universität Mannheim
1
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 Distanz=Distanz im Vektor + Distanz zum Sender des
Vektors
Martin Mauve
Universität Mannheim
2
Distance Vector Routing - Cold Start Beispiel
A
1
3
D
Martin Mauve
6
B
2
4
5
C
E
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
C
local
0
Von A: A=0 auf links 1 und 3
Universität Mannheim
3
Distance Vector Routing - Cold Start Beispiel
Martin Mauve
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
A
1
1
E
local
0
From C to
Link
Cost
C
local
0
Von B: A=1, B=0 auf links 1, 4, 2
Von D: A=1, D=0 auf links 3, 6
Universität Mannheim
4
Distance Vector Routing - Cold Start Beispiel
Martin Mauve
From A to
Link
Cost
From D to
Link
Cost
A
local
0
D
local
0
B
1
1
A
3
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
B
2
1
A
2
2
Von A: A=0, B=1, D=1 auf links 1, 3
Von C: A=2, B=1, C=0 auf links 2, 5
Von E: A=2, B=1, D=1, E= 0 auf links 4, 5, 6
Universität Mannheim
5
Distance Vector Routing - Cold Start Beispiel
From A to
Link
Cost
From C to
Link
Cost
From E to
Link
Cost
A
local
0
C
local
0
E
local
0
B
1
1
B
2
1
B
4
1
D
3
1
A
2
2
A
4
2
E
5
1
D
6
1
D
5
2
C
5
1
From B to
Link
Cost
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: A=1, B=0, C=1, D=2, E=1 auf links 1, 4, 2
Von C: A=2, B=1, C=0, D=2, E=1 auf links 2, 5
Von D: A=1, B=2, D=0, E=1 auf links 3, 6
Von E: A=2, B=1, C=1, D=1, E= 0 auf links 4, 5, 6
Martin Mauve
Universität Mannheim
6
Distance Vector Routing - Cold Start Beispiel
From A to
Link
Cost
From C to
Link
Cost
From E to
Link
Cost
A
local
0
C
local
0
E
local
0
B
1
1
B
2
1
B
4
1
D
3
1
A
2
2
A
4
2
C
1
2
E
5
1
D
6
1
E
1
2
D
5
2
C
5
1
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
Martin Mauve
Universität Mannheim
7
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

Martin Mauve
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
Universität Mannheim
8
Distance Vektor Routing - Link Ausfall Beispiel
A
XXXX
3
D
B
4
6
2
5
E
C
From B to
Link
Cost
From D to
Link
Cost
B
local
0
D
local
0
A
1
inf
A
3
1
D
1
inf
B
3
2
C
2
1
E
6
1
E
4
1
C
6
2
From A to
Link
Cost
From C to
Link
Cost
From E to
Link
Cost
A
local
0
C
local
0
E
local
0
B
1
inf
B
2
1
B
4
1
D
3
1
A
2
2
A
4
2
C
1
inf
E
5
1
D
6
1
E
1
inf
D
5
2
C
5
1
Von A: A=0, B=inf, C=inf, D=1, E=inf auf Link 3
Von B: A=inf, B=0, C=1, D=inf, E=1 auf Links 2, 4
Martin Mauve
Universität Mannheim
9
Distance Vektor Routing - Link Ausfall Beispiel
From A to
Link
Cost
From B to
Link
Cost
From D to
Link
Cost
A
local
0
B
local
0
D
local
0
B
1
inf
A
1
inf
A
3
1
D
3
1
D
1
inf
B
3
inf
C
1
inf
C
2
1
E
6
1
E
1
inf
E
4
1
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
2
inf
A
4
inf
E
5
1
D
6
1
D
5
2
C
5
1
Von C: A=inf, B=1, C=0, D=2, E=1
auf Link 2, 5
Von D: A=1, B=inf, C=2, D=0, E=1
auf Links 3, 6
Von E: A=inf, B=1, C=1, D=1, E=0
auf Links 4, 5, 6
Martin Mauve
Universität Mannheim
10
Distance Vektor Routing - Link Ausfall Beispiel
From A to
Link
Cost
From B to
Link
Cost
From D to
Link
Cost
A
local
0
B
local
0
D
local
0
B
1
inf
A
1
inf
A
3
1
D
3
1
D
4
2
B
6
2
C
3
3
C
2
1
E
6
1
E
3
2
E
4
1
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
2
inf
A
6
2
E
5
1
D
6
1
D
5
2
C
5
1
Von A: A=0, B=inf, C=3, D=1, E=2
auf Link 3
Von B: A=inf, B=0, C=1, D=2, E=1
auf Link 2, 4
Von D: A=3, B=2, C=2, D=0, E=1
auf Links 3, 6
Von E: A=2, B=1, C=1, D=1, E=0
auf Links 4, 5, 6
Martin Mauve
Universität Mannheim
11
Distance Vektor Routing - Link Ausfall Beispiel
Martin Mauve
From A to
Link
Cost
From B to
Link
Cost
From D to
Link
Cost
A
local
0
B
local
0
D
local
0
B
3
3
A
4
3
A
3
1
D
3
1
D
4
2
B
6
2
C
3
3
C
2
1
E
6
1
E
3
2
E
4
1
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
Universität Mannheim
12
Distance Vector Routing - Counting to Infinity
A
XXXX
3
D
B
4
XXXX
E
2
5
C
From A to
Link
Cost
From D to
Link
Cost
A
local
0
D
local
0
B
3
3
A
3
1
D
3
1
B
6
inf
C
3
3
E
6
inf
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: A=0, B=3, C=3, D=1, E=2 auf Link 3
Martin Mauve
Universität Mannheim
13
Distance Vector Routing - Counting to Infinity
From A to
Link
Cost
From D to
Link
Cost
A
local
0
D
local
0
B
3
3
A
3
1
D
3
1
B
3
4
C
3
3
E
3
3
E
3
2
C
3
4
From A to
Link
Cost
From D to
Link
Cost
A
local
0
D
local
0
B
3
5
A
3
1
D
3
1
B
3
4
C
3
5
E
3
3
E
3
4
C
3
4
Martin Mauve
Universität Mannheim
Von B: A=1, B=4, C=4, D=0, E=3
auf Link 3
Von B: A=1, B=5, C=5, D=1, E=4
auf Link 3
14
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
Martin Mauve
Universität Mannheim
15
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)
Martin Mauve
Universität Mannheim
16
Distance Vector Routing - Split Horizon
A
XXXX
3
D
B
4
XXXX
E
2
5
C
From A to
Link
Cost
From D to
Link
Cost
A
local
0
D
local
0
B
3
3
A
3
1
D
3
1
B
6
inf
C
3
3
E
6
inf
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: A=0, B=inf, C=inf, D=inf, E=inf auf Link 3 (poisonous reverse)
Martin Mauve
Universität Mannheim
17
Distance Vector Routing Problem bei Split Horizon
A
XXXX
3
D
B
4
XXXX
2
C
5
E
Von E: A=inf, B=inf, C=1, D=inf, E=0
auf Link 4 (poisonous reverse)
Von E: A=inf, B=1, C=inf, D=inf, E=0
auf Link 5 (poisonous reverse)
Der Distanzvektor auf Link 5 geht
verloren und kommt nicht bei C an.
Martin Mauve
From B to
Link
Cost
B
local
0
A
4
3
D
4
2
C
2
1
E
4
1
From C to
Link
Cost
C
local
0
B
2
1
A
5
3
E
5
1
D
5
2
Universität Mannheim
From E to
Link
Cost
E
local
0
B
4
1
A
6
inf
D
6
inf
C
5
1
18
Distance Vector Routing Problem bei Split Horizon
A
XXXX
3
D
B
4
XXXX
2
C
5
E
From B to
Link
Cost
B
local
0
A
4
inf
D
4
inf
C
2
1
E
4
1
Link
Cost
local
0
B
2
1
A
5
3
E
5
1
D
5
2
Nun sei für C die Zeit gekommen, daß
From C to
der Distanzvektor gesendet werden muß
C
(periodische Übertragung).
Von C: A=3, B=inf, C=0, D=2, E=1
auf Link 2 (poisonous reverse)
Von C: A=inf, B=1, C=0, D=inf, E=inf
auf Link 5 (poisonous reverse)
Martin Mauve
Universität Mannheim
From E to
Link
Cost
E
local
0
B
4
1
A
6
inf
D
6
inf
C
5
1
19
Distance Vector Routing Split Horizon Problem
A
XXXX
3
D
B
4
XXXX
2
5
E
Von B: A=4, B=0, C=1, D=3, E=inf
auf Link 4 (poisonous reverse)
Von B: .... uninteressant
auf Link 2 (poisonous reverse)
Martin Mauve
C
From B to
Link
Cost
B
local
0
A
2
4
D
2
3
C
2
1
E
4
1
From C to
Link
Cost
C
local
0
B
2
1
A
5
3
E
5
1
D
5
2
Universität Mannheim
From E to
Link
Cost
E
local
0
B
4
1
A
6
inf
D
6
inf
C
5
1
20
Distance Vector Routing Split Horizon Problem
A
XXXX
3
D
B
4
XXXX
2
C
5
E
Jetzt existiert ein 3er Kreis, in dem es
zu count to infinity kommt!
Martin Mauve
From B to
Link
Cost
B
local
0
A
2
4
D
2
3
C
2
1
E
4
1
From C to
Link
Cost
C
local
0
B
2
1
A
5
3
E
5
1
D
5
2
Universität Mannheim
From E to
Link
Cost
E
local
0
B
4
1
A
4
5
D
4
4
C
5
1
21
Distance Vector Routing - Triggered Updates

Wann werden Distanz Vektoren gesendet?
 periodisch (zufällige Variation der Periode)
 nach Änderung der Routingtabelle (triggered update)

Martin Mauve
Wenn die triggered updates schnell versandt werden,
dann kann es zu counting to infinity nur durch
Paketverlust kommen!
Universität Mannheim
22
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
Martin Mauve
Universität Mannheim
23
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.
Martin Mauve
Universität Mannheim
24
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




Martin Mauve
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.
Universität Mannheim
25
RIP Version 1 - Nachrichtenformat
0
15
7
31
IP + UDP header (28 bytes)
command (1, 2)
version (1)
must be zero
address family identifier (2)
must be zero
IP address
must be zero
must be zero
metric
weitere Einträge .....
Martin Mauve
Universität Mannheim
26
RIP Version 1 - Nachrichtenformat

command:
 1=request, wird von einem Router verwendet der gerade
neu gestartet wurde, um von seinen Nachbarn die
Distanzvektoren nachzufragen
 2=reply, wird alle 30 Sekunden oder als triggered update
oder als Antwort auf einen request verschickt

version:
 1

address family identifier:
 2: IP
Martin Mauve
Universität Mannheim
27
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
Martin Mauve
Universität Mannheim
28
RIP Version 2 - Nachrichtenformat
0
15
7
31
IP + UDP header (28 bytes)
command (1, 2)
version (2)
routing domain
address family identifier (2,0xFFFF)
route tag
IP adress
subnet mask
next hop
metric
weitere Einträge .....
Martin Mauve
Universität Mannheim
29
RIP Version 2 - Nachrichtenformat



command: 1=request, 2=reply
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)
Martin Mauve
Universität Mannheim
30
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!)
Martin Mauve
Universität Mannheim
31
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

Martin Mauve
ist nicht wirklich sicher, da 16 byte zu wenig sind!
Universität Mannheim
32
RIP Version 2 - Authentication
0
15
7
31
IP + UDP header (28 bytes)
command (1, 2)
version (2)
address family identifier (0xFFFF)
routing domain
authentication type
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)
Martin Mauve
Universität Mannheim
33
Distance Vector Routing / RIPZusammenfassung

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

Martin Mauve
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.
Universität Mannheim
34
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
Martin Mauve
Universität Mannheim
35
Link State Routing - Ausgangssituation
A
1
3
D
6
B
2
4
5
C
E
Karte/Datenbank:
From
From
Link
Cost
Number
From
From
Link
Cost
Number
A
B
1
1
1
C
E
5
1
1
A
D
3
1
1
D
A
3
1
1
B
A
1
1
1
D
E
6
1
1
B
C
2
1
1
E
B
4
1
1
B
E
4
1
1
E
C
5
1
1
C
B
2
1
1
E
D
6
1
1
Martin Mauve
Universität Mannheim
36
Link State Routing - Link Ausfall
A
XXXX
3
D
6
B
2
4
5
C
E
From A, to B, link 1 distance = infinite, number 2
From B, to A, link 1 distance = infinite, number 2
Martin Mauve
Universität Mannheim
37
Link State Routing - Nachrichtenbehandlung





Martin Mauve
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.
Universität Mannheim
38
Link State Routing - Link Ausfall
Karte/Datenbank nachdem die
Informationen über den Linkausfall
von A und B geflutet wurden:
From
From
Link
Cost
Number
From
From
Link
Cost
Number
A
B
1
inf
2
C
E
5
1
1
A
D
3
1
1
D
A
3
1
1
B
A
1
inf
2
D
E
6
1
1
B
C
2
1
1
E
B
4
1
1
B
E
4
1
1
E
C
5
1
1
C
B
2
1
1
E
D
6
1
1
Martin Mauve
Universität Mannheim
39
Link State Routing Bringing Up Adjacencies
A
XXXX
3
D
XXXX
B
2
4
5
C
E
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“.
Martin Mauve
Universität Mannheim
40
Link State Routing Bringing Up Adjacencies
From
From
Link
Cost
Number
From
From
Link
Cost
Number
A
B
1
inf
2
A
B
1
inf
2
A
D
3
1
1
A
D
3
1
1
B
A
1
inf
2
B
A
1
inf
2
B
C
2
1
1
B
C
2
1
1
B
E
4
1
1
B
E
4
1
1
C
B
2
1
1
C
B
2
1
1
C
E
5
1
1
C
E
5
1
1
D
A
3
1
1
D
A
3
1
1
D
E
6
inf
2
D
E
6
1
1
E
B
4
1
1
E
B
4
1
1
E
C
5
1
1
E
C
5
1
1
E
D
6
1
1
E
D
6
inf
2
Datenbank von A und D
Martin Mauve
Datenbank von B, C und E
Universität Mannheim
41
Link State Routing Bringing Up Adjacencies
A
XXXX
3
D
B XXXX C
4
XXXX
5
E
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)!
Martin Mauve
Universität Mannheim
42
Link State Routing Bringing Up Adjacencies
From
From
Link
Cost
Number
From
From
Link
Cost
Number
A
B
1
inf
2
A
B
1
inf
2
A
D
3
1
1
A
D
3
1
1
B
A
1
inf
2
B
A
1
inf
2
B
C
2
1
1
B
C
2
inf
2
B
E
4
1
1
B
E
4
1
1
C
B
2
1
1
C
B
2
inf
2
C
E
5
1
1
C
E
5
1
1
D
A
3
1
1
D
A
3
1
1
D
E
6
inf
2
D
E
6
1
1
E
B
4
1
1
E
B
4
1
1
E
C
5
1
1
E
C
5
1
1
E
D
6
1
1
E
D
6
inf
2
Datenbank von A und D
Martin Mauve
Datenbank von B, C und E
Universität Mannheim
43
Link State Routing Bringing Up Adjacencies
A
1
3
D
B XXXX C
4
XXXX
5
E
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.
Martin Mauve
Universität Mannheim
44
Link State Routing Bringing Up Adjacencies
From
From
Link
Cost
Number
From
From
Link
Cost
Number
A
B
1
1
3
A
B
1
1
3
A
D
3
1
1
A
D
3
1
1
B
A
1
1
3
B
A
1
1
3
B
C
2
1
1
B
C
2
inf
2
B
E
4
1
1
B
E
4
1
1
C
B
2
1
1
C
B
2
inf
2
C
E
5
1
1
C
E
5
1
1
D
A
3
1
1
D
A
3
1
1
D
E
6
inf
2
D
E
6
1
1
E
B
4
1
1
E
B
4
1
1
E
C
5
1
1
E
C
5
1
1
E
D
6
1
1
E
D
6
inf
2
Datenbank von A und D
Martin Mauve
Datenbank von B, C und E
Universität Mannheim
45
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

Martin Mauve
dieses Vorgehen minimiert das Volumen der Daten,
die übertragen werden müssen
Universität Mannheim
46
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)
Martin Mauve
Universität Mannheim
47
Link State Routing - Lokale Berechnung der
Routing Tabelle

Mit Hilfe des von Dijkstra entwickelten „shortest Path
first“ Algorithmus:
1 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.
2 Wenn O leer ist, oder alle Pfade in O unendliche Kosten
haben, dann markiere alle Knoten in R als nicht erreichbar.
Ende.
3 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.
3 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.
Martin Mauve
Universität Mannheim
48
Link State Routing - Lokale Berechnung der
Routing Tabelle - Beispiel
A
1
2
D
2
B
5
2
1
C
E
Achtung! Nun repräsentieren die Zahlen
die „Distanz“ (= Verzögerung, Kosten, etc.)
zwischen zwei Knoten.
E={A, B, D, E}
O={A-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}
E={A}
O={A-B-1, A-D-2}
E={A, B}
O={A-D-2, A-B-E-3, A-B-C-6}
Kürzeste Pfade: {A-B-1}
Achtung 2 Schritte!!!
E={A, B, C, D, E}
O={A-B-C-6}
Kürzeste Pfade:
{A-B-1, A-D-2, A-B-E-3, A-B-E-C-4}
E={A, B, D}
O={A-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!
Martin Mauve
Universität Mannheim
49
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
Martin Mauve
Universität Mannheim
50
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
Martin Mauve
Universität Mannheim
51
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

Martin Mauve
OSPF wird direkt über IP verwendet (Protokoll type 89)
Universität Mannheim
52
OSPF - Gemeinsamer Header
0
15
7
31
IP header (20 bytes) - protocol type 89
version (2)
type (1-5)
packet length
router ID
area ID
checksum
autype
authentication
authentication
type specific header
Martin Mauve
Universität Mannheim
53
OSPF - Gemeinsamer Header








Martin Mauve
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
(0=keine, 1= Paßwort, andere)
authentication: Paßwort
Universität Mannheim
54
OSPF - Hello Protocol
0
15
7
31
OSPF packet header, type=1 (hello)
network mask
hello interval
options
priority
dead interval
designated router
backup designated router
neighbor
more neighbors ...
Martin Mauve
Universität Mannheim
55
OSPF - Hello Protocol





Martin Mauve
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)
Universität Mannheim
56
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
Martin Mauve
Universität Mannheim
57
OSPF - Exchange Protocol
0
15
7
31
OSPF packet header, type=2 (database descritpion/dd)
must be 0
options
must be 0 IMMS
DD sequence number
link state type
link state ID
advertising router
link state sequence number
link state checksum
link state age
more record descriptions
Martin Mauve
Universität Mannheim
58
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!
Martin Mauve
Universität Mannheim
59
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.
Martin Mauve
Universität Mannheim
60
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

Martin Mauve
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
Universität Mannheim
61
OSPF - Exchange Protocol - Funktionsweise
0
7
15
31
OSPF packet header, type=3 (request/rq)
link state type
link state ID
advertising router
more record requests

nun wissen beide Teilnehmer welche Einträge in der
Datenbank beim anderen Teilnehmer aktuelle sind,
diese werden nachgefragt

geantwortet wird wie beim OSPF - Flooding Protocol,
das wir gleich besprechen
Martin Mauve
Universität Mannheim
62
OSPF - Flooding Protocol
0
15
7
31
OSPF packet header, type=4 (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
Martin Mauve
Universität Mannheim
63
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.
Martin Mauve
Universität Mannheim
64
OSPF - Flooding Protocol
0
15
7
31
OSPF packet header, type=5 (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
Martin Mauve
Universität Mannheim
65
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
Martin Mauve
Universität Mannheim
66
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
Martin Mauve
Universität Mannheim
67
Alternative Ansätze - IGRP

Interior Gateway Routing Protocol

proprietäres Protokoll der Firma cisco

verwendet distance vector Technik

verbessert RIP in einigen entscheidenden Gebieten:




Martin Mauve
composite metrics
conservative protection against loops
multipath routing
einige der Verbesserungen sind von cisco patentiert
Universität Mannheim
68
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!
Martin Mauve
Universität Mannheim
69
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


Martin Mauve
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
Universität Mannheim
70
Autonomous System





AS=„A 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
Martin Mauve
Universität Mannheim
71
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.
Martin Mauve
Universität Mannheim
72
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 <200)
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!
Martin Mauve
Universität Mannheim
73
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.

Martin Mauve
dies ist mit IGPs nicht möglich!
Universität Mannheim
74
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
Martin Mauve
Universität Mannheim
75
Path Vectors - Beispiel
AS1
AS4
R11
136.3.0.0
R41
136.3.0.0
R12
AS3
R33
R31
R21
R32
AS2
149.10.0.0
140.1.0.0
133.10.0.0
AS5
R22
R52
R51
155.20.0.0
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.
Martin Mauve
Universität Mannheim
76
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
Martin Mauve
Universität Mannheim
77
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
Martin Mauve
Universität Mannheim
78
BGP-3 Header
0
7
15
31
marker (16 byte)
length
type (1-4)
marker: der Inhalt dieses Feldes wird durch von BGP getrennt spezifizierte
Sicherheitsalgorithmen festgelegt, er soll der Authentifikation dienen
length: Gesamtlänge des Paketes - notwendig, da TCP einen byte-stream
verschickt und keine einzelnen Pakete
type: Pakettyp (1=OPEN, 2=UPDATE, 3=NOTIFICATION
Fehlermeldung - hier nicht weiter besprochen, 4=KEEPALIVE)
Martin Mauve
Universität Mannheim
79
BGP-3 Open Message
0
15
7
31
marker (16 byte)
length
type: OPEN
my autonomous system
version
hold time
BGP identifier
auth. code
authentication data
Martin Mauve
Universität Mannheim
80
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
Martin Mauve
Universität Mannheim
81
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
Martin Mauve
Universität Mannheim
82
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 BGP3 Nachrichten an einen Nachbarn versendet werden
müssen wenige KeepAlive Nachrichten versandt
werden
Martin Mauve
Universität Mannheim
83
BGP-3 Update Message
0
7
15
31
marker (16 byte)
length
type: UPDATE
path attr. length
path attr. length
path attributes
network 1
more networks
Martin Mauve
Universität Mannheim
84
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
Martin Mauve
Universität Mannheim
85
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
Martin Mauve
Universität Mannheim
86
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.
Martin Mauve
Universität Mannheim
87
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, nontransitive: 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.
Martin Mauve
Universität Mannheim
88
BGP-3 Zusammenspiel mit IGPs
R1
R2
BGP
IGP
IGP
IGP
R3
R5
IGP
R4
AS
Martin Mauve
Universität Mannheim
89
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
Martin Mauve
Universität Mannheim
90
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)
Martin Mauve
Universität Mannheim
91
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
Martin Mauve
Universität Mannheim
92
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!
Martin Mauve
Universität Mannheim
93
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.

Martin Mauve
so können z.B. alle Ziele die sich in Europa befinden
in den USA mit einem einzigen Routing Tabellen
Eintrag bezeichnet werden!
Universität Mannheim
94
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!
Martin Mauve
Universität Mannheim
95
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
Martin Mauve
Universität Mannheim
Link 12
96
BGP-4

Rekhter and Li, „A Border Gateway Protocol 4 (BGP4)“, 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
Martin Mauve
significant bits (1-4 bytes)
Universität Mannheim
97
BGP-4 Aggregation von Routen Beispiel
AS X
24 / 197.8.2.0
AS Y
24 / 197.8.3.0
AS T (Provider)
es werden lokal
24 / 197.8.0.0
und
24 / 197.8.1.0
verwendet
AS Z

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?
Martin Mauve
Universität Mannheim
98
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
Martin Mauve
Universität Mannheim
99
BGP-4 Update Message
0
15
7
31
marker (16 byte)
length
type: UPDATE
infeasible route len
withdrawn routes (variable length)
infeasible route len
path attribute length
path attributes (variable length)
network layer reachability information (variable length)
Martin Mauve
Universität Mannheim
100
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
Martin Mauve
Universität Mannheim
101
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
Martin Mauve
Universität Mannheim
102
Routing Zusammenfassung





Martin Mauve
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
Universität Mannheim
103
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
Martin Mauve
Universität Mannheim
104
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
Martin Mauve
Universität Mannheim
105
IP Fragmentation Unterstützung im IP Header
0
15
7
version
hlength
type of service
identification
time to live
31
total length
flags
protocol
fragment offset
header checksum
source IP address
destination IP address
options (if any)
data
Martin Mauve
Universität Mannheim
106
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
Martin Mauve
Universität Mannheim
107
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.
Martin Mauve
Universität Mannheim
108
Vermeidung der Fragmentierung Path MTU Discovery





Martin Mauve
im flags Feld im IP Header gibt es ein Don‘t 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
Universität Mannheim
109
ICMP Unreachable Error Fragmentation Required
0
15
7
31
IP header (20 bytes)
type (3)
code (4)
unused (0)
checksum
MTU of next-hop network
IP header (incl. options) + first 8 bytes of original IP packet data
Martin Mauve
Universität Mannheim
110
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 don‘t 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
Martin Mauve
Universität Mannheim
111

Kapitel 3 Teil 2 (IP Routing) - pi4