Windowsでのインターネットエラー - NCSIトラブルシューティング

Prev Next

問題

Windowsは、ユーザーがインターネットに正常にアクセスできる場合でも、EthernetやWiFiリンクでインターネット接続がないと報告します。 これにより、Office 365のセットアップなど、様々なMicrosoftの機能が正しく動作しない可能性があります。

Windows PCがCatoに接続されていると、Windowsネットワーク接続ステータスインジケータ(NCSI)がアクティブおよびパッシブプロービングを使って行うチェックが失敗する場合があります。

ncsi.jpg

環境

ソケットまたはCato VPN経由で接続されたWindows PC。

トラブルシューティング

Windowsが新しいネットワークに接続するとき、アクティブプロービングを使用してインターネット接続をチェックし、一連のタスクを伴います。 インターネット接続があると判断されると、Windowsは接続がアクティブである限りパッシブプロービングに切り替わります。

基本的なトラブルシューティング

以下は、各タイプのプロービング手順のトラブルシューティングステップです:

1. アクティブプロービング

Windowsはアクティブプロービングを使用して各ネットワークインタフェースでインターネット接続が可能であることを検証し、ネットワーク接続ステータスインジケータ(NCSI)を更新します。 アクティブプロービング中、Windowsは複数のMicrosoft DNSサーバーをプローブし、アクティブなインターネット接続を判断するために応答を使用します。 

詳細情報を見る: NCSIアクティブプローブおよびネットワークステータスアラート

Windows 10 以降のバージョンについて:

  • NCSIはDNS要求を送り、www.msftconnecttest.com FQDNのアドレスを解決します。

  • NCSIが有効なDNSサーバーからの応答を受信すると、NCSIは平文のHTTP GETリクエストをhttp://www.msftconnecttest.com/connecttest.txtに送信します。

  • NCSIがテキストファイルのダウンロードに成功すると、そのファイルに「Microsoft Connect Test」が含まれていることを確認します。

  • NCSIは別のDNSリクエストを送り、dns.msftncsi.com FQDNのアドレスを解決します。

    • これらのリクエストがいずれか失敗した場合、タスクバーにネットワークアラートが表示されます。 アイコンにカーソルを合わせると、「接続性なし」や「限定付きインターネットアクセス」(どのリクエストが失敗したかによります)などのメッセージが表示されます。

    • これらのリクエストが全て成功した場合、タスクバーには通常のネットワークアイコンが表示されます。 アイコンにカーソルを合わせると、「インターネットアクセス」などのメッセージが表示されます。

Windowsがインターネット接続がないと表示するレポートを受け取った場合、上記の接続のいずれが失敗しているかを確認してください。 PCAPを取得し、イベントやフローを確認することで確認する方法の一つです。

NCSIチェックログ

以下の方法を使用してアクティブNCSIチェックのログを取ることも可能です:

  • 次のコマンドを発行してトレースを開始します:

    netsh trace start scenario=NetConnection tracefile=noint.etl
  • 問題を再現し(クライアントをネットワークから切断して再接続します)、次のコマンドでトレースを停止します:

    netsh trace stop
  • トレースファイルで見つけられる情報の一例は以下の通りです:

44152-image.png

アクティブプローブをブロックするWindowsレジストリ設定

Windows Registryの設定により、アクティブプローブがブロックされることがあります。その場合、Windowsはパッシブプロービングのみに依存します。

以下のキーにデフォルトのWindows値があることを確認してください:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections]
"WinHttpSettings"=hex:18,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00

以下の例では、システムプロキシがGPOを通じて"WinHttpSettings"レジストリキーを改変し、このHEXレジストリ値をインポートしています。この値が、Windowsが自動でセットするデフォルト値を上書きします。 これがアクティブプロービングの失敗を引き起こすことになります。

gpo.png

2. パッシブプロービング

ライブネットワークトラフィックをキャプチャし、ネットワークに干渉せずに分析します。すなわち、パケットを送信しません。 パッシブプロービングでは、TCP/UDPパケットのIPヘッダー内のTTL(Time To Live)を調べ、コンピュータに到達するまでにパケットが経由した「ホップ」数を決定できます。 8ホップ以上のパケットはインターネット接続性を持っていると見なされます。

以下の図に示すように、CatoのTCPプロキシはIPヘッダーのTTLを96に設定します。 WindowsマシンでTTL値の検証を行うためにパケットキャプチャを実行できます。

mceclip1.png

回避策:

以下は、現場で問題を解決することが確認されたいくつかの潜在的な回避策です:-

  1. 以下のレジストリキーを設定して、WinTAP(レイヤー2)アダプタをWinTUN(レイヤー3)の代わりに使用します:
    Computer\HKEY_LOCAL_MACHINE\SOFTWARE\CatoNetworksVPN\UseWintun=0 (DWORD)

  2. 以下のレジストリキーを変更して、元のルートが削除されない新しいモードに切り替えます。
    Computer\HKEY_LOCAL_MACHINE\SOFTWARE\CatoNetworksVPN\RTNoRemoveMode=1 (DWORD)

以下はレジストリキーを編集/追加する手順です:

  • レジストリエディタを開く:

    • Win + Rを押して、[実行]ダイアログを開きます。

    • regeditと入力し、Enterキーを押します。 これによりレジストリエディタが開きます。

  • キーへ移動する:

    • レジストリエディタでHKEY_LOCAL_MACHINE\SOFTWAREへ移動します。

    • CatoNetworksVPNキーが存在しない場合は、作成する必要があります。 SOFTWAREキーを右クリックし、新規を選択してキーを選びます。 キーの名前をCatoNetworksVPNにします。

  • DWORD値を作成する:

    • 作成したばかりのCatoNetworksVPNキーを右クリックします。

    • 新規を選択し、DWORD(32ビット)値を選びます。

    • 新しいDWORD値の名前をUseWintunまたはRTNoRemoveModeにします。

  • 値データを設定する:

    • UseWintun DWORD値をダブルクリックします。

    • 適切な「値データ」フィールドに0または1(引用符なしで)を入力します。

  • 確認して閉じる:

    • 変更を保存するためにOKをクリックします。

    • レジストリエディタを閉じます。

  • VPNクライアントを再起動する:

    • レジストリキーの効果を反映するためにVPNクライアントを再起動します。