Protocolli di routing
S.A. Il primo insieme di Protocolli (Interior Gateway Protocol) (es. RIP) sfrutterà algoritmi per eliminare i cicli affinché un certo pacchetto non passi nuovamente su un certo router già toccato, creando congestione. Il secondo (Exterior Gateway Protocol), (es. BGP) per sua natura non sfrutterà algoritmi per eliminare i cicli, perché? Perché lo scambio di informazioni dipende dagli accordi economici fra S.A, la qual cosa è configurata manualmente dall’amministratore del sistema. Va da sé che i cicli vengano evitati a monte.Border Gateway Protocol (BGP)
Il protocollo BGP (Border Gateway Protocol) tratta semplicemente lo scambio di informazione tra i router. L’intero Internet viene quindi rappresentato come un grafo, i cui nodi sono sistemi autonomi, e gli archi sono connessioni tra gateway appartenenti ai sistemi autonomi. I Sistemi Autonomi scambiano tra di loro una immagine coerente della raggiungibilità delle sottoreti.Border Gateway Protocol (BGP): è un protocollo di routing utilizzato per scambiare informazioni di routing tra i sistemi autonomi (AS) all'interno di Internet. Il BGP permette ai sistemi autonomi di gestire il traffico in transito e di stabilire connessioni con altri sistemi autonomi. Un sistema autonomo potrebbe voler comunicare con un altro sistema autonomo (AS) specifico, ma non con un altro AS. Inoltre, un sistema autonomo potrebbe avere accordi di peering con più AS e differenziare la banda disponibile per ognuno di essi. Perché due sistemi autonomi possano comunicare tra loro, devono essere soddisfatte due condizioni: 1) I due border gateway dei sistemi autonomi sono collegati tramite lo stesso link. 2) Ogni BGP speaker interno ai due sistemi autonomi comunica allo stesso modo con il link del proprio border gateway. Quindi, ogni comunicazione tra due sistemi autonomi adiacenti passa prima attraverso il border gateway del mittente per raggiungere il border gateway del destinatario e, a quel punto, viene instradata verso il BGP Speaker. Il protocollo utilizzato per lo scambio di informazioni di routing tra i sistemi autonomi è chiamato Border Gateway Protocol (BGP). Questo protocollo riconosce due dispositivi: 1) Border Gateway: stabilisce la connessione di un sistema autonomo con il sistema autonomo adiacente. 2) BGP Speaker: è il componente del sistema autonomo che comunica con il border gateway e scambia informazioni di routing con altri sistemi autonomi.BGP Speaker: esegue il protocollo BGP e rende pubbliche le route
Ogni BGPSpeaker comunica agli altri AS a cui è collegato (attraverso I Border Gateway) ad intervalli regolari le route raggiungibili da e per lui.
Per fare ciò invia un messaggio di "Open" per rilevare nuovi vicini.
Il messaggio di "Open" viene inviato dai due BGPSpeaker degli A.S che vogliono scambiarsi informazioni, lo scambio è bidirezionale, l'uno e l'altro si scambiano la open. Si sfrutta TCP per uno scambio sicuro e completo sulla porta 179.
Il protocollo BGP svolge tre funzioni fondamentali:
- acquisizione di un nuovo BGP speaker adiacente; per questo vengono utilizzati i messaggi di tipo open.
- mantenimento del collegamento con i BGP speaker adiacenti; per questo vengono utilizzati messaggi di tipo keepalive e notification.
- aggiornamento delle route per le reti che possono essere raggiunte; per questo vengono utilizzati messaggi di tipo update.
I BGP Speaker si
scambiano alcuni messaggi con uno header comune, in assenza di un trailer.
Anatomia del Messaggio BGPHeader:
- Marker: 16 ottetti, si tratta di una sequenza di ottetti che il destinatario è in grado di prevedere. Può essere usato per l'autenticazione.
- Lunghezza: 2 ottetti lunghezza del messaggio+header
- Tipo: Il tipo sui 4 disponibili: Open, KeepAlive, Notification, Update
All'interno del messaggio di Open sono presenti i campi:
- BGPSpeaker Id: id del mittente BGPSpeaker;
- MyAS: Id del Sistema Autonomo del BGPSpeaker;
- HoldTime: tempo scambiato fra i due Speaker per determinare la distanza fra messaggi "KeepAlive" al fine di mantenere la connessione persistente.
Per scambiarsi informazioni di routing, i BGPSpeaker si servono di un database RIBS (Routing Information Base) distinto in 3 gruppi:
- ADJRibsIn -> Quelle route ricevute dall'esterno, tramite messaggi di update
- LocalRibs -> Ottenute dall'esterno e poi applicandoci politiche
localiADJRibsOut -> Route diffuse all'esterno
Per diffondere le route e le sottoreti raggiungibili da e per un certo S.A, si usa il messaggio di "Update".
Il messaggio di Update può contenere l'invalidazione di più route, abilitarne però solo una.
Contiene 3 campi:
- Route che si invalidano in forma (IP, lun prefisso)
- Nuove route da rendere pubbliche a sua volta definite dagli:
- Attributi Route:
- Origine: se la route deriva da un protocollo esterno od interno
- Cammino: come indici di AS che esso attraversa, struttura costruita a partire da ogni BGPSpeaker che aggiunge sé stesso alla route che riceve dagli altri tramite messaggi di Advertisement. A questo punto la route viene calcolata a ritroso e così si evitano cicli.
- Prossimo Border Gateway: prossimo Border Gateway per il cammino, indicato con indirizzo IP
- Destinazione della route: come elenco di prefissi in forma (IP, lun prefisso)
I BGPSpeaker si scambiano poi
messaggi di "KeepAlive", che serve a mantenere viva la connessione, entro un certo HoldTime definito all'apertura nel messaggio di Open. Per segnalare errori si utilizza il messaggio "Notification": Conterrà la descrizione dell'errore e dati di lunghezza variabile. Routing Interno S.A - Interior Gateway Protocol Entro un certo S.A il routing è gestito da algoritmi che aggiornano le tabelle di routing di ogni router. Questi algoritmi sfruttano UDP, IP quindi devono prevedere perdita, duplicazione, inversione. Sono in uso due protocolli: RIP - Algoritmo di Bellman Ford - si basa sui distance vector OSPF - Algoritmo di Djikstra - si basa sui link state RIP Una generica tabella di routing ha forma: Sottorete Next Metric dest Hop ca La metrica è un costo generico associato al traffico da un certo router all'altro, attraverso una sottorete. La metrica per router che hanno accesso diretto a sottoreti è 0.La metrica si conteggia in egress, cioè uscite dalla sottorete, che viene pagata 1. Ingress è 0. Il next hop sta ad indicare il prossimo router utile su cui inoltrare il pacchetto per il proseguimento della route. Un router che riceve un certo pacchetto, controlla la propria tabella di routing e:- Acquisisce l'IP del nodo destinatario del pacchetto
- Controlla nella sua tabella di routing a quale sottorete appartenga il nodo destinatario
- Inoltra il pacchetto al router indicato come "next hop" per quella riga, per quella sottorete
- Il massimo cammino è 15, 16 è infinito.
- Il cambio della topologia è sconsigliato
E’ complicato conoscere il traffico esatto
Le metriche è meglio che siano costanti
Tali messaggi sfruttano la porta UDP 520 e possono essere multicast o broadcast.
Il distance vector ha forma di un vettore Dvx(sottrete, met) che sta ad indicare una tabella di routing priva di next hop:
Un router che invia un advertisement inserisce nel suo Dv per la sottorete per cui ha accesso diretto una metrica di 0.
Che sarà naturalmente incrementata (come ogni metrica) dal ricevente che aggiungerà 1 visto che dovrà uscire dalla propria sottorete pagando un egress in più.
Un router x che riceve un distance vector da un router a con Dva(sottorete, metrica):
- Aggiunge 1 alla metrica
- Controlla nella propria tabella di routing corrispondenze per la sottorete di destinazione
Se non le trova: Aggiunge la riga.
Se le trova:
- Controlla se quella è indicata come next hop:
- Se è indicato: sostituisce semplicemente il nuovo dv di a
- Se non è
RIP ha il problema enorme di gestire e rilevare un guasto con troppo tempo.
Cosa succede se un link si interrompe?
Se un certo router entro 30s non riceve il Distance Vector del vicino, capisce che c'è un problema e non lo considera nei prossimi advertisement.
Dopo un timeout di 180s se nulla è stato ricevuto, I vicini a questo punto eliminano le righe non confermate dalle loro tabelle.
Un router alla volta l'informazione del guasto si propaga.
Per velocizzare un procedimento simile, invece che aspettare I 180s subito il router che rileva un problema, assegna al link 16; 16 equivale ad infinito perciò al prossimo advertisement tutti capiranno che quel link è guastato e non si aspetterà timeout.
Si chiama route poisoning.
Comunque Bellman Ford gestisce troppo lentamente I guasti, perciò è nato OSPF con Djikstra.
OSPF (Open Short Path First), importante la parola
“Open” sta ad indicare che è un algoritmo non privato perchè fu reso per un periodo usabile solo sotto pagamento.
OSPF è un algoritmo di IGP, Interior Gateway Protocol.
Si appogia su IP, sul numero di protocollo IP 89 e su una modularizzazione del routing interno in aree, quindi vincola la topologia della rete (a stella).
Si è deciso a passare da RIP a OSPF per la gestione più veloce del guasto e per il fatto, conseguenziale, che l’algoritmo termina finchè non cambia uno stato di un link.
Ogni area comunica con la backbone e quest’ultima mette in comunicazione ogni area.
Ogni area contiene certi router interni che tramite dei messaggi, detti LSA (Link state advertisement) ai vicini, comunicano: i link state a loro adiacenti, cioè la metrica dei link uscenti ai loro adiacenti.
Ogni area contiene anche più router di confine che si occupa di creare comunicazione da un’area verso un’altra area (passando per la backbone).
Algoritmo di flooding
Un certo LSA viene propagato di vicino in vicino secondo flooding, di modo che ogni router interno ha poi la conoscenza sulla sua area. Solo della sua area, il flooding è contenuto e confinato.
Un router di confine spedisce invece un tipo di LSA che indica le metriche della raggiungibilità dalla sua area ad un'altra.
Quindi i router interni mantengono una tabella che descrive lo stato dei propri link all'interno dell'area.
I router di confine mantengono anche i costi dalla propria area ad un'altra (attraverso il backbone) come se fossero link.
Il LSA è un messaggio che notifica il cambiamento dello stato di un link, ed è inviato solo in tale occasione.
L'algoritmo di routing
Il LSA si propaga tramite flooding di vicino in vicino di modo che tutti i router poi abbiano la conoscenza dei link state nella propria area. I router in
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Appunti Sicurezza protocolli di rete
-
Reti di calcolatori - Appunti completi
-
Appunti Reti di calcolatori
-
Appunti di Reti