Configurando Azure Global VNet Peering

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. 🙂

2 Replies to “Configurando Azure Global VNet Peering”

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *