7.1 Cos’è il Routing?
Quando un pacchetto IP deve raggiungere una rete diversa da quella del mittente, serve qualcuno che lo guidi attraverso le reti intermedie. Questo “qualcuno” è il router, e il processo decisionale si chiama routing (instradamento).
Il routing è il processo con cui un router seleziona il percorso migliore per inoltrare un pacchetto IP verso la rete di destinazione, consultando la propria tabella di routing.
Il routing funziona come un navigatore: conosce la mappa delle strade (tabella di routing), sa dove sei (interfaccia di ingresso) e dove devi andare (IP di destinazione). Sceglie il percorso migliore in base a criteri come distanza, traffico o costo. Se una strada è interrotta, il routing dinamico trova un percorso alternativo — il routing statico no.
7.2 La Tabella di Routing
La tabella di routing è il “database” del router: per ogni rete di destinazione conosciuta, indica quale interfaccia o quale router intermedio (next hop) usare per raggiungerla.
| Tipo | Rete destinazione | Mask | Next Hop | Interfaccia | Metrica |
|---|---|---|---|---|---|
C | 192.168.1.0 | /24 | Directly connected | Fa0/0 | 0 |
C | 192.168.2.0 | /24 | Directly connected | Fa0/1 | 0 |
S | 10.0.0.0 | /8 | 192.168.1.254 | Fa0/0 | 1 |
O | 172.16.0.0 | /16 | 192.168.2.2 | Fa0/1 | 110 |
S* | 0.0.0.0 | /0 | 203.0.113.1 | S0/0 | 1 |
C = Connected (rete direttamente collegata a un’interfaccia).
S = Static (rotta configurata manualmente).
O = OSPF (rotta appresa da un protocollo dinamico).
S* = Static default route (rotta “per tutto il resto”).
Metrica: valore numerico che indica il “costo” del percorso. Più bassa = preferita. Varia per protocollo.
Il processo di decisione del router
Se la tabella ha sia 10.0.0.0/8 che 10.1.0.0/16 e il pacchetto è destinato a 10.1.5.3, il router sceglie 10.1.0.0/16 perché ha il prefisso più lungo (16 bit vs 8). La rotta più specifica vince sempre. La default route 0.0.0.0/0 ha il prefisso più corto: è la scelta “di ultima istanza”.
7.3 Routing Statico
Nel routing statico, l’amministratore inserisce manualmente ogni rotta nella tabella. Il router non scopre nulla da solo e non si adatta ai cambiamenti della topologia.
Semplice da configurare in reti piccole. Nessun overhead di protocollo (nessun pacchetto di routing scambiato). Prevedibile e sicuro: nessun router esterno può iniettare rotte false. Consumo CPU/RAM minimo.
Non scala: in una rete con 50 router, gestire centinaia di rotte a mano è impraticabile. Non si adatta ai guasti: se un link cade, il router continua a mandare pacchetti in quel buco nero. Richiede aggiornamento manuale ad ogni modifica.
Esempio di configurazione (sintassi Cisco IOS)
Router(config)# ip route 10.0.0.0 255.0.0.0 192.168.1.254
Router(config)# ip route 0.0.0.0 0.0.0.0 203.0.113.1
! Prima riga: per raggiungere 10.0.0.0/8, manda a 192.168.1.254
! Seconda riga: default route → tutto il resto va a 203.0.113.1
Reti piccole (2-3 router), link stub (una sola uscita), default route verso l’ISP, rotte verso reti specifiche che non cambiano mai. In pratica, la default route è quasi sempre statica anche in reti che usano routing dinamico internamente.
7.4 Routing Dinamico
Nel routing dinamico, i router scambiano informazioni tra loro usando protocolli dedicati. Scoprono automaticamente le reti raggiungibili, calcolano il percorso migliore e si adattano ai cambiamenti (link che cadono, nuove reti aggiunte).
Ogni router annuncia le reti che conosce ai suoi vicini. I vicini propagano l’informazione ad altri router. In pochi secondi (o minuti, a seconda del protocollo), tutti i router convergono su una visione coerente della topologia e calcolano i percorsi ottimali.
I principali protocolli di routing
| Protocollo | Tipo | Algoritmo | Metrica | Ambito | Convergenza |
|---|---|---|---|---|---|
| RIP v2 | Distance Vector | Bellman-Ford | Hop count (max 15) | Reti piccole | Lenta (30s timer) |
| OSPF | Link State | Dijkstra (SPF) | Costo (basato su banda) | Reti medie/grandi | Veloce (1-5s) |
| EIGRP | Ibrido (Advanced DV) | DUAL | Composita (banda+delay) | Reti Cisco | Molto veloce |
| BGP | Path Vector | Best path selection | Attributi (AS path, policy) | Internet (inter-AS) | Lenta (minuti) |
Ogni router conosce solo la distanza (numero di hop) e la direzione (next hop) per ogni destinazione. Ogni 30 secondi invia tutta la sua tabella ai vicini. Semplice ma lento a convergere. Limite: 15 hop massimi (16 = irraggiungibile).
Analogia: chiedere indicazioni strada per strada senza avere la mappa.
Ogni router conosce l’intera topologia della rete (mappa completa). Calcola il percorso più breve con l’algoritmo di Dijkstra. Invia aggiornamenti solo quando qualcosa cambia. Molto più veloce e scalabile di RIP.
Analogia: ogni router ha la mappa completa di Google Maps e calcola la rotta.
BGP (Border Gateway Protocol) è il protocollo che tiene insieme Internet. Ogni ISP, grande azienda o provider cloud è un Autonomous System (AS) con un numero identificativo. BGP gestisce le rotte tra AS diversi, basandosi su politiche e non solo sulla metrica. Quando una nazione si “disconnette” da Internet, spesso è perché le rotte BGP sono state ritirate.
Statico vs Dinamico: quando usare quale
| Caratteristica | Statico | Dinamico |
|---|---|---|
| Configurazione | Manuale, rotta per rotta | Automatica (il protocollo scopre le rotte) |
| Adattamento ai guasti | Nessuno (serve intervento manuale) | Automatico (convergenza) |
| Overhead di rete | Zero | Presente (pacchetti di routing) |
| CPU/RAM | Minimo | Maggiore (calcolo percorsi) |
| Scalabilità | Solo reti piccole (2-5 router) | Reti grandi (migliaia di router) |
| Sicurezza | Alta (nessun protocollo esposto) | Media (possibili attacchi alle rotte) |
| Uso tipico | Default route, stub network | Reti campus, enterprise, ISP, Internet |
7.5 Il Percorso di un Pacchetto attraverso le Reti
Vediamo cosa succede hop per hop quando un PC nella LAN invia un pacchetto a un server su Internet.
192.168.1.0/24
10.0.0.0/30
142.250.184.46 (Google). Il PC controlla: la destinazione è nella mia rete? No → invia al default gateway (192.168.1.1 = R1).L’indirizzo IP sorgente e destinazione restano invariati per tutto il percorso (end-to-end). L’indirizzo MAC cambia ad ogni salto (hop-by-hop): in ogni segmento di rete il frame ha il MAC del router corrente e del prossimo router. Questo è il motivo per cui IP è al livello 3 (globale) e MAC al livello 2 (locale).
7.6 NAT — Network Address Translation
Con la scarsità degli indirizzi IPv4 pubblici, il NAT è diventato una tecnologia fondamentale: permette a decine, centinaia o migliaia di dispositivi con IP privati di condividere uno o pochi IP pubblici per uscire su Internet.
Il NAT (Network Address Translation) è un meccanismo che traduce gli indirizzi IP nei pacchetti in transito su un router, sostituendo l’IP privato del mittente con un IP pubblico. Il processo inverso avviene per le risposte.
LAN Privata
PC1: 192.168.1.10
PC2: 192.168.1.20
PC3: 192.168.1.30
Privato ↔ Pubblico
Internet
IP Pubblico:
85.42.197.10
Tipi di NAT
Mappatura 1:1 fissa tra un IP privato e un IP pubblico. Usato per server interni che devono essere raggiungibili dall’esterno (es. web server).
192.168.1.10 ↔ 85.42.197.11 (sempre)
Mappatura N:M da un pool di IP privati a un pool di IP pubblici. Il router assegna un IP pubblico disponibile a richiesta. Se il pool si esaurisce, i nuovi host devono attendere.
Mappatura N:1 — tutti gli host condividono un singolo IP pubblico. Il router distingue le connessioni usando i numeri di porta come identificativo.
Il più usato: è quello del tuo router di casa!
PAT in azione: la tabella di traduzione
Con il PAT, il router mantiene una tabella di traduzione che associa ogni connessione interna alla porta sorgente usata verso l’esterno:
| IP interno | Porta interna | IP pubblico | Porta pubblica | Destinazione |
|---|---|---|---|---|
192.168.1.10 | 51234 | 85.42.197.10 | 51234 | 142.250.184.46:443 |
192.168.1.20 | 49876 | 85.42.197.10 | 49876 | 142.250.184.46:443 |
192.168.1.30 | 52100 | 85.42.197.10 | 52100 | 151.101.1.69:80 |
Quando Google risponde, il pacchetto arriva a 85.42.197.10:51234. Il router consulta la tabella, trova che la porta 51234 corrisponde a PC1 (192.168.1.10:51234), riscrive l’IP e la porta di destinazione e inoltra a PC1. Se la risposta fosse sulla porta 49876, andrebbe a PC2. La porta è la chiave che distingue le connessioni.
Inside Local — IP privato del dispositivo interno (es. 192.168.1.10)
Inside Global — IP pubblico assegnato dal NAT (es. 85.42.197.10)
Outside Global — IP pubblico del server esterno (es. 142.250.184.46)
Outside Local — come il server è visto dalla rete interna (di solito = Outside Global)
7.7 Limiti del NAT e Soluzioni
Il NAT ha “salvato” IPv4 ma introduce problemi reali:
- Rompe il modello end-to-end: un host esterno non può iniziare una connessione verso un host interno (senza port forwarding)
- Complicazioni per alcuni protocolli: VoIP (SIP), FTP attivo, IPsec richiedono workaround
- Overhead: il router deve riscrivere header e mantenere la tabella di traduzione
- Troubleshooting più complesso: l’IP visto su Internet non è quello reale del dispositivo
- Port Forwarding: mappa una porta pubblica a un IP:porta interno (per server, gaming, telecamere)
- DMZ: espone un host interno direttamente (rischioso)
- UPnP / NAT-PMP: apertura automatica delle porte (usato da console e app)
- IPv6: la soluzione definitiva — ogni dispositivo ha un IP pubblico, NAT non necessario
7.8 Riepilogo del Modulo
🧪 Verifica di Autovalutazione
Soluzioni
Domanda 01 — Tabella di routing
Domanda 02 — Default route
0.0.0.0/0: corrisponde a qualsiasi destinazione non presente in modo più specifico nella tabella. È fondamentale perché un router non può conoscere tutte le reti di Internet; la default route gli dice “per tutto ciò che non conosci, manda di là” (tipicamente verso l’ISP). Senza default route, i pacchetti verso destinazioni sconosciute vengono scartati.Domanda 03 — Longest prefix match
10.0.0.0/8 e 10.1.0.0/16. Un pacchetto per 10.1.5.3 corrisponde a entrambe, ma il router sceglie 10.1.0.0/16 perché /16 > /8 — è più specifica. La rotta più specifica vince sempre.