Diagnosticar um problema de encaminhamento de máquina virtual

Neste artigo, vai aprender a diagnosticar um problema de encaminhamento ao ver as rotas que são eficazes para uma interface de rede numa máquina virtual (VM). O Azure cria várias rotas predefinidas para cada sub-rede de rede virtual. Pode substituir as rotas predefinidas do Azure ao definir rotas numa tabela de rotas e, em seguida, associar a tabela de rotas a uma sub-rede. A combinação de rotas que cria, as rotas predefinidas do Azure e quaisquer rotas propagadas da sua rede no local através de um gateway de VPN do Azure (se a sua rede virtual estiver ligada à sua rede no local) através do protocolo BGP (border gateway) são as rotas efetivas para todas as interfaces de rede numa sub-rede. Se não estiver familiarizado com conceitos de rede virtual, interface de rede ou encaminhamento, veja Descrição geral da rede virtual, Interface de rede e Descrição geral do encaminhamento.

Scenario

Tenta ligar-se a uma VM, mas a ligação falha. Para determinar por que motivo não consegue ligar-se à VM, pode ver as rotas efetivas de uma interface de rede com o portal do Azure, o PowerShell ou a CLI do Azure.

Os passos que se seguem partem do princípio de que tem uma VM existente para ver as rotas efetivas. Se não tiver uma VM existente, implemente primeiro uma VM do Linux ou do Windows para concluir as tarefas neste artigo. Os exemplos neste artigo destinam-se a uma VM com o nome myVM com uma interface de rede denominada myVMNic1. A VM e a interface de rede estão num grupo de recursos com o nome myResourceGroup e estão na região E.U.A. Leste . Altere os valores nos passos, conforme adequado, para a VM para a qual está a diagnosticar o problema.

Diagnosticar com portal do Azure

  1. Inicie sessão no portal do Azure com uma conta do Azure que tenha as permissões necessárias.

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

  3. Em Definições à esquerda, selecione Rede e navegue para o recurso da interface de rede ao selecionar o respetivo nome. Ver interfaces de rede

  4. À esquerda, selecione Rotas efetivas. As rotas efetivas para uma interface de rede com o nome myVMNic1 são apresentadas na imagem seguinte: Ver rotas efetivas

    Se existirem várias interfaces de rede anexadas à VM, pode ver as rotas efetivas para qualquer interface de rede ao selecioná-la. Uma vez que cada interface de rede pode estar numa sub-rede diferente, cada interface de rede pode ter diferentes rotas eficazes.

    No exemplo apresentado na imagem anterior, as rotas listadas são rotas predefinidas que o Azure cria para cada sub-rede. A sua lista tem, pelo menos, estas rotas, mas pode ter rotas adicionais, consoante as capacidades que possa ter ativado para a sua rede virtual, como estar em modo de peering com outra rede virtual ou ligado à sua rede no local através de um gateway de VPN do Azure. Para saber mais sobre cada uma das rotas e outras rotas que poderá ver para a interface de rede, consulte Encaminhamento de tráfego de rede virtual. Se a sua lista tiver um grande número de rotas, poderá ser mais fácil selecionar Transferir para transferir um ficheiro .csv com a lista de rotas.

Embora as rotas efetivas tenham sido vistas através da VM nos passos anteriores, também pode ver rotas efetivas através de um:

Diagnosticar com o PowerShell

Nota

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

Pode executar os comandos que se seguem na Cloud Shell do Azure ou ao executar o PowerShell a partir do computador. O Azure Cloud Shell é uma shell interativa gratuita. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta. Se executar o PowerShell a partir do computador, precisa do módulo Azure PowerShell, versão 1.0.0 ou posterior. Execute Get-Module -ListAvailable Az no computador para localizar a versão instalada. Se precisar de atualizar, veja Install Azure PowerShell module (Instalar o módulo do Azure PowerShell). Se estiver a executar o PowerShell localmente, também terá de executar para iniciar Connect-AzAccount sessão 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 seguinte obtém as rotas efetivas para uma interface de rede com o nome myVMNic1, que está num grupo de recursos com o nome myResourceGroup:

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

Para compreender as informações devolvidas no resultado, veja Descrição geral do encaminhamento. A saída só é devolvida se a VM estiver no estado de execução. Se existirem várias interfaces de rede anexadas à VM, pode rever as rotas efetivas para cada interface de rede. Uma vez que cada interface de rede pode estar numa sub-rede diferente, cada interface de rede pode ter diferentes rotas eficazes. Se ainda estiver a ter um problema de comunicação, veja diagnóstico e consideraçõesadicionais.

Se não souber o nome de uma interface de rede, mas souber o nome da VM à qual a interface de rede está anexada, os seguintes comandos devolvem os IDs de todas as interfaces de rede anexadas a uma VM:

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

Recebe um resultado semelhante ao seguinte exemplo:

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

No resultado anterior, o nome da interface de rede é myVMNic1.

Diagnosticar com a CLI do Azure

Pode executar os comandos que se seguem na Cloud Shell do Azure ou ao executar a CLI a partir do computador. Este artigo requer a versão 2.0.32 ou posterior da CLI do Azure. Execute az --version para localizar a versão instalada. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI). Se estiver a executar a CLI do Azure localmente, também terá de executar az login e iniciar sessão 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 seguinte obtém as rotas efetivas para uma interface de rede com o nome myVMNic1 que se encontra num grupo de recursos com o nome myResourceGroup:

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

Para compreender as informações devolvidas no resultado, veja Descrição geral do encaminhamento. A saída só é devolvida se a VM estiver no estado de execução. Se existirem várias interfaces de rede anexadas à VM, pode rever as rotas efetivas para cada interface de rede. Uma vez que cada interface de rede pode estar numa sub-rede diferente, cada interface de rede pode ter diferentes rotas eficazes. Se ainda estiver a ter um problema de comunicação, veja diagnóstico e consideraçõesadicionais.

Se não souber o nome de uma interface de rede, mas souber o nome da VM à qual a interface de rede está anexada, os seguintes comandos devolvem os IDs de todas as interfaces de rede anexadas a uma VM:

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

Resolver um problema

Normalmente, a resolução de problemas de encaminhamento consiste em:

  • Adicionar uma rota personalizada para substituir uma das rotas predefinidas do Azure. Saiba como adicionar uma rota personalizada.
  • Altere ou remova uma rota personalizada que possa causar o encaminhamento para uma localização indesejada. Saiba como alterar ou eliminar uma rota personalizada.
  • Garantir que a tabela de rotas que contém quaisquer rotas personalizadas que definiu está associada à sub-rede onde se encontra a interface de rede. Saiba como associar uma tabela de rotas a uma sub-rede.
  • Garantir que dispositivos como o gateway de VPN do Azure ou as aplicações virtuais de rede que implementou são operáveis. Utilize a capacidade de diagnóstico de VPN de Observador de Rede para determinar quaisquer problemas com um gateway de VPN do Azure.

Se ainda estiver a ter problemas de comunicação, veja Considerações e Diagnóstico adicional.

Considerações

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

  • O encaminhamento baseia-se na correspondência de prefixos mais longa (LPM) entre as rotas que definiu, o protocolo BGP (border gateway protocol) e as rotas do sistema. Se existir mais do que uma rota com a mesma correspondência LPM, é selecionada uma rota com base na respetiva origem na ordem listada na Descrição geral do encaminhamento. Com rotas efetivas, só pode ver rotas efetivas que correspondem a um 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 resolver problemas de rotas específicas que possam estar a afetar a comunicação da VM.
  • Se tiver definido rotas personalizadas para uma aplicação virtual de rede (NVA), com a Aplicação Virtual como o tipo de salto seguinte, certifique-se de que o reencaminhamento IP está ativado na NVA que recebe o tráfego ou que os pacotes são removidos. Saiba mais sobre como ativar o reencaminhamento de IP para uma interface de rede. Além disso, o sistema operativo ou a aplicação na NVA também tem de ser capaz de reencaminhar o tráfego de rede e ser configurado para o fazer.
  • Se tiver criado uma rota para 0.0.0.0/0, todo o tráfego de saída da Internet é encaminhado para o próximo salto que especificou, como um gateway de NVA ou VPN. A criação dessa rota é frequentemente referida como túnel forçado. As ligações remotas que utilizam os protocolos RDP ou SSH da Internet para a VM podem não funcionar com esta rota, dependendo da forma como o próximo salto processa o tráfego. O túnel forçado pode ser ativado:
    • Ao utilizar a VPN site a site, crie uma rota com um tipo de próximo salto de Gateway de VPN. Saiba mais sobre como configurar o túnel forçado.
    • Se uma 0.0.0.0.0/0 (rota predefinida) for anunciada através do BGP através de um gateway de rede virtual ao utilizar uma VPN site a site ou circuito do ExpressRoute. Saiba mais sobre como utilizar o BGP com uma VPN site a site ou ExpressRoute.
  • Para que o tráfego de peering de rede virtual funcione corretamente, tem de existir uma rota de sistema com um tipo de VNet Peering seguinte para o intervalo de prefixos da rede virtual em modo de peering. Se tal rota não existir e a ligação de peering de rede virtual estiver Ligada:
  • Embora o Azure atribua rotas predefinidas a cada interface de rede do Azure, se tiver várias interfaces de rede ligadas à VM, apenas é atribuída uma rota predefinida à interface de rede primária (0.0.0.0.0/0) ou um gateway no sistema operativo da VM. Saiba como criar uma rota predefinida para interfaces de rede secundárias anexadas a uma VM do Windows ou linux . Saiba mais sobre as interfaces de rede primária e secundária.

Diagnóstico adicional

  • Para executar um teste rápido para determinar o tipo de salto seguinte para o tráfego destinado a uma localização, utilize a capacidade Salto seguinte do Azure Observador de Rede. O próximo salto indica-lhe qual é o tipo de próximo salto para o tráfego destinado a uma localização especificada.
  • Se não existirem rotas que causem a falha da comunicação de rede de uma VM, o problema pode dever-se ao software de firewall em execução no sistema operativo da VM
  • Se estiver a forçar o túnel de tráfego para um dispositivo no local através de um gateway de VPN ou NVA, poderá não conseguir ligar a uma VM a partir da Internet, dependendo da forma como configurou o encaminhamento para os dispositivos. Confirme que o encaminhamento que configurou para o dispositivo encaminha o tráfego para um endereço IP público ou privado para a VM.
  • Utilize a capacidade de resolução de problemas de ligação de Observador de Rede para determinar as causas do encaminhamento, da filtragem e do SO dos problemas de comunicação de saída.

Passos seguintes