OSPF (Open Shortest Path First) è un protocollo standard RFC 2328, si tratta di un protocollo “link state” di tipo IGP (Interior Routing Protocol). OSPF costruisce la propria topologia loop-free che converge velocemente in caso di failure, ma richiede molte risorse di processore e memoria in caso di ricalcolo dell’algoritmo SPF, rispetto ai protocolli distance vector.
OSPF può risultare inizialmente abbastanza complicato data la sua flessibilità in termini di design ed essendo uno standard aperto, può essere implementato da tutti i vendor del mercato e coesistere in ambienti eterogenei. In questa prima analisi, descriveremo la caratteristiche generali di OSPF e ci soffermeremo sulla configurazione single area.
OSPF è un sofisticato protocollo di routing basato sull’algoritmo di Dijkstra, lo Shortest Path First (SFP) :
“Edsger Wybe Dijkstra, formulò l’algoritmo SPF da da lui prese il nome. Questo algoritmo considera una rete come un insieme di nodi connessi da link punto-punto. Ciascun link presenta un determinato costo e ciascun nodo ha un nome univoco. Ogni nodo dispone di un database completo di tutti i link e, di conseguenza, di tutte le informazioni che riguardano la topologia fisica della rete. I database link state di tutti i router di una determinata area sono identici tra loro
STP colloca ciascun router alla base di una struttura ad albero calcolando il percorso più breve che consente di raggiungere ogni destinazione in funzione del costo cumulativo. Nell’area si esegue il flooding dei pacchetti LSA ( E’ il database topologia, ovvero il messaggio di protocollo che contiene la visione della rete a livello logico. Ogni router scambia con il proprio vicino di area i pacchetti LSA per determinare i migliori percorsi) utilizzando un algoritmo affidabile, che garantisca che tutti i router dell’area possano ricavare lo stesso database topologia. Ogni router ha un proprio punto di vista dell’area, condividendo con gli altri tutti i percorsi di rete dell’area. Quindi possiamo affermare che tutti i router di una determinata area dispongono delle stesse informazioni a livello topologia, ma ogni router ha una visione di insieme differente e ciascun router calcola il percorso considerando se stesso come il punto di partenza dell’abero logico.
Il costo (o metrica) di ogni interfaccia indica l’overhead richiesto per inviare i pacchetti da una determinata interfaccia. Il costo in OSPF è inversamente proporzionale alla larghezza di banda del link, quindi una maggiore ampiezza di banda corrisponde a un costo inferiore.”
- OSPF è un protocollo classless e consente la summarization
- OSPF è uno standard RFC, ed è supportato in ambienti caratterizzati da router di N vendor.
- OSPF preserva la bandwith nello scambio dei propri messaggi
- OSPF usa multicast per comunicare invece di broadcast
- Inoltra messaggi incrementali basati sul cambiamento di rotte “change-based”
- OSPF usa metrica inversamente proporzionale all’ampiezza di banda del link.
I protocolli Distance Vector (RIP) inoltrano con regolarità degli update anche in assenza di cambiamenti della topologia logica della rete. Protcolli link state come OSPF al contrario, inoltrano messaggi (LSA) ogni 30 minuti ed eseguono flooding non schedati di pacchetti LSA solo in caso di cambio della topologia del network. Nei casi di cambio della topologia, il router che per primo si accorge del cambio inizierà a fare flooding di LSA verso i vicini della stessa area, informando del cambio di topologia.
possiamo verificare i vicini in OSPF con il seguente comando :
OSPF utilizza cinque tipi di pacchetti per le proprie mansioni :
- Hello : stabilisce la comunicazione con i vicini
- Database Descriptor (DBD) : inoltra la lista degli ID dei router e la sequence number LSA. Queste informazioni sono usate per comparare le informazioni relative al network.
- Link State Request (LSR) : segue le DBD per la richiesta di LSA persi.
- Link State Update (LSU) : replica alla link state request con la richiesta di dati
- Link State Acknowledgments (LSAack) : conferma ricezione dell’LSA
Vediamo le tecniche utilizzate da OSPF per ovviare ad un tempo di convergenza troppo elevato. Il protocollo OSPF si avvale di due figure chiave per far diminuire in modo drastico il tempo di “adattamento ai cambiamenti” (convergenza), le figure sono il Designated Router ed il Backup Designated Router. In caso di cambiamento della topologia del network, il router che esegue il processo OSPF dovrà ricalcolare l’intera topologia utilizzando l’algoritmo di Dijkstra, questo risulta molto gravoso in termini di banda e processore. Se la rete è molto complessa e composta da molti router per area, e se il ricalcolo per condizioni che possono variare dallo stato fisico al data link, debba essere eseguito molte volte, il tempo di convergenza di OSPF potrebbe diventare inaccettabile. Pensiamo inoltre a tutti i problemi che potrebbero derivare da un eccessivo flooding di informazioni in reti relativamente strette in termini di banda (esempio link datalink DLCI Frame Relay).
Il processo di elezione di un Designated Router è abbastanza semplice. Essenzialmente i fattori che vengono presi in considerazione sono due : Il RouterID (RID) e la priorità della porta. Il router ID è rappresentato dall’indirizzo virtuale di loopback del router, l’indirizzo più alto. In caso di mancanza dell’indirizzo loopback viene preso in considerazione l’indirizzo IP più elevato tra le interfacce fisiche. Le priorità delle porte fisiche invece, che varia da 0 a 255, può essere utilizzata per forzare il processo di elezione dei router, considerando che a valori più elevati corrispondono maggiori probabilità di elezione.
La priorità OSPF di interfaccia può essere modificata con il seguente comando :
- Router(config-if)#ip ospf priority number
Una volta completato il processo di elezione, il ruolo del Designated Router sarà di ricevere e ridistribuire gli update dell’area, ricoprendo il ruolo di hub per tutti gli altri router di area. I messaggi LSA verso il DR/BDR saranno inoltrati all’indirizzo multicast riservato 224.0.0.6, mentre gli altri router riceverano da DR/BDR i pacchetti LSA all’indirizzo multicast 224.0.0.5.
Nelle reti OSPF broadcast l’intervallo Hello è di 10 secondi e 40 secondi il dead. Nelle reti OSPF non broadcast l’intervallo Hello è pari a 30 secondi e 120 secondi l’intervallo dead.
I timer di protocollo possono essere variati (attenzione!) con i seguenti comandi :
- Router(config-if)#ip ospf hello-interval “secondi“
- Router(config-if)#ip ospf dead-interval “secondi“
Il Backup Designated Router ascolta passivamente tutto il traffico di area mantenendosi aggiornato. Se il DR cessa di funzionare o diviene irraggiungibile, stoppando la produzione di pacchetti Hello che mantengono la relazione con gli altri, il BDR si promuove a DR assumendo il ruolo.
CONFIGURAZIONE BASE DI OSPF SINGOLA AREA.
Concludiamo questa prima parte descrittiva con la descrizione dei passaggi per la configurazione di un processo OSPF con un router Cisco.
- Router(config)router ospf 1
Impostiamo il processo (in questo caso 1) di OSPF.
- Router(config-router)network (indirizzo della network) (wildcard mask) area 0
Ora definiamo l’indirizzo con la relativa wildcard mask che deve partecipare al proceso 1 di OSPF. Aggiungiamo anche l’area di OSPF, in questo caso abbiamo impostato l’area 0, ovvero l’area backbone di OSPF.
Con questi due comandi abbiamo quindi aggiunto un router nel backbone definendo il processo OSPF (il processo dovrà ovviamente essere uguale a quelli degli altri router già in produzione nel backbone) ed impostato la network che deve partecipare nell’area 0.
Si conclude qui la prima parte di OSPF.




