Diagnosticar um problema de roteamento de rede de máquina virtual usando a CLI do Azure
Neste artigo, você aprenderá a usar a ferramenta de próximo salto do Observador de Rede do Azure para solucionar e diagnosticar um problema de roteamento de VM que está impedindo que ele se comunique corretamente com outros recursos.
Pré-requisitos
Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
Azure Cloud Shell ou CLI do Azure.
As etapas neste artigo executam os comandos da CLI do Azure interativamente no Azure Cloud Shell. Para executar os comandos no Cloud Shell, selecione Open Cloud Shell no canto superior direito de um bloco de código. Selecione Copiar para copiar o código e cole-o no Cloud Shell para executá-lo. Você também pode executar o Cloud Shell de dentro do portal do Azure.
Você também pode instalar a CLI do Azure localmente para executar os comandos. Este artigo requer a versão 2.0 ou posterior da CLI do Azure. Execute o comando az --version para localizar a versão instalada. Se você executar a CLI do Azure localmente, entre no Azure usando o comando az login .
Criar uma máquina virtual
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 seguinte cria um grupo de recursos com o nome 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 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 seguinte cria uma VM com o nome myVm:
az vm create \
--resource-group myResourceGroup \
--name myVm \
--image Ubuntu2204 \
--generate-ssh-keys
A criação da VM demora alguns minutos. Não continue com as etapas restantes até que a VM seja criada e a CLI do Azure retorne a saída.
Testar a comunicação de rede
Para testar a comunicação de rede com o Inspetor de Rede, você deve primeiro habilitar um inspetor de rede na região em que a VM que deseja testar está e, em seguida, usar o recurso de próximo salto do Inspetor de Rede para testar a comunicação.
Ativar o observador de rede
Se você já tiver um observador de rede habilitado na região Leste dos EUA, pule para Usar próximo salto. Use o comando az network watcher configure 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 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 routeTableId é System Route. 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 retornada informa que None é o nextHopType e que o routeTableId também é System Route. 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 melhor o roteamento, revise as rotas efetivas 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 seguinte texto 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 para testar a az network watcher show-next-hop
comunicação de saída para 13.107.21.200 em Usar próximo salto, a rota com o addressPrefix 0.0.0.0/0** foi usada para rotear o tráfego para o endereço, já 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 você usou o comando para testar a az network watcher show-next-hop
comunicação de saída para 172.31.0.100, o resultado informou que não havia nenhum tipo de salto seguinte. Na saída retornada, você também verá o seguinte texto:
{
"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 az network watcher nic show-effective-route-table
comando, 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 é None. 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, 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 para a rota. Uma verificação mostraria a rede virtual como o nextHopType.
Clean up resources (Limpar 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
Próximos passos
Neste artigo, você criou uma VM e diagnosticou o roteamento de rede a partir da 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 conexões de VM de saída, você também pode determinar a latência e o tráfego de rede permitido e negado entre a VM e um ponto de extremidade usando o recurso de solução de problemas de conexão do Inspetor de Rede. Você pode monitorar a comunicação entre uma VM e um ponto de extremidade, como um endereço IP ou URL ao longo do tempo usando o recurso de monitor de conexão do Inspetor de Rede. Para obter mais informações, consulte Monitorar uma conexão de rede.