Sistemi e Reti - Anno 4 Modulo 2 Lezione 03 - Subnetting e VLSM | Prof. Giagnotti
Sistemi e Reti · Anno 4 · Modulo 2 · Lezione 03
✍ Autore: profgiagnotti · Materia: Sistemi e Reti

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.

// OBIETTIVI DI APPRENDIMENTO
✓Comprendere il problema del subnetting e saper dividere uno spazio di indirizzamento in sottoreti di dimensione fissa (FLSM)
✓Applicare la procedura di calcolo per ottenere network address, broadcast e range host di ogni subnet con block size
✓Progettare un piano di indirizzamento con VLSM allocando le subnet a partire dalla più grande verso la più piccola
✓Riconoscere il vantaggio del VLSM rispetto al subnetting a lunghezza fissa in termini di efficienza e risparmio indirizzi
✓Applicare buone pratiche professionali: crescita, /30 per link p2p, allineamento blocchi e documentazione IPAM

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.

📌 Definizione da ricordare

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.

01 · ISOLAMENTO

Dominio broadcast

Ogni subnet limita i broadcast al suo perimetro, riduce traffico inutile.

02 · SICUREZZA

Segmentazione

Puoi filtrare tra subnet con firewall e ACL interne.

03 · SCALABILITÀ

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.

BINARIO · DIVIDERE 192.168.0.0/24 IN 4 X /26
Originale /24: 192.168.0.00000000 (256 indirizzi) +2 bit subnet → /26 → block size 64 Subnet 0: 192.168.0.00 000000 → 192.168.0.0/26 (.1 – .62, bc .63) Subnet 1: 192.168.0.01 000000 → 192.168.0.64/26 (.65 – .126, bc .127) Subnet 2: 192.168.0.10 000000 → 192.168.0.128/26 (.129 – .190, bc .191) Subnet 3: 192.168.0.11 000000 → 192.168.0.192/26 (.193 – .254, bc .255)

La formula del salto (block size)

L'indirizzo di rete della subnet successiva si ottiene sommando il block size:

🎯 Formula blocco

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.

192.168.0.0/26 0 – 63 (62 host) 192.168.0.64/26 64 – 127 192.168.0.128/26 128 – 191 192.168.0.192/26 192 – 255

3. Procedura di calcolo passo-passo

  1. Network address: AND bitwise IP & mask – host bit a 0
  2. Broadcast: network address con host bit a 1
  3. Range host: network+1 fino a broadcast−1
  4. Subnet successiva: network attuale + block size
🎯 Esempio completo: 172.16.0.0/24 in 8 x /27

Partiamo da 172.16.0.0/24, vogliamo 8 subnet: 2³ → +3 bit → /27, block size = 32. La tabella sotto mostra tutti i range.

SubnetNetwork AddressPrimo hostUltimo hostBroadcast
1172.16.0.0/27172.16.0.1172.16.0.30172.16.0.31
2172.16.0.32/27172.16.0.33172.16.0.62172.16.0.63
3172.16.0.64/27172.16.0.65172.16.0.94172.16.0.95
4172.16.0.96/27172.16.0.97172.16.0.126172.16.0.127
5172.16.0.128/27172.16.0.129172.16.0.158172.16.0.159
6172.16.0.160/27172.16.0.161172.16.0.190172.16.0.191
7172.16.0.192/27172.16.0.193172.16.0.222172.16.0.223
8172.16.0.224/27172.16.0.225172.16.0.254172.16.0.255
💬 Tip del docente

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:

RepartoHost richiestiSe FLSM /25 (126 host)Spreco
Produzione10012626
Uffici5012676
Server20126106
Gestione10126116
Link WAN2126124
⚠️ Errore comune

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

📌 Definizione da ricordare

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

  1. Elenca segmenti con host richiesti
  2. Ordina da più grande a più piccola
  3. Per ogni segmento trova prefisso minimo: 2^(32−n) −2 ≥ host
  4. Assegna blocco dal primo IP libero
  5. Subnet successiva = primo IP dopo broadcast precedente
VLSM · REGOLA DIMENSIONE MINIMA
host richiesti = 60 → serve 62 → 2^6-2=62 → /26 (host bit 6) host 28 → serve 30 → 2^5-2=30 → /27 host 12 → serve 14 → 2^4-2=14 → /28 host 5 → serve 6 → 2^3-2=6 → /29 host 2 → serve 2 → 2^2-2=2 → /30

6. Caso studio VLSM con 10.0.0.0/24

Scenario: blocco 10.0.0.0/24 da suddividere con esigenze eterogenee.

SegmentoHost richiestiPrefisso minimoHost disponibili
Reparto A60/2662
Reparto B28/2730
Reparto C12/2814
Reparto D5/296
Link WAN 12/302
Link WAN 22/302
SegmentoNetworkRange hostBroadcastProssimo blocco →
Reparto A /2610.0.0.0/2610.0.0.1 – 10.0.0.6210.0.0.63→ 10.0.0.64
Reparto B /2710.0.0.64/2710.0.0.65 – 10.0.0.9410.0.0.95→ 10.0.0.96
Reparto C /2810.0.0.96/2810.0.0.97 – 10.0.0.11010.0.0.111→ 10.0.0.112
Reparto D /2910.0.0.112/2910.0.0.113 – 10.0.0.11810.0.0.119→ 10.0.0.120
Link WAN 1 /3010.0.0.120/3010.0.0.121 – 10.0.0.12210.0.0.123→ 10.0.0.124
Link WAN 2 /3010.0.0.124/3010.0.0.125 – 10.0.0.12610.0.0.127→ 10.0.0.128

Indirizzi usati: 128 su 256 (50%). Rimane 10.0.0.128/25 libero per espansione futura.

🎯 Allineamento dei blocchi

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.

10.0.0.0/24 – 256 indirizzi (0-255) Reparto A /26 0-63 (62 host) Rep. B /27 64-95 C /28 96-111 /29 /30 /30 10.0.0.128/25 – LIBERO 128-255 per crescita futura 0 255
10.0.0.0/24 10.0.0.0/25 (0-127) usato 10.0.0.128/25 LIBERO 10.0.0.0/26 A – 62 host 10.0.0.64/26 da dividere 64/27 B 96/27 → C/D/WAN

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).
💬 PERCHÉ /30 PER I LINK TRA ROUTER

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.

CHECK ALLINEAMENTO BLOCCO
def is_aligned(network_last_octet, prefix): block = 2**(32-prefix) return network_last_octet % block == 0 # corretto is_aligned(0, 26) # True → 0 % 64 ==0 is_aligned(64, 27) # True → 64%32==0 # errato is_aligned(10, 26) # False → 10%64 !=0 → sovrapposizione!

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.

  1. Dividi 192.168.10.0/24 in 4 subnet /26 e calcola network/broadcast/range di ciascuna.
  2. Progetta VLSM per 172.16.0.0/24 con: LAN 100 host, LAN 40 host, LAN 15 host, 2 link WAN /30.
  3. Spiega perché allocare dalla subnet più grande alla più piccola evita frammentazione.
  4. Quale errore commetti se assegni 10.0.0.20/26? Come lo correggi?
✅ Soluzione ragionata

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.

✓Il subnetting divide in 2k subnet aggiungendo k bit al prefisso. Block size = 2^(32−prefisso).
✓Ogni subnet ha: network (host 0), broadcast (host 1), range host intermedi.
✓FLSM spreca quando le reti hanno dimensioni diverse – tutte le subnet uguali.
✓VLSM applica maschere diverse. Alloca sempre dalla più grande alla più piccola, blocchi allineati.
✓Link p2p → /30 (2 host) o /31 RFC 3021. Lascia 20-30% libero e documenta in IPAM.

📚 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!