Partilhar via


Diagnosticar um problema de encaminhamento de máquina virtual

Neste artigo, você aprenderá a diagnosticar um problema de roteamento exibindo as rotas que são eficazes para uma interface de rede em uma máquina virtual (VM). O Azure cria várias rotas padrão para cada sub-rede de rede virtual. Você pode substituir as rotas padrão do Azure definindo rotas em uma tabela de rotas e, em seguida, associando a tabela de rotas a uma sub-rede. A combinação de rotas que você cria, as rotas padrão do Azure e quaisquer rotas propagadas de sua rede local por meio de um gateway de VPN do Azure (se sua rede virtual estiver conectada à sua rede local) por meio do protocolo de gateway de borda (BGP) são as rotas efetivas para todas as interfaces de rede em uma sub-rede. Se você não estiver familiarizado com rede virtual, interface de rede ou conceitos de roteamento, consulte Visão geral de rede virtual, Interface de rede e Visão geral de roteamento.

Cenário

Você tenta se conectar a uma VM, mas a conexão falha. Para determinar por que você não pode se conectar à VM, você pode exibir as rotas efetivas para uma interface de rede usando o portal do Azure, o PowerShell ou a CLI do Azure.

As etapas a seguir pressupõem que você tenha uma VM existente para exibir as rotas efetivas. Se você não tiver uma VM existente, primeiro implante uma VM Linux ou Windows para concluir as tarefas neste artigo. Os exemplos neste artigo são para uma VM chamada myVM com uma interface de rede chamada myVMNic1. A VM e a interface de rede estão em um grupo de recursos chamado myResourceGroup e estão na região Leste dos EUA. Altere os valores nas etapas, conforme apropriado, para a VM para a qual você está 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, digite o nome de uma VM que está no 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 Rede e navegue até o recurso de interface de rede selecionando seu nome. Ver interfaces de rede

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

    Se houver várias interfaces de rede conectadas à VM, você poderá visualizar as rotas efetivas para qualquer interface de rede selecionando-a. Como cada interface de rede pode estar em uma sub-rede diferente, cada interface de rede pode ter diferentes rotas efetivas.

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

Embora as rotas efetivas tenham sido visualizadas por meio da VM nas etapas anteriores, você também pode exibir rotas efetivas por meio de:

Diagnosticar usando o PowerShell

Nota

Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Você pode executar os comandos que seguem no Azure Cloud Shell ou executando o PowerShell do seu computador. O Azure Cloud Shell é um shell interativo gratuito. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta. Se você executar o PowerShell a partir do seu computador, precisará do módulo do Azure PowerShell, versão 1.0.0 ou posterior. Execute Get-Module -ListAvailable Az no seu computador, para encontrar a versão instalada. Se precisar de atualizar, veja Install Azure PowerShell module (Instalar o módulo do Azure PowerShell). Se você estiver executando o PowerShell localmente, também precisará executar para fazer Connect-AzAccount logon no Azure com uma conta que tenha as permissões necessárias.

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

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

Para entender as informações retornadas na saída, consulte Visão geral de roteamento. A saída só será retornada se a VM estiver no estado de execução. Se houver várias interfaces de rede conectadas à VM, você poderá revisar as rotas efetivas para cada interface de rede. Como cada interface de rede pode estar em uma sub-rede diferente, cada interface de rede pode ter diferentes rotas efetivas. Se continuar a ter um problema de comunicação, consulte diagnósticos e considerações adicionais.

Se você não souber o nome de uma interface de rede, mas souber o nome da VM à qual a interface de rede está conectada, os comandos a seguir retornarão as IDs de todas as interfaces de rede conectadas a uma VM:

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

Você recebe 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

Você pode executar os comandos que seguem no Azure Cloud Shell ou executando a CLI do seu 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 precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI). 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 uma interface de rede com az network nic show-effective-route-table. O exemplo a seguir obtém as rotas efetivas para uma interface de rede chamada myVMNic1 que está em um grupo de recursos chamado myResourceGroup:

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

Para entender as informações retornadas na saída, consulte Visão geral de roteamento. A saída só será retornada se a VM estiver no estado de execução. Se houver várias interfaces de rede conectadas à VM, você poderá revisar as rotas efetivas para cada interface de rede. Como cada interface de rede pode estar em uma sub-rede diferente, cada interface de rede pode ter diferentes rotas efetivas. Se continuar a ter um problema de comunicação, consulte diagnósticos e considerações adicionais.

Se você não souber o nome de uma interface de rede, mas souber o nome da VM à qual a interface de rede está conectada, os comandos a seguir retornarão as IDs de todas as interfaces de rede conectadas a uma VM:

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

Resolver um problema

A resolução de problemas de roteamento geralmente consiste em:

  • Adicionar uma rota personalizada para substituir uma das rotas padrão do Azure. Saiba como adicionar uma rota personalizada.
  • Altere ou remova 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 a interface de rede está. Saiba como associar uma tabela de rotas a uma sub-rede.
  • Garantir que dispositivos como o gateway VPN do Azure ou os dispositivos virtuais de rede que você implantou sejam operáveis. Use o recurso de diagnóstico de VPN do Inspetor de Rede para determinar quaisquer problemas com um gateway de VPN do Azure.

Se continuar a ter problemas de comunicação, consulte Considerações e diagnóstico adicional.

Considerações

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

  • O roteamento é baseado na correspondência de prefixo mais longa (LPM) entre rotas que você definiu, protocolo de gateway de borda (BGP) e rotas do sistema. Se houver mais de uma rota com a mesma correspondência LPM, uma rota será selecionada com base em sua origem na ordem listada em Visão geral de roteamento. Com rotas eficazes, você só pode 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 uma interface de rede torna muito mais fácil solucionar problemas de rotas específicas que podem estar afetando a comunicação da sua VM.
  • Se você definiu rotas personalizadas para um dispositivo virtual de rede (NVA), com o Dispositivo Virtual como o próximo tipo de salto, verifique se o encaminhamento IP está habilitado no NVA que recebe o tráfego ou se os pacotes são descartados. Saiba mais sobre como habilitar o encaminhamento IP para uma interface de rede. Além disso, o sistema operacional ou aplicativo dentro do NVA também deve ser capaz de encaminhar o tráfego de rede e ser configurado para fazê-lo.
  • 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 para um gateway NVA ou VPN. A criação de tal rota é muitas vezes referida como tunelamento forçado. As conexões remotas usando os protocolos RDP ou SSH da Internet para sua 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 ativado:
    • Ao usar VPN site a site, criando uma rota com um tipo de gateway VPN de salto seguinte. Saiba mais sobre como configurar o túnel forçado.
    • Se uma 0.0.0.0/0 (rota padrão) for anunciada por BGP por meio de um gateway de rede virtual ao usar uma VPN site a site ou um circuito de Rota Expressa. Saiba mais sobre como usar o BGP com uma 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 de próximo salto de emparelhamento de rede virtual deve existir para o intervalo de prefixos da rede virtual emparelhada. Se essa rota não existir e o link de emparelhamento de rede virtual estiver Conectado:
    • Aguarde alguns segundos e tente novamente. Se for um link de emparelhamento recém-estabelecido, ocasionalmente leva mais tempo para propagar rotas para todas as interfaces de rede em uma sub-rede. Para saber mais sobre emparelhamento de rede virtual, consulte Visão geral do emparelhamento de rede virtual e gerenciar emparelhamento de rede virtual.
    • As regras do grupo de segurança de rede podem estar afetando a comunicação. Para obter mais informações, consulte Diagnosticar um problema de filtro de tráfego de rede de máquina virtual.
  • Embora o Azure atribua rotas padrão a cada interface de rede do Azure, se você tiver várias interfaces de rede conectadas à VM, somente à interface de rede primária será atribuída 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 interfaces de rede secundárias conectadas a uma VM Windows ou Linux . Saiba mais sobre interfaces de rede primária e secundária.

Diagnóstico adicional

  • Para executar um teste rápido para determinar o próximo tipo de salto para o tráfego destinado a um local, use o recurso Próximo salto do Azure Network Watcher. O próximo salto informa qual é o tipo de salto seguinte para o tráfego destinado a um local especificado.
  • Se não houver rotas que façam com que a comunicação de rede de uma VM falhe, o problema pode ser devido ao software de firewall em execução no sistema operacional da VM
  • Se você estiver forçando o tráfego de encapsulamento para um dispositivo local por meio de um gateway VPN ou NVA, talvez não consiga se conectar a uma VM pela Internet, dependendo de como você configurou o roteamento para os dispositivos. Confirme se o roteamento que você configurou para o dispositivo roteia o tráfego para um endereço IP público ou privado para a VM.
  • Use o recurso de solução de problemas de conexão do Inspetor de Rede para determinar as causas de roteamento, filtragem e problemas de comunicação de saída no sistema operacional.

Próximos passos