ネットワークの問題のトラブルシューティング
ネットワークの問題を診断して解決するのが困難な場合があります。 たとえば、Wi-Fi ネットワークはローカルで正常に動作しているが、インターネットから切断されている場合があります。 このような場合、Azure Sphere デバイスが正しく更新されていない場合があります。 このトピックでは、ネットワークの問題の診断に役立つ可能性のあるいくつかの提案を示します。
ネットワーク インターフェイスの状態を確認する
PowerShell、Windows コマンド プロンプト、または Linux コマンド シェルを使用して、コマンド ライン インターフェイスを開きます。
az sphere デバイスのネットワーク リスト インターフェイスを実行して、接続されているデバイスのネットワーク インターフェイスの詳細を一覧表示します。
出力には、デバイス用に設定されたすべてのインターフェイスが表示されます。 デバイス上のインターフェイスごとに、出力には次の内容が表示されます。
[ { "connectedToInternet": false, "connectedToNetwork": false, "hardwareAddress": null, "interfaceName": "azspheresvc", "interfaceUp": true, "ipAcquired": false, "ipAddresses": [ "192.168.35.2" ], "ipAssignment": null }, { "connectedToInternet": false, "connectedToNetwork": false, "hardwareAddress": "b2:30:bb:f0:d1:44", "interfaceName": "eth0", "interfaceUp": true, "ipAcquired": false, "ipAddresses": null, "ipAssignment": "dynamic" }, { "connectedToInternet": false, "connectedToNetwork": false, "hardwareAddress": null, "interfaceName": "lo", "interfaceUp": true, "ipAcquired": false, "ipAddresses": [ "127.0.0.1" ], "ipAssignment": null }, { "connectedToInternet": false, "connectedToNetwork": false, "hardwareAddress": "00:02:b5:03:69:ea", "interfaceName": "wlan0", "interfaceUp": true, "ipAcquired": false, "ipAddresses": null, "ipAssignment": "dynamic" } ]
インターフェイスの次の設定が True であることを確認します。
ネットワーク インターフェイスアップ。 この設定が False の場合:
- アクセス ポイントを使用するローカル デバイスが接続されていることを確認します。 詳細については、「 Networking_IsNetworkingReady関数を参照してください。
- ネットワーク インターフェイスが有効になっていることを確認します。 必要なインターフェイスを有効にするには、 az sphere device network enable コマンドを使用するか、 Networking_SetInterfaceState Function API を使用します。
ネットワークに接続。 この設定が False の場合:
- az sphere device wifi show-status を実行して、Wi-Fi SSID の値がデバイスの Wi-Fi 設定と一致することを確認します。
- ネットワークをスキャンして、デバイス設定の SSID がネットワーク上の SSID と一致することを確認します。 詳細については、 wifi scan コマンドを参照してください。
- Wi-Fi ネットワークの SSID が非表示になっていて、アプリケーションがターゲット スキャンに依存している場合は、 ターゲット スキャン が有効になっていることを確認します。
取得した IP アドレス。 この設定が False の場合:
- 接続が確立されるまで待ちます。
- ネットワークを調べて、アクセス ポイントとネットワーク上の他のデバイスが完全に接続されているかどうかを確認します。 詳細については、「 Networking_IsNetworkingReady関数を参照してください。
- アクセス ポイントとネットワークで許可されている IP アドレスの範囲または許可されている接続の制限を確認します。
インターネットに接続。 この設定が False の場合:
- ネットワークがインターネットに接続されていることを確認します。
Wi-Fi の状態を確認する
- PowerShell、Windows コマンド プロンプト、または Linux コマンド シェルを使用して、コマンド ライン インターフェイスを開きます。
- az sphere device wifi show-status を実行して、デバイス上の現在の Wi-Fi 接続に関する情報を表示します。
次のような出力が表示されます。
az sphere device wifi show-status
{
"SSID": "MSFTGUEST",
"configurationState": "enabled",
"connectionState": "connected",
"frequency": 5660,
"ipAddress": "10.106.106.40",
"keyManagement": "NONE",
"macAddress": "00:02:b5:03:69:ea",
"mode": "station",
"securityState": "open",
"wpaState": "COMPLETED"
}
Connection 状態が disconnected に設定されている場合は、デバイスで有効 Wi-Fi。
ネットワークの状態を確認する
az sphere device network show-status を実行して、接続されているデバイスのネットワーク状態を表示します。
次のような出力が表示されます。
az sphere device network show-status
{
"deviceAuthenticationIsReady": false,
"networkTimeSync": "incomplete",
"proxy": "disabled"
}
- デバイス認証の準備ができた場合はFalseを返します。
- Network 時刻同期の状態は Incomplete を返します
- 接続が確立されるまで待ちます。
- 受信トラフィックと送信トラフィックを許可するようにネットワークが構成されていることを確認します。 詳細については、「 ポートとプロトコル」を参照してください。
ファイアウォール設定を確認する
アプリケーションがリモート ホストへの接続に失敗した場合:
- アプリケーションのファイアウォール設定を確認します。
アプリケーション マニフェスト
AllowedConnections
機能を設定して、アプリケーションの接続先となるホスト名または IP アドレスを指定する必要があります。 - アプリケーションが サービス検出を実行するように構成されている場合アプリケーション マニフェストのエントリに加えて、検出されたエンドポイントもファイアウォール構成に一覧表示する必要があります。
リモート ホストがサーバー アプリケーションに接続できない場合:
- アプリケーションのファイアウォール設定を確認します。
アプリケーション マニフェストでは、
AllowedTcpServerPorts
とAllowedUdpServerPorts
機能を設定して、受信接続用にアプリケーションを開く UDP ポートと TCP ポートを指定する必要があります。
それでも問題が解決する場合:
- az sphere device network list-firewall-rules を実行し、ファイアウォール規則の IP アドレスとアプリケーション マニフェストファイルが一致することを確認します。
- システムの既定の接続が既定で存在することを確認します。
ネットワーク診断の実施
ネットワーク障害が発生した場合、障害に関する診断情報を取得するには、WifiConfig API を呼び出す方法とコマンド ラインから実施する方法の 2 つがあります。
高度なアプリケーションは WifiConfig_GetNetworkDiagnostics を呼び出して、問題に関する情報を収集できます。 この関数は、指定されたネットワーク上の最新の障害に関する詳細を含む WifiConfig_NetworkDiagnostics
構造体を返します。 診断構造体の情報と、一般的なネットワーク障害を診断して回復するためのヒントを組み合わせます。
WiFi_HighLevelApp サンプルは、診断の使用方法を示しています。
az sphere device network show-diagnostics コマンドを使用して、最後のエラーに関する診断情報を表示することもできます。
正しくないネットワーク接続
デバイスが正しくないネットワークに接続されている場合、または接続されているが間違った属性を使用している場合は、ネットワーク構成が正しいことを確認します。 構成を変更した場合は、再読み込みする必要があります。 アプリケーションで、 WifiConfig_ReloadConfig を呼び出すか、コマンド ラインで、 az sphere device wifi reload-config コマンドを使用して現在の構成を再読み込みします。 再起動後もネットワーク構成が保持されるようにするために、アプリは WifiConfig_PersistConfig を呼び出すことができます。
ルート CA 証明書の更新に関する問題
ルート CA 証明書の更新後にデバイスが EAP-TLS ネットワークに接続できない場合は、WifiConfig_SetNetworkEnabled 関数によって返された状態で開始します。
状態がルート CA 証明書のエラーを示している場合は、次のいずれかの原因が考えられます。
- 更新プロセス中に、RADIUS サーバーで以前のルート CA1 が期限切れになったり変更されたりしたか? その場合、新しいルート CA2 が正しくない可能性があります。
- サーバー側で他の何らかの障害が発生したか? ネットワーク管理者に確認してください。 管理者が別の証明機関または間違った証明機関を使用している可能性があり、この問題を一元的に修正することが必要になる場合があります。
状態がクライアント証明書のエラーを示している場合は、次のようになります。
- 新しい Network2 の構成が Network1 のプロパティと同期していないか? Network1 でプロパティが変更された場合、Network2 で古いプロパティを使用して接続しようとすると、Network2 は接続に失敗する可能性があります。 2 つのネットワークの重要なプロパティが同じであることを確認します。
- ネットワーク更新プロセス中にクライアント証明書が変更されたか? Network1 と Network2 に関連付けられている証明書を調べ、それらが同じであることを確認します。 アプリでは、CertStore API の関数を使用して証明書の詳細を検査できます。
ルート CA とクライアント証明書の両方が正しい場合、エラーは Wi-Fi アクセス ポイントまたはその他の問題に関連している可能性があります。
試行が失敗するたびに WifiConfig_GetNetworkDiagnostics によって返されたデータのチェックを続け、問題の詳細について調べます。
クライアント証明書の更新に関する問題
クライアント証明書の更新後にデバイスが EAP-TLS ネットワークに接続できない場合は、WifiConfig_SetNetworkEnabled 関数によって返された状態で開始します。
状態がクライアント証明書のエラーを示している場合は、次のようになります。
- 前の証明書に戻り、再接続を試みます。 成功した場合は、新しいクライアント証明書に問題があることを示します。失敗した場合は、新しい証明書が無効であるか、または古い証明書がその間に期限切れになったことを示します。
状態が他の種類のエラーを示す場合は、次のようになります。
- ネットワークに他の問題が発生しているか? いずれかのクライアント証明書を使用して接続を続行します。
試行が失敗するたびに WifiConfig_GetNetworkDiagnostics によって返されたデータのチェックを続け、問題の詳細について調べます。
SSID をブロードキャストしない 5GHz ネットワークへの接続に関する問題
MT3620 には、 Targeted Scan を使用しているにもかかわらず、SSID をブロードキャストしない 5GHz ネットワークにデバイスが接続できないという既知の問題があります。 SSID ブロードキャストを無効にしたり、2.4GHz のみのネットワークで無効にしたりしないことをお勧めします。