03. Subnetting
Subnetting
Il subnetting è una tecnica che consente di definire reti con un numero di host variabile, superando i vincoli imposti dalle classi degli indirizzi. Questa tecnica comporta diversi vantaggi:
minor spreco di indirizzi: in quanto è possibile scegliere in modo più granulare il numero di host che faranno parte della sottorete;
riduzione del traffico di rete: in quanto si riduce il dominio di broadcast (broadcast domain):
miglioramento delle performance della rete: in conseguenza della riduzione del traffico.
Questa tecnica è applicata continuamente dagli ISP che operano sugli indirizzi pubblici ma ha anche riscontri reali nelle LAN che utilizzano indirizzi privati.
Gli scenari che verranno illustrati di seguito ricadono nel secondo caso e quindi si basano su indirizzi privati.
Il punto di partenza per inquadrare correttamente la tecnica, è rappresentare sia gli IP che le maschere in binario.
Il subnetting prevede che si estenda la NetId dell'indirizzo della Netowk di un numero di bit variabile, in base all'esigenza. Ne consegue, ovviamente, una riduzione dell'HostId di pari valore.
Anche la maschera associata deve essere rimodulata di conseguenza. Il nome più appropriato in questo caso sarà quello Subnet Mask (in realtà questo termine è entrato nell'uso comune anche per indicare una qualsiasi maschera).
Procediamo con un esempio per illustrare la tecnica.
A partire dalla Network con indirizzo 172.16.0.0 con maschera 255.255.0.0, ci adoperiamo per ricavare due sottoreti, dimezzando (all'incirca) il numero di host assegnabili in ciascuna di esse.
Per prima cosa ci avvaliamo della notazione binaria per semplificare il procedimento.
A questo punto si estende la NetId di un bit in modo da dimezzare il numero di host nella nuova sottorete.
Anche la maschera deve essere aggiornata di conseguenza (nell'immagine è aggiornato anche il valore in decimale).
Il nuovo scenario impatta sull'indirizzo della Network, infatti in corrispondenza dell'estensione della NetId la precedente immagine riporta una x evidenziata in rosso, che deve essere "risolta".
In effetti tutti i valori possibili (0 o 1 in questo caso) sono ammessi, e danno luogo a differenti Network.
Nel nostro esempio è richiesto di definire due sottoreti e di conseguenza alla x si assegnerà una volta il valore 0 e una volta il valore 1.
Nell'immagine sono stati aggiornati anche i valori in decimale, corrispondenti ai byte cui si riferiscono.
Le due network cercate sono dunque:
172.16.0.0 con maschera 255.255.128.0
172.16.128.0 con maschera 255.255.128.0
Per determinare quali sono gli indirizzi di broadcast delle due sottoreti occorre valorizzare ad 1 i bit corrispondenti all'HostId.
Come in precedenza, nell'immagine sono stati convertiti in decimale i valori binari.
La situazione aggiornata è dunque la seguente:
172.16.0.0 con maschera 255.255.128.0 e indirizzo di Broadcast 172.16.127.255
172.16.128.0 con maschera 255.255.128.0 e indirizzo di Broadcast 172.16.255.255
Gli indirizzi assegnabili agli host sono tutti quelli compresi tra l'indirizzo della Network e l'indirizzo di Broadcast.
Nel particolarissimo caso in cui si riservano 31 dei 32 bit dell'indirizzo IP alla NetId, la sottorete non dispone più degli indirizzi di rete e di broadcast. In questo caso è ammessa esclusivamente la connessione punto-punto tra host.
Note:
Nell'esempio svolto in precedenza l'indirizzo di broadcast della seconda sottorete è identico all'indirizzo di broadcast della Network originaria ma questo non comporta alcuna ambiguità perché le due reti hanno una differente maschera.
Il numero di host assegnabili a ciascuna sottorete non è esattamente la metà di quello della rete originaria, infatti nella rete originaria solo due indirizzi non sono assegnabili agli host (riservati alla Network e al Broadcast) mentre considerando le due sottoreti gli indirizzi non assegnabili sono due per sottorete e quindi quattro.
Notazione CIDR
Le maschere oltre che con la notazione decimale puntata possono essere rappresentate in modo più compatto con la notazione CIDR (Classless Inter-Domain Routing ), che ha una forma del tipo /valore (ad esempio /20), dove il valore rappresenta il numero di 1 presenti nella maschera.
In effetti le maschere, se rappresentate in binario, sono costituite da una successione di 1 seguite da una successione di 0. In totale 32 bit.
E' chiaro che se si indica il numero di 1 è immediato ricavare il numeri di 0 ed è possibile calcolare il valore decimale assunto da ogni ottetto.
Consideriamo, ad esempio, la maschera /20, espressa in notazione CIDR.
La seguente tabella mostra la corrispondenza tra le due notazioni.
Network di appartenenza
Il meccanismo di instradamento dei datagram, per poter operare, deve essere in grado di determinare se un generico indirizzo D sia o meno nella stessa Network di un dato indirizzo S, di cui sia nota la maschera M.
Questa operazione, in termini algoritmici, è di immediata risoluzione e si basa sull'operazione di AND bit a bit.
Partendo dalle rappresentazioni binarie degli indirizzi e della maschera, si effettuano le seguenti operazioni:
si ricava l'indirizzo della Network cui appartiene l'indirizzo D facendo l'AND bit a bit tra la maschera M e l'indirizzo D;
si ricava l'indirizzo della Network cui appartiene l'indirizzo S facendo l'AND bit a bit tra la maschera M e l'indirizzo S;
Si confrontano i due indirizzi ricavati a partire sa D e da S.
Se gli indirizzi sono identici, allora l'indirizzo D appartiene alla stessa network di S, in caso contrario non appartiene alla stessa Network.
Consideriamo ad esempio l'indirizzo D 192.168.10.88 e l'indirizzo S 192.168.10. 144 con maschera 255.255.255.128 e determiniamo se appartengono alla stessa Network.
Gli indirizzi delle due Network sono diversi, pertanto i due indirizzi S e D non appartengono alla stessa Network.
Nota:
L'operazione di AND bit a bit si comporta come una moltiplicazione termine a termine.
Ad esempio:
1 1 1 0 0 0 AND
1 0 1 1 0 1 =
----------------
1 0 1 0 0 0
Sito: 7ecnologie
Sezione: 13. Reti
Capitolo: 03. La suite TCP/IP
Paragrafo: 02. Livello Internet
Approfondimento: 03. Subnetting
Indice dei capitoli: 00. Risorse - 01. Le telecomunicazioni - 02. Il modello OSI - 03. La suite TCP/IP - 04. Il cablaggio strutturato - 05. LAB - 07. Tutorial - 98. Esercizi
Indice dei paragrafi: 01. Network Access - 02. Livello Internet - 03. Livello Transport - 04. Livello Application
Indice degli approfondimenti: 01. Protocolli - 02. Classificazione degli indirizzi IP - 03. Subnetting - 04. Subnetting: esempi - 05. Ping e traceroute - 06. Routing - 07. NAT - 08. Autonomous System - 09. Carrier-Grade NAT - 10. NAT Traversal