Diagnosticar um problema de roteamento de rede de máquina virtual - Azure PowerShell
Neste artigo, você implanta uma máquina virtual (VM) e, em seguida, verifica as comunicações para um endereço IP e URL. Vai determinar a causa de uma falha de comunicação e aprender a resolvê-la.
Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Azure Cloud Shell
O Azure aloja o Azure Cloud Shell, um ambiente de shell interativo que pode utilizar através do seu browser. Pode utilizar o Bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. Você pode usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada em seu ambiente local.
Para iniciar o Azure Cloud Shell:
Opção | Exemplo/Ligação |
---|---|
Selecione Experimentar no canto superior direito de um código ou bloco de comandos. Selecionar Experimentar não copia automaticamente o código ou comando para o Cloud Shell. | |
Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser. | |
Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure. |
Para usar o Azure Cloud Shell:
Inicie o Cloud Shell.
Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou comando.
Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e Linux ou selecionando Cmd+Shift+V no macOS.
Selecione Enter para executar o código ou comando.
Se você optar por instalar e usar o PowerShell localmente, este artigo exigirá o módulo Az PowerShell. Para obter mais informações, consulte Como instalar o Azure PowerShell. Para localizar a versão instalada, execute Get-InstalledModule -Name Az
. Se você executar o PowerShell localmente, entre no Azure usando o cmdlet Connect-AzAccount .
Criar uma VM
Antes de criar uma VM, tem de criar um grupo de recursos para conter a VM. Crie um grupo de recursos com New-AzResourceGroup. O exemplo seguinte cria um grupo de recursos com o nome myResourceGroup na localização eastus.
New-AzResourceGroup -Name myResourceGroup -Location EastUS
Crie a VM com New-AzVM. Ao executar este passo, serão pedidas credenciais. Os valores que introduzir são configurados, como o nome de utilizador e a palavra-passe para a VM.
$vM = New-AzVm `
-ResourceGroupName "myResourceGroup" `
-Name "myVm" `
-Location "East US"
A criação da VM demora alguns minutos. Não continue com os restantes passos até que a VM seja criada e o PowerShell devolva um resultado.
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, use Get-AzNetworkWatcher para recuperar o observador de rede. O seguinte exemplo obtém um observador de rede existente com o nome NetworkWatcher_eastus que se encontra no grupo de recursos NetworkWatcherRG:
$networkWatcher = Get-AzNetworkWatcher `
-Name NetworkWatcher_eastus `
-ResourceGroupName NetworkWatcherRG
Se você ainda não tiver um observador de rede habilitado na região Leste dos EUA, use New-AzNetworkWatcher para criar um observador de rede na região Leste dos EUA:
$networkWatcher = New-AzNetworkWatcher `
-Name "NetworkWatcher_eastus" `
-ResourceGroupName "NetworkWatcherRG" `
-Location "East US"
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 o comando Get-AzNetworkWatcherNextHop 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:
Get-AzNetworkWatcherNextHop `
-NetworkWatcher $networkWatcher `
-TargetVirtualMachineId $VM.Id `
-SourceIPAddress 192.168.1.4 `
-DestinationIPAddress 13.107.21.200
Após alguns segundos, a saída informa que o NextHopType é Internet e que o 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:
Get-AzNetworkWatcherNextHop `
-NetworkWatcher $networkWatcher `
-TargetVirtualMachineId $VM.Id `
-SourceIPAddress 192.168.1.4 `
-DestinationIPAddress 172.31.0.100
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 Get-AzEffectiveRouteTable :
Get-AzEffectiveRouteTable `
-NetworkInterfaceName myVm `
-ResourceGroupName myResourceGroup |
Format-table
A saída que inclui o seguinte texto é retornada:
Name State Source AddressPrefix NextHopType NextHopIpAddress
---- ----- ------ ------------- ----------- ----------------
Active Default {192.168.0.0/16} VnetLocal {}
Active Default {0.0.0.0/0} Internet {}
Active Default {10.0.0.0/8} None {}
Active Default {100.64.0.0/10} None {}
Active Default {172.16.0.0/12} None {}
Como você pode ver na saída anterior, a rota com o AddressPrefix de 0.0.0.0/0 roteia todo o tráfego não destinado a endereços dentro dos prefixos de endereço de outra rota com um próximo salto de Internet. Como você também pode ver na saída, 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 não for mais necessário, você pode usar Remove-AzResourceGroup para remover o grupo de recursos e todos os recursos que ele contém:
Remove-AzResourceGroup -Name myResourceGroup -Force
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.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários