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

dns vpn windows-10

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

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

以前のバージョンのWindowsでは正常に動作していました

これはthis microsoft answers threadで広く議論されました

  60  None  2015-09-03


ベストアンサー

私は、LAN接続のメトリックをwindowsがVPNに割り当てるメトリック(11)よりも高い値(15)に手動で設定することで、この問題を永久に解決しました

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

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

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

これは、Split Tunnelingで動作し、再接続と再起動にまたがって恒久的に固定されます

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

63  ECC-Dan  2015-09-03


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

Win 10: DNS resolution of remote network via VPN connection not working
Hello, when you created a new VPN connection with Windows 7, 8 and 8.1 and connected it you was abel to resolve DNS names of the remote network. With Windows 10...

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

同じプロパティページで、IPv6 >をダブルクリックし、Advanced > Automatic Metric >のチェックを外し、Interface metric >に15を入力します

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

_COPY11@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を通過したのか、不思議に思わなければなりません

14  LikeARock47  2016-02-20


Another way:

ネットワークインデックスを検索します

Get-NetIPInterface | select ifindex,*int*

ifIndex InterfaceAlias              InterfaceIndex InterfaceMetric
------- --------------              -------------- ---------------
26 vEthernet (Default Switch)              26            5000
11 VPN - VPN Client                        11               1
7 Ethernet                                 7              25
1 Loopback Pseudo-Interface 1              1              75

私のはインデックス11のVPNでした

VPNの「interfaceMetric」を1から30に変更します

Get-NetIPInterface -InterfaceIndex 11 | Set-NetIPInterface -InterfaceMetric 30

変更を確認します

Get-NetIPInterface | select ifindex,*int*

ifIndex InterfaceAlias              InterfaceIndex InterfaceMetric
------- --------------              -------------- ---------------
26 vEthernet (Default Switch)              26            5000
11 VPN - VPN Client                        11              30
7 Ethernet                                 7              25
1 Loopback Pseudo-Interface 1              1              75

2  Jose Ortega  2020-03-31


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

VPN に使用する UTP/LAN インタフェースの IPv6 プロトコルを無効にすることで動作させることができます (クライアント上のグローバル IPv6 アドレスを削除する/使用しない)

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

1  Milan Kerslager  2018-12-07


私の場合は、VPNに接続しているときにブラウザやpingはDNSを解決できませんでしたが、nslookupは解決できました。このリンクが私の問題を解決してくれました。https://windowsreport.com/nslookup-works-but-ping-fails/

私の場合は、管理者権限を持つコマンドプロンプトで以下の5つのコマンドを実行していました

netsh winsock reset catalog
netsh int ip reset reset.log
ipconfig /flushdns
ipconfig /registerdns
route /f

0  sfarbota  2020-02-02


タイトルとURLをコピーしました