Cos’è un Router e perché esiste
Uno switch connette dispositivi all’interno della stessa rete logica — usa indirizzi MAC, opera al livello 2 e non sa nulla di IP. Un router invece connette reti diverse tra loro: prende un pacchetto IP, guarda l’indirizzo di destinazione e decide su quale interfaccia spedirlo affinché raggiunga la sua rete di destinazione. È il dispositivo che rende possibile Internet.
La metafora classica: uno switch è il corridoio di un palazzo (muovi i pacchi da una stanza all’altra sullo stesso piano), un router è l’ufficio postale (ricevi una busta, leggi il CAP, la smisto verso la città giusta).
Architettura Hardware di un Router
Un router Cisco (e la maggior parte dei router enterprise) è essenzialmente un computer specializzato con componenti dedicati al forwarding dei pacchetti:
| Componente | Funzione | Analogia PC |
|---|---|---|
| CPU | Esegue il sistema operativo (IOS), processa i protocolli di routing, gestisce la CLI | CPU |
| RAM | Contiene la routing table, la running-config, i buffer dei pacchetti. Volatile: si cancella al riavvio | RAM |
| Flash | Memorizza l’immagine del sistema operativo (IOS). Persistente | SSD/HDD |
| NVRAM | Contiene la startup-config (la configurazione che viene caricata al boot). Persistente | BIOS/UEFI storage |
| Interfacce | Porte fisiche (Ethernet, seriali, fibre). Ogni porta = un’interfaccia = una subnet | NIC |
| ROM | Bootstrap: POST e mini-IOS di emergenza (ROMMON) | BIOS chip |
Le modifiche fatte in CLI modificano la running-config in RAM — sono operative immediatamente ma si perdono al riavvio. Per renderle permanenti devi eseguire copy running-config startup-config (o wr). Dimenticarti di farlo è l’errore più comune in laboratorio.
Il Processo di Routing
Quando un pacchetto arriva su un’interfaccia del router, il processo è il seguente:
Ad ogni hop il router riscrive gli indirizzi MAC di sorgente e destinazione (livello 2), ma gli indirizzi IP restano invariati per tutto il percorso da sorgente a destinazione. Questo è un concetto fondamentale del modello a strati.
La Routing Table
La routing table (o tabella di instradamento) è il cuore di ogni router. È una lista ordinata di voci che associano prefissi di rete ai percorsi per raggiungerli.
Struttura di una voce nella routing table
Ogni riga della routing table contiene:
| Campo | Descrizione | Esempio |
|---|---|---|
| Codice sorgente | Come è stata appresa la route | C S R O B |
| Rete di destinazione | Indirizzo di rete + maschera (prefisso) | 192.168.10.0/24 |
| Administrative Distance | Affidabilità della sorgente (valore minore = preferita) | [1] per statica |
| Metrica | Costo del percorso (hop count, bandwidth, delay…) | [0] |
| Next-hop | IP del prossimo router, oppure “via [interfaccia]” | via 10.0.0.1 |
| Interfaccia di uscita | Porta fisica da cui inviare il pacchetto | GigabitEthernet0/1 |
| Timestamp | Da quanto tempo la route è nota | 00:05:43 |
Codici sorgente delle route (IOS)
| Codice | Significato | AD predefinita |
|---|---|---|
C | Connected — rete direttamente connessa su un’interfaccia attiva | 0 |
L | Local — IP dell’interfaccia stessa del router (host route /32) | 0 |
S | Static — route configurata manualmente | 1 |
R | RIP — appresa tramite RIP | 120 |
O | OSPF — appresa tramite OSPF | 110 |
D | EIGRP — appresa tramite EIGRP | 90 |
B | BGP — appresa tramite BGP esterno | 20 |
* | Indica la default route (candidate) | — |
Output reale: show ip route
Router# show ip route Codes: C - connected, S - static, R - RIP, O - OSPF ... Gateway of last resort is 10.0.0.1 to network 0.0.0.0 C 192.168.1.0/24 is directly connected, GigabitEthernet0/0 L 192.168.1.1/32 is directly connected, GigabitEthernet0/0 C 192.168.2.0/24 is directly connected, GigabitEthernet0/1 L 192.168.2.1/32 is directly connected, GigabitEthernet0/1 S 10.10.0.0/16 [1/0] via 192.168.2.254 O 172.16.0.0/12 [110/20] via 192.168.2.254, 00:12:34, GigabitEthernet0/1 S* 0.0.0.0/0 [1/0] via 10.0.0.1
Longest Prefix Match
Quando un pacchetto deve essere instradato verso 192.168.1.50 e la routing table contiene sia 192.168.1.0/24 che 192.168.1.48/28, quale route vince?
Esempio pratico: per 192.168.1.50
192.168.1.0/24— copre .1.0 → .1.255 → corrisponde (/24 = 24 bit di prefisso)192.168.1.48/28— copre .1.48 → .1.63 → corrisponde, più specifica (/28 = 28 bit) ✅0.0.0.0/0— corrisponde a tutto, ma meno specifica di entrambe
Vince 192.168.1.48/28. Se non esistesse, vincerebbe 192.168.1.0/24. Se non esistesse nemmeno quella, userebbe la default route.
Administrative Distance (AD)
Cosa succede se la routing table riceve la stessa rete da due sorgenti diverse — ad esempio una route statica e una da OSPF verso 10.0.0.0/8? Il router usa l’Administrative Distance per scegliere la più affidabile.
AD confronta sorgenti diverse (statico vs OSPF vs RIP). Metrica confronta percorsi diversi appresi dalla stessa sorgente (due route OSPF verso la stessa rete). Sono concetti separati e si usano in sequenza: prima AD, poi metrica.
Routing Statico
Il routing statico significa che l’amministratore configura manualmente ogni route nel router. Nessun protocollo di routing scambia informazioni — sei tu a dire al router “per raggiungere la rete X, passa per il next-hop Y”.
Quando usare il routing statico
- Reti piccole con pochi router (1–3)
- Stub network: reti con un solo percorso di uscita
- Quando si vuole controllo totale sul percorso del traffico
- Per la default route verso l’ISP
Configurazione IOS — Sintassi
Router(config)# ip route [rete-destinazione] [maschera] [next-hop-IP | interfaccia-uscita] [distanza-admin]
Esempi pratici
! Route statica via next-hop IP Router(config)# ip route 192.168.10.0 255.255.255.0 10.0.0.2 ! Route statica via interfaccia di uscita (consigliato solo su link seriali point-to-point) Router(config)# ip route 192.168.10.0 255.255.255.0 GigabitEthernet0/1 ! Default route (gateway of last resort) Router(config)# ip route 0.0.0.0 0.0.0.0 203.0.113.1 ! Route statica con AD personalizzata (floating static — backup) Router(config)# ip route 192.168.10.0 255.255.255.0 10.0.0.3 200
Floating Static Route
Una floating static route è una route statica configurata con una AD più alta della route principale (dinamica). Entra in routing table solo se la route primaria scompare. È un meccanismo di failover manuale ed economico.
Route principale via OSPF (AD 110): O 10.0.0.0/8 [110/20] via 192.168.1.2
Floating static (AD 200): ip route 10.0.0.0 255.0.0.0 192.168.2.2 200
Finché OSPF funziona, la floating non appare in routing table. Se OSPF cade, la floating diventa attiva automaticamente.
Verifica e troubleshooting
Router# show ip route ! visualizza la routing table completa Router# show ip route static ! solo le route statiche Router# show ip route 192.168.10.0 ! dettaglio su una specifica rete Router# show ip interface brief ! stato delle interfacce (up/down) Router# ping 192.168.10.1 source lo0 ! ping con sorgente specifica Router# traceroute 8.8.8.8 ! tracciamento del percorso
Limitazioni del Routing Statico
- Non scala: con 50 reti devi scrivere 50 route su ogni router. Con 500 reti diventa impossibile da gestire
- Non si adatta: se un link cade, il router continua a cercare di instradare i pacchetti su quel percorso (non c’è nessuno che lo avvisi del guasto)
- Errori umani: un refuso in una route statica può causare blackhole silenziosi
- Manutenzione: ogni modifica alla topologia richiede aggiornamento manuale su tutti i router interessati
Per reti complesse o con topologie che cambiano si usano i protocolli di routing dinamico — argomento della prossima lezione.
- Il router opera a livello 3 e connette reti diverse — usa IP, non MAC. Ad ogni hop riscrive i MAC ma preserva gli IP
- L’architettura hardware include CPU, RAM (routing table volatile), Flash (IOS persistente), NVRAM (startup-config persistente)
- La routing table associa prefissi di rete a next-hop e interfacce di uscita. Il router sceglie sempre la corrispondenza più specifica (longest prefix match)
- L’Administrative Distance determina quale sorgente vincesse quando la stessa rete viene appresa da protocolli diversi (C=0 < S=1 < OSPF=110 < RIP=120)
- Il routing statico si configura con
ip route [rete] [maschera] [next-hop]. La default route èip route 0.0.0.0 0.0.0.0 [next-hop] - Le floating static route (AD alta) fungono da backup automatico quando la route primaria scompare