Subnetting e VLSM – Dalla divisione a maschera fissa alla progettazione efficiente
Come dividere una rete IPv4 in sottoreti uguali, calcolare block size e range host, e poi ottimizzare tutto con il VLSM allocando a partire dalla subnet più grande.
1. Il problema: una rete piatta non scala
Immagina un'azienda a cui viene assegnata la rete 192.168.0.0/24: 254 host disponibili, tutti nella stessa subnet. All'inizio funziona. Poi arrivano i problemi: un broadcast raggiunge 254 nodi, non puoi separare reparti, il traffico si disturba, policy di sicurezza uniformi.
- Broadcast storm: un broadcast raggiunge tutti i nodi – overhead crescente
- Isolamento mancante: amministrazione, produzione e server non sono separabili
- Sicurezza: impossibile applicare ACL differenziate per gruppo
La soluzione è il subnetting: dividere lo spazio originale in sottoreti più piccole, logicamente isolate, ognuna con dominio di broadcast proprio.
Subnetting è il processo di suddivisione di uno spazio IP in blocchi più piccoli tramite estensione del prefisso: da /n a /(n+k) con 2k subnet, dove k bit sono “rubati” alla host portion.
Dominio broadcast
Ogni subnet limita i broadcast al suo perimetro, riduce traffico inutile.
Segmentazione
Puoi filtrare tra subnet con firewall e ACL interne.
Crescita ordinata
Nuovi reparti = nuove subnet, senza ridisegnare tutto.
2. Meccanismo del subnetting – come funziona
Il subnetting opera a livello binario: si prendono bit dalla host portion e li si “promuovono” a network portion. Ogni bit aggiunto raddoppia le subnet e dimezza gli host.
La formula del salto (block size)
L'indirizzo di rete della subnet successiva si ottiene sommando il block size:
Block size = 2^(32 − prefisso) → /26 = 64, /27 = 32, /28 = 16, /29 = 8, /30 = 4. Il blocco si muove a passi multipli di questo valore.
3. Procedura di calcolo passo-passo
- Network address: AND bitwise IP & mask – host bit a 0
- Broadcast: network address con host bit a 1
- Range host: network+1 fino a broadcast−1
- Subnet successiva: network attuale + block size
Partiamo da 172.16.0.0/24, vogliamo 8 subnet: 2³ → +3 bit → /27, block size = 32. La tabella sotto mostra tutti i range.
| Subnet | Network Address | Primo host | Ultimo host | Broadcast |
|---|---|---|---|---|
| 1 | 172.16.0.0/27 | 172.16.0.1 | 172.16.0.30 | 172.16.0.31 |
| 2 | 172.16.0.32/27 | 172.16.0.33 | 172.16.0.62 | 172.16.0.63 |
| 3 | 172.16.0.64/27 | 172.16.0.65 | 172.16.0.94 | 172.16.0.95 |
| 4 | 172.16.0.96/27 | 172.16.0.97 | 172.16.0.126 | 172.16.0.127 |
| 5 | 172.16.0.128/27 | 172.16.0.129 | 172.16.0.158 | 172.16.0.159 |
| 6 | 172.16.0.160/27 | 172.16.0.161 | 172.16.0.190 | 172.16.0.191 |
| 7 | 172.16.0.192/27 | 172.16.0.193 | 172.16.0.222 | 172.16.0.223 |
| 8 | 172.16.0.224/27 | 172.16.0.225 | 172.16.0.254 | 172.16.0.255 |
Trucco: parti sempre dal block size. Se sai che /27 = 32, sai già dove saltare: 0, 32, 64, 96... Non rifare il binario ogni volta a verifica, usa la tabellina: /26-64, /27-32, /28-16, /29-8, /30-4.
4. Limite del subnetting a lunghezza fissa
Il subnetting classico crea subnet tutte uguali (FLSM). Se un'azienda ha esigenze diverse, spreca:
| Reparto | Host richiesti | Se FLSM /25 (126 host) | Spreco |
|---|---|---|---|
| Produzione | 100 | 126 | 26 |
| Uffici | 50 | 126 | 76 |
| Server | 20 | 126 | 106 |
| Gestione | 10 | 126 | 116 |
| Link WAN | 2 | 126 | 124 |
Assegnare /24 a un link punto-punto tra router spreca 252 indirizzi! Usa sempre /30 (2 host) o /31 se supportato (RFC 3021). A verifica è valutato come errore progettuale.
5. VLSM – Variable Length Subnet Masking
VLSM è l'applicazione ricorsiva del subnetting: un blocco viene diviso in subnet, poi alcune subnet vengono ulteriormente divise con prefissi diversi. Risultato: albero gerarchico di blocchi variabili, tutti contenuti nello spazio originale.
Il VLSM è classless: richiede protocolli che trasportano la mask (OSPF, EIGRP, RIPv2). RIPv1 non lo supporta.
Metodo VLSM: ordina e alloca dalla più grande alla più piccola
- Elenca segmenti con host richiesti
- Ordina da più grande a più piccola
- Per ogni segmento trova prefisso minimo:
2^(32−n) −2 ≥ host - Assegna blocco dal primo IP libero
- Subnet successiva = primo IP dopo broadcast precedente
6. Caso studio VLSM con 10.0.0.0/24
Scenario: blocco 10.0.0.0/24 da suddividere con esigenze eterogenee.
| Segmento | Host richiesti | Prefisso minimo | Host disponibili |
|---|---|---|---|
| Reparto A | 60 | /26 | 62 |
| Reparto B | 28 | /27 | 30 |
| Reparto C | 12 | /28 | 14 |
| Reparto D | 5 | /29 | 6 |
| Link WAN 1 | 2 | /30 | 2 |
| Link WAN 2 | 2 | /30 | 2 |
| Segmento | Network | Range host | Broadcast | Prossimo blocco → |
|---|---|---|---|---|
| Reparto A /26 | 10.0.0.0/26 | 10.0.0.1 – 10.0.0.62 | 10.0.0.63 | → 10.0.0.64 |
| Reparto B /27 | 10.0.0.64/27 | 10.0.0.65 – 10.0.0.94 | 10.0.0.95 | → 10.0.0.96 |
| Reparto C /28 | 10.0.0.96/28 | 10.0.0.97 – 10.0.0.110 | 10.0.0.111 | → 10.0.0.112 |
| Reparto D /29 | 10.0.0.112/29 | 10.0.0.113 – 10.0.0.118 | 10.0.0.119 | → 10.0.0.120 |
| Link WAN 1 /30 | 10.0.0.120/30 | 10.0.0.121 – 10.0.0.122 | 10.0.0.123 | → 10.0.0.124 |
| Link WAN 2 /30 | 10.0.0.124/30 | 10.0.0.125 – 10.0.0.126 | 10.0.0.127 | → 10.0.0.128 |
Indirizzi usati: 128 su 256 (50%). Rimane 10.0.0.128/25 libero per espansione futura.
Ogni subnet deve essere allineata: network address multiplo del block size. 10.0.0.0/26 ok (0 multiplo di 64). 10.0.0.10/26 errato (10 non è multiplo di 64) – rischio sovrapposizione.
7. Visualizzazione ad albero e mappa dello spazio
Il VLSM produce un albero binario: il padre viene diviso, alcuni figli ridivisi. Spazio non allocato = riserva.
8. Piano di indirizzamento professionale – considerazioni
- Lascia spazio di crescita: aggiungi 20–30% extra, non allocare tutto subito.
- Gerarchizza per funzione: raggruppa per reparto/edificio per facilitare summarization e troubleshooting.
- Link punto-punto con /30: 2 host esatti – /24 su p2p è spreco enorme.
- Documenta tutto: IPAM con phpIPAM, NetBox o foglio calcolo.
- Pianifica summarization: blocchi contigui per sito → aggregabili in una route (tema CIDR prossima lezione).
Un link seriale/Ethernet tra due router ha 2 interfacce. /30 fornisce 2 host utilizzabili (network + broadcast occupano altri 2). RFC 3021 consente /31: elimina broadcast e usa 2 bit per host, riduce spreco. Supportato da Cisco, Juniper, Linux.
9. Verifica / Esercitazione
🔬 Attività lab
Apri il file PKT VLSM in Packet Tracer. Configura le interfacce secondo il piano 10.0.0.0/24 creato.
- Dividi 192.168.10.0/24 in 4 subnet /26 e calcola network/broadcast/range di ciascuna.
- Progetta VLSM per 172.16.0.0/24 con: LAN 100 host, LAN 40 host, LAN 15 host, 2 link WAN /30.
- Spiega perché allocare dalla subnet più grande alla più piccola evita frammentazione.
- Quale errore commetti se assegni 10.0.0.20/26? Come lo correggi?
1) /26 block 64: 0,64,128,192. 2) Ordina: 100→/25 (126), 40→/26 (62), 15→/28 (14), WAN→/30. Alloca: .0/25, .128/26, .192/28, .208/30, .212/30. 3) Se parti da piccole, i grandi blocchi potrebbero non trovare spazio allineato. 4) 20 non multiplo di 64 → non allineato, sovrappone. Correggi a .0 o .64.
10. Riepilogo e concetti chiave
📚 Prossimo passo - CIDR e Supernetting
Hai imparato a dividere. Ora imparerai a ricomporre: CIDR aggrega rotte, riduce tabelle di routing e prepara al collegamento con IPv6. Porta il tuo piano VLSM: lo aggregheremo!