Diagnosticar um problema de roteamento da máquina virtual

Neste artigo, você aprenderá como diagnosticar um problema de roteamento, visualizando as rotas que são efetivas para um adaptador de rede em uma VM (máquina virtual). O Azure cria várias rotas padrão para cada sub-rede da rede virtual. É possível substituir as rotas padrão do Azure, definindo rotas em uma tabela de rotas e associando a tabela de rotas a uma sub-rede. A combinação de rotas que você cria, rotas padrão do Azure e quaisquer rotas propagadas da rede local por meio de um gateway de VPN do Azure (se a rede virtual estiver conectada à rede local) por meio do BGP (Border Gateway Protocol), são as rotas efetivas para todos os adaptadores de rede em uma sub-rede. Se você não estiver familiarizado com conceitos de rede virtual, adaptador de rede ou roteamento, consulte Visão geral da rede virtual, Adaptador de rede e Visão geral do roteamento.

Cenário

Você tenta conectar uma VM, mas a conexão falha. Para determinar por que não é possível conectar a VM, você pode exibir as rotas efetivas para um adaptador rede usando o portal do Azure, PowerShell ou a CLI do Azure.

As etapas a seguir pressupõem que há uma VM existente para visualizar as rotas efetivas. Se você não tiver uma VM existente, primeiro implemente uma VM Linux ou Windows para concluir as tarefas deste artigo. Os exemplos neste artigo são para uma VM nomeada myVM com um adaptador de rede nomeado myVMNic1. A VM e o adaptador de rede estão em um grupo de recursos nomeado myResourceGroup, e estão na região Leste dos EUA. Altere os valores nas etapas, conforme apropriado, para a VM em que você diagnosticando o problema.

Diagnosticar usando o portal do Azure

  1. Faça logon no portal do Azure com uma conta do Azure que tenha as permissões necessárias.

  2. Na parte superior do portal do Azure, insira o nome de uma VM que esteja em estado de execução, na caixa de pesquisa. Quando o nome da VM aparecer nos resultados da pesquisa, selecione-o.

  3. Em Configurações, à esquerda, selecione Redee navegue até o recurso de interface de rede selecionando o nome dele. Exibir adaptadores de rede

  4. À esquerda, selecione Rotas efetivas. As rotas efetivas para uma interface de rede nomeada myVMNic1 são mostradas na imagem a seguir: Exibir rotas efetivas

    Se houver vários adaptadores de rede conectados à VM, você poderá exibir as rotas efetivas para qualquer adaptador de rede, selecionando-a. Como cada adaptador de rede pode estar em uma sub-rede diferente, cada adaptador de rede pode ter diferentes rotas efetivas.

    No exemplo mostrado na figura anterior, as rotas listadas são rotas padrão que o Azure cria para cada sub-rede. A lista tem pelo menos essas rotas, mas pode ter rotas adicionais, dependendo dos recursos que você pode ter habilitado para a rede virtual, como se estivesse sendo emparelhada por outra rede virtual ou conectado à rede local por meio de um gateway de VPN do Azure. Para saber mais sobre cada uma das rotas e outras rotas que podem ser exibidas para o adaptador de rede, consulte Roteamento de tráfego de rede virtual. Se a lista tiver um grande número de rotas, talvez seja mais fácil selecionar Baixar para baixar um arquivo .csv com a lista de rotas.

Embora as rotas efetivas tenham sido exibidas na VM nas etapas anteriores, você também poderá exibir rotas efetivas por meio de:

Diagnosticar usando o PowerShell

Observação

Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Confira Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

É possível executar os comandos a seguir no Azure Cloud Shell ou executando o PowerShell no computador. O Azure Cloud Shell é um shell interativo gratuito. Ele tem ferramentas do Azure instaladas e configuradas para usar com sua conta. Se executar o PowerShell do computador, será necessário o módulo do Azure PowerShell, versão 1.0.0 ou posterior. Execute Get-Module -ListAvailable Az no computador para localizar a versão instalada. Se você precisa atualizar, consulte Instalar o módulo do Azure PowerShell. Se estiver executando o PowerShell localmente, também precisará executar Connect-AzAccount para fazer logon no Azure com uma conta que tenha as permissões necessárias.

Obtenha as rotas efetivas para um adaptador de rede com Get-AzEffectiveRouteTable. O exemplo a seguir obtém as rotas efetivas para uma interface de rede nomeada myVMNic1, que está em um grupo de recursos nomeado myResourceGroup:

Get-AzEffectiveRouteTable `
  -NetworkInterfaceName myVMNic1 `
  -ResourceGroupName myResourceGroup `
  | Format-Table

Para reconhecer as informações retornadas na saída, consulte Visão geral do roteamento. A saída será retornada apenas se a VM estiver no estado em execução. Se houver vários adaptadores de rede conectadas à VM, será possível revisar as rotas efetivas para cada adaptador de rede. Como cada adaptador de rede pode estar em uma sub-rede diferente, cada adaptador de rede pode ter diferentes rotas efetivas. Se ainda houver um problema de comunicação, consulte diagnóstico adicional e considerações.

Se você não souber o nome de um adaptador de rede, mas souber o nome da VM à qual o adaptador de rede está conectado, os comandos a seguir retornarão as IDs de todos os adaptadores de rede conectados a uma VM:

$VM = Get-AzVM -Name myVM `
  -ResourceGroupName myResourceGroup
$VM.NetworkProfile

Você receberá uma saída semelhante ao exemplo a seguir:

NetworkInterfaces
-----------------
{/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMNic1

Na saída anterior, o nome da interface de rede é myVMNic1.

Diagnosticar usando a CLI do Azure

É possível executar os comandos a seguir no Azure Cloud Shell ou executando a CLI no computador. Este artigo requer a CLI do Azure versão 2.0.32 ou posterior. Execute az --version para localizar a versão instalada. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure. Se você estiver executando a CLI do Azure localmente, também precisará executar az login e fazer logon no Azure com uma conta que tenha as permissões necessárias.

Obtenha as rotas efetivas para um adaptador de rede com az network nic show-effective-route-table. O exemplo a seguir obtém as rotas efetivas para uma interface de rede nomeada myVMNic1, que está em um grupo de recursos nomeado myResourceGroup:

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

Para reconhecer as informações retornadas na saída, consulte Visão geral do roteamento. A saída será retornada apenas se a VM estiver no estado em execução. Se houver vários adaptadores de rede conectadas à VM, será possível revisar as rotas efetivas para cada adaptador de rede. Como cada adaptador de rede pode estar em uma sub-rede diferente, cada adaptador de rede pode ter diferentes rotas efetivas. Se ainda houver um problema de comunicação, consulte diagnóstico adicional e considerações.

Se você não souber o nome de um adaptador de rede, mas souber o nome da VM à qual o adaptador de rede está conectado, os comandos a seguir retornarão as IDs de todos os adaptadores de rede conectados a uma VM:

az vm show \
  --name myVM \
  --resource-group myResourceGroup

Resolver um problema

Resolver problemas de roteamento normalmente consiste em:

  • Adicionar uma rota personalizada para substituir uma das rotas padrão do Azure. Saiba como adicionar uma rota personalizada.
  • Alterar ou remover uma rota personalizada que pode causar roteamento para um local indesejado. Saiba como alterar ou excluir uma rota personalizada.
  • Garantir que a tabela de rotas que contém quaisquer rotas personalizadas definidas esteja associada à sub-rede na qual o adaptador de rede está. Saiba como associar uma tabela de rotas a uma sub-rede.
  • Garantir que dispositivos como o gateway de VPN do Azure ou os dispositivos virtuais de rede que você implantou estejam operacionais. Use a funcionalidade Diagnóstico do VPN do Observador de Rede para determinar qualquer problema com um gateway de VPN do Azure.

Se ainda houver problemas de comunicação, confira Considerações e Diagnóstico adicional.

Considerações

Considere os pontos a seguir ao solucionar problemas de comunicação:

  • O roteamento é baseado no LPM (prefixo correspondente mais longo) entre as rotas que você definiu, o BGP (Border Gateway Protocol) e as rotas do sistema. Se houver mais de uma rota com a mesma correspondência de LPM, uma rota será selecionada com base na origem na ordem listada em Visão geral do roteamento. Com rotas efetivas, somente será possível ver rotas efetivas que são uma correspondência LPM, com base em todas as rotas disponíveis. Ver como as rotas são avaliadas para um adaptador de rede torna muito mais fácil solucionar problemas de rotas específicas que podem estar afetando a comunicação de VM.
  • Se você definiu rotas personalizadas para uma NVA (solução de virtualização de rede), com Solução de Virtualização como o tipo do próximo salto, assegure-se de que o encaminhamento de IP está habilitado na NVA que recebe o tráfego, ou os pacotes são removidos. Saiba mais sobre habilitar encaminhamento de IP para um adaptador de rede. Além disso, o sistema operacional ou o aplicativo dentro da NVA também deve poder encaminhar o tráfego e ser configurado para isso.
  • Se você criou uma rota para 0.0.0.0/0, todo o tráfego de saída da Internet será roteado para o próximo salto especificado, como um gateway de VPN ou NVA. A criação dessa rota é muitas vezes referida como túnel forçado. Conexões remotas usando os protocolos RDP ou SSH da Internet para a VM podem não funcionar com essa rota, dependendo de como o próximo salto lida com o tráfego. O túnel forçado pode ser habilitado:
    • Ao usar VPN site a site, crie uma rota com um tipo do próximo salto de Gateway de VPN. Saiba mais sobre configuração de túnel forçado.
    • Se um 0.0.0.0/0 (rota padrão) for anunciado pelo BGP através de um gateway de rede virtual ao usar VPN de site a site ou um circuito ExpressRoute. Saiba mais sobre como usar BGP com VPN site a site ou ExpressRoute.
  • Para que o tráfego de emparelhamento de rede virtual funcione corretamente, uma rota do sistema com um tipo do próximo salto do Emparelhamento de VNet deve existir para o intervalo de prefixo da rede virtual emparelhada. Se essa rota não existir e o link de emparelhamento de rede virtual for Conectado:
  • Embora o Azure atribua rotas padrão a cada adaptador de rede do Azure, se houver vários adaptadores de rede anexados à VM, somente o adaptador de rede principal receberá uma rota padrão (0.0.0.0/0), ou gateway, dentro do sistema operacional da VM. Saiba como criar uma rota padrão para adaptadores de rede secundários anexados a uma VM Windows ou Linux. Saiba mais sobre adaptadores de rede primários e secundários.

Diagnóstico adicional

  • Para executar um teste rápido para determinar o tipo do próximo salto para o tráfego destinado a um local, use a funcionalidade Próximo Salto do Observador de Rede do Azure. O próximo salto informa qual é o tipo do próximo salto para o tráfego destinado a um local especificado.
  • Se não houver rotas que causem falha na comunicação de rede de uma VM, o problema pode ser devido ao software de firewall em execução no sistema operacional da VM
  • Se você forçar tráfego de túnel para um dispositivo local por meio de um gateway de VPN, ou NVA, talvez não consiga conectar uma VM pela Internet, dependendo de como configurou o roteamento para os dispositivos. Confirme se o roteamento configurado para o dispositivo roteia o tráfego para um endereço IP público ou privado para a VM.
  • Use a funcionalidade solucionar problemas de conexão do Observador de Rede para determinar o roteamento, a filtragem e as causas dos problemas de comunicação de saída no sistema operacional.

Próximas etapas