40
1 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.130 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 Modulo 8: Basi teoriche per il routing Parte 4

4 Livello Ip Parte3 Bw

Embed Size (px)

Citation preview

Page 1: 4 Livello Ip Parte3 Bw

1

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.130

Ricordare i servizi principalidel 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 inmodo best effort, privo di conessione, e quindi nongarantito

Modulo 8:Basi teoriche per il routing

Parte 4

Page 2: 4 Livello Ip Parte3 Bw

2

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.132

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

Algoritmi di routingOBIETTIVO:

Dato un insieme di router interconnessi,determinare il cammino ottimale dal sourcerouter al destination router

Cammino ottimale “Costo” minimo

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.133

Page 3: 4 Livello Ip Parte3 Bw

3

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.134

Cosa si intende per “costo”

• Fattori statici: topologia della rete

• Fattori dinamici: traffico della rete, guasti

• Politiche di routing tra provider

• Net neutrality?

Modello della rete

• Per formulare un algoritmo di routing, si modellala rete tramite un grafo pesato G(N,E) dove:• i nodi N rappresentano i router (oppure gli AS)

• gli archi rappresentano le connessioni tra irouter

• 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

Page 4: 4 Livello Ip Parte3 Bw

4

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.136

Rappresentazione mediante grafo

host

router

Etichetta sull’arco:

“costo” per l’invio di un pacchetto

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.137

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?

Page 5: 4 Livello Ip Parte3 Bw

5

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.138

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

Modulo 8a:Link state protocol

Parte 4

Page 6: 4 Livello Ip Parte3 Bw

6

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.140

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.141

Pacchetti con informazioni sullo stato dei link (LSP)

• 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

Periodicamente vengono inviati in broadcast, su tutti i link del nodo, dei pacchetti LSP con le seguenti informazioni:

Page 7: 4 Livello Ip Parte3 Bw

7

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.142

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.143

“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

Page 8: 4 Livello Ip Parte3 Bw

8

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.144

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

InizializzazioneN = {u}Per tutti i nodi v

se v è adiacente a uD(v) = c(u,v)

altrimenti D(v) = ∞

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.145

Algoritmo di Dijkstra - ciclo

Ciclo1. Calcola il costo D(i) per tutti i nodi adiacenti i non in N2. 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

Page 9: 4 Livello Ip Parte3 Bw

9

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.146

Esempio (step 1)

A F

B

D E

C3

3

2

3

1

1

13

5

5

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 ∞ ∞

Calcola per A il costo D(i) per tutti i nodi i adiacenti ad A che non sono in N

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.147

Esempio (step 2)

A F

B

D E

C3

3

2

3

1

1

13

5

5

Aggiungi a N il nodo w con il minimo costo D(w)

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.147

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

Page 10: 4 Livello Ip Parte3 Bw

10

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.148

Esempio (step 3)

A F

B

D E

C3

3

2

3

1

1

13

5

5

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 ∞

Aggiorna D(v) per ciascun nodo v adiacente a w, non in N:D(v) = min{ D(v), D(w) + c(w,v) }

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.149

Esempio (ciclo 2)

A F

B

D E

C3

3

2

3

1

13

5

5

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,D2 ADE 3,A 3,E 4,E

Page 11: 4 Livello Ip Parte3 Bw

11

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.150

Esempio (ciclo 3)

A F

B

D E

C3

3

2

3

1

13

5

5

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,D2 ADE 3,A 3,E 4,E3 ADEB 3,E

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.151

Esempio (ciclo 4)

A F

B

D E

C3

3

2

3

1

13

5

5

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,D2 ADE 3,A 3,E 4,E

3 ADEB 3,E4 ADEBC 4,E

Page 12: 4 Livello Ip Parte3 Bw

12

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.152

Esempio (ciclo 5)

A F

B

D E

C3

3

2

3

1

13

55

1Ciclo 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,D2 ADE 3,A 3,E 4,E3 ADEB 3,E4 ADEBC 4,E5 ADEBCF

Modulo 8b:Distance vector protocol

Parte 4

Page 13: 4 Livello Ip Parte3 Bw

13

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.154

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.155

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

Page 14: 4 Livello Ip Parte3 Bw

14

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.156

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.157

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

Page 15: 4 Livello Ip Parte3 Bw

15

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.158

Algoritmo Bellman-Ford

StartPer tutte le destinazioni y N:

Dx(y) = c(x,y) se y è adiacenteDx(y) = ∞ se y non è adiacente

Invia il vettore di distanze Dx = [Dx(y) | y N] ad ogni vicino v

LoopAttendi (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.159

Esempio: distanze iniziali (start)

A

B

E

C

D

ABCD

A B C

0 7 ∞7 0 1∞ 1 0∞ ∞ 2

7

1

1

2

28

Distanza dal nodo

D

∞∞20

E 1 8 ∞ 2

18∞20

E

Page 16: 4 Livello Ip Parte3 Bw

16

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.160

E riceve il vettore di distanze da D

A

B

E

C

D

ABCD

A B C

0 7 ∞7 0 1∞ 1 0∞ ∞ 2

7

1

1

2

28

Distanza dal nodo

D

∞∞20

E 1 8 ∞ 2

18∞20

E

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.161

E aggiorna i costi per C

A

B

E

C

D

ABCD

A B C

0 7 ∞7 0 1∞ 1 0∞ ∞ 2

7

1

1

2

28

Distanza dal nod

D

∞∞20

E 1 8 4 2

18∞20

E

E scopre che può arrivare a C in 2+2 passando attraverso D

Page 17: 4 Livello Ip Parte3 Bw

17

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.162

A riceve il vettore di distanze da B

A

B

E

C

D

ABCD

A B C

0 7 ∞7 0 1∞ 1 0∞ ∞ 2

7

1

1

2

28

Distanza dal nodo

D

∞∞20

E 1 8 4 2

18∞20

E

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.163

A aggiorna i costi solo per C

A

B

E

C

D

ABCD

A B C

0 7 87 0 1∞ 1 0∞ ∞ 2

7

1

1

2

28

Distanza dal nodo

D

∞∞20

E 1 8 4 2

18∞20

E

Page 18: 4 Livello Ip Parte3 Bw

18

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.164

A riceve il vettore di distanze da E

A

B

E

C

D

ABCD

A B C

0 7 8

7 0 1∞ 1 0∞ ∞ 2

7

1

1

2

28

Distanza dal nodo

D

∞20

E 1 8 4 2

1

8∞20

E

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.165

A aggiorna i costi per C e D

A

B

E

C

D

ABCD

A B C

0 7 5

7 0 1∞ 1 0∞ ∞ 2

7

1

1

2

28

Distanza dal nodo

D

3

∞20

E 1 8 4 2

1

8∞20

E

Page 19: 4 Livello Ip Parte3 Bw

19

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.166

Distanze finali (aggiornate)

A

B C

D

ABCD

A B C

0 6 56 0 15 1 03 3 2

7

1

1

2

28

Distanza dal nodo

D

3320

E 1 5 4 2

15420

E

E

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

Page 20: 4 Livello Ip Parte3 Bw

20

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.168

Instradamento visto dal nodo E

A

B

E

C

D

Dest

ABCD

A B D

1 14 5

7 8 56 9 44 11 2

7

1

1

2

28

Next hop

Tabella di routing di E

I percorsi di minor costo per la corrispondente destinazione sono indicati in rosso nella routing table

La routing table di E ha una riga per ogni destinazione nella rete e tante colonne quanti sono i nodi adiacenti al nodo stesso

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

Page 21: 4 Livello Ip Parte3 Bw

21

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.170

Problema 1: un link “degrada”

A

B C

D

ABCD

A B C

0 7 87 0 18 1 010 3 2

7

1

1

2

28

Distanza dal nodo

D

10320

E 1 8 9 11

189110

E

E11

• 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, loinvierà ai nodi vicini

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.171

Problema 2: effetto rimbalzo

A

25

1

1

B

C

BC 2

1

dest cost

AC 1

1

dest cost

AB 1

2

dest cost

Page 22: 4 Livello Ip Parte3 Bw

22

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.172

Esempio: link A-B ha un problema

A

25

1 50

1

B

C

BC 2

1

dest cost

AC 1

1

dest cost

AB 1

2

dest cost

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.173

B aggiorna le distanze per A(tenendo conto dei dati di C-A, che però includeva il passaggio per B)

A

25 1

B

C

BC 2

1

dest cost

AC 1

3

dest cost

AB 1

2

dest cost

50

Page 23: 4 Livello Ip Parte3 Bw

23

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.174

B manda il vettore di distanze a C

A

25 1

B

C

BC 2

1

dest costAC 1

3

dest cost

AB 1

4

dest cost

50

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.175

C manda il vettore di distanze a B

A

25 1

B

C

BC 2

1

dest costAC 1

5

dest cost

AB 1

4

dest cost

50

Page 24: 4 Livello Ip Parte3 Bw

24

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.176

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 Cconsidererà il proprio percorso verso A attraverso Bminore di 25

• Un pacchetto che arrivi a B o a C durantel’esistenza del loop rimbalzerà tra questi due nodi

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.177

Caso peggiore: non c’è stabilizzazione

1

11

1

A

• Nel caso in cui il link C-D diventa inutilizzabile, C marca D come irraggiungibile e lo elimina dagli aggiornamenti inviati ad A e B

• Si supponga che A riceva per primo l’aggiornamento. Adesso A considera che il cammino minimo verso D sia attraverso B

• A dichiara D irraggiungibile a B e a C notifica un costo pari a 3

• C vede D raggiungibile attraverso A a costo 4 e lo notifica a B

• B notifica un costo di 5 ad A che notificherà un costo aggiornato di 6 a C

• Rischio: “count-to-infinity”

B

C

D

Page 25: 4 Livello Ip Parte3 Bw

25

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.178

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.179

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

Page 26: 4 Livello Ip Parte3 Bw

26

Modulo 8c:Distance Vector vs. Link State

Parte 4

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.181

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

Page 27: 4 Livello Ip Parte3 Bw

27

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.182

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.183

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”)

Page 28: 4 Livello Ip Parte3 Bw

28

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.184

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

Modulo 9:Routing e router

Parte 4

Page 29: 4 Livello Ip Parte3 Bw

29

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.186

Router

Il router deve risolvere unproblema molto ben definito:Instradare i pacchetti nellarete da un qualsiasi hostad un qualsiasi altro host

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.187

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 aggiornateper risolvere il sottoproblema1 (protocollo di routing)

Page 30: 4 Livello Ip Parte3 Bw

30

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.188

Routing IP

destinazione192.106.248.121

rete192.106.248.xxx

Internet

rete130.192.xxx.xxx

router router

sorgente130.192.2.1

hop (salto)

• 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.189

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 2livello 3 (IP)

Page 31: 4 Livello Ip Parte3 Bw

31

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.190

Architettura di un router (2)

Porta di ingresso:- funzioni del livello 1

- funzioni del livello 2

- funzioni del livello 3 funzioni di ricerca e forwarding della portadi uscita; ottimizzazione della ricerca nella tabella di routing

associate ad un singolo link di ingresso

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.191

Architettura di un router (3)Componenti di switching

FUNZIONE: spostamento del pacchetto dalla porta di ingresso a quelladi uscita “opportuna”TECNICHE: Commutazione basata su switch, bus o rete diinterconnessione crossbar

switch

Page 32: 4 Livello Ip Parte3 Bw

32

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.192

Porta di uscita:- funzioni del livello 1

- funzioni del livello 2

- funzioni del livello 3 funzioni di gestione della coda e del buffer diuscita (la velocità con cui il commutatore consegna i pacchetti deveessere superiore alla capacità del link di uscita)

Architettura di un router (4)

associate con un singolo link di uscita

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.193

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

Page 33: 4 Livello Ip Parte3 Bw

33

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.194

Tabella di routing

• Ogni host e ogni router hanno una tabella di routing in cui ciascuna riga fornisce il next-hop per ognipossibile destinazione

• Le tabelle di routing possono avere anche più di 50-60000 righe

• Le dimensioni (crescenti) delle tabelle di routing potrebberoessere un limite allo sviluppo di Internet

• In realtà, una riga può fornire informazioni per moltedestinazioni con l’utilizzo di tecniche di aggregazione

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.195

Tecniche di aggregazione1. 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

Page 34: 4 Livello Ip Parte3 Bw

34

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.196

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.197

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

Page 35: 4 Livello Ip Parte3 Bw

35

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.198

Elementi della tabella di routing

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.199

Esempio: topologia minima di rete

153.18.31.254/20

rete 153.18.16.0/20 Internet

Routerdi default

eth0

153.18.17.11/20

00:B0:D0:DF:09:5D

Comandi per avere informazioni:- netstat- ipconfig

Page 36: 4 Livello Ip Parte3 Bw

36

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.200

netstat

netstat (stato delle connessioni) netstat – rn(-r: stampa la tabella di routing; -n: indirizzi in formato numerico)

Destinazione Gateway (router) Mask Flag Iface153.18.16.0 0.0.0.0 255.255.240.0 U eth0127.0.0.0 0.0.0.0 255.0.0.0 U lo0.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.201

ipconfig

ipconfigipconfig 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

Page 37: 4 Livello Ip Parte3 Bw

37

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.202

Funzionamento del router

• Estrae l’indirizzo IP del destinatario D dall’header del pacchetto e determina il suo netid N1. 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.203

Distinguere i due casi fondamentali

SUBNET 2

SUBNET 1SUBNET 1 SUBNET 3SUBNET 3

…. ….HOST HOST

ROUTER ROUTER

SUBNET 1SUBNET 1 SUBNET 2SUBNET 2 SUBNET 3SUBNET 3

IPIPIPIP

AP AP

HOSTHOST

ROUTER ROUTERTCPTCPIPIP

h2nh2n

TCPTCPIPIP

h2nh2nh2nh2n h2nh2n

Host mittente e destinatario sulla stessa sottorete

Host mittente e destinatario su sottoreti differenti

(netid uguali)

(netid differenti)

Page 38: 4 Livello Ip Parte3 Bw

38

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.204

Next-hop forwarding

• Next-hop forwarding: il router possiede l’informazione sulsalto successivo (next-hop) che il pacchetto deve compiereper giungere a destinazione

• Il next-hop router appartiene a una rete alla quale il router ècollegato direttamente

netid routerdirettodiretto20.0.0.6

10.0.0.020.0.0.030.0.0.0

Tabella di routing per il router R

10.0.0.5

20.0.0.5 30.0.0.6

20.0.0.6

rete 10.0.0.0

rete 20.0.0.0

rete 30.0.0.0

R R1

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.205

• ricerca l’indirizzo di rete di B• B è sulla stessa rete di A• il livello host-to-network invia il

pacchetto direttamente a B in un frame

miscfields 223.1.1.1 223.1.1.3 data Dest. Netid Next router Nhops

223.1.1 1223.1.2 223.1.1.4 2223.1.3 223.1.1.4 2

223.1.1.1

223.1.1.2

223.1.1.3

223.1.1.4 223.1.2.9

223.1.2.1

223.1.3.2223.1.3.1

A

BE223.1.3.27

223.1.2.2

Esempi di IP forwarding: A B

Partendo da A, se il pacchetto è destinato a B:

Page 39: 4 Livello Ip Parte3 Bw

39

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.206

Partendo da A, destinazione E:• ricerca l’indirizzo di rete di E• E è su una rete diversa• routing table: next hop router

per E è 223.1.1.4• il livello host-to-network invia

il pacchetto al router 223.1.1.4 in un frame

• il pacchetto arriva a 223.1.1.4 • segue...

miscfields 223.1.1.1 223.1.2.3 data Dest. Netid Next router Nhops

223.1.1 1223.1.2 223.1.1.4 2223.1.3 223.1.1.4 2

223.1.1.1

223.1.1.2

223.1.1.3

223.1.1.4 223.1.2.9

223.1.2.1

223.1.3.2223.1.3.1

A

E223.1.3.27223.1.2.2

Esempi di IP forwarding: A E

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.207

Il frame destinato ad E arriva a 223.1.1.4

• ricerca l’indirizzo di rete di E• E è sulla stessa rete della

interfaccia del router 223.1.2.9

• il livello host-to-network invia il pacchetto a 223.1.2.2 in un frame

• il pacchetto arriva a 223.1.2.2

miscfields 223.1.1.1 223.1.2.3 data Netid router Nhops Interfaccia

223.1.1 - 1 223.1.1.4223.1.2 - 1 223.1.2.9223.1.3 - 1 223.1.3.27

Dest. Next

223.1.1.1

223.1.1.2

223.1.1.3

223.1.1.4 223.1.2.9

223.1.2.1

223.1.3.2223.1.3.1

A

E223.1.3.27223.1.2.2

Esempi di IP forwarding: A E

Page 40: 4 Livello Ip Parte3 Bw

40

Protocolli e Architetture di Rete 2009/2010 – Livello Internet

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 mask255.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

4.208

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.209

In realtà