Compartilhar via


Conectar redes virtuais com o emparelhamento de rede virtual usando PowerShell

Você pode conectar redes virtuais entre si ao emparelhamento de rede virtual. Depois que as redes virtuais são emparelhadas, os recursos de ambas as redes virtuais podem se comunicar entre si, com a mesma latência e largura de banda como se os recursos estivessem na mesma rede virtual.

Neste artigo, você aprenderá como:

  • Criar duas redes virtuais

  • Conectar duas redes virtuais a um emparelhamento de rede virtual

  • Implementar uma VM (máquina virtual) em cada rede virtual

  • Comunicação entre VMs

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Azure Cloud Shell

O Azure hospeda o Azure Cloud Shell, um ambiente de shell interativo que pode ser usado por meio do navegador. É possível usar o bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. É possível usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada no seu ambiente local.

Para iniciar o Azure Cloud Shell:

Opção Exemplo/Link
Selecione Experimentar no canto superior direito de um bloco de código ou de comando. Selecionar Experimentar não copia automaticamente o código nem o comando para o Cloud Shell. Captura de tela que mostra um exemplo de Experimente para o Azure Cloud Shell.
Acesse https://shell.azure.com ou selecione o botão Iniciar o Cloud Shell para abri-lo no navegador. Botão para iniciar o Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus no canto superior direito do portal do Azure. Captura de tela que mostra o botão Cloud Shell no portal do Azure

Para usar o Azure Cloud Shell:

  1. Inicie o Cloud Shell.

  2. Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou o comando.

  3. Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e no Linux, ou selecionando Cmd+Shift+V no macOS.

  4. Selecione Enter para executar o código ou o comando.

Se você optar por instalar e usar o PowerShell localmente, este artigo exigirá o módulo do Azure PowerShell versão 1.0.0 ou posterior. Execute Get-Module -ListAvailable Az para localizar a versão instalada. Se você precisa atualizar, consulte Instalar o módulo do Azure PowerShell. Se você estiver executando o PowerShell localmente, também precisará executar o Connect-AzAccount para criar uma conexão com o Azure.

Criar redes virtuais

Antes de criar uma rede virtual, será necessário criar um grupo de recursos para a rede virtual e todos os outros recursos criados neste artigo. Crie um grupo de recursos com New-AzResourceGroup. O exemplo a seguir cria um grupo de recursos chamado test-rg no local eastus.

$resourceGroup = @{
    Name = "test-rg"
    Location = "EastUS"
}
New-AzResourceGroup @resourceGroup

Crie uma rede virtual com New-AzVirtualNetwork. O exemplo a seguir cria uma rede virtual chamada vnet-1 com o prefixo de endereço 10.0.0.0/16.

$vnet1 = @{
    ResourceGroupName = "test-rg"
    Location = "EastUS"
    Name = "vnet-1"
    AddressPrefix = "10.0.0.0/16"
}
$virtualNetwork1 = New-AzVirtualNetwork @vnet1

Crie uma configuração de sub-rede com Add-AzVirtualNetworkSubnetConfig. O exemplo a seguir cria uma configuração de sub-rede com um prefixo de endereço 10.0.0.0/24:

$subConfig = @{
    Name = "subnet-1"
    AddressPrefix = "10.0.0.0/24"
    VirtualNetwork = $virtualNetwork1
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subConfig

Grave a configuração da sub-rede na rede virtual com Set-AzVirtualNetwork, que cria a sub-rede:

$virtualNetwork1 | Set-AzVirtualNetwork

Crie uma rede virtual com um prefixo de endereço 10.1.0.0/16 e uma sub-rede:

# Create the virtual network.
$vnet2 = @{
    ResourceGroupName = "test-rg"
    Location = "EastUS"
    Name = "vnet-2"
    AddressPrefix = "10.1.0.0/16"
}
$virtualNetwork2 = New-AzVirtualNetwork @vnet2

# Create the subnet configuration.
$subConfig = @{
    Name = "subnet-1"
    AddressPrefix = "10.1.0.0/24"
    VirtualNetwork = $virtualNetwork2
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subConfig

# Write the subnet configuration to the virtual network.
$virtualNetwork2 | Set-AzVirtualNetwork

Emparelhar redes virtuais

Crie um emparelhamento com Add-AzVirtualNetworkPeering. O exemplo a seguir emparelha vnet-1 a vnet-2.

$peerConfig1 = @{
    Name = "vnet-1-to-vnet-2"
    VirtualNetwork = $virtualNetwork1
    RemoteVirtualNetworkId = $virtualNetwork2.Id
}
Add-AzVirtualNetworkPeering @peerConfig1

Na saída retornada após a execução do comando anterior, você vê que o PeeringState é Iniciado. O emparelhamento permanece no estado Iniciado até que você crie o emparelhamento de vnet-2 para vnet-1. Criar um emparelhamento de vnet-2 para vnet-1.

$peerConfig2 = @{
    Name = "vnet-2-to-vnet-1"
    VirtualNetwork = $virtualNetwork2
    RemoteVirtualNetworkId = $virtualNetwork1.Id
}
Add-AzVirtualNetworkPeering @peerConfig2

Na saída retornada após a execução do comando anterior, você vê que o PeeringState é Conectado. O Azure também alterou o estado de emparelhamento do emparelhamento vnet-1-to-vnet-2 para Conectado. Confirme se o estado de emparelhamento do emparelhamento vnet-1 a vnet-2 foi alterado para Conectado com Get-AzVirtualNetworkPeering.

$peeringState = @{
    ResourceGroupName = "test-rg"
    VirtualNetworkName = "vnet-1"
}
Get-AzVirtualNetworkPeering @peeringState | Select PeeringState

Os recursos de uma rede virtual não podem se comunicar com os recursos da outra rede virtual até que o PeeringState dos emparelhamentos de ambas as redes virtuais seja Conectado.

Criar máquinas virtuais

Crie uma VM em cada rede virtual para que seja possível comunicar-se entre elas em uma etapa posterior.

Criar a primeira VM

Crie uma VM com New-AzVM. O exemplo a seguir cria uma VM chamada vm-1 na rede virtual vnet-1. A opção -AsJob cria a VM em segundo plano, para que você possa prosseguir para a próxima etapa. Quando solicitado, insira o nome de usuário e a senha da máquina virtual.

$vm1 = @{
    ResourceGroupName = "test-rg"
    Location = "EastUS"
    VirtualNetworkName = "vnet-1"
    SubnetName = "subnet-1"
    ImageName = "Win2019Datacenter"
    Name = "vm-1"
}
New-AzVm @vm1 -AsJob

Criar a segunda VM

$vm2 = @{
    ResourceGroupName = "test-rg"
    Location = "EastUS"
    VirtualNetworkName = "vnet-2"
    SubnetName = "subnet-1"
    ImageName = "Win2019Datacenter"
    Name = "vm-2"
}
New-AzVm @vm2

A VM demora alguns minutos para criar. Não continue com as etapas posteriores até que o Azure crie vm-2 e retorne a saída para o PowerShell.

Observação

O Azure fornece um IP de acesso de saída padrão para VMs que não receberam um endereço IP público ou que estão no pool de back-end de um balanceador de carga do Azure básico interno. O mecanismo de IP de acesso de saída padrão fornece um endereço IP de saída que não é configurável.

O IP de acesso de saída padrão é desabilitado quando um dos seguintes eventos acontece:

  • Um endereço IP público é atribuído à VM.
  • A VM é colocada no pool de back-end de um balanceador de carga padrão, com ou sem regras de saída.
  • Um recurso da Gateway da NAT do Azure é atribuído à sub-rede da VM.

As VMs criadas por conjuntos de dimensionamento de máquinas virtuais no modo de orquestração flexível não têm acesso de saída padrão.

Para mais informações sobre conexões de saída no Azure, confira Acesso de saída padrão no Azure e Usar SNAT (conversão de endereços de rede de origem) para conexões de saída.

Comunicação entre VMs

É possível conectar ao endereço IP público de uma VM a partir da internet. Use Get-AzPublicIpAddress para retornar o endereço IP público de uma VM. O exemplo a seguir retorna o endereço IP público da VM vm-1:

$ipAddress = @{
    ResourceGroupName = "test-rg"
    Name = "vm-1"
}
Get-AzPublicIpAddress @ipAddress | Select IpAddress

Use o comando a seguir para criar uma sessão de área de trabalho remota com a VM vm-1 do computador local. Substitua <publicIpAddress> pelo o endereço IP retornado do comando anterior.

mstsc /v:<publicIpAddress>

Um arquivo de Protocolo de Área de Trabalho Remota (.rdp) é criado e aberto. Insira o nome de usuário e senha (talvez seja necessário selecionar Mais escolhas, em seguida, Usar uma conta diferente, para especificar as credenciais inseridas ao criar a VM) e clique em OK. Você pode receber um aviso do certificado durante o processo de logon. Clique em Sim ou em Continuar para prosseguir com o processo de conexão.

Na vm-1, habilite o protocolo ICMP (ICMP) por meio do Firewall do Windows para que você possa executar ping nessa VM a partir da vm-2 em uma etapa posterior, usando o PowerShell:

New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4

Embora o ping seja usado para se comunicar entre VMs neste artigo, não é recomendável permitir o ICMP por meio do Firewall do Windows para implantações de produção.

Para se conectar à vm-2, insira o seguinte comando de um prompt de comando na vm-1:

mstsc /v:10.1.0.4

Você habilitou o ping na vm-1. Agora você pode executar ping para a vm-1 por endereço IP em um prompt de comando na vm-2.

ping 10.0.0.4

Você receberá quatro respostas. Desconecte suas sessões de DP para a vm-1 e a vm-2.

Limpar os recursos

Quando não for mais necessário, use Remove-AzResourcegroup para remover o grupo de recursos e todos os recursos que ele contém.

Remove-AzResourceGroup -Name test-rg -Force

Próximas etapas

Neste artigo, você aprendeu a conectar duas redes, na mesma região do Azure, com o emparelhamento de rede virtual. Você também pode emparelhar redes virtuais em diferentes regiões com suporte, em diferentes assinaturas do Azure e também criar designs de rede de hub e spoke com emparelhamento. Para saber mais sobre o emparelhamento de rede virtual, consulte Visão geral de emparelhamento de rede virtual e Gerenciamento de emparelhamentos de rede virtual.

Você pode conectar seu próprio computador a uma rede virtual por meio de uma VPN e interagir com os recursos de uma rede virtual ou de redes virtuais emparelhadas. Para obter amostras de scripts reutilizáveis para concluir muitas das tarefas abordadas nos artigos sobre redes virtuais, consulte amostras de script.