Windowsでスマートマルチホームの名前解決をオフにする

スマートマルチホームの名前解決は、MicrosoftがWindows 8で導入し、Windows 10にも実装したDNS関連の機能です。

この機能は、利用可能なすべてのネットワークアダプターにDNS要求を送信することにより、Windows 8以降を実行しているデバイスでのDNS解決を高速化するように設計されています。マイクロソフトはWindows 10の機能を改良しました。自動的に最も速く返される情報を選択するからです。

この機能はパフォーマンスの観点からは理にかなっていますが、プライバシーの観点から問題があります。

たとえばWindowsマシンのVPNネットワークに接続する場合、スマートマルチホームの名前解決によりDNSリークが発生する可能性があります。要求はすべてのネットワークアダプターに同時に送信されるため、構成されているすべてのDNSサーバーが要求を受信し、アクセスしたサイトの情報も含めます。

Windowsでスマートマルチホームの名前解決をオフにする

マイクロソフトは、Windows 8の機能を管理するためのレジストリキーとポリシーを導入しました。

レジストリ(Windows 8.xのみ)

disablesmartnameresolution

注意 :レジストリを操作すると、正しく行わないと問題が発生する可能性があります。続行する前に、Windowsレジストリのバックアップを作成することをお勧めします。これを行うには、レジストリエディターでレジストリハイブを選択し、メニューバーから[ファイル]> [エクスポート]を選択します。

  1. Windowsレジストリエディターを開きます。これを行う簡単なオプションの1つは、Windowsキーをタップして、regedit.exeと入力し、Enterキーを押すことです。 Windowsは、確認が必要なUACプロンプトをスローします。
  2. HKEY_LOCAL_MACHINE Software Policies Microsoft Windows NT DNSClientに移動します
  3. Dword値DisableSmartNameResolutionが既に存在する場合は、1に設定されていることを確認してください。
  4. 存在しない場合は、DNSClientを右クリックし、メニューから[新規]> [Dword(32ビット)値]を選択します。
  5. DisableSmartNameResolutionという名前を付けます。
  6. 値を1に設定します。値を0に設定するか、Dword値を削除することで、いつでも機能をオンに戻すことができます。
  7. HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services Dnscache Parametersに移動します
  8. Dword値DisableParallelAandAAAAが既に存在する場合は、その値が1に設定されていることを確認してください。
  9. 値が存在しない場合は、[パラメーター]を右クリックし、[新規]> [Dword(32ビット)値]を選択します。
  10. DisableParallelAandAAAAという名前を付けます。
  11. Dwordの値を1に設定します。値を0に設定するか、値を削除すると、機能をオンに戻すことができます。

実行時にWindowsレジストリに両方の変更を加えるレジストリファイルを作成しました。次のリンクをクリックしてダウンロードできます。disable-smart-name-resolution.zip

グループポリシー(Windows 8およびWindows 10)

turn off smart-multi homed name resolution

Windows 8で機能していたレジストリキーは、Windows 10では機能しなくなったようです。ただし、Windows 10のユーザーと管理者はポリシーを設定して、機能をオフにすることができます。

マルチホームDNSクライアントがネットワーク全体の名前解決を最適化する必要があることを指定します。この設定は、すべてのネットワークにわたって並列DNS、リンクローカルマルチキャスト名前解決(LLMNR)、およびNetBIOS over TCP / IP(NetBT)クエリを発行することにより、パフォーマンスを向上させます。複数の肯定応答が受信された場合、ネットワークバインディングの順序を使用して、どの応答を受け入れるかが決定されます。

グループポリシーエディターは、Windows 10のプロフェッショナルエディションでのみ使用できることに注意してください。Windows10ホームユーザーは、 Policy Plusを確認してください Windows 10のHomeエディションにポリシー編集を導入しています。

  1. Windowsでグループポリシーエディターを開くには、次の手順を実行します。キーボードのWindowsキーをタップし、gpedit.mscと入力して、キーボードのEnterキーを押します。
  2. [コンピューターの構成]> [管理用テンプレート]> [ネットワーク]> [DNSクライアント]> [スマートマルチホームの名前解決をオフにする]に移動します。
  3. ポリシーを有効に設定して、システムのスマートマルチホーム名前解決機能を無効にします。

このポリシー設定を有効にすると、DNSクライアントは最適化を実行しません。 DNSクエリは、最初にすべてのネットワークで発行されます。 DNSクエリが失敗した場合はLLMNRクエリが発行され、LLMNRクエリが失敗した場合はNetBTクエリが発行されます。

おわりに

Windowsマシンで実行する可能性のある一部のDNSクライアントには、これらのリークを防止するためのDNSリーク保護が付属しています。 OpenDNS ユーザーは、たとえばクライアントでblock-outside-dnsオプションを有効にすることができます。