Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der...

30
InternetRouting SS 2012 16 Grundlagen der Rechnernetze ‐ Internetworking

Transcript of Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der...

Page 1: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Internet‐Routing

SS 2012 16Grundlagen der Rechnernetze ‐ Internetworking

Page 2: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Forwarding und Routing

H3H2H1

H5H4 H7H6

R1

R3R2

H7

1 2

Forwarding‐Tabelle

Adresse Interface MAC‐Adr.

Host H1 3 Adr(H1)

Host H2 3 Adr(H2)

Host H3 3 Adr(H3)

Netz N2 1 Adr(R2)

Netz N3 2 Adr(R3)

3

Woher bekommt man die Forwarding‐Tabelle?

Netz N1

Netz N2 Netz N3

Grundlagen der Rechnernetze ‐ InternetworkingSS 2012 17

Page 3: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Routing

Grundlagen der Rechnernetze ‐ Internetworking 18

Wir betrachten zunächst Routing als Graph‐Problem.

Gegeben sei ein Graph mit gewichteten Kanten(hier der Einfachheit halber ein ungerichteter Graph):

Finde die kürzesten Pfade zwischen den einzelnen Knoten.

B D

C

F

A E

12

1

3

3

1

1

4

47

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

Page 4: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Routing AlgorithmenLink‐State‐RoutingDistanzvektor‐Routing

Von allen Nachbarinformation an alle(zentraler Routing‐Algorithmus)

Globale Information an Nachbarn(verteilter Routing‐Algorithmus)

R

R1 R2

Ziel Distanz

H1 5

H2 3

H3 7

H4 2

… …

R

Ziel Distanz

H1 7

H2 4

H3 4

H4 1

… …

Grundlagen der Rechnernetze ‐ InternetworkingSS 2012 19

Page 5: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Internet‐RoutingDistanzvektor‐Routing (aka. Bellman‐Ford)

SS 2012 Grundlagen der Rechnernetze ‐ Internetworking 20

Page 6: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Grundlagen der Rechnernetze ‐ Internetworking

Stetiger Austausch und Aktualisierung dieser Tabellen 

(Routing‐Update)

Neue Tabelle von A

Tabelle von B Tabelle von C

B C

A

GrundideeInitiale Distanzvektortabellen

A

CB

D E Ziel Next Dist

A A 1

B ‐‐ 0

C C 1

D D 1

E ?? 1

Ziel Next Dist

A A 1

B B 1

C ‐‐ 0

D D 1

E E 1

Ziel Next Dist

A ‐‐ 0

B B 1

C C 1

D B 2

E C 2

Initiale Tabelle von AZiel Next Dist

A ‐‐ 0

B B 1

C C 1

D ?? 1E ?? 1

Kantengewichte hier verein‐facht alle auf 1 gesetzt.

SS 2012 21

Page 7: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Details zu Routing‐Updates

Generelle Regel für Knoten u:

1. Aktualisiere iteTabellenzeile (xi, yi, di), wenn für die von Knoten v empfangene Tabellenzeile (xi, zi, ci) gilt: di > ci + 1

2. Die aktualisierte Tabellenzeile ist dann (xi, v, ci + 1)

(Erweiterung auf gewichtete Kanten offensichtlich: ersetze „+1“ mit Kantengewicht für Kante uv)

uv

Ziel Next Dist

… … …

xi zi ci… … …

Ziel Next Dist

… … …

xi vi di… … …

xi v ci+1

Grundlagen der Rechnernetze ‐ InternetworkingSS 2012 22

Page 8: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Wann versendet ein Knoten ein Routing‐Update?

SS 2012 Grundlagen der Rechnernetze ‐ Internetworking 23

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.)

Page 9: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Forwarding anhand der Routing‐Tabellen

SS 2012 Grundlagen der Rechnernetze ‐ Internetworking 24

A

CB

D E

Ziel Next Dist

A ‐‐ 0

B B 1

C C 1

D B 2

E C 2

Ziel Next Dist

A A 1

B B 1

C ‐‐ 0

D D 1

E E 1

Randbemerkung• Routing‐Tabelle: speichert alles 

was man für das Routing benötigt.• Forwarding‐Tabelle: speichert alles 

was man für das Forwardingbenötigt

• Kann ein und dieselbe Tabelle sein; muss es aber nicht.

Page 10: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Beispiel eines Link‐Ausfalls

SS 2012 Grundlagen der Rechnernetze ‐ Internetworking 25

B

D

C

F

A

E

G

Dst Next Hops

G F 2

Dst Next Hops

G G 1

Tabelleneinträgebzgl. Knoten G: Dst Next Hops

G D 2

Stabilisiert sich das Netz immer in dieser Form?

Page 11: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Count‐to‐Infinity‐Problem

SS 2012 Grundlagen der Rechnernetze ‐ Internetworking 26

A BC

A

B

C

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 withPoison Reverse. Routing‐Updates zu allen Nachbarn. Allerdings Routing‐Update 1 zu denen, die selber der nächste Hop sind.

Funktioniert das immer?

Page 12: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Internet‐RoutingLink‐State‐Routing

SS 2012 Grundlagen der Rechnernetze ‐ Internetworking 27

Page 13: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Link‐State‐RoutingZweiter Schritt

Jeder Knoten hat globale Sicht und kann alle kürzesten Pfade berechnen

R

R

Erster Schritt

Jeder Knoten teilt allen anderen seine adjazenten Kanten mit (Flooding)

R

U

V

WX

Y

(R,U)(R,V)(R,W)(R,X)(R,Y)

Grundlagen der Rechnernetze ‐ InternetworkingSS 2012 28

Page 14: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Reliable‐Flooding

SS 2012 Grundlagen der Rechnernetze ‐ Internetworking 29

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

Page 15: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Routenberechnung mittels Dijkstra‐Algorithmus

SS 2012 Grundlagen der Rechnernetze ‐ Internetworking 30

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 vm(v) = Markierung der schon behandelten Knotenpre(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)=falsec(s)=0 und m(s)=falseSolange noch unmarkierte Knoten existieren:

Finde unmarkierten Knoten v mit kleinstem Wert c(v)m(v) = trueFür jeden unmarkierten Nachbarknoten w:

Wenn c(w) > c(v) + l(v,w) dannpre(w) = vc(w) = c(v) + l(v,w)

Page 16: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Beispiel an der Tafel

SS 2012 Grundlagen der Rechnernetze ‐ Internetworking 31

Page 17: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Internet‐RoutingKonkrete Realisierungen im Internet

SS 2012 Grundlagen der Rechnernetze ‐ Internetworking 32

Page 18: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Anwendung dieser Verfahren im Internet?

Skalierbarkeit

KommunikationsoverheadSpeicheroverhead

Langsame oder keine Konvergenz

Administrative Autonomie

Freie Wahl von Routing‐ProtokollenVerbergen von Netzinterna

Grundlagen der Rechnernetze ‐ InternetworkingSS 2012 33

Page 19: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Autonomous‐Systems (AS)

3c 3a

3b

1c

1a

1d

1b

2a

2c

2b

AS1

AS2

AS3

H1

H2

Gateway‐Router

H2 inAS2

Intra‐AS‐RoutingBeispiel: Routing Information Protocol (RIP)Beispiel: Open Shortest Path First (OSPF)

Inter‐AS‐RoutingBorder Gateway Protocol (BGP)

Grundlagen der Rechnernetze ‐ InternetworkingSS 2012 34

Page 20: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

OSPF erlaubt zusätzliche Hierarchie in einem AS:

RIP und OSPFRouting Information Protocol (RIP) = Distanzvektor‐Routing (ungewichtet)Open Shortest Path First (OSPF) = Link‐State‐Routing (gewichtet)

Area 1Area 2

Area 3

Area‐Border‐Router

Backbone‐Router

Separates OSPF in Backbone und jeder Area

H1

H2 inArea 3

H2

Internal‐Router

Grundlagen der Rechnernetze ‐ InternetworkingSS 2012 35

Page 21: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

BGP Grundlagen

3c3a

3b 1c

1a1d

1b

2a

2c

2bAS1

AS2AS3

Ziel Pfad Next

x in AS1 AS1 3a‐1c

y in AS2 AS1‐AS2 3a‐1c

z in AS3 ‐‐ ‐‐

… … …Border Gateway Protocol (BGP) = Distanzvektor‐Routing (ungewichtet)Aber: Distanzvektortabelle speichert komplette Pfade anstatt DistanzwertAber: Distanzvektortabelle muss zusätzlich den ersten Hop speichernAber: Distanzvektortabellen werden nicht „unreflektiert“ ausgetauschtAber: Zwei AS können durch mehrere Kanten verbunden sein

Grundlagen der Rechnernetze ‐ InternetworkingSS 2012 36

Page 22: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

BGP Policy

Kunden‐AS

Provider‐AS

W

B

X

Y

Beispielregeln:1. Kunden‐AS darf nur Kommunikationsendpunkt sein2. B möchte keinen Verkehr zwischen A und C tragen3. A will niemals Verkehr über B leiten

Ziel Pfad

z in Y X‐C‐Y

Ziel Pfad

z in W B‐A‐W

Ziel Pfad

z in X A‐B‐X or A‐C‐X 

A

C

Grundlagen der Rechnernetze ‐ InternetworkingSS 2012 37

Page 23: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Limitierter Adressbereich

SS 2012 Grundlagen der Rechnernetze ‐ Internetworking 38

Page 24: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Problemstellung

SS 2012 Grundlagen der Rechnernetze ‐ Internetworking 39

Mit den Standard‐IP‐Adressen lassen sich maximal

232 = 4.294.967.296 » 4,3 Mrd.

Hosts adressieren.

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

Page 25: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Ein Patch auf die Schnelle

SS 2012 Grundlagen der Rechnernetze ‐ Internetworking 40

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.

Lokales Netz NAT‐Box

Verfügbare eindeutige globale Adressen:171.69.210.246, ..., 171.69.210.252

Lokal eindeutigeAdresse:10.0.1.5

H

IP‐Paket:Quelle: 10.0.1.5

IP‐Paket:Quelle: 171.69.210.246

Ins Internet

IP‐Paket:Ziel: 10.0.1.5

IP‐Paket:Ziel: 171.69.210.246

Page 26: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Das Hauptthema von IPv6

SS 2012 Grundlagen der Rechnernetze ‐ Internetworking 41

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 ¢ 1038

Hosts adressiert werden oder anders gesagt

655 570 793 348 866 943 898 599

Adressen pro Quadratmeter der Erde vergeben werden.

Page 27: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Wechsel von IPv4 nach IPv6?

SS 2012 Grundlagen der Rechnernetze ‐ Internetworking 42

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

Page 28: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Zusammenfassung und Literatur

Grundlagen der Rechnernetze ‐ Internetworking 43SS 2012

Page 29: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

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)

Grundlagen der Rechnernetze ‐ Internetworking 44SS 2012

Page 30: Internet Routing - userpages.uni-koblenz.deunikorn/lehre/gdrn/ss13/06... · Routing Grundlagen der Rechnernetze ‐Internetworking 18 Wir betrachten zunächst Routing als Graph‐Problem.

Literatur[PetersonDavie2007] Larry L. Peterson and Bruce S. Davie, „Computer Networks: A Systems Approach“, Edition 4, 2007.4.1.2 Service Model4.1.6 Host Configuration (DHCP)4.1.7 Error Reporting (ICMP)4.1.8 Virtual Networks and Tunnels4.2.1 Network as a Graph4.2.2 Distance Vector (RIP)4.2.3 Link State (OSPF)4.3.3 Interdomain Routing (BGP)4.3.4 Routing Areas4.3.5 IP Version 6 (IPV6)

Grundlagen der Rechnernetze ‐ Internetworking 45SS 2012