Sviluppatori

Come Calcolare la Maschera di Sottorete (CIDR Spiegato con un Esempio Pratico)

8 min di lettura

Per calcolare una maschera di sottorete a partire da un prefisso CIDR, si impostano a 1 quel numero di bit partendo da sinistra in un numero a 32 bit, si riempie il resto con 0, poi si legge ogni gruppo di 8 bit come numero decimale. Un prefisso /24 imposta a 1 i primi 24 bit, che convertiti diventano 255.255.255.0.

Cosa significa davvero il numero CIDR

Un indirizzo IPv4 è lungo 32 bit, scritto come quattro gruppi da 8 bit (ottetti) in decimale. La notazione CIDR, cioè la barra seguita da un numero dopo un indirizzo come 192.168.1.0/24, indica quanti di quei 32 bit sono fissi come porzione di rete. I bit rimanenti appartengono agli host di quella rete.

Un /24 fissa i primi 24 bit, lasciandone 8 per gli host. Un /26 ne fissa 26, lasciandone solo 6. Meno bit restano per gli host, meno dispositivi può contenere quella rete, e la matematica dietro questo è una semplice potenza di due: una rete con h bit host ha 2^h indirizzi totali.

Calcolare la maschera a mano: 192.168.1.0/24

Si prende il prefisso CIDR, 24, e si scrive un numero a 32 bit con i primi 24 bit impostati a 1 e gli ultimi 8 a 0:

11111111.11111111.11111111.00000000

Si converte ogni gruppo di 8 bit in decimale. Otto 1 di fila danno 255, e otto 0 danno 0:

255 . 255 . 255 . 0

Questa è la maschera di sottorete: 255.255.255.0. Per ottenere l’indirizzo di rete, si allineano l’indirizzo IP e la maschera in binario e si applica un AND bit a bit, mantenendo un 1 solo dove entrambi gli input hanno un 1:

Ottetto 1Ottetto 2Ottetto 3Ottetto 4
Indirizzo IP11000000101010000000000100000000
Maschera di sottorete11111111111111111111111100000000
Rete (AND)11000000101010000000000100000000

Il risultato è un indirizzo di rete pari a 192.168.1.0, invariato in questo caso perché la porzione host dell’indirizzo originale era già tutta a zero. L’indirizzo di broadcast è l’operazione opposta: si parte dall’indirizzo di rete e si impostano a 1 tutti i bit host, il che qui dà 192.168.1.255. Tutto ciò che sta in mezzo, da 192.168.1.1 a 192.168.1.254, è un indirizzo host utilizzabile. Sono 256 indirizzi totali nel blocco, meno 2 riservati (l’indirizzo di rete e quello di broadcast), per 254 host utilizzabili.

Dividere una /24 in quattro sottoreti /26

Supponiamo di avere 192.168.1.0/24 e di dover ricavarne quattro reti più piccole e separate, magari una per ogni piano di un ufficio. Passare da /24 a /26 prende in prestito 2 bit aggiuntivi per la porzione di rete (26 − 24 = 2), e 2 bit presi in prestito producono sempre 2^2 = 4 sottoreti uguali. Ogni sottorete /26 ha 32 − 26 = 6 bit host rimasti, quindi ciascuna contiene 2^6 = 64 indirizzi totali, di cui 62 utilizzabili.

SottoreteIndirizzo di reteIntervallo utilizzabileBroadcast
1192.168.1.0/26192.168.1.1192.168.1.62192.168.1.63
2192.168.1.64/26192.168.1.65192.168.1.126192.168.1.127
3192.168.1.128/26192.168.1.129192.168.1.190192.168.1.191
4192.168.1.192/26192.168.1.193192.168.1.254192.168.1.255

Si nota che ogni indirizzo di rete avanza di 64, la dimensione del blocco, e il broadcast di ogni sottorete è esattamente uno in meno dell’indirizzo di rete della sottorete successiva. Questo schema vale qualunque sia il prefisso in cui si sta dividendo: la dimensione del blocco è sempre 2^h, dove h è il numero di bit host rimasti, e le sottoreti riempiono lo spazio degli indirizzi senza lacune e senza sovrapposizioni.

Tabella di riferimento da CIDR a maschera di sottorete

Un promemoria per i prefissi che si incontrano davvero più spesso, da una singola rotta host /32 fino a un blocco /8:

CIDRMaschera di sottoreteIndirizzi totaliHost utilizzabili
/8255.0.0.016.777.21616.777.214
/16255.255.0.065.53665.534
/24255.255.255.0256254
/25255.255.255.128128126
/26255.255.255.1926462
/27255.255.255.2243230
/28255.255.255.2401614
/29255.255.255.24886
/30255.255.255.25242
/31255.255.255.25422 (punto-punto)
/32255.255.255.25511 (rotta host)

Calcola con il tuo indirizzo

Digita un indirizzo IPv4 e un prefisso CIDR o una maschera qui sotto: la scomposizione, indirizzo di rete, broadcast, intervallo utilizzabile e maschera in binario si aggiorna mentre scrivi.

Calcolatore di Sottorete IPv4 (CIDR)
Gratis, senza registrazione, su qualsiasi dispositivo.
Apri lo strumento completo

Errori comuni e casi particolari

Dimenticare che l’indirizzo di rete e quello di broadcast non sono host utilizzabili. Una /24 ha 256 indirizzi totali, ma solo 254 assegnabili davvero a un dispositivo. È un errore off-by-one piuttosto comune pianificare la capacità sul numero totale di indirizzi invece che su quello utilizzabile, e poi ritrovarsi senza spazio due indirizzi prima del previsto.

Trattare /31 e /32 come qualsiasi altro prefisso. L’RFC 3021 rende la /31 un caso speciale per i collegamenti punto-punto: entrambi gli indirizzi della coppia sono utilizzabili, dato che in un blocco di 2 indirizzi non c’è spazio per riservarne uno al broadcast. Una /32 è invece un singolo indirizzo a sé stante, che si incontra più spesso come rotta verso un host o come indirizzo di loopback, e non ha né indirizzo di rete né broadcast da sottrarre.

Confondere la maschera di sottorete con la wildcard mask. La maschera di sottorete segna i bit di rete con degli 1, 255.255.255.0 per una /24. La wildcard mask è il suo inverso bit a bit, e segna invece i bit host con degli 1, 0.0.0.255 per quella stessa /24. Le wildcard mask compaiono nelle access control list su apparati Cisco e simili, e digitare una maschera di sottorete dove il dispositivo si aspetta una wildcard mask (o viceversa) fa corrispondere silenziosamente l’insieme sbagliato di indirizzi.

Dare per scontato che una maschera di sottorete sia sempre una sequenza contigua e valida di 1. Una maschera come 255.0.255.0 sembra plausibile a prima vista ma non è valida: i bit a 1 non formano un unico blocco continuo partendo da sinistra, quindi non può essere espressa come prefisso CIDR. Le maschere di sottorete reali sono sempre un certo numero di bit a 1 iniziali seguiti da bit a 0 finali, nient’altro.

Domande frequenti

Come converto una maschera di sottorete in un prefisso CIDR? Si contano i bit a 1 nella maschera, leggendo da sinistra a destra in binario. 255.255.255.0 è 11111111.11111111.11111111.00000000, che ha 24 uno, quindi è una /24. Questo funziona solo quando la maschera è una sequenza contigua e valida di 1 seguiti da 0; una maschera come 255.0.255.0 non ha un equivalente CIDR perché i suoi bit non sono contigui.

Perché prendere in prestito bit per le sottoreti produce sempre una potenza di due? Ogni bit preso in prestito dalla porzione host raddoppia il numero di valori possibili che quel bit può rappresentare, 0 oppure 1. Se se ne prende in prestito 1 si ottengono 2 sottoreti, con 2 se ne ottengono 4, con 3 se ne ottengono 8. È lo stesso motivo per cui un byte (8 bit) può rappresentare 256 valori distinti: ogni bit in più raddoppia il conteggio.

Qual è la differenza tra una maschera di sottorete e un gateway predefinito? Una maschera di sottorete dice a un dispositivo quale parte di un indirizzo IP è la rete e quale la parte host, così può capire se un altro indirizzo si trova sulla sua stessa rete locale. Il gateway predefinito è un’impostazione separata: l’indirizzo IP del router a cui un dispositivo invia il traffico quando la destinazione non è sulla rete locale. Servono entrambi configurati correttamente perché un dispositivo raggiunga qualcosa al di fuori della propria sottorete.

Posso dividere in sottoreti usando un prefisso che non divide in modo esatto, ad esempio splittando una /24 in 3 reti? Non in esattamente 3 parti uguali, no, perché il subnetting divide sempre un blocco in una potenza di due. Dividendo una /24 si ottengono 2, 4, 8, 16 e così via, mai 3. In pratica questo significa dividere in 4 (prendendo in prestito 2 bit) e lasciare inutilizzata una delle /26, oppure suddividerla ulteriormente per un reparto più piccolo, invece di forzare una divisione esatta in 3.

SottoretiCIDRIPv4Reti
Calcolatore di Sottorete IPv4 (CIDR)
Ora provalo tu stesso con lo strumento completo.
Prova ora