Conectar redes virtuais com o emparelhamento de rede virtual usando a CLI do Azure

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

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

Pré-requisitos

  • Este artigo exige a versão 2.0.28 ou posterior da CLI do Azure. Se você está usando o Azure Cloud Shell, a versão mais recente já está instalada.

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 az group create. O exemplo a seguir cria um grupo de recursos chamado test-rg no local eastus.

az group create \
    --name test-rg \
    --location eastus

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

az network vnet create \
  --name vnet-1 \
  --resource-group test-rg \
  --address-prefixes 10.0.0.0/16 \
  --subnet-name subnet-1 \
  --subnet-prefix 10.0.0.0/24

Crie uma rede virtual denominada vnet-2 com o prefixo de endereço 10.1.0.0/16:

az network vnet create \
  --name vnet-2 \
  --resource-group test-rg \
  --address-prefixes 10.1.0.0/16 \
  --subnet-name subnet-1 \
  --subnet-prefix 10.1.0.0/24

Emparelhar redes virtuais

Os emparelhamentos são estabelecidos entre as IDs de rede virtual. Obtenha a ID de cada rede virtual com az network vnet show e armazene a ID em uma variável.

# Get the id for vnet-1.
vNet1Id=$(az network vnet show \
  --resource-group test-rg \
  --name vnet-1 \
  --query id --out tsv)

# Get the id for vnet-2.
vNet2Id=$(az network vnet show \
  --resource-group test-rg \
  --name vnet-2 \
  --query id \
  --out tsv)

Crie um emparelhamento de vnet-1 para vnet-2 com az network vnet peering create. Se o parâmetro --allow-vnet-access não for especificado, um emparelhamento será estabelecido, mas nenhuma comunicação poderá fluir por ele.

az network vnet peering create \
  --name vnet-1-to-vnet-2 \
  --resource-group test-rg \
  --vnet-name vnet-1 \
  --remote-vnet $vNet2Id \
  --allow-vnet-access

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.

az network vnet peering create \
  --name vnet-2-to-vnet-1 \
  --resource-group test-rg \
  --vnet-name vnet-2 \
  --remote-vnet $vNet1Id \
  --allow-vnet-access

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 que o estado de emparelhamento de vnet-1-to-vnet-2 foi alterado para Conectado com az network vnet peering show.

az network vnet peering show \
  --name vnet-1-to-vnet-2 \
  --resource-group test-rg \
  --vnet-name vnet-1 \
  --query peeringState

Os recursos de uma rede virtual não podem se comunicar com os recursos da outra rede virtual até que o peeringState para os emparelhamentos em 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 az vm create. O exemplo a seguir cria uma VM chamada vm-1 na rede virtual vnet-1. Se as chaves SSH ainda não existirem em uma localização de chave padrão, o comando as criará. Para usar um conjunto específico de chaves, use a opção --ssh-key-value. A opção --no-wait cria a VM em segundo plano, para que você possa prosseguir para a próxima etapa.

az vm create \
  --resource-group test-rg \
  --name vm-1 \
  --image Ubuntu2204 \
  --vnet-name vnet-1 \
  --subnet subnet-1 \
  --generate-ssh-keys \
  --no-wait

Criar a segunda VM

Crie uma VM na rede virtual vnet-2.

az vm create \
  --resource-group test-rg \
  --name vm-2 \
  --image Ubuntu2204 \
  --vnet-name vnet-2 \
  --subnet subnet-1 \
  --generate-ssh-keys

A VM demora alguns minutos para criar. Quando a VM estiver criada, a CLI do Azure mostra informações semelhantes ao exemplo a seguir:

{
  "fqdns": "",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/vm-2",
  "location": "eastus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.1.0.4",
  "publicIpAddress": "13.90.242.231",
  "resourceGroup": "test-rg"
}

Anote o publicIpAddress. Esse endereço será usado para acessar a VM da internet em uma etapa posterior.

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

Use o seguinte comando para criar uma sessão SSH com a VM vm-2. Substitua <publicIpAddress> pelo endereço IP público de sua VM. No exemplo anterior, o endereço IP público é 13.90.242.231.

ssh <publicIpAddress>

Executar ping na VM em vnet-1.

ping 10.0.0.4 -c 4

Você receberá quatro respostas.

Fechar a sessão SSH para a VM vm-2.

Limpar os recursos

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

az group delete \
    --name test-rg \
    --yes

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.