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+1 fino a broadcast-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

Esempio192.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/810.0.0.010.255.255.255
  • 172.16.0.0/12172.16.0.0172.31.255.255 (attenzione: solo fino a .31, non .255)
  • 192.168.0.0/16192.168.0.0192.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. Per 192.168.10.64/26 l’ultimo host è .126, non .127.
  • Confondere wildcard e subnet mask → se lo scenario è un’ACL o router ospf col comando network, 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), non 16. 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 come 172.32.5.1 è pubblico, non privato.