Posts Tagged ‘backup’

Funzionamento del protocollo OSPF

L’Open Shortest Path First (in seguito, OSPF) è un protocollo di routing link state pubblico e non proprietario.

I router che utilizzano protocolli link state identificano i propri vicini e comunicano con essi. L’OSPF raccoglie le informazioni dai router vicini circa lo stato dei link di ognuno di essi e invia i suoi dati agli altri. Questo scambio di informazioni sullo stato dei link permette ai router di creare la topology table o (link state database). Ogni router nella stessa area OSPF ha la stessa topology table e viene usata per calcolare la rotta migliore fino a una destinazione applicando l’algoritmo SPF (Shortest Path First). L’algoritmo SPF si basa sul costo che è principalmente basato sulla larghezza di banda; il percorso a costo più basso viene inserito nella routing table (o forwarding database).
Ogni router mantiene una lista di router vicini chiamata adjacency database. Tale lista è formata da tutti i router vicini con cui un router stabilisce una comunicazione bidirezionale ed è unica per ogni router. Per ridurre il numero di informazioni di routing scambiate tra i vicini all’interno della stessa rete, i router OSPF eleggono un designated router (DR) e un backup designated router (BDR) che vengono utilizzati come punti focali per lo scambio di informazioni di routing.

L’OSPF è un protocollo da utilizzare in reti estese e scalabili dove i limiti dei protocolli distance vector rendono improponibile utilizzarli, sia per utilizzo di metriche non basate sulla larghezza di banda che per la lenta convergenza del protocollo (in reti estese il RIP può avere la convergenza di alcuni minuti). Le principali differenze sono state già trattate in altri articoli.

OSPF si interfaccia con le reti broadcast multi-access (come l’Ethernet), pont-to-point e Nonbroadcast multi-access (NBMA, come il Frame Relay). Le reti di tipo point-to-multipoint possono essere configurate manualmente su un’interfaccia dall’amministratore.
In una rete multi-access non si conosce il numero di router a cui si è connessi, mentre nel collegamento point-to-point solo due router possono essere connessi. In una rete broadcast multi-access il numero di adiacenti può essere elevato e varia in base al numero di router della rete. In generale se N è il numero di router il numero di potenziali adiacenti sarà dato dalla formula

N*(N-1)/2

e ciò provocherebbe molto overhead. La soluzione di questa problematica sta nell’eleggere un DR che diventa adiacente di tutti gli altri router nel segmento di broadcast, quindi tutti i router inviano i LSA al DR ed esso invierà le informazioni  a tutti i router del segmento usando l’indirizzo multicast 224.0.0.5. Questa soluzione è efficiente ma presenta lo svantaggio che il DR funge come centro stella, quindi con problemi per la rete in caso di rottura. Per questo viene eletto un BDR tra i designated router. Per garantire la sincronizzazione delle informazioni tra DR e BDR vengono inviate le informazioni all’indirizzo 224.0.0.6.
Ovviamente in una rete point-to-point ci sono solo due nodi e non esistono né DR né BDR: entrambi i router hanno le complete adiacenze con l’altro.

Quando viene avviato un processo di routing OSPF su di un’interfaccia, il router manda pacchetti “hello” a intervalli regolari (Hello protocol) attraverso l’indirizzo 224.0.0.5 che invia il pacchetto a tutti i router OSPF. Tali pacchetti (molto piccoli, hanno solo un OSPF header) vengono inviati ogni 10 secondi di default, ogni 30 per reti NBMA e sono importanti poiché attraverso essi vengono eletti il DR e il BDR.

Funzionamento

Come già accennato, l’avvio di un processo OSPF su di un’interfaccia fa si che il router invii pacchetti hello a intervalli regolari; le regole che governano lo scambio di pacchetti hello viene chiamato hello protocol. In una rete multi-access l’hello protocol fa si di eleggere un DR e un BDR. I pacchetti hello trasportano le informazioni e tutti i vicini devono essere sincronizzati per formare adiacenze e scambio di informazioni sullo stato dei link. In reti multi-access sono il DR e il BDR a dover mantenere le adiacenze con tutti gli altri router OSPF.

I router adiacenti attraversano una sequenza di stati. Prima di formare la routing table i router adiacenti devono essere a conoscenza della topologia dell’intera rete. Ogni router invia LSA nei Link State Update (LSU) e tale LSA contiene al suo interno tutte le informazioni sui link del router; viceversa, ogni router riceve un LSA da ogni vicino per formare il topology database. Tale processo si ripete per ogni router della rete OSPF.

Quando il database è completo ogni router applica l’algoritmo SPF per calcolare una topologia logica esente da loop per ogni rete di destinazione da inserire nella routing table. Le informazioni di routing sono così fissate; quando vi è la variazione dello stato di un link, i routers usano un processo di flooding per notificare agli altri router della rete il cambiamento. Inoltre, per verificare se un adiacente è down, l’hello protocol impone un dead interval.

RIP: load balancing e integrazione delle rotte statiche

Il load balancing (bilanciamento del carico) è il concetto che i router seguono per bilanciare il carico (traffico) in molteplici best path. Questi percorsi sono calcolati dinamicamente dal RIP e tale protocollo permette di indirizzare il traffico fino a un massimo di 6 best path utilizzati attraverso un meccanismo detto round robin. Tale meccanismo è ciclico, ovvero il router invierà il maniera ciclica il traffico sulle diverse interfacce su cui vi è un best path senza però tener conto della banda che vi si trova su ognuna di tali interfacce (il RIP non fa distinzioni sull’invio di pacchetti su un percorso PSTN a 56kbps o su una ATM a 155Mbps, calcola il best path tenendo in considerazione solamente il numero di hop da superare prima di arrivare a destinazione).
Le rotte con metrica uguale possono essere individuate usando il comando show ip route seguito dall’indirizzo della rete. Es.:

Router#show ip route 192.168.10.0

Per modificare il numero massimo di path bisogna digitare, in router configuration mode, il comando:

Router(config-router)#maximum-paths {number}

Parliamo adesso delle rotte statiche e al possibile utilizzo a fianco del RIP. La rotte statiche forzano l’instradamento dei pacchetti da una sorgente a una destinazione. Sono spesso utilizzate per definire una default route e, quindi, instradare un pacchetto anche quando la rete non è presente nella routing table.
Un router che usa RIP può ricevere una default route tramite update da un altro router che usa anch’esso RIP; un’altra opzione è che il router auto generi la sua default route.

Le rotte statiche hanno, ovviamente, prelazione su quelle dinamiche in virtù di una distanza amministrativa decisamente minore (per eliminare le default route basta digitare il comando no ip route in global configuration mode). Per ovviare a ciò basta impostare alla rotta statica una distanza amministrativa maggiore di quella del routing dinamico utilizzato. Così facendo si possono impostare rotte di backup nel caso in cui il processo di RIP non vada a buon fine.

Le rotte statiche saranno annunciate con gli update del RIP e propagate per tutta la rete: questo perché le rotte statiche sono contenute nella routing table ed il router non distingue tra rotte statiche e dinamiche. Quando un’interfaccia diviene indisponibile tutte le rotte statiche che la utilizzavano vengono rimosse dalla routing table. Quando il software non riesce più trovare un next-hop valido per l’indirizzo specificato nella static route, allora la rotte statica viene eliminata.