lo strato 3 in internet - deisnet reti di...
TRANSCRIPT
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
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
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
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
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
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’
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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)
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
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
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
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
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
57
113
������������� ������������� ���� ��� ��������
������������� ������������� ���� ��� �����
Tabelle di routing negli host
114
Tabelle di routing nei router