Como configurar Redes Virtuais (VNET) no Microsoft Azure (Portuguese version)
Marco Antonio Pereira, MBA
Data Architect @ Tekever | Azure Certified and Specialist | AWS Certified | Google Cloud Platform (GCP) Certified | Databricks Certified | Scrum Certified
Introdu??o às Redes Virtuais no Azure
Redes em provedores de Cloud sempre foi um tópico desafiador porque de acordo com o seu caso de uso, você precisará saber a quantidade exata ou aproximada em rela??o a quantidade de endere?os IP que você precisará.
?
Autoscaling ao utilizar VMs é um dos inúmeros benefícios de se trabalhar em um provedor de Cloud que venho destacar, mas para isso, será necessário trabalhar com uma faixa de IPs disponível na subnet. Durante a cria??o da sua rede de computadores em Cloud você precisa definir qual o “Range” máximo de IPs que gostaria de ter no seu ambiente de redes. Eventualmente você pode precisar de inúmeros IP’s, por exemplo, mais do que 1000 endere?os de IP em um ambiente de produ??o ou, poderá simplesmente precisar de uma quantidade pequena de IPs, como 10 ou 20 IPs, principalmente em ambientes de desenvolvimento.
?
O que define a quantidade de endere?os IP que iremos trabalhar é o Tamanho da Máscara de Rede (o valor inteiro a seguir a barra) no CIDR (Classless Inter-Domain Routing) da VNET (Virtual Network). A VNET em Azure é equivalente ao VPC da AWS e do GCP. Com o VNET conseguimos criar uma rede privada, segura e gerenciada.
?
Conceito de CIDR e Ranges de IP
Um endere?o IPv4 (vers?o 4) é composto por 32 bits ou 4 octetos e podemos representar um IP da seguinte forma (acima o endere?o IP sendo representado de forma binária e abaixo a posi??o de cada bit):
??
Se configurarmos um CIDR de um VNET como, por exemplo 10.0.0.0/16, estamos dizendo que os primeiros 16 bits do endere?o IP estar?o reservados para definir a rede e os demais bits estar?o disponíveis para os HOSTs (VMs), ou seja, cada Host será uma nova instancia de Máquina Virtual que poderá utilizar um IP naquela rede.
?
Ent?o o decimal de 10.0.0.0/16 equivale ao binário:
Onde, a sele??o em amarelo ficará fixo para a configura??o da rede.
?
Definindo o Range de IPs e Cálculo de IPs Disponíveis na VNET
A parte interessante come?a agora!
“/16” no CIDR da VNET equivale a quantidade de endere?os IP disponíveis para aquela VNET. Como estamos falando sobre “reserva de bits” de um endere?o IP, para descobrir quantos endere?os IP estamos lidando temos que fazer o exponente de 2^16 onde 16 se refere a “X.X.X.X/16”.?
Ent?o 2^16 equivale a 65536, ou seja, 65.536 IPs disponíveis.
Quanto maior for o número após a barra “/”, menos endere?os IP você terá disponível para o VNET. Quanto menor for o número após a barra “/”, mais endere?os IP você terá disponível.
A propósito, este número após a barra é denominado como “Prefixo de Rede” ou “Tamanho da Máscara de Rede” (estamos apenas sendo mais didáticos para poder entender melhor o cálculo).
Para encontrar o Range de IPs disponíveis temos que subtrair a quantidade total de bits que um endere?o IP tem (32 bits) pela quantidade após a barra “/”.
?
Alguns exemplos práticos:
VNET CIDR = 10.0.0.0/15
?
VNET CIDR = 10.0.0.0/20
?
VNET CIDR = 10.0.0.0/28
?
A próxima etapa é determinar a quantidade de subnets que ir?o consumir o total de IPs disponíveis na VNET. Além disso, precisamos entender qual intervalo de IPs iremos utilizar entre as subnets de forma que uma subnet n?o sobreponha a outra.
?
Configura??o de Subnets em VNET e Exemplos Práticos de Subnetting
Vamos considerar que, para a VNET com CIDR = 10.0.0.0/16 gostaríamos de utilizar 4 subnets. Como 10.0.0.0/16 equivale a 65.536 IPs. Podemos utilizar o seguinte cálculo:
?
Logo, cada subnet deverá ter o seguinte CIDR:
Subnet 1 = 10.0.0.0/18
Subnet 2 = 10.0.0.0/18
Subnet 3 = 10.0.0.0/18
Subnet 4 = 10.0.0.0/18
?
Por que “/18”?
- Porque ao calcularmos o logaritmo de 16384 temos 14 como resultado!
?
Como estamos sempre falando sobre números binários (base 2) para encontrar a quantidade de IPs disponíveis em um CIDR de um VNET utilizando exponencial 2 ^ (número após a barra do CIDR da VNET), para fazer o cálculo reverso, utilizamos logaritmo na base 2.
?
Como cada uma das 4 subnets deverá ter endere?os de 16384 IPs e o logaritmo deste número é igual a 14, precisamos fazer o mesmo cálculo de subtra??o que fizemos no CIDR do VNET também para as subnets, ou seja:
Ent?o cada subnet dentro do VNET 10.0.0.0/16 deve ser:
Subnet 1 = 10.0.0.0/18
Subnet 2 = 10.0.0.0/18
Subnet 3 = 10.0.0.0/18
Subnet 4 = 10.0.0.0/18
?
==> No entanto ainda temos mais um pequeno ajuste a ser feito! <==
Qual seria?
- Os intervalos de IPs entre cada subnet! – Se n?o configurarmos cada intervalo de 16384 IPs entre as subnets, uma subnet irá sobrepor a outra, ocasionando em erros ainda em tempo de cria??o da subnet a partir da segunda subnet.
?
Como ajustar isso?
- Bom, precisamos fazer mais um último cálculo para corrigir o intervalo de IPs entre as subnets a partir do range de IPs da primeira subnet.
O cálculo é o seguinte, “255” corresponde à máxima contagem de hosts em uma rede.
Como a cada subnet terá uma quantidade fixa e igual de 16384 IPs e o CIDR da primeira subnet é 10.0.0.0/18. 16384 dividido por 255 = 64,250980392156863.
?
Cálculo:
Precisamos converter o resultado da divis?o para Inteiro:
?
Temos ent?o o valor “64”, logo, a última combina??o de IPs da subnet 1 será 10.0.63.255 (contando com o Broadcast):
?
Ent?o o próximo valor será o início da subnet 2, ou seja 10.0.64.0, resultando no seguinte intervalo:
...
?
Como fazemos para encontrar o próximo intervalo para as subnets 3 e 4 respectivamente?
- Como o primeiro intervalo é 64, basta somar com o primeiro resultado encontrado a partir da primeira subnet, ou seja:
?
Considera??es Finais e Dicas de Otimiza??o
Ent?o concluímos que para o VNET 10.0.0.0/16 (65.536 IPs disponíveis) temos 4 subnets com os intervalos:
Subnet 1 - 10.0.0.0/18 (16384 IPs disponíveis)
Subnet 2 - 10.0.64.0/18 (16384 IPs disponíveis)
Subnet 3 - 10.0.128.0/18 (16384 IPs disponíveis)
Subnet 4 - 10.0.192.0/18 (16384 IPs disponíveis)
?
Neste artigo apresentei como é feito o cálculo entre o CIDR do VNET e como calcular o intervalo de faixas de IPs disponível para cada subnet. Gostaria de ressaltar que há situa??es especificas onde você irá lidar com desafios como “limita??es de números de IPs” ent?o você precisará adotar estratégias como refatorar seu range de IPs em uma nova faixa de IPs maior (caso a quantidade de IPs disponíveis esteja esgotada) ou talvez uma solu??o “Peering” em que temos mais VNETs que se comunicam entre si para tentar resolver o problema de falta de IPs sem impactar sistemas já em opera??o.
Muito obrigado por ter lido até aqui!
Marco