Dynamische routering. Routeringsalgoritmes

Vergelijkbare documenten
Opvullen van de routeringstabel. Statisch of dynamisch. Dynamische routering. Distance vector padbepalingsalgoritme

Computerarchitectuur en netwerken. Netwerklaag/Routering

Bij rekenvragen de berekening opschrijven. Bij beredeneringsvragen de motivering geven.

Kortste Paden. Algoritmiek

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens

Kortste Paden. Algoritmiek

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel.

IPv6 Workshop Routering Niels den Otter

N E T W E R K E N C O M P U T E R. Inhoudsopgave

Inhoud Inleiding switched netwerken 11 Basis-switch-concepten en confi guratie 39 3 VLAN s

Computerarchitectuur en netwerken. Multicast protocollen Datalinklaag/LANs

LAN, MAN, WAN. Telematica. Schakeltechnieken. Circuitschakeling. 4Wordt vooral gebruikt in het telefoonnetwerk 4Communicatie bestaat uit 3 fasen:

Revisie geschiedenis. [XXTER & KNX via IP]

Het Internet zou omschreven kunnen worden als een wereldwijd netwerk van computer-netwerken die met elkaar verbonden zijn via de TCP/IP techniek.

11/2 Routing onder Novell

4IP = Internet Protocol 4Protocol gebruikt op netwerk laag in het internet 4Geen betrouwbaarheid

Tweede deeltentamen Netwerken (INFONW) 29 juni 2009

Netwerksimulatie Verslag 3

Tentamen Telematica Systemen en Toepassingen (261000) 3 november 2010,

Basis Netwerkconfiguratie. Ing. Tijl Deneut Lector Toegepaste Informatica Howest Onderzoeker XiaK, UGent

Computernetwerken III: Reeks A

Examen Telematica Systemen en Toepassingen (261000) 22 juni 2004

N.B.: Dit tentamen bestaat uit 30 opgaven Totaal aantal bladzijden: 13

Uitwerking tentamen Analyse van Algoritmen, 29 januari

2WO12: Optimalisering in Netwerken

Doorzoeken van grafen. Algoritmiek

5-1. De funktie van de netwerklaag - De datalink brengt frames van het ene punt van een transmissiekanaal naar een ander. 5.

BGP. Inter-domain routing met het Border Gateway Protocol. Iljitsch van Beijnum Amsterdam, 14 maart 2006

5. De netwerklaag. De funktie van de netwerklaag

Elfde college algoritmiek. 10 mei Algoritme van Dijkstra, Gretige Algoritmen

Inhoudsopgave. SNI handleiding. Inhoudsopgave

5. De netwerklaag. De funktie van de netwerklaag - De datalink brengt frames van het ene punt van een transmissiekanaal naar een ander.

Computerarchitectuur en netwerken. Multicast protocollen Datalinklaag/LANs

Sommige praktische IP problemen kunnen worden geformuleerd als optimalisering op een netwerk.

Hoofdstuk!7!Kortste!paden!

Overzicht. 1. Definities. 2. Basisalgoritme. 3. Label setting methoden. 4. Label correcting methoden. 5. Ondergrenzen. 6.

Veelgestelde vragen Corporate en Zakelijk Internet

De statespace van Small World Networks

LAN segment. Virtual local area network. Twee LAN segmenten. Evolutie. een enkelvoudige hub of switch is een fysisch LAN segment (Ethernet segment)

Computernetwerken III Oplossingen van modelvragen

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen

S u b n e t t e n. t h e t r u e s t o r y

SD-WAN, de nieuwe IT- Infrastructuur. Een functionele en technische uitleg waarom SD-WAN zo populair is.

Benaderingsalgoritmen

9. Strategieën en oplossingsmethoden

Beschrijving webmail Enterprise Hosting

Basis installatie handleiding TempWeb

Toetsmatrijs examen 8491

Volledig netwerk, Open Source tools geven je de mogelijkheid om netwerkconfiguraties. Virtuele routers in User-mode Linux

Tentamen combinatorische optimalisatie Tijd:

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort

Tentamen IN2210 Computernetwerken I dinsdag 28 oktober tot uur

Inhoud. Packet Tracer ix. Labs xi

Zelftest Internet concepten en technieken

Distributed Systems Chat (DSC) Protocol & Eisen versie 1.7c, 22 maart 2011

Examen Datastructuren en Algoritmen II

Netwerkstroming. Algoritmiek

Verslag Project Gedistribueerde Systemen

Dienstbeschrijving KPN IP-VPN. Een dienst in KPN ÉÉN

CVO PANTA RHEI - Schoonmeersstraat GENT

Xelion ESPA koppeling Handleiding Beheer V1.6

2 Energiemanagement van een draadloos sensornetwerk

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen

Wat basiskennis... IPv4, is het einde nabij? Applicatie. Sessie. Fysiek

Maak Bezorging Op Dezelfde Dag Winstgevend Zodat U Kunt Concurreren Met De Besten

SERVER MONITOR SMS SERVER

TW2020 Optimalisering

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

GPS repeater. Inleiding

1 Complexiteit. of benadering en snel

Hoofdstuk 13: Integer Lineair Programmeren

Temperatuur logger synchronisatie

Tentamen Telematica Systemen en Toepassingen (261000) 8 november

Communicatienetwerken

Examen Datastructuren en Algoritmen II

3. Structuren in de taal

Universiteit Utrecht Betafaculteit. Examen Discrete Wiskunde op donderdag 13 april 2017, uur.

Examen Datastructuren en Algoritmen II

Communicatie tussen Computers

IP & Filtering. philip@pub.telenet.be

Distributed Systems Chat (DSC) Protocol & Eisen versie 1.7b, 29 maart 2010

Les D-02 Datacommunicatie op Ethernet en Wifi netwerken

1945, eerste DC. Eigen logo

Bereid u voor op e-invoicing. Implementatiegids voor leveranciers

Examen Datastructuren en Algoritmen II

Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra

Tiende college algoritmiek. 26 april Gretige algoritmen

Basis communicatie netwerk

Twaalfde college algoritmiek. 12 mei Branch & Bound

Transport, Routing- en Schedulingproblemen. ir. H.N. Post

AFO 139 Automatische export

TW2020 Optimalisering

Sommige Linux-varianten hebben grafische network configurators (Red Hat: netcfg, neat opdracht).

Elfde college algoritmiek. 16 mei Dijkstra, Gretige algoritmen en Branch & Bound

Vierde college algoritmiek. 2 maart Toestand-actie-ruimte Exhaustive Search

Computernetwerken! SMTP Simple Mail Transfer Protocol, POP Post Ofice Procotol

Onder het menu LAN General Setup kunt Settings wijzigen die te maken hebben met de DHCP en TCP/IP instelling voor het LAN segment (interne netwerk).

TW2020 Optimalisering

Transcriptie:

0 1 Dynamische routering Routers informeren naburige routers over de netwerken waarmee ze verbonden zijn Routing daemon communiceert via een routing protocol en past dynamisch de routing tabel aan (toevoegen/verwijderen). Bij alternatieve routes naar dezelfde bestemming: daemon kiest de beste route. Internet: onderverdeeld in een aantal autonome systemen (AS) Een AS wordt normaal beheerd door één enkele entiteit IGP Interior Gateway Protocol: elk AS gebruikt zijn eigen routing protocol om te communiceren tussen de verschillende routers binnen het AS, bijv. RIP en OSPF. EGP Exterior Gateway Protocol: gebruikt tussen routers in verschillende AS, bijv. BGP, gebaseerd op TCP Twee categorieën gecentraliseerd: het pad met de laagste kosten wordt berekend aan de hand van kennis over het hele netwerk; het algortime kent dus alle verbindingen tussen de knopen inclusief de kosten; deze informatie moet eerst verzameld worden in een router en dan kan de berekening uitgevoerd worden; omdat het algoritme moet weten hoe groot de kosten van alle links in het netwerk zijn, wordt zo n algoritme een linkstatealgoritme genoemd; gedecentraliseerd: het pad met de laagste kosten wordt iteratief en gedistribueerd berekend; een knoop begint de berekening met de kennis van de links waarmee hij verbonden is; de resultaten van deze berekening wordt doorgegeven aan de buurknopen; en dit proces zit zich iteratief verder; hier wordt gesproken van een distancevectoralgortime omdat elke knoop een vector met schattingen van de kosten (afstanden) naar alle andere knopen in het netwerk bijhoudt. Routeringsalgoritmes doel: bepalen van een goed pad doorheen het netwerk tussen zenders en ontvangers Formulering: een graaf G = (N, E), een verzameling van N knopen en E bogen Boog (x, y) tussen knopen x en y: met c(x, y) de link kosten meestal gerelateerd aan de lengte van de fysieke verbinding tussen x en y. Ongerichte grafen: bogen hebben geen richting en c(x, y) = c(y, x). Knoop y is een buur van knoop x wanneer boog (x, y) element is van E Een pad in een graaf G = (N, E) is een reeks knopen (x 1, x,...,x p ) waarbij alle knopenparen (x 1, x ), (x, x 3 ),...,(x p 1, x p ) bogen zijn in E. Voorbeeld 6 knopen en 10 bogen Pad met laagste kosten tussen routers A en Z heeft totale kost van. Het pad loopt vanaf A via B en Y naar Z. A 1 C B 1 1 4 Y X Z Andere onderverdelingen zijn en statisch: het gebruikte pad verandert weinig in de tijd en meestal omwille van een menselijk ingrijpen; dynamisch: paden veranderen afhankelijk van belasting of topologie van het netwerk; zo n dynamisch algoritme wordt periodiek uitgevoerd of als reactie op veranderingen in de topologie van het netwerk; daardoor zijn ze ook gevoeliger voor lussen en oscillaties in paden; load-sensitive: de kosten van een link zijn afhankelijk van de belasting van de link; een hoogbelaste link zal een hogere kost hebben en zal daardoor door zo n algoritme minder opgenomen worden in het pad met de kleinste kost; load-insensitive: de kosten van een link zijn expliciet onafhankelijk van de huidige (of vroegere) mate van belasting van die link. De huidige routeringsalgoritmen in het internet zijn van deze soort.

3 Voorbeeld. stap reeds B C X Y Z Linkstaterouteringsalgoritmes Een linkstatealgoritme werkt op basis van kennis van de volledige netwerktopologie en de kosten van alle links. 1. elke knoop broadcast linkstatepaketten naar alle andere knopen in het netwerk linkstatepakket bevat identiteiten en kosten van de daarmee verbonden links na een tijdje hebben alle knopen in het netwerk een identiek en compleet overzicht van het netwerk;. elke knoop kan de paden met de laagste kost naar elke andere knoop in het netwerk berekenen. 0 A [A, 1] [A, ] [0, ] [A, ] [0, ] 1 AB [B, ] [B, ] [0, ] ABC [B, ] [0, ] 3 ABCY [Y, 3] [Y, 7] 4 ABCYX [X, ] ABCYXZ [A, 1] [A, ] [Y, 3] [B, ] [X, ] Dit algoritme bepaalt in feite de kortste route van het startknooppunt naar elk ander knooppunt. In de laatste stap wordt voor elke knoop de waarde van het kortste pad vanuit de startknoop A gevonden. Voor knoop Z is deze waarde en het pad loopt langs Z, X, Y, B, A (te bepalen via de herkomstgetallen). Algoritme van Dijkstra Alle knopen krijgen een label, bestaande uit twee getallen, zodanig dat via deze labels het kortste pad kan gevonden worden: 1. Initialisatie. Elk knoop krijgt een label, bestaande uit twee getallen. Het eerste getal geeft aan vanuit welke knoop de betreffende knoop gelabeld is (het herkomstgetal). Het tweede getal geeft de waarde d(i) van het label, met i het knoopnummer. De startknoop s krijgt label [s, 0]. De buren v van de startknoop krijgen een label gelijk aan [s, d(v)] met d[v] = c(s, v), de kost van de boog (s, v). All andere knopen krijgen een label [0, ].. Labelingsproces. Bepaal de knoop w die nog aan bod gekomen is, met minimale d(w). Pas de label van elke buur v van w eventueel aan, indien d(w) + c wv < d(v): de label van de knoop v wordt [w, d(w) + c wv ]. Herhaal deze stap totdat er alle knopen aan bod gekomen zijn. 3. Kortste pad. Elke knoop heeft nu een labelwaarde, die de waarde is van het kortste pad van de startknoop naar de betreffende knoop. Via de herkomstgetallen van de labels kan het kortste pad worden teruggezocht. Oefening. Zoek de kortste paden vanuit D naar alle andere routers. A B 3 D F 6 6 8 C E G 3 4 7 H

4 Distance vector padbepalingsalgoritme gedistribueerd: elke node ontvangt alleen informatie van één of meer direct aangrenzende nodes; het algoritme voert aan de hand daarvan een berekening uit en deelt vervolgens het resultaat van de berekening aan de aangrenzende nodes mee; iteratief: dit proces gaat net zo lang door totdat er geen informatie meer tussen de aangrenzende nodes wordt uitgewisseld (zelfbeëindigend); asynchroon: voor het uitvoeren van het algoritme hoeven de betrokken nodes niet in een vaste volgorde samen te werken; informatie die doorgespeeld wordt: een vector met afstanden naar de bestemmingen praktisch nut: 1. de oplossing levert de records in de forwardingstabel van x. Onderstel dat v de aangrenzende node van x is waarbij het minimum van de vergelijking gevonden wordt. Wanneer knoop x een paket naar knoop y wil verzenden via het pad met de laagste kosten, dan moet deze knoop dat via knoop v doen. Dus in de forwardingstabel van x zal v de volgendehoprouter voor de uiteindelijke bestemming y zijn.. de vergelijking laat de communicatievorm tussen aangrenzende knopen zien: elke knoop x begint met het berekenen van D x (y), schatting van de kosten van het pad met de laagste kosten tussen zichzelf en knoop y voor alle knopen in N; de distancevector die door knoop x verstuurd wordt, is D x = [D x (y) : y N]. Vergelijking van Bellman-Ford belangrijke relatie tussen de kosten van paden met de laagste kosten: d x (y) = min v {c(x, v) + d v (y)} met v alle aangrenzende knopen van x met d x (y) de kosten van het pad met de laagste kosten van knoop x naar knoop y. nogal intuïtief: wanneer we reizen van x naar v en dan het pad met de laagste kosten van v naar y nemen, zijn de kosten van het pad c(x, v)+d v (y); omdat we de reis moeten starten bij een aangrenzende knoop v, worden de laagste kosten van x naar y bepaald door het minimum van c(x, v) + d v (y) genomen over alle aangrenzende knopen v. Voorbeeld: laagste kosten vanuit de buren van A naar Z gekend: d Y (Z) = 3, d C (Z) =, d B (Z) = 4 kost van het kortste pad vanuit A naar Z min{ + 3, +, 1 = 4}, gelijk aan. A C 1 B 1 1 4 Y X Z Werking Elke knoop x beschikt over volgende actuele routeringsinformatie: voor elke buur v de kost c(x, v) naar de buur v; de distancevector van x, D x = [D x (y) : y N] met daarin de schatting van x van de kosten naar alle bestemmingen y in N; de distancevectoren van elke buur v, D v. Af en toe verzendt elke knoop een kopie van zijn eigen distancevector naar alle aangrenzende knopen. Bij ontvangst van een nieuwe distancevector van een van zijn buren v in knoop x wordt met de vergelijking van Bellman-Ford zijn eigen distancevector geactualiseerd: D y (x) = min v [c(x, v) + D v (y)] voor elke knoop y N Bij wijzigingen in de distancevector zal knoop x deze geactualiseerde distancevector naar alle aangrenzende knopen verzenden. En deze knopen kunnen dan elk hun eigen distancevector actualiseren en doorsturen naar hun buren.

6 7 Routing Information Protocol (RIP) elke router maakt periodiek (30 seconden) zijn complete routeringstabel bekend aan andere routers (UDP, poort 0); voor elk netwerk dat de router kan bereiken, wordt de metric vermeld: hop count of het aantal stappen naar de bestemming; werking: stel dat R1 van een naburige R hoort dat deze netwerk N kan bereiken in stappen; daardoor berekent R1 dat hij netwerk N kan bereiken in 6 stappen, door het pakket naar R te sturen; R1 kan dus zijn eigen routeringstabel aanpassen, maar alleen wanneer R1 nog geen route had naar N of wanneer de oude route langer was dan de nieuwe route. routes worden uit de tabel verwijderd wanneer de route een metric van 16 of meer heeft of wanneer een route een tijdlang (3 minuten) niet meer bevestigd is. A B C D Verbinding tussen C en D valt uit broadcast bestem hop-count A D 3 B D C D broadcast bestem hop-count A D 3 B D C D 3 broadcast bestem hop-count A D 3 B D 4 C D 3 Probleem A D 3 B B D C C D 1 A D 3 B B D C C D 3 B A D 3 B B D 4 C C D 3 B A D B B D 4 C C D B C B D 3 B Voorbeeld A B C D A 1 A 1 D C D 1 A B D 1 A 3 C B C Er ontstaat een lus in het pad: om D te bereiken bepaalt C het pad via B, en B via C. Een paket dat bij B of C aankomt op weg naar D zal eeuwig heen en weer verzonden worden tussen deze twee knopen. Een eerste oplossing voor dit probleem is split horizon: in RIP-broadcasts op een bepaald netwerk worden geen routes opgenomen die via dat betreffende netwerk lopen. Dus: B zal in zijn RIP-broadcast op het netwerk van C geen route opnemen naar D (omdat die route via het netwerk van C loopt). Maar dit is niet voldoende om alle problemen op te lossen. Bij de techniek poisoned reverse worden routes wel doorgestuurd maar krijgen bepaalde routes een oneindige kost. In bovenvermelde lus heeft knoop B een pad naar knoop D via knoop C berekend. Knoop B meldt aan knoop C dat zijn afstand naar knoop D oneindig is (D B (D) = ). Vanaf dan zal knoop C niet meer via knoop B naar knoop D gaan, want de kost wordt c(c, B) + d B (D) of c(c, B) +. Ook deze techniek is niet voldoende wanneer lus via drie of meer knopen loopt.

8 9 Nadelen van RIP count to infinity: routing loop IP-pakkketten met als bestemming D worden heen en weer gestuurd tussen B en C tot hun time-to-live verstreken is; bij infinity (16) wordt de route wel opgeruimd; trage convergentie: bij een verandering in de topologie kan het vele minuten duren voordat een consistente routeringssituatie terug bereikt is; hop count is de enige maatstaf: wat met twee snelle LAN-verbindingen ten opzichte van één trage punt-naar-puntverbinding; duur omwille van het gebruik van broadcasting oorspronkelijk geen ondersteuning voor subnetting en CIDR security-problemen: boodschappen worden blind vertrouwd, zonder authenticatie van de afzender gevoelig voor fouten in implementaties en fouten van beheerders: het verspreiden van fouten kan tot chaos leiden. + vooral geschikt voor eenvoudige en statische netwerken Globale werking van OSPF 1. Elke node bepaalt regelmatig (elke 10 seconden) welke interlinks hij heeft (Hello pakketjes) en wat de kwaliteit/kosten van die interlinks zijn. Als er ook een pakketje van de andere kant komt (de link is dus bidirectioneel) kijkt de node of de link-statusgegevens (LSA) kloppen met zijn link status database. Actualiseren van de interlinks database: de nodes aan beide einden van de interlink sturen elkaar alle LSA headers toe en over en weer worden updates uitgewisseld. Als de twee nodes volledig gesynchroniseerd zijn (fully adjacent), wordt de nieuwe info doorgegeven aan de andere nodes (reliable flooding).. Elke node bouwt op basis van de ontvangen LSA s een complete database van interlinks op. Met deze gegevens berekent elke node door middel van het Dijkstra OSPF algoritme de beste routes. Deze worden vastgelegd in de routeringstabel. Een interlink wordt alleen in de routering opgenomen als beide nodes (van de interlink) de route adverteren. 3. Als er dingen veranderen in het netwerk worden er nieuwe LSA s verstuurd, de databases van de link states worden opnieuw gesynchroniseerd tussen de nodes en de routeringstabellen worden aangepast. Open Shortest Path First elke router houdt de status van al zijn links bij een database met link states: beschrijvingen van de actuele verbindingen: wat voor soort verbinding, wie met wie verbonden en wat de kosten van een verbinding zijn. flooding: deze informatie wordt doorgespeeld aan andere routers, die op hun beurt de informatie ook weer verder zullen sturen: uiteindelijk komt de informatie van elke router bij elke andere router terecht routers bouwen op deze manier een complete kaart op van de netwerktopologie routes naar een bepaalde bestemming kunnen op basis van deze kaart lokaal uitgerekend worden (kortste pad-algoritme van Dijkstra) alleen bij veranderingen in de topologie worden updates gestuurd. Link State Advertisements (LSA) hebben een volgnummer, zodat duidelijk is welk LSA het meest recent is en een veld dat de ouderdom aangeeft. Als de maximale leeftijd (3600 seconden) wordt overschreden, wordt een LSA verwijderd uit de databases. OSPF link-state pakketten 1. Hello: realiseren en onderhouden van naburigheid met andere routers; bepalen van designated router en backup designated router (hello interval, dead interval, area number). Database Description (DBD): verkorte versie van de link-state databank van de zender; ontvanger vergelijkt dit met zijn eigen link-state databank 3. Link State Request (LSR): van een ontvangende router die meer informatie vraagt in verband met een entry in de databank 4. Link State Update (LSU): antwoord op een LSR met nieuwe informatie in de vorm van een Link-State Advertisement (LSA) neighbour tabel: informatie over de buren topology tabel: informatie over volledige netwerk routing tabel: nadat de kortste paden berekend zijn. Link State Acknowledgement (LSAck): bevestiging van de ontvangst van een LSU boodschap.

30 Karakteristieken geen beperking van een weg bepalen tussen slechts 1 kruispunten (hops) snellere convergentie, omdat veranderingen in de topologie direct gemeld worden gecompliceerdere implementatie meer lokale berekeningen nodig: zowel voor het opbouwen van de kaart als voor het berekenen van de routes; het aantal routers in het netwerk mag daarom niet meer zijn dan een paar honderd minder foutgevoelig: het complete pad naar de bestemming is gekend: er is niet alleen gekend dat er een route is, maar ook hoe die route loopt load balancing: omdat de volledige netwerktopologie gekend is, kunnen meerdere alternatieve routes berekend worden en kan de belasting eventueel gedeeld worden over de alternatieve routes. Vergelijking LS: elke knoop communiceert met alle andere knopen (via broadcast), maar levert alleen de kosten van de direct aangrenzende knopen DV: elke knoop communiceert alleen met de direct aangrenzende knopen, maar levert aan die buren schattingen van de laagste kosten van zichzelf naar alle andere knopen (waarvan hij weet heeft) in het netwerk Complexiteit berichten Convergentie snelheid Robustheid LS: linkstate elke router informatie over alle links in het netwerk O( N ) berekeningen O( N E ) berichten routeringsberekeningen zijn van elkaar afgescheiden DV: distance vector alleen direct met elkaar verbonden routers wisselen bij elke iteratie informatie uit langzame convergentie en ev. creatie van lussen (count-toinfinity) knoop kan foutieve informatie over een pad met laagste kosten verzenden