Posts Tagged ‘broadcast’

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 v2 e default routes su router cisco

In questo articolo terminiamo la trattazione sul RIP iniziata nei precedenti articoli, RIP e configurazione sui router cisco e RIP: load balancing e integrazione delle rotte statiche, fornendo una comparazione tra il RIPv1 e il RIPv2.

Entrambe le versioni di RIP sono dei protocolli distance vector, sono facili da configurare e usano l’hop count come metrica (dopo 15 hop la rete viene posta come irraggiungibile), usano l’holddown timers e lo split horizon per evitare i routing loops. I router hanno conoscenza delle sottoreti direttamente connesse e gli aggiornamenti includono informazioni sulla topologia (almeno la metrica); tali aggiornamenti avvengono in maniera periodica.

Il RIPv2 apporta dei vantaggi rispetto alla prima versione del protocollo. In particolare il RIPv2:

  • supporta il classless routing;
  • include nei routing updates le subnet mask;
  • ha un meccanismo di autenticazione negli updates (utilizza la criptatura MD5);
  • invia gli aggiornamenti in multicast (indirizzo 224.0.0.9) anziché in broadcast;
  • usa un routing tag con VLSM.

La configurazione del RIPv2 è identica a quella del RIPv1, l’unica differenza sta nell’inserire il comando version 2, come da esempio sotto:

Router(config)#router rip
Router(config-router)#version 2
Router(config-router)#network network-number

Per la verifica della configurazione si possono utilizzare i comandi show ip protocols, show ip route e show ip interface brief oltre, ovviamente, a show running-config. Il troubleshooting del RIPv2 può avvenire con il comando debug ip rip mentre per disattivare il debug basta inserire no debug all oppure undebug all.

Prima di concludere parliamo della rotta di default (default route). In generale, un router apprende il percorso verso una data destinazione in tre modi: attraverso una rotta statica (l’amministratore inserisce manualmente la rotta), con una rotta dinamica (grazie agli aggiornamenti inviati secondo un protocollo di routing) oppure per mezzo di una default route.
L’amministratore di rete può definire manualmente una rotta di default, cioè il percorso da seguire nel caso in cui non conosca alcuna rotta per raggiungere la destinazione. La rotta di default porta come vantaggio l’avere una ridotta tabella di routing e un percorso di default per destinazioni non conosciute.
La default route può essere impostata dal comando ip default-network in reti che utilizzano routing dinamico:

Router(config)#ip default-network rete

ad es.:

Router(config)#ip default-network 192.168.10.0

oppure attraverso una rotta statica, ad es.:

Router(config)#ip route 0.0.0.0 0.0.0.0 s0/0

dove gli zeri sia nel campo ip che nella subnek mask indicano ogni rete di destinazione con qualsiasi maschera. L’s0/0 è interfaccia su cui inviare i pacchetti (nell’esempio la seriale 0, dovete modificarla in base alle vostre esigenze).