La subnet mask (o maschera di rete) definisce quali bit di un indirizzo IPv4 identificano la rete e quali identificano gli host. Insieme alla notazione CIDR (Classless Inter-Domain Routing, es. /24) consente di suddividere uno spazio IP in sottoreti (subnet) ottimizzando l'impiego degli indirizzi.
Comprendere a fondo la subnet mask è fondamentale per configurare correttamente indirizzi IP, gateway, VLAN di gestione e per progettare topologie scalabili e sicure.
1) Rappresentazione: decimale puntato e CIDR
- Decimale puntato: quattro ottetti (8 bit ciascuno), es.
255.255.255.0. - CIDR: numero di bit di rete a 1, es.
/24equivale a255.255.255.0.
Mapping rapido:
| CIDR | Subnet mask | Host utili | Per sottorete |
|---|---|---|---|
| /24 | 255.255.255.0 | 254 | 256 indirizzi totali |
| /25 | 255.255.255.128 | 126 | 128 indirizzi totali |
| /26 | 255.255.255.192 | 62 | 64 indirizzi totali |
| /27 | 255.255.255.224 | 30 | 32 indirizzi totali |
| /28 | 255.255.255.240 | 14 | 16 indirizzi totali |
| /29 | 255.255.255.248 | 6 | 8 indirizzi totali |
| /30 | 255.255.255.252 | 2 | 4 indirizzi totali (link punto-punto) |
2) Bit di rete e bit di host
La mask è una stringa di 32 bit: i bit a 1 indicano la parte di rete, quelli a 0 la parte di host. Esempio: /26
Esempio: 192.168.1.130/26
| Ottetto 1 | Ottetto 2 | Ottetto 3 | Ottetto 4 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| Bit di rete (26) | Bit di host (6) | ||||||||||||||||||||||||||||||
I bit blu rappresentano la parte di rete, mentre i bit arancioni la parte di host.
Rete: 192.168.1.128
Broadcast: 192.168.1.191
Host utili: da 192.168.1.129 a 192.168.1.190
3) Formule veloci
- Bit host
h = 32 - prefisso. - Indirizzi totali per subnet:
2^h; host utilizzabili:2^h - 2(rete e broadcast non assegnabili agli host). - Granularità (passo) dell'ultimo ottetto per /25…/30:
256 - valore_ottetto_mask. Esempio/26:256 - 192 = 64→ le subnet iniziano a 0, 64, 128, 192.
4) Reti classful vs classless
Storicamente gli indirizzi erano divisi in classi (A/B/C). Oggi si usa il modello classless con CIDR e VLSM.
- VLSM (Variable Length Subnet Mask): sottoreti con maschere diverse all'interno della stessa rete di partenza per ridurre sprechi.
5) Wildcard mask (ACL)
Le wildcard mask (usate nelle ACL Cisco) sono il complemento della subnet mask: 1 dove non si controlla, 0 dove si deve coincidere.
Subnet mask 255.255.255.0 → Wildcard 0.0.0.255
Subnet mask 255.255.255.224 → Wildcard 0.0.0.31
Esempio ACL: access-list 10 permit 192.168.10.0 0.0.0.255
6) Procedura di subnetting (metodo consigliato)
- Rete di partenza (es.
192.168.10.0/24). - Elenco esigenze (numero di host per sottorete).
- Ordina le richieste dalla più grande alla più piccola (VLSM).
- Calcola il prefisso minimo tale che
2^h - 2 ≥ host_richiesti. - Assegna il primo blocco disponibile (attenzione al passo).
- Ripeti finché tutte le esigenze sono coperte.
- Verifica: rete, primo host, ultimo host, broadcast.
7) Esempi rapidi
A) /27 su 192.168.1.0/24
/27 → h=5 → 2^5=32 indirizzi → 30 host utili, passo 32: 0,32,64,96,128,160,192,224.
Rete 192.168.1.64/27 → host 65..94 → broadcast 95
B) /30 per link punto-punto
/30 → h=2 → 4 indirizzi totali → 2 host utili. Esempio: 10.0.0.0/30 → host 10.0.0.1 e 10.0.0.2 (rete .0, broadcast .3).
C) VLSM su 192.168.50.0/24
Richieste: LAN1 60 host, LAN2 25 host, LAN3 10 host.
LAN1: servono 60 → /26 (62 host) → 192.168.50.0/26 [0..63], host 1..62, bcast 63
LAN2: servono 25 → /27 (30 host) → 192.168.50.64/27 [64..95], host 65..94, bcast 95
LAN3: servono 10 → /28 (14 host) → 192.168.50.96/28 [96..111], host 97..110, bcast 111
Spazio residuo: 192.168.50.112/28 … 192.168.50.240/28
8) Errori comuni
- Usare
/24ovunque sprecando indirizzi: preferire VLSM. - Dimenticare che rete e broadcast non sono assegnabili agli host.
- Confondere subnet mask e wildcard mask nelle ACL.
- Impostare IP su VLAN sbagliata o interfaccia non
no shutdown.
LABORATORIO
Subnetting e Configurazione IP su Switch/Router
Obiettivo: progettare sottoreti con VLSM e assegnare IP a VLAN e interfacce, verificando con ping e comandi di diagnostica.
- Cisco Packet Tracer (o apparati reali/simulatori equivalenti).
- Foglio di calcolo/penna per i calcoli VLSM.
1 Scenario
Rete di partenza: 192.168.10.0/24. Requisiti:
- VLAN 10 (Amministrazione): 60 host
- VLAN 20 (Didattica): 25 host
- VLAN 30 (Laboratorio): 10 host
- Link punto-punto verso router: 2 host
1.a Progetta le sottoreti (VLSM)
60 → /26 (62) → 192.168.10.0/26 (0..63) Host 1..62 Bcast 63
25 → /27 (30) → 192.168.10.64/27 (64..95) Host 65..94 Bcast 95
10 → /28 (14) → 192.168.10.96/28 (96..111) Host 97..110 Bcast 111
2 → /30 (2) → 192.168.10.112/30 (112..115) Host 113..114 Bcast 115
1.b Assegna gli indirizzi
- VLAN 10 SVI (switch):
192.168.10.1/26| PC admin es.192.168.10.10/26GW192.168.10.1 - VLAN 20 SVI:
192.168.10.65/27| PC didattica es.192.168.10.70/27GW192.168.10.65 - VLAN 30 SVI:
192.168.10.97/28| PC lab es.192.168.10.100/28GW192.168.10.97 - Link P2P Router–Switch L3:
192.168.10.113/30(Router) –192.168.10.114/30(Switch L3)
2 Configurazione su Switch Layer-2 con Router-on-a-Stick (alternativa: Switch L3)
Opzione A – Router-on-a-Stick (router con sub-interface 802.1Q):
Switch(config)# vlan 10
Switch(config-vlan)# name AMMINISTRAZIONE
Switch(config)# vlan 20
Switch(config-vlan)# name DIDATTICA
Switch(config)# vlan 30
Switch(config-vlan)# name LAB
! SVI per gestione (facoltativo su L2, obbligatorio per Telnet/SSH locale)
Switch(config)# interface vlan 10
Switch(config-if)# ip address 192.168.10.1 255.255.255.192
Switch(config-if)# no shutdown
! Trunk verso il router
Switch(config)# interface fa0/1
Switch(config-if)# switchport mode trunk
! Access per le porte utenti
Switch(config)# interface range fa0/2-10
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10
! Router
Router(config)# interface g0/0.10
Router(config-subif)# encapsulation dot1Q 10
Router(config-subif)# ip address 192.168.10.1 255.255.255.192
Router(config)# interface g0/0.20
Router(config-subif)# encapsulation dot1Q 20
Router(config-subif)# ip address 192.168.10.65 255.255.255.224
Router(config)# interface g0/0.30
Router(config-subif)# encapsulation dot1Q 30
Router(config-subif)# ip address 192.168.10.97 255.255.255.240
Opzione B – Switch Layer-3 (SVI + routing inter-VLAN):
Switch(config)# interface vlan 10
Switch(config-if)# ip address 192.168.10.1 255.255.255.192
Switch(config)# interface vlan 20
Switch(config-if)# ip address 192.168.10.65 255.255.255.224
Switch(config)# interface vlan 30
Switch(config-if)# ip address 192.168.10.97 255.255.255.240
3 Verifica
Switch# show vlan brief
Switch# show running-config | include interface vlan|ip address
Router# show ip interface brief
PC> ipconfig /all (in PT: Desktop → IP Configuration)
PC> ping 192.168.10.65 (PC in VLAN10 → SVI VLAN20)
PC> ping 192.168.10.97 (PC in VLAN10 → SVI VLAN30)
4 Esercizi di Subnetting (con soluzioni)
- E1 – Da
172.16.0.0/16ricava una sottorete per 500 host.
Soluzione: servono 500 →2^9=512→ /23 (h=9). Prima subnet:172.16.0.0/23, host 172.16.0.1–172.16.1.254, bcast 172.16.1.255. - E2 – Quante sottoreti /27 ci stanno in un /24?
Soluzione: differenza prefissi: 27−24=3 bit presi per subnet →2^3 = 8sottoreti /27. - E3 – Rete
192.168.5.0/26: primo/ultimo host e broadcast della terza sottorete.
Soluzione: passo 64 → subnet: .0, .64, .128, .192 → terza: 192.168.5.128/26 → host 129–190, bcast 191. - E4 – Wildcard ACL per permettere solo
10.10.4.0/22.
Soluzione: /22 = 255.255.252.0 → wildcard 0.0.3.255 →access-list 10 permit 10.10.4.0 0.0.3.255.
5 Check-list pratica
- Calcolo VLSM corretto (prefissi, intervalli, broadcast).
- Subnet mask coerenti su tutti i device.
- SVI attive (
no shutdown) e VLAN assegnate alle porte. - Gateway predefinito corretto sui PC.
- Trunk/tag 802.1Q configurati correttamente, se presenti.