ip tunneling und anwendungen - userpages.uni-koblenz.deunikorn/lehre/gdrn/ws18/06... · routing...
TRANSCRIPT
IP‐Tunneling und Anwendungen
SS 2012 Grundlagen der Rechnernetze ‐ Internetworking 15
• Security in Kombination mit Verschlüsselung (z.B. Virtual‐Private‐Networks (VPN))• Router R1 und R2 haben besondere Features (z.B. Multicast‐fähige Router)• Verbinden von Nicht‐IP‐Netzen über ein IP‐Netz (z.B. global verteilte Sensornetze)• Auslieferung an bestimmter Stelle erzwingen, obwohl Zieladresse eine andere ist (z.B.
Mobile‐IP)
R2R1Netz 1.x Internet Netz 2.x
IP‐Header,Destination = 2.x
IP‐Payload
IP‐Header,Destination = 2.x
IP‐Payload
IP‐Header,Destination = 18.5.0.1
IP‐Header,Destination = 2.x
IP‐Payload
18.5.0.1
Netz‐Nummer Next‐Hop
1 Interface 0
2 Virtual Interface 0
Default Interface 1
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
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
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
Internet‐RoutingDistanzvektor‐Routing (aka. Bellman‐Ford)
SS 2012 Grundlagen der Rechnernetze ‐ Internetworking 20
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 ??
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 ??
E ??
Kantengewichte hier verein‐facht alle auf 1 gesetzt.
SS 2012 21
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
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.)
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.
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?
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 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 zu denen, die selber der nächste Hop sind.
Funktioniert das immer?
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
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
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)= 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)
Internet‐RoutingKonkrete Realisierungen im Internet
SS 2012 Grundlagen der Rechnernetze ‐ Internetworking 32
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
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
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
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