Esempio:
IP: 128.42.5.4
In binario: 10000000 00101010 00000101 00000100
Sottorete: 255.255.248.0
Come puoi determinare i numeri di prefisso, rete, subnet e host?
Convertire la rappresentazione dottato-decimale della netmask in binario. Poi, contate il numero di 1 bit contigui, iniziando dal bit più significativo nel primo ottetto (cioè il lato sinistro del numero binario).
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
-----------------------------------
I counted twenty-one 1s -------> /21
Il prefisso di 128.42.5.4 con una netmask 255.255.248.0 è /21.
L'indirizzo di rete è l'AND logico dei rispettivi bit nella rappresentazione binaria dell'indirizzo IP e della maschera di rete. Allinea i bit in entrambi gli indirizzi ed esegui un AND logico su ogni coppia dei rispettivi bit. Poi convertire i singoli ottetti del risultato in decimale.
Tabella di verità AND logica:
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
----------------------------------- [Logical AND]
10000000 00101010 00000000 00000000 ------> 128.42.0.0
Come potete vedere, l'indirizzo di rete di 128.42.5.4/21 è 128.42.0.0
L'indirizzo broadcast converte tutti i bit dell'host in 1...
Ricorda che il nostro indirizzo IP in decimale è:
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
La maschera di rete è:
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
Questo significa che i nostri bit di host sono gli ultimi 11 bit dell'indirizzo IP, perché troviamo la maschera di host invertendo la maschera di rete:
Host bit mask : 00000000 00000000 00000hhh hhhhhhhh
Per calcolare l'indirizzo broadcast, forziamo tutti i bit dell'host ad essere 1:
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
Host bit mask : 00000000 00000000 00000hhh hhhhhhhh
----------------------------------- [Force host bits]
10000000 00101010 00000111 11111111 ----> 128.42.7.255
Non hai dato abbastanza informazioni per calcolare le sottoreti per questa rete; come regola generale si costruiscono le sottoreti riassegnando alcuni dei bit dell'host come bit di rete per ogni sottorete. Molte volte non c'è un modo giusto per subnetare un blocco... a seconda dei tuoi vincoli, ci potrebbero essere diversi modi validi per subnetare un blocco di indirizzi.
Supponiamo di dividere 128.42.0.0/21 in 4 sottoreti che devono contenere almeno 100 host ciascuna...
In questo esempio, sappiamo che è necessario almeno un prefisso /25 per contenere 100 host; ho scelto un /24 perché cade su un confine di ottetto. Notate che l'indirizzo di rete per ogni sottorete prende in prestito bit di host dal blocco di rete padre.
Come faccio a sapere che ho bisogno di almeno una masklength /25 per 100 host? Calcolate il prefisso facendo risalire il numero di bit di host necessari per contenere 100 host. Si ha bisogno di 7 bit di host per contenere 100 host. Ufficialmente questo viene calcolato con:
Bit di host = Log2(Numero di host) = Log2(100) = 6.643
Poiché gli indirizzi IPv4 sono larghi 32 bit, e stiamo usando i bit dell'host (cioè i bit meno significativi), basta sottrarre 7 da 32 per calcolare il prefisso minimo per ogni sottorete... 32 - 7 = 25.
Dato che vogliamo solo quattro subnet dall'intero blocco 128.42.0.0/21, potremmo usare /23 subnet. Ho scelto /23 perché abbiamo bisogno di 4 sottoreti... cioè due bit in più aggiunti alla netmask.
Questa è una risposta altrettanto valida al vincolo, usando /23 sottoreti di 128.42.0.0/21...
Questo è quello che abbiamo già fatto sopra... basta riutilizzare la maschera di host dal lavoro che abbiamo fatto quando abbiamo calcolato l'indirizzo broadcast di 128.42.5.4/21... Questa volta userò 1s invece di h
, perché dobbiamo di nuovo eseguire un AND logico sull'indirizzo di rete.
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
Host bit mask : 00000000 00000000 00000111 11111111
----------------------------------- [Logical AND]
00000000 00000000 00000101 00000100 -----> 0.0.5.4
Per trovare il numero massimo di host, guardate il numero di bit binari nel numero di host di cui sopra. Il modo più semplice per farlo è sottrarre la lunghezza della maschera di rete da 32 (numero di bit in un indirizzo IPv4). Questo ti dà il numero di bit dell'host nell'indirizzo. A quel punto...
Numero massimo di host = 2**(32 - lunghezza_netmask) - 2
La ragione per cui sottraiamo 2 è perché i numeri host all-ones e all-zeros sono riservati. Il numero di host all-zeros è il numero di rete; il numero di host all-ones è l'indirizzo broadcast.
Usando la subnet di esempio di 128.42.0.0/21 qui sopra, il numero di host è...
Numero massimo di host = 2**(32 - 21) - 2 = 2048 - 2 = 2046
Supponiamo che qualcuno ci dia due indirizzi IP e si aspetti che troviamo la netmask più lunga che li contenga entrambi; per esempio, se avessimo:
La cosa più semplice da fare è convertire entrambi in binario e cercare la stringa più lunga di bit di rete dal lato sinistro dell'indirizzo.
128.42.5.17 in binary: 10000000 00101010 00000101 00010001
128.42.5.67 in binary: 10000000 00101010 00000101 01000011
^ ^ ^
| | |
+--------- Network ---------+Host-+
(All bits are the same) Bits
In questo caso la netmask massima (hostmask minima) sarebbe /25
NOTA: Se provate a partire dal lato destro, non fatevi ingannare solo perché trovate una colonna di bit corrispondenti; ci potrebbero essere bit non corrispondenti oltre quei bit corrispondenti. Onestamente, la cosa più sicura da fare è iniziare dal lato sinistro.
La risposta di cui sopra colpisce perfettamente il chiodo sulla testa. Tuttavia, quando ho iniziato, mi ci sono voluti alcuni esempi diversi da un paio di fonti per colpire davvero a casa. Pertanto, se siete interessati ad altri esempi, ho scritto alcuni post sul blog sull'argomento - http://www.oznetnerd.com/category/subnetting/
Admins, se questo post è considerato spam, sentitevi liberi di cancellarlo.
Edit: Come da suggerimento di YLearn, proverò a prendere le parti rilevanti dalla Parte 1 della mia serie, senza incollare l'intera voce qui.
Usiamo 195.70.16.159/30 come esempio.
Dato che è un /30, sappiamo che la porzione di host sarà nel quarto ottetto. Convertiamo questo in binario:
128 64 32 16 8 4 2 1
SN SN SN SN SN SN H H
1 0 0 1 1 1 1 1
Ora per trovare l'indirizzo di rete tutto quello che facciamo è sommare i bit SN che hanno un 1 sotto di loro. (128 + 16 + 8 + 4 = 156).
Quando aggiungi questo 156 ai primi tre ottetti dell'indirizzo, ci rimane l'indirizzo di rete 195.70.16.156.
Ora, poiché sappiamo che il primo indirizzo utilizzabile è sempre l'indirizzo di rete più uno, tutto quello che dobbiamo fare è eseguire il seguente calcolo: (156 + 1 = 157).
Questo ci dà un primo indirizzo utilizzabile di 195.70.16.157.
Ora saltiamo per un momento l'Ultimo Indirizzo Utilizzabile e troviamo il Broadcast Address. Per scoprire qual è, tutto quello che dobbiamo fare è sommare tutti i bit H (indipendentemente dal fatto che siano un 1 o uno 0) e poi aggiungere questo numero all'indirizzo di rete. (2 + 1 + 156 = 159).
Questo ci dà un Indirizzo Broadcast di 195.70.16.159.
E infine, risolviamo l'ultimo indirizzo utilizzabile. Questo processo è simile alla ricerca del primo indirizzo utilizzabile, tuttavia, invece di aggiungere uno all'indirizzo di rete, in realtà sottraiamo uno dall'indirizzo Broadcast. (159 - 1 = 158).
Questo ci dà un ultimo indirizzo utilizzabile di 195.70.16.158.
Ed ecco fatto! Il nostro temaplte è completo. Per un facile riferimento, eccolo di nuovo:
Come scorciatoia, puoi anche usare questa formula. Funziona su sottoreti di qualsiasi dimensione:
Esempio:
IP: 128.42.5.4
In binario: 10000000 00101010 00000101 00000100
Sottorete: 255.255.248.0
Come puoi determinare i numeri di prefisso, rete, subnet e host?
32768 16384 8192 4096 2048 1024 512 256 ----> Binary
128 192 224 240 248 252 254 255 ----> Sunet Mask
/17 /18 /19 /20 /21 /22 /23 /24 ----> CIDR
32766 16382 8190 3094 2046 1022 510 254 ----> Host
128 64 32 16 8 4 2 1 ----> Binary
128 192 224 240 248 252 254 255 ----> Sunet Mask
/25 /26 /27 /28 /29 /30 /31 /32 ----> CIDR
126 62 30 14 6 2 * - ----> Host
128 64 32 16 8 4 2 1
10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001
Example
Network=192.168.1.0 /24;
Network Address with Subnet mask = 192.168.1.0 subnet 255.255.255.0
Ip address range 192.168.1.0----192.168.1.255
Fist available ip address 192.168.1.1;
Last available ip address 192.168.1.254;
Broadcast address = 192.168.1.255;
254 Host
Network=192.168.1.0 /25;
Network Address with Subnet mask = 192.168.1.0 subnet 255.255.255.128
Ip address range 192.168.1.0----192.168.1.128
Fist available ip address 192.168.1.1;
Last available ip address 192.168.1.126;
Broadcast address = 192.168.1.127;
126 Hosts
When the CIDR increased ex. /24. /25. the network will divided by the
binary number.
/25 increase network 0-128| 128- 256 | you will have 2 Networks
/26 increase network 0-64 | 64 - 128 | 128-192 | 192-256 you will have 4 Networks
.
.
.
/32......