Diagnosticar um problema de roteamento de rede de máquina virtual - CLI do Azure
Neste artigo, você implanta uma VM (máquina virtual ) e, em seguida, verifica a comunicação com um endereço IP e uma URL. Você determina a causa de uma falha de comunicação e como resolvê-la.
Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
Pré-requisitos
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
Este artigo exige a versão 2.0 ou posterior da CLI do Azure. Se você está usando o Azure Cloud Shell, a versão mais recente já está instalada.
Os comandos da CLI do Azure neste artigo são formatados para serem executados em um shell do Bash.
Criar uma máquina virtual
Antes de criar uma VM, você deve 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 eastus:
az group create --name myResourceGroup --location eastus
Crie uma VM com az vm create. Se as chaves SSH ainda não existirem em uma localização de chave padrão, o comando criará. Para usar um conjunto específico de chaves, use a opção --ssh-key-value
. O exemplo a seguir cria uma VM chamada myVm:
az vm create \
--resource-group myResourceGroup \
--name myVm \
--image Ubuntu2204 \
--generate-ssh-keys
A VM demora alguns minutos para criar. Não continue com as etapas restantes até que a VM seja criada e a CLI do Azure retorne a saída.
Testar comunicação de rede
Para testar a comunicação de rede com o Observador de Rede, primeiro habilite um observador de rede na região onde está localizada a VM que deseja testar e, em seguida, use a funcionalidade de próximo salto do Observador de Rede para testar a comunicação.
Habilitar o observador de rede
Se você já tiver um observador de rede habilitado na região Este dos EUA, vá para Usar próximo salto. Use o comando az network watcher configure para criar um observador de rede na região East US:
az network watcher configure \
--resource-group NetworkWatcherRG \
--locations eastus \
--enabled
Usar próximo salto
O Azure cria automaticamente as rotas para destinos padrão. Você pode criar rotas personalizadas que substituem as rotas padrão. Às vezes, as rotas personalizadas podem causar falha 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 a routeTableId é Rota do Sistema. Esse resultado permite que você saiba que há uma rota válida para o destino.
Teste a comunicação de saída da VM em 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 Nenhum é o nextHopType e que a routeTableId também é Rota do Sistema. Esse resultado permite que você saiba que, embora haja uma rota do sistema válida para o destino, não há nenhum próximo salto para encaminhar o tráfego para o destino.
Exibir detalhes de uma rota
Para analisar o roteamento adicional, examine as rotas reais 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 texto a seguir 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 az network watcher show-next-hop
para testar a comunicação de saída a 13.107.21.200 em Usar próximo salto, a rota com o addressPrefix 0.0.0.0/0** foi usada para encaminhar o tráfego para o endereço, pois nenhuma outra rota na saída inclui o endereço. Por padrão, todos os endereços não especificados dentro do prefixo de endereço de outra rota são encaminhados para a Internet.
Quando você usou o comando az network watcher show-next-hop
para testar a comunicação de saída 172.31.0.100, no entanto, o resultado informou que não houve nenhum tipo de próximo salto. O texto a seguir também está na saída retornada:
{
"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 comando az network watcher nic show-effective-route-table
, 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 é Nenhum. O Azure cria uma rota padrão para 172.16.0.0/12, mas não especifica um tipo de próximo salto até que haja um motivo. 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 da rota. Em seguida, uma verificação mostra a Rede virtual como o nextHopType.
Limpar os recursos
Quando não for mais necessário, você poderá usar az group delete para remover o grupo de recursos e todos os recursos que ele contém:
az group delete --name myResourceGroup --yes
Próximas etapas
Neste artigo, você criou uma VM e o roteamento de rede diagnosticado da VM. Você aprendeu que o Azure cria várias rotas padrão e testou o roteamento para dois destinos diferentes. Saiba mais sobre o roteamento no Azure e como criar rotas personalizadas.
Para conexões de VM de saída, determine também a latência e o tráfego de rede permitido e negado entre a VM e um ponto de extremidade, usando a funcionalidade solução de problemas de conexão do Observador de Rede. Você pode monitorar a comunicação entre uma VM e um ponto de extremidade, como um endereço de IP ou uma URL, ao longo do tempo usando a funcionalidade do monitor de conexão do Observador de Rede. Para obter mais informações, consulte Monitorar uma conexão de rede.