O peering permiti conectar redes virtuais no Azure. O tráfego entre máquinas virtuais usa a infraestrutura de backbone da Microsoft. Como o tráfego entre máquinas virtuais na mesma rede, o tráfego é roteado somente pela rede privada da Microsoft.
O Azure oferece suporte aos seguintes tipos de peering:
Virtual network peering: Conecta redes virtuais na mesma região do Azure.
Global virtual network peering: Conecta redes virtuais nas regiões do Azure.
Os benefícios do uso de peering de rede virtual, local ou global, incluem:
- Uma conexão de baixa latência e alta largura de banda entre recursos em diferentes redes virtuais.
- A capacidade de recursos em uma rede virtual se comunicarem com recursos em uma rede virtual diferente.
- A capacidade de transferir dados entre redes virtuais entre assinaturas do Azure, Tenante do Azure Active Directory, modelos de implantação e regiões do Azure.
- A capacidade de emparelhar redes virtuais criadas por meio do Azure Resource Manager.
- A capacidade de emparelhar uma rede virtual criada pelo Gerenciador de Recursos para outra criada pelo modelo de implantação
- Não há tempo de inatividade para recursos na rede virtual ao criar o peering ou após a criação do peering.
O tráfego de rede entre redes virtuais emparelhadas é privado. O tráfego entre as redes virtuais é mantido na rede de backbone da Microsoft. Nenhuma Internet pública, gateways ou criptografia é necessária na comunicação entre as redes virtuais.
Para nosso laboratório iremos utilizar o seguinte cenário:
Em nosso ambiente temos duas subscription vamos criar o Global Vnet peering entre essas assinaturas.
Em cada Resource group teremos uma uma máquina virtual para testar a conectividade entre as redes.
Ressource group localizado no East US na subscription estudante
RG-Peering-East-SubsEstudante
Vnet – 10.10.0.0/16
Subnet – 10.10.0.0/24
Virtual Machine – VM001
Resource group localizado no West US na subscription MCT
RG-Peering-West-SubsMCT
Vnet – 10.20.0.0/16
Subnet – 10.20.0.0/24
Virtual Machine – VM002
Todos os recursos serão criados utilizando comandos do PowerShell
1.Faça login no portal do Azure http://portal.azure.com/
2. Abra o Azure Cloud Shell
3. Vamos criar o resource group RG-Peering-East-SubsEstudante com os seguintes comandos:
Como todos os recursos serão criados em assinaturas diferentes teremos que selecionar a subscription desejada.
# Ver todas as subscription:
Get-AzSubscription
# Alterar a subscription:
Select-AzSubscription -SubscriptionName “ID da subscription”
Obs: Substitua o campo “ID da subscription” pelo ID da sua assinatura
# Criar o Resource group
New-AzResourceGroup -Name “RG-Peering-East-SubsEstudante” -Location “East US”
Podemos verificar a saída do comando na imagem abaixo:
Para colar os comandos no Azure Cloud Shell digite Control+Shift+v
4. Observe que o resource group RG-Peering-East-SubsEstudante foi criado na subscription Estudante.
5. Agora vamos criar o resource group RG-Peering-West-SubsMCT
Vamos utilizar os seguintes comandos para criar o resouce group RG-Peering-West-SubsMCT na subscription MCT:
# Alterar a subscription
Select-AzSubscription -SubscriptionName “ID da subscription”
# Criar o Resource Group
New-AzResourceGroup -Name “RG-Peering-West-SubsMCT” -Location “WestUS”
Podemos verificar a saída do comando na imagem abaixo:
6. Observe que o Resource group group RG-Peering-West-SubsMCT foi criado na subscription MCT.
7. Para exibir os grupos de recursos criados vamos selecionar as duas subscriptions alterando o filtro subscription selecionando as duas assinaturas que desejamos exibir.
O próximo passo será criar as redes virtuais para cada assinatura.
8. Vamos criar a Vnet-Peering-East-SubsEstudante na Subscription Estudante, para criar a virtual network e subnet vamos utilizar os seguintes comandos:
# Selecione a assinatura
Select-AzSubscription -SubscriptionName “ID da subscription”
# Criar virtual network
$virtualNetwork = New-AzVirtualNetwork `
-ResourceGroupName RG-Peering-East-SubsEstudante `
-Location EastUS `
-Name Vnet-Peering-East-SubsEstudante `
-AddressPrefix 10.10.0.0/16
# Adicionar uma subnet
$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
-Name subnet-Peering-East-SubsEstudante `
-AddressPrefix 10.10.0.0/24 `
-VirtualNetwork $virtualNetwork
# Associar a subnet à virtual network
$virtualNetwork | Set-AzVirtualNetwork
Observe que nossa Vnet e subnet foram criadas com sucesso.
9. O próximo passo será criar a virtual netowrk Vnet-Peering-West-SubsMCT, para isso vamos executar os seguintes comandos:
# Alterar a Subscription
Select-AzSubscription -SubscriptionName “ID da subscription”
# Criar virtual network
$virtualNetwork = New-AzVirtualNetwork `
-ResourceGroupName RG-Peering-West-SubsMCT `
-Location WestUS `
-Name Vnet-Peering-West-SubsMCT `
-AddressPrefix 10.20.0.0/16
# Adicionar uma subnet
$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
-Name subnet-Peering-West-SubsMCT `
-AddressPrefix 10.20.0.0/24 `
-VirtualNetwork $virtualNetwork
# Associar a subnet à virtual network
$virtualNetwork | Set-AzVirtualNetwork
Vamos verificar se nossa Vnet e subnet foram criadas com sucesso
Como podemos observar nas imagens acima nossa virtual network e subnet foram criadas.
Agora que as redes virtuais já forma criadas vamos criar duas máquinas virtuais, uma para cada subscription.
10. Vamos criar a VM001 na subscription Estudante, para isso vamos utilizar o seguinte script:
### Esse script cria uma VM e adiciona em uma virtual network já criada ###
# Selecione a Assinatura
Select-AzSubscription -SubscriptionName “ID da subscription”
# Definindo as variáveis de rede
$ResourceGroup = “RG-Peering-East-SubsEstudante”
$Location = “EastUS”
$vNetName = “Vnet-Peering-East-SubsEstudante”
$SubnetName = “subnet-Peering-East-SubsEstudante”
$nsgName = “nsg-Peering-East-SubsEstudante”
# Criando o Network Security Group
$nsgRuleVMAccess = New-AzNetworkSecurityRuleConfig -Name ‘allow-vm-access’ -Protocol Tcp -Direction Inbound -Priority 100 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389,443,80 -Access Allow
New-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroup -Location $location -Name $nsgName -SecurityRules $nsgRuleVMAccess
# Definindo as variáveis da máquina virtual
$vNet = Get-AzVirtualNetwork -ResourceGroupName $ResourceGroup -Name $vNetName
$Subnet = Get-AzVirtualNetworkSubnetConfig -Name $SubnetName -VirtualNetwork $vNet
$nsg = Get-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroup -Name $NsgName
$vmName = “VM001”
$pubName = “MicrosoftWindowsServer”
$offerName = “WindowsServer”
$skuName = “2016-Datacenter”
$vmSize = “Standard_DS2_v2”
$pipName = “$vmName-pip”
$nicName = “$vmName-nic”
$osDiskName = “$vmName-OsDisk”
$osDiskType = “Standard_LRS”
# Definindo as credenciais de administrador
$adminUsername = ‘jadson.alves’
$adminPassword = ‘Pa$$w0rd.qwe1234’
$adminCreds = New-Object PSCredential $adminUsername, ($adminPassword | ConvertTo-SecureString -AsPlainText -Force)
# Criando IP público e interface de rede NIC
$pip = New-AzPublicIpAddress -Name $pipName -ResourceGroupName $ResourceGroup -Location $location -AllocationMethod Static
$nic = New-AzNetworkInterface -Name $nicName -ResourceGroupName $ResourceGroup -Location $location -SubnetId $Subnet.Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
# Adicionando as configurações da máquina virtual
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize $vmSize
Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id
# Setando os parâmetros do sistema operacional
Set-AzVMOperatingSystem -VM $vmConfig -Windows -ComputerName $vmName -Credential $adminCreds
# Setando a imagem utilizada na máquina virtual
Set-AzVMSourceImage -VM $vmConfig -PublisherName $pubName -Offer $offerName -Skus $skuName -Version ‘latest’
# Setando as configurações de disco
Set-AzVMOSDisk -VM $vmConfig -Name $osDiskName -StorageAccountType $osDiskType -CreateOption fromImage
# Desabilitando o diagnóstico de boot
Set-AzVMBootDiagnostic -VM $vmConfig -Disable
# Criando a máquina virtual
New-AzVM -ResourceGroupName $ResourceGroup -Location $location -VM $vmConfig
Como podemos observar na imagem abaixo que a VM001 foi criada com sucesso.
11. Agora vamos criar a VM002 na subscription MCT, para isso vamos utilizar o seguinte script.
### Esse script cria uma VM e adiciona em uma virtual network já criada ###
# Selecione a assinatura
Select-AzSubscription -SubscriptionName “ID da subscription”
# Definindo as variáveis de rede
$ResourceGroup = “RG-Peering-West-SubsMCT”
$Location = “WestUS”
$vNetName = “Vnet-Peering-West-SubsMCT”
$SubnetName = “subnet-Peering-West-SubsMCT”
$nsgName = “nsg-Peering-West-SubsMCT”
# Criando o Network Security Group
$nsgRuleVMAccess = New-AzNetworkSecurityRuleConfig -Name ‘allow-vm-access’ -Protocol Tcp -Direction Inbound -Priority 100 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389,443,80 -Access Allow
New-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroup -Location $location -Name $nsgName -SecurityRules $nsgRuleVMAccess
# Definindo as variáveis da máquina virtual
$vNet = Get-AzVirtualNetwork -ResourceGroupName $ResourceGroup -Name $vNetName
$Subnet = Get-AzVirtualNetworkSubnetConfig -Name $SubnetName -VirtualNetwork $vNet
$nsg = Get-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroup -Name $NsgName
$vmName = “VM002”
$pubName = “MicrosoftWindowsServer”
$offerName = “WindowsServer”
$skuName = “2016-Datacenter”
$vmSize = ” Standard_D2s_v3″
$pipName = “$vmName-pip”
$nicName = “$vmName-nic”
$osDiskName = “$vmName-OsDisk”
$osDiskType = “Standard_LRS”
# Definindo as credenciais de administrador
$adminUsername = ‘jadson.alves’
$adminPassword = ‘Pa$$w0rd.qwe1234’
$adminCreds = New-Object PSCredential $adminUsername, ($adminPassword | ConvertTo-SecureString -AsPlainText -Force)
# Criando IP público e interface de rede NIC
$pip = New-AzPublicIpAddress -Name $pipName -ResourceGroupName $ResourceGroup -Location $location -AllocationMethod Static
$nic = New-AzNetworkInterface -Name $nicName -ResourceGroupName $ResourceGroup -Location $location -SubnetId $Subnet.Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
# Adicionando as configurações da máquina virtual
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize $vmSize
Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id
# Setando os parâmetros do sistema operacional
Set-AzVMOperatingSystem -VM $vmConfig -Windows -ComputerName $vmName -Credential $adminCreds
# Setando a imagem utilizada na máquina virtual
Set-AzVMSourceImage -VM $vmConfig -PublisherName $pubName -Offer $offerName -Skus $skuName -Version ‘latest’
# Setando as configurações de disco
Set-AzVMOSDisk -VM $vmConfig -Name $osDiskName -StorageAccountType $osDiskType -CreateOption fromImage
# Desabilitando o diagnóstico de boot
Set-AzVMBootDiagnostic -VM $vmConfig -Disable
# Criando a máquina virtual
New-AzVM -ResourceGroupName $ResourceGroup -Location $location -VM $vmConfig
Como podemos observar na imagem abaixo nossa a VM002 foi criada com sucesso.
Agora que nossas redes virtuais e máquinas virtuais já foram criadas vamos habilitar o Global Vnet Peering nas assinaturas.
12. Vamos habilitar o global VNet peering na Subscription Estudante, para isso execute os seguintes comandos:
# Registrar este recurso
Register-AzProviderFeature -FeatureName AllowCortexGlobalVnetPeering -ProviderNamespace Microsoft.Network
Register-AzProviderFeature ‘Microsoft.Network’
# Verificar registro
Gett-AzProviderFeature -FeatureName AllowCortexGlobalVnetPeering -ProviderNamespace Microsoft.Network
Podemos verificar a execução do comando na imagem abaixo.
13. Vamos habilitar o global VNet peering na Subscription MCT, para isso execute os seguintes comandos:
# Selecione a assinatura
Select-AzSubscription -SubscriptionName “ID da subscription”
# Registrar este recurso
Register-AzProviderFeature -FeatureName AllowCortexGlobalVnetPeering -ProviderNamespace Microsoft.Network
Register-AzProviderFeature ‘Microsoft.Network’
# Verificar registro
Get-AzProviderFeature -FeatureName AllowCortexGlobalVnetPeering -ProviderNamespace Microsoft.Network
Podemos verificar a execução do comando na imagem abaixo.
Agora vamos configurar o Global VNet peering
14. Pesquise por virtual network.
15. Selecione uma das Vnets
16. Na guia Virtual networks clique em Peerings e + Add
17. Na guia Add peering vamos configurar um nome para o peering em ambas as direções, aqui já podemos criar um peering nas duas redes virtuais.
Perceba que estamos permitir que as duas redes se comuniquem entre si.
18. Clicando no ícone de notification podemos observar o Peering sendo criado nas duas assinaturas.
19. Na tela seguinte podemos observar que o peering em ambas as redes foi configurado e já está conectado.
Para fazermos os testes de comunicação entre as máquinas virtuais que estão em assinaturas diferentes teremos que liberar o protocolo ICMP para permitir o ping entre as máquinas virtuais.
Vamos liberar o protocolo ICMP no Network security group em cada rede e também liberaremos o protocolo ICMP no firewall do Windows.
Vamos liberar o protocolo ICMP para a subscription Estudante.
20. Pesquise por Network Security Groups
21. Selecione o Network security group nsg-Peering-East-SubsEstudante.
22. Na guia nsg-Peering-East-SubsEstudante clique em Inbound security rules e + Add.
23. No campo protocol selecione ICMP, para nosso laboratório vamos deixar as demais configurações padrão, clique em Add.
24. Observe que nossa regra para a subscription Estudante foi criada com sucesso.
Agora vamos liberar o Protocolo ICMP na VM001 que é a máquina virtual criada na subscription Estudante.
25. No Portal do Azure clique em Virtual Machine
26. Selecione a VM001
27. Clique em Connect e faça download do arquivo RDP.
28. Conecte na máquina virtual com usuário e senha que utilizamos no script de criação da VM.
29. Abra o PowerShell na VM001 e execute o seguinte comando para liberar o protocolo ICMP.
New-NetFirewallRule –DisplayName “Allow ICMPv4-In” –Protocol ICMPv4
Podemos verificar a saída do comando na imagem abaixo:
30. Vamos verificar se nossa regra para liberar o protocolo ICMP foi criada.
A configuração da VM001 está pronta!!!
O próximo passo vai ser liberar o protocolo ICMP na subscription MCT
31. Pesquise por Network Security Group
32. Na guia Network Security groups altere o filtro subscriptions para mostrar os recursos da subscription MCT
33. Selecione o Network security group nsg-Peering-West-SubsMCT.
34. Na guia nsg-Peering-West-SubsMCT clique em Inbound security rules e + Add.
35. No campo protocol selecione ICMP, para nosso laboratório vamos deixar as demais configurações padrão, clique em Add.
36. Nossa regra para a subscription MCT foi criada com sucesso.
Agora vamos liberar o Protocolo ICMP na VM002 que é a máquina virtual da criada na subscription MCT.
37. No Portal do Azure clique em Virtual Machine
38. Selecione a VM002
39. Clique em Connect e faça download do arquivo RDP.
40. Conecte na máquina virtual com usuário e senha que utilizamos no script de criação da VM.
41. Abra o PowerShell na VM001 e execute o seguinte comando para liberar o protocolo ICMP.
New-NetFirewallRule –DisplayName “Allow ICMPv4-In” –Protocol ICMPv4
Podemos verificar a saída do comando na imagem abaixo:
42. Vamos verificar se nossa regra para liberar o protocolo ICMP foi criada.
A configuração da VM002 está pronta!!!
Agora vamos testar a comunicação entre as máquinas virtuais, para isso vamos realizar um ping da VM001 para VM002 e da VM002 para VM001
43. A máquina virtual VM001 está utilizando o endereço IP 10.10.0.4
44. A máquina virtual VM002 está utilizando o endereço IP 10.20.0.4
45. Após realizar um ping entre as máquinas virtuais observe que elas estão se comunicando.
Espero que este conteúdo tenha contribuído com o enriquecimento do conhecimento de vocês em Azure
Tem alguma sugestão ou observação, comente.
Forte abraço, obrigado e até o próximo post. 🙂
Carreira desenvolvida na área de tecnologia da informação, com ampla experiência em Cloud
Computing e Cloud Security.
Forte atuação em projetos de Cloud Security no Microsoft Azure e com tecnologias de
segurança do Microsoft 365.
Tenho Experiência em Microsoft Azure, Microsoft 365, AWS e Windows Server.
Sou Microsoft MVP na categoria Microsoft Azure, AWS Communit Builder Security & Identity e
MCT.
2 Replies to “Configurando Azure Global VNet Peering”