Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Martin MauveUniversität Mannheim1 3.6 Interior Gateway Routing Protocols Routing in einer Autonomen Einheit Distance Vector Routing Routing Information.

Ähnliche Präsentationen


Präsentation zum Thema: "Martin MauveUniversität Mannheim1 3.6 Interior Gateway Routing Protocols Routing in einer Autonomen Einheit Distance Vector Routing Routing Information."—  Präsentation transkript:

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

2 Martin MauveUniversität Mannheim2 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

3 Martin MauveUniversität Mannheim3 Distance Vector Routing - Cold Start Beispiel A DE CB From A toLinkCost Alocal0 From B toLinkCost Blocal0 From C toLinkCost Clocal0 From D toLinkCost Dlocal0 From E toLinkCost Elocal0 Von A: A=0 auf links 1 und 3

4 Martin MauveUniversität Mannheim4 Distance Vector Routing - Cold Start Beispiel From A toLinkCost Alocal0 From B toLinkCost Blocal0 From C toLinkCost Clocal0 From D toLinkCost Dlocal0 From E toLinkCost Elocal0 A11 A31 Von B: A=1, B=0 auf links 1, 4, 2 Von D: A=1, D=0 auf links 3, 6 A DE CB

5 Martin MauveUniversität Mannheim5 Distance Vector Routing - Cold Start Beispiel From A toLinkCost Alocal0 From B toLinkCost Blocal0 From C toLinkCost Clocal0 From D toLinkCost Dlocal0 From E toLinkCost Elocal0 A11 A31 B11 D31 B21 A22 B41 A42 D61 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 A DE CB

6 Martin MauveUniversität Mannheim6 Distance Vector Routing - Cold Start Beispiel From B toLinkCost Blocal0 A11 D12 C21 E41 From D toLinkCost Dlocal0 A31 B32 E61 From C toLinkCost Clocal0 B21 A22 E51 D52 From A toLinkCost Alocal0 B11 D31 From E toLinkCost Elocal0 B41 A42 D61 C51 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 A DE CB

7 Martin MauveUniversität Mannheim7 Distance Vector Routing - Cold Start Beispiel From B toLinkCost Blocal0 A11 D12 C21 E41 From D toLinkCost Dlocal0 A31 B32 E61 From C toLinkCost Clocal0 B21 A22 E51 D52 From A toLinkCost Alocal0 B11 D31 From E toLinkCost Elocal0 B41 A42 D61 C51C12 E12 C62 A DE CB

8 Martin MauveUniversität Mannheim8 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 Einträge mit dem Wert unendlich werden nicht im Distanz Vektor übertragen erhält man auf einem Link, über den ein Ziel in der eigenen Routingtabelle geroutet wurde, eine Distanz zu diesem Ziel, die größer ist als bisher, dann muss die Routingtabelle entsprechend aktualisiert werden

9 Martin MauveUniversität Mannheim9 Distance Vektor Routing - Link Ausfall Beispiel From B toLinkCost Blocal0 A1inf D1 C21 E41 From D toLinkCost Dlocal0 A31 B32 E61 From C toLinkCost Clocal0 B21 A22 E51 D52 From A toLinkCost Alocal0 B1inf D31 From E toLinkCost Elocal0 B41 A42 D61 C51C1inf E1 C62 A DE CB 3 6 XXXX Von A: A=0, D=1 auf Link 3 Von B: B=0, C=1, E=1 auf Links 2, 4

10 Martin MauveUniversität Mannheim10 Distance Vektor Routing - Link Ausfall Beispiel From B toLinkCost Blocal0 A1inf D1 C21 E41 From D toLinkCost Dlocal0 A31 B3inf E61 From C toLinkCost Clocal0 B21 A2inf E51 D52 From A toLinkCost Alocal0 B1inf D31 From E toLinkCost Elocal0 B41 A4inf D61 C51 C1 E1 C62 Von C: B=1, C=0, D=2, E=1 auf Link 2, 5 Von D: A=1, C=2, D=0, E=1 auf Links 3, 6 Von E: B=1, C=1, D=1, E=0 auf Links 4, 5, 6 A DE CB 3 6 XXXX 4 2 5

11 Martin MauveUniversität Mannheim11 Distance Vektor Routing - Link Ausfall Beispiel From B toLinkCost Blocal0 A1inf D42 C21 E41 From D toLinkCost Dlocal0 A31 B62 E61 From C toLinkCost Clocal0 B21 A2inf E51 D52 From A toLinkCost Alocal0 B1inf D31 From E toLinkCost Elocal0 B41 A62 D61 C51 C33 E32 C62 Von A: A=0, C=3, D=1, E=2 auf Link 3 Von B: 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 A DE CB 3 6 XXXX 4 2 5

12 Martin MauveUniversität Mannheim12 Distance Vektor Routing - Link Ausfall Beispiel From B toLinkCost Blocal0 A43 D42 C21 E41 From D toLinkCost Dlocal0 A31 B62 E61 From C toLinkCost Clocal0 B21 A53 E51 D52 From A toLinkCost Alocal0 B33 D31 From E toLinkCost Elocal0 B41 A62 D61 C51 C33 E32 C62 A DE CB 3 6 XXXX 4 2 5

13 Martin MauveUniversität Mannheim13 Distance Vector Routing - Counting to Infinity A DE CB 3 XXXX From D toLinkCost Dlocal0 A31 B6inf E6 From A toLinkCost Alocal0 B33 D31 C33 E32 C6inf 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

14 Martin MauveUniversität Mannheim14 Distance Vector Routing - Counting to Infinity From D toLinkCost Dlocal0 A31 B34 E33 From A toLinkCost Alocal0 B33 D31 C33 E32 C34 Von D: A=1, B=4, C=4, D=0, E=3 auf Link 3 From D toLinkCost Dlocal0 A31 B34 E33 From A toLinkCost Alocal0 B35 D31 C35 E34 C34 Von A: A=1, B=5, C=5, D=1, E=4 auf Link 3

15 Martin MauveUniversität Mannheim15 Counting to Infinity - Einfache Lösung man definiert eine Zahl als unendlich diese Zahl muss größer sein, als die größte mögliche Distanz zwischen zwei Knoten wird diese Zahl erreicht, dann wird der Eintrag in der Routing Tabelle auf unendlich gesetzt Probleme: dies dauert entweder sehr lange (wenn die Zahl groß ist), oder die Größe des Netzes/Auflösung der Distanzen wird beschränkt (wenn die Zahl klein ist) während counting to infinity stattfindet werden Pakete im Kreis geroutet

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

17 Martin MauveUniversität Mannheim17 Distance Vector Routing - Split Horizon A DE CB 3 XXXX From D toLinkCost Dlocal0 A31 B6inf E6 From A toLinkCost Alocal0 B33 D31 C33 E32 C6inf 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)

18 Martin MauveUniversität Mannheim18 Distance Vector Routing - Problem bei Split Horizon A DE CB 3 XXXX From B toLinkCost Blocal0 A43 D42 C21 E41 From C toLinkCost Clocal0 B21 A53 E51 D52 From E toLinkCost Elocal0 B41 A6inf D6 C51 Von E: B=inf, C=1, E=0 auf Link 4 (poisonous reverse) Von E: B=1, C=inf, E=0 auf Link 5 (poisonous reverse) Der Distanzvektor auf Link 5 geht verloren und kommt nicht bei C an.

19 Martin MauveUniversität Mannheim19 Distance Vector Routing - Problem bei Split Horizon A DE CB 3 XXXX From B toLinkCost Blocal0 A4inf D4 C21 E41 From C toLinkCost Clocal0 B21 A53 E51 D52 From E toLinkCost Elocal0 B41 A6inf D6 C51 Nun sei für C die Zeit gekommen, das der Distanzvektor gesendet werden muss (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)

20 Martin MauveUniversität Mannheim20 Distance Vector Routing - Split Horizon Problem A DE CB 3 XXXX From B toLinkCost Blocal0 A24 D23 C21 E41 From C toLinkCost Clocal0 B21 A53 E51 D52 From E toLinkCost Elocal0 B41 A6inf D6 C51 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)

21 Martin MauveUniversität Mannheim21 Distance Vector Routing - Split Horizon Problem A DE CB 3 XXXX From B toLinkCost Blocal0 A24 D23 C21 E41 From C toLinkCost Clocal0 B21 A53 E51 D52 From E toLinkCost Elocal0 B41 A45 D44 C51 Jetzt existiert ein 3er Kreis, in dem es zu count to infinity kommt!

22 Martin MauveUniversität Mannheim22 Distance Vector Routing - Triggered Updates Wann werden Distanz Vektoren gesendet? periodisch (zufällige Variation der Periode) nach Änderung der Routingtabelle (triggered update) Wenn die triggered updates schnell versandt werden, dann kann es zu counting to infinity nur durch Paketverlust kommen!

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

24 Martin MauveUniversität Mannheim24 Routing Information Protocol (RIP) Version 1 RFC1058, Routing Information Protocol, C.L. Hedrick, Jun , 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 zusammengefasst. Hostadressen: Host ID nicht 0. Optional, muss nicht von jedem Router unterstützt werden.

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

26 Martin MauveUniversität Mannheim26 RIP Version 1 - Nachrichtenformat IP + UDP header (28 bytes) command (1, 2)must be zeroversion (1) IP address must be zeroaddress family identifier (2) must be zero metric must be zero weitere Einträge.....

27 Martin MauveUniversität Mannheim27 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

28 Martin MauveUniversität Mannheim28 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, dass Distance Vektor Routing prinzipiell nicht gut ist (counting to infinity!!!) wichtigste Erweiterungen: subnet routing authentication

29 Martin MauveUniversität Mannheim29 RIP Version 2 - Nachrichtenformat IP + UDP header (28 bytes) command (1, 2)routing domainversion (2) IP adress route tagaddress family identifier (2,0xFFFF) subnet mask metric next hop weitere Einträge.....

30 Martin MauveUniversität Mannheim30 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 Systeme auf dem selben LAN subnet mask: bessere Unterstützung von subnets next hop: wird in Zusammenspiel mit exterior gateway protocols (EGP, BGP) verwendet – hier nicht betrachtet

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

32 Martin MauveUniversität Mannheim32 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 Passwort, oder digitale Unterschrift über das gesamte Paket ist nicht wirklich sicher, da 16 byte zu wenig sind!

33 Martin MauveUniversität Mannheim33 RIP Version 2 - Authentication authentication type 2 Passwort andere Werte sind spezifiziert, z.B. MD-5 Hash authentication Daten, ja nach authentication type (z.B. Passwort) IP + UDP header (28 bytes) command (1, 2)routing domainversion (2) authentication (16 bytes) authentication typeaddress family identifier (0xFFFF) weitere Einträge.....

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

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

36 Martin MauveUniversität Mannheim36 Link State Routing - Ausgangssituation A DE CB FromLinkCost A11 A31 B11 B21 B41 To B D A C E C21B FromLinkCost C51 D31 D61 E41 E51 To E A E B C E61D Karte/Datenbank: Number

37 Martin MauveUniversität Mannheim37 Link State Routing - Link Ausfall A DE CB 3 6 XXXX From A, to B, link 1 distance = infinite, number 2 From B, to A, link 1 distance = infinite, number 2

38 Martin MauveUniversität Mannheim38 Link State Routing - Nachrichtenbehandlung Empfange Nachricht. Schlage den entsprechenden Eintrag in der Datenbank nach. Wenn kein Eintrag existiert, füge die Nachricht als neuen Eintrag in die Datenbank ein, leite die Nachricht an alle Interfaces weiter, außer dem Interface auf dem die Nachricht empfangen wurde. Wenn ein Eintrag mit niedrigerer Nummer vorhanden ist, aktualisiere den Eintrag und leite die Nachricht weiter. Wenn ein Eintrag mit höherer Nummer vorhanden ist, schicke diesen Eintrag über das Interface, auf dem die veraltete Nachricht erhalten wurde zurück. Wenn ein Eintrag mit derselben Nummer vorhanden ist, ignoriere die Nachricht.

39 Martin MauveUniversität Mannheim39 Link State Routing - Link Ausfall FromLinkCost A1inf A31 B1 B21 B41 To B D A C E C21B FromLinkCost C51 D31 D61 E41 E51 To E A E B C E61D Karte/Datenbank nachdem die Informationen über den Linkausfall von A und B geflutet wurden: Number

40 Martin MauveUniversität Mannheim40 Link State Routing - Bringing Up Adjacencies A DE CB 3 XXXX From D, to E, link 6 distance = infinite, number 2 From E, to D, link 6 distance = infinite, number 2 XXXX Im Folgenden werden die Topologieinformationen für die beiden Partitionen unterschiedlich sein! Wir wollen verstehen, wie sich diese Unterschiede wieder angleichen, wenn die Konnektivität wieder hergestellt wird. Dieser Vorgang heißt Bringing Up Adjacencies.

41 Martin MauveUniversität Mannheim41 Link State Routing - Bringing Up Adjacencies FromLinkCost A1inf A31 B1 B21 B41 To B D A C E C21B C51 D31 D6inf E41 E51 E A E B C E61D Number Datenbank von A und D FromLinkCost A1inf A31 B1 B21 B41 To B D A C E C21B C51 D31 D61 E41 E51 E A E B C E6infD Number Datenbank von B, C und E

42 Martin MauveUniversität Mannheim42 Link State Routing - Bringing Up Adjacencies A DE CB 3 XXXX 4 5 From B, to C, link 2 distance = infinite, number 2 From C, to B, link 2 distance = infinite, number 2 XXXX Diese Informationen werden nur in einer Partition geflutet (die andere ist nicht zu erreichen)! XXXX

43 Martin MauveUniversität Mannheim43 Link State Routing - Bringing Up Adjacencies FromLinkCost A1inf A31 B1 B21 B41 To B D A C E C21B C51 D31 D6inf E41 E51 E A E B C E61D Number Datenbank von A und D FromLinkCost A1inf A31 B1 B2 B41 To B D A C E C2infB C51 D31 D61 E41 E51 E A E B C E6 D Number Datenbank von B, C und E

44 Martin MauveUniversität Mannheim44 Link State Routing - Bringing Up Adjacencies A DE CB 3 XXXX 4 5 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. XXXX 1

45 Martin MauveUniversität Mannheim45 Link State Routing - Bringing Up Adjacencies FromLinkCost A11 A31 B11 B21 B41 From B D A C E C21B C51 D31 D6inf E41 E51 E A E B C E61D Number Datenbank von A und D FromLinkCost A11 A31 B11 B2inf B41 From B D A C E C2infB C51 D31 D61 E41 E51 E A E B C E6 D Number Datenbank von B, C und E

46 Martin MauveUniversität Mannheim46 Link State Routing - Bringing Up Adjacencies sobald ein Link wieder hochfährt: database description packets werden ausgetausch, diese identifizieren die Einträge in der Datenbank und die jeweilige Nummer: z.B. From A, to B, Number 3 der Austausch findet zwischen den beiden Knoten statt, zwischen denen die Verbindung wieder hergestellt wurde diese Beschreibung wird vom Empfänger überprüft, sind Einträge vorhanden, die eine höhere Nummer haben, als in der eigenen Datenbank, dann werden diese Einträge mit Hilfe von link state request packets angefordert dieses Vorgehen minimiert das Volumen der Daten, die übertragen werden müssen

47 Martin MauveUniversität Mannheim47 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 (Passwort, Signatur)

48 Martin MauveUniversität Mannheim48 Link State Routing - Lokale Berechnung der Routing Tabelle Mit Hilfe des von Dijkstra entwickelten shortest Path first Algorithmus: 1Initialisiere 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. 2Wenn O leer ist, oder alle Pfade in O unendliche Kosten haben, dann markiere alle Knoten in R als nicht erreichbar. Ende. 3Sei 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. 3Konstruiere neue Pfade, die P als Basis haben und die um die Pfade die von V einen Schritt weit wegführen. Füge diese in O in sortierter Weise ein. Gehe zu Schritt 2.

49 Martin MauveUniversität Mannheim49 Link State Routing - Lokale Berechnung der Routing Tabelle - Beispiel A DE CB Achtung! Nun repräsentieren die Zahlen die Distanz (= Verzögerung, Kosten, etc.) zwischen zwei Knoten. E={A}, R={B, C, D, E} O={A-B-1, A-D-2} E={A, B}, R={C, D, E} O={A-D-2, A-B-E-3, A-B-C-6} Kürzeste Pfade: {A-B-1} E={A, B, D}, R={C, E} O={A-B-E-3, A-D-E-4, A-B-C-6} Kürzeste Pfade: {A-B-1, A-D-2} E={A, B, D, E}, R={C} 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} Achtung 2 Schritte!!! E={A, B, C, D, E}, R={} O={A-B-C-6} Kürzeste Pfade: {A-B-1, A-D-2, A-B-E-3, A-B-E-C-4} Dann noch 1 weiterer Schritt bis zum Ende!

50 Martin MauveUniversität Mannheim50 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 muss dann aber dieselbe Metrik für das Routing verwendet werden

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

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

53 Martin MauveUniversität Mannheim53 OSPF - Gemeinsamer Header IP header (20 bytes) - protocol type version (2)packet lengthtype (1-5) router ID autypechecksum area ID authentication type specific header

54 Martin MauveUniversität Mannheim54 OSPF - Gemeinsamer Header version: 2 type: OSPF Nachrichtentype 1-5 packet length: Anzahl der bytes im Paket router ID: IP Adresse des Routers (eine wird ausgewählt um diesen zu identifizieren) area ID: identifiziert ein Gebiet (dient der hierarchischen Gestaltung eines OSPF Netzes - 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= Passwort, andere) authentication: z.B. Passwort

55 Martin MauveUniversität Mannheim55 OSPF - Hello Protocol OSPF packet header, type=1 (hello) optionshello intervalpriority network mask dead interval backup designated router designated router more neighbors... neighbor

56 Martin MauveUniversität Mannheim56 OSPF - Hello Protocol network mask: des Subnetzes, auf welches das hello Packet geschickt wurde hello interval: in diesem Intervall wird die Hello Nachricht wiederholt dead interval: wenn keine Nachricht von einem Nachbar Router in dieser Zeit empfangen wurde, dann gilt die Verbindung als gestört, der Eintrag wird entfernt neighbor: in dieser Liste stehen alle Nachbarn, von denen ein hello in den letzten dead interval Sekunden empfangen wurde alle anderen Felder: hier nicht behandelt (s. Huitema Buch oder RFC 1247)

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

58 Martin MauveUniversität Mannheim58 OSPF - Exchange Protocol OSPF packet header, type=2 (database descritpion/dd) optionsmust be 0IMMS DD sequence number link state ID link state type more record descriptions advertising router must be 0 link state sequence number link state checksumlink state age

59 Martin MauveUniversität Mannheim59 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. Link State Type: Es gibt verschiedene Arten von Links, z.N. von Router zu Router, von Router in ein Subnetz, von Router in externe Netze, etc. wir betrachten nur Router-Router. Link State ID + Advertising Router: identifiziert zusammen mit Link Stae Type eindeutig die Informationen die angekündigt werden. Rest ist selbsterklärend Achtung! Bei OSPF beinhaltet ein Datenbankeintrag alle Wege, die von einem Router berichtet werden – daher werden die Einträge sehr kompakt!

60 Martin MauveUniversität Mannheim60 OSPF - Exchange Protocol - Funktionsweise Wenn ein neuer Link hochfährt: Sende ein leeres dd Paket mit IMMS = 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 = und der gleichen Sequenznummer, sowie einer Zusammenfassung der eigenen Einträge in der Datenbank soweit diese in ein einziges Paket passt. Wenn man eines geschickt hat, dann haben sich beide Pakete im Netz überkreuzt (oder es ist eines verloren gegangen). Dann wird derjenige slave, der die niedrigere IP Adresse hat. Dieser antwortet entsprechen.

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

62 Martin MauveUniversität Mannheim62 OSPF - Exchange Protocol - Funktionsweise 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 OSPF packet header, type=3 (request/rq) link state ID link state type more record requests advertising router

63 Martin MauveUniversität Mannheim63 OSPF - Flooding Protocol OSPF packet header, type=4 (link state update) number of advertisements link state ID zero or more link descriptions advertising router link state sequence number link state checksumlink state length link state ageoptionslink state type.... link state ID link state ageoptionslink state type....

64 Martin MauveUniversität Mannheim64 OSPF - Flooding Protocol in jeder link state update Nachricht können mehrere link state advertisements enthalten sein link state age - link state checksum: wie IP für Exchange protocol 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. Jeder Eintrag ist recht gross: 50+ bytes.

65 Martin MauveUniversität Mannheim65 OSPF Link Description (Beispiel!) Link ID Link Data Type FlagsNumber of Links Number of TOSDefault Metric TOSMust be 0TOS Metric.... TOSMust be 0TOS Metric Link ID Link Data....

66 Martin MauveUniversität Mannheim66 OSPF Link Description Link ID: Identifiziert einen Link Link Data: genauere Beschreibung des Links, z.B. IP Adresse des Nachbarn falls es ein Link zu einem anderen Router ist. Type: Art des Links, z.B. zu einem anderen Router, in ein Subnetz, etc. Default metric: Metrik die normalerweise für diesen Link verwendet wird. TOS/TOS Metrik: Metriken die für bestimmte TOS verwendet werden.

67 Martin MauveUniversität Mannheim67 OSPF - Flooding Protocol OSPF packet header, type=5 (link state acknowledgement) link state ID advertising router link state sequence number link state checksumlink state length link state ageoptionslink state type (1) more acknowledgement

68 Martin MauveUniversität Mannheim68 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

69 Martin MauveUniversität Mannheim69 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

70 Martin MauveUniversität Mannheim70 Alternative Ansätze - IGRP Interior Gateway Routing Protocol proprietäres Protokoll der Firma cisco verwendet distance vector Technik verbessert RIP in einigen entscheidenden Gebieten: verschiedene Metriken besserer Schutz vor Schleifen alternierendes Routing auf mehreren Pfaden einige der Verbesserungen sind von cisco patentiert

71 Martin MauveUniversität Mannheim71 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!

72 Martin MauveUniversität Mannheim72 Exkursion NAPs, POPs und ISPs: Wie sieht das Internet aus?

73 Martin MauveUniversität Mannheim73 Das Internet (USA) 1969 Aus: Sam Halabi: Internet Routing Architctures, second edition.

74 Martin MauveUniversität Mannheim74 Das Internet (USA) 1976 Aus: Sam Halabi: Internet Routing Architctures, second edition.

75 Martin MauveUniversität Mannheim75 Das Internet (USA) 1991 Aus: Sam Halabi: Internet Routing Architctures, second edition.

76 Martin MauveUniversität Mannheim76 Das Internet (USA) - Gegenwart Aus: Sam Halabi: Internet Routing Architctures, second edition.

77 Martin MauveUniversität Mannheim77 ISP Ein Internet Service Provider (ISP) stellt den Zugang zum Internet zur Verfügung: Über Standleitungen/Einwahlverbindungen/DSL/etc. Kann auch Zugang für andere ISPs bereitstellen (wird dann manchmal Network Service Provider (NSP) genannt) Kann erweiterte Dienste anbieten: Web-Hosting Sicherheitsgarantien Hardwareverleih und -pflege

78 Martin MauveUniversität Mannheim78 POP Ein point-of-presence (POP) ist eine Einrichtung bei der ein ISP physikalisch präsent ist: Niederlassung Kabelhäusschen Ein POP ermöglicht den Zugang zu diesem ISP POPs können gemeinsam benutzt werden (siehe Telekom)

79 Martin MauveUniversität Mannheim79 NAP Ein Network Access Point (NAP) ist eine Ansammlung von Routern mehrerer ISPs, er dient dem Weiterleiten des Verkehrs zwischen ISPs (peering). ISPs können auch direkt untereinander verbunden sein (direct interconnection): auch dies ist ein peering. Probleme Wo lohnt sich der Anschluss an einen NAP, wann ist eine direkte Verbindung sinnvoll? wer zahlt wem wieviel Geld für welche Leistung?

80 Martin MauveUniversität Mannheim 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

81 Martin MauveUniversität Mannheim81 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-4) - wird zur Zeit verwendet

82 Martin MauveUniversität Mannheim82 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.

83 Martin MauveUniversität Mannheim83 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ässt. 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!

84 Martin MauveUniversität Mannheim84 IPv4 Probleme für Exterior Gateway Routing Class B Exhaustion Routing Table Explosion

85 Martin MauveUniversität Mannheim85 Problem 1: 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 Class B Adressen! diese wären bis März 1994 aufgebraucht gewesen, hätte man keine Gegenmaßnahmen ergriffen

86 Martin MauveUniversität Mannheim86 Problem 2: 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 Einträgen!

87 Martin MauveUniversität Mannheim87 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: North America: etc. so können z.B. alle Ziele die sich in Europa befinden in den USA mit einem einzigen Routing Tabellen Eintrag bezeichnet werden!

88 Martin MauveUniversität Mannheim88 CIDR Provider based Allocation auf einer tieferen Ebene (Kontinental/National) muss berücksichtigt werden, dass 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!

89 Martin MauveUniversität Mannheim89 CIDR – Beispiel für Adressvergabe Router in den USA 194.x.x.x x.x.x über Link 1 Link 1 Router im Europäischen Backbone (z.B. London) x.x x.x über Link 2 nach D x.x x.x über Link 3 nach F Router im Deutschen Backbone (z.B. Berlin) x.x x.x über Link 10 nach T-Online D x.x x.x über Link 11 nach AOL D Link 2 Link 10Link 12

90 Martin MauveUniversität Mannheim90 Weltweite Adresseinteilung Aus: Sam Halabi: Internet Routing Architctures, second edition.

91 Martin MauveUniversität Mannheim91 CIDR – Beispiel für Routinginformationen Aus: Sam Halabi: Internet Routing Architctures, second edition.

92 Martin MauveUniversität Mannheim92 CIDR – Longest Match Routing Rule Verwende den Weg, bei dem das Ziel am genausten (mit den meisten bit) beschrieben wird. Aus: Sam Halabi: Internet Routing Architctures, second edition.

93 Martin MauveUniversität Mannheim93 CIDR: Verwendung von fremden Adressen Wenn man Adressen verwendet, die nicht zum Bereich des eigenen ISP gehören, dann: Kann der eigene ISP die Adressen nicht aggregieren Kann der ISP zu dem die Adressen gehören diese nicht mehr aggregieren, da man ein Loch in seinen Adressraum gerissen hat.

94 Martin MauveUniversität Mannheim94 CIDR: Multihoming Problem Achtung: wenn man Adressen aggregiert, die einem nicht gehören, kann es zu Black Holes kommen! Aus: Sam Halabi: Internet Routing Architctures, second edition.

95 Martin MauveUniversität Mannheim95 CIDR: Multihoming Lösung Keine Aggregation von fremden Adressen! Aus: Sam Halabi: Internet Routing Architctures, second edition.

96 Martin MauveUniversität Mannheim96 CIDR: Multihoming Problem II Wenn einer der ISPs ausfällt, dann sind in Largenet die entsprechenden Adressen nicht mehr zu erreichen. Aus: Sam Halabi: Internet Routing Architctures, second edition.

97 Martin MauveUniversität Mannheim97 CIDR: Multihoming Lösung II Ankündigen des spezifischen Netzes, keine Aggregation! / /20 Aus: Sam Halabi: Internet Routing Architctures, second edition.

98 Martin MauveUniversität Mannheim98 Anforderungen an ein Border Gateway Protocol komplette weltweite Vernetzung ist erforderlich die Granularität sollte auf AS Ebene liegen Politisches Routing sollte möglich sein CIDR sollte unterstützt werden dabei muss berücksichtigt werden, dass viele IP-Adressen bereits vor Einführung von CIDR vergeben wurden es darf keine Routing-Schleifen geben Border Gateway Protocol Version 4 (BGP-4) erfüllt diese Anforderungen im Wesentlichen, und wird heute weltweit eingesetzt!

99 Martin MauveUniversität Mannheim99 Border Gateway Protocol Version 4 (BGP-4) Y. Rekhter, T. Li. A Border Gateway Protocol 4 (BGP-4). RFC Wichtiges Ziel in BGP-4 ist es, dass jedes AS autonom mit Hilfe von Politiken entscheiden kann, wie der Verkehr in das/aus dem eigenen AS und wie Verkehr aus anderen AS (transit Verkehr) weitergeleitet wird. Dies ist mit IGPs nicht möglich! Der wesentliche Fortschritt von BGP-3 nach BGP-4 war die Unterstützung von CIDR.

100 Martin MauveUniversität Mannheim100 BGP–4 Grundlagen: Architektur AS: 100 IR1 IR2 BR1 BR2 IR3 EBGP IBGP EBGP IGP

101 Martin MauveUniversität Mannheim101 EBGP External Border Gateway Protocol (EBGP): wird zwischen einem BGP fähigen Routern (BGP Speaker) eines AS und einem BGP Speaker eines anderen AS verwendet dient der Mitteilung von Routen die von einem AS dem anderen AS zur Verfügung gestellt werden ist Bestandteil von BGP-4

102 Martin MauveUniversität Mannheim102 IBGP Internal Border Gateway Protocol (IBGP): wird zwischen BGP Speakern innerhalb eines AS verwendet sorgt für eine konsistente Sicht aller BGP Speaker in einem AS auf alle Routen nach außen ist Bestandteil von BGP-4

103 Martin MauveUniversität Mannheim103 IGP (Routen von Innen nach Außen) Interior Gateway Protocol (IGP): ist das von diesem AS verwendete routing Protokoll für das Routing innerhalb des AS (z.B. RIP oder OSPF) Routen die vom Inneren des AS nach außen führen können auf zwei prinzipielle Arten im IGP behandelt werden: 1. Möglichkeit: es gibt einen standard BGP Speaker an welchen alle Pakete nach außen weitergeleitet werden. 2. Möglichkeit: die BGP Speaker leiten die Informationen über Routen in das IGP weiter (als Distanzvektoren für RIP2, als Topologieinformationen in Form von externen Links in OSPF) Häufig wird die 1. Möglichkeit verwendet, da man die Komplexität (Anzahl der Routen) im IGP gering halten möchte.

104 Martin MauveUniversität Mannheim104 Routen von Außen nach Innen Die BGP Speaker können von den Routen ins Innere auf zwei Arten erfahren: durch das IGP – Problem hierbei ist das häufige Veränderungen in einem AS zu häufigen Routenupdates (u.U. weltweit!) von BGP führen. durch statische Konfiguration – Probleme entstehen hier weil sich die BGP Informationen nicht an die aktuelle Situation anpassen. Beispiel: BR2 kündigt statisch die Erreichbarkeit aller Systeme im AS 100 an die Verbindung zwischen IR2 und IR3 bricht IR1 und IR2 sind nicht mehr erreichbar (obwohl externe System sie über BR1 erreichen könnten)

105 Martin MauveUniversität Mannheim105 Routen von Außen nach Außen (Transitverkehr) Auch hier gibt es zwei Möglichkeiten: Transitverkehr wird durch das AS durchgeleitet. Dabei sind auch Router involviert, die keine BGP Speaker sind. Problem: um die Pakete weiterleiten zu können muss das IGP die Information über alle externen Routen haben. Das macht i.d.R. keinen Sinn, da man genau dieses durch BGP verhindern möchte. Transitverkehr wird nur von BGP Speaker zu BGP Speaker weitergeleitet. Dies ist bei weitem der häufigste Fall in der Praxis.

106 Martin MauveUniversität Mannheim106 BGP-4 Grundlagen: Pfad Vektor BGP verwendet zum Mitteilen von Routen Informationen sogenannte Pfad Vektoren. Ein Pfad Vektor beinhaltet die Nummer der AS, die auf der Route liegen. Hierdurch kann eine Schleifenbildung sicher verhindert werden. Durch den Pfad Vektor erhält man auch Informationen über den Weg, den ein Paket auf dieser Route nehmen wird. Dies erlaubt Routing Politiken, die bestimmte Pfade bevorzugen.

107 Martin MauveUniversität Mannheim107 Pfadvektor & Aggregation von Routen Ziel: der Provider würde gerne eine einzigen Eintrag der Art 22 / an AS Z weitergeben Frage: was wird in die Liste der AS geschrieben, die wir mit der Route durchqueren, wenn mehrere Einträge aggregiert werden? AS X 24 / AS Y 24 / AS Z AS T (Provider) es werden lokal 24 / und 24 / verwendet

108 Martin MauveUniversität Mannheim108 Pfadvektor & Aggregation von Routen 1. Möglichkeit: nur T das kann zu Schleifen über X und Y führen, da die Informationen fehlen, dass 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: Pfad (T), Menge (X, Y) wenn der Pfad z.B. von Z weitergeleitet wird kommt Z in de Liste: Pfad (Z, T), Menge (X, Y) wenn die Pfade rekursiv weiter aggregiert werden, dann wird der Pfad zur Schnittmenge aller aggregierten Pfade und die Menge beinhaltet alle anderen AS aus der Vereinigung aller Pfade und Mengen

109 Martin MauveUniversität Mannheim109 BGP-4: Routing Politiken I Aus: S. Halabi: Internet Routing Architectures. Second Edition. Cisco Press, Sehr empfehlenswert zum Verständnis von BGP.

110 Martin MauveUniversität Mannheim110 BGP-4 Routing Politiken II Empfangene Routen: ein BGP-Speaker empfängt Erreichbarkeitsinformationen von benachbarten BGP-Speakern Eingabe Politik hier werden die empfangenen Erreichbarkeitsinformationen nach unterschiedlichen Kriterien gefiltert: Pfadvektor Präfix andere Kriterien

111 Martin MauveUniversität Mannheim111 BGP-4 Routing Politiken III Entscheidungsprozess unter den noch vorhandenen Erreichbarkeitsinformationen werden die besten ausgewählt, die kann wieder durch Politiken beeinflusst werden. Ausgabe Politiken wie bei den Eingabe Politiken werden auch die an die Nachbar BGP-Speaker anhand verschiedener Kriterien gefiltert man kann so z.B. vermeiden, dass man als transit AS für gewisse andere AS verwendet wird (zur Sicherheit erfordert dies i.d.R. auch eine Filterung des Datenverkehrs)

112 Martin MauveUniversität Mannheim112 BGP-4: Routing Politiken - Beispiel Aus: S. Halabi: Internet Routing Architectures. Second Edition. Cisco Press, Sehr empfehlenswert zum Verständnis von BGP.

113 Martin MauveUniversität Mannheim113 BGP-4 Zuverlässigkeit BGP-4 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-4)

114 Martin MauveUniversität Mannheim114 BGP-4 Generelle Funktionsweise zunächst wird zwischen zwei Routern auf TCP Ebene eine Verbindung hergestellt dann erfolgt ein Nachrichtenaustausch um eine BGP Verbindung herzustellen (OPEN + KEEPALIVE) dann werden die kompletten BGP Routing-Tabellen als Pfad Vektoren ausgetauscht (UPDATE) anschließend werden nur noch die Veränderungen an dieser Tabelle dem jeweiligen Partner mitgeteilt - es erfolgt kein weiterer Austausch der vollständigen Tabelle (UPDATE) periodisch wird geprüft of der Kommunikationspartner noch da ist (KEEPALIVE)

115 Martin MauveUniversität Mannheim115 BGP-4 Gemeinsamer Header lengthtype (1-4) marker (16 byte) 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)

116 Martin MauveUniversität Mannheim116 optional parameters BGP-4 OPEN lengthtype: OPEN marker (16 byte) version my autonomous systemhold time BGP identifier opt. param. len.

117 Martin MauveUniversität Mannheim117 BGP-4 OPEN wird versendet sobald eine Transport (TCP) Verbindung hergestellt ist version: 4 für BGP-4 my autonomous system: Identifier für die AS ID des Senders hold time: Zeitraum in dem ein BGP-4 Paket (z.B. KeepAlive) empfangen werden muss, damit die Verbindung bestehen bleibt BGP identifier: eine IP Adresse des Senders, diese muss durchgehend für jede BGP Kommunikation verwendet werden

118 Martin MauveUniversität Mannheim118 BGP-4 OPEN optional parameters: Möglichkeit zur Angabe weiterer Parameter (z.B. weitere Informationen zur Authentifikation) wenn der Verbindungsaufbau erfolgreich war (BGP Versionen stimme überein und der Empfänger der OPEN Nachricht akzeptiert eine Verbindung mit dem Sender und die Parameter sind Akzeptabel), dann sendet der Empfänger der OPEN Nachricht eine KEEPALIVE Nachricht zum Sender wenn der Verbindungsaufbau erfolglos war, wird mit einer NOTIFICATION Nachricht geantwortet bei Erfolglosigkeit kann der Verbindungsaufbau mit anderen Parametern wiederholt werden

119 Martin MauveUniversität Mannheim119 BGP-4 KEEPALIVE BGP-4 header ohne weitere Daten wird verwendet um dem Nachbarn zu signalisieren, dass man noch da ist wird in der Regel so versandt, dass durchschnittlich 3 BGP-4 Nachrichten beim Nachbarn in hold time Sekunden ankommen, d.h. wenn viele andere BGP- 4 Nachrichten an einen Nachbarn versendet werden müssen wenige KEEPALIVE Nachrichten versandt werden

120 Martin MauveUniversität Mannheim120 BGP-4 UPDATE path attributes (variable length) lengthtype: UPDATE marker (16 byte) path attribute length.... infeasible route len withdrawn routes (variable length) network layer reachability information (NLRI)

121 Martin MauveUniversität Mannheim121 BGP-4 UPDATE infeasible route length: Anzahl der Routen, die zurückgezogen werden sollen, da sie nicht länger gültig sind. infeasible routes: Liste der zurückgezogenen Routen. Einträge in dieser Liste haben die Form: Anzahl signifikante Bits (1 Byte), Signifikante Bits (1- 4 Bytes) beschrieben - z.B. 16 / network layer reachability information: Liste der Netze, die über diese Route erreicht werden. Diese Liste hat das gleiche Format wie die Liste der zurückgezogenen Routen.

122 Martin MauveUniversität Mannheim122 BGP-4 UPDATE: PATH-Attributes PATH-Attributes werden verwendet um Informationen über eine Route mitzuteilen. Dazu gehören: Pfad Vektor + Menge der durchquerten AS Ausgangs-/Aggregations AS diese Informationen werden von den Routing-Politiken verwendet um festzustellen, welche Routen verwendet werden sollen path attribute length: Gesamtlänge aller folgenden Attribute path attributes: Liste bestehend aus folgenden Elementen: attribute flagsattribute typeattribute length (1 or 2 Bytes) attribute data

123 Martin MauveUniversität Mannheim123 BGP-4 UPDATE – PATH-Attributes attribute flags: bit 0 (high order bit) optional bit: wenn 0, dann ist dieses Attribut bekannt (well-known) und muss 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. Well-known Attribute sind immer transitiv (transitiv bit ist auf 1 gesetzt). 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

124 Martin MauveUniversität Mannheim124 BGP-4 UPDATE – PATH-Attribute Attribute die im BGP-4 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 beinhaltet: Den Pfad den die Ankündigung vom ursprünglichen Sender der Errichbarkeitsinformationen oder seit einer Aggregatíon zurückgelegt hat. Hier trägt jeder BGP Speaker, der die Ankündigung weiterleitet seine AS ID ein. Bei einer Aggregation geht diese Information verloren. Die Menge der AS die durchquert wurde. Hierbei wird bei einer Aggregation die Vereinigungsmenge gebildet.

125 Martin MauveUniversität Mannheim125 BGP-4 UPDATE PATH-Attribute weitere Attribute die im BGP-4 RFC festgelegt sind: 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. AGGREGATOR. typ 7, length 6, optional, transitiv. Identifiziert den BPG-Speaker der die letzte Aggregation für diesen Eintrag vorgenommen hat.

126 Martin MauveUniversität Mannheim126 BGP-4 Zusammenfassung BGP-4 ist das Aktuelle Protokoll für inter AS Routing im Internet BGP-4 löst das Problem, dass verschiedene AS unterschiedliche Politiken zum Routing verwenden wollen BGP-4 trifft beschränkt nicht die Struktur, in der mehrere AS zusammengeschaltet werden es löst die Probleme Class B Address Depletion und Routing Table Explosion zumindest soweit, dass das Internet heute noch funktioniert

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

128 Martin MauveUniversität Mannheim128 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, dass 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

129 Martin MauveUniversität Mannheim129 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

130 Martin MauveUniversität Mannheim130 IP Fragmentation - Unterstützung im IP Header identification time to live source IP address versiontotal lengthtype of service destination IP address header checksum data hlength flagsfragment offset protocol options (if any)

131 Martin MauveUniversität Mannheim131 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 dass es die Länge des Fragmentes beinhaltet

132 Martin MauveUniversität Mannheim132 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.

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

134 Martin MauveUniversität Mannheim134 ICMP Unreachable Error - Fragmentation Required IP header (20 bytes) type (3)checksumcode (4) IP header (incl. options) + first 8 bytes of original IP packet data unused (0)MTU of next-hop network

135 Martin MauveUniversität Mannheim135 Fragmentation Demo? mit -s kann unter LINUX die Größe eines ping Paketes festgelegt werden dann kann man mit tcpdump nachsehen was passiert wir verwenden diesmal ein nettes GUI frontend zu tcpdump mit dem Name ethereal mit -D kann man das dont fragment Bit setzen, dies bringt jedoch nicht viel, da meist die MTU des LAN der Engpass ist, d.h. man sieht nichts da das Paket nie den Rechner verlässt


Herunterladen ppt "Martin MauveUniversität Mannheim1 3.6 Interior Gateway Routing Protocols Routing in einer Autonomen Einheit Distance Vector Routing Routing Information."

Ähnliche Präsentationen


Google-Anzeigen