Computer >> 컴퓨터 >  >> 체계 >> Windows Server

VPN을 통한 DNS 확인이 Windows 10에서 작동하지 않음

VPN 연결용으로 구성된 DNS 서버 및 접미사는 Windows 10에서 강제 터널링에서 DNS를 사용하여 이름을 확인하는 데 사용됩니다. 모드("원격 네트워크에서 기본 게이트웨이 사용 " 옵션 활성화됨) VPN 연결이 활성화된 경우. 이 경우 로컬 네트워크에서 DNS 이름을 확인할 수 없거나 내부 LAN을 사용하여 인터넷에 액세스할 수 없습니다.

동시에 LAN에 있는 모든 리소스를 Ping할 수 있습니다(게이트웨이, 인접 컴퓨터 또는 프린터 IP 주소에 대해 Ping 시도). IP 주소로만 사용할 수 있지만 호스트 이름으로는 사용할 수 없습니다. 사실 Windows 10은 VPN 연결 설정에 지정된 DNS 서버를 통해 로컬 네트워크의 호스트 이름을 확인하려고 합니다.

로컬(LAN) 인터페이스에 대한 IPv6 프로토콜 비활성화에 대한 몇 가지 권장 사항을 찾았으며 Force-Tunneling 모드를 사용하려는 경우 도움이 될 것입니다.

분할 터널링을 사용하는 경우 ("원격 네트워크에서 기본 게이트웨이 사용 " 옵션이 선택되어 있지 않음) VPN 연결에 대해 로컬 네트워크에서 인터넷에 액세스할 수 있지만 원격 VPN 네트워크에서 DNS 주소를 확인할 수 없습니다(IPv6 비활성화는 여기에서 도움이 되지 않음).

Windows는 가장 높은 우선 순위(인터페이스 메트릭의 낮은 값)를 가진 네트워크 인터페이스에서 DNS 쿼리를 보낸다는 것을 이해해야 합니다. 예를 들어 VPN 연결은 분할 터널링 모드에서 작동합니다(LAN에서 인터넷에 액세스하고 VPN을 통해 회사 리소스에 액세스하려는 경우).

PowerShell에서 모든 네트워크 인터페이스 메트릭의 값을 확인하십시오.

Get-NetIPInterface | Sort-Object Interfacemetric

VPN을 통한 DNS 확인이 Windows 10에서 작동하지 않음

위의 스크린샷은 로컬 이더넷 연결이 VPN 인터페이스(100)보다 낮은 메트릭(25)을 가지고 있음을 보여줍니다. 따라서 DNS 트래픽은 메트릭 값이 더 낮은 인터페이스를 통과합니다. 이는 DNS 요청이 VPN 연결을 위해 DNS 서버 대신 로컬 DNS 서버로 전송됨을 의미합니다. 이 구성에서는 연결된 외부 VPN 네트워크의 이름을 확인할 수 없습니다.

또한 Windows 8.1 및 Windows 10용 DNS 클라이언트의 새로운 기능을 여기에서 언급해야 합니다. 스마트 멀티홈 이름 확인 (SMHNR)은 DNS 요청에 대한 더 빠른 응답을 얻기 위해 이러한 OS 버전에 추가되었습니다. 기본적으로 SMHNR은 시스템에 알려진 모든 DNS 서버에 동시 DNS 요청을 보내고 먼저 받은 응답을 사용합니다(LLMNR 및 NetBT 쿼리도 전송됨). 외부 DNS 서버(VPN 연결용으로 지정됨)가 잠재적으로 DNS 트래픽(DNS 요청 누출)을 볼 수 있으므로 안전하지 않습니다. GPO:컴퓨터 구성 -> 관리 템플릿 -> 네트워크 -> DNS 클라이언트 -> 스마트 멀티홈 이름 확인 끄기를 통해 Windows 10에서 SMHNR을 비활성화할 수 있습니다. =활성화됨.

VPN을 통한 DNS 확인이 Windows 10에서 작동하지 않음

또는 다음 명령을 사용하여 SMHNR을 비활성화할 수 있습니다(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

Windows 10 Creators Update(1709) 이상에서 DNS 요청은 알려진 모든 DNS 서버에 하나씩(병렬이 아님) 전송됩니다. 메트릭을 낮추면 특정 DNS의 우선 순위를 높일 수 있습니다.

따라서 인터페이스 메트릭을 변경하면 이름 확인이 가장 우선시되는 연결(LAN 또는 VPN)을 통해 DNS 요청을 보낼 수 있습니다.

따라서 인터페이스 메트릭 값이 낮을수록 연결 우선 순위가 높습니다. Windows는 속도와 유형에 따라 IPv4 인터페이스의 메트릭을 자동으로 할당합니다. 예를 들어 속도가 200Mbit/s를 초과하는 LAN 연결의 측정항목 값은 10이고 속도가 50-80Mbit/s인 Wi-Fi 연결의 값은 50입니다(https:// /support.microsoft.com/en-us/help/299540/an-explanation-of-the-automatic-metric-feature-for-ipv4-routes).

Windows GUI, PowerShell 또는 netsh 명령.

예를 들어, DNS 요청이 VPN 연결을 통해 전송되기를 원합니다. LAN 연결의 메트릭을 늘려 값이 100을 초과하도록 해야 합니다(예:내 예).

제어판 -> 네트워크 및 인터넷 -> 네트워크 연결로 이동합니다. , 이더넷 연결 속성을 열고 TCP/IPv4 속성을 선택한 다음 고급 TCP/IP 설정으로 이동합니다. 탭. 자동 측정항목을 선택 취소합니다. 옵션을 선택하고 인터페이스 측정항목을 120으로 변경합니다. .

VPN을 통한 DNS 확인이 Windows 10에서 작동하지 않음

다음 PowerShell 명령을 사용하여 동일한 작업을 수행할 수 있습니다(Get-NetIPInterface cmdlet로 얻을 수 있는 LAN 인터페이스 인덱스 사용).

Set-NetIPInterface -InterfaceIndex 11 -InterfaceMetric 120

또는 netsh 사용 (LAN 연결 이름 지정):

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

같은 방법으로 VPN 연결 속성에서 메트릭 값을 줄일 수 있습니다.

VPN을 통한 DNS 확인이 Windows 10에서 작동하지 않음

또한 모드를 분할 터널링으로 변경하고 PowerShell을 사용하여 연결에 대한 DNS 접미사를 지정하여 VPN 연결 설정을 변경할 수 있습니다.

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