Fondamenti di Routing
Descrizione delle route connesse, locali, statiche, d'aggregazione, di default e load balancing.
CCNA
I router hanno due funzioni principali: determinare il percorso migliore per le reti disponibili e instradare il traffico su quelle reti.
I percorsi migliori per le reti di destinazione sono elencate nella tabella di routing dei router che viene usata per l'inoltramento del traffico.
La tabella di routing contiene le reti connesse direttamente e le route statiche configurate dall'amministratore o imparate dinamicamente attraverso un protocollo di routing.
Route Connesse e Locali
Quando si configurano gli indirizzi IP sulle interfacce di un router, queste vengono salvate nella tabella di routing come route "direttamente connesse" con una subnet mask in notazione slash di /24.
Dall'IOS 15 in poi nella tabella di routing vengono salvate anche le route locali, che hanno sempre una subnet mask di /32, e sono utili perché mostrano direttamente nella tabella di routing quale IP è assegnato a quale interfaccia.
Prima dell'IOS 15, infatti, dalla tabella di routing non si poteva sapere l'IP delle interfacce perché le route connesse venivano mostrate come nel seguente esempio (il comando per vedere la tabella di routing è "show ip route"):
C 10.0.0.0/24 is directly connected, FastEthernet0/0
C 10.0.1.0/24 is directly connected, FastEthernet0/1
C 10.0.2.0/24 is directly connected, FastEthernet0/2
Da questa tabella si capisce che la sottorete 10.0.0.0 è raggiungibile dall'interfaccia FastEthernet0/0, ma non si conosce l'indirizzo IP esatto della relativa interfaccia: potrebbe essere 10.0.0.1 oppure 10.0.0.2 o anche 10.0.0.54 e per scoprire l'esatto IP si sarebbe dovuto usare un altro comando come, ad esempio, "show ip interface brief".
Grazie all'inserimento nella tabella di routing delle route locali della versione 15 dell'IOS, si può capire velocemente a quale interfaccia appartenga quale IP, rendendo un po' più semplice il lavoro dell'amministratore, come di seguito:
C 10.0.0.0/24 is directly connected, FastEthernet0/0
C 10.0.1.0/24 is directly connected, FastEthernet0/1
C 10.0.2.0/24 is directly connected, FastEthernet0/2
L 10.0.0.1/32 is directly connected, FastEthernet0/0
L 10.0.1.1/32 is directly connected, FastEthernet0/1
L 10.0.2.1/32 is directly connected, FastEthernet0/2
Route Statiche
Se un router riceve traffico per una rete a cui non è connesso direttamente, deve sapere come poterci arrivare per riuscire ad instradare il traffico relativo a quella rete.
A questo scopo l'amministratore può impostare manualmente una route statica per la destinazione o il router può impararla attraverso un protocollo di routing.


In questo esempio vediamo che il router R1 è connesso direttamente a tre reti: 10.0.0.0/24, 10.0.1.0/24 e 10.0.2.0/24, e può instradare traffico verso queste reti dopo aver semplicemente impostato l'IP sulle relative interfacce, tuttavia non può instradare traffico alla rete 10.1.0.0/24 perché questa si trova dietro ad R2.
Quindi, per poter far instradare a R1 il traffico per la rete 10.1.0.0/24, bisogna inserirvi una route statica.
Il comando generale per le route statiche è
ip route IP_da_raggiungere subnet_mask IP_prossimo_salto"
quindi nel nostro caso diventa
ip route 10.1.0.0 255.255.255.0 10.0.0.2
R2 è connesso direttamente a 10.1.0.0/24 e 10.0.0.0/24, ma non può raggiungere né 10.0.1.0/24 né 10.0.2.0/24, quindi impostiamo due route statiche anche per queste reti:
ip route 10.0.1.0 255.255.255.0 10.0.0.1
ip route 10.0.2.0 255.255.255.0 10.0.0.1
Route d'aggregazione
Consideriamo l'esempio di prima in cui abbiamo impostato due route statiche su R2, nel caso ci fossero state più route statiche, è anche possibile raggrupparle tutte utilizzando quella che viene definita come route d'aggregazione: queste route sono utili perché diminuiscono il lavoro dell'amministratore e l'utilizzo della memoria del router.


In questo esempio dobbiamo impostare route statiche su R1 per le reti 10.1.0.0/24, 10.1.1.0/24 e 10.1.2.1/24 che si trovano dietro R2, potremmo quindi aggiungerle nel modo seguente:
ip route 10.1.0.0 255.255.255.0 10.0.0.2
ip route 10.1.1.0 255.255.255.0 10.0.0.2
ip route 10.1.2.0 255.255.255.0 10.0.0.2
Oppure potremmo usare una route d'aggregazione per facilitarci il lavoro:
ip route 10.1.0.0 255.255.0.0 10.0.0.2
In questo caso abbiamo usato una route d'aggregazione di classe B, ma non è necessario utilizzare route "classful".
Ad esempio, potremmo unire il range 10.1.0.0 - 10.1.3.0 semplicemente assegnando gli ultimi due bit del terzo otteto, all'identificatore di host. Il nostro comando diventa quindi:
ip route 10.1.0.0 255.255.253.0 10.0.0.2
Longest Prefix Match


Consideriamo questa nuova rete: è molto simile a quella precedente, ma abbiamo un router in più (R5) e altre due reti (10.1.3.2/24 e 10.0.3.2/24).
Come prima aggiungiamo due route ad R1:
ip route 10.1.0.0 255.255.0.0 10.0.0.2
ip route 10.1.3.0 255.255.255.0 10.0.3.2
In questo caso se vogliamo mandare del traffico alla rete 10.1.2.0/24, questo partirà da R1 per poi attraversare R2, R3 ed R4 perché viene utilizzata la prima route statica (in quanto 10.1.2.0/24 si trova nel range della prima route e non della seconda).
Tuttavia, nel caso in cui vogliamo mandare traffico alla rete 10.1.3.2/24, che si trova nel range di entrambe le route statiche, il router userà il percorso con il prefisso più lungo, quindi il traffico passerà direttamente per R5, in quanto la route statica 10.1.3.0 ha un prefisso di 255.255.255, mentre la route 10.1.0.0 ha un prefisso di 255.255.
Load Balancing
ip route 10.1.0.0 255.255.0.0 10.0.0.2
ip route 10.1.0.0 255.255.0.0 10.0.3.2


Quando vengono aggiunte più route di lunghezza uguale verso la stessa destinazione, il router le aggiunge tutte alla tabella di routing ed esegue tra loro un bilanciamento del carico.
Importante: affinché i router possano eseguire il load balancing, è importante che le route statiche abbiano lo stesso IP di destinazione e la stessa lunghezza della subnet mask, in caso contrario il router segue la regola del longest Prefix Match.
Route di Default (Gateway of Last Resort)


In questo esempio abbiamo anche il collegamento ad Internet grazie a R1, e dalla nostra parte abbiamo un indirizzo IP pubblico di 203.0.113.1 e invece dalla parte dell'ISP l'indirizzo è 203.0.113.2.
Per impostare una route verso la rete esterna (Internet) aggiungiamo la seguente route:
ip route 0.0.0.0 0.0.0.0 203.0.113.2
Questa viene utilizzata per indirizzare tutto il traffico che non appartiene alla rete interna.
Se ora guardiamo la nostra tabella di routing su R1 (tramite il comando "show ip route") troveremo queste route:
ip route 10.1.0.0 255.255.0.0 10.0.0.2
ip route 10.1.3.0 255.255.255.0 10.0.3.2
ip route 0.0.0.0 0.0.0.0 203.0.113.2
Ora se vogliamo mandare del traffico verso 10.1.0.0, il router potrebbe usare la prima e la terza route, ma usa la prima in quanto più specifica.
Se vogliamo mandare del traffico alla rete 10.1.3.0, il router potrebbe usare tutte e tre le route, ma usa la seconda a causa del Longest Prefix Match.
Infine, se vogliamo mandare del traffico verso Internet, ad esempio verso la rete 40.40.40.0, il router usa la route di Last Resort.