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

Pode ligar redes virtuais entre si com o peering de rede virtual. Depois de as redes virtuais estarem em modo de peering, os recursos nas duas redes virtuais conseguem comunicar entre si, com a mesma latência e largura de banda, como se os recursos estivessem na mesma rede virtual.

Neste artigo, vai aprender a:

  • Criar duas redes virtuais

  • Ligar duas redes virtuais com um peering de rede virtual

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

  • Comunicar entre VMs

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

Pré-requisitos

  • Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.

  • Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.

    • Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.

    • Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.

    • Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

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

Criar redes virtuais

Antes de criar uma rede virtual, você precisa 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 chamada 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

Colocar redes virtuais em modo de peering

Os emparelhamentos são estabelecidos entre IDs de rede virtual. Obtenha o ID de cada rede virtual com az network vnet show e armazene o 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 --allow-vnet-access parâmetro não for especificado, um emparelhamento será estabelecido, mas nenhuma comunicação poderá fluir através dele.

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 é Initiated. O emparelhamento permanece no estado Iniciado até que você crie o emparelhamento de vnet-2 para vnet-1. Crie 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 está Connected. O Azure também alterou o estado de emparelhamento do emparelhamento vnet-1-to-vnet-2 para Connected. Confirme se o estado de emparelhamento para o emparelhamento vnet-1-to-vnet-2 mudou 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 em uma rede virtual não podem se comunicar com recursos na outra rede virtual até que o emparelhamento State para os emparelhamentos em ambas as redes virtuais seja Conectado.

Criar máquinas virtuais

Crie uma VM em cada rede virtual, para que possa comunicar entre as mesmas num passo 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 um local de chave padrão, o comando as cria. Para utilizar um conjunto específico de chaves, utilize a opção --ssh-key-value. A --no-wait opção cria a VM em segundo plano, para que você possa continuar 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 criação da VM demora alguns minutos. Depois que a VM é 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 é usado para acessar a VM da Internet em uma etapa posterior.

Nota

O Azure fornece um IP de acesso de saída padrão para VMs que não recebem um endereço IP público ou estão no pool de back-end de um balanceador de carga básico interno do Azure. O mecanismo 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 é desativado 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 do Gateway NAT do Azure é atribuído à sub-rede da VM.

As VMs que você cria usando conjuntos de dimensionamento de máquina virtual no modo de orquestração flexível não têm acesso de saída padrão.

Para obter mais informações sobre conexões de saída no Azure, consulte Acesso de saída padrão no Azure e Usar SNAT (Conversão de Endereço de Rede de Origem) para conexões de saída.

Comunicar entre VMs

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

ssh <publicIpAddress>

Execute ping na VM no vnet-1.

ping 10.0.0.4 -c 4

Recebe quatro respostas.

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

Clean up resources (Limpar 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óximos passos

Neste artigo, você aprendeu como conectar duas redes na mesma região do Azure, com emparelhamento de rede virtual. Também pode ligar em modo de peering máquinas virtuais em diferentes regiões suportadas e em diferentes subscrições do Azure, bem como criar designs de rede hub-and-spoke com peering. Para obter mais informações sobre o peering de rede virtual, veja Descrição geral do peering de rede virtual e Gerir peerings de rede virtual.

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