Na prática, sempre poderemos recorrer a calculadoras para realizar esse procedimento. Exemplo:
Porém, para quem estiver estudando o assunto para uma prova é interessante conseguir realizar tudo "na mão" ou "na cabeça".
Supomos que você precise segmentar a rede com o IP
150.161.0.0/16 em 8 sub-redes.
O que isso quer dizer na prática? Quer dizer que você configurará a máscara de rede das máquinas de forma que exista uma separação lógica, para que uma máquina de uma rede não possa se comunicar com as máquinas de uma rede diferente. E serão 8 redes diferentes.
Quais seriam os endereços dessas sub-redes? Qual seria o intervalo de IPs válidos de cada uma e quais seriam seus respectivos endereços de broadcast?
Gostaria de recordar que uma máscara de IPv4 possui alguns bits que identificam a rede (são os bits 1) e outros usados para os "hosts", ou máquinas na rede (são os bits 0).
Para segmentar uma rede devemos alterar a máscara de rede original, usando alguns dos bits, que antes eram de máquina, para a parte da rede. Isso se chama "roubar" bits.
A quantidade de bits a ser roubada é o expoente do número 2 que resultará em uma quantidade de redes que atenda nossa necessidade.
Complicado? Aqui vai um exemplo:
Se precisamos de 30 sub-redes, podemos concluir que roubaremos 5 bits, pois 2 elevado a 5 é 32 (um valor que comporta as 30 sub-redes que necessitamos). A quantidade não precisa ser exata. Só precisa comportar a quantidade de sub-redes e ter o menor desperdício possível.
Voltando para a nossa questão, para dividir a referida rede (150.161.0.0 com máscara /16) em 8, nós precisaremos roubar 3 bits da parte das máquinas para a parte de rede, porque 2 elevado a 3 dá 8, a quantidade de sub-redes que queremos.
Então a máscara de rede inicial /16:
11111111.11111111.00000000.00000000
Se torna uma máscara /19:
11111111.11111111.11100000.00000000
Note que antes havia 16 números 1, e agora há 19. Porque roubamos 3 bits para rede. 3 bits zeros se tornaram bits 1.
Se quiser visualizar essa máscara em decimal, basta converter de binário para decimal.
Talvez você saiba realizar isso de forma automática, por exemplo, eu já decorei que:
00000000 = 0
10000000 = 128
11000000 = 192
11100000 = 224
11110000 = 240
11111000 = 248
11111100 = 252
11111110 = 254
11111111 = 255
Mas se você não decorou, use este método mental para converter:
Observe um octeto e imagine que acima de cada bit há os seguintes valores 128, 64, 32, 16, 8, 4, 2, 1.
Caso não se recorde de onde vem esses valores, eles são as potências do número 2, aí estão os 8 primeiros resultados:
2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
Só precisaremos ir até a oitava posição (2^7) porque o IPv4 é formado por octetos (8 bits).
Desses valores, some apenas os que tem 1 e o resultado será a conversão de binário para decimal, daquele octeto.
Usaremos um exemplo: 11111000.
Então somaríamos apenas: 128 + 64 + 32 + 16 + 8 = 248.
Retornando à questão:
A nova máscara /19, após a conversão para decimal, é:
255.255.224.0
Agora iremos para a segunda parte do processo, onde encontraremos o intervalo das redes e daí descobriremos todas as outras informações.