Indirizzi IPv4 e Maschera di Sottorete

Blog post description.

CCNA

1/20/2023

Gli indirizzi IPv4 sono lunghi 32 bit e vengono scritti come 4 ottetti (ogni ottetto formato da 8 bit, un byte) in formato decimale puntato: 192.168.10.15

Maschera di Sottorete

Un host può mandare del traffico direttamente ad un altro host che si trova nella stessa sottorete tramite switch.
Tuttavia, affinché un host possa comunicare con un host in una sottorete differente, il traffico deve essere instradato da un router.
Il mittente deve quindi sapere se la destinazione si trova nella stessa sottorete o in una differente per capire come mandarlo e per questo viene usata la maschera di sottorete (in inglese subnet mask).
La maschera di sottorete è lunga 32 bit come gli indirizzi IPv4 e può essere scritto in decimale puntato o con la notazione slash.
L'indirizzo IP di un host viene diviso in due parti: una per la rete (identificatore di rete) ed una per gli host (identificatore di host).
La maschera di sottorete viene usata per indicare dove finisce una e dove inizia l'altra.
Per capire meglio il tutto utilizziamo un esempio: immaginiamo che un host abbia l'indirizzo IP di 192.168.10.15 e la sua maschera di sottorete sia 255.255.255.0.
Scriviamo l'indirizzo IP in formato binario e sotto mettiamo la maschera di rete.

11000000.10101000.00001010.00001111
11111111.11111111.11111111.00000000

L'indirizzo IP viene comparato (masked) con la maschera di sottorete.
Gli 1 nella maschera di sottorete indicano che quella parte corrisponde all'identificatore di rete, mentre gli 0 indicano che quei bit dell'indirizzo IP corrispondono all'identificatore di host.
In questo caso vediamo che i primi tre ottetti dell'indirizzo IP corrispondono ai bit che appartengono alla rete, mentre l'ultimo quartetto corrisponde ai bit per gli host.
Trasformiamo l'ultimo quartetto nel sistema decimale ed otteniamo 15.
Quindi, se un host vuole comunicare con un altro host il cui identificatore di rete è 192.168.10 (come ad esempio può essere 192.168.10.23), capisce che la destinazione si trova nella stessa sottorete e può mandare direttamente il traffico.
Se, invece, vuole comunicare con un altro host che ha un identificatore di rete diverso (192.168.11.23), capisce che deve mandare il traffico attraverso un router.
La maschera di sottorete ha sempre degli "1" contigui, quindi una subnet mask pari a 11111111.11110000.00000000.00000000 è giusta, mentre una maschera di sottorete pari a 11001111.11000011,11100000.00000111 non lo è.
La parte host dell'indirizzo è assegnabile a diversi host nella sottorete (PC, server, stampanti, scanner...), con due eccezioni (che vedremo più avanti).
L'identificatore di host identifica, appunto, un unico dispositivo e deve essere il solo ad avere quell'indirizzo nella sottorete.
Gli host non devono essere numerati obbligatoriamente in maniera sequenziale.
Se l'identificatore di rete è 10.10.10, possiamo avere un dispositivo con indirizzo IP di 10.10.10.10 e un altro host con indirizzo 10.10.10.20.
Tuttavia, nella stessa sottorete non si possono avere due dispositivi con lo stesso indirizzo IP: in questo caso un terzo host non saprebbe come raggiungere i due dispositivi, esattamente come non possono esistere due numeri di telefono uguali, o due edifici (nella stessa città) con l'indirizzo uguale.
Due dispositivi possono avere lo stesso identificatore di host solo se hanno un indirizzo di rete diverso (trovandosi quindi in un'altra sottorete): quindi un host può avere l'indirizzo IP di 10.10.10.10 e un altro di 10.10.20.10.
Esistono due casi in cui l'identificatore di host non può venir assegnato: il primo è che questo sia formato da tutti 0 (che identifica la rete) e il secondo è che sia composto da tutti "1" (indirizzo di broadcast).
Quindi, se il nostro indirizzo è 192.168.11.23, 192.168.11.0 corrisponde all'indirizzo della rete, 192.1168.11.255 corrisponde all'indirizzo di broadcast di quella rete, mentre i restanti indirizzi (da 192.168.11.1 a 192.168.11.254) sono disponibili per essere assegnati agli host.

Torniamo alla nostra maschera di rete 11111111.11111111.11111111.00000000.
Possiamo vedere che continuare a scriverla così non è molto comodo, quindi la possiamo trasformare in formato decimale puntato ottenendo 255.255.255.0.
La si può scrivere anche in un altro modo, chiamato notazione slash, che tiene conto del numero di "1" presenti: in questo caso sono 24, quindi possiamo scrivere "/24".
Quando si imposta la subnet mask all'interno di un dispositivo bisogna usare il formato decimale puntato, mentre all'interno di diagrammi di rete o nelle conversazioni si può usare semplicemente la notazione slash.
Vediamo un altro esempio per capire meglio il tutto.
Abbiamo un indirizzo IP di 10.10.10.15 e una subnet mask di 255.0.0.0.
Per prima cosa otteniamo le loro versioni in binario.

00001010.00001010.00001010.00001111
11111111.00000000.00000000.00000000

Possiamo scrivere il nostro esempio come 10.10.10.15 255.0.0.0 oppure 10.10.10.15/8.
L'identificatore di rete è 10.0.0.0/8
L'indirizzo di broadcast è 10.255.255.255.
Gli host possono assumere gli indirizzi IP da 10.0.0.1 a 10.255.255.254.