Slides in formato PDF
Transcript
Slides in formato PDF
Reti (già “Reti di Calcolatori”) Livello Rete I protocolli di Routing: RIP, OSPF, BGP RenatoLoCigno http://disi.unitn.it/locigno/index.php/teaching-duties/computer-networks Acknowledgement • Credits – Partof thematerialis based onslides provided by the following authors • JimKurose,KeithRoss,“ComputerNetworking: ATop DownApproach,” 4thedition,Addison-Wesley,July 2007 • DouglasComer,“ComputerNetworksandInternets,” 5thedition,PrenticeHall • Behrouz A.Forouzan,Sophia Chung Fegan,“TCP/IP Protocol Suite,”McGraw-Hill,January 2005 • Latraduzione,sepresente,èingeneraleopera(e responsabilità)deldocente [email protected] LivelloRete- Protocollidirouting 2 Contenuto e temi • Spaziodiindirizzamento • IndirizziIPelorouso • Consegnadeipacchetti • ConfigurazionedeiPCedellereti • InstradamentoeRouting [email protected] LivelloRete- Protocollidirouting 3 Routing: What is it? • Processoffindingapathfromasourcetoeverydestinationinthe network • SupposeyouwanttoconnecttoAntarcticafromyourdesktop – whatrouteshouldyoutake? – doesashorterrouteexist? – whatifalinkalongtheroutegoesdown? – whatifyou’reonamobilewirelesslink? • Routingdealswiththesetypesofissues [email protected] LivelloRete- Protocollidirouting 4 Basics • Aroutingprotocolsetsup aroutingtable inrouters – internaltablethat says,foreach destination,whichis thenextoutputto take • Anodemakesalocal choicedependingon globaltopology:thisis thefundamentalproblem [email protected] LivelloRete- Protocollidirouting 5 Key problem • Howtomakecorrectlocaldecisions? – eachroutermustknowsomethingaboutglobalstate • Globalstate – inherentlylarge – dynamic – hardtocollect • Aroutingprotocolmustintelligentlysummarizerelevant information [email protected] LivelloRete- Protocollidirouting 6 Requirements • Minimizeroutingtablespace – fasttolookup – lesstoexchange • Minimizenumberandfrequencyofcontrolmessages • Robustness:avoid – blackholes – loops – oscillations • Useoptimalpath [email protected] LivelloRete- Protocollidirouting 7 Different degrees of freedom • Centralizedvs.distributedrouting – centralizedissimpler,butpronetofailureandcongestion • Globalvslocalinformationexchange – conveyglobalinformationisexpensive • Staticvsdynamic – staticmayworkattheedge,notinthecore • Stochasticvs.deterministic – stochasticspreadsload,avoidingoscillations,butmisorders • Singlevs.multiplepath – primaryandalternativepaths(comparewithstochastic) • State-dependentvs.state-independent – doroutesdependoncurrentnetworkstate(e.g.delay) [email protected] LivelloRete- Protocollidirouting 8 Dynamic Routing And Routers • Toensurethatallroutersmaintaininformationabouthowto reacheachpossibledestination – eachrouterusesaroutepropagationprotocol • toexchangeinformationwithotherrouters – whenitlearnsaboutchangesinroutes • updatesthelocalroutingtable • Becauseroutersexchangeinformationperiodically – thelocalroutingtableisupdatedcontinuously [email protected] LivelloRete- Protocollidirouting 9 Routing e Forwarding Algoritmo d’instradamento Tabella d’instrad. locale Val. intestaz. link in usc. 0100 0101 0111 1001 3 2 2 1 valore nell’intestaz. del pacchetto entrante 0111 1 3 2 [email protected] LivelloRete- Protocollidirouting 10 Grafo di una rete di calcolatori 5 2 u 3 v 2 1 x Grafo: G = (N,E) w 3 1 5 z 1 y 2 N = insieme di nodi (router) = { u, v, w, x, y, z } E = insieme di archi (collegamenti) ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) } N.B.:Ilgrafoèun’astrazioneutileancheinaltricontestidirete Esempio:P2P,doveNèuninsiemedipeeredEèuninsiemedicollegamentiTCP [email protected] LivelloRete- Protocollidirouting 11 Grafo di una rete: costi 5 2 u 3 v 2 1 • c(x,x’)=costodelcollegamento(x,x’) x w 3 1 5 z 1 y 2 - es.,c(w,z)=5 • ilcostodiuncamminoè semplicementelasommaditutti icostidegliarchilungoilcammino Costodiuncammino(x1,x2,x3,…,xp)=c(x1,x2)+c(x2,x3)+…+c(xp-1,xp) Domanda:Qualèilcamminoacostominimotrauez? Algoritmod’instradamento:determinailcamminoacostominimo Protocollod’instradamento:procuraall’algoritmoidatinecessari alcalcoloediffondeirisultati [email protected] LivelloRete- Protocollidirouting 12 Algoritmi e protocolli Distance Vector Monotonia e coerenza dei cammini minimi Define c(i,k)>=0:costfromi tok(directconnection) D(i,j):costofleast-costpathfromi toj è Thesubsetofashortestpathisalsotheshortestpathbetweenthetwo intermediatenodes • Then,iftheshortestpathfromnodei tonodej,withdistanceD(i,j),passes throughneighbork,withlinkcostc(i,k),wehave: – D(i,j)=c(i,k)+D(k,j) i k [email protected] LivelloRete- Protocollidirouting j 14 Distance Vector (DV) algorithm • Initialdistancevalues(iteration1): – D(i,i)=0 – D(i,k)=c(i,k)ifkisaneighbor(kisone-hopaway) – D(i,j)=INFINITYforallothernon-neighborsj • ThesetofvaluesD(i,*)isadistancevectoratnodei • Thealgorithmmaintainsanext-hopvalue(forwardingtable)for everydestinationj,initializedas: – next-hop(i)=i; – next-hop(k)=kifkisaneighbor,and – next-hop(j)=UNKNOWN ifjisanon-neighbor. [email protected] LivelloRete- Protocollidirouting 15 Distance Vector (DV) algorithm • Aftereveryiterationeachnodei exchangesitsdistancevectors D(i,*)withallitsimmediateneighbors. Foranyneighbork ifc(i,k)+D(k,j)<D(i,j)then { D(i,j)=c(i,k)+D(k,j) next-hop(j)=k } [email protected] LivelloRete- Protocollidirouting 16 In summary Basicidea: • Fromtime-to-time,eachnodesendsitsowndistancevector estimatetoneighbors Asynchronous • WhenanodexreceivesnewDVestimatefromneighbor,itupdates itsownDVusingB-Fequation: D(x,y)←minv{c(x,v)+D(v,y)}foreachnodey∊ N • Underminor,naturalconditions,theestimateD(x,y)convergesto theactualleastcost [email protected] LivelloRete- Protocollidirouting 17 In summary • Iterative,asynchronous: eachlocaliterationcausedby: – locallinkcostchange – DVupdatemessagefrom neighbor • Distributed: eachnodenotifiesneighbors onlywhenitsDVchanges – neighborsthennotifytheir neighborsifnecessary [email protected] LivelloRete- Protocollidirouting Eachnode: wait for (change in local link cost or msg from neighbor) recompute estimates if DV to any dest has changed, notify neighbors 18 Distance Vector: example (initialization) B dist NH àA àB àC àD àE 7 0 1 5 A C E 1 B 7 5 A A dist NH àA àB àC àD àE 0 7 1 [email protected] LivelloRete- Protocollidirouting 1 0 2 - àA àB àC àD àE 2 1 B E C dist NH C B D - 2 E D E dist NH àA àB àC àD àE 1 5 2 0 A B D - D dist NH àA àB àC àD àE 2 0 2 C E 19 Distance Vector: example (running) 1 B 7 5 A 1 0 2 - àA àB àC àD àE 2 1 B D - 2 E D E dist NH [email protected] LivelloRete- Protocollidirouting C dist NH C àA àB àC àD àE 1 5 2 0 A B D - D dist NH àA àB àC àD àE 2 0 2 C E 20 Distance Vector: example (running) 1 B 7 5 A 1 0 2 4 àA àB àC àD àE 2 1 B D D 2 E D E dist NH [email protected] LivelloRete- Protocollidirouting C dist thr. C àA àB àC àD àE 1 5 4 2 0 A B D D - D dist NH àA àB àC àD àE 2 0 2 C E 21 Distance Vector: example (running) B dist NH àA àB àC àD àE 7 0 1 5 A C E 1 B 7 5 A A dist NH àA àB àC àD àE 0 7 1 C 2 1 B E [email protected] LivelloRete- Protocollidirouting 2 E D E dist NH àA àB àC àD àE 1 5 4 2 0 A B D D - D dist NH àA àB àC àD àE 2 0 2 C E 22 Distance Vector: example (running) B dist NH àA àB àC àD àE 6 0 1 7 5 E C E E 1 B 7 5 A A dist NH àA àB àC àD àE 0 6 5 3 1 C 2 1 E E E E [email protected] LivelloRete- Protocollidirouting 2 E D E dist NH àA àB àC àD àE 1 5 4 2 0 A B D D - D dist NH àA àB àC àD àE 3 7 2 0 2 E E C E 23 Distance Vector: example (final point) B dist NH àA àB àC àD àE 6 0 1 3 5 E C C E 1 B 7 5 A A dist NH àA àB àC àD àE 0 6 5 3 1 [email protected] LivelloRete- Protocollidirouting 5 1 0 2 4 àA àB àC àD àE 2 1 E E E E C dist NH C D B D D 2 E D E dist NH àA àB àC àD àE 1 5 4 2 0 A B D D - D dist NH àA àB àC àD àE 3 3 2 0 2 E C C E 24 Problem: “counting to infinity” B Router A 1 1 C A Dest Next Metric NTW_1 D 2 1 10 D Router B 1 Dest Next Metric NTW_1 A 3 • Considertheentries ineachroutingtable fornetworkNTW_1 • RouterDisdirectly connectedtoNTW_1 Router C NTW_1 Dest Next Metric NTW_1 A 3 Router D [email protected] LivelloRete- Protocollidirouting Dest Next Metric NTW_1 dir 1 25 Problem: “counting to infinity” B time Router A 1 1 C A Next Metric Dest Next Metric Dest Next Metric NTW_1 Unr. - NTW_1 C 4 NTW_1 C 5 D Router B 1 Router B Next Metric Dest Next Metric Dest Next Metric NTW_1 A 3 NTW_1 C 4 NTW_1 C 5 Router C Router C Dest Next Metric Dest Next Metric Dest Next Metric NTW_1 A 3 NTW_1 B 4 NTW_1 B 5 Router D Link between B and D fails Router B Dest Router C NTW_1 Router A Dest 1 10 Router A Router D Router D Dest Next Metric Dest Next Metric Dest Next Metric NTW_1 dir 1 NTW_1 dir 1 NTW_1 dir 1 [email protected] LivelloRete- Protocollidirouting 26 Problem: “counting to infinity” time B 1 Router A 1 C Dest Next Metric Dest Next Metric NTW_1 C 11 NTW_1 C 12 A 1 10 Router A Router B … Dest Next Metric Dest Next Metric NTW_1 C 11 NTW_1 C 12 D Router C Router C Dest Next Metric Dest Next Metric NTW_1 B 11 NTW_1 D 11 NTW_1 [email protected] LivelloRete- Protocollidirouting Router B Router D Router D Dest Next Metric Dest Next Metric NTW_1 dir 1 NTW_1 dir 1 27 Solutions to “counting to infinity” • Maximumnumberofhopsboundedto15 – thislimitstheconvergencetime • SplitHorizon – simple • eachnodeomits routeslearnedfromoneneighborin updatesenttothatneighbor – withpoisonedreverse • eachnodeinclude routeslearnedfromoneneighborin updatesenttothatneighbor,settingtheirmetricsto infinity – drawback:routingmessagesizegreaterthansimple SplitHorizon [email protected] LivelloRete- Protocollidirouting 28 Distance Vector: link cost changes • Iflinkcostchanges: – goodnewstravelsfast A • good=costdecreases 4 1 – badnewstravelsslow B C • bad=costincreases 50 • Exercise – trytoapplythealgorithminthesimplescenariodepicted abovewhen • thecostofthelinkAà Bchangesfrom4to1 • thecostofthelinkAà Bchangesfrom4to60 [email protected] LivelloRete- Protocollidirouting 29 RIP at a glance • RoutingInformationProtocol • Asimpleintradomainprotocol • StraightforwardimplementationofDistanceVectorRouting… – DistributedversionofBellman-Ford(DBF) …withwellknownissues – slowconvergence – workswithlimitednetworksize • Strengths – simpletoimplement – simplemanagement – widespreaduse [email protected] LivelloRete- Protocollidirouting 30 RIP at a glance • Metricbasedonhopcount – maximumhopcountis15,with“16”equalto“infinity” • imposedtolimittheconvergencetime – thenetworkadministratorcanalsoassignvalueshigherthan1 toasinglehop • Eachrouteradvertisesitsdistancevectorevery30seconds(or wheneveritsroutingtablechanges)toallofitsneighbors – RIPusesUDP,port520,MulticastGroup224.0.0.9 • Changesarepropagatedacrossnetwork • Routesaretimeout(setto16)after3minutesiftheyarenot updated [email protected] LivelloRete- Protocollidirouting 31 RIP procedures: introduction • RIProutingtablesaremanagedbyapplication-level process – e.g.,routed onUNIXmachines • • AdvertisementsaresentinUDPpackets(port520) RIPmaintains3differenttimerstosupportitsoperations – Periodicupdatetimer(25-30sec) • usedtosentoutupdatemessages – Invalidtimer(180sec) • Ifupdateforaparticularentryisnotreceivedfor180 sec,routeisinvalidated – Garbagecollectiontimer(120sec) • Aninvalidrouteinmarked, notimmediately deleted • Fornext120s.therouteradvertisesthisroutewith distanceinfinity [email protected] LivelloRete- Protocollidirouting route TCP UDP IP Data Link Physical 32 RIP procedures: input processing • RequestMessages – generatedbyroutersthatjustcomeup – action:therouterrespondsdirectlytotherequestor’saddress andport • requestisprocessedentrybyentry • ResponseMessages – routersthatperformregularupdates,triggeredupdatesor respondtoaspecificquery – action:therouterupdatesitsroutingtable • incaseofnewrouteorchangedroutes,therouterstartsa triggeredupdateprocedure [email protected] LivelloRete- Protocollidirouting 33 RIP procedures: output processing • Outputaregenerated – whentheroutercomesupinthenetwork – ifrequiredbytheinputprocessingprocedures – byregularroutingupdate • Action:theroutergeneratesthemessagesaccordingtothe commandsreceived – themessagescontainentriesfromtheroutingtable timers timers timers input output input output request response response response [email protected] LivelloRete- Protocollidirouting input output response 34 ALGORITMI E PROTOCOLLI LINK-STATE Unapprocciodiversoe“centralizzato”pertrovareicamminiminimi [email protected] LivelloRete- Protocollidirouting 35 Link State (LS) Approach • Thelinkstate(Dijkstra)approachisiterative,butitpivotsarounddestinationsj, andtheirpredecessorsk=p(j) – Observethatanalternativeversionoftheconsistencyconditionholdsfor thiscase:D(i,j)=D(i,k)+c(k,j) j i k • Eachnodei collectsalllinkstatesc(*,*)firstandrunsthecompleteDijkstra algorithmlocally [email protected] LivelloRete- Protocollidirouting 36 Link State (LS) Approach… • Linkstatesaredistributedtoallnodes,whichbuildagraphG(N,E)describingthe entirenetwork • EachnodeappliesDijkstra:minimumshortestpathsfromitselftoallnodes • Ateachiteration,thealgorithmfindsanewdestinationjandashortestpathtoit • Aftermiterationsthealgorithmhasexploredpaths,whicharemhopsorsmaller fromnodei • TheDijkstra algorithmatnodei maintainstwosets: – setNthatcontainsnodestowhichtheshortestpathshavebeenfound – setMthatcontainsallothernodes – Forallnodesk,twovaluesaremaintained: • D(i,k):currentvalueofdistancefromi tok • p(k):thepredecessornodetokontheshortestknownpathfromi [email protected] LivelloRete- Protocollidirouting 37 Dijkstra: Initialization • Initialization: – D(i,i)=0andp(i)=i; – D(i,k)=c(i,k)andp(k)=i ifkisaneighborofi – D(i,k)=INFINITYandp(k)=UNKNOWN ifkisnotneighborofi – SetN={i },andnext-hop(i)=i – SetM={j|jisnoti} • InitiallysetNhasonlythenodei andsetMhastherestofthenodes • Attheendofthealgorithm,setNcontainsallthenodes,andsetM isempty [email protected] LivelloRete- Protocollidirouting 38 Dijkstra: Iteration • Ineachiteration,anewnodejismovedfromsetMintothesetN. – NodejhastheminimumdistanceamongallcurrentnodesinM D(i,j)=min(kinM) D(i,k). – Ifmultiplenodeshavethesameminimumdistance,anyoneofthemis chosenasj – Next-hop(j)=theneighborofi ontheshortestpath,orjitself – ThedistancevaluesofanyneighborkofjinsetMisrecomputedas: IfD(i,k)> (D(i,j)+c(j,k)) D(i,k)=D(i,j)+c(j,k);p(k)=j • Thisoperationiscalled“relaxing”theedgesofnodej [email protected] LivelloRete- Protocollidirouting 39 Dijkstra’s algorithm: example Step 0 1 2 3 4 5 set N A AD ADE ADEB ADEBC ADEBCF D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 2,A 1,A 5,A infinity infinity 2,A 4,D 2,D infinity 2,A 3,E 4,E 3,E 4,E 4,E 5 2 A B 2 1 D 3 C 3 1 5 F 1 E 2 The shortest-paths spanning tree rooted at A is called an SPF-tree [email protected] LivelloRete- Protocollidirouting 40 Dijkstra’s algorithm, discussion Algorithmcomplexity: nnodes • eachiteration:needtocheckallnodes,w,notinN • n(n+1)/2comparisons:O(n2) • moreefficientimplementationspossible:O(nlog(n)) Oscillationspossible: • e.g.,linkcost=amountofcarriedtraffic D 1 1 0 A 0 0 C e 1+e e initially B 1 2+e A 0 D 1+e 1 B 0 0 C … recompute routing [email protected] LivelloRete- Protocollidirouting 0 D 1 A 0 0 C 2+e B 1+e … recompute 2+e A 0 D 1+e 1 B e 0 C … recompute 41 Open Shortest Path First (OSPF) • • • • • Inalternativa alprotocollo RIPditipo DistanceVectorinInternetesiste il protocollo OSPFditipo LinkState Itre principali criteri diprogettazione delprotocollo OSPFsono: – distinzione tra hosterouter – reti broadcast – suddivisione delle reti digrandi dimensioni Hli hostsono collocati nelle aree periferiche della reteasottoreti locali connesse alla attraverso router(defaultgateway) Ilmodello linkstateprevede che il databaselinkstate includa una entryperogni linktra hosterouter OSPFassocia il linkdiaccesso aduna stubnetwork – una stubnetworkè una sottorete terminale che nonfornisce servizio di transito – il linkdiaccesso viene identificato dall’indirizzo della sottorete [email protected] LivelloRete- Protocollidirouting 42 Il protocollo OSPF • Ilprotocollo OSPFutilizza 3procedure,chiamati ancora `protocolli’, persvolgere leproprie funzioni – HelloProtocol – ExchangeProtocol – FloodingProtocol [email protected] LivelloRete- Protocollidirouting 43 Messaggi OSPF (1) • • Imessaggi OSPFsono trasportati direttamente all’interno dei pacchetti IP – nonviene utilizzato il livello ditrasporto – viene usato l’indirizzo multicast224.0.0.5 Tutti i messaggi OSPFcondividono lostesso header Version # Type Packet length Router ID Area ID Checksum Auth Type Authentication Authentication [email protected] LivelloRete- Protocollidirouting 44 Messaggi OSPF (2) • • • • Version#=2 Type:indicailtipodimessaggio PacketLength:numerodibytedelmessaggio RouterID:indirizzoIPdelrouterdiriferimento Version # Type Packet length Router ID Area ID Checksum Auth Type Authentication Authentication [email protected] LivelloRete- Protocollidirouting 45 Messaggi OSPF (3) • • • AreaID:identificativo dell’area – OSPFconsente una divisione della retein“aree”perridurre lacomplessità delcalcolo dei percorsi eperconsentire uninstradamento gerarchico. Auth Type:tipo diautenticazione – 0noautenticazione,1autenticazione conpasswd Authentication:password Version # Type Packet length Router ID Area ID Checksum Auth Type Authentication Authentication [email protected] LivelloRete- Protocollidirouting 46 Il protocollo Hello • • Funzioni: – verificarel’operativitàdeilink Messaggi: – Hello Common header (type = 1, hello) Network mask Hello interval Options Priority Dead interval Designated router Backup Designated router Neighbor [email protected] LivelloRete- Protocollidirouting 47 Il protocollo Exchange • Funzioni: – sincronizzazionedeidatabaselinkstate(bringupadjacencies) traduerouterchehannoappenaverificatol’operatività bidirezionaledellinkcheliconnette – protocolloclient-server – messaggi: • DatabaseDescriptionPackets • LinkStateRequest • LinkStateUpdate – N.B.ilmessaggioLinkStateUpdatevienedistribuitoinflooding [email protected] LivelloRete- Protocollidirouting 48 Exchange Protocol: messaggi (1) • DatabaseDescription Common header (type = 2, db description) 0 0 Options 0 DD sequence number Link State Type Link State ID Advertising router Link State Sequence Number Link State Checksum Link State Age [email protected] LivelloRete- Protocollidirouting 49 Il protocollo di Flooding • Funzioni: – aggiornare il databaselinkstatedell’autonomous systema seguito delcambiamento distato diunlink – Garantisce laconsegna ditutti Imessaggi atutti,acosto di parecchie repliche • Messaggi: – LinkStateUpdate Common header (type = 4, link state update) Number of link state advertisement Link state advertisement #1 Link state advertisement #2 [email protected] LivelloRete- Protocollidirouting 50 Controlled Flooding • Tutti i nodi inviano i pacchetti ricevuti dauna interfaccia su tutte le altre • Inuna reteconlinkpunto-punto il numero dipacchetti è pari al numero dilink • Inuna retecondomini dibroadcast,il numero dipacchetti è pari il numero didomini boradcast 8repliche [email protected] LivelloRete- Protocollidirouting 2repliche 51 Summary Link State • • • • • • Topologyinformationisflooded withintheroutingdomain Bestend-to-endpathsare computedlocallyateachrouter Bestend-to-endpathsdetermine next-hops Basedonminimizingsomenotion ofdistance Worksonlyifpolicyissharedand uniform Examples:OSPF Distance Vector • • • • • • [email protected] LivelloRete- Protocollidirouting Eachrouterknowslittleabout networktopology Onlybestnext-hopsarechosenby eachrouterforeachdestination network. Bestend-to-endpathsresultfrom compositionofallnext-hopchoices Doesnotrequireanynotionof distance Doesnotrequireuniformpoliciesat allrouters Examples:RIP 52 Comparison of LS and DV algorithms Messagecomplexity • LS:withnnodes,Elinks,O(nE)msgs sent • DV:exchangebetweenneighbors only Robustness:whathappensifrouter malfunctions? • LS: – node canadvertiseincorrectlink cost – eachnode computesonlyitsown table – convergencetimevaries SpeedofConvergence • LS:O(n2)algorithmrequiresO(nE) msgs – mayhaveoscillations • DV:convergencetimevaries – mayberouting loops – count-to-infinity problem [email protected] LivelloRete- Protocollidirouting • DV: – DVnode canadvertiseincorrect pathcost – eachnode’s tableusedbyothers • errorpropagatethrunetwork 53 Instradamento e Topologia Globali in Internet Comesi effettua il trasferimento el’instradamento complessivo intutta larete Qualche considerazione sulle proprietà globali delsistema Instradamento gerarchico Finquiabbiamovistolaretecomeunacollezionedirouterinterconnessi r Ciascunroutereraindistinguibiledaglialtri r Visioneomogeneadellarete …nellapraticalecosenonsonocosìsemplici Scala: conmilionididestinazioni: r Archiviareleinformazioni d’instradamentosuciascuna sottoreterichiederebbe un’enormequantitàdimemoria r Iltrafficogeneratodagli aggiornamentiLSnon lascerebberobandaperi pacchettididati! Autonomiaamministrativa: r Internet=laretedellereti r Daunpuntodivistaideale, ciascunodovrebbeesserein gradodiamministrarelapropria retenelmododesiderato,pur mantenendolapossibilitàdi connetterlaalleretiesterne Instradamento gerarchico r Organizzazionedirouterin sistemi autonomi(AS,autonomous system). r Irouterdiungruppoautonomo eseguonolostessoalgoritmo d’instradamento. mProtocollod’instradamento internoalsistemaautonomo (intra-AS). mIrouterappartenentiadifferenti ASpossonoeseguireprotocolli d’instradamentointra-ASdiversi BorderRouters r Hannoilcompito aggiuntivod’inoltrare pacchettia destinazioniesterne. Sistemi autonomi interconnessi 2a 3c 2c AS2 3a 3b AS3 1c 1a 1d 1b AS1 Algoritmo Algoritmo d’instradamento d’instradamento (intra-AS) (intra-AS) Tabella d’inoltro 2b r Ciascunsistemaautonomosa comeinoltrarepacchettilungoil percorsoottimoversoqualsiasi destinazioneinternaalgruppo m IsistemiAS2eAS3hanno trerouterciascuno m Iprotocollid’instradamento deitresistemiautonominon sononecessariamentegli stessi m Irouter1b,1c,2ae3asono gateway Instradamento tra sistemi autonomi AS1deve: 1. Saperequalidestinazionisono raggiungibiliattraversoAS2equali attraversoAS3 2. Informaretuttiirouterall’interno delsistemainmodocheciascuno possaconfigurarelapropria tabellad’inoltropergestire destinazioniesterne r Supponiamocheunrouterin AS1ricevaundatagrammala cuidestinazionericadealdi fuoridiAS1 m Ilrouterdovrebbeinoltrare ilpacchettoversounodei duegateway.Maquale?? 3c 3a 3b AS3 1a 2a 1c 1d 1b AS1 2c AS2 2b Esempio: scegliere fra più AS SupponiamoinoltrecheAS1apprendadalprotocollo d’instradamentotrasistemiautonomichelasottoretex è raggiungibiledaAS2e daAS3 r Alfinediconfigurarelapropriatabellad’inoltro,ilrouter1D dovrebbedeterminareaqualegateway,1bo1c,indirizzarei pacchettidestinatiallasottoretex r Anchequestoèuncompitochespettaalprotocollo d’instradamentointer-AS! r Lasceltaingenere x sibasasudecisioni 3c localiditipo 3a 2c 3b 2a economico, AS3 2b 1c AS2 commerciale, 1a 1b AS1 dipolitica(policy) 1d r Border Gateway Protocol (BGP) • Adifferenzadeiprotocolliintra-ASesisteunsoloprotocollointerAS:BGPappunto • Loscopodelprotocolloèdistribuireinformazionidiraggiungibilità ditutteledestinazioni • BGPnoncercaunpercorsoottimo,lasciacheidiversiASprendano lelorodecisioniinbasealall’elencodiASchebisognaattraversare perraggiungereunadestinazione • BGPsidivideindueparti • eBGP:(exterior),ilprotocollodirouting veroeproprioche distribuiscelaraggiungibilità ditutte ledestinazioni • iBGP:(interior),tramite il qualeunrouterche partecipa aeBGP comunica atutti i nodi delsuo ASdoveinstradare i pacchetti perle varie destinazioni [email protected] LivelloRete- Protocollidirouting 60 Fondamenti di BGP r BGPsiappoggiaaunamagliadiconnessioniTCP:duerouter connessisonopeer BGP,elaconnessioneèdettasessioneBGP r QuandoAS2annunciaunprefissoaAS1,AS2sta promettendo cheinoltreràidatagrammisuunpercorsoversoilprefissocui sonodestinati. mAS2puòaggregarepiùprefissinelsuoannuncio m E`sufficientecheunrouterperASpartecipiaeBGP 3c 3a 3b AS3 2a 1c 1a AS1 1d 1b 2c AS2 2b Sessione eBGP Sessione iBGP Attributi del percorso e rotte BGP r QuandounrouterannunciaunprefissoperunasessioneBGP, includeancheuncertonumerodiattributiBGP mprefisso+attributi=“rotta” r Duedeipiùimportantiattributisono: mAS-PATH: elencaisistemiautonomiattraversoiqualièpassato l’annunciodelprefisso:es.AS67-AS17-AS21 mNEXT-HOP: indirizzodelrouter(interfaccia0dausareper accedereadAS-PATH r Quandounborder routerriceveunannunciodirotta,utilizzale propriepolitiched’importazione perdecidereseaccettareofiltrare larotta Selezione dei percorsi BGP r Unrouterpuòricavarepiùdiunarottaversoundeterminato prefisso,edevequindisceglierneuna r Regoledieliminazione: 1. Allerottevieneassegnatocomeattributounvaloredi preferenzalocale.Siselezionanoquindilerotteconipiùalti valoridipreferenzalocale 2. SiselezionalarottaconvaloreAS-PATHpiùbreveescludendo quellechecontengonoASconcuinoncisonoaccordi commerciali 3. SiselezionaquellailcuirouterdiNEXT-HOPèpiùvicino 4. Serimaneancorapiùdiunarotta,ilrouterfaunascelta casuale Messaggi BGP r ImessaggiBGPvengonoscambiatiattraversoTCP. r MessaggiBGP: mOPEN: aprelaconnessioneTCPeautenticailmittente mUPDATE: annunciailnuovopercorso(ocancellaquello vecchio) mKEEPALIVE mantienelaconnessioneattivainmancanzadi UPDATE mNOTIFICATION: riportaglierroridelprecedentemessaggio; usatoancheperchiudereilcollegamento. Politiche d’instradamento BGP Legenda legend: B W Rete provider delprovider network X A customer Rete network: delcliente C Y Figur e 4.5-BGPnew: a simple BGP scenario A,B,Csonoretidiproviderdidorsale r X,W,Ysonoretistub r Xèunaretestub apiùdomicili m XnonvuolecheiltrafficodaBaClepassiattraverso m ...ecosìXnonannunceràaBlarottaversoC r Politiche d’instradamento BGP Legenda legend: B W Rete provider delprovider network X A Rete customer network: delcliente C Y Figur e 4.5-BGPnew: a simple BGP scenario AannunciaaBilpercorsoAW. r BannunciaaXilpercorsoBAW. r BdeveannunciareaCdelpercorsoBAW? m Certocheno!Bnonhanessun“interesse”nellarottaCBAW poichénéW néCsonoclientidiB m BvuolecostringereCadinstradareversoW attraversoA m Bvuoleinstradaresoloda/versoisuoiclienti! r inter-ASvsintra-AS Politiche: r Inter-AS:ilcontrolloamministrativodesideraavereilcontrollosu comeiltrafficovieneinstradatoesuchiinstradaattraversole suereti. r Intra-AS:unicocontrolloamministrativo,ediconseguenzale questionidipoliticahannounruolomoltomenoimportante nellosceglierelerotteinternealsistema Scala: r L’instradamentogerarchicofa“risparmiare”sulletabelle d’instradamento,eriduceiltrafficodovutoalloro aggiornamento Prestazioni: r Intra-AS:orientatoalleprestazioni r Inter-AS:lepolitichepossonoprevaleresulleprestazioni Topologia di Internet • Troppocomplessaperpoterla“disegnare” – AnchesologliASsonooltre50.000,iprefissididestinazione oltre1milione(alivelloBGP,quindiaggregati) • Caratteristiche“smallworld” – Pochinodicontantissimeconnessioni – Tantissiminodiconpocheconnessionie“stub” – Pochi“hop”(alivelloAS)perarrivareovunque • Proprietàdelgrafointeressantiecomplesse – esisteunaintera“scienza”dianalisidellecaratteristichedella topologiadiInternet [email protected] LivelloRete- Protocollidirouting 68