Antes de mais nada, procure memorizar as duas tabelas abaixo:

128 10000000
192 11000000
224 11100000
240 11110000
248 11111000
252 11111100
254 11111110
255 11111111

2^10 1024
2^11 2048
2^12 4096
2^13 8192
2^14 16384
2^15 32768
2^16 65536
2^17 131072
2^18 262144
2^19 524288
2^20 1048576
2^21 2097152
2^22 4194304
2^23 8388608


Quando você se depara com uma máscara de rede e precisa determinar o número de sub-redes, hosts válidos e endereços de broadcast que a máscara define, tudo o que você tem a fazer é responder a 5 perguntas:

1. Quantas sub-redes tal máscara produz?
2. Quantos endereços de hosts válidos são obtidos por sub-rede?
3. Quais são as sub-redes válidas?
4. Quais os hosts válidos em cada sub-rede?
5. Qual o endereço de broadcast de cada sub-rede?

O método binário é muito útil para aprendizagem, mas fica inviável quando temos 10 ou mesmo 20 bits, para prática utilizaremos outros métodos mais práticos e dinâmicos.
Eis um método prático de determinar a resposta para cada uma das 5 questões:

a) Quantas sub-redes? 2x – 2 = quantidade de sub-redes, onde “x” representa o número de bits “mascarados” ou número de “1s”.
Por exemplo: 11000000 seria 22 -2 = 2. Nesse caso, haveria duas sub-redes possíveis com tal máscara.

b) Quantos hosts válidos por sub-rede? 2y – 2 = quantidade de hosts válidos, onde “y” representa o número de bits disponíveis para manipulação dos endereços de host, ou o número de “0s”.
Por exemplo: 11000000 seria 26 -2 = 62. Neste caso, existem 62 endereços válidos para hosts por sub-rede.

c) Quais são as sub-redes válidas? 256 – máscara de rede = valor da sub-rede base. À esse resultado, soma-se o valor obtido até que se atinja o número da máscara (que seria inválido).
Seguindo nosso exemplo: 256 – 192 = 64 (número base e primeira sub-rede válida). 64 + 64 = 128 (segunda sub-rede válida). 128 + 64 = 192 (valor da máscara = sub-rede inválida). Portanto, as sub-redes válidas seriam 64 e 128.

d) Qual o endereço de broadcast para cada sub-rede? O endereço de broadcast seria o valor imediatamente anterior ao valor da próxima sub-rede (ou da máscara, se estivessemos falando da última sub-rede na sequência).
Em nosso exemplo, temos as sub-redes 64 e 128. O endereço de broadcast da primeira seria 128 – 1 =127. Já o da segunda 192 (valor da máscara) – 1 = 191.

e) Quais os hosts válidos? Os valores válidos seriam os compreeendidos entre as sub-redes, menos todos os bits ligados e desligados. A melhor maneira de se identificar esses valores é se descobrindo as sub-redes válidas e os endereços de broadcast de cada uma. Em nosso exemplo, os hosts válidos estariam compreendidos nos intervalos entre 65-126 para a primeira sub-rede e 129-190 para a segunda (pois 64 e 128 são os valores que definem as respectivas

Emprestando bits

Vamos imaginar que eu precise de uma rede para pelo menos 1000 hosts

Como tem que ser multiplo binario ou seja X^2 o mais proximo que temos a isso é 1024 (2^10)

Logo alem do ultimo octeto (8 bits) precisamos "pegar emprestado" mais 2 bits

mascara classe C padrao 255.255.255.0 ou 11111111.11111111.11111111.00000000;

Pegando 2 emprestados do terceiro octeto ficaria 11111111 11111111 11111100 00000000 ou 255.255.252.0

Sendo os 2 primeiros octetos "fixos" da rede teriamos para sub-rede 64 para rede (2^6) e 1024 para host (2^10)

O que nos daria 1024 enderecos de host disponiveis para cada uma da 64 sub-rede como 1 endereco é de rede e 1 de broadcast teriamos que diminuir 2 que daria 1022 enderecos validos por sub-rede

Tipo de Rede

Antes de fazer um calculo de sub-rede deve saber qual classe aquela rede pertence.

mascara padrao


Classe A Rede Host

 

1 2 3 4

Classe B Rede Host
  1 2 3 4

Classe C Rede Host
  1 2 3 4

Classe D Host
  1 2 3 4
Classe
 
Range
Mascara
Hosts
A 00000000 1.0.0.0 até 127.255.255.255 255.0.0.0 16 777 216
B 10000000 128.0.0.0 até 191.255.255.255 255.255.0.0 65 536
C 11000000 192.0.0.0 até 223.255.255.255 255.255.255.0 256
D 11100000 224.0.0.0 até 239.255.255.255 multicast
E 11110000 240.0.0.0 até 247.255.255.255 uso futuro

Nos endereços classe D são usados para multicast, não é necessário alocar octetos ou bits para separar os endereçoes de rede e host

Os endereços reservados mais comun são:



CIDR Bloco de Endereços Descrição Referência
0.0.0.0/8 Rede corrente (só funciona como endereço de origem) RFC 1700
10.0.0.0/8 Rede Privada RFC 1918
14.0.0.0/8 Rede Pública RFC 1700
39.0.0.0/8 Reservado RFC 1797
127.0.0.0/8 Localhost RFC 3330
128.0.0.0/16 Reservado (IANA) RFC 3330
169.254.0.0/16 Zeroconf RFC 3927
172.16.0.0/12 Rede Privada RFC 1918
191.255.0.0/16 Reservado (IANA) RFC 3330
192.0.0.0/24
192.0.2.0/24 Documentação RFC 3330
192.88.99.0/24 IPv6 para IPv4 RFC 3068
192.168.0.0/16 Rede Privada RFC 1918
198.18.0.0/15 Teste de benchmark de redes RFC 2544
223.255.255.0/24 Reservado RFC 3330
224.0.0.0/4 Multicasts (antiga rede Classe D) RFC 3171
240.0.0.0/4 Reservado (antiga rede Classe E) RFC 1700
255.255.255.255 Broadcast

 

Calculando rede e host

Exercício 1)

39.20.10.30 é um classe A, de acordo com a tabela, pois esta entre 1.0.0.0 a 127.255.255.255 logo a macara é 255.0.0.0

Este mesmo endereco pode ser uma sub-rede como por exemplo a /26 ou seja 2^18 de rede

11111111 11111111 11111111 11000000

2^18=262.144 de sub-rede (-2) 262.142 validos
2^6=64 bits de host (-2) 62 validos

negrito=mascara de rede (não confundir com a mascara de sub rede)
sublinhado=bits emprestados para sub-rede
normal=numero de host por sub-rede


Ou seja 18 bits emprestados para rede e 6 para host o que daria 2^18 = 262.144 enderecos de rede com 64 host para cada sub rede, sendo 62 validos (tirando o rede e o broadcast). Vale lembrar que o broadcast é sempre impar e é um a menos que o endereco da proxima sub-rede.

Entao:

Sub-rede # End. Sub-rede Range da Sub-rede Endereço de BroadCast da Sub-Rede
1) 39.0.0.0 39.0.0.1 39.0.0.63
    39.0.0.62
2) 39.0.0.64 39.0.0.65 39.0.0.167
    39.0.0.126
3) 39.0.0.128 39.0.0.129 39.0.0.191
    39.0.0.190
4) 39.0.0.192 39.0.0.193 39.0.0.255
    39.0.0.254
5) 39.0.0.256 39.0.0.257 39.0.1.63
    39.0.1.0

[...]

Ate a subnet 262.144 com 64 endereco cada (62 válidos)


Exercicio 2)

O IP 130.20.30.40 com máscara 255.255.255.192;

O endereço é um classe B (intervalo entre 129.0.0.0 a 191.255.255.255) de uma rede 130.20.0.0/18

A subnet está da seguinte forma:

11111111 11111111 11000000 00000000

2^2=4 subredes
2^14=16384 hosts e (16384-2) 16382 válidos

Existem dusa formas para saber qual o o intervalo e valores das sub-redes

[1] Como são 2 bits de sub-rede (4 sub redes) ele podem ter os seguinte valores

binário decimal
00 0
01 64
10 128
11 196

Ou seja 4 sub redes com intervalo de 64 bits no terceiro octeto

[2] Outra forma de chegar ao mesmo resultado
e dividindo os 16384 (que "estariam" no ultimo octeto mas como não é possivel dividimos por 256 e colocamos no octeto anterior ate ficar no intervalo ate 255). Voltando ao calculo 16384/256 vai dar 64 (no terceiro octeto, ou seja, as sub-redes vão ser de intervalos de 64 em 64 enderecos IP

Duas regras importantes sobre sub-redes:

Calculando a rede que determinado IP pertence.

Este calculo é feito pelo roteador para determinar a rede ou sub-rede para a qual um pacote deve ser enviado.

and logico
Simbolo do AND Lógico

tabela verdade

 

exemplo 1

200.110.10.20 com mascara 255.255.255.0

11001000 1101110 00001010 00010100
11111111 1111111 11111111 00000000
------------------------------------------- aplicando o AND lógico
11001000 1101110 00001010 00000000 ou 200.110.10.0

exemplo 2

200.20.30.11 com mascara 255.255.255.240 (mascara quebrada)

11001000 00010100 0010100 01101110 <- 200.20.30.110
11111111 11111111 1111111 11110000 <- 255.255.255.240
------------------------------------------- aplicando o AND lógico
11001000 00010100 0010100 01100000 ou 200.20.30.96

logo pertence a sub-rede 200.20.30.96

Tabela de Cálculos prontos:

Veja tambem:

IP Addressing and Subnetting Workbook 1.1