Resolusi Windows 10 DNS melalui koneksi VPN tidak berfungsi

49

Pada Windows 10, ketika terhubung ke VPN dengan Split Tunneling diaktifkan (Gateway dinonaktifkan), resolusi DNS selalu menggunakan server DNS LAN, mengabaikan server DNS dan Sufiks DNS yang ditetapkan pada koneksi VPN.

Perilaku yang diharapkan adalah menggunakan server DNS VPN, jika tidak maka tidak mungkin untuk menyelesaikan entri DNS pada jaringan jarak jauh (seperti komputer domain).

Ini berfungsi dengan baik di versi Windows sebelumnya.

Ini banyak dibahas di utas jawaban microsoft ini .

ECC-Dan
sumber
Tidak jelas dari pertanyaan Anda apa masalah Anda (apakah Anda ingin menggunakan server DNS yang ditentukan oleh VPN?), Harap edit.
Máté Juhász
Diedit seperti yang disarankan.
ECC-Dan
tbh: Lalu ada yang salah dengan server Anda. Permintaan DNS pertama harus SELALU mengenai server lokal. Hanya jika host tidak dapat dipecahkan, sistem harus mencoba untuk menanyakan Remote-DNS. Masalah Anda mungkin adalah, bahwa jaringan lokal dan jarak jauh berjalan pada subnet yang sama, sehingga yang lokal mengklaim "untuk dapat menyelesaikan permintaan", tetapi memberikan "host tidak ditemukan"? (Jika Server dikonfigurasikan ke server, subnet abcd tidak dapat menyelesaikan host, tidak ada server-dns lebih lanjut untuk subnet ini yang dipertanyakan, kecuali primernya offline, karena mereka HARUS disinkronkan - maka diasumsikan host tidak diketahui)
dognose

Jawaban:

55

Saya telah memperbaiki masalah ini secara permanen dengan secara manual mengatur metrik koneksi LAN saya menjadi lebih tinggi (15) dari yang diberikan oleh satu windows ke VPN saya (11).

Ini dapat dilakukan dengan dua cara:

  • Melalui GUI: Koneksi jaringan, Properties, TCP / IP v4 Properties, Advanced, Set Metric ke 15;
  • Garis komando: netsh int ip set interface interface="LAN CONNECTION NAME" metric=15

Efeknya langsung (setidaknya saat menggunakan baris perintah) dan pencarian DNS sekarang melalui VPN saya seperti yang diharapkan.

Ini berfungsi dengan Split Tunneling dan merupakan perbaikan permanen pada koneksi ulang dan reboot.

Perhatikan bahwa Anda juga dapat mengubah metrik VPN alih-alih koneksi LAN, tetapi ini tidak akan permanen karena Windows me-reset metrik saat koneksi dibuat.

Tergantung pada lingkungan Anda, Anda mungkin memiliki metrik default yang berbeda untuk koneksi LAN dan VPN Anda. Cukup sesuaikan sehingga VPN Anda memiliki metrik yang lebih rendah dari koneksi LAN Anda.

Selain itu, jika Anda menemukan bahwa Anda tidak dapat mengedit properti TCP / IP VPN Anda karena itu juga rusak di Windows 10 , Anda dapat mengatur sebagian besar properti melalui Powershell :

1. Get-VpnConnection
2. Set-VpnConnection -Name "myVPN" -SplitTunneling $True
3. Set-VpnConnection -Name "myVPN" -DnsSuffix yourdomain.local
ECC-Dan
sumber
2
Bagi saya ini tidak berfungsi ... Saya punya dua mesin dengan windows 10, satu berfungsi dengan baik, yang lain bermasalah dengan VPN. Saya dapat menyelesaikan gateway default yang memungkinkan SplitTunneling, tetapi DNS VPN masih tidak mengenali ketika saya mengubah metrik ...
ceinmart
3
Ini memperbaiki masalah bagi kami (dan kami telah berjuang untuk beberapa waktu), dengan satu langkah tambahan penting - menonaktifkan IPv6. VPN kami tidak melakukan IPv6 tetapi pemahaman saya adalah setiap resolver IPv6 akan lebih diutamakan daripada IPv4. Setelah kami menonaktifkan IPv6 pada adaptor kemudian menyesuaikan metrik split-tunnel DNS kembali berfungsi. Jika VPN Anda mendukung IPv6, kemungkinan ini tidak diperlukan dan jika penyesuaian metrik dengan sendirinya memperbaiki DNS agar IPv6 tetap diaktifkan di adaptor Anda.
Adam Strohl
Fakta menyenangkan: Bagi saya masalahnya adalah "sebaliknya" - Ketika terhubung ke VPN, Windows tidak dapat menyelesaikan FQDN lokal ... Itu sedang mengatur Metrik default untuk "VPN-Connection" ke 1 - jadi saya memberi lokal koneksi nomor yang lebih rendah yang menyelesaikan masalah saya. (Server lokal saya dikonfigurasikan dengan benar, sehingga setiap nama yang tidak dapat diselesaikan akan ditanyai pada koneksi "preferensi kedua" - yang membuat sekarang keduanya: dns lokal dan jauh berfungsi seperti yang diharapkan saat VPN dibuat.)
dognose
Adakah ide mengapa perbaikan ini hanya diperlukan bagi saya ketika menghubungkan melalui satu ISP tetapi tidak yang lain (keduanya kabel koaksial terhubung)?
Gaia
Entah bagaimana saya mendapatkan masalah terbalik di tempat pertama: laptop Win10 lokal saya secara otomatis hanya menggunakan DNS di VPN (sebagian besar waktu), dan karena DNS di VPN internal itu belum (belum) dikonfigurasi untuk menyediakan layanan DNS, saya bisa tidak menjelajah situs web internet apa pun selama periode aktif VPN saya. Jadi, saya menggunakan solusi ini secara terbalik, yaitu mengatur koneksi LAN lokal saya menjadi sekecil 1, yang tampaknya menyelesaikan masalah untuk saat ini. FWIW, saya tidak tahu nilai metrik untuk koneksi VPN saya, karena tidak ada tombol "Advance" di jendela pop-up properti koneksi VPN.
RayLuo
11

Saya memutar instalasi baru Windows 10 di VM untuk menguji setelah melihat masalah ini pada setiap mesin Win10 fisik yang saya miliki. Saya menguji semua jawaban di utas ini dan tidak ada yang berhasil. Saya menemukan bahwa solusinya adalah menggabungkan jawaban yang diposting di sini oleh "Keenans" dan "ECC-Dan":

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

Panel Kontrol> Jaringan dan Pusat Berbagi> Ubah pengaturan adaptor> Klik kanan adapter Ethernet atau Wifi Anda> Properti> klik dua kali IPv4> Lanjutan> Hapus centang Metrik Otomatis> Masukkan 15 untuk metrik antarmuka> OK> OK.

Pada halaman Properties yang sama, klik dua kali IPv6> Advanced> Hapus centang Metrik Otomatis> Masukkan 15 untuk metrik antarmuka> OK> OK.

Hanya setelah mengubah kedua pengaturan tersebut, masalah terselesaikan. Saya diuji mengubah salah satu kembali dan rusak lagi. Setelah mengubah keduanya, saya menjalankan nslookup dari baris perintah dan mengembalikan server DNS pada jaringan jarak jauh tempat VPN terhubung, di mana selain itu akan mengembalikan server DNS lokal. Saya kemudian menggunakan penangkapan Wireshark pada antarmuka Ethernet, melakukan beberapa ping ke situs web acak, dan memverifikasi bahwa tidak ada paket DNS yang diambil. Ini membuktikan bahwa setelah melakukan perubahan, permintaan DNS dikirim HANYA melalui koneksi VPN, dan tidak secara bersamaan melalui semua koneksi (yang dikenal sebagai kebocoran DNS Win10). Jadi ini juga bagian dari solusi untuk kebocoran DNS Win10:

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

Perhatikan bahwa memperbaiki kebocoran DNS, Anda harus terlebih dahulu melakukan langkah-langkah di atas. Maka Anda perlu menetapkan dua nilai registri. Artikel yang ditautkan hanya mencantumkan satu, yang dengan sendirinya, tidak memperbaiki masalah pada versi baru dari Win10. Tetapkan nilai registri ini:

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

Hanya setelah melakukan semua itu, perilaku klien DNS Anda akan kembali seperti semula di Win7. Anda harus bertanya-tanya bagaimana ini bisa melewati QA di Microsoft.

SukaARock47
sumber
1

Tidak berfungsi bahkan saya mengubah metrik pada IPv4 dan IPv6 dan menggunakan registry DisableSmartNameResolution dan DisableParallelAandAAAA dengan Windows 10 Edu saat ini (pada Desember 2018) ketika klien terhubung dengan kabel UTP dan protokol IPv6 didukung pada LAN lokal (yaitu. klien memiliki alamat IPv6 publik / global).

Cukup untuk menonaktifkan protokol IPv6 pada antarmuka UTP / LAN yang digunakan untuk VPN agar berfungsi (untuk menghapus / not_use alamat IPv6 global pada klien).

Ini bekerja tanpa masalah ketika klien terhubung ke Internet oleh Wi-Fi dan IPv6 tersedia (klien memiliki alamat IPv6 global dan tidak memiliki koneksi UTP / LAN).

Milan Kerslager
sumber