Diagnosticar um problema de roteamento de rede de máquina virtual usando a CLI do Azure

Neste artigo, você aprenderá a usar a ferramenta próximo salto do Observador de Rede do Azure para solucionar problemas e diagnosticar um problema de roteamento de VM que o impede de se comunicar corretamente com outros recursos.

Pré-requisitos

  • Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.

  • Azure Cloud Shell ou CLI do Azure.

    As etapas desse artigo executam os comandos da CLI do Azure interativamente no Azure Cloud Shell. Para executar os comandos no Cloud Shell, selecione Abrir o Cloud Shell no canto superior direito de um bloco de código. Selecione Copiar para copiar o código e colá-lo no Cloud Shell para executá-lo. Você também pode executar o Cloud Shell no portal do Azure.

    Você também pode instalar a CLI do Azure localmente para executar os comandos. Este artigo exige a CLI do Azure versão 2.0 ou posterior. Execute o comando az --version para encontrar a versão instalada. Se você executar a CLI do Azure localmente, entre no Azure usando o comando az login .

Criar uma máquina virtual

Antes de criar uma VM, você deve criar um grupo de recursos para conter a VM. Crie um grupo de recursos com az group create. O exemplo a seguir cria um grupo de recursos chamado myResourceGroup na localização eastus:

az group create --name myResourceGroup --location eastus

Crie uma VM com az vm create. Se as chaves SSH ainda não existirem em uma localização de chave padrão, o comando criará. Para usar um conjunto específico de chaves, use a opção --ssh-key-value. O exemplo a seguir cria uma VM chamada myVm:

az vm create \
  --resource-group myResourceGroup \
  --name myVm \
  --image Ubuntu2204 \
  --generate-ssh-keys

A VM demora alguns minutos para criar. Não continue com as etapas restantes até que a VM seja criada e a CLI do Azure retorne a saída.

Testar comunicação de rede

Para testar a comunicação de rede com o Observador de Rede, primeiro habilite um observador de rede na região onde está localizada a VM que deseja testar e, em seguida, use a funcionalidade de próximo salto do Observador de Rede para testar a comunicação.

Habilitar o observador de rede

Se você já tiver um observador de rede habilitado na região Este dos EUA, vá para Usar próximo salto. Use o comando az network watcher configure para criar um observador de rede na região East US:

az network watcher configure \
  --resource-group NetworkWatcherRG \
  --locations eastus \
  --enabled

Usar próximo salto

O Azure cria automaticamente as rotas para destinos padrão. Você pode criar rotas personalizadas que substituem as rotas padrão. Às vezes, as rotas personalizadas podem causar falha na comunicação. Para testar o roteamento de uma VM, use az network watcher show-next-hop para determinar o próximo salto de roteamento quando o tráfego for destinado a um endereço específico.

Teste a comunicação de saída da VM para um dos endereços IP para www.bing.com:

az network watcher show-next-hop \
  --dest-ip 13.107.21.200 \
  --resource-group myResourceGroup \
  --source-ip 10.0.0.4 \
  --vm myVm \
  --nic myVmVMNic \
  --out table

Após alguns segundos, a saída informa que o nextHopType é Internet e que a routeTableId é Rota do Sistema. Esse resultado permite que você saiba que há uma rota válida para o destino.

Teste a comunicação de saída da VM em 172.31.0.100:

az network watcher show-next-hop \
  --dest-ip 172.31.0.100 \
  --resource-group myResourceGroup \
  --source-ip 10.0.0.4 \
  --vm myVm \
  --nic myVmVMNic \
  --out table

A saída retornada informa que Nenhum é o nextHopType e que a routeTableId também é Rota do Sistema. Esse resultado permite que você saiba que, embora haja uma rota do sistema válida para o destino, não há nenhum próximo salto para encaminhar o tráfego para o destino.

Exibir detalhes de uma rota

Para analisar o roteamento adicional, examine as rotas reais para a interface de rede com o comando az network nic show-effective-route-table:

az network nic show-effective-route-table \
  --resource-group myResourceGroup \
  --name myVmVMNic

O texto a seguir está incluído na saída retornada:

{
  "additionalProperties": {
    "disableBgpRoutePropagation": false
  },
  "addressPrefix": [
    "0.0.0.0/0"
  ],
  "name": null,
  "nextHopIpAddress": [],
  "nextHopType": "Internet",
  "source": "Default",
  "state": "Active"
},

Quando você usou o comando az network watcher show-next-hop para testar a comunicação de saída a 13.107.21.200 em Usar próximo salto, a rota com o addressPrefix 0.0.0.0/0** foi usada para encaminhar o tráfego para o endereço, pois nenhuma outra rota na saída inclui o endereço. Por padrão, todos os endereços não especificados dentro do prefixo de endereço de outra rota são encaminhados para a Internet.

Quando você usou o comando az network watcher show-next-hop para testar a comunicação de saída 172.31.0.100, no entanto, o resultado informou que não houve nenhum tipo de próximo salto. O texto a seguir também está na saída retornada:

{
  "additionalProperties": {
    "disableBgpRoutePropagation": false
      },
  "addressPrefix": [
    "172.16.0.0/12"
  ],
  "name": null,
  "nextHopIpAddress": [],
  "nextHopType": "None",
  "source": "Default",
  "state": "Active"
},

Como você pode ver na saída do comando az network watcher nic show-effective-route-table, embora haja uma rota padrão para o prefixo 172.16.0.0/12, que inclui o endereço 172.31.0.100, o nextHopType é Nenhum. O Azure cria uma rota padrão para 172.16.0.0/12, mas não especifica um tipo de próximo salto até que haja um motivo. Se, por exemplo, você adicionou o intervalo de endereços 172.16.0.0/12 ao espaço de endereço da rede virtual, o Azure alterará o nextHopType para Rede virtual da rota. Em seguida, uma verificação mostra a Rede virtual como o nextHopType.

Limpar os recursos

Quando não for mais necessário, você poderá usar az group delete para remover o grupo de recursos e todos os recursos que ele contém:

az group delete --name myResourceGroup --yes

Próximas etapas

Neste artigo, você criou uma VM e o roteamento de rede diagnosticado da VM. Você aprendeu que o Azure cria várias rotas padrão e testou o roteamento para dois destinos diferentes. Saiba mais sobre o roteamento no Azure e como criar rotas personalizadas.

Para conexões de VM de saída, determine também a latência e o tráfego de rede permitido e negado entre a VM e um ponto de extremidade, usando a funcionalidade solução de problemas de conexão do Observador de Rede. Você pode monitorar a comunicação entre uma VM e um ponto de extremidade, como um endereço de IP ou uma URL, ao longo do tempo usando a funcionalidade do monitor de conexão do Observador de Rede. Para obter mais informações, consulte Monitorar uma conexão de rede.