Anatomia di un indirizzo IPv4
Un indirizzo IPv4 è composto da 32 bit organizzati in quattro ottetti (notazione dotted-decimal, es. 192.168.10.100). La subnet mask definisce il confine tra la porzione di rete e quella host: i bit posti a 1 identificano la rete, i bit a 0 identificano gli host. In notazione CIDR il /26 indica semplicemente quanti bit consecutivi valgono 1 (26 in questo caso, ovvero 255.255.255.192).
Da un indirizzo host e dalla mask ricaviamo tre valori chiave:
- Network address — tutti i bit host a
0; identifica la subnet. - Broadcast address — tutti i bit host a
1; ultimo indirizzo del blocco. - Host range — gli indirizzi utilizzabili, ovvero
network+1fino abroadcast-1.
Conteggio rapido a memoria
Il metodo del block size evita di lavorare in binario. Nell’ottetto “interessante” (quello dove cade il confine di rete):
block size = 256 − valore dell'ottetto della mask
Il numero di host utilizzabili per subnet è 2^h − 2 (si sottraggono network e broadcast); il numero di subnet ottenibili prendendo in prestito s bit è 2^s.
| CIDR | Subnet mask | Host/subnet | Block size |
|---|---|---|---|
| /24 | 255.255.255.0 | 254 | 256 |
| /25 | 255.255.255.128 | 126 | 128 |
| /26 | 255.255.255.192 | 62 | 64 |
| /27 | 255.255.255.224 | 30 | 32 |
| /28 | 255.255.255.240 | 14 | 16 |
| /29 | 255.255.255.248 | 6 | 8 |
| /30 | 255.255.255.252 | 2 | 4 |
Esempio — 192.168.10.100/26: block size = 256 − 192 = 64, quindi le subnet iniziano a .0, .64, .128, .192. L’host .100 cade nel blocco .64. Ne segue: network 192.168.10.64, broadcast 192.168.10.127, host range .65 – .126.
Indirizzi privati RFC 1918
Non instradabili su Internet, richiedono NAT per uscire verso l’esterno:
- 10.0.0.0/8 —
10.0.0.0–10.255.255.255 - 172.16.0.0/12 —
172.16.0.0–172.31.255.255(attenzione: solo fino a.31, non.255) - 192.168.0.0/16 —
192.168.0.0–192.168.255.255
VLSM: mask a lunghezza variabile
Il VLSM consente di applicare mask diverse a subnet diverse ricavate dallo stesso blocco, minimizzando lo spreco. La regola d’oro: allocare prima le subnet più grandi, in ordine decrescente di host richiesti, per evitare sovrapposizioni.
Partendo da 192.168.1.0/24 per reti da 50, 25, 10 e 2 host:
| Requisito | Mask scelta | Subnet | Range utile |
|---|---|---|---|
| 50 host | /26 (62) | 192.168.1.0 | .1 – .62 |
| 25 host | /27 (30) | 192.168.1.64 | .65 – .94 |
| 10 host | /28 (14) | 192.168.1.96 | .97 – .110 |
| link P2P (2) | /30 (2) | 192.168.1.112 | .113 – .114 |
Si sceglie sempre la mask più piccola che soddisfa il requisito (/26 per 50 host, perché /27 offre solo 30 indirizzi).
Subnet mask vs wildcard mask
La wildcard mask è l’inverso bit-a-bit della subnet mask e si usa in ACL e nel comando network di OSPF/EIGRP. Il calcolo è immediato:
wildcard = 255.255.255.255 − subnet mask
Così /24 (255.255.255.0) diventa wildcard 0.0.0.255; /26 (255.255.255.192) diventa 0.0.0.63. Nella wildcard i bit a 0 indicano “deve corrispondere”, i bit a 1 “ignora”.
access-list 10 permit 192.168.10.0 0.0.0.63
Trappole tipiche d’esame
- Off-by-one sull’ultimo host → l’ultimo indirizzo utilizzabile è
broadcast − 1, mai il broadcast stesso. Per192.168.10.64/26l’ultimo host è.126, non.127. - Confondere wildcard e subnet mask → se lo scenario è un’ACL o
router ospfcol comandonetwork, la risposta è la wildcard (0.0.0.63), non la subnet mask (255.255.255.192). - Dimenticare il
−2→ chiedendo quanti host ospita una/28, la risposta è14(2^4 − 2), non16. L’eccezione è la /31 (RFC 3021) sui link point-to-point: 2 host utilizzabili senza broadcast. - VLSM disordinato → assegnando le subnet piccole prima delle grandi si genera frammentazione e sovrapposizione; allocare sempre dal fabbisogno maggiore al minore.
- Range 172.16.0.0/12 → l’estremo superiore è
172.31.255.255; un indirizzo come172.32.5.1è pubblico, non privato.