Vai al contenuto

I vantaggi delle subnet

Gli indirizzi IP, lo sappiamo, sono limitati. Motivo per cui è necessario utilizzarli con parsimonia.

La sottorete offre un modo di organizzare la rete per contribuire a ridurre la congestione della rete. Quando c’è molto traffico in una rete, può essere utile raggruppare le parti in cui vi è più traffico in un’unica sezione, in modo tale che i pacchetti di rete non vadano ad impegnare tutta la rete per spostarsi da un posto all’altro. Separare piccole parti della rete in sottoreti consente al traffico di fluire più rapidamente ed evitare di prendere percorsi alternativi calcolati dagli algoritmi di routing, aggiungendo traffico dove non è necessario.

Inoltre, il subnetting aiuta ad allocare in modo efficiente gli indirizzi IP e impedisce che un gran numero di indirizzi IP rimangano inutilizzati. Le sottoreti vengono solitamente impostate geograficamente per uffici particolari o per team particolari all’interno di un’azienda per consentire al traffico di rete di rimanere all’interno della posizione.

Per quale motivo, una rete dovrebbe essere suddivisa in più sottoreti? Di seguito sono riportati alcuni motivi:

  • Utilizzare più media: Può essere impossibile, scomodo o troppo costoso connettere tutti i nodi a un singolo mezzo di rete quando questi nodi sono troppo distanti o già collegati a media diversi.
  • Ridurre la congestione: Il traffico tra i nodi su una singola rete utilizza la larghezza di banda della rete. Di conseguenza, è necessaria più larghezza di banda quando si hanno più nodi. La suddivisione dei nodi in reti separate riduce il numero di nodi su una rete di collegamento dati. Meno nodi generano meno traffico e, di conseguenza, meno congestione.
  • Ridurre l’utilizzo della CPU:Ridurre l’utilizzo della CPU sui nodi connessi è simile alla riduzione della congestione. Più nodi su una rete causano più trasmissioni su quella rete. Anche se una trasmissione non viene inviata a un nodo particolare, ogni nodo di una rete deve reagire a ogni trasmissione prima di decidere se accettarla o scartarla.
  • Isolare una rete: Suddividendo una rete grande in reti piccole, si limita l’impatto dei problemi di una rete su un’altra.
  • Migliora la sicurezza: Ciascun nodo di una rete ha accesso a tutti i pacchetti inviati su quella rete. Abilitando il traffico di rete sensibile su una sola rete, è possibile impedire ad altri monitor di rete di accedere a questo traffico sensibile.
  • Fare un uso efficiente dello spazio degli indirizzi IP: Se si utilizza un numero di rete di Classe A o B e si dispone di più reti fisiche di piccole dimensioni, è possibile dividere lo spazio degli indirizzi IP in più sottoreti IP e assegnarle a singole reti fisiche. Un’altra opzione è ottenere diversi numeri di rete di Classe C, sebbene ciò sia meno desiderabile.

Cos’è un indirizzo IP?

Prima di iniziare a capire come funzionano le sottoreti e come gestirle, è importante avere una conoscenza approfondita di come funzionano gli indirizzi IP. Un indirizzo IP è essenzialmente un identificatore per qualsiasi dispositivo connesso a una rete (o ancora meglio interfaccia). Esistono due tipi di indirizzo IP: IPv4 (versione 4) e IPv6 (versione 6).

Un esempio di indirizzo IPv4 è: 201.32.45.199

Un indirizzo IPv4 utilizza 4 byte, cioè 32 bit per identificare un dispositivo. I 32 bit vengono divisi in quattro gruppi di otto (chiamati ottetti), quindi ciascun gruppo viene trasformato in un numero decimale da 0 a 255. Questi quattro gruppi sono separati da un punto.

Gli indirizzi IPv6 sono costituiti da 128 bit binari. Questi bit sono separati in otto gruppi e ogni gruppo è separato da due punti.

Un esempio di indirizzo IPv6 è: 2002:cffa:0000:0000:0000:0000:9217:4452

Normalmente, i gruppi costituiti interamente dal numero zero vengono rimossi e sostituiti da due punti per abbreviare l’indirizzo IP e facilitarne l’uso, quindi l’indirizzo verrebbe: 2002:cffa:::::::::9217:4452

IPv6 è stato creato perché in IPv4 erano possibili 232 combinazioni, consentendo fino a 4,3 miliardi di indirizzi IP univoci. Con la crescita di Internet e del numero di dispositivi, sono diventate necessarie nuove combinazioni di numeri. IPv6 consente fino a 2.128 combinazioni, il che ha ampliato significativamente il numero di possibili indirizzi IP univoci.

Gli indirizzi IP possono essere condivisi con un altro dispositivo, multicast su più dispositivi o trasmessi a tutti, in altre parole, pubblici. Gli indirizzi IP possono anche essere dinamici o statici. Un indirizzo IP statico significa che a un particolare dispositivo è assegnato un indirizzo IP, che non cambia. Un indirizzo IP dinamico significa che quando un dispositivo si connette a una rete gli viene assegnato un indirizzo IP disponibile, che potrebbe cambiare ogni volta che il dispositivo si connette.

Le classi IP

Gli indirizzi IP sono divisi in sezioni numeriche per aiutarci a trovare più rapidamente ciò che cerchiamo. Queste sezioni sono chiamate classi. Gli indirizzi IP sono divisi in tre classi: A, B e C.

  • Classe A: gli indirizzi IP sono quelli compresi tra 0.0.0.0 e 127.255.255.255.
  • Classe B: gli indirizzi IP sono quelli compresi tra 128.0.0.0 e 191.255.255.255.
  • Classe C: gli indirizzi IP sono quelli compresi tra 192.0.0.0 e 223.255.255.255.

Se il primo numero è compreso tra 1 e 127, sarà un indirizzo di classe A. Se il primo numero è compreso tra 128 e 191, è un indirizzo di classe B. Infine, se è compreso tra 192 e 223, è un indirizzo di classe C.

A seconda della classe dell’indirizzo IP, vengono utilizzate diverse parti dell’indirizzo IP per designare la rete e l’host. Ad esempio, la classe A utilizza solo 8 bit dell’indirizzo IP per la rete, lasciandone 24 per l’host. Quindi, utilizzando l’esempio 126.27.61.137, l’indirizzo IP della rete sarebbe 126.0.0.0 e l’indirizzo host sarebbe 0.27.61.137.

Per un indirizzo di classe C, vengono utilizzati 24 bit per la rete e otto rimangono per l’host. Utilizzando 200.23.65.1 come esempio, il risultato sarebbe 200.23.65.0 per la rete e 0.0.0.10 per l’host.

Affinché reti come TCP/IP funzionino, non è necessario che i router che trasmettono informazioni attraverso la rete conoscano l’esatto indirizzo host. Hanno solo bisogno di conoscere la parte di rete dell’indirizzo IP; quindi, una volta che il pacchetto è stato consegnato alla rete dell’host, può raggiungere l’host giusto.

Subnet Mask

Ogni classe di indirizzo IP ha una “maschera di sottorete” corrispondente, che è un modo semplice per identificare quale parte dell’indirizzo IP si riferisce alla rete e quale parte si riferisce all’host. Ciò è essenziale per garantire che i pacchetti che viaggiano attraverso la rete arrivino al posto giusto.

Le maschere di sottorete corrispondenti predefinite per ciascuna classe di sottorete sono le seguenti:

  • Classe A: 255.0.0.0
  • Classe B: 255.255.0.0
  • Classe C: 255.255.255.0

Quando osserviamo le maschere di sottorete e riconvertiamo i numeri decimali in binari, possiamo vedere quali bit dell’indirizzo IP sono allocati alla rete e quali sono allocati all’host.

In binario, 255 è 11111111 e 0 è 00000000.

Quindi una maschera di sottorete 255.255.255.0 verrebbe convertita in:

11111111.11111111.11111111.0000000

Quando lo abbiniamo a un indirizzo IP, come 192.168.123.132, possiamo determinare la parte di rete e la parte host dell’indirizzo IP. Ogni “1” nella maschera di sottorete indica per la porzione di bit dell’indirizzo IP della rete mentre ogni “0” indica per la porzione di bit allocata all’host.

Ecco un esempio:

11111111.11111111.11111111.00000000	Maschera di sottorete
11000000.10101000.01111011.10000100	Indirizzo IP 192.168.123.132 in binario)

Ciò significa che la porzione di rete della sottorete è 192.168.123 ed è uguale per tutti gli host della sottorete mentre il .132 è allocato per l’host. Quando le informazioni arrivano sulla rete 192.168.123.0, verranno elaborate come parte della rete e quindi consegnate all’host 0.0.0.132.

La comunicazione tra un nodo su una sottorete locale e un nodo su una sottorete diversa è simile alla comunicazione tra nodi su due reti diverse. Per un utente, l’instradamento tra sottoreti è trasparente. Internamente, il software IP riconosce tutti gli indirizzi IP destinati a una sottorete remota e invia tali pacchetti al router su quella sottorete.

Come nella comunicazione da rete a rete, le informazioni di instradamento per la comunicazione tra sottoreti vengono mantenute nella tabella di instradamento (per IP).

La Tabella mostra un esempio di sottorete di Classe C con un indirizzo IP 200.2.1.209. Per creare un indirizzo di sottorete, i bit vengono presi dalla porzione host locale. All’aumentare della dimensione della maschera di sottorete, il numero di host diminuisce e il numero di sottoreti aumenta.

Indirizzo IP di classe C 200.2.1.209 Numero di rete Numero di sottorete Numero dell’ospite Reti, sottoreti e host disponibili
FF.FF.FF.0 200.2.1.0 Nessuno 0.0.0.209 1 rete, 0 sottoreti e 254 host
FF.FF.FF.E0 200.2.1.0 200.2.1.192 0.0.0.17 7 sottoreti e 30 host per sottorete
FF.FF.FF.F0 200.2.1.0 200.2.1.208 0.0.0.1 15 sottoreti e 14 host per sottorete

Utilizzo delle sottoreti

Essenzialmente, una sottorete è una porzione più piccola della rete all’interno della classe A, B o C. La creazione e l’utilizzo di sottoreti può aiutare a mantenere la rete organizzata e funzionale.

Esempio di sottorete in 3 passaggi:

Supponiamo che un’azienda desideri utilizzare quattro diversi blocchi di indirizzi IP per i diversi segmenti della propria rete, con 50 host per segmento. L’azienda utilizza i seguenti blocchi di indirizzi IP:

  • 200.1.0.0
  • 200.1.1.0
  • 200.1.2.0
  • 200.1.3.0

Obiettivo

Ciascun blocco di indirizzi IP può creare 254 indirizzi IP, ovvero un totale di 254 x 4 indirizzi IP, cioè 1.016 indirizzi IP. Ma l’azienda vuole solo 50 host su ogni blocco, quindi avrà 816 indirizzi IP che non verranno utilizzati affatto. Questo è uno spreco di indirizzi IP che potrebbero essere utilizzati da altri dispositivi. Il subnetting è un modo per dividere un blocco di indirizzi IP in porzioni più piccole, in modo da sprecare meno indirizzi IP.

Risoluzione

Sappiamo che per il primo indirizzo IP, 200.1.0.0, 200.1.0 è la porzione di rete e .0 è la porzione di host. L’indirizzo IP completo nei 32 bit binari sarebbe simile a:

11001000.00000001.00000000.00000000

Ma sappiamo che non abbiamo bisogno di tutti i 254 host creati da questo blocco di indirizzi IP, quindi possiamo prendere in prestito alcuni dei “bit” dell’host per creare una nuova “sottorete” o sottorete.

Utilizzando l’esempio 11001000.00000001.00000000.00000000, prenderemmo in prestito un “bit” dalla porzione host per creare una sottorete. Cosi:

11001000.00000001.00000000.00000000

 potrebbe diventare:

11001000.00000001.00000000. 1 0000000

 Di conseguenza, il nuovo indirizzo IP decimale diventerebbe:

200.1.0.128

Prendendo in prestito questo bit dalla parte host dell’indirizzo IP, rimangono comunque sette bit nella parte host. Con 7 bit nella parte host possiamo creare 128 indirizzi IP, che sono comunque più che sufficienti per le esigenze dell’azienda. Se seguiamo il processo e prendiamo in prestito un altro bit dalla parte host dell’indirizzo IP, è possibile creare quattro sottoreti:

11001000.00000001.00000000. 00000000    200.1.0.0
11001000.00000001.00000000. 01 000000   200.1.0.64
11001000.00000001.00000000. 10000000    200.1.0.128
11001000.00000001.00000000. 11 000000   200.1.0.192

Queste quattro sottoreti consentono la creazione di 64 indirizzi IP e gli sprechi sono molto inferiori rispetto all’esempio precedente.

Se consideriamo che 2 host sono riservati per gli indirizzi IP necessari per l’identità di rete stessa (il primo IP) e l’indirizzo broadcast (l’ultimo IP), per ogni blocco di indirizzi IP vengono sprecati solo 12 indirizzi IP.

Sottoreti di dimensioni variabili

Le sottoreti di una rete possono avere maschere di sottorete di lunghezza diversa, e ciò prende il nome di Subnetting VLSM (Variable Length Subnet Masking). Queste sottoreti sono chiamate variabili perché la dimensione, o lunghezza, della sottorete varia da sottorete a sottorete.

Una maschera di sottorete definisce il numero di bit che può essere utilizzato per definire la sottorete e il numero di bit per definire l’host. All’aumentare della maschera di sottorete, il numero di host su una sottorete diminuisce. Man mano che la maschera di sottorete diminuisce, aumenta il numero di host che possono essere definiti.

Ecco come funziona in breve:

  • Assegnazione di blocchi di indirizzi: In un approccio tradizionale, si potrebbe dividere la rete in subnet di dimensioni fisse, ad esempio, ciascuna con 256 indirizzi IP (una subnet di classe C). Con VLSM, è possibile assegnare blocchi di indirizzi più piccoli, adattandoli alle effettive esigenze di ciascuna subnet.
  • Ottimizzazione delle risorse: Utilizzando VLSM, è possibile assegnare subnet più grandi alle reti che ne hanno bisogno e subnet più piccole a quelle con meno dispositivi. Ciò consente di ottimizzare l’utilizzo degli indirizzi IP, riducendo lo spreco di indirizzi in subnet più piccole.
  • Flessibilità nella progettazione: VLSM offre una maggiore flessibilità nella progettazione delle reti, consentendo agli amministratori di rete di adattare le dimensioni delle subnet alle esigenze specifiche di ciascuna area della rete.

Supponiamo di avere un blocco di indirizzi IP 192.168.1.0/24. Con l’approccio tradizionale, dovremmo utilizzare l’intero blocco per ogni subnet, indipendentemente dalla dimensione effettiva della subnet. Con VLSM, potremmo assegnare, ad esempio, una subnet di 192.168.1.0/27 (32 indirizzi) per una parte della rete e una subnet di 192.168.1.32/28 (16 indirizzi) per un’altra parte.

In questo modo, ottimizziamo l’utilizzo degli indirizzi IP in base alle esigenze specifiche di ciascuna subnet, riducendo lo spreco di indirizzi in subnet più piccole.

Alcune configurazioni di rete presentano sottoreti individuali con un numero elevato di host e altre sottoreti con un numero ridotto di host. L’utilizzo delle stesse maschere di sottorete su tutte le sottoreti può significare quanto segue:

  • La maschera è troppo piccola e non hai abbastanza numeri di sottorete per tutte le tue sottoreti.
  • La maschera è troppo grande e non disponi di IP host sufficienti per tutti gli host su una sottorete.

Se la maschera è troppo piccola o troppo grande, possiamo utilizzare una sottorete di dimensioni variabili. Variando la dimensione della maschera di sottorete utilizzata su una rete, è possibile abbinare il numero e la dimensione delle sottoreti alla propria configurazione.

Ad esempio, la sottorete 16 della rete 130.57.0.0 con maschera 255.255.240.0, 130.57.16.0, può essere ulteriormente suddivisa in 16 sottoreti con 256 host ciascuna. (In realtà, questa divisione crea 15 sottoreti con 254 host ciascuna perché la sottorete 130.57.31.0, l’host 0 e l’host 255 non vengono utilizzate.)

Indirizzi di trasmissione

Quando si parla di indirizzi di trasmissione, ci si riferisce spesso ai vari tipi di indirizzi usati in reti informatiche. Ecco alcune categorie di indirizzi di trasmissione comuni:

  • Trasmissioni dirette (Unicast): Gli indirizzi unicast sono indirizzi destinati a un singolo host su una rete. Quando un dispositivo invia un pacchetto a un indirizzo unicast, il pacchetto è destinato specificamente a quell’host.
  • Trasmissioni dirette di Subnet (Subnet Broadcast): In reti suddivise in subnet, i pacchetti possono essere indirizzati a tutti gli host nella stessa subnet utilizzando l’indirizzo di broadcast della subnet. Ad esempio, in una rete con indirizzi IP della forma 192.168.1.0/24 (notazione CIDR), l’indirizzo di broadcast di subnet potrebbe essere 192.168.1.255.
  • Trasmissioni dirette di tutte le Subnet (Limited Broadcast): L’indirizzo di trasmissione diretta di tutte le subnet è utilizzato per inviare pacchetti a tutti gli host nella rete locale. In IPv4, l’indirizzo di broadcast limitato è 255.255.255.255. Quando un dispositivo invia un pacchetto a questo indirizzo, il pacchetto viene consegnato a tutti gli host nella stessa rete.
  • Trasmissioni limitate (Multicast): Gli indirizzi multicast sono utilizzati per inviare pacchetti a un gruppo selezionato di host. Mentre la trasmissione diretta è uno-a-uno e la trasmissione diretta di subnet è uno-a-molti all’interno di una subnet, la trasmissione multicast consente di inviare uno-a-molti a livello di gruppo su reti più ampie.

Con l’introduzione di IPv6, le tradizionali trasmissioni broadcast sono state eliminate. Invece, si fa affidamento su trasmissioni multicast e altri meccanismi più efficienti per ottenere scopi simili.

Se la rete è divisa in sottoreti, ciascuna sottorete ha una trasmissione diretta alla sottorete. Una trasmissione diretta alla sottorete ha un indirizzo IP con il campo rete impostato sull’identificatore di rete, il campo sottorete impostato sull’identificatore della sottorete e il campo host impostato su tutti uno.

Indirizzi multicast

Gli indirizzi multicast sono un tipo di indirizzo IP utilizzato in reti per consentire la comunicazione tra più dispositivi contemporaneamente. Mentre gli indirizzi unicast sono utilizzati per comunicare tra due dispositivi, e gli indirizzi broadcast sono utilizzati per inviare dati a tutti i dispositivi nella rete, gli indirizzi multicast sono utilizzati per comunicare con un gruppo selezionato di dispositivi.

Gli indirizzi multicast in IPv4 sono nell’intervallo 224.0.0.0 a 239.255.255.255. Il primo blocco, 224.0.0.0 a 224.0.0.255, è riservato per l’uso locale e il routing di protocollo, mentre il resto del blocco è utilizzato per scopi specifici di applicazione o di gruppo.

Alcuni esempi di indirizzi multicast comuni includono:

  • 224.0.0.1: Tutti gli host sulla rete locale. Utilizzato per scopi di discovery e annuncio.
  • 224.0.0.2: Tutti i router sulla rete locale.
  • 224.0.0.22: Internet Group Management Protocol (IGMP).
  • 239.1.1.1: Multicast per flussi video.

Un esempio di utilizzo degli indirizzi multicast è nelle trasmissioni di streaming, in cui un server invia dati a un gruppo di client invece che a uno specifico. In questo modo, più dispositivi possono ricevere gli stessi dati simultaneamente.

Con l’avvento di IPv6, il concetto di indirizzi multicast è stato ampliato e migliorato. In IPv6, il range di indirizzi multicast è molto più grande (da FF00::/8) e l’approccio è più flessibile, consentendo una maggiore scalabilità nelle reti moderne.