Caríssimos seguidores, o presente tutorial tem definido como principal meta, a transmissão de conhecimento sobre o VLSM. No final do tutorial espero que a questão: “-Como dividir uma sub-rede sem desperdiçar um grande número de IP’s“, seja clara.
Introdução

VLSM (Variable Lenght Subnet Mask) é um método de cálculo de sub-redes mais eficiente que o tradicional, pois é possível alocar somente os bits necessários da sub-rede utilizando máscaras de tamanho variáveis. 

No cálculo de sub-redes tradicional é utilizada uma máscara de sub-rede única para todos os blocos, o que não é muito eficiente quando se tem uma topologia de rede com uma quantidade variável de hosts por sub-rede.

Três vantagens da utilização de VLSMs: 

1. Menos desperdício de endereços IPs. É possível fazer uso mais eficiente da divisão de sub-redes alocando mascaras de sub-redes diferentes a cada bloco; 

2. Maior flexibilidade na distribuição de endereços. É possível redimensionar sub-redes dentro de uma sub-rede calculada. Quando houver uma alteração na topologia da rede não é necessário alterar o endereçamento de toda a rede; 

3. Possibilidade de sumarização de rotas (agregação de rotas): É possível sumarizar diversas rotas em um único endereço de rede com máscara específica, diminuindo assim o tamanho das tabelas de roteamento.

Cenário: Possuímos um IP de rede e desejamos efectuar a melhor divisão possível consoante o número de hosts em cada sub-rede.




Sem o uso de VLSM, a primeira e única pergunta que o projectista deverá fazer é a seguinte: 
-Qual é o número máximo de hosts em cada sub-rede?” – A que tiver o número maior de hosts ganha. 
Observando o esquema de rede acima, conseguimos extrair a seguinte informação: 

1. IP de rede: 172.16.0.0/16 

2. Existem 6 Sub-redes. (As 3 redes entre routers e as restantes identificadas pela sua cor.) 

3. Primeira sub-rede (126 hosts), segunda sub-rede (62 hosts) e terceira sub-rede (30 hosts).


Apenas temos de nos preocupar com estas três questões. Portanto temos um IP de rede com máscara de 16 bits. Isto quer dizer que, 16 bits pertencem à rede e os restantes estão disponíveis para ser usados em hosts
Os cálculos são fáceis de efectuar.

11111111 . 11111111 . 11111111 . 11111111 

A negrito estão assinalados os 16 bits pertencentes à rede, os restantes são para hosts (32-16=16). Temos 16 bits para hosts, é metade. 
Não usando o VLSM apenas temos de saber o máximo de hosts de uma rede (a rede maior), verificar quantos bits necessitamos para obter esse número de hosts e dividir “estaticamente” a rede. 

-Qual a rede maior? 127 hosts

2^7=128 (necessitamos de 7 bits, o expoente de base 2.) 
Se necessitamos de 7 bits para a maior rede temos então de decrementar estes bits na máscara inicial. 

172.16.0.0/16 

32-7=25 -> 172.16.0.0/25 

Na topologia de rede acima foi realizado um cálculo de sub-rede sem uso de VLSM, o endereço de rede 172.16.0.0/16 foi dividido em 05 (cinco) sub-redes com 126 hosts cada. Nesta divisão utilizou-se a máscara /25 (255.255.255.128) em todos os blocos. 
Iniciando com a Sub-Rede 0.0, 0.128 até 2.0 conforme tabela abaixo:
Nesta distribuição todos os blocos têm 126 hosts, pois a maior sub-rede (Azul) precisa de 126 hosts. Se o cálculo fosse realizado utilizando os 62 hosts (necessários para a sub-rede Verde) não iríamos conseguir atender a sub-rede Azul pois faltaria endereços de hosts.
Vejamos quantos endereços foram desperdiçados utilizando o cálculo de sub-rede acima sem o uso de VLSM:

Sub-rede Amarela 

Endereços IPs necessários: 30 
Endereços IPs alocados: 126 
Endereços IPs desperdiçados: 126-30 = 96 
Sub-rede Verde 
Endereços IPs necessários: 62 
Endereços IPs alocados: 126 
Endereços IPs desperdiçados: 126-62 = 64 

Sub-rede Azul 

Endereços IPs necessários: 126 
Endereços IPs alocados: 126
Endereços IPs desperdiçados: 126-126 =0 (Aqui não houve desperdício) 
Links Ponto-a-Ponto (total de 03) 
Endereços IPs necessários: 02 
Endereços IPs alocados: 126 
Endereços IPs desperdiçados: (126-2)*3=372 
Total de endereços desperdiçados: 96+64+0+372= 532 
Houve um desperdício total de 532 endereços IPs. Nos links Ponto-a-Ponto como a necessidade é somente 02 endereços o desperdício foi maior: 372 endereços, onde o ideal era utilizar uma sub-rede /30 em vez de /25.
Vamos então ver como ficaria a distribuição de endereços da rede acima utilizando VLSM
No caso de VLSM, é aconselhável fazer o calculo das redes maiores para as menores, para não haver subscrição de sub-redes. 
Então vamos começar pela maior sub-rede que é a Azul com 126, depois a Verde com 62, Amarela com 30 a por fim as sub-redes com links Ponto-a-Ponto que precisam de apenas 02 IPs cada. 
A primeira sub-rede sempre é a sub-rede “0”, como neste caso temos uma rede classe “B” a primeira sub-rede então é “0.0” (dois octetos calculados). Como vamos calcular sub-redes da maior sub-redes para a menor, então a sub-rede Azul será a nossa primeira sub-rede. 
Vamos tentar realizar o cálculo respondendo algumas perguntas: 

Sub-rede Azul: “0.0”

Quantos endereços IPs são necessários: 126
Qual é a mascara para alocar 126 hosts: 255.255.255.128 ou /25
Diminua o 128 de 256 para obter o intervalo da sub-rede: 256-128=128
Some o resultado com o valor do octeto correspondente: 0.0+ 0.128= 0.128 (endereço da próxima sub-rede) 

Sub-rede Verde: “0.128” 

Quantos endereços IPs são necessários: 62
Qual é a mascara necessária para alocar 62 hosts: 255.255.255.192 ou /26
Diminua o 192 de 256 para obter o intervalo da sub-rede: 256-192=64
Some o resultado com o valor do octeto correspondente: 0.128 + 0.64= 0.192 (endereço da próxima sub-rede) 

Sub-rede Amarela: “0.192” 

Quantos endereços IPs são necessários: 30
Qual é a mascara necessária para alocar 30 hosts: 255.255.255.224 ou /27
Diminua o 224 de 256 para obter o intervalo da sub-rede: 256-224=32
Some o resultado com o valor do octeto correspondente: 0.192 + 0.32= 0.224 (endereço da próxima sub-rede) 

Sub-rede Ponto-a-Ponto 1: “0.224” 

Quantos endereços IPs são necessários: 2
Qual é a mascara necessária para alocar 30 hosts: 255.255.255.252 ou /30
Diminua o 252 de 256 para obter o intervalo da sub-rede: 256-252=4
Some o resultado com o valor do octeto correspondente: 0.224 + 0.4= 0.228 (endereço da próxima sub-rede) 

Sub-rede Ponto-a-Ponto 2: “0.228” 

Quantos endereços IPs são necessários: 2
Qual é a mascara necessária para alocar 30 hosts: 255.255.255.252 ou /30
Diminua o 252 de 256 para obter o intervalo da sub-rede: 256-252=4
Some o resultado com o valor do octeto correspondente: 0.228 + 0.4= 0.232 (endereço da próxima sub-rede) 

Sub-rede Ponto-a-Ponto 3: “0.232” 

Quantos endereços IPs são necessários: 2
Qual é a mascara necessária para alocar 30 hosts: 255.255.255.252 ou /30
Diminua o 252 de 256 para obter o intervalo da sub-rede: 256-252=4
Some o resultado com o valor do octeto correspondente: 0.232 + 0.4= 0.236 (endereço da próxima sub-rede) 
Agora vamos colocar estes valores na tabela de cálculo de sub-redes para entender melhor como ficou esta divisão:

Neste caso não houve desperdício de Ips. Olhando a topologia.

Espero que tenha sido claro na explicação do VLSM.
Alguma dúvida, comente.
Boa Continuação!

————
O porquê de tutoriais em português?
Na sua maior parte, a internet está cansada de partilhar tutoriais em inglês.

Pedro Tavares

Pedro Tavares is a professional in the field of information security working as an Ethical Hacker/Pentester, Malware Researcher and also a Security Evangelist. He is also a founding member at CSIRT.UBI and Editor-in-Chief of the security computer blog seguranca-informatica.pt. In recent years he has invested in the field of information security, exploring and analyzing a wide range of topics, such as pentesting (Kali Linux), malware, exploitation, hacking, IoT and security in Active Directory networks.  He is also Freelance Writer (Infosec. Resources Institute and Cyber Defense Magazine) and developer of the 0xSI_f33d – a feed that compiles phishing and malware campaigns targeting Portuguese citizens. Read more here.