Internet è diventato talmente grande che ef­fet­ti­va­men­te oramai si è venuto a creare un problema di spazio: il sistema degli indirizzi IP così come lo uti­liz­zia­mo noi (IPv4) è già al collasso da parecchio tempo. Tutti i possibili indirizzi (esat­ta­men­te 4.294,967296) sono già stati assegnati. Per questo motivo da decenni si sta lavorando a una soluzione e CIDR arriva in soccorso al­lar­gan­do il limite di base del numero degli indirizzi.

In realtà la soluzione tem­po­ra­nea che è stata pensata per far fronte a questo problema è già attiva da 20 anni e poiché l’in­tro­du­zio­ne a tappeto dell’IPv6 si fa ancora attendere, il CIDR con­ti­nue­rà ad essere im­por­tan­te anche negli anni a venire. Un motivo più che suf­fi­cien­te per in­for­mar­si su che cos’è realmente questo Classless Inter-Domain Routing.

Registra il tuo dominio
  • Domain Connect gratuito per una con­fi­gu­ra­zio­ne facile del DNS
  • Cer­ti­fi­ca­to SSL Wildcard gratuito
  • Pro­te­zio­ne privacy inclusa

A che scopo è stato svi­lup­pa­to CIDR?

Già nel 1993 era chiaro che Internet stesse crescendo più ve­lo­ce­men­te di quanto si fosse pensato in un primo momento. Era dunque ne­ces­sa­rio trovare una soluzione: ab­ban­do­na­re le classi di rete. Lo space address (spazio di indirizzo) era ori­gi­na­ria­men­te suddiviso in cinque classi. Se un’azienda si voleva con­net­te­re a Internet doveva scegliere un indirizzo IP da una delle classi a di­spo­si­zio­ne. Per ogni classe venivano uti­liz­za­ti molti ottetti (termine con cui si indicano i blocchi di numeri degli indirizzi IP) diversi per l’iden­ti­fi­ca­zio­ne delle reti. Gli ottetti rimanenti de­fi­ni­va­no i numeri degli host presenti in una rete.

Classe A Classe B Classe C Classe D Classe E
0.0.0.0 - 127.255.255.255 128.0.0.0 - 191.255.255.255 192.0.0.0 - 223.255.255.255 224.0.0.0 - 239.255.255.255 240.0.0.0 - 255.255.255.255

Dunque in una rete di classe A era possibile dare spazio a oltre 16 milioni di host e, invece, a di­spo­si­zio­ne di questa rete ve ne erano solamente 128 (da 0 a 127). Nella classe B al contrario erano un po’ più di 16.000 le reti possibili, con ogni rete che poteva contenere un massimo di 65.534 host. Le reti nella classe C avevano solamente un ottetto rimasto e com­pren­de­va­no quindi solamente 254 host (da 1 a 254, poiché 0 e 255 sono riservati).

Ne è risultato che nella maggior parte dei casi questa divisione non è pra­ti­ca­bi­le. Per molte aziende una rete con solo 254 par­te­ci­pan­ti è de­ci­sa­men­te troppo piccola, ma di fatto sono poche le reti che hanno bisogno di un numero enorme di host. Alla fine questo ha portato a un grosso spreco poiché le aziende si sono servite ne­ces­sa­ria­men­te di tutti gli indirizzi non uti­liz­za­ti. Per andare incontro alle esigenze degli utenti Internet nel miglior modo possibile si è scelto di reim­po­sta­re in maniera più fles­si­bi­le le di­men­sio­ni delle reti, di ridurre le tabelle di routing nei router di Internet e di ral­len­ta­re l’ac­qui­si­zio­ne degli indirizzi IP di­spo­ni­bi­li.

Le tabelle di routing si trovano in un router e aiutano a scoprire la via per l’indirizzo target corretto. Dalla partenza all’arrivo i pacchetti dati at­tra­ver­sa­no molti nodi: per far sì che il router riconosca il percorso ottimale at­tra­ver­so la rete, viene riempita un’apposita tabella con le in­for­ma­zio­ni. La di­men­sio­ne del file cresce espo­nen­zial­men­te per ogni target di cui viene inserito il percorso. Ma poiché gli indirizzi CIDR vengono costruiti a blocchi, non è più ne­ces­sa­rio me­mo­riz­za­re così tante in­for­ma­zio­ni nella tabella di routing, rendendo quindi possibile mettere assieme più indirizzi in una sola route.

Come funziona il CIDR?

Il CIDR si basa sull’idea delle maschere di sottorete. Una maschera viene applicata a un indirizzo IP, creando così una sottorete: si tratta di una rete su­bor­di­na­ta a Internet. La maschera di sottorete segnala al router quale parte dell’indirizzo IP è su­bor­di­na­to all’host (i singoli par­te­ci­pan­ti della rete) e quale definisce la rete.

Invece di ag­giun­ge­re una maschera di sottorete, si può integrare una spe­ci­fi­ca­zio­ne at­tra­ver­so il Classless Inter-Domain Routing, anche in forma di suffissi diretti negli indirizzi IP. Tale pro­ce­di­men­to non abbrevia solamente la rap­pre­sen­ta­zio­ne: oltre alle sottoreti, CIDR rende infatti possibile anche le superreti. Ciò significa che non solo si può sud­di­vi­de­re una rete in parti più piccole e precise, bensì anche rag­grup­pa­re più reti assieme.

Il su­per­net­ting è im­por­tan­te ad esempio se un’azienda possiede più sedi, ma vuole che tutti i computer ap­par­ten­ga­no alla stessa rete. At­tra­ver­so il su­per­net­ting è possibile ag­grup­pa­re più reti a una sola route, motivo per il quale questa tec­no­lo­gia prende anche il nome di route ag­gre­ga­tion. Ciò significa che i pacchetti dati vengono inviati per un solo scopo, in­di­pen­den­te­men­te da dove si trovi l’host.

Fatto

Una com­po­nen­te im­por­tan­te di CIDR è VLSM: la Viable Length Subnet Mask (maschera di sottorete di lunghezza variabile) che permette so­prat­tut­to la rea­liz­za­zio­ne di sottoreti con lunghezza variabile e non solo negli ordini di grandezza delle classi di rete.

La notazione CIDR

In passato era possibile stabilire a quale classe ap­par­te­nes­se un indirizzo IP sem­pli­ce­men­te leg­gen­do­lo. Ad esempio le reti delle classe C si trovavano tra gli spazi di indirizzo 192.0.0.0 e 223.255.255.255. Una maschera di sottorete – ad esempio 255.255.255.0 – si applica come un timbro sull’indirizzo IP e determina gli host. Nel formato CIDR questa in­for­ma­zio­ne fa parte di­ret­ta­men­te dell’indirizzo IP, reso sotto forma di suffisso.

Il principio di base rimane però lo stesso: il suffisso informa quali posizioni (bits) dell’indirizzo IP rap­pre­sen­ta­no il network ID e dunque au­to­ma­ti­ca­men­te quali bit co­sti­tui­sco­no la sezione relativa dell’host ID. Per capire questo principio più nel dettaglio bisogna prendere in con­si­de­ra­zio­ne le maschere di sottorete nella sua forma binaria.

255.255.255.0 ≙ 11111111 11111111 11111111 00000000

Nella notazione CIDR questa maschera di sottorete (di classe C) sarebbe /24, poiché i primi 24 bit indicano la parte della rete dell’indirizzo IP. Inoltre gli ottetti non devono ne­ces­sa­ria­men­te essere composti da zero e uno ma, grazie a VLSM, creare anche sottoreti fles­si­bi­li. Ad esempio la maschera /25 cor­ri­spon­de al valore binario 11111111 11111111 11111111 10000000 e questo a sua volta a 255.255.255.128 (notazione decimale puntata).

N.B.

Anche con CIDR e VLSM i bit nelle maschere di sottorete devono essere sempre riempiti da sinistra verso destra e non può essere uti­liz­za­ta una suc­ces­sio­ne casuale di 1 e 0.

Blocchi CIDR: spie­ga­zio­ne e tabella

Un indirizzo IPv4 consiste di 32 bit. Ri­cal­co­lan­do la notazione decimale nell’equi­va­len­te binario, 201.105.7.34 cor­ri­spon­de­reb­be a 11001001 01101001 00000111 00100010. La scrittura binaria di un indirizzo IP, ovvero il metodo di calcolo con il quale operano i computer, si compone di 32 cifre, che possono essere 1 o 0: quindi 32 bit. Perciò anche i possibili suffissi nella notazione CIDR sono compresi tra 0 e 32.

Nella creazione di sottoreti si tratta di creare comunità. 201.105.7.34/24 si trova nella stessa rete di 201.105.7.1/24. Il suffisso segnala che solamente i primi 24 bit vengono calcolati nella parte di rete. I bit rimanenti sono riservati perciò alla sezione dell’host. Il numero dei bit che si vede nel formato CIDR dopo la barra obliqua indica il numero delle posizioni (da sinistra verso destra) che ap­par­ten­go­no alla parte di rete dell’indirizzo IP. La seguente tabella mostra quali maschere di sottorete si na­scon­do­no dietro la notazione CIDR e quanti indirizzi host rende possibile ciascuna di esse.

CIDR Maschera di sottorete (decimale) Maschera di sottorete (binario) Indirizzi di­spo­ni­bi­li
/0 0.0.0.0 00000000.00000000.00000000.00000000 4.294.967.296 232
/1 128.0.0.0 10000000.00000000.00000000.00000000 2.147.483.648 231
/2 192.0.0.0 11000000.00000000.00000000.00000000 1.073.741.824 230
/3 224.0.0.0 11100000.00000000.00000000.00000000 536.870.912 229
/4 240.0.0.0 11110000.00000000.00000000.00000000 268.435.456 228
/5 248.0.0.0 11111000.00000000.00000000.00000000 134.217.728 227
/6 252.0.0.0 11111100.00000000.00000000.00000000 67.108.864 226
/7 254.0.0.0 11111110.00000000.00000000.00000000 33.554.432 225
/8 255.0.0.0 11111111.00000000.00000000.00000000 16.777.216 224
/9 255.128.0.0 11111111.10000000.00000000.00000000 8.388.608 223
/10 255.192.0.0 11111111.11000000.00000000.00000000 4.194.304 222
/11 255.224.0.0 11111111.11100000.00000000.00000000 2.097.152 221
/12 255.240.0.0 11111111.11110000.00000000.00000000 1.048.576 220
/13 255.248.0.0 11111111.11111000.00000000.00000000 524.288 219
/14 255.252.0.0 11111111.11111100.00000000.00000000 262.144 218
/15 255.254.0.0 11111111.11111110.00000000.00000000 131.072 217
/16 255.255.0.0 11111111.11111111.00000000.00000000 65.536 216
/17 255.255.128.0 11111111.11111111.10000000.00000000 32.768 215
/18 255.255.192.0 11111111.11111111.11000000.00000000 16.384 214
/19 255.255.224.0 11111111.11111111.11100000.00000000 8.192 213
/20 255.255.240.0 11111111.11111111.11110000.00000000 4.096 212
/21 255.255.248.0 11111111.11111111.11111000.00000000 2.048 211
/22 255.255.252.0 11111111.11111111.11111100.00000000 1.024 210
/23 255.255.254.0 11111111.11111111.11111110.00000000 512 29
/24 255.255.255.0 11111111.11111111.11111111.00000000 256 28
/25 255.255.255.128 11111111.11111111.11111111.10000000 128 27
/26 255.255.255.192 11111111.11111111.11111111.11000000 64 26
/27 255.255.255.224 11111111.11111111.11111111.11100000 32 25
/28 255.255.255.240 11111111.11111111.11111111.11110000 16 24
/29 255.255.255.248 11111111.11111111.11111111.11111000 8 23
/30 255.255.255.252 11111111.11111111.11111111.11111100 4 22
/31 255.255.255.254 11111111.11111111.11111111.11111110 2 21
/32 255.255.255.255 11111111.11111111.11111111.11111111 1 20

Ma non tutte le reti prevedono degli host. Le reti con /31 hanno solamente 2 possibili indirizzi IP per gli host, i quali però devono essere uti­liz­za­ti per gli indirizzi di rete e per quelli di broadcast. In ogni rete ci sono sempre due indirizzi riservati: l’indirizzo di rete (solo zeri nella parte dedicata all’host), che serve per l’iden­ti­fi­ca­zio­ne della rete, e l’indirizzo di broadcast (solo una serie di uno nella parte dedicata all’host), che serve per la tra­smis­sio­ne a tutti i par­te­ci­pan­ti. Perciò di base è ne­ces­sa­rio sottrarre due indirizzi dal totale rispetto alla tabella CIDR. Ad­di­rit­tu­ra nella rete /32 è di­spo­ni­bi­le solamente un indirizzo, am­met­ten­do perciò solamente la presenza di uno degli indirizzi, di rete o di broadcast.

La rete /0 contiene l’intero spazio di indirizzo, ossia una grande rete con tutti gli indirizzi IP possibili (meno due) come host, per cui non si può realmente parlare di una sottorete. Anche le reti /1 e /7 non vengono impiegate per le singole sottoreti. Essendo il numero degli host esa­ge­ra­ta­men­te grande, queste reti vengono suddivise a loro volta in ulteriori sottoreti.

Il calcolo di CIDR: esempi

Gli esempi per­met­to­no di spiegare in maniera più chiara il principio sul quale si basa CIDR. Qui di seguito spie­ghia­mo il suo fun­zio­na­men­to sia nel caso delle sottoreti che delle superreti.

Sub­net­ting

Quando si vuole creare una sottorete (in par­ti­co­la­re una sottorete fles­si­bi­le), non è suf­fi­cien­te assegnare lo stesso suffisso agli indirizzi IP. È im­por­tan­te capire cosa succede in questo caso con una con­ver­sio­ne binaria. Dunque 192.168.200.5/30 e 192.168.200.9/30 non ap­par­ten­go­no alla stessa rete. Il motivo lo si può com­pren­de­re rap­pre­sen­tan­do entrambi gli indirizzi e le maschere di sottorete cor­ri­spon­den­ti come numeri binari.

Infine è ne­ces­sa­ria una con­giun­zio­ne ∧ (col­le­ga­men­to logico) così da far com­ba­cia­re i due valori. Questo accade solamente nel caso in cui nella stessa posizione vi sia un 1. Nelle com­bi­na­zio­ni 0 ∧ 0 e 0 ∧ 1, il risultato è 0.

Indirizzo IP 192 168 200 5
11000000 10101000 11001000 00000101
/30 11111111 11111111 11111111 11111100
ID di rete 11000000 10101000 11001000 00000100
192 168 200 4
Indirizzo IP 192 168 200 9
11000000 10101000 11001000 0001001
/30 11111111 11111111 11111111 11111100
ID di rete 11000000 10101000 11011100 0001000
192 168 200 8

I due indirizzi non si trovano quindi nella stessa rete. Sarebbe stato invece corretto se il secondo indirizzo fosse stato 192.168.200.6/30.

Per calcolare quale indirizzo IP venga messo a di­spo­si­zio­ne in una sottorete, è ne­ces­sa­rio calcolare il campo. Prendiamo come esempio un’azienda che vuole rag­grup­pa­re 2.000 host in una rete. La tabella CIDR ci svela che abbiamo bisogno di una rete /21. Se volessimo invece con­ver­tir­lo, avremmo bisogno di un logaritmo: x=log2(2.000). Il risultato (≈10,666) non è un numero naturale, motivo per cui lo si arrotonda, in questo caso per eccesso: 11. Dopodiché è possibile creare una sottorete con 211 host: 2.048 (dove vanno sottratti due indirizzi per il broadcast e per la rete).

Guardando la tabella si nota che le potenze su base 2 crescono dal basso (/32) verso l’alto (/0). Dunque sarebbe anche possibile calcolare 32 - 11 = 21 per ottenere il suffisso di sottorete (/21) ne­ces­sa­rio.

Nel nostro esempio il numero assegnato dal provider è 210.105.44.170. Uti­liz­zan­do la maschera appena men­zio­na­ta, il numero binario cor­ri­spon­den­te sarebbe il seguente:

Indirizzo IP 210 105 44 170
11010010 01101001 00101100 10101010
/21 11111111 11111111 11111000 00000000
ID di rete 11010010 01101001 00101000 00000000
210 105 40 0

Il primo indirizzo – l’indirizzo di rete da non uti­liz­za­re – è 210.105.40.0/21. Tra questo e l’indirizzo di broadcast avete perciò 2046 indirizzi IP a di­spo­si­zio­ne. L’indirizzo IP più elevato (broadcast) cor­ri­spon­de a 210.105.47.255/21. Perché? 2048 (il numero massimo degli indirizzi nella sottorete) diviso per 256 (il numero di pos­si­bi­li­tà in un ottetto) dà come risultato 8. Sono dunque da riempire gli otto valori da 40 a 47 nel terzo ottetto e tutti i valori da 0 a 255 nel quarto ottetto.

Consiglio

Non perdete tempo con la con­ver­sio­ne: su Internet è possibile trovare diversi buoni cal­co­la­to­ri online che vi for­ni­sco­no la sezione per i vostri indirizzi di host. Tuttavia siete costretti a calcolare au­to­no­ma­men­te la di­men­sio­ne di sottorete ne­ces­sa­ria. Ma per questo avete a di­spo­si­zio­ne le apposite tabelle.

Su­per­net­ting

Assumiamo che un’azienda abbia tre sedi e quindi tre reti e router. Avrebbe perciò senso, anche in relazione alla tabella di routing, aggregare queste in una superrete. Le tre reti hanno gli indirizzi 192.168.43.0, 192.168.44.0 e 192.168.45.0 (le possibili maschere di sottorete che si trovano affianco agli indirizzi IP delle reti in questo caso non sono rilevanti). Anche qui con­ver­tia­mo i numeri in cifre e prendiamo in con­si­de­ra­zio­ne solamente le posizioni che tutti e tre gli indirizzi hanno in comune, da sinistra verso destra: alla prima dif­fe­ren­za tutte le posizioni seguenti vengono tramutate in uno zero.

IP 1 192 168 43 0
11000000 10101000 00101011 00000000
IP 2 192 168 44 0
11000000 10101000 00101100 00000000
IP 3 192 168 45 0
11000000 10101000 00101101 00000000
Supernet 192 168 40 0
11000000 10101000 00101000 00000000

L’indirizzo di rete della supernet è dunque 192.168.40.0. Per in­di­vi­dua­re la maschera di sottorete ap­par­te­nen­te a questa rete, si contano i bit che hanno portato a un nuovo indirizzo IP. Nel nostro esempio questi sono 21 bit: 192.168.40.0/21.

Vai al menu prin­ci­pa­le