Como calcular máscaras de sub-rede

(Last Updated On: 8 de dezembro de 2017)

Fui contratado por uma empresa para arrumar a rede em um novo prédio. Neste prédio funcionarão quatro departamentos: Financeiro, Comercial, RH e Jurídico.Cada departamento tem, em média, 50 hosts.

O departamento comercial envia muitas propostas técnicas que são arquivos bem pesados, por isso a rede de todos os departamentos está ficando lenta e instável.

Além disso, como todos os departamentos estão na mesma rede, ou seja, caso algum departamento tenha um problema, todos os departamentos serão atingidos.

Bem, para resolver isso, nós podemos configurar VLans para segmentar nossa rede. Dessa forma podemos ter quatro redes lógicas, uma para cada departamento, com endereços IPs diferentes.

Então, vamos atribuir os endereços de cada departamento. Nós podemos utilizar qualquer IP privado para isso, como são poucos hosts. Vou utilizar os endereços de classe C (192.168.x.x).

Podemos atribuir por exemplo uma departamento com o endereço de rede 192.168.0.0, outro com 192.168.1.0 e assim por diante.

Essa é uma opção totalmente válida, porém se pararmos para analisar, com esse tipo de configuração, vamos estar desperdiçando endereços IPs.

Mas como podemos diminuir esse número de endereços IPs na rede para evitar esse desperdício?

Nós podemos dividir nossa rede em parte menores, cada uma representando um departamento, ou seja, dividimos nossa rede em sub-redes.

O que é sub-rede

Toda endereço IP tem uma máscara correspondente. Essa máscara que identifica qual parte do endereço pertence a rede e qual parte ao host.

Por exemplo, o endereço 192.168.0.50 com uma máscara 255.255.255.0, identifica como parte da rede o endereço 192.168.0 e o host como 50:

192 168 0 50
255 255 255 0
Rede Rede Rede Host
Para dividir essa rede, nós podemos “dividir” essa máscara. Para isso, podemos usar valores diferentes entre 0 ou 255. Quando fazemos isso, damos o nome de sub-rede.

Mas quais valores podemos colocar?

Calculando as máscaras de sub-rede

Cada três dígitos na máscara, correspondem a uma parte do endereço IP do host. Essas partes são formadas por oito bits, por isso recebem o nome de octetos.

Cada bit no octeto, possui um valor em decimal correspondente a sua posição.

Por serem bits, só possuem dois estados, ou 0, representando o host, ou 1, representando a rede.

No caso, essa máscara (255.255.255.0), pode ser representada em binário como: 11111111.11111111.11111111.0000000.

255 255 255 0
11111111 11111111 11111111 00000000

Caso todos os oito bits da máscara de sub-rede possuir valor 1, o valor em decimal 255, caso todos os bits forem 0, possui o valor 0 em decimal.

Mas por que quando todos os bits são 1, o valor em decimal fica é 255?

Isso é por causa da conversão de binário para decimal.

Criando sub-redes

Vimos que os bits 1 na máscara específica a porção da rede e que os bits 0 especificam o host no endereço IP. Para criar nossas redes, podemos pegar alguns bits 0 e transformá-los em 1.

Por exemplo, se pegarmos o primeiro bit 0 na máscara e transformá-lo em bit 1, teríamos a seguinte máscara em binário: 11111111.11111111.11111111.1000000

Mas como fica o valor dela em decimal?

Sabemos que os três primeiros octetos têm o valor em decimal de 255. Já para saber o valor do último, basta realizar a conversão:

2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
1 0 0 0 0 0 0 0

Ou seja, temos: 1 x 2^7 + 0 x 2^6 + 0 x 2^5 + 0 x 2^4 + 0 x 2^3 + 0 x 2^2 + 0 x 2^1 + 0 x 2^0. Que nos deixa com 128.

Logo, a máscara dessa rede é: 255.255.255.128.

Mas quantas redes temos com essa máscara?

Para saber quantas redes temos com essa nova máscara basta elevar o número 2, que são o número de bits possíveis,** **ao número de bits emprestados da porção do host.

Neste caso pegamos um bit da porção do host, portanto temos **2^1 **redes. Ou seja, temos duas redes.

Mas quantos hosts cada rede comporta?

Os hosts são definidos como bits 0 na máscara de sub-rede, certo? Então para saber quantos hosts nossa rede comporta basta elevar 2 ao número de bits 0 na máscara.

Neste caso temos sete bits 0 (10000000), logo, 2^7, que nos dá 128.

Então cada uma de nossas redes comportam 128 hosts?

Dentre os endereços IPs, dois precisam ser reservados. Um para especificar a rede e outro para especificar o domínio de broadcast. Então, na verdade temos 128 – 2 hosts, logo temos 126 hosts em cada sub-rede.

Mas quais são esses endereços reservados?

O endereço que especifica a rede é sempre o primeiro endereço IP, já o de broadcast é o último endereço IP da rede.

Em uma rede classe C com máscara padrão, o endereço da rede é 192.168.0.0 e o de broadcast é 192.168.0.255. Só que no nosso caso são duas sub-redes, cada uma com um endereço de rede e de broadcast.

A primeira rede possui o endereço de rede 192.168.0.0, já o endereço de broadcast nós descobrimos somando 1 ao número de hosts, que neste caso são 126, mais o endereço de rede. Ou seja, temos **1 + 126 + 0. **Dessa forma temos que o endereço de broadcast da primeira sub-rede é 192.168.0.127.

Já o endereço de rede da segunda sub-rede é o endereço de broadcast da primeira sub-rede mais 1. Ou seja, temos como endereço de rede da segunda sub-rede 192.168.0.128. O endereço de broadcast conseguimos obter da mesma forma.

Somamos 1 ao número de hosts, mais o endereço de rede. Portanto, 1 + 126 + 128, isso nos dá o endereço de broadcast 192.168.0.255.

Bom, calculamos as sub-redes, mas com essa máscara temos apenas duas sub-redes. Porém, temos quatro departamentos e queremos colocar cada um em uma sub-rede. Como podemos fazer isso?

Se nós pegamos um bit a mais na máscara de sub-rede como no exemplo, nós temos duas sub-redes. Então, se nós pegarmos dois bits, teremos dois elevado a dois, que é número de bits que pegamos na porção do host, isso nos deixa com quatro que é o número de sub-redes que queremos.

Ou seja, nossa máscara ficará em binário: 11111111.11111111.11111111.1100000. Realizando a conversão:

2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
1 1 0 0 0 0 0 0

Logo: 1 x 2^7 + 1 x 2^6 + 0 x 2^5 + 0 x 2^4 + 0 x 2^3 + 0 x 2^2 + 0 x 2^1 + 0 x 2^0. Que nos deixa com 192.

Ou seja nossa máscara de sub-rede será 255.255.255.192. Mas quantos hosts cada sub-rede comportará?

Para saber isso, basta elevar 2 ao número de bits 0 na máscara, menos os dois bits reservados de cada rede, ou seja, como temos seis bits zero nossa conta fica 2^6 – 2, isso nos deixa com 62 hosts para cada rede.

Se quisermos saber qual é o endereço de cada sub rede, basta realizar os mesmos passos de antes.

O endereço de rede primeira sub-rede será 192.168.0.0, já o seu endereço de broadcast será um mais o número de hosts mais o endereço de rede. Isso nos deixa com ** 1 + 62 + 0**. Logo, o endereço de broadcast da nossa primeira sub rede será 192.168.0.63.

Dessa forma, após calcular cada sub-rede teremos o seguinte resultado:

Endereço de rede Endereço de broadcast
192.168.0.0 192.168.0.63
192.168.0.64 192.168.0.127
192.168.0.128 192.168.0.191
192.168.0.192 192.168.0.255

Todos esses endereços utilizando a máscara 255.255.255.192.

Dessa forma conseguimos alocar cada departamento em uma sub-rede, o que otimiza a rede e isola os problemas.

Para saber mais

Como cada sub-rede é uma rede distinta, elas precisam de um roteador para se comunicarem umas com as outras.

Neste exemplo, utilizamos um IP da classe C para criar as sub-redes, porém conseguimos realizar essa configuração com todas as classes de IPs disponíveis.

Nós podemos utilizar outra notação quando falamos de máscaras de rede. Ao invés de utilizar a máscara em seu formato decimal, podemos dizer apenas a quantidade de bits um contidos nela.

Por exemplo, a máscara padrão da classe C, 255.255.255.0, em formato binário fica 11111111.11111111.11111111.0000000. Ou seja, ela tem 24 bits 1. Então caso desejemos falar que o endereço IP 192.168.0.35 utiliza a máscara padrão, podemos utilizar a notação /24. Ficando assim 192.168.0.35 /24.

O nome dessa notação é CIDR.

Dividir e calcular

Atribuir endereços IPs a redes é o um dos trabalhos de um administrador de redes. Saber qual endereço atribuir e qual máscara utilizar faz parte desse trabalho.

Quando estamos instalando uma rede, é bacana separarmos os departamentos para isolar possíveis problemas, melhorar a performance da rede, além da segurança.

Uma forma de fazer isso é criando VLans, porém mesmo com essa configuração, algumas redes podem ter problemas com o broadcast. Então uma forma de resolver isso é dividindo a rede em parte menores, criando sub-redes.

A Alura tem uma carreira muito interessante em infraestrutura de redes. Nela, são apresentados os conceitos de sub-rede e diversas outras situações bacanas de utilizá-las.

Compartilhe conosco o que achou desse tipo de configuração… 🙂

FIQUE POR DENTRO

Próximo ArtigoPsicologia das cores: veja como isso é essencial para o sucesso do designer