Lezione 8 di 11

Sistemi e Reti 7

Modulo 7 — Routing | Hands on Stem
Modulo 7 di 10

Routing, NAT e PAT

Come i pacchetti trovano la loro strada attraverso le reti: routing statico, dinamico, default route, e come il NAT ha salvato IPv4.

Prof. D. Bertolino Hands on Stem Sistemi e Reti

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).

Definizione

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.

Analogia: il navigatore GPS

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.

TipoRete destinazioneMaskNext HopInterfacciaMetrica
C192.168.1.0/24Directly connectedFa0/00
C192.168.2.0/24Directly connectedFa0/10
S10.0.0.0/8192.168.1.254Fa0/01
O172.16.0.0/16192.168.2.2Fa0/1110
S*0.0.0.0/0203.0.113.1S0/01
Come leggere la tabella

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

Riceve un pacchetto su un’interfaccia e legge l’IP di destinazione.
Cerca una corrispondenza nella tabella di routing, partendo dalla rotta più specifica (longest prefix match).
Se trova una corrispondenza: inoltra il pacchetto all’interfaccia o al next hop indicato.
Se non trova nessuna corrispondenza: usa la default route (0.0.0.0/0). Se non c’è nemmeno quella: scarta il pacchetto e invia un ICMP “Destination Unreachable”.
Longest Prefix Match: la regola d’oro

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.

Vantaggi

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.

Svantaggi

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

Quando usare il routing statico

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).

Come funziona

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

ProtocolloTipoAlgoritmoMetricaAmbitoConvergenza
RIP v2Distance VectorBellman-FordHop count (max 15)Reti piccoleLenta (30s timer)
OSPFLink StateDijkstra (SPF)Costo (basato su banda)Reti medie/grandiVeloce (1-5s)
EIGRPIbrido (Advanced DV)DUALComposita (banda+delay)Reti CiscoMolto veloce
BGPPath VectorBest path selectionAttributi (AS path, policy)Internet (inter-AS)Lenta (minuti)
Distance Vector (RIP)

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.

Link State (OSPF)

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: il protocollo di Internet

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

CaratteristicaStaticoDinamico
ConfigurazioneManuale, rotta per rottaAutomatica (il protocollo scopre le rotte)
Adattamento ai guastiNessuno (serve intervento manuale)Automatico (convergenza)
Overhead di reteZeroPresente (pacchetti di routing)
CPU/RAMMinimoMaggiore (calcolo percorsi)
ScalabilitàSolo reti piccole (2-5 router)Reti grandi (migliaia di router)
SicurezzaAlta (nessun protocollo esposto)Media (possibili attacchi alle rotte)
Uso tipicoDefault route, stub networkReti 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.

Topologia di esempio
LAN
192.168.1.0/24
→
R1
→
WAN
10.0.0.0/30
→
R2 (ISP)
→
Internet
PC (192.168.1.10) vuole raggiungere 142.250.184.46 (Google). Il PC controlla: la destinazione è nella mia rete? No → invia al default gateway (192.168.1.1 = R1).
Livello 2: il PC crea un frame con MAC sorgente = MAC del PC, MAC destinazione = MAC di R1 (non di Google!). Lo invia via Ethernet.
R1 riceve il frame, lo de-incapsula, legge l’IP destinazione. Cerca nella tabella di routing: non ha una rotta specifica per 142.250.x.x → usa la default route verso R2 (10.0.0.2).
R1 crea un nuovo frame con MAC sorgente = MAC di R1 (lato WAN), MAC destinazione = MAC di R2. L’IP sorgente e destinazione restano invariati. Inoltra su S0/0.
R2 riceve il pacchetto, cerca la rotta per 142.250.184.46. Essendo un router ISP con BGP, conosce il percorso. Inoltra verso Internet con un nuovo frame.
Il pacchetto attraversa diversi hop su Internet (tipicamente 10-20 router), ogni volta con un nuovo frame Ethernet/fibra. L’IP di destinazione resta sempre lo stesso; il MAC cambia ad ogni hop.
Concetto chiave: IP end-to-end, MAC hop-by-hop

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.

Definizione

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.

Come funziona il NAT

LAN Privata

PC1: 192.168.1.10
PC2: 192.168.1.20
PC3: 192.168.1.30

Router NAT
Privato ↔ Pubblico

Internet

IP Pubblico:
85.42.197.10

Tipi di NAT

NAT Statico

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)

NAT Dinamico

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.

PAT (Overload)

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 internoPorta internaIP pubblicoPorta pubblicaDestinazione
192.168.1.105123485.42.197.1051234142.250.184.46:443
192.168.1.204987685.42.197.1049876142.250.184.46:443
192.168.1.305210085.42.197.1052100151.101.1.69:80
Come fa il router a distinguere le risposte?

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.

Terminologia NAT (da conoscere per l’esame)

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:

Problemi del NAT
  • 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
Soluzioni e workaround
  • 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

Routing
Processo decisionale del router: consulta la tabella, trova il best match (longest prefix), inoltra al next hop.
Statico vs Dinamico
Statico: manuale, semplice, non si adatta. Dinamico: automatico, si adatta ai guasti. RIP, OSPF, EIGRP, BGP.
NAT / PAT
Traduce IP privati in pubblici. PAT: N dispositivi su 1 IP pubblico usando le porte come identificativo.
IP vs MAC
IP: end-to-end (non cambia). MAC: hop-by-hop (cambia ad ogni router). Concetto fondamentale.

🧪 Verifica di Autovalutazione

01 Cos’è la tabella di routing? Quali informazioni contiene?
02 Cos’è la default route e perché è fondamentale?
03 Spiega il principio del “longest prefix match” con un esempio.
04 Quali sono i vantaggi e i limiti del routing statico?
05 Qual è la differenza tra un protocollo distance vector e uno link state?
06 Cosa succede all’indirizzo MAC quando un pacchetto attraversa un router?
07 Cos’è il NAT e perché è stato inventato?
08 Qual è la differenza tra NAT statico e PAT (overload)?
09 Come fa il router con PAT a distinguere le risposte per diversi host interni?
10 Perché il NAT è considerato una soluzione temporanea? Quale sarà la soluzione definitiva?

Soluzioni

Domanda 01 — Tabella di routing
La tabella di routing è il database consultato dal router per decidere dove inoltrare ogni pacchetto. Per ogni rotta contiene: la rete di destinazione con la subnet mask, il next hop (IP del prossimo router) o l’interfaccia di uscita, la metrica (costo del percorso) e il tipo (Connected, Static, OSPF, BGP…).
Domanda 02 — Default route
La 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
Quando la tabella ha più rotte che corrispondono all’IP di destinazione, il router sceglie quella con il prefisso più lungo (più bit di rete). Esempio: la tabella ha 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.
Domanda 04 — Routing statico: vantaggi e limiti
Vantaggi: semplicità, nessun overhead di protocollo, prevedibilità, sicurezza (nessun protocollo esposto), consumo CPU/RAM minimo. Limiti: non scala (impraticabile con molti router), non si adatta ai guasti (il traffico finisce in un “buco nero” se un link cade), richiede aggiornamento manuale ad ogni modifica della topologia.
Domanda 05 — Distance vector vs link state
Distance Vector (es. RIP): ogni router conosce solo distanza e direzione per ogni destinazione. Scambia la tabella intera periodicamente. Convergenza lenta. Link State (es. OSPF): ogni router ha la mappa completa della topologia. Invia aggiornamenti solo quando qualcosa cambia. Calcola il percorso ottimale con Dijkstra. Convergenza veloce. Analogia: DV = chiedere indicazioni strada per strada; LS = avere la mappa completa di Google Maps.
Domanda 06 — MAC e router
Quando un pacchetto attraversa un router, l’indirizzo MAC cambia: il router riscrive il MAC sorgente (mette il proprio MAC dell’interfaccia di uscita) e il MAC destinazione (mette quello del prossimo hop o del destinatario se è nella rete direttamente connessa). L’indirizzo IP resta invariato per tutto il percorso (end-to-end). Eccezione: con il NAT, anche l’IP sorgente viene modificato.
Domanda 07 — NAT
Il NAT (Network Address Translation) traduce gli indirizzi IP nei pacchetti in transito su un router. È stato inventato per risolvere la scarsità di indirizzi IPv4 pubblici: permette a molti dispositivi con IP privati (RFC 1918) di condividere uno o pochi IP pubblici per accedere a Internet.
Domanda 08 — NAT statico vs PAT
NAT statico: mappatura 1:1 fissa tra un IP privato e un IP pubblico. Usato per server che devono essere raggiungibili dall’esterno. PAT (Port Address Translation / overload): mappatura N:1 — molti host condividono un singolo IP pubblico. Il router usa i numeri di porta per distinguere le connessioni. È il tipo più diffuso (ogni router domestico lo usa).
Domanda 09 — PAT e distinzione delle risposte
Il router PAT mantiene una tabella di traduzione che associa ogni connessione interna (IP:porta sorgente privata) a una porta sorgente pubblica. Quando arriva una risposta da Internet su una specifica porta, il router la cerca nella tabella e la redirige all’host interno corretto. La porta è la chiave che distingue le diverse connessioni sullo stesso IP pubblico.
Domanda 10 — NAT come soluzione temporanea
Il NAT è considerato temporaneo perché rompe il principio end-to-end di Internet: un host esterno non può avviare una connessione verso un host interno senza configurazioni speciali (port forwarding). Complica protocolli come VoIP e IPsec e aggiunge overhead. La soluzione definitiva è IPv6: con 2¹²⁸ indirizzi, ogni dispositivo può avere un IP pubblico univoco, rendendo il NAT superfluo.
Hands on Stem — Corso di Sistemi e Reti — Prof. D. Bertolino