Articolo originale: Subnet Cheat Sheet – 24 Subnet Mask, 30, 26, 27, 29, and other IP Address CIDR Network References

Come sviluppatore o ingegnere informatico, potresti aver bisogno di consultare dei valori di maschere di sottorete e comprendere cosa vogliono dire.

Per semplificarti la vita, la community di freeCodeCamp ha realizzato questa semplice tabella riassuntiva. Scorri oppure usa Ctrl/Cmd + f per trovare il valore che stai cercando.

Dopo la tabella qui sotto, troverai alcune spiegazioni sul suo significato.

CIDR SUBNET MASK WILDCARD MASK # DI INDIRIZZI IP # DI INDIRIZZI IP UTILIZZABILI
/32 255.255.255.255 0.0.0.0 1 1
/31 255.255.255.254 0.0.0.1 2 2*
/30 255.255.255.252 0.0.0.3 4 2
/29 255.255.255.248 0.0.0.7 8 6
/28 255.255.255.240 0.0.0.15 16 14
/27 255.255.255.224 0.0.0.31 32 30
/26 255.255.255.192 0.0.0.63 64 62
/25 255.255.255.128 0.0.0.127 128 126
/24 255.255.255.0 0.0.0.255 256 254
/23 255.255.254.0 0.0.1.255 512 510
/22 255.255.252.0 0.0.3.255 1,024 1,022
/21 255.255.248.0 0.0.7.255 2,048 2,046
/20 255.255.240.0 0.0.15.255 4,096 4,094
/19 255.255.224.0 0.0.31.255 8,192 8,190
/18 255.255.192.0 0.0.63.255 16,384 16,382
/17 255.255.128.0 0.0.127.255 32,768 32,766
/16 255.255.0.0 0.0.255.255 65,536 65,534
/15 255.254.0.0 0.1.255.255 131,072 131,070
/14 255.252.0.0 0.3.255.255 262,144 262,142
/13 255.248.0.0 0.7.255.255 524,288 524,286
/12 255.240.0.0 0.15.255.255 1,048,576 1,048,574
/11 255.224.0.0 0.31.255.255 2,097,152 2,097,150
/10 255.192.0.0 0.63.255.255 4,194,304 4,194,302
/9 255.128.0.0 0.127.255.255 8,388,608 8,388,606
/8 255.0.0.0 0.255.255.255 16,777,216 16,777,214
/7 254.0.0.0 1.255.255.255 33,554,432 33,554,430
/6 252.0.0.0 3.255.255.255 67,108,864 67,108,862
/5 248.0.0.0 7.255.255.255 134,217,728 134,217,726
/4 240.0.0.0 15.255.255.255 268,435,456 268,435,454
/3 224.0.0.0 31.255.255.255 536,870,912 536,870,910
/2 192.0.0.0 63.255.255.255 1,073,741,824 1,073,741,822
/1 128.0.0.0 127.255.255.255 2,147,483,648 2,147,483,646
/0 0.0.0.0 255.255.255.255 4,294,967,296 4,294,967,294

* /31 è un caso particolare, approfondito in RFC 3021, in cui le reti con questo tipo di maschera di sottorete possono assegnare due indirizzi IP come un collegamento point-to-point.

is a special case detailed in RFC 3021 where networks with this type of subnet mask can assign two IP addresses as a point-to-point link.

Ecco una tabella con le conversioni da decimale a binario per la maschera di sottorete e gli ottetti wildcard:

Maschera di sottorete Wildcard
0 00000000 255 11111111
128 10000000 127 01111111
192 11000000 63 00111111
224 11100000 31 00011111
240 11110000 15 00001111
248 11111000 7 00000111
252 11111100 3 00000011
254 11111110 1 00000001
255 11111111 0 00000000

Nota che il wildcard è semplicemente l'inverso della maschera di sottorete.

Se questi concetti di ingegneria informatica non ti sono familiari, qui puoi farti un'idea di come funzionano le reti informatiche.

Infine, questa tabella e il resto dell'articolo si concentrano su indirizzi IPv4, tralasciando il nuovo protocollo IPv6. Se vuoi imparare di più su IPv6, dai un'occhiata all'articolo sulle reti informatiche, qui sopra.

Come funzionano i blocchi degli indirizzi IP?

Gli indirizzi IPv4 come 192.168.0.1 sono semplicemente delle rappresentazioni decimali di quattro blocchi binari.

Ogni blocco contiene 8 bit e rappresenta un numero da 0 a 255. Poiché i blocchi sono gruppi di 8 bit, ogni blocco è detto ottetto, e dato che ci sono quattro blocchi da 8 bit, ogni indirizzo IPv4 è composto da 32 bit.

Ad esempio, ecco a cosa corrisponde l'indirizzo IP 172.16.254.1 in binario:

1125px-Ipv4_address
Source: IPv4

Per convertire un indirizzo IP tra la forma decimale e la forma binaria, puoi usare questa tabella:

128 64 32 16 8 4 2 1
x x x x x x x x

La tabella rappresenta un ottetto a 8 bit.

The chart above represents one 8 bit octive.

Diciamo che vuoi convertire l'indirizzo IP 168.210.225.206. Tutto ciò di cui hai bisogno è separare l'indirizzo nei quattro blocchi (168, 210, 225 e 206) e convertire ognuno di essi in binario usando la tabella qui sopra.

Ricorda che in binario, 1 è equivalente a "on" e 0 a "off". Quindi, per convertire in binario il primo blocco (168), parti dall'inizio della tabella e scrivi 1 e 0 nelle caselle finché la somma che ottieni non è 168.

Ad esempio:

128 64 32 16 8 4 2 1
1 0 1 0 1 0 0 0

128 + 32 + 8 = 168, che in binario è 10101000.

Se fai la stessa operazione per gli altri blocchi otterrai 10101000.11010010.11100001.11001110.

Cos'è il subnetting?

Se osservi la tabella qui sopra, può sembrare che il numero di indirizzi IP sia praticamente illimitato. Dopo tutto, ci sono quasi 4.2 miliardi di possibili indirizzi IPv4 disponibili.

Ma se pensi a quanto sia cresciuto internet e al numero di dispositivi connessi oggigiorno, non c'è da essere sorpresi sentendo che c'è già carenza di indirizzi IPv4.

Dato che questa carenza è stata riconosciuta svariati anni fa, gli sviluppatori hanno tirato fuori un modo per dividere un indirizzo IP in reti più piccole, dette sottoreti.

Questo processo, chiamato subnetting, utilizza la sezione relativa all'host di un indirizzo IP per dividere l'indirizzo in reti più piccole, o sottoreti.

In genere, un indirizzo IP è composto da bit di rete e bit dell'host:

network-and-host-bits
Source: What is IPv4

Il subnetting fa due cose: ci dà un modo per dividere le reti in sottoreti e permettere di determinare se un altro dispositivo/indirizzo IP è sulla stessa rete locale oppure no.

Un buon modo di pensare al subnetting è immaginare la tua rete wireless di casa.

Senza subnetting, ogni dispositivo connesso a internet avrebbe bisogno di un proprio indirizzo IP unico.

Ma visto che hai un router wireless, hai bisogno soltanto di un indirizzo IP per il router. Questo IP pubblico e esterno viene di solito gestito automaticamente e assegnato dal fornitore di servizi internet (internet service provider, ISP).

Ogni dispositivo connesso a router possiede il proprio indirizzo IP privato o interno:

home-network-diagram
Source: What Is My IP Address?

Se il tuo dispositivo con l'indirizzo IP esterno 192.168.1.101 vuole comunicare con un altro dispositivo, utilizzerà l'indirizzo IP dell'altro dispositivo e la maschera di sottorete.

La combinazione degli indirizzi IP e della maschera di sottorete permette al dispositivo con l'indirizzo 192.168.1.101 di capire se l'altro dispositivo è situato nella stessa rete  (come il dispositivo con l'indirizzo 192.168.1.103), o da qualche altra parte online su una rete completamente diversa.

È interessante che l'indirizzo IP esterno assegnato al router dall'ISP è probabilmente parte di una sottorete, che potrebbe includere molti altri indirizzi IP di case o uffici vicini. E proprio come gli indirizzi IP interni, ha bisogno di una maschera di sottorete per funzionare.

Come funzionano le maschere di sottorete

Le maschere di sottorete operano come un filtro per gli indirizzi IP. Con una maschera di sottorete, i dispositivi possono vedere un indirizzo IP e capire quale parte corrisponde ai bit di rete e quale ai bit dell'host.

Poi, usando queste informazioni, può capire qual è il modo migliore di comunicare per quei dispositivi.

Se qualche volta hai curiosato tra le impostazioni di rete del tuo router o del computer, probabilmente ti sei imbattuto in questo numero: 255.255.255.0.

Questa è una maschera di sottorete molto comune per semplici reti domestiche.

Come gli indirizzi IPv4, le maschere di sottorete hanno 32 bit. Puoi convertire una maschera di sottorete in binario proprio come abbiamo già visto per gli indirizzi IP.

Ad esempio, ecco la tabella che abbiamo utilizzato precedentemente:

128 64 32 16 8 4 2 1
x x x x x x x x

Convertiamo il primo ottetto, 255:

128 64 32 16 8 4 2 1
1 1 1 1 1 1 1 1

Semplice, vero? Ogni ottetto 255 è semplicemente 11111111 in binario. Ciò vuol dire che 255.255.255.0 in binario è 11111111.11111111.11111111.00000000.

Osserviamo insieme la maschera di sottorete e l'indirizzo IP e calcoliamo quali parti dell'IP costituiscono i bit di rete e i bit dell'host.

Qui sotto li abbiamo entrambi, sia in decimale che in binario:

Tipo Decimale Binario
IP address 192.168.0.101 11000000.10101000.00000000.01100101
Subnet mask 255.255.255.0 11111111.11111111.11111111.00000000

Visti così, è facile separare 192.168.0.101 nei bit di rete e dell'host.

In binario, ogni volta che un bit della maschera di sottorete è 1, lo stesso bit dell'indirizzo IP è parte della rete, non dell'host.

Dato che in binario l'ottetto 255 è 11111111, l'intero ottetto nell'indirizzo IP fa parte della rete. Quindi i primi tre ottetti, 192.168.0, costituiscono la parte della rete dell'indirizzo IP, mentre 101 è la parte dell'host.

In altre parole, se il dispositivo situato a 192.168.0.101 vuole comunicare con un altro dispositivo, usando la maschera di sottorete è in grado di sapere che tutto quello che ha l'IP  192.168.0.xxx è sulla stessa rete locale.

Un altro modo di esprimere questi concetti è tramite un ID di rete, che è un'altra porzione dell'indirizzo IP. L'ID di rete dell'indirizzo IP 192.168.0.101 con la maschera di sottorete 255.255.255.0 è 192.168.0.0.

Ed è lo stesso per altri dispositivi sulla rete locale (192.168.0.102, 192.168.0.103 e così via).

Cosa vuol dire CIDR e cos'è la notazione CIDR?

CIDR sta per Classless Inter-Domain Routing, e viene utilizzato per il processo di routing degli indirizzi IPv4 e, più recentemente, IPv6.

1920px-IP_Address_Match.svg
Source: Classless Inter-Domain Routing

Il CIDR è stato introdotto nel 1993 per ridurre l'utilizzo degli indirizzi IPv4, che stavo venendo esauriti velocemente sotto il vecchio sistema di indirizzamento su cui si basava internet all'inizio.

Il CIDR include un paio di concetti importanti.

Il primo è la Variable Length Submasking (VLSM), che praticamente permette agli ingegneri di rete di creare sottoreti all'interno di sottoreti. Queste sottoreti possono essere di dimensioni differenti, così da avere meno indirizzi IP inutilizzati.

Il secondo concetto è la notazione CIDR, un modo per abbreviare la maschera di sottorete rappresentando il numero di bit disponibili per l'indirizzo IP. Ad esempio, il /24 in 192.168.0.101/24 è equivalente all'indirizzo IP 192.168.0.101 con maschera di sottorete 255.255.255.0.

Come calcolare la notazione CIDR

Per trovare la notazione CIDR di una data maschera di sottorete, tutto ciò di cui hai bisogno è convertire la maschera di sottorete in binario e poi contare il numero delle cifre 1. Ad esempio:

Tipo Decimale Binario
Subnet mask 255.255.255.0 11111111.11111111.11111111.00000000

Poiché ci sono tre ottetti di 1, ci sono 24 bit di 1, e la notazione CIDR è /24.

Puoi usare entrambi i modi, ma di sicuro sarai d'accordo che /24 è ben più facile da scrivere rispetto a 255.255.255.0.

Di solito, lo si fa con un indirizzo IP, quindi diamo un'occhiata alla stessa maschera di sottorete con un IP:

Tipo Decimale Binario
IP address 192.168.0.101 11000000.10101000.00000000.01100101
Subnet mask 255.255.255.0 11111111.11111111.11111111.00000000

I primi tre ottetti della maschera di sottorete sono tutti degli 1, quindi gli stessi tre ottetti nell'indirizzo IP sono tutti bit di rete.

Analizziamo il quarto e ultimo ottetto un po' più nel dettaglio:

Tipo Decimale Binario
IP address 101 01100101
Subnet mask 0 00000000

In questo caso, dato che tutti i bit dell'ottetto nella maschera di sottorete sono degli 0, possiamo essere certi che tutti i bit dell'ottetto corrispondenti nell'indirizzo IP fanno parte dell'host.

La scrittura in notazione CIDR è fatta in genere con l'ID di rete. Quindi la notazione CIDR dell'indirizzo IP 192.168.0.101 con maschera di sottorete 255.255.255.0 è 192.168.0.0/24.

Classi di indirizzi IP

Ora che abbiamo analizzato alcuni esembi di base relativi al subnetting e al CIDR, facciamo un passo indietro e parliamo un po' delle classi di indirizzi IP.

Prima che il subnetting fosse sviluppato, tutti gli indirizzi IP ricadevano in una classe particolare:

subnetting
Source: Subnetting for dummies

Nota che ci sono indirizzi IP di classe D e E, ma li vedremo nel dettaglio più avanti.

Le classi di indirizzi IP offrono agli ingegneri di rete un modo per fornire a varie organizzazioni una gamma di indirizzi IP validi.

C'erano molti problemi associati con questo approccio e alla fine hanno portato al subnetting. Ma prima di parlare di questo, vediamo quali sono le diverse classi.

Indirizzi IP di classe A

Negli indirizzi IP di classe A, il primo ottetto (8 bit / 1 byte) rappresenta l'ID di rete, mentre i restanti tre ottetti (24 bit / 3 byte) sono l'ID dell'host.

Gli indirizzi IP di classe A vanno da 1.0.0.0 a 127.255.255.255, con una maschera predefinita di 255.0.0.0 (o /8 in CIDR).

Ciò significa che l'indirizzamento di classe A può avere un totale di 128 (27) reti e 16,777,214 (224-2) indirizzi utilizzabili per rete.

Nota anche che il range da 127.0.0.0 a 127.255.255.255 all'interno della classe A è riservato per l'indirizzo di loopback dell'host (RFC5735).

Indirizzi IP di classe B

Negli indirizzi IP di classe B, i primi due ottetti (16 bit / 2 byte) rappresentano l'ID di rete e i rimanenti due ottetti (16 bit / 2 byte) sono l'ID dell'host.

Gli indirizzi IP di classe B vanno da 128.0.0.0 a 191.255.255.255, con una maschera di sottorete predefinita di 255.255.0.0 (o /16 in CIDR).

L'indirizzamento di classe B può avere 16,384 (214) reti e 65,534 (216) indirizzi utilizzabili per la rete.

Indirizzi IP di classe C

Negli indirizzi IP di classe C, i primi tre ottetti (24 bit / 3 byte) rappresentano l'ID di rete e l'ultimo ottetto (8 bit / 1 byte) è l'ID dell'host.

Gli indirizzi IP di classe C vanno da 192.0.0.0 a 223.255.255.255, con un maschera di sottorete predefinita di 255.255.255.0 (o /24 in CIDR).

La classe C ha fino a 2,097,152 (221) reti e 254 (28-2) indirizzi utilizzabili per rete.

Indirizzi IP di classe D e E

Le ultime due classi sono la classe D e la classe E.

Gli indirizzi IP di classe D sono riservati per il multicast. Occupano l'intervallo da 224.0.0.0 a 239.255.255.255.

Gli indirizzi IP di classe E sono sperimentali e partono da 240.0.0.0.

Il problema delle classi di indirizzi IP

Il problema principale con le classi di indirizzi IP è l'efficienza del sistema, che ha portato allo spreco di molti  indirizzi IP.

Ad esempio, immagina di essere parte di una grande azienda, con 1000 impiegati. Ciò ricadrebbe nella classe B.

Ma una rete di classe B può supportare fino a 65,534 indirizzi utilizzabili, molti più di quanti la tua azienda può aver bisogno, anche se ogni impiegato avesse più dispositivi, ognuno con un indirizzo.

E non c'è modo che l'azienda ricada nella classe C – Non ci sarebbero abbastanza indirizzi IP disponibili.

Quindi, mentre le classi di indirizzi IP sono state utilizzate durante la diffuzione degli indirizzi IPv4, ci è voluto poco perché fosse chiara la necessità di un sistema migliore per evitare di utilizzare tutti i ~4.2 miliardi di indirizzi disponibili.

Le classi di indirizzi IP non vengono più utilizzate da quando sono state rimpiazzate dal CIDR nel 1993, e sono studiate principalmente per comprendere l'architettura iniziale di internet e l'importanza del subnetting.

Spero che questo articolo ti sia piaciuto e che ti sia stato d'aiuto

Se lo hai trovato utile, condividilo con i tuoi amici così che più persone possano usufruirne.