Per poter instradare un pacchetto, un router deve conoscere almeno quanto segue:
• Indirizzo di destinazione a cui è destinato il pacchetto. A questo si occupano protocolli di livello 3 come un IP.
• Router vicini da cui è possibile conoscere le reti remote e spostare i pacchetti verso la destinazione. • Rotte verso reti remote e il modo per determinare il percorso migliore per ciascuna di esse.
• Modo per apprendere, verificare e gestire le informazioni di routing. Le informazioni di routing incomplete, errate o instabili sono peggio che non avere alcuna informazione di routing. Se un router non ha informazioni di routing, eliminerà i pacchetti e lo farà sapere alla fonte. Se un router ha informazioni di routing errate, i loop possono formarsi e far cadere le reti.
Per poter instradare un pacchetto, un router deve conoscere almeno quanto segue: • Indirizzo di destinazione a cui è destinato il pacchetto. A questo si occupano protocolli di livello 3 come un IP. • Router vicini da cui è possibile conoscere le reti remote e spostare i pacchetti verso la destinazione. • Rotte verso reti remote e il modo per determinare il percorso migliore per ciascuna di esse. • Modo per apprendere, verificare e gestire le informazioni di routing. Le informazioni di routing incomplete, errate o instabili sono peggio che non avere alcuna informazione di routing. Se un router non ha informazioni di routing, eliminerà i pacchetti e lo farà sapere alla fonte. Se un router ha informazioni di routing errate, i loop possono formarsi e far cadere le reti.
Instradamento statico
Quando si aggiungono manualmente percorsi alla tabella di routing, si parla di routing statico. Vi sono vantaggi e svantaggi nell’utilizzo del routing statico. I vantaggi sono:
Non vi è alcun sovraccarico in termini di utilizzo della CPU del router e larghezza di banda tra i router. Quando viene utilizzato il routing dinamico, i pacchetti vengono scambiati tra i router e utilizza la larghezza di banda. Ciò può essere costoso quando attraversano collegamenti WAN. I router devono inoltre elaborare questi pacchetti e questo richiede anche alcuni cicli della CPU.
Aggiunge un certo grado di sicurezza poiché l’amministratore controlla quali percorsi i router possono conoscere e apprendere.
Gli svantaggi del routing statico sono:
L’amministratore deve conoscere così bene la rete interna da sapere dove si trova ciascuna rete di destinazione e qual è il prossimo passo verso di essa.
Ogni modifica deve essere eseguita manualmente su ciascun router all’interno della rete.
Nelle reti di grandi dimensioni questo può essere ingestibile.
Per aggiungere una rotta statica, utilizzare il comando
seguente nella modalità di configurazione globale:
ip route destination_network mask {indirizzo_hop_promo | exit_interface}
Routing predefinito
Il routing predefinito può essere considerato un tipo speciale di routing statico. La differenza tra una rotta statica normale e una rotta predefinita è che viene utilizzata una rotta predefinita per inviare i pacchetti destinati a qualsiasi destinazione sconosciuta a un singolo indirizzo hop successivo.
Le rotte predefinite sono utili quando si ha a che fare con una rete con un singolo punto di uscita. È inoltre utile quando è necessario instradare gran parte delle reti di destinazione verso un singolo dispositivo hop successivo. Quando si aggiunge una rottapredefinita, è necessario assicurarsi che il dispositivo hop successivo possa instradare ulteriormente il pacchetto, altrimenti il ​​dispositivo hop successivo lascerà cadere il pacchetto.
Un altro punto da ricordare è che quando esiste una rotta più specifica verso una destinazione nella tabella di routing, il router utilizzerà quella rotta e non quella predefinita. L’unica volta in cui il router utilizzerà la rotta predefinita è quando non esiste una rotta specifica.
ip route 0.0.0.0 0.0.0.0 next-hop
I protocolli di routing sono suddivisi nelle seguenti tre classi, a seconda di come funzionano:
Distance Vector
I protocolli Distance Vector sono caratterizzati da due cose:
Usano la distanza ed una misura del costo di un percorso. Il numero di salti (hop) tra un router e una rete di destinazione determina la distanza. Inviano periodicamente l’intera tabella di routing ai router vicini. Il router ricevente unisce quindi la sua tabella di routing con le informazioni ricevute basate su AD e metriche. Questo processo si chiama routing by rumor poiché il router ricevente crede alle informazioni ricevute dal vicino. I protocolli distance Vector sono più lenti a convergere. Una rete è considerata convergente quando tutti i router della rete conoscono tutte le reti di destinazione. I protocolli Distance Vector sono relativamente più facili da configurare, gestire e risolvere i problemi. D’altra parte, consumano molta più larghezza di banda e CPU perché inviano periodicamente l’intera tabella di routing, indipendentemente dal fatto che non sia cambiato nulla tra il periodo. RIP è un esempio di protocollo Distance Vector.
Link State:
I protocolli Link State sono caratterizzati dalle seguenti tre funzioni:
Formano una relazione vicina con altri router prima di condividere le informazioni di routing. Non inviano informazioni di routing all’intera rete come nel caso dei protocolli Distance Vector. Le informazioni relative ai loro vicini sono archiviate in una tabella. Scambiano solo informazioni relative alla connettività o stato dei collegamenti , a differenza dei protocolli Distance Vector che inviano tabelle di routing. Queste informazioni sono memorizzate in una tabella topologica per costruire una visione completa della rete. Sulla base degli stati dei collegamenti ricevuti, ciascun router calcola il percorso migliore per ogni destinazione nella rete. Ogni protocollo ha il suo algoritmo per calcolare il percorso migliore.Gli aggiornamenti vengono inviati solo in caso di modifica anziché periodicamente, come nel caso dei protocolli Distance Vector. I protocolli Link State convergono più velocemente dei protocolli Distance Vector. I protocolli Link State sono un po‘ più complessi da configurare, gestire e risolvere i problemi rispetto ai protocolli Distance Vector. OSPF è un esempio di protocollo dello Link State.
3. Ibrido : i protocolli ibridi utilizzano aspetti sia dei protocolli Distance Vector sia dei protocolli Link State. L’EIGRP è un esempio di protocollo ibrido.
Il routing-loop è una situazione in cui un pacchetto continua a essere instradato tra due o più router a causa di problemi nella tabella di routing. Nel caso di protocolli Distance Vector, il fatto che questi protocolli instradino by rumor e abbiano un tempo di convergenza lento può causare loop di routing.
Per capire come possono verificarsi i loop di routing con i protocolli Distance Vector, consideriamo la rete mostrata nella Figura 1-1.
Figura 1-1 Loop di routing
Quando convergono, tutti i router nella rete mostrati sopra conosceranno la rete 192.168.5.0/24. Se RouterD perde la connettività a 192.168.5.0/24, rimuoverà il percorso verso quella rete dalla sua tabella di routing. Quando RouterC riceve il successivo aggiornamento periodico da RouterD, saprà che il percorso verso 192.168.5.0/24 è perso e lo rimuoverà dalla sua tabella di routing. In questa fase, RouterA e RouterB pensano ancora che 192.168.5.0/24 sia raggiungibile tramite RouterC.
Mentre Router C attende di inviare l’aggiornamento periodico, se Router B invia il proprio aggiornamento, conterrà 192.168.5.0/24 come rete di destinazione. Poiché Router C non ha quella rete nella sua tabella di routing, supporrà che sia una nuova destinazione e Router B installerà il percorso verso quella rete, indicando Router B. Successivamente, il modulo di aggiornamento periodico Router C conterrà la rete 192.168.5.0/24 e RouterB supporrà di conoscere tutte le reti contenute in tale aggiornamento!
Ora quando Route rB riceve un pacchetto destinato a 192.168.5.0/24, lo inoltrerà a Router C. Quando Router C riceve quel pacchetto, vedrà che 192.168.5.0/24 è verso Router B e lo restituirà . Questo ciclo continuerà fino a quando il valore IP TTL nell’intestazione del pacchetto raggiunge lo zero e uno dei router lo rimuove.
Per evitare tali cicli di instradamento, i protocolli Distance Vector dispongono di alcuni controlli.
Numero massimo di hop
Senza controlli, le informazioni di routing errate possono diffondersi in tutta la rete. Per evitare ciò, protocolli come RIP hanno un numero massimo di hop. Per RIP questo valore è impostato su 15. Qualsiasi percorso con un numero di hop superiore a quello massimo è considerato irraggiungibile e non verrà utilizzato. Nello scenario sopra, il conteggio degli hop originale di 192.168.5.0/24 su RouterB era 2. Dopo che RouterA ha perso la connettività e RouterC ha appreso le informazioni errate, vedrebbe 192.168.5.0/24 con 3 hop. Quando RouterB ottiene questo aggiornamento da RouterC, aggiungerà 1 al conteggio hop e lo farà 4. Questo ciclo continuerà . Senza un conteggio massimo di hop in atto, ciò continuerà . Questo fenomeno si chiama contare all’infinito. Senza il conteggio massimo di hop in atto, il conteggio crescente di hop farà sì che i percorsi vengano considerati irraggiungibili e verranno rimossi dalla tabella di routing causando la risoluzione del loop.
Split Horizon
La regola Split Horizon afferma che le informazioni di routing apprese da un’interfaccia non possono essere pubblicizzate di nuovo a tale interfaccia. Con questa regola in atto nello scenario sopra, RouterB non avrebbe mai pubblicizzato la rete 192.168.5.0/24 su RouterC poiché da lì è nata quella rotta. Quindi un routing loop non si verificherebbe mai. Per impostazione predefinita, Slip Horizon è abilitato per RIP ed EIGRP.
Route Poison
Route poison utilizza il numero massimo di hop per arrestare i loop di rete. Quando un router perde un percorso, pubblicizza tale percorso con un numero di hop superiore al numero massimo di hop. Il router ricevente ora trova la rete di destinazione irraggiungibile e la pubblicizza in anticipo come tale. Invia inoltre l’aggiornamento verso il router di origine per garantire che il percorso sia ora irraggiungibile nell’intera rete. Questo processo si chiama poison reverse.
Nella rete mostrata prima RouterD perde 192.168.5.0/24, pubblicizza il percorso verso RouterC con un numero di hop superiore al numero massimo di hop. RouterC a sua volta aggiornerà RouterB. Questo è il processo di route poison. RouterC invia anche la poison route a RouterD per garantire che l’intera rete sia sincronizzata. Questo è il processo di poison reverse.
Hold Downs
I protocolli di routing implementano i timer per consentire il recupero di percorsi persi o il passaggio al percorso migliore successivo verso la stessa destinazione. Questi timer sono chiamati hold down timer. Questo in genere è utile nel caso in cui i collegamenti cadono e ritornino rapidamente attivi (questo si chiama flapping). Una di queste rotte che entrano ed escono dalla tabella di routing può causare loop e fermare la convergenza della rete. Hold downs timer impedisce anche le modifiche che incidono su un percorso perso di recente.
Nell’esempio sopra, hold downs avrebbe impedito l’aggiornamento al RouterB a effettuare immediatamente l’aggiornamento del RouterC dopo la perdita del percorso verso 192.168.5.0/24. Nel frattempo, RouterC avrebbe aggiornato RouterB sulla rotta persa.