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

Neste artigo, você implanta uma VM (máquina virtual ) e, em seguida, verifica a comunicação com um endereço IP e uma URL. Você determina a causa de uma falha de comunicação e como resolvê-la.

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

Pré-requisitos

Você pode usar o Azure Cloud Shell ou uma CLI do Azure local.

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

  • Os comandos da CLI do Azure neste artigo são formatados para serem executados em um shell do Bash.

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 UbuntuLTS \
  --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 IP ou uma URL, ao longo do tempo usando a funcionalidade de monitor de conexão do Observador de Rede. Para saber como, consulte Monitorar uma conexão de rede.