Calcolatore di sottoreti IP: CIDR, maschera e host
Calcola i dettagli di una sottorete IPv4 a partire da un indirizzo e da un prefisso CIDR: indirizzo di rete e di broadcast, intervallo degli host utilizzabili, maschera di sottorete e maschera wildcard.
IP Subnet Calculator
Results
Subnet Mask in Binary
Results follow RFC 791 (IPv4 addressing), RFC 4632 (CIDR notation), RFC 950 with RFC 919 and RFC 922 (network and broadcast reservation), and RFC 3021 (/31 point-to-point links).
Documentazione
Calcolatore di sottoreti IP
Un calcolatore di sottoreti IP determina i dettagli di rete associati a un indirizzo IPv4 e a una lunghezza del prefisso. Da questi due dati ricava l'indirizzo di rete, l'indirizzo di broadcast, l'intervallo degli indirizzi host utilizzabili, la maschera di sottorete e la maschera jolly.
Cosa fa il calcolatore
Lo strumento accetta un indirizzo IPv4 scritto come quattro numeri separati da punti, ad esempio 192.168.1.10, e una lunghezza del prefisso compresa tra 0 e 32. È possibile anche scrivere i due dati insieme nel formato CIDR, ad esempio 192.168.1.10/24: la parte /24 viene inserita automaticamente nel campo del prefisso.
Il calcolatore restituisce:
- Notazione CIDR: la rete nel formato indirizzo/prefisso, ad esempio 192.168.1.0/24.
- Indirizzo di rete: il primo indirizzo del blocco. Identifica la rete stessa.
- Indirizzo di broadcast: l'ultimo indirizzo del blocco. Un messaggio inviato a questo indirizzo raggiunge ogni host della sottorete.
- Intervallo degli host utilizzabili: il primo e l'ultimo indirizzo che un dispositivo può effettivamente utilizzare.
- Host utilizzabili e indirizzi totali: quanti indirizzi contiene il blocco e quanti sono disponibili per i dispositivi.
- Maschera di sottorete e maschera jolly: la maschera nella forma puntata, ad esempio 255.255.255.0, e la sua inversa, 0,0.0,255.
- La maschera di sottorete espansa bit per bit, con otto bit per ottetto.
I risultati seguono la RFC 791 (indirizzamento IPv4), la RFC 4632 (notazione CIDR), la RFC 950 insieme alle RFC 919 e 922 (prenotazione degli indirizzi di rete e di broadcast) e la RFC 3021 (collegamenti punto-punto /31).
Come funziona il subnetting
Un indirizzo IPv4 è un numero di 32 bit. Viene scritto come quattro ottetti, ciascuno dei quali è composto da 8 bit e contiene un valore da 0 a 255. La lunghezza del prefisso divide questi 32 bit in due parti. I primi bit, in numero indicato dal prefisso, identificano la rete. I bit rimanenti identificano un host all'interno di quella rete.
Una rete /24 riserva 24 bit alla parte di rete e lascia 8 bit per gli host. Otto bit per gli host producono 2⁸ = 256 indirizzi. Una rete /26 lascia soltanto 6 bit per gli host, quindi contiene 2⁶ = 64 indirizzi.
La maschera di sottorete esprime la stessa divisione come un indirizzo: un bit 1 per ogni bit di rete e un bit 0 per ogni bit dell'host. Per /24 il risultato è 255,255.255,0. La maschera wildcard inverte ogni bit della maschera di sottorete. Le liste di accesso dei router, in particolare sui dispositivi Cisco, confrontano gli indirizzi usando maschere jolly; per questo lo strumento mostra entrambe.
La formula della sottorete
Per una lunghezza del prefisso p compresa tra 0 e 30, il calcolatore applica queste regole, definite dalla RFC 950 e dalla RFC 4632:
- Maschera di sottorete = i primi p bit della parola di 32 bit impostati a 1.
- Indirizzo di rete = indirizzo IP AND maschera di sottorete (un AND bit a bit mantiene un bit solo quando entrambi gli ingressi hanno un 1).
- Indirizzo di broadcast = indirizzo di rete OR maschera jolly (ogni bit dell'host impostato a 1).
- Indirizzi totali = 2⁽³²⁻ᵖ⁾.
- Host utilizzabili = 2⁽³²⁻ᵖ⁾ − 2. La sottrazione rimuove l'indirizzo di rete e l'indirizzo di broadcast, che la RFC 950 e la RFC 919 riservano.
- Primo host utilizzabile = indirizzo di rete + 1. Ultimo host utilizzabile = indirizzo di broadcast − 1.
Due lunghezze del prefisso seguono regole diverse. Una /31 contiene esattamente 2 indirizzi e la RFC 3021 li rende entrambi host utilizzabili su un collegamento punto-punto, senza alcun indirizzo di broadcast. Una /32 identifica un singolo indirizzo: 1 indirizzo in totale, 1 utilizzabile, senza broadcast. In questi due casi lo strumento denomina il primo indirizzo "Base del prefisso" invece di "Indirizzo di rete", poiché nessuno dei due blocchi riserva un indirizzo per identificare la rete.
Ogni risultato deriva da operazioni aritmetiche su un unico numero di 32 bit. Lo strumento non elenca mai gli indirizzi uno per uno, quindi una /0 che copre tutti i 4.294.967.296 indirizzi IPv4 viene calcolata con la stessa rapidità di una /32.
Esempio svolto
Per l'indirizzo 10.128.7.33 con lunghezza del prefisso /26:
- Maschera di sottorete: 26 bit a uno seguiti da 6 bit a zero danno 11111111,11111111.11111111,11000000, che corrisponde a 255,255.255,192.
- Indirizzo di rete: eseguendo l'AND tra l'indirizzo e la maschera, i primi tre ottetti passano invariati. Nell'ultimo ottetto, 33 è 00100001 in binario; l'AND con 11000000 dà 00000000, cioè 0. L'indirizzo di rete è 10.128.7.0, quindi la notazione CIDR è 10.128.7.0/26.
- Indirizzo di broadcast: impostando a 1 tutti i 6 bit dell'host, l'ultimo ottetto diventa 00111111, cioè 63. L'indirizzo di broadcast è 10,128.7,63.
- Conteggi: 2⁶ = 64 indirizzi totali e 64 − 2 = 62 host utilizzabili.
- Intervallo degli host: da 10.128.7.1 a 10,128.7,62.
- Maschera jolly: l'inversa della maschera di sottorete, 0,0.0,63.
Un secondo esempio con l'input predefinito dello strumento, 192.168.1.10/24: rete 192.168.1.0, broadcast 192.168.1.255, host da 192.168.1.1 a 192.168.1.254, 254 host utilizzabili su 256 indirizzi totali, maschera di sottorete 255.255.255.0, maschera jolly 0,0.0,255.
Convenzioni seguite dallo strumento
Gli ottetti con zeri iniziali vengono rifiutati. Lo strumento rifiuta 010.1.1.1 invece di leggerlo come 10,1.1,1. Questa scelta è intenzionale. La funzione POSIX inet_aton, utilizzata da ping, curl e dalla maggior parte dei resolver dei sistemi operativi, interpreta come ottale un ottetto con uno zero iniziale, quindi per quei programmi 010.1.1.1 significa 8.1.1.1. Nessuna interpretazione decimale o ottale può coincidere con quella di ogni lettore, quindi lo strumento non accetta né l'una né l'altra. Per lo stesso motivo viene rifiutato anche un prefisso scritto come /08.
Il conteggio degli host sottrae due. Alcuni calcolatori riportano la dimensione grezza del blocco come conteggio degli host. Questo strumento segue la RFC 950: in qualsiasi blocco da /0 a /30, la parte dell'host composta interamente da zeri identifica la rete e quella composta interamente da uno è il broadcast; entrambe sono quindi escluse e una /24 ha 254 host utilizzabili, non 256.
Una /31 ha due host utilizzabili. I testi più datati, scritti prima della RFC 3021 (pubblicata nel 2000), considerano inutilizzabile una /31 perché la sottrazione dei due indirizzi riservati lascia zero. La RFC 3021 ha eliminato entrambe le prenotazioni per i collegamenti punto-punto e i router supportano questa modalità da decenni; perciò lo strumento riporta 2 host utilizzabili e nessun indirizzo di broadcast.
È accettato qualsiasi prefisso da /0 a /32. Una /0 è un blocco valido che copre l'intero spazio IPv4, in linea con la presenza di 0.0.0.0/0 nelle tabelle di routing come route predefinita.
Solo IPv4. IPv6 (RFC 4291) usa indirizzi di 128 bit e una notazione diversa, quindi non rientra nell'ambito di questo strumento. Lo strumento inoltre non segnala intervalli per scopi speciali, come gli indirizzi privati o di loopback (RFC 6890); restituisce soltanto il calcolo degli indirizzi.
Domande frequenti
Quanti host utilizzabili ha una /24? 254. Una /24 lascia 8 bit per gli host, dando 2⁸ = 256 indirizzi. Due sono riservati: l'indirizzo di rete e l'indirizzo di broadcast. Ne restano 254 per i dispositivi.
Che cos'è una maschera jolly? L'inversa bit per bit della maschera di sottorete. Dove la maschera di sottorete ha un 1, la maschera jolly ha uno 0, e viceversa. Per la maschera 255.255.255.0 la maschera jolly è 0,0.0,255. Le liste di controllo degli accessi di molti router usano maschere jolly per descrivere gli indirizzi a cui si applica una regola.
Perché una /31 non mostra alcun indirizzo di broadcast? Una /31 contiene solo due indirizzi. Riservarne uno alla rete e uno al broadcast non lascerebbe nulla, quindi la RFC 3021 definisce la /31 come un collegamento punto-punto in cui entrambi gli indirizzi sono host e non esiste alcun indirizzo di broadcast. Il calcolatore riporta 2 host utilizzabili e indica il broadcast come non applicabile.
Perché 010.1.1.1 viene rifiutato invece di essere letto come 10.1.1.1? Perché i sistemi operativi non concordano su un'interpretazione decimale semplice. POSIX inet_aton legge come ottale un ottetto con uno zero iniziale, quindi per la maggior parte dei sistemi 010 significa 8. Rifiutare l'input è l'unica soluzione che non può differire silenziosamente da ciò che farebbe il computer dell'utente.
Qual è la differenza tra indirizzi totali e host utilizzabili? Gli indirizzi totali sono la dimensione completa del blocco, 2 elevato alla potenza di (32 meno la lunghezza del prefisso). Gli host utilizzabili sono quel numero meno i due indirizzi riservati, tranne in una /31 (entrambi utilizzabili) e in una /32 (l'unico indirizzo è l'host).
Che cosa indica l'indirizzo di rete di 192.168.1.10/24? È 192.168.1.0, ottenuto mantenendo i primi 24 bit dell'indirizzo e impostando a zero i bit dell'host. Identifica la sottorete nel suo complesso e non può essere assegnato a un dispositivo.
Riferimenti
- Postel, J. "RFC 791: Internet Protocol." IETF, 1981.
- Mogul, J. e J. Postel. "RFC 950: Internet Standard Subnetting Procedure." IETF, 1985.
- Mogul, J. "RFC 919: Trasmissione di datagrammi Internet." IETF, 1984.
- Fuller, V. e T. Li. "RFC 4632: Classless Inter-domain Routing (CIDR)." IETF, 2006.
- Retana, A. et al. "RFC 3021: Using 31-Bit Prefixes on IPv4 Point-to-Point Links." IETF, 2000.