Internet Routing SS 2012 Grundlagen der Rechnernetze Internetworking 16
Forwarding und Routing Forwarding Tabelle H7 H1 H2 H3 Adresse Interface MAC Adr. Host H1 3 Adr(H1) Host H2 3 Adr(H2) Netz N1 3 1 R1 2 Host H3 3 Adr(H3) Netz N2 1 Adr(R2) Netz N3 2 Adr(R3) R2 R3 Netz N2 Netz N3 H4 H5 H6 H7 Woher bekommt man die Forwarding Tabelle? SS 2012 Grundlagen der Rechnernetze Internetworking 17
Routing Wir betrachten zunächst Routing als Graph Problem. Gegeben sei ein Graph mit gewichteten Kanten (hier der Einfachheit halber ein ungerichteter Graph): B 3 D 1 F 12 3 1 4 7 A 1 C 4 E Finde die kürzesten Pfade zwischen den einzelnen Knoten. Was wäre wohl per draufgucken der kürzeste Pfad P von A nach F? Was ist das Gesamtgewicht w(p) dieses Pfades? SS 2012 Grundlagen der Rechnernetze Internetworking 18
Routing Algorithmen Distanzvektor Routing Link State Routing Ziel Distanz H1 5 H2 3 H3 7 H4 2 Ziel Distanz H1 7 H2 4 H3 4 H4 1 R R1 R2 R Globale Information an Nachbarn (verteilter Routing Algorithmus) Von allen Nachbarinformation an alle (zentraler Routing Algorithmus) SS 2012 Grundlagen der Rechnernetze Internetworking 19
Internet Routing Distanzvektor Routing (aka. Bellman Ford) SS 2012 Grundlagen der Rechnernetze Internetworking 20
Grundidee B Initiale Distanzvektortabellen Stetiger Austausch und Aktualisierung dieser Tabellen (Routing Update) Tabelle von B D E Ziel Next Dist C A A 1 B 0 C C 1 D D 1 E?? 1 Tabelle von C Ziel Next Dist A A 1 B B 1 C 0 D D 1 E E 1 B C A Initiale Tabelle von A Ziel Next Dist A 0 B B 1 C C 1 D?? 1 Neue Tabelle von A Ziel Next Dist A 0 B B 1 C C 1 D B 2 SS 2012 E Grundlagen?? 1der Rechnernetze E Internetworking C 2 21 A Kantengewichte hier vereinfacht alle auf 1 gesetzt.
Details zu Routing Updates Ziel Next Dist x i z i c i v Ziel Next Dist x i v i d i u x i v c i +1 Generelle Regel für Knoten u: 1. Aktualisiere itetabellenzeile (x i, y i, d i ), wenn für die von Knoten v empfangene Tabellenzeile (x i, z i, c i ) gilt: d i > c i + 1 2. Die aktualisierte Tabellenzeile ist dann (x i, v, c i + 1) (Erweiterung auf gewichtete Kanten offensichtlich: ersetze +1 mit Kantengewicht für Kante uv) SS 2012 Grundlagen der Rechnernetze Internetworking 22
Wann versendet ein Knoten ein Routing Update? Periodic Update: Tabellen werden regelmäßig an Nachbarn geschickt Damit wissen die Nachbarknoten, dass es den Link und Knoten noch gibt. Werden über einen bestimmten Zeitraum keine Updates mehr empfangen, so wird der Link als ausgefallen interpretiert Triggered Update: Wann immer ein Knoten seine Routing Tabelle geändert hat Nach lokal festgestelltem Link Ausfall Nach Empfang eines Routing Updates von einem Nachbarn Das kann wiederum eine Änderung in den Nachbarknoten und damit Routing Updates von den Nachbarn bewirken (usw.) SS 2012 Grundlagen der Rechnernetze Internetworking 23
Forwarding anhand der Routing Tabellen D E B C Ziel Next Dist A A 1 B B 1 C 0 D D 1 E E 1 A Ziel Next Dist A 0 B B 1 C C 1 D B 2 E C 2 Randbemerkung Routing Tabelle: speichert alles was man für das Routing benötigt. Forwarding Tabelle: speichert alles was man für das Forwarding benötigt Kann ein und dieselbe Tabelle sein; muss es aber nicht. SS 2012 Grundlagen der Rechnernetze Internetworking 24
Beispiel eines Link Ausfalls Tabelleneinträge bzgl. Knoten G: B Dst Next Hops Dst Next Hops G F 2 C A G D 2 D E Dst Next Hops G G 1 F G Stabilisiert sich das Netz immer in dieser Form? SS 2012 Grundlagen der Rechnernetze Internetworking 25
Count to Infinity Problem C C A A B B D Lösungsansatz 1: ignorieren. Am Ende wird sowieso bis 1 hoch gezählt. Lösungsansatz 2: Split Horizon. Routing Updates nur zu Nachbarn, die nicht selber der nächste Hop sind. Lösungsansatz 3: Split Horizon with Poison Reverse. Routing Updates zu allen Nachbarn. Allerdings Routing Update 1 zu denen, die selber der nächste Hop sind. Funktioniert das immer? SS 2012 Grundlagen der Rechnernetze Internetworking 26
Internet Routing Link State Routing SS 2012 Grundlagen der Rechnernetze Internetworking 27
Link State Routing (R,U) (R,V) (R,W) (R,X) (R,Y) Erster Schritt U Zweiter Schritt Y R V R X W R Jeder Knoten teilt allen anderen seine adjazenten Kanten mit (Flooding) Jeder Knoten hat globale Sicht und kann alle kürzesten Pfade berechnen SS 2012 Grundlagen der Rechnernetze Internetworking 28
Reliable Flooding Jeder Knoten versendet Link State Pakete (LSP) mit folgender Info: ID des Knotens, der das LSP erzeugt hat Liste der direkten Nachbarn (inklusive Link Kosten) eine Sequenznummer Ein TTL Wert für das Paket Jedes LSP wird geflutet, d.h.: LSP Erzeuger inkrementiert eine lokale Sequenznummer und versendet das LSP mit dieser Nummer Jeder Knoten, der ein neueres (d.h. höhere Sequenznummer) LSP empfängt, leitet dieses an alle Nachbarn (außer dem, von dem das LSP empfangen wurde) weiter LSP mit älteren oder gleicher nummer werden ignoriert Des Weiteren werden LSPs ab bestimmtem TTL Wert ebenfalls verworfen SS 2012 Grundlagen der Rechnernetze Internetworking 29
Routenberechnung mittels Dijkstra Algorithmus Es sei s der Startknoten, N die Menge aller Knoten und l(v,w) die Kosten der Verbindung von v nach w. Wir definieren: c(v) = aktuelle Kosten von v m(v) = Markierung der schon behandelten Knoten pre(v) = Vorgänger von v entlang der kürzesten Route nach s Dijkstra Algorithmus: Für alle v in N-{s} setze c(v)=1 und m(v)=false c(s)=0 und m(s)=false Solange noch unmarkierte Knoten existieren: Finde unmarkierten Knoten v mit kleinstem Wert c(v) m(v) = true Für jeden unmarkierten Nachbarknoten w: Wenn c(w) > c(v) + l(v,w) dann pre(w) = v c(w) = c(v) + l(v,w) SS 2012 Grundlagen der Rechnernetze Internetworking 30
Beispiel an der Tafel SS 2012 Grundlagen der Rechnernetze Internetworking 31
Internet Routing Konkrete Realisierungen im Internet SS 2012 Grundlagen der Rechnernetze Internetworking 32
Anwendung dieser Verfahren im Internet? Skalierbarkeit Kommunikationsoverhead Speicheroverhead Langsame oder keine Konvergenz Administrative Autonomie Freie Wahl von Routing Protokollen Verbergen von Netzinterna SS 2012 Grundlagen der Rechnernetze Internetworking 33
Autonomous Systems (AS) Gateway Router H2 2c H1 H2 in AS2 3c 3b 3a 1a 1c 1b 2a AS2 2b AS3 1d AS1 Intra AS Routing Beispiel: Routing Information Protocol (RIP) Beispiel: Open Shortest Path First (OSPF) Inter AS Routing Border Gateway Protocol (BGP) SS 2012 Grundlagen der Rechnernetze Internetworking 34
RIP und OSPF Routing Information Protocol (RIP) = Distanzvektor Routing (ungewichtet) Open Shortest Path First (OSPF) = Link State Routing (gewichtet) OSPF erlaubt zusätzliche Hierarchie in einem AS: Backbone Router Area Border Router Internal Router H2 in Area 3 Area 1 H1 Area 2 Separates OSPF in Backbone und jeder Area Area 3 H2 SS 2012 Grundlagen der Rechnernetze Internetworking 35
BGP Grundlagen AS3 AS2 2c 3c 3b 3a 1c AS1 1b 2a 2b Ziel Pfad Next xin AS1 AS1 3a 1c y in AS2 AS1 AS2 3a 1c 1a z in AS3 Border Gateway Protocol (BGP) = Distanzvektor Routing (ungewichtet) Aber: Distanzvektortabelle speichert komplette Pfade anstatt Distanzwert Aber: Distanzvektortabelle muss zusätzlich den ersten Hop speichern Aber: Distanzvektortabellen werden nicht unreflektiert ausgetauscht Aber: Zwei AS können durch mehrere Kanten verbunden sein 1d SS 2012 Grundlagen der Rechnernetze Internetworking 36
BGP Policy Ziel Pfad Ziel Pfad B z in Y X C Y z in X A B XorA C X X W A Ziel z in W Pfad B A W C Y Kunden AS Provider AS Beispielregeln: 1. Kunden AS darf nur Kommunikationsendpunkt sein 2. B möchte keinen Verkehr zwischen A und C tragen 3. A will niemals Verkehr über B leiten SS 2012 Grundlagen der Rechnernetze Internetworking 37
Limitierter Adressbereich SS 2012 Grundlagen der Rechnernetze Internetworking 38
Problemstellung Mit den Standard IP Adressen lassen sich maximal Hosts adressieren. 2 32 = 4.294.967.296» 4,3 Mrd. Das ist schon alleine ein Problem weltweit alle gewöhnlichen Hosts mit einer eindeutigen Adresse zu versehen. Darüber hinaus werden in Zukunft nicht nur gewöhnliche PCs am Internet angeschlossen sein, sondern beispielsweise auch: Mobiltelefone Fernseher und viele andere Geräte des täglichen Lebens SS 2012 Grundlagen der Rechnernetze Internetworking 39
Ein Patch auf die Schnelle Network Adress Translation (NAT) Lokalen Hosts werden temporär globale Adressen zugeordnet. In ausgehenden IP Paketen wird von der NAT Box die lokale Adresse mit der zugehörenden globalen Adresse ersetzt. In ankommenden IP Paketen wird von der NAT Box die globale Adresse mit der zugehörenden lokalen ersetzt. Lokal eindeutige Adresse: 10.0.1.5 H Lokales Netz IP Paket: Quelle: 10.0.1.5 NAT Box Verfügbare eindeutige globale Adressen: 171.69.210.246,..., 171.69.210.252 IP Paket: Ziel: 10.0.1.5 Ins Internet IP Paket: Quelle: 171.69.210.246 IP Paket: Ziel: 171.69.210.246 SS 2012 Grundlagen der Rechnernetze Internetworking 40
Das Hauptthema von IPv6 Bisher haben wir IP Version 4 (kurz IPv4) betrachtet. Es gibt Bemühungen das heutige Internet mit einer IP Version 6 (kurz IPv6) zu verbessern. Ein wichtiger Punkt bei IPv6: stelle genügend Adressen zu Verfügung IPv6 definiert 128 Bit Adressen. Damit können etwa 3,4 10 38 Hosts adressiert werden oder anders gesagt 655 570 793 348 866 943 898 599 Adressen pro Quadratmeter der Erde vergeben werden. SS 2012 Grundlagen der Rechnernetze Internetworking 41
Wechsel von IPv4 nach IPv6? Aufgrund der Größe und dezentralen Organisation des Internets ist ein einfacher Wechsel von v4 nach v6 nicht durchführbar. Möglichkeit: fließender Wechsel, der über Jahre hinweg paralleles betreiben von IPv4 und IPv6 ermöglicht. Mechanismen: Dual Stack Operation Tunneling SS 2012 Grundlagen der Rechnernetze Internetworking 42
Zusammenfassung und Literatur SS 2012 Grundlagen der Rechnernetze Internetworking 43
Zusammenfassung Das Thema von Internetworking: wie konstruiert man ein großes Netz durch Verbinden von vielen kleinen Netzen Hauptproblem: Heterogenität und Skalierbarkeit Lösung IP Protokoll: Best Effort Service, der von allen aktuellen und möglichen zukünftigen Netztypen unterstützt werden kann Hauptaufgabe: Routing Interdomain Routing Intradomain Routing Tradeoff zwischen Skalierbarkeit und Optimalität: skalierbarkeit durch hierarchische Organisation des Netzes auf Kosten von optimalen Pfaden Aktuelle Probleme: Adressverbrauch! (Routingtabellengrößen) SS 2012 Grundlagen der Rechnernetze Internetworking 44
Literatur [PetersonDavie2007] Larry L. Peterson and Bruce S. Davie, Computer Networks: A Systems Approach, Edition 4, 2007. SS 2012 4.1.2 Service Model 4.1.6 Host Configuration (DHCP) 4.1.7 Error Reporting (ICMP) 4.1.8 Virtual Networks and Tunnels 4.2.1 Network as a Graph 4.2.2 Distance Vector (RIP) 4.2.3 Link State (OSPF) 4.3.3 Interdomain Routing (BGP) 4.3.4 Routing Areas 4.3.5 IP Version 6 (IPV6) Grundlagen der Rechnernetze Internetworking 45