1. Ricordare i servizi principali
del livello IP
• Indirizzamento univoco degli host
• Unità di trasferimento dati
• Architettura di Internet
• Funzione di routing:
– sceglie il percorso nella rete attraverso il quale
consegnare i pacchetti
– consegna i pacchetti da un host a un altro, ma in
modo best effort, privo di conessione, e quindi non
garantito
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.130
Parte 4
Modulo 8:
Basi teoriche per il routing
1
2. Host e router di default
• Ciascun host fa riferimento a un router di default,
detto anche first hop router
• Quando un host invia un pacchetto, questo router
prende il nome di source router
• Analogamente, quando un host riceve un
pacchetto, il suo router di defaulr prende il nome
di destination router
• Quindi, il problema del routing da host a host è in
realtà un problema di routing da source router a
destination router
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.132
Algoritmi di routing
OBIETTIVO:
Dato un insieme di router interconnessi,
determinare il cammino ottimale dal source
router al destination router
Cammino ottimale “Costo” minimo
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.133
2
3. Cosa si intende per “costo”
• Fattori statici: topologia della rete
• Fattori dinamici: traffico della rete, guasti
• Politiche di routing tra provider
• Net neutrality?
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.134
Modello della rete
• Per formulare un algoritmo di routing, si modella
la rete tramite un grafo pesato G(N,E) dove:
• i nodi N rappresentano i router (oppure gli AS)
• gli archi rappresentano le connessioni tra i
router
• le etichette E degli archi rappresentano il
“costo” delle connessioni tra i router
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.135
3
4. Rappresentazione mediante grafo
router
host
Etichetta sull’arco:
“costo” per l’invio di un pacchetto
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.136
Algoritmi di routing
Qual è il cammino minimo (e il suo costo) tra A e C?
Qual è il cammino minimo (e il suo costo) tra A e F?
Quanti percorsi ci sono tra A e F?
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.137
4
5. Principali algoritmi di routing
• Algoritmi di routing centralizzato
– Ogni nodo possiede un’informazione globale sulla
rete
– Es., Link state protocol
• Algoritmi di routing distribuito
– Nessun nodo ha un’informazione completa del
costo di tutti i link della rete
– Es., Distance vector protocol
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.138
Parte 4
Modulo 8a:
Link state protocol
5
6. Algoritmi Link State
• Gli algoritmi Link State (LS) sono centralizzati
• Prevedono che la topologia di rete e i costi di ogni
link siano noti (disponibili in input all’algoritmo):
1. Ogni nodo calcola lo stato dei link ad esso connessi
2. Ciascun nodo periodicamente trasmette identità e costi
dei link connessi (link state broadcast)
(Quindi tutti i nodi hanno una visione identica e
completa della rete)
3. Ciascun nodo calcola i cammini di costo minimo verso
tutti gli altri nodi della rete mediante l’Algoritmo di
Dijkstra
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.140
Pacchetti con informazioni sullo stato
dei link (LSP)
Periodicamente vengono inviati in broadcast, su tutti
i link del nodo, dei pacchetti LSP con le seguenti
informazioni:
• Node ID
• Lista di vicini e costo dei rispettivi link
• Informazioni aggiuntive:
– Numero di sequenza per accorgesi di errori in caso
di delivery out-of-order delle informazioni
– Time To Live (TTL) per evitare di usare informazioni
vecchie e quindi non affidabili
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.141
6
7. Propagazione dei pacchetti LSP
Inoltro con algoritmo di flooding (inondazione)
Quando il nodo i riceve un LSP dal nodo j:
• Se il pacchetto LSP proveniente da j è più recente, si salva il
valore nella tabella e si inoltra una copia a su tutti i link
connessi al nodo i (ad eccezione di quello da cui l’LSP è
stato ricevuto)
• Altrimenti il pacchetto LSP viene scartato
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.142
“Forward search algorithm” di Dijkstra
• Algoritmo iterativo: alla k-esima iterazione, il nodo i
conosce il cammino di costo minore verso k nodi
destinazione
• Si definiscono:
– c(i,j) costo del link tra nodo i e nodo j
– D(v) costo minimo del cammino verso il nodo v (minimo
relativamente alla iterazione corrente). D(v)=∞ se il costo
del link non è noto
– p(v) immediato predecessore di v lungo il cammino a
costo minimo verso v
– N gruppo nodi il cui cammino di costo minore è noto
definitivamente
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.143
7
8. Algoritmo di Dijkstra - inizializzazione
• Passo di inizializzazione seguito da un ciclo
eseguito una volta per ogni nodo del grafo
• Al termine saranno stati calcolati i cammini minimi
dal nodo u verso tutti gli altri nodi
Inizializzazione
N = {u}
Per tutti i nodi v
se v è adiacente a u
D(v) = c(u,v)
altrimenti D(v) = ∞
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.144
Algoritmo di Dijkstra - ciclo
Ciclo
1. Calcola il costo D(i) per tutti i nodi adiacenti i non in N
2. Aggiungi a N il nodo w con il minimo costo D(w)
3. Aggiorna D(v) per ciascun nodo v adiacente a w, non in N:
D(v) = min{ D(v), D(w) + c(w,v) }
Until tutti i nodi del grafo sono nell’insieme N
Il nuovo costo verso v è il
vecchio costo verso v oppure
il costo del cammino minimo
verso w più il costo da w a v
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.145
8
9. Esempio (step 1)
Calcola per A il costo D(i) per tutti i nodi i adiacenti ad A
che non sono in N
5
3
3 B C 5
A 3 1 F
3
1 D E 2
1
Ciclo N D(B), p(B) D(C), p(C) D(D), p(D) D(E),p(E) D(F), p(F)
A 3, A 5, A 1, A ∞ ∞
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.146
Esempio (step 2)
Aggiungi a N il nodo w con il minimo costo D(w)
5
3
3 B C 5
A 3 1 F
3
1 D E 2
1
Ciclo N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F)
A 3,A 5,A 1,A ∞ ∞
AD
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.147
9
10. Esempio (step 3)
Aggiorna D(v) per ciascun nodo v adiacente a w, non in N:
D(v) = min{ D(v), D(w) + c(w,v) }
5
3
3 B C 5
A 3 1 F
3
1 D E 2
1
Ciclo N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F)
A 3,A 5,A 1,A ∞ ∞
AD 3,A 4,D 2,D ∞
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.148
Esempio (ciclo 2)
5
3
3 B C 5
A 3 1 F
3
1 D E 2
1
Ciclo N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F)
0 A 3,A 5,A 1,A ∞ ∞
1 AD 3,A 4,D 2,D
2 ADE 3,A 3,E 4,E
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.149
10
11. Esempio (ciclo 3)
5
3
3 B C 5
A 3 1 F
3
1 D E 2
1
Ciclo N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F)
0 A 3,A 5,A 1,A ∞ ∞
1 AD 3,A 4,D 2,D
2 ADE 3,A 3,E 4,E
3 ADEB 3,E
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.150
Esempio (ciclo 4)
5
3
3 B C 5
A 3 1 F
3
1 D E 2
1
Ciclo N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F)
0 A 3,A 5,A 1,A ∞ ∞
1 AD 3,A 4,D 2,D
2 ADE 3,A 3,E 4,E
3 ADEB 3,E
4 ADEBC 4,E
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.151
11
12. Esempio (ciclo 5)
5 3
3 B C 5
A 3 1 F
3
1 D E 2
1
Ciclo N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F)
0 A 3,A 5,A 1,A ∞ ∞
1 AD 3,A 4,D 2,D
2 ADE 3,A 3,E 4,E
3 ADEB 3,E
4 ADEBC 4,E
5 ADEBCF
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.152
Parte 4
Modulo 8b:
Distance vector protocol
12
13. Algoritmi Distance Vector
• Usati nel primo periodo di Internet (ARPANET)
• Calcolo distribuito del next hop. E’ un algoritmo:
– adattativo rispetto ai cambiamenti di stato della
rete
– iterativo
– asincrono
• Unità di scambio dell’informazione:
– Vettore di distanze rispetto alle varie destinazioni
• Esempio principale di implementazione:
– Algoritmo Bellman-Ford distribuito
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.154
Algoritmo Bellman-Ford: premessa
• Si usa la formula di Bellman-Ford per il calcolo del
costo minimo tra x e y:
Dx(y) = minv { c(x,v) + Dv(y) }
dove minv è calcolato tra tutti i vicini v del nodo x
• Intuitivamente, la formula è molto chiara:
– tra tutti i nodi v adiacenti al nodo x, il percorso da scegliere è quello
che mi porta con il minor costo da v a y,
– a meno che (da cui la considerazione del primo addendo) il costo tra
x e v sia talmente alto che mi conviene percorrere altre strade
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.155
13
14. Intuizione dell’algoritmo Bellman-Ford
Come abbiamo calcolato il cammino minimo tra A e C?
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.156
Algoritmo Bellman-Ford: premessa
• Ogni nodo:
– aggiorna il proprio vettore di distanze in risposta a
variazioni di costi sui link adiacenti
– invia un aggiornamento ai nodi adiacenti se il proprio
vettore di distanze cambia
• Ogni nodo x mantiene una tabella con i seguenti dati:
– c(x,v) costo del link tra nodo x e nodo v in N
– c(x,v)=∞ se non c’è link tra nodo x e nodo v in N
– Dx=[Dx(y): y in N] vettore di distanze del nodo x verso
tutti i nodi y nella rete N
– Dv=[Dv(y): y in N] vettori di distanze dei vicini v di x
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.157
14
15. Algoritmo Bellman-Ford
Start
Per tutte le destinazioni y N:
Dx(y) = c(x,y) se y è adiacente
Dx(y) = ∞ se y non è adiacente
Invia il vettore di distanze Dx = [Dx(y) | y N] ad ogni vicino v
Loop
Attendi (finchè il costo di un collegamento verso qualche vicino v
cambia o ricevi un vettore di distanze da un vicino v)
Per ogni destinazione y in N:
Dx(y) = minv { c(x,v) + Dv(y) }
Se Dx(y) è cambiato per qualche destinazione y
invia il vettore di distanze Dx = [Dx(y) : y N] a tutti i vicini
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.158
Esempio: distanze iniziali (start)
1
B C Distanza dal nodo
7 A B C D E
A 0 7 ∞ ∞ 1
A 8 2 B 7 0 1 ∞ 8
C ∞ 1 0 2 ∞
1 2 D ∞ ∞ 2 0 2
E D
E 1 8 ∞ 2 0
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.159
15
16. E riceve il vettore di distanze da D
1
B C Distanza dal nodo
7 A B C D E
A 0 7 ∞ ∞ 1
A 8 2 B 7 0 1 ∞ 8
C ∞ 1 0 2 ∞
1 2 D ∞ ∞ 2 0 2
E D
E 1 8 ∞ 2 0
D dice: “io arrivo a C in 2, e a E in 2; non sono collegato a A e B”
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.160
E aggiorna i costi per C
1
B C Distanza dal nod
7 A B C D E
A 0 7 ∞ ∞ 1
A 8 2 B 7 0 1 ∞ 8
C ∞ 1 0 2 ∞
1 2 D ∞ ∞ 2 0 2
E D
E 1 8 4 2 0
E scopre che può arrivare a C in 2+2 passando attraverso D
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.161
16
17. A riceve il vettore di distanze da B
1
B C Distanza dal nodo
7 A B C D E
A 0 7 ∞ ∞ 1
A 8 2 B 7 0 1 ∞ 8
C ∞ 1 0 2 ∞
1 2 D ∞ ∞ 2 0 2
E D
E 1 8 4 2 0
B dice: “io arrivo a C in 1, e a E in 8; non sono collegato a D”
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.162
A aggiorna i costi solo per C
1
B C Distanza dal nodo
7 A B C D E
A 0 7 8 ∞ 1
A 8 2 B 7 0 1 ∞ 8
C ∞ 1 0 2 ∞
1 2 D ∞ ∞ 2 0 2
E D
E 1 8 4 2 0
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.163
17
18. A riceve il vettore di distanze da E
1
B C Distanza dal nodo
7 A B C D E
A 0 7 8 ∞ 1
A 8 2 B 7 0 1 ∞ 8
C ∞ 1 0 2 ∞
1 2 D ∞ ∞ 2 0 2
E D
E 1 8 4 2 0
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.164
A aggiorna i costi per C e D
1
B C Distanza dal nodo
7 A B C D E
A 0 7 5 3 1
A 8 2 B 7 0 1 ∞ 8
C ∞ 1 0 2 ∞
1 2 D ∞ ∞ 2 0 2
E D
E 1 8 4 2 0
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.165
18
19. Distanze finali (aggiornate)
1
B C Distanza dal nodo
7 A B C D E
A 0 6 5 3 1
A 8 2 B 6 0 1 3 5
C 5 1 0 2 4
1 2 D 3 3 2 0 2
E D
E 1 5 4 2 0
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.166
Tabella di routing
• L’algoritmo di Bellman-Ford ha un’immediata
ricaduta pratica. Serve, infatti per calcolare i valori
della Tabella di routing di ciascun router
• La Tabella di routing del nodo x ha:
– una riga per ogni nodo destinazione nella rete (router o
AS)
– tante colonne quanti sono i nodi adiacenti al nodo x
– i costi di cammino come elementi della tabella
• In questo modo, nel momento in cui arriva un
pacchetto con un indirizzo destinazione, il router
può facilmente decidere su quale link inoltrarlo
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.167
19
20. Instradamento visto dal nodo E
1 Tabella di routing di E
B C
Next hop
7 Dest A B D
A 1 14 5
A 8 2
B 7 8 5
C 6 9 4
1 2
D D 4 11 2
E
La routing table di E ha una riga per ogni destinazione nella rete e tante
colonne quanti sono i nodi adiacenti al nodo stesso
I percorsi di minor costo per la corrispondente destinazione
sono indicati in rosso nella routing table
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.168
Osservazioni
Ci sono circa 700 milioni di host e milioni di router
• E’ credibile una tabella che contenga tutti i router
di Internet come destinazione?
• Come si gestisce nella realtà il problema?
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.169
20
21. Problema 1: un link “degrada”
1
B C Distanza dal nodo
7 A B C D E
A 0 7 8 10 1
A 8 2 B 7 0 1 3 8
C 8 1 0 2 9
1 2 D 10 3 2 0 11
E D
E 1 8 9 11 0
11
• I nodi che vertono sul link E-D, ricalcolano il vettore distanza
• Aggiornano la propria routing table e trasmettono il nuovo vettore ai vicini
• Ciascun nodo ricalcolerà il proprio vettore distanza e, iterativamente, lo
invierà ai nodi vicini
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.170
Problema 2: effetto rimbalzo
dest cost dest cost
1
B 1 A 1
A B
C 2 C 1
25 1
C
dest cost
A 2
B 1
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.171
21
22. Esempio: link A-B ha un problema
dest cost dest cost
1 50
B 1 A 1
A B
C 2 C 1
25 1
C
dest cost
A 2
B 1
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.172
B aggiorna le distanze per A
(tenendo conto dei dati di C-A, che però includeva il passaggio per B)
dest cost dest cost
B 1 50 A 3
A B
C 2 C 1
25 1
C
dest cost
A 2
B 1
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.173
22
23. B manda il vettore di distanze a C
dest cost
dest cost
50 A 3
B 1 A B
C 1
C 2
25 1
C
dest cost
A 4
B 1
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.174
C manda il vettore di distanze a B
dest cost
dest cost
50 A 5
B 1 A B
C 1
C 2
25 1
C
dest cost
A 4
B 1
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.175
23
24. Come si crea l’effetto rimbalzo
• La distanza diretta da B verso A cresce molto
• Quindi, B sceglie C come prossimo hop per A
• Ma…, il percorso implicito da C verso A include
B!
• Le tabelle di B e C si aggiornano gradualmente, ma
si crea un loop che proseguirà fino a quando C
considererà il proprio percorso verso A attraverso B
minore di 25
• Un pacchetto che arrivi a B o a C durante
l’esistenza del loop rimbalzerà tra questi due nodi
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.176
Caso peggiore: non c’è stabilizzazione
• Nel caso in cui il link C-D diventa
inutilizzabile, C marca D come
irraggiungibile e lo elimina dagli
A 1 aggiornamenti inviati ad A e B
B
• Si supponga che A riceva per
primo l’aggiornamento. Adesso A
1 1 considera che il cammino minimo
verso D sia attraverso B
C • A dichiara D irraggiungibile a B e
a C notifica un costo pari a 3
1 • C vede D raggiungibile attraverso
A a costo 4 e lo notifica a B
D • B notifica un costo di 5 ad A che
notificherà un costo aggiornato di
6aC
• Rischio: “count-to-infinity”
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.177
24
25. Possibili soluzioni
• Evitare il “count-to-infinity”
– Scegliere una soglia (abbastanza bassa) per “rappresentare”
l’infinito. Es., massimo numero di hop necessari = 16
• Split Horizon
– Bisogna differenziare i vettori di distanze inviati ai nodi adiacenti: il
vettore di B inviato a C non conterrà le destinazioni raggiungibili
tramite C
– Obiettivo: “Se B raggiunge A attraverso C, non ha senso per C
cercare di raggiungere A attraverso B”
• Split Horizon with poisoned reverse
– Se B raggiunge A attraverso C, B avvertirà C che la sua distanza
verso A è infinita (anche se in realtà sa di poter instradare i pacchetti
tramite C, il costo risulta troppo alto)
• Queste soluzioni non funzionano per cicli che
coinvolgono 3 o più nodi
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.178
Evitare l’effetto rimbalzo
• Per evitare l’effetto rimbalzo (bouncing effect) si
devono selezionare percorsi senza cicli
• Un modo per farlo:
– Ogni aggiornamento del cammino minimo verso un
nodo riporta l’intero percorso
– Se un router vede se stesso nel percorso, scarta il
percorso
• Problema: la quantità di dati trasmessi è
proporzionale alla distanza tra i nodi
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.179
25
26. Parte 4
Modulo 8c:
Distance Vector vs. Link State
Distance Vector vs. Link State
• DV: tutto quello che si sa è propagato solo ai vicini
• LS: le informazioni sui vicini sono passate a tutti
• Dimensione dei messaggi
– LS: piccola
– DV: potenzialmente grande
• Numero di messaggi
– LS: molto grande, di tipo O(n), dove n sono i nodi del grafo
– DV: piccolo in quanto comunicazioni solo ai vicini
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.181
26
27. Distance Vector vs. Link State
• Velocità di convergenza
– LS: veloce
– DV: veloce se si usano aggiornamenti periodici
abbastanza frequenti (però, aggiornamenti troppo
frequenti sono a rischio di instabilità)
• Requisito di memorizzazione
– LS: molto alto si mantiene l’intera topologia del grafo
– DV: basso si mantiene solo lo stato dei vicini
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.182
Distance Vector vs. Link State
• Robustezza
– LS: calcolo dei percorsi effettuato in maniera
indipendente da ogni nodo
protezione contro guasti ai router
– DV: calcolo dei percorsi basato sui calcoli degli
altri router
il calcolo sbagliato di un router può essere
propagato a gran parte della rete (“count-to-infinity”)
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.183
27
28. Conclusione
• Non c’è un chiaro vincitore tra i due algoritmi:
– Distance vector (distribuito) ha dei vantaggi
– Link state (centralizzato) ha altri vantaggi
• Gli algoritmi di tipo Link state (centralizzati)
tendono ad essere utilizzati all’interno degli AS
• Gli algoritmi di tipo Distance vector (distribuiti)
sono utilizzati per il routing tra AS
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.184
Parte 4
Modulo 9:
Routing e router
28
29. Router
Il router deve risolvere un
problema molto ben definito:
Instradare i pacchetti nella
rete da un qualsiasi host
ad un qualsiasi altro host
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.186
Problema del routing
• Instradare i pacchetti nella rete da un qualsiasi host
ad un qualsiasi altro host è un problema complesso
• Quando un problema è complesso si suddivide in
sottoproblemi più semplici:
– Sottoproblema 1: ad ogni pacchetto in ingresso,
determinare il link di uscita in modo che il pacchetto si
avvicini alla destinazione (IP forwarding)
– Sottoproblema 2: mantenere informazioni aggiornate
per risolvere il sottoproblema1 (protocollo di routing)
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.187
29
30. Routing IP
rete rete
130.192.xxx.xxx 192.106.248.xxx
hop (salto)
router router
Internet
sorgente destinazione
130.192.2.1 192.106.248.121
• I router si passano i pacchetti come una “patata bollente”: bisogna
conoscere solo l’indirizzo del prossimo hop
• A volte il routing non ha successo perché i router sovraccarichi scartano
pacchetti (limite fisico) o vi possono errori di routing (errore logico)
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.188
Architettura di un router
4 componenti fondamentali nell’architettura di un router:
- porta di ingresso
- commutatore
- processore di routing
- porta di uscita
Funzionalità di:
livello 1 (fisico)
livello 2
livello 3 (IP)
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.189
30
31. Architettura di un router (2)
Porta di ingresso:
- funzioni del livello 1 associate ad un singolo
link di ingresso
- funzioni del livello 2
- funzioni del livello 3 funzioni di ricerca e forwarding della porta
di uscita; ottimizzazione della ricerca nella tabella di routing
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.190
Architettura di un router (3)
Componenti di switching
FUNZIONE: spostamento del pacchetto dalla porta di ingresso a quella
di uscita “opportuna”
TECNICHE: Commutazione basata su switch, bus o rete di
interconnessione crossbar
switch
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.191
31
32. Architettura di un router (4)
Porta di uscita:
- funzioni del livello 1 associate con un
- funzioni del livello 2 singolo link di uscita
- funzioni del livello 3 funzioni di gestione della coda e del buffer di
uscita (la velocità con cui il commutatore consegna i pacchetti deve
essere superiore alla capacità del link di uscita)
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.192
IP Forwarding
• IP forwarding (inoltro): meccanismo con cui un
router trasferisce i datagram da un’interfaccia
d’ingresso a quella in uscita
• Effettuato da ogni router
• Il next-hop router appartiene a una rete alla
quale il router è collegato direttamente
Per inoltrare i pacchetti:
– l’indirizzo di destinazione viene estratto dall’header del
datagram
– l’indirizzo di destinazione è usato come indice nella
tabella di routing
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.193
32
33. Tabella di routing
• Ogni host e ogni router hanno una tabella di routing
in cui ciascuna riga fornisce il next-hop per ogni
possibile destinazione
• Le tabelle di routing possono avere anche più di 50-60000
righe
• Le dimensioni (crescenti) delle tabelle di routing potrebbero
essere un limite allo sviluppo di Internet
• In realtà, una riga può fornire informazioni per molte
destinazioni con l’utilizzo di tecniche di aggregazione
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.194
Tecniche di aggregazione
1. Utilizzo del solo netid per un insieme di indirizzi IP di destinazione
che condividono lo stesso next-hop, cioé le reti per le quali il next-
hop è rappresentato dallo stesso router
2. Nel caso in cui gli indirizzi di rete che possono essere aggregati
non condividono lo stesso next-hop, si aggregano gli indirizzi
aggregabili con prefissi diversi e seguendo il principio del longest
prefix matching (ordinando la tabella mettendo prima le maschere
più lunghe e poi le più corte)
3. Si organizzano le tabelle creando un’organizzazione gerarchica
che riflette l’architettura di Internet
4. E’ possibile sfruttare anche il routing geografico, sapendo che le
classi di indirizzi IP vengono assegnati in funzione della posizione
geografica continentale
5. Uso del router di default: si definisce un router di default comune
a più indirizzi di destinazione
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.195
33
34. Caratteristiche delle tabelle di routing
• Routing statico: la tabella di routing non è
modificata dal router
– L’amministratore di rete deve inserire o modificare righe
della tabella di routing
– Svantaggio: impossibilità di reagire automaticamente ai
cambiamenti topologici
– Da utilizzare nel caso di reti piccole con pochi cambiamenti
• Routing dinamico: la tabella di routing è modificata
dal router al variare delle condizioni sulla rete (stato
di funzionamento degli apparati e dei collegamenti)
– Lo scambio di informazioni ed il calcolo dei valori della
tabella di routing avvengono mediante qualche protocollo
di routing, quali RIP, OSPF, BGP (si vedranno in seguito)
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.196
Caratteristiche del forwarding IP
• Indipendenza dal mittente: il next-hop routing
non dipende (tipicamente) dal mittente del
pacchetto o dal cammino che il pacchetto ha
attraversato fino a quel momento
– Il router estrae dal pacchetto soltanto l’indirizzo del
destinatario
• Routing universale: la tabella di routing deve
contenere un next-hop router per ciascuna
destinazione
• Routing ottimo: il next-hop router è scelto in
modo da minimizzare il cammino verso la
destinazione utilizzo degli algoritmi di routing
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.197
34
35. Elementi della tabella di routing
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.198
Esempio: topologia minima di rete
eth0 00:B0:D0:DF:09:5D
153.18.17.11/20
rete
153.18.16.0/20 Internet
153.18.31.254/20
Router
di default
Comandi per avere informazioni:
- netstat
- ipconfig
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.199
35
36. netstat
netstat (stato delle connessioni)
netstat – rn
(-r: stampa la tabella di routing; -n: indirizzi in formato numerico)
Destinazione Gateway (router) Mask Flag Iface
153.18.16.0 0.0.0.0 255.255.240.0 U eth0
127.0.0.0 0.0.0.0 255.0.0.0 U lo
0.0.0.0 153.18.32.254 0.0.0.0 UG eth0
• L’indirizzo di destinazione può essere un insieme di indirizzi aggregato (la
differenza si capisce dalla mask)
• In questo esempio, l’host ha una sola interfaccia Ethernet (lo è locale)
• La destinazione 0.0.0.0 indica la destinazione di default (in questo caso, al
router indicato nella colonna gateway)
• Mask 0.0.0.0 e il flag G indicano che la consegna è indiretta
• Il flag U indica che il next-hop è funzionante (UP); se un pacchetto raggiunge
un entry il cui flag non è UP, deve essere scartato
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.200
ipconfig
ipconfig
ipconfig eth0
eth0 Link encap: ethernet HWaddr 00:B0:D0:DF:09:5D
Inetaddr: 153.18.17.11 Bcast: 153:18:31:255 Mask: 255:255:240.0
• In Windows: ipconfig /all
Tutte le informazioni dettagliate
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.201
36
37. Funzionamento del router
• Estrae l’indirizzo IP del destinatario D
dall’header del pacchetto e determina il suo
netid N
1. Se N corrisponde ad una rete connessa direttamente al
router, consegna il pacchetto al destinatario D sulla rete
(ciò comporta la risoluzione di D nel corrispondente
indirizzo fisico e l’invio del frame via Ethernet)
2. Se la tabella contiene un router per la rete N, invia il
pacchetto al next-hop router specificato nella tabella
3. Se la tabella contiene un router di default, invia il
pacchetto a quel router
4. Altrimenti, si verifica un errore di routing
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.202
Distinguere i due casi fondamentali
SUBNET 2
Host mittente e destinatario
ROUTER ROUTER sulla stessa sottorete
SUBNET 1 SUBNET 3 (netid uguali)
…. ….
HOST HOST Host mittente e destinatario
su sottoreti differenti
(netid differenti)
HOST HOST
AP AP
TCP ROUTER ROUTER TCP
IP IP IP IP
h2n h2n h2n h2n
SUBNET 1 SUBNET 2 SUBNET 3
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.203
37
38. Next-hop forwarding
• Next-hop forwarding: il router possiede l’informazione sul
salto successivo (next-hop) che il pacchetto deve compiere
per giungere a destinazione
• Il next-hop router appartiene a una rete alla quale il router è
collegato direttamente
R 20.0.0.5 R1 30.0.0.6
rete rete rete
10.0.0.0 20.0.0.0 30.0.0.0
10.0.0.5 20.0.0.6
netid router
10.0.0.0 diretto Tabella di routing
20.0.0.0 diretto per il router R
30.0.0.0 20.0.0.6
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.204
Esempi di IP forwarding: A B
misc Dest. Netid Next router Nhops
fields 223.1.1.1 223.1.1.3 data
223.1.1 1
223.1.2 223.1.1.4 2
223.1.3 223.1.1.4 2
Partendo da A, se il pacchetto è
destinato a B:
A 223.1.1.1
• ricerca l’indirizzo di rete di B
223.1.2.1
• B è sulla stessa rete di A 223.1.1.2
• il livello host-to-network invia il 223.1.1.4 223.1.2.9
pacchetto direttamente a B in B
223.1.2.2
un frame 223.1.1.3 223.1.3.27 E
223.1.3.1 223.1.3.2
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.205
38
39. Esempi di IP forwarding: A E
misc Dest. Netid Next router Nhops
fields 223.1.1.1 223.1.2.3 data
223.1.1 1
223.1.2 223.1.1.4 2
Partendo da A, destinazione E:
223.1.3 223.1.1.4 2
• ricerca l’indirizzo di rete di E
• E è su una rete diversa
A 223.1.1.1
• routing table: next hop router
per E è 223.1.1.4 223.1.2.1
223.1.1.2
• il livello host-to-network invia 223.1.1.4 223.1.2.9
il pacchetto al router
223.1.1.4 in un frame 223.1.1.3 223.1.3.27
223.1.2.2
E
• il pacchetto arriva a 223.1.1.4
223.1.3.1 223.1.3.2
• segue...
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.206
Esempi di IP forwarding: A E
Dest. Next
misc Netid router Nhops Interfaccia
fields 223.1.1.1 223.1.2.3 data
223.1.1 - 1 223.1.1.4
223.1.2 - 1 223.1.2.9
Il frame destinato ad E arriva a 223.1.3 - 1 223.1.3.27
223.1.1.4
• ricerca l’indirizzo di rete di E A 223.1.1.1
• E è sulla stessa rete della
interfaccia del router 223.1.2.1
223.1.1.2
223.1.2.9 223.1.1.4 223.1.2.9
• il livello host-to-network invia il
pacchetto a 223.1.2.2 in un 223.1.2.2
223.1.1.3 223.1.3.27 E
frame
223.1.3.1 223.1.3.2
• il pacchetto arriva a 223.1.2.2
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.207
39
40. Subnet mask e routing
• Le subnet servono anche (e soprattutto) per
facilitare il routing dei pacchetti all’interno
della rete amministrata
• Si assuma una subnet con mask
255.255.255.128
• Al router che collega la subnet, arriva un
pacchetto con destinazione: 150.100.12.176
• Si effettua un AND tra l’indirizzo e la subnet mask
(150.100.12.176) AND (255.255.255.128)
Risultato: 150.100.12.128 che corrisponde alla sottorete
di destinazione i cui host si trovano nel range
150.100.12.129 - 150.100.12.254
Protocolli e Architetture di Rete 2009/2010 – Livello Internet 4.208
In realtà
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.209
40