Lezione 5 di 11

Sistemi e Reti 4

Modulo 4 — Indirizzamento IP | Hands on Stem
Modulo 4 di 10

Indirizzamento IP

Struttura dell’indirizzo IPv4, conversione binaria, Network ID e Host ID, classi storiche, indirizzi privati e speciali, subnet mask.

Prof. D. Bertolino Hands on Stem Sistemi e Reti

4.1 Cos’è un Indirizzo IP?

Ogni dispositivo collegato a una rete IP ha bisogno di un identificatore univoco per poter comunicare. Questo identificatore è l’indirizzo IP (Internet Protocol). Senza di esso, il router non saprebbe dove mandare i pacchetti — sarebbe come inviare una lettera senza indirizzo.

Definizione

Un indirizzo IPv4 è un numero a 32 bit, suddiviso in 4 gruppi di 8 bit (ottetti), scritto in notazione decimale puntata. Ogni ottetto va da 0 a 255. L’indirizzo è diviso in due parti: Network ID (identifica la rete) e Host ID (identifica il dispositivo nella rete).

192 . 168 . 1 . 100
32 bit — 4 ottetti — notazione decimale puntata
L’analogia dell’indirizzo postale

L’indirizzo IP è come un indirizzo postale. Il Network ID è il nome della via (identifica la rete, cioè la “strada”). L’Host ID è il numero civico (identifica il singolo dispositivo nella rete). Il router è il postino: legge il “nome della via” e sa in quale direzione instradare il pacchetto.

4.2 Rappresentazione Binaria

Per il computer, un indirizzo IP è una sequenza di 32 bit (0 e 1). Noi umani lo scriviamo in decimale per comodità, ma per capire il subnetting è indispensabile saper convertire tra le due rappresentazioni.

1° ottetto
2° ottetto
3° ottetto
4° ottetto
11000000
10101000
00000001
01100100
192
168
1
100

Come convertire: i pesi dei bit

Ogni bit ha un “peso” che è una potenza di 2. In un ottetto (8 bit), i pesi da sinistra a destra sono:

Posizione7 (MSB)6543210 (LSB)
Peso1286432168421
Esempio: 19211000000
Somma128 + 64 = 192 ✓
Esercizio mentale: i valori da memorizzare

Impara a memoria questa sequenza: 128, 64, 32, 16, 8, 4, 2, 1. Ogni valore è la metà del precedente. Saperla a memoria ti permetterà di convertire istantaneamente qualsiasi ottetto durante l’esame.

Esempi di conversione

DecimaleBinarioCalcolo
000000000Tutti i bit a 0
25511111111128+64+32+16+8+4+2+1 = 255
19211000000128+64 = 192
22411100000128+64+32 = 224
24011110000128+64+32+16 = 240
24811111000128+64+32+16+8 = 248
25211111100128+64+32+16+8+4 = 252
10000010108+2 = 10
17210101100128+32+8+4 = 172
Nota: i valori nelle subnet mask

I primi 7 valori della tabella (0, 128, 192, 224, 240, 248, 252, 255) sono gli unici valori possibili in un ottetto della subnet mask. Questo perché la subnet mask ha sempre una sequenza continua di 1 seguita da una sequenza continua di 0. Memorizzali!

4.3 Network ID e Host ID

Ogni indirizzo IP è diviso in due parti. Il confine tra queste due parti è definito dalla subnet mask.

Network ID Identifica la rete
Host ID Identifica il dispositivo
192.168.1 . 100
Con mask 255.255.255.0 → i primi 3 ottetti sono Network, l’ultimo è Host
Subnet Mask

La subnet mask è una maschera a 32 bit che distingue la parte di rete dalla parte host. I bit a 1 corrispondono al Network ID, i bit a 0 al Host ID. Esempio: 255.255.255.0 = 11111111.11111111.11111111.00000000 → 24 bit di rete, 8 bit di host.

L’operazione AND logico

Per calcolare il Network Address (indirizzo di rete) si esegue un AND bit a bit tra l’indirizzo IP e la subnet mask:

DecimaleBinario
IP Address192.168.10.13011000000.10101000.00001010.10000010
Subnet Mask255.255.255.19211111111.11111111.11111111.11000000
Network Addr192.168.10.12811000000.10101000.00001010.10000000
Regola rapida per l’AND

Se l’ottetto della mask è 255 → l’ottetto dell’IP resta invariato. Se è 0 → diventa 0. Se è un valore intermedio (128, 192, 224…) → devi fare l’AND bit a bit, oppure usare la regola del 256 che vedremo nel Modulo 5.

4.4 Notazione CIDR

Invece di scrivere per esteso la subnet mask, si usa la notazione CIDR (Classless Inter-Domain Routing): una barra seguita dal numero di bit a 1 nella mask.

Notazione CIDRSubnet MaskBit di reteBit di hostHost utili
/8255.0.0.082416.777.214
/16255.255.0.0161665.534
/24255.255.255.0248254
/25255.255.255.128257126
/26255.255.255.19226662
/27255.255.255.22427530
/28255.255.255.24028414
/30255.255.255.2523022
Perché si sottraggono 2 agli host?

Perché in ogni sottorete due indirizzi sono riservati e non assegnabili ai dispositivi:
Network Address = tutti i bit host a 0 (identifica la rete stessa).
Broadcast Address = tutti i bit host a 1 (raggiunge tutti gli host della rete).
Formula: Host utili = 2h − 2, dove h è il numero di bit host.

4.5 Classi di Indirizzi IPv4 (Classful)

Storicamente, gli indirizzi IPv4 erano divisi in classi basate sui primi bit. Questo sistema è obsoleto (sostituito dal CIDR nel 1993), ma è ancora richiesto all’esame e serve per capire molte convenzioni.

ClassePrimo ottettoBit inizialiMask defaultN. retiHost per rete
A1 – 1260xxxxxxx/812816.777.214
B128 – 19110xxxxxx/1616.38465.534
C192 – 223110xxxxx/242.097.152254
D224 – 2391110xxxxMulticast (non assegnata a host)
E240 – 2551111xxxxSperimentale / riservata
Il problema del classful addressing

Le classi erano estremamente inefficienti: un’azienda con 300 host doveva richiedere una classe B (65.534 host), sprecando il 99.5% degli indirizzi. Il CIDR ha risolto questo problema permettendo mask di qualsiasi lunghezza, non solo /8, /16 o /24.

4.6 Indirizzi Privati (RFC 1918)

Il documento RFC 1918 riserva tre blocchi di indirizzi per l’uso in reti private. Questi indirizzi non sono instradabili su Internet: un router di un ISP li scarta automaticamente. Per uscire su Internet, servono NAT (Network Address Translation).

Classe A privata

10.0.0.0/8

Da 10.0.0.0 a 10.255.255.255

16.777.216 indirizzi

Grandi organizzazioni, data center

Classe B privata

172.16.0.0/12

Da 172.16.0.0 a 172.31.255.255

1.048.576 indirizzi

Aziende medie, campus

Classe C privata

192.168.0.0/16

Da 192.168.0.0 a 192.168.255.255

65.536 indirizzi

Reti domestiche, piccoli uffici

Perché servono gli indirizzi privati?

Con soli ~4,3 miliardi di indirizzi IPv4 e miliardi di dispositivi connessi, gli IP pubblici non bastano. Gli indirizzi privati possono essere riutilizzati in reti diverse senza conflitto: la tua rete domestica 192.168.1.x e quella del tuo vicino 192.168.1.x sono completamente separate. Il router con NAT traduce l’IP privato in un IP pubblico per uscire su Internet.

4.7 Indirizzi Speciali

IndirizzoNomeFunzione
0.0.0.0Indirizzo non specificatoIndica “qualsiasi indirizzo” o “non ancora configurato”. Usato nella default route.
127.0.0.1Loopback (localhost)Indirizzo che punta al dispositivo stesso. Usato per test locali. L’intero blocco 127.0.0.0/8 è riservato.
255.255.255.255Broadcast limitatoRaggiunge tutti i dispositivi sulla rete locale. Non oltrepassa il router.
169.254.x.xAPIPA (link-local)Assegnato automaticamente quando il DHCP non è disponibile. Comunicazione solo locale.
x.x.x.0Network AddressTutti i bit host a 0. Identifica la rete. Non assegnabile a un dispositivo.
x.x.x.255Broadcast direttoTutti i bit host a 1. Raggiunge tutti gli host di quella specifica rete.
Attenzione: il range 127.x.x.x

L’intero blocco 127.0.0.0/8 (oltre 16 milioni di indirizzi!) è riservato per il loopback. Non è di classe A: è un blocco speciale. 127.0.0.1 è il più usato, ma qualsiasi indirizzo 127.x.x.x punta al dispositivo locale.

4.8 Lo Spazio di Indirizzamento IPv4

2³² = 4.294.967.296 indirizzi
Circa 4,3 miliardi — ma non tutti usabili

Lo spazio IPv4 è finito e quasi esaurito. I Regional Internet Registries (RIR) hanno distribuito tutti i blocchi /8 disponibili. Le soluzioni adottate per prolungare la vita di IPv4 sono:

Soluzioni temporanee
  • NAT — permette a centinaia di dispositivi di condividere un solo IP pubblico
  • CIDR/VLSM — assegna blocchi di dimensione esatta, senza sprechi
  • Indirizzi privati — riutilizzabili in infinite reti diverse
Soluzione definitiva
  • IPv6 — 128 bit = 3,4 × 10³⁸ indirizzi
  • Abbastanza per dare un IP a ogni granello di sabbia sulla Terra
  • Transizione in corso (dual-stack, tunneling)

Approfondito nel Modulo 8

4.9 Riepilogo del Modulo

Struttura IPv4
32 bit, 4 ottetti, decimale puntata. Diviso in Network ID + Host ID dalla subnet mask.
CIDR
Notazione /n indica i bit di rete. Host utili = 2ʰ − 2. Sostituisce le classi.
Privati (RFC 1918)
10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16. Non instradabili su Internet. Serve NAT.
Speciali
0.0.0.0, 127.0.0.1, 255.255.255.255, 169.254.x.x. Network e Broadcast non assegnabili.

🧪 Verifica di Autovalutazione

01 Quanti bit ha un indirizzo IPv4? In quanti ottetti è suddiviso?
02 Converti in binario: 172.16.0.1
03 Converti in decimale: 11000000.10101000.00001010.11111110
04 Cos’è la subnet mask e a cosa serve?
05 Dato l’indirizzo 192.168.5.200/24, qual è il Network Address?
06 Quanti host utili ha una rete /26? E una rete /30?
07 L’indirizzo 172.20.5.1 è pubblico o privato? Perché?
08 Cos’è l’indirizzo 127.0.0.1 e a cosa serve?
09 Perché con IPv4 non bastano gli indirizzi? Quali soluzioni sono state adottate?
10 Un host ha indirizzo 169.254.10.50: cosa è successo?

Soluzioni

Domanda 01 — Bit e ottetti
32 bit, suddivisi in 4 ottetti (gruppi di 8 bit), separati da punti nella notazione decimale. Ogni ottetto va da 0 a 255.
Domanda 02 — Conversione 172.16.0.1
172 = 128+32+8+4 = 10101100
16 = 16 = 00010000
0 = 00000000
1 = 00000001
Risultato: 10101100.00010000.00000000.00000001
Domanda 03 — Conversione da binario
11000000 = 128+64 = 192
10101000 = 128+32+8 = 168
00001010 = 8+2 = 10
11111110 = 128+64+32+16+8+4+2 = 254
Risultato: 192.168.10.254
Domanda 04 — Subnet mask
La subnet mask è una maschera a 32 bit formata da una sequenza continua di 1 (parte rete) seguita da una sequenza continua di 0 (parte host). Serve a distinguere il Network ID dall’Host ID all’interno di un indirizzo IP. Si applica tramite AND logico bit a bit con l’indirizzo per ottenere il Network Address.
Domanda 05 — Network Address
Con mask /24 (255.255.255.0), l’ultimo ottetto diventa 0. Network Address: 192.168.5.0. Il Broadcast Address è 192.168.5.255. Gli host vanno da .1 a .254.
Domanda 06 — Host utili /26 e /30
/26 → 32 − 26 = 6 bit host → 2⁶ − 2 = 62 host.
/30 → 32 − 30 = 2 bit host → 2² − 2 = 2 host. Il /30 è usato per i link punto-punto tra router (servono solo 2 IP: uno per interfaccia).
Domanda 07 — 172.20.5.1 pubblico o privato?
Privato. L’indirizzo 172.20.5.1 rientra nel range RFC 1918 172.16.0.0/12 (da 172.16.0.0 a 172.31.255.255). Il secondo ottetto 20 è compreso tra 16 e 31, quindi è privato.
Domanda 08 — 127.0.0.1
127.0.0.1 è l’indirizzo di loopback (localhost). Punta al dispositivo stesso — i pacchetti inviati a questo indirizzo non escono mai dalla scheda di rete. Si usa per test locali (es. ping 127.0.0.1 verifica che lo stack TCP/IP funzioni). L’intero blocco 127.0.0.0/8 è riservato.
Domanda 09 — Esaurimento IPv4
Lo spazio IPv4 ha solo ~4,3 miliardi di indirizzi, insufficienti per tutti i dispositivi connessi al mondo. Soluzioni adottate: NAT (condivisione di un IP pubblico tra molti dispositivi), CIDR/VLSM (assegnazione efficiente senza classi), indirizzi privati (riutilizzabili). La soluzione definitiva è IPv6 (128 bit = 3,4 × 10³⁸ indirizzi).
Domanda 10 — Indirizzo 169.254.x.x
L’host ha un indirizzo APIPA (Automatic Private IP Addressing), assegnato nel range 169.254.0.0/16. Questo significa che il dispositivo ha cercato un server DHCP per ottenere un IP, ma non l’ha trovato. Si è autoassegnato un indirizzo link-local che permette solo la comunicazione con altri host APIPA sulla stessa rete fisica, ma non l’accesso a Internet o ad altre reti.
Hands on Stem — Corso di Sistemi e Reti — Prof. D. Bertolino