Struttura di una Routing Table
Introduzione
Le routing tables contengono tutte le informazioni necessarie per inoltrare
gli "IP data packet" verso una delle possibili destinazioni raggiungibili.
Ogni entry nella tabella di routing descrive l'insieme dei path migliori
per arrivare a na particolare destinazione. OSPF prevede anche l'esistenza
di una DEFAULT ROUTE, che verrà usata nel caso in cui non ci sia un'entry
specifica per una data destinazione. Per ogni router esiste una sola tabella
di routing Il primo insieme di campi descrive le entries della tabella
di routing riguardanti la destinazione. I campi sono:
- Destination Type
- La destination puo' essere di tre tipi. Solo il tipo Network è attualmente
usato quando si gestisce un IP data traffic. Gli altri tipi si usano solo
nei passi intermedi per la costruzione della tabella di routing.
- Network
- E' un range di indirizzi IP raggiungibili dall'IP data traffic.
- Area border router
- Sono routers che sono connessi a piu' aree. Questi routers generano
i summary link advertisements che si useranno per calcolare le inter-area
routes
- AS boundary router
- Sono routers che generano gli AS external link advertisement che verranno
usati per il calcolo delle external routes
- Destination ID
- E' l'identificativo della destinazione. Per i Network corrisponde al
loro IP associato per gli altri tipi invece corrispondera' all'ID del relativo
router
- Optional Capabilities
- Quando la destinazione e' un router questo campo indica le OSPF capabilities
supportate dal router di destinazione. Attualmente due sono le Optional
Capabilities accettate
- l'abilità di gestire route basate su IP-TOS
- l'abilità di processare gli AS external link
Per la stessa destinazione ci possono essere piu' entries nella tabella
di routing dipendenti dai valori dei campi :
- Type of Service
- Può esserci una insieme separato di routes per ogni IP-TOS
- Area
- Questo campo indica l'area da cui il link state information e' stato
mandato.
Il resto delle entries della tabella di routing descrivono l'nsieme
dei paths per la destinazione. E sono :
- Path-Type
- Ci sono 4 possibili tipi di paths elencati in ordine di preferenza:
- intra-area , path interni ad un area
- inter-area path tra aree diverse
- type 1 external path tra AS differenti
- type 2 external path tra AS differenti
- Cost
- Descrive il costo necessario per raggiungere la destinazione. Per il
type 2 external path invece descrive il costo del path interno all'AS.
- Type 2 cost
- Valido solo type 2 external path. indica il costo esterno all' AS
- Link State Origin
- Questo campo indica il link state advertisement che referenzia direttamente
la destinazione. (Questo campo non e' usato dal protocollo OSPF)
- Next Hop
- E' l'ID del prossimo router da attreversare per raggiungere la destinazione
Advertising router Valido solo per destinazioni esterne alle aree. Indica
il l'ID del router di frontiera che ha propagato i summary link o gli AS
external link che hanno portato alla costruzione della route corrente
Routing Table LookUp
Quando un IP data packet e' ricevuto, un router OSPF cerca nella tabella
di routing il path migliore per mandare il pacchetto verso la destinazione.
Quest'entry nella tabella di routing provvede a dare due informazioni
- l'interfaccia di uscita
- il next hop
Il processo di look-up e' formato da vari passi e permette di trovare
tra tutte le entries della routing table la migliore.
I passi sono :
- Seleziona dalla routing table le entry che permettono di arrivare alla
destinazione desiderata.
- Riduci l'insieme scegliendo il type di path migliore (e.s. intra-path
verranno verranno scelti sempre prima degli inter-path perche' sono path
interni all'area, e così via )
- Riduci l'insieme scegliendo le routes nella routing table che hanno
un range piu' specifico ( e.s. 128.185.1.0 e' migliore di 128.185.0.0)
La default route e' la meno specifica.
- Riduci scegliendo il routing che rispetta il TOS se nessun routing
ha lo stesso TOS si sceglie quello con TOS 0
Routing table example
|
Type |
|
Dest |
|
Area |
|
Path Type |
|
Cost |
|
Next Hop(s) |
|
Adv. Router(s) |
|
N |
|
N1 |
|
1 |
|
intra-area |
|
4 |
|
RT1 |
|
* |
|
N |
|
N2 |
|
1 |
|
intra-area |
|
4 |
|
RT2 |
|
* |
|
N |
|
N3 |
|
1 |
|
intra-area |
|
1 |
|
* |
|
* |
|
N |
|
N4 |
|
1 |
|
intra-area |
|
3 |
|
RT3 |
|
* |
|
BR |
|
RT3 |
|
1 |
|
intra-area |
|
1 |
|
* |
|
* |
|
N |
|
Ib |
|
0 |
|
intra-area |
|
22 |
|
RT5 |
|
* |
|
N |
|
Ia |
|
0 |
|
intra-area |
|
27 |
|
RT5 |
|
* |
|
BR |
|
RT3 |
|
0 |
|
intra-area |
|
21 |
|
RT5 |
|
* |
|
BR |
|
RT7 |
|
0 |
|
intra-area |
|
14 |
|
RT5 |
|
* |
|
BR |
|
RT10 |
|
0 |
|
intra-area |
|
22 |
|
RT5 |
|
* |
|
BR |
|
RT11 |
|
0 |
|
intra-area |
|
25 |
|
RT5 |
|
* |
|
ASBR |
|
RT5 |
|
0 |
|
intra-area |
|
8 |
|
* |
|
* |
|
ASBR |
|
RT7 |
|
0 |
|
intra-area |
|
14 |
|
RT5 |
|
* |
|
N |
|
N6 |
|
0 |
|
inter-area |
|
15 |
|
RT5 |
|
RT7 |
|
N |
|
N7 |
|
0 |
|
inter-area |
|
19 |
|
RT5 |
|
RT7 |
|
N |
|
N8 |
|
0 |
|
inter-area |
|
18 |
|
RT5 |
|
RT7 |
|
N |
|
N9-N11,H1 |
|
0 |
|
inter-area |
|
26 |
|
RT5 |
|
RT11 |
|
N |
|
N12 |
|
* |
|
type 1 ext. |
|
16 |
|
RT5 |
|
RT5,RT7 |
|
N |
|
N13 |
|
* |
|
type 1 ext. |
|
16 |
|
RT5 |
|
RT5 |
|
N |
|
N12 |
|
* |
|
type 1 ext. |
|
16 |
|
RT5 |
|
RT5 |
|
N |
|
N12 |
|
* |
|
type 1 ext. |
|
23 |
|
RT5 |
|
RT7 |
Calcolo di una Routing Table
Il processo di calcolo di una routing table puo' essere schematizzato
nei seguenti passi:
- La tabella di routing corrente viene invalidata e ne verrà costruita
una nuova da zero. La vecchia tabella di routing verra salvata in modo
da identificare i cambiamenti.
- Le intra-area routes sono calcolate tramite lo Shortest-Path-Tree (SPF).
In particolare verranno calcolate tutte le tabelle di routing la cui Destinatyon
Type e' Area Border Router. Questo passo si suddivide in 2 sottopassi
- L'albero verrà costruito considerando solo quei links tra routers e
transit network.
- Gli stub verranno aggiunti come foglie dell'albero.
- Le inter-area routes sono calcolate tramite l'esame dei summary link
advertisements
- Vengono esaminati i summary link advertisement dei routers che connettono
una o piu' aree
- Routes per destinazioni esterne sono calcolate esaminando gli AS external
link advertisement.
Calcolo dello SPF per un'area
Ogni router calcolera' l' SPF usando se stesso come radice dell'albero
La formazione dello SPF e' fatto in due passi :
- Vengono considerati solo i link tra routers e transit network
- Le foglie vengono aggiunte considerando i link agli stub network
Il primo passo della procedura lavorerà sui transit-vertex a ogni vertice
sono associati i seguenti dati :
- Vertex ID:
- E' un numero a 32 bit che identifica il vertice. Per un router corrisponde
al Router ID. Per un network corrisponde all'IP del router designato per
quel network.
- Link State Advertisement
- Ogni transit-vertex ha associato un link state advertisement.
- List of next hops
- La lista dei prossimi hops per lo shortest path dalla root a questo
vertice.
- Distance from root
- Il costo dalla root al vertice corrente.
Per il calcolo dello SPF verrà applicato l'algoritmo di Dijkstra. Dopo
aver creata una lista dei vertici,verranno cercati i path dalla root a
questi vertici ma non necessariamente i path piu' corti. Comunque il path
del vertice candidato piu' vicino alla root e' garantito essere il piu'
corto. Questo vertice e' aggiunto all' SPT e rimosso dalla lista dei candidati
e i suoi vertici adiacenti sono esaminati per possibili aggiunte o modifiche
alla lista dei candidati. L'algoritmo si reitera e terminera' quando la
lista dei vertici e' vuota.
Il passo successivo sara' quello di aggiungere le stub network all'
SPF. In quesso passo tutti i vertici "router" saranno di nuovo
esaminati. Ogni stub network link che compare negli advertisement verra'
esaminato e verranno eseguiti i seguenti passi :
- Calcolo della distanza dello stub network dalla radice.
- Aggiornamento delle entries nella routing table delle stub network
e calcolo dell'insieme dei next hops per raggiungere quella stub network.
Calcolo delle inter-area routes
Le inter-area routes sono calcolate esaminando i summary link advertisement.
I passi sono i seguenti per ogni summary link advertisement:
- Se il costo specificato dall'advertisement e' LSInfinity o LS Age e'
uguale a MaxAge allora esamina il prossimo advertisement.
- Se l'advertisement e' stato originato da se stesso esamina il prossimo
advertisement
- Se il summary link advertisement e' gia presente come routes intra-area
allora l'advertisemnt verra scartato.
- Altrimenti chiamata N la destinazione descritta dall'advertisement
e BR il router che lo ha generato questo advertisement descrive l'inter-area
path per la destinazione N, dove il costo e' la distanza fino a BR piu'
il costo specificato dall'advertisement.
- La routing table viene aggiornata solo se le vecchie entries erano
di costo maggiore oppure di type 1 external o type 2 external.
Esame dei summary link delle transit area
Questo passo viene fatto solo da gli Area Border Router connessi a una
o piu transit area. Questo passo serve a cercare paths migliori rispetto
a quelli precedenti. I passi sono i seguenti:
- Se il costo specificato dall'advertisement e' LSInfinity o LS Age e'
uguale a MaxAge allora esamina il prossimo advertisement.
- Se l'advertisement e' stato originato da se stesso esamina il prossimo
advertisement
- Esaminiamo la routing table per l'entry N.Se non esiste o non e' di
tipo intra-area o inter-area o l'area associata con l'entry della routing
table non e' di tipo backbone allora esamina il prossimo.
- Esamina le routing table entry per l'advertising router BR associanto
con l'area A. Il costo fino a N sara uguale alla somma del costo che c'e'
nell'entry di BR riferito all'area A piu' il costo dell' advertisement.
- Aggiornare la routing table se il costo e' minore.
Calcolo dell'AS external routes.
Le AS external routes routes sono calcolate esaminando gli
AS external link advertisement. I passi sono i seguenti per ogni summary
AS external link advertisement:
- Se il costo specificato dall'advertisement e' LSInfinity o LS Age e'
uguale a MaxAge allora esamina il prossimo advertisement.
- Se l'advertisement e' stato originato da se stesso esamina il prossimo
advertisement
- Chiamata N la destinazione descritta dall'advertisemnt N. Esaminiamo
le routing table entry per l'AS boundary router. Questo advertisement descrive
l'AS external Path fino alla destinazione N
- Esamina le routing table entry per la destinazione N. Se non esistono
entry per N allora inastalla l'AS external path per N
- Se il path e' presente ma non e' di tipo type 1 o type 2 non fare nulla.
- Altrimenti compara i costi e se conveniente aggiorna la tabella di
routing.
![[prev]](prev.gif)