…un metodo ingegnoso, semplice ed intelligente, per connettere fra loro milioni di reti e miliardi di computers.

(by Paolo ik1mdo)

Mi sono sempre chiesto come sia possibile, con soli 4 bytes, indirizzare 4,3 miliardi di computers (così si dice) ed un numero impressionante di reti private (con relative sottoreti), tutte connesse fra loro.

Il segreto sta nell’abbinamento dell’indirizzo IP alla SubNet Mask, ossia nella distinzione di quali siano i Bit che identificano l’indirizzo specifico di un computer, da quali siano i Bit che specificano la rete di appartenenza.
Si potrebbe fare l’esempio degli indirizzi postali che identificano miliardi di abitazioni in tutto il mondo: occorre sia precisato sia la “Nazione e Città”, (la rete), sia la “via e numero civico”, (ossia l’indirizzo).
Se si specificasse solo l’indirizzo (ad esempio: via Dante Alighieri, 23) e non si specificasse la città (la rete), sarebbe improbabile che la lettera sia recapitata.
Scriviamo un indirizzo IP, a caso: 192.168.15.3.
Di per sé, questo numero non indica nulla, perché non è univoca quale sia la parte che identifica la rete dalla parte che identifica il computer di quella rete.

In un indirizzo IP, composto da 4 byte (di 8 bit ognuno), la SubNet Mask identifica e separa la parte indicante la rete, dalla parte indicante quel computer specifico.

Ad esempio:

l’indirizzo IP: 192.168.  15.3
avente SubNet Mask: 255.255.255.0

specifica che ci riferiamo al computer con indirizzo 3, (corrispondente al byte 0 della SubNet Mask), facente parte della rete 192.168.15, (i 3 byte diversi da zero [255] della SubNet Mask).

Indirizzi IP pubblici ed indirizzi IP privati.

Gli indirizzi IP si distinguono in indirizzi IP pubblici ed in indirizzi IP privati, secondo che appartengano a reti pubbliche o a reti private.
Gli indirizzi pubblici sono assegnati da un organismo internazionale, affinché essi siano univoci in tutto il mondo e non vi siano due computers aventi il medesimo numero IP (immaginiamo i numeri telefonici delle reti pubbliche).

Gli indirizzi IP privati sono indirizzi che appartengono ad una rete privata creata localmente e che connette computers fra loro (immaginiamo i computers di un ufficio).
Questi indirizzi, appartenenti alla medesima rete, possono essere identici anche ad altri indirizzi appartenenti ad altra rete privata, però non vi sarà confusione fra essi, poiché appartengono a reti private diverse (ad esempio: immaginiamo i numeri di interno assegnati agli ingressi degli appartamenti nei palazzi; ogni palazzo avrà i numeri di interno da 1 a 50 (secondo il numero degli alloggi), però ciò non crea confusione con i medesimi numeri di interno che esistono in altri palazzi, poiché trattasi di numerazione privata all’interno del palazzo).
Stesso concetto vale per la numerazione con indirizzo IP all’interno di reti private, anche se interconnesse alla rete internet, tramite Gateway con indirizzo pubblico.

Le Classi degli indirizzi IP.

Gli indirizzi IP pubblici sono suddivisi in “classi”. È una forma di classificazione.

La classe A: ha SubNet Mask 255.0.0.0, ossia i primi 8 bit.
A questa classe appartengono gli indirizzi da: 1.0.0.0 a 127.255.255.255,
quindi in essa si possono avere 127 reti, ognuna delle quali può essere costituita da 16.777.214 computers.
Infatti (256 x 256 x 256) – 2 = 16.777.214.

La classe B: ha SubNet Mask: 255.255.0.0, ossia i primi 16 bit.
A questa classe appartengono gli indirizzi da: 128.0.0.0 a 191.255.255.255,
quindi si possono avere: (191-128+1) = 64 x 256 = 16384 reti ognuna composta da (256 x 256) – 2 = 65534 computers.

La classe C: ha SubNet Mask 255.255.255.0, ossia i primi 24 bit.
A questa classe appartengono gli indirizzi da: 192.0.0.0 a 223.255.255.255,
quindi si possono avere (32 x 256 x 256) = 2.097152 reti da (256 – 2) = 254 computers ognuna.

La classe D e la classe E sono utilizzate per usi particolari o futuri.

Tramite la NETMASK, le reti A, B, C possono essere ulteriormente suddivise in sottoreti: “SubNetting”.
Esempio:

con indirizzo IP: 193.234.  24.    0     (Indirizzo pubblico di classe C),
con NetMask: 255.255.255.192      si ottengono due sottoreti:

prima sottorete composta da 64 computers:

indirizzo di rete:  193.234.24.64
host dal numero: 193.234.24.65 al numero 193.234.24.126
indirizzo di broadcast: 193.234.24.127.

seconda sottorete composta da 64 computers:

indirizzo di rete:  193.234.24.128
host dal numero: 193.234.24.129 al numero 192.234.24.190
indirizzo di broadcast: 193.234.24.191.

Indirizzi IP per reti private.

In ogni classe, una porzione di indirizzi è riservata agli indirizzi IP privati.

Classe A:
indirizzi da: 10.0.0.0 a 10.255.255.255 con subnetmask da 8 bit (i primi 8 bit).

Classe B:
indirizzi da: 172.16.0.0 a 172.16.255.255 con subnetmask da 12 bit.

Classe C:
indirizzi da: 192.168.0.0 a 192.168.255.255 con subnetmask da 16 bit.

Prendendo ad esempio la classe C, avente la SubNet Mask a: 255.255.0.0, significa che trattandosi di rete privata è possibile creare, secondo le proprie esigenze:

o un’unica rete che connetta (256 x 256) – 2 = 65.534 computers;
o due reti da (62 x 256) – 2 = 15870 PC ognuna;
o sei reti da (30 x 256) – 2 = 7678 PC ognuna;
o 254 reti da 254 computers ognuna (questa è la configurazione classica che si ottiene mettendo il terzo byte a 255 e lasciando a zero il quarto byte della SubNet Mask.

Inoltre, ognuna di queste reti (ad esempio ognuna delle 254 reti da 254 computers) può essere ulteriormente suddivisa e composta da ulteriori sottoreti più piccole, ad esempio:

2 sottoreti da 62 PC ognuna;
6 sottoreti da 30 PC ognuna;
14 sottoreti da 14 PC ognuna;
30 sottoreti da 6 PC ognuna.

Questo “miracolo” avviene attraverso la SubNet Mask.

La SubNet Mask.

Come funziona la SubNet Mask.

Quando si invia un messaggio ad un altro PC, il nostro computer confronta l’indirizzo IP di destinazione con la propria SubNet Mask ed effettua l’AND logico:

1 AND 1 = 1;
1 AND 0 = 0;
0 AND 1 = 0.

Se il risultato dell’operazione ottiene un numero binario che è identico a quello che si ottiene facendo la medesima operazione con proprio indirizzo IP, allora il computer sa che quell’indirizzo appartiene alla propria rete, cosicché invia normalmente il messaggio.
In caso contrario il PC capisce che quello non è un indirizzo della propria rete ed invia il messaggio al computer che fa da gateway verso le altre reti, se questi esiste, altrimenti il messaggio viene perso.

Come si calcola la SubNet Mask.

Un esempio classico:
Indirizzo IP: 192.168.0.0
SubNet Mask: 255.255.255.0

Con questa SubNet Mask abbiamo una rete identificata da: 192.168.0 (.X), alla quale possono appartenere 254 computer: dal numero 1 al numero 254, ad esempio:

192.168.0.0 indica l’indirizzo della rete
192.168.0. 1; (primo PC);
192.168.0.2; (secondo PC, ecc.)
192.168.0.3;
192.168.0. …;
192.168.0.253;
192.168.0.254.

il numero 255 è riservato al servizio broadcast verso tutti i computer.

Mettendo il terzo byte dell’indirizzo di rete a 1, avremo un’altra rete da 254 PC:

192.168.1.0 indica l’indirizzo di questa seconda rete      192.168.1.1 (primo PC)
192.168.1.2 (secondo PC. ecc.)
Ecc. come sopra.
192.168.1.255 indica l’indirizzo di broadcast.

Se non ci interessasse una rete da 254 PC, e preferissimo suddividere ulteriormente quella rete (ad esempio la rete: 192.168.1.x) per avere ad esempio 6 sottoreti da 30 PC, dovremmo calcolare quale valore immettere nel quarto byte della SubNet Mask, che attualmente è a zero.
Poiché dobbiamo mettere a “1” i primi tre bit del byte (che attualmente è a 0), dobbiamo fare: (128 + 64 + 32) = 224,
[in numerazione binaria, 128, 64, 32, 16, 8, 4, 2, 0, sono il valore che ha ogni singolo bit del byte]

quindi la SubNet Mask sarà: 255.255.255.224
e questi sono gli indirizzi che daremo ai vari computer di ogni rete:

Prima rete:

indirizzo di rete: 192.168.1. 32;
primo PC: 192.168.1. 33;
trentesimo PC: 192.168.1. 62;
indir. Broadcast: 192.168.1. 63.

Seconda rete:

indirizzo di rete: 192.168.1. 64;
primo PC: 192.168.1. 65;
trentesimo PC: 192.168.1. 94;
indir. Broadcast: 192.168.1. 95.

Terza rete:

indirizzo di rete: 192.168.1. 96;
primo PC: 192.168.1. 97;
trentesimo PC: 192.168.1. 126;
indir. Broadcast: 192.168.1. 127.

Quarta rete:

indirizzo di rete: 192.168.1. 128;
primo PC: 192.168.1. 129;
trentesimo PC: 192.168.1. 158;
indir. Broadcast: 192.168.1. 159.

Quinta rete:

indirizzo di rete: 192.168.1. 160;
primo PC: 192.168.1. 161;
trentesimo PC: 192.168.1. 190;
indir. Broadcast: 192.168.1. 191.

Sesta rete:

indirizzo di rete: 192.168.1. 192;
primo PC: 192.168.1. 193;
trentesimo PC: 192.168.1. 222;
indir. Broadcast: 192.168.1. 223.

73 da Paolo, ik1mdo