part a - internetworking: routing ip. sommario introduzione tecniche di instradamento indirizzi...
TRANSCRIPT
Part A - Internetworking: routing IP
Sommario
• Introduzione • Tecniche di
instradamento • Indirizzi • L'instradamento • Neighbor greetings • L'internetworking
multiprotocollo • Il livello Network • Algoritmi di
instradamento • Algoritmi statici
• Algoritmi adattativi • Algoritmi di routing
distance vector • Algoritmi di routing
Link State Packet • Routing gerarchico • IP: Autonomous
System • IP: protocolli di
Routing • Glossario termini• Bibliografia-
Sitografia
Architettura di un Router
LA N WA N
Processo/i di Routing
Tabella di Routing
Processo di Forwarding
Tabella di routing
198.113.181.0/24 [170/304793]192.150.42.177 02:03:50 D
198.113.181.64/26
192.168.96.0
192.150.42.0/24
[110/9936]192.150.42.11 02:03:50 O
192.150.42.177 00:00:20 R
C
[120/3]
Ethernet0
Ethernet0
Ethernet0
Ethernet0
Network # Interface Next Hop Metric Age Source
150.100.0.0/16 Ethernet0 192.150.42.177 [110/8506] 01:03:50 O
150.100.32.0/24 Ethernet0 192.150.42.11 [120/2] 00:00:15 R
0.0.0.0 / 0 Serial0 195.31.42.57 [1] S
Algoritmi di routing
• Le tabelle possono essere costruite con algoritmi:
–Statico• tabelle definite dal gestore• il gestore ha un totale controllo dei flussi di traffico• deve intervenire manualmente per riconfigurare la rete• utilizzato ad es. nella parte non magliata di reti TCP/IP
–Dinamico• tabelle calcolate con appositi algoritmi di routing ed
aggiornate automaticamente ad ogni modifica della configurazione della rete
Routing statico e dinamico
Zona della rete in cui è utilizzato routing dinamico
Protocolli di Routing
• I protocolli di routing stabiliscono le regole per la comunicazione tra i vari router all’interno di una rete.
• I protocolli di routing distribuiscono dinamicamente le informazioni sulla topologia della rete necessarie per la scelta dei percorsi e le modificano quando avviene qualche cambiamento.
• Ogni protocollo di routing applica un algoritmo di routing per la scelta del percorso “più breve” sulla base delle informazioni sulla topologia della rete possedute
Mappa dei Protocolli di RoutingMappa dei Protocolli di Routing
IP Routing Protocols IP Routing Protocols
Interior Gateway Protocol
( intra - Autonomous System)
Interior Gateway Protocol
( intra - Autonomous System)
Exterior Gateway Protocol
( inter - Autonomous Systems)
Exterior Gateway Protocol
( inter - Autonomous Systems)
BGPBGPDistance Vector
Protocol
Distance Vector
Protocol
RIPRIPOSPF IS-IS
OSPF IS-IS
Link State Protocol
Link State Protocol
IGP ed EGPIGP ed EGP
Autonomous system 3
Autonomous system (AS) 1
IGP
EGP
Autonomous system 2
Internal Router
Internal RouterInternal Router
AS Border Router
INTERNET
SUBNETS
Router
Host
Struttura di Internet
Gli “Autonomous Systems” o“Sistemi Autonomi”
AS 1
AS 2
AS 3
BGP-4
BGP-4
BGP-4OSPF
RIP
IGRP
AS 4
RIP
BGP-4
• OSPF è un protocollo di tipo link state
• Utilizza l’algoritmo di Dijkstra• Ogni router conosce lo stato di
tutta la rete• I cambiamenti sul routing
vengono propagati istantaneamente (nel momento in cui avvengono) attraverso la tecnica del “flooding”
• Migliore convergenza rispetto al RIP
• OSPF utilizza una struttura gerarchica
• OSPF si adatta bene a reti di grandi dimensioni
• OSPF è un protocollo di tipo link state
• Utilizza l’algoritmo di Dijkstra• Ogni router conosce lo stato di
tutta la rete• I cambiamenti sul routing
vengono propagati istantaneamente (nel momento in cui avvengono) attraverso la tecnica del “flooding”
• Migliore convergenza rispetto al RIP
• OSPF utilizza una struttura gerarchica
• OSPF si adatta bene a reti di grandi dimensioni
IGP: RIP o OSPF?IGP: RIP o OSPF?
• Rip è un protocollo di tipo Distance Vector
• Utilizza l’algoritmo di Bellmann-Ford
• Ogni router informa solamente i suoi vicini sulla propria tabella di routing
• I cambiamenti sul routing vengono propagati periodicamente causando un’occupazione di banda (circa ogni 30 sec.)
• Lenta convergenza• RIP viene utilizzato in reti di
piccole dimensioni
• Rip è un protocollo di tipo Distance Vector
• Utilizza l’algoritmo di Bellmann-Ford
• Ogni router informa solamente i suoi vicini sulla propria tabella di routing
• I cambiamenti sul routing vengono propagati periodicamente causando un’occupazione di banda (circa ogni 30 sec.)
• Lenta convergenza• RIP viene utilizzato in reti di
piccole dimensioni
Altri protocolli di routing
• IGRP (Interior Gateway Routing Protocol) è stato sviluppato da CISCO per risolvere alcune limitazioni di RIP. Come RIP, è un protocollo “distance-vector”.
• IS-IS è molto simile ad OSFP (è un protocollo “link state”)
• EGP (Exterior Gateway Protocol) è stato il primo protocollo di routing inter-dominio utilizzato. Presenta molte limitazioni ed è stato quindi sostituito dal BGP
• BGP (Border Gateway Protocol) è il protocollo di routing inter-dominio attualmente utilizzato (nella versione BGP-4)
Ogni nodo mantiene un database con le distanze minime tra sé stesso e tutte le possibili destinazioni
Noto anche come algoritmo di Bellman-Ford
Ogni nodo, quando modifica le proprie tabelle di instradamento, invia ai nodi adiacenti un distance vector
Il distance vector è un insieme di coppie[indirizzo - distanza]
La distanza è espressa tramite metriche classiche quali numero di hop e costo
Un router ricalcola le sue tabelle se:cade una linea attivariceve un distance vector da un nodo adiacente diverso da quello memorizzato (più recente)
Il calcolo consiste nella fusione di tutti i distance vector delle linee attive
Se le tabelle risultano diverse da quelle precedenti, invia ai nodi adiacenti un nuovo distance vector
Distance Vector
D C2 54 106 307 15
RRaRbRcRd
D C1 03 10
5 307 15
RRaRb
RcRd
D C2 153 106 20
RRaRbRc
D C1 152 153 154 20
8 10 Rd
RR2R1R4R1
5 456 257 258 25
R2R4R1R2
costo = 10 costo = 15
costo
= 54 60 Rb
R1R2
R3
R4
Distance Vector
Vantaggi:Molto semplice da implementare
Svantaggi:Possono innescarsi dei loop a causa di particolari variazioni della topologia
Converge alla velocità del link più lento e del router più lento
Difficile capirne e prevederne il comportamento su reti grandi: nessun nodo ha una mappa della rete!
L’implementazione di meccanismi migliorativi appesantisce notevolmente il protocollo
Distance Vector: caratteristiche
Routing Information Protocol (RIP)Routing Information Protocol (RIP)
• RIP appartiene alla categoria dei Distance Vector Routing Distance Vector Routing ProtocolsProtocols
• Applica l’algoritmo di Bellman-Ford per la determinazione delle tabelle di instradamento
• E’ richiesto che ogni nodo scambi informazioni con i nodi vicini
– due nodi sono vicini se sono direttamente connessi mediante la stessa rete
• RIP è utilizzato in reti di piccole dimensioni• E’ molto semplice, tuttavia
– la convergenza è lenta– lo stato di equilibrio può essere un sub-ottimo
RIP: tabelle di statoRIP: tabelle di stato
• Ogni router ha una tabella di stato in cui compare una riga (colonna) per ciascuna rete di cui il router sia a conoscenza
• Ogni riga (colonna) contiene le seguenti informazioni:– indirizzo identificativo della rete– indirizzo del primo router del percorso (next hop)– distanza dalla rete (numero minimo di reti da attraversare se
metriche unitarie)
Esempio RIP: Inizializzazione (1)
• Condizione iniziale– Routing table vuote
• Metrica– Distanza
A B C
D E
3
2
5
1
6
4 ADestinazione
DistanzaA B C D E0 ? ? ? ?
Link local ? ? ? ?
BDestinazione
DistanzaA B C D E? 0 ? ? ?
Link ? local ? ? ?
CDestinazione
DistanzaA B C D E? ? 0 ? ?
Link ? ? local ? ?
DDestinazione
DistanzaA B C D E? ? ? 0 ?
Link ? ? ? local ?
EDestinazione
DistanzaA B C D E? ? ? ? 0
Link ? ? ? ? local
Routing Table
Esempio RIP: Inizializzazione (2)
• Step 2:– A emette un messaggio
verso B e D
A B C
D E
3
2
5
1
6
4
A AddressMetric
A --- --- --- ---0 --- --- --- ---
ADestinazione
DistanzaA B C D E0 ? ? ? ?
Link local ? ? ? ?
BDestinazione
DistanzaA B C D E1 0 ? ? ?
Link 1 local ? ? ?
CDestinazione
DistanzaA B C D E? ? 0 ? ?
Link ? ? local ? ?
DDestinazione
DistanzaA B C D E1 ? ? 0 ?
Link 3 ? ? local ?
EDestinazione
DistanzaA B C D E? ? ? ? 0
Link ? ? ? ? local
Routing Table
Esempio RIP: Inizializzazione (3)
• Step 3:– B emette un messaggio
verso A, C e E
A B C
D E
3
2
5
1
6
4
B AddressMetric
A B --- --- ---1 0 --- --- ---
ADestinazione
DistanzaA B C D E0 1 ? ? ?
Link local 1 ? ? ?
BDestinazione
DistanzaA B C D E1 0 ? ? ?
Link 1 local ? ? ?
CDestinazione
DistanzaA B C D E2 1 0 ? ?
Link 2 2 local ? ?
DDestinazione
DistanzaA B C D E1 ? ? 0 ?
Link 3 ? ? local ?
EDestinazione
DistanzaA B C D E2 1 ? ? 0
Link 4 4 ? ? local
Routing Table
Esempio RIP : Inizializzazione (4)
• Step 4:– D emette un messaggio
verso A e E
A B C
D E
3
2
5
1
6
4
D AddressMetric
A --- --- D ---1 --- --- 0 ---
ADestinazione
DistanzaA B C D E0 1 ? 1 ?
Link local 1 ? 3 ?
BDestinazione
DistanzaA B C D E1 0 ? ? ?
Link 1 local ? ? ?
CDestinazione
DistanzaA B C D E2 1 0 ? ?
Link 2 2 local ? ?
DDestinazione
DistanzaA B C D E1 ? ? 0 ?
Link 3 ? ? local ?
EDestinazione
DistanzaA B C D E2 1 ? 1 0
Link 4 4 ? 6 local
Routing Table
Esempio RIP : Inizializzazione (5)
• Step 5:– A emette un messaggio
verso B e D
A B C
D E
3
2
5
1
6
4
A AddressMetric
A B --- D ---0 1 --- 1 ---
ADestinazione
DistanzaA B C D E0 1 ? 1 ?
Link local 1 ? 3 ?
BDestinazione
DistanzaA B C D E1 0 ? 2 ?
Link 1 local ? 1 ?
CDestinazione
DistanzaA B C D E2 1 0 ? ?
Link 2 2 local ? ?
DDestinazione
DistanzaA B C D E1 2 ? 0 ?
Link 3 3 ? local ?
EDestinazione
DistanzaA B C D E2 1 ? 1 0
Link 4 4 ? 6 local
Routing Table
Esempio RIP : Inizializzazione (6)
• Step 6:– C emette un messaggio
verso B e E
A B C
D E
3
2
5
1
6
4
C AddressMetric
A B C --- ---2 1 0 --- ---
ADestinazione
DistanzaA B C D E0 1 ? 1 ?
Link local 1 ? 3 ?
BDestinazione
DistanzaA B C D E1 0 1 2 ?
Link 1 local 2 1 ?
CDestinazione
DistanzaA B C D E2 1 0 ? ?
Link 2 2 local ? ?
DDestinazione
DistanzaA B C D E1 2 ? 0 ?
Link 3 3 ? local ?
EDestinazione
DistanzaA B C D E2 1 1 1 0
Link 4 4 5 6 local
Routing Table
Esempio RIP : Inizializzazione (7)
• Step 7:– E emette un messaggio
verso B, C e D
A B C
D E
3
2
5
1
6
4
E AddressMetric
A B C D E2 1 1 1 0
ADestinazione
DistanzaA B C D E0 1 ? 1 ?
Link local 1 ? 3 ?
BDestinazione
DistanzaA B C D E1 0 1 2 1
Link 1 local 2 1 4
CDestinazione
DistanzaA B C D E2 1 0 2 1
Link 2 2 local 5 5
DDestinazione
DistanzaA B C D E1 2 2 0 1
Link 3 3 6 local 6
EDestinazione
DistanzaA B C D E2 1 1 1 0
Link 4 4 5 6 local
Routing Table
Esempio RIP : Inizializzazione (8)
• Step 8:– B emette un messaggio
verso A, C e E
A B C
D E
3
2
5
1
6
4
B AddressMetric
A B C D E1 0 1 2 1
ADestinazione
DistanzaA B C D E0 1 2 1 2
Link local 1 1 3 1
BDestinazione
DistanzaA B C D E1 0 1 2 1
Link 1 local 2 1 4
CDestinazione
DistanzaA B C D E2 1 0 2 1
Link 2 2 local 5 5
DDestinazione
DistanzaA B C D E1 2 2 0 1
Link 3 3 6 local 6
EDestinazione
DistanzaA B C D E2 1 1 1 0
Link 4 4 5 6 local
Routing Table
Esempio RIP : Guasto di un ramo (1)
• Condizione iniziale– rete a regime – guasto del ramo AB
• Metrica– Distanza
A B C
D E
3
2
5
xxxx
6
4 ADestinazione
DistanzaA B C D E0 inf inf 1 inf
Link local 1 1 3 1
BDestinazione
DistanzaA B C D Einf 0 1 inf 1
Link 1 local 2 1 4
CDestinazione
DistanzaA B C D E2 1 0 2 1
Link 2 2 local 5 5
DDestinazione
DistanzaA B C D E1 2 2 0 1
Link 3 3 6 local 6
EDestinazione
DistanzaA B C D E2 1 1 1 0
Link 4 4 5 6 local
Routing Table
Esempio RIP : Guasto di un ramo (2)
• Step 1– Messaggio di A verso D
– Messaggio di B verso C ed E
A B C
D E
3
2
5
xxxx
6
4A
DestinazioneDistanza
A B C D E0 inf inf 1 inf
Link local 1 1 3 1
BDestinazione
DistanzaA B C D Einf 0 1 inf 1
Link 1 local 2 1 4
CDestinazione
DistanzaA B C D Einf 1 0 2 1
Link 2 2 local 5 5
DDestinazione
DistanzaA B C D E1 inf 2 0 1
Link 3 3 6 local 6
EDestinazione
DistanzaA B C D Einf 1 1 1 0
Link 4 4 5 6 local
Routing Table
A AddressMetric
A B C D E0 inf inf 1 inf
B AddressMetric
A B C D Einf 0 1 inf 1
Esempio RIP : Guasto di un ramo (3)
• Step 2– Messaggio di C verso B, E
– Messaggio di D verso A, E
– Messaggio di E verso B, D, E
A B C
D E
3
2
5
xxxx
6
4
ADestinazione
DistanzaA B C D E0 inf 3 1 2
Link local 1 3 3 3
BDestinazione
DistanzaA B C D Einf 0 1 2 1
Link 1 local 2 4 4
CDestinazione
DistanzaA B C D Einf 1 0 2 1
Link 2 2 local 5 5
DDestinazione
DistanzaA B C D E1 2 2 0 1
Link 3 6 6 local 6
EDestinazione
DistanzaA B C D E2 1 1 1 0
Link 6 4 5 6 local
Routing Table
C AddressMetric
A B C D Einf 1 0 2 inf
D AddressMetric
A B C D E1 inf 2 0 1
E AddressMetric
A B C D Einf 1 1 1 0
Esempio RIP : Guasto di un ramo (4)
• Step 3– Messaggio di A verso D
– Messaggio di B verso E, C
– Messaggio di D verso A, E
– Messaggio di E verso B, C, D
ADestinazione
DistanzaA B C D E0 3 3 1 2
Link local 3 3 3 3
BDestinazione
DistanzaA B C D E3 0 1 2 1
Link 4 local 2 4 4
CDestinazione
DistanzaA B C D E3 1 0 2 1
Link 5 2 local 5 5
DDestinazione
DistanzaA B C D E1 2 2 0 1
Link 3 6 6 local 6
EDestinazione
DistanzaA B C D E2 1 1 1 0
Link 6 4 5 6 local
Routing Table
A AddressMetric
A B C D E0 inf 3 1 2
D AddressMetric
A B C D E1 2 2 0 1
E AddressMetric
A B C D E2 1 1 1 0
B AddressMetric
A B C D Einf 0 1 2 1
Esempio RIP : Conteggio all’infinito (1)
• Uno dei problemi di RIP è il cosiddetto “conteggio all’infinito” che accade quando– una rete diviene irrangiugibile (guasto di un link)– le metriche non sono unitarie
A B
C
D
1
11
10
1
Rete Destinazione 1
• Metriche per la rete di destinazione– Nodo D Metrica 1 Diretto– Nodo B Metrica 2 Router D– Nodo C Metrica 3 Router B– Nodo A Metrica 3 Router B
Esempio RIP : Conteggio all’infinito (2)
• Se il link BD si guasta (metrica infinita):– tutte i cammini transiteranno attraverso il nodo C
– la convergenza sarà molto lenta
– il tempo di convergenza dipende dal valore della metrica del ramo CD
• Il meccanismo è il seguente:– Il nodo B si accorge immediatamente del guasto
– I nodi A e C mandano messaggi RIP di aggiornamento della via verso D indicando implicitamente il transito da B
– Il nodo B crede erroneamente che esista una via verso D attraverso A o C
– L’instradamento converge solo dopo che il conteggio ha raggiunto il valore del peso del link CD
• RIP usa la metrica massima uguale a 16
Esempio RIP : Conteggio all’infinito (3)
D Diretto 1
Nodo Next hop Metr.
B ----
C B 3
A B 3
Step 1
D Diretto 1
Nodo Next hop Metr.
B C 4
C A 4
A C 4
Step 2
D Diretto 1
Nodo Next hop Metr.
B C 5
C A 5
A C 5
Step 3
D Diretto 1
Nodo Next hop Metr.
B C 6
C A 6
A C 6
Step 4
D Diretto 1
Nodo Next hop Metr.
B C 12
C D 11
A C 12
Step 10
RIP: Split Horizon
• Ha lo scopo di evitare gli effetti del conteggio all’infinito
• Nella seguente situazione di routing non ha senso che
– B tenti di raggiungere X attraverso A– A annunci a B la propria distanza da X
• Un nodo emette verso i nodi adiacenti messaggi differenziati secondo una delle seguenti regole– omettendo le informazioni sui cammini che passano sul link su cui si
emette il messaggio (simple split horizon)– ponendo a la metrica dei cammini che passano sul link su cui si
emette il messaggio (split horizon with poisonous reverse)
A B X
RIP: Triggered Updates
• La tecnica Split horizon with poisonous reverse interrompe i loop che coinvolgono due router– Sono tuttavia possibili loop con tre o più nodi
• A crede di avere un cammino attraverso B• B crede di avere un cammino attraverso C• C crede di avere un cammino attraverso A
• Rimedio– Ogni volta che una tabella di routing viene modificata, il nodo emette
verso i nodi adiacenti messaggi di aggiornamento – Si riduce il tempo di convergenza, poiché elimina l’attesa dello
scadimento del time-out di emissione
RIP (Versione 1)
• Formato compatibile con i messaggi Berkeley Software Distribution (BSD) UNIX
• Un messaggio RIP è incapsulato in una unità dati UDP
• Pacchetto Request
– è emesso da un router per chiedere ad un nodo vicino l’invio della distance vector table o di una parte di essa
• Pacchetto Response
– è emesso per inviare tutta o una parte della distance vector table
– è emesso• ogni 30 secondi• in risposta ad un pacchetto Request• quando la routing table cambia (Triggered updates)
RIP (Versione 1)
• Il formato massimo di un messaggio RIP è di 512 bytes– massimo 25 blocchi per messaggio – in caso di un numero maggiore di 25 indirizzi da aggiornare si
utilizzano messaggi RIP multipli
• Non supporta la tecnica della subnet mask– un router deve conoscere la struttura degli indirizzi
• La metrica usata è la distanza (intero compreso da 1 a 16)– il valore 16 indica infinito
• Se per 180 s un indirizzo di rete non è rinfrescato viene rimosso dalla routing table del router
• In caso di variazioni consecutive dello stato dei link i messaggi RIP sono emessi con intervallo da 1 a 5 s
Formato pacchetto RIP (Versione 1)
• Header– Command
• request• response
– Version• Block
– IP address• rete, sottorete o host
– Metric• distanza dalla rete
indicata nell’IP addressAddress Identifier 0
IP Address N00
Metric for address N
Command Version 0Address Identifier 0
IP Address 100
Metric for address 1Address Identifier 0
IP Address 200
Metric for address 2A
dd
ress
1d
ista
nce
Ad
dre
ss 2
dis
tan
ceF
ino
a 2
5ad
dre
sses
RIP (Versione 2)
• Estende le funzionalità di RIP-1– può essere utilizzato in reti di media dimensione– supporta la tecnica di subnetting variabile o supernetting
(CIDR)– è compatibile con RIP-1– router di diverso tipo possono coesistere in una stessa rete
• Le metrica utilizzata è identica a quella di RIP-1– distanza (intero da 1 a 16)– il valore 16 indica infinito
• RIP-2 utilizza i byte inutilizzati nel formato dei pacchetti RIP-1
Formato pacchetto RIP (Versione 2)
– Route Tag• gestisce l’interoperabilità con altri
protocolli di routing (es. EGP)
– IP address• rete, sottorete o host
– Subnet Mask• specifica come interpretare i bit
dell’indirizzo
– Next Hop• indica quale è il next hop router a
cui il router emittente il messaggio RIP invierà i pacchetti diretti all’indirizzo specificato
– Metric• distanza della rete indicata nell’IP
address dal router emittente
Address Identifier Route TagIP Address NSubnet Mask
Next HopMetric for address N
Command Version Routing DomainAddress Identifier Route Tag
IP Address 1Subnet Mask
Next HopMetric for address 1
Address Identifier Route TagIP Address 2Subnet Mask
Next HopMetric for address 2
Ad
dre
ss 1
dis
tan
ceA
dd
ress
2d
ista
nce
Fin
o a
25
add
ress
es
Link State Routing
• I protocolli “Link State” sono adatti a reti di grandi dimensioni
• Principi base:– i router hanno la responsabilità di contattare i router vicini e
acquisire la loro identità (pacchetti Hello)– i router emettono i link state packets (LSP) che contengono la
lista delle reti connesse al router (vicini) ed i loro costi associati– gli LSP sono trasmessi a tutti gli altri router (flooding)– tutti i router hanno lo stesso insieme di dati e quindi possono
costruire la stessa mappa della rete (database topologicodatabase topologico)– le mappe di rete sono utilizzate per determinare i cammini
migliori e quindi l’instradamento
Link State Routing
• Gli LSP sono emessi– quando un router contatta un nuovo router vicino– quando un link si guasta– quando il costo di un link varia– periodicamente ogni fissato intervallo di tempo
• La rete trasporta gli LSP mediante la tecnica del flooding– un LSP è rilanciato da un router su tutte le sue interfacce tranne
quella da cui è stato ricevuto– gli LSP trasportano dei riferimenti temporali (time stamp) o numeri
di sequenza per• evitare il rilancio di pacchetti già rilanciati
• consentire un corretto riscontro dal ricevente
Tecnica del “Flooding”
• Assicura che tutti i router di una rete– riescano a costruire un database contenente lo stato della rete
– abbiano le stesse informazioni sullo stato dei link
• Alla ricezione di un LSP:– un router esamina i campi di un LSP: link identifier, metrica, time stamp o
numero di sequenza
– se il dato non è contenuto nel database, viene memorizzato e l’LSP è rilanciato su tutte le interfacce del router tranne quella di ricezione
– se il dato ricevuto è più recente di quello contenuto nel database, il suo valore è memorizzato e l’LSP è rilanciato su tutte le interfacce del router tranne quella di ricezione
– se il dato ricevuto è più vecchio di quello contenuto nel database, viene rilanciato un LSP con il valore contenuto nel database esclusivamente sull’interfaccia di arrivo dell’LSP
– se i due dati sono della stessa età non viene eseguita alcuna operazione
Tecnica del “Flooding”
• La tecnica del flooding ha i seguenti vantaggi– esplora tutti i possibili cammini tra origine e destinazione– è estremamente affidabile e robusta– almeno una copia di ogni LSP seguirà la via a minor costo
• Dall’altro lato, il traffico generato dipende dalle dimensioni della rete e può essere molto elevato
(replicato su ogni router)
A B/2 D/5 a/1
B A/2 C/2 b/1
C B/2 D/4 E/3
D A/5 F/6 G/7 C/4
E C/3 G/2
F D/6 c/1
G D/7 E/2 d/1 e/1
A B/2 D/5 a/1
B A/2 C/2 b/1
C B/2 D/4 E/3
D A/5 F/6 G/7 C/4
E C/3 G/2
F D/6 c/1
G D/7 E/2 d/1 e/1
LSP Database
Costo
A
D
F
C
E
B
G
a
b
c
d
e
2
54
7 3
2
6
1
1
1
1
1
2
LSP database
Ogni router calcola indipendentemente le sue tabelle di routing applicando alla mappa della rete l'algoritmo di Dijkstra o SPF (Shortest Path First)
Tabella di routing di Aa
A
D
F
C
E
B
G
b
c
d
e
2
5
3
2
6
1
1
1
1
1
2
Dest via costoa diretto 1b B 3c D 12d B 10e B 10B diretto 2C B 4D diretto 5E B 7F D 11G B 9
Dest via costoa diretto 1b B 3c D 12d B 10e B 10B diretto 2C B 4D diretto 5E B 7F D 11G B 9
Tabella di routing
Vantaggi:Può gestire reti di grandi dimensioniHa una convergenza rapidaDifficilmente genera loop, e comunque è in grado di identificarli e interromperli facilmenteFacile da capire: ogni nodo ha la mappa della rete
Svantaggi:Molto complesso da realizzare (la prima implementazione ha richiesto a Digital 5 anni)
Link State: caratteristiche
Open Shorthest Path First (OSPF)Open Shorthest Path First (OSPF)
• E’ un protocollo di tipo link-statelink-state che supera le limitazioni del protocollo RIP
• Consente una maggiore velocità di convergenza
• Algoritmo:
– inizialmente ogni router determina il costo dei rami uscenti
– invia questi dati a tutti i router della rete (tecnica flooding)
– continua a monitorare il costo dei propri rami
– in caso di variazionein caso di variazione del costo di un ramo, il router invia il nuovo valore del costo di quel ramo a tutti i router
• Ogni nodo conosce quindi lo stato dell’intera rete e può usare localmente l’algoritmo di Dijkstra
OSPF : Topologia della Rete (1/2)OSPF : Topologia della Rete (1/2)
• Ogni router mantiene un database che riflette i dati aggiornati sulla topologia della rete (Link State Link State Database o Database topologicoDatabase o Database topologico)
• La topologia di rete è rappresentata come un grafo orientato
– I nodi rappresentano• router
• network reti di transito: non contengono host (sorgenti e/o
destinazioni) reti stub: reti non di transito
– I rami rappresentano• collegamenti diretti tra nodi di tipo router
• collegamenti tra nodi di tipo router e nodi di tipo network
OSPF: Topologia della Rete (2/2)OSPF: Topologia della Rete (2/2)
N11
N3
N4
N6
N7
N8
N9
N1
N2
N10
R2 R3
R1
R6
R4 R5
R7
R10R9
R11 R8
H1 R12
31
31 1
1 88
7
6
2
7
5
6
6
1
1
4
12
1
3
21
6
8
10
N12 N13 N14
N12
N15
Rete8
88
2
9
N6
R1
R2
R4
R3 R6
R5
R7
R10
R8
R11
R9
R12
N1
N2
N3
N4
N7
N8
N11
N9
N10
3
3 1
11 8
67
6
6
1
5
7
8
6
1
3
1
1
41
2
3
1
1
10 2Grafo
8
H1
2
OSPF: Costruzione del GrafoOSPF: Costruzione del Grafo
• Nel grafo rappresentativo della rete:– due router collegati da una linea punto-punto sono
connessi da due rami orientati (uno per ogni verso)– più router connessi alla stessa rete sono rappresentati da
nodi (router node) connessi ciascuno da due rami orientati (uno per ogni verso) al nodo rappresentativo della rete (network node)
– una rete connessa ad un singolo router è rappresentata da un nodo di tipo stub
– un host direttamente connesso ad un router è rappresentato con un ramo
– sistemi autonomi esterni sono rappresentati da nodi stub ed il costo dei rami è determinato dal protocollo EGP
Spanning Tree e Tabelle di RoutingSpanning Tree e Tabelle di Routing
• Ogni router calcola lo spanning tree a partire dal grafo rappresentativo della rete mediante l’algoritmo di Dijkstra
R1
R2
R4
R3 R6
R5
R7
R10
R8
R11
R9
R12
N1
N2
N3
N4
N6
N7
N8
N11
N9
N10
3
3
6 8
7
2
6
1
3
1
4
1
3
10 2
8
8
9
2
N12
N13
N14
N12
N15
H1
Destin. N. H. Dist.N1 R3 10N2 R3 10N3 R3 7N4 R3 8R1 R3 7N6 R10 8N7 R10 12N8 R10 10
Destin. N.H. Dist.
N9 R10 11
N10 R10 13
R5 R5 6R7 R10 8
N12 R10 10N13 R5 14N14 R5 14N15 R10 17
N11 R10 14H1 R10 21
Spanning Tree e Routing Table in R6
OSPF: Costruzione delleTabelle di Routing
OSPF: Costruzione delleTabelle di Routing
• Nodi vicini si riconoscono attraverso messaggi di “Hello”
• Una volta riconosciutisi, instaurano rapporti di adiacenza
• Nodi adiacenti si scambiano le informazioni sulla topologia dell’intera rete in loro possesso
• A regime tutti i nodi hanno una visione completa (ed uguale) della topologia di tutta la rete (Database TopologicoDatabase Topologico)
• A partire dal database topologico ogni router costruisce la propria tabella di routing
OSPF: Costruzione delleTabelle di Routing
OSPF: Costruzione delleTabelle di Routing
Ogni routercalcola i percorsi a
costo più basso
Algoritmo SPF(Dijkstra)
C
DA
B
1(15)
2(25)
3(15)
4(5)
5(10)
Link ID (Metrica)
Database TopologicoFrom To Link Costo
A B 1 15A C 2 25B A 1 15B C 3 10B D 4 5C A 2 25C B 3 10C D 5 10D B 4 5D C 5 10
Routing Table for ADest Cost Next HopB 15 BC 25 CD 20 B
Esempio OSPF (1/3)
A B C
D E
3
2
5
1
6
4A
DestinazioneDistanza
A B C D E0 1 2 1 2
Link local 1 1 3 1
BDestinazione
DistanzaA B C D E1 0 1 2 1
Link 1 local 2 1 4
CDestinazione
DistanzaA B C D E2 1 0 2 1
Link 2 2 local 5 5
DDestinazione
DistanzaA B C D E1 2 2 0 1
Link 3 3 6 local 6
EDestinazione
DistanzaA B C D E2 1 1 1 0
Link 4 4 5 6 local
Routing Table
Database Topologico (link bidirezionali)
Da A link
A B 1
A D 3
B C 2
B E 4
D E 6
E C 5
Dist
1
1
1
1
1
1
Esempio OSPF (2/3)
• Guasto del ramo AB
A B C
D E
3
2
5
xxxx
6
4
ADestinazione
DistanzaA B C D E0 inf inf 1 inf
Link local 1 1 3 1
BDestinazione
DistanzaA B C D E
inf 0 1 inf 1Link 1 local 2 1 4
CDestinazione
DistanzaA B C D E2 1 0 2 1
Link 2 2 local 5 5
DDestinazione
DistanzaA B C D E1 2 2 0 1
Link 3 3 6 local 6
EDestinazione
DistanzaA B C D E2 1 1 1 0
Link 4 4 5 6 local
Routing Table
Esempio OSPF (3/3)
A B C
D E
3
2
5
xxxx
6
4
A LinkMetric
1Inf B Link
Metric1
Inf
DatabaseTopologico
Da A link
A B 1
A D 3
B C 2
B E 4
D E 6
E C 5
Dist
Inf
1
1
1
1
1
ADestinazione
DistanzaA B C D E0 3 3 1 2
Link local 3 3 3 3
BDestinazione
DistanzaA B C D E3 0 1 2 1
Link 4 local 2 4 4
CDestinazione
DistanzaA B C D E3 1 0 2 1
Link 5 2 local 5 5
DDestinazione
DistanzaA B C D E1 2 2 0 1
Link 3 6 6 local 6
EDestinazione
DistanzaA B C D E2 1 1 1 0
Link 6 4 5 6 local
Routing Table