Condividi tramite


Risolvere i problemi di rete virtuale

Questo articolo fornisce indicazioni per la risoluzione dei problemi relativi agli scenari comuni per le reti virtuali in Microsoft Power Platform. È incentrato sull'uso del modulo Di PowerShell Microsoft.PowerPlatform.EnterprisePolicies per identificare e risolvere i problemi relativi alle configurazioni di rete virtuale.

Usare il modulo powerShell di diagnostica

Il Microsoft.PowerPlatform.EnterprisePolicies modulo PowerShell consente di diagnosticare e risolvere i problemi relativi alle configurazioni di rete virtuale in Power Platform. È possibile usare lo strumento per controllare la connettività tra l'ambiente Power Platform e la rete virtuale. È anche possibile usarlo per identificare eventuali configurazioni errate che potrebbero causare problemi. Questo modulo di diagnostica di PowerShell è disponibile da PowerShell Gallery e dal relativo repository GitHub, PowerPlatform-EnterprisePolicies.

Installare il modulo

Per installare il modulo Di PowerShell di diagnostica, eseguire il comando di PowerShell seguente:

Install-Module -Name Microsoft.PowerPlatform.EnterprisePolicies

Eseguire le funzioni di diagnostica

Dopo aver installato il modulo, importarlo nella sessione di PowerShell eseguendo il comando seguente:

Import-Module Microsoft.PowerPlatform.EnterprisePolicies

Il modulo include diverse funzioni per diagnosticare e risolvere i problemi relativi alle configurazioni di rete virtuale. Alcune delle funzioni chiave sono:

  • Get-EnvironmentRegion: recupera l'area dell'ambiente Power Platform specificato.
  • Get-EnvironmentUsage: fornisce informazioni sull'utilizzo dell'ambiente Power Platform specificato.
  • Test-DnsResolution: testa la risoluzione DNS per il nome di dominio specificato.
  • Test-NetworkConnectivity: verifica la connettività di rete tra l'ambiente Power Platform e la risorsa di destinazione.
  • Test-TLSHandshake: verifica se un handshake TLS può essere stabilito tra l'ambiente Power Platform e la risorsa di destinazione.

Per un elenco completo delle funzioni disponibili all'interno del modulo di diagnostica, vedere Modulo Microsoft.PowerPlatform.EnterprisePolicies.

Segnalare i problemi nel modulo di diagnostica

Se si verificano problemi durante l'esecuzione del modulo di diagnostica, segnalarli tramite il repository GitHub in cui è ospitato il modulo. Il repository è disponibile in: PowerPlatform-EnterprisePolicies.

Per segnalare un problema, passare alla sezione Problemi del repository e aprire un nuovo problema. Fornire informazioni dettagliate sul problema riscontrato, inclusi eventuali messaggi di errore o voci di log che potrebbero essere utili quando si esamina il problema. Non includere informazioni riservate nel report.

Risolvere i problemi comuni

Un ambiente funziona ma un altro non funziona

Se tutto è configurato correttamente, ma si verificano ancora problemi, usare la funzione Get-EnvironmentRegion dal modulo powerShell di diagnostica per verificare se le aree degli ambienti Power Platform sono le stesse. Esegui questo comando:

Get-EnvironmentRegion -EnvironmentId "<EnvironmentId>"

Se gli ambienti si trovano in aree diverse e uno funziona ma l'altro non lo è, il problema si verifica nella configurazione della rete virtuale per l'area con errori. Per assicurarsi che l'installazione completa sia configurata correttamente, eseguire eventuali altri comandi di diagnostica in entrambe le aree. Per specificare un'area, includere il -Region parametro . Per esempio:

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

L'ambiente appartiene a un'area geografica specifica di Power Platform. Tuttavia, un'area di Power Platform può estendersi su due aree di Azure. L'ambiente può trovarsi in entrambe le aree e può anche eseguire automaticamente il failover tra di essi. Pertanto, per garantire disponibilità elevata e connettività, è necessario configurare le reti virtuali in entrambe le aree di Azure associate all'area di Power Platform. Per informazioni sul mapping delle aree di Power Platform alle aree di Azure che supportano la funzionalità di rete virtuale, vedere Aree di Power Platform.

Nome host non trovato

Se si verificano problemi che influiscono sulla risoluzione dei nomi host, usare la funzione Test-DnsResolution del modulo Di PowerShell di diagnostica per verificare se il nome host viene risolto correttamente. Esegui questo comando:

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

Questo comando verifica la risoluzione DNS per il nome host specificato nel contesto dell'ambiente Power Platform. La richiesta viene avviata dalla subnet delegata e tenta di risolvere il nome host usando il server DNS configurato per la rete virtuale. Se il nome host non viene risolto correttamente, potrebbe essere necessario controllare le impostazioni DNS per assicurarsi che il nome host sia configurato correttamente.

Importante

Se si nota che la configurazione DNS non è corretta ed è necessario aggiornare le impostazioni del server DNS per la rete virtuale, vedere È possibile aggiornare l'indirizzo DNS della rete virtuale dopo che è stato delegato a "Microsoft.PowerPlatform/enterprisePolicies"?

La richiesta usa un indirizzo IP pubblico anziché l'indirizzo IP privato

Se si verificano problemi in cui le richieste a una risorsa usano un indirizzo IP pubblico anziché l'indirizzo IP privato, la risoluzione DNS per il nome host della risorsa potrebbe restituire un indirizzo IP pubblico. Questo problema può influire sulle risorse di Azure e non di Azure.

Risorsa non di Azure senza un endpoint privato

Se una risorsa non di Azure non ha un endpoint privato, ma è possibile accedervi dalla rete virtuale, è necessario configurare il server DNS per risolvere il nome host della risorsa nel relativo indirizzo IP privato. Aggiungere un record DNS A al server DNS che esegue il mapping del nome host della risorsa al relativo indirizzo IP privato:

  • Se si usa un server DNS personalizzato, aggiungere il record A direttamente al server.
  • Se si usa un DNS fornito da Azure, creare una zona DNS privato di Azure e collegarla alla rete virtuale. Aggiungere quindi il record A alla zona DNS privata.

Questo mapping garantisce di accedere alla risorsa tramite il relativo indirizzo IP privato.

Risorsa di Azure con un endpoint privato

Se una risorsa di Azure ha un endpoint privato, la risoluzione DNS per il nome host della risorsa deve restituire l'indirizzo IP privato associato all'endpoint privato. Se la risoluzione DNS restituisce invece un indirizzo IP pubblico, i record nella configurazione DNS potrebbero essere incompleti. Segui questi passaggi:

  1. Verificare che esista una zona DNS privata per il tipo di risorsa. Ad esempio, privatelink.database.windows.net per il database SQL di Azure. Se la zona DNS privata non esiste, crearne una.
  2. Verificare che la zona DNS privata sia collegata alla rete virtuale. Se la zona DNS privata non è collegata alla rete virtuale, collegarla.

Dopo aver collegato la zona privata DNS alla rete virtuale, l'hostname della risorsa dovrebbe risolversi nell'indirizzo IP privato associato all'endpoint privato.

Testare le modifiche alla configurazione DNS

Dopo aver aggiornato la configurazione DNS, usare la funzione Test-DnsResolution dal modulo powerShell di diagnostica per verificare che il nome host venga risolto nell'indirizzo IP privato corretto. Esegui questo comando:

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

Non è possibile connettersi alla risorsa

Se si verificano problemi che influiscono sulla connettività a una risorsa, usare la funzione Test-NetworkConnectivity dal modulo PowerShell di diagnostica per verificare la connettività. Esegui questo comando:

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

Questo comando tenta di stabilire una connessione TCP alla destinazione e alla porta specificate nel contesto dell'ambiente Power Platform. La richiesta viene avviata dalla subnet delegata e tenta di connettersi alla destinazione specificata usando la configurazione di rete dalla rete virtuale. Se la connessione non riesce, potrebbe essere necessario controllare le impostazioni di rete per assicurarsi che la destinazione sia raggiungibile dalla rete virtuale. Una connessione riuscita indica che la connettività di rete esiste tra l'ambiente Power Platform e la risorsa specificata.

Annotazioni

Questo comando verifica solo se è possibile stabilire una connessione TCP alla destinazione e alla porta specificate. Non verifica se la risorsa è disponibile o se eventuali problemi a livello di applicazione potrebbero impedire l'accesso alla risorsa.

Non è possibile stabilire un handshake TLS

Alcuni firewall potrebbero consentire la creazione di connessioni TCP, ma bloccano il traffico effettivo verso la risorsa( ad esempio HTTPS). Pertanto, anche se la funzione Test-NetworkConnectivity indica la connettività di rete, tale stato non garantisce che la risorsa sia completamente accessibile.

Usare la funzione Test-TLSHandshake per diagnosticare il motivo per cui non è possibile stabilire un handshake. Esegui questo comando:

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

Il comando restituisce informazioni che consentono di eseguire il debug del motivo per cui l'handshake non è riuscito. L'output include il certificato presentato dal server, la suite di crittografia, il protocollo ed eventuali descrizioni degli errori SSL.

Importante

Sono supportati solo i certificati attendibili pubblicamente. Per altre informazioni, vedere Supportare i certificati sconosciuti?

La connettività ha esito positivo, ma l'applicazione non funziona ancora

Se i test di connettività hanno esito positivo, ma si verificano ancora problemi nell'applicazione, controllare le impostazioni e le configurazioni a livello di applicazione:

  1. Verificare che il firewall consenta l'accesso dalla subnet delegata alla risorsa.
  2. Verificare che il certificato presentato dalla risorsa sia attendibile pubblicamente.
  3. Assicurarsi che nessun problema di autenticazione o autorizzazione impedisca l'accesso alla risorsa.

È possibile che non sia possibile diagnosticare o risolvere il problema usando il modulo Di PowerShell di diagnostica. In questo caso, creare una subnet senza delega nella rete virtuale e distribuire una macchina virtuale (VM) in tale subnet. È quindi possibile usare la macchina virtuale per eseguire ulteriori passaggi di diagnostica e risoluzione dei problemi, ad esempio il controllo del traffico di rete, l'analisi dei log e il test della connettività a livello di applicazione.