CIDR: che cos’è il Classless Inter-Domain Routing?

Internet è diventato talmente grande che effettivamente oramai si è venuto a creare un problema di spazio: il sistema degli indirizzi IP così come lo utilizziamo noi (IPv4) è già al collasso da parecchio tempo. Tutti i possibili indirizzi (esattamente 4.294,967296) sono già stati assegnati. Per questo motivo da decenni si sta lavorando a una soluzione e CIDR arriva in soccorso allargando il limite di base del numero degli indirizzi.

In realtà la soluzione temporanea che è stata pensata per far fronte a questo problema è già attiva da 20 anni e poiché l’introduzione a tappeto dell’IPv6 si fa ancora attendere, il CIDR continuerà ad essere importante anche negli anni a venire. Un motivo più che sufficiente per informarsi su che cos’è realmente questo Classless Inter-Domain Routing.

A che scopo è stato sviluppato CIDR?

Già nel 1993 era chiaro che Internet stesse crescendo più velocemente di quanto si fosse pensato in un primo momento. Era dunque necessario trovare una soluzione: abbandonare le classi di rete. Lo space address (spazio di indirizzo) era originariamente suddiviso in cinque classi. Se un’azienda si voleva connettere a Internet doveva scegliere un indirizzo IP da una delle classi a disposizione. Per ogni classe venivano utilizzati molti ottetti (termine con cui si indicano i blocchi di numeri degli indirizzi IP) diversi per l’identificazione delle reti. Gli ottetti rimanenti definivano 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 disposizione 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 comprendevano 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 è praticabile. Per molte aziende una rete con solo 254 partecipanti è decisamente 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 necessariamente di tutti gli indirizzi non utilizzati. Per andare incontro alle esigenze degli utenti Internet nel miglior modo possibile si è scelto di reimpostare in maniera più flessibile le dimensioni delle reti, di ridurre le tabelle di routing nei router di Internet e di rallentare l’acquisizione degli indirizzi IP disponibili.

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 attraversano molti nodi: per far sì che il router riconosca il percorso ottimale attraverso la rete, viene riempita un’apposita tabella con le informazioni. La dimensione del file cresce esponenzialmente per ogni target di cui viene inserito il percorso. Ma poiché gli indirizzi CIDR vengono costruiti a blocchi, non è più necessario memorizzare così tante informazioni 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 subordinata a Internet. La maschera di sottorete segnala al router quale parte dell’indirizzo IP è subordinato all’host (i singoli partecipanti della rete) e quale definisce la rete.

Invece di aggiungere una maschera di sottorete, si può integrare una specificazione attraverso il Classless Inter-Domain Routing, anche in forma di suffissi diretti negli indirizzi IP. Tale procedimento non abbrevia solamente la rappresentazione: oltre alle sottoreti, CIDR rende infatti possibile anche le superreti. Ciò significa che non solo si può suddividere una rete in parti più piccole e precise, bensì anche raggruppare più reti assieme.

Il supernetting è importante ad esempio se un’azienda possiede più sedi, ma vuole che tutti i computer appartengano alla stessa rete. Attraverso il supernetting è possibile aggruppare più reti a una sola route, motivo per il quale questa tecnologia prende anche il nome di route aggregation. Ciò significa che i pacchetti dati vengono inviati per un solo scopo, indipendentemente da dove si trovi l’host.

Fatto

Una componente importante di CIDR è VLSM: la Viable Length Subnet Mask (maschera di sottorete di lunghezza variabile) che permette soprattutto la realizzazione 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 appartenesse un indirizzo IP semplicemente leggendolo. 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 informazione fa parte direttamente 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 rappresentano il network ID e dunque automaticamente quali bit costituiscono la sezione relativa dell’host ID. Per capire questo principio più nel dettaglio bisogna prendere in considerazione 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 necessariamente essere composti da zero e uno ma, grazie a VLSM, creare anche sottoreti flessibili. Ad esempio la maschera /25 corrisponde 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 utilizzata una successione casuale di 1 e 0.

Blocchi CIDR: spiegazione e tabella

Un indirizzo IPv4 consiste di 32 bit. Ricalcolando la notazione decimale nell’equivalente binario, 201.105.7.34 corrisponderebbe 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 appartengono alla parte di rete dell’indirizzo IP. La seguente tabella mostra quali maschere di sottorete si nascondono dietro la notazione CIDR e quanti indirizzi host rende possibile ciascuna di esse.

CIDR

Maschera di sottorete

(decimale)

Maschera di sottorete

(binario)

Indirizzi disponibili

/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 utilizzati 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’identificazione della rete, e l’indirizzo di broadcast (solo una serie di uno nella parte dedicata all’host), che serve per la trasmissione a tutti i partecipanti. Perciò di base è necessario sottrarre due indirizzi dal totale rispetto alla tabella CIDR. Addirittura nella rete /32 è disponibile solamente un indirizzo, ammettendo 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 esageratamente grande, queste reti vengono suddivise a loro volta in ulteriori sottoreti.

Il calcolo di CIDR: esempi

Gli esempi permettono di spiegare in maniera più chiara il principio sul quale si basa CIDR. Qui di seguito spieghiamo il suo funzionamento sia nel caso delle sottoreti che delle superreti.

Subnetting

Quando si vuole creare una sottorete (in particolare una sottorete flessibile), non è sufficiente assegnare lo stesso suffisso agli indirizzi IP. È importante capire cosa succede in questo caso con una conversione binaria. Dunque 192.168.200.5/30 e 192.168.200.9/30 non appartengono alla stessa rete. Il motivo lo si può comprendere rappresentando entrambi gli indirizzi e le maschere di sottorete corrispondenti come numeri binari.

Infine è necessaria una congiunzione ∧ (collegamento logico) così da far combaciare i due valori. Questo accade solamente nel caso in cui nella stessa posizione vi sia un 1. Nelle combinazioni 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 disposizione in una sottorete, è necessario calcolare il campo. Prendiamo come esempio un’azienda che vuole raggruppare 2.000 host in una rete. La tabella CIDR ci svela che abbiamo bisogno di una rete /21. Se volessimo invece convertirlo, 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) necessario.

Nel nostro esempio il numero assegnato dal provider è 210.105.44.170. Utilizzando la maschera appena menzionata, il numero binario corrispondente 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 utilizzare – è 210.105.40.0/21. Tra questo e l’indirizzo di broadcast avete perciò 2046 indirizzi IP a disposizione. L’indirizzo IP più elevato (broadcast) corrisponde a 210.105.47.255/21. Perché? 2048 (il numero massimo degli indirizzi nella sottorete) diviso per 256 (il numero di possibilità 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 conversione: su Internet è possibile trovare diversi buoni calcolatori online che vi forniscono la sezione per i vostri indirizzi di host. Tuttavia siete costretti a calcolare autonomamente la dimensione di sottorete necessaria. Ma per questo avete a disposizione le apposite tabelle.

Supernetting

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 convertiamo i numeri in cifre e prendiamo in considerazione solamente le posizioni che tutti e tre gli indirizzi hanno in comune, da sinistra verso destra: alla prima differenza 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 individuare la maschera di sottorete appartenente 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.


Abbiamo una proposta per te:
Web hosting a partire da 1 €/mese!

Dominio gratis
Certificato SSL Wildcard incluso
Assistenza clienti 24/7
A partire da 1 €/mese IVA escl. per un anno,
poi 8 €/ mese IVA escl.