Calcolo degli indirizzi di rete e broadcast

Quando abbiamo un host con un certo indirizzo IP ed una subnet mask, un'operazione che dobbiamo frequentemente fare è sapere l'indirizzo della rete alla quale appartiene ed il relativo indirizzo di broadcast.

In questa sezione vedremo come fare.

Classful

Nel caso di indirizzamento classful, è facile calcolare l'indirizzo della rete e di broadcast.

Ad esempio ipotizziamo di avere un host con il seguente IP e maschera:

192.168.7.55/24

È un indirizzo di classe C, quindi l'indirizzo di rete è il primo della classe e il broadcast l'ultimo.

IP/subnetIP reteIP broadcast
192.168.7.55/24192.168.7.0192.168.7.255

Analogamente per la classe B e la classe A si ottengono risultati analoghi. Ipotizziamo di avere gli host con gli IP nella prima colonna, nelle altre due ci sono i relativi indirizzi di rete e broadcast.

IP/subnetIP reteIP broadcast
172.16.4.8/16172.16.0.0172.16.255.255
10.12.0.44/810.0.0.010.255.255.255

Classless

Le cose diventano un po' più complesse quando abbiamo degli indirizzi classless: dobbiamo far ricorso ad un po' di matematica.

Ipotizziamo lo stesso indirizzo di prima, ma con una diversa maschera di sottorete:

192.168.7.55/28

Per prima cosa dobbiamo convertire l'indirizzo IP dell'host in binario.

DecimaleBinario
192-->11000000
168-->10101000
7-->00000111
55-->00110111

Che ci porta quindi ad avere il seguente risultato:

IPBinario
192.168.7.55-->11000000 10101000 00000111 00110111

Calcoliamo ora anche la maschera di sottorete in binario. È sufficiente mettere tanti 1 quanto il valore della maschera, e aggiungere 0 fino ad arrivare a 32.

SubnetBinario
/28-->11111111 11111111 11111111 11110000

Ora siamo pronti a calcolare indirizzo IP della rete e broadcast.

Indirizzo di rete

Per l'indirizzo di rete, dobbiamo fare l'operazione logica AND tra l'indirizzo IP.

La tabella di verità per l'operatore logico AND è il seguente:

ABA and B
000
010
100
111

Quindi, abbiamo un valore 1 in uscita se e solo se entrambi i valori in ingresso sono 1.

Effettuiamo ora l'operazione.

11000000 10101000 00000111 00110111AND
11111111 11111111 11111111 11110000=
___________________________________
11000000 10101000 00000111 00110000

Bene, ci siamo quasi! Ora dobbiamo riconvertire da binario a decimale l'indirizzo appena calcolato, ed otteniamo il seguente risultato:

IP di rete: 192.168.7.48

Broadcast

Ci manca di calcolare l'indirizzo di broadcast. Abbiamo diverse opzioni, ne propongo qui due.

Metodo empirico

Come prima possibilità, posso calcolare il numero di IP contenuti nella rete e sommare tale numero all'indirizzo IP della rete.

Nel nostro caso, abbiamo una maschera /28, quindi il numero di IP disponibili nella rete è:

2 ^ (32-28) = 2 ^ 4 = 16

Quindi sommando l'indirizzo di rete al numero di host e sottraendo uno (in quanto devo contare anche l'IP di rete di partenza):

192.168.7.48 + 16 - 1 = 192.168.7.63

Da cui l'indirizzo di broadcast:

IP di broadcast: 192.168.7.63

Metodo numerico

Posso effettuare anche un operazione logica per il calcolo del broadcast, simile a quello che abbiamo fatto prima per l'indirizzo di rete. Dobbiamo però usare l'operatore OR ed al posto della maschera di sottorete, il suo valore negato. Vediamo nel dettaglio.

L'operatore logico OR ha la seguente tabella di verità.

ABA or B
000
011
101
111

Con l'operatore OR, abbiamo un valore 1 in uscita se uno dei due valori in ingresso è pari a 1.

Inoltre, come detto, nella nostra operazione dobbiamo usare il valore negato della maschera di rete, ovvero dobbiamo invertire tutti gli 0 con 1 e viceversa. La negazione si chiama anche operatore NOT.

Subnet maskNOT Subnet mask
11111111 11111111 11111111 1111000000000000 00000000 00000000 00001111

Effettuiamo ora l'operazione OR tra l'indirizzo IP di partenza ed il valore negato della maschera di sottorete.

11000000 10101000 00000111 00110111OR
00000000 00000000 00000000 00001111=
___________________________________
11000000 10101000 00000111 00111111

Infine convertiamo da binario a decimale e otteniamo

IP di broadcast: 192.168.7.63

Che ovviamente è lo stesso indirizzo calcolato in precedenza con l'altro metodo. Ognuno può usare il metodo che preferisce, in base alle proprie attitudini o esperienze.

Esercizi di preparazione al compito

Per prepararsi al compito, Riempire la seguente tabella.

IP/subnetIP reteIP broadcast
192.168.0.122/24
192.168.0.122/26
192.168.0.122/28
192.168.0.122/23
192.168.0.122/20
7.15.22.90/24
7.15.22.90/26
7.15.22.90/28
7.15.22.90/23
7.15.22.90/20