IP Subnetting

Questo articolo è stato pubblicato su: www.networkingitalia.it

RFC 917 – Internet Subnets

RFC 950 – Internet Standard Subnetting Procedure

Numerazione IP

Come abbiamo visto nelle sezioni dedicate all’IP, questo numero è specificato da 32 bit (4 Byte) es: 192.168.150.2:

192 (8 bit)

168 (8 bit)

150 (8 bit)

2 (8 bit)

Network Host

Ogni indirizzo IP si suddivide in due o tre parti:

a) Divisione degli IP con mashere di sottorete convenzionali:

Network

Host

  • Classe A = da 1.0.0.0 a 126.255.255.255 –
    inizia con un bit a 0 (primo ottetto da 1 a 126 in decimale), 7 bit per la rete , 24 per l’host. Permette di avere 126 reti con 16.777.213 host ciascuno.

0

7

8

31

0

Network

Host

  • Classe B = da 128.0.0.0 a 191.255.255.255
    inizia con due bit a 10 (primo ottetto da 128 a 191 in decimale), 14 bit per la rete , 16 per l’host. 16.382 reti, di 65.534 host ciascuno.

0

1

15

16

31

1

0

Network

Host

  • Classe C = da 192.0.0.0 a 223.255.255.255
    inizia con tre bit a 110 (primo ottetto da 192 a 223 in decimale), 21 bit per la rete , 8 per l’host. 2.097.150 reti, di 254 host ciascuno.

0

1

2

23

24

31

1

1

0

Network

Host

b) Divisione degli Ip con maschere di sottorete non convenzionali:

Nel caso di maschere di sottorete non convenzionali, il campo Host viene ulteriormente suddiviso in due parti. Subnet e host.

Network

Subnet

Host

Questo caso si verifica quando è necessario dividere la rete in due segmenti separati, in modo che gli host appartengano a due reti diverse, separate da un router.

La divisione in sottoreti

La segmentazione di una rete IP in più sottoreti, può rendersi necessaria per una varietà di motivi, compreso l’ organizzazione, l’ uso di diversi accessi ai media fisici ( Ethernet, il FDDI, WAN, ecc.) e, sopprattutto, per la razionalizzazione dell’indirizzamento IP. Non ultimo motivo, la sicurezza.
Il motivo più comune è quello di gestione del traffico della rete. In una rete di tipo Ethernet, tutti gli host del segmento fisico vedono, e analizzano, tutti i pacchetti trasmessi da tutti gli altri host di quel segmento. Le prestazioni della rete possono subire pesanti carichi e, quindi, rallentamenti e collassamenti, dovuti alle collisioni e alle ritrasmissioni. L’uso dei router è indicato per segmentare le reti (e segmentare, quindi, i domini di broadcast) per consentire un miglior rendimento generale. Le reti IP segmentate minimizzano la quantità di traffico che ogni segmento deve gestire.

La RFC di riferimento è la n. 950.

Applicando una maschera di sottorete (subnetmask) ad un indirizzo IP si permette l’identificazione della sottorete di appartenenza con la semplice comparazione dell’ indirizzo e della maschera. L’ operazione si dice di “AND LOGICO” fra il numero IP e la sua maschera. Risultato di questa operazione è l’individuazione della rete di appartenenza.
L’operazione di AND LOGICO compara 2 bit: se sono entrambi di valore “1”, il risultato sarà “1”, altrimenti sarà “0” (lettura incrociata della tabella seguente):

0 1
0 0 0
1 0 1

Lo stack TCP/IP di un host esegue, durante l’inizializzazione, un processo di AND fra il numero di IP e la sua maschera di sottorete. Quando un pacchetto viene inviato in rete, il suo destinatario IP viene sottoposto, anch’esso, ad un AND logico con la subnetmask. Se le risultanti dei due processi sono uguali significva che il destinatario appartiene alla rete locale. Diversamente verrà inviato ad un router che provvederà a smistarlo in una rete remota.

Subnet mask di default (maschere di sottorete convenzionali)

La mascheratura di sottorete è un indirizzo di 32 bit (simile al numero IP) che consente di “dividere” la parte host da quella di rete. Questa maschera è fondamentale perchè grazie ad essa si riesce a determinare se un IP fa parte della rete locale o va ricercato in una rete remota.

In presenza di reti locali non segmentate si userà la maschera di default.
Vediamone un esempio:
Dichiariamo l’indirizzo IP 150.129.220.200 con maschera di sottorete 255.255.000.000 ed effettuiamo l’AND LOGICO:

10010110.10000001.11011100.11001000 150.129.220.200 Indirizzo classe B
11111111.11111111.00000000.00000000 255.255.000.000 Subnet Mask classe B
———————————————————————–
10010110.10000001.00000000.00000000 150.129.000.000 Indirizzo di rete

Come si vede dalla tabella, la risultante dell’AND LOGICO ci restituirà l’indirizzo di rete.
Possiamo dire che in una maschera di sottorete convenzionale tutti i bit dell’ Net ID saranno settati a 1 e tutti i bit dell’host ID saranno settati a 0.

 

TABELLA DELLE NETMASK DI DEFAULT

Classe

NetMask di default

Significato dell’indirizzo IP

Esempi di indirizzi host

Rete di appartenenza

A

255.0.0.0

N.H.H.H

10.0.1.23

10.0.0.0

B

255.255.0.0

N.N.H.H

146.87.12.250

146.87.0.0

C

255.255.255.0

N.N.N.H

200.150.189.31

200.150.189.0

Mascherature non convenzionali

Laddove intendiamo segmentare una rete locale in più sottoreti, abbiamo la necessità di utilizzare maschere personalizzate dette “non convenzionali”. Per fare questo utilizziamo una modalità diversa che consiste nel’appropriarsi di bit dell’ host ID (prendere in prestito dei bit dall’host) per definire la mascheratura “non convenzionale”.

Dobbiamo, quindi, prendere in prestito dei bit dalla porzione host e trasferirli in una porzione internedia del numero IP per determinare una mascheratura non convenzionale:

Network

Subnet

Host

In questo caso avremo tre campi distinti: Net ID, SubnetMask ID e Host ID.

Attenzione:
Il numero minimo di bit che dobbiamo rubare dalla porzione host è 2.
Il numero massimo di bit che possiamo rubare dalla porzione host è 6.

Tabella descrittiva del numero massimo di bit che si possono “rubare” all’host:

Classe Dimensione del campo host Numero massimo di bit per le subnet
A 24 22
B 16 14
C 8 6

Con questa modalità la rete di appartenenza dei vari host sarà diversa a seconda delle maschere di sottorete che gli attribuiremo. Di fatto subnettare significa segmentare la rete..
Alcune limitazioni sono però da specificare subito per non cadere in errore:

Gli indirizzi host con tutti i bit a 0 o con tutti i bit a 1 sono riservati. Lo zero (00000000.00000000.00000000.00000000) è un indirizzo fittizzio che viene usato per richiedere un indirizzo reale ad un server. Di solito è il campo con tutti 0 che deve essere riempito da un DHCP o un BOOTP. Analogamente l’indirizzo con tutti 1 (11111111.11111111.11111111.11111111) chiamato indirizzo di broadcast, rappresenta tutta la rete

Calcolo delle sottoreti disponibili

Per calcolare il numero di sottoreti disponibili, useremo la formula (2^n – 2) dove n = numero dei bit di ogni campo. Moltiplicando il numero delle sottoreti per il numero di host disponibili per ogni sottorete otterremo il numero totale degli host disponibili per tutta la classe definita dalla maschera di sottorete.
Le maschere di sottorete con bit non contigui non sono consigliate.

Esempio:

11001000.10110011.11011100.11001000 200.179.220.200 IP Address
11111111.11111111.11111111.11100000 255.255.255.224 Subnet Mask
———————————————————————-
11001000.10110011.11011100.11000000 200.179.220.192 Subnet Address
10001100.10110011.11011111.11111111 200.179.220.223 Broadcast Address

In questo esempio sono stati “rubati” 3 bit alla porzione host. Operando con la formula (2^n – 2) dove n è il numero di bit “rubati”, avremo (2 alla terza – 2) e cioè 6 sottoreti 2 al numero dei bit “rubati”, e cioè 2 x 2 = 4 x 2 = 8 – 2 = 6. Non dimentichiamo che gli indirizzi con tutti 0 e tutti 1 non sono ammessi.

Definizione degli ID di sottorete

Per conoscere gli ID delle sottoreti disponibili abbiamo due metodologie. La prima prevede la comparazione di tutte le combinazioni possibili: In questa tabella compariamo tutte le combinazioni possibili con il numero 224 cioè 11100000 per l’esempio che abbiamo appena utilizzato:

non valida 00000000 0
rete 1 00100000 32 da 200.179.220.33 a 200.179.220.62
rete 2 01000000 64 da 200.179.220.65 a 200.179.220.94
rete 3 01100000 96 da 200.179.220.97 a 200.179.220.126
rete 4 10000000 128 da 200.179.220.129 a 200.179.220.158
rete 5 10100000 160 da 200.179.220.161 a 200.179.220.190
rete 6 11000000 192 da 200.179.220.193 a 200.179.220.222
non valida 11100000 224

E’ chiaro che se al posto di tre bit ne avessimo 5 le combinazioni sarebbero maggiori e questo tipo di calcolo sarebbe molto difficile da effettuare. Un altro metodo, più semplice, è quello di usare il valore decimale del bit più basso della subnet mask come operatore e sommarlo per il numero di subnet necessarie (2^n – 2) cioè 6.. Nel nostro caso il terzo bit di 11100000 ha un valore decimale 32. Questo numerò sarà dunque il valore di incremento. La semplice regola da applicare, è quella di sommare il valore di incremento (decimale dell’ultimo bit) per il numero di subnet (6).

0 non valida
0 + 32 = 32 da 200.179.220.33 a 200.179.220.62
32 + 32 = 64 da 200.179.220.65 a 200.179.220.94
64 + 32 = 96 da 200.179.220.97 a 200.179.220.126
96 + 32 = 128 da 200.179.220.129 a 200.179.220.158
128 + 32 = 160 da 200.179.220.161 a 200.179.220.190
160 + 32 = 192 da 200.179.220.193 a 200.179.220.222
192 + 32 = 224 non valida

Calcolo degli host disponibili

Se, come nel nostro caso, sono stati rubati 3 bit all’host, ne rimarranno disponibili 5: 00011111. Convertendo in decimale questo numero, otterremo il numero di host per sottorete: 31 – 1 = 30 host per ogni subnet.

Lavorando con le potenze: Nel nostro esempio sono stati “rubati” 3 bit alla porzione host, per cui ne rimangono 5. Operando con la formula (2^n – 2) dove n è il numero di bit “rimasti all’host”, avremo (2 alla quinta – 2) e cioè 30 host 2 al numero dei bit “rimasti all’host”, e cioè 2 x 2 = 4 x 2 = 8 x 2 = 16 x 2 = 32 – 2 = 30. Non dimentichiamo che gli indirizzi con tutti 0 e tutti 1 non sono ammessi.

Procedura di lavoro

1) Determinare il numero di segmenti necessari. Convertire tale numero in binario.
(es. 6 sottoreti = 110 ovvero 00000110)

2) Contare il numero di bit necessari per rappresentare il numero di segmenti fisici in numero binario.
(es 110 = 3 bit)

3) Prendere in prestito i bit necessari (3) dalla porzione host e convertire il numero di bit richiesti in numero decimale ordinandoli da sinistra a destra.
(es. 11100000 = 224)

Per segmentare 6 reti basterà quindi definire un maschera di sottorete con valore 224.

Per fare delle prove pratiche on-line utilizzate la calcolatrice

2 Comments

  1. L’articolo ė bello e tecnico al punto giusto, ma un pochino datato! Vuoi perchė gli switch di rete e i vari firewall che segmentano le reti interne, vuoi per l’ampiezza di banda sempre maggiori delle schede di rete e sia perchė da adesso in poi l’unica direzione ė l’ipv6. Colgo la solitanoccasione per un abbraccio e una salutone!

    Mi piace

    Rispondi

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...