Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Máy Chủ Windows

Phân Giải DNS qua VPN Không Hoạt Động trên Windows 10

Các máy chủ DNS và hậu tố được cấu hình cho kết nối VPN được sử dụng trong Windows 10 để phân giải tên bằng DNS trong chế độ Force Tunneling (“Use default gateway on remote network” được bật) nếu kết nối VPN của bạn đang hoạt động. Trong trường hợp này, bạn không thể phân giải tên DNS trong mạng cục bộ hoặc truy cập Internet bằng LAN nội bộ của mình.

Cùng lúc đó, bạn có thể ping bất kỳ tài nguyên nào trên LAN của mình (thử ping gateway, máy tính lân cận hoặc địa chỉ IP máy in). Chúng chỉ có sẵn theo địa chỉ IP, nhưng không phải theo tên máy chủ. Thực tế là Windows 10 đang cố gắng phân giải tên máy chủ trong mạng cục bộ của bạn thông qua các máy chủ DNS được chỉ định trong cài đặt kết nối VPN.

Tôi tìm thấy một số khuyến nghị về việc tắt giao thức IPv6 cho giao diện cục bộ (LAN) và nó sẽ giúp nếu bạn muốn sử dụng chế độ Force-Tunneling.

Nếu bạn đang sử dụng Split Tunneling (tùy chọn “Use default gateway on remote network” bị bỏ chọn) cho kết nối VPN của mình, bạn có thể truy cập Internet từ mạng cục bộ, nhưng không thể phân giải địa chỉ DNS trong mạng VPN từ xa (tắt IPv6 không giúp ở đây).

Bạn phải hiểu rằng Windows gửi truy vấn DNS từ giao diện mạng có độ ưu tiên cao nhất (giá trị metric của giao diện thấp hơn). Ví dụ: kết nối VPN của bạn hoạt động ở chế độ Split Tunneling (bạn muốn truy cập Internet từ LAN và tài nguyên doanh nghiệp qua VPN).

Kiểm tra giá trị metric của tất cả các giao diện mạng từ PowerShell:

Get-NetIPInterface | Sort-Object Interfacemetric

Phân Giải DNS qua VPN Không Hoạt Động trên Windows 10

Ảnh chụp màn hình trên cho thấy kết nối Ethernet cục bộ có metric thấp hơn (25) so với giao diện VPN (100). Vì vậy lưu lượng DNS đi qua giao diện có giá trị metric thấp hơn. Điều đó có nghĩa là các yêu cầu DNS của bạn được gửi đến máy chủ DNS cục bộ thay vì máy chủ DNS cho kết nối VPN. Trong cấu hình này, bạn không thể phân giải tên trong mạng VPN bên ngoài đã kết nối.

Ngoài ra, một tính năng mới của DNS client cho Windows 8.1 và Windows 10 nên được đề cập ở đây. Smart Multi-Homed Name Resolution (SMHNR) đã được thêm vào các phiên bản OS này để có phản hồi nhanh hơn cho các yêu cầu DNS. Theo mặc định, SMHNR gửi đồng thời các yêu cầu DNS đến tất cả các máy chủ DNS 알려진 đến hệ thống và sử dụng phản hồi nó nhận được đầu tiên (các truy vấn LLMNR và NetBT cũng được gửi). Nó không an toàn vì các máy chủ DNS bên ngoài (được chỉ định cho kết nối VPN của bạn) có thể tiềm năng thấy lưu lượng DNS của bạn (rò rỉ yêu cầu DNS của bạn). Bạn có thể tắt SMHNR trong Windows 10 qua GPO: Computer Configuration → Administrative Templates → Network → DNS Client → Turn off smart multi-homed name resolution = Enabled.

Phân Giải DNS qua VPN Không Hoạt Động trên Windows 10

Hoặc bạn có thể tắt SMHNR bằng các lệnh sau (trong Windows 8.1):

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

Trong Windows 10 Creators Update (1709) và mới hơn, các yêu cầu DNS được gửi đến tất cả các máy chủ DNS đã biết lần lượt (không song song). Bạn có thể tăng độ ưu tiên của một DNS cụ thể nếu bạn làm cho metric của nó thấp hơn.

Vì vậy, thay đổi metric giao diện cho phép bạn gửi yêu cầu DNS qua kết nối (LAN hoặc VPN) nơi phân giải tên là ưu tiên nhất cho bạn.

Do đó, giá trị metric của giao diện càng thấp, độ ưu tiên của kết nối càng cao. Windows tự động gán metric cho các giao diện IPv4 tùy thuộc vào tốc độ và loại của chúng. Ví dụ: kết nối LAN với tốc độ > 200 Mbit/s có giá trị metric bằng 10, và kết nối Wi-Fi với tốc độ 50-80 Mbit/s có giá trị 50 (xem bảng https://support.microsoft.com/en-us/help/299540/an-explanation-of-the-automatic-metric-feature-for-ipv4-routes).

Bạn có thể thay đổi metric giao diện từ Windows GUI, PowerShell hoặc sử dụng lệnh netsh.

Ví dụ: bạn muốn yêu cầu DNS của mình được gửi qua kết nối VPN. Bạn phải tăng metric của kết nối LAN sao cho giá trị của chúng vượt quá 100 (trong ví dụ của tôi).

Đi đến Control Panel → Network & Internet → Network Connections, mở thuộc tính kết nối Ethernet của bạn, chọn thuộc tính TCP/IPv4 và đi đến tab Advanced TCP/IP Settings. Bỏ chọn tùy chọn Automatic metric và thay đổi metric giao diện thành 120.

Phân Giải DNS qua VPN Không Hoạt Động trên Windows 10

Bạn có thể làm tương tự bằng lệnh PowerShell sau (sử dụng chỉ số giao diện LAN của bạn mà bạn có thể lấy với cmdlet Get-NetIPInterface):

Set-NetIPInterface -InterfaceIndex 11 -InterfaceMetric 120

Hoặc sử dụng netsh (chỉ định tên kết nối LAN của bạn):

netsh int ip set interface interface="Ethernet0" metric=120

Cùng cách đó, bạn có thể giảm giá trị metric trong thuộc tính kết nối VPN của bạn.

Phân Giải DNS qua VPN Không Hoạt Động trên Windows 10

Cũng có thể thay đổi cài đặt kết nối VPN bằng cách chuyển chế độ sang Split Tunneling và chỉ định hậu tố DNS cho kết nối bằng PowerShell:

Get-VpnConnection
Set-VpnConnection -Name "VPN_work" -SplitTunneling $True
Set-VpnConnection -Name "VPN_work" -DnsSuffix yourdomainname.com