Diagnosticar um problema de encaminhamento de rede de máquinas virtuais - Azure CLI

Neste artigo, você implanta uma máquina virtual (VM) e, em seguida, verifique as comunicações para um endereço IP e URL. Vai determinar a causa de uma falha de comunicação e aprender a resolvê-la.

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

Pré-requisitos

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

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

  • Os comandos Azure CLI neste artigo são formatados para correr numa concha bash.

Criar uma VM

Antes de criar uma VM, tem de 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 leste :

az group create --name myResourceGroup --location eastus

Crie uma VM com az vm create. Se as chaves SSH ainda não existirem numa localização de chaves predefinida, o comando cria-as. Para utilizar um conjunto específico de chaves, utilize a opção --ssh-key-value. O exemplo a seguir cria um VM chamado myVm:

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

A criação da VM demora alguns minutos. Não continue com os passos restantes até que o VM seja criado e o Azure CLI devolva a saída.

Testar a comunicação de rede

Para testar a comunicação da rede com Observador de Rede, primeiro deve ativar um observador de rede na região onde se encontra o VM e, em seguida, utilizar a próxima capacidade de lúpulo da Observador de Rede para testar a comunicação.

Ativar o observador de rede

Se já tem um observador de rede ativado na região leste dos EUA, salte para Use o próximo salto. Use o comando de configuração de rede az para criar um observador de rede na região leste dos EUA:

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

Utilizar o próximo salto

O Azure cria automaticamente rotas para destinos predefinidos. Pode criar rotas personalizadas que substituem as rotas predefinidas. Por vezes, as rotas personalizadas podem causar falhas na comunicação. Para testar o encaminhamento a partir de um VM, utilize o show-next-hop do observador de rede Az para determinar o próximo salto de encaminhamento quando o tráfego está destinado a um endereço específico.

Teste a comunicação de saída do 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-o de que o próximo 0hopType é internet, e que o routeTableId é a Rota do Sistema. Este resultado permite-lhe saber que existe uma rota válida para o destino.

Teste a comunicação de saída da VM para 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 devolvida informa-o de que nenhum é o próximo Zero-OpType, e que o routeTableId também é a Rota do Sistema. Este resultado permite-lhe saber que, embora exista uma rota de sistema válida para o destino, não há um próximo salto para encaminhar o tráfego para o destino.

Ver detalhes de uma rota

Para analisar o encaminhamento, reveja as rotas eficazes para a interface de rede com o comando de tabela de rotas de série eficaz de rede az :

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

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

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

Quando utilizou o az network watcher show-next-hop comando para testar a comunicação de saída para 13.107.21.200 em Utilização do próximo salto, a rota com o endereçoPrefix 0.0.0.0/0** foi utilizada para encaminhar o tráfego para o endereço, uma vez que nenhuma outra rota na saída inclui o endereço. Por predefinição, todos os endereços não especificados no prefixo de endereço de outra rota são encaminhados para a Internet.

No entanto, quando usou o az network watcher show-next-hop comando para testar a comunicação de saída para 172.31.0.100, o resultado informou-o de que não havia próximo tipo de lúpulo. Na saída devolvida vê-se também o seguinte texto:

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

Como pode ver na saída a az network watcher nic show-effective-route-table partir do comando, embora exista uma rota padrão para o prefixo 172.16.0.0/12, que inclui o endereço 172.31.0.100, o próximo ZeroType é Nenhum. O Azure cria uma rota predefinida para 172.16.0.0/12, mas não especifica um tipo de próximo salto até que haja um motivo para isso. Se, por exemplo, adicionou a gama de endereços 172.16.0.0/12 ao espaço de endereço da rede virtual, o Azure altera o próximo Dispositivo de Segurança para a rede Virtual para a rota. Uma verificação mostraria então a rede Virtual como o próximo Ópsia.

Limpar os recursos

Quando já não for necessário, pode utilizar az group delete para remover o grupo de recursos e todos os recursos que contém:

az group delete --name myResourceGroup --yes

Passos seguintes

Neste artigo, criou um VM e diagnosticou o encaminhamento de rede a partir do VM. Aprendeu que o Azure cria várias rotas predefinidas e testa o encaminhamento para dois destinos diferentes. Saiba mais sobre o encaminhamento no Azure e como criar rotas personalizadas.

Para ligações VM de saída, também pode determinar a latência e o tráfego de rede permitido e negado entre o VM e um ponto final utilizando a capacidade de resolução de problemas de ligação da Observador de Rede. Pode monitorizar a comunicação entre um VM e um ponto final, como um endereço IP ou URL, utilizando ao longo do tempo a capacidade do monitor de ligação Observador de Rede. Para saber como, consulte monitorar uma ligação de rede.