Lezione 6: Routing Gerarchico. Il routing in Internet: com’era.
-
Upload
angelo-ferretti -
Category
Documents
-
view
223 -
download
2
Transcript of Lezione 6: Routing Gerarchico. Il routing in Internet: com’era.
Lezione 6: Routing Gerarchico
Il routing in Internet: com’era
Il routing in Internet: com’è
Il routing in Internet: com’è
Docente: Marco Sechi
Modulo 1
Un protocollo di routing è un processo di comunicazione tra i router per scambiarsi informazioni utilizzate per formare la tabella di routing (routing table).
Docente: Marco Sechi
Modulo 1INTERNETWORK
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 1AUTONOMOUS 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.
Exterior Router (Router esterno) appartengono a questa classe tutti i router che sono esterni rispetto all’AS che stiamo considerando.
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.
Docente: Marco Sechi
Modulo 1Le 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 1Protocolli 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).
PRINCIPALI PROTOCOLLI DI ROUTING
Docente: Marco Sechi
Modulo 1Protocolli 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 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 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)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
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 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, 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
(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
Esempio di LSP database
Ogni router calcola inizialmente 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 (Hello)
– 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
28
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.
OSPF e i domini di instradamento 1/4OSPF e i domini di instradamento 1/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 2/4OSPF e i domini di instradamento 2/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 3/4OSPF e i domini di instradamento 3/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.
OSPF e i domini di instradamento 4/4OSPF e i domini di instradamento 4/4
Il protocollo OSPF è composto da tre sotto-protocolli:
• Hello
• Exchange
• Flooding
tutti i pacchetti condividono un unico header comune.
I sotto-protocolli di OSPFI sotto-protocolli di OSPF
L’header comuneL’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 authenticationo 1: Simple authenticationo 2: Cryptographic authentication
I sotto-protocolli di OSPF: l’headerI sotto-protocolli di OSPF: l’header
Il sotto-protocollo HELLOIl 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 OSPFI sotto-protocolli di OSPF
Il sotto-protocollo HELLOIl 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 areao 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 OSPFI sotto-protocolli di OSPF
Il sotto-protocollo EXCHANGEIl 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 OSPFI sotto-protocolli di OSPF
Il sotto-protocollo EXCHANGEIl sotto-protocollo EXCHANGE
• Options: e' equivalente al pacchetto Helloo E: se il router è in grado di inviare e ricevere route esterne; è pari a 0 se l’interfaccia appartiene ad una stub areao 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'autonomoussystem, ma riceve i percorsi dall’AS
I sotto-protocolli di OSPFI sotto-protocolli di OSPF
Il sotto-protocollo EXCHANGE: La proceduraIl 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 OSPFI sotto-protocolli di OSPF
Il sotto-protocollo FLOODINGIl 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 OSPFI sotto-protocolli di OSPF
Il pacchetto LSA (Link State Advertisement)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.
I sotto-protocolli di OSPFI sotto-protocolli di OSPF
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 (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)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
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 delle Tabelle di RoutingOSPF: 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 Database TopologicoTopologico)
• A partire dal database topologico ogni router costruisce la propria tabella di routing
OSPF: Costruzione delle Tabelle di RoutingOSPF: Costruzione delle Tabelle 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
Exterior Gateway Protocol (EGP)
Gli EGP sono i protocolli che vengono utilizzati nella comunicazione tra irouter 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• AS diversi possono utilizzare metriche diverse;• la modalità a “inondazione” è inapplicabile tra AS diversi.
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 contiene l’intero cammino che il pacchetto deve seguire– Ogni nodo applica le proprie regole
Ogni entry nella routing table contiene: la rete di destinazione, ilprossimo router e il percorso per arrivare a destinazione
• 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 (2/3)
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 CIDR.• Lo scambio di messaggi BGP è supportato da connessioni
TCP.• La versione più recente è BGP-4.
Esempio di applicazione BGP (1/3)
BGPrelationship
R6
R8
R7
SubNet 2.1
SubNet 2.3
SubNet 2.4
AS 2
SubNet 2.2R5
R3
SubNet 1.2
SubNet 1.3
SubNet 1.4
R2
R4 R1
AS 1
SubNet 3.3
AS 3R10
R11SubNet 3.2
R9
SubNet 1.1
SubNet 3.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.
• R5 memorizza che le reti di AS1 sono raggiungibili tramite R1.
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;– la lista delle sottoreti di AS1.
• In questo modo le informazioni di raggiungibilità si propagheranno di router in router attraverso tutta la rete.