Oggi inizieremo a studiare il routing tramite il protocollo OSPF. Questo argomento, come la discussione sul protocollo EIGRP, è fondamentale per l'intero corso CCNA. Come potete vedere, la sezione 2.4 è intitolata «Configurazione, verifica e risoluzione dei problemi di un'area singola e aree multiple OSPFv2 per il protocollo IPv4 (esclusa l'autenticazione, la filtrazione, la summarizzazione manuale delle rotte, il ridistribuzione, l'area stub, la rete virtuale e LSA)».

L'argomento OSPF è piuttosto ampio, quindi richiederà 2, forse 3 videolezioni. La lezione di oggi sarà dedicata all'aspetto teorico, vi spiegherò in generale di cosa si tratta questo protocollo e come funziona. Nel video successivo passeremo alla modalità di configurazione OSPF utilizzando Packet Tracer.
In questa lezione esamineremo tre cose: cosa sia l'OSPF, come funziona e cosa sono le zone OSPF. Nella lezione precedente abbiamo detto che l'OSPF è un protocollo di routing di tipo Link State, che esplora i canali di comunicazione tra i router e prende decisioni basate sulla velocità di questi canali. Un canale lungo con una maggiore velocità, cioè con una maggiore larghezza di banda, avrà la priorità rispetto a un canale corto con una minore larghezza di banda.
Il protocollo RIP, essendo a vettore di distanza, selezionerà un percorso in un hop, anche se questo canale ha una bassa velocità, mentre il protocollo OSPF sceglierà un percorso lungo di più hop se la velocità totale su questo percorso è superiore alla velocità del traffico su un percorso breve.

In seguito esamineremo l'algoritmo di presa delle decisioni; per ora dovete ricordare che l'OSPF è un protocollo di stato dei canali Link State. Questo standard aperto è stato creato nel 1988, quindi poteva essere utilizzato da qualsiasi produttore di apparecchiature di rete e da qualsiasi fornitore di servizi di rete. Pertanto, l'OSPF è molto più popolare dell'EIGRP.
Il protocollo OSPF versione 2 supporta solo il protocollo IPv4, mentre un anno dopo, nel 1989, gli sviluppatori hanno annunciato il rilascio della versione 3, che supporta l'IPv6. Tuttavia, la terza versione OSPF completamente funzionale per IPv6 è apparsa solo nel 2008. Perché è stato scelto proprio OSPF? Nell'ultima lezione abbiamo appreso che questo protocollo di gateway interno esegue la convergenza delle rotte molto più rapidamente rispetto a RIP. Si tratta di un protocollo senza classi.
Se ricordate, RIP è un protocollo di classe, il che significa che non invia informazioni sulla maschera di sottorete; se incontra un indirizzo IP di classe A/24, non lo accetterà. Ad esempio, se gli presentate un indirizzo IP del tipo 10.1.1.0/24, lo percepirà come la rete 10.0.0.0, perché non comprende quando una rete è suddivisa in sottoreti utilizzando più di una maschera di sottorete.
OSPF è un protocollo sicuro. Ad esempio, se due router scambiano informazioni OSPF, è possibile configurare l'autenticazione in modo che le informazioni possano essere condivise con il router vicino solo dopo l'inserimento di una password. Come abbiamo già detto, è uno standard aperto, quindi OSPF è utilizzato da molti produttori di apparecchiature di rete.
In un senso globale, l'OSPF rappresenta un meccanismo di scambio di annunci sullo stato dei collegamenti, ovvero Link State Advertisement (LSA). I messaggi LSA vengono generati dal router e contengono molte informazioni: un identificatore unico del router (router-id), dati sulle reti conosciute dal router, informazioni sui loro costi e così via. Tutte queste informazioni sono necessarie al router per prendere decisioni di instradamento.

Il router R3 invia le sue informazioni LSA al router R5, mentre il router R5 condivide le sue informazioni LSA con R3. Questi LSA costituiscono una struttura dati che forma il database dello stato dei collegamenti, noto come Link State Data Base (LSDB). Il router raccoglie tutte le LSA ricevute e le inserisce nel suo LSDB. Dopo che entrambi i router hanno creato i loro database, si scambiano messaggi Hello, che servono per la scoperta dei vicini, e iniziano la procedura di confronto dei loro LSDB.
Il router R3 invia un messaggio DBD, ovvero 'descrizione del database', al router R5, che a sua volta risponde con il proprio DBD al router R3. Questi messaggi contengono gli indici LSA presenti nei database di ciascun router. Ricevuto il DBD, il router R3 invia una richiesta di stato della rete LSR al router R5, dicendo: 'ho già i messaggi 3, 4 e 9, quindi inviami solo 5 e 7'.
Allo stesso modo agisce R5, comunicando al terzo router: 'ho informazioni 3, 4 e 9, quindi inviami 1 e 2'. Dopo aver ricevuto le richieste LSR, i router restituiscono pacchetti di aggiornamento dello stato della rete LSU, quindi in risposta al proprio LSR, il terzo router riceve LSU dal router R5. Una volta che i router aggiornano i loro database, tutti, anche se avete 100 router, avranno database LSDB identici. Non appena i router creano i database LSDB, ognuno di essi conoscerà l'intera rete nel suo insieme. Il protocollo OSPF utilizza l'algoritmo Shortest Path First per creare la tabella di routing, quindi un requisito fondamentale per il suo corretto funzionamento è la sincronizzazione delle LSDB di tutti i dispositivi nella rete.

Nello schema presentato ci sono 9 router, ognuno dei quali scambia messaggi LSR, LSU e così via con i vicini. Sono tutti collegati tra loro tramite interfacce p2p, o "point-to-point", che supportano il protocollo OSPF, e interagiscono tra di loro per creare database LSDB identici.

Una volta che i database saranno sincronizzati, ogni router, utilizzando l'algoritmo del percorso più breve, forma la propria tabella di instradamento. Le tabelle di instradamento saranno diverse tra i vari router. In altre parole, tutti i router utilizzano lo stesso LSDB, ma creano tabelle di instradamento basate sulle proprie valutazioni dei percorsi più brevi. Per utilizzare questo algoritmo, OSPF necessita di aggiornamenti regolari del database LSDB.
Quindi, per il corretto funzionamento dell'OSPF, devono essere soddisfatti tre requisiti: trovare i vicini, creare e aggiornare la LSDB e formare la tabella di routing. Per soddisfare il primo requisito, l'amministratore di rete potrebbe dover configurare manualmente il router-id, i timer o la wildcard mask. Nel prossimo video, esamineremo la configurazione del dispositivo per lavorare con l'OSPF, ma per ora dovete sapere che questo protocollo utilizza una wildcard mask, e se essa non corrisponde, se le vostre subnet non coincidono o non corrisponde l'autenticazione, la vicinanza dei router non potrà formarsi. Pertanto, durante il debug del funzionamento dell'OSPF, dovete scoprire perché questa vicinanza non si forma, ossia controllare la corrispondenza dei parametri sopra citati.
Come amministratore di rete, non partecipate al processo di creazione della LSDB. L'aggiornamento dei database avviene automaticamente dopo la creazione della vicinanza tra i router, così come la costruzione delle tabelle di routing. Tutto questo è gestito dal dispositivo stesso, configurato per lavorare con il protocollo OSPF.
Prendiamo un esempio. Abbiamo 2 router, ai quali ho assegnato per semplificare gli identificativi RID 1.1.1.1 e 2.2.2.2. Non appena li collegheremo, il canale link passerà immediatamente allo stato attivo, perché prima ho configurato questi router per lavorare con OSPF. Una volta che il canale di comunicazione sarà stabilito, il router A invierà immediatamente un pacchetto Hello al secondo. Questo pacchetto conterrà informazioni che indicano che questo router non ha ancora «visto» nessuno su questo canale, poiché sta inviando Hello per la prima volta, insieme al proprio identificatore, ai dati sulla rete a cui è connesso e altre informazioni che può condividere con il vicino.

Ricevendo questo pacchetto, il router B dirà: «vedo che su questo canale di comunicazione c'è un potenziale candidato per la vicinanza secondo il protocollo OSPF» e passerà allo stato di inizializzazione. Il pacchetto Hello non è un messaggio unicast o broadcast, ma un pacchetto multicast inviato all'indirizzo IP multicast OSPF 224.0.0.5. Alcuni si chiedono quale sia la maschera di sottorete per il multicast. La verità è che il multicast non ha una maschera di sottorete, si diffonde come un segnale radio che viene ricevuto da tutti i dispositivi sintonizzati sulla sua frequenza. Ad esempio, se desideri ascoltare la radio FM che trasmette sulla frequenza 91,0, devi sintonizzare il tuo ricevitore su quella frequenza.
Allo stesso modo, il router B è configurato per ricevere messaggi per l'indirizzo multicast 224.0.0.5. Ascoltando questo canale, riceve il pacchetto Hello inviato dal router A e gli risponde con il suo messaggio.

La connessione può essere stabilita solo se la risposta V soddisfa un insieme di criteri. Il primo criterio è che la frequenza di invio dei messaggi Hello e l'intervallo di attesa della risposta a questo messaggio, Dead Interval, devono coincidere su entrambi i router. Di solito, il Dead Interval è uguale a diversi valori del timer Hello. Quindi, se il Hello Timer del router A è di 10 s e il router B gli invia un messaggio dopo 30 s, mentre il Dead Interval è di 20 s, la connessione non avverrà.
Il secondo criterio è che entrambi i router devono utilizzare lo stesso tipo di autenticazione. Pertanto, anche le password di autenticazione devono coincidere.
Il terzo criterio è la corrispondenza degli identificatori della zona Arial ID, il quarto la corrispondenza della lunghezza del prefisso di rete. Se il router A comunica un prefisso /24, il router B deve avere anch'esso un prefisso di rete /24. Nel prossimo video approfondiremo questo argomento; nel frattempo sottolineo che non si tratta di una maschera di sottorete, qui i router utilizzano la maschera Wildcard. E ovviamente, i flag della zona stub devono anch'essi coincidere, se i router si trovano in questa zona.
Dopo aver verificato questi criteri, se coincidono, il router B invia al router A il proprio pacchetto Hello. A differenza del messaggio A, il router B comunica di aver visto il router A e si presenta.

In risposta a questo messaggio, il router A invia nuovamente un Hello al router B, confermando di aver visto anche il router B, specificando che il canale di comunicazione tra di loro è composto dai dispositivi 1.1.1.1 e 2.2.2.2, e che lui stesso è il dispositivo 1.1.1.1. Questa è una fase molto importante per stabilire la vicinanza. In questo caso, si utilizza una connessione bidirezionale 2-WAY, ma cosa succede se abbiamo uno switch con una rete distribuita di 4 router? In un ambiente "condiviso" come questo, uno dei router deve svolgere il ruolo di router designato D.R., mentre l'altro sarà il router designato di backup B.D.R.

Ciascuno di questi dispositivi creerà una Full connection, o stato di completa adiacenza, che esamineremo più avanti; tuttavia, questo tipo di connessione sarà stabilito solo con D.R. e B.D.R., mentre gli altri due router D e B continueranno a comunicare secondo uno schema di connessione bidirezionale "point-to-point".
Vale a dire, con D.R. e B.D.R. tutti i router stabiliscono una relazione di piena vicinanza, mentre tra di loro – una connessione di tipo point-to-point. Questo è molto importante, perché in una connessione bidirezionale tra dispositivi adiacenti tutti i parametri del pacchetto Hello devono corrispondere. Nel nostro caso, tutto corrisponde, quindi i dispositivi formano senza problemi la vicinanza.
Non appena la connessione bidirezionale è stabilita, il router A invia al router B un pacchetto Database Description, o 'descrizione del database', e passa allo stato ExStart – inizio dello scambio, o attesa di caricamento. Il Database Descriptor contiene informazioni simili a un indice di un libro – è un elenco di tutto ciò che è presente nel database di routing. In risposta, il router B invia la propria descrizione del database al router A e passa allo stato di scambio di dati sui canali Exchange. Se nello stato Exchange il router rileva che manca qualche informazione nel suo database, passerà allo stato di caricamento LOADING e inizierà a scambiare messaggi LSR, LSU e LSA con il vicino.

Quindi, il router A invierà un LSR al vicino, che gli risponderà con un pacchetto LSU, a cui il router A risponderà con un messaggio LSA al router B. Questo scambio avverrà tante volte quanto gli dispositivi vorranno scambiarsi messaggi LSA. Lo stato LOADING significa che non è ancora avvenuto l'aggiornamento completo del database LSA. Dopo aver caricato tutti i dati, entrambi i dispositivi passeranno allo stato di piena adiacenza FULL.
Vorrei notare che in una connessione bidirezionale i dispositivi si trovano semplicemente nello stato di adiacenza, mentre lo stato di piena adiacenza è possibile solo tra i router, D.R. e B.D.R. Ciò significa che ogni router informa D.R. delle modifiche nella rete, e tutti i router apprendono queste modifiche da D.R.
La scelta di D.R. e B.D.R. è una questione importante. Vediamo come avviene la selezione di D.R. in un ambiente condiviso. Supponiamo che nel nostro schema ci siano tre router e uno switch. Inizialmente, i dispositivi OSPF confrontano le priorità nei messaggi Hello, quindi confrontano l'ID del router.
Il dispositivo con la priorità più alta diventa D.R. Se le priorità di due dispositivi sono uguali, tra di loro si seleziona il dispositivo con l'ID del router più alto, che diventa D.R.
Un router dedicato di backup B.D.R diventa un dispositivo con il secondo livello di priorità o con il secondo Router ID significativo. Se il D.R. dovesse guastarsi, verrà immediatamente sostituito dal B.D.R. Questo inizierà a svolgere il ruolo di D.R., e il sistema selezionerà un altro B.D.R.

Spero che tu abbia compreso la scelta di D.R. e B.D.R.; se non è così, tornerò su questo argomento in uno dei prossimi video e spiegherò il processo.
Quindi, abbiamo esaminato cosa sono Hello, la descrizione del database Database Descriptor e i messaggi LSR, LSU e LSA. Prima di passare all'argomento successivo, parliamo un po' del costo dell'OSPF.

In Cisco, il costo del percorso viene calcolato utilizzando la formula del rapporto tra la larghezza di banda di riferimento, che per impostazione predefinita è fissata a 100 Mbit/s, e il costo del link. Ad esempio, quando si collegano i dispositivi tramite una porta seriale a una velocità di 1,544 Mbit/s, il costo sarà 64. Con una connessione Ethernet a 10 Mbit/s, il costo è 10, mentre una connessione FastEthernet a 100 Mbit/s avrà un costo di 1.
Utilizzando Gigabit Ethernet, abbiamo una velocità di 1000 Mbit/s; tuttavia, in questo caso, la velocità viene sempre considerata pari a 1. Pertanto, se la tua rete dispone di Gigabit Ethernet, devi modificare il valore predefinito di Ref. BW a 1000. In tal caso, il costo sarà 1, e l'intera tabella sarà ricalcolata aumentando i valori di costo di 10 volte. Una volta che abbiamo formato il vicinato e costruito il database LSDB, passiamo alla costruzione della tabella di routing.

Dopo aver ricevuto l'LSDB, ciascun router inizia autonomamente a formulare l'elenco dei percorsi utilizzando l'algoritmo SPF. Nello schema, il router A creerà una tabella per se stesso. Ad esempio, calcola il costo del percorso A-R1 e lo determina pari a 10. Per semplificare la comprensione dello schema, supponiamo che il router A stabilisca il percorso ottimale per il router B. Il costo della connessione A-R1 è 10, la connessione A-R2 è 100, e il costo del percorso A-R3 è 11, ovvero la somma del percorso A-R1 (10) e R1-R3 (1).
Se il router A deve raggiungere il router R4, può farlo tramite il percorso A-R1-R4 o A-R2-R4; in entrambi i casi, il costo sarà lo stesso: 10+100=100+10=110. Il percorso A-R6 costerà 100+1=101, che è già un miglioramento. Consideriamo ora il percorso verso il router R5 attraverso A-R1-R3-R5, il cui costo sarà 10+1+100=111.
Il percorso verso il router R7 può essere tracciato tramite due percorsi: A-R1-R4-R7 oppure A-R2-R6-R7. Il costo del primo sarà 210, mentre il secondo costerà 201, quindi è preferibile scegliere 201. Pertanto, per raggiungere il router B, il router A può utilizzare 4 percorsi.

Il costo del percorso A-R1-R3-R5-B sarà 121. Il percorso A-R1-R4-R7-B costerà 220. Il percorso A-R2-R4-R7-B costa 210, mentre A-R2-R6-R7-B ha un costo di 211. Di conseguenza, il router A sceglierà il percorso con il costo più basso, pari a 121, e lo inserirà nella tabella di routing. Questa è una versione molto semplificata di come funziona l'algoritmo SPF. In realtà, nella tabella non vengono inserite solo le etichette dei router attraverso cui passa il percorso ottimale, ma anche le etichette delle porte che li collegano e tutte le altre informazioni necessarie.
Esaminiamo un altro argomento che riguarda le aree di instradamento. Di solito, quando si configura OSPF sui dispositivi di un'azienda, tutti si trovano in un'unica area comune.

Cosa succede se un dispositivo collegato al router R3 smette improvvisamente di funzionare? Il router R3 inizierà subito a inviare ai router R5 e R1 un messaggio che informa che il canale con questo dispositivo non è più operativo, e tutti i router inizieranno a scambiarsi aggiornamenti su questo evento.

Se hai 100 router, tutti aggiorneranno le informazioni sullo stato dei canali, poiché si trovano nella stessa area comune. Lo stesso accadrà se uno dei router vicini si guasta: tutti i dispositivi nella zona scambieranno aggiornamenti LSA. Dopo lo scambio di questi messaggi, la topologia della rete cambierà. Non appena ciò accade, l'algoritmo SPF ricalcola le tabelle di routing in base alle nuove condizioni. Questo è un processo molto complesso e se hai mille dispositivi in una sola zona, devi monitorare le dimensioni della memoria dei router affinché siano sufficienti a memorizzare tutti gli LSA e l'enorme database dello stato dei canali LSDB. Ogni volta che ci sono cambiamenti in una parte della zona, l'algoritmo SPF calcola immediatamente i nuovi percorsi. Per impostazione predefinita, l'LSA viene aggiornato ogni 30 minuti. Questo processo avviene su tutti i dispositivi non contemporaneamente, tuttavia in ogni caso gli aggiornamenti vengono eseguiti da ciascun router con cadenza di 30 minuti. Più dispositivi di rete hai, più memoria e tempo sono necessari per aggiornare l'LSDB.
Per risolvere questo problema, è possibile suddividere un'unica area generale in più aree separate, utilizzando così il multizonamento. Per questo è necessario avere un piano o uno schema dell'intera rete che gestite. L'area zero AREA 0 è la vostra area principale. È il punto in cui avviene la connessione con la rete esterna, ad esempio l'accesso a Internet. Quando si creano nuove aree, si deve seguire la regola secondo cui ogni area deve avere un router di confine ABR, ovvero Area Border Router. Il router di confine ha un'interfaccia in un'area e la seconda interfaccia in un'altra area. Ad esempio, il router R5 ha interfacce sia nell'area 1 che nell'area 0. Come ho detto, ciascuna delle aree deve essere connessa all'area zero, ovvero deve avere un router di confine, uno dei cui interfaccia è collegata all'AREA 0.

Supponiamo che la connessione R6-R7 sia andata in crash. In questo caso, l'aggiornamento LSA si diffonderà solo nella zona AREA 1 e riguarderà soltanto quella zona. I dispositivi nella zona 2 e nella zona 0 non saranno nemmeno a conoscenza di ciò. Il router di confine R5 compila le informazioni su ciò che accade nella sua zona e invia nella zona principale AREA 0 un report riassuntivo sullo stato della rete. I dispositivi all'interno di una zona non hanno bisogno di conoscere tutti i cambiamenti LSA all'interno di altre zone, perché il router ABR trasmetterà informazioni aggregate sulle rotte da una zona all'altra.
Se non hai ancora chiaro il concetto di zone, potrai approfondire nei prossimi corsi, quando ci occuperemo della configurazione del routing OSPF e vedremo alcuni esempi.

Grazie per rimanere con noi. Ti piacciono i nostri articoli? Vuoi vedere più contenuti interessanti? Supportaci effettuando un ordine o raccomandando ai tuoi amici. Sconto del 30% per gli utenti di Habr su un'alternativa unica ai server entry-level, progettata da noi per te: (disponibili opzioni con RAID1 e RAID10, fino a 24 core e fino a 40GB DDR4).
Dell R730xd a metà prezzo? Solo da noi nei Paesi Bassi! Dell R420 — 2x E5-2430 2.2GHz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — a partire da $99! Scopri di più su
Fonte: habr.com
