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