A proposito dell'autore

Responsabile R&D – Micso S.r.l.

Dott. Emiliano Bruni, info/at/ebruni_dot_it
Copyright © 2006 Emiliano Bruni

Licenza Creative Commons

Documento originale su http://www.ebruni.it/docs/la_netmask_spiegata_a_mia_figlia/part2.htm

La notazione Classless Inter-Domain Routing (CIDR).

Mia figlia, come tutti i bambini di questo mondo, continua a crescere. Ora fa il secondo anno dell’asilo e l’altro giorno è tornata con gli occhi gonfi di lacrime. “Cosa è successo, piccolina”, le faccio io e lei, tutta seria, “Ho litigato con il mio compagnuccio preferito”. “Come mai?” le faccio io. E lei: “Lui mi ha chiesto come calcolare l’indirizzo di broadcast della classe C della rete 195.32.69.0/24 e io gli ho risposto che 195.32.69.0/24 non era una classe C ma erano i primi 25 indirizzi di una classe C, dall’host 195.32.69.0 all’host 195.32.69.24 e lui è corso via ridendo e poco dopo tutti gli altri compagnucci ridevano di me. Perchè papà? Tu mi hai spiegato che la classe C 195.32.69.0 si indica con la netmask 255.255.255.0. Cosa c’entrano i primi 25 indirizzi di questa rete con l’intera classe?”.

A questo punto ho dovuto fare mea-culpa con mia figlia e introdurla in un altra rappresentazione delle sottoreti di indirizzi IP, la notazione Classless Inter-Domain Routing (CIDR).

La notazione introdotta nella precedente lezione a mia figlia, è e resta un modo di rappresentare le reti e le sottoreti di INTERNET ma è, o comunque dovrebbe andare in disuso. Infatti, dal 1993 è stata introdotta una nuova notazione per l’identificazione delle reti e delle sottoreti, soprattutto nei processi di routing, chiamata, per l’appunto Classless Inter-Domain Routing (CIDR).

Come mai la parola classless? Quando INTERNET era agli albori, sembrava che lo spazio di indirizzi IP creato, l’IPv4 fosse enorme. Per questo era stato creata questa suddivisione degli indirizzi

Classe Da A
Classe A 0.0.0.0 127.255.255.255
Classe B 128.0.0.0 191.255.255.255
Classe C 192.0.0.0 223.255.255.255
Classe D 224.0.0.0 239.255.255.255
Classe E 240.0.0.0 255.255.255.

Per cui non c’era neanche bisogno di avere o usare una netmask per capire se due IP appartenevano ad una stessa rete e quindi riuscire a fare un routing adeguato [Prima o poi dovrò scrivere cosa c’entra il calcolo dell’appartenenza o meno di due indirizzi IP ad una stessa rete per il calcolo del routing]. Per esempio l’indirizzo 122.15.12.5 era un indirizzo di classe A e quindi apparteneva alla rete 122.0.0.0; l’indirizzo 183.4.7.8 era un indirizzo di classe B e quindi apparteneva alla rete 183.4.0.0.

Ma questo modo di agire inizio a incrinarsi con il crescere della rete. Se infatti un soggetto aveva un indirizzo di classe C e la sua rete aumentava fino a superare i 256 host supportati dalla classe automaticamente gli si assegnava un indirizzo di classe B ma, in questo caso, questo soggetto non aveva bisogno di tutta la classe B e quindi molti indirizzi rimanevano assegnati, non allocati e non allocabili ad altri.

Questo portò presto all’esaurimento degli indirizzi di classe B. Ci si accorse quindi che questo modo di approcciare il problema, per classi, non andava bene e per questo, nel 1993 si passo ad un nuovo modo di suddividere le reti, non più a classi e da qui il nome di classless.

Come si scrive un indirizzo nel formato CIDR. L’indirizzo si scrive come un classico indirizzo IPv4, seguito da uno slash (/) e seguito da un numero, da 0 a 32, chiamato prefisso di rete, che indica il numero di bit iniziali, contandoli da sinistra verso destra, che ogni indirizzo di questa rete condivide con un altro indirizzo della stessa rete.

Per esempio una rete della vecchia rappresentazione classfull 195.32.69.0 255.255.255.0 viene indicato nella nuova rappresentazione come

195.32.69.0/24

ad indicare che tutti gli indirizzi di questa rete hanno in comune i primi 24 bit dell’indirizzo. E questo è immediato ricordando che la netmask 255.255.255.0 significa appunto i primi 24 bit uguali a 1 e quindi tutti gli indirizzi di questa rete hanno i primi 24 bit uguali tra di loro

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
255 255 255

Per quanto riguarda quindi la conversione tra netmask e CIDR, il calcolo è quasi immediato.

Una classe A ha netmask 255.0.0.0 e quindi, nella rappresentazione CIDR, si rappresenta come una /8 (nel caso si parli di una rete astratta, la parte IPv4 viene, come si vede omessa).

Una classe B ha netmask 255.255.0.0 e quindi, nella rappresentazione CIDR, si rappresenta come una /16.

Una classe C ha netmask 255.255.255.0 e quindi, nella rappresentazione CIDR, si rappresenta come una /24.

Ora mia figlia sa che 195.32.69.0/24 significa la classe C 195.32.69.0 nella vecchia rappresentazione classfull.

Con la rappresentazione CIDR si fà però subito a fare i conti su quanti host ha una data rete, cosa un po’ più complicata con la netmask in quanto è necessario trasformarla in bit, a meno di non saperne il valore a memoria. Questo conto è immediato in quanto basta contare il numero di bit non fissi.

Cosi

/32 è un singolo host (32-32 = 0 => 2=1)

/31 è una rete formata da 2 host (32-31 = 1 => 21=2) ma è,come sappiamo, inusabile in quanto togliendo l’indirizzo di rete e quello di broadcast non rimangono indirizzi usabili

/30 è una rete formata da 4 host (22=4) di cui due usabili

/29 è una rete formata da 8 host

/12 è una rete formata da 220 calcolatori (32-12 = 20 => 220)

/0 rappresenta l’intero spazio degli indirizzi IP.

Quindi, in generale, una rete /N ha 2(32 − N) indirizzi di cui 2(32 − N)-2 usabili.

Nell’esempio di cui sopra, un soggetto con una classe C, ops, con una /24 che avesse bisogno di più indirizzi può ottenere una /23 e vivere e far vivere felice.

Dedica

Questo documento è dedicato a mia figlia Benedetta con la speranza che, quando verrà il momento, apprezzi lo sforzo da me fatto per tentare di rendere un argomento ostico il più semplice possibile e possa rimanere affascinata dall’armonia e dal rigore che pervade il mondo del TCP/IP.

  • D

    Ti voglio bene!

Close
Entra in contatto con altri professionisti ICT, seguici su Facebook e Twitter: