TOPOLOGIA DI UN AS

Introduzione

Il protocollo OSPF si fonda sul concetto di area : un'area e' definita come un insieme di reti, host e router aventi le interfacce sulle quelle reti. Ogni area ha il proprio database topologico o grafo ed esegue la propria copia dell'algoritmo di routing. La caratteristica di ogni area e' che la propria organizzazione interna (struttura topologica) e' nascosta alle altre aree, cosi' come i router interni all'area non conoscono in dettaglio la topologia delle aree esterne. La conseguenza immediata, che e' anche il vantaggio di tale organizzazione, e' la sensibile riduzione del traffico di routing, rispetto ad un'organizzazione centralizzata. Altra conseguenza immediata e' che i router non hanno tutti lo stesso database topologico, ma ognuno possiede quello relativo alla propria area; e' ovvio pero' che i router di una stessa area avranno lo stesso database topologico e che i router collegati a piu' aree avranno un database per ogni area. Con questo tipo di organizzazione si hanno due tipi di routing, anzi due livelli : routing intra-area, quando la sorgente e il destinatario dei pacchetti si trovano nella stessa area ; routing inter-area quando la destinazione si trova in un'area differente da quella della sorgente. Nel primo livello di routing, intra-area, non si utilizzano informazioni di routing provenienti dall'esterno.

Backbone

La backbone consiste di tutte quelle reti che non appartengono a nessuna area, dei router collegati ad esse e di tutti quei router che appartengono a piu' aree. Non e' necessario che la backbone sia contigua, infatti si possono utilizzare i link virtuali per ripristinare la connettivita'. Questi link virtuali sono configurati tra coppie di router backbone con l'interfaccia su aree non-backbone, e sono parte integrante della backbone. Grazie a questi link virtuali, i router collegati sono connessi come reti point-to-point non numerate. Dal punto di vista del grafo, si ha che il costo del link si ottiene come somma delle distanze intra-area tra i due router; si parla di distanza intra-area perche' si utilizza solo il routing intra-area per i link virtuali. Dal punto di vista topologico la backbone e' un'area, con le stesse caratteristiche e proprieta' di tutte le altre.

Routing inter-area

Per mandare un pacchetto ad un'area esterna occorre utilizzare la backbone; si puo' dividere il cammino che effettua il pacchetto in tre parti:


Questi cammini devono essere, ovviamente, quelli con costo minimo. E' dunque la topologia backbone a stabilire i cammini fra le aree, cammini che possono essere creati anche con link virtuali. Come ben si puo' notare, il router di confine dell'area ha il compito fondamentale di fornire i costi per il collegamento a tutte le reti esterne all'area, costi che si sommano a quelli interni all'area e che si ottengono dalle informazioni risiedenti nel database topologico del router di frontiera dell'area.

Classificazione dei router

Router interni: router che sono connessi direttamente alle reti appartenenti alla stessa area; fanno parte di questa categoria anche quei router che interfacce sono sulla backbone.
Router di confine dell'area: router collegati a piu' aree. Essi eseguono una copia dell'algoritmo per ogni area collegata, piu' una copia per la backbone.
Router backbone: router che hanno un'interfaccia sulla backbone. Da sottolineare che i router che hanno solo interfacce sulla backbone sono da considerare router interni.
Router di confine dell'AS: router che scambiano informazioni con altri AS. Tutti i router dell'AS conoscono i cammini che portano a questi router, che sono gli unici a poter instradare l'informazione verso l'esterno.

Esempio di configurazione di AS

Per un esempio di configurazione di un AS vedere RFC 1583 pagg. 24-30.

Supporto del subnetting IP

Il protocollo OSPF associa, ad ogni strada che viene resa nota, una maschera di indirizzo IP, che ha il compito di stabilire quale range di indirizzi si puo' descrivere con quella strada. Come esempio, supponiamo che un summary advertisement per la destinazione 128.185.0.0 abbia maschera 0xffff0000; esso coprira' il range di indirizzi 128.185.0.0 - 128.185.255.255.
L'introduzione della maschera all'interno di ogni avviso per le destinazioni consente l'implementazione del subnetting a lunghezza variabile, cioe' le reti IP di classe A, B o C possono essere divise in sottoreti di lunghezza variabile. La modalita' per dividere una rete in piu' sottoreti di lunghezza variabile sono diverse, l'unica cosa che si puo' dire e' che nel protocollo si hanno queste linee guida: i pacchetti inoltrati, sono inoltrati sempre verso quelle destinazioni i cui indirizzi matchano meglio, cioe' sono quelli piu' vicini o piu' specifici. Occorre, a questo punto, specificare meglio il concetto di area, che cronologicamente e' stato introdotto dopo il concetto di subnet; l'area e'definita come lista di range di indirizzi, dove il range di indirizzi e' definito come coppia [indirizzo, maschera]. Quindi come una rete di sottoreti e' costituita da piu' sottoreti separate, cosi' piu' reti separate possono essere contenute nello stesso range di indirizzi.

Supporto delle aree stub.

Il protocollo OSPF permette di poter definire le aree stub la cui caratteristica principale e' quella di non far fluire gli annunci esterni all'AS, cioe' l'operazione di routing e' basata essenzialmente su scambi di informazioni con l'interno dell'area. Il vantaggio immediato che si ha dall'utilizzo di tali aree e' che la dimensione dei database topologici si riduce sostanzialmente, cosi' come la richiesta di memoria da parte dei router interni all'area. Nelle stub area si utilizza il routing di default, cioe' il router o i router di confine dell'area annunciano alle aree stub la strada di default che esse devono seguire; questa informazione, pero', viene inoltrata solo alle aree stub e non oltre.
Quando un'area e' definita essere stub? Si definisce tale quando l'area ha un singolo "punto di uscita" oppure quando la scelta del punto di uscita non puo' essere fatta in base alla destinazione esterna.
Il protocollo OSPF assicura comunque che la definizione di area stub e' presa in accordo con tutti i router appartenenti all'area, questo per evitare confusione quando si inoltrano le informazioni.
Ci sono anche delle limitazioni nell'uso delle aree stub, infatti i link virtuali non possono prevedere l'utilizzo di aree stub cosi' come i router di frontiere dell'AS non si possono trovare all'interno di aree stub.

Suddivisione delle aree

E' possibile suddividere le aree stesse in piu' componenti, facendo diventare ogni componente un'area a se stante. Ovviamente anche il routing della backbone terra' conto della nuova conformazione topologica.
E' sicuramente importante non partizionare la backbone perche' cio' causerebbe la non raggiungibilita' di parte dell'AS, anche se questo problema potrebbe essere risolto configurando un link virtuale.
Un'altra modo per poter partizionare le aree e' la seguente:
prendiamo in considerazione il grafo dell'AS e consideriamo gli identificativi delle aree come colori degli archi; un gruppo di archi tutti colorati allo stesso modo e connessi da vertici rappresenta un'area. Se la topologia resta immutata si avranno molte regioni con piu' colori, ogni colore appartenente ad un'Area ID differente. Se la topologia viene modificata le aree possono essere partizionate in piu' aree aventi lo stesso colore. Il routing sara' comunque effettuato come se le regioni aventi lo stesso colore siano connesse da una singola regione backbone.

Sommario delle funzionalita'

In ogni area viene eseguita una copia separata dell'algoritmo di routing; per quei routing che sono collegati su piu' aree si avra' una copia dell'algoritmo per ogni area.
Presentiamo in linee generali l'algoritmo di routing.
La prima operazione che si compie quando un router si attiva e' l'inizializzazione delle strutture dati per il protocollo di routing e si attende, poi, dai protocolli dei livelli sottostanti la conferma che tutte le interfacce sono in funzione; A questo punto si attiva il protocollo Hello per poter individuare i neighbors (vicini): il router invia pacchetti hello ai router vicini e a sua volta ne riceve. Sulle reti broadcast e point-to-point i router vicini sono individuati dinamicamente mentre sulle reti non broadcast si necessita di informazioni aggiuntive. Su tutte le reti multi-access il protocollo Hello deve eleggere anche il router designato per la rete; come passo ulteriore il router cerca di costruire le adiacenze andando a considerare i proprio neighbors; le adiacenze hanno il compito di controllare il traffico dei pacchetti del protocollo di routing, infatti tali pacchetti possono viaggiare solo attraverso i router adiacenti, che hanno il compito, inoltre, di sincronizzare e aggiornare i database topologici.
Ogni router, ad intervalli prestabiliti, comunica il suo stato, detto anche link state; questa comunicazione o avviso di link state e' fornito anche quando il router cambia il suo stato in seguito al verificarsi di un evento. Anche tramite le adiacenze e' possibile tenere sotto controllo lo stato del link, potendo stabilire eventuali stati di errore o di caduta del router; gli avvisi di link state sono inoltrati attraverso tutta l'area per poter tenere sempre aggiornato lo stato di tutti i router e affinche' tutti i router di un'area abbiano gli stessi database topologici che a questo punto possiamo definire come liste di avvisi di link state attraverso i quali poter costruire il minimum spanning tree e da questo il protocollo per le routing table.

Routing inter-area

Per poter effettuare il routing inter-area oltre alle informazioni precedenti, che sono sufficienti per il routing intra-area, occorrono delle informazioni aggiuntive ottenute dai router di confine dell'area, che hanno proprio il compito di fornire informazioni sulla restante parte dell'AS. Come detto in precedenza, ogni router di confine dell'area e' collegato alla backbone e tramite questa a tutti gli altri router di confine delle altre aree ; grazie alle informazioni che tali router hanno il compito di memorizzare (la topologia interna dell'area) e grazie alle informazioni disponibili sulla topologia della backbone, ogni router puo' calcolare il cammino per ogni altra destinazione che si trova fuori della propria area di competenza. Calcolato il cammino, il router di confine trasmette queste informazioni ai router interni alla propria area, offrendo cosi' la possibilita' di ottenere il miglior cammino per ogni destinazione.

Routes esterne all'AS

Il protocollo OSPF lavora al di sopra IP, utilizzando il protocollo IP '89. Non e' prevista la funzione di frammentazione/riassemblamento, in quanto se necessaria si utilizza quella di IP; infatti OSPF splitta i pacchetti di grosse dimensioni in pacchetti piu' piccoli. I tipi di pacchetti OSPF sono:

Hello Individua e gestisce i routers vicini
Database Description Descrive il contenuto del database
Link State Request Scaricamento del database
Link State Update Aggiornamento del database
Link State Acknowledgement inoltro dell'acknowledgement


Da notare che i pacchetti di descrizione, aggiornamento e scaricamento sono inviati solo ai router adiacenti, questo significa che i pacchetti del protocollo OSPF attraversano un solo salto IP, tranne che per i pacchetti inviati alle adiacenze virtuali. Inoltre l'indirizzo IP sorgente e' uno dei due router adiacenti, mentre l'indirizzo IP destinazione puo' essere sia l'altro router adiacente che un indirizzo multicast.

Requisiti base per l'implementazione

Timers

Esistono due tipi di timers: il primo, di breve durata, causa il verificarsi di un evento; il secondo, invece, scade ad intervalli regolari ed e' utilizzato per l'invio di quei pacchetti che devono essere spediti in tempi prestabiliti, come ad esempio i pacchetti di Hello. Entrambi i timers hanno una durata di un secondo.

Multicast IP

Alcuni pacchetti OSPF prendono lo stesso formato dei datagrams multicast IP e siccome tali pacchetti non effettuano piu' di un hop, non e' necessario avere la capacita' di inoltrare tali datagrams.

Supporto delle subnet a lunghezza variabile

E' possibile suddividere gli indirizzi delle reti di classe A, B o C in piu' sottoreti di lunghezza variabile.

Supporto del Supernetting IP

E' possibile raggruppare reti IP di classe A, B o C in collezioni di reti contigue ottenendo le supernetting.

Supporto dei protocolli di livello piu' basso

I protocolli a cui ci si riferisce, sono quelli relativi all'accesso alla rete a livello di linea dati. Le informazioni che si richiedono a tali protocolli riguardano essenzialmente lo stato dell'interfaccia.

Supporto del protocollo non broadcast a livello piu' basso

Sulle reti non broadcast, come per le reti X.25 PDN, i livelli piu' bassi possono fornire informazioni sulla esistenza o il funzionamento di router tramite l'invio di messaggi che vengono inviati proprio al protocollo OSPF.

Primitive sulla manipolazione delle liste

Molte caratteristiche e funzionalita' di OSPF sono offerte proprio in termini delle operazioni sulle liste di link state advertisement. Infatti e' proprio la gestione corretta di queste liste che vengono inviate ai router adiacenti che rende efficiente il protocollo, in special modo quando ci si riferisce all'invio di queste informazioni ai router adiacenti.

Supporto del multi-tasking

Capacita' opzionali di OSPF

Il protocollo OSPF fornisce anche delle caratteristiche opzionali, indicate dai router tramite i pacchetti di Hello, di descrizione dei pacchetti o negli avvisi di link state. Alcune capacita' opzionali devono essere supportate da tutti i router di un'area, questo significa che i pacchetti dei router vicini che non supportano tali caratteristiche non possono essere accettati. E' possibile che anche la costruzione delle routing tables possa essere influenzata dalla mancanza di queste capacita' opzionali, evitando quei router deficitari. A volte queste capacita' si possono anche negoziare all'atto dello scambio dei database, specificandole nei pacchetti di descrizione. Le capacita' opzionali di OSPF sono le seguenti:

Strutture dati del protocollo

Router ID

E' un numero a 32 bit che identifica in maniera univoca il router all'interno dell'AS. Se il Router ID e' stato modificato, il software OSPF del router deve essere riavviato affinche' la modifica abbia effetto.

Struttura area

Rappresenta la struttura dati su cui lavora l'algoritmo di base.

Struttura backbone

Come detto in precedenza, la backbone e' un'area a tutti gli effetti, per questo l'algoritmo di base lavora allo stesso modo anche sulla backbone, la stessa struttura dati dell'area.

Link virtuali configurati

Sono identificati dai Router ID di due router di confine di area. Tali router devono essere collegati ad un'area comune, che e' detta area di transito dei link virtuali. I link virtuali fanno parte della backbone e si comportano come se fossero reti point-to-point non numerate; su questi link si applica il routing intra-area.

Liste di routes esterne

Sono strade per raggiungere destinazioni esterne all'AS, ottenute tramite esperienza diretta con altri protocolli (come EGP), o tramite informazioni di configurazione o tramite un mix delle due. I router che gestiscono queste strade esterne sono i router di confine dell'AS.

Lista di external link advertisement dell'AS

Sono parte dei database topologici, originati dai router di confine dell'AS. Contengono le strade per le destinazioni esterne all'AS.

Routing Table

Si ottengono dai database topologici e sono costituite da diverse entrate contenenti ognuna un costo con associato uno o piu' cammini, descritti dal tipo e dal prossimo hop.

Capacita' TOS

Indica se il router calcola strade differenti in base al servizio IP che si fornisce.

La struttura dati Area

Questa struttura contiene le informazioni per elaborare l'algoritmo di routing, come ad esempio il database topologico. Ogni rete appartiene ad una singola area cosi' come l'interfaccia del router connette ad una singola area. Anche il router adiacente appartiene ad una singola area. Come detto in precedenza, la backbone ha le stesse caratteristiche di un'area, dunque anche la stessa struttura. Il database topologico e' una collezione di link di router, di networks e di summary link state; il tutto e' fatto fluire attraverso la sola area di appartenenza.

Area ID

Numero a 32 bit che identifica l'area; l'indirizzo 0.0.0.0 e' riservato alla backbone. Se si utilizzano le subnetting come aree separate, si puo' utilizzare l'indirizzo IP della rete come Area ID.

Lista di componenti il range di indirizzi

Il range di indirizzi che definisce l'area e' dato dalla coppia [indirizzo, maschera] Ogni rete e' assegnata ad un'area in base al range di indirizzi a cui essa appartiene.

Interfacce associate al router

L'interfaccia di un router appartiene ad una e una sola area; se si tratta della backbone fanno parte dell'interfaccia anche i link virtuali, il cui costo e' dato dal costo del piu' piccolo cammino intra-area tra i due router.

Lista dei router link advertisement

Questa lista, costruita da ogni router, descrive lo stato delle interfacce del router sull'area.

Lista dei network link advertisement

Descrive i router attualmente connessi all'area. Gli avvisi di link della rete sono generati per ogni transito della rete multi-access nell'area.

Lista dei summary link advertisement

I summary link advertisement sono generati dai router di confine dell'area. Questa lista descrive le strade per l'interno e l'esterno dell'AS.

Albero dei minimi cammini

E' l'albero dei minimi cammini per l'area, con il router stesso come radice. E' costruito utilizzando l'algoritmo di Dijkstra.

Autype

Indica il tipo di autenticazione che si utilizza per lo scambio dei pacchetti.

Capacita' di transito

Indica se l'area e' un'area di transito.

Capacita' di routing esterno

E' un parametro che puo' essere configurato; tramite questo valore si definiscono le aree stub.

Costo di default dell'area stub

Questo valore indica il costo di default del summary link che il router di confine dell'area dovrebbe inviare come informazione nell'area. Se sono supportati piu' servizi IP si possono avere piu' costi separati, uno per ogni servizio.


[prev] [index] [next]