U2_L6_RoutGerar_RIP_OSPF_BGP

Download Report

Transcript U2_L6_RoutGerar_RIP_OSPF_BGP

Lezione 6: Routing Gerarchico
Il routing in Internet: com’era
Il routing in Internet: com’è
Il routing in Internet: com’è
Docente: Marco Sechi
Un protocollo di routing è un processo di comunicazione tra i router per scambiarsi
informazioni utilizzate per formare la tabella di routing (routing table).
Modulo 1
Docente: Marco Sechi
Modulo 1
INTERNETWORK
Per realizzare una internetwork, dobbiamo unire più reti insieme, ciascuna delle quali può
essere gestita in modo indipendente rispetto alle altre.
Questo ha portato alla suddivisione dell’internetwork in aree diverse. Ogni zona che
appartiene allo stesso dominio amministrativo prende il nome di Autonomous System (AS).
L'instradamento attraverso le reti avviene sulla base di particolari tabelle dette tabelle di
routing (caricate sul router). All'aumentare del numero dei Router, cresce la complessità
di tali tabelle e delle procedure per la determinazione dei percorsi migliori.
La scelta di suddividere l'insieme delle reti in AS, ha permesso di semplificare le
procedure abbinate al processo di routing.
Tutti i router del medesimo AS condividono lo stesso protocollo di routing. Ricordiamo
che lo scopo di un protocollo di routing (Routing Protocol), è quello di mantenere
dinamicamente le routing table.
Docente: Marco Sechi
Modulo 1
AUTONOMOUS SYSTEM
Si rende a questo punto importante collegare i vari Autonomous System fra loro mediante
l'uso di router in grado di instradare pacchetti fra aree diverse. Possiamo suddividere i
router nelle 3 seguenti categorie:
Interior Router: responsabili della trasmissione informazioni all'interno di un AS, per cui
non hanno una diretta connessione con una qualsiasi rete esterna.
Border Router: (Router di confine)
realizza la connessione fra AS diversi. Può
essere considerato quindi come il punto
di ingresso e di uscita verso altri AS.
Exterior Router (Router esterno)
appartengono a questa classe tutti i
router che sono esterni rispetto all’AS
che stiamo considerando.
Docente: Marco Sechi
Modulo 1
Le reti sono quindi raggruppate in Autonomous System (gruppi di reti controllati e gestiti
da un'unica entità amministrativa). Gli Autonomous System sono identificati tramite un
numero intero, univoco a livello mondiale, assegnato dalla stessa autorità che rilascia gli
indirizzi Internet (IANA  http://www.iana.org/).
Gli interior router scambiano le informazioni di instradamento tramite l’ Interior
Gateway Protocol (IGP) mentre i border router utilizzano un Exterior Gateway Protocol
(EGP).
Nel caso di routing interno all’AS (intradomain routing) i router interni devono conoscere
solo i segmenti di rete appartenenti allo stesso AS. Non è quindi necessario che mantengano
informazioni su reti esterne. Qualora servisse comunicare con altri AS si limitano a mandare i
pacchetti relativi ai router di confine.
Questa organizzazione ha dei notevoli vantaggi, poiché riduce le dimensioni della routing
table in quanto le network esterne non sono presenti direttamente in tale tabella se non
attraverso i border router.
Docente: Marco Sechi
Modulo 1
PRINCIPALI PROTOCOLLI DI ROUTING
Protocolli IGP:
• RIP: E’ un protocollo utilizzato all’interno di un AS per l’ instradamento dinamico. RIP e'
l'acronimo di Routing Information Protocol ed e' un protocollo relativamente semplice
appartenente alla famiglia di protocolli di tipo "distance vector".
• OSPF: è l'acronimo di Open Shortest Path First. OSPF appartiene alla classe IGP e
pertanto opera internamente a ciascun Autonomous System (AS). Il protocollo, essendo
di tipo “link state”, utilizza l'algoritmo SPF per calcolare il percorso più breve verso la
destinazione. L’algoritmo SPF si basa principalmente sulla larghezza di banda; il percorso
a costo più basso viene inserito nella routing table (o forwarding database). OSPF è
protocollo pubblico (quindi non proprietario).
L’OSPF raccoglie le informazioni dai router vicini circa lo stato dei link ed invia i suoi dati
agli altri. Questo scambio di informazioni permette ai router di creare la topology table o
link state database.
L’OSPF è un protocollo da utilizzare in reti estese e scalabili (ampliabili). Vengono usati in
alternativa ai protocolli “distance vector” quando i limiti di questi ultimi li rendono
inapplicabili. Ad esempio se voglio utilizzare metriche basate sulla larghezza di banda o
quando voglio, in reti estese, avere una maggior convergenza del protocollo (con reti
ampie il RIP può avere una convergenza di alcuni minuti).
Docente: Marco Sechi
Modulo 1
Protocolli EGP:
• BGP: Il Border Gateway Protocol è un protocollo di instradamento che agisce nel
'cuore' della rete Internet. Il BGP usa tabelle di reti IP, o prefissi, che forniscono
informazioni sulla raggiungibilità dei diversi AS. Si tratta di un protocollo di routing a
indicazione di percorso (“path vector”), che non usa metriche di carattere tecnico ma
prende le decisioni di instradamento basandosi su regole definite in ciascun rete. La
versione corrente, BGP-4, è definita nella specifica RFC 4271.
Tutti i provider Internet (ISP) sono obbligati a usarlo. BGP è quindi il protocollo di
routing usato nell'internet pubblica ed è l'unico (visto che si è costretti ad usarlo!) di
tipo exterior.
I protocolli EGP, a differenza degli IGP, non hanno metodi per scoprire l’esistenza di
router “vicini” ma devono essere definiti manualmente.
Il BGP è un protocollo d’instradamento decentralizzato (comunica solo con i router a cui è
direttamente collegato). Essendo un algoritmo di tipo “path vector” non viene fornito il
numero di hop ma l’intero percorso da attraversare per giungere ad una determinata
destinazione.
Gli “Autonomous Systems” o
“Sistemi Autonomi”
AS 2
RIP
RIP
AS 1
AS 4
BGP-4
OSPF
BGP-4
IGRP
AS 3
BGP-4
BGP-4
IGP: RIP o OSPF?
•
•
•
•
•
•
Rip è un protocollo di tipo Distance
Vector
Utilizza l’algoritmo di BellmannFord
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
•
•
•
•
•
•
•
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
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 OSPF (è 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)
Routing Information Protocol (RIP)
• RIP appartiene alla categoria dei Distance Vector
Routing Protocols
• 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
Esempio RIP : Conteggio all’infinito
RIP (Versione 1)
• Un messaggio RIP, come vedremo in seguito, viene incapsulato nel
protocollo UDP
• Il pacchetto RIP può essere di due tipi:
 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 (è classfull)
– 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 un router non riceve notizie da uno dei suoi vicini per più di 180
secondi la metrica del vicino nella propria tabella viene posta a ∞ (16)
e l’informazione viene propagata ai router vicini che la diffonderanno
su tutta la rete
• In caso di variazioni consecutive dello stato dei link i messaggi RIP
sono emessi con intervallo da 1 a 5 secondi
RIP (Versione 1)
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
RIP (Versione 2)
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 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, età e 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
Esempio di LSP database
a
Costo
1
b
2
A
1
5
4
6
c
2
D
1
C
7
3
F
d
2
1
G
1
e
E
B
A
B
C
D
E
F
G
LSP Database
B/2 D/5 a/1
A/2 C/2 b/1
B/2 D/4 E/3
A/5 F/6 G/7 C/4
C/3 G/2
D/6 c/1
D/7 E/2 d/1 e/1
(replicato su ogni router)
Tabella di routing
Ogni router calcola inizialmente le sue tabelle di routing applicando
alla mappa della rete l'algoritmo di Dijkstra o SPF (Shortest Path
First)
a
1
b
2
A
1
5
2
6
c
Tabella di routing di A
D
1
C
3
F
d
2 E
1
G
1
e
B
Dest
a
b
c
d
e
B
C
D
E
F
G
via
diretto
B
D
B
B
diretto
B
diretto
B
D
B
costo
1
3
12
10
10
2
4
5
7
11
9
Link State: caratteristiche
Vantaggi:
Può gestire reti di grandi dimensioni
Ha una convergenza rapida
Difficilmente genera loop, e comunque è in grado di
identificarli e interromperli facilmente
Facile da capire: ogni nodo ha la mappa della rete
Svantaggi:
Molto complesso da realizzare (la prima implementazione
ha richiesto a Digital 5 anni)
Open Shorthest Path First (OSPF)
•
E’ un protocollo di tipo link-state che supera le limitazioni del
protocollo RIP
•
Consente una maggiore velocità di convergenza
•
Algoritmo:
– inizialmente ogni router determina il costo dei rami uscenti (Hello)
– invia questi dati a tutti i router della rete (tecnica flooding)
– continua a monitorare il costo dei propri rami
– in 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 e i domini di instradamento 1/4
Abbiamo detto che il "routing gerarchico" è la suddivisione della
rete in un set di parti indipendenti connesse attraverso un
"backbone".
In OSPF le parti indipendenti sono chiamate aree e la
parte superiore e' chiamata "Backbone area".
I router sono classificati in base alla loro posizione nella rete.
Allo scopo di connettere l'intera rete, alcuni routers
appartengono a piu' aree, tipicamente a un'area a basso livello, e
all'area di backbone. Questi routers sono chiamati "area-border
routers" (ABR): ci deve essere perlomeno un ABR in ciascun area,
per connetterla al backbone. Gli ABR mantengono numerosi
database, uno per ciascuna area alla quale appartengono ed ogni
area include un set di sottoreti IP.
28
OSPF e i domini di instradamento 2/4
Oltre agli ABR (router di bordo area), possiamo distinguere
ancora 3 tipologie di router:
• Internal router (router interni all’area): sono i router che
gestiscono il traffico all'interno della stessa area
• Backbone Router : sono i router della backbone area
• Autonomous System Boundary Router (ASBR – router di
confine) : sono gateway per il traffico esterno e convertono i
percorsi nel dominio OSPF appresi da altri protocolli come BGP e
EIGRP.
OSPF e i domini di instradamento 3/4
Nella seguente figura, viene illustrato un esempio di rete composta da 4
aree (delle quali una e' l'area di backbone) e da una serie di router interni,
ABR e ASBR:
OSPF e i domini di instradamento 4/4
Vengono inoltre definiti due router con incarichi particolari:
• il Designated Router (DR)
• il Backup Designated Router (DR)
Il DR è un router eletto dagli altri router appartenenti alla sua area per
ridurre il traffico di rete. Il DR memorizza una tabella completa sulla
topologia della rete e manda gli aggiornamenti agli altri router.
In questo modo tutti i router non devono costantemente aggiornarsi l'un
l'altro ma ricevono tutti gli aggiornamenti da una singola sorgente.
Un backup designated router (BDR, router di backup predefinito) è un router
che diventa il principale se il router principale in uso ha un problema o si
guasta.
Un router potrebbe essere un DR su un’interfaccia ma non su un’altra.
I sotto-protocolli di OSPF
Il protocollo OSPF è composto da tre sotto-protocolli:
• Hello
• Exchange
• Flooding
tutti i pacchetti condividono un unico header comune.
I sotto-protocolli di OSPF: l’header
L’header comune
• Version: Indica la corrente versione di
OSPF, attualmente 2
• Type: il tipo di pacchetto OSPF
trasportato
• Packet Lenght : numero di bytes del
pacchetto
• Router_ID: indirizzo IP scelto per
identificare il router
• Area_ID: numero che identifica
univocamente l’area
all’interno del dominio OSPF; spesso viene scelto un indirizzo IP. Un valore 0
identifica il backbone.
• Checksum: Viene calcolato sull'intero pacchetto OSPF, con l'esclusione degli 8 bytes del
campo Authentication.
• Authentication Type: Identifica l'algoritmo di identificazione; ne sono definiti tre tipi:
o 0: No authentication
o 1: Simple authentication
o 2: Cryptographic authentication
I sotto-protocolli di OSPF
Il sotto-protocollo HELLO
Il sotto-protocollo "Hello" viene utilizzato per due scopi ben
precisi:
• Verifica dell'operativita' dei link
• Elezione del "Designed Router" e del "Backup Designed
Router“.
I pacchetti "Hello" vengono trasmessi solo tra nodi vicini e mai
propagati.
Il campo "Type" dell‘header comune vale 1 per questo
protocollo.
I sotto-protocolli di OSPF
Il sotto-protocollo HELLO
• Network Mask: netmask associata all’interfaccia
da cui viene emesso il pacchetto
• Hello Interval: comunica ogni quanti secondi
viene emesso un pacchetto di
Hello
• Options: vengono definiti solo gli ultimi 2 bit
o E: se il router è in grado di inviare e
ricevere route esterne; è pari a 0 se
l’interfaccia appartiene ad una stub area
o T: se il router è in grado di gestire il
routing TOS (Type of Service)
• Priority: serve per l’elezione del Designed Router e viene settato da management. Ciascun
router e' configurato con una priorita', che puo' variare tra 0 e 255. Viene eletto DR
il router che ha la priorità più alta.
• Dead_Interval: intervallo di tempo di validità dei pacchetti di Hello ricevuti.
• DR, BDR: indirizzo del Designated Router - BDR (0 se non sono ancora stati definiti)
• Neighbor: lista di router_ID da cui è stato ricevuto il pacchetto di Hello negli ultimi
Dead_Interval secondi
I sotto-protocolli di OSPF
Il sotto-protocollo EXCHANGE
Quando due routers OSPF stabiliscono la connessione su di
un link punto a punto, devono sincronizzare i propri
database; sui link di una rete questo accade tra i routers ed il
DR o il BDR.
La sincronizzazione iniziale avviene tramite il protocollo
"exchange"; di seguito sara' il protocollo flooding ad
occuparsi di mantenere sincronizzati i database.
Il protocollo utilizza un record, il "Database Description
Packet", riconosciuto dal valore 2 presente nel campo "Type"
dell'header.
I sotto-protocolli di OSPF
Il sotto-protocollo EXCHANGE
• Options: e' equivalente al pacchetto Hello
o E: se il router è in grado di inviare
e ricevere route esterne; è pari
a 0 se l’interfaccia appartiene
ad una stub area
o T: se il router è in grado di gestire
il routing TOS
• I: Initialize
• M: More
• MS: Master - Slave (1= Master)
• DD SN: numero di sequenza del
pacchetto DD
Una stub area è un'area che non riceve percorsi esterni, fuori dai limiti dell'autonomous
system, ma riceve i percorsi dall’AS
I sotto-protocolli di OSPF
Il sotto-protocollo EXCHANGE: La procedura
A. Il router che vuole iniziare la procedura emette un pacchetto vuoto "Database
Description" con I, M e MS settati ed il numero di sequenza settato ad un valore
arbitrario.
B. L’altro router risponde emettendo un pacchetto DD di "Acknowledgment", con lo stesso
numero di sequenza ed i bit I ed M settati a 1 e MS a 0 (slave).
C. Il primo router può quindi iniziare ad inviare le descrizioni da lui possedute ed emette
pacchetti DD con I settato a 0, M ed MS settati ad 1 (eccetto M per l’ultimo pacchetto). I
pacchetti saranno numerati in sequenza ed inviati uno alla volta.
D. Lo slave risponde ad ogni pacchetto con un DD Acknowledgment che riporta la sua
descrizione del database, caratterizzato dallo stesso numero di sequenza ma con il bit
MS settato a 0.
E. Se il master non riceve l’Ack entro un certo intervallo ri-invia il pacchetto originale DD.
F. Se viceversa e' lo slave che non ha finito di trasmettere le sue descrizioni:
•
In corrispondenza del pacchetto del Sender con M=0 emette un pacchetto DD con
M=1
•
Il master continua ad inviare pacchetti vuoti con M = 0, ed accettare gli Ack
(pieni) che gli arrivano dallo slave
• La procedura di sincronizzazione termina quando anche lo Slave invia un
pacchetto con M = 0
I sotto-protocolli di OSPF
Il sotto-protocollo FLOODING
Il protocollo flooding viene utilizzato per diffondere (processo di forwarding) a tutta la rete
il nuovo stato di un link.
Questi aggiornamenti vengono inviati, attraverso il pacchetto di "Link State Update", nel
caso di:
• un cambiamento di stato del link
• allo scadere di un timer (normalmente 60 min)
Il pacchetto "Link State Update", che caratterizza il campo "Type" dell‘header comune con il
valore 4, e' di seguito riportato:
• Number of Advertisement: è il numero di LSA che vengono trasportati dal pacchetto in
esame in quanto e' possibile trasportare più LSA
• LSA: è il Link State vero e proprio
I sotto-protocolli di OSPF
Il pacchetto LSA (Link State Advertisement)
Gli LSA del pacchetto Link State Update vengono normalmente riconosciuti, attraverso una
conferma dell'avvenuta ricezione, con il pacchetto di Link State Acknowledgment, che
caratterizza il campo "Type" dell‘ header comune con il valore 5, e che e' di seguito riportato:
Ciascun pacchetto di acknowledgment contiene una serie di campi con lo stesso formato del
pacchetto di "database description" del protocollo di exchange.
A tutti gli effetti, il Link State Advertisment (LSA) e' l'effettiva struttura dati che trasporta le
informazioni ed e' la corrispondente del LSP visto per l'algoritmo teorico Link State.
Gli LSA vengono propagati in tutta la rete tramite la tecnica del flooding: ogni router che
riceve un LSA lo invia su tutte le interfacce tranne quella da cui lo ha ricevuto.
OSPF : Topologia della Rete (1/2)
• Ogni router mantiene un database che riflette i dati
aggiornati sulla topologia della rete (Link State
Database 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 (contengono host)
– 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)
Rete
3
R1
8
1
1
N3
1
N2
3
R2
R4
6
R6
7
N4
N11
5
R9
1 R11
N9
N8
2
R5
N2
R12
2
1
N3
3
6
N10
R4
1
8
1
1
R2
N12
6
6
8
R7
6
6
5
R7
N11
9
1
N4
N15
7
3
N6
N6
R10
1
2
3
N9
4
H1
1
1
1
R9
R8
6
7
R6
2
2
R5
8
R3
N7
1
10
3 R1
1
1
H1
8
R10
3
N1
6
8
2
N14
8
7
1
R3
8
N1
N13
8
N12
1
R8
1
R11
N8
N10
10 R12 2
Grafo
4
N7
Spanning Tree e Tabelle di Routing
•
Ogni router calcola lo spanning
tree a partire dal grafo
rappresentativo della rete
mediante l’algoritmo di Dijkstra
N1
N2
N3
Dist.
10
10
7
8
7
8
12
10
11
Destin.
N10
N11
H1
R5
R7
N12
N13
N14
N15
N.H.
R10
R10
R10
R5
R10
R10
R5
R5
R10
Dist.
13
14
21
6
8
10
14
14
17
N13
R5
8
8
6
1
N14
6
R3
Spanning Tree e Routing Table in R6
N. H.
R3
R3
R3
R3
R3
R10
R10
R10
R10
R4
3
R2
Destin.
N1
N2
N3
N4
R1
N6
N7
N8
N9
N12
8
3 R1
N12
N15
2
R6
2
N11
N4
R7
7
9
3
1
R10
R9
N6
3
N9
1
R8
R11
H1
N10
10 R12 2
N8
4
N7
OSPF: Costruzione delle Tabelle 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 (flooding)
•
A regime tutti i nodi hanno una visione completa (ed
uguale) della topologia di tutta la rete (Database
Topologico)
•
A partire dal database topologico ogni router
costruisce la propria tabella di routing
OSPF: Costruzione delle Tabelle di Routing
Link ID (Metrica)
B
4(5)
1(15)
3(15)
Database Topologico
From
A
A
B
B
B
C
C
C
D
D
To
B
C
A
C
D
A
B
D
B
C
Link
1
2
1
3
4
2
3
5
4
5
Costo
15
25
15
10
5
25
10
10
5
10
D
A
2(25)
Ogni router
calcola i percorsi a
costo più basso
Algoritmo SPF
(Dijkstra)
5(10)
C
Routing Table for A
Dest
B
C
D
Cost
15
25
20
Next Hop
B
C
B
Esempio OSPF (1/3)
Routing Table
1
A
3
B
2
4
D
6
A
Destinazione
Distanza
Link
A
0
local
B
1
1
C
2
1
D
1
3
E
2
1
B
Destinazione
Distanza
Link
A
1
1
B
0
local
C
1
2
D
2
1
E
1
4
C
Destinazione
Distanza
Link
A
2
2
B
1
2
C
0
local
D
2
5
E
1
5
D
Destinazione
Distanza
Link
A
1
3
B
2
3
C
2
6
D
0
local
E
1
6
E
Destinazione
Distanza
Link
A
2
4
B
1
4
C
1
5
D
1
6
E
0
local
C
5
E
Database Topologico (link bidirezionali)
Da
A
link
Dist
A
B
1
1
A
D
3
1
B
C
2
1
B
E
4
1
D
E
6
1
E
C
5
1
Esempio OSPF (2/3)
Routing Table
• Guasto del
ramo AB
A
xxxx
3
D
B
4
6
E
2
C
A
Destinazione
Distanza
Link
A
0
local
B
inf
1
C
inf
1
D
1
3
E
inf
1
B
Destinazione
Distanza
Link
A
inf
1
B
0
local
C
1
2
D
inf
1
E
1
4
C
Destinazione
Distanza
Link
A
2
2
B
1
2
C
0
local
D
2
5
E
1
5
D
Destinazione
Distanza
Link
A
1
3
B
2
3
C
2
6
D
0
local
E
1
6
E
Destinazione
Distanza
Link
A
2
4
B
1
4
C
1
5
D
1
6
E
0
local
5
Esempio OSPF (3/3)
A
xxxx
B
3
D
A
2
4
Database
Topologico
C
5
A
Destinazione
Distanza
Link
A
0
local
B
3
3
C
3
3
D
1
3
E
2
3
B
Destinazione
Distanza
Link
A
3
4
B
0
local
C
1
2
D
2
4
E
1
4
C
Destinazione
Distanza
Link
A
3
5
B
1
2
C
0
local
D
2
5
E
1
5
D
Destinazione
Distanza
Link
A
1
3
B
2
6
C
2
6
D
0
local
E
1
6
E
Destinazione
Distanza
Link
A
2
6
B
1
4
C
1
5
D
1
6
E
0
local
E
6
Link
Metric
Routing Table
1
Inf
B
Link
Metric
1
Inf
Da
A
link
Dist
A
B
1
Inf
A
D
3
1
B
C
2
1
B
E
4
1
D
E
6
1
E
C
5
1
Exterior Gateway Protocol
(EGP)
Gli EGP sono i protocolli che vengono utilizzati
nella comunicazione tra i
router di confine tra AS.
Devono eseguire quindi sia protocolli di routing
intra-AS che inter-AS
Exterior Gateway Protocol
(EGP)
Exterior Gateway Protocol
(EGP)
Limiti degli IGP come EGP
• Come già detto, gli algoritmi d’instradamento e i
relativi IGP non sono adatti per essere applicati
come EGP, in quanto:
– i protocolli del tipo RIP
• Si assume che tutti i router utilizzino la stessa
metrica; questa condizione non è garantita tra AS
diversi;
• non ci sono indicazioni dei router intermedi lungo
il cammino; in un ambiente inter-AS ci possono
essere dei transiti privilegiati e dei transiti proibiti;
– nei protocolli del tipo OSPF
protocollo EGP
• EGP è stato il primo protocollo di tipo EGP
(da cui prende il nome) nato negli anni 80.
Oggi non è più utilizzato per la sua lentezza
e perché non supporta cammini alternativi.
• È stato completamente sostituito da BGP,
nel 1989, che è diventato lo standard degli
EGP
BGP (1/3)
• Nei protocolli EGP, come è BGP (Border Gateway
Protocol), si usa l’instradamento a “Vettore di percorso”
(path-vector routing).
• La tecnica PATH VECTOR è una variante del
Distance Vector che permette la
memorizzazione dell'intero percorso tra gli AS e
non obbliga tutti gli AS ad usare la stessa
metrica.
Nel path vector i nodi si scambiano
informazioni sui percorsi anziché sui costi:
– il vettore che ogni router manda ai vicini
BGP (2/3)
• Esempio: Vediamo un esempio di applicazione
dell’algoritmo “Path vector”.
Obiettivo è trovare il percorso migliore per raggiungere
l’AS D. Ogni AS segnala il suo percorso preferenziale
per raggiungere D (le freccie indicano il percorso della
segnalazione). Ad esempio quando il nodo B riceve le
due segnalazioni CD ed ED seleziona tra queste quella
che reputa migliore (ad esempio CD) e informa i ruoter
successivi sul suo percorso preferenziale verso D
(ovvero BCD). La selezione del percorso avviene sulla
base di regole locali definite su ogni AS (esempio evitare
il nodo E perchè lento ed inaffidabile, dare percedenza ai
percorsi più brevi, etc.).
BGP (3/3)
• Si utilizzano quindi solo informazioni di
raggiungibilità: si determina la lista degli AS
che devono essere attraversati per
raggiungere una particolare rete lungo un
particolare cammino;
– l’instradamento terrà conto di eventuali preferenze
per alcuni AS rispetto ad altri (accordi commerciali,
prestazioni, ecc.).
• Permette ai router di bordo di un AS (BGP
Speaker) di scambiarsi informazioni di
raggiungibilità tra AS diversi.
• Supporta il meccanismo di indirizzamento
Esempio di applicazione BGP
(1/3)
SubNet 3.3
SubNet 3.2
R11
AS 3
R10
SubNet 1.2
R3
R2
SubNet 1.3
SubNet 3.1
SubNet 2.1
R9
R6
SubNet 2.4
R7
SubNet 1.1
R5
R4
R1
SubNet 1.4
BGP
relationship
SubNet 2.2
R8
AS 2
SubNet 2.3
AS 1
Esempio di applicazione BGP
(2/3)
• I router R1, R5 e R9 sono rispettivamente i BGP
speaker degli AS1, AS2 e AS3.
• I router R1, R5 e R9 implementano anche un
protocollo IGP (es. OSPF) e quindi conoscono la
struttura interna dei propri AS.
• Il router R1 emette un messaggio BGP verso R5
con:
– l’identità di AS1;
– l’indirizzo IP di R1;
– la lista delle sottoreti di AS1.
Esempio di applicazione BGP
(3/3)
• R5 emette un messaggio BGP verso R9 contenente:
– le identità di AS1 e AS2;
– l’indirizzo IP di R5;
– la lista delle sottoreti di AS1.
• Il messaggio avverte R9 che le reti di AS1 sono raggiungibili
tramite il router R5 e che nel cammino sono attraversati sia
AS2 che AS1.
• A sua volta R9 invia, verso i router appartenenti a AS
adiacenti, un messaggio BGP contenente:
– le identità di AS1, AS2 e AS3;
– l’indirizzo IP di R9;