次の方法で共有


仮想ネットワークに関する問題のトラブルシューティング

この記事では、Microsoft Power Platform の 仮想ネットワーク の一般的なシナリオをトラブルシューティングするためのガイダンスを提供します。 この記事では、 Microsoft.PowerPlatform.EnterprisePolicies PowerShell モジュールを使用して、仮想ネットワーク構成に関連する問題を特定して解決することに重点を置いています。

診断 PowerShell モジュールを使用する

Microsoft.PowerPlatform.EnterprisePolicies PowerShell モジュールは、Power Platform の仮想ネットワーク構成に関連する問題の診断とトラブルシューティングに役立つよう設計されています。 このツールを使用して、Power Platform 環境と仮想ネットワークの間の接続を確認できます。 また、これを使用して、問題の原因となっている可能性のある構成の誤りを特定することもできます。 この診断 PowerShell モジュールは、PowerShell ギャラリーとその GitHub リポジトリ である PowerPlatform-EnterprisePolicies から入手できます。

モジュールをインストールする

診断 PowerShell モジュールをインストールするには、次の PowerShell コマンドを実行します。

Install-Module -Name Microsoft.PowerPlatform.EnterprisePolicies

診断関数を実行する

モジュールがインストールされたら、次のコマンドを実行して PowerShell セッションにインポートします。

Import-Module Microsoft.PowerPlatform.EnterprisePolicies

このモジュールには、仮想ネットワーク構成に関連する問題を診断およびトラブルシューティングするためのいくつかの機能が含まれています。 主な機能の一部を次に示します。

  • Get-EnvironmentRegion: 指定された Power Platform 環境のリージョンを取得します
  • Get-EnvironmentUsage: 指定された Power Platform 環境の使用状況に関する情報を提供します
  • Test-DnsResolution: 指定されたドメイン名の DNS 解決をテストします
  • Test-NetworkConnectivity: Power Platform 環境と指定された仮想ネットワークの間のネットワーク接続をテストします

診断モジュールの問題を報告する

診断モジュールの実行時に問題が発生した場合は、モジュールがホストされている GitHub リポジトリを通じて報告してください。 リポジトリは PowerPlatform-EnterprisePolicies にあります。

問題を報告するには、リポジトリの [問題 ] セクションに移動し、 新しい問題を開きます。 問題の調査に役立つ可能性のあるエラー メッセージやログ エントリなど、発生した問題に関する詳細情報を提供します。 レポートに機密情報を含めないでください。

一般的な問題のトラブルシューティング

リージョンが正しく構成されていない

すべてが正しく構成されていても問題が引き続き発生する場合は、診断 PowerShell モジュールの Get-EnvironmentRegion 関数を使用して、Power Platform 環境のリージョンが仮想ネットワークのリージョンと同じかどうかを確認します。 次のコマンドを実行します。

Get-EnvironmentRegion -EnvironmentId "<EnvironmentId>"

環境が特定の PowerPlatform リージョンに属している。 ただし、PowerPlatform リージョンは 2 つの Azure リージョンにまたがる場合があります。 環境はどちらのリージョンにも配置でき、それらの間で自動的にフェールオーバーすることもできます。 そのため、高可用性と接続性を確保するには、PowerPlatform リージョンに関連付けられている両方の Azure リージョンで仮想ネットワークを構成します。 PowerPlatform リージョンを仮想ネットワーク機能をサポートする Azure リージョンにマップする方法については、「 Power Platform リージョン」を参照してください。

ホスト名が見つかりません

ホスト名の解決に影響する問題が発生した場合は、診断 PowerShell モジュールの Test-DnsResolution 関数を使用して、ホスト名が正しく解決されているかどうかを確認します。 次のコマンドを実行します。

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

このコマンドは、Power Platform 環境のコンテキストで、指定されたホスト名の DNS 解決をテストします。 要求は委任されたサブネットから開始され、仮想ネットワーク用に構成された DNS サーバーを使用してホスト名の解決を試みます。 ホスト名が正しく解決されない場合は、DNS 設定を確認して、ホスト名が正しく構成されていることを確認する必要があります。

Important

DNS のセットアップが正しくなくて、仮想ネットワークの DNS サーバー設定を更新する必要がある場合は、「 Microsoft.PowerPlatform/enterprisePolicies」に委任された後に仮想ネットワークの DNS アドレスを更新できますか?

要求では、プライベート IP アドレスではなくパブリック IP アドレスが使用されます

リソースへの要求がプライベート IP アドレスではなくパブリック IP アドレスを使用する問題が発生した場合、リソースのホスト名の DNS 解決によってパブリック IP アドレスが返される可能性があります。 この問題は、Azure リソースと Azure 以外のリソースの両方で発生する可能性があります。

プライベート エンドポイントのない Azure 以外のリソース

Azure 以外のリソースにプライベート エンドポイントがないが、仮想ネットワークからアクセスできる場合は、リソースのホスト名をプライベート IP アドレスに解決するように DNS サーバーを構成する必要があります。 リソースのホスト名をプライベート IP アドレスにマップする DNS A レコードを DNS サーバーに追加します。

  • カスタム DNS サーバーを使用している場合は、A レコードをサーバーに直接追加します。
  • Azure 提供の DNS を使用している場合は、 Azure プライベート DNS ゾーンを作成し、仮想ネットワークにリンクします。 次に、A レコードをプライベート DNS ゾーンに追加します。

このマッピングにより、リソースがプライベート IP アドレスを介してアクセスされます。

プライベート エンドポイントを使用する Azure リソース

Azure リソースにプライベート エンドポイントがある場合、リソースのホスト名の DNS 解決は、プライベート エンドポイントに関連付けられているプライベート IP アドレスを返す必要があります。 DNS 解決が代わりにパブリック IP アドレスを返す場合は、DNS 構成にレコードがない可能性があります。 次の手順に従います。

  1. リソースの種類に対してプライベート DNS ゾーンが存在することを確認します。 たとえば、Azure SQL Database の場合、privatelink.database.windows.net です。 プライベート DNS ゾーンが存在しない場合は、 作成します
  2. プライベート DNS ゾーンが仮想ネットワークにリンクされていることを確認します。 プライベート DNS ゾーンが仮想ネットワークにリンクされていない場合は、 リンクします

プライベート DNS ゾーンが仮想ネットワークにリンクされた後、リソースのホスト名は、プライベート エンドポイントに関連付けられているプライベート IP アドレスに解決されます。

DNS 構成の変更をテストする

DNS 構成を更新した後、診断 PowerShell モジュールの Test-DnsResolution 関数を使用して、ホスト名が正しいプライベート IP アドレスに解決されることを確認します。 次のコマンドを実行します。

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

リソースに接続できない

リソースへの接続に影響する問題が発生した場合は、診断 PowerShell モジュールの Test-NetworkConnectivity 関数を使用して接続を確認します。 次のコマンドを実行します。

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

このコマンドは、Power Platform 環境のコンテキストで、指定された宛先とポートへの TCP 接続を確立しようとします。 要求は委任されたサブネットから開始され、仮想ネットワークからのネットワーク構成を使用して、指定された宛先への接続を試みます。 接続に失敗した場合は、ネットワーク設定を確認して、仮想ネットワークから宛先に到達できることを確認する必要がある場合があります。 正常な接続は、Power Platform 環境と指定されたリソースの間にネットワーク接続が存在することを示します。

このコマンドは、指定された宛先とポートへの TCP 接続を確立できるかどうかをテストします。 リソースが使用可能かどうか、またはアプリケーション レベルの問題がリソースへのアクセスを妨げている可能性があるかどうかをテストしません。 一部のファイアウォールでは TCP 接続の確立が許可されますが、リソースへの実際のトラフィック (HTTPS など) はブロックされます。 したがって、コマンドがネットワーク接続を示している場合でも、その状態ではリソースが完全にアクセス可能であることが保証されません。

接続は成功したが、アプリケーションはまだ動作していない

接続テストが成功しても、アプリケーションで問題が引き続き発生している場合は、次のように、アプリケーション レベルの設定と構成を確認する必要があります。

  1. 委任されたサブネットからリソースへのアクセスがファイアウォールで許可されていることを確認します。
  2. リソースによって提示される証明書がパブリックに信頼されていることを確認します。
  3. リソースへのアクセスを妨げる認証または承認の問題が存在しないことを確認します。

診断 PowerShell モジュールを使用して問題を診断または解決できない場合があります。 その場合は、仮想ネットワークに委任なしでサブネットを作成し、そのサブネットに仮想マシン (VM) をデプロイします。 その後、VM を使用して、ネットワーク トラフィックのチェック、ログの分析、アプリケーション レベルの接続のテストなど、さらに診断とトラブルシューティングの手順を実行できます。