Title: 3.6 Interior Gateway Routing Protocols
13.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)
2Distance 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
3Distance 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
4Distance 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
5Distance 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
6Distance 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
7Distance 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
8Distance 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
9Distance 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
10Distance 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
11Distance 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
12Distance 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
13Distance 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
14Distance 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
15Counting 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
16Counting 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)
17Distance 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)
18Distance 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
19Distance 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
20Distance 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
21Distance 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
22Distance 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!
23Distance 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
24Routing 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.
25RIP 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.
26RIP 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 .....
27RIP 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
28RIP 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
29RIP 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 .....
30RIP 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)
31RIP 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!)
32RIP 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!
33RIP 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)
34Distance 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.
35Link 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
36Link 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
37Link 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
38Link 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.
39Link 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
40Link 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.
41Link 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
42Link 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)!
43Link 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
44Link 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.
45Link 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
46Link 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
47Link 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)
48Link 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.
49Link 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!
50Link 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
51Link 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
52Open 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)
53OSPF - 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
54OSPF - 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
55OSPF - Hello Protocol
OSPF packet header, type1 (hello)
network mask
options
hello interval
priority
dead interval
designated router
backup designated router
neighbor
more neighbors ...
56OSPF - 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)
57OSPF - 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
58OSPF - 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
59OSPF - 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!
60OSPF - 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.
61OSPF - 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
62OSPF - 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
63OSPF - 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
64OSPF - 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.
65OSPF - 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
66Link 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
67Alternative Ansätze - IS-IS
- Intra-Domain Intermediate System to Intermediate
System Routeing Protocol - ISO-OSI Vorschlag Routing
- basiert auf Link State Technologie, wie OSPF
68Alternative 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
69Alternative 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!
703.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
71Autonomous 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
72Autonomous 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.
73Warum 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!
74Border 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!
75BGP-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
76Path 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.
77BGP-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
78BGP-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
79BGP-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)
80BGP-3 Open Message
marker (16 byte)
length
type OPEN
version
my autonomous system
hold time
BGP identifier
authentication data
auth. code
81BGP-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
82BGP-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
83BGP-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
84BGP-3 Update Message
marker (16 byte)
length
type UPDATE
path attr. length
path attributes
path attr. length
network 1
more networks
85BGP-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
86BGP-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
87BGP-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.
88BGP-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.
89BGP-3 Zusammenspiel mit IGPs
R1
R2
BGP
IGP
IGP
IGP
R3
R5
IGP
R4
AS
90BGP-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
91BGP-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)
92Problem 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
93Problem 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!
94Kurzfristige 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!
95CIDR 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!
96CIDR - 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
97BGP-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)
98BGP-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?
99BGP-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
100BGP-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)
101BGP-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
102BGP-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
103Routing 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
104IP 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
105IP 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
106IP 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
107IP 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
108Fragmentation 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.
109Vermeidung 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
110ICMP 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
111Fragmentation 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