ppt

Werbung
Proseminar
------------------------------Routing Information Protocol
Open Shortest Path First
Martin Bauer
15.01.2008
Universität Freiburg
1
Gliederung
• Grundlagen
• Router Information Protocol (RIP)
–
Bellman-Gleichung
–
Bellman-Ford-Algorithmus
–
Spezifikation
–
Count-to-Infinity
• Open Shortest Path First (OSPF)
–
Dijkstra Algorithmus
–
Spezifikation
• Zusammenfassung
15.01.2008
Universität Freiburg
2
Autonomes System
• Zusammenschluss zu einem logischen Netzwerk
• Verwaltung durch Interior
Gateway Protocols (IGP)
• Verantwortungsbereich
einer einzigen
Organisation
15.01.2008
Universität Freiburg
3
Routing Tabelle
• Ermittlung von Ziel-Host/-Router zu IP-Adresse
• dynamische vs. statische Einträge
Destination
132.230.1.0
...
132.230.18.0
132.230.19.0
132.230.20.0
0.0.0.0
15.01.2008
Netmask
255.255.255.0
...
255.255.255.0
255.255.255.0
255.255.255.0
0.0.0.0
Gateway
Interface Metric
132.230.18.254
eth1
12
...
…
...
132.230.18.254
eth1
1
*
eth0
0
*
eth0
0
132.230.18.254
eth2
0
Universität Freiburg
4
Kürzeste Pfade in Graphen
• Netzwerke werden als Graphen interpretiert
•
G  (V , E ) ist ein Graph mit x, y  V und ( x, y )  E
• Kanten sind ungerichtet
( x, y )  ( y , x )
• Kanten besitzten Kostenfunktionen:
c : E  R
• Kürzester Pfad ? Bellman-Ford-Algorithmus.
x
15.01.2008
c ( x, y )  5
y
Universität Freiburg
5
Bellman-Gleichung
• kürzeste Distanz von Startknoten x zu Ziel y über Nachbarknoten v
• Distanzkosten:
• Beispiel:
D ( y)  min c( x, v)  d ( y)
v
x
D ( y)  min 1  4
D ( y)  5
v
x
x
1
4
5
15.01.2008
Universität Freiburg
6
Distanzvektoren
• Distanz-Vector Routing Algorithmen
– Knoten kennen nur einen Teil des Netzwerks
– Knoten lernen stetig hinzu
• Erweiterung der Bellman-Gleichung um Distanzvektor:
D  D ( y) : y in V 
v
15.01.2008
v
Universität Freiburg
7
Bellman-Ford-Algorithmus (0)
Initialization:
for all destination y in V:
D x ( y)  c( x, y) /* if y is not neighbour than c( x, y)   /*
for each neighbour v
Dv ( y)   for all destinations y in V
for each neighbour v
send distance vector D x  D x ( y ) : y in V  to v
Loop
wait (until I see link cost change to some neighbour v or
until I receive a distance vector from some neighbour v)
for each y in V:
D ( y)  min c( x, v)  D ( y)
x
v
v
if Dx(v) changed for any destination y
send distance vector D x  D x ( y ) : y in V  to all neighbours
forever
15.01.2008
Universität Freiburg
8
Bellman-Ford-Algorithmus (1)
Beispiel:
y
2
1
x
z
7
15.01.2008
Universität Freiburg
9
Bellman-Ford-Algorithmus (2)
Beispiel:
Initialisierungsphase
x in t0
y
2
1
15.01.2008
y in t0
x y z
z in t0
x ∞ ∞ ∞
0 2 7
y ∞ ∞ ∞
nach
z ∞ ∞ ∞
Universität Freiburg
y
2 0 1
z ∞ ∞ ∞
nach
x y z
x ∞ ∞ ∞
von
7
x y z
von
z
von
x
x
nach
y ∞ ∞ ∞
z
7 1 0
10
Bellman-Ford-Algorithmus (3)
Beispiel:
x in t0
y
2
1


(
z
)

min
2

1
,
7

0



Dx
 3

x in t1
y
nach
x y z
0 2 3
y
2 0 1
z
7 1 0
2 0 1
y in t1
Universität Freiburg
nach
x y z
x
0 2 7
y
2 0 1
z
7 1 0
nach
x y z
x ∞ ∞ ∞
y ∞ ∞ ∞
z
z in t1
von
x
z in t0
z ∞ ∞ ∞
von
15.01.2008
y ∞ ∞ ∞
x y z
x ∞ ∞ ∞
0 2 7
z ∞ ∞ ∞
von


(x
)

min
7

0
,
2

1


Dz
3 

y in t0
nach
von
7
x y z
von
z
von
x
x
nach
7 1 0
nach
x y z
x
0 2 7
y
2 0 1
z
3 1 0
11
x in t0
x
x in t1
2
1
0 2 3
y
2 0 1
z
7 1 0
x in t2
y in t1
0 2 7
y
2 0 1
z
7 1 0
y
2 0 1
z
3 1 0
Universität Freiburg
nach
x y z
x
0 2 3
y
2 0 1
z
3 1 0
z in t1
7 1 0
nach
x y z
x
0 2 7
y
2 0 1
z
3 1 0
z in t2
von
0 2 3
y in t2
von
von
x
x y z
x
nach
x y z
nach
x y z
y ∞ ∞ ∞
z
von
7
x
2 0 1
nach
x ∞ ∞ ∞
z ∞ ∞ ∞
von
z
von
x
y
nach
x y z
x y z
z in t0
von
y ∞ ∞ ∞
nach
x ∞ ∞ ∞
0 2 7
z ∞ ∞ ∞
y
15.01.2008
x y z
y in t0
von
von
Beispiel:
nach
nach
x y z
x
0 2 3
y
2 0 1
z
3 1 0
12
Routing Information Protocol
• Definition in RFC1058
• Kostenfunktion zu Nachbarn konstant
c ( x, y )  1
• Maximal zulässige Kosten = 15 (16 Infinität)
– Beschränkung in Netzgröße auf Durchmesser 15
• 30 sekündliche Austausch der Distanzvektoren
– 7,5 Minuten für komplette Netzaktualisierung (=Konvergenz)
15.01.2008
Universität Freiburg
13
Count-to-Infinity
D ( x)  1
• Problem: Count-to-Infinity
y
• Lösung: Triggered Updates
x
y
1
– Änderungen sofort mitteilen
– Pfadinformation darf nicht über das
ß
z
z
1
D ( x)  3
über dass es erlernt wurde.
– Reset der Verbindung auf beiden
D ( x)  2
y
16
gleiche Interface gesendet werden,
• Lösung: SHV mit Poisoned Reverse
1
y
x
D ( x)  4
y
x
ß
16
z
z
D ( x)  3
• Lösung: Split-Horizont-Verfahren (SHV)
D ( x)  2
z
y
z
1
Knoten und lerne neu
15.01.2008
Universität Freiburg
14
Anatomie eines RIP-Datagram
• UDP/520
• Command = {request|response}
• IP Adresse = Zieladresse
• Version = {1|2}
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| command (1)
| version (1)
| must be zero (2)
|
+---------------+---------------+-------------------------------+
|
address family identifier (2)
|
|
must be zero (2)
|
+-------------------------------+-------------------------------+
|
IP address (4)
|
+---------------------------------------------------------------+
|
must be zero (4)
|
+---------------------------------------------------------------+
|
must be zero (4)
|
+---------------------------------------------------------------+
|
metric (4)
|
+---------------------------------------------------------------+
|
Data…
|
|
|
+---------------------------------------------------------------+
RFC1058
15.01.2008
Universität Freiburg
15
Eigenschaften von RIP
• geringer Rechenleistung notwendig
• interoperabel
• ungenügende Skalierbarkeit (max. Hops)
• mangelhafte Konvergenzeigenschaften
• unzureichende Authentifikation (optional Klartextpassworte)
15.01.2008
Universität Freiburg
16
Open Shortest Path First Protocol
• gehört zur Klasse der Link-State Routing Algorithmen
– jeder Knoten kennt vollständiges Netzwerk
– jeder Knoten sendet vollständige Routingtabelle an alle anderen
• Grundlage ist Algorithmus von Dijkstra
• Prinzip:
D
y
 min D( y), D(v)  c(v, y)
v
2
1
x
y
7
15.01.2008
Universität Freiburg
17
Dijkstra-Algorithmus
1.
2.
3.
4.
5.
6.
Initialization
N' = {x}
for all nodes v
if v is a neighbour of x
then D(v) = c(x,v)
else D(v) = infinity
7.
8.
9.
10.
11.
12.
13.
14.
Loop
find v not in N' such that D(v) is a minimum
add v to N'
update D(v) for each neighbour v of w and not in N':
D( y)  min D( y), D(v)  c(v, y)
/* new cost to y is ether old cost to y or known
least path cost to v plus cost from v to y */
until N' = N
15.01.2008
Universität Freiburg
18
Dijkstra-Algorithmus (0)
Beispiel:
N  u, v, w, x, y, z
5
3
w
v
2
2
3
5
z
1
u
1
15.01.2008
x
y
2
1
Universität Freiburg
19
Dijkstra-Algorithmus (1)
Beispiel:
Initialisierungsphase
N  x, v, w, y, z
5
Dv  2
N '  u
Dw  5
3
w
v
5
D
2
2
3
z

z
1
u
1
x
D
15.01.2008
x
1
2
y
1
D
y

Universität Freiburg
20
Dijkstra-Algorithmus (2)
Beispiel:
N  v, w, y, z
5
Dv  2
D
D
w
N ' u, x
 min( 5,4)
4
w
3
w
v
5
D
2
2
3
z

z
1
u
1
x
D
15.01.2008
x
1
2
y
1
D
y
2
Universität Freiburg
21
Dijkstra-Algorithmus (3)
Beispiel:
N  v, w, z
5
Dv  2
D
D
3
w
3
w
w
v
N ' u, x, y
 min( 4,3)
5
D
2
2
3
z
4
z
1
u
1
x
D
15.01.2008
x
1
2
y
1
D
y
2
Universität Freiburg
22
Dijkstra-Algorithmus (4)
Beispiel:
N  w, z
5
Dv  2
N ' u, x, y, v
Dw  3
3
w
v
5
D
2
2
3
z
4
z
1
u
1
x
D
15.01.2008
x
1
2
y
1
D
y
2
Universität Freiburg
23
Dijkstra-Algorithmus (5)
Beispiel:
N  z
5
Dv  2
N ' u, x, y, v, w
Dw  3
3
w
v
5
D
2
2
3
z
4
z
1
u
1
x
D
15.01.2008
x
1
2
y
1
D
y
2
Universität Freiburg
24
Dijkstra-Algorithmus (6)
Beispiel:
N  
5
Dv  2
N ' u, x, y, v, w, z
Dw  3
3
w
v
5
D
2
2
3
z
4
z
1
u
1
x
D
15.01.2008
x
1
2
y
1
D
y
2
Universität Freiburg
25
Open Shortest Path First
• variable Kostenfunktion
• Überwachung der Kosten zu Nachbarn (Link-State)
durch HELLO Pakete
• Datenaustausch regelmässig
durch (LSAdvertisment)
• Änderungen sofort übertragen
(LSAnnounce)
• Implementierung durch eigenes
Level-3 Protokoll (ID 89)
15.01.2008
Universität Freiburg
26
Features OSPF
• Multicast
– eine Nachricht an mehrere Empfänger
• Sicherheit
– Authentifizierung
• Designierter Router (DR)
– ermöglicht zentrale Verteilung
• Topologie
15.01.2008
Universität Freiburg
27
Topologie
15.01.2008
Universität Freiburg
28
Literaturhinweise
Computer Networking, A Top-Down Approach Featuring the Internet,
von James F. Kurose, Keith W. Ross
Algorithmen und Datenstrukturen, Thomas Ottmann, Peter Widmayer
RFC1058 RIP http://tools.ietf.org/html/rfc1058
RFC2453 RIPv2 http://tools.ietf.org/html/rfc2453
RFC2328 OSPF http://tools.ietf.org/html/rfc2328
On a Routing Problem in Quarterly of Applied Mathematics, R. E. Bellman
16(1)/1958. Brown University
Network flow theory, L. R. Ford
Paper P-923. The Rand Corporation, Santa Monica 1956
15.01.2008
Universität Freiburg
29
Zusammenfassung & Fragen
Vielen Dank für die Aufmerksamkeit
15.01.2008
Universität Freiburg
30
Herunterladen