Teoria Secondo Modulo Ccna Lezione 5

Link state routing protocol

Analizzeremo due protocolli di routing OSPF e EIGRP.
Ospf è lo standard dei link state routing protocol

Nei link state controllo chi sono i miei vicini tramite pacchetti di HELLO. Questi pacchetti sono semplici con informazioni su di me mandati in broadcast. Servono per raccogliere info sui vicini. Una volta che ho info sui vicini li raccolgo in un pacchetto e li mando a tutti i router della rete. In questo modo tutti hanno un'idea della rete totale.

Quindi prima il link dei vicini. Vediamo le info che vengono mandate, tramite i protocolli di hello:

  • ip/mask
  • tipo di rete a cui sono connesso
  • i router connessi a quella rete
  • la metrica e il costo di quel link

La collezione di tutti i link state forma il link state database.

Ogni router costruisce il link state packet. Contiene le info sulle interfacce di se stesso, lo manda in floding. Chi ha attivo un protocollo di link state, lo riceve se lo memorizza e inoltre un pacchetto con tutte le informazioni alle altre.
In pochi passi tutti i router hanno un algoritmo topologico della rete. Grazie a questo faccio un grafo e con algoritmo tipo djastra posso calcolare i cammini minimi.

Ci sono due passi quindi:

  • passaggio di informazioni
  • costruzioni del grafo

Avere tutti i router che abbiano l'ultima versione dei link state packet è importate altrimenti qualcuno calcolerebbe rotte con informazioni incosistenti.

LSP Link State Packet.
I vettori di istanze vengono inviati varie volte senza verificarne l'arrivo nei protocolli distance vector. Ma se facessimo questo nei link state creeremo dei problemi di uso eccessivo di banda.
Per questo motivo si effettua l'invio dei pacchetti in maniera affidabile.
Nel pacchetto ci sono due parti

  1. contiene la sorgente e la lista dei vicini con i costi
  2. contiene un numero di sequenza e un'età

Ogni pacchetto che un router genera ha un numero di sequenza crescente.
Età che può essere in due modi parte da un valore massimo e poi viene scartato a zero oppure cresce fino a un massimo. Un pacchetto ospf dura al massimo 30-60 minuti.
Il router invia il pacchetto e si aspetta entro un timeout un ack su quel pacchetto, altrimenti ritrasmette. Così ho la garanzia che il router vicino ha le info. Inoltre con il numero di sequenza so qual'è il pacchetto più recente che un router ha mandato.
I router hanno in un tempo molto minore ai protocolli di distance vector una copia aggiornate delle informazioni sulla rete.

Rete foglia non connessa a un altro router.
Ogni router può costruirsi il link state packet

Dijkstra Algoritmo

Inizializzazione

  1. mette come radice dell'albero se stesso
  2. comincia a mettere come nodi i router direttamente connessi con i costi
  3. per tutti quelli non direttamente connessi hanno un costo infinito.

Ciclo

  1. prendo un router e cerco di aggiungere al percorso dell'albero iniziale quello con percorso minimo.

link state vs distance vector

  1. nei link state è difficile avere dei cicli
  2. nei link state si costruiscono velocemente le tabelle di routing, perché eliminando il problema dei cicli non ho più tutte le necessità di avere i timer.
  3. distance vector possono essere usate su reti piccole (10 router) perché converge in tempi accettabili ed è semplice. link state invece per reti grandi
  4. ospf può essere organizzato in maniera gerarchica e quindi aumentare ancora la velocità
  5. link state hanno bisogno di router più potenti essendo più semplici

Fin qui abbiamo visto le caratteristiche generali adesso vediamo le caratteristiche

OSPF Open Short Path First

Quello che vediamo noi Si basa sulla verione 2 rfc 2328, c'è anche la versione 2 per ipv6.
È open perché si basa su uno standard aperto su uno RFC. Al contrario igrp e eigrp non sono spiegati tutti i dettaglio, viene detto come si comportano ma non cosa c'è dentro. Gli algoritmi interni sono proprietari.
Rip e Ospf sono quelli usati maggiormente su internet. Gli altri due li facciamo perché è il corso della cisco.

Dettagli su ospf

Supporta le maschere, ha una convergenza veloce, le informazioni vengono mandate ogni 30 minuti quindi consuma molto meno banda rispetto a igrp e rip, supporta organizzazione gerarchica.
L'organizzazione gerarchica riduce il problema di routing e lo semplifica se la rete è particolarmente grande.
Anche su reti grandi il lavoro dell'algoritmo è lo stesso, ma ci possono essere problemi di memoria o di calcolo o problemi con un router che va giu e su. In questo caso di un router ballerino che fa su e giù ogni volta tutta la rete deve fare parecchi calcoli. Con le aree riduco il problema all'aerea. I calcoli sono più facili, le tabelle di routing sono più piccole. Nel corso

Multi area ospf quick introduction

Internet sappiamo che è organizzato in autonomus system. Se ho un AS grande invece di avere un'organizzazione piatta ho le aree. Devo avere un'area 0 di riferimento detta backbone, poi tra area 0 e area 1 devo avere un router di bordo che è connesso all'altra attraverso un border router.
All'interno di un'area c'è un protocollo come abbiamo visto link state semplice.
Se ci sono più aree i pacchetti di link state vengono scambiati solo a quelli della stessa area. Il router di bordo dell'area raccoglie tutti i link state dell'area 0 li memorizza in un db topologico e calcola l'algoritmo dei cammini minimi dell'area 0. Analogamente per l'altra interfaccia connessa all'aerea 1. Invia l'albero dei cammini minimi completo e già calcolato di un'area all'altra. Invia un vettore di istanze che dice che attraverso di lui si può raggiungere le altre reti, esattamente come un protocollo di distance vector. Il protocollo così evita che un area conosca i dettagli dell'altra.

Single Area OSPF

L'area 0 è l'area di backbone ci deve essere sempre un router che abbia un'interfaccia sull'aerea 0 e una su ogni altra area.
Si devono dare due comandi per attivare ospf il primo esegue l'attivazione del processo, il secondo indica su quali interfacce deve essere attivo.

r1(config)#router ospf process-id 
r1(config-router)#network address wildcard-mask area area-id

Quando attivo il processo osfp devo assegnarli un process id che è un numero da 1 a 65535, serve solo per identificare il processo, non è in relazione con il process id degli altri router.
Si possono attivare due processi osfp contemporaneamente ma non ha senso perché mangerebbe inutilmente risorse.
Al contrario di eigrp dove i router devono avere lo stesso process id.

La cosa diversa dagli altri protocolli visti è il comando network. Nel comando network di ospf si specificano le wildcard mask, le aree e la area id. Questo perché i router di bordo possono avere interfacce attive su diverse aree.
Per questa parte del corso l'area id è sempre 0.
Una wildcard mask è (solitamente) il complemento della subnet mask.
Se ho una 10.5.1.1 subnet 255.255.255.0 per attivare ospf uso la wildcard 0.0.0.255

r1(config)#router ospf 10 
r1(config-router)# network 10.5.1.0 0.0.0.255

La wildcard è un concetto più generale rispetto alla netmask, dice i bit da controllare in un indirizzo. Questi sono gli 0 della wildcard mask. Nella netmask gli 1 devono essere consecutivi non possono essere messi dove si vuole, al contrario della wildcard. Il grado di selettività è quindi maggiore nella netmask.
r1(config)#router ospf 10 
r1(config-router)# network 0.0.0.0 255.255.255.255 area 0

In questo modo attiverei ospf per tutte le interfacce del router, non è raccomandato perchè ci potrebbero essere interfacce che sarebbe meglio escludere.
Invece conviene farlo interfaccia per interfaccia.
r1(config)#router ospf 10 
r1(config-router)# network 10.5.1.2 0.0.0.0 area 0

Attivo il processo di routing ospf solo sulla speficifica interfaccia 10.5.1.2 e non su tutte le altre.

Metrica

Lo standard dice che a ogni link bisogna associare un costo ma non dice in che modo. La cisco implementa in modo che costo=banda ed è 10^8 / bandwith (bsp).
In questo modo però tutti i costi superiori a 100Mbit hanno lo stesso costo e ovviamente non va bene, nel 98 era la velocità di punta ma adesso non più. Per questo motivo il valore di riferimento può essere cambiato.
reference-bandwith [1- ???che numero c'era qui??? ] è in megabits/secondo
il comando è

ospf auto-cost reference bandwith 1000

questo sopra per reti da 1 GBits

Se considero il collegamento seriale ospf prende di default collegamento T1 indipendentemente da quello che c'è sotto, 1.544 = costo 64
Per ovviare a questo problema, che comprometterebbe i calcoli dato che il seriale è spesso inferiore a un collegamento T1, si può specificare sull'interfaccia la qualità del collegamento.

r1(config-ig)#bandwidth kilobits

per esempio 64

Come metrica si può prendere la banda oppure equivalentemente il costo

r1(config-ig)#ip ospf cost 1562

Se abbiamo router tutti uguali posso usare indifferentemente uno o l'altra, ma se ho router multivendor il calcolo del costo tramite la banda viene fatto in maniera diversa quindi devo usare la seconda opzione per specificare il costo. In questo modo tutti hanno sicuramente lo stesso valore.

Link state algoritms

Il costo del percorso sarà la somma del percorso dei singoli link.

Steps to OSPF Operation

  • scoperta dei vicini, tramite protocollo di Hello. Inoltre controlla che il link dei vicini rimane attivo. Hello è un protocollo di controllo che sta alla base di tutto ospf.
  • Problema se siamo connessi a una rete ad accesso multiplo (ethernet per esempio) che deve inviare pacchetti a tutti in flooding, che sappiamo hanno necessità di ack, ci sarebbero dei rischi di inondazione. Per questo motivo si usa comunicare a un rappresentante della rete.

Il protocollo di hello è basato su un pacchetto semplice usato per mantenere un collegamento virtuale con loro. Se ricevo pacchetti dei vicini vuol dire che tutto è a posto. I pacchetti delle link state vengono spediti con l'ordine dei minuti quelli di hello nell'ordine dei secondi.
Ospf si appoggia sul protocollo ip. L'indirizzo multicast 224.0.0.5 identifica tutti i router ospf. Mentre il multicast 224.0.0.6 identifica il router ospf.

Pacchetto ospf

Ci sono 5 tipi di pacchetti ospf :

  1. Hello, il più semplice
  2. database Description
  3. link state request LSR
  4. link state update LSU
  5. Link state acknowlegement LSAck

Il pacchetto hello

Il pacchetto contiene

  • la priorità del router
  • id del router mittente del pacchetto
  • intervallo con cui i pacchetti di hello vengono inviati
  • router dead intervall, ogni quando tempo massimo devo ricevere un pacchetto di hello. Dopo questo tempo il link è morto
  • network mask, applicata dal router a quel link
  • lista dei vicini

Tipi di network

Ospf opera in maniera diversa in base alla rete

  1. broadcast multiaccess, tipo ethernet o token ring
  2. non broadcast multiaccess, frame relay, atm e altre reti geografiche. . Tutti connessi alla stessa rete ma non esiste il messaggio di broadcast. Per il messaggio di broadcast vengono fatti tanti multi punto.
  3. punto punto tipo seriale

HELLO

I pacchetti di hello vengono inviati periodicamente in base al tipo di rete. Per reti broadcast multiaccess ogni 10 secondi, per rete non broadcast multiaccess 40 secondi.
Nella risposta al messaggio di hello mandato in broadcast c'è il mio indirizzo. Nella lista dei vicini c'è il mio identificativo.
A questo punto c'è una relazione two way, in una relazione two way i router devono avere:

  1. lo stesso hello interval
  2. lo stesso router dead interval
  3. la stessa netmask

A questo punto ci sono continui messaggi di hello, con l'intervallo per il dead. Tipicamente il dead interval è 4 volte superiore al hello interval.
I parametri possono essere cambiati con i seguenti comandi

r1(config-if)#ip ospf hello-interval seconds
r1(config-if)#ip ospf dead-interval seconds

dalle regole di prima vanno cambiati su entrambi i router altrimenti non si può instaurare il two way.
A questo punto si deve capire se si raggiunge il livello di adiacenza. Cioè se lo scambio dei messaggi rende alla fine i database topologici allineati.
Vanno distinti due casi:
  1. Se il mio vicino è collegato al me punto punto si raggiunge l'adiacenza subito
  2. se invece è una rete ethernet per esempio, le adiacenze sarebbe di numero quadrato rispetto ai router. Un valore troppo alto. In questo caso si procede all'elezione del router designato. Tutti i router poi si sincronizzano con il router designato. La complessità invece di essere quadratica è lineare. Questo introduce il problema del singol point of failure, per questo motivo c'è anche il router designato di backup che subentra in caso di guasti.

Inviamo i link state packet al router designato e il router designato manda i pacchetti di ack. Il router di backup sta in ascolto e se il designato non manda più ack lui interviene.

Per scegliere il designato il primo criterio è la priorità e poi il router id. Il router id di solito è l'indirizzo ip, si esegue quest'operazione di assegnamento tramite il comando

r1(config-router)#router-id ip-address

Il comando è stato introdotto nel cisco ios 12.0.
Se non è specificato con il comando scelgo l'indirizzo ip più alto tra le interfacce loopback del router.
Se non sono state specificate interfacce di loopback si sceglie l'indirizzo ip di un'interfaccia.
Si usano le interfacce loopback per evitare i problemi di interfacce operative che vanno down per motivi legati alla rete quindi introducono varianza.
Per configurare un'interfaccia di loopback si usano i seguenti comandi.
r1(config)#interface loopback 0
r1(config-if)#ip add 10.1.1.1 255.255.255.0

Il router id serve per eleggere il router designato in una rete ad accesso multiplo con router della stessa priorità.
Prima controllo quale router ha la priorità più alta e scelgo il router designato detto DR Designated Router, poi il backup BDR backup designated router, tutti gli altri router sono DRO Non Routers Designated, others.
La priorità dei router di default è 1.

Sulla rete punto punto non definisco un router designato.
Una volta fatta l'elezione del router designato e di backup rimane quello lo stato anche se arriva un router designato con router-id più alto. Questo a meno di fallimenti del router designato e del backup.
Quando mando pacchetti verso il router designato userò l'indirizzo di multicast 224.0.0.6 su cui sono in ascolto il DR e il BDR così non do noia a tutti gli altri router.
Il DR è quello che deve gestire più messaggi di tutti quindi si fa diventare designato il più potente. Un router può fare il designato su un'area e di backup sull'altra. La priorità si gestisce sulle singole interfacce.

r1(config-if)# ip ospf priority <0-255>

Dopo l'elezione ogni altro router della rete si sincronizza con il designato tramite l'ip di multicast del designato e il dr risponde in unicast. Il BDR ha una copia delle info del DR.
Dopo la sincronizzazione il DR poi manda un pacchetto in broadcast con le info aggiornate a tutti i router della rete.

STEPS RIASSUNTIVI DEL PROTOCOLLO OSPF

  1. Scopro chi sono i miei vicini e stabilisco una relazione two way con loro.
  2. se sono punto punto si sincronizzano le tabelle di routing, altrimenti si elegge il DR.
  3. si scoprono le rotte
  4. si calcola la tabella di routing
  5. si mantiene la routing table.

Alcuni dettagli del protocollo ospf

Questa parte non è trattata nel ccna accenniamola per completezza.
Dopo l'elezione del router designato si effettua la sincronizzazione del database topologico, quest'operazione è abbastanza articolata vediamola per punti.

  1. due router si devono mettere d'accordo su chi è il leader nel processo di sincronizzazione.
  2. si scambiano delle info aggregate sui database topologici, tramite i DBD Database Descrition Packet.
  3. ognuno chiede all'altro le informazioni che gli mancano.
  4. si arriva alla vera e propria sincronizzazione dei database topologici.

Ultime parti di ospf trattate nella lezione 6.

Salvo diversa indicazione, il contenuto di questa pagina è sotto licenza Creative Commons Attribution-ShareAlike 3.0 License