I Protocolli di Routing Dinamico
Descrizione generale dei protocolli di routing, delle metriche, distanza amministrava, interfacce di loopback, interfacce passive e adiacenze.
CCNA
Quando viene usato un protocollo di routing, i router si scambiano automaticamente informazioni riguardo le loro tabelle di routing, poi le usano per determinare il percorso migliore verso le destinazioni conosciute.
Quando cambia qualcosa all'interno della rete, come la creazione di una nuova sottorete o un collegamento che va offline, i router si aggiornano e ricalcolano automaticamente il nuovo percorso migliore.
L'uso delle route statiche può essere utile nelle piccole reti, ma in quelle più grandi si consiglia di usare i protocolli di routing, in questo modo i router si scambiano le informazioni riguardo le sottoreti senza il bisogno che l'amministratore debba inserire manualmente ogni route.
Solitamente si usano sia i protocolli di routing sia le route statiche, in questo caso il protocollo di routing viene usato per portare il carico delle informazioni della rete, mentre le route statiche possono essere usate come route di backup o come route verso internet (che verrà poi iniettata nel protocollo di routing affinché venga poi scoperta anche dagli altri router).
I protocolli di routing possono essere divisi in due categorie principali:
Protocolli interni al sistema autonomo (IGPs, Interior Gateway Protocols): vengono usati per instradare il traffico all'interno di una stessa organizzazione
Protocolli esterni al sistema autonomo (EGPs, Exterior Gateway Protocols): vengono usati per instradare il traffico tra diverse organizzazioni attraverso Internet, l'unico protocollo di questo tipo ancora in uso è il Border Gateway Protocol (BGP).
I protocolli IGP possono essere ulteriormente divisi in due categorie principali:
Protocolli Distance Vector (o di Bellman-Ford): Con questi protocolli ogni router manda ai suoi vicini connessi una lista di tutte le sue reti conosciute insieme alla sua distanza da quei network, quindi questo tipo di protocolli non condividono le informazioni riguardanti l'intera topologia della rete, ma ogni router conosce solo i suoi vicini connessi e le reti che conoscono. A causa di ciò questo tipo di protocolli spesso viene definito come "Routing by rumour".
Protocolli Link State: Con questi protocolli ogni router descrive se stesso e le sue interfacce ai vicini connessi direttamente, l'informazione viene poi passata invariata da un router all'altro fino a che ogni router impara tutto riguardo alla rete, incluso ogni altro router, le loro interfacce e a cosa sono collegate.


Legenda
RIP: Routing Information Protocol
EIGRP: Enhanced Interior Gateway Routing Protocol
OSPF: Open Shortest Path First
IS-IS: Intermediate System - Intermediate System
BGP: Border Gateway Protocol
Interior Gateway Protocols
Tutti i IGP si occupano dello stesso lavoro: scambiare informazioni riguardo alle route all'interno di un'organizzazione e determinare il percorso migliore (o percorsi migliori).
Solitamente viene usato solo uno dei vari IGPs, ma potrebbero esserci casi in cui si hanno diversi IGPs attivi (a seguito di una fusione di due aziende, per esempio). Nonostante le informazioni verranno comunque distribuite tra i vari IGPs, generalmente è meglio usarne solo uno alla volta.
Metrica di Routing
Un router potrebbe ricevere vari percorsi possibili per arrivare alla stessa destinazione, ma solo il percorso migliore verrà salvato nella tabella di routing e usato.
I vari IGPs usano metodi differenti per calcolare il percorso migliore verso una destinazione: ad ogni percorso viene assegnato un valore (la metrica di routing) che indica quanto quel percorso sia ottimale ed il percorso migliore è quello con la metrica più bassa.
I router Distance Vector si scambiano tra loro le informazioni delle reti che conoscono e la metrica per arrivarci.
I router Link State "pubblicizzano" tra loro tutti i collegamenti nella loro parte della rete, ed ogni router prende queste informazioni ed esegue un calcolo indipendente del suo percorso migliore, per arrivare ad ogni destinazione.
Se il percorso migliore verso una destinazione viene perso (per esempio a causa di un collegamento che cade), questo viene rimosso dalla tabella di routing e sostituito con il prossimo percorso migliore.
Metrica di RIP
Il protocollo RIP utilizza il conto dei salti come sua metrica e 15 è il numero massimo di salti.
I percorso con più di 15 salti vengono definiti "non raggiungibili".
RIP viene usato, di solito, solo in ambienti piccoli o di test.
Metrica di OSPF
OSPF usa il "costo" come metrica che, di default, viene ricavato automaticamente dalla larghezza della banda dell'interfaccia.
E' anche possibile configurare manualmente il costo dei collegamenti per poter manipolare il percorso.
Metrica di IS-IS
Anche questo protocollo usa il "costo" come metrica, ma non viene ricavato automaticamente dalla larghezza di banda dell'interfaccia. Tutti i collegamenti hanno, di default, un costo uguale.
E' possibile configurare manualmente il costo per poter manipolare il percorso, tuttavia se non si vuole farlo allora verrà usato il percorso con il minor numero di salti.
Metrica di EIGRP
EIGRP usa la larghezza di banda e il ritardo dei collegamenti per calcolare la metrica, possono anche venir considerate il carico e l'affidabilità, ma queste sono ignorate di default).
Un valore fisso di ritardo viene usato in base alla larghezza di banda dell'interfaccia, il protocollo non misura direttamente il ritardo effettivo.
E' possibile configurare manualmente il ritardo dei collegamenti per poter manipolare il percorso.
Scelta del Protocollo di Routing
RIP usa il conto dei salti ed ha una metrica massima standard di 15 . Non viene solitamente usato nelle reti di produzione a causa dei suoi limiti di scalabilità.
EIGRP è molto semplice da mantenere, calcola i cambiamenti molto velocemente e il suo calcolo della metrica normalmente sceglie il percorso migliore di default. Tuttavia, viene supportato solo sui router Cisco.
Il calcolo della metrica di OSPF di solito sceglie il percorso migliore di default. E' open standard e ciò significa che viene supportato da tutti i produttori di router ed è l'IGP più utilizzato. E' tuttavia più complicato da gestire rispetto a EIGRP.
I collegamenti IS-IS devono essere configurati manualmente, altrimenti usa il conto dei salti per determinare il percorso migliore. Viene usato solitamente nelle reti degli ISP o in grandi organizzazioni con la loro rete MPLS, e viene scelto a causa della sua scalabilità.
Equal Cost Multi Path - ECMP
Se più percorsi verso una stessa destinazione hanno una metrica uguale, il router inserisce tutti i percorsi nella sua tabella di routing.
L'ECMP esegue un bilanciamento del carico del traffico in uscita verso questi percorsi.
Tutti i protocolli IGPs eseguono ECMP, tranne EIGRP che è l'unico protocollo capace di eseguire "UnEqual Cost Multi Path", ma deve venir prima configurato per poterlo fare.
Distanza Amministrativa
Come abbiamo visto, solo le route con la miglior metrica (quella minore) vengono inserite nelle tabelle di routing, tuttavia se diversi percorsi verso una stessa destinazione vengono ricevuti da differenti protocolli di routing, non è possibile comparare le loro metriche, in quanto ogni protocollo calcola la metrica in maniera differente.
A questo scopo viene usata la distanza amministrativa (DA), che è una misura di quanto siano "affidabili" i calcoli del protocollo di routing.
Se vengono ricevute diverse route da vari protocolli, vince quello con la DA minore.
Di seguito possiamo vedere la DA assegnata ai vari protocolli:
Interfacce connesse: 0
Route statiche: 1
BGP esterno: 20
EIGRP: 90
OSPF: 110
IS-IS: 115
RIP: 120
Attenzione: la DA viene usata per scegliere tra diversi percorsi ricavati da differenti protocolli di routing, mentre la metrica viene utilizzata per scegliere tra diversi percorsi ricavati dallo stesso protocollo.
Viene prima considerata la DA per restringere la scelta verso il miglior protocollo di routing, quindi viene considerata la metrica per scegliere quale percorso riuscirà ad entrare nella tabella di routing.
Facciamo un esempio per capire meglio il tutto.
Un router riceve diverse route verso la rete 10.10.10.0/24 tramite OSPF e RIP.
Per prima cosa si considera la DA: in questo caso OSPF ha una DA minore di RIP e quindi le route di quest'ultimo vengono scartate. Poi il router compara tra loro le route imparate tramite OSPF e salva nella tabella di routing quella con il costo minore. Se vengono ricevute diverse route con metrica uguale, tutte queste route finiscono nella tabella di routing ed il router eseguirà load balancing tra di loro.
Route di Failover (Floating Static Route)
Se il percorso migliore verso una destinazione viene perso (ad esempio a seguito della caduta del collegamento), questo viene rimosso dalla tabella di routing.
Vorremmo, quindi, poter configurare delle route statiche che agiscano da backup, tuttavia le route statiche hanno una DA pari a 1, e verranno sempre favorite rispetto alle route imparate tramite un IGP.
Possiamo, quindi, modificare la DA della route statica per farla funzione come route di backup invece che come route preferenziale.
Il comando è lo stesso di quando si imposta una route statica: si aggunge semplicemente, dopo l'IP del prossimo salto, il valore della DA, il quale deve essere maggiore della DA del protocollo di routing.
Ecco un esempio di route che agisce come route di backup con il protocollo OSPF (che ha una DA di 110).
ip route 10.0.1.0 255.255.255.0 10.1.3.2 115
Le route di failover possono essere usate anche quando si usano solamente route statiche, in questo caso dobbiamo assegnare una DA maggiore di 1 (DA delle route statiche), come di seguito:
ip route 10.0.1.0 255.255.255.0 10.1.1.2
ip route 10.0.1.0 255.255.255.0 10.1.3.2 5
Interfacce di Loopback
Queste interfacce sono di tipo logico, permettono di assegnare un indirizzo IP ad un router o ad uno switch di livello 3, senza essere legato ad un'interfaccia fisica.
Siccome queste interfacce sono puramente virtuali, non hanno componenti fisiche che possono essere soggette a problemi, quindi non possono mai disattivarsi.
Queste interfacce, ovviamente, non possono trovarsi fisicamente nella stessa sottorete degli altri dispositivi (essendo virtuali), quindi gli si assegna una subnet mask di /32 per evitare lo spreco di indirizzi IP.
Si consiglia di assegnare le interfacce di loopback ai router, e vengono usate per il traffico che ha per destinazione finale il router stesso.
Questo tipo di traffico potrebbe essere gestionale, VoIP (Voice over IP), BGP peering ecc...
Ciò fornisce ridondanza se ci sono diversi percorsi verso il router.
Inoltre, le interfacce di loopback sono anche usate per identificare il router (Router ID) in OSPF.
La stessa interfaccia virtuale può essere usata per diversi scopi (ad esempio sia per la gestione del dispositivo sia per BGP).
Si può anche configurare diverse interfacce di loopback, anche se non è una pratica comune e viene solitamente fatto quando un'interfaccia di loopback è richiesta per un uso speciale.
Adiacenze
I protocolli IGP sono configurati al livello di configurazione globale (enable, config t) e poi attivati sulle interfacce individuali.
Quando il protocollo di routing è attivo su di un'interfaccia, il router cercherà altri dispositivi sul collegamento che usano lo stesso protocollo.
Questo è possibile tramite quelli che vengono definiti "Hello Packets", il router invia e rimane in ascolto di questi pacchetti.
Quando un dispositivo con lo stesso protocollo viene trovato, i router formano un'adiacenza e possono procedere allo scambio d'informazioni.
I protocolli di routing moderni usano multicast per questi pacchetti, ed è più efficiente rispetto all'uso del broadcast dei protocolli precedenti.
Solo i router con lo stesso protocollo processano il pacchetto.


In questo esempio R1 ha un protocollo di routing attivo sull'interfaccia virtuale Loopback0 e sulle interfacce fisiche FE1/0 e FE2/0, mentre non è attivo sull'interfaccia FE2/0 perché il router RC appartiene ad un'altra azienda a cui vogliamo poterci collegare, ma a cui non vogliamo mandare informazioni riguardanti la nostra rete interna (in caso contrario potrebbero esserci problemi di sicurezza).
R1 invia e rimane in ascolto dei pacchetti hello sulle interfacce Loopback0, FE0/0 e FE1/0 e forma adiacenze con i router RA e RB, mentre non farà lo stesso sull'interfaccia FE2/0 e quindi non forma nessuna adiacenza con RC.
Per poter mandare il traffico verso RC possiamo semplicemente impostare delle route statiche.
R1 manda informazioni a RB e RA riguardanti le sottoreti 10.0.0.0/24 e 10.0.1.0/24 e riguardo l'interfaccia di Loopback a 192.168.1.1/32.
R1 non manda, tuttavia, informazioni riguardanti 10.0.2.0/24 e quindi né RA né RB vengono a conoscenza delle route per 10.0.2.0/24.
Interfacce Passive
Le interfacce passive permettono di includere una sottorete IP nel protocollo di routing, senza però inviare aggiornamenti attraverso l'interfaccia.
Considerando l'esempio precedente, se FastEthernet 2/0 viene configurata come interfaccia passiva, RA e RB imparano le route verso 10.0.2.0, ma le informazioni riguardanti la rete interna non verranno inviate a RC.
Si consiglia di impostare le interfacce di loopback come interfacce passive, perché è impossibile formare adiacenze con le interfacce di loopback perché non sono interfacce fisiche.
Rendendo la loopback passiva, otteniamo che questa verrà "pubblicizzata" dal protocollo di routing, ma non spreca risorse inviando e restando in ascolto dei pacchetto hello.
Per riassumere, possiamo dire che le interfacce passive vengono usate per le interfacce di loopback e le interfacce fisiche dove il dispositivo dall'altra parte appartiene ad un'altra organizzazione. Ovviamente non vogliamo mandare informazioni riguardanti la nostra rete interna ad un'altra azienda, ma vogliamo solamente potervici connettere.