lo strato 3 in internet - deisnet reti di...

57
1 Lo strato 3 in Internet Prof. Ing. Carla Raffaelli A.A. 2005-2006 Commutatori a pacchetto: cosa c’e’ dentro un router IP? Prof. Ing. Carla Raffaelli

Upload: dodieu

Post on 20-Sep-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

1

Lo strato 3 in Internet

Prof. Ing. Carla RaffaelliA.A. 2005-2006

Commutatori a pacchetto:cosa c’e’ dentro un router IP?

Prof. Ing. Carla Raffaelli

Page 2: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

2

3

Un semplice commutatore a pacchetto

• Una workstation con schede di rete e software per– ricevere pacchetti– realizzare le associazioni ingresso-uscita– spedire i pacchetti

CPU

MEMORIA

INTERFACCIA 1

INTERFACCIA 2

INTERFACCIA N

I/O BUS

4

Trasferimento del pacchetto

• La workstation usa un meccanismo DMA (Direct Memory Access) per trasferire i dati direttamente dalle interfacce alla memoria

• Una volta che il pacchetto e’ in memoria la CPU esamina la sua intestazione per determinare l’ interfaccia a cui deve essere inviato

• Tramite DMA il pacchetto viene trasferito sulla interfaccia di uscita

Page 3: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

3

5

Prestazioni

• Sono limitate dal fatto che tutti i pacchetti devono transitare per un solo punto di contesa rappresentato tipicamente dal bus di I/O che viene attraversato due volte per ciacun trasferimento– un processore con un bus di I/O a 1Gbit/s puo’

supportare fino a 10 link a 45 Mbit/s o 3 link a 155 Mbit/s, ma neanche un solo link a 622 Mbit/s

• Se i pacchetti sono corti il tempo di elaborazione della intestazione puo’ diventare il limite principale– una workstation che commuta 100000 pacchetti di 64

byte al secondo ha un throughput aggregato di 51.2 Mbit/s

• Occorrono soluzioni piu’ veloci tipicamente realizzate con hardware specializzato

6

Sistema single-CPU PCI 1.0

• HW– Intel Pentium 1.6 GHz– bus PCI 32 bit / 33 Mhz (1 Gb/s)– Gb Intel PRO1000XT server NICs

• SW– Click 1.3pre1– Linux kernel 2.4.18– RFC1812 router– schema a polling

350

200

14085

53 43 370

100

200

300

400

500

600

700

800

900

1000

64 128 256 512 1024 1280 1518

Packet Length (bytes)

Loss

less

rate

(kpa

ckte

ts/s

)

TheoricalMeasured

179205

287348

434 440 449

0

100

200

300

400

500

600

64 128 256 512 1024 1280 1518Packet Length (bytes)

Loss

less

band

wid

th(M

bit/s

)

TheoricalMeasured

Limiti di capacità di elaborazione Limiti di banda del bus

100

200

300

400

100 200 300 400 500

Input rate [Kpackets/s]

Out

put r

ate

[Kpa

cket

s/s]

Polling

Interrupt

Page 4: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

4

7

Sistema single-CPU PCI-X 2-NICs

• HW– Singolo processore Intel Xeon

2.8 GHz, – bus PCIX 64 bit / 133 Mhz– 2 Gb/s Intel PRO1000XT

server NICs• SW

– Click 1.3pre1– Linux kernel 2.4.18– RFC1812 router con schema

a polling

• Osservazione: si evidenzia ancora il limite di elaborazione per pacchetti corti mentre non vi è praticamente limitazione dovuta al bus di sistema

• Aumentando la dimensione dei pacchetti -> NIC in saturazione

• 2 NICs: 1 d’ingresso e 1 d’uscita; entrambe connesse al bus a133MHz

1953

977

488244

122 98 83

717 717

233 120 96 82

443

0

500

1000

1500

2000

2500

64 128 256 512 1024 1280 1512

Packet length (bytes)

Loss

less

rate

(K

pack

et/s

)

Rate TEORICA massima Rate REALE massima

1000 1000 1000 1000 1000 1000 1000

367,104

734,208

907,264 954,368 983,04 983,04 991,872

0

200

400

600

800

1000

1200

64 128 256 512 1024 1280 1512

Packet length (bytes)

Loss

less

band

wid

th(M

bit/s

)

Banda teorica Banda usata

8

Throughput

• E’ tipicamente espresso in numero di pacchetti per unita’ di tempo trasferiti dal commutatore

• E’ limitato per ragioni tecnologiche e di traffico– contesa per risorse interne e sulle uscite

• target attuale per router IP ad alte prestazioni: 40 Gbit/s equivalenti a 16 link a 2.5 Gbit/s– per pacchetti di 64 byte richiede un capacita’ di

elaborazione di 78 x 1.E-6 pacchetti al secondo

Page 5: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

5

9

Scalabilita’

• L’hardware necessario per costruire uno switch e’ funzione del numero di linee supportate

• Nella telefonia questo era un problema importante perche’ commutatori con decine di migliaia di linee di ingresso e di uscita erano abbastanza comuni

• Con l’ aumento della velocita’ delle linee l’esigenza di commutatori di grandissime dimensioni e’ meno sentita

10

Schema del commutatore

• Compito delle porte di ingresso e’ di gestire le informazioni di controllo per trasferire il pacchetto sull’ uscita corretta

• Se tali informazioni sono trasportate all’ interno della rete dal pacchetto stesso la rete si dice autoinstradante

• La rete di interconnessione puo’ avere topologie a stadio singolo o multistadio

Rete di interconnessione

Porta di ingresso

Porta di ingresso

Porta di ingresso

Porta di uscita

Porta di uscita

Porta di uscita

Page 6: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

6

11

Memorizzazione

• E’ una funzione fondamentale dei commutatori a pacchetto

• Puo’ essere realizzata nelle porte di ingresso o di uscita oppure internamente alla rete

• Le caratteristiche della memorizzazione hanno molta influenza sulla qualita’ di servizio resa dal commutatore

12

Alternative di memorizzazione (1)

• Buffer interni

• Richiedono la realizzazione di elementi con memoria – Maggiore complessita’

Page 7: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

7

13

Buffer in uscita

• La commutazione avviene a monte del buffer• Piu’ pacchetti provenienti da ingressi diversi possono

richiedere la medesima coda di uscita contemporaneamente– Le memorie devono avere velocita’ fino a N volte superiore a quella

delle linee di ingresso • per assicurare il trasferimento di N pacchetti verso la stessa

coda di uscita la rete di connessione deve avere una velocita'N volte quella necessaria per trasferire una cella

14

Buffer in ingresso

• I pacchetti in arrivo su una linea vengono memorizzati nel buffer associato a quella linea

• Un pacchetto rimane nel buffer fino a che la logica di arbitraggio (scheduler) non decide di servirla secondo una politica tipicamente FIFO

• presenta il problema head-of-line i pacchetti sono bloccati dal pacchetto di testa anche se diretti a diversa destinazione

• e’ necessario un meccanismo che consenta di mantenere i pacchetti nel buffer di ingresso fino a che non sono stati trasferiti con successo

Page 8: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

8

15

Accodamento in ingresso con finestra

• Viene rilassata l’ipotesi di disciplina FIFO• Il pacchetto che viene immesso nella rete da un a coda

non e’ necessariamente quello di testa• Si definisce una finestra di contesa per l’accesso a un

ingresso pari a w.– W=1 corrisponde alla coda FIFO

• Le prestazioni aumentano all’aumentare della finestra• Anche con finestra di dimensione infinita tuttavia non si

raggiungono le prestazioni ottimali dell’accodamento in uscita– Questo perche’ comunque si puo’ trasmettere una cella sola per

ingresso ed alcune uscite potrebbero non essere raggiunte

16

Accodamento in uscita virtuale

• Virtual output queueing– Risolve il problema del blocco HOL dell’accodamento in ingresso– Ogni coda di ingresso e’ logicamente divisa in N code logiche

ciascuna contenente i pacchetti diretti ad una uscita– Le code logiche condividono la stessa memoria fisica– Il collo di bottiglia del sistema e’ lo scheduler che deve gestire N2

code contemporaneamente

Page 9: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

9

Algoritmi e protocollidi routing

18

Il trasferimento dei datagrammi

Ha due componenti funzionali distinteInstradamento (routing)• tabelle di instradamento costruite tramite:

– scambio di informazioni tra router– algoritmi di ottimizzazione locali

Inoltro (forwarding)• Algoritmo di forwarding

– lettura dell’intestazione IP ed estrazione dell’indirizzo di destinazione

– consultazione delle tabelle di instradamento – Identificazione dell’interfaccia di uscita su cui inviare il

datagramma• Switching

– trasferimento fisico dei datagrammi da interfaccia di ingresso ainterfaccia di uscita

Page 10: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

10

19

Funzione di instradamento (routing)

• Routing : scelta del percorso su cui inviare i datagrammi– i router formano una struttura interconnessa e

cooperante: i datagrammi vengono trasferiti dall’uno all’altro finché raggiungono il router in grado di consegnarli direttamente al destinatario

• La funzione di instradamento viene eseguita dai router tramite l’utilizzo di tabelle di routing– presenti in ogni nodo– per ogni indirizzo di destinazione è indicata la porta di

uscita da usare per raggiungere il router successivo (next hop) verso quella destinazione

– possono essere possibili scelte diverse con costi diversi

20

Esempi di tabelle di routing e forwarding

• Tabella di routing

– Il numero di rete 10 e’ raggiungibile utilizzando il router di indirizzo 171.69.245.10

• Tabella di forwarding

– La tabella di forwarding dice come trasferire il datagramma al next hop specificato nella tabella di routing

171.69.245.1010

Next hopNetwork number

8:0:2b:e4:b:1:2if010

Indirizzo MACInterfacciaNetwork number

Page 11: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

11

21

Realizzazione

• La funzione di routing deve prevedere degli standard al fine di garantire l’interoperabilita’ tra i router

• La funzione di routing si avvale di:– protocolli di routing

• usati per lo scambio delle informazioni sulla topologia della rete necessarie per applicare l’algoritmo

– algoritmi di routing• usati per il calcolo delle tabelle di instradamento note le

informazioni sulla topologia della rete

22

Caratteristiche del routing

• Gli algoritmi e protocolli di routing si differenziano per le modalità con cui la tabella di instradamento viene creata ed eventualmente aggiornata nel tempo

• Un routing ideale dovrebbe essere:– corretto– semplice e veloce– robusto (rispetto a cambiamenti di topologia e di traffico)– stabile– equo– ottimale– scalabile

• Tipologie di routing– Statico– Dinamico

• Centralizzato• Distribuito

Page 12: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

12

23

Routing statico

• Le tabelle di instradamento sono:– invarianti nel tempo– indipendenti dalle condizioni di traffico della rete

• adottano algoritmi non adattativi

• Le tabelle di instradamento vengono create in fase di configurazione del router– lavoro di configurazione oneroso

• modificate con l’intervento di un operatoresolo in caso di variazioni strutturali o topologiche della rete (inserimento o caduta di nodi, collegamenti)

24

Routing dinamico

• Le tabelle di instradamento vengono create e periodicamente aggiornate in modo automatico– adottano algoritmi adattativi

• Consentono di adattare le decisioni di instradamento a– variazioni topologiche della rete

• inserimento di nuovi collegamenti• caduta di un collegamento per guasto

– condizioni di traffico• si evita la scelta di percorsi che comprendono collegamenti

congestionati

Page 13: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

13

25

Routing centralizzato

• Un unico nodo centrale:– raccoglie tutte le informazioni sullo stato e la topologia

della rete – calcola le tabelle di instradamento per ogni nodo– le trasmette a tutti i nodi

• Pro– garantisce massima consistenza delle informazioni

• Contro– dipende dal corretto funzionamento di un solo

apparato di rete– il nodo centrale è soggetto ad un grande traffico di

overhead

26

Routing distribuito

• Ogni nodo calcola in modo autonomo le sue tabelle di instradamento

• Il calcolo può essere basato su informazioni:– locali

• riguardanti il solo nodo in cui sta avvenendo il calcolo, • senza scambio di informazioni tra i nodi

– distribuite • si utilizzano informazioni relative agli altri nodi e collegamenti

della rete

• Nel caso di routing basato su informazioni distribuite deve essere previsto un meccanismo di scambio delle informazioni (protocollo)

Page 14: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

14

27

Routing: applicazione della teoria dei grafi

• Una rete è un insieme di nodi di commutazione interconnessi da collegamenti

• Per rappresentarla si possono usare i modelli matematici della teoria dei grafi– Sia V un insieme finito di nodi– Un arco è definito come una coppia di nodi (i,j), i,j ∈ V– Sia E un insieme di archi– Un grafo G è definito come la coppia (V,E) e può

essere• orientato se E consiste di coppie ordinate, cioè se (i,j)�(j,i)• non orientato se E consiste di coppie non ordinate, cioè se

(i,j)=(j,i)

– Se (i,j) ∈ E, il nodo j è adiacente al nodo i

28

Applicazione alle reti

• Ad una generica rete di telecomunicazioni si può facilmente associare un grafo orientato: – i nodi rappresentano i terminali ed i commutatori– gli archi rappresentano i collegamenti– l’orientamento degli archi rappresenta la direzione di

trasmissione– il peso degli archi rappresenta il costo dei collegamenti, che può

essere espresso in termini di• numero di nodi attraversati (ogni arco ha peso unitario)• distanza geografica• ritardo introdotto dal collegamento• inverso della capacità del collegamento• costo di un certo instradamento• una combinazione dei precedenti

Page 15: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

15

29

Un semplice algoritmo di routing: il flooding

• Flooding: ogni nodo ritrasmette su tutte le porte di uscita ogni pacchetto ricevuto

• Un generico pacchetto verrà sicuramente ricevuto da tutti i nodi della rete e quindi anche da quello a cui èeffettivamente destinato

• Dal momento che tutte le strade possibili sono percorse, il primo pacchetto che arriva a un nodo è quello che ha fatto la strada più breve possibile

• L’elaborazione associata a questo algoritmo è pressochénulla

• Molto adatto quando si voglia inviare una certa informazione a tutti i nodi della rete (broadcasting)

30

Deflection routing (hot potato)

• Quando un nodo riceve un pacchetto lo ritrasmette sulla linea d’uscita avente il minor numero di pacchetti in attesa di essere trasmessi

• E’ adatto a reti in cui – i nodi di commutazione dispongano di spazio di memorizzazione

molto limitato – si voglia minimizzare il tempo di permanenza dei pacchetti nei

nodi• I pacchetti possono essere ricevuti fuori sequenza• Alcuni pacchetti potrebbero percorrere all’infinito un certo

ciclo in seno alla rete, semplicemente perché le sue linee sono poco utilizzate – Si deve prevedere un meccanismo per limitare il tempo di vita dei

pacchetti• Non tiene conto della destinazione finale del pacchetto

Page 16: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

16

31

Scelta ibrida (load sharing)

• Si legge su di una tabella la linea d’uscita preferenziale nella direzione della destinazione finale del pacchetto

• Il pacchetto viene posto nella coda di trasmissione per tale linea – se la coda non supera una soglia– e se non vi sono altri pacchetti richiedenti contemporaneamente

tale linea d’uscita

• Altrimenti viene inviato sulla linea d’uscita avente coda di trasmissione più breve

• Vantaggio: in condizioni di basso carico della rete, l’instradamento non viene fatto a caso, ma sulla base della effettiva destinazione finale

32

Shortest path routing

• Si assume che ad ogni collegamento della rete possa essere attribuita una lunghezza

• La lunghezza – è un numero che serve a caratterizzare il peso di quel

collegamento nel determinare una certa funzione di costo del percorso totale di trasmissione

• L’algoritmo cerca la strada di lunghezza minima fra ogni mittente e ogni destinatario

• Si applicano gli algoritmi di calcolo dello shortest path(Bellman-Ford e Dijkstra) in modalità– centralizzata– distribuita

• Distance Vector• Link State

Page 17: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

17

33

Tabelle di routing con alternative

• Dall’applicazione degli algoritmi di calcolo dello shortestpath si ottengono anche percorsi alternativi– di peso minimo– di peso superiore

• Uso probabilistico della tabella di routing– Se si instrada sempre sulla linea più breve si creano nella rete

dei cammini ad alto traffico e si lasciano alcune linee scariche– Si potrebbero instradare i pacchetti su tutte le uscite disponili con

probabilità inversamente proporzionale al peso del cammino corrispondente

– Questa tecnica rende la distribuzione del traffico più uniforme sui vari link della rete

34

Protocolli Distance Vector

• Si basano sull’algoritmo di Bellman-Ford, in una versione dinamica e distribuita proposta da Ford-Fulkerson

• Ogni nodo scopre i suoi vicini e ne calcola la distanza• Ad ogni passo, ogni nodo invia ai propri vicini un vettore

contenente la stima della sua distanza da tutti gli altri nodi della rete (quelli di cui è a conoscenza)

• Ogni nodo può così eseguire un’operazione di “rilassamento” verso ogni altro nodo ed eventualmente aggiornare la stima della distanza e il next-hop

• E’ un protocollo semplice e richiede poche risorse • Problemi:

– convergenza lenta, partenza lenta (cold start)– problemi di stabilità: conto all’infinito

Page 18: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

18

35

Esempio: calcolo delle tabelle di routing

Distance Vector iniziali: DV(i)= {(i,0)}, per i = A,B,C,D,E

Distance Vector dopo la scoperta dei vicini:DV(A) = {(A,0), (B,1), (C,6)}DV(B) = {(A,1), (B,0), (C,2), (D,1)}DV(C) = {(A,6), (B,2), (C,0), (D,3), (E,7)}DV(D) = {(B,1), (C,3), (D,0), (E,2)}DV(E) = {(C,7), (D,2), (E,0)}

dest Costo, next hop

ABCD

dest Costo, next hop

ABCDE

dest Costo, next hop

ABCDE

dest Costo, next hop

ABCDE

1. A riceve DV(B) 2. A riceve DV(C) 3. B riceve DV(D) 4. A riceve DV(B)

01, B3, B2, B

01, B3, B2, B10, B

1, A02, C1, D3, D

01, B3, B2, B4, B

E

7

D

C

B

A

32 1

12

6

Evoluzione delle tabelle di routing

36

Cold start e tempo di convergenza

• Allo start up le tabelle dei singoli nodi contengono solo l’indicazione del nodo stesso a distanza 0– i distance vector scambiati al primo passo contengono solo

queste informazioni

• Da qui in poi lo scambio dei distance vector permette la creazione di tabelle sempre più complete

• L’algoritmo converge al più dopo un numero di passi pari al numero di nodi della rete

• Se la rete è molto grande il tempo di convergenza puòessere lungo.

• Cosa succede se lo stato della rete cambia in un tempo inferiore a quello di convergenza dell’algoritmo?– Risultato imprevedibile � si ritarda la convergenza

Page 19: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

19

37

Bouncing effect

• Il link fra due nodi A e B cade– A e B si accorgono che il collegamento non funziona e

immediatamente pongono ad infinito la sua lunghezza– Se altri nodi hanno nel frattempo inviato anche i loro vettori delle

distanze, si possono creare delle incongruenze temporanee, di durata dipendente dalla complessità della rete

• ad esempio A crede di poter raggiungere B tramite un altro nodo C che a sua volta passa attraverso A

– Queste incongruenze possono dare luogo a cicli, per cui due o più nodi si scambiano datagrammi fino a che non si esaurisce il TTL o finché non si converge nuovamente

C

A

B

21

6

38

Count to infinity

• Situazione iniziale: DAB = 1, DAC = 2 e DBC = 1– Link BC va fuori servizio – B riceve il DV di A che contiene l’informazione DAC = 2, per cui

esso computa una nuova D'BC = DBA + DAC = 3– B comunica ad A la sua nuova distanza da C– A calcola la nuova distanza DAC = DAB + D'

BC = 4– …

• La cosa può andare avanti all’infinito– Si può interrompere imponendo che quando una distanza

assume un valore DIJ > Dmax allora si suppone che il nodo destinazione J non sia più raggiungibile

• Inoltre si possono introdurre meccanismi migliorativi– Split horizon– Triggered update

A CB

Page 20: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

20

39

Split horizon

• Split horizon è una tecnica molto semplice per risolvere in parte i problemi suddetti– se A instrada i pacchetti verso una destinazione X tramite B, non

ha senso per B cercare di raggiungere X tramite A– di conseguenza non ha senso che A renda nota a B la sua

distanza da X

• Un algoritmo modificato di questo tipo richiede che un router invii informazioni diverse ai diversi vicini a secondadella destinazione

• Split horizon in forma semplice:– A omette la sua distanza da X nel DV che invia a B

• Split horizon with poisonous reverse:– A inserisce tutte le destinazioni nel DV diretto a B, ma pone la

distanza da X uguale ad infinito

40

Triggered update

• Una ulteriore modifica per migliorare i tempi di convergenza è relativa alla tempistica con cui inviare i DV ai vicini– i protocolli basati su questi algoritmi richiedono di inviare

periodicamente le informazioni delle distanze ai vicini– è possibile che un DV legato ad un cambiamento della topologia

parta in ritardo e venga sopravanzato da informazioni vecchie inviate da altri nodi

• Triggered update: un nodo deve inviare immediatamente le informazioni a tutti i vicini qualora si verifichi una modifica della propria tabella di instradamento

Page 21: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

21

41

Protocolli Path Vector

• I vari rimedi proposti in realtà non sono davvero risolutivi– Sono ancora presenti situazioni patologiche in cui i

protocolli Distance Vector convergono troppo lentamente o non convergono affatto

• Evoluzione: protocolli Path Vector– Il vettore che ogni router manda ai vicini contiene,

oltre alle distanze dagli altri nodi, anche l’intero cammino che il pacchetto deve seguire

– Il router ignora tutti i cammini dove compare lui stesso– Maggiori informazioni da scambiare, ma si evitano i

cicli

42

Protocolli Link State

• Ogni nodo della rete si procura un’immagine della topologia della rete

• Sulla base di tale immagine calcola le tabelle di routing utilizzando un determinato algoritmo

• Il protocollo di routing ha come scopo fondamentale quello di permettere ad ogni nodo di crearsi l’immagine della rete– scoperta dei nodi vicini– raccolta di informazioni dai vicini– diffusione delle informazioni raccolte a tutti gli altri nodi

della rete

Page 22: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

22

43

Raccolta delle informazioni

• Ogni router deve comunicare con i propri vicini ed “imparare” i loro indirizzi – Hello Packet

• Deve poi misurare la distanza dai vicini– Echo Packet

• In seguito ogni router costruisce un pacchetto con lo stato delle linee (Link State Packet o LSP) che contiene– la lista dei suoi vicini– le lunghezze dei collegamenti per raggiungerli

44

• I pacchetti LSP devono essere trasmessi da tutti i router a tutti gli altri router della rete– Si usa il protocollo Flooding– A tal fine nel pacchetto LSP occorre aggiungere

• L’indirizzo del mittente• Un numero di sequenza• Una indicazione dell’età del pacchetto

• Avendo ricevuto LSP da tutti i router, ogni router è in grado di costruirsi un’immagine della rete– Tipicamente si usa l’algoritmo di Dijkstra per calcolare

i cammini minimi verso ogni altro router

Diffusione ed elaborazione delle informazioni

Page 23: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

23

45

Distance Vector - Link State: confronto

• Distance Vector– Semplici da implementare– Richiedono in genere una quantità di memoria inferiore, in

particolare se la connettività della rete è bassa, e minori risorse di calcolo

– Convergenza lenta

• Link State– Offrono maggiori funzionalità in termini di gestione di rete

• La topologia generale della rete e i cammini al suo interno possono essere ricavati da qualunque router

– La velocità di convergenza è solitamente maggiore• Maggiore velocità di adattamento ai cambi di topologia

– Il flooding di pacchetti LSP può provocare un aumento significativo di traffico

46

Routing gerarchico

• Nel caso di reti di grandi dimensioni non è possibile gestire le tabelle di routing per l’intera rete in tutti i router, in questo caso il routing deve essere gerarchico:– la rete viene ripartita in porzioni, chiamate per ora aree di routing– i router all’interno di un area sono in grado di effettuare

l’instradamento relativamente alla sola area– per destinazioni al di fuori dell’area si limitano ad inviare i

pacchetti a dei router “di bordo” che sono a conoscenza della topologia esterna dell’area

– i router “di bordo” si occupano solamente dell’instradamento dei pacchetti fra aree

• In linea di principio la ripartizione può essere effettuata tante volte quante si vuole creando più livelli nella gerarchia di routing

Page 24: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

24

47

Routing gerarchico in Internet

• In Internet si usa il routing gerarchico e le aree di routing sono dette Autonomous System (AS)– un AS può essere ulteriormente suddiviso in porzioni dette

Routing Area (RA) interconnesse da un backbone (dorsale)– ogni network IP è tutta contenuta in un AS o in una RA

• tradizionalmente secondo la classe, oggi secondo il CIDR

– gli AS decidono autonomamente i protocolli e le politiche di routing che intendono adottare al loro interno

– i vari enti di gestione si devono accordare su quali protocolli utilizzare per il dialogo tra i router che interconnettono AS diversi

• I protocolli di routing all’interno di un AS sono detti Interior Gateway Protocol (IGP)

• I protocolli di routing fra AS sono detti Exterior GatewayProtocol (EGP)

48

Internet = rete di reti

Page 25: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

25

49

RA

Internet = insieme di AS interconnessi

AS1

AS2

AS3

AS4

AS5

EGP

IGP

50

Grafo a livello EGP

AS1

AS2

AS3

AS4

AS5

Page 26: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

26

51

Ma cos’è un Autonomous System?

• Originariamente definito come un insieme di router gestiti dalla stessa amministrazione tecnica

• Nuova definizione (1996 – RFC 1930)– un AS è un gruppo connesso di una o più reti IP (classless)

gestite da uno o più operatori ma con una singola e ben definitapolitica di routing

– politica di routing: modalità con cui si prendono decisioni di routing nel resto della rete Internet sulla base delle informazioni provenienti da un AS (tramite un EGP)

– Esempio:• Università di Bologna � 137.204.0.0/16• Politecnico di Torino � 130.192.0.0/16• entrambi comunicano con l’esterno tramite il GARR (stessa politica

di routing)• non c’è bisogno di avere un AS per ogni ateneo• il GARR costituisce un unico AS (AS137)

52

Internet Routing Registries (IRRs)

• Sono database contenenti le politiche di routing degli AS allocati dai diversi Regional Internet Registry e da altre organizzazioni nazionali e internazionali

• Possono essere interrogati tramite il client “whois”– da shell linux: whois –h whois.radb.net <QUERY>

– da client web: http://www.radb.net

• Alcuni esempi di query:– a.b.c.d/m per avere informazioni su una route– ASxxx per avere informazioni su un AS– !gASxxx per conoscere tutte le reti IP in un AS

Page 27: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

27

53

whois 137.204.0.0/16

è l’AS a cui appartiene la route

è il Registry in cui la route è registrata

54

whois 130.192.0.0/16

stesso AS di 137.204.0.0/16

Page 28: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

28

55

whois AS137

AS da cui accettare le route

AS verso cui annunciare le route

56

GARR = AS137

AS20965

AS3549

AS1299

Neutral Acces Pointpunti di interconnessione di diversi ISP

Page 29: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

29

57

Protocolli di routing per Internet

• Interior Gateway Protocol– RIP: Routing Information Protocol– OSPF: Open Shortest Path First

• Exterior Gateway Protocol– EGP: Exterior Gateway Protocol– BGP: Border Gateway Protocol

Il routing in InternetInterior Gateway Protocols

Page 30: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

30

59

Routing Information Protocol (RIP)

• Protocollo distance vector, di implementazione vecchia (RFC 1058, Giugno 1988), discende dal protocollo di routing disegnato per la rete XNS di Xerox

• Ne esiste una seconda versione più recente (RFC 2453)

• Diffuso in passato perché il codice è liberamente disponibile

• Utilizzato praticamente solo su reti TCP/IP

60

Tipi di messaggi

• Utilizza due tipi di messaggi:– REQUEST serve per chiedere esplicitamente

informazioni ai nodi vicini (ad es. all’avvio del nodo)– RESPONSE serve in generale per inviare informazioni

di routing (cioè i distance vector)

• I messaggi RIP sono trasportati da UDP ed usano la porta 520 sia in trasmissione che in ricezione

Page 31: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

31

61

RIP: la tabella di routing

• Ogni riga nella tabella contiene:– indirizzo di destinazione: è un indirizzo IP a 32 bit

• di default route se vale 0.0.0.0• di rete se Net-ID � 0 e Host-ID = 0 (in base alla classe)• di sottorete se Subnet-ID � 0 e Host-ID = 0

– necessario conoscere la netmask � valido solo per reti direttamente collegate alle interfacce dei router

• di host se Host-ID � 0– opzionale: un router può decidere di non inserirlo nella tabella

– distanza dalla destinazione (metrica)• in termini di hop-count (ogni link ha peso = 1)• la distanza massima (�) per RIP è pari a 16, al fine di limitare il

conteggio all’infinito � adatto per reti relativamente piccole

– next hop sul percorso verso la destinazione• router vicino a cui inviare i datagrammi per la destinazione

– due contatori: timeout e garbage-collection timer

62

RIP: invio delle informazioni

• Un RESPONSE con nuove informazioni di routing viene inviato:– periodicamente– come risposta ad una richiesta esplicita– quando una informazione di routing cambia (triggered update)

• Le informazioni periodiche sono inviate ogni 30 secondi, con uno scarto da 1 a 5 secondi, per evitare “tempeste”di aggiornamenti

• Se una route non viene aggiornata dopo 180 secondi (timeout), la sua distanza è posta all’infinito (si ipotizza una perdita di connettività)

• Dopo ulteriori 120 secondi (garbage-collection timer) la route viene eliminata del tutto dalla tabella

Page 32: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

32

63

L’algoritmo

• Fa uso di tre vettori:– W=[(w(x,1), .. W(x,M)] link cost vector contiene il costo dal nodo x

alle reti a cui x e’ collegato direttamente;– L=[L(x,1), .. L(x,N)] distance vector per il nodo x contiene il

minimo costo corrente dal nodo x alla rete j;– R =[R(x,1), .. R(x,N)] vettore dei next-hop per il nodo x contiene il

costo minimo corrente dal nodo x alla rete j.

• Periodicamente (ogni 30 s) ogni nodo scambia il suo distance vector con i nodi vicini (collegati alla stessa rete)

• Ogni nodo x aggiorna i suoi vettori L e R come segue:– L(x,j)= min [L(y,j) + w(x,Nxy)] dove y e’ un vicino di x e Nxy e’ la

rete che collega x a y

64

Esempio: topologia di rete

1

1

1

1

1

1

1

11

1

1 1 1 1

111

1F

EH

G D

Host Y

Host X

Router ARouter BRouter C

Network 5

Network 1

Network 2 Network 3 Network 4

Page 33: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

33

65

Esempio:aggiornamento tabella dell’host X

6A5

2A4

5B3

2B2

1-1

L(X,j)(R(X,j)Rete destinazione

3A5

2A4

3A3

2B2

1-1

L(X,j)(R(X,j)Rete destinazione

6

6

5

8

8

C

Tabella di routing dell’host x

Tabella di routing dell’host x dopo l’aggiornamento

Distance vector inviati a X:

2

1

2

3

6

A

4

3

4

1

3

B

66

Creazione incrementale della tabella di routing

• RIP aggiorna la tabella dopo la ricezione di ogni distance vector

• Se il distance vector contiene una nuova rete destinazione questa e’ aggiunta alla tabella

• Se il nodo riceve un percorso verso una destinazione con un costo piu’ basso di quello corrente lo sostituisce

• Se il nodo riceve un aggiornamento dal router R, aggiorna le voci della tabella che utilizzano R come next hop

Page 34: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

34

67

RIP: formato dei pacchetti

• La struttura del pacchetto è basata su parole di 32 bit• Il pacchetto può avere lunghezza variabile fino a 512

byte (max 25 entry)

address

command must be zeroversionaddress family identifier must be zero

must be zeromust be zero

metric

addressaddress family identifier must be zero

must be zeromust be zero

metric

ripe

tuto

68

RIP: significato dei campi

• I bit del pacchetto sono molto ridondanti rispetto alla quantità di informazioni da inviare (molti campi fissi con i bit tutti a zero)– inizialmente pensati per adattarsi ad altri protocolli

• command: distingue tra REQUEST (1) e RESPONSE (2)• version: versione del RIP• address family identifier: indica il tipo di indirizzo di rete

utilizzato, vale 2 per IP• address: identifica la destinazione per la quale viene

data la distanza (IP network address)• metrica: è la distanza dalla destinazione indicata

Page 35: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

35

69

RIP: problematiche

• Fa uso di split horizon per cui le RESPONSE di interfacce diverse possono essere diverse

• Fa uso di triggered update: in questo caso non ènecessario indicare nella RESPONSE tutte le entry della tabella ma solamente quelle appena modificate

• RIP non è un protocollo sicuro: chiunque trasmetta datagrammi dalla porta UDP 520 viene considerato come un router autorizzato

• Esempio di malfunzionamento indotto:– un router non autorizzato trasmette messaggi contenenti

indicazione di una distanza 0 tra se stesso e tutti gli altri della rete– dopo qualche tempo tutti i percorsi ottimi convergono su questo

router

70

RIP:conto all’infinito

• Tutti i link hanno costo 1• B ha distanza 2 dalla rete 5 con next hop D, A e C hanno distanza 3 dalla

rete 5 con next hop B• Il router D si guasta• B riconosce che la rete 5 non e’ piu’ raggiungibile via D e impone il costo a 4

in base alle informazioni da C o A. • Al successivo scambio B avvisa A e C del nuovo costo• A e C aggiornano il costo verso la rete 5 a 5 in base alle informazioni

ricevute da D• B a sua volta assume distanza 6 dalla rete 5 e cosi’ via…• Cio’ continua fino al valore massimo (pari a 16 nel RIP)

– Il tempo per rivelare il guasto e’ almeno 8 minuti (30 s x 16)

Rete 3

Rete 1 Rete 2

Rete 4

Rete 5

A

CB

D

Page 36: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

36

71

Split horizon con poisoned reverse

• La regola split horizon stabilisce di non inviare informazioni su un percorso nella direzione da cui sono arrivate– Il router che ha inviato le informazioni e’ piu’ vicino alla

destinazione rispetto a chi le riceve– La route errata viene eliminata allo scadere del time

out di 180 s

• La regola poisoned reverse prevede di segnalare costo 16 ai vicini da cui arrivano informazioni su un percorso per il quale sono next hop– Si riducono ulteriormente i tempi di attesa evitando di

aspettare lo scadere del time out

72

RIP versione 2

• I miglioramenti introdotti riguardano soprattutto:– subnetting e CIDR– autenticazione

authentication data

command routing domainversion11111111 11111111 authentication type

authentication dataauthentication dataauthentication data

addressaddress family identifier route tag

subnet masknext hop

metric

ripe

tuto

Page 37: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

37

73

RIP versione 2

• Compatibilità verso il basso– RIP-1 ignora le entry con i campi riservati diversi da zero

• Possibilità di indicare sottoreti o indirizzamento CIDR– tramite il campo subnet mask

• Possibilità di autenticare chi invia i messaggi• Possibilità di identificare il proprio AS e di scambiare

informazioni con protocolli EGP– tramite i campi route tag e routing domain

• Possibilità di specificare un next hop più appropriato• Comunque non adatto per AS grandi• Comunque ha problemi di convergenza

74

Open Shortest Path First (OSPF)

• Divenuto standard nella versione 2 (RFC 2328)• Oggi è il più diffuso IGP• Protocollo di tipo link state

– invio di link state advertisement (LSA) a tutti gli altri router

• Incapsulato direttamente in IP, cioè un pacchetto OSPF ha una normale intestazione IP– il valore del campo protocol dell’intestazione IP (89 per OSPF)

serve a distinguere questi pacchetti da altri

• OSPF è stato progettato specificamente per:– semplificare il routing in reti grandi tramite la suddivisione in aree– gestire reti intrinsecamente diffusive (LAN IEEE 802, FDDI)– gestire reti intrinsecamente punto-punto (X.25, ATM, Frame

Relay)– separare logicamente gli host dai router

Page 38: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

38

75

Intestazione IP (promemoria)

Version HLen TOS Length

Ident Flags Offset

TTL Protocol Checksum

SourceAddr

DestinationAddr

Options (variable) Pad(variable)

0 4 8 16 19 31

Data

76

OSPF: aree di routing

• Un AS può essere suddiviso in porzioni dette Routing Area (RA) interconnesse da un backbone (area dorsale)– ciascuna area risulta separata dalle altre per quanto riguarda lo

scambio delle informazioni di routing e si comporta come un’entità indipendente (3°livello gerarchico di routing)

– per interconnettere le aree vi devono essere router connessi a più aree e/o al backbone (almeno uno per area)

• Classificazione dei router:– Internal Router: router interni a ciascuna area– Area Border Router: router che scambiano informazioni con

altre aree– Backbone Router: router che si interfacciano con il backbone– AS Boundary Router: router che scambiano informazioni con

altri AS usando un protocollo EGP

Page 39: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

39

77

OSPF: aree di routing e tipologie di router

Internal Router

Area Border Routere Backbone Router

Backbone Router

AS boundary Routere Backbone Router

AS

RA

Stub Areacon routerdi default

78

OSPF: ulteriori caratteristiche

• Bilanciamento del carico: se un router ha più percorsi di uguale lunghezza verso una certa destinazione, il carico viene ripartito equamente su di essi

• Autenticazione: per garantire maggiore sicurezza nello scambio delle informazioni di routing è prevista autenticazione con password ed uso di crittografia

• Routing dipendente dal grado di servizio: i router scelgono il percorso sul quale instradare un pacchetto sulla base dell’indirizzo e del campo Type of Servicedell’intestazione IP, tenendo conto che percorsi diversi possono offrire diversi gradi di servizio

Page 40: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

40

79

OSPF: regole auree suggerite da CISCO

• Avere non più di 6 salti tra sorgente e destinazione• Un’area deve avere numero di router da 30 a 60• Tutte le aree devono essere connesse al backbone• Un ABR non dovrebbe avere più di tre connessioni, una con il

backbone e due con diverse aree• Il backbone deve essere topologicamente semplice e inaccessibile

agli utenti• Se esistono più sottoreti in una stessa area, queste dovrebbero

avere numeri IP consecutivi• I collegamenti fra i router del backbone dovrebbero avere capacità

comparabile in modo da favorire il load balancing• Si deve prevedere un’alta connettività fra router del backbone al fine

di avere a disposizione percorsi alternativi in caso di guasto di un link

80

OSPF: host e router

• Nel modello OSPF i router sono i soli responsabili del routing– gli host sono solamente punti terminali da raggiungere– in teoria sarebbe necessario indicare ogni host nei grafi che

rappresentano la rete (e nelle tabelle di routing)• Se gli host di una rete IP sono connessi ad una LAN:

– la singola rete IP viene vista come una sola entità raggiungibile in un colpo solo (identificata dall’indirizzo di rete)

– vengono diffuse informazioni relative alla raggiungibilitàdell’intera rete, non dei singoli host

• Se un singolo host è collegato direttamente:– è necessario indicarlo esplicitamente (tramite il suo l’indirizzo)

N1

N3

N4

H2

N1

N3

N4

H2

137.204.57.0/24

137.204.59.0/24

137.204.58.0/24

137.204.56.137/32

Page 41: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

41

81

OSPF: tipologie di rete

• OSPF è progettato per operare correttamente con reti:– Point-to-Point– Broadcast Multi-Access (diffusive: LAN, FDDI)– Non-Broadcast Multi-Access (NBMA: X.25, ATM, Frame Relay)

• In una rete ad accesso multiplo tutti gli N router connessi alla rete sono di fatto connessi con tutti gli altri– il numero di archi bidirezionali da inserire nel grafo è N(N–1)/2+N– il numero totale di LSA da trasmettere è N(N–1)– conviene adottare una topologia a stella equivalente, inserendo

un nodo virtuale che rappresenta la rete � solo N archi bidir.

LAN

82

OSPF: adiacenze tra router

• Vicini: due router che sono connessi alla medesima rete e possono comunicare direttamente– punto-punto o punto-multipunto

• Adiacenti: due router che si scambiano informazioni di routing• In una rete ad accesso multiplo risulta molto più efficiente eleggere

un Designated Router (DR) fra gli N vicini– ogni router della LAN è adiacente solo al DR– lo scambio di informazioni di routing avviene solo tra router adiacenti

(cioè DR fa da tramite)– inoltre il DR è l’unico a comunicare la raggiungibilità di router e host della

LAN al mondo esterno– Per ragioni di affidabilità occorre avere anche un Backup Designated

Router (BDR) adiacente a tutti i router locali

router vicini router adiacenti

DR

Page 42: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

42

83

OSPF: identificazione di router e priorità

• Ogni router di un AS utilizzante OSPF deve avere un identificativo univoco (router ID):– di default si prende il numero IP più alto fra quelli assegnati alle

interfacce del router– si può assegnare manualmente un router ID ad ogni router

configurando opportunamente l’interfaccia di loop-back– configurare l’interfaccia di un loop-back è un modo più stabile e

sicuro di assegnare il router ID perché questa interfaccia non viene mai disabilitata

• Ai singoli router di un’area possono essere associate delle priorità– valore di priorità compreso tra 0 e 255 (8 bit)– di default tutti i router hanno priorità 0 (più bassa)– utilizzata nell’elezione del DR

84

OSPF: elezione del DR

• Ciascun router R nella rete ad accesso multiplo:– esamina la lista dei suoi vicini– elimina dalla lista tutti i router non eleggibili (ad esempio tutti

quelli che hanno priorità nulla)– fra quelli rimasti seleziona il router avente la priorità maggiore

• il più alto router ID in caso di uguale priorità

– elegge il router selezionato come BDR Backup DesignatedRouter)

– se il DR esiste già, termina la procedura, altrimenti promuove il BDR a DR

– rivede la tabella dei vicini e riseleziona gli eleggibili (il router che è stato eletto DR non è più eleggibile)

– seleziona ed elegge il BDR– termina la procedura una volta eletti DR e BDR

Page 43: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

43

85

OSPF: tipi di LSA

• Tramite lo scambio di LSA ogni router costruisce la topologia della rete

• Esistono diversi tipi di LSA:– router-LSA

• creati da ogni router e diffusi in una singola area• contengono le informazioni relative allo stato delle interfacce del router

all’interno di quell’area

– network-LSA• creati dal DR di ogni rete ad accesso multiplo e diffusi in una singola area• contengono l’elenco dei router connessi a quella rete

– summary-LSA• creati dagli Area Border Router e diffusi in una singola area• contengono informazioni di routing per destinazioni appartenenti ad altre aree

dello stesso AS

– AS-external-LSA• creati dagli AS Boundary Router e diffusi a tutto l’AS• contengono informazioni di routing per destinazioni appartenenti ad altri AS

(compresa la default route)

86

OSPF: Link State Database

• Il grafo orientato della rete sul quale ciascun router calcola lo shortest path tree è rappresentato dal Link State Databasepresente in ogni router– Nodi:

• router• reti o host singoli• nodi virtuali delle topologie a stella equivalenti• destinazioni esterne

– Archi:• collegamenti fisici o virtuali

Internet

stub network

transit network

Page 44: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

44

87

OSPF: i protocolli

• OSPF invia messaggi utilizzando direttamente i servizi di IP (protocol = 89)

• Si compone di tre sottoprotocolli:– hello, exchange, flooding

• Tutti i messaggi hanno una intestazione comune– vengono aggiunte informazioni per il particolare scopo a cui il

messaggio è destinato (tipo di pacchetto)

Area ID

Version Packet LengthTypeRouter ID

AuthenticationAuthentication

Checksum AuType

88

OSPF: intestazione comune

• Version indica la versione di OSPF (versione 2) • Type indica il tipo di pacchetto• Packet Length numero di byte del pacchetto• Router ID indirizzo IP che identifica il router mittente• Area ID identifica l’area di appartenenza

– il numero 0 è l’area di backbone– di solito si usa un identificativo di rete IP

• Checksum calcolata su tutto il pacchetto OSPF escludendo gli 8 byte del campo authentication– si utilizza l’algoritmo classico di IP

• AuType indica il tipo di autenticazione:– 0 nessuna autenticazione– 1 autenticazione semplice (password nel campo authentication)– 2 autenticazione crittografica (dati nel campo authentication)

Page 45: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

45

89

OSPF: Hello protocol

• Unico tipo di pacchetto: Hello (Type = 1)• Utilizzato per:

– controllare l’operatività dei link– scoprire e mantenere relazioni fra vicini– eleggere DR e BDR

RouterDeadIntervalOptions Router Priority

Neighbor

Designated RouterBackup Designated Router

HelloIntervalNetwork Mask

Neighbor…

OSPF Header (24 byte)

90

OSPF: Hello protocol

• I pacchetti HELLO sono inviati sulle interfacce periodicamente secondo quanto specificato dal parametro HelloInterval– si riescono così a scoprire i propri vicini

• Includono una lista di tutti i vicini (Neighbor) dai quali èstato ricevuto un pacchetto HELLO recente (cioè non piùvecchio di RouterDeadInterval)– si riesce così a conoscere se per ciascun vicino è presente un

collegamento bidirezionale e se esso è ancora attivo• I campi Router Priority, Designated Router e Backup

Designated Router sono utilizzati per l’elezione di DR e BDR

• Network Mask indica la maschera relativa all’interfaccia del router

• Options indica se si supportano funzionalità opzionali

Page 46: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

46

91

OSPF: Exchange protocol

• Una volta stabilite le adiacenze, router adiacenti devono sincronizzare i rispettivi Link State Database

• La procedura di sincronizzazione è asimmetrica– si stabilisce chi è il master e chi lo slave– il master invia una serie di pacchetti Database Description

(Type = 2) contenenti l’elenco dei LSA del proprio database• nell’elenco sono indicati il tipo di LSA, l’età, il router che lo ha

generato e il numero di sequenza• non ci sono i dati relativi al LSA

– lo slave risponde con l’elenco dei LSA del suo database– durante lo scambio ciascuno dei due router confronta le

informazioni ottenute con quelle in proprio possesso– se nel proprio database ci sono dei LSA meno recenti rispetto

all’altro, questi (e solo questi) vengono richiesti con un successivo pacchetto Link State Request (Type = 3)

92

OSPF: Flooding protocol

• La diffusione dei LSA a tutti i router della rete avviene tramite l’invio di pacchetti Link State Update (Type = 4)– a fronte di un cambiamento nello stato di un collegamento– a fronte di una Link State Request

• Si esegue in modalità flooding per fare in modo che tutti i router vedano gli aggiornamenti– flooding efficiente: si usano i numeri di sequenza dei LSA

• Si continua ad inviare lo stesso update finché non viene confermata la sua ricezione dai vicini tramite il pacchetto Link State Acknowledgment (Type = 5)– in questo modo si rende il flooding affidabile

Page 47: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

47

93

OSPF: sincronizzazione e aggiornamento

Hello

Hello

Database Description (Master)

Database Description

Database Description

Database Description)

Database Description

Link State Request

Link State Update

Fase di HelloI router scoprono l’esistenza reciproca

Fase di ExchangeSi sceglie il master e lo slaveSi scambiano i database

Fase di UpdateSi inviano richieste di aggiornamento ai router adiacenti per aggiornare il database

Link State Ack

94

Routing e subnetting

• La tecnica del subnetting consente di ridurre il numero totale di indirizzi di rete assegnati– Un singolo indirizzo di rete puo’ essere utilizzato da

piu’ reti fisiche (dette subnet)

• Requisiti– Le subnet devono essere geograficamente vicine per

poter essere viste a distanza come un’unica rete– Utilizzo della subnet mask per l’individuazione del

subnet number• Subnet number=subnet mask AND Host IP address

– Introduzione nelle tabelle di routing del valore della subnet mask

Page 48: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

48

95

Struttura dell’indirizzo IP con subnetting

• Esempio con indirizzo IP di classe B

• Si introduce un ulteriore livello gerarchico negli indirizzi IP

Network number Host number

Class B address

Subnet mask (255.255.255.0)

Subnetted address

111111111111111111111111 00000000

Network number Host IDSubnet ID

96

Esempio di subnetting e tabella di routing

Subnet mask: 255.255.255.128Subnet number: 128.96.34.0

128.96.34.15128.96.34.1

H1R1

128.96.34.130 Subnet mask: 255.255.255.128Subnet number: 128.96.34.128

128.96.34.129 128.96.34.139

R2H2

128.96.33.1128.96.33.14

Subnet mask: 255.255.255.0Subnet number: 128.96.33.0

H3

Tabella di routing di R1

Interface 0Interface 0R2

255.255.255.128255.255.255.128255.255.255.0

128.96.34.0128.96.34.128128.96.33.0

Next hopSubnet maskSubnet number

Page 49: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

49

97

Algoritmi di forwarding

D=destination IP address

For each forwarding table entry

D1=subnetmask AND D

if D1=subnetnumber

if nexthop is an interface

deliver datagram directly to destination

else

deliver datagram to nexthop (a router)

• Nella tabella di routing e’ sempre presente il default router che si utilizza nel caso in cui non venga individuato alcun matching

• Quando l’host genera un pacchetto effettua l’AND tra la subnet mask della propria subnet e l’indirizzo IP destinazione. Se il risultato coincide con la subnet il datagramma viene inviato direttamente sulla rete, altrimenti invia il pacchetto al router di default (procedura ARP)• Funzionamento del router:

98

CIDR (Classless InterDomain Routing)

• Introduce una assegnazione intelligente degli indirizzi di rete per ridurre il numero di percorsi che un router deve conoscere– Un indirizzo nella tabella di routing puo’ indicare piu’ indirizzi di

rete

• Si assegnano alle reti di un AS indirizzi contigui in modo che abbiano il prefisso in comune– Esempio: 16 reti da 192.4.16 a 192.4.31: i primi 20 bit degli

indirizzi assegnati sono gli stessi ovvero e’ stato creato un indirizzo di rete di 20 bit

– I protoclli di routing devono essere in grado di gestire indirizzi di rete di lunghezza diversa

• BGP-4 prevede che i numeri di rete siano rappresentati dalla coppi (length,value) dove length e’ la lunghezza dell’indirizzo di rete

Page 50: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

50

99

Route aggregation in CIDR

• Un provider puo’ ottenere uno spazio di indirzzidi rete da assegnare ai suoi clienti

Border gateway(advertises path to11000000000001)

Regional network

Corporation X(11000000000001000001)

Corporation Y(11000000000001000000)

100

Longest prefix matching

• E’ la tecnica che consente di operare con CIDR sulle tabelle di routing

• Gli indirizzi di rete presenti nella tabella di routingpossono avere lunghezza diversa con CIDR– Es: 171.69 (16 bit) 171.69.10 (24 bit); l’indirizzo IP

171.69.10.5 soddisfa il matching con entrambi

• Gli algoritmi LPM cercano nella tabella l’indirizzo di rete che maggiormente si sovrappone ad essi– Nell’esempio: 171.69.10

Page 51: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

51

Il routing in InternetExterior Gateway Protocols

A.A. 2005/2006Prof. Carla Raffaelli

102

Exterior Gateway Protocols

• I protocolli di tipo EGP sono diversi da quelli di tipo IGP• All’interno di un AS si persegue l’ottimizzazione dei

percorsi• Nel routing tra diversi AS si deve tener conto anche (e

soprattutto) delle politiche di instradamento– ogni AS vuole mantenere una propria autonomia ed

indipendenza dagli altri e non vuole subire decisioni prese da altri– alcuni AS non vogliono permettere ad altri AS di instradare il

traffico attraverso le loro reti– in altri casi bisogna operare secondo accordi internazionali

• Per Internet sono stati definiti due protocolli di tipo EGP:– Exterior Gateway Protocol (EGP)– Border Gateway Protocol (BGP)

Page 52: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

52

103

EGP: Exterior Gateway Protocol

• Primo protocollo tra AS– risale ai primi anni ottanta (RFC 827)

• Caratterizzato da tre funzionalità principali:– neighbor acquisition

• verificare se esiste un accordo per diventare vicini

– neighbor reachability• monitorare le connessioni con i vicini

– network reachability• scambiare informazioni sulle reti raggiungibili da ciascun vicino

• EGP è simile ad un protocollo distance vector– le informazioni inviate ai vicini sono sostanzialmente informazioni

di raggiungibilità– non sono specificate le regole per definire le distanze– la distanza minima può non essere il criterio migliore da seguire

104

EGP: limiti

• EGP fu progettato per una topologia assai specifica,– una dorsale di Internet, la rete ARPAnet– vari domini connessi alla dorsale attraverso un unico router

• Funziona bene per una topologia ad albero, ma non per reti a maglia complessa (presenza di cicli)– la convergenza del protocollo può essere molto lenta– si possono facilmente creare instabilità

• Non si adatta velocemente alle modificazioni della topologia

• EGP non implementa alcun meccanismo di sicurezza– qualunque malintenzionato può annunciare quello che vuole ed

essere creduto dai router– un router guasto può danneggiare il routing di tutta la rete

Page 53: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

53

105

BGP: Border Gateway Protocol

• BGP è stato concepito come sostituto di EGP• Oggi è in uso la versione 4 (RFC 1771)

– consente l’uso del CIDR

• I router BGP appartenenti a AS adiacenti si scambiano informazioni attraverso connessioni TCP (porta 179)– le comunicazioni sono affidabili– funzionalità di controllo degli errori demandate allo strato di

trasporto � BGP più semplice

• BGP è un protocollo di tipo path vector– nel vettore dei percorsi si elencano tutti gli AS da attraversare per

andare da una sorgente ad una destinazione– risolve il problema dei percorsi ciclici– più consono a definire le politiche di routing tra AS rispetto alla

semplice distanza

106

BGP: Path Vector

• Come si evitano i cicli:– quando un router di bordo di un AS riceve un path vector

controlla se il suo AS è già elencato al suo interno– se lo è significa che esiste la possibilità di un loop e quel path

vector non viene considerato– altrimenti il path vector viene aggiornato con l’indicazione dell’AS

di appartenenza e comunicato ai vicini, in quanto considerato corretto

• Come si applicano le politiche di routing:– se nel path vector ci sono uno o più AS incompatibili, lo si ignora

• Questo approccio non richiede che tutti i router usino la stessa metrica � possibilità di scelte arbitrarie

• Consuma maggior banda per le informazioni di routing• Richiede più memoria nei router per mantenere le tabelle

Page 54: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

54

107

BGP: formato dei messaggi

Tutti i messaggi hanno la seguente parte comune:• Marker: campo per possibile schema di autenticazione• Length: numero di ottetti del messaggio BGP, header

incluso• Type: assume uno dei seguenti valori:

- Open - Notification- Update - Keepalive

MarkerLengthType

HEADER COMUNE# ottetti

16

2

1

108

BGP: tipi di messaggio

• Open: primo messaggio trasmesso quando viene attivata una connessione verso un router BGP vicino, contiene– informazioni di identificazione dell’AS di chi trasmette– durata del timeout per considerare un vicino non più attivo– dati di autenticazione

• Update: contiene il path vector e i relativi attributi• Notification: messaggio di notifica di errori e/o di

chiusura della connessione• Keepalive: non contiene informazioni aggiuntive, ma è

usato per comunicare ad un router BGP vicino, in assenza di nuove informazioni di routing, che il trasmettitore è comunque attivo, anche se silente

Page 55: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

55

109

BGP: attributi

• Ad un path vector sono associati degli attributi che ne specificano la natura

• Un determinato attributo può essere:– well-known: riconoscibile da tutte le implementazioni BGP, deve

essere inoltrato assieme al path vector (dopo un eventuale aggiornamento)

• mandatory: deve essere presente nel path vector• discretionary: può anche non essere indicato

– optional: può non essere riconosciuto da alcuni router• transitive: deve essere inoltrato anche se non riconosciuto• non-transitive: deve essere ignorato se non riconosciuto

– partial: si tratta di un attributo optional-transitive che è stato ritrasmesso senza modifiche da un router perché non lo ha riconosciuto (indica se un determinato path vector è stato riconosciuto o meno da tutti i router attraversati)

110

BGP: codifica degli attributi

• All’interno di un path vector, gli attributi sono codificati da una struttura di lunghezza variabile

• O = 1 � optional O = 0 � well-known• T = 1 � transitive T = 0 � non-transitive• P = 1 � partial• E = 1 � attribute length = 2 byte• E = 0 � attribute length = 1 byte

Attribute Value

Attr. Length/ValueAttribute Length

Attribute Type Code0000EPTO

2 byte

Page 56: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

56

111

BGP: alcuni attributi

• Origin (Code = 1): è well-known mandatory e può valere:– 0 = IGP: l’informazione è stata ottenuta direttamente dal protocollo di

routing operante all’interno dell’AS in cui si trova la destinazione e per cui la si ritiene veritiera

– 1 = EGP: l’informazione è stata appresa dal protocollo EGP, che non funziona se vi sono cicli � un percorso caratterizzato da questo valore èpeggiore di uno di tipo IGP

– 2 = incomplete: serve ad indicare che il percorso è stato determinato in altro modo (es. statico) oppure è utilizzato per marcare un percorso di AS che è stato troncato perché la destinazione è al momento non raggiungibile

• AS path (Code = 2): è well-known mandatory– consiste nell’elenco degli AS da attraversare lungo il percorso verso la

destinazione

• Next hop (Code = 3): è well-known mandatory– indica l’indirizzo IP del router di bordo dell’AS che deve essere usato

come next hop verso la destinazione specificata

112

6. ESEMPI DI TABELLE DI ROUTING

L’informazione comunemente contenuta in ogni riga di una tabella di instradamento è la seguente:

• Destination net address: rete di destinazione• Subnet Mask: porzione dell’indirizzo IP indicante il

prefisso di rete• Next Hop: IP address del router successivo verso la

destinazione• Interface: identificatore della porta fisica dove trovare il

next hop• Metric: peso assegnato al cammino• La coppia dest_net_addr + subnet_mask serve per

identificare la possibile sottorete di destinazione• La coppia next_hop + interface serve per determinare

univocamente dove instradare il datagramma

Page 57: Lo strato 3 in Internet - DEISNet Reti di …deisnet.deis.unibo.it/Didattica/CorsiBO/RetiTeletM/Lucidi_OLD/2005... · In te rup. 4 7 Sistema single-CPU ... – raccoglie tutte le

57

113

������������� ������������� ���� ��� ��������

������������� ������������� ���� ��� �����

Tabelle di routing negli host

114

Tabelle di routing nei router