Como Fazer Cálculos de sub-rede IPv4 em Tempo Recorde (GARANTIDO!)

2 Flares Twitter 0 Facebook 0 Google+ 0 LinkedIn 2 2 Flares ×

Para subdividir um determinado bloco de endereços, precisamos realizar cálculos de sub-rede. É muito importante o entendimento dos cálculos, pois eles são cobrados em provas de certificação. Podemos realizar cálculos de sub-rede, utilizando calculadoras disponíveis na internet. Porém, na hora da prova, será necessário fazer todos os cálculos no rascunho.  Além disso, teremos pouco tempo para realizar os cálculos. Esse artigo ensina como criar sub-redes gastando o menor tempo possível.

A estrutura de endereços IPv4

O IPv4 é representado na notação de ponto decimal (por exemplo, 192.168.23.245 ), somente para benefício humano, pois os computadores entendem o endereço na sua notação binária nativa com 32 bits de tamanho, compostos de 4 octetos de 8 bits cada, separados por um ponto:

estrutura-ipv4

Os endereços IPv4 são divididos em duas partes: o ID de rede e o ID de host. A primeira parte do endereço é o ID de rede que identifica uma determinada rede. A última parte é o ID de host, que identifica um host dentro da rede definida pelo ID de rede.

ID de rede + ID de host = 32 bits

Somente através da máscara de sub-rede que é possível definir o tamanho do ID de rede e ID de host. Apenas examinando um endereço IPv4 como 192.168.23.245, não sabemos quais dos 32 bits são utilizados em cada ID, pois eles variam de acordo com a máscara.

Máscaras de sub-rede

Utilizamos máscara de sub-rede para determinar qual parte dos 32 bits de um endereço IPv4  deve ser considerada seu ID de rede. Quando escrevemos 192.168.1.0/24, o /24 representa a máscara de sub-rede, representando os 24 bits dos 32 bits como ID de rede.  A notação de barra (/24), também conhecida como notação Classless Inter Domain Routing (CIDR) ou notação prefixada de rede é um modo comum de referir-se a máscaras de sub-rede. No entanto, as máscaras de sub-rede são representadas na notação de ponto decimal de 32 bits, como por exemplo, na notação de ponto decimal da máscara /24, que é representada como 255.255.255.0.

Para converter uma máscara de sub-rede de notação de barra para seu ponto decimal equivalente, primeiro precisamos converter a notação de barra em notação binária. Por exemplo, para converter em binário um /24, basta utilizar o número 24 e representá-lo como um número equivalente de 1s na notação binária, com um espaço depois de cada 8 bits (octeto) e adicionar uma sequência de zeros até completar 32 bits na notação binária. Veja na representação a seguir:

11111111 11111111 11111111 00000000

Cada sequência de 8 bits formados de 11111111 é equivalente binário do 255 decimal e o 00000000 é o equivalente binário de 0 decimal.

mascara-binario

As máscaras de sub-rede: /8 (255.0.0.0), /16 (255.255.0.0) e /24 (255.255.255.0) têm octetos cujos valores são representados como 255 ou 0. Entretanto, sempre que o ID de rede não for divisível por 8, você também encontrará máscaras que incluem um octeto de valores intermediários como 248 ou 252. Um exemplo seria uma máscara /27:

mascara-binario2

Nesse exemplo, o /27 utiliza os três primeiros bits do último octeto do ID de rede. Com isso, teremos 11100000 como o equivalente binário do 224 decimal. Por essa razão, o /27 é equivalente a 255.255.255.224.

A tabela abaixo compara as notações de barra, binária e de ponto decimal de todas as máscaras de sub-rede de /8 a /30:

Fonte: Kit de Treinamento MCTS, Exame 70-642, Configuração do Windows Server 2008, p.48

Fonte: Kit de Treinamento Exame MCTS 70-642, Configuração do Windows Server 2008, p.48

Convertendo entre as notações binária e decimal

É importante saber como fazer a conversão, pois na prova não teremos acesso a uma calculadora científica. Além disso, esse conhecimento ajudará a entender melhor a lógica do endereçamento IPv4.

Uma forma fácil de converter é entendendo a tabela abaixo e a posição de cada bit:

tabela-bits

Verifique que esses números representam apenas os valores quando as posições de bit contêm um “1”. Caso contrário, quando um octeto contém um “0”, em qualquer posição de bit, o valor é nulo. Vejamos melhor no exemplo a seguir:

String binária de um octeto: 10000011

01

Utilize sempre a tabela como referência, observe o número “1” na tabela e faça a soma simples do valor equivalente decimal de cada posição de bit, conforme mostrado a seguir:

128 + 2 + 1 = 131

Na conversão decimal em binária, adicionamos o número “1” nas posições de bit do octeto da esquerda para a direita, até alcançar o valor decimal alvo. Caso o valor da próxima posição exceda, coloque um 0 e avance para a posição de bit seguinte. Por exemplo, suponha que você queira converter o valor 209 para a forma binária:

O número 128 é menor que 209? Sim! Adicione o número 1 na posição:

02

A soma 128+64 é menor que 209? Sim! Adicione o número 1 na posição:

03

A soma 128+64+34 é menor que 209? Não, pois o subtotal seria 224. Adicione o número 0 na posição:

04

A soma 128+64+16 é menor que 209? Sim! Adicione o número 1 na posição:

05

Observe que, para alcançar o valor alvo de 209, só precisamos adicionar um valor de 1. Assim, colocaremos 1 na oitava posição de bit, completando a conversão do octeto:

06

128+64+16+1=209

O resultado do octeto 209 na notação binária é 11010001.

Criando sub-redes

Criar sub-redes é a pratica para subdividir logicamente um espaço de endereços, alterando a máscara de sub-rede de uma rede, dividindo as redes em vários domínios de difusão (broadcast), evitando futuras lentidões com o aumento da rede. A divisão da rede também ajuda em um melhor aproveitamento do bloco de endereços disponível.

Criando sub-redes com o mesmo tamanho

Sem dúvidas, esse é o meio mais fácil de criar sub-redes. Nesse método, pegamos um bloco de endereços e criamos várias sub-redes do mesmo tamanho, ou seja, com a mesma máscara. Podemos determinar o número de sub-redes que vamos criar, utilizando uma fórmula bem simples:

2(n2-n1)

  • N2 representa o comprimento (em bits) do seu novo ID de rede usado internamente na organização.
  • N1 é o comprimento do ID original de rede atribuído externamente para indicar o bloco de endereços inteiro.

Vamos entender melhor com o seguinte exemplo: Você tem um bloco 192.168.0.1/24. Com isso, o 24 será o valor de N1, ou seja, do bloco original de rede atribuído. Uma máscara /24 tem 256 endereços. Pretendemos subdividir a rede em sub-redes /27, ou seja, criar várias redes /27 através do bloco (192.168.0.1/24), logo N2 tem o valor 27. Agora já podemos verificar quantas sub-redes /27 poderão ser feitas com o bloco /24, com o seguinte cálculo:

2(27-24) = 23 = 8 sub-redes

Com a mesma fórmula podemos descobrir quantos endereços teremos em cada uma dessas 8 subredes /27. Basta subtrair 32 com o número 27 e calcular da seguinte forma:

2(32-27) = 25 = 32 endereços

Sempre que realizar essa fórmula, lembre-se que o primeiro endereço é reservado para o endereço de rede, e o último para o endereço de difusão ou broadcast. Com isso, um /27 tem 30 endereços disponíveis. A rede também usará um gateway padrão, que normalmente é o primeiro ou o último endereço disponível. Veremos abaixo como ficará a rede /27:

ipv4-subrede-192

Criando sub-redes de tamanho variável (VLSMs)

Com o objetivo de aproveitar o espaço de endereços de rede de forma mais eficiente, podemos configurar múltiplas máscaras de sub-rede de tamanhos diferentes. Por exemplo, sua organização tem um bloco /24 (192.168.0.0/24), que corresponde a 254 endereços disponíveis. Você precisa de uma sub-rede para acomodar 100 computadores para o setor comercial e uma segunda sub-rede para acomodar 50 computadores do setor financeiro.

Uma única máscara padrão não vai conseguir acomodar sub-redes ou hosts, atendendo todas as necessidades de rede.  Além disso, subdividindo a rede /24 em várias sub-redes do mesmo tamanho teremos endereços disponíveis sem utilização, não aproveitando de forma eficiente o bloco disponível. Caso o exercício na prova indique várias redes de tamanhos diferentes, certamente é sobre VLSM.  Siga os seguintes passos para resolver a questão:

100 computadores para o setor comercial

1. Primeiro escreva a rede e sua respectiva máscara:

Endereço de Rede: 192.168.0.0

Máscara em Decimal: 255.255.255.0 (/24)

Máscara em Binário: 11111111.11111111.11111111.00000000

2. É necessário criar uma sub-rede para acomodar 100 computadores. Utilize a seguinte fórmula:

2bits-2 ≥ 100

3. Verifique quantos bits são necessários para acomodar 100 computadores, lembrando que o passo seguinte será subtrair por 2, eliminando o endereço de rede e broadcast:

27= 128

27= 128 -2 = 126

Observe que o valor total deve ser maior ou igual a quantidade computadores que precisamos.

4. Como tínhamos 8 bits para hosts e precisamos de 7 para acomodar 100 computadores, sobraram 1 bit que utilizamos no novo prefixo de sub-rede:

Máscara em Binário: 11111111.11111111.11111111.10000000

Máscara em Decimal: 255.255.255.128 (/25)

Endereço de Rede: 192.168.0.0/25

sub-rede-100

50 computadores do setor financeiro

1. Com a primeira sub-rede criada (192.168.0.0/25), será necessário criar a segunda sub-rede considerando a primeira:

Endereço de Rede: 192.168.0.0

Máscara em Decimal: 255.255.255.128 (/25)

Máscara em Binário: 11111111.11111111.11111111.10000000

2. É necessário criar uma sub-rede para acomodar 50 computadores. Utilize a seguinte fórmula:

2bits-2 ≥ 100

3. Verifique quantos bits são necessários para acomodar 50 computadores, lembrando que o passo seguinte será subtrair por 2, eliminando o endereço de rede e broadcast:

26= 64

26= 64 -2 = 62

Observe que o valor total deve ser maior ou igual a quantidade computadores que precisamos.

4. Como tínhamos 7 bits para hosts e precisamos de 6 para acomodar 50 computadores, sobraram 1 bit que utilizamos no novo prefixo de sub-rede:

Máscara em Binário: 11111111.11111111.11111111.11000000

Máscara em Decimal: 255.255.255.192 (/26)

Endereço de Rede: 192.168.0.128/26

sub-rede-50

Viu como é fácil? Estude bem o artigo e faça uma boa prova. Veremos outros exemplos mais complexos sobre VLSM em outro artigo do Webpovoa. Caso tenha alguma dúvida, comente abaixo.

Referência

NORTHRUP, Tony; MACKIN, J.C. Configuração do Windows Server 2008 Infraestrutura de rede. Bookman, Porto Alegre, 2009.

Thiago Póvoa

Thiago C. Póvoa

Formado em Gestão da Tecnologia da Informação. Busca, através do blog, colaborar com profissionais da área, compartilhando conhecimento. Iniciou sua carreira em um provedor de internet, especialista em serviços de telecomunicações, onde obteve bastante experiência em Administração de Redes.

  • PP CarvalhoF

    Fala Póvoa! Uma dúvida que eu tenho em relação ao VLSM é com relação aos links ponto-a-ponto. Eu dou preferência a deixar o “final” do range para “distribuir” os /30 (e com vontade de testar /31) e a dúvida é: em relação à tabela de roteamento isso é uma boa prática? Num /24 dividido em 3 /26 + 3 /30 (.0/26, .64/26, .128/26, .244/30, .248/30 e .252/30) cada “rota” uma dupla de redes que não daria pra sumarizar. Qual seria a melhor solução?

    Gostei bastante do post. Show de bola!

    Ps.: na frase “A soma 128+64+34 é menor que 209?” tem um pequeno erro de digitação.

    • Thiago Póvoa

      Fala Carvalho, Tudo bem? Inicialmente agradeço pela sua participação e pela observação no erro de digitação. Na prática, o importante é não deixar nenhum endereço sobrando e economizar o máximo possível. Com isso, usando o final ou o inicio do range de endereços não influencia na tabela de roteamento. Sempre realizando os cálculos corretamente e evitando erros, separando bem o endereço de rede e broadcast, não haverá problema de roteamento. Recomendo que você utilize calculadoras de sub-rede e deixe os cálculos manuais somente para provas de certificação, sempre é bom evitar erros 🙂 .

  • ana

    bom dia me tira uma duvida por gentileza estou com um exercicio para fazer mais tenho uma dificuldade pois pelo que eu entendi meu resultado esta errado! meu exercicio é o seguinte eu tenho que dividir redes meu IP é 192.168.0.0/20 em 16, eu fiz a conta e o resultado é 4.094 dividido por 16 que da 255, mais pra montar a tabela de IP/CIDR/IPI/IPF/BROADCAST/MASCARA, eu nao poderia estar montando com esse valor pois ele é o valor final de ip. teria como me ajudar a entender?