Classi di indirizzi IP

Classificazione Classfull

Questo è un metodo che divide in modo rigido lo spazio degli indirizzi IPv4 in cinque classi. Ogni classe inizia con una sequenza caratteristica di bit che serve ad identificarla, e il resto dei bit costituite l’eventuale sottorete e l’host.

  • Le reti di classe A, B, e C sono dedicate all’indirizzamento di un singolo host appartenente ad una rete (unicast);
  • Le reti di classe D sono riservate agli indirizzi multicast, cioè ad indirizzare un gruppo di host contemporaneamente;
  • Le reti di classe E sono riservate e pensate per eventuali utilizzi futuri;

Classe A: IP da 1.b.c.d a 126.b.c.d
Il numero “a” è compreso tra 1 e 126 e identifica la rete.
I numeri “b”, “c” e “d” individuano l’host.
Abbiamo quindi 7 bit per la rete e 24 bit per gli host.
Le reti di classe A sono le più estesi e sono 126, ognuna delle quali può indirizzare 224-2 host, ovvero 16.777.214 host.

Classe B: IP da 128.1.c.d a 191.254.c.d
I numeri “a” e “b” individuano la rete e devono assumere i seguenti valori: “a” tra 128 e 191, “b” tra 1 e 254.
Gli host della rete sono identificati dai numeri “c” e “d”.
Abbiamo quindi 14 bit per la rete e 16 bit per gli host.
La classe B può indirizzare 16.382 reti (ovvero 214-2) e 65.534 host (ovvero 216-2)

Classe C: IP da 192.0.1.c a 223.255.254.d
I numeri “a”, “b” e “c” con “a” tra 192 e 223, “b” tra 1 e 254 e “c” tra 1 e 254.
Gli host sono identificati dal numero “d”.
Abbiamo quindi 21 bit per la rete e 8 bit per gli host.
La class B può indirizzare 2.097.150 reti (ovvero 221-2) e 254 host (ovvero 28-2).

Tabella riepilogativa delle Classi A, B e C

ClasseValoriID ReteID HostN° di RetiN° di HostNetmask
A1-126ab.c.d12616.777.214255.0.0.0
B128-191a.bb.c16.38465.534255.255.0.0
C192-223a.b.cd2.097.150254255.255.255.0

Classe D: IP da 224.0.0.0 a 239.255.255.255
Questa classe è riservata per il multicasting, quindi non è possibile assegnare indirizzi IP di classe D a singoli host di una rete. Inizia con i primi 4 bit a 1110 (quindi il primo ottetto va da 224 a 239) ed è usato per indirizzare tutti gli host di una rete, mentre i restanti 28 bit rappresentano il gruppo multicast al quale l’host appartiene.

Classe E: IP da 240.0.0.0 a 254.255.255.255
Questa classe di indirizzi è riservata per usi futuri. La classe inizia con 4 bit posti a 1111 (quindi il primo ottetto va da 240 a 255).

In definitiva, tutti gli host che hanno indirizzi IP con uguale indirizzo di rete, appartengono alla stessa rete e quindi possono comunicare direttamente tra loro, mentre gli host che hanno indirizzo di rete differente appartengono a reti differenti e non possono comunicare direttamente tra loro.

Due host che si trovano su reti IP diverse devono usare un router e il protocollo IP per poter comunicare, anche se si trovano sulla stessa rete fisica. Un router infatti ha più interfacce, ciascuna dotata di un indirizzo IP. Gli indirizzi IP delle interfacce del router hanno tutti la parte di rete diversa, ma uguale a quella della rete che quell’interfaccia deve connettere.

Classfull subnetting

Per ottenere una gestione più efficiente delle reti di classe A, B e C si utilizza il sistema delle sottoreti, ovvero il subnetting, che consiste nel definire un prefisso di rete esteso (extend network prefix) il quale, tramite una maschera di rete, detta appunto subnet mask, sottrae alcuni bit riservati agli host per dedicarla alle sottoreti.

Una subnet mask è composta da 32 bit con un numero consecutivo di 1 e di 0. I bit a 1 vengono posti in corrispondenza dei bit di rete e di sottorete dell’indirizzo IP, mentre i bit a 0 vengono messi in corrispondenza dei bit dell’host. Quindi gli N bit più significativi (a sinistra) sono posti 1, mentre gli altri bit (32 – N) sono posti a 0.

Le subnet mask indicano quindi quali bit di un indirizzo IP rappresentano la porzione della rete e quali invece rappresentano la porzione dedicata agli host. Con gli indirizzi IP di classe A, B e C si utilizzano subnet mask predefinite:

  • Classe A: 255.0.0.0/8, i primi 8 bit dell’indirizzo rappresentano la rete, i rimanenti 24 bit rappresentano l’host.
  • Classe B: 255.255.0.0/16, i primi 16 bit dell’indirizzo rappresentano la rete, i rimanenti 16 bit rappresentano l’host.
  • Classe C: 255.255.255.0/24, i primi 24 bit dell’indirizzo rappresentano la rete, i rimanenti 8 bit rappresentano l’host.

Il processo di messa in AND

Quando un host mittente cerca di comunicare con un host destinatario, usa la sua subnet mask per determinare se l’host destinatario si trova sulla rete locale o su una rete remota. Si effettua l’AND bit a bit tra l’IP del mittente e la subnet del mittente e l’AND bit a bit tra l’IP del destinatario e la subnet del mittente. Quindi gli indirizzi IP di origine e destinazione sono confrontati in AND con la subnet dell’origine, creando due risultati.

Se i due risultati della messa ad AND coincidono, allora gli host si trovano sulla stessa rete, se invece i risultati differiscono, allora l’host destinatario si trova su una rete remota. Tutto il traffico destinato all’host remoto verrà quindi indirizzato verso il router, il quale a sua volta lo indirizzerà in base ai valori delle sue tabelle di routing.

Indirizzi riservati o particolari

Indirizzo Unicast

Una comunicazione unicast individua un flusso dati solo tra due partecipanti, ovvero a uno a uno.

Indirizzo di Broadcast

Un indirizzo di broadcast consente di inviare uno stesso messaggio a tutti gli host connessi ad una rete, o ad una sottorete. Tale indirizzo è composto da un certo numero di bit posti a 1, ad esempio le varie classi di rete hanno i loro indirizzi di broadcast riservati, che sono i seguenti:

  • 255.255.255.255 è indicato come limited o local broadcast;
  • a.255.255.255 è l’indirizzo di broadcast per le reti di classe A;
  • a.b.255.255 è l’indirizzo di broadcast per le reti di classe B;
  • a.b.x.255 è l’indirizzo di broadcast per le reti di classe C;

Sottolineiamo che lo scambio dei messaggi di broadcast può avvenire solo tra host appartenenti alla stessa rete, ovvero aventi lo stesso ID di rete (i primi bit più significativi). È un indirizzo del tipo 1-a-tutti: ovvero un unico indirizzo IP contraddistingue tutte le interfacce di una rete, ed è utilizzato solo come indirizzo di destinazione.

Indirizzo Multicast

Identifica più host di una rete, ma non tutti, ovvero ne identifica un sottoinsieme. È un indirizzo di tipo uno-a-molti.

Indirizzo di Loopback

L’indirizzo di loopback è il noto 127.0.0.1, indicato anche come localhost, ed identifica appunto il computer stesso. L’indirizzo 127.0.0.0 identifica invece l’indirizzo di una rete immaginaria interna al computer stesso, e si impiega per provare delle applicazioni che utilizzano la rete in modo da non disturbare la rete stessa. Usando l’indirizzo di loopback, infatti, un pacchetto spedito da un’applicazione viene considerato come se fosse entrante nell’host stesso e non viene spediti sulla rete.

Indirizzo 0.0.0.0

Si tratta di un indirizzo riservato per scopi particolari, ad esempio per richiedere un indirizzo IP ad un server DHCP in fase di startup. Al boot, infatti, una scheda di rete non possiede un proprio indirizzo IP e ha per default 0.0.0.0 che identifica un generico nodo della rete.

Indirizzo di network mask

Alcuni indirizzi IP sono riservati alle network mask, come ad esempio 255.255.255.0

Classificazione Classless/CDIR (Classless Inter-Domain Routing)

Mentre nel Classfull il numero di bit riservati alla rete e all’host è definito in maniera rigida, nel sistema Classless il numero di bit è arbitrario e viene specificato da una subnet mask della lunghezza desiderata. All’indirizzo IP è quindi sempre associata una maschera che individua la rete o la sottorete a cui appartiene l’host. Il prefisso di rete identifica un dominio di indirizzamento, ovvero l’insieme di reti che hanno lo stesso prefisso. Con il sistema Classless è necessario utilizzare le subnet mask per conoscere l’indirizzo di rete.

Il numero di bit riservati per la rete è indicato con il valore /N posto alla fine dell’indirizzo IP. Possiamo facilmente calcolare quanti host è possibile indirizzare facendo il seguente calcolo: N° di Host = 2(32-N) – 2