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