Sottorete subnet

Nell’ambito dell’informatica e delle telecomunicazioni, una sottorete, o subnet, rappresenta una frazione della struttura di una rete IP (Internet Protocol). Questa suddivisione è percebile solo a livello logico della rete, indicando che la distinzione tra una rete e una sottorete riguarda la configurazione di rete assegnata ai singoli computer. Il processo di subnetting consiste nel suddividere una rete in gruppi di computer che condividono lo stesso prefisso di routing all’interno di ogni indirizzo IP.

L’operazione di subnetting frammenta una rete in piccoli segmenti. Si ottimizza l’utilizzo dello spazio degli indirizzi esistenti e, quando separati fisicamente, limitando i tassi di collisione dei pacchetti Ethernet all’interno di una rete più estesa.

Organizzazione logica delle sottoreti

Le sottoreti possono essere organizzate logicamente secondo un’architettura gerarchica. Si suddivide lo spazio degli indirizzi di rete in una struttura ad albero di routing. I router fungono da intermediari nel traffico tra le sottoreti. Rappresentano i confini logici o fisici tra di esse. Gestiscono il flusso di traffico tra le sottoreti basandosi sulla sequenza di bit più significativi (prefisso di routing) degli indirizzi. Il prefisso di routing consiste nei primi bit più significativi di un indirizzo IP, che precedono la parte dell’indirizzo utilizzata per identificare gli host. Questi prefissi sono espressi nella notazione CIDR, dove viene indicato il primo indirizzo di una rete seguito dal numero di bit utilizzati per il prefisso, separati da una barra (/).

Un esempio di sottorete

Ad esempio, consideriamo il prefisso di rete IPv4 192.168.1.0/24, dove sono assegnati 24 bit per identificare la rete e gli altri 8 bit per gli indirizzi degli host. In IPv6, se prendiamo il prefisso di rete 2001:db8::/32, abbiamo una vasta rete con spazio per 2^96 host, utilizzando un prefisso di routing di 32 bit, per un totale di 2^128 combinazioni uniche. Nei contesti IPv4, il prefisso di routing viene tipicamente indicato mediante una maschera di sottorete, che rappresenta i bit del prefisso. Questa maschera viene espressa in notazione decimale puntata, utilizzando quattro byte. Ad esempio, 255.255.255.0 rappresenta la maschera di sottorete per il prefisso 192.168.1.0/24.

Gli host

Ogni host all’interno di una sottorete può essere raggiunto tramite un singolo passaggio di routing. Questo significa che tutti gli host all’interno di una sottorete sono connessi allo stesso collegamento.

Solitamente, una sottorete è considerata come una rete fisica gestita da un router e spesso composta da uno o più segmenti Ethernet, oppure da diverse reti locali connesse tramite switch di rete, bridge di rete o VLAN (Virtual Local Area Network). Tuttavia, grazie all’operazione di subnetting, la rete può essere divisa logicamente indipendentemente dalla sua struttura fisica, permettendo la configurazione dei computer host all’interno di una sottorete in base al router al quale sono collegati.

Migliorando le prestazioni della rete, aumenta anche la complessità del subnetting e del routing, poiché ogni sottorete connessa localmente richiede una voce separata nella tabella di routing per ogni router collegato. Tuttavia, con una progettazione oculata della rete, i percorsi verso gruppi di sottoreti distanti possono essere combinati in singoli percorsi. L’introduzione del Classless Inter-Domain Routing (CIDR) è stata resa possibile proprio dall’esistenza di questa funzionalità delle sottoreti nei router.

Indirizzamento

Computer e dispositivi che si connettono a una rete, come Internet, sono dotati ciascuno di un indirizzo logico. Questo indirizzo solitamente è univoco per ogni dispositivo e può essere assegnato dinamicamente (da un server DHCP) o staticamente (dall’amministratore di rete). L’indirizzo svolge il compito di identificare l’host e di localizzarlo sulla rete, permettendo al dispositivo di comunicare con altri dispositivi collegati. Il protocollo di indirizzamento più diffuso è l’Internet Protocol versione 4 (IPv4), mentre l’IPv6 (il suo successore) è in fase di implementazione iniziale. Un indirizzo IPv4 è costituito da 32 bit e, per facilitare la leggibilità, è rappresentato da quattro ottetti separati da punti, seguendo una notazione decimale puntata. Un indirizzo IPv6, invece, è formato da 128 bit.

Per agevolare l’instradamento dei pacchetti dati attraverso più reti, l’indirizzo è diviso in due parti:

  • Prefisso di Rete (Net_ID): Una sequenza contigua di bit più significativi che è comune a tutti gli host all’interno di una rete.
  • Identificatore Host (Host_ID): I restanti bit meno significativi dell’indirizzo che non sono inclusi nel prefisso di rete. Questa parte identifica un dispositivo specifico all’interno della rete locale.

Il prefisso di rete

Il prefisso di rete può essere rappresentato con una forma simile a quella dell’indirizzo stesso. In IPv4, questa rappresentazione è chiamata maschera di sottorete dell’indirizzo. Ad esempio, per specificare i 18 bit più significativi di un indirizzo, ossia in formato binario, 11111111.11111111.11000000.00000000, si scrive come 255.255.192.0.

Un’altra forma di specificare il prefisso di routing è semplicemente contare il numero di bit del prefisso di routing e aggiungere quel numero all’indirizzo con uno slash (/) come separatore:

192.168.0.0, 255.255.0.0 maschera di rete
192.168.0.0/16

Questa notazione è preferita nel Classless Inter-Domain Routing e si chiama notazione CIDR. In IPv6, questa è l’unica forma accettabile per indicare i prefissi di routing.

Il processo di subnetting

Il processo di subnetting comporta la divisione dell’indirizzo in una parte che identifica la rete e una parte che identifica l’host. Ciò viene realizzato attraverso un’operazione AND binaria tra l’indirizzo IP e la maschera di sottorete. Il risultato di questa operazione è l’identificatore di rete (Net_ID). Un esempio pratico di questo processo può essere visualizzato in una tabella utilizzando formati di indirizzo binario.

Notazione decimale puntata Forma binaria
Indirizzo IP 192.168.5.130 11000000.10101000.00000101.10000010
Maschera di sottorete 255.255.255.0 11111111.11111111.11111111.00000000
Porzione di rete 192.168.5.0 11000000.10101000.00000101.00000000
Porzione di host 0.0.0.130 00000000.00000000.00000000.10000010

In IPv4, la maschera di sottorete, composta da 32 bit, di solito ha una sequenza di “1” seguita da un blocco di “0”. L’ultimo blocco di zeri designa la parte di identificatore di host. Il subnetting è un processo di assegnazione dei bit della porzione host al raggruppamento con la porzione di rete. Questo processo divide una rete in sottoreti più piccole. Il seguente diagramma modifica l’esempio spostando due bit dalla porzione host all’indirizzo di sottorete per formare una subnet più piccola.

Notazione decimale puntata Forma binaria
Indirizzo IP 192.168.5.130 11000000.10101000.00000101.10000010
Maschera di sottorete 255.255.255.192 11111111.11111111.11111111.11000000
Porzione di rete 192.168.5.128 11000000.10101000.00000101.10000000
Porzione di host 0.0.0.2 00000000.00000000.00000000.00000010

Subnetting delle sottoreti IPV4

Internet Protocol versione 4 utilizza formati di indirizzo progettati per facilitare il riconoscimento delle funzionalità dell’indirizzo. I primi e gli ultimi indirizzi della sottorete ottenuta dal subnetting hanno tradizionalmente una designazione speciale. Inoltre, tutti gli host IPv4 utilizzano l’ultimo indirizzo all’interno di una rete per la trasmissione in broadcast a tutti gli host sul link.

Subnet zero e subnet tutta a uno. In passato, prima del 1995, la prima sottorete ottenuta dal subnetting aveva tutti i bit nel gruppo di bit subnet impostati su zero (0). L’ultima sottorete ottenuta dal subnetting aveva tutti i bit nel gruppo di bit subnet impostati su uno (1). Quest’ultima era chiamata subnet tutta a uno. L’uso di queste due sottoreti causava confusione poiché avevano lo stesso indirizzo di rete. Secondo la RFC 950, “È utile preservare ed estendere l’interpretazione di questi indirizzi speciali (di rete e di broadcast) in reti subnetted. Ciò significa che i valori di tutti gli zeri e di tutti gli uno nel campo subnet non dovrebbero essere assegnati alle sottoreti effettive”. Questa pratica non è più scoraggiata dopo l’RFC 1878 del 1995.

La pratica di evitare tutti gli zeri e tutti gli uno dalla sottorete è diventata obsoleta con l’RFC 1878, pubblicata nel 1995. Questa afferma esplicitamente: “Questa pratica è obsoleta! Il software moderno sarà in grado di utilizzare tutte le reti definibili”.

Numero di sottoreti e di host

Il numero di sottoreti disponibili e il numero di host possibili nella rete possono essere calcolati facilmente. Nell’esempio, due bit sono stati presi in prestito per creare sottoreti, producendo così 4 (2^2) sottoreti possibili.

Rete Rete (binario) Indirizzo broadcast
192.168.5.0/26 11000000.10101000.00000101.00000000 192.168.5.63
192.168.5.64/26 11000000.10101000.00000101.01000000 192.168.5.127
192.168.5.128/26 11000000.10101000.00000101.10000000 192.168.5.191
192.168.5.192/26 11000000.10101000.00000101.11000000 192.168.5.255

La RFC 950 raccomandava di riservare i valori di subnet con tutti zeri (vedi sopra) e tutti uno (broadcast), riducendo così a due il numero di sottoreti disponibili. Tuttavia, a causa delle inefficienze introdotte da questa convenzione, è stata abbandonata per l’uso su Internet ed è utilizzata solo con apparecchiature obsolete che non implementano la notazione CIDR. Il motivo principale per evitare l’uso della subnet con tutti zeri è l’ambiguità derivante dalla mancanza della lunghezza del prefisso. Tutti i protocolli di routing compatibili con CIDR trasmettono sia la lunghezza del prefisso che il suffisso. La RFC 1878 fornisce una tabella di esempi di subnetting.

I bit rimanenti dopo la subnet sono utilizzati per indirizzare gli host all’interno della sottorete. Nell’esempio precedente, la maschera di sottorete è composta da 26 bit, lasciando 6 bit per l’identificatore host. Ciò consente 64 combinazioni (2^6), tuttavia i valori formati da tutti zeri e quelli composti da tutti uno sono riservati rispettivamente per l’ID di rete e l’indirizzo di broadcast, lasciando quindi disponibili 62 indirizzi.

In generale, il numero di host disponibili in una subnet è (2^n) – 2, dove n è il numero di bit utilizzati per la parte host dell’indirizzo.

La RFC 3021 specifica un’eccezione a questa regola quando si tratta di maschere di sottorete a 31 bit (cioè identificatori host a 1 bit). In tali reti, i collegamenti sono generalmente punto-punto e solo due host (i punti finali) possono essere collegati, quindi l’ID di rete e l’indirizzo di broadcast non sono necessari.

Il numero di sottoreti possibili all’interno di una /24 (la tradizionale Classe C) per categoria sono:

Notazione CIDR Maschera di Rete Sottorete disponibile Host di rete disponibili Totale host utilizzabili
/24 255.255.255.0 1 256 254
/25 255.255.255.128 2 128 126
/26 255.255.255.192 4 64 62
/27 255.255.255.224 8 32 30
/28 255.255.255.240 16 16 14
/29 255.255.255.248 32 8 6
/30 255.255.255.252 64 4 2
/31 255.255.255.254 128 2 2 *

 

Calcolo dell’indirizzo di sottorete

Data una rete (IPv4) di cui si conoscono i bit che compongono la maschera di sottorete (m) e si vuole conoscere l’indirizzo della n-esima sottorete, si può utilizzare la formula:

f(n) = (n-1) x (h/256)

Dove h è il numero di host calcolati come 2 ^( 32 − m ) 

Esempio di calcolo delll’indirizzo di sottorete

Data la rete 138.81.0.0/25 trovare l’indirizzo della settima sottorete.
f ( 7 ) = 6 ( 2 ^(32 − 25 )/256 ) = 6/2 = 3

Quindi l’indirizzo della settima sottorete è: 138.81.3.0.

Errore: una /25 non ha una settima sottorete ne ha solo 2

Calcoliamo ora l’indirizzo della sottorete 6.
f ( 6 ) = 5( 2 ^(7)/ 256) = 5/2 = 2.5

Moltiplichiamo la parte decimale (0.5) per 256:
0.5 × 256 = 128
L’indirizzo della sesta sottorete, quindi, è: 138.81.2.128.

Subnetting delle sottoreti IPV6

Il design dello spazio di indirizzamento IPv6 si discosta notevolmente da quello di IPv4. Mentre nel caso di IPv4 il subnetting è principalmente mirato a migliorare l’efficienza nell’uso di uno spazio di indirizzi relativamente limitato, specialmente per le aziende, IPv6 non presenta limitazioni in tal senso, poiché offre uno spazio di indirizzamento estremamente ampio anche per gli utenti finali.

In IPv6, una subnet è sempre di 64 bit nella sua parte host, quindi ha un prefisso di routing /64 (i 64 bit più significativi). Sebbene sia tecnicamente possibile utilizzare subnet più piccole, risulta poco pratico per le reti locali a causa delle esigenze della configurazione automatica degli indirizzi delle interfacce di rete (RFC 4862), che richiede una lunghezza del prefisso /64 per gli indirizzi.

A differenza di IPv4, IPv6 non implementa formati di indirizzo speciali per il traffico di broadcast o numeri di rete, pertanto tutti gli indirizzi all’interno di una sottorete sono considerati validi per gli host. La configurazione ideale per un sito cliente IPv6 prevede uno spazio di indirizzi con una lunghezza di 80 bit (prefisso /48), ma può essere ridotta fino a 72 bit (/56) per reti clienti private. Questo garantisce fino a 65.536 sottoreti per sito o un minimo di 256 sottoreti per reti residenziali. Il Subnetting in IPv6 viene impiegato per gestire il traffico tra gli spazi di indirizzamento globali e all’interno della rete cliente, facilitando la comunicazione tra sottoreti e Internet. Tale approccio si basa sui principi del Classless Inter-Domain Routing (CIDR), utilizzando la notazione standard CIDR anche in ambito IPv6.