web-dev-qa-db-ja.com

VPN接続を介したWindows 10 DNS解決が機能しない

Windows 10では、スプリットトンネリングが有効になっている(ゲートウェイが無効になっている)VPNに接続すると、DNS解決はVPN接続で設定されたDNSサーバーとDNSサフィックスを無視して常にLAN DNSサーバーを使用します。

予想される動作は、VPNのDNSサーバーを使用することです。そうしないと、リモートネットワーク(ドメインコンピュータなど)上のDNSエントリを解決できなくなります。

これは以前のバージョンのWindowsでは正しく機能していました。

これは で広く議論されています。このMicrosoftはスレッドに答えています

46
ECC-Dan

LAN接続のメトリックを手動で1つのウィンドウが私のVPNに割り当てるよりも高い値(15)に設定することで、この問題を恒久的に修正しました(11)。

これには2つの方法があります。

  • GUIから:ネットワーク接続、プロパティ、TCP/IP v4プロパティ、詳細設定、メトリックを15に設定。
  • コマンドライン:netsh int ip set interface interface="LAN CONNECTION NAME" metric=15

効果は即座に(少なくともコマンドラインを使用した場合)、DNSルックアップは期待通りに私のVPNを通過するようになりました。

これはスプリットトンネリングで機能し、再接続と再起動の間の恒久的な修正です。

LAN接続の代わりにVPNのメトリックを変更することもできますが、接続が確立されるとWindowsがメトリックをリセットするため、これは恒久的なものではありません。

環境によっては、LAN接続とVPN接続に異なるデフォルトメトリックがあるかもしれません。 VPNのLAN接続よりもメトリックが低くなるように、それに応じて簡単に調整してください。

さらに、あなたがあなたのVPNのTCP/IPプロパティを編集することができないことがわかったなら Windows 10でも壊れていたので 、あなたは ほとんどのプロパティをPowershellで設定します

1. Get-VpnConnection
2. Set-VpnConnection -Name "myVPN" -SplitTunneling $True
3. Set-VpnConnection -Name "myVPN" -DnsSuffix yourdomain.local
49
ECC-Dan

私が持っているすべての物理的なWin10マシンでこの問題を見た後にテストするためにVMにWindows 10のフレッシュインストールをスピンアップしました。私はこのスレッドですべての答えをテストしましたが、どれもうまくいきませんでした。私はその解決策がここに投稿された「Keenans」と「ECC-Dan」の答えを組み合わせることであることを発見しました:

http://answers.Microsoft.com/ja-jp/windows/forum/windows_10-networking/win-10-dns-resolution-of-remote-network-via-vpn/513bd​​eea -0d18-462e-9ec3-a41129eec736?page = 1

[コントロールパネル]> [ネットワークと共有センター]> [アダプタ設定の変更]> [Ethernet]または[Wifi]アダプタを右クリック> [プロパティ]> [IPv4]をダブルクリック> [詳細設定]

同じ[プロパティ]ページで、[IPv6]> [詳細設定]> [自動メトリックのチェックマークを外す]> [インターフェイスメトリック]に15と入力> [OK]> [OK]の順にダブルクリックします。

両方の設定を変更した後に初めて問題が解決します。私はどちらか一方を元に戻すことをテストしました、そしてそれは再び壊れます。両方を変更した後、コマンドラインからnslookupを実行し、VPNが接続されているリモートネットワーク上のDNSサーバーを返しました。そうでない場合はローカルDNSサーバーを返します。その後、私はイーサネットインターフェースでWiresharkキャプチャを使用し、ランダムなWebサイトへのpingをいくつか行い、DNSパケットがキャプチャされていないことを確認しました。これは、変更を加えた後、DNSクエリがVPN接続を介してのみ送信され、同時にすべての接続を介して送信されるのではないことを証明します(これはWin10 DNSリークとして知られています)。したがって、これはWin10のDNSリークに対する解決策の一部でもあります。

https://medium.com/@ValdikSS/beware-of-windows-10-dns-resolver-and-dns-leaks-5bc5bfb4e3f1#.7ppsn1nda

DNSリークを修正することに注意してください、あなたは最初に上記のステップを実行する必要があります。その後、2つのレジストリ値を設定する必要があります。リンクされた記事はそれだけでは、Win10の新しいビルドの問題を解決しないものをリストしています。これらのレジストリ値を設定して下さい:

Key: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\DNSClient
Value:  DisableSmartNameResolution
Data:  1

Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
Value: DisableParallelAandAAAA
Data:  1

それをすべて実行した後に初めて、あなたのDNSクライアントの振る舞いはWin7のときの状態に戻ります。あなたは、これがマイクロソフトのQAを通してどのように得られたのか疑問に思う必要があります。

11
LikeARock47

クライアントがUTPケーブルで接続され、ローカルLANでIPv6プロトコルがサポートされている場合、現在のWindows 10 EduでレジストリのDisableSmartNameResolutionとDisableParallelAandAAAAを使用しました(2018年12月現在)。クライアントにはパブリック/グローバルIPv6アドレスがあります。

それを機能させるためには、VPNに使用されるUTP/LANインターフェース上のIPv6プロトコルを無効にすれば十分です(クライアント上のグローバルIPv6アドレスを/ not_useするために)。

クライアントがWi-Fiでインターネットに接続されていて、IPv6が使用可能である(クライアントにはグローバルIPv6アドレスがあり、UTP/LAN接続がない)場合、問題なく機能します。

1
Milan Kerslager