ETS052 Internet Routing Jens A Andersson
Läsanvisning Kihl & Andersson: Kap 8, 9.3 9.4 Stallings: Kap 19.1 & 19.2 Forouzan 5th ed Kap 20.1 20.3, 21.1 21.2
Routing Routing-konceptet Unicast Routing Multicast Routing (en kort översikt)
Nätverkslagret /Lager 3 Olika länkprotokoll!
Datagram och nätet
R1 Uppgift: Välj bästa väg! R4 5 R7 5 10 40 R6 6 5 B R2 15 A 20 4 10 10 R8 R3 5 R5 10 I alla lägen!
Routern En router förmedlar paket mellan nätverk baserat på nätverkslagrets adresser En router gör intelligenta beslut om bästa väg för paketets vidare leverans mot slutdestinationen Routing-beslut fattas utifrån nät-identitet, inte värd-identitet (host id)
Routern, schematiskt Ingång Köer Köer Utgång Ingång Vägväljarmodul Utgång Ingång Utgång
Routingteknologier Ingen intelligens Centraliserad Distribuerad
Ingen intelligens : Flooding Skicka ut all paket/datagram På alla portar/interface/linkar utom ingress-porten/interfacet/linken Problem? Paket som loopar Två lösningar TTL-räknare Kom ihåg vilka paket som redan hanterats
Centraliserad routing Databas och algoritm centralt Noderna I nätet uppdaterar den centralal funktionen Paketförmedlingen distribuerad självklart! eller?
Distribuerad routing Routingprocessen distriburad till alla routrar Två metoder Distance Vector Varje nods information om bästa vägar distribueras till nodens grannar Bästa väg e-2-e fås fram genom jämförelse med alla möjliga next hop Enkelt, låga krav på processor och minne Link State Information om lokal om topologi flödas (flooding) till alla noder Bästa väg e-2-e till alla noder beräknas lokalt i varje nod (trädbyggnad) Komplicerat med krav på processorkraft och minne
Länkkostnad Länkkostnaden kan bero på flera saker: Kapacitet Belastning Sträcka Utbredningsmedium Osv... 13
Routing Tables and Forwarding Table RIP Process BGP Process RIP Routing tables BGP Routing tables BGP OSPF Process OSPF Routing tables Static routing table RIP Domain OSPF Domain Forwarding Table Manager OS kernel Forwarding Table
Lokal routing & ARP (1).105.10.1 Netid: 192.168.1.0/24 router
Lokal Routing & ARP (2).105.10 Sänd datagram till 192.168.1.10! Netid: 192.168.1.0/24.1 router Är destinationen på samma nät? Sändaren jämför egen nät-id med desitnationens nätid. i detta fall JA Är destinationens MAC-adressen i ARP-cache? om JA använd den om nej använd ARP för destinationen
Lokal Routing & ARP (3).105.10 Sänd datagram till 10.0.100.35! Netid: 192.168.1.0/24.1 router Är destinationen på samma nät? Sändaren jämför egen nät-id med desitnationens nät-id. i detta fall NEJ Är def. gateway MAC-adressen känd och i ARP-cache? om JA använd den om NEJ använd ARP för def. gateway
Unicast Routing
Routebara protokoll Protokoll som placeras på nätverkslagret kallas routed eller routable protocols (routebara protokoll?). IP ärettprotokollpå nätverksnivån och är därför ett routebart protokoll.
Routing-protokoll Routing-protokoll tar fram bästa väg till destinationen för routebara protokoll. Routing-protokoll gör det möjligt för routrar att hitta varandra och skapa en karta över nätet.
Routing Konsten att bygga least-cost trees Från sändare till mottagare Från varje nod till varje annan nod Tre principer 21 Distance Vector Link State Path Vector Policy-based routing
Ett Internet och dess grafiska representation Grafer består av bågar och noder Bågar samman binder noder Noder är destinationer I routing finns två olika typer av noder: Nät dvs destinationer Routrar som sammanbinder nät Grafiska representationen kan bli något konstig 22
Nätgraf (exempel) A 3 B 1 C 1 D 1 3 1 E 3 23
Distance Vector: Princip R1 skickar sin tabell till R2 och R3 med jämna mellanrum R2 skickar sin tabell till R1, R3 och R4 med jämna mellanrum Nät A Nät B Nät D R1 R2 Endast nätid och kostnad i tabellen/vektorn R3 R3 skickar sin tabell till R1, R2 och R4 med jämna mellanrum Nät C R4 skickar sin tabell till R3 och R4 med jämna mellanrum R4
Distance vector: princip Alla kända bästa vägar skickas till grannar Periodiskt Vid varje förändring Routingtabeller uppdateras vid Info om nya noder Ändrad kostnad eller vägar/paths Global kunskap sprids lokalt
En distance vector Allmänna fallet Nod Kostnad - - - - - - - - - - För routing Nod Kostnad Next hop - - - - - - - - - - - - - - -
Exempel med hop count A - 1 B - 1 Rtr1 B - 1 D - 1 Rtr3 Nät A Nät B Nät D Rtr2 Nät C Rtr5 C - 1 D 1 E - 1 B - 1 C - 1 Nät E Rtr7 Nät G E - 1 F - 1 Rtr6 E - 1 G - 1 B - 1 F - 1 Rtr4 Nät F
Bellman-Fords algoritm (1) if (advertised destination not in table) then update table (2) else (2.a) if (advertised next-hop = next-hop in table) then replace entry (2.b) else (2.b.i) if (advertised hop count < hop count in table) then replace entry (2.b.ii) else do nothing
Alternativt: Bellman-Fords ekvation min,,, Not! kan ändras utan att nod z tillkommit!
Uppdateringar Rtr3 Ursprunglig B - 1 D - 1 Från Rtr5 +1 C 2 D 2 E 2 Uppdaterad B 1 C rtr5 2 D 1 E rtr5 2 Rtr1 Ursprunglig A - 1 B - 1 Från Rtr2 +1 B 2 C 2 Uppdaterad A - 1 B 1 C rtr2 2
Distance Vector, funderingar Periodiska uppdateringar!? Hur hitta grannar? Hur upptäcka att en granne försvinner? Problem med länkar och noder (bortom grannar) som försvinner. 31
Mer om distance vector IETSF10 Count to infinity Two, three node instability Split Horizon Poison Reverse Routingprotokoll RIP 32
Link State: princip R1 skickar information om sina länkar till alla andra routrar. R2 skickar information om sina länkar till alla andra routrar. Nät A Nät B Nät D R1 R2 Det kan finnas grannar på länkarna! R3 R3 skickar information om sina länkar till alla andra routrar. Nät C R4 R4 skickar information om sina länkar till alla andra routrar.
Link state: princip Lokal topologi info flödas globalt (LSP) Periodiskt (i praktiken mycket sällan, typ varje timme) Vid lokal förändring Skapa databas i varje node med alla link states Uppdatera routing-tabell när ny information läggs in i databasen (Shortest Path First) Lokal kunskap sprids globalt 2011-10-03 34
LSP (Link State Packet)
Link State Databas, exempel
Link State: ett exempel Rtr1 Rtr3 Nät A Nät B Nät D 8 4 4 10 4 Rtr2 2 Nät C 2 10 5 Nät E Rtr5 5 Rtr7 3 Nät G 2 5 7 Rtr6 Rtr4 7 Nät F
Dijkstras algoritm: Shortest Path First 1. Identify the root (the node itself) 2. Attach all neighbor nodes temporarily 3. Make link and node with least cumulative cost permanent 4. Choose this node 5. Repeat 2 and 3 until all nodes are permanent
SFP: steg 1 o 2 för rtr3 Nät B Rtr3 4 10 (a) Nät D Rtr1 Nät B 4 4 Rtr2 Rtr3 4 10 Nät D (b)
SFP: Slutliga trädet Rtr3 Nät B 4 10 Nät D Rtr1 4 4 Rtr2 Nät A 12 6 Nät C Rtr4 6 6 Rtr5 13 Nät F Nät E 11 11 Rtr7 14 Nät G 11 Rtr6
Routingtabell för rtr3 Nät-id Next-hop Kostnad A Rtr1 12 B - 4 C Rtr2 6 D - 10 E Rtr2 11 F Rtr2 13 G Rtr2 14
Link State, funderingar Periodiska uppdateringar!? Problem med länkar och noder som försvinner. Hur hitta grannar? Hur upptäcka att en granne försvinner? 42
Mer om link state I ETSF10: Routingprotokoll OSPF Konceptet Areor eller hur man minskar flooding 43
Path Vector Routing Distance Vector routing med tillägg I routingtabellen Destination Next-Hop Vägen/Path som denna uppdatering visar till destinationen BGP egentligen vägen som routinginformationen har passerat
Bonus material Konceptet Path Vector Routing Introduktion till Multicast Routing Mer om detta i ETSF10
Path Vector Routing Table Network Next Router Path N01 R01 AS14, AS23, AS67 N02 R05 AS22, AS67, AS05, AS89 N03 R06 AS67, AS89, AS09, AS34 N04 R12 AS62, AS02, AS09 AS = Autonomous System ungefär Organisation
Multicasting
Fundamenta för Multicastträd Destinationen är GRUPP En och endast en kopia av varje paket till varje gruppmedlem Inga paket till icke medlemmar Inga paket ska loopa Optimala vägar källa medlemmar (shortest path)
Multicast Routing protokoll
Källbaserade träd Source Based Tree S1 R3 R2 R4 R1 ett träd per källa S2
Gruppbaserade träd Group Shared Tree, S1 R3 R2 R4 R1 Rendezvous Point S2 ett träd per grupp
Reverse Path Forwarding Routing på avsändaradress!