L13 Rete Routing
Argomenti trattati
L13 Rete Routing
Argomenti trattati
Architettura di un Router
Reti e Laboratorio III
2023/24
1
Inoltro vs routing
Routing
Algorithm control
plane
data
plane
values in arriving
packet header
0111 1
2
3
Routing decentralizzato:
• Algoritmo di routing in esecuzione su ciascun router
• I router si scambiano messaggi (protocolli di routing) 3
Routing logicamente centralizzato
Remote Controller
control
plane
data
plane
CA
CA CA CA CA
values in arriving
packet header
0111 1
2
3
routing, management
control plane (software)
routing opera nell’ordine dei
processor millisecondi
forwarding data
plane (hardware)
opera nell’ordine dei
nanosecondi
switching
fabric
6
Architettura di un router – porte di input
lookup,
link forwarding
line layer switch
termination protocol fabric
(receive)
queueing
Livello fisico:
Ricezione dei bit Ricerca, inoltro, accodamento:
Livello collegamento • Ha una copia della tabella di inoltro, usa i valori
es. Ethernet dell’header per determinare la porta di output
• Elaborazione alla velocità “line rate”
Il numero di porte supportate da un • Accodamento: se la velocità con cui arrivano I
router può variare da un numero
relativamente piccolo nei router datagrammi supera la velocità di inoltro nella
aziendali, a centinaia di porte a 10
Gbps in un router di bordo di un ISP
struttura di commutazione (switching fabric)
Il router Juniper MX2020, per
esempio, supporta fino a 800 porte 7
Ethernet a 100 Gbps
Switching fabric
• trasferisce il pacchetto dal buffer di input al buffer di output
appropriato
• velocità di commutazione: velocità con cui i pacchetti possono
essere trasferiti dagli ingressi alle uscite
– N input: velocità di commutazione auspicabile N volte la velocità di
linea
memory
9
Ritardi e perdite
• Si possono formare code di pacchetti sia
presso le porte di ingresso sia presso quelle di
uscita
• La lunghezza della coda dipende da vari
fattori, tra cui: la quantità di traffico di rete, le
velocità relative della struttura di
commutazione e della linea
10
Lo strato di Rete
Routing
11
Protocolli di Routing
Obiettivo: determinare mobile network
percorsi “buoni” dagli host national or global ISP
mittenti agli host destinatari,
attraverso nodi intermedi applicatio
(router) n
transport
network
• percorso: sequenza di
link
physical networ networ
k k
finale
physica
l
applicatio
• Nodi: router
• Arco: collegamenti tra router
• Grafo pesato
• Costo associato all’arco: distanza tra i nodi, numero di hop,
distanza, bandwidth disponibile ecc. 13
Graph abstraction: costi
5
c(x,x’) = costo del link (x,x’)
3 e.g., c(w,z) = 5
v w 5
2
u 2 1 z Costo definite dall’operatore di
3 rete, es.: può essere 1,
1 2
x y inversamente proporzionale
1 alla bandwidth o alla
congestione
4-14
Classificazione algoritmi di Routing
global
How fast
do routes
change? static dynamic
decentralized
16
Algoritmi di instradamento
globali/decentralizzati
• Gli algoritmi di instradamento si possono classificare in:
• Globali, se si basano sulla conoscenza della topologia di tutta la
rete. Il calcolo può essere fatto in un unico sito (es. SDN) o in più
nodi, utilizzando informazioni sulla connettività di tutti i nodi e sui
costi di tutti i link (es. algoritmo Link State).
– L’algoritmo riceve in ingresso informazioni su tutti i collegamenti tra i
nodi e i loro costi.
• Decentralizzati, quando nessun nodo conosce la topologia di tutta
la rete, all’inizio ha informazioni solo sui nodi e link vicini. Il calcolo
del percorso è iterativo e distribuito (es. algoritmo Distance Vector).
– Ogni nodo elabora un vettore di stima dei costi (distanze) verso tutti gli
altri nodi nella rete.
– Il cammino a costo minimo viene calcolato in modo distribuito e
iterativo scambiandosi informazioni con i nodi vicini.
17
Algoritmo Distance Vector
• Distribuito
– ciascun nodo riceve parte delle informazioni da
uno o più nodi direttamente connessi (vicini),
effettua calcoli e comunica i risultati ai vicini
• Iterativo
• Asincrono: non richiede che tutti i nodi
operino al passo con gli altri
18
Algoritmo Distance Vector
dxy
Equazione di Bellman-Ford
Formula per trovare il percorso a costo minimo tra un nodo sorgente x
e un nodo destinazione y, tramite dei nodi intermedi (vicini v)
supponendo che:
- Costo c(x,z) tra nodo sorgente x e il vicino z sia noto
- Distanza minima tra vicino z e destinazione y sia nota (dzy)
19
Distance vector algorithm
Bellman-Ford equation
dxy := costo del cammino a costo minimo da x a y
allora
dxy = minv {c(x,v) + dvy }
distanza dal vicino v alla destinazione y
costo da x al vicino v
20
Distance vector algorithm
• Ciascun nodo x inizia con una stima delle distanze verso
tutti i nodi in N
• Dxy = stima del costo minimo da x a y per ogni y є N
• Il nodo x mantiene quindi le seguenti informazioni:
– Conosce il costo del collegamento verso ciascun vicino v:
c(x,v)
– x mantiene il suo vettore distanza Dx = [Dxy : per ogni y є
N]
– Riceve i vettori distanza dei suoi vicini. Per ogni vicino v, x
mantiene
Dv = [Dvy : per ogni y є N ]
21
Distance vector algorithm
• Idea di base:
• Ogni nodo invia una copia del proprio vettore distanza a
ciascuno dei suoi vicini.
• Quando un nodo x riceve un nuovo vettore distanza, DV, da
qualcuno dei suoi vicini v, lo salva e usa l’equazione di
Bellman-Ford per aggiornare il proprio vettore distanza
Dxy = min {c(x,v) + Dvy } per ogni y є N
22
Distance vector algorithm
24
Distance vector routing
Aggiornamento dei vettori di distanza
25
Distance vector routing: algoritmo
26
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} Dx(z) = min{c(x,y) +
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
node x cost to cost to
table x y z x y z
x 0 2 7 x 0 2 3
from
y ∞∞ ∞ y 2 0 1
from
z ∞∞ ∞ z 7 1 0
node y cost to
table x y z y
2 1
x ∞ ∞ ∞
x z
from
y 2 0 1 7
z ∞∞ ∞
node z cost to
table x y z
x ∞∞ ∞
from
y ∞∞ ∞
z 7 1 0
time
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} Dx(z) = min{c(x,y) +
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
node x cost to cost to cost to
table x y z x y z x y z
x 0 2 7 x 0 2 3 x 0 2 3
from
y ∞∞ ∞ y 2 0 1
from
y 2 0 1
from
z ∞∞ ∞ z 7 1 0 z 3 1 0
node y cost to cost to cost to
table x y z x y z x y z y
2 1
x ∞ ∞ ∞ x 0 2 7 x 0 2 3 x z
from
y 2 0 1 y 2 0 1 7
from
y 2 0 1
from
z ∞∞ ∞ z 7 1 0 z 3 1 0
from
y 2 0 1 y 2 0 1
from
y ∞∞ ∞
z 7 1 0 z 3 1 0 z 3 1 0
time
Distance vector: link cost changes
Se cambia il costo del 1
collegamento: y
4 1
Il nodo rileva il cambiamento del x z
costo 50
Ricalcola il vettore distanza
Se il DV cambia, avvisa i vicini
Count-to-infinity problem
31
Link-state algorithm
• Algoritmo «globale»
• La topologia di rete e tutti i costi dei collegamenti sono
noti a tutti i nodi attraverso il “link-state broadcast”.
• Tutti i nodi dispongono delle stesse informazioni
• Calcola il cammino a costo minimo da un nodo
(origine) a tutti gli altri nodi della rete.
– Algoritmo di Dijkstra
– È iterativo: dopo la k-esima iterazione i cammini a costo
minimo verso k nodi di destinazione sono noti.
• Crea una tabella d’inoltro per quel nodo
32
Link-state database
33
LSP
LSP (LS Packet) creati ed inviati da ciascun nodo
34
Notazione
• c(x,y): costo del collegamenti dal nodo x al nodo y
– ∞ se non sono adiacen .
• D(v): costo del cammino dal nodo origine alla
destinazione v per l’iterazione corrente
• p(v): immediato predecessore di v lungo il cammino
• N': sottoinsieme di nodi per cui il cammino a costo
minimo dall’origine è definitivamente noto
35
Dijsktra’s Algorithm
1 Inizializzazione del nodo u:
2 N' = {u}
3 Per tutti i nodi v
4 se v è adiacente a u
5 allora D(v) = c(u,v)
6 altrimenti D(v) = ∞
7
8 Loop
9 trova w non in N' tale che D(w) sia minimo
10 aggiungi w a N'
11 aggiorna D(v) per tutti v adiacenti a w e non in N' :
12 D(v) = min( D(v), D(w) + c(w,v) )
13 /* il nuovo costo verso v è il vecchio costo verso v oppure il
costo del cammino minimo noto verso w più il costo da w a v */
14 Finché tutti i nodi sono in N'
4-36
Algoritmo di Dijkstra: esempio
Step N' D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z)
0 u 2,u 5,u 1,u ∞ ∞
1 ux 2,u 4,x 2,x ∞
2 uxy 2,u 3,y 4,y
3 uxyv 3,y 4,y
4 uxyvw 4,y
5 uxyvwz
v 3 w
2 5
u 2 1 z
3
1 2
x 1
y
37
LS vs DV
• Complessità dei messaggi: • Robustezza: cosa avviene se un
– LS: con n nodi, E collegamenti, router funziona male?
implica l’invio di O(nE) messaggi. • LS:
– DV: richiede scambi tra nodi – un router può comunicare via
broadcast un costo sbagliato per uno
adiacenti. dei suoi collegamenti connessi (ma
• Velocità di convergenza: non per altri).
– LS: l’algoritmo O(n2 ) richiede – I nodi si occupano di calcolare
O(nE) messaggi. soltanto le proprie tabelle.
39
Instradamento gerarchico
• La visione di una rete costituita da un insieme di
router omogenei interconnessi è semplicistica
– Problemi di scalabilità e autonomia amministrativa
• Nella realtà i router sono organizzati in sistemi
autonomi (AS).
– un AS è un gruppo di router sotto lo stesso controllo
amministrativo
• Es. router e collegamenti di un ISP possono formare un unico AS
• Un ISP può comunque partizionare la sua rete in più AS
– gli AS decidono autonomamente i protocolli e le politiche
di routing che intendono adottare al loro interno
40
Instradamento gerarchico
• I protocolli di routing all’interno di un AS sono detti
Interior Gateway Protocol (IGP)
• I protocolli di routing fra AS sono detti Exterior
Gateway Protocol (EGP)
• Quindi, all'interno di un sistema autonomo:
– i router sono sotto uno stesso controllo amministrativo
– usano lo stesso protocollo di routing intra-AS (es, RIP,
OSPF)
41
Protocolli di instradamento
• Internet partizionata in sistemi autonomi (AS)
– AS stub: collegato solo a un altro AS
– AS multihomed: collegato a più di un altro AS (ma
trasporta – come lo stub - solo traffico di cui è origine o
destinazione)
– AS di transito
Lista di AS italiani:
https://ipinfo.io/countries/it
42
Routing INTRA-AS e routing INTER-AS
• INTRA-AS routing protocol determina (da solo) rotte per le
destinazioni interne ad AS
– Routing Information Protocol (RIP) - Algoritmo tipo DV
– Open Shortest Path First (OSPF) - Algoritmo di tipo LS
• INTRA-AS e INTER-AS routing protocol determinano (insieme)
rotte per le destinazioni esterne all’AS
• Border gateway protocol BGP
– INTER-AS routing protocol (standard de facto)
– Consente di conoscere le destinazioni raggiungibili attraverso sistemi
autonomi vicini
– Propaga le informazioni di raggiungibilità ai router interni del proprio AS
– Determina percorsi buoni verso le sottoreti di destinazione
43
Protocolli
44
RIP (Routing Information Protocol)
• Intra-AS
• Metrica = #sottoreti attraversate (max 15)
– Inclusa la rete dove si trova la destinazione
• Distance Vector con Poisoned Reverse ("inf"=16)
45
Esempio
46
RIP
• Processo demone routed
(UDP, porta 520)
• Esempio tabella di inoltro:
inter-AS
51
Esempio
X
52
BGP (Border Gateway Protocol)
• BGP4: unico protocollo INTER-AS usato in Internet
• protocollo di tipo distance-vector decentralizzato e asincrono
• Coppie di router si scambiano info su connessioni TCP: sessioni BGP esterne e sessioni
interne
53
BGP
• Aggregazione indirizzi
– destinazioni rappresentate da prefissi CIDR
• BGP mette a disposizione di ciascun router un modo per:
– Ottenere informazioni sulla raggiungibilità dei prefissi di
sottorete da parte dei sistemi confinanti
• In particolare, BGP consente a ciascuna sottorete di comunicare la
propria esistenza al resto di Internet. Basta che una sottorete invii
un annuncio “Esisto, son qui” e BGP si assicura che lo sappiano
tutti i router di Internet
– Determinare i percorsi “ottimi” verso le sottoreti.
• Un router può venire a conoscenza di più cammini verso uno
specifico prefisso; per determinare il migliore, esegue localmente
BGP, sulla base delle informazioni di raggiungibilità e delle
politiche del sistema
54
BGP
• Pubblicizzare un prefisso significa impegnarsi a
instradare pacchetti destinati a reti in quel
prefisso
2b
2a 2c
∂
1b 3b
2d
1a 1c ∂
3a 3c
AS 2
1d 3d
AS 1 eBGP connectivity AS 3
logical iBGP connectivity
NEXT_HOP
BGP session: two router BGP (“peers”) exchange BGP messages over
semi-permanent TCP connection:
• advertising paths to different destination network prefixes (BGP is a “path
vector” protocol)
when AS3 gateway 3a advertises path AS3,X to AS2 gateway 2c:
• AS3 promises to AS2 it will forward datagrams towards X
AS 3 3b
AS 1b 3a 3c
1
1a 1c AS 2 3d
2b
1d BGP advertisement:
2a 2c X
AS3, X
2d
AS 3 3b
AS 1b 3a 3c
1
1a 1c AS 2 3d X
2b
1d AS3, X
AS2,AS3,X 2a 2c
2d
AS2 router 2c receives path advertisement AS3,X (via eBGP) from AS3 router 3a
based on AS2 policy, AS2 router 2c accepts path AS3,X, propagates (via iBGP) to all
AS2 routers
based on AS2 policy, AS2 router 2a advertises (via eBGP) path AS2, AS3, X to
AS1 router 1c
AS 3 3b
AS 1b AS3,X 3a 3c
AS3,X
1 AS3,X
1a 1c AS 2 3d X
2b
AS3,X
1d AS3, X
AS2,AS3,X 2a 2c
2d
Motivazioni (e soluzioni)
– Esaurimento indirizzi a 32 bit
indirizzi a 128 bit
– Velocizzare elaborazione e forwarding pacchetti
lunghezza fissa (40 byte) dell’header
eliminato checksum
– Risparmiare ai router costo frammentazione
ICMPv6: msg “packet too big” (sorgente deve preoccuparsi della
frammentazione)
– Facilitare QoS
introdotta “flow label” per identificare datagram appartenenti allo stesso
“flow”
(p.e. insiemi di pacchetti che richiedono un trattamento speciale come QoS p.e. audio-
video, high-priority traffic) 62
Dual stack
63
Tunneling and encapsulation
IPv4 network A B E F
connecting two
IPv6 routers IPv6 IPv6/v4 IPv6/v4 IPv6
IPv4 network
IPv6 datagram
IPv4 datagram tunneling: IPv6 datagram as payload in a IPv4 datagram
Datagrammi IPv6 come payload di datagrammi tra (interfacce di) router IPv4
Network Layer: 4-65
Tunneling
A B IPv4 tunnel E F
connecting IPv6 routers
logical view:
IPv6 IPv6/v4 IPv6/v4 IPv6
A B C D E F
physical view:
IPv6 IPv6/v4 IPv4 IPv4 IPv6/v4 IPv6
A-to-B: E-to-F:
B-to-C: B-to-C: B-to-C:
IPv6 IPv6
IPv6 inside IPv6 inside IPv6 inside
IPv4 IPv4 IPv4
67
1https://www.google.com/intl/en/ipv6/statistics.html
68
Riferimenti e immagini da:
• Computer Networks: A Top-Down Approach", B.
A. Forouzan, F. Mosharraf, McGraw Hill.
• Jim Kurose and Keith Ross, Computer
Networking: A Top-Down Approach, Settima
Edizione, Pearson, 2017