Compartilhar via


Solucionar problemas de rede virtual

Este artigo fornece diretrizes para solucionar problemas de cenários comuns para redes virtuais no Microsoft Power Platform. Ele se concentra em usar o módulo Microsoft.PowerPlatform.EnterprisePolicies PowerShell para ajudá-lo a identificar e resolver problemas relacionados às configurações de rede virtual.

Usar o módulo de diagnóstico do PowerShell

O módulo do Microsoft.PowerPlatform.EnterprisePolicies PowerShell ajuda você a diagnosticar e solucionar problemas relacionados às configurações de rede virtual no Power Platform. Você pode usar a ferramenta para verificar a conectividade entre seu ambiente do Power Platform e sua rede virtual. Você também pode usá-lo para identificar quaisquer configurações incorretas que possam estar causando problemas. Este módulo de diagnóstico do PowerShell está disponível na Galeria do PowerShell e em seu repositório GitHub, PowerPlatform-EnterprisePolicies.

Instalar o módulo

Para instalar o módulo de diagnóstico do PowerShell, execute o seguinte comando do PowerShell:

Install-Module -Name Microsoft.PowerPlatform.EnterprisePolicies

Executar as funções de diagnóstico

Depois de instalar o módulo, importe-o para sua sessão do PowerShell executando o seguinte comando:

Import-Module Microsoft.PowerPlatform.EnterprisePolicies

O módulo inclui várias funções para diagnosticar e solucionar problemas relacionados às configurações de rede virtual. Algumas das principais funções são:

  • Get-EnvironmentRegion: recupera a região do ambiente do Power Platform especificado.
  • Get-EnvironmentUsage: fornece informações sobre o uso do ambiente do Power Platform especificado.
  • Test-DnsResolution: testa a resolução DNS para o nome de domínio especificado.
  • Test-NetworkConnectivity: testa a conectividade de rede entre o ambiente do Power Platform e o recurso de destino.
  • Test-TLSHandshake: testa se um handshake TLS pode ser estabelecido entre o ambiente do Power Platform e o recurso de destino.

Para obter uma lista completa das funções disponíveis no módulo de diagnóstico, consulte o Módulo Microsoft.PowerPlatform.EnterprisePolicies.

Relatar problemas no módulo de diagnóstico

Se você encontrar problemas ao executar o módulo de diagnóstico, relate-os por meio do repositório GitHub em que o módulo está hospedado. O repositório está disponível em: PowerPlatform-EnterprisePolicies.

Para relatar um problema, vá para a seção Problemas do repositório e abra um novo problema. Forneça informações detalhadas sobre o problema encontrado, incluindo mensagens de erro ou entradas de log que possam ajudar ao investigar o problema. Não inclua informações confidenciais em seu relatório.

Solução de problemas comuns

Um ambiente funciona, mas outro não

Se tudo estiver configurado corretamente, mas você ainda encontrar problemas, use a função Get-EnvironmentRegion do módulo de diagnóstico do PowerShell para verificar se as regiões de seus ambientes do Power Platform são as mesmas. Execute o comando a seguir:

Get-EnvironmentRegion -EnvironmentId "<EnvironmentId>"

Se os ambientes estiverem em regiões diferentes e um funcionar, mas o outro não funcionar, o problema estará na configuração da rede virtual para a região com falha. Para garantir que a configuração completa esteja configurada corretamente, execute quaisquer comandos de diagnóstico adicionais em ambas as regiões. Para especificar uma região, inclua o -Region parâmetro. Por exemplo:

Test-DnsResolution -EnvironmentId "<EnvironmentId>" -HostName "<HostName>" -Region "<AzureRegion>"

Seu ambiente pertence a uma geografia específica do Power Platform. No entanto, uma região do Power Platform pode abranger duas regiões do Azure. Seu ambiente pode estar localizado em qualquer região e também pode fazer failover automaticamente entre elas. Portanto, para garantir alta disponibilidade e conectividade, você precisa configurar suas redes virtuais em ambas as regiões do Azure associadas à sua região do Power Platform. Para saber como as regiões do Power Platform são mapeadas para regiões do Azure que dão suporte à funcionalidade de rede virtual, consulte as regiões do Power Platform.

Nome do host não encontrado

Se você encontrar problemas que afetam a resolução de nome de host, use a função Test-DnsResolution do módulo de diagnóstico do PowerShell para verificar se o nome do host foi resolvido corretamente. Execute o comando a seguir:

Test-DnsResolution -EnvironmentId "<EnvironmentId>" -HostName "<HostName>"

Esse comando testa a resolução DNS para o nome do host especificado no contexto do seu ambiente do Power Platform. A solicitação inicia da sub-rede delegada e tenta resolver o nome do host usando o servidor DNS configurado para sua rede virtual. Se o nome do host não for resolvido corretamente, talvez seja necessário verificar as configurações de DNS para verificar se o nome do host está configurado corretamente.

Importante

Se você observar que sua configuração de DNS está incorreta e precisar atualizar as configurações do servidor DNS para sua rede virtual, consulte Posso atualizar o endereço DNS da minha rede virtual depois que ele for delegado a "Microsoft.PowerPlatform/enterprisePolicies"?

A solicitação usa um endereço IP público em vez do endereço IP privado

Se você encontrar problemas nos quais as solicitações a um recurso usam um endereço IP público em vez do endereço IP privado, a resolução DNS para o nome do host do recurso poderá estar retornando um endereço IP público. Esse problema pode afetar recursos do Azure e não do Azure.

Recurso não-Azure sem ponto de extremidade privado

Se um recurso não-Azure não tiver um ponto de extremidade privado, mas você puder acessá-lo de sua rede virtual, será necessário configurar o servidor DNS para resolver o nome de host do recurso para o seu endereço IP privado. Adicione um registro DNS A ao servidor DNS que mapeia o nome do host do recurso para seu endereço IP privado:

  • Se você estiver usando um servidor DNS personalizado, adicione o registro A diretamente ao servidor.
  • Se você estiver usando um DNS fornecido pelo Azure, crie uma Zona DNS Privada do Azure e vincule-a à sua rede virtual. Em seguida, adicione o registro A à zona DNS privada.

Esse mapeamento garante que você acesse o recurso por meio de seu endereço IP privado.

Recurso do Azure que possui um ponto de extremidade privado

Se um recurso do Azure tiver um ponto de extremidade privado, a resolução DNS para o nome do host do recurso deverá retornar o endereço IP privado associado ao ponto de extremidade privado. Se a resolução DNS retornar, em vez disso, um endereço IP público, é possível que sua configuração de DNS esteja faltando registros. Siga estas etapas:

  1. Verifique se existe uma zona DNS privada para o tipo de recurso. Por exemplo, privatelink.database.windows.net para o Banco de Dados SQL do Azure. Se a zona DNS privada não existir, crie uma.
  2. Verifique se a zona DNS privada está vinculada à sua rede virtual. Se a zona DNS privada não estiver vinculada à sua rede virtual, vincule-a.

Depois de vincular a zona DNS privada à sua rede virtual, o nome do host do recurso deverá ser resolvido para o endereço IP privado associado ao ponto de extremidade privado.

Testar alterações de configuração de DNS

Depois de atualizar a configuração de DNS, use a função Test-DnsResolution do módulo de diagnóstico do PowerShell para verificar se o nome do host é resolvido para o endereço IP privado correto. Execute o comando a seguir:

Test-DnsResolution -EnvironmentId "<EnvironmentId>" -HostName "<HostName>"

Não é possível se conectar ao recurso

Se você tiver problemas que afetam a conectividade com um recurso, use a função Test-NetworkConnectivity do módulo de diagnóstico do PowerShell para verificar a conectividade. Execute o comando a seguir:

Test-NetworkConnectivity -EnvironmentId "<EnvironmentId>" -Destination "<ResourceAddress>" -Port 1433

Esse comando tenta estabelecer uma conexão TCP com o destino e a porta especificados no contexto do seu ambiente do Power Platform. A solicitação é iniciada a partir da sub-rede delegada e tenta se conectar ao destino especificado usando a configuração de rede da rede virtual. Se a conexão falhar, talvez seja necessário verificar as configurações de rede para verificar se o destino está acessível na rede virtual. Uma conexão bem-sucedida indica que a conectividade de rede existe entre o ambiente do Power Platform e o recurso especificado.

Observação

Esse comando testa apenas se uma conexão TCP pode ser estabelecida com o destino e a porta especificados. Ele não testa se o recurso está disponível ou se algum problema no nível do aplicativo pode estar impedindo o acesso ao recurso.

Não é possível estabelecer um TLS handshake

Alguns firewalls podem permitir que conexões TCP sejam estabelecidas, mas, em seguida, bloquear o tráfego real para o recurso (por exemplo, HTTPS). Portanto, mesmo que a função Test-NetworkConnectivity indique conectividade de rede, esse status não garante que o recurso esteja totalmente acessível.

Use a função Test-TLSHandshake para diagnosticar por que um handshake não pode ser estabelecido. Execute o comando a seguir:

Test-TLSHandshake -EnvironmentId "<EnvironmentId>" -Destination "<ResourceAddress>" -Port 1433

O comando retorna informações que podem ajudá-lo a depurar por que o handshake falhou. A saída inclui o certificado que o servidor apresentou, o conjunto de criptografias, o protocolo e quaisquer descrições de erro SSL.

Importante

Há suporte apenas para certificados publicamente confiáveis. Para obter mais informações, consulte Você dá suporte a certificados desconhecidos?

A conectividade é bem-sucedida, mas o aplicativo ainda não está funcionando

Se os testes de conectividade forem bem-sucedidos, mas você ainda estiver enfrentando problemas em seu aplicativo, verifique as configurações e as configurações no nível do aplicativo:

  1. Verifique se o firewall permite o acesso da sub-rede delegada ao recurso.
  2. Verifique se o certificado que o recurso apresenta é publicamente confiável.
  3. Verifique se nenhum problema de autenticação ou autorização impede o acesso ao recurso.

Talvez você não consiga diagnosticar ou resolver o problema usando o módulo de diagnóstico do PowerShell. Nesse caso, crie uma sub-rede sem delegação em sua rede virtual e implante uma VM (máquina virtual) nessa sub-rede. Em seguida, você pode usar a VM para executar mais etapas de diagnóstico e solução de problemas, como verificar o tráfego de rede, analisar logs e testar a conectividade no nível do aplicativo.