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” の回答を組み合わせることであることを発見しました
コントロールパネル] & [ネットワークと共有センター] & [アダプタの設定の変更] & [イーサネットまたは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