Resolusi nama DNS tidak berfungsi dengan koneksi VPN aktif di Windows 10

Di Windows 10 dengan koneksi VPN aktif dalam mode Terowongan paksa (opsi "Gunakan gateway default pada jaringan jarak jauh" diaktifkan), server DNS dan sufiks yang dikonfigurasikan untuk koneksi VPN digunakan untuk menyelesaikan nama melalui layanan DNS. Dengan demikian, Anda kehilangan kemampuan untuk menyelesaikan nama DNS di jaringan lokal Anda dan menggunakan Internet melalui LAN internal.

Pada saat yang sama, dengan Windows 10, Anda dapat melakukan ping ke sumber daya di LAN Anda (ping gateway Anda, komputer atau printer tetangga), tetapi dengan nama mereka tidak tersedia, karena Windows mencoba menyelesaikan nama di jaringan lokal melalui server DNS yang ditentukan untuk koneksi VPN.

Di Google, saya menemukan rekomendasi untuk menonaktifkan IPv6 pada koneksi lokal (LAN) dan ini berfungsi (jika Anda ingin menggunakan Force-Tunneling).

Jika mode ini digunakan untuk koneksi VPN Terowongan terpisah (kotak "Gunakan gateway default pada jaringan jarak jauh" tidak dicentang), Anda dapat menggunakan Internet melalui jaringan lokal Anda, tetapi Anda tidak dapat menyelesaikan alamat DNS di jaringan VPN jarak jauh (dalam hal ini, menonaktifkan IPv6 tidak membantu).

Anda perlu memahami bahwa Windows mengirimkan permintaan DNS dari antarmuka jaringan, yang memiliki prioritas tertinggi (nilai lebih rendah dari metrik antarmuka). Katakanlah koneksi VPN Anda berfungsi dalam mode Split Tunneling (Anda ingin menggunakan Internet melalui LAN dan sumber daya perusahaan melalui koneksi VPN).

Gunakan PowerShell untuk memeriksa metrik untuk semua antarmuka jaringan:

Get-NetIPInterface | Sortir-Objek Interfacemetric

Gambar di atas menunjukkan bahwa koneksi Ethernet lokal memiliki metrik yang lebih rendah (25) dari antarmuka VPN (dalam contoh ini, 100). Dengan demikian, lalu lintas DNS melewati antarmuka dengan nilai metrik yang lebih rendah. Ini berarti bahwa permintaan DNS Anda dikirim ke server DNS lokal Anda, dan bukan ke koneksi VPN server DNS. Yaitu dalam konfigurasi ini, Anda tidak dapat menyelesaikan alamat di jaringan VPN eksternal.

Selain itu, perlu menyebutkan fitur baru dari klien DNS di Windows 8.1 dan Windows 10. Dalam versi OS ini, fungsionalitas resolver DNS ditambahkan dengan nama Resolusi Nama Multi-Homed Cerdas (SMHNR). Saat menggunakan SMHNR, sistem secara default mengirimkan permintaan DNS ke semua server DNS yang dikenal sistem secara paralel dan menggunakan jawaban yang datang lebih cepat. Ini tidak aman karena berpotensi server DNS eksternal (yang ditunjukkan dalam koneksi VPN Anda) dapat melihat permintaan DNS Anda (kebocoran dari permintaan DNS Anda di luar). Anda dapat menonaktifkan SMHNR di Windows 10 menggunakan Kebijakan Grup:

Konfigurasi Komputer -> Template Administratif -> Jaringan -> DNS Client-> Matikan resolusi nama multi-homed pintar = Diaktifkan.

Atau dengan perintah (untuk Windows 8.1):

Set-ItemProperty -Path "HKLM: \ Software \ Kebijakan \ Microsoft \ Windows NT \ DNSClient" -Nama DisableSmartNameResolution -Nilai 1 -Tipe DWord
Set-ItemProperty -Path "HKLM: \ SYSTEM \ CurrentControlSet \ Services \ Dnscache \ Parameters" -Name DisableParallelAandAAAA -Value 1 -Type DWord

Di Windows 10 Creators Update (1709) dan lebih tinggi, kueri DNS dikirim ke semua server DNS yang dikenal secara berurutan, dan tidak secara paralel. Anda dapat meningkatkan prioritas DNS tertentu jika Anda mengurangi metriknya..

Dengan demikian, mengubah metrik akan memungkinkan Anda mengirim permintaan DNS melalui antarmuka jaringan (LAN atau VPN), resolusi nama yang melaluinya lebih diprioritaskan untuk Anda.

Jadi, semakin kecil nilai metrik antarmuka, semakin tinggi prioritas koneksi semacam itu. Windows memaparkan metrik IPv4 ke antarmuka jaringan secara otomatis, tergantung pada kecepatan dan jenisnya. Misalnya, untuk koneksi LAN dengan kecepatan> 200 Mbps, nilai metrik antarmuka adalah 10, dan untuk koneksi Wi-FI nirkabel dengan kecepatan 50-80 Mbps, metriknya adalah 50 (lihat tabel https://support.microsoft.com/en-us/help/ 299540 / an-penjelasan-fitur-otomatis-metrik-fitur-untuk-ipv4-rute).

Anda dapat mengubah metrik antarmuka melalui antarmuka grafis, PowerShell, atau perintah netsh.

Misalnya, Anda ingin permintaan DNS dikirim melalui koneksi VPN. Anda perlu menambah metrik koneksi LAN lokal Anda sehingga menjadi lebih dari 100 (dalam contoh saya).

Buka Panel kontrol -> Jaringan dan Internet -> Koneksi jaringan, buka properti koneksi Ethernet Anda, pilih properti protokol TCP / IPv4, buka "Pengaturan TCP / IP Lanjut" Hapus centang "Penentuan metrik otomatis"Dan ubah metrik antarmuka menjadi 120.

Hal yang sama dapat dilakukan dengan perintah manajemen jaringan PowerShell (gunakan indeks antarmuka LAN Anda yang diperoleh menggunakan cmdlet Dapatkan-NetIPInterface):

Set-NetIPInterface -InterfaceIndex 11 -InterfaceMetric 120

Atau netsh (Anda perlu menentukan nama koneksi LAN Anda)

netsh int ip set interface interface = "Ethernet 3" metric = 120

Demikian pula, Anda dapat mengurangi nilai metrik pada properti koneksi VPN..

Anda juga dapat mengubah pengaturan koneksi VPN Anda dengan mengubah mode ke SplitTunneling dan menentukan akhiran DNS untuk menghubungkan menggunakan PowerShell:

Dapatkan-vpnconnection
Set-VpnConnection -Name "VPN" -SplitTunneling $ True
Set-VpnConnection -Nama "VPN" -DnsSuffix yourdomain.com