Sei sulla pagina 1di 5

Subnet mask

Subnet mask
In informatica e telecomunicazioni, nell'ambito delle reti di telecomunicazioni, la subnet mask o "maschera di sottorete" il metodo utilizzato per definire il range di appartenenza di un host all'interno di una sottorete IP al fine di ridurre il traffico di rete e facilitare la ricerca e il raggiungimento di un determinato host con relativo indirizzo IP della stessa. Una volta individuata la sottorete di appartenenza il protocollo IP operer l' instradamento indiretto tramite la parte Net-Id dell'indirizzo IP per raggiungere quella sottorete, seguito poi dall' instradamento diretto tramite l'Host-Id per raggiungere l'host in quella sottorete tramite i protocolli della sottorete locale. La maschera di sottorete permette al dispositivo di rete di ricercare il destinatario all'interno di un range ben definito senza dover ricorrere all'uso di un router che funga da gateway con un'altra rete. Per esempio se si vuole sapere o indicare da quanti host composta la rete che utilizziamo occorre scrivere in forma decimale 'puntata', cio con un indirizzo di 32 bit scritto sotto forma di 4 numeri decimali (8 bit ciascuno) separati da un punto.

Descrizione
Esistono tre tipi di mascherature di un indirizzo IP e sono denominate classi: Classe A 255.0.0.0 Classe B 255.255.0.0 Classe C 255.255.255.0 La subnet di classe A caratterizzata dallavere il primo ottetto compreso tra 0 e 127, un esempio a tal proposito pu essere 10.56.32.08 La subnet di classe B ha il primo ottetto tra 128 e 191, ecco un esempio di subnet in tal senso: 172.12.56.10 Infine le subnet mask appartenenti alla terza classe (classe C) hanno il primo ottetto tra 192 e 223 ed un uso pi comune: 192.168.0.2. La notazione di Classe sintetizzabile anche tramite una seconda notazione "slash notation" che la somma dei bit presenti nella subnet mask e che facilita la notazione ed calcolabile come segue: 255.0.0.0 = 8+0+0+0 la classe A e pu essere indicata con /8; 255.255.0.0 = 8+8+0+0 la classe B e pu essere indicata con /16; 255.255.255.0 = 8+8+8+0 la classe C e pu essere indicata con /24. 255.255.255.255 = 8+8+8+8 = 32 corrispondente ad 1 bit, la notazione indica un unico host. 255.255.255.254 = 8+8+8+7 = 31 corrisponde a 2 bit ecc. quindi un ip 10.0.0.0/8 indica tutti gli host di una classe A, un gruppo di computer notevole. Da notare che la classe C con subnet mask: /24 ha il numero di bit 1 consecutivi presenti nella maschera, dopodich i rimanenti sono tutti 0; 255.255.255.0 rappresenta un valore binario formato esattamente da ventiquattro bit 1 seguiti da otto bit 0. 24 -> 255.255.255.0 -> 11111111.11111111.11111111.00000000 11111111.11111111.11111111.00000000

Dalla subnet mask si deduce facilmente anche il numero massimo di host presenti nella subnet considerata: con n bit per gli host si hanno 2n possibili valori, e in particolare si potranno assegnare 2n-2 indirizzi validi alle macchine(o pi in generale alle interfacce di rete) di tale sottorete. Tale "limitazione" dovuta al fatto che due degli indirizzi di qualsiasi rete (o sottorete) assumono un significato particolare e non sono quindi utilizzabili: l'indirizzo con tutti i bit della parte host a 0 identifica la rete stessa; l'indirizzo con tutti i bit della parte host a 1 indica il broadcast (messaggio inviato a tutte le macchine della rete); Pi precisamente: Per determinare il numero massimo di indirizzi utili in una subnet basta contare il numero n di bit 0 a destra della subnet mask, porre n come esponente di 2, e sottrarre a ci i due indirizzi riservati (uno indica la sottorete stessa,

Subnet mask l'altro usato per fare broadcast). La formula dunque: 2n - 2 Usando la notazione decimale classless (es: w.x.y.z/m), altres possibile calcolare il numero massimo di indirizzi utili con la seguente formula: 2(32-m) - 2, del tutto equivalente a quella precedente. Infatti m indica il numero di bit 1 presenti nella subnet mask, quindi m+n=32 Quando il sistema operativo (pi precisamente: il livello IP dello stack TCP/IP) riceve da un programma la richiesta di inviare un pacchetto IP ad un certo indirizzo IP destinatario, per prima cosa calcola l'AND logico fra la subnet mask e il proprio indirizzo IP, e lo confronta con l'AND logico tra la subnet mask e l'indirizzo IP di destinazione. Se il risultato delle operazioni identico (cio i bit che identificano l'id di rete, o net ID, sono identici, mentre variano solo i bit dell'id di host) allora invier il pacchetto nella rete locale indirizzandolo con l'indirizzo di rete locale del PC destinatario (se non conosce tale indirizzo user il protocollo ARP per trovarlo); se invece il risultato delle operazioni differente significa che il computer destinatario non appartiene alla rete locale, e il pacchetto verr trasmesso al gateway della rete locale affinch lo instradi verso la rete remota che contiene il computer destinatario. Fino a che ci sono 8 bit per definire l'host ID in una rete di classe C, ci sono sei modi differenti in cui una rete pu essere mascherata. Ognuno corrisponde ad una differente subnet personalizzata, quando viene creata cambiando i bit allocati per la subnet ID da 0 a 1 Consideriamo una rete in classe C (ex 192.168.45.0) Ci sono 8 bit nella host ID di default, che permettono di avere sei differenti opzioni di mascheratura (non possibile utilizzare i bit 7 e 8 per definire la subnet ID). Supponiamo di utilizzare 3 bit per definire la subnet ID e lasciare gli altri 5 per l'host ID. Per determinare la subnet mask, partiamo dalla subnet di default per una rete in classe C: 11111111 11111111 11111111 00000000 Cambiamo adesso i primi tre 0 che troviamo a partire da destra in 1, per ottenere la subnet mask personalizzata: 11111111 11111111 11111111 11100000 in formato decimale viene tradotta cos 255.255.255.224

Precisazioni
L'indirizzo di subnet l'indirizzo di una intera subnet (192.168.0.0/16). Qui, per subnet, intendiamo un insieme di macchine tali da appartenere allo stesso dominio di broadcast. La subnet mask un numero che denota quale parte di un indirizzo ip identifica la (sotto) rete e quale l'host Considerato che stiamo parlando del livello ip, pi appropriato usare il termine router piuttosto che gateway

Un esempio pratico
Supponiamo che il protocollo IP del nostro computer sia configurato come segue: indirizzo IP: 192.168.32.97 subnet mask: 255.255.255.224 e che richiediamo di connetterci all'indirizzo IP 192.168.32.130 prima di tutto trasformiamo in notazione binaria gli indirizzi IP e la subnet mask: 192.168.032.097 = 11000000.10101000.00100000.01100001 192.168.032.130 = 11000000.10101000.00100000.10000010 255.255.255.224 = 11111111.11111111.11111111.11100000 allora il livello IP calcoler:

Subnet mask 11000000.10101000.00100000.01100001 AND 11111111.11111111.11111111.11100000 = ------------------------------------11000000.10101000.00100000.01100000 Ora ripetiamo l'operazione con l'IP di destinazione: 11000000.10101000.00100000.10000010 AND 11111111.11111111.11111111.11100000 = ------------------------------------11000000.10101000.00100000.10000000 (192.168.032.130) (255.255.255.224) (192.168.032.128) (192.168.032.097) (255.255.255.224) (192.168.032.096)

I risultati 192.168.32.96 e 192.168.32.128 indicano due sottoreti differenti, e quindi le macchine appartengono a sottoreti differenti. Notiamo che con una subnet mask 255.255.255.224 possibile avere un range di 30 indirizzi utili per subnet, in quanto 2(32-27) - 2 = 25 - 2 = 30. L'indirizzo 192.168.32.97 appartiene al range tra 192.168.32.96 e 192.168.32.127 L'indirizzo 192.168.32.130 appartiene al range tra 192.168.32.128 e 192.168.32.159 Se l'IP destinazione fosse stato 192.168.32.100, i due indirizzi avrebbero indicato macchine appartenenti alla medesima sottorete: 11000000.10101000.00100000.01100100 AND 11111111.11111111.11111111.11100000 = ------------------------------------11000000.10101000.00100000.01100000 (192.168.032.100) (255.255.255.224) (192.168.032.096)

ESEMPIO: come trovare la subnet mask della subnet 61.161.16.224/27 27 rappresenta il numero di bit 1 pi significativi della subnet mask 32-27 = 5 rappresenta il numero di bit 0 meno significativi della subnet mask quindi: 11111111.11111111.11111111.11100000 = 255.255.255.224

Si noti che la subnet mask un numero, mentre la subnet rappresenta un insieme di indirizzi IP. quindi possibile, e del tutto normale, che subnet differenti (es 192.168.0.0/16, 132.144.0.0/16) abbiano la stessa subnet mask (in questo caso: 255.255.0.0) La seguente tabella esemplifica i metodi di utilizzo della rappresentazione delle subnet.
notazione CIDR host bits /8 24 Netmask Host nella sottorete 16777216 = 224 8388608 = 223 4194304 = 222 2097152 = 221 1048576 = 220 524288 = 219 Nome per classe Uso tipico

255.0.0.0

Class A (see this list)

Largest block allocation made by IANA

/9 23 /10 22 /11 21 /12 20 /13 19

255.128.0.0 255.192.0.0 255.224.0.0 255.240.0.0 255.248.0.0

Subnet mask

4
/14 18 /15 17 /16 16 /17 15 /18 14 /19 13 /20 12 /21 11 /22 10 /23 9 /24 8 /25 7 /26 6 /27 5 /28 4 /29 3 /30 2 /31 1 255.252.0.0 255.254.0.0 255.255.0.0 255.255.128.0 255.255.192.0 255.255.224.0 255.255.240.0 255.255.248.0 255.255.252.0 255.255.254.0 255.255.255.0 255.255.255.128 255.255.255.192 255.255.255.224 255.255.255.240 255.255.255.248 255.255.255.252 255.255.255.254

262144 = 218 131072 = 217 65536 = 216 32768 = 215 16384 = 214 8192 = 213 4096 = 212 2048 = 211 1024 = 210 512 = 29 256 = 28 128 = 27 64 = 26 32 = 25 16 = 24 8 = 2 4 = 2 2 = 21 1 = 20 Class C LAN ampia LAN ampia Piccola LAN Piccola LAN Piccola LAN La pi piccola rete multi-host "Glue network" (collegamenti punto-punto) Usato raramente, collegamenti punto-punto (RFC 3021) route verso un singolo host Class B ISP / grandi aziende ISP / grandi aziende ISP / grandi aziende Piccoli ISP / grandi aziende Piccoli ISP / grandi aziende

/32 0

255.255.255.255

hosts

subn/c

subn/c strict 62 30 14 6 2 0

subn/b

subn/b strict 16382 8190 4094 2046 1022 510 254 126 62 30 14 6 2 0

bits hex-mask dec-mask

2 6 14 30 62 126 254 510 1022 2046 4094 8190 16382 32766

64 32 16 8 4 2

16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2

2 3 4 5 6 7 8 9 10 11 12 13 14 15

fffffffc fffffff8 fffffff0 ffffffe0 ffffffc0 ffffff80 ffffff00 fffffe00 fffffc00 fffff800 fffff000 ffffe000 ffffc000 ffff8000

255.255.255.252 255.255.255.248 255.255.255.240 255.255.255.224 255.255.255.192 255.255.255.128 255.255.255.0 255.255.254.0 255.255.252.0 255.255.248.0 255.255.240.0 255.255.224.0 255.255.192.0 255.255.128.0

Subnet mask

Calcolo immediato dell'indirizzo di sottorete


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

Dove h il numero di host calcolati come Esempio: Data la rete 138.81.0.0/25 trovare l'indirizzo della settima sottorete.

Quindi l'indirizzo della settima sottorete sar: 138.81.3.0. Mentre La sottorete 6 avr indirizzo:

Si Moltiplica la parte decimale (0.5) per 256

e l'indirizzo della sesta sottorete 138.81.2.128