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


49

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

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

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

これは、このMicrosoft Answersスレッドで広く議論されました。


あなたの質問からあなたの問題が明確ではありません(VPNで指定されたDNSサーバーを使用したいですか?)、それを編集してください。
マテジュハス

提案どおりに編集しました。
ECC-Dan

tbh:サーバーに何か問題があります。最初のDNS要求は常にローカルサーバーにヒットする必要があります。ホストが解決できない場合にのみ、システムはリモートDNSを照会しようとします。あなたの問題は、ローカルとリモートのネットワークが同じサブネット上で実行されているため、ローカルのネットワークが「クエリを解決できる」と主張しているが、「ホストが見つかりません」ということです。(サーバーに構成されたサーバーがサブネットABCDがホストを解決できない場合は、プライマリがオフラインでない限り、彼らが同期しなければならないので、このサブネットには、さらにDNSサーバーは、照会されていない-ので、それはホストが不明であると仮定し)
dognose

回答:


55

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

これには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接続よりも低くなります。

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

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

2
私にとってこれは機能しません...私はWindows 10を搭載した2つのマシンを持っていますが、1つはすべてうまく動作し、もう1つはVPNに問題があります。SplitTunnelingを有効にするデフォルトゲートウェイを解決できましたが、メトリックを変更してもVPNのDNSはまだ認識されません
...-ceinmart

3
これにより、IPv6を無効にするという重要な追加ステップが1つ追加され、問題が解決されました(そして、しばらくの間、この問題と闘ってきました)。私たちのVPNはIPv6を実行しませんが、私の理解では IPv6リゾルバーはIPv4よりも優先されます。アダプタでIPv6を無効にすると、メトリックを調整し、スプリットトンネルDNSが動作を再開しました。VPNがIPv6をサポートしている場合、これはおそらく不要であり、メトリック調整自体がDNSを修正するため、アダプターでIPv6を有効にしたままにします。
アダムストロール

楽しい事実:私にとって問題は「逆」でした-VPNに接続すると、WindowsはローカルFQDNを解決できませんでした...「VPN接続」のデフォルトメトリックを1に設定していました。私の問題を解決したより小さな数字を接続します。(私のローカルサーバーは正しく構成されているため、「2番目の設定」の接続で解決できない名前が照会されます。これにより、ローカルDNSとリモートDNSの両方がVPNの確立中に期待どおりに動作します。)
dognose

この修正が必要なのは、一方のISPを介して接続し、もう一方のISPを介して接続しない場合(両方の同軸ケーブルが接続されている場合)だけです。
ガイア

どういうわけか私は最初に逆の問題を取得しました:私のローカルWin10ラップトップは自動的にVPNのDNSのみを使用します(ほとんどの場合)、そしてその内部VPNのDNSは(まだ)DNSサービスを提供するように設定されていないため、 VPNの有効期間中はインターネットWebサイトを閲覧しないでください。したがって、このソリューションを逆の方法で使用します。つまり、ローカルLAN接続をのような小さな数に設定することで、1現時点では問題を解決できそうです。FWIW、VPN接続のポップアップウィンドウに[進む]ボタンがないため、VPN接続のメトリック値がわかりません。
RayLuo

11

私が持っているすべての物理的なWin10マシンでこの問題を確認した後、テストするためにVMでWindows 10の新規インストールを起動しました。このスレッドですべての回答をテストしましたが、どれも機能しませんでした。解決策は、「Keenans」と「ECC-Dan」によってここに投稿された回答を結合することであることを発見しました。

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

[コントロールパネル]> [ネットワークと共有センター]> [アダプターの設定を変更]>イーサネットまたはWifiアダプターを右クリック> [プロパティ]> [IPv4]をダブルクリック> [詳細]> [自動メトリックをオフ]>インターフェイスメトリックに15を入力> [OK]> [OK]

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

これらの設定の両方を変更した後にのみ、問題は解決します。どちらか一方を元に戻すことをテストしましたが、再び壊れます。両方を変更した後、コマンドラインからnslookupを実行し、VPNが接続されているリモートネットワーク上のDNSサーバーを返しました。それ以外の場合はローカルDNSサーバーを返します。次に、Ethernetインターフェイスで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つのレジストリ値を設定する必要があります。リンクされた記事には1つしかリストされていません。それだけでは、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の状態に戻ります。これがMicrosoftのQAをどのように通ったのか疑問に思わなければなりません。


1

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

VPNが機能するために使用するUTP / LANインターフェースでIPv6プロトコルを無効にするだけで十分です(クライアントでグローバルIPv6アドレスを削除/使用しない)。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.