Computerarchitectuur en netwerken Netwerklaag/Routering Lennart Herlaar 8 oktober 06
Inhoud Routeringsalgoritmen Link state Distance vector Hierarchische routering Routering in Internet RIP OSPF BGP Lennart Herlaar Computerarchitectuur en netwerken
Routering Host, router network layer functions: Transport layer: TCP, UDP Network layer Routing protocols path selection RIP, OSPF, BGP forwarding table IP protocol addressing conventions datagram format packet handling conventions ICMP protocol error reporting router signaling Link layer physical layer Network Layer 4-3 Lennart Herlaar Computerarchitectuur en netwerken
Routeringsalgoritme Routeringsalgoritme moet kortste pad tussen X en Y uitrekenen kortste = afstand, tijd, kosten etc. Variaties: centraal: op één plaats uitgerekend voor hele netwerk decentraal: door gezamenlijke nodes (routers) uitgerekend statisch: reageert niet op veranderingen van netwerk dynamisch: past zich aan aan gewijzigde omstandigheden lastgevoelig: houdt rekening met belasting van netwerk (congestie) lastongevoelig: houdt geen rekening met netwerkbelasting In Internet: Link State Algoritme Distance Vector Algoritme Lennart Herlaar Computerarchitectuur en netwerken 3
Voorbeeld netwerk (graaf) 5 u v x 3 3 w y 5 z Lennart Herlaar Computerarchitectuur en netwerken 4
Dijkstra s algoritme u 5,u v 3 3 5,u w 5 z x,u y stap N D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z) 0 u,u 5,u,u Lennart Herlaar Computerarchitectuur en netwerken 5
Dijkstra s algoritme u 5,u v 3 3 4,x w 5 z x,u y,x stap N D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z) 0 u,u 5,u,u ux,u 4,x,x Lennart Herlaar Computerarchitectuur en netwerken 6
Dijkstra s algoritme 3 u 5,u v 3 3 3,y w 5 4,y z x,u y,x stap N D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z) 0 u,u 5,u,u ux,u 4,x,x uxy,u 3,y 4,y Lennart Herlaar Computerarchitectuur en netwerken 7
Dijkstra s algoritme 4 u 5,u v 3 3 3,y w 5 4,y z x,u y,x stap N D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z) 0 u,u 5,u,u ux,u 4,x,x uxy,u 3,y 4,y 3 uxyv 3,y 4,y Lennart Herlaar Computerarchitectuur en netwerken 8
Dijkstra s algoritme 5 u 5,u v 3 3 3,y w 5 4,y z x,u y,x stap N D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z) 0 u,u 5,u,u ux,u 4,x,x uxy,u 3,y 4,y 3 uxyv 3,y 4,y 4 uxyvw 4,y Lennart Herlaar Computerarchitectuur en netwerken 9
Dijkstra s algoritme 6 u 5,u v 3 3 3,y w 5 4,y z x,u y,x stap N D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z) 0 u,u 5,u,u ux,u 4,x,x uxy,u 3,y 4,y 3 uxyv 3,y 4,y 4 uxyvw 4,y 5 uxyvwz Lennart Herlaar Computerarchitectuur en netwerken 0
Resulterende tree voor knoop u 3,y u 5 w,u v 3 3 x y,u,x 5 4,y z Forwarding table: Bestemming v x y w z Link (u,v) (u,x) (u,x) (u,x) (u,x) Lennart Herlaar Computerarchitectuur en netwerken
Link State Routing Routers detecteren hun buren Meten afstand tot buren incl. belasting (sturen echo pakket) 3 Stuur informatie naar alle andere routers 4 Elke router berekent Dijkstra s algoritme 5 gebruikt in OSPF (Open Shortest Path First) RFC 78 6 Probleem: algoritme kan gaan oscilleren Lennart Herlaar Computerarchitectuur en netwerken
Oscillaties bij LS algoritme A +e D 0 0 B 0 e C e +e A 0 D B 0 +e 0 C e 0 A +e +e A 0 D 0 0 B D +e B +e 0 0 C C e Lennart Herlaar Computerarchitectuur en netwerken 3 e
Inhoud Routeringsalgoritmen Link state Distance vector = Hierarchische routering Routering in Internet RIP OSPF BGP Lennart Herlaar Computerarchitectuur en netwerken 4
Distance Vector Algoritme elke router houdt een tabel bij met afstand tot andere routers (en via welke) tabellen worden geupdate door informatie met buren uit te wisselen tabellen worden telkens opnieuw uitgerekend reageert snel op verbeteringen reageert langzaam op verslechteringen (link uitval) gedecentraliseerd algoritme (geen globale kennis van netwerk) gebruikt in RIP (Routing Information Protocol) RFC 73 Lennart Herlaar Computerarchitectuur en netwerken 5
Distance Vector Algoritme Algoritme reageert op twee gebeurtenissen Afstand tot een buur verandert Nieuwe lijst ontvangen van een buur Bereken op grond van de nieuwe informatie de minimale afstand tot alle nodes in het netwerk Als de lijst veranderd is, stuur hem dan naar al je directe buren Alleen informatie van de directe buren wordt gebruikt Wanneer er geen veranderingen optreden in een node slaapt het in deze node Lennart Herlaar Computerarchitectuur en netwerken 6
Bellman-Ford vergelijking Gegeven: c(x, v) = afstand tussen de buren x en v d v (y) = kosten van het goedkoopste pad van v naar y d x (y) = min {c(x, v) + d v (y)} (x y) v Buren(x) d x (x) = 0 In de forwarding tabel moet de link komen naar buur die het minimum levert c(x,v) v d (y) v x d (y) x y Lennart Herlaar Computerarchitectuur en netwerken 7
Distance Vector algoritme Algoritme in node x: D x (y) is de schatting die x heeft over de kortste afstand tot y Distance vector D x is de vector van afstanden die x heeft Buren wisselen af en toe distance vectoren uit Node x begint als volgt: D x (y) = c(x, y) als y een buur van x is D x (y) = anders D w (y) = voor al zijn buren w Stuur jouw DV naar al je buren Herberekening na ontvangst van DV of na wijziging van c(x, y): D x (y) min v c(x, v) + D v (y) voor alle y N Als je eigen DV verandert, stuur hem dan naar de buren. Lennart Herlaar Computerarchitectuur en netwerken 8
DV voorbeeld node x table cost to x y z x 0 7 y!!! z!!! node y table cost to x y z from x!!! y 0 z!!! node z table cost to x y z from from x y z!!!!!! 7 0 Dx(y) = min { c(x, y)+ Dy(y), c(x, z)+ Dz(y) } from from from = min{ cost + to 0, 7+ } = x y z x y z x y z x y z 0 3 0 7 0 cost to x y z 0 7 0 7 0 cost to x y z 0 7 0 3 0 from from from x y z x y z x y z Dx(z) = min{ c(x, y)+ D y(z), c(x, z)+ Dz(z) } = min{ +, 7+ 0} = 3 cost to x y z 0 3 0 3 0 cost to x y z 0 3 0 3 0 cost to x y z 0 3 0 3 0 time x y 7 z Lennart Herlaar Computerarchitectuur en netwerken 9
Verslechteringen in DV verslechteringen werken heel langzaam door kunnen tot lussen in de route leiden (& ' $ #! " %& x y z x 0 4 5 y 4 0 z 5 0 x y z x 0 4 5 y 6 0 z 5 0 c(x, y) wordt 60, dus berekent y zijn afstanden opnieuw: D y (x) = min{c(y, x) + D x (x), c(y, z) + D z (x)} = min(60 + 0, + 5) = 6 y stuurt zijn nieuwe DV (6 0 ) naar x en z. Op dezelfde manier berekent z een nieuwe D z (x) = 7. Daarna D y (x) = 8; D z (x) = 9, etc. Lennart Herlaar Computerarchitectuur en netwerken 0
Poisoned Reverse De vorige berekening heeft tot gevolg dat pakketten tussen y en z gaan pingpongen! Gedeeltelijke oplossing: Als z s route naar x via y loopt, vertelt hij aan y dat zijn afstand tot x oneindig is. zodat y berichten naar x niet naar z stuurt z moet dan een andere route naar x vinden (in dit geval rechtstreeks) Op deze manier voorkom je pingpongen Dit lost het probleem helaas niet altijd op Lennart Herlaar Computerarchitectuur en netwerken
Hiërarchische routering In het Internet teveel routers Routeringstabellen worden te groot Algoritmes duren te lang Sommige netwerkbeheerders willen eigen algoritmes bepalen Lennart Herlaar Computerarchitectuur en netwerken
Hiërarchische routering In het Internet teveel routers Routeringstabellen worden te groot Algoritmes duren te lang Sommige netwerkbeheerders willen eigen algoritmes bepalen Oplossing: Deel Internet in regio s in (Autonome Systemen) Binnen AS eigen routeringsalgoritme Tussen de AS gatewayrouters Routers in AS kennen alleen gateways en eigen routers maar niet routers in andere AS voor pakketten van binnen naar buiten kun je hot potato routering gebruiken: stuur het naar de gateway router die het dichtst bij zit en een route heeft naar het AS van de bestemming Gateways moeten twee (of meer) kanten kunnen routeren Lennart Herlaar Computerarchitectuur en netwerken
Hiërarchische routering Lennart Herlaar Computerarchitectuur en netwerken 3
Hiërarchische routering Lennart Herlaar Computerarchitectuur en netwerken 4
Inter-Autonoom-systeem routering Intra-AS routering bemoeit zich met de routering binnen een AS. Inter-AS routering bemoeit zich met routering tussen autonome systemen. Maar inter-as routeringsprotocol moet: in een gateway router uitvinden welke bestemmingen bereikbaar zijn via de aangesloten autonomen systemen deze info distribueren naar de routers binnen het AS De intra-as routers gebruiken deze info om te bepalen naar welke gateway router ze pakketten sturen met een bestemming buiten het AS. Als er méér dan één mogelijkheid is dan kiezen ze er één (bijvoorbeeld via de hot-potato methode) dit zou best wel eens niet de optimale route kunnen zijn. Lennart Herlaar Computerarchitectuur en netwerken 5
Inhoud Routeringsalgoritmen Link state Distance vector Hierarchische routering Routering in Internet = RIP OSPF BGP Lennart Herlaar Computerarchitectuur en netwerken 6
Internet routing In het Internet gebruikt men Link State protocol Distance vector protocol Autonome Systemen Inter-autonome routering Intra-autonome routering Lennart Herlaar Computerarchitectuur en netwerken 7
Intra-autonoom systeem RIP (Routing Information Protocol) Distance vector protocol gebruikt aantal hops als kosten afstanden van router naar verschillende subnetten maximaal 5 hops Iedere 30 sec uitwisseling tussen buren Per bericht maximaal 5 netwerken binnen AS RIP berichten worden via UDP uitgewisseld Lennart Herlaar Computerarchitectuur en netwerken 8
RIP voorbeeld Lennart Herlaar Computerarchitectuur en netwerken 9
RIP update Lennart Herlaar Computerarchitectuur en netwerken 30
Unix implementatie Lennart Herlaar Computerarchitectuur en netwerken 3
OSPF OSPF = Open Shortest Path First nieuwer intra-autonoom systeem routeringsprotocol Link state protocol Bouw informatie over het hele netwerk op Voer Dijkstra s algoritme uit (in elke router) Kosten van de links kunnen ingesteld worden Wanneer kosten veranderen wordt update gebroadcast naar alle andere routers in AS Ook op vaste tijdstippen (safer) Lennart Herlaar Computerarchitectuur en netwerken 3
OSPF eigenschappen Beveiliging (authenticatie) Meerdere paden met dezelfde kosten mogelijk Verschillende kosten voor verschillende diensten mogelijk Multicast routering mogelijk Hiërarchische routering mogelijk Lennart Herlaar Computerarchitectuur en netwerken 33
OSPF hiërarchisch Lennart Herlaar Computerarchitectuur en netwerken 34
Inter-autonome routering BGP(4) = Border Gateway Protocol (versie 4) Uitgebreid soort Distance vector protocol Uitwisseling tussen buren Meer informatie wordt uitgewisseld (complete pad naar bestemming) bestemmingen zijn (verzamelingen) subnets in CIDR vorm x.y.z.t/n Netwerkbeheerder kan policies zetten over welke routes zijn toegestaan Lennart Herlaar Computerarchitectuur en netwerken 35
BGP sessies 3c 3a c 3b a AS3 b c AS a b d AS Netwerk met Autonome Systemen 3c 3a c 3b a AS3 b c AS a b AS d BGP sessies (TCP connecties) ebgp session ibgp session Lennart Herlaar Computerarchitectuur en netwerken 36
BGP sessies externe sessies zijn voor het DV protocol (connecties tussen verschillende autonome systemen) interne sessies zijn om de routeringsinformatie binnen het AS te verspreiden. BGP Boodschappen: BGP boodschappen verzonden via TCP BGP boodschappen: OPEN: open TCP verbinding en authenticatie zender UPDATE: update op nieuwe en/of oude paden KEEPALIVE: als er geen updates zijn of ACK op OPEN NOTIFICATION: foutmelding of close Lennart Herlaar Computerarchitectuur en netwerken 37
BGP Padselectie Ieder AS krijgt een uniek nummer Route = CIDR prefix met attributen: AS-PATH = het pad van Autonome Systemen die het bericht gepasseerd is (in de vorm van AS nummers) op deze manier kunnen loops geëlimineerd worden dit is tegelijk ook de route naar het geadverteerde subnet dit kan ook gebruikt worden om een kortste pad te kiezen NEXT-HOP = IP adres van de router-interface van het eerste AS op het pad dus hierheen moeten pakketten gestuurd worden die van binnen naar buiten gaan Padselectie als meer dan één route mogelijk is: voorkeurswaarde ingesteld door netwerkbeheerder kortste AS-PATH 3 dichtstbijzijnde NEXT-HOP (= hot-potato) 4 BGP-identificatienummers Lennart Herlaar Computerarchitectuur en netwerken 38
BGP Padselectie Soorten netwerken: stubnetwerk: zit maar met één verbinding vast aan het BGP-systeem, dus geen doorgaand verkeer transit-netwerk: wel doorgaand verkeer dus tenminste aansluitingen aan andere meervoudig verbonden (stub)netwerk: heeft wel meer dan aansluiting maar weigert doorgaand verkeer. Lennart Herlaar Computerarchitectuur en netwerken 39
BGP Padselectie Een BGP router hoeft niet alle paden bekend te maken: een stubnetwerk (dat alleen berichten van/naar zichzelf accepteert) maakt geen doorgaande routes bekend. W A B X legend: C Y x adverteert alleen paden naar zichzelf B zal waarschijnlijk geen paden adverteren om verkeer tussen A en C te routeren Lennart Herlaar Computerarchitectuur en netwerken 40
Samenvatting We hebben twee routeringsalgoritmen bestudeerd: Link state (globaal) Distance vector (gedistribueerd) Om de routering hanteerbaar te houden gebruiken we hierarchische routering (Autonome Systemen) De belangrijkste routeringsprotocollen in het Internet zijn: RIP (intra-as, DV) OSPF (intra-as, LS) BGP (inter-as, DV) De routers gebruiken de transportlaag om de routeringsinformatie uit te wisselen Lennart Herlaar Computerarchitectuur en netwerken 4